当前位置:首页 > 系统教程 > 正文

Ubuntu 22.04下ROS1 Noetic与ROS2 Humble完美兼容安装指南 从零开始搭建多版本ROS环境,实现无缝切换

Ubuntu 22.04下ROS1 Noetic与ROS2 Humble完美兼容安装指南 从零开始搭建多版本ROS环境,实现无缝切换

Ubuntu 22.04下ROS1 Noetic与ROS2 Humble完美兼容安装指南 从零开始搭建多版本ROS环境,实现无缝切换 ROS1 Noetic安装  ROS2 Humble安装 Ubuntu22.04 ROS兼容 ROS多版本共存 第1张

1. 为什么需要同时安装ROS1和ROS2?

随着机器人操作系统的发展,ROS1(如Noetic)和ROS2(如Humble)并存于许多项目中。对于开发者和研究人员,常常需要在同一台Ubuntu 22.04系统上同时使用两者,例如迁移旧项目或测试新功能。本教程将详细介绍ROS1 Noetic安装ROS2 Humble安装的兼容方法,让您轻松实现Ubuntu22.04 ROS兼容环境。

2. 环境准备

确保您的系统是Ubuntu 22.04 LTS(64位),并已更新到最新:

sudo apt update && sudo apt upgrade -y

安装必要工具:

sudo apt install -y curl gnupg lsb-release software-properties-common

3. 安装ROS1 Noetic

ROS1 Noetic是专门为Ubuntu 20.04设计的,但在Ubuntu 22.04上通过官方源仍可完美运行,这也是实现ROS多版本共存的关键一步。

3.1 添加ROS1源

sudo sh -c "echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list"
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

3.2 安装ROS1 Noetic

sudo apt updatesudo apt install -y ros-noetic-desktop-full

3.3 初始化rosdep

sudo rosdep initrosdep update

3.4 设置环境变量(临时)

source /opt/ros/noetic/setup.bash

4. 安装ROS2 Humble

ROS2 Humble是Ubuntu 22.04的原生版本,安装相对简单。

4.1 设置编码

sudo apt update && sudo apt install localessudo locale-gen en_US en_US.UTF-8

4.2 添加ROS2源

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgsudo sh -c "echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros2.list"

4.3 安装ROS2 Humble

sudo apt updatesudo apt install -y ros-humble-desktop

4.4 安装python3-argcomplete(可选)

sudo apt install -y python3-argcomplete

5. 配置ROS多版本共存环境

为了避免每次手动source,我们可以在~/.bashrc中设置别名,快速切换ROS版本,这也是实现Ubuntu22.04 ROS兼容的核心技巧。

echo "alias setros1="source /opt/ros/noetic/setup.bash"" >> ~/.bashrcecho "alias setros2="source /opt/ros/humble/setup.bash"" >> ~/.bashrcecho "alias setrosall="source /opt/ros/noetic/setup.bash; source /opt/ros/humble/setup.bash"" >> ~/.bashrcsource ~/.bashrc

之后在终端输入setros1即可切换到ROS1环境,输入setros2切换到ROS2环境。如果某些工作区需要同时使用两个版本的库,可以使用setrosall,但要注意可能存在环境变量冲突,建议分开使用。

6. 测试验证

6.1 测试ROS1 Noetic

setros1roscore

新开终端,运行小乌龟:

setros1rosrun turtlesim turtlesim_node

再开一终端:

setros1rosrun turtlesim turtle_teleop_key

6.2 测试ROS2 Humble

setros2ros2 run turtlesim turtlesim_node

新终端:

setros2ros2 run turtlesim turtle_teleop_key

7. 常见问题及解决

  • Q: 安装ROS1 Noetic时提示依赖错误?A: 尝试sudo apt --fix-broken install,并确保Ubuntu 22.04的源已正确添加。
  • Q: 两个ROS环境变量冲突怎么办?A: 建议不要同时source两个setup.bash,通过别名分别调用是最佳实践。
  • Q: 运行ros2命令时找不到包?A: 确认已经setros2,且正确安装了ros-humble-desktop。

至此,您已经成功在Ubuntu 22.04上实现了ROS1 Noetic与ROS2 Humble的兼容安装,可以自由地在两个版本间切换,为您的机器人开发提供强大支持。