树莓派4B保姆级教程:从Ubuntu20.04到ROS完整配置(含图形桌面+远程连接)
树莓派4B实战指南:构建你的专属机器人开发工作站
最近有不少朋友问我,想入门机器人开发或者物联网项目,有没有一个成本可控、功能又足够强大的硬件平台推荐。我通常会毫不犹豫地告诉他们:试试树莓派4B吧。这不仅仅是一块信用卡大小的开发板,更是一个潜力巨大的微型计算机。特别是当你把它和Ubuntu Server、图形桌面以及ROS(机器人操作系统)结合起来时,它就能瞬间变身为一台功能完备的机器人开发工作站。今天,我就把自己在多个项目里反复折腾、踩坑后总结出的完整配置流程分享出来,目标是让你能避开我走过的弯路,一次性成功搭建好环境。
这个流程覆盖了从一张空白SD卡到最终能跑起机器人仿真和代码的完整链路。我们会重点解决几个新手最容易卡住的地方:比如在没有显示器的情况下如何优雅地配置WiFi和远程桌面,如何在国内网络环境下高效地安装庞大的软件包,以及如何确保ROS环境稳定可用。整个过程我会尽量用最直白的方式讲解,即使你之前没怎么接触过Linux命令行,跟着做下来应该也不会有太大问题。
1. 系统部署:为树莓派注入灵魂
拿到树莓派4B,第一步就是为它安装一个操作系统。虽然官方提供了Raspberry Pi OS,但对于机器人开发而言,基于ARM64架构的Ubuntu Server 20.04 LTS是一个更通用、生态更成熟的选择。它拥有长期支持,软件仓库丰富,与ROS的兼容性也经过了广泛验证。
1.1 镜像获取与写入工具选择
首先,你需要准备一张至少16GB(建议32GB或以上)的Micro SD卡,读写速度最好在Class 10或UHS-I以上,这能显著影响系统响应和软件安装速度。
获取Ubuntu Server 20.04 LTS for Raspberry Pi镜像: 我强烈建议从Ubuntu官方或国内镜像站下载,确保文件完整性。
- 官方源:访问 Ubuntu releases for Raspberry Pi 页面,找到
ubuntu-20.04.5-preinstalled-server-arm64+raspi.img.xz或类似版本。 - 国内镜像(推荐):例如阿里云镜像站,路径通常为
ubuntu-releases/20.04/,寻找针对树莓派的arm64服务器镜像。使用国内镜像下载速度会快很多。
写入工具对比与实操:
市面上工具很多,我主要用过两种,各有优劣。
| 工具名称 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Raspberry Pi Imager | 官方出品,集成度高;可预先配置Wi-Fi、SSH、主机名;操作极其简单。 | 高级自定义选项较少;网络不佳时下载镜像可能较慢。 | 新手首选,追求快速、一站式配置。 |
| balenaEtcher | 跨平台,界面简洁,验证写入结果,可靠性高。 | 无预配置功能,需手动处理网络等设置。 | 追求稳定写入,跨平台(macOS/Linux/Windows)用户。 |
| Win32 Disk Imager | Windows经典工具,轻量,可读取.img备份。 | 界面老旧,需先解压.img.xz文件,无预配置。 | Windows用户,习惯传统工具,或有镜像备份需求。 |
注意:无论用哪种工具,在写入前,请务必使用SD卡协会的格式化工具或操作系统自带的磁盘管理工具将SD卡完全格式化为FAT32格式,避免残留数据导致启动失败。
这里以Raspberry Pi Imager为例,展示其强大的预配置功能。安装运行后:
- 选择操作系统:
Choose OS->Other general-purpose OS->Ubuntu->Ubuntu Server 20.04 LTS (RPi 3/4/400)。 - 选择存储设备:你的SD卡。
- 点击右下角的齿轮图标(
Settings),开启以下配置:Set hostname:给你的树莓派起个名字,比如my-robot-pi。Enable SSH:勾选,选择Use password authentication,设置一个安全的登录密码。Configure Wi-Fi:填入你的Wi-Fi SSID和密码,选择国家代码(如CN)。Set locale settings:设置时区,例如Asia/Shanghai。
配置完成后,点击“保存”,然后返回主界面点击“写入”。Imager会先下载镜像(如果本地没有),然后自动完成所有配置的注入和烧录。
1.2 无头启动与网络初始化
所谓“无头启动”(Headless),就是指在没有连接显示器、键盘鼠标的情况下启动并配置树莓派。这是机器人项目的常态,因为树莓派通常被嵌入在设备内部。
如果你使用了Pi Imager的预配置,那么插卡、上电、等待一两分钟,树莓派就应该已经连接上Wi-Fi并开启了SSH服务。接下来,你需要从你的**主力电脑(Windows/macOS/Linux)**上找到它。
在主力电脑上操作:
- 确保在同一网络:你的电脑和树莓派必须连接在同一个局域网(同一个路由器/Wi-Fi)下。
- 通过主机名发现IP:打开你的终端(Windows用PowerShell或CMD)。
如果配置正确,你会看到来自树莓派IP地址的回复,记下这个IP(例如ping my-robot-pi.local192.168.1.105)。如果.local域名解析失败,可以登录路由器管理后台,在DHCP客户端列表里查找你设置的主机名my-robot-pi对应的IP地址。 - SSH首次登录:
系统会提示你确认主机密钥,输入ssh ubuntu@192.168.1.105yes,然后输入你在Imager中设置的密码。登录成功后,命令行提示符会变为ubuntu@my-robot-pi:~$,恭喜,你已经远程控制了你的树莓派!
提示:如果遇到
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误,这是因为之前连接过相同IP的不同主机。执行ssh-keygen -R 192.168.1.105清除旧密钥即可。
2. 基础环境强化:打造流畅的开发体验
成功登录后,我们面对的是一个纯净的服务器环境。接下来要做几件让后续工作事半功倍的事情。
2.1 软件源加速与系统更新
默认的Ubuntu软件源服务器在国外,直接使用会非常慢。更换为国内镜像源是必做操作。
# 备份原始源列表,这是一个好习惯
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 使用sed命令一键替换(以阿里云镜像为例)
sudo sed -i 's|ports.ubuntu.com|mirrors.aliyun.com|g' /etc/apt/sources.list
# 更新软件包列表并升级所有已安装的包
sudo apt update
sudo apt upgrade -y
这个过程可能会持续一段时间,取决于网络速度和需要升级的包数量。-y参数表示自动确认,无需中途交互。
2.2 图形化桌面环境安装
虽然机器人开发很多操作在终端完成,但一个图形桌面对于调试、运行可视化工具(如Rviz、Gazebo)以及日常管理来说非常方便。Ubuntu Server默认没有桌面,我们需要手动安装。
桌面环境选型: 对于树莓派4B(4GB/8GB内存),我推荐安装 Ubuntu Desktop (GNOME) 或 Xubuntu Desktop (XFCE)。
- Ubuntu Desktop:更现代、功能完整,但资源占用相对较高。在4B上运行流畅,是首选。
- Xubuntu Desktop:基于XFCE,极其轻量,速度快,适合对性能有极致要求或内存较小的场景。
安装Ubuntu Desktop:
sudo apt install ubuntu-desktop -y
这个安装过程非常漫长(可能1-2小时),会下载超过1GB的软件包。请保持网络稳定,耐心等待。安装完成后,重启树莓派:
sudo reboot
2.3 可靠的远程桌面配置
重启后,树莓派具备了图形界面,但我们仍然需要通过网络远程连接它。Windows自带的RDP或VNC是常见选择,但这里我推荐一个更强大、跨平台且延迟更低的选择:XRDP。
XRDP允许你使用任何支持RDP协议的客户端(如Windows远程桌面、Remmina、macOS Microsoft Remote Desktop)进行连接。
# 安装XRDP服务
sudo apt install xrdp -y
# 启动XRDP服务并设置开机自启
sudo systemctl enable xrdp --now
# 检查服务状态,确保运行正常
sudo systemctl status xrdp
安装完成后,在你的主力电脑上打开远程桌面客户端,输入树莓派的IP地址连接。登录时,会话类型选择 Xorg,用户名和密码就是你SSH登录时用的 ubuntu 和你的密码。
注意:首次通过XRDP登录可能会遇到黑屏或闪退。一个常见的解决方法是编辑或创建用户配置文件:
echo "xfce4-session" > ~/.xsession然后注销重连,并在登录时尝试选择
Xvnc或Xorg会话。
3. ROS Noetic Ninjemys 完整安装与验证
ROS是机器人开发的灵魂框架。Ubuntu 20.04对应的ROS发行版是 Noetic Ninjemys,这是ROS1的最后一个LTS版本,支持到2025年。
3.1 安装ROS Noetic
遵循官方步骤,但融入国内网络优化。
-
设置软件源:将ROS的软件仓库添加到系统。
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'这里使用了中科大的镜像源
mirrors.ustc.edu.cn。 -
添加密钥:
sudo apt install curl -y curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -如果密钥添加失败,可以尝试使用HKUST的镜像:
curl -s https://mirrors.ustc.edu.cn/ros/ros.asc | sudo apt-key add - -
安装完整版ROS:
sudo apt update sudo apt install ros-noetic-desktop-full -ydesktop-full版本包含了ROS、RQT、RViz、机器人通用库、2D/3D仿真器等,是功能最全的版本,推荐安装。 -
环境配置:让系统知道ROS命令的位置。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc -
安装构建工具和依赖管理工具:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y -
初始化rosdep:这是一个用于安装ROS包系统依赖的关键工具。
sudo rosdep init rosdep updaterosdep update可能会因为网络问题失败多次,多试几次即可。也可以尝试修改rosdep的源为国内镜像,具体方法可搜索相关文章。
3.2 验证ROS安装
安装完成后,必须进行验证,确保核心功能正常。
测试1:ROS核心运行 打开第一个终端,启动ROS Master:
roscore
保持这个终端运行。
打开第二个终端(或新的SSH会话),运行一个小乌龟仿真节点:
rosrun turtlesim turtlesim_node
此时,如果你的树莓派连接了显示器,或者通过XRDP登录了桌面,你应该能看到一个带有随机小乌龟的窗口。
打开第三个终端,控制小乌龟运动:
rosrun turtlesim turtle_teleop_key
按照终端提示,用键盘方向键控制小乌龟移动。如果一切正常,恭喜你,ROS基础环境搭建成功!
测试2:RViz可视化工具
在运行roscore的基础上,新开终端启动RViz:
rosrun rviz rviz
RViz是ROS中最重要的可视化工具,用于显示传感器数据、机器人模型、地图等。能成功打开RViz,说明图形相关的ROS组件也安装正确。
4. 进阶配置与项目实战准备
基础环境就绪后,我们可以做一些优化和实战准备,让这个开发工作站更顺手。
4.1 工作空间创建与编译
ROS代码通常组织在工作空间(Workspace)中。我们来创建第一个工作空间。
# 创建并进入工作空间目录
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
# 初始化工作空间
catkin_init_workspace
# 返回工作空间根目录并编译
cd ~/catkin_ws
catkin_make
# 将工作空间环境变量加入bashrc
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
编译成功后,devel和build文件夹会被创建。以后你自己的ROS包就放在src目录下,使用catkin_make进行编译。
4.2 性能优化与散热考量
树莓派4B性能强大,但高负载时发热也明显。持续高温会触发降频,影响开发体验。
- 监控状态:安装
htop和neofetch,方便查看系统状态。sudo apt install htop neofetch -y htop # 查看实时进程和CPU占用 neofetch # 显示系统信息和温度 - 强制启用风扇(如有):如果你使用了带有风扇的散热外壳,可能需要配置GPIO引脚驱动风扇。常见的方法是编辑
/boot/config.txt,添加dtoverlay=gpio-fan,gpiopin=14,temp=55000(假设风扇接在GPIO14,55度启动)。 - 考虑主动散热:对于长时间运行仿真或SLAM建图等重负载任务,一个好的金属散热片或带风扇的散热外壳是必要的投资。
4.3 常用开发工具安装
工欲善其事,必先利其器。
# 版本控制
sudo apt install git gitk -y
# 代码编辑 (VS Code)
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=arm64] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code -y
# 串口调试(用于连接机器人底盘、传感器)
sudo apt install minicom -y
sudo usermod -a -G dialout ubuntu # 将用户加入dialout组以获取串口权限
# 网络工具
sudo apt install net-tools nmap -y
配置到这里,你的树莓派4B已经从一个裸板,变成了一个拥有图形界面、完整ROS开发环境、常用工具链的机器人开发工作站。你可以用它来学习ROS基础,运行Gazebo仿真,连接激光雷达、摄像头进行SLAM实验,或者作为机器人本体的主控大脑。
整个过程中最耗时的就是下载和安装,尤其是桌面环境和ROS。利用好国内镜像源是关键。如果某一步失败了,别着急,根据错误信息搜索,大概率是网络问题或某个依赖没装好。机器人开发本身就是一个不断解决问题、迭代优化的过程,从搭建环境开始就适应这种节奏吧。
更多推荐

所有评论(0)