news 2026/4/16 16:02:14

树莓派5安装ROS2避坑指南(新手必读)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派5安装ROS2避坑指南(新手必读)

树莓派5装ROS2踩坑实录:从崩溃到跑通的完整实战指南

你是不是也曾在搜索“树莓派5安装ros2”时,满怀希望地点开一篇又一篇教程,结果不是卡在apt update就是编译到一半内存爆掉?别急,这不怪你——树莓派5 + ROS2 的组合,看似平民化开发利器,实则处处是坑。我花了整整三天时间,重刷系统六次、遭遇十余种奇奇怪怪的错误后,终于摸清了这条路上的所有陷阱。

今天,我就把这套可复现、零失败的部署方案完整分享出来。不是照搬官方文档,而是告诉你:“为什么必须这么做,否则就会翻车”。


为什么你的安装总是失败?根源在这里

先说结论:90% 的失败源于操作系统选错了

很多人第一反应是用熟悉的 Raspberry Pi OS(原 Raspbian),但它基于ARMHF 架构(32位),而 ROS2 官方只提供AArch64(即 ARM64)的预编译包。这意味着:

即使你强行安装成功,也会发现rclcpp找不到、colcon build报架构不匹配、DDS 节点根本起不来……

更别说那些依赖 Python 包和 C++ 工具链的模块,全都会因为 ABI 不兼容而集体罢工。

正确起点:Ubuntu Server 22.04 LTS ARM64

唯一推荐的选择是:
👉Ubuntu 22.04.3 LTS Server for Raspberry Pi (ARM64)

去哪里下?
官网地址: https://ubuntu.com/download/raspberry-pi

⚠️ 注意!不要下载 Desktop 版本——图形界面会吃掉大量资源,影响后续 ROS2 编译性能。我们用 SSH 连接操作即可。

写入 SD 卡建议使用 Raspberry Pi Imager ,选择 “Use custom” 导入镜像文件,确保目标设备为 SD 卡或 M.2 SSD(如果你有 M.2 HAT)。


上电前必做:硬件与系统级优化配置

树莓派5虽然性能提升明显,但默认设置下依然扛不住 ROS2 的构建压力。以下几项调整,能让你少走8小时弯路。

1. 启用 Swap —— 防止编译中途 OOM 崩溃

ROS2 源码编译峰值内存占用可达3.5GB以上,即使你有 4GB 内存也顶不住。解决办法只有一个:加 swap。

# 创建一个 2GB 的 swap 文件 sudo fallocate -l 2G /swapfile # 设置权限、格式化并启用 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 写入 fstab 实现开机自动挂载 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

验证是否生效:

free -h

你应该看到类似这样的输出:

total used free shared buff/cache available Mem: 3.7G 1.2G 2.1G 150M 400M 2.3G Swap: 2.0G 0B 2.0G

✅ 成功!现在你可以安心进行 colcon build 了。


2. 换国内 APT 源 —— 下载速度从龟速变飞快

默认的 Ubuntu 源在国外,更新一次apt可能耗时两小时以上。换成清华源,30分钟内搞定所有依赖

备份原配置:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

替换为清华镜像站(专用于 ARM64/Ubuntu-Ports):

cat << EOF | sudo tee /etc/apt/sources.list deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse EOF

刷新缓存:

sudo apt update

💡 小贴士:ubuntu-ports是专门针对非 x86 架构(如 arm64)的仓库,务必保留这个路径!


3. 温控与散热策略 —— 别让高温降频拖慢进度

树莓派5满载时 CPU 温度轻松突破 80°C,一旦超过阈值就会自动降频至 1.5GHz 以下,编译速度直接腰斩。

解决方案很简单:主动降温 + 设置软限温

编辑配置文件:

sudo nano /boot/firmware/config.txt

添加一行:

temp_soft_limit=70

保存退出。这表示当温度达到 70°C 时开始逐步降低频率,而不是等到硬触发 85°C 才猛降,避免性能剧烈波动。

同时建议:
- 加装金属散热片
- 使用带风扇的外壳
- 或直接连接 GPIO 驱动 PWM 风扇


安装 ROS2 Humble:关键步骤一个都不能错

ROS2 有两个主流版本支持 Ubuntu 22.04:Humble HawksbillIron Irwini。目前生态最成熟的是Humble,因此我们选择它。

第一步:安装基础工具链

sudo apt install curl gnupg2 lsb-release

第二步:添加 GPG 密钥(注意方式已更新)

⚠️ 注意!apt-key add已被弃用,但我们仍可用传统方法快速完成(未来建议迁移到密钥环管理):

curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add -

第三步:添加 ROS2 软件源

重点来了!一定要确认你的系统代号是jammy,架构是arm64

检查命令:

lsb_release -cs # 应返回 jammy uname -m # 应返回 aarch64

然后添加源:

echo "deb [arch=arm64] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/ros2.list

再次执行:

sudo apt update

如果出现 “Unable to locate package ros-humble-desktop”,请立刻回头检查三点:
1. 是否用了 ARM64 系统?
2. APT 源是否拼写正确?
3.$(lsb_release -cs)是否真的等于jammy


第四步:安装桌面版 ROS2

sudo apt install ros-humble-desktop

这个包包含了:
- rclcpp / rclpy 客户端库
- rviz2 可视化工具
- Nav2 导航栈
- ROS 通信中间件(DDS)
- launch、topic、service 等核心工具

安装完成后约占用 1.8GB 空间。


第五步:初始化 rosdep —— 最容易卡住的环节

sudo apt install python3-rosdep sudo rosdep init rosdep update

问题来了:rosdep update经常超时失败,因为它要访问 raw.githubusercontent.com。

解决方案:手动下载 distribution.yaml

使用国内代理镜像加速:

# 创建目录 mkdir -p ~/.ros/rosdistro/humble # 使用 ghproxy 中转下载 wget https://ghproxy.com/https://github.com/ros/rosdistro/raw/main/humble/distribution.yaml \ -O ~/.ros/rosdistro/humble/distribution.yaml # 强制更新(包含 EOL 分布) rosdep update --include-eol-distros

这样基本可以 100% 成功。


让 ROS2 在树莓派上真正“跑得动”的调优技巧

装完不代表就能流畅运行。以下是我在实际测试中总结出的关键优化点。

1. 改用 Cyclone DDS —— 显著降低通信延迟

默认的 Fast DDS 在 ARM 平台上表现一般,尤其在多节点并发时延迟高、CPU 占用大。

切换为 Eclipse Cyclone DDS,轻量高效,更适合嵌入式场景。

安装:

sudo apt install ros-humble-rmw-cyclonedds-cpp

设置环境变量:

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

你可以将其写入~/.bashrc,实现永久生效:

echo 'export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp' >> ~/.bashrc source ~/.bashrc

实测效果:相同负载下 CPU 占用下降 15%,消息延迟减少 30%。


2. 控制并行编译数量 —— 避免资源争抢

当你用colcon build编译自定义功能包时,默认会启动多个 worker,极易导致内存溢出。

安全做法:

colcon build --parallel-workers 1

或者最多设为 2:

colcon build --parallel-workers 2

虽然慢一点,但稳定第一。


3. 启用 systemd 自启服务(可选)

想让机器人上电自动运行 ROS2 节点?可以用 systemd 管理。

例如创建一个启动导航的 service:

nano ~/.config/systemd/user/nav2.service

内容如下:

[Unit] Description=ROS2 Nav2 Stack After=network.target [Service] Type=simple Environment="RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" ExecStart=/bin/bash -c "source /opt/ros/humble/setup.bash && ros2 launch nav2_bringup bringup_launch.py" Restart=always [Install] WantedBy=default.target

启用:

systemctl --user daemon-reload systemctl --user enable nav2.service systemctl --user start nav2.service

典型应用场景:移动机器人主控实战

在我的实验中,树莓派5作为主控完成了以下任务:
- 接收 RPLIDAR A1 的激光数据(通过 USB)
- 运行 SLAM Toolbox 实时建图
- 控制 TB6612FNG 电机驱动板(通过 GPIO PWM)
- 提供 Web UI 查看状态(Node.js + WebSocket)

整个系统在启用 Cyclone DDS 和 swap 后,平均 CPU 占用率维持在 45% 左右,内存稳定在 1.2GB,完全满足小型室内机器人需求。

📌 成本估算:树莓派5(8GB)+ M.2 HAT + SSD + 传感器 ≈ ¥800,远低于工业控制器。


常见问题与“救命”方案汇总

问题现象原因分析解决方法
Unable to locate package ros-humble-desktop系统非 ARM64 或源配置错误检查uname -m和 APT 源
cc1plus: out of memory未配置 swap 或并行数过多添加 swap,并使用--parallel-workers 1
Failed to load entry pointPython 包权限或路径问题使用source /opt/ros/humble/setup.bash
No space left on deviceSD 卡容量不足或日志膨胀使用 ≥32GB 存储介质,定期清理/var/log
rosdep update失败GitHub 被墙手动下载distribution.yaml

写在最后:这条路还能走多远?

树莓派5 + ROS2 的组合,已经不再是“玩具级”尝试。凭借 PCIe 接口支持 NVMe SSD、USB 3.0 高速传输、双频 Wi-Fi 6,它完全可以胜任:
- 教学演示平台
- 原型验证系统
- 家庭服务机器人中枢
- 边缘AI推理协处理器(配合 Coral TPU)

当然,它也有局限:没有实时内核支持、GPIO 中断响应不够快、不适合高动态控制。但对于大多数初学者和中小型项目来说,这是性价比最高的入门路径

掌握正确的安装方法,避开那些隐藏极深的坑,你才能真正把精力集中在“做机器人”本身,而不是天天修环境。


如果你正在尝试将 ROS2 跑在树莓派5上,欢迎留言交流遇到的具体问题。我已经替你趟过雷了,也许一句话就能帮你省下半天时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:32:53

避坑指南:vLLM部署Qwen3-Reranker-4B常见问题解决

避坑指南&#xff1a;vLLM部署Qwen3-Reranker-4B常见问题解决 1. 引言&#xff1a;为何部署Qwen3-Reranker-4B会遇到问题&#xff1f; 随着大模型在检索与排序任务中的广泛应用&#xff0c;Qwen3-Reranker-4B 凭借其强大的多语言支持、32K上下文长度和卓越的重排序性能&#…

作者头像 李华
网站建设 2026/4/13 20:27:33

永久开源承诺!保留版权信息共同维护生态

永久开源承诺&#xff01;保留版权信息共同维护生态 1. 引言&#xff1a;图像修复技术的演进与开源价值 1.1 图像修复的技术背景 随着深度学习在计算机视觉领域的深入发展&#xff0c;图像修复&#xff08;Image Inpainting&#xff09;已成为一项关键的基础能力。从早期基于…

作者头像 李华
网站建设 2026/4/16 10:21:31

B站下载效率倍增:BiliTools智能解析与批量下载实战指南

B站下载效率倍增&#xff1a;BiliTools智能解析与批量下载实战指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bil…

作者头像 李华
网站建设 2026/4/16 10:21:41

YOLO26模型测试:低光照条件性能

YOLO26模型测试&#xff1a;低光照条件性能 1. 镜像环境说明 本技术博客基于最新发布的 YOLO26 官方版训练与推理镜像 展开&#xff0c;该镜像为开发者提供了从环境配置到模型部署的一站式解决方案。镜像构建于 YOLO26 官方代码库&#xff08;Ultralytics v8.4.2&#xff09;…

作者头像 李华
网站建设 2026/4/16 10:21:34

让BongoCat桌面猫咪成为你的数字工作伙伴:告别孤独办公的全新体验

让BongoCat桌面猫咪成为你的数字工作伙伴&#xff1a;告别孤独办公的全新体验 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat …

作者头像 李华
网站建设 2026/4/16 10:22:19

轻松在macOS上启用Intel无线网卡:itlwm驱动完整指南

轻松在macOS上启用Intel无线网卡&#xff1a;itlwm驱动完整指南 【免费下载链接】itlwm Intel Wi-Fi Drivers for macOS 项目地址: https://gitcode.com/gh_mirrors/it/itlwm 想让您的Intel无线网卡在macOS系统中正常工作吗&#xff1f;itlwm项目为您提供了完美的解决方…

作者头像 李华