2.1 安装ROS
选择适合的ROS发行版
(1)ROS1 vs ROS2

首先讨论下ROS1和ROS选择的问题,ROS 1 和 ROS 2 之间的差异显著,ROS 2 解决了许多 ROS 1 无法满足的限制和需求,两者之间的软件不兼容。
ROS1和ROS的主要差异是中间件和实时性支持,详细的说明可以参考:https://roboticsbackend.com/ros1-vs-ros2-practical-overview/
中间件:
- ROS 1:使用名为 ROS Master 的自定义中间件进行通信,这不是实时安全的,并且需要一个中央主节点。
- ROS 2:使用数据分发服务 (DDS) 标准进行通信,提供实时通信,并且不需要中央主节点。
实时支持:
- ROS 1:有限的实时能力。
- ROS 2:设计时考虑了实时能力,适用于需要实时性能的应用。
对于用户,选择 ROS 1 如果:
- 你在维护或扩展现有的 ROS 1 项目。
- 你的应用不需要实时能力、先进的安全功能或跨平台支持。
- 你更喜欢一个成熟的生态系统,其具有广泛的文档和社区支持。
选择ROS 2,如果:
- 你在启动一个新项目,并希望利用最新的功能和改进。
- 你的应用需要实时性能、安全性和跨平台支持。
- 你需要更好的可扩展性和性能,以应对复杂和分布式系统。
- 你希望为你的应用未来做准备,选择一个将被积极开发和支持的系统。
对于本教程,我们推荐用户使用ROS1,除了ROS1目前在行业应用广泛之外,它的内容支持也非常好。
(2)哪个版本合适
然后是ROS具体的版本选择,ROS1主要被Linux系统主持,有很多版本,参考http://wiki.ros.org/Distributions,从接触的用户而言,从Kinetic到Noetic的用户较多,我们比较推荐Melodic及之后的版本。不同的版本会有生命周期的考虑,比如Melodic 23年后官方不支持了,但不会影响使用,只是它的库更新不会活跃了。
安装步骤详解
ROS1与ubuntu系统的生态结合比较紧密,多数使用时也是在ubuntu系统上进行安装,资深用户也可考虑docker方法。
一般的安装步骤参考http://wiki.ros.org/ROS/Installation,选择其中的ubuntu系统,唯一需要注意的是国内网络问题,一般会在最后一步出问题:
sudo rosdep init
rosdep update
解决办法有几种:
(i) 科学上网:这里不做详述,自行琢磨
(ii) 更改host和更新脚本:(2022年测试)
(iii) 其他方法:
https://mp.weixin.qq.com/s/VGs8oWdhHH6XsHcx21lN4Q
我们推荐用户亲自按照官方说明安装一遍,感受下执行的乐趣,同时也直面下国内网络问题,因为在以后会经常遇到,不会每次都有现成的方法。
