树莓派4B上ROS2 Humble开发环境搭建:Ubuntu 22.04 LTS最佳实践

张开发
2026/5/11 4:00:22 15 分钟阅读

分享文章

树莓派4B上ROS2 Humble开发环境搭建:Ubuntu 22.04 LTS最佳实践
树莓派4B上ROS2 Humble开发环境搭建Ubuntu 22.04 LTS最佳实践树莓派4B作为一款高性能的单板计算机在机器人开发领域广受欢迎。结合Ubuntu 22.04 LTS的稳定性和ROS2 Humble的最新特性可以构建一个功能强大且易于维护的机器人开发平台。本文将详细介绍从系统安装到ROS2环境配置的全流程特别针对树莓派4B的硬件特性进行优化帮助开发者快速搭建高效的开发环境。1. 系统准备与安装1.1 硬件准备清单在开始之前请确保准备好以下硬件设备树莓派4B主板建议4GB或8GB内存版本至少32GB的microSD卡推荐使用UHS-I Class 10及以上规格5V/3A Type-C电源适配器散热套件散热片或风扇HDMI显示屏及连接线USB键盘和鼠标读卡器用于烧录系统镜像提示树莓派4B对电源质量较为敏感使用劣质电源可能导致系统不稳定或性能下降。1.2 Ubuntu 22.04 LTS镜像选择针对树莓派4BUbuntu官方提供了专门优化的镜像版本。我们推荐使用以下镜像镜像类型适用场景下载地址Ubuntu Server 22.04 LTS无GUI需求资源占用低官方下载Ubuntu Desktop 22.04 LTS需要图形界面官方下载对于ROS2开发如果不需要图形界面建议选择Server版本以获得更好的性能表现。1.3 系统烧录步骤使用Raspberry Pi Imager工具可以简化系统烧录过程# 在Linux系统下安装Raspberry Pi Imager sudo apt update sudo apt install rpi-imager烧录步骤插入microSD卡到读卡器并连接电脑打开Raspberry Pi Imager选择Other general-purpose OS Ubuntu 所需版本选择目标存储设备microSD卡点击Write开始烧录注意烧录过程会擦除SD卡上所有数据请提前备份重要文件。2. 系统基础配置2.1 首次启动设置完成系统烧录后将microSD卡插入树莓派并接通电源按照屏幕提示完成初始设置设置用户名和密码配置Wi-Fi网络连接可选应用系统更新首次启动后建议立即执行系统更新sudo apt update sudo apt upgrade -y sudo reboot2.2 性能优化配置针对树莓派4B的硬件特性进行以下优化CPU调频策略设置# 安装cpufrequtils sudo apt install cpufrequtils # 设置性能模式 echo GOVERNORperformance | sudo tee /etc/default/cpufrequtils sudo systemctl restart cpufrequtils内存交换优化# 调整swappiness值 echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 禁用不必要的服务 sudo systemctl disable snapd.service sudo systemctl disable snapd.seeded.service3. ROS2 Humble安装与配置3.1 安装前准备确保系统已安装必要的依赖项sudo apt install -y \ build-essential \ cmake \ git \ python3-colcon-common-extensions \ python3-flake8 \ python3-pip \ python3-pytest-cov \ python3-rosdep \ python3-setuptools \ python3-vcstool \ wget3.2 设置软件源添加ROS2 Humble的官方软件源sudo apt update sudo apt install -y curl gnupg lsb-release 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 $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null3.3 安装ROS2 Humble基础包sudo apt update sudo apt install -y ros-humble-desktop安装完成后初始化rosdepsudo rosdep init rosdep update3.4 环境变量配置将ROS2环境变量添加到bashrc中echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc4. 开发环境验证与测试4.1 基础功能测试运行简单的ROS2节点测试安装是否成功ros2 run demo_nodes_cpp talker在另一个终端中运行ros2 run demo_nodes_py listener如果能看到消息传递说明ROS2基础功能正常。4.2 性能基准测试使用rqt_graph查看节点通信ros2 run rqt_graph rqt_graph测试ROS2通信延迟ros2 run performance_test perf_test4.3 开发工具配置推荐安装的开发工具VS Code轻量级代码编辑器rqtROS2可视化工具集ros2bag数据记录与回放工具TurtleBot3仿真测试平台安装VS Codesudo apt install -y wget wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ sudo sh -c echo deb [archamd64,arm64,armhf signed-by/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main /etc/apt/sources.list.d/vscode.list sudo apt update sudo apt install -y code5. 高级配置与优化5.1 网络性能优化对于多机ROS2通信建议进行以下网络优化# 增加网络缓冲区大小 echo net.core.rmem_max2097152 | sudo tee -a /etc/sysctl.conf echo net.core.wmem_max2097152 | sudo tee -a /etc/sysctl.conf sudo sysctl -p5.2 实时性优化对于需要实时控制的应用可以安装PREEMPT-RT内核sudo apt install -y linux-raspi-rt-5.15 sudo reboot5.3 电源管理优化延长树莓派在电池供电下的工作时间# 降低CPU电压 echo arm_freq_min600 | sudo tee -a /boot/config.txt echo core_freq_min250 | sudo tee -a /boot/config.txt # 禁用HDMI输出 echo hdmi_blanking1 | sudo tee -a /boot/config.txt sudo reboot6. 常见问题解决6.1 安装问题排查问题1rosdep初始化失败解决方案sudo rm -f /etc/ros/rosdep/sources.list.d/20-default.list sudo rosdep init rosdep update问题2ROS2节点无法通信检查防火墙设置sudo ufw allow 11811/tcp sudo ufw allow 11812/tcp6.2 性能问题优化内存不足处理增加zram交换空间sudo apt install -y zram-config sudo systemctl restart zram-configCPU过热降频安装散热监控工具sudo apt install -y rpi-monitor sudo systemctl enable rpi-monitor sudo systemctl start rpi-monitor在实际项目中我发现树莓派4B运行ROS2 Humble时合理配置交换空间和CPU调频策略可以显著提升系统稳定性。特别是在运行多个节点时建议将swappiness值设置为10-20之间避免频繁的磁盘交换影响性能。

更多文章