无屏操作指南:Raspberry Pi 4 + Ubuntu 20.04 + ROS noetic 的远程部署与配置
1. 准备工作:硬件与镜像烧录
搞机器人和物联网开发的朋友们,肯定对树莓派不陌生。我最近刚用树莓派4B搭建了一个ROS开发环境,整个过程完全不需要显示器,全靠远程操作。先说说需要准备的东西:
- 树莓派4B:建议选4GB或8GB内存版本,性能足够跑Ubuntu和ROS
- 至少32GB的microSD卡:实测16GB的卡装完系统后剩余空间太小,容易出问题
- 读卡器:用来烧录系统镜像
- 稳定的Wi-Fi环境:这是无屏操作的关键,后面会详细讲配置技巧
镜像烧录我用的是官方的Raspberry Pi Imager,这个工具特别方便。选择Ubuntu Server 20.04.5 LTS版本时,记得点开左下角的"高级选项"(Ctrl+Shift+X),这里有三个关键设置:
- 启用SSH:勾选这个选项,并设置好用户名和密码
- 配置Wi-Fi:填写你的Wi-Fi名称和密码,确保和电脑在同一个网络
- 区域设置:建议把键盘布局改成us,避免后续终端操作出现奇怪问题
烧录完成后别急着拔卡,有个小技巧:在boot分区新建一个名为ssh的空文件(Windows用户可以直接新建文本文档然后删掉.txt后缀),这是双重保险确保SSH服务开启。
2. 启动与IP地址查找
第一次启动树莓派时,最让人着急的就是不知道它的IP地址。我刚开始玩的时候,经常要等好几分钟才能找到设备。这里分享几个实用技巧:
观察指示灯状态:
- 红色常亮:电源正常
- 绿色闪烁:系统正在启动
- 绿色规律闪烁:系统已启动完成
如果绿灯一直不亮,可能是烧录有问题,需要重新操作。等绿灯开始有规律闪烁后,就可以开始找IP了。
Windows用户: 推荐用Advanced IP Scanner,扫描范围设置成你路由器的网段,比如192.168.1.1-192.168.1.255。扫描结果里找主机名包含"ubuntu"的设备,那就是你的树莓派。
Linux/macOS用户: 先用ifconfig查自己电脑的IP,比如得到192.168.1.100,子网掩码255.255.255.0,那么树莓派就在192.168.1.0/24这个网段。接着用nmap扫描:
sudo nmap -sn 192.168.1.0/24找MAC地址开头是DC:A6:32的设备,那就是树莓派。如果找不到,可能是Wi-Fi没连上,可以尝试:
- 给树莓派接上网线
- 重启路由器
- 等待5分钟再扫描
3. SSH连接与基础配置
找到IP后,用任何支持SSH的工具连接都行。我习惯用VS Code的Remote-SSH插件,因为后续开发更方便。连接命令很简单:
ssh 你的用户名@树莓派IP第一次连接会提示密钥确认,输入yes就行。然后输入密码(注意:输入时不会显示字符,这是正常的)。
登录成功后,建议先做这些基础配置:
- 修改主机名(方便识别):
sudo hostnamectl set-hostname my-ros-pi- 更新系统:
sudo apt update && sudo apt upgrade -y- 安装必要工具:
sudo apt install -y vim tmux htop- 配置静态IP(可选但推荐): 编辑网络配置文件:
sudo vim /etc/netplan/50-cloud-init.yaml添加以下内容(根据你的网络调整):
network: version: 2 wifis: wlan0: dhcp4: no addresses: [192.168.1.200/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1] access-points: "你的Wi-Fi名称": password: "你的Wi-Fi密码"保存后应用配置:
sudo netplan apply4. ROS Noetic安装详解
终于到重头戏了!ROS Noetic是最后一个支持Python2的版本,但对树莓派来说也是最稳定的选择。安装过程有几个坑要注意:
第一步:设置软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'第二步:添加密钥
sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -第三步:安装桌面版ROS这里有个选择:
- 如果你只需要基础功能:
sudo apt install ros-noetic-ros-base- 如果需要GUI工具(RViz等):
sudo apt install ros-noetic-desktop我建议先装ros-base,等需要时再补装其他包,这样可以节省空间。
第四步:环境配置
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc第五步:安装依赖工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential第六步:初始化rosdep这一步经常出问题,我总结了个稳定方案:
sudo rosdep init rosdep update如果报错,尝试:
sudo apt install python3-pip pip3 install rosdepc sudo rosdepc init rosdepc update5. 验证与常见问题
安装完成后,运行以下命令测试:
roscore如果看到类似这样的输出,说明安装成功:
... logging to /home/ubuntu/.ros/log/xxxxx started core service [/rosout]常见问题解决方案:
roscore报错:
- 检查是否source了setup.bash
- 确保没有其他roscore在运行
ROS命令找不到:
source /opt/ros/noetic/setup.bash网络问题:
- 确保/etc/hosts里有127.0.1.1对应主机名
- 检查~/.bashrc里没有错误的ROS_MASTER_URI设置
空间不足:
sudo apt clean sudo journalctl --vacuum-size=50M
最后给个小技巧:用tmux创建持久会话,这样即使SSH断开,roscore也不会停止:
tmux new -s ros roscore # 断开后重新连接 tmux attach -t ros