【ROS2】Ubuntu22.04安装ROS humble

一. 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 Fitzroy2020.5-2023.5Ubuntu Focal (20.04)C++ >=14、Python >= 3.7
Galactic Geochelone2021.5-2022.11Ubuntu Focal (20.04)C++ >=17、Python >=3.6
Humble Hawksbill2022.5-2027.5Ubuntu Jammy (22.04)/Ubuntu Focal (20.04)(只能源码安装)C++ >=17 、Python >=3.6
Iron Irwini2023.5-2024.11Ubuntu Jammy (22.04)C++ >=17 、Python >= 3.8
Jazzy Jalisco2024.5-2029.5Ubuntu 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  

显示如下即为成功
在这里插入图片描述

### Ubuntu 22.04ROS1的兼容性 Ubuntu 22.04 LTS (Jammy Jellyfish) 是一个长期支持版本,然而对于机器人操作系统第一代(ROS1),官方推荐和支持的主要集中在较早的Ubuntu版本上,比如 kinetic对应的是16.04 Xenial, melodic适用于18.04 Bionic Beaver。尽管如此,在社区内存在尝试于更高版本Ubuntu上部署ROS1的例子。 当考虑在Ubuntu 22.04 上运行ROS1时需要注意几个方面: - **依赖库冲突**:随着操作系统的迭代更新,底层库文件会发生变化,这可能导致某些旧版软件包无法正常工作或编译失败[^1]。 - **Python 版本差异**:ROS1 主要基于 Python 2.x 构建而成;而自Ubuntu 20.04起,默认已切换至Python 3.x系列作为默认解释器。这种转变可能会引起一些不兼容问题[^2]。 为了克服上述挑战并成功地让ROS1在Ubuntu 22.04 中运作起来,可以采取以下措施之一: #### 方法一:通过Docker容器化环境 利用 Docker 创建隔离的操作系统级虚拟化环境来安装特定版本的 Linux 发行版及其对应的 ROS1 发行版。这种方法能够有效避免宿主机上的库版本影响,并保持开发工具链的一致性和稳定性。 ```bash docker pull ros:melodic ``` 此命令可以从 Docker Hub 获取预构建好的包含Melodic Morenia 的镜像,该版本是专门为Ubuntu 18.04设计并与之完全匹配的一个ROS1分支。 #### 方法二:手动解决依赖关系 如果倾向于直接在Ubuntu 22.04 上搭建ROS1,则需仔细处理好所有必要的依赖项,可能涉及到降级部分库到更老版本或是寻找替代方案以满足ROS的需求。不过这种方式较为复杂且容易遇到各种未知错误。 综上所述,虽然理论上可以在Ubuntu 22.04 上使用ROS1,但由于缺乏官方的支持加上潜在的技术难题,建议优先选用受支持的较低版本Ubuntu 或者采用容器技术来进行ROS项目的开发和测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值