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

Ubuntu 22.04 安装 ROS1 Noetic 终极指南(在非官方支持系统上部署机器人操作系统)

对于许多机器人操作系统(ROS)的初学者和开发者来说,Ubuntu 20.04 搭配 ROS1 Noetic 是经典且稳定的组合。然而,当你在使用较新的 Ubuntu 22.04 (Jammy Jellyfish) 系统,并希望在这个平台上搭建熟悉的 ROS1 Noetic 开发环境时,会遇到官方并未直接提供二进制包支持的挑战。本教程将为你提供两种在 Ubuntu 22.04 上成功安装ROS Noetic的方法,即使是小白用户也能一步步跟着操作,最终拥有一个可用的 ROS1 环境。

Ubuntu 22.04 安装 ROS1 Noetic 终极指南(在非官方支持系统上部署机器人操作系统) 22.04安装ROS  Noetic安装教程 Jammy ROS 从源码编译ROS 第1张

方法一:使用社区维护的 PPA 源(推荐新手)

这是最简单、最快捷的方法。一些热心的开发者维护了适用于 Ubuntu 22.04 的 ROS Noetic 软件源,让我们可以像在 Ubuntu 20.04 上一样,通过 apt 命令轻松完成ROS1 Noetic安装 -10。

步骤1:添加 PPA 源

打开终端 (Ctrl+Alt+T),输入以下命令添加软件源:

sudo add-apt-repository ppa:ros-for-jammy/noeticsudo apt update

步骤2:安装 ROS Noetic

添加成功后,就可以直接安装你想要的版本了。这里我们安装包含所有功能、工具和模拟器的桌面完整版:

sudo apt install ros-noetic-desktop-full

这个过程会自动处理所有依赖,你会看到它安装来自该 PPA 的一系列 ros-noetic-* 软件包 -2-4。

步骤3:初始化 rosdep

rosdep 是 ROS 中用于管理依赖项的重要工具。在安装完核心包后,我们需要初始化它:

sudo apt install python3-rosdepsudo rosdep initrosdep update

注意:如果 rosdep init 遇到网络问题,可以尝试使用 rosdepc (一个针对国内用户的替代工具) 来替代 -1。

步骤4:设置环境变量

为了让每次打开新终端都能自动找到 ROS 命令,需要将 setup 脚本添加到 bashrc 中:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc

步骤5:验证安装

运行 ROS 经典的小乌龟程序来验证安装是否成功:

# 终端1:启动 ROS Masterroscore &# 终端2:启动小乌龟界面rosrun turtlesim turtlesim_node# 终端3:启动键盘控制rosrun turtlesim turtle_teleop_key

现在,你可以用键盘的上下左右键控制小乌龟移动了,这表示你的 ROS Noetic 环境已经完美运行!

方法二:从源码编译安装(进阶用户)

如果你想了解 ROS 的底层构建过程,或者 PPA 源无法满足你的需求,那么从源码编译是另一个选择。这种方法更为复杂,但能让你对 ROS 系统有更深入的理解 -6。

步骤1:安装编译工具和依赖

首先,安装编译所需的工具和基础依赖:

sudo apt updatesudo apt install python3-rosdep python3-rosinstall-generator python3-vcstools python3-vcstool build-essential

步骤2:初始化 rosdep 并处理特殊依赖

初始化 rosdep,并修改配置文件以应对 Ubuntu 22.04 上一些包的缺失问题(如 hddtemp) -6。

sudo rosdep init# 你可能需要编辑 /etc/ros/rosdep/sources.list.d/20-default.list 文件rosdep update

步骤3:创建工作空间并下载源码

创建一个用于编译 ROS 的工作空间,并下载 Noetic 的所有源码包:

mkdir ~/ros_noetic_wscd ~/ros_noetic_wsrosinstall_generator desktop --rosdistro noetic --deps --tar > noetic-desktop.rosinstallmkdir ./srcvcs import --input noetic-desktop.rosinstall ./src

步骤4:解决依赖并开始编译

使用 rosdep 安装所有未满足的系统依赖:

rosdep install --from-paths ./src --ignore-packages-from-source --rosdistro noetic -y

接下来就是最关键的编译步骤了。在 Ubuntu 22.04 上编译 Noetic 源码,很可能会遇到 log4cxx 和 C++ 标准版本不匹配的错误。你需要根据报错信息,手动修改相关源码文件(如 rosconsole 中的 .cpp 文件)或调整 CMakeLists.txt 中的编译选项 -6。编译命令如下:

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

如果你希望将编译好的 ROS 安装到系统目录,可以指定安装路径:

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/noetic

步骤5:设置环境变量

编译安装完成后,同样需要设置环境变量。如果安装到了 /opt/ros/noetic,则与 PPA 方法的命令一致;如果安装到了工作空间内,则需要 source 对应目录下的 setup.bash

常见问题与小结

在 Ubuntu 22.04 上折腾 ROS1 Noetic 过程中,最常见的问题就是网络原因导致的 rosdep update 失败,以及编译时遇到的 C++ 标准兼容性问题。对于前者,推荐使用国内镜像源或 rosdepc 工具 -1。对于后者,方法一的 PPA 源已经帮你解决了所有兼容性难题,这也是我向绝大多数小白用户推荐方法一的原因。

至此,你已经掌握了在 Ubuntu 22.04 系统上安装 ROS Noetic 的两种核心方法。无论你是为了学习机器人操作系统(ROS),还是为了运行特定的机器人算法,现在都可以扬帆起航了。