news 2026/5/26 22:07:24

从零开始:树莓派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/5/25 15:02:35

海关进出口申报:HunyuanOCR自动解析提单与装箱单

海关进出口申报&#xff1a;HunyuanOCR自动解析提单与装箱单 在跨境物流的日常操作中&#xff0c;报关员面对堆积如山的提单、装箱单和发票时&#xff0c;最头疼的往往不是复杂的贸易条款&#xff0c;而是那些看似简单却极易出错的手动录入工作。一张模糊的英文提单上&#xff…

作者头像 李华
网站建设 2026/5/25 15:49:37

ESP32-CAM低功耗模式硬件支持机制详解

如何让ESP32-CAM用电池撑半年&#xff1f;揭秘深度睡眠与硬件断电的省电黑科技 你有没有遇到过这样的问题&#xff1a;花了不少钱做的智能摄像头&#xff0c;部署到野外才几天就没电了&#xff1f;明明只拍几张照片&#xff0c;怎么耗得比手机还快&#xff1f; 这正是许多工程…

作者头像 李华
网站建设 2026/5/5 10:25:25

SpringBoot+Vue 招生宣传管理系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着高等教育的普及和信息化建设的不断推进&#xff0c;招生宣传管理系统的需求日益增长。传统的招生宣传方式存在信息更新滞后、数据管理效率低下等问题&#xff0c;难以满足现代高校招生工作的需求。基于此&#xff0c;开发一款高效、便捷的招生宣传管理系统具有重要的现…

作者头像 李华
网站建设 2026/5/12 11:38:41

batch_size设置对训练速度和效果的影响实测分析

batch_size设置对训练速度和效果的影响实测分析 在消费级显卡上训练LoRA模型时&#xff0c;你有没有遇到过这样的情况&#xff1a;刚跑几轮就爆出CUDA out of memory&#xff0c;或者Loss曲线像过山车一样剧烈震荡&#xff1f;又或者明明训练了几十个epoch&#xff0c;生成结果…

作者头像 李华
网站建设 2026/5/23 14:37:56

esp32cam视频传输核心要点:内存管理与缓冲区分配

ESP32-CAM 视频传输实战&#xff1a;如何驯服内存与缓冲区的“野兽”你有没有遇到过这样的场景&#xff1f;明明代码逻辑没问题&#xff0c;摄像头也正常工作&#xff0c;可视频流就是卡顿、掉帧&#xff0c;甚至设备隔几分钟就自动重启。调试日志里满屏都是Guru Meditation Er…

作者头像 李华
网站建设 2026/5/7 21:00:15

如何利用腾讯混元OCR实现端到端拍照翻译?开发者必看

如何利用腾讯混元OCR实现端到端拍照翻译&#xff1f;开发者必看 在跨境电商客服每天要处理上百份来自不同国家的发票和产品说明书&#xff0c;旅游App用户对着外国菜单拍照却等了五六秒才出翻译结果——这些看似寻常的场景背后&#xff0c;暴露出传统OCR系统的深层痛点&#xf…

作者头像 李华