ROS中3D机器人建模(五)

一.创建一个差速驱动移动机器人模型

前面我们已经创建了一个7-DOF机械臂机器人模型,接下来我们将创建一个差速机器人模型,差速轮式机器人在机器人底盘的两端安装两个轮子,

整个底盘由一个或两个脚轮支撑。轮子将通过调节速度来控制机器人的移动速度,如果两个马达以相同的速度运行,轮子会向前或者向后移动。

如果一个轮子的速度比另一个轮子慢,机器人就会偏向低速的那一边。

差速机器人由5个关节和5个连杆,两个主要的关节将轮子连接到机器人上。其余3个是固定关节,2个用于经支撑脚轮连接到机器人主体上,1个

用于将底盘连接到机器人主体上。

差速机器人的连杆与关节连接图如下:

ROS中3D机器人建模(五)_第1张图片

 

 

接下来我们来解析差速机器人的代码,文件为:diff_wheeled_robot.xacro

机器人被命名为differential_wheeled_robot,还包含一个名为wheel.urdf.xacro的URDF文件。xacro文件包含轮子的定义及其传动方式。

如果我们使用该xacro文件,就可以避免为两个轮子写两套定义,因为两个轮子在形状和大小上是相同的,我们采用xacro的定义:

  1                                                      
  2 
  3 
  4    

 轮子的定义在wheel.urdf.xacro中给出。我们可以指定轮子是否必须放在左边、右边、前面或后面。使用这个宏,我们最多可以创建4个轮子,但目前我们只需要两个:

19    
20     

 我们还指定了仿真所需的Gazebo参数。这里提到的是与轮子相关的Gazebo参数。我们可以用gazeboreference标签说明摩擦系数和刚度系数:

41     
42       
43       
44       
45       
46       
47       Gazebo/Grey
48       false
49     

 我们为轮子定义的关节是连续转动关节,因为在轮子关节中没有任何限值,这里的parent link是机器人底盘,child link是每个轮子:

51     
52       
53       
54        

 我们还需要设定每个轮子的transmission标签。该轮子的宏定义如下:

60     
61     
62       transmission_interface/SimpleTransmission
63       
64       
65         EffortJointInterface
66         1
67       
68     
69    
70   
71                    

 在diff_wheeled_robot.xacro中,我们可以用以下命令来使用wheel.urdf.xacro中定义的宏:

241   
242   

 使用前面的几行代码,我们定义了机器人底盘的左侧和右侧的轮子。机器人底盘是圆柱形的。

下面给出了惯性计算的宏定义,xacro代码段将使用圆柱的质量、半径和高度来计算惯性张量,代码如下:

72   
 73   
 74      
 77   

 

下面给出了启动文件的定义,可用于在RViz中显示该机器人模型。启动文件命名为view_mobile_robot.launch:

 1                                                                            
 2     
 3     
 4     
 5     
 6     
 7     
10     
11     
12     
13 

 与机械臂URDF文件相比较,唯一区别是名称不同,其他部分都是一样的。

我们用以下命令查看移动机器人:

$roslaunch mastering_ros_robot_description_pkg view_mobile_robot.launch

机器人如下:

ROS中3D机器人建模(五)_第2张图片

 

 

你可能感兴趣的:(ROS中3D机器人建模(五))