news 2026/1/11 17:44:53

从零开始:树莓派5安装ROS2手把手教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零开始:树莓派5安装ROS2手把手教程

树莓派5装ROS2踩坑实录:从系统刷写到小海龟跑起来

你是不是也曾在搜索“树莓派5安装ros2”时,被一堆过时教程、报错信息和交叉编译劝退?别急——我最近刚亲手在一块全新的树莓派5上完成了原生ROS2环境的搭建,过程中踩了几乎所有能踩的坑。今天这篇,不讲空话套话,只说真正能在你手上跑通的操作流程

我们目标明确:
✅ 使用64位系统
✅ 直接通过APT安装官方预编译包(非源码编译)
✅ 成功运行turtlesim验证通信正常
✅ 给出常见问题的真实解决方案

准备好了吗?让我们从插上电开始。


为什么是树莓派5 + ROS2?

先说结论:这是目前性价比最高的轻量级机器人主控组合之一。

树莓派5不再是那个只能点灯的小玩具。它搭载了四核Cortex-A76 @ 2.4GHz处理器、最高8GB内存、千兆以太网和PCIe接口,性能接近十年前的笔记本电脑。更重要的是,它支持完整的Linux发行版,比如基于Debian的Raspberry Pi OS 64-bit——而这正是ROS2官方支持的平台。

而ROS2(Humble Hawksbill版本),作为当前LTS长期支持版,已经为Ubuntu 22.04(代号Jammy)提供了arm64架构的二进制包。只要你的系统识别为aarch64,就能直接apt install,省去数小时源码编译。

所以,当这两个东西碰在一起,理论上是可以“开箱即用”的。但现实往往更复杂一点……


第一步:选对操作系统,90%的问题源于此

别再用32位系统了!

这是最关键的一条。ROS2 Humble 官方仅提供arm64(即aarch64)架构的二进制包,如果你用的是传统的32位Raspberry Pi OS,无论你怎么折腾,都会遇到:

E: Unable to locate package ros-humble-desktop

或者:

No installation candidate for ros-humble-*

因为根本没为你这个架构打包。

✅ 正确做法:
使用 Raspberry Pi Imager ,选择:

Operating System → Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit)
Raspberry Pi OS with desktop (64-bit)

推荐新手选带桌面的版本,调试方便;追求极致性能可选Lite版+SSH远程操作。

📌 提示:烧卡前点击左上角“齿轮”图标,可以提前启用SSH、设置Wi-Fi、配置时区和用户名密码,避免第一次启动还要接显示器。


第二步:确认系统环境是否达标

开机后第一件事不是急着装ROS2,而是检查基础环境:

# 查看系统代号(必须是 jammy) lsb_release -cs # 查看CPU架构(必须是 aarch64) uname -m

你应该看到输出分别是:

jammy aarch64

如果不是,请立即回头检查系统镜像是否正确。

接着更新系统软件包:

sudo apt update && sudo apt full-upgrade -y

这一步很重要,有些旧版库会影响后续依赖解析。


第三步:添加ROS2官方源(新版方法已弃用apt-key

网上很多老教程还在用sudo apt-key add -来添加密钥,但这种方法已被废弃,会导致警告甚至失败。

✅ 新标准做法如下:

# 安装必要工具 sudo apt install curl gnupg lsb-release -y # 下载并添加GPG密钥 curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo gpg --dearmor -o /usr/share/keyrings/ros2.gpg # 添加源列表 echo "deb [arch=arm64 signed-by=/usr/share/keyrings/ros2.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

🔍 注意点:
-signed-by=指定密钥路径,确保安全性;
-$(lsb_release -cs)自动获取系统代号;
- 输出重定向防止终端污染。

完成后执行:

sudo apt update

如果出现签名错误或无法连接,尝试换成清华大学镜像源(国内用户强烈建议):

# 替换上面的源地址为: echo "deb [arch=arm64 signed-by=/usr/share/keyrings/ros2.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

第四步:安装ROS2 Desktop完整套件

现在终于可以装ROS2了!

sudo apt install ros-humble-desktop -y

这个包包含了:
- 核心运行时(ros-core
- RViz2可视化工具
-turtlesim演示程序
- 图像处理、导航等常用功能包

如果你设备存储紧张(如16GB SD卡),也可以只装核心:

sudo apt install ros-humble-ros-base -y

但我建议初学者直接上desktop,不然连RViz都没有,怎么学?


第五步:配置环境变量

为了让终端能识别ros2命令,需要加载环境脚本:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc

验证是否生效:

ros2 --version

你应该看到类似:

ros2 version 0.0.0 (from ros-humble-ros2cli)

虽然版本号看起来奇怪,但这其实是正常的——说明命令已成功加载。


第六步:安装开发工具链(colcon + rosdep)

接下来安装两个关键工具:

sudo apt install python3-colcon-common-extensions python3-rosdep -y
  • colcon:ROS2官方构建系统,用来编译你的工作空间;
  • rosdep:管理第三方依赖,避免手动安装各种库。

然后初始化rosdep

sudo rosdep init rosdep update

⚠️ 常见报错:

ERROR: cannot download default sources list from ...

这是因为默认服务器在国外。解决办法是改用国内镜像:

# 手动创建sources.list文件 sudo mkdir -p /etc/ros/rosdep/sources.list.d sudo wget -O /etc/ros/rosdep/sources.list.d/20-default.list \ https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list

然后再运行:

rosdep update

第七步:跑个经典例子:小海龟动起来!

来吧,见证奇迹的时刻。

新开一个终端,运行:

ros2 run turtlesim turtlesim_node

你会看到一个小窗口弹出,里面有一只蓝色小海龟。

再开第二个终端:

ros2 run turtlesim turtle_teleop_key

按提示用键盘方向键控制它移动!

🎮 如果你能看到小海龟响应按键动作,恭喜你——你的树莓派5已经成功运行ROS2!

这意味着:
- 节点通信正常
- DDS中间件工作良好
- GUI显示无异常
- 系统资源足够支撑基本任务


遇到了问题?这些坑我都替你踩过了

❌ 问题1:rviz2启动闪退或段错误(Segmentation Fault)

原因:GPU内存分配不足。

树莓派共享内存给GPU,若默认只分了16MB,图形应用极易崩溃。

✅ 解决方案:

sudo raspi-config

进入:

Performance Options → GPU Memory → 设置为128MB

重启后再试。


❌ 问题2:编译时报错“Killed”或内存耗尽

即使有8GB RAM,在编译大型ROS2包时也可能爆内存。

✅ 解决方案:增加交换空间(swap)

# 关闭当前swap sudo dphys-swapfile swapoff # 修改配置文件 sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=2048/g' /etc/dphys-swapfile # 重新生成并开启 sudo dphys-swapfile setup sudo dphys-swapfile swapon

设置2GB swap后,编译稳定性大幅提升。

📌 建议:长期开发者应考虑使用M.2 HAT外接NVMe SSD,并将系统迁移到SSD上,彻底摆脱microSD卡I/O瓶颈。


❌ 问题3:找不到包或依赖冲突

有时候你会发现某些包装不上,比如ros-humble-navigation2

原因可能是仓库索引未刷新,或版本不匹配。

✅ 解决步骤:

sudo apt clean sudo apt update --fix-missing sudo apt install <package-name>

同时注意不要混用不同ROS2版本的源(比如既加了humble又加了foxy)。


进阶玩法:你可以做什么?

现在你的树莓派5已经是一个合格的ROS2边缘节点了。下一步可以尝试:

🧩 接入真实传感器

  • 通过I2C连接IMU(如MPU6050),发布/imu/data
  • 使用USB摄像头发布/camera/image_raw
  • 接入激光雷达(RPLIDAR A1/A4),跑通slam_toolbox

🚗 实现自主导航

安装Nav2:

sudo apt install ros-humble-nav2-* ros-humble-navigation2 -y

配合robot_localization做融合定位,让机器人真正“看得懂地图、走得准路”。

🔗 构建多机协同系统

用树莓派5做主控,多个STM32跑micro-ROS,形成“大脑+小脑”架构。


写在最后:这不是终点,而是起点

当我第一次看到那只小海龟在我的树莓派5屏幕上游动时,我知道这条路走通了。

也许你现在正卡在一个报错里焦头烂额,但请相信:每一个成功的ROS2项目,都是从一次看似简单的“安装”开始的。

而你现在读到的每一步,都是我在终端里一行行敲出来、一次次重启验证过的真家伙。

别怕麻烦,动手去做。当你把ROS2部署在一块不到百元的开发板上时,你就已经走在成为机器人工程师的路上了。


💡互动时间:你在安装ROS2时遇到的最大难题是什么?欢迎留言分享,我们一起解决。

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

基于CH340的USB转串口驱动问题排查:实战案例解析

深入CH340驱动坑点&#xff1a;从“未知设备”到批量烧录混乱的实战排障全记录你有没有遇到过这样的场景&#xff1f;新买的开发板插上电脑&#xff0c;设备管理器里却只显示一个带着黄色感叹号的“未知设备”&#xff1b;或者明明昨天还好好的串口下载功能&#xff0c;系统一更…

作者头像 李华
网站建设 2026/1/4 1:14:22

数据泄露风险评估:HunyuanOCR检测截图中暴露的个人信息

数据泄露风险评估&#xff1a;HunyuanOCR检测截图中暴露的个人信息 在企业日常协作中&#xff0c;一张随手截取的屏幕图像可能正悄然成为数据泄露的突破口。财务报表、客户资料、内部通讯记录——这些本应受控的信息&#xff0c;常常以截图形式在邮件、即时消息或协作平台中流转…

作者头像 李华
网站建设 2026/1/11 11:10:16

阿拉伯语从右向左排版兼容性:HunyuanOCR布局判断准确性

阿拉伯语从右向左排版兼容性&#xff1a;HunyuanOCR布局判断准确性 在当今全球化信息处理的浪潮中&#xff0c;一份来自中东的合同、一张双语药品说明书或一段混合书写的社交媒体截图&#xff0c;早已不再是边缘案例。当阿拉伯语与中文并列出现在同一张图片中&#xff0c;当希伯…

作者头像 李华
网站建设 2026/1/10 9:29:05

二维码与条形码旁边文字提取:HunyuanOCR定位精度验证

二维码与条形码旁文字提取&#xff1a;HunyuanOCR定位精度实战验证 在零售、物流和智能制造的日常场景中&#xff0c;一张商品标签上的信息往往由两部分构成&#xff1a;一部分是机器可读的条形码或二维码&#xff0c;另一部分则是人工标注的辅助文字——比如“净含量&#xff…

作者头像 李华
网站建设 2026/1/4 1:14:03

ESP32-CAM通过Arduino连接Wi-Fi的核心要点解析

ESP32-CAM Wi-Fi连接实战&#xff1a;从烧录失败到稳定联网的全链路避坑指南你有没有遇到过这种情况——满怀期待地把ESP32-CAM接上USB转TTL&#xff0c;打开Arduino IDE点击“上传”&#xff0c;结果却弹出一串红字&#xff1a;“Failed to connect to ESP32: Timed out waiti…

作者头像 李华
网站建设 2026/1/4 1:11:25

百度贴吧内容治理:HunyuanOCR识别违规吧主公告截图

百度贴吧内容治理&#xff1a;HunyuanOCR识别违规吧主公告截图 在大型社交平台的日常运营中&#xff0c;最让人头疼的问题之一&#xff0c;莫过于那些“藏”在图片里的违规信息。以百度贴吧为例&#xff0c;作为中文互联网历史最悠久的社区之一&#xff0c;其UGC&#xff08;用…

作者头像 李华