2. Setting Up Robotics SDK

This section describes how to set up the Robotics SDK on the Processor SDK Linux for Edge AI.

2.1. Requirements & Dependencies

2.1.1. Supported Hardware Platforms

Platform

EVM

TDA4VM

SK-TDA4VM

AM68A

SK-AM68

AM69A

SK-AM69

2.1.2. Processor SDK Linux for Edge AI

The Robotics SDK requires the SD card image from Processor SDK Linux for Edge AI:

Platform

Link to Processor SDK Linux

TDA4VM

Processor SDK Linux for TDA4VM (Version 9.1.0.X)

AM68A

Processor SDK Linux for AM68A (Version 9.1.0.X)

AM69A

Processor SDK Linux for AM69A (Version 9.1.0.X)

The SD card image contains Processor SDK Linux and libraries that are necessary for setting up the Robotics SDK environment.

2.1.3. Ubuntu PC

A Ubuntu PC is required for visualization of ROS topics published from the TI EdgeAI Starter Kit (SK) board. We have tested only with native x86_64 Ubuntu PCs and have not tested with any other Ubuntu systems: including Ubuntu virtual machines and Docker Desktop on Mac or Windows.

It is assumed that a matching ROS distro (ROS 2 Humble) is installed on the remote Ubuntu PC, either in the host Ubuntu filesystem natively or in a Docker container. In case you want to install ROS natively on the remote Ubuntu filesystem:

We also provide Dockerfiles (docker/Dockerfile.x86_64.humble) that can build and run on the remote Ubuntu PC for ROS 2 Humble, with detailed steps for setting up the Docker environment on the remote PC. For installation of Docker on the Ubuntu PC, the following links may be useful:

2.1.4. Cameras

The Robotics SDK provides camera ROS nodes for ZED stereo camera, USB mono cameras (Logitech C270, C920, C922, and others), and CSI cameras including IMX219 and IMX390. All the demo applications can be tried out with a live camera as well as with a ROSBAG file that is provided with the SDK.

2.2. Set Up Development Environment on the Target

Figure 1. Robotics SDK Setup and Installation Steps

Figure 1 shows the hardware setup and high-level installation steps on the target SK board and the Ubuntu PC. The target SK board and the remote Ubuntu PC are assumed to be connected on the same network through Ethernet or WiFi connectivity. For details on how to set up the WiFi on the SK board, please refer to this section of Edge AI documentation.

2.2.1. Build SD Card

  1. From the Ubuntu PC, download the SD card image (tisdk-edgeai-image-<platform>-evm.wic.xz) from Processor SDK Linux (using the links provided in Section 1.2).

  2. Flash the downloaded image to an SD card (minimum 32GB, high-performance) using the Balena Etcher tool. For detailed instructions, please refer to this section.

2.2.2. Connect Remotely to the Target

  1. To find the target IP address assigned to the EVM, use a serial port communications program (for example, sudo minicom -D /dev/ttyUSBx where /dev/ttyUSBx is the device for the UART serial port), log in with root account, and run ifconfig.

  2. From a terminal on the PC, open an SSH session to connect remotely to the target:

    user@pc:~$ ssh root@<target_IP_address>
    

    Tip

    It is recommended to use a static IP for the SK board to make ROS network setting easy.

2.2.3. Initial Setup for the Robotics SDK

2.2.3.1. On the SK Board

You can run the installation script on the target as follows:

root@am6x-sk:~$ cd /opt/edgeai-gst-apps/scripts
root@am6x-sk:~$ source ./install_robotics_sdk.sh

This script takes care of:

  • Cloning the main GIT repository for Robotics SDK under /opt/robotics_sdk

  • Setting up the folders for evaluating the Robotics SDK under $HOME/j7ros_home

  • Downloading ROSBAG and other data files

  • Downloading several deep-learning models from the edge AI model zoo. You can also use the model downloader tool (please refer to this section of Edge AI documentation).

2.2.3.2. On the Remote Ubuntu PC

In a similar way, you can use a script to set up on the remote Ubuntu PC for visualization:

user@pc:~$ wget -O init_setup.sh https://git.ti.com/cgit/processor-sdk-vision/jacinto_ros_perception/plain/init_setup.sh
user@pc:~$ source ./init_setup.sh REL.09.01.00

Note

In a proxy network, in case the wget command above does not work, you can try again with adding --proxy off argument:

user@pc:~$ wget --proxy off -O init_setup.sh https://git.ti.com/cgit/processor-sdk-vision/jacinto_ros_perception/plain/init_setup.sh

2.2.4. Set Up Docker Environment on the Target

The Robotics SDK runs in a Docker container environment on the Processor SDK Linux. In the Robotics SDK Docker environment, ROS and necessary libraries and tools are installed.

First, following this link, please check that Docker and network work correctly on the target SK board.

The following section describes the Docker environment setup, details of building, and running apps under Docker. Please note that it will take several minutes to build the Docker image. The Docker image built can be listed with docker images.

Note

Proxy Network: If the board running the Docker container is behind a proxy server, the default settings for downloading files and installing packages via apt-get may not work, and proper settings for proxy should be established for building and running the SDK Docker image.

Tip

Docker Run: After “docker build” is completed, it is important to use docker_run_rosX.sh script to start a Docker container, since the script includes all the necessary settings to leverage all the cores and hardware accelerators of the processor. Please note that docker_run_rosX.sh includes --rm argument by default. Just remove the --rm argument in docker_run_rosX.sh in case you want to do “docker commit” after exiting a Docker container. A short information about several useful Docker commands is provided in this link.