URDF文件


URDF

简介

  • Unified Robot Description Format,统一机器人描述格式,简称为URDF
  • ROS中的urdf功能包包含一个URDF的C++解析器,URDF文件使用XML格式描述机器人模型

解析

介绍

  • 完整机器人模型的最顶层标签
  • 标签都必须包含在标签内
  • 一个完整的机器人模型,由一系列组成

img

例子:


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

属性

  • name(必需):link的名字

介绍

  • urdf 中的 link 标签用于描述机器人某个部件(也即刚体部分)的外观和物理属性,比如:机器人底座、轮子、激光雷达、摄像头...每一个部件都对应一个 link, 在 link 标签内,可以设计该部件的形状(shape)、尺寸(size)、颜色(color)、惯性矩阵(inertial matrix)、碰撞参数(collision properties)等一系列属性

img

子标签

  • :描述机器人link部分的外观参数
    • :可视化对象的形状
      • box:矩形
      • cylinder:圆柱体
      • sphere:球体
      • mesh:网格,纹理(更为复杂的模型)
    • :设置偏移量与倾斜弧度
    • :可视化组件的材料
      • color:颜色
    • :材料属性(纹理)
  • :描述link的惯性参数
    • :定义连杆质心坐标
    • :连杆的质量
    • :惯性张量
  • :描述link的碰撞属性
    • :碰撞组件的参考坐标系相对于连杆坐标系的参考坐标系
    • :与上述geometry元素描述相同

例子:


   
     
     
     
   

   
     
     
       
     
     
       
     
   

   
     
     
       
     
   
 

介绍

  • urdf 中的 joint 标签用于描述机器人关节的运动学和动力学属性,还可以指定关节运动的安全极限,机器人的两个部件(分别称之为 parent link 与 child link)以"关节"的形式相连接,不同的关节有不同的运动形式::旋转、滑动、固定、旋转速度、旋转角度限制等等,比如:安装在底座上的轮子可以360度旋转,而摄像头则可能是完全固定在底座上
  • joint标签对应的数据在模型中是不可见的

img

属性

  • (必需):指定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来模仿已存在的joint
    • joint:需要模仿的joint的名字
    • multiplier:指定上述公式中的乘数因子
    • offset:指定上述公式中的偏移项,默认值为0
  • :描述安全控制器参数
    • soft_lower_limit:该属性指定了joint安全控制边界的下界,是joint安全控制的起始限制点,默认为0
    • soft_upper_limit:该属性指定了joint安全控制边界的上界,是joint安全控制的起始限制点,默认为0
    • k_position:本属性用于说明位置和速度之间的关系
    • k_velocity:本属性用于说明力和速度之间的关系

例子:

 
    
    
    

    
    
    
    
    
 
ROS