1.背景介绍
什么是ROS?
2.ROS概述
History of ROS
基本概念:
1.节点:可以理解为算法模块(感知模块,定位模块,控制模块等)。节点之间相互独立,可以相互通信。
2.节点管理器:ROS core。把一些无序的节点,松耦合的节点有序的管理起来。轻量级。
3.topic:两个节点之间建立消息通信的时候他们的主题,内部使用的数据格式是MSG
4.上述概念有完整的命令行工具支持
- SAMPLE:
Roslaunch:便于启动节点,但不会启动ROS core
ROS的编译系统:
Roslaunch:其实是一个SHELL脚本文件。
Gazebo Simulator仿真工具
3.Apollo ROS原理1
不足:一些试验性项目,topic(MSG)数据量较小,实际情况大得多,存在很大的性能瓶颈,使得时间延迟非常高,非常危险。单中心化的网络,存在明显的单点风险,数据交互存在风险。
Apollo在实践当中的三种模块:
- 1.通信性能优化:共享内存减少传输中的数据拷贝,显著提升传输效率
- 2.单点网络拓扑,到多对多网络拓扑的优化
- 3.数据格式的向后兼容
4.Apollo ROS原理2
去中心化网络拓扑:ROS以master为中心建立起来的hybrid p2p拓扑网络
节点建立连接和通信的主要流程:
1.订阅节点在启动的时候会向当前域中的所有节点发布信息
2.所有节点和发送信息的节点两两建立联系,建立好连后,所有节点会向新加入的节点发送已有的拓扑信息。
数据兼容性拓展
- 缺点:
protobuf:有很好的向后兼容的特性