Kerloud无人机ROS开发系列教程(3): 准备工作 (Part 1)

2.1 安装ROS

选择适合的ROS发行版

(1)ROS1 vs ROS2
ros1_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

我们推荐用户亲自按照官方说明安装一遍,感受下执行的乐趣,同时也直面下国内网络问题,因为在以后会经常遇到,不会每次都有现成的方法。

回到教程目录https://discourse.cloudkernel.cn/t/topic/153