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

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.创建树结构

link.png

打开 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文件,打开如下:

 

 

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值