当前位置: 首页 > news >正文

告别虚拟机!在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
http://www.jsqmd.com/news/829128/

相关文章:

  • 2026年银川一站式网络营销公司深度横评:5大企业宣传推广服务商对比指南 - 年度推荐企业名录
  • 2026年宁夏短视频代运营与AI推广完整选型指南:五大服务商深度横评 - 年度推荐企业名录
  • 哪款去皱产品比较好 CA逆时光21天淡皱,改善面部松弛 - 全网最美
  • BLDC六步换向驱动方法
  • 英雄联盟效率革命:League Akari如何让你的游戏体验提升87%?
  • 2026年国内做得好的抗静电地板供应商推荐,网络地板/玻化砖抗静电地板/玻璃防静电地板,抗静电地板品牌有哪些 - 品牌推荐师
  • 2026年必藏:高效降低论文AI率的实用教程 - 降AI实验室
  • 泰安松泽复合材料:专业的泰安聚丙烯纤维哪家好 - LYL仔仔
  • Arm架构TLBI RVAE1NXS指令解析与内存管理优化
  • 5分钟掌握BookGet:全球50+图书馆古籍下载的完整指南
  • 首次使用taotoken从注册获取key到完成第一个api调用的全程记录
  • 告别硬件封锁:深入解析CS:GO/5E机器码的底层解除方案与持久生效原理
  • PDF文件怎么压缩?如何快速缩小PDF大小?2026实测压缩方法与工具推荐 - AI测评专家
  • ComfyUI-AnimateDiff-Evolved终极指南:如何轻松制作专业级AI动画
  • 2026年5月卡地亚中国区售后服务网络优化(最新电话及地址)【重磅推荐亲测踩坑实录】 - 卡地亚服务中心
  • 3步终极方案:Cursor Pro永久免费使用指南,轻松绕过试用限制实现AI编程工具解锁
  • Unity WebGL项目本地部署避坑指南:从报错到成功运行的完整流程
  • HFSS入门指南(一)核心界面解析与仿真前关键设置
  • 告别ArcGIS依赖!手把手教你用QGIS+InVEST模型搞定流域土壤保持评估
  • 2026 中国外包平台选型白皮书:在线设计 | 软件开发 | 小程序开发 | 网站建设 | 装修设计 | 电商装修全流程避坑指南 - 商业科技观察
  • Epson T3机器人如何绕过Modbus限制,用Fins TCP读写欧姆龙CJ2M PLC数据(附完整代码)
  • 从收音机到锁相环:聊聊模拟乘法器AD834在通信系统里的那些‘隐藏’用法
  • 超声彩色多普勒成像算法:原理、实现与应用
  • 国产声学逆袭!一颗咪头,打通手机、耳机、音箱全场景 - 麦可兴mic10
  • Python GUI开发终极指南:使用Pygubu快速构建tkinter界面
  • Nature 子刊重磅!砂型铸造图像分割开源数据集,破解工业 4.0 自动化难题
  • Burp Suite社区版保姆级入门:从零配置代理到抓取第一个HTTPS请求
  • 5.16 构造题总结
  • LabVIEW事件结构:从轮询到事件驱动的界面编程实战指南
  • 别再只装CUDA了!Windows 10深度学习环境搭建:CUDA、cuDNN与PyTorch/TensorFlow的版本‘婚姻’全解析