一、URDF简介
- 组成
- 连杆 (
link
) - 关节 (
joint
)
整个机器人可以是 n个link
+ n个 joint
组成
1.1 link标签
- 描述机器人某个刚体部分的外观和物理属性(尺寸(
size
)、颜色(color
)、形状(shape
)、惯性矩阵(inertial matrix
)、碰撞属性(collision properties
)等。) - xml格式
<link name="<link name>">
<inertial>......</inertial>
<visual>......</visual>
<collision>......</collision>
</link>
<
visual
>:描述机器人link部分的外观参数, 尺寸、颜色、形状等的外观信息
<inertial
>:描述link的惯性参数,主要用到机器人动力学的运算部分
<collision
>:描述link的碰撞属性
1.2 joint标签
-
joint
就是用来连接两个具体的link部分的 -
描述机器人关节的运动学和动力学属性,包括关节运动的位置和速度限制
-
根据关节的运动形式,可以将其分为六种类型
continuous
:旋转关节,可以围绕单轴无限旋转revolute
:旋转关节,类似于continuous,但是有旋转的角度限制prismatic
:滑动关节,沿某一轴线移动的关节,带有位置极限planar
:平面关节,允许在平面正交方向上平移或者旋转floating
:浮动关节,允许进行平移、旋转运动fixed
:固定关节,不允许运动的特殊关节
-
xml格式
<joint name="<name of the joint>" type="<joint type>">
<parent link="parent_link"/>
<child link="child_link"/>
<calibration ....../>
<dynamics damping ....../>
<limit effort ....../>
......
</joint>
<
child_link
>关节的参考位置,用来校准关节的绝对位置
<dynamics
>描述运动的一些物理属性
<limit
>描述运动的一些极限值
<mimic
>描述关节与已有关节的关
1.3 robot标签
- 完整机器人模型的最顶层标签
- <
link
> 和 <joint
>标签必须包含在 <robot
> 标签内 - xml格式描述
<robot name="name of the robot">
<link>......</link>
<link>......</link>
<joint>......</joint>
<joint>......</joint>
</robot>
二、URDF机器人建模实现
- 创建机器人建模的功能包
进入工作空间、创建功能包
cd ./catkin_ws/src/
catkin_create_pkg mbot_description urdf xacro
- 创建功能包的文件结构
cd ./catkin_ws/src/mbot_description
mkdir urdf
mkdir meshes
mkdir launch
mkdir config
urdf
文件:存放机器人模型的urdf
或xacro
文件meshes
文件:放置urdf
中引用的模型渲染文件,机器人外观纹理,让外观和实际更相似launch
文件:保存相关启动文件config
文件:保存rviz
的配置文件、功能包的配置文件
- 编辑launch启动文件
cd ./catkin_ws/src/mbot_description/launch
sudo gedit display_mbot_base_urdf.launch
display_mbot_base_urdf.launch
文件内容:
<launch>
<param name="robot_description" textfile="$(find mbot_description)/urdf/mbot_base.urdf" />
<param name="use_gui" value="true"/>
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true"