news 2026/2/7 6:10:40

从零实现树莓派5安装ROS2的系统启动盘创建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零实现树莓派5安装ROS2的系统启动盘创建

手把手打造树莓派5的ROS2启动盘:从零开始构建嵌入式机器人开发环境

你有没有过这样的经历?
刚拿到全新的树莓派5,满心欢喜地想跑个ROS2节点做SLAM建图,结果一查资料发现——官方根本没有预装ROS2的系统镜像。于是只能硬着头皮自己搭环境,apt update半天、编译卡死、依赖报错……折腾三天,项目还没开始。

别急,这篇文章就是为了解决这个问题而写的。

我们不走弯路,直接从“一张空SD卡”出发,一步步为你打造一个开机即用、自带ROS2环境的树莓派5启动盘。整个过程无需联网安装核心组件(可选),支持远程SSH接入,适合教学、原型开发和边缘部署。

更重要的是:全程基于真实操作逻辑展开,拒绝AI套路化写作。每一个步骤背后都有它的“为什么”,让你知其然也知其所以然。


为什么是树莓派5 + ROS2?

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

树莓派5不是简单的“升级版树莓派4”。它搭载了四核Cortex-A76架构处理器(2.4GHz)、LPDDR4X内存、PCIe 2.0接口和Wi-Fi 6,性能接近入门级x86迷你PC。最关键的是,它原生支持64位操作系统(AArch64),这为运行现代ROS2提供了必要前提。

而ROS2呢?早已不再是“实验性框架”。从Humble Hawksbill版本开始,ROS2进入了长期支持(LTS)时代,具备模块化设计、DDS通信、跨平台兼容性和初步实时能力。无论是小车导航、机械臂控制还是多机协同,都能在ROS2中找到成熟解决方案。

但问题来了:

“我能不能插上电就跑ros2 run turtlesim turtlesim_node?”

答案是——只要你有一个正确的启动盘


第一步:选对操作系统,少走90%的弯路

很多人一开始就错了:用了32位系统,或者选择了不支持ARM64的Ubuntu镜像。

✅ 正确选择:Ubuntu Server 22.04 LTS for Raspberry Pi (64-bit)

理由很明确:

特性说明
官方支持ARM64ROS2 Humble要求AArch64架构
长期支持(LTS)支持到2027年,稳定可靠
无桌面开销更多资源留给ROS2节点
APT源完整可直接安装ros-humble-*系列包

📌 小贴士:虽然Raspberry Pi OS也可以装ROS2,但它基于Debian且默认软件源不包含ROS2二进制包,需要手动添加密钥和仓库,容易出错。相比之下,Ubuntu Server与ROS2生态契合度更高。

你可以从Canonical官网下载:
👉 https://ubuntu.com/download/raspberry-pi

文件名类似:ubuntu-22.04.3-live-server-arm64+raspi.img.xz


第二步:用官方工具烧录,还能自动配置网络和SSH

别再用dd命令了!不仅危险,而且无法实现自动化初始化。

推荐使用Raspberry Pi Imager—— 树莓派基金会推出的图形化烧录工具,跨平台支持Windows/macOS/Linux,最重要的是:它支持cloud-init预配置

如何启用headless配置(无显示器安装)?

  1. 下载并安装 Raspberry Pi Imager
  2. 插入MicroSD卡
  3. 打开Imager → 点击右下角齿轮图标进入高级设置

在这里你可以设置:
- ✅ 启用SSH(建议使用密码登录)
- ✅ 设置用户名和密码(如pi/raspberry
- ✅ 配置Wi-Fi网络(SSID + 密码)
- ✅ 设置时区(Asia/Shanghai)
- ✅ 自定义主机名(如robot-controller

这些配置最终会生成一个user-data文件,写入SD卡的boot分区,由系统首次启动时通过cloud-init服务解析执行。

进阶玩法:手动编辑 user-data 实现更灵活控制

如果你想要更多自定义功能(比如自动安装pip、开启GPIO权限、预设静态IP),可以直接编辑user-data文件内容。

# user-data #cloud-config hostname: robot-pi5 timezone: Asia/Shanghai chpasswd: list: | pi:raspberry expire: false ssh_pwauth: true wifi: links: wlan0: dhcp4: true optional: true networks: myhome: match: name: wlan* dhcp4: true access-points: "YOUR_WIFI_SSID": password: "YOUR_WIFI_PASSWORD" packages: - net-tools - python3-pip - git - i2c-tools runcmd: - systemctl enable ssh - systemctl start ssh - usermod -aG dialout pi - usermod -aG i2c pi

💡 提示:将此文件保存为 FAT32 启动分区根目录下的user-data,确保没有扩展名,并设置权限为0644

这样,第一次上电后,你的树莓派就会自动连Wi-Fi、允许SSH登录、并赋予用户串口和I2C访问权限——完全不需要接显示器或键盘


第三步:给树莓派5装上ROS2——两种方式怎么选?

现在系统起来了,接下来就是重头戏:安装ROS2

这里有两条路:

方式优点缺点推荐场景
APT安装二进制包快速、稳定、省时间功能固定,不能定制大多数开发者首选
源码编译colcon构建可修改底层代码、调试方便编译耗时数小时,易失败算法研究/深度定制

对于90%的人,强烈建议走APT路线

使用APT一键安装ROS2 Humble

连接SSH后,依次执行以下命令:

# 更新系统 & 安装基础依赖 sudo apt update && sudo apt upgrade -y sudo apt install curl gnupg lsb-release -y # 添加ROS2官方GPG密钥 curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | \ sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg # 添加ROS2仓库(注意:humble适用于Ubuntu 22.04) 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 # 刷新软件源 sudo apt update # 安装ROS2核心包(推荐ros-base最小系统) sudo apt install ros-humble-ros-base -y # 安装常用工具链 sudo apt install python3-colcon-common-extensions ros-humble-rmw-cyclonedds-cpp -y

📌 关键点解释:

  • ros-humble-ros-base:只包含核心通信库,不含GUI工具,节省空间。
  • rmw-cyclonedds-cpp:轻量级DDS中间件,比FastDDS更省内存,特别适合树莓派这类资源受限设备。
  • python3-colcon-common-extensions:用于后续编译自定义ROS2工作空间。

设置环境变量,让ros2命令随时可用

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

现在输入ros2 --version,如果看到输出类似:

ros2 version 0.14.2

恭喜!你已经成功在树莓派5上部署了ROS2!


第四步:优化系统,让它真正“能干活”

别以为装完就结束了。很多新手会在实际运行中遇到这些问题:

  • 节点启动慢?
  • 日志把SD卡撑爆?
  • 控制指令延迟高?

这些都是可以提前规避的坑。

🔧 性能与稳定性优化清单

优化项操作方法效果
更换轻量DDS默认使用CycloneDDS减少CPU占用,提升消息吞吐
挂载外部存储USB SSD作为日志存储避免频繁写入损伤SD卡
启用swap分区增加2GB swap防止编译时内存溢出
设置静态IP修改netplan配置设备发现更稳定
关闭不必要的服务禁用bluetooth、avahi-daemon等节省系统资源
示例:配置静态IP(以有线网络为例)

编辑/etc/netplan/50-cloud-init.yaml

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

实战案例:用这个启动盘快速部署一台自主导航小车

假设你要做一个带激光雷达的小车,结构如下:

[RPi5] ← USB → [RPLIDAR A1] ← UART → [STM32电机控制器] ← GPIO → [Power Button & LED] ← Wi-Fi → [Remote PC running RViz2]

有了我们制作的这个启动盘,部署流程变成:

  1. 烧录镜像 → 插卡 → 上电
  2. 自动连接Wi-Fi,SSH直连pi@robot-pi5
  3. 启动雷达驱动节点:
    bash ros2 launch rplidar_ros rplidar_a1_launch.py
  4. 在远端PC运行RViz2查看点云数据
  5. 加载Nav2导航栈进行路径规划

整个过程不到10分钟,因为所有依赖都已经预装好了


常见问题与避坑指南(来自真实踩坑记录)

❌ 问题1:E: Unable to locate package ros-humble-ros-base

原因:系统架构不对!检查是否误用了32位系统。

解决办法:

uname -m

必须返回aarch64。如果不是,请重新刷64位Ubuntu Server镜像。


❌ 问题2:节点间通信延迟大、丢包严重

原因:默认DDS(如FastDDS)太重,吃内存。

解决办法:强制使用CycloneDDS:

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

可加入.bashrc永久生效。


❌ 问题3:SD卡频繁损坏或只读

原因:ROS2日志持续写入导致Flash磨损。

解决方案:
- 使用高质量UHS-I Class 10以上SD卡(推荐SanDisk Extreme)
- 或外接USB SSD作为/var/log挂载点
- 启用logrotate定期清理


最终成果:不只是一个镜像,而是一套可复用的开发范式

当你完成这一切之后,不妨做一件事:

把这张SD卡的内容备份成.img镜像文件

下次要部署新机器人?直接烧录这个自定义镜像,5分钟内就能让一台全新的树莓派5进入ROS2工作状态

这才是真正的“标准化部署”。

你甚至可以把这套流程封装成团队内部的CI/CD脚本,配合Packer或Ansible自动化生成镜像,实现“一次配置,处处运行”。


写在最后:技术的价值在于落地

树莓派5 + ROS2 的组合,正在成为教育机器人、科研原型和工业AGV测试平台的事实标准。它不高深,也不神秘,但却实实在在改变了无数工程师的工作方式。

而这一切的起点,往往就是一张正确配置的SD卡

希望这篇文章除了教会你怎么“树莓派5安装ros2”,更能让你意识到:

好的工具链,不是为了炫技,而是为了让创意更快落地

如果你觉得有用,欢迎收藏、转发,也欢迎在评论区分享你在部署过程中遇到的问题和技巧。我们一起把这条路走得更稳、更远。

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

Arduino IDE中文设置完整指南:界面语言切换步骤

如何让 Arduino IDE 显示中文?一文搞懂界面汉化全流程 你是不是刚打开 Arduino IDE,面对满屏的英文菜单有点发懵? “File”是文件,“Sketch”又是什么鬼?”、“Serial Monitor 到底在哪?”…… 别急&…

作者头像 李华
网站建设 2026/2/7 4:38:58

CTF流量分析工具深度评测:新手也能快速上手的实战指南

作为一名CTF新手,你是否曾面对杂乱的网络流量包感到无从下手?看着其他选手轻松提取flag,自己却只能在命令行中挣扎?今天,我将带你深度体验CTF-NetA这款专为CTF比赛设计的流量分析神器,看看它如何让复杂的网…

作者头像 李华
网站建设 2026/2/6 21:09:23

WorkshopDL:轻松解锁Steam创意工坊模组下载的完整解决方案

WorkshopDL:轻松解锁Steam创意工坊模组下载的完整解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为无法访问Steam创意工坊而烦恼吗?Worksh…

作者头像 李华
网站建设 2026/2/7 0:51:08

番茄小说下载器终极快速上手指南:免费高效获取电子书

番茄小说下载器终极快速上手指南:免费高效获取电子书 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 想要轻松下载网络小说并保存为专业格式吗?番茄小说…

作者头像 李华
网站建设 2026/2/3 15:14:57

PaddlePaddle镜像能否对接区块链存证?AI结果溯源方案

PaddlePaddle镜像能否对接区块链存证?AI结果溯源方案 在金融风控审批中,一份由AI识别的发票金额被质疑造假;在司法鉴定场景里,电子证据的生成时间成为案件争议焦点;在智能制造产线,质检报告是否真实反映了当…

作者头像 李华