ROS 提高篇 之 A Mobile Base-02 — 控制移动平台 — “分封制”
我使用的虚拟机软件:VMware Workstation 11
使用的Ubuntu系统:Ubuntu 14.04.4 LTS
ROS 版本:ROS Indigo
注意:
1 . ROS 提高篇这个专栏的教学有门槛。
2 . 如果你没有学习前面的教程,请想学习前面的 beginner_Tutorials 和 learning_tf 的ROS 相关教程。
一 . 怎么理解 “分封制”:
控制一个移动的机器人,可能再不同的层次面进行。这些层表示不同的抽象含义。
开始的时候,我们直接控制电机,日后我们使用路径规划让机器人朝着一个方向行驶,并让它拥有同步定位和重建地图的能力。
我们 ROS 的控制阶层看起来就是这个样子的: (我们从最上层开始)
在ROS教程提高篇中,我们将学习上面这些运动控制抽象层都如何使用。但是在我们理解这些高级的move_base、Path Planner、 SLAM前,我们需要从基础的开始学习。
我们就从理解 odometry 开始:
二 . /odom
: (odometry : 里程计,就是车子方向盘下面的各种表)下面是它内部的参数:
std_msgs/Header header
string child_frame_id
// 子类坐标系geometry_msgs/PoseWithCovariance
pose
// 平移和旋转geometry_msgs/TwistWithCovariance
twist
// 线速度和角速度
它包含了一个机器人当前运动状态的所有信息。
其中 child_frame_id
就是机器人它自己的名字。
三 . 编码器:
什么是编码器,编码器的原理,如何使用,程序如何控制。这些问题如果你不懂,请看:电子模块 — 编码器 这一节的内容。
总结:下一节,我们来细讲:/odom
里面的 twist
( 线速度和角速度 ) 这个成员。