Dataset Preparation - Prerequisites
This section describes the necessary setup steps before starting data preparation.
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 ToolsROBOT 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
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
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
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:
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:
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
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