一. ROS简介
1.1 什么是ROS
ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。ROS的核心思想就是将机器人的软件功能做成一个个节点,节点之间通过互相发送消息进行沟通。这些节点可以部署在同一台主机上,也可以部署在不同主机上,甚至还可以部署在互联网上。
自ROS诞生的十几年来,不管是机器人相关软件、硬件还是ROS社区都发生了天翻地覆的变化,加之原本的ROS存在一些设计上的先天性缺陷,在各种内外因素叠加下,导致老ROS在许多应用场景下都已经显得力不从心了。
此背景下,官方于2017正式推出了新一代机器人操作系统——ROS2(区别于老ROS,即ROS1),ROS2基于全新的设计框架,保留了ROS1的优点并改进其缺陷,以适应新时代的新需求。
本文简要介绍ROS2的安装教程。
1.2 ROS与ROS2的差别
ROS2作为ROS1的继任者,在保持ROS核心功能的基础上进行了诸多改进和优化。相较于ROS1,ROS2取消了ROS1中的Master中央节点,实现了节点的分布式发现、发布/订阅、请求/响应通讯。
- ROS1使用自定义的中间件(roscore),而ROS2使用DDS中间件。
- ROS1使用catkin作为构建系统,而ROS2使用colcon作为构建系统。
1.3 ROS2与Ubuntu版本对应
ROS2版本 | 生命周期 | Ubuntu版本 | 语言依赖 |
---|---|---|---|
Foxy Fitzroy | 2020.5-2023.5 | Ubuntu Focal (20.04) | C++ >=14、Python >= 3.7 |
Galactic Geochelone | 2021.5-2022.11 | Ubuntu Focal (20.04) | C++ >=17、Python >=3.6 |
Humble Hawksbill | 2022.5-2027.5 | Ubuntu Jammy (22.04)/Ubuntu Focal (20.04)(只能源码安装) | C++ >=17 、Python >=3.6 |
Iron Irwini | 2023.5-2024.11 | Ubuntu Jammy (22.04) | C++ >=17 、Python >= 3.8 |
Jazzy Jalisco | 2024.5-2029.5 | Ubuntu Noble (24.04) | C++ >=17 、Python >= 3.8 |
以下以 ubuntu 22.04 、ROS2 humble 为例
二. 安装ROS2
2.1 推荐小鱼工具一键安装
执行以下命令
wget http://fishros.com/install -O fishros && . fishros
执行后出现如下界面,按照步骤进行安装
输入1
一键安装
输入1
更换系统源再继续安装
输入1
humble
输入1
选择桌面版
2.2 安装rosdep
wget http://fishros.com/install -O fishros && . fishros
选择3
安装rosdep
安装好后再终端输入 rosdepc update
即可配置成功
三. 测试
打开两个终端分别输入以下命令 :
ros2 run demo_nodes_cpp talker
在另一个终端中,输入命令:
ros2 run demo_nodes_py listener
显示如下即为成功