ROS仿真机器人---URDF的XML格式描述学习笔记(wiki教程)

一.link

标签用于描述机器人某个刚体部分的外观物理属性,包括尺寸(size)、颜色(color)、形状(shape)惯性矩阵(inertial matrix)、碰撞参数(collision properties)等。

link结构一般如下所示:


     ...... 
     ...... 
     ...... 

(1)属性:

name:link自身的名称(必须要用引号括起)

(2)子元素:

标签用于描述机器人link部分的外观参数

标签用于描述link的惯性参数

标签用于描述link的碰撞属性

下面具体介绍三个元素:三个元素都是可选项,在link标签下可有可无

1.

 (惯性参数)
     (初始坐标,可选,如果没有指定则使用默认值, 这是惯性参考系相对于link参考系的姿态。惯性参考系的原点必须位于重心。惯性参考系的轴不需要与惯性主轴对齐。)
        xyz (optional: defaults to zero vector,xyz坐标,表示偏移量,单位为米)
        rpy (optional: defaults to identity if not specified,绕x、y、z轴旋转,单位为弧度)
      
    
       link的质量由mass的值属性表示 

    
        3x3转动惯量矩阵,在惯量框架中表示。由于转动惯量矩阵是对称的,因此此处仅指定该矩阵对角线元素上方的6个元素,使用属性ixx、ixy、ixz、iyy、iyz、izz。 

2.

属性是必须要有的

 (定义外观属性,此元素指定用于可视化目的的对象(框、圆柱体等)的形状)
(注意:同一个link可以有多个visual标签,它们定义的几何图形的联合形成了link的视觉表示)
    name (visual名称,可选,指定link几何图形的一部分的名称。这对于能够参考link几何结构的特定位很有用。
     
 
     (必须要有的属性,描述link的几何形状,可从一下四种中选择)
         矩形,大小属性包含三个边长,原点在其中心.
         圆柱,指定半径和长度,原点在其中心.
         球体,指定半径,原点在其中心.
         通过该标签可以导入该模型的mesh文件
    

     (可选,可视化元素的材质)
        name 材料名称
         (可选,rgb是颜色值,a是透明度,数值范围在0-1)        
         (可选,材质的纹理可通过文件名指定)
    

3.

ROS仿真机器人---URDF的XML格式描述学习笔记(wiki教程)_第1张图片

检测碰撞的link区域大于外观可视区域,这就意味着只要其他物体与collision区域相交,就认为link发生碰撞。

 (link的碰撞属性,同一个link可存在多个collision)
     (可选)
    
        与前述相同
    

标签中的内容与标签中的内容几乎一致,这是因为我们使用的模型都是较为简单的规则模型,如果使用真实机器人的设计模型,标签内可显示复杂的机器人外观,但为了减少碰撞检测时的计算量,中往往使用简化后的机器人模型,例如将机械臂的一根连杆简化成为圆柱体或者长方体。

二.joint

joint元素描述了机器人关节的运动学和动力学属性,包括关节运动的位置和速度限制,并且指定了关节的安全限制。

joint的结构一般如下所示:


    
    
    
    
    
    ......

(1)属性:

joint元素中拥有两个属性

  1. name (必需的):指定joint的名字(唯一的)
  2. type (必需的):指定joint的类型,有下列选项:
  • revolute - 旋转关节,可绕单轴旋转,但有旋转的角度极限。
  • continuous - 旋转关节,可以绕单轴无限旋转
  • prismatic - 滑动关节,可以沿着一个轴滑动,有最大值和最小值限制。
  • fixed - 这不是一个实际的关节,因为它无法运动,所有的自由度都被锁定。这种类型的关节不需要指定轴、动力学特征、标度和最大值最小值限制。
  • floating - 浮动关节,允许进行平移、旋转运动(是一个具有6个自由度的关节)。
  • planar - 此关节在一个平面内运动,垂线是运动轴。

(2)子元素:

ROS仿真机器人---URDF的XML格式描述学习笔记(wiki教程)_第2张图片

从parent link到child link的变换,joint位于child link的原点,具体如图所示。
    xyz (optional: defaults to zero vector)
        代表x,y,z轴方向上的偏移,单位米。 
    rpy (optional: defaults 'to zero vector 'if not specified)
        代表绕着固定轴旋转的角度:roll绕着x轴,pitch绕着y轴,yaw绕着z轴,用弧度表示。 

 (必要的,parent link的名字是一个强制的属性)
    link
        parent link的名字,是这个link在机器人结构树中的名字。 

 (必要的,child link的名字是一个强制的属性)
    link
        child link的名字,是这个link在机器人结构树中的名字。 
 (optional: defaults to (1,0,0))
joint的axis轴在joint的坐标系中。这是revolute joint旋转的轴,prismatic joint移动的轴,是planar joint的标准平面。
这个轴在joint坐标系中被指定。fixed和floating类型的joint不需要用到这个字段。
    xyz (必要的,代表轴向量的x,y,z分量,这应该是一个标准化的向量。)

 (可选择的,joint的参考点,用来矫正joint的绝对位置。)
    rising (可选择的,当joint正向运动时,参考点会触发一个上升沿。)
    falling (可选择的,当joint正向运动时,参考点会触发一个下降沿。) 

 (可选择的,该元素用来指定joint的物理性能。它的值被用来描述joint的建模性能,尤其是在仿真的时候。)
    damping (optional, defaults to 0)
        joint的阻尼值。(移动关节为(N*s)/m ,旋转关节为(N*m*s)/rad)
    friction (optional, defaults to 0)
        joint的摩擦力值。(移动关节为N, 旋转关节为N*m)

 (required only for revolute and prismatic joint)
    该元素包含以下属性:
    lower (optional, defaults to 0)
    指定joint运动范围下界的属性(revolute joint的单位为弧度,prismatic joint的单位为米),连续型的joint忽略该属性。 
    upper (optional, defaults to 0)
    指定joint运动范围上界的属性(revolute joint的单位为弧度,prismatic joint的单位为米),连续型的joint忽略该属性。 
    effort (必要的,该属性指定了joint运行时的最大的力。)
    velocity (必要的,该属性指定了joint运行时的最大的速度。)

 (optional)
    这个标签用于指定已定义的joint来模仿已存在的joint。
    这个joint的值可以用以下公式计算 value = multiplier * other_joint_value + offset. 
    有如下可选的属性: 
    joint (必要的,需要模仿的joint的名字。)
    multiplier (optional)
    指定上述公式中的乘数因子。 
    offset (optional)
    指定上述公式中的偏移项。默认值为0(revolute joint的单位为弧度,prismatic joint的单位为米)。

 (optional)
    该元素包含下列属性:
    soft_lower_limit (optional, defaults to 0)
    该属性指定了joint安全控制边界的下界,是joint安全控制的起始限制点。这个值需要大于上述的limit中的lower值。 
    soft_upper_limit (optional, defaults to 0)
    该属性指定了joint安全控制边界的上界,是joint安全控制的起始限制点。这个值需要小于上述的limit中的upper值。
    k_position (optional, defaults to 0,本属性用于说明位置和速度之间的关系。) 
    k_velocity (必要的,本属性用于说明力和速度之间的关系。 

 

 

参考:

胡春旭:《ROS机器人开发实践》

http://wiki.ros.org/urdf/XML

http://www.guyuehome.com/372

你可能感兴趣的:(ROS)