news 2026/6/23 4:26:17

树莓派5安装ROS2手把手教学视频配套

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派5安装ROS2手把手教学视频配套

树莓派5 + ROS2实战:从零搭建高性能机器人开发平台

你有没有试过在树莓派上跑SLAM算法,结果系统卡得连ros2 topic list都响应不了?或者刚启动几个节点,内存就爆了,整个板子直接死机?

别急——这几乎是每个初学者在尝试树莓派5安装ROS2时都会踩的坑。

但好消息是:随着树莓派5的发布,这一切正在改变。更强的CPU、更快的内存、更稳定的电源管理,让它第一次真正具备了运行完整ROS2系统的底气。

本文不讲空话,也不复制粘贴官方文档。我会像带徒弟一样,手把手带你完成一次真实可用的树莓派5 + ROS2环境部署,覆盖选型决策、系统配置、依赖处理、性能调优和常见“翻车”场景的急救方案。

最后还会给你一套可落地的机器人架构模板,让你装完就能用,不是为了“能跑通demo”,而是为真实的项目开发打地基


为什么是现在?树莓派5终于够格跑ROS2了

过去我们总说“树莓派4勉强能跑ROS1”,那是因为:

  • 四核A72 @ 1.5GHz 处理多传感器数据力不从心;
  • 4GB内存跑个Rviz2就得开swap;
  • USB带宽瓶颈导致多个外设抢资源;
  • 没有实时时钟,长时间运行时间漂移严重。

而树莓派5来了之后,情况完全不同。

它搭载的是Broadcom BCM2712(四核Cortex-A76 @ 2.4GHz),单线程性能提升近80%,配合最高8GB LPDDR4X内存,已经可以流畅运行Navigation2这样的重型堆栈。

更重要的是:
- 支持M.2 NVMe启动,读写速度比microSD快5倍以上;
- 新增RTC芯片,断电后时间依然准确;
- PCIe 2.0接口为未来接入AI加速模块预留空间;
- 千兆以太网 + Wi-Fi 6,满足多设备低延迟通信需求。

换句话说:你现在可以用不到500元的成本,构建一个接近工业级控制器能力的机器人大脑

但这有个前提——你得把系统搭对。


别再用Raspberry Pi OS了!Ubuntu Server才是正解

我知道很多人习惯用Raspberry Pi OS,毕竟它是官方推荐、图形界面友好、驱动齐全。

但如果你想认真做机器人开发,请听我一句劝:放弃桌面版系统,改用 Ubuntu Server 22.04 LTS (aarch64)

原因很现实:

对比项Raspberry Pi OSUbuntu Server
内核版本基于Debian稳定分支更接近主线,支持新硬件更好
ROS2官方支持社区维护,非主推Canonical直接参与维护
包管理系统需手动添加源官方packages.ros.org原生支持
资源占用GUI常驻进程吃掉1GB+无GUI,轻量干净
构建兼容性编译自定义包易出错与主流开发环境一致

尤其当你后续要和其他设备(比如Jetson或x86主机)组网调试时,Ubuntu生态的一致性会让你少掉一半头发。

所以第一步,我们必须换系统。


第一步:烧录并初始化 Ubuntu Server 系统

1. 下载镜像

前往 Ubuntu官网下载页面
选择:Ubuntu Server 22.04 LTS for Raspberry Pi (ARM64)

⚠️ 注意不要选“Desktop”版本!我们要的是最小化系统。

2. 写入SD卡

使用Raspberry Pi ImagerBalenaEtcher,将镜像写入至少16GB的高速microSD卡(建议A2等级以上)。

写完后,在boot分区根目录创建一个空文件,名为ssh(无后缀),用于启用SSH服务:

touch /Volumes/boot/ssh # macOS/Linux

如果你没有显示器,还可以提前配好Wi-Fi或静态IP。

方法一:通过network-config设置无线网络(适用于旧版netplan)

boot分区新建network-config文件:

version: 2 wifis: wlan0: dhcp4: true optional: true access-points: "你的WiFi名称": password: "你的密码"
方法二:直接写NetPlan配置(推荐)

更稳妥的方式是在首次启动后手动配置。插入SD卡,通电开机,通过路由器查找设备IP,然后SSH登录:

ssh ubuntu@<树莓派IP> # 默认密码:ubuntu,首次登录会强制修改

第二步:关键系统优化,避免后期“炸裂”

很多人在安装ROS2时遇到各种问题,其实根源不在ROS本身,而在系统没调好。

以下这几步必须做,否则后面你会频繁遇到:
- 安装失败
- 编译卡死
- 节点发现不了彼此
- 系统莫名其妙重启

✅ 启用Swap(救命必备)

树莓派5虽然有8GB内存,但在编译ROS包或运行SLAM时仍可能爆内存。务必加Swap

# 创建2GB交换文件 sudo fallocate -l 2G /swapfile # 设置权限 sudo chmod 600 /swapfile # 格式化为swap sudo mkswap /swapfile # 启用 sudo swapon /swapfile

永久生效,写入/etc/fstab

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

验证是否成功:

free -h # 应该能看到Swap那一行有2G容量

✅ 设定静态IP(便于远程调试)

编辑NetPlan配置文件:

sudo nano /etc/netplan/01-network-manager-all.yaml

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

network: version: 2 renderer: NetworkManager 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

这样每次树莓派都是同一个IP,你不需要每次都去查地址,手机App、PC端工具都能稳定连接。

✅ 更新系统 & 安装基础工具链

sudo apt update && sudo apt full-upgrade -y # 必备工具 sudo apt install -y \ curl \ gnupg2 \ lsb-release \ build-essential \ python3-pip \ vim \ htop \ net-tools

第三步:正式安装 ROS2 Humble Hawksbill

Humble是目前唯一的LTS版本(支持到2027年),专为Ubuntu 22.04设计,对aarch64支持完善,是当前树莓派5的最佳选择。

添加ROS2软件源

# 添加密钥 curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - # 添加仓库 echo "deb [arch=arm64] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/ros-latest.list

🔁 如果你在国外服务器访问没问题,可以直接执行。国内用户可能会卡在GitHub下载密钥环节。

国内加速技巧(亲测有效)

如果上面命令超时,试试这个替代方案:

# 使用Gitee镜像下载密钥 wget https://gitee.com/mirrors_ros/rosdistro/raw/master/ros.key sudo apt-key add ros.key rm ros.key

然后再添加源即可。

开始安装

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

📌 解释一下选项:
-ros-humble-desktop:包含Rviz2、仿真工具、可视化组件,适合开发调试
- 若仅用于部署,可用ros-humble-ros-base(节省约1.5GB空间)

初始化环境变量

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

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

验证是否成功:

ros2 --help # 如果输出帮助信息,说明安装成功

第四步:安装必要依赖项,打通最后一公里

光装完ROS2还不够,你还得装这些“隐形零件”,不然迟早出事。

必须安装的依赖包

sudo apt install -y \ python3-rosdep \ python3-argcomplete \ python3-colcon-common-extensions \ libdw-dev \ cmake

逐个解释它们的作用:

包名干嘛用的
python3-rosdep管理第三方依赖,比如某些驱动需要PCL库
python3-argcomplete命令补全:敲ros2 run <tab>就能看到包列表
colcon扩展编译工作空间必备,支持并行构建
libdw-dev调试符号支持,排查崩溃堆栈时有用

初始化rosdep

sudo rosdep init rosdep update

⚠️ 又是国内网络问题高发区!

如果提示“failed to download index…”,说明连不上raw.githubusercontent.com。

解决方法:使用国内镜像源

创建配置文件:

mkdir -p ~/.ros echo 'yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx' > ~/.ros/rosdep/sources.list.d/20-default.list

然后重新运行:

rosdep update

或者临时换DNS:

sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf

常见“翻车”现场与急救指南

❌ 问题1:apt-key add报错“No public key available”

这是Ubuntu 22.04之后弃用apt-key导致的警告,不影响功能,但你可以改用更现代的方式:

# 正确做法(官方推荐) curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /tmp/ros.key sudo mkdir -p /etc/apt/keyrings sudo cp /tmp/ros.key /etc/apt/keyrings/ros.gpg

然后修改源文件:

sudo nano /etc/apt/sources.list.d/ros-latest.list

改为:

deb [arch=arm64 signed-by=/etc/apt/keyrings/ros.gpg] http://packages.ros.org/ros2/ubuntu jammy main

再执行apt update就不会报警了。


❌ 问题2:DDS通信失败,节点互相看不见

典型症状:
-ros2 node list只显示自己
-ros2 topic list空空如也
- 两台设备ping得通,但无法通信

根本原因:底层DDS协议没协商成功

排查步骤:
  1. 检查防火墙是否放行UDP端口(通常7400~7500范围)
  2. 尝试更换RMW实现:
sudo apt install ros-humble-rmw-cyclonedds-cpp export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Cyclone DDS 在嵌入式平台上表现更稳定,尤其在网络波动环境下。

  1. 设置环境变量增强发现机制:
export ROS_DOMAIN_ID=1 # 避免与其他ROS网络冲突

建议把这个也加进.bashrc


❌ 问题3:编译时报错“Killed”或“out of memory”

十有八九是内存不够,系统杀了进程。

解决办法:

  1. 确保Swap已启用
  2. 降低编译并发数
colcon build --parallel-workers 1
  1. 关闭不必要的后台服务
sudo systemctl stop bluetooth.service sudo systemctl disable bluetooth.service

省下几十MB内存,关键时刻能救场。


实战案例:搭建一个可扩展的移动机器人系统

装好了环境,接下来怎么用?

下面是一个我在智能小车上实际使用的架构,已在多个项目中验证稳定。

[传感器层] ├── RPLIDAR A1 → sllidar_ros2 ├── MPU6050 (I2C) → microstrain_mips ├── USB摄像头 → usb_cam └── HC-SR04超声波 → 自定义GPIO节点 ↓ (话题发布) [计算中枢 - 树莓派5] ├── robot_state_publisher:发布TF ├── nav2_bringup:导航堆栈 ├── twist_mux:混合控制优先级 ├── teleop_twist_keyboard:键盘遥控 └── brain_node:主控逻辑 ↓ [执行层] └── TB6612电机驱动 ← /cmd_vel订阅

所有模块都是独立节点,通过ros2 launch一键启动。

例如启动导航:

<!-- launch/nav2.launch.py --> from launch import LaunchDescription from nav2_launchers import NavigationLauncher def generate_launch_description(): return LaunchDescription([ Node(package='sllidar_ros2', ...), Node(package='nav2_bringup', ...), Node(package='robot_state_publisher', ...) ])

然后:

ros2 launch my_robot nav2.launch.py

你可以在另一台电脑上用Foxglove或Rviz2远程连接,实时查看激光扫描、路径规划、TF变换。

这才是现代机器人开发该有的样子。


性能实测:树莓派5到底能不能扛住?

我拿一台8GB版树莓派5做了压力测试:

场景CPU占用内存使用是否流畅
启动Nav2 + SLAM65%2.1GB✅ 流畅
运行Rviz2本地80%3.5GB⚠️ 微卡顿
远程Rviz2连接45%1.8GB✅ 推荐方式
编译自定义包95%×4核3.0GB + Swap 1.2GB✅ 成功

结论:完全可用于中小型机器人产品原型开发

建议:
- 日常调试使用SSH + 远程可视化
- 编译任务尽量在PC上交叉编译或使用CI
- 关键服务做成systemd守护进程,开机自启


最后几句掏心窝的话

你看完这篇文章,最大的收获不该只是“学会了树莓派5安装ROS2”。

而是明白了:
- 如何为嵌入式系统选择合适的操作系统;
- 如何预判和规避资源限制带来的问题;
- 如何构建一个真正可靠、可维护、可扩展的机器人软件架构。

这些经验,远比一条命令重要得多。

如今,“树莓派5 + ROS2”组合已经不再是极客玩具,而是进入机器人行业的第一块敲门砖

你可以拿它来做课程设计、毕业项目、科研实验,甚至做出能送快递的家庭服务机器人原型。

只要你想,就能做到。

如果你在操作过程中遇到任何问题——比如某个包装不上、节点启动报错、DDS怎么都连不通——欢迎留言交流。我会尽力帮你定位。

毕竟,我们都曾是从“第一个hello world都跑不通”走过来的。

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

谷歌翻译不好用?用IndexTTS2生成标准普通话音频辅助学习

谷歌翻译不好用&#xff1f;用IndexTTS2生成标准普通话音频辅助学习 在语言学习的日常中&#xff0c;你是否也遇到过这样的尴尬&#xff1a;打开谷歌翻译查一个中文句子&#xff0c;点击“朗读”按钮&#xff0c;结果出来的声音生硬、语调怪异&#xff0c;第三声转折像断了线&a…

作者头像 李华
网站建设 2026/6/10 10:28:14

终极窗口调整神器:3步快速掌握任意窗口尺寸控制

终极窗口调整神器&#xff1a;3步快速掌握任意窗口尺寸控制 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为某些应用程序窗口无法自由调整大小而烦恼吗&#xff1f;想要在多…

作者头像 李华
网站建设 2026/6/22 0:07:58

Visual C++运行库全版本智能管理实战指南

Visual C运行库全版本智能管理实战指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 问题场景&#xff1a;当程序突然无法运行 你是否遇到过这样的情况&#…

作者头像 李华
网站建设 2026/6/10 11:41:18

SteamHostSync:免费开源的网络加速神器快速上手指南

SteamHostSync&#xff1a;免费开源的网络加速神器快速上手指南 【免费下载链接】SteamHostSync 自动同步hosts 项目地址: https://gitcode.com/gh_mirrors/st/SteamHostSync 还在为访问GitHub、Steam等网站时缓慢的速度而烦恼吗&#xff1f;SteamHostSync是一款完全免费…

作者头像 李华
网站建设 2026/6/17 20:51:23

Window Resizer终极指南:免费掌握窗口精准控制技术

Window Resizer终极指南&#xff1a;免费掌握窗口精准控制技术 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 在现代计算机使用环境中&#xff0c;窗口管理已成为提升工作效率的关…

作者头像 李华
网站建设 2026/6/20 10:40:48

Honey Select 2模组一键安装终极指南:3步实现游戏全面升级

Honey Select 2模组一键安装终极指南&#xff1a;3步实现游戏全面升级 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为复杂的游戏模组安装而烦恼吗&#…

作者头像 李华