R1/R1 Pro ROS2 Upgrade Guide
This section outlines the detailed procedures for upgrading from ROS1 to ROS2 on robot, covering a complete ROS2 system and robot SDK software dependency installation.
Version Info
- JetPack: 6.0
- OS: Ubuntu 22.04
- Robot OS: ROS2 Humble
1. Before you start
1.1 Hardware Preparation
Item | Quantity | Note |
---|---|---|
Computer | 1 | OS: Ubuntu 20.04,x86 Environment: Python Disk Space: Reserve at least 110G |
USB-to-Micro-USB Cable | 1 | Used to connect the machine to the computer for flashing. |
Ethernet Cable | 1 | Used to connect the host computer and robot. |
L-hex Key | 1 | Used to remove the machine chassis screws. |
Note:
- It's recommended to use Ubuntu 20.04 for flashing. Other versions may cause flashing abnormalities.
-
It's advised to disable the computer's firewall before flashing to avoid errors.
Run the following command on the host to set up the Python environment:
-
Copy all files from
/opt/galaxea/body
on the robot to your computer. - After flashing, restore them via scp to
opt/galaxea/body
. - Back up development code and other relevant data separately.
Note for v2.1.1+: Hardware parameter configuration is introduced. If hardware.json is missing in /opt/galaxea/body
, contact our support team.
1.2 Software preparations
Visit the following links to download the required resouces.
- Google Cloud: ROS2 Upgrade Resources
It's recommended to download all files to the path ~/Downloads/ROS2_software_flashing_tool
. Verify the system image MD5 after download (large file).
2. Cable Connection
2.1 Remove the chassis cover
Power off the robot, use an L-hex key to remove six screws fixing the chassis cover, then take off the cover.
2.2 Connect the cable
Use a USB-to-Micro-USB cable. Connect the Micro-USB end to the ECU's U2 port (the ECU is inside the center of the chassis. It's recommended to route the cable through the gap near the left-side fan to connect to the port). Plug the USB end into the host computer.
3. Software Flashing Procedure
3.1 SSH Connection
Enter the following command in the host terminal to connect to the robot Orin:
3.2 Enter flashing mode
Execute the following command on the host to reboot the machine into flashing mode:
3.3 Check device mounting
Execute the following command multiple times in the host terminal to check if the Nvidia Crop serial device appears after the USB cable is connected and the machine is rebooted.
If it shows as in the figure below, the machine has entered flashing mode successfully.
3.3.1 Hardware Reset
- Method 1 (power off):
- Hold the RECV button.
- Power on the device.
-
Release RECV after 3 seconds.
-
Method 2:
- Press and hold RST.
- Immediately press and hold RECV.
- Hold both for 3–5 seconds.
- Release RECV first, then RST. After reset, recheck with lsusb. Retry carefully if needed.
4. Prepare Flashing Tools & Image
Navigate to the download directory on your computer:
Extract flashtool:
tar -xpf flashtool_tztek_geac_orin_jp6.0.0_GA_GEACX1_R3.0_Kv6.0.3_1126.tar.bz2
# Shorten dir name
mv flashtool_tztek_geac_orin_jp6.0.0_GA_GEACX1_R3.0_Kv6.0.3_1126 flashtool
Extract system image (≥110 GB free space required):
# Delete old files
sudo rm -rf flashtool/Linux_for_Tegra/rootfs/*
# Extract new files
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. Install Flashtool Dependencies
# First-time setup
sudo apt install qemu-user-static -y
sudo ./flashtool/Linux_for_Tegra/tools/l4t_flash_prerequisites.sh
# If locked by packagekitd:
# Kill the process (kill -9 <pid>) and rerun the script.
6. Update Drivers (Critical!)
Disable new USB devices (do NOT unplug USB devices afterward)
7. Run Flashing Script
1. Enter function number: 7 (flash-all)1.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
Notes:
- Flashing takes 30–40 minutes. Do NOT disconnect the USB cable.
- After completion:
- Connect via Ethernet to the shared network, then use arp -a
to find the ECU's IP for SSH.
- OR connect a display and mouse directly to the ECU.
8. Kernel Upgrade (Proceed with caution)
# Connect via Ethernet, then find ECU IP:
arp -a
# On local terminal:
cd /home/$USER/Downloads/ROS2_software_flashing_tool
scp tztek-jetson-tool-eeprom-info-v1.1.deb nvidia@<ecu-ip>:~/
# On ECU via SSH:
sudo dpkg -i tztek-jetson-tool-eeprom-info-v1.1.deb
sudo tztek-jetson-tool-eeprom-info -a # Check ECU model (R2.1/R3.0)
sudo dpkg -r tztek-jetson-firmware-kernel-dtb-510jx0* # Remove old kernel
# On local terminal (copy correct kernel):
## For R2.1 ECU:
scp tztek-jetson-firmware-kernel-dtb-510jx0-r2.1-jp6.0.0-v6.0.4.deb nvidia@<ecu-ip>:~/
## For R3.0 ECU:
scp tztek-jetson-firmware-kernel-dtb-510jx0-r3.0-jp6.0.0-v6.0.4.deb nvidia@<ecu-ip>:~/
# On ECU via SSH:
# Install kernel (do NOT interrupt!):
## For R2.1:
sudo dpkg -i ~/tztek-jetson-firmware-kernel-dtb-510jx0-r2.1-jp6.0.0-v6.0.4.deb
## For R3.0:
sudo dpkg -i ~/tztek-jetson-firmware-kernel-dtb-510jx0-r3.0-jp6.0.0-v6.0.4.deb
## Enable new kernel
sudo tztek-jetson-firmware-kernel-dtb-510jx0
## Reboot ECU or reboot by the hard switch on the chassis.
sudo reboot
## After reboot (verify):
cat /proc/version