news 2026/5/1 23:43:03

树莓派5安装ROS2新手教程:零基础入门必备指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派5安装ROS2新手教程:零基础入门必备指南

树莓派5跑ROS2?别再被坑了!手把手带你从零部署机器人开发环境

你是不是也曾在搜索“树莓派5安装ros2”时,翻遍全网教程却发现:有的用Raspberry Pi OS却装不上完整版ROS2,有的提示找不到软件包,还有的节点一运行就卡死?别急——这背后不是你技术不行,而是大多数教程忽略了最关键的前提:系统架构与版本兼容性

今天,我就以一名嵌入式开发者踩过无数坑的经验,带你绕开这些陷阱,用最稳定、最高效的方式,在树莓派5上成功部署ROS2 Humble Hawksbill。整个过程不编译源码、不折腾依赖,全程基于官方预编译包,适合零基础新手快速上手。


为什么你的树莓派5装不上ROS2?

在动手之前,先搞清楚一个核心问题:ROS2只支持64位系统(aarch64),且Humble版本仅适用于Ubuntu 22.04或其衍生发行版

而很多用户犯的第一个错误,就是用了32位的Raspberry Pi OS(即使标着“64-bit”,也可能默认启动为32位模式)。结果呢?
-apt找不到ros-humble-desktop
- 安装中途报错“architecture not supported”
- 即便勉强装上,运行节点时频繁崩溃

所以,第一步必须选对操作系统。


第一步:刷对系统镜像,别让后续努力白费

推荐系统:Ubuntu Server 22.04 LTS (ARM64)

虽然Raspberry Pi Imager里有“Raspberry Pi OS (64-bit)”,但为了确保万无一失,我强烈建议使用Ubuntu Server 22.04.3 LTS for Raspberry Pi 3/4/5 (64-bit)

✅ 优势:
- 与 ROS2 Humble 完全匹配
- 原生支持 aarch64 架构
- 软件源丰富,依赖管理更干净
- 社区活跃,出问题容易查解决方案

操作步骤:

  1. 下载 Raspberry Pi Imager
  2. 插入 microSD 卡
  3. 打开工具 → 选择操作系统 →Other general-purpose OS
  4. 展开 Ubuntu → 选择Ubuntu Server 22.04.3 LTS (RPi 3/4/5) 64-bit
  5. 选择存储设备 → 点击 “Write”

等待烧录完成。这个过程大约3~5分钟。


第二步:启用SSH和Wi-Fi,实现无显示器操作

树莓派5没有内置eMMC,我们得靠microSD卡启动。为了不用接屏幕、键盘也能配置,需要提前开启SSH并设置Wi-Fi。

启用 SSH

烧录完成后,SD卡会弹出两个分区。进入名为system-boot的分区,在根目录下创建一个空文件:

touch ssh

这个小动作会让系统首次启动时自动开启SSH服务。

配置 Wi-Fi(可选)

如果你不想用网线,可以在同一目录下新建一个network-config文件(注意:部分镜像要求是netplan配置),或者直接添加wpa_supplicant.conf/boot/wifi目录(具体路径视镜像而定)。

更通用的做法是在/boot/下创建netplan/文件夹,并放入自定义配置:

# /boot/netplan/wifi.yaml network: version: 2 wifis: wlan0: dhcp4: true access-points: "你的WiFi名称": password: "你的密码"

保存后安全弹出SD卡,插入树莓派5,通电启动。


第三步:登录系统,确认关键信息

通过路由器后台查找树莓派分配到的IP地址(通常显示为ubuntu设备),然后使用SSH登录:

ssh ubuntu@<树莓派IP>

首次登录会提示修改密码,请务必设置强密码。

接着验证几个关键点:

检查系统架构是否为 aarch64

uname -m

✅ 正确输出应为:

aarch64

❌ 如果是armv7larmhf,说明你用了32位系统,必须重刷!

更新系统基础组件

sudo apt update && sudo apt upgrade -y

顺便安装几个常用工具:

sudo apt install wget gnupg lsb-release curl python3-pip -y

第四步:正式安装 ROS2 Humble —— 关键来了!

现在进入正题。我们要添加 ROS2 官方软件源,并安装桌面完整版。

添加 GPG 密钥

sudo wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg

添加 APT 源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

📌 注意:$(lsb_release -cs)应返回jammy(Ubuntu 22.04 的代号),如果不是,请手动替换为jammy

安装 ROS2 Desktop 版本

sudo apt update sudo apt install ros-humble-desktop -y

📌 这个命令会安装以下内容:
| 组件 | 功能 |
|------|------|
|rclcpp/rclpy| C++ 和 Python 开发接口 |
|rviz2| 三维可视化工具 |
|ros2cli| 命令行工具(如topic,node,param) |
|demo_nodes_*| 示例程序,用于测试 |

安装时间约10~15分钟,取决于网络速度。


第五步:配置环境变量,让ros2命令随处可用

每次都要输入完整路径太麻烦,我们需要让它开机自动加载。

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

验证是否安装成功:

ros2 --version

✅ 成功输出类似:

ros2 version 0.15.0

恭喜!你已经完成了树莓派5安装ros2的核心步骤。


第六步:跑个例子看看效果 —— talker & listener 上场

打开两个终端窗口(可通过tmux或另起一个SSH连接):

终端1:运行C++发布者

ros2 run demo_nodes_cpp talker

终端2:运行Python订阅者

ros2 run demo_nodes_py listener

如果看到终端2不断打印"I heard hello world"消息,那就说明通信正常!

💡 小贴士:如果没反应,可能是DDS中间件有问题。试试切换到 Cyclone DDS:

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

然后再运行上面的例子,通常能解决通信异常问题。


实战场景:树莓派5 + ROS2 能做什么?

别以为这只是个“能跑就行”的玩具系统。实际上,树莓派5配上ROS2,完全可以胜任真实项目中的边缘计算任务。

典型应用架构

[传感器群] → UART/I2C/SPI → [树莓派5运行ROS2] ↓ ↑ 激光雷达/LiDAR ←→ 电机驱动器/Motor Driver ↓ ↑ [PC/RViz远程监控] ←--Wi-Fi/Ethernet--→

在这个体系中,树莓派5作为主控单元,承担以下职责:
- 采集多路传感器数据(IMU、编码器、红外)
- 执行EKF融合定位
- 运行Nav2导航栈进行路径规划
- 控制电机运动
- 将状态数据发送至PC端RViz实时显示


常见坑点与避坑指南

问题表现解决方案
Unable to locate package ros-humble-desktop报错找不到包检查系统是否为 Ubuntu 22.04 + aarch64
安装卡顿或中断下载慢、断连使用国内镜像源(如清华TUNA)
talker/listener无通信节点启动但无消息传递设置RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
CPU占用过高系统变慢甚至死机关闭GUI服务,减少日志级别
microSD卡寿命短系统频繁写入导致损坏外接NVMe SSD挂载/opt/ros或工作空间

提升稳定性的小技巧

  1. 外接SSD扩展存储
    树莓派5支持PCIe接口,可通过M.2转接板接入NVMe SSD,大幅提升I/O性能并延长SD卡寿命。

  2. 禁用不必要的服务
    bash sudo systemctl disable bluetooth.service sudo systemctl disable avahi-daemon.service

  3. 启用NTP时间同步
    分布式系统中时间一致至关重要:
    bash sudo timedatectl set-ntp true

  4. 使用虚拟环境隔离Python依赖
    避免pip污染系统环境:
    bash python3 -m venv ~/ros_env source ~/ros_env/bin/activate


进阶方向:你可以继续做什么?

当你成功跑通第一个ROS2节点后,真正的旅程才刚刚开始:

1. 构建巡线机器人

  • 使用GPIO读取红外传感器阵列
  • 编写PID控制器调节转向
  • 发布PWM指令控制直流电机

2. 实现SLAM建图

  • 接入RPLIDAR A1等低成本激光雷达
  • 启动slam_toolbox在线建图
  • 使用nav2_bringup实现自主导航

3. 集成AI推理能力

  • 安装 TensorFlow Lite 或 ONNX Runtime
  • 在ROS2节点中调用图像分类模型
  • 实现目标识别+避障联动

4. 搭建多机协同系统

  • 多台树莓派组成ROS2网络
  • 使用DDS广播共享地图与位置信息
  • 实现编队移动或区域分工探索

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

完成树莓派5安装ros2只是你踏入机器人世界的第一步。但正是这一步,让你拥有了一个强大又经济的开发平台——它足够小巧,可以装进小车底盘;也足够强大,能跑通完整的导航栈和感知算法。

更重要的是,这套组合(树莓派5 + ROS2 Humble + Ubuntu Server)已经成为教育、科研和创客项目的标准配置之一。无论你是学生做课程设计,还是工程师打原型,都能从中获得实实在在的价值。

如果你在安装过程中遇到任何问题,欢迎在评论区留言交流。我会持续更新这篇指南,帮助更多人少走弯路。

🚀 下一步你想尝试什么?是接摄像头做视觉识别,还是加上GPS实现室外导航?让我们一起把想法变成现实。

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

Open-AutoGLM装不上?揭秘MacOS系统兼容性问题及3种解决方案

第一章&#xff1a;Open-AutoGLM mac上安装在 macOS 系统上部署 Open-AutoGLM 需要确保开发环境满足基本依赖条件。该框架基于 Python 构建&#xff0c;依赖特定版本的 PyTorch 和 Transformers 库&#xff0c;因此建议使用虚拟环境进行隔离管理。环境准备 macOS 10.15 或更高版…

作者头像 李华
网站建设 2026/4/28 5:32:59

卫星影像变化检测:基于TensorFlow的时间序列对比

卫星影像变化检测&#xff1a;基于TensorFlow的时间序列对比 在城市边界悄然扩张、森林被成片砍伐、洪水一夜之间淹没村庄的今天&#xff0c;我们比以往任何时候都更需要一种快速、客观且可复现的方式来“看见”地球的变化。遥感卫星每天都在从太空拍摄地表图像&#xff0c;数据…

作者头像 李华
网站建设 2026/4/23 10:47:40

WebAssembly虚拟机终极指南:从新手到专家的完整方案

WebAssembly虚拟机终极指南&#xff1a;从新手到专家的完整方案 【免费下载链接】awesome-wasm &#x1f60e; Curated list of awesome things regarding WebAssembly (wasm) ecosystem. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-wasm 你是否还在为选择哪…

作者头像 李华
网站建设 2026/5/1 8:50:47

TensorFlow支持的十大预训练模型及其应用场景

TensorFlow支持的十大预训练模型及其应用场景 在当今AI技术加速落地的时代&#xff0c;一个现实问题摆在许多开发团队面前&#xff1a;如何用有限的数据和算力&#xff0c;在短时间内构建出稳定可靠的智能系统&#xff1f;答案往往藏在一个词里——迁移学习。而在这个范式中&a…

作者头像 李华
网站建设 2026/4/23 12:19:32

计算机毕设java医院信息管理系统 基于Java技术的医院信息管理平台设计与实现 Java驱动的医院信息化管理系统开发

计算机毕设java医院信息管理系统5pdu89&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着信息技术的飞速发展&#xff0c;医院管理逐渐从传统的人工操作向信息化、智能化转变。…

作者头像 李华
网站建设 2026/5/1 18:52:02

Nextcloud Docker升级终极安全方案:零风险迁移实战指南

Nextcloud Docker升级终极安全方案&#xff1a;零风险迁移实战指南 【免费下载链接】docker ⛴ Docker image of Nextcloud 项目地址: https://gitcode.com/gh_mirrors/dock/docker 还在为Nextcloud Docker镜像升级而提心吊胆吗&#xff1f;作为企业级私有云存储平台&am…

作者头像 李华