Introduction
This document runs through a step-by-step process to install ROS 2 Humble on CTI
hardware to build and run ROS 2 packages. ROS 2 is a robotic middleware that includes
tools, libraries and useful technologies to assist developers and vastly improve time-to-market.
ROS 2 includes many standard packages to integrate sensors, visualize simulations on
robots and run AI inferencing models. The publisher and subscriber model of ROS 2 aids
developers in compartmentalizing development and allowing sensors and components to
become plug-and-play by interacting with pre-defined topics.
Hardware Requirements
The following tutorial is based off of installing ROS 2 Humble from source on an Ubuntu
20.04 machine (JetPack 5.1.2).
- JetPack 5+ (or any version of L4T running Ubuntu 20.04+)
- AGX Orin module
- CTI AGX Orin Carrier Board
Setup External Drive
Due to storage restraints of the AGX Orin module and the size of ROS 2 and associated
packages, you’ll want to setup an external storage device for all ROS 2 Humble related
packages.
** You can skip this step if you’ve flashed your AGX Orin module to external storage.
1. Flash L4T to internal storage and boot system with NVMe installed.
2. Ensure your external storage device is EXT4
$ fdisk -l
# If not, create a new EXT4 filesystem on it
$ mkfs -t ext4 /dev/nvme0n1
3. Create directory to mount the NVMe
$ mkdir -p /ssd && mount /dev/nvme0n1 /ssd
4. Get the UUID of your external drive
$ lsblk -f
5. Set the drive to mount on boot using the UUID from previous
$ sudo vim /etc/fstab
# Add the following line, replacing * with the UUID from lsblk:
# UUID=************-****-****-****-******** /ssd/ ext4 defaults 0 2
# Finally, change the ownership of /ssd
$ sudo chown ${USER}:${USER} /ssd
Set Power Mode and CPU Clocks
To improve performance (and build times) set max power mode and max CPU clock
$ nvpmodel -m 0
$ sudo jetson_clocks
ROS 2 Humble Install
Follow ROS 2 documentation for building ROS2 Humble from source on Ubuntu 20.04 here: https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html
$ cd /ssd/ros2_humble
$ source install/local_setup.sh