news 2026/5/16 16:03:09

告别虚拟机!在Ubuntu 22.04上保姆级安装ROS2 Humble和Cartographer(含鱼香ROS一键脚本)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
告别虚拟机!在Ubuntu 22.04上保姆级安装ROS2 Humble和Cartographer(含鱼香ROS一键脚本)

在Ubuntu 22.04物理机上构建ROS2 Humble与Cartographer的完整指南

当开发者第一次接触机器人操作系统时,环境搭建往往成为最大的门槛。与虚拟机或临时测试环境不同,物理机上的Ubuntu 22.04系统能为ROS2开发提供最佳的性能表现和长期稳定性。本文将详细介绍从零开始配置ROS2 Humble和Cartographer SLAM系统的完整流程,特别针对希望建立生产级开发环境的用户。

1. 为什么选择物理机安装ROS2?

在虚拟机、双系统和纯物理机这三种常见方案中,物理机直接运行Ubuntu 22.04具有不可替代的优势:

  • 硬件加速全支持:直接访问GPU、USB控制器和传感器接口
  • 实时性能无损耗:避免虚拟化层带来的延迟波动
  • 长期维护便利:系统更新和依赖管理更简单

提示:虽然学习阶段可以使用虚拟机,但当涉及实际传感器调试或性能测试时,物理机的优势会非常明显。

下表对比了三种安装方式的特性:

特性物理机双系统虚拟机
硬件性能★★★★★★★★★☆★★☆☆☆
开发便利性★★★★☆★★★☆☆★★★★★
传感器兼容性★★★★★★★★★★★★☆☆☆
系统维护复杂度★★★☆☆★★☆☆☆★★★★★

2. Ubuntu 22.04系统准备

2.1 系统安装与基础配置

推荐使用Ubuntu 22.04.3 LTS版本,这是目前ROS2 Humble官方支持的最佳匹配系统。安装完成后,首先执行以下基础优化:

# 更新软件源索引 sudo apt update && sudo apt upgrade -y # 安装常用工具链 sudo apt install -y build-essential git curl python3-pip # 设置SSH服务(可选) sudo apt install -y openssh-server sudo systemctl enable --now ssh

2.2 系统参数调优

为获得更好的ROS2开发体验,建议调整以下系统参数:

  • 关闭休眠模式:sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
  • 增加文件监视限制:echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
  • 配置交换分区(如内存小于8GB):sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile

3. ROS2 Humble一站式安装

3.1 使用鱼香ROS工具自动化安装

鱼香ROS提供的一键安装脚本大幅简化了配置过程:

wget http://fishros.com/install -O fishros && . fishros

在交互菜单中选择以下选项:

  1. 一键安装:ROS(支持ROS和ROS2)
  2. 更换系统源(推荐清华或阿里源)
  3. humble版本
  4. 桌面版完整安装

安装过程会自动完成:

  • ROS2核心软件包
  • 开发工具(colcon、rosdep等)
  • 常用功能包(TurtleBot3、Gazebo等)

3.2 手动安装方案(备选)

如需更精细控制,可采用官方安装方式:

# 设置locale sudo apt update && sudo apt install -y locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 # 添加ROS2仓库 sudo apt install -y software-properties-common sudo add-apt-repository universe sudo apt update && sudo apt install -y curl sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 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 # 安装完整版ROS2 sudo apt update && sudo apt install -y ros-humble-desktop

3.3 环境验证

安装完成后,验证核心功能是否正常:

# 在新终端中 source /opt/ros/humble/setup.bash ros2 run demo_nodes_cpp talker # 在另一个终端中 source /opt/ros/humble/setup.bash ros2 run demo_nodes_py listener

应能看到talker发送消息、listener接收消息的实时输出。

4. Cartographer SLAM系统部署

4.1 依赖环境准备

Cartographer需要特定的编译工具和库支持:

sudo apt install -y \ libceres-dev \ liblua5.3-dev \ libboost-all-dev \ libprotobuf-dev \ protobuf-compiler \ libcairo2-dev \ libpcl-dev \ python3-sphinx

4.2 源码编译安装

推荐使用源码安装方式,便于后续调试和定制:

# 创建工作空间 mkdir -p ~/carto_ws/src && cd ~/carto_ws/src # 克隆代码库(使用国内镜像加速) git clone https://ghproxy.com/https://github.com/ros2/cartographer.git -b ros2 git clone https://ghproxy.com/https://github.com/ros2/cartographer_ros.git -b ros2 # 安装依赖 cd ~/carto_ws rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y # 编译安装 colcon build --packages-up-to cartographer_ros --cmake-args -DCMAKE_BUILD_TYPE=Release

4.3 功能验证

编译完成后,测试Cartographer基本功能:

source ~/carto_ws/install/setup.bash ros2 pkg list | grep cartographer

应输出包含以下内容:

cartographer_ros cartographer_ros_msgs

5. 开发环境优化配置

5.1 Shell环境集成

将以下内容添加到~/.bashrc文件末尾:

# ROS2环境 source /opt/ros/humble/setup.bash # Cartographer工作空间 source ~/carto_ws/install/setup.bash # 常用别名 alias rosbuild='colcon build --symlink-install' alias rosclean='rm -rf build install log'

5.2 开发工具链推荐

  • IDE:VSCode + ROS插件
  • 调试工具:rqt_graph、rviz2
  • 实用工具
    sudo apt install -y \ ros-humble-rqt* \ ros-humble-turtlesim \ ros-humble-rviz2

5.3 常见问题解决方案

Q:ROS2命令找不到

  • 确保已执行source /opt/ros/humble/setup.bash
  • 检查echo $ROS_DISTRO输出应为humble

Q:Cartographer编译失败

  • 确认所有依赖已安装:rosdep check --from-paths src
  • 尝试清理后重新编译:rm -rf build install log && colcon build

Q:传感器数据延迟高

  • 检查USB设备权限:ls -l /dev/ttyUSB*
  • 调整ROS2 QoS策略:export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 15:55:05

用字体绘制AI架构图:llama.ttf项目解析与OpenType字体技术实践

1. 项目概述:一个字体文件,为何能引发如此关注?最近在GitHub上,一个名为“fuglede/llama.ttf”的项目悄然走红,乍一看,这只是一个普通的字体仓库,但它的热度却远超许多复杂的软件库。作为一名长…

作者头像 李华
网站建设 2026/5/16 15:55:04

探索无矩阵乘法LLM推理:结构化矩阵与查表法的替代方案

1. 项目概述:当大语言模型遇上矩阵乘法最近在开源社区里,一个名为ridgerchu/matmulfreellm的项目引起了我的注意。光看名字,matmul(矩阵乘法)和free(免费/自由)这两个词组合在一起,就…

作者头像 李华
网站建设 2026/5/16 15:55:03

WSL2 + i.MX6 QT交叉编译实战:从环境搭建到开发板部署全解析

1. WSL2环境配置与优化 第一次接触WSL2时,我被它的文件系统性能惊艳到了。相比WSL1,WSL2采用了真正的Linux内核,这意味着我们可以获得近乎原生的Linux体验。对于嵌入式开发来说,这简直是福音——再也不用为了编译一个简单的程序而…

作者头像 李华
网站建设 2026/5/16 15:53:35

除了CORE Keygen,还有哪些Mac软件需要UPX解压?聊聊brew和sudo的另类用法

解密Mac软件压缩技术:UPX工具与命令行高阶应用指南 当你在Mac上遇到某些特殊软件无法运行时,可能不只是简单的兼容性问题。许多独立开发者或小众工具会采用UPX这样的压缩工具来优化分发包体积,但这往往给终端用户带来"无法打开"的困…

作者头像 李华
网站建设 2026/5/16 15:53:33

Claude Code 总遇封号与 Token 不足问题可转向 Taotoken

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code 总遇封号与 Token 不足问题可转向 Taotoken 许多开发者在日常使用 Claude Code 时,可能会遇到两类困扰&am…

作者头像 李华
网站建设 2026/5/16 15:50:15

如何解决Reloaded-II模组加载器安装过程中的依赖循环问题

如何解决Reloaded-II模组加载器安装过程中的依赖循环问题 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II Reloaded-II作为一款强大的.NET Core模…

作者头像 李华