ROS学习--第8篇:ROS机器人建模与仿真---URDF文件学习

    xiaoxiao2022-07-12  253

    1.URDF定义

    标准机器人描述(URDF)是种用于描述机器人机器结构、关节、自由度等的XML格式文件。

    2.创建一个URDF文件

    下面创建一个简单的四轮驱动小车模型

    (1)首先创建一个机器人建模功能包:

    cd ~/catkin_ws/src catkin_create_pkg testbot_description urdf xacro

     返回 catkin_ws 编译功能包

    cd .. catkin_make

     (2)进入 testbot_description 文件夹,建一个名为 urdf 的文件夹,在urdf文件夹内,建名为: my_robot.urdf 的文件

    3.创建树结构

    打开 my_robot.urdf 输入如下内容:

    <robot name="test_robot"> <link name="link1" /> <link name="link2" /> <link name="link3" /> <link name="link4" /> <joint name="joint1" type="continuous"> <parent link="link1"/> <child link="link2"/> </joint> <joint name="joint2" type="continuous"> <parent link="link1"/> <child link="link3"/> </joint> <joint name="joint3" type="continuous"> <parent link="link3"/> <child link="link4"/> </joint> </robot>

    进入~/catkin_ws/src/testbot_description/urdf,查看书写的语法和配置是否正确:

    check_urdf my_robot.urdf

     可以看到如下输出,和上图的关系一样:

    4.添加关节空间位置

    打开 my_robot.urdf增加如下内容:

    <robot name="test_robot"> <link name="link1" /> <link name="link2" /> <link name="link3" /> <link name="link4" /> <joint name="joint1" type="continuous"> <parent link="link1"/> <child link="link2"/> <origin xyz="5 3 0" rpy="0 0 0" /> </joint> <joint name="joint2" type="continuous"> <parent link="link1"/> <child link="link3"/> <origin xyz="-2 5 0" rpy="0 0 1.57" /> </joint> <joint name="joint3" type="continuous"> <parent link="link3"/> <child link="link4"/> <origin xyz="5 0 0" rpy="0 0 -1.57" /> </joint> </robot>

    只是加了3行,我们以第2个"joint2"为例:

    <origin xyz="-2 5 0" rpy="0 0 1.57" />

    joint2在y方向与link1偏移5,在负x方向与link1偏移2,它围绕z轴旋转90度。

    5.添加关节的旋转轴

     打开 my_robot.urdf 增加如下内容:

    <robot name="test_robot"> <link name="link1" /> <link name="link2" /> <link name="link3" /> <link name="link4" /> <joint name="joint1" type="continuous"> <parent link="link1"/> <child link="link2"/> <origin xyz="5 3 0" rpy="0 0 0" /> <axis xyz="-0.9 0.15 0" /> </joint> <joint name="joint2" type="continuous"> <parent link="link1"/> <child link="link3"/> <origin xyz="-2 5 0" rpy="0 0 1.57" /> <axis xyz="-0.707 0.707 0" /> </joint> <joint name="joint3" type="continuous"> <parent link="link3"/> <child link="link4"/> <origin xyz="5 0 0" rpy="0 0 -1.57" /> <axis xyz="0.707 -0.707 0" /> </joint> </robot>

    只是加了3行

    <axis xyz="0 1 0" />   表示joint绕y轴正方向旋转

     <axis xyz="-0.707 0.707 0" />  表示joint1围绕以x、y轴旋转

    6.如果你想以图形方式来查看

    进入~/catkin_ws/src/testbot_description/urdf

    urdf_to_graphiz my_robot.urdf

    在此目录下会生成一个PDF文件,打开如下:

     

     

    最新回复(0)