URDF文件
URDF
简介
- Unified Robot Description Format,统一机器人描述格式,简称为URDF
- ROS中的urdf功能包包含一个URDF的C++解析器,URDF文件使用XML格式描述机器人模型
解析
介绍
- 完整机器人模型的最顶层标签
- 和
标签都必须包含在 标签内 - 一个完整的机器人模型,由一系列和
组成
例子:
......
......
......
......
属性
name
(必需):link的名字
介绍
- urdf 中的 link 标签用于描述机器人某个部件(也即刚体部分)的外观和物理属性,比如:机器人底座、轮子、激光雷达、摄像头...每一个部件都对应一个 link, 在 link 标签内,可以设计该部件的形状(shape)、尺寸(size)、颜色(color)、惯性矩阵(inertial matrix)、碰撞参数(collision properties)等一系列属性
子标签
:描述机器人link部分的外观参数
:可视化对象的形状box
:矩形cylinder
:圆柱体sphere
:球体mesh
:网格,纹理(更为复杂的模型)
:设置偏移量与倾斜弧度
:可视化组件的材料color
:颜色
:材料属性(纹理)
:描述link的惯性参数
:定义连杆质心坐标
:连杆的质量
:惯性张量
:描述link的碰撞属性
:碰撞组件的参考坐标系相对于连杆坐标系的参考坐标系
:与上述geometry元素描述相同
例子:
介绍
- urdf 中的 joint 标签用于描述机器人关节的运动学和动力学属性,还可以指定关节运动的安全极限,机器人的两个部件(分别称之为 parent link 与 child link)以"关节"的形式相连接,不同的关节有不同的运动形式::旋转、滑动、固定、旋转速度、旋转角度限制等等,比如:安装在底座上的轮子可以360度旋转,而摄像头则可能是完全固定在底座上
- joint标签对应的数据在模型中是不可见的
属性
(必需):指定joint的名字(唯一的)type
(必需):指定joint的类型,有下列几种:
关节类型 | 描述 |
---|---|
continuous | 旋转关节,可以绕单轴无限旋转 |
revolute | 旋转关节,类似于 continues,但是有旋转角度限制 |
prismatic | 滑动关节,可以沿着一个轴滑动,有最大值和最小值限制 |
planer | 平面关节,允许在平面正交方向上平移或旋转 |
floating | 浮动关节,允许进行平移、旋转运动 |
fixed | 这不是一个实际的关节,因为它无法运动,所有的自由度都被锁定。这种类型的关节不需要指定轴、动力学特征、标度和最大值最小值限制 |
子标签
:parent link的名字是一个强制的属性,是这个link在机器人结构树中的名字。 可以理解为parent是主体,child是固定在主体上的配件
:child link的名字,是这个link在机器人结构树中的名字
:从parent link到child link的变换,joint位于child link的原点
:关节的参考位置,用来校准关节的绝对位置rising
:当joint正向运动时,参考点会触发一个上升沿falling
:当joint正向运动时,参考点会触发一个下降沿
:设置围绕哪个关节轴运动
:描述关节的物理属性,例如阻尼值、物理静摩擦力等,经常在动力学仿真中用到damping
:joint的阻尼值friction
:joint的摩擦力值
:描述运动的一些极限值,包括关节运动的上下限位置、速度限制、力矩限制等lower
:指定joint运动范围下界的属性,连续型的joint忽略该属性upper
:指定joint运动范围上界的属性,连续型的joint忽略该属性effort
:该属性指定了joint运行时的最大的力velocity
:该属性指定了joint运行时的最大的速度
:指定该joint来模仿已存在的jointjoint
:需要模仿的joint的名字multiplier
:指定上述公式中的乘数因子offset
:指定上述公式中的偏移项,默认值为0
:描述安全控制器参数soft_lower_limit
:该属性指定了joint安全控制边界的下界,是joint安全控制的起始限制点,默认为0soft_upper_limit
:该属性指定了joint安全控制边界的上界,是joint安全控制的起始限制点,默认为0k_position
:本属性用于说明位置和速度之间的关系k_velocity
:本属性用于说明力和速度之间的关系
例子: