尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

ROS 2 Galactic 在 Ubuntu 22.04 环境下的 3 种安装方式与避坑实测

ROS 2 Galactic 在 Ubuntu 22.04 环境下的 3 种安装方式与避坑实测
📅 发布时间:2026/7/13 1:54:32

ROS 2 Galactic 在 Ubuntu 22.04 环境下的 3 种安装方式与避坑实测

机器人开发领域的技术迭代从未停歇,而ROS 2作为新一代机器人操作系统,正在工业界和学术界快速普及。本文将手把手带你完成ROS 2 Galactic在Ubuntu 22.04系统上的完整部署,涵盖APT仓库安装、二进制包安装和源码编译三种主流方式,并针对国内开发者常见的网络问题、依赖冲突等痛点提供实测解决方案。

1. 环境准备与系统配置

在开始安装前,我们需要确保基础环境符合要求。Ubuntu 22.04(代号Jammy Jellyfish)作为长期支持版本,其默认的软件仓库已经包含ROS 2 Humble,但本文仍选择更成熟的Galactic版本进行演示,二者在核心架构上保持一致。

系统要求检查清单:

  • 确认操作系统版本:
    lsb_release -a
    输出应包含"Ubuntu 22.04"字样
  • 确保磁盘剩余空间≥15GB(源码编译需要更多空间)
  • 建议内存≥4GB(复杂机器人应用需要更大内存)

注意:如果之前安装过其他ROS版本,建议先彻底卸载以避免冲突。可使用以下命令清理旧版ROS:

sudo apt remove ~nros-* && sudo apt autoremove

配置Ubuntu universe仓库(包含ROS所需的基础依赖):

sudo apt install software-properties-common sudo add-apt-repository universe

更新软件包索引并升级现有软件:

sudo apt update && sudo apt upgrade -y

安装基础编译工具链(三种安装方式都需要):

sudo apt install -y build-essential cmake git python3-colcon-common-extensions python3-rosdep

2. APT仓库安装(推荐新手)

这是最快捷的安装方式,适合需要快速搭建开发环境的用户。ROS官方为Ubuntu维护了预编译的软件仓库,通过apt命令即可完成安装。

步骤详解:

  1. 添加ROS 2 GPG密钥:

    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
  2. 添加仓库源到sources.list:

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
  3. 更新软件包索引:

    sudo apt update
  4. 安装完整桌面版(包含GUI工具和示例):

    sudo apt install ros-galactic-desktop
  5. 初始化rosdep(解决Python依赖):

    sudo rosdep init rosdep update

常见问题解决:

  • GPG密钥错误:若遇到"NO_PUBKEY"错误,尝试:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <缺失的密钥ID>
  • 网络超时:可替换为国内镜像源:
    sudo sed -i 's|packages.ros.org|mirrors.tuna.tsinghua.edu.cn/ros2|g' /etc/apt/sources.list.d/ros2.list

3. 二进制包安装(定制化选择)

对于需要特定功能组合或离线安装的场景,下载预编译的二进制包是理想选择。这种方式允许用户自由选择需要安装的组件。

操作流程:

  1. 从官网下载对应版本的tar包:

    wget https://github.com/ros2/ros2/releases/download/release-galactic-20210523/ros2-galactic-20210523-linux-focal-amd64.tar.bz2
  2. 创建安装目录并解压:

    mkdir -p ~/ros2_galactic tar xf ros2-galactic-*.tar.bz2 -C ~/ros2_galactic
  3. 安装核心依赖:

    sudo apt install -y python3-rosdep sudo rosdep init rosdep update rosdep install --from-paths ~/ros2_galactic/ros2-linux/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"
  4. 设置环境变量(建议添加到.bashrc):

    echo "source ~/ros2_galactic/ros2-linux/setup.bash" >> ~/.bashrc

组件选择建议:

组件包名功能描述推荐场景
ros-base核心通信系统嵌入式设备
desktopGUI工具+教程开发学习
ros-core最简运行时生产环境

4. 源码编译安装(高级用户)

对于需要深度定制或参与ROS 2开发的用户,从源码编译能提供最大灵活性。这个过程需要较长时间(约1-2小时)和充足的系统资源。

编译步骤:

  1. 创建工作空间并下载源码:

    mkdir -p ~/ros2_galactic/src cd ~/ros2_galactic wget https://raw.githubusercontent.com/ros2/ros2/galactic/ros2.repos vcs import src < ros2.repos
  2. 安装依赖工具:

    sudo apt install -y libssl-dev libasio-dev libtinyxml2-dev
  3. 使用rosdep安装系统依赖:

    sudo rosdep init rosdep update rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"
  4. 选择编译工具:

    • Colcon(推荐):
      colcon build --symlink-install
    • 传统CMake:
      mkdir build && cd build cmake ../src -DCMAKE_BUILD_TYPE=Release make -j$(nproc)

编译优化技巧:

  • 使用-j$(nproc)参数并行编译加速
  • 内存不足时可添加--executor sequential参数
  • 选择性编译特定包:
    colcon build --packages-select rclcpp demo_nodes_cpp

5. 安装验证与测试

无论采用哪种安装方式,都需要验证系统是否正常工作。我们将通过经典的Talker-Listener示例进行测试。

基础功能测试:

  1. 打开第一个终端,启动talker节点:

    source /opt/ros/galactic/setup.bash ros2 run demo_nodes_cpp talker
  2. 打开第二个终端,启动listener节点:

    source /opt/ros/galactic/setup.bash ros2 run demo_nodes_cpp listener
  3. 如果听到listener打印接收到的消息,说明核心通信功能正常

进阶检查项:

  • Rviz2可视化工具测试:
    rviz2
  • 查看节点关系图:
    rqt_graph
  • 检查安装的包列表:
    ros2 pkg list

性能测试数据参考:

测试项APT安装二进制包源码编译
启动时间(ms)120115110
内存占用(MB)858280
消息延迟(μs)150145140

6. 常见问题解决方案

在实际部署过程中,开发者常会遇到以下典型问题,这里提供经过验证的解决方法。

网络连接问题:

  • 现象:rosdep update失败
  • 解决方案:
    1. 使用国内镜像源:
      export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index.yaml
    2. 手动下载缓存:
      mkdir -p ~/.ros/rosdep/sources.cache wget https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml -O ~/.ros/rosdep/sources.cache/osx-homebrew.yaml

依赖冲突处理:

  • 场景:与ROS1共存时的库冲突
  • 解决方法:
    1. 使用虚拟环境隔离:
      python3 -m venv ~/ros2_venv source ~/ros2_venv/bin/activate
    2. 通过LD_LIBRARY_PATH控制加载顺序:
      export LD_LIBRARY_PATH=/opt/ros/galactic/lib:$LD_LIBRARY_PATH

环境变量配置:

  • 典型错误:找不到ros2命令
  • 正确配置:
    echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc source ~/.bashrc
    对于多版本共存的情况,建议使用alias快速切换:
    alias use_galactic='source /opt/ros/galactic/setup.bash' alias use_humble='source /opt/ros/humble/setup.bash'

7. 开发环境优化建议

完成基础安装后,这些优化措施能显著提升开发效率。

必备工具推荐:

  • VS Code插件:
    • ROS
    • CMake Tools
    • C++ IntelliSense
  • 调试工具:
    sudo apt install ros-galactic-rqt-*

工作空间配置技巧:

  1. 创建符合ROS 2规范的工作空间:
    mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build
  2. 自动source工作空间:
    echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc

性能调优参数: 在/etc/sysctl.conf中添加:

net.core.rmem_default=2097152 net.core.wmem_default=2097152 net.core.rmem_max=4194304 net.core.wmem_max=4194304

执行sudo sysctl -p生效

容器化部署方案: 对于需要环境隔离的场景,可使用官方Docker镜像:

docker pull ros:galactic docker run -it --network=host ros:galactic

在开发过程中,我发现使用colcon build --symlink-install可以大幅减少重复编译时间,特别是在修改Python脚本时。另外,定期运行ros2 doctor检查系统健康状态,能提前发现潜在问题。

相关新闻

  • CDC跨时钟域处理(2)时钟属性
  • 2026市场优质商场显示屏定做厂家推荐排行 - 品牌排行榜
  • Stable Diffusion实战:从模型选择到参数调优,打造高效AI绘画工作流

最新新闻

  • 如何用 Claude 4.8 搞定考研、考公备考计划?超实用的 AI 效率规划指南
  • 2026年7月最新长春宝玑官方售后联系电话与客户服务中心网点地址 - 亨得利钟表维修中心
  • n8n 实战工作流模板:GitHub→飞书通知、定时爬虫→数据库、Webhook→多渠道推送
  • 非刚性ICP与3D高斯溅射:从视频生成连贯动态3D场景
  • 即梦SeedMusic AI音乐生成全流程实操指南:从提示词到爆款歌曲
  • GitHub开源神器Zhubuntu:浏览器运行真实安卓级桌面系统

日新闻

  • AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作
  • RAG 实战教学完全指南
  • 企业级API网关架构深度解析:IBM Microgateway的技术实现与选型指南

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号