Robotic Operating System (ROS) with Nvidia Jetson Nano

Robotic Operating System (ROS) with Nvidia Jetson Nano

What to know whether the ROS (Robotic Operating System) can run well in Jetson Nano? We have tested it out!

Introduction

Jetson Nano is ideal for the use in autonomous robotics as it is affordable yet high performance for AI applications. It could perform real-time computer vision and mobile-level deep learning operations at the edge thanks to its high computing power. Meanwhile, when we talked about robotics applications, especially those involved in the multi-sensory autonomous robots, ROS is the natural choice for many.

In this article, we are going to discuss the compatibility of ROS versions on Jetson Nano as well as the performance of Jetson Nano in running the 2 popular programs with ROS -- Gazebo and RViz.

ROS Distribution Compatibility On Jetson Nano

OS Version: JetPack 4.4 / NVIDIA L4T 32.4.3 / Ubuntu 18.04
Update: 13 October 2020

Since the JetPack 4.4 is based on Ubuntu 18.04, the only supported distro for Jetson Nano is ROS Melodic. Refer to ROS's official Target Platforms REP.

ROS distro supported for Ubuntu 18.04

To install ROS Melodic on Jetson Nano, please refer to official instructions for the Ubuntu install of ROS Melodic.

Performance Test

The performance test is conducted by simulating SLAM with TurtleBot3. The tested areas include memory, CPU usage, GPU usage and temperature.

TurtleBot world Gazebo (left) and RViz for SLAM (right)

Below is the list of programs that are running before and during the performance test. Kindly note that programs such as terminals are ignored as they do not require much computational power to run.

Programs running before and during performance test.

RQT Graph (Active Nodes/Topics)

RQT graph showing active nodes and topics during the performance test

Data Collection Settings
Logging method: TegraStats Utility (Nvidia)
Sampling period: 1s
Period for executing all programs: 120s ~ 180s
Test start time: ~180s

Memory test results

We can see that running the Gazebo simulation framework and RViz actually takes much lesser memory than expected (only ~750MB of RAM is being used). Therefore, we still have around 1GB of RAM space to spare for running more programs, which is really impressive.

CPU test results

Although there is much available memory space, we can see that Jetson Nano's CPU could not keep up with running the processes as the usage of all 4 cores are already maxed out. However, both Gazebo and RViz are still running in about 30FPS, so there is no problem on visualizing the robot and environment as well as changing the view in both programs. One thing to be noticed is that the real time factor in Gazebo has dropped to around 0.5~0.6 (usually is 1), which is a downside of using Jetson Nano for robot simulation with Gazebo if you want to obtain data from Gazebo in real time.

GPU test results

On the GPU side, only one thing to say -- good.

Temperature test results

From the temperature data, we can see that the overall temperature is gradually increasing over time and stabilizes at around 48°C thanks to the huge heat sink. Therefore, it is still safe to touch it!

Conclusion

In general, Jetson Nano is sufficient to be used for those who are just getting started with ROS and want to run some robot simulation before implementing into the real world. If you want a controller capable of running some AI applications in robot, Jetson Nano is definitely what you need!

Reference




Chat hỗ trợ
Chat ngay