ROS机器人项目开发11例(原书第2版)
上QQ阅读APP看书,第一时间看更新

3.5.2 软件参数

现在,我们已经有了机器人的规格参数,下面让我们了解一下构建一个移动机械臂所需要的ROS相关的信息。假设我们把移动机器人底座看作一个黑匣子:如果给它特定的速度,则机器人底座应该按指定速度移动,然后输出它移动到的位置。在ROS术语中,移动机器人通过一个名为/cmd_vel(命令速度)的话题接收信息,并发出/odom(里程计)。一个简单的消息传递过程如图3.3所示。

图3.3 将移动机器人底座视为黑盒时的消息传递

下面我们来了解一下消息格式。

1.ROS消息格式

/cmd_vel遵从geometry_msgs/Twist消息格式。该消息格式的具体内容参见http://docs.ros.org/melodic/api/geometry_msgs/html/msg/Twist.html

/odom遵从nav_msgs/Odometry消息格式。该消息格式的具体内容参见http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html

由于我们的机器人底座为2自由度的差分驱动机器人,因此无须解释其他相关消息格式。

2.ROS控制器

我们将使用diff_drive_controller插件对机器人底座的差分运动学模型进行定义。该插件定义了我们之前介绍过的机器人运动学公式,能够帮助我们实现机器人在空间中的运动。有关该插件的更多信息参见http://wiki.ros.org/diff_drive_controller