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:
1.2 Software preparations
Visit the following links to download the required resouces.
- Google Cloud: ROS2 Upgrade Resources
- Baidu Cloud: ROS2 Upgrade Resources
It's recommended to download all files to the path ~/Downloads/ROS2_software_flashing_tool
.
2. Cable Connection
2.1 Remove the chassis cover
Power off the robot, use an L-hex key to remove the 6 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.4 Extract system image files
Download the file and enter the image file path.
Extract the flashtool
.
tar -xpf flashtool_tztek_geac_orin_jp6.0.0_GA_GEACX1_R3.0_Kv6.0.3_1126.tar.bz2
# As the tool directory name is too long, rename it to "flashtool"
mv flashtool_tztek_geac_orin_jp6.0.0_GA_GEACX1_R3.0_Kv6.0.3_1126 flashtool
Extract the image file system.img.raw
(reserve at least 110G of disk space):
3.5 Mount system image
Mount the system.img.raw
to the specified path: {your_flashing_file_path}
:
sudo mount system.img.raw /home/$USER/Downloads/ROS2_software_flashing_tool/flashtool/Linux_for_Tegra/rootfs
3.6 Install flashing runtime dependencies
# For the first-time image flashing, install first:
sudo apt install qemu-user-static -y
sudo ./flashtool/Linux_for_Tegra/tools/l4t_flash_prerequisites.sh
# If you encounter the error like “E: Unable to acquire the lock /var/lib/apt/lists/lock. The lock is held by process xx_pid (packagekitd)”, run the following command first, then execute the above commands:
# kill -9 xx_pid
3.7 Update drivers
Before flashing, be sure to update the initrd
drivers:
Temporarily disable new USB device insertion:
3.8 Run flashing script
Note: The entire flashing process is expected to take 30~40 minutes. Do not unplug the Micro-USB cable during this period. After flashing is complete, the system will automatically boot.
sudo ./tztek_flash.sh
# Enter “7” (flash_all) when prompted for the flashing function number;
# Enter “6” (agx_orin) when prompted for the platform model number;
# Enter “yes” and press “Enter” to confirm flashing and start the process.

4. Kernel Upgrade
4.1 Obtain robot IP address
Connect the network cable to the chassis external Ethernet port. Run the following command multiple times to get the local LAN IP address shared by the computer with the robot device:
On the host terminal, execute the following commands:
cd /home/$USER/Downloads/ROS2_software_flashing_tool
scp tztek-jetson-tool-eeprom-info-v1.1.deb nvidia@<ecu-ip>:~/
On the robot ECU's SSH terminal, execute the following commands:
sudo dpkg -i tztek-jetson-tool-eeprom-info-v1.1.deb
# Check the ECU mainboard model: r2.1 or r3.0
sudo tztek-jetson-tool-eeprom-info -a
4.2 Copy kernel installation package
Execute the following commands on the local terminal to copy the kernel installation package to the robot:
# If the ECU mainboard model is r2.1:
scp tztek-jetson-firmware-kernel-dtb-510jx0-r2.1-jp6.0.0-v6.0.3.deb nvidia@<ecu-ip>:~/
# If the ECU mainboard model is r3.0:
scp tztek-jetson-firmware-kernel-dtb-510jx0-r3.0-jp6.0.0-v6.0.3.deb nvidia@<ecu-ip>:~/
4.3 Install new kernel
On the robot ECU's SSH terminal, execute the following commands to copy the kernel installation package to the robot.
Note: Kernel installation may take a long time. Do not interrupt the process.
# If the ECU mainboard model is r2.1:
sudo dpkg -i ~/tztek-jetson-firmware-kernel-dtb-510jx0-r2.1-jp6.0.0-v6.0.3.deb
# If the ECU mainboard model is r3.0:
sudo dpkg -i ~/tztek-jetson-firmware-kernel-dtb-510jx0-r3.0-jp6.0.0-v6.0.3.deb
# Enable the new kernel:
sudo tztek-jetson-firmware-kernel-dtb-510jx0
# Reboot by entering the following command or via the power button:
sudo reboot
4.4 Check kernel info
On the robot ECU's SSH terminal, execute the following command:
5. Copy System to SSD
After system flashing is complete, enter the EMMC system environment and run the following commands to copy the system to the SSD. (If users do not need to install the system on the ECU's SSD and only want to mount the SSD as a data disk, the subsequent operations are not required.)
# Update kernel:
sudo tztek-jetson-firmware-kernel-dtb-510jx0
sudo tztek-jetson-system-migration-GA
## Enter “1”

After the system is copied to the SSD, reboot the ECU to enter the SSD system environment. Execute the following command to check if the system environment is correct:

Thus, the ROS2 upgrade flashing is completed, with ROS2 system, radar, camera, and robot body SDK modules and related dependencies all installed.