ROS:机器人描述(URDF、XACRO)

ROS:机器人描述(URDFXACRO

Urdf语法详解

Urdf教程:https://wiki.ros.org/urdf/Tutorials/Create%20your%20own%20urdf%20file

 

1.创建一个树型结构

Urdf中采用linkjoint构成树状的结构来描述机器人。

ROS:机器人描述(URDF、XACRO)_第1张图片 

首先需要定义一个base_link,在坐标系的原点。

2.添加位置

Urdf中通过orgin标签来定义link所在的位置。



  
  
  
  

 
    
    
    
  

 
    
    
    
  

 
    
    
    
  


origin:xyzparent link为原点,child link的三维坐标系位置。

origin:rpy child linkz轴旋转的滚动角(roll),绕y轴方向旋转的俯仰(pitch)角,和绕x轴旋转的偏转(yaw).

图中以base_link为基准,红色为x轴,绿色为y轴,蓝色为z轴。

 

 ROS:机器人描述(URDF、XACRO)_第2张图片

3.添加link外观

Deometry定义link形状

Material 定义link材料

Origin 定义link相对于自己原来的位置的变化

 


    
        
          
        
        
        
          
        
     
  

 

4.添加限制

Collision标签(碰撞)

Collision的内容与visiual中内容一样。

Axis joint定义旋转轴,例如(0 0 1)为以z轴旋转,(1 1 1)为以向量1 1 1为轴旋转,不指定以x轴旋转。

Limit 标签,限制joint的旋转范围。

从标签中可以看到上下限以及速度力矩等都是可以指定的.

 

建立一个smartcar模型

1.新建一个smartcar

catkin_create_pkg smartcar  std_msgs rospy roscpp urdf

2.包文件夹下新建urdf文件夹,且在urdf文件夹下新建smartcar.urdf文件

依据上面的语法创建的内容为



  
    
        
          
        
        
        
          
        
     
  

   
    
      
        
      
      
        
      
    
  

  
    
    
    
    
    
    
  

  
    
      
        
      
      
        
      
    
  

  
    
    
    
    
    
    
  


    
      
        
      
      
        
      
    
  

  
    
    
    
    
    
    
  

  
    
      
        
      
      
        
      
    
  

  
    
     
    
    
    
    
  


 

检查urdf文件语法:

check_urdf smartcar.urdf

可视化模型:

roslaunch urdf_tutorial display.launch model:=path/to/your/xxx.urdf gui:=true

 ROS:机器人描述(URDF、XACRO)_第3张图片

3.新建launch文件夹,且在launch文件夹下新建smartcar_rviz.launch文件

仿照上面的display.launch文件,编辑smartcar_rviz.launch文件

smartcar_rviz.launch


    
    
    
    
    
    
    
    


出来的效果与上一步中可视化的效果相同。

你可能感兴趣的:(ROS)