英文 | 中文 |
---|---|
link | 刚体 |
joint | 关节 |
frame | 坐标系 |
identity element | 单位元(加法为 0) |
机器人描述文件的根元素必须是 robot ,所有其他元素都必须封装在其中。
name
主文件必须有 name 属性。在包含文件中,name 属性是可选的。如果在附加的包含文件中指定了属性名称,其值必须与主文件中的相同。
link 元素描述了一个具有惯量(inertia)、视觉特征(visual features)和碰撞属性(collision properties)的刚体(rigid body)。
下面是一个 link 元素的示例:
name(必需)
刚体(link)本身的名称。
刚体(link)的质量、质心位置和中心惯量特性。
这个姿态(平移、旋转)描述了刚体(link)的质心坐标系(center of mass frame) C 相对于刚体(link)坐标系 L 的位置和方向。
表示从 Lo(刚体坐标系原点)到 Co(刚体质量中心)的位置矢量为 x L̂x + y L̂y + z L̂z,其中 L̂x、L̂y、L̂z 为链接框架 L 的正交单位矢量。
表示质心坐标系 C 的单位矢量 Ĉx、Ĉy、Ĉz 相对于刚体坐标系 L 的方向,是以弧度为单位的欧拉旋转序列 (r p y)。注意: Ĉx、Ĉy、Ĉz 不需要与刚体的惯性主轴对齐。
刚体的质量由该元素的 value 属性表示
固定在质心坐标系 C 中的单位向量Ĉx、Ĉy、Ĉz 相对于 Co(刚体质心)的惯性矩 ixx、iyy、izz 和惯性积 ixy、ixz、iyz。
注意:Ĉx、Ĉy、Ĉz 相对于 L̂x、L̂y、L̂z 的方向由
标签中的 rpy 值指定。一些原始形状的属性 ixx、ixy、ixz、iyy、iyz、izz 在这里。URDF 假定惯性积为负值(更多信息,请参阅有关使用 CAD 工具的 MathWorks 文档)。要避免与惯性积负号约定相关的兼容性问题,最简单的方法是将Ĉx、Ĉy、Ĉz 与主惯性方向对齐,使所有惯性积为零。
刚体(link)的可视化属性。该元素用于指定对象的形状(方框、圆柱等),以便实现可视化。注意:同一刚体(link)可存在多个
指定刚体几何体部分的名称。这对引用刚体几何图形的特定的位非常有用。
visual 元素相对于刚体参照系的参照系。
表示 x、y、z 偏移量。
表示以弧度为单位的固定轴滚动角、俯仰角和偏航角。
视觉对象的形状。可以是以下形状之一:
size 属性包含方框的三个边长。方框的原点位于其中心。
指定半径和长度。圆柱体的原点位于其中心。
指定半径。球体的原点位于其中心。
由文件名和可选的缩放比例指定的 trimesh 元素,缩放比例用于缩放网格的轴对齐包围盒。任何几何体格式都可接受,但具体应用的兼容性取决于实施情况。为获得最佳纹理和颜色支持,推荐使用 Collada .dae 文件格式。网格文件不会在引用同一模型的机器之间传输。它必须是本地文件。在文件名前加上 package://
视觉元素的材质。可以在 "link "对象之外的顶层 "robot "元素中指定材质元素。在 link 元素中,您可以通过名称来引用材料。
材料名称
rgba 材料的颜色,由代表红/绿/蓝/阿尔法的四个数字组成,每个数字的范围为 [0,1]。
材料的纹理由文件名指定
刚体的碰撞属性。请注意,这可能与刚体的视觉属性不同,例如,为了减少计算时间,通常会使用更简单的碰撞模型。注意:同一刚体可以存在多个
指定刚体几何体部分的名称。这对引用刚体几何图形的特定的位非常有用。
碰撞元素相对于刚体参照系的参照系。
表示 x、y、z 偏移量。
表示以弧度为单位的固定轴滚动角、俯仰角和偏航角。
参见上述视觉元素中的几何描述。
在使用 ROS 运动规划软件包进行碰撞检测时,建议在 URDF 中添加的碰撞网格每个链接的面数越少越好(最好少于 1000 个)。如果可能,我们鼓励使用其他基元近似网格。
会议决定,URDF 不应支持多组碰撞体,尽管有时会有这方面的应用。URDF 仅用于表示机器人的实际属性,而不是用于控制器碰撞检查等外部用途的碰撞。在 URDF 中,
如果您确实需要更粗粒度、更大尺寸的碰撞几何图形来进行碰撞检查和控制器等操作,您可以将这些网格/几何图形移动到自定义 XML 元素中。例如,如果您的控制器需要一些特殊的粗糙碰撞检查几何体,您可以在
...
URDF 将忽略这些自定义元素,如 "collision_checking",而您的特定程序可以自行解析 XML 来获取这些信息。
关节元素描述了关节的运动学和动力学特性,还规定了关节的安全限制。
下面是一个关节元素的示例:
关节元素有两个属性:
指定接头的唯一名称
指定关节类型,其中类型可以是以下之一:
revolute - 沿轴线旋转的铰链接头,其范围由上下限指定。
continuous - 一种绕轴旋转的连续铰链接头,没有上下限。
prismatic - 沿轴线滑动的滑动接头,其范围受上下限的限制。
fixed - 这不是真正意义上的关节,因为它不能移动。所有自由度都被锁定。这种关节不需要
floating - 这种关节允许所有 6 个自由度的运动。
planar - 这种关节允许在垂直于轴的平面内运动。
joint 元素包含以下元素:
这是从父刚体(link)到子刚体(link)的转换。如上图所示,关节点位于子刚体(link)的原点。
代表 x、y、z 偏移量。所有位置的单位都是米。
代表绕固定轴的旋转:首先绕 x 轴旋转,然后绕 y 轴旋转,最后绕 z 轴旋转。
带有强制属性的父刚体(link)名称:
该刚体(link)在机器人树结构中的父刚体(link)名称。
带有强制属性的子刚体(link)名称:
作为子刚体(link)的刚体(link)名称。
关节坐标系中指定的关节轴。对于旋转关节,这是旋转轴;对于棱柱关节,这是平移轴;对于平面关节,这是表面法线。轴在关节参考坐标系中指定。固定关节和浮动关节不使用轴字段。
代表矢量的(x、y、z)分量。矢量应进行归一化处理。
关节的参考位置,用于校准关节的绝对位置。
当关节向正方向移动时,该参考位置将触发一个上升沿。
当关节向正方向移动时,该参考位置将触发下降沿。
指定关节物理属性的元素。这些值用于指定关节的建模属性,对仿真特别有用。
关节的物理阻尼值(对于棱柱关节,单位为牛顿-秒/米[N∙s/m];对于旋转关节,单位为牛顿-米-秒/弧度[N∙m∙s/rad])。
关节的物理静摩擦力值(对于棱柱形关节,单位为牛顿[N];对于反卷形关节,单位为牛顿-米[N∙m])。
元素可包含以下属性:
指定关节下限的属性(对于旋转关节,单位为弧度;对于棱柱关节,单位为米)。如果关节是连续的,则省略。
指定关节上限的属性(对于旋转关节以弧度为单位,对于棱柱关节以米为单位)。如果关节是连续的,则省略。
用于执行最大关节力的属性(|applied effort| < |effort|)。请参阅安全限制。
用于执行最大关节速度的属性(对于旋转关节,单位为弧度/秒 [rad/s];对于棱柱关节,单位为米/秒 [m/s])。请参阅安全限制。
该标签用于指定已定义的关节模仿另一个现有关节。该关节的值可计算为:value = multiplier * other_joint_value + offset。
预期和可选属性:
指定要模仿的关节名称。
指定上述公式中的乘法因子。
指定在上述公式中添加的偏移量。默认值为 0(外旋关节为弧度,棱柱关节为米)
元素可包含以下属性:
指定安全控制器开始限制关节位置的下关节边界的属性。该限制必须大于关节下限(见上文)。更多详情,请参阅安全限制。
指定接头上限边界的属性,安全控制器从此处开始限制接头位置。该限制必须小于关节上限(见上文)。详情请参阅安全限制。
指定位置和速度限制之间关系的属性。详情请参阅安全限值。
指定力度和速度限制之间关系的属性。详情请参阅安全限制。
统一机器人描述格式(URDF)是一种描述机器人的 XML 规范。我们试图尽可能保持该规范的通用性,但该规范显然无法描述所有机器人。目前的主要限制是只能表示树形结构,排除了所有并联机器人。此外,本规范假定机器人由通过关节连接的刚性连接组成;不支持柔性元素。规范包括
机器人的描述由一组刚体(link)元素和一组将刚体(link)连接在一起的关节元素组成。因此,典型的机器人描述是这样的
...
...
...
....
....
....
可以看到,URDF 格式的根元素是
描述 | 图形 | 惯量张量矩 |
---|---|---|
实心球,半径为r,质量为m | ||
空心球,半径为r,质量为m | ||
实心椭球,半轴为a、b、c,质量为m | ||
圆锥,半径为r,高为h,质量为m | ||
实心长方体,高为h,宽为w,长为d,质量为m | ||
端点绕y轴旋转的细棒,长为l,质量为m | ||
中心绕y轴旋转的细棒,长为l,质量为m | ||
实心圆柱,半径为r,高为h,质量为m | ||
两端开通的厚圆柱,内半径为r1,外半径为r2,高为h,质量为m |