# Ubuntu 22.04 源码编译安装 ROS1 Noetic 完整指南 > 本文档整理自多个技术博客,提供最稳定可靠的 ROS1 安装方法 > 适用系统:Ubuntu 22.04 LTS > ROS版本:ROS1 Noetic > 更新时间:2026-04-28 --- ## 目录 1. [前言](#前言) 2. [准备工作](#准备工作) 3. [安装依赖](#安装依赖) 4. [创建工作空间](#创建工作空间) 5. [下载源码](#下载源码) 6. [编译安装](#编译安装) 7. [常见问题解决](#常见问题解决) 8. [验证安装](#验证安装) 9. [日常使用](#日常使用) --- ## 前言 Ubuntu 22.04 官方不支持 ROS1,只能通过源码编译安装。本方法是目前最稳定的方案,被广泛使用。 **预计时间:** - 下载源码:10-30分钟(取决于网络) - 安装依赖:20-30分钟 - 编译:1-2小时(取决于电脑性能) --- ## 准备工作 ### 1. 更新系统 ```bash sudo apt update && sudo apt upgrade -y ``` ### 2. 安装基础工具 ```bash sudo apt install -y python3-pip python3-rosdep python3-rosinstall-generator python3-vcstools python3-vcstool build-essential cmake git wget ``` ### 3. 升级 pip 和工具 ```bash sudo pip3 install -U rosdep rosinstall_generator vcstool sudo pip3 install --upgrade setuptools ``` --- ## 安装依赖 ### 1. 安装编译依赖 ```bash sudo apt install -y \ libboost-all-dev \ uuid-dev \ python3-nose \ google-mock \ libgtest-dev \ libbz2-dev \ libgpgme-dev \ libssl-dev \ python3-coverage \ libboost-program-options-dev \ python3-psutil \ python3-opengl \ python3-pygraphviz \ python3-pydot \ qt5-qmake \ sbcl \ libapr1-dev \ libaprutil1-dev \ libboost-regex-dev \ liblog4cxx-dev \ python3-matplotlib \ libpyside2-dev \ libshiboken2-dev \ pyqt5-dev \ python3-pyqt5 \ python3-pyqt5.qtsvg \ python3-pyside2.qtsvg \ python3-sip-dev \ shiboken2 \ lm-sensors \ graphviz \ python3-paramiko \ python3-pycryptodome \ python3-gnupg \ python3-defusedxml \ python3-pyqt5.qtopengl \ libcurl4-openssl-dev \ libpoco-dev \ libogre-1.9-dev \ libassimp-dev \ libogre-1.9.0v5 \ libyaml-cpp-dev \ libgl1-mesa-dev \ libglu1-mesa-dev \ libqt5opengl5 \ libqt5opengl5-dev \ libopencv-dev \ python3-opencv \ python3-pykdl \ tango-icon-theme \ liborocos-kdl-dev \ libtinyxml-dev \ libtinyxml2-dev \ liburdfdom-headers-dev \ python3-numpy \ python3-empy \ libboost-filesystem-dev \ libboost-thread-dev \ libboost-date-time-dev \ libboost-system-dev \ liburdfdom-dev \ libboost-chrono-dev \ libboost-dev \ libqt5core5a \ libqt5gui5 \ libqt5widgets5 \ qtbase5-dev \ libconsole-bridge-dev \ liblz4-dev \ python3-pyqt5.qtwebkit \ exfatprogs ``` --- ## 创建工作空间 ```bash # 创建并进入工作目录 mkdir -p ~/ros_catkin_ws cd ~/ros_catkin_ws ``` --- ## 下载源码 ### 1. 生成 rosinstall 文件 ```bash rosinstall_generator desktop --rosdistro noetic --deps --tar > noetic-desktop.rosinstall ``` ### 2. 创建 src 目录 ```bash mkdir -p ./src ``` ### 3. 下载源码(使用国内镜像加速) ```bash # 替换 github 为 ghproxy 镜像 sed -i 's/github.com/ghproxy.com\/https:\/\/github.com/g' noetic-desktop.rosinstall # 下载源码 vcs import --input noetic-desktop.rosinstall ./src ``` **注意:** 如果下载失败,可以尝试其他镜像: - `kgithub.com`(韩国镜像) - `ghproxy.com`(国内代理) - `hub.fastgit.xyz`(FastGit) --- ## 编译安装 ### 1. 开始编译 ```bash ./src/catkin/bin/catkin_make_isolated \ --install \ -DCMAKE_BUILD_TYPE=Release \ -DPYTHON_EXECUTABLE=/usr/bin/python3 ``` **编译时间:** 1-2小时,请耐心等待 ### 2. 配置环境变量 ```bash echo "source ~/ros_catkin_ws/install_isolated/setup.bash" >> ~/.bashrc source ~/.bashrc ``` --- ## 常见问题解决 ### 问题1:rosconsole 相关报错 **错误信息:** ``` rosconsole 相关编译错误 ``` **解决方法:** ```bash # 下载修复版 rosconsole git clone -b concise_output_roso https://github.com/lucasw/rosconsole.git # 覆盖到 src 目录 cp -r rosconsole/* ~/ros_catkin_ws/src/rosconsole/ # 重新编译 ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ``` ### 问题2:shared_mutex 相关报错 **错误信息:** ``` shared_mutex 未找到或相关错误 ``` **解决方法:** ```bash # 编辑配置文件 sudo gedit /usr/include/log4cxx/boost-std-configuration.h ``` **修改内容:** 将: ```c #define STD_SHARED_MUTEX_FOUND 1 #define Boost_SHARED_MUTEX_FOUND 0 ``` 改为: ```c #define STD_SHARED_MUTEX_FOUND 0 #define Boost_SHARED_MUTEX_FOUND 1 ``` 然后重新编译。 ### 问题3:github 下载失败 **解决方法:** ```bash # 使用 ghproxy 代理 sed -i 's/github.com/ghproxy.com\/https:\/\/github.com/g' noetic-desktop.rosinstall # 或使用 kgithub sed -i 's/github.com/kgithub.com/g' noetic-desktop.rosinstall # 重新下载 vcs import --input noetic-desktop.rosinstall ./src ``` ### 问题4:缺少某些依赖 **解决方法:** ```bash # 更新 rosdep sudo rosdep init rosdep update # 安装缺失依赖 rosdep install --from-paths ./src --ignore-packages-from-source --rosdistro noetic -y ``` --- ## 验证安装 ### 1. 测试 roscore ```bash # 启动 ROS 核心 roscore ``` 如果看到以下输出,说明安装成功: ``` ... logging to /home/username/.ros/log/... ... loaded at ... ROS_MASTER_URI=http://localhost:11311 setting /run_id to ... process[rosout-1]: started with pid [...] started core service [/rosout] ``` ### 2. 测试小海龟 **终端1:** ```bash rosrun turtlesim turtlesim_node ``` **终端2:** ```bash rosrun turtlesim turtle_teleop_key ``` 使用方向键控制小海龟移动。 ### 3. 查看 ROS 版本 ```bash rosversion ros ``` 应该输出:`1.15.9` 或更高版本 --- ## 日常使用 ### 启动 ROS ```bash # 每次新开终端都需要执行 source ~/ros_catkin_ws/install_isolated/setup.bash # 或者添加到 .bashrc(已添加则不需要) echo "source ~/ros_catkin_ws/install_isolated/setup.bash" >> ~/.bashrc ``` ### 常用命令 ```bash # 启动 ROS 核心 roscore # 查看节点列表 rosnode list # 查看话题列表 rostopic list # 运行包 rosrun package_name node_name # 启动 launch 文件 roslaunch package_name launch_file.launch ``` --- ## 卸载方法 如果需要卸载 ROS1: ```bash # 删除工作空间 rm -rf ~/ros_catkin_ws # 删除环境变量配置 sed -i '/ros_catkin_ws/d' ~/.bashrc # 重新加载配置 source ~/.bashrc ``` --- ## 参考资源 - [ROS Wiki - Noetic](http://wiki.ros.org/noetic) - [Ubuntu 22.04源码编译安装ROS Noetic](https://blog.csdn.net/Drknown/article/details/128701624) - [ROS官方安装指南](http://wiki.ros.org/noetic/Installation/Source) --- ## 总结 源码编译安装 ROS1 在 Ubuntu 22.04 上是完全可行的,虽然过程较长,但稳定性最好。建议: 1. **网络环境要好** - 下载源码需要访问 GitHub 2. **耐心等待** - 编译过程需要 1-2 小时 3. **遇到问题先搜索** - 大部分问题都有解决方案 祝安装顺利!🐢 --- *文档整理:小小叶* *最后更新:2026-04-28*