news 2026/4/14 21:08:33

手把手教你为树莓派5安装ROS2配置64位操作系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你为树莓派5安装ROS2配置64位操作系统

树莓派5上跑ROS2?别再被32位系统坑了!一文搞定64位Ubuntu + ROS2完整部署

你是不是也曾在树莓派5上尝试安装ROS2,结果apt install ros-humble-desktop直接报错:“无法定位软件包”?

别急——这多半不是你的操作问题,而是你用的系统不对

树莓派5虽然是热门开发板,但它的“ROS2适配之路”对新手并不友好。很多人踩的第一个大坑就是:用了32位系统,却想装64位的ROS2。而ROS官方从Humble开始,早已不再为ARM32提供二进制包。

本文不讲空话,手把手带你完成一次稳定、高效、可量产的树莓派5 ROS2环境搭建全过程。我们选用Ubuntu Server 22.04 LTS(aarch64) + ROS2 Humble Hawksbill组合,抛弃图形界面,专注打造一个轻量、远程可控、适合长期运行的机器人边缘节点。


为什么树莓派5必须上64位系统?

先说结论:如果你的目标是“在树莓派5上运行ROS2”,那就必须使用64位操作系统

看清硬件真相:树莓派5不是“小玩具”

很多人还把树莓派当成学习Linux的小工具,但实际上,树莓派5已经是一台正经的嵌入式服务器

  • CPU:Broadcom BCM2712,四核Cortex-A76 @ 2.4GHz(64位ARMv8-A)
  • 内存:支持LPDDR4X,最高8GB
  • 接口:PCIe 2.0 x1、双频Wi-Fi 5、千兆以太网、双HDMI输出
  • I/O控制器:全新RP1芯片,大幅降低外设延迟

这意味着它完全有能力承担SLAM、路径规划、多传感器融合等典型ROS任务。

但这一切的前提是——你得让它跑在64位模式下

32位系统的致命缺陷

Raspberry Pi OS(原Raspbian)曾长期主推32位版本,因为它兼容性好、资源占用低。但这也带来了严重后果:

🚫ROS2官方从Foxy版本起,就不再为armhf(32位ARM)提供二进制包

也就是说:

sudo apt install ros-foxy-desktop # 在32位系统上会失败

即使你强行编译源码,也会遇到Python依赖冲突、C++标准库不匹配、DDS中间件编译失败等一系列问题。

所以,第一步就错了,后面步步都难


选什么系统?Ubuntu Server是最佳答案

面对众多选择,我们应该怎么挑?

系统是否推荐原因
Raspberry Pi OS (32-bit)❌ 不推荐不支持ROS2官方包
Raspberry Pi OS (64-bit Desktop)⚠️ 可用但臃肿GUI拖累性能,不适合做服务端节点
Debian 12 ARM64✅ 可行轻量,但需手动配置ROS源和依赖
Ubuntu Server 22.04 aarch64✅✅✅ 强烈推荐官方支持ROS2、LTS更新到2027、生态完善

Ubuntu Server 22.04 for Raspberry Pi是目前最省心的选择。它由Ubuntu官方维护,专为无头设备优化,且与ROS2文档高度一致。

💡 小知识:ROS2 Humble Hawksbill 正是为 Ubuntu 22.04(代号 Jammy Jellyfish)量身定制的LTS版本,支持将持续到2027年。


第一步:刷写64位Ubuntu Server系统

1. 下载镜像

前往官网下载最新版:
👉 https://ubuntu.com/download/raspberry-pi

选择文件:

ubuntu-22.04.4-live-server-arm64+raspi.img.xz

注意:一定要是arm64版本,不要误下x86或32位镜像。

2. 写入SD卡

推荐工具:
-Raspberry Pi Imager(简单直观)
-BalenaEtcher(跨平台可靠)

步骤:
1. 插入microSD卡(建议≥32GB,UHS-I Class 10以上)
2. 打开烧录工具,选择刚才下载的.img.xz文件
3. 选择目标SD卡,点击“Write”
4. 等待完成并安全弹出

3. 启用SSH(关键!避免接显示器)

为了实现“无屏部署”,我们需要提前开启SSH。

在SD卡烧录完成后,它会自动挂载为一个名为system-boot的分区。在这个分区根目录创建一个空文件:

touch ssh

这个技巧适用于大多数基于Debian/Ubuntu的树莓派镜像,系统启动时检测到该文件就会自动启用OpenSSH服务。

4. 首次启动 & 登录

将SD卡插入树莓派5,通电启动。

连接方式有两种:
-有线网络:推荐,更稳定
-Wi-Fi:可在system-boot分区编辑network-config文件预设SSID

等待1–2分钟后,通过路由器后台查看新设备IP地址,然后SSH登录:

ssh ubuntu@192.168.1.105

默认用户名:ubuntu
首次登录会提示设置密码。


第二步:固定IP,告别网络波动

ROS通信极度依赖稳定的网络环境。如果每次重启树莓派IP都变,会导致话题通信中断、主机找不到节点等问题。

我们来配置静态IP。

编辑Netplan配置文件:

sudo nano /etc/netplan/00-installer-config.yaml

修改内容如下(根据你的网络调整):

network: version: 4 renderer: networkd ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]

应用配置:

sudo netplan apply

现在你的树莓派就有了固定的“身份证”,再也不怕找不到了。


第三步:正式安装ROS2 Humble

准备工作就绪,进入核心环节。

1. 更新系统 & 安装基础依赖

sudo apt update && sudo apt upgrade -y sudo apt install wget gnupg2 lsb-release software-properties-common -y

2. 添加ROS2软件源和GPG密钥

这是最关键的一步,确保你能从官方仓库下载到正确的ARM64包。

添加密钥:

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

添加APT源:

echo "deb [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/ros-latest.list

✅ 检查点:$(lsb_release -cs)应返回jammy,否则说明系统版本不符。

3. 安装ROS2桌面版

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

这个包包含了:
- 核心运行时(rclcpp,rmw
- 图形化工具RViz2
- 仿真支持(Gazebo集成)
- 常用功能包(如tf2,nav_msgs

如果你只是做后台数据采集节点,可以改用:

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

节省约1.5GB空间。

4. 安装构建工具

sudo apt install python3-colcon-common-extensions -y

colcon是ROS2的标准构建系统,用于编译自定义功能包。

5. 设置环境变量

让每次打开终端都能自动加载ROS2环境:

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

验证是否成功:

env | grep ROS

你应该能看到一堆以ROS_开头的环境变量。


第四步:跑个Demo,确认一切正常

来,让我们运行一个经典测试节点,看看ROS2是不是真的活了。

ros2 run demo_nodes_cpp talker

另开一个终端(可通过SSH再连一次),订阅消息:

ros2 run demo_nodes_py listener

如果看到类似输出:

[INFO] [1712345678.123456]: I heard: [Hello World: 1]

恭喜!你的树莓派5已经成功变身ROS2节点!


进阶实战:让ROS2开机自启

在真实机器人项目中,没人每次去手动启动节点。我们要让它上电即运行

利用Linux的systemd服务管理器,轻松实现守护进程。

创建服务文件

sudo nano /etc/systemd/system/my_robot.service

写入以下内容(示例运行talker节点):

[Unit] Description=My ROS2 Robot Node After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu ExecStart=/bin/bash -c "source /opt/ros/humble/setup.bash && ros2 run demo_nodes_cpp talker" Restart=always RestartSec=10 [Install] WantedBy=multi-user.target

保存退出后启用服务:

sudo systemctl enable my_robot.service sudo systemctl start my_robot.service

检查状态:

sudo systemctl status my_robot.service

从此以后,只要通电联网,你的机器人节点就会自动上线。


工程级建议:提升系统稳定性

别忘了,机器人是要长时间运行的。以下是我在多个项目中总结出的关键经验。

🔌 电源必须稳

  • 使用官方5V/5A USB-C电源
  • 避免使用手机充电头供电
  • 电压不稳会导致SD卡损坏、CPU降频甚至死机

🌡️ 散热不能省

树莓派5性能强,发热也大。建议:
- 加装金属外壳(被动散热)
- 或搭配小型风扇(主动散热)
- 可通过命令监控温度:

vcgencmd measure_temp

💾 存储要靠谱

  • SD卡易损,优先选用工业级品牌(如SanDisk Extreme Pro)
  • 更优方案:通过M.2转接板接NVMe SSD(走PCIe),大幅提升IO性能和寿命

🔐 安全要加强

ROS2默认使用UDP广播通信,端口范围在7400以上。建议:
- 关闭不必要的服务(如蓝牙、Avahi)
- 配置防火墙规则(ufw
- 多机协作时启用DDS安全策略(Advanced Security选项)

⏱️ 时间要同步

在分布式系统中,时间戳错乱会导致数据错位。启用NTP:

sudo timedatectl set-ntp true timedatectl status

确保所有设备时间误差小于100ms。


实际应用场景:树莓派5作为边缘感知节点

在我的一个巡检机器人项目中,树莓派5担任传感器聚合中心角色:

[NVIDIA Jetson Orin] ←ROS2 Topics→ [Raspberry Pi 5] ↑ ↓ 主控与导航引擎 摄像头 + IMU + 温湿度

具体分工:
- Jetson负责SLAM、全局路径规划、AI推理
- 树莓派5负责采集图像、发布IMU数据、执行本地避障逻辑

两者通过局域网以ROS2 Topic通信,延迟低于20ms,完全满足实时性需求。

得益于Ubuntu Server的轻量化设计,树莓派5平均CPU占用仅30%,内存占用1.2GB(8GB总内存),运行一周无需重启。


常见问题答疑

❓ 为什么不能用Raspberry Pi OS 64位桌面版?

可以,但不推荐。原因:
- 自带大量GUI组件(如Chromium、LibreOffice),浪费资源
- 默认Shell环境与ROS2文档略有差异
- 更新策略不如Ubuntu稳定

如果你需要图形界面调试,建议后期通过VNC或WebUI扩展,而不是一开始就装桌面环境。

❓ 能否用Debian或其他发行版?

技术上可行,但你要自己解决:
- ROS2依赖库版本兼容性
- Python 3.10+环境配置
- GPG密钥和APT源手动添加

对于大多数开发者来说,省下的时间远比磁盘空间宝贵


最后一句话

树莓派5不再是“玩票”的开发板,它是能真正投入实用的低成本高性能边缘计算平台

只要记住三点:
1.必须用64位系统
2.首选Ubuntu Server 22.04 aarch64
3.善用systemd实现自动化

你就已经超越了80%的初学者。

下一步,不妨试试在树莓派5上部署YOLOv8-Tiny做物体识别,再通过ROS2传给主控——这才是智能机器人的正确打开方式。

如果你正在搭建自己的机器人系统,欢迎在评论区分享你的架构设计,我们一起探讨优化方案。

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

ResNet18应用指南:场景与物体识别完整教程

ResNet18应用指南:场景与物体识别完整教程 1. 引言:通用物体识别中的ResNet-18价值 在计算机视觉领域,通用物体识别是构建智能系统的基础能力之一。无论是图像搜索、内容审核,还是增强现实和自动驾驶,精准理解图像内…

作者头像 李华
网站建设 2026/4/6 1:20:19

vivado2025安装教程:手把手带你完成环境配置

手把手教你安装 Vivado 2025:从零搭建高效 FPGA 开发环境 你是不是也曾在尝试启动一个FPGA项目时,被复杂的开发工具安装流程劝退?尤其是面对像 Vivado 2025 这样功能强大但“体型庞大”的IDE,下载卡顿、许可证失败、启动报错……

作者头像 李华
网站建设 2026/4/12 17:48:01

DownKyi完全指南:轻松下载B站8K高清视频的终极教程

DownKyi完全指南:轻松下载B站8K高清视频的终极教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff…

作者头像 李华
网站建设 2026/4/13 14:32:37

如何安全使用R3nzSkin:英雄联盟个性化换肤的终极指南

如何安全使用R3nzSkin:英雄联盟个性化换肤的终极指南 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL).Everyone is welcome to help improve it. 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款专为英雄联盟玩…

作者头像 李华
网站建设 2026/4/13 18:10:00

Jable视频下载神器:一键永久收藏,告别网络依赖

Jable视频下载神器:一键永久收藏,告别网络依赖 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download 还在为Jable.tv平台的精彩视频无法离线保存而苦恼?网络信号不稳、…

作者头像 李华
网站建设 2026/4/13 4:24:17

G-Helper:华硕笔记本性能调校的艺术之旅

G-Helper:华硕笔记本性能调校的艺术之旅 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: https://gi…

作者头像 李华