JetsonHacks

Developing on NVIDIA® Jetson™ for AI on the Edge

Robot Operating System (ROS) on NVIDIA Jetson TX Development Kits

With the advent of L4T 28.2, we freshened up the ROS installers for the Jetson TX1 and Jetson TX2. Looky here:

Background

In a previous article, Robot Operating System (ROS) on NVIDIA Jetson TX2, we discuss the history of ROS and why it has become the most popular operating system for robots in the world.

The L4T 28.2 release now allows us to use the same code base for the Jetson TX1 as the Jetson TX2 for the installer. Due to the legacy nature of this project, we still maintain two repositories. There are two repositories on the JetsonHacks account on Github. The first is installROSTX2 which is for the Jetson TX2. The second is installROSTX1 which is for the Jetson TX1.

Installation

The main script, installROS.sh, is a straightforward implementation of the install instructions taken from the ROS Wiki. The instructions install ROS Kinetic on the Jetson.

The installation for both Jetsons are similar. On the Jetson TX2:

You can grab the repository:

$ git clone https://github.com/jetsonhacks/installROSTX2.git
$ cd installROSTX2

on the Jetson TX1:

$ git clone https://github.com/jetsonhacks/installROSTX1.git
$ cd installROSTX1

installROS.sh

Usage: ./installROS.sh  [[-p package] | [-h]]
 -p | --package <packagename>  ROS package to install
                               Multiple Usage allowed
                               The first package should be a base package. One of the following:
                                 ros-kinetic-ros-base
                                 ros-kinetic-desktop
                                 ros-kinetic-desktop-full
 

Default is ros-kinetic-ros-base if no packages are specified.

Example Usage:

$ ./installROS.sh -p ros-kinetic-desktop -p ros-kinetic-rgbd-launch

This script installs a baseline ROS environment. There are several tasks:

  • Enable repositories universe, multiverse, and restricted
  • Adds the ROS sources list
  • Sets the needed keys
  • Loads specified ROS packages (defaults to ros-kinetic-base-ros if none specified)
  • Initializes rosdep

You can edit this file to add the ROS packages for your application.

setupCatkinWorkspace.sh

Usage:

$ ./setupCatkinWorkspace.sh [optionalWorkspaceName]

where optionalWorkspaceName is the name of the workspace to be used. The default workspace name is catkin_ws. This script also sets up some ROS environment variables. Refer to the script for details.

Notes

  • In the video, the Jetson TX2 was flashed with L4T 28.2 using JetPack 3.2. L4T 28.2 is derived from Ubuntu 16.04.
Facebook
Twitter
LinkedIn
Reddit
Email
Print

4 Responses

  1. Forgive me if you’ve already answered this, but I tend to skip around in the videos. What has been your overall impression of the performance increase from a TK1 to a TXx with ROS? I have a TK1 on a Kobuki (Turtlebot2) and have been considering an upgrade. My biggest performance bottleneck seems to be wifi, so I’m to sure if a processor upgrade is worth the time, effort, and expense.

    Thanks

    1. The TX1 is about 2x as fast as the TK1, TX2 is almost 2X the TX1. A more interesting part is that each one has 2x the memory as the previous gen. The TK1 has 2M, the TX1 has 4M, the TX2 has 8M. Not quite sure how wifi would be a performance bottleneck, but each generation increases two fold. Thanks for reading.

  2. RVIZ (segmentation fault)

    board : TX2
    L4T 28.2.1
    ROS : kinetic

    Hello all,
    cna’t open RVIZ !!

    I did a fresh RE-install on my TX2 board,
    followed your ros install :
    ./installROS.sh -p ros-kinetic-desktop-full
    ./setupCatkinWorkspace.sh

    I encounter this error :

    nvidia@tegra-ubuntu:~$ rosrun rviz rviz
    QXcbConnection: Failed to initialize XRandr
    Qt: XKEYBOARD extension not present on the X server.
    [ INFO] [1535486715.194520664]: rviz version 1.12.16
    [ INFO] [1535486715.194684796]: compiled against Qt version 5.5.1
    [ INFO] [1535486715.194731165]: compiled against OGRE version 1.9.0 (Ghadamon)
    Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.

    Segmentation fault (core dumped)

    ps : it’not my first ros install, but now, I’ma a bit lost !!

    Help.

    1. I don’t know the answer to your question. There appears to be an issue with the keyboard under QT 5, but I don’t know is causing the segfault.
      You should be able to run rviz:

      $ rviz

Leave a Reply

Your email address will not be published. Required fields are marked *

Disclaimer

Some links here are affiliate links. If you purchase through these links I will receive a small commission at no additional cost to you. As an Amazon Associate, I earn from qualifying purchases.

Books, Ideas & Other Curiosities