news 2026/3/26 10:09:22

树莓派5安装ROS2通俗解释:新手也能懂的框架整合过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派5安装ROS2通俗解释:新手也能懂的框架整合过程

树莓派5装ROS2全记录:从刷系统到跑通导航,手把手带你入门机器人开发

你是不是也看过不少关于“树莓派装ROS”的文章,结果一动手就卡在第一步——系统都起不来?或者好不容易安装完,运行个节点却卡得像幻灯片?

别急。这篇文章不玩虚的,也不堆术语。我会像朋友聊天一样,一步步带你用树莓派5成功运行ROS2,哪怕你是第一次接触Linux、第一次听说“节点”或“发布订阅”,也能照着做出来。

我们目标明确:
👉 用最稳定的组合(Ubuntu 22.04 + ROS2 Humble)
👉 走最少的弯路(避开常见坑点)
👉 实现可验证的结果(最后能跑通一个真实机器人控制流程)

准备好了吗?咱们现在就开始。


为什么是树莓派5 + ROS2 这个组合?

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

以前做机器人,动不动就得上工控机或者NVIDIA Jetson这类贵家伙。但现在不一样了。树莓派5这块小板子,性能已经足够支撑SLAM建图、路径规划、多传感器融合这些“听起来很高级”的功能。

它强在哪?

  • CPU够猛:四核A76架构,主频2.4GHz,浮点运算能力比树莓派4提升近3倍;
  • 内存够大:支持8GB LPDDR4X,跑ROS2桌面环境不再卡顿;
  • 接口丰富:USB 3.0、千兆网口、PCIe接口……外接激光雷达、摄像头轻轻松松;
  • 功耗低:满载也就10瓦左右,适合移动机器人长时间运行。

而ROS2呢?它是现代机器人开发的事实标准。不像传统单片机那样把所有逻辑写在一起,ROS2让你可以把每个功能拆成独立模块(叫“节点”),比如:
- 一个节点读取激光雷达数据
- 一个节点处理定位
- 一个节点发速度指令给电机

它们之间通过“话题”通信,就像微信群发消息一样简单。

更重要的是,ROS2官方对Ubuntu 22.04的支持非常成熟,尤其是Humble Hawksbill版本,有预编译好的ARM64包,不用自己从源码编译——这对新手来说简直是救命稻草。

所以我们的选择很清晰:
✅ 硬件:树莓派5(建议4GB以上内存)
✅ 系统:Ubuntu 22.04 LTS 64位
✅ ROS版本:ROS2 Humble

接下来,我们就按这个路线走一遍。


第一步:刷系统 —— 别再用Raspberry Pi OS了!

很多人一开始就在这步错了:他们用默认的Raspberry Pi OS,结果发现ROS2装不上,或者只能装残缺版。

记住一句话:要跑ROS2,必须用64位系统

Raspberry Pi OS虽然也有64位版本,但它的软件生态偏桌面应用,而且ROS2支持不如Ubuntu完善。所以我们直接上Ubuntu Server 22.04 for Raspberry Pi或者带桌面的版本。

操作步骤:

  1. 下载 Raspberry Pi Imager
  2. 插入SD卡(建议≥32GB,Class 10 UHS-I)
  3. 打开Imager,点击“CHOOSE OS”
  4. 搜索并选择:
    -Ubuntu Server 22.04 LTS (RPi 3/4/5)(无界面,推荐用于纯控制)
    - 或Ubuntu Desktop 22.04 for Raspberry Pi(有图形界面,适合调试)

🛠 小贴士:如果你打算接显示器调试,选Desktop版更方便;如果只是远程SSH操作,Server版更轻量。

  1. 写入完成后,在SD卡根目录创建一个空文件,命名为ssh(无后缀),这样开机就能直接SSH登录。
  2. 插卡、通电、启动!

首次启动可能需要1–2分钟,请耐心等待。


第二步:确认系统环境 & 安装基础工具

等系统起来后,用路由器查一下树莓派分配到的IP地址,然后从你的电脑SSH连接进去:

ssh ubuntu@<树莓派IP> # 默认密码是 ubuntu,第一次登录会提示改密码

连上之后第一件事:检查是不是真的在64位系统上运行。

uname -m

✅ 正确输出应该是:aarch64
❌ 如果是armv7l,说明你在32位系统上,ROS2没法装!

接着更新系统和安装必要工具:

sudo apt update && sudo apt upgrade -y sudo apt install python3-pip curl wget gnupg2 lsb-release -y

这几样东西用途如下:
-python3-pip:用来装Python扩展包
-curl/wget:下载文件必备
-gnupg2:验证软件签名
-lsb_release:查看系统版本代号(必须是jammy

你可以敲一句看看:

lsb_release -cs

应该返回jammy,对应 Ubuntu 22.04。


第三步:添加ROS2软件源 —— 很多人在这里翻车

ROS2不是随便apt install ros就能装的,得先告诉系统去哪里找这些包。

我们要做两件事:
1. 添加ROS官方GPG密钥(防止下载被篡改)
2. 添加ROS2的APT源

执行命令:

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 jammy main" | \ sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

⚠️ 注意:这里我直接写了jammy,而不是用变量$(lsb_release -cs)。因为有些镜像源识别不准,反而出错。既然我们知道是22.04,那就手动写死更稳妥。

加完之后再更新一次软件列表:

sudo apt update

如果没报错,说明源配置成功。


第四步:安装ROS2 Humble —— 一行命令搞定

我们现在要安装的是ROS2 Humble Desktop完整版,包含:
- 核心库(rclcpp, rclpy)
- 图形工具 RViz2
- 仿真环境 Gazebo
- 调试工具 rqt
- 启动管理 launch
- 坐标变换 tf2

一句话安装:

sudo apt install ros-humble-desktop -y

这个过程根据网络情况,可能持续10–30分钟,别急。它会自动解决依赖关系,下载几百MB的内容。

装完后可以验证一下是否正常:

source /opt/ros/humble/setup.bash ros2 --version

你应该看到类似输出:

ros2 version 0.14.0

说明ROS2已正确安装。


第五步:配置环境变量 —— 让每次都能用ros2命令

每次打开终端都要手动source太麻烦了,我们把它写进shell配置文件里。

如果是bash(默认):

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

如果你用了zsh,则改为修改~/.zshrc

从此以后,只要打开终端,ros2命令随时可用。


第六步:装几个实用工具包 —— 提高效率少踩坑

ROS2刚装好是个“裸系统”,我们可以顺手装几个常用扩展:

1. 编译工具 colcon(写代码要用)

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

以后你克隆别人的ROS2项目,就可以用colcon build来编译。

2. 串口通信支持(连STM32/Arduino要用)

sudo apt install ros-humble-serial-driver -y

很多下位机控制器通过串口传cmd_vel速度指令,这个包就是干这个的。

3. 相机和传感器常用驱动

sudo apt install ros-humble-camera-info-manager ros-humble-diagnostic-updater -y

以后接摄像头、IMU时会用到。


实战演示:让树莓派真正成为一个机器人大脑

光装完还不算完,我们得让它“动起来”。

假设你现在有个轮式机器人底盘,上面装了激光雷达和IMU,你想让它实现自主导航。典型的架构长这样:

[传感器] ├─ RPLIDAR A1 → USB → 发布 /scan ├─ MPU6050 → I²C → 发布 /imu/data └─ 摄像头 → CSI → 发布 /image_raw ↓ 数据汇聚到树莓派5(ROS2中枢) [核心算法] ├─ robot_state_publisher:发布TF坐标 ├─ slam_toolbox:实时建图 ├─ nav2:路径规划与导航 └─ rviz2:可视化监控 ↓ 控制输出 [执行层] └─ 通过串口发送 Twist 消息给STM32 → 驱动电机

这套系统完全可以在树莓派5上跑通。

举个例子,启动SLAM建图:

ros2 launch slam_toolbox online_async_launch.py

一边走一边建图,最终生成一张可供导航的地图。

再比如启动Nav2导航栈:

ros2 launch nav2_bringup bringup_launch.py map:=your_map.yaml

然后在RViz2里点个目标点,机器人就会自动规划路径并前往。


新手必看:那些没人告诉你但一定会遇到的坑

❌ 问题1:SD卡老是坏,系统启动不了?

原因:频繁读写导致microSD卡寿命耗尽。

解决方案
换NVMe SSD!利用树莓派5的PCIe 2.0接口,通过M.2转接板接一个便宜的SSD,再把系统迁移到SSD上。不仅速度快,还大大延长使用寿命。

推荐搜索关键词:“树莓派5 NVMe启动教程”

❌ 问题2:节点启动特别慢,有时甚至超时?

常见症状ros2 run要等十几秒才响应,DDS发现机制失败。

罪魁祸首:DNS解析问题。

修复方法

echo "127.0.0.1 $(hostname)" | sudo tee -a /etc/hosts

把主机名映射到本地回环地址,立刻见效。

❌ 问题3:Gazebo一开就崩溃?

原因:GPU驱动不完整或显存不足。

建议做法
- 不要在树莓派上跑复杂仿真,太吃资源;
- 把仿真放在PC端(x86机器)运行;
- 树莓派只负责实机控制和数据采集;
- 两者通过Wi-Fi组ROS2局域网通信。

这才是合理的分工。


性能优化与稳定性建议

为了让树莓派5长期稳定运行ROS2系统,这几个设计要点一定要注意:

🔋 电源不能省

必须使用5V/3A USB-C PD电源,尤其当你外接多个设备(如雷达、摄像头)时。劣质电源会导致电压不稳,引发随机重启。

🌬 散热要做好

树莓派5发热不小。建议:
- 加装金属散热外壳
- 接一个小型风扇(可用GPIO温控启停)
- 避免密闭空间长时间高负载运行

📶 网络要可靠

设置静态IP,方便远程访问:

# 编辑 netplan 配置 sudo nano /etc/netplan/01-network-manager-all.yaml

改成固定IP后应用:

sudo netplan apply

同时开启SSH开机自启:

sudo systemctl enable ssh

🔄 开机自动启动ROS2节点

可以用systemd做成服务,例如让SLAM程序随系统启动:

# /etc/systemd/system/slam.service [Unit] Description=SLAM Toolbox Service After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu ExecStart=/bin/bash -c "source /opt/ros/humble/setup.bash && ros2 launch slam_toolbox online_async_launch.py" Restart=always [Install] WantedBy=multi-user.target

启用服务:

sudo systemctl enable slam.service

下次重启,SLAM自动开始工作。


写在最后:你离真正的机器人开发只差一步

看到这里,你已经完成了:
- 成功在树莓派5上安装ROS2
- 理解了基本的工作原理
- 避开了最常见的几个大坑
- 并且知道怎么把它用在一个真实的机器人系统中

这不是终点,而是起点。

下一步你可以尝试:
- 接一个RPLIDAR,跑通lidar_driver节点
- 用teleop_twist_keyboard遥控机器人移动
- 在RViz2里看TF坐标变换
- 最终实现一键建图+自动导航

每一步都不难,关键是敢动手。


如果你在安装过程中遇到了其他问题,欢迎留言讨论。我可以帮你一起排查。毕竟,当年我也是一步步从“黑屏、卡死、找不到IP”熬过来的。

技术这条路,不怕慢,就怕停。
你现在迈出的这一小步,也许就是未来那个智能机器人系统的第一个心跳。

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

Steam创意工坊下载终极指南:无需Steam客户端轻松获取模组

Steam创意工坊下载终极指南&#xff1a;无需Steam客户端轻松获取模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL WorkshopDL是一款功能强大的Steam创意工坊下载工具&#x…

作者头像 李华
网站建设 2026/3/26 4:01:53

一文说清Arduino小车循迹的基本工作流程

从零搞懂Arduino小车如何“看见”并追随黑线&#xff1a;一次完整的循迹控制系统拆解你有没有见过那种自己沿着地上的黑线跑来跑去的小车&#xff1f;不靠遥控&#xff0c;也不连手机&#xff0c;它就像长了眼睛一样&#xff0c;稳稳地拐弯、直行&#xff0c;甚至在断线时还能停…

作者头像 李华
网站建设 2026/3/26 4:58:04

QMC音频解码终极指南:快速实现音乐格式自由转换

QMC音频解码终极指南&#xff1a;快速实现音乐格式自由转换 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的专属格式无法在其他播放器上播放而烦恼吗&am…

作者头像 李华
网站建设 2026/3/21 6:58:33

Sunshine游戏流媒体服务器故障排除完整指南

Sunshine游戏流媒体服务器故障排除完整指南 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器&#xff0c;支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine作为一…

作者头像 李华
网站建设 2026/3/18 1:47:42

PaddlePaddle镜像能否用于铁路轨道缺陷检测?巡检AI系统

PaddlePaddle镜像能否用于铁路轨道缺陷检测&#xff1f;巡检AI系统 在高铁运营里程突破4万公里的今天&#xff0c;如何保障绵延万里的钢轨安全&#xff0c;已成为交通领域最紧迫的技术命题之一。传统依赖人工“眼看手记”的巡检方式早已不堪重负——一名工人徒步巡查10公里需耗…

作者头像 李华
网站建设 2026/3/26 22:29:23

智能视频PPT提取技术:从繁琐到高效的革命性突破

智能视频PPT提取技术&#xff1a;从繁琐到高效的革命性突破 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 你是否曾经花费数小时手动截图视频中的PPT页面&#xff1f;面对长达数小时…

作者头像 李华