URDF格式在ROS中是一个非常重要的机器人模型描述格式,URDF采用各种标签描述具体的机器人模型
1 机器人名称描述
..........
robot name定义了机器人的名称
2 描述标签
link标签用于描述机器人某个刚体部分的外观和物理属性,包括尺寸 颜色 形状 惯性矩阵和碰撞参数等。
其中
3×3的转动惯量矩阵。
相交即可认为与该部件发生碰撞。
3 机器人关节属性连接标签
标签用于选择以下属性:effort(关节所承受的最大力),lower(赋值给关节的下限,旋转关节的单位
是弧度,移动关节的单位是米),upper(赋值给关节的上限),velocity(强制关节的最大速度)
4 创建一个简单机器人模型例子解析
//robot name 标签用于定义所描述机器人的名称
//link标签描述了机器人某个刚体部分的外观和物理属性,包括尺寸,颜色,形状惯性和碰撞参数等,visual...../visual 标签描述机器人某个部件的外观参数等。origin 标签描述了所绘制外观geometry的坐标起点,一般对于规则形状的外观坐标起点位于规则形状的重心位置, cylinder 标签描述了这个圆柱体的尺寸,material 标签用于描述外观的颜色等信息
//上述joint...../joint标签中一般描述origin parent child等参数,origin描述了joint连接点基于parent link="base_link"
坐标的偏移量,一般在rviz仿真中左上角Fixed Frame 的map选项设置成base_link,则base_link在rviz中为坐标原点,那么 origin所描述的joint为基于坐标原点的偏移量,parent为jiont的支撑连接部件,child为子部件,joint就为子部件和支撑连接部件 的关节
//link name="left_motor"标签为base_left_motor_joint连接件的子部件,其中origin描述了该部件基于base_left_motor_joint关节
坐标的偏移点,base_left_motor_joint关节的坐标原点为origin xyz="0.1 0.1 0.1",若left_motor部件的origin xyz="0.2 0.2 0.2"
则表示left_motor所描述部件基于base_left_motor_joint关节坐标xyz="0.1 0.1 0.1"的偏移量为xyz="0.2 0.2 0.2"
//连接关节joint name="left_wheel_joint" 为left_motor和left_wheel_link关节点,left_wheel_link为left_motor的子部件,其中
left_wheel_joint的基础坐标是基于parent link="left_motor"的关节joint name="base_left_motor_joint" 的基础坐标偏移量
而非left_motor的origin偏移量
.......
..........
5 关于
图中左下角为坐标参考点,在rviz仿真中机器人部件的坐标参考点是可以修改,rviz界面左上角Fixed Frame 的
map选项中可以修改。假设图中参考点为第4点中参考点,那么后面关节描述的origin坐
标是关于参考点或者前一个相连接的关节为参考,如上图joint3的关节坐标的偏移是以jiont2为参考,而跟link3部
分的origin坐标偏移无关,如joint name="left_wheel_joint"是joint name="base_left_motor_joint" 的子关节,那么
joint name="left_wheel_joint"的origin坐标偏移是以joint name="base_left_motor_joint" 的origin坐标为偏移,而
跟link name="left_motor"部件的origin坐标偏移无关,link name="left_motor"部件的origin坐标偏移表示该部件
偏移joint name="base_left_motor_joint"坐标的量。