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

Ubuntu 24.04安装ROS1 Noetic完全指南

Ubuntu 24.04安装ROS1 Noetic完全指南

从零开始配置机器人操作系统环境

ROS1 Noetic是ROS1的最后一个长期支持版本,官方推荐在Ubuntu 20.04上运行。但许多开发者希望在更新的Ubuntu 24.04上使用它。本教程将详细介绍如何在Ubuntu 24.04上成功安装ROS1 Noetic安装,涵盖二进制包安装和源码编译两种方法,帮助你顺利搭建机器人操作系统教程环境。

Ubuntu 24.04安装ROS1 Noetic完全指南 ROS1 Noetic安装  24.04配置ROS 机器人操作系统教程 Noetic源码编译 第1张

前提条件

  • 已安装Ubuntu 24.04(64位)
  • 稳定的网络连接
  • 具有sudo权限的用户

方法一:使用apt安装(推荐尝试)

尽管Noetic没有为24.04预编译的二进制包,但我们可以使用20.04的源来安装。打开终端,执行以下命令:

      # 添加ROS官方源(使用Ubuntu 20.04的源)sudo sh -c "echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros-latest.list"# 添加密钥sudo apt install curlcurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -# 更新包列表sudo apt update# 安装ROS Noetic基础包(可能会提示依赖问题,请继续)sudo apt install ros-noetic-desktop-full    

如果遇到依赖错误,可以尝试强制安装或使用apt --fix-broken install修复。若问题依旧,请使用方法二源码编译。

方法二:源码编译(兼容性最佳)

源码编译能确保所有依赖正确适配Ubuntu 24.04配置ROS。按照以下步骤操作:

      # 安装编译工具sudo apt updatesudo apt install python3-rosdep python3-rosinstall-generator python3-vcstools build-essential# 初始化rosdepsudo rosdep initrosdep update# 创建工作空间mkdir ~/ros_catkin_wscd ~/ros_catkin_ws# 获取Noetic源码列表rosinstall_generator desktop_full --rosdistro noetic --deps --tar > noetic-desktop-full.rosinstallmkdir srcvcs import --input noetic-desktop-full.rosinstall ./src# 安装依赖rosdep install --from-paths ./src --ignore-packages-from-source --rosdistro noetic -y# 编译./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release    

编译过程较长,请耐心等待。完成后,运行source ~/ros_catkin_ws/install_isolated/setup.bash设置环境。

验证安装

启动小乌龟示例,检验Noetic源码编译是否成功:

      # 启动ROS核心roscore &# 新终端启动小乌龟节点rosrun turtlesim turtlesim_node# 新终端控制小乌龟rosrun turtlesim turtle_teleop_key    

如果出现小乌龟窗口并能用键盘控制,说明安装成功。

常见问题

  • 依赖冲突:在Ubuntu 24.04上使用20.04的源可能导致依赖版本不匹配。此时建议使用源码编译或Docker容器。
  • python版本:Noetic需要Python 3,确保系统中python3可用。
  • 环境变量:每次使用ROS前都需要source对应的setup.bash,可以将其添加到~/.bashrc中。

通过本教程,你应该能够在Ubuntu 24.04配置ROS并运行ROS1 Noetic。无论选择apt安装还是源码编译,都能为你的机器人开发打下坚实基础。如果在安装中遇到问题,欢迎在评论区交流!