机器人描述格式-URDF详解

URDF格式在ROS中是一个非常重要的机器人模型描述格式,URDF采用各种标签描述具体的机器人模型

1 机器人名称描述

..........

robot name定义了机器人的名称

标签是完整机器人模型最顶层的标签,.....等其他标签都必须包含在

....................................里面

2 描述标签
 
   
       
       
       
   

   
                                          
       
            
       

         
            
       

   

   
       
       
            
       

   

link标签用于描述机器人某个刚体部分的外观和物理属性,包括尺寸 颜色 形状 惯性矩阵和碰撞参数等。

其中 .........用于描述link的惯性参数其中是以千克为单位定义的组件重量,

3×3的转动惯量矩阵。

.........用于描述机器人link部件的外观参数。

..........用于描述link的碰撞属性一般检测碰撞区域大于外观可视的区域,只要与collision区域

相交即可认为与该部件发生碰撞。

3 机器人关节属性连接标签

标签用于描述机器人关节运动学和动力学属性,包括关节运动位置速度等,关节的type运动形式为以下几种

机器人描述格式-URDF详解_第1张图片

标签

type="continuous">
    
    
    
    
    
    
    

必须指定parent link和child link参数,其他参数可选

关节的参考位置,用于矫正关节的绝对位置

用于描述关节的物理属性,若阻尼 摩擦等

用于描述运动的一些极限值,比如关节的上下运动的极限角度等

标签用于选择以下属性:effort(关节所承受的最大力),lower(赋值给关节的下限,旋转关节的单位

是弧度,移动关节的单位是米),upper(赋值给关节的上限),velocity(强制关节的最大速度)

4 创建一个简单机器人模型例子解析


    //robot name 标签用于定义所描述机器人的名称

     
          //
                                             
           
               
           

             
               
           

       

   

    //link标签描述了机器人某个刚体部分的外观和物理属性,包括尺寸,颜色,形状惯性和碰撞参数等,visual...../visual 标签描述机器人某个部件的外观参数等。origin 标签描述了所绘制外观geometry的坐标起点,一般对于规则形状的外观坐标起点位于规则形状的重心位置, cylinder 标签描述了这个圆柱体的尺寸,material 标签用于描述外观的颜色等信息

    //joint...../joint标签用于描述机器人关节的运动学和动力属性
                
       
       
   

   //上述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 关于坐标偏移量,如下图所示一个运动部分由好几个关节组成

机器人描述格式-URDF详解_第2张图片

图中左下角为坐标参考点,在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"坐标的量。

 

 

 

 

你可能感兴趣的:(ROS)