ROS2 升级烧录操作教程
本节概述了在机器设备上从ROS1升级到ROS2的详细操作说明。本流程将一次性完整安装ROS2系统和机器人SDK软件依赖。
升级版本信息
机器人SDK版本:适配ATC v2.1.1 及以上版本 - JetPack版本:6.0 - 操作系统:Ubuntu 22.04 - 机器人操作版本:ROS2 Humble
1. 升级前准备
1.1 硬件准备
物品 | 数量 | 备注 |
---|---|---|
电脑 | 1 | 系统:Ubuntu 20.04,x86型号 环境:Python 硬盘空间:至少预留110G |
USB转Micro-USB数据线 | 1 | 用于连接机器与电脑,进行烧录操作。 |
网线 | 1 | 用于连接机器与电脑,获取IP地址。 |
内六角扳手 | 1 | 用于拆除机器底盘螺丝。 |
注意:
- 建议使用Ubuntu20.04进行烧录,经测试其他版本可能导致烧录异常。
-
建议烧录前关闭电脑的防火墙,以免出现报错。
在上位机执行以下命令配置Python环境:
-
文件备份:刷机过程中相当于重装系统,请将重要信息备份。务必先将机器人下
/opt/galaxea/body
下的文件进行备份。 推荐将其copy到自己的电脑,完成烧录后通过scp的方式,重新放入/opt/galaxea/body
目录下。其余相关的数据,开发代码也请完成对应备份。
在新的V2.1.1 版本中,我们将会引入硬件参数配置的特性。如果发现/opt/galaxea/body
目录下不存在hardware.json
请联系我们售后团队帮助您进行配置。
1.2 软件准备
点击以下链接获取内核文件:
- 百度云: ROS2 升级烧录软件
- Google Cloud:ROS2 Upgrade Resources
注意:建议将所有文件下载到路径~/Downloads/ROS2_software_flashing_tool
中。系统镜像文件较大,建议下载完使用System image MD5校验。
2. 连接烧录线
2.1 拆除底盘盖板
将机器人关机断电,使用L型六角扳手卸下底盘盖板的6个固定螺钉,卸下盖板。
2.2 连接线束
使用USB转Micro-USB数据线(不是普通充电线),将Micro-USB端连接到ECU的U2接口(如图所示,ECU位于底盘中央,建议从底盘左侧风扇处的空隙将线束接入插口),USB端接入上位机的USB插口。
3. 软件烧录流程
3.1 进入烧录模式
请在上位机中输入以下命令重启机器,使其进入烧录模式。
3.2 检查烧录USB连接重启后是否识别
多次在自己电脑的终端输入lsusb命令检查是否出现Nvidia Crop的串口设备,显示如下则已经进入烧录模式。

如果一直识别不了Nvidia Crop的串口设备,需要使用硬件复位使ECU进入恢复模式。
3.2.1 硬件复位方式
-
硬件复位方式一:
在机器人断电情况下,按住RECV键不动。然后,插上电源给设备上电,过3s再松开RECV键。
-
硬件复位方式二:
按住RST,戳进去保持按压;然后,立即戳RECV,戳进去保持按压;两个孔同时按压3到5秒。最后,先松开RECV,再立即松开RST。
执行完硬件复位后,lsusb查看,如果仍然没有,可能是硬件复位操作不正确,谨慎操作,重试几次。
4. 烧录工具和镜像准备
在自己电脑上进入前面从云盘下载的工具文件路径
解压烧录工具flashtool
。
tar -xpf flashtool_tztek_geac_orin_jp6.0.0_GA_GEACX1_R3.0_Kv6.0.3_1126.tar.bz2
# 工具目录名太长重命名为flashtool
mv flashtool_tztek_geac_orin_jp6.0.0_GA_GEACX1_R3.0_Kv6.0.3_1126 flashtool
解压镜像文件(硬盘空间至少预留110G)。
# 删除刷机工具rootfs目录下旧的文件
sudo rm -rf flashtool/Linux_for_Tegra/rootfs/*
# 解压出镜像文件到烧录工具的rootfs目录下
sudo tar -xvf Backup-nvidia-desktop-20250623-171100.tar.gz -C flashtool/Linux_for_Tegra/rootfs/
# 复制启动分区镜像
sudo cp flashtool/Linux_for_Tegra/rootfs/boot/Image flashtool/Linux_for_Tegra/kernel/Image
5. 安装刷机工具运行的依赖项
# 第一次烧录镜像需要安装
sudo apt install qemu-user-static -y
sudo ./flashtool/Linux_for_Tegra/tools/l4t_flash_prerequisites.sh
# 如果遇到E: 无法获得锁 /var/lib/apt/lists/lock。锁正由进程 xx_pid(packagekitd)持有
# 执行kill -9 xx_pid后再执行这个脚本
6. 烧录之前更新驱动(非常重要)
暂时禁用新的USB设备插入(执行后请勿插拔刷机电脑的任何USB设备)
7. 运行烧录脚本
请输入烧录功能编号: 71.kernel 2.dtb 3.initrd-backup 4.bct-pinmux 5.massflash 6.without-no-flash 7.flash-all 8.flash-all-with-system 9.Initrd-mode
注意:烧录过程大概持续30-40分钟,期间请勿插拔电脑和机器之间的USB micro数据线。烧录完成后自动进入系统,可插网线共享本机网络给机器,然后重复arp -a多次查看机器的以太网IP地址,最后进行ssh连接和配置;或者给机器连接显示器、鼠标进行操作。
8. 内核升级(请阅读文档,并谨慎操作)
# 插网线连机器
# 多次执行查看电脑共享给机器的局域网IP地址
arp -a
# 在本地终端执行
cd /home/$USER/Downloads/ROS2_software_flashing_tool
scp tztek-jetson-tool-eeprom-info-v1.1.deb nvidia@<ecu-ip>:~/
# 在ecu的ssh终端执行
sudo dpkg -i tztek-jetson-tool-eeprom-info-v1.1.deb
# 查看ecu主板型号是r2.1还是r3.0
sudo tztek-jetson-tool-eeprom-info -a
# 卸载旧的内核
sudo dpkg -r tztek-jetson-firmware-kernel-dtb-510jx0*
# 在本地终端执行
# 1.从电脑上拷贝内核安装包到机器
# 如果是r2的ecu
scp tztek-jetson-firmware-kernel-dtb-510jx0-r2.1-jp6.0.0-v6.0.4.deb nvidia@<ecu-ip>:~/
# 如果是r3.0的ecu
scp tztek-jetson-firmware-kernel-dtb-510jx0-r3.0-jp6.0.0-v6.0.4.deb nvidia@<ecu-ip>:~/
# 在ecu的ssh终端上执行
# 2.安装新内核,注:内核安装持续时间可能较长,期间请勿中断程序
# r2.1的ecu
sudo dpkg -i ~/tztek-jetson-firmware-kernel-dtb-510jx0-r2.1-jp6.0.0-v6.0.4.deb
# r3.0的ecu
sudo dpkg -i ~/tztek-jetson-firmware-kernel-dtb-510jx0-r3.0-jp6.0.0-v6.0.4.deb
# 启用新能和
sudo tztek-jetson-firmware-kernel-dtb-510jx0
# 重启机器,输入命令或者通过电源按钮重启
sudo reboot
# 在ecu的ssh终端上执行
# 3.检查内核信息
cat /proc/version