Skip to content

Setup Guide — ROS 2 (Physical AI Tools)

Overview

This guide shows how to set up and operate OMX using Physical AI Tools (Web UI). Follow the steps to prepare repositories, configure Docker, and run the teleoperation node.

INFO

System Requirements

Recommended OSUbuntu
Hardware requirementNVIDIA GPU (CUDA-capable)

Software Setup

Prerequisites

  • Operating System: Any Linux distribution

    • The container runs Ubuntu 24.04 + ROS 2 Jazzy
    • The Host OS version does not need to match.
  • Docker Engine

    • Install using the official Docker guide

    • After installation:

      bash
      sudo usermod -aG docker $USER
      sudo systemctl enable docker
      docker run hello-world
  • Git

    bash
    sudo apt install git
  • NVIDIA Container Toolkit

Docker Volume Configuration

The Docker container uses volume mappings for hardware access, development, and data persistence:

bash
volumes:
  # Hardware and system access
  - /dev:/dev
  - /tmp/.X11-unix:/tmp/.X11-unix:rw
  - /tmp/.docker.xauth:/tmp/.docker.xauth:rw

  # Development and data directories
  - ./workspace:/workspace
  - ../:/root/ros2_ws/src/open_manipulator/

TIP

Store your development code in /workspace to preserve your codes.

Set up Open Manipulator Docker Container

1. Start the Docker Container:

Clone the repository:

USER PC

bash
git clone https://github.com/ROBOTIS-GIT/open_manipulator

Start the Open Manipulator container with the following command:

bash
cd open_manipulator/docker && ./container.sh start

2. Set up launch file port

Enter the Open Manipulator Docker container:

USER PC

bash
./container.sh enter

INFO

First, connect only the 'Leader' USB to the port, then check and copy the OpenRB serial ID.

USER PC or USER PC 🐋 OPEN MANIPULATOR

bash
ls -al /dev/serial/by-id/
Serial device by-id listing example

As shown in the image below, paste the serial ID you noted above into the port name parameter for the [leader] then save.

USER PC 🐋 OPEN MANIPULATOR

bash
sudo nano ~/ros2_ws/src/open_manipulator/open_manipulator_bringup/launch/omx_l_leader_ai.launch.py
# omx_l_leader_ai.launch.py
DeclareLaunchArgument(
    'port_name',
    default_value='/dev/serial/by-id/{your_leader_serial_id}',
    description='Port name for hardware connection.',
)

INFO

Second, connect only the 'Follower' USB to the port, then check and copy the OpenRB serial ID.

USER PC or USER PC 🐋 OPEN MANIPULATOR

bash
ls -al /dev/serial/by-id/
Serial device by-id listing example

As shown in the image below, paste the serial ID you noted above into the port name parameter for the [follower], then save.

USER PC 🐋 OPEN MANIPULATOR

bash
sudo nano ~/ros2_ws/src/open_manipulator/open_manipulator_bringup/launch/omx_f_follower_ai.launch.py
# omx_f_follower_ai.launch.py
DeclareLaunchArgument(
    'port_name',
    default_value='/dev/serial/by-id/{your_follower_serial_id}',
    description='Port name for hardware connection.',
)

INFO

Ultimately, it will be changed as shown below.

Serial device by-id listing example

🎉 Open Manipulator Container Setup Complete!

Please exit the Docker container and return to your host terminal for the next steps.

Set up Physical AI Tools Docker Container

1. Start the Docker container

Clone the repository along with all required submodules:

USER PC

bash
git clone --recurse-submodules https://github.com/ROBOTIS-GIT/physical_ai_tools.git

Start the Physical AI Tools Docker container with the following command:

bash
cd physical_ai_tools/docker && ./container.sh start

2. Configure camera topics

If you are using more than one camera or want to use a custom camera, list the available camera topics and choose the one you want to use:

Enter the Physical AI Tools Docker container:

USER PC

bash
./container.sh enter

list the available topics to find your camera stream:

USER PC

bash
ros2 topic list

And open the configuration file and update it as described below:

USER PC 🐋 PHYSICAL AI TOOLS

bash
sudo nano ~/ros2_ws/src/physical_ai_tools/physical_ai_server/config/omx_f_config.yaml

Then update the fields outlined in red in the UI to point to your desired camera topic.

Configure camera topic in the UI

INFO

Note: The topic you set must always end with compressed
(for example, camera1/image_raw/compressed).

🎉 Physical AI Tools Container Setup Complete!

Click the button below to start Imitation Learning.

AI Worker and AI Manipulator released under the Apache-2.0 license.