ROS以及SLAM简介
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. ROS的特点
2. ROS的特点
分布式 点对点 • ROS采用了分布式的框架,通过点对点的设计让机器人的
进程可以分别运行,便于模块化的修改和定制,提高了 系统的容错能力。
2. ROS的特点
多种语言支持
• ROS支持多种编程语言。C++、Pyhton和已经在ROS中实 现编译,是目前应用最广的 ROS开发语言,C#、Java等 语言的测试库也已经实现。为了支持多语言编程, ROS 采用了一种语言中立的接口定义语言来实现各模块之间 消息传送。通俗的理解就是,ROS的通信格式和用哪种编 程语言来写无关,它使用的是自身定义的一套通信接口。
1.1 SLAM测距方法
• 第三种常用的测距方式是通过视觉进行测距。传统上来说, 通过视觉进行测距需要大量的计算,并且测量结果容易随着 光线变化而发生变化。如果机器人运行在光线较暗的房间内, 那么视觉测距方法基本上不能使用。但最近几年,已经存在 一些解决上述问题的方法。一般而言,视觉测距一般使用双 目视觉或者三目视觉方法进行测距。使用视觉方法进行测距, 机器人可以更好的像人类一样进行思考。另外,通过视觉方 法可以获得相对于激光测距和超声波测距更多的信息。但更 过的信息也就意味着更高的处理代价,但随着算法的进步和 计算能力的提高,上述信息处理的问题正在慢慢得到解决。
1. 什么是ROS?
• ROS是一个适用于机器人编程的框架,这个框架把原本 松散的零部件耦合在了一起,为他们提供了通信架构。 ROS虽然叫做操作系统,但并非Windows、Mac那样通常 意义的操作系统,它只是连接了操作系统和你开发的ROS 应用程序,所以它也算是一个中间件,基于ROS 的应用 程序之间建立起了沟通的桥梁,在这个环境上,机器人 的感知、决策、控制算法可以更好的组织和运行。
3. ROS优缺点
3. ROS优缺点
ROS为我们开发机器人带来了许多方便,然而它也确实存 在一些问题
3. ROS优缺点
3. ROS优缺点
总体来说,ROS更适合科研和开源用户使用,如果在工业 场景应用(例如无人驾驶)还需要做优化和定制。 为了解 决实际应用的问题,ROS2.0做了很大的改进,目前正在开 发之中,未来表现如何值得期待。
1. SLAM是啥?
• SLAM既可以用于2D运动领域(激光SLAM),也可以应 用于3D运动领域(视觉SLAM)。这里,我们将仅讨论 2D领域内的运动。
1.1 SLAM测距方法
• 目前比较常见的测距单元包括激光测距、超声波测距以 及图像测距三种。其中,激光测距是最为常用的方式。 通常激光测距单元比较精确、高效并且其输出不需要太 多的处理。其缺点在于价格一般比较昂贵(目前已经有 一些价格比较便宜的激光测距单元)。激光测距单元的 另外一个问题是其穿过玻璃平面的问题。另外激光测距 单元不能够应用于水下测量。
Gazebo物理仿真自建模型
4. ROS能够干什么?
• RViz(the Robit Visualization tool)机器人可视化工具,可 视化的作用是直观的,它极大的方便了监控和调试等操 作。
4. ROS能够干什么?
下位机: STM32F4 直流有刷电机 (配驱动器)
思岚A1 激光雷达
激光SLAM建图
4. ROS能够干什么?
4. ROS能够干什么?
• Gazebo是一个机器人仿真工具,模拟器,也是一个独立的开源机 器人仿真平台。
• Gazebo的功能很强大,可以进行机器人的运动学、动力学仿真, 能够模拟机器人常用的传感器(如激光雷达、摄像头、IMU等), 也可以加载自定义的环境和场景。
4. ROS能够干什么?
2. SLAM一般过程
2. SLAM一般过程
SLAM通常包括如下 几个部分 特征提取, 数据关联, 状态估计, 状态更新 以及特征更新等。
2. SLAM一般过程
• 图中三角形表示机器人, 星号表示路标;机器人首 先使用测距单元测量地标 相对于机器人的距离和角 度。
2. SLAM一般过程
• 然后进行开始进行运动, 并且到达一个新的位置, 机器人根据其运动方程预 测其现在所处于的新的位 置。
基于ROS的自主移动机器人环 境建模和路径规划研究
第一章 ROS简介
1. 什么是ROS?
1. 什么是ROS?
• ROS全名机器人操作系统(Robot Operating System, ROS) 是一个应用于机器人上的操作系统,它操作方便、功能 强大,特别适用于机器人这种多节点多任务的复杂场景。 因此自ROS诞生以来,受到了学术界和工业界的欢迎,如 今已经广泛应用于机械臂、移动底盘、无人机、无人车 等许多种类的机器人上。
2. SLAM一般过程
• 在新的位置,机器人通过 测距单元重新测量各个地 标相对于机器人的距离和 角度,测量得到的距离和 角度与上述预测结果可能 并不一致,因而,上述预 测值可能并不是机器人准 确位置。
1.1 SLAM测距方法
• 另外一个常用的测距方式是超声波测距。超生波测距以 及声波测距等以及在过去得到十分广泛的应用。相对于 激光测距单元,其价格比较便宜;但其测量精度较低。 激光测距单元的发射角仅0.25°,因而,激光基本上可以 看作直线;相对而言,超声波的发射角达到了30°,因而, 其测量精度较差。但在水下,由于其穿透力较强,因而, 是最为常用的测距方式。最为常用的超声波测距单元是 Polaroid超声波发生器。
2. ROS的特点
开源社区
• ROS具有一个庞大的社区ROS WIKI(/ ), 这个网站将会始终伴随着ROS的开发,无论是查阅功能包 的参数、搜索问题。当前使用ROS开发的软件包已经达到 数千万个,相关的机器人已经多达上千款。此外,ROS遵 从BSD协议,对个人和商业应用及修改完全免费。这也促 进了ROS的流行。
第二章 SLAM简介
1. SLAM是啥图构建(Simultaneous Localization And Mapping)的缩写,SLAM主要用于解决移动机器人在 未知环境中运行时定位导航与地图构建的问题。 SLAM通常包括如下几个部分,特征提取,数据关联,状 态估计,状态更新以及特征更新等。