机器人SLAM技术及其ROS系统应用教学课件第三章_第1页
机器人SLAM技术及其ROS系统应用教学课件第三章_第2页
机器人SLAM技术及其ROS系统应用教学课件第三章_第3页
机器人SLAM技术及其ROS系统应用教学课件第三章_第4页
机器人SLAM技术及其ROS系统应用教学课件第三章_第5页
已阅读5页,还剩23页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ROS系统的SLAM技术第三章目录CONTENTS01ROS系统02基于ROS系统的机器人实践03基于ROS系统的SLAM开源方案01ROS系统ROS从某种意义上说是一个操作系统(OS),它能够提供类似操作系统所能提供的功能,包括硬件抽象描述、底层启动管理、公共功能的执行、程序间消息的传递以及程序发行包管理,它也能提供工具程序和库,用于获取、建立、编写和运行多机整合的程序。ROS的首要设计目标是在机器人研发领域提高代码的复用率。ROS系统的应用1.ROS的起源2.ROS的五个特点(1)点对点设计节点单元分布式网络RPC+TCP/UDP通信系统(2)多语言支持支持Python、C++、Java等编程语言语言无关的接口定义(3)精简与集成每个功能节点可以单独编译集成众多开源项目接口统一、提高软件复用性(4)工具包丰富3D可视化工具—rviz物理仿真环境—gazebo数据记录工具—rosbagQT工具箱—rqt_*rvizrqt_plot(5)免费且开源BSD许可,可修改、可复用、可商用软件包数量指数级增加,良好的生态系统3.ROS文件系统级文件系统级是用于描述可以在硬盘上查找到的代码及可执行文件程序,在这一级中将使用一组概念来解释ROS的内部组成、文件架构以及工作所需的核心文件。ROS文件系统主要概念(1)功能包(package):功能包是ROS软件组织的基本形式,是构成ROS的基本单元。一个功能包可以包含多个可执行文件(节点)。(2)功能包清单(packagemanifest):记录功能包的基本信息。(3)综合功能包(Metapackage):也称元功能包,将几个具有某些功能的功能包组织在一起。(4)综合功能包清单(Metapackagemanifest):会包含运行时所需要依赖的功能包或者声明一些引用的标签。(5)消息类型(.msg):消息是ROS节点之间发布/订阅的通信消息。(6)服务类型(.srv):服务类型定义了ROS服务器/客户端通信模型下的请求与应答数据类型。文件系统级4.ROS计算图级计算图级体现的是进程与系统之间的通信,描述程序是如何运行的。ROS会创建一个连接所有进程的网络,子系统中的任何节点都可以访问此网络,并通过该网络与其他节点交互,获取其他节点发布的消息,并将自身的数据发布到网络上。计算图级(1)节点(Node):执行运算任务的进程。在ROS系统中,节点是最小的进程单元。一个软件包里面可以有多个可执行文件,可执行文件在运行之后就成了一个进程(这个进程便是一个节点)。(2)节点管理器(NodeMaster):master在整个网络通信架构里相当于管理中心,管理着各个node。node首先在master处进行注册,之后master会将该node纳入整个ROS程序中。(3)消息(Message):节点之间最重要的通信机制就是基于发布/订阅模型的消息通信。消息包含一个节点发送到其他节点的数据信息,节点是通过消息实现彼此的逻辑联系与数据交换。(4)主题(Topic):单向异步通信机制,传输消息(Message)。在这种机制中,Message以一种发布/订阅的方式进行传递(Publish-Subscribe).每个Topic的消息类型都是强类型,发布到其上的Message都必须与Topic的ROS消息类型匹配,而且节点只能接收类型匹配的消息。单向异步通信机制(5)服务(Service):双向同步通信机制,ROS中称其为“服务”,传输请求/应答数据,是一个request-reply模型.与主题不同的是,ROS中只允许有一个节点提供指定命名的服务。这种机制不仅可以发送消息,还存在反馈。双向同步通信机制(6)参数服务器(ParameterServer):参数服务器能够是数据通过关键词存储在一个系统的核心位置(节点管理器)。通过使用参数就能够在运行时配置节点或改变节点的工作任务。(7)消息记录包(Bag):用于记录和回放ROS消息数据的文件格式,保存在.bag文件中。Bag是一种用于存储数据的重要机制,它可以获取并且记录各种难以收集的传感器数据,程序可以通过Bag反复获取实验数据,常用于调试算法。rosparam支持参数6.ROS开源社区级(1)发行版(Distribution):ROS发行版包括一系列带有版本号、可以直接安装的功能包。(2)软件源(Repository):ROS依赖于共享网络上的开源代码,不同的组织机构可以开发或者共享自己的机器人软件。(3)ROS维基(ROSwiki):记录ROS信息文档的主要论坛。(4)邮件列表(Mailinglist):交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问。(5)ROS问答(ROSAnswer):咨询ROS相关问题的网站。(6)博客(Blog):发布ROS社区中的新闻、图片、视频等,网址是/news。ROS开源社区ROS系统实现三个层次02基于ROS系统的机器人实践

TurtleBot第一代发布于2010年,两年后发布了第二代产品。前两代TurtleBot都使用iRobot的机器人作为底盘,在底盘上可以装载激光雷达、Kinect等传感器,使用PC搭载基于ROS的控制系统。

TurtleBot3彻底颠覆了原有TurtleBot的外形设计,成本进一步降低,而且模块化更强,可以根据开发者的需求自由改装。TurtleBot2主要结构示意图在本书中,主要介绍的版本是TurtleBot2,TurtleBot2主要构成如图所示,其主要包含三个部分,Kobuki底盘、主机以及传感器Kinect。Kobuki底盘:Kobuki是Yujin公司开发的移动机器人底盘,机器人接口控制板有32个内置传感器,两个驱动轮,2个从动轮共四个可移动小轮,110度/秒单轴陀螺仪,一对编码器,一个可以扩大的输入输出端口和一个后挡板。开放式接口可以直接实现对机器人的移动、声音、显示以及输入传感器的操作。Kobuki底盘

最初TurtleBot2所带的传感器是微软在2009年发布的kinectV1深度传感器在2014年微软公司发布了Kinect的二代产品。现在的TurtleBot2所配备的传感器Kinect2.0。

kinect1Kinect2Kinect1,彩色摄像头为640*480,深度摄像头为320*240,可以同时检测到2名用户的姿势可以检测到人体20个关节点检测范围为0.8m-4.0m角度(水平57°垂直43°)Kinect2,彩色摄像头为1920*1080,深度摄像头为512*424,可以同时检测到6名用户的姿势可以检测到人体25个关节点检测范围为0.5m-4.5m角度(水平70°垂直60°)03基于ROS系统的SLAM开源方案基于ROS的开源SLAM方案就非常多,总共可以分为两个大类,分别是基于激光雷达的开源方案以及基于视觉的开源方案。1.基于激光雷达的SLAM算法(1)HectorSLAMHectorSLAM是一种结合了鲁棒性较好的扫描匹配(scanmatching)算法的2D激光SLAM方法,同时在该方案中使用了惯性传感系统的导航技术。要求:高更新频率、低测量噪声的激光扫描仪,不需要里程计特点:内存中有不同的地图,同时使用之前估计的姿势来更新它们,计算成本很低,且地图总是保持一致。HectorSLAM多分辨率地图(2)Gmapping这是一种基于Rao-Blackwellized的粒子滤波SLAM方法。基于粒子滤波的算法用许多加权粒子表示路径的后验概率,每个粒子都给出一个重要性因子。特点:●通常需要大量的粒子才能获得比较好的的结果,从而增加该算法的计算复杂性。

●与PF重采样过程相关的粒子退化耗尽问题降低了算法的准确性。30粒子80粒子Gmapping基于不同粒子数的地图(3)CartographerCartographer是谷歌推出的一套基于图优化的SLAM算法,该算法以栅格的形式来建立地图,并且将局部匹配直接表示成一个非线性优化问题,后端用图来优化。特点:

●目标是降低计算资源消耗、实时优化并且不追求高精度。●整个算法的核心代码依赖很少Cartographer地图2.基于视觉的SLAM算法MonoSLAM以扩展卡尔曼滤波为后端,追踪前端非常稀疏的特征点。

●第一个实时的视觉SLAM系统

●应用场景窄,路标数量有限,稀疏特征点非常容易丢失PTMA实现了跟踪与建图过程的并行化,跟踪部分需要实时响应图像数据,而对地图的优化则没必要实时的计算。也就意味着后端优化可以在后端进行,然后在必要的时候进行线程同步即可。 ●

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论