ROS2极简教程【1】:ROS2简介
ROS全称为:(Robot Operating System, 机器人操作系统)。是一套用于开发机器人软件控制系统的开源工具集。尽管有人认为ROS称不上是“系统”,顶多是一个着重于通信方式的软件包。但我认为,ROS虽不是一个“一键即用”的傻瓜式操作系统,但它已经实现了机器人操作系统的底层应用。开发者仅需在其上进行顶层开发就行了。这对于时间就是金钱的时代,特别是那些开发代价极大的个人开发者或研究人员而言,是极大的福音。
回归正题,ROS2是ROS的第二代系统。它不是对ROS1的完全推翻,而是针对ROS1中的缺陷功能的重新设计实现。相对于ROS1,ROS2的特点如下:
- 多机器人应用:不同于20年前,现今对多机器人系统有广泛的需求,但却没有标准系统对多机器人进行支持。而ROS1的但master结果将ROS系统限制在单机器人平台上。
- 小型嵌入式平台:通过交叉编译,ROS2可以被整合到单片机平台里,这是ROS1难以做到的。
- 实时系统:ROS2已具备ROS1所缺少的重要功能——实时系统。包括跨进程和跨机器的实时系统支持。
- 非理想网络:ROS2可以很好的应对非理想网络的延迟和丢包情况。
- 生产环境:ROS2的开发是以应用于生产环境为目的的,这不同于ROS1的实验室目的。
- 用于构建系统的规定模式:ROS底层灵活性得以保持的同时,提供诸如生命周期管理和用于部署的静态配置等特性提供清晰的模式和支持工具。
知乎总结的关键特性:
1.ROS2全面支持三种平台
ØUbuntu 16.04(Xenial)
ØMac OS X 10.12(Sierra)
ØWindows 10
2.实现了分布式架构
取消Master中央节点,实现节点的分布式发现,发布/订阅,请求/响应通
3.支持实时
4.使用新版本的编程语言
ØROS 2广泛使用C ++ 11。而ROS 1的核心主要使用C ++ 03,在其API并没有使用C++ 11功能。
ØROS 2的Python版本至少为3.5,ROS 1的Python版本为2.7
5.使用了新的编译系统Ament(ROS为Catkin)
6.ROS1可以通过rosbridge和ROS 2通信
Reference:
http://design.ros2.org/articles/why_ros2.html
https://zhuanlan.zhihu.com/p/31982243
https://zhuanlan.zhihu.com/p/32171230?from_voters_page=true