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 ( 线速度和角速度 ) 这个成员。

ROS Learning-026 (提高篇-004 A Mobile Base-02) 控制移动平台 --- “分封制”的更多相关文章

  1. ROS Learning-025 (提高篇-003 A Mobile Base-01) 控制移动平台

    ROS 提高篇 A Mobile Base-01 - 控制移动平台 - 基本知识 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 ...

  2. ROS Learning-031 (提高篇-009 A Mobile Base-07) 控制移动平台 --- (操作)人机交互

    ROS 提高篇 之 A Mobile Base-07 - 控制移动平台 - (操作)人机交互 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...

  3. ROS Learning-030 (提高篇-008 A Mobile Base-06) 控制移动平台 --- (Python)odom导航的例子:移动一个方块路径

    ROS 提高篇 之 A Mobile Base-06 - 控制移动平台 - (Python)再次使用odom导航的一个例子:移动一个方块路径 我使用的虚拟机软件:VMware Workstation ...

  4. ROS Learning-029 (提高篇-007 A Mobile Base-05) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(精确的制定目标位置)

    ROS 提高篇 之 A Mobile Base-05 - 控制移动平台 - (Python编程)控制虚拟机器人的移动(精确的制定目标位置) 使用 odometry 消息类型 重写 out_and_ba ...

  5. ROS Learning-028 (提高篇-006 A Mobile Base-04) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(不精确的制定目标位置)

    ROS 提高篇 之 A Mobile Base-04 - 控制移动平台 - (Python编程)控制虚拟机器人的移动(不精确的制定目标位置) 我使用的虚拟机软件:VMware Workstation ...

  6. ROS Learning-027 (提高篇-005 A Mobile Base-03) 控制移动平台 --- Twist 消息

    ROS 提高篇 之 A Mobile Base-03 - 控制移动平台 - Twist 消息 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...

  7. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  8. ROS Learning-024 (提高篇-002) rviz的安装和使用

    ROS 提高篇-002 - rviz 的安装和使用 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LTS ROS 版本:ROS ...

  9. ROS Learning-023 (提高篇-001) 准备工作 --- 安装一些必要的软件包

    ROS 提高篇-001 - 准备工作 - 安装一些必要的软件 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LTS ROS 版本 ...

随机推荐

  1. 慕课网python分布式爬虫打造搜索引擎视频中爬取伯乐网文章

    代码:https://github.com/longbigbeard/scrapy_demo

  2. GEF入门实例_总结_03_显示菜单和工具栏

    一.前言 本文承接上一节: GEF入门实例_总结_02_新建初始RCP空项目 这一节,我们来给我们的插件加上菜单. 二.基础知识 1.action bar.menubar.coolbar   含义 a ...

  3. 【暂时解决】win10下安装VS2017 15.3版本 提示 未能安装包“Microsoft.NET.4.6.FullRedist.NonThreshold.Resources,version=4.6.81.9,language=zh-CN”。

    win10下安装VS2017 15.3版本的时候,出现以上错误日志提示,请问如何解决的哇? 这个问题,开始我以为是我的安装包所在的路径问题引起的,但是我将安装包移动到了磁盘根目录进行安装,依然出现这个 ...

  4. dilworth定理的通俗讲解

    度娘定义:在数学理论中的序理论与组合数学中,Dilworth定理根据序列划分的最小数量的链描述了任何有限偏序集的宽度.其名称取自数学家Robert P. Dilworth. 反链是一种偏序集,其任意两 ...

  5. Django上传文件的两种方式

    基于form表单上传文件 HTML <h3>基于form表单的上传文件</h3> <form action="" method="post& ...

  6. group by 和 聚合函数

    1.在oracle中 select * from Table group by id 会报错. 会报不是group by 表达式.为什么一定不能是 * ,而必须是分组的列或者某个列的聚合函数. 在my ...

  7. 观后感|当幸福来敲门 The Pursuit of Happyness

    更好的阅读体验请点击:当幸福来敲门 The Pursuit of Happyness 看到时光机点亮的那一刻,我想儿子克里斯托夫正在侏罗纪的世界内探险,看着山川河流,穿梭在恐龙的脚下,在山洞中安稳的度 ...

  8. swing之flowlayout

    import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; //1.继承 JFrame类 // ...

  9. ASP.NET 整理比较全的URL重写解决方案

    经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自 ...

  10. http请求在asp.net中的请求过程

    当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会 ...