在win上SSH远程连接树莓派跑ROS设置流程--详细版(一)

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

概要

背景介绍:我现在有一块树莓派Pi 4的板子,一个大概11寸显示屏,一个笔记本电脑。我安装的是双系统,需要不断的重启来转换系统,在Ubuntu中跑ROS,在win中利用Gemini问问题,太不方便了,利用现有的资源让我的ROS学习更方便一些,选择在win用code的ssh控制树莓派来跑ROS。我的这个开发环境配置**(Windows VS Code + Remote SSH -> Raspberry Pi)**是机器人工程领域非常专业且主流的“无头模式(Headless)”开发方式。这比频繁重启切换双系统要高效得多,也更贴近实际的工业机器人开发场景。

第一阶段:准备工作(在你的 Windows 电脑上操作)

1. 硬件准备

  • 树莓派 4B 主板
  • Micro SD 卡(建议 32GB 或以上,速度 Class 10 以上)
  • 显示器 + Micro HDMI 线(连接树莓派)
  • 读卡器
  • 网线(强烈建议第一次配置时用网线连接路由器和树莓派,或者确保 WiFi 信号良好)(没有也没事,我没用网线就是比较麻烦点)

2. 软件下载,我们需要两个核心软件,请现在就去下载安装:

  • Raspberry Pi Imager(树莓派官方烧录工具):官网下载
  • VS Code(代码编辑器):官网下载

第二阶段:烧录“灵魂” —— 安装 Ubuntu 20.04 (Server 版)(Desktop版本我没找到资源)

为什么选 20.04? 因为我们要用 ROS 1 (Noetic) 版本,它和 Ubuntu 20.04 是锁死的官方搭配,最稳定,教程最多,坑最少。具体步骤如下:

1. 把 SD 卡 插入读卡器,插到电脑上。
2. 打开 Raspberry Pi Imager。
3. 选择设备 (CHOOSE DEVICE): 选 Raspberry Pi 4。
4. 选择操作系统 (CHOOSE OS):
⚠️ 关键一步: 请务必选择 Ubuntu Server 20.04.5 LTS (64-bit)。
(不要选 22.04 或 24.04,否则装不上 ROS Noetic!)
**注意:**由于咱们下载的是Ubuntu 20.04,版本太老了,Raspberry Pi Imager的官方例程里面没有需要自定义镜像 。

  • 首先先点击一下格式化,避免烧录的最后出现错误(一定要做,我在这踩坑了)
  • 然后点击使用自定义镜像,如上图所示(自己在网上下载就行,资源比较好找)
  • 接下来按部就班的点下一步就行。
  • 重要提醒:由于咱们使用的是自定义镜像,没有办法在Raspberry Pi Imager设置自己的主机名,用户名,密码,配置WIFI等。这些需要进入树莓派后进行设置。

5. 选择存储卡 (CHOOSE STORAGE): 选你的 SD 卡。
6. 保存并烧录: 点击 SAVE,然后点击 WRITE。等待烧录完成。

第三阶段:点亮树莓派 & 寻找 IP

3.1 组装“手术台” (物理接线)

1. 插入 SD 卡: 将卡插入板子背面的卡槽(金手指触点朝向绿色的板子)。
2. 连接显示器 (⚠️最关键一步):

  • 树莓派 4B 有两个微型 HDMI 口。
  • 必须插在紧挨着 Type-C 电源口的那个口(这叫 HDMI 0)。
  • 如果是插在远端的 HDMI 1,开机屏幕可能不亮。

3. 连接键盘: 插在 USB 口上。
4. 最后插电源: 插上 Type-C 电源线,通电!

3.2 面对“黑底白字” (登录系统)

通电后,屏幕会跳动很多代码(此时不要动),直到屏幕下方停止滚动,出现: ubuntu login:

这时,你需要进行登录(注意:这里有一个新手必坑点!):
注意:由于前面咱们没有设置有户名,密码之类的,按系统默认设置。
1. 输入账号: ubuntu -> 按回车。
2. 输入密码: ubuntu -> 按回车。
3.强制改密码:
(新密码最好是字母加数字,太简单他会让你重新输,比如123456)

  • 系统会提示 Current password:(当前密码)。再输一次 ubuntu -> 回车。
  • 系统提示 New password:(新密码)。输入你想设的新密码 -> 回车。
  • 系统提示 Retype new password:(再次输入新密码)。再输一次 -> 回车。

⚠️ 新手必坑高能预警: 在 Linux 终端里输入密码时,屏幕上是连“星号 ”都不会显示的! 看起来像没输入进去一样。 别慌! 实际上已经输进去了,你就*盲打**,打完直接按回车就行。

3.3 解决网络问题

登录成功后,你会看到类似 ubuntu@Ubuntu:~$ 的提示符。 我们要装桌面,必须要有网。如果你【没有网线】,必须连 WiFi (硬核教程): Server 版没有图形界面,你需要修改一个配置文件来告诉它 WiFi 密码。

  • a. 查看网卡名字: 输入 ip link,找到一个以 w 开头的名字(通常是 wlan0)。
  • b. 修改配置文件 (小心输!): 输入命令:
sudo nano /etc/netplan/50-cloud-init.yaml

(注意:文件名可能是 50-cloud-init.yaml 或 00-installer-config.yaml,输入到 50 的时候按 Tab 键它会自动补全)

  • c. 编辑文件: 屏幕会变成一个编辑器。请用方向键移动光标,把内容改成下面这样(注意:缩进必须严格对齐,不能用 Tab 键,只能用空格!):
    空格要严谨
network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    version: 2
    wifis:
        wlan0:
            dhcp4: true
            access-points:
                "你的WiFi名字":
                    password: "你的WiFi密码"

wifis: 这一级要和 ethernets: 对齐(通常是4个空格缩进)。
WiFi 名字和密码如果有特殊字符,最好保留双引号。

  • 保存并应用:
    – 按 Ctrl + O -> 回车(保存)。
    – 按 Ctrl + X(退出编辑器)。
    – 应用配置:
sudo netplan apply

(如果报错,说明缩进不对,重新进去改)

  • 验证是否有网: 等几秒,输入:ip a
  • 看 wlan0 下面有没有出现 inet 192.168.x.x?
    有: 成功!记下这个 IP 地址(比如 192.168.1.105),你可以拔掉显示器和键盘了。
    没有: 检查 WiFi 密码和 YAML 缩进,重新 sudo netplan apply。

第四阶段:Windows 远程连接 (SSH),配置“神器” VS Code

用黑框框(CMD)写代码很痛苦,我们用 VS Code 来接管树莓派。

  • 在 Windows 上打开 VS Code。
  • 安装插件:
    – 打开 VS Code,点击左侧扩展图标(四个方块)。
    – 搜索 Remote - SSH,点击安装(Microsoft 出品的那个)。
  • 连接树莓派:
    – 安装完后,左下角会出现一个绿色的 >< 图标,点击它。
    – 选择 Connect to Host...(连接到主机)。
    – 选择 Add New SSH Host...
    – 输入:ssh ubuntu@192.168.1.105 (换成你的IP)。
    – 保存配置文件(选第一个路径即可)。
    – 右下角会弹窗提示“Host added”,点击 Connect
    – 输入密码。
  • 成功效果:
    –VS Code 左下角会显示 SSH: 192.168.1.105。
    –你点击左侧“资源管理器”->“打开文件夹”,看到的是树莓派里的文件系统!
    –你可以像编辑本地文件一样写 ROS 代码,保存时它自动同步到树莓派。

注意:使用方法
以后上电的时候登入,不用插显示屏来查看IP来进行SSH,要学会使用主机名
操作方法: 以后在 Windows 的 VS Code 或终端里,不要输 IP 了,直接输:ssh ubuntu@ubuntu.local

  • 原理: .local 后缀告诉电脑:“去局域网里喊一声,谁叫 ubuntu?” 树莓派听到后会回答:“是我!我的 IP 是 xxx。” 电脑就会自动连上去。
  • 优点: 无论树莓派的 IP 变成什么,只要名字没变,这招永远管用。
  • 注意: 如果你的 Windows 比较老(Win 10 以前),可能不支持。但现在的 Win 10/11 和 Ubuntu 都是默认支持的。

第五阶段:在树莓派上安装 ROS 1 (Noetic)

现在你在 VS Code 的终端里(或者 Windows CMD 里),给树莓派装 ROS。 注意:Ubuntu 20.04 对应的是 ROS Noetic。

  1. 添加清华源(加速下载):
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置密钥:
sudo apt install curl -y
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add -

注意:sudo apt install curl -y输入这一指令后,你需要等好久,这是因为你刚装好系统并连上网,Ubuntu Server 的后台服务 unattended-upgr(自动更新服务)非常尽职尽责地检测到了网络,于是它自动开始在后台下载并安装安全更新。
在这里插入图片描述
(我在这里等了40分钟)

  1. 更新列表:
sudo apt update
  1. 安装 ROS 核心:因为你是 Server 版,为了节省空间和时间,建议先装基础版(Base),以后缺什么包再装什么。如果你硬盘够大(32G以上),也可以装桌面版。
    基础版:sudo apt install ros-noetic-ros-base
    全家桶:sudo apt install ros-noetic-desktop(我装的这个,以后比较省事)
  2. 初始化环境:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装构建工具:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
  1. 验证环境:
roscore

如果看到 started core service [/rosout],恭喜你!你的 ROS 机器人大脑已经启动了!
现在,你就可以愉快地在 Windows 上查 CSDN/Google 解决报错,在 VS Code 里写代码,代码在树莓派上跑,完美闭环!

小结

在树莓派跑ROS出现的一些问题在win上SSH远程连接树莓派跑ROS设置流程–详细版(二)

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值