ROS学习初探之自建小车模型并进行仿真(二)

URDF文件转xacro文件,并加入控制插件

一、URDF文件

我们都知道URDF是ROS中机器人模型的描述格式,包含对机器人刚体外观、物理属性、关节类型等方面的描述。我们先看看从SolidWorks中导出的URDF文件。我们打开tianbot_mini_description.urdf:




  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
  

 
     Gazebo/Yellow 
    
  
     Gazebo/Black 
    
  
     Gazebo/Black 
    
  
     Gazebo/Blue 
    
   
     Gazebo/Red 
    


我们再看看URDF中各个link的关系图:
ROS学习初探之自建小车模型并进行仿真(二)_第1张图片
我们可以看到从SolidWorks导出的URDF文件,已经配置好了物理属性和碰撞属性,可以在gazebo中打开。并且我配置了一下各个link 的颜色,用gazebo打开后就能看到颜色变了。

二、配置xacro文件

我们知道xacro文件是针对URDF模型产生的另一种精简版、可复用、模块化的描述形式。首先创建一个tianbot_mini.urdf.xacro文件,我们在模型< robot>标签中加入xacro的声明:



接着把上面的URDF文件除去最上面两行全部放进去。

添加传动装置

我们的机器人模型可看作一个两轮差速驱动的机器人,通过调节两个轮子的速度比例,完成前进、转向、倒退等动作。此时需要加入驱动机器人运动的动力源,为使用ROS控制驱动机器人,需要在模型中加入transmission元素,将传动装置与joint绑定。

 
 
        
            transmission_interface/SimpleTransmission
            
                hardware_interface/VelocityJointInterface
            
            
                hardware_interface/VelocityJointInterface
                1
            
        
    

 
  

添加gazebo控制器插件

我们直接加入gazebo提供的libgazebo_ros_diff_drive.so两轮差速插件,可以将其应用到现有的机器人模型上。


        
            
                Debug
                true
                /
                1
                true
                true
                100.0
                true
                left_wheel_joint
                right_wheel_joint
                0.1
                0.043
                1
                30
                1.8
                cmd_vel
                odom 
                odom 
                base_footprint
            
         

注意leftJoint和rightJoint标签中间要输入自己机器人的左右jointname,wheelSeparation和wheelDiameter标签中间要输入自己机器人的轮间距和轮直径。
到现在xacro文件已经配置好了,我们可以看一看总的



  
    
      
      
   。
   。
   。
   中间太长,我给删了
   。
   。
   。
  
    
    
    
    
  

 
     Gazebo/Red 
    
  
     Gazebo/Black 
    
  
     Gazebo/Black 
    
  
     Gazebo/Blue 
    


 
 
        
            transmission_interface/SimpleTransmission
            
                hardware_interface/VelocityJointInterface
            
            
                hardware_interface/VelocityJointInterface
                1
            
        
    

 
  

        
            
                Debug
                true
                tianbot_mini
                1
                true
                true
                100.0
                true
                left_wheel_joint
                right_wheel_joint
                0.1
                0.043
                1
                30
                1.8
                cmd_vel
                odom 
                odom 
                base_footprint
            
         



现在的xacro文件可以通过launch文件打开,并且用键盘控制节点进行小车的控制,这些我们放到下一话再讲。

小结

本节我们简单了解了一下URDF文件和xacro文件,并且说明了如何配置二轮差速小车在gazebo环境中的控制器插件,也就是简单了解一下ros_control。
下一节,由我来说一说配置launch文件和yaml文件,并在gazebo环境中实现对小车的控制,并调用激光雷达插件,在rviz中看到点云数据。
接下去的内容会在古月居的论坛,tianbot_mini板块中同步更新,敬请期待。

参考资料

1.古月老师的<>

你可能感兴趣的:(ROS学习,自动驾驶,人工智能,机器学习)