ROS 提高篇 之 A Mobile Base-02 — 控制移动平台 — “分封制”


我使用的虚拟机软件:VMware Workstation 11

使用的Ubuntu系统:Ubuntu 14.04.4 LTS

ROS 版本:ROS Indigo


注意:

1 . ROS 提高篇这个专栏的教学有门槛。

2 . 如果你没有学习前面的教程,请想学习前面的 beginner_Tutorialslearning_tfROS 相关教程。


一 . 怎么理解 “分封制”:

控制一个移动的机器人,可能再不同的层次面进行。这些层表示不同的抽象含义。

开始的时候,我们直接控制电机,日后我们使用路径规划让机器人朝着一个方向行驶,并让它拥有同步定位和重建地图的能力。


我们 ROS 的控制阶层看起来就是这个样子的: (我们从最上层开始)

Created with Raphaël 2.1.0( Semantic Goals )语音控制 (你对机器人说一句:"去把桌子上的杯子递给我"。机器人将语音信息解析并翻译成一系列动作。)( SLAM )同步定位和重建地图 (机器人每移动一步都会对自身在world坐标系中进行重新坐标定位,并且将看到的新景象融合当world坐标系中) ( Path Planner )路径规划 (当你让机器人移动到world坐标系中的一个指定的地方(即指定坐标),机器人会在当前已知的地图上分析出行驶路线(全局路径), 这就是路径规划)move_base (分析完路径之后,机器人在移动的过程中分析下一步如何移动,同时避开障碍物(即不断的分析局部路径),直到机器人到达目的地。) /cmd_vel + /odom (move_base会将分析出来的局部路径转换成一系列的/cmd_vel控制命令和/odom信息(/odom就是当前机器人的状态))(/odom是什么?下面有讲)Base Controller (上面得到的/cmd_vel控制命令会控制机器人的移动平台运动,这些控制命令会通过PID算法控制电机转动。)Motor Speeds (电机转动后,编码器读取电机转动的速度,再反馈给上面的PID算法,使Base Controller得以理想的实现/cmd_vel命令的要求。)

在ROS教程提高篇中,我们将学习上面这些运动控制抽象层都如何使用。但是在我们理解这些高级的move_basePath PlannerSLAM前,我们需要从基础的开始学习。


我们就从理解 odometry 开始:

二 . /odom : (odometry : 里程计,就是车子方向盘下面的各种表)下面是它内部的参数:

它包含了一个机器人当前运动状态的所有信息。

其中 child_frame_id 就是机器人它自己的名字。


三 . 编码器:

什么是编码器编码器的原理,如何使用,程序如何控制。这些问题如果你不懂,请看:电子模块 — 编码器 这一节的内容。


总结:下一节,我们来细讲:/odom 里面的 twist ( 线速度和角速度 ) 这个成员。

最新文章

  1. [Phalcon] Phalcon系统默认事件列表
  2. 做了一个简易的git 代码自动部署脚本
  3. android学习笔记35——AnimationDrawable资源
  4. HDU4804 Campus Design 轮廓线dp
  5. mysql distinct跟group by性能
  6. 【有源汇上下界最大流】ZOJ 3229 Shoot the Bullet
  7. bzoj 3572 [Hnoi2014]世界树(虚树+DP)
  8. Protel 99SE PCB 打印技巧
  9. android 自己定义开关(SwitchButton)
  10. MySQL数据库主从分离的配置方法
  11. nmap用法
  12. 洛谷 P3953 逛公园
  13. java笔记 -- java简单结构代码解析及注释
  14. Linux 下编译 有多个子程序文件的Fortran程序
  15. ecshop You don't have permission to access / on this server
  16. tmocat ssl 证书 生成 过程
  17. 让Mac风扇面对PD不再疯狂
  18. 再学C/C++ 之 指针常量 和 常量指针
  19. MySQL之联合索引
  20. EasyNVR网页/微信播放RTSP摄像机HLS/RTMP播放时出现起播等待问题的优化过程

热门文章

  1. Linux常用命令知识积累
  2. nyoj-158-省赛来了(组合数)
  3. brew安装php和扩展
  4. Python函数-input()
  5. bzoj 4503 两个串——FFT
  6. bzoj 2982 combination——lucas模板
  7. SSL与TLS的区别
  8. Erlang pool management -- Emysql pool optimize
  9. 【HTML代码】访问页面时,拨打页面中的电话号码
  10. HDU2181(基础dfs)