Skip to main content

Dataset Preparation - Prerequisites

This section describes the necessary setup steps before starting data preparation.

info

When executing terminal commands in this document, refer to the indicators below to run them on the correct PC or Docker container

  • USER PC: Your PC with the camera connected, used for dataset collection with Physical AI Tools
  • ROBOT PC: The embedded SBC (Raspberry Pi) inside the OMY robot
  • 🐋 OPEN MANIPULATOR: Open Manipulator Docker container
  • 🐋 PHYSICAL AI TOOLS: Physical AI Tools Docker container

Setup Open Manipulator Docker Container

warning

If the Open Manipulator Docker container is already set up, you can skip this step.

1. Start the Docker Container:

Clone the repository:

USER PC

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

Start the container with the following command:

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

2. Setup ROS Domain ID

Set a consistent ROS_DOMAIN_ID across terminals to enable ROS 2 node communication.

Enter the Open Manipulator Docker container:

USER PC

./container.sh enter

USER PC 🐋 OPEN MANIPULATOR

echo 'export ROS_DOMAIN_ID=30' >> ~/.bashrc
source ~/.bashrc

Setup Physical AI Tools Docker Container

warning

If the Physical AI Tools Docker container is already set up, you can skip this step.

1. Start the Docker Container:

Clone the repository along with all required submodules:

USER PC

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

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

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

2. Build the Physical AI Server

Enter the docker container:

USER PC

./container.sh enter

Build the Physical AI Server with the following command:

USER PC 🐋 PHYSICAL AI TOOLS

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

Launch the ROS 2 Teleoperation Node

info

At least one Zenoh daemon must be running in the communication network. If no Zenoh daemon is running, ROS 2 nodes cannot discover or communicate with each other.

For the recommended setup, run zenohd in a terminal inside the OpenMANIPULATOR Docker container on the robot PC.

1. Access the Robot PC

Access the Robot PC either directly or via SSH. For SSH connection instructions, refer to the SSH connection.

2. Launch the ROS 2 Teleoperation Node

Enter the Docker Container

ROBOT PC

cd open_manipulator/docker && ./container.sh enter

Then, launch the ROS 2 teleoperation node with following command:

warning

Executing the code will cause OMY to move immediately. Please stay clear and be cautious.

ROBOT PC 🐋 OPEN MANIPULATOR

ros2 launch open_manipulator_bringup omy_ai.launch.py

Launch the Camera Node:

info

The OMY camera must be launched inside the OpenMANIPULATOR Docker container on the user PC, not on the robot PC.

If zenohd is running on the robot PC, configure the user PC to connect to the robot PC's Zenoh daemon by setting ZENOH_CONFIG_OVERRIDE.

Refer to the External PC Control section in Zenoh Communication for the network and ZENOH_CONFIG_OVERRIDE settings.

Once configured correctly, both the robot PC and user PC can communicate through a single Zenoh daemon.

USER PC 🐋 OPEN MANIPULATOR

ros2 launch realsense2_camera rs_launch.py camera_name:='cam_wrist'

You can also use other camera models such as ZED2 or USB cameras, if needed.

Launch the Physical AI Server

info

The ZENOH_CONFIG_OVERRIDE environment variable must also be correctly set inside the physical_ai_server Docker container according to the External PC Control configuration. Otherwise, ROS 2 communication may not work.

Navigate to physical_ai_tools/docker directory and enter the Docker Container:

USER PC

cd physical_ai_tools/docker
./container.sh enter

Launch Physical AI Server with the following command:

USER PC 🐋 PHYSICAL AI TOOLS

ros2 launch physical_ai_server physical_ai_server_bringup.launch.py

Or, use shortcut command:

ai_server