Interface Requirements
Prepare the URDF File
Please prepare your robot's URDF file with the following requirements:
- Ensure joint limits in the URDF match the physical robot exactly to prevent self-collision.
- The URDF should include all degrees of freedom you wish to control, set as "revolute" or "prismatic" joints. This includes, but is not limited to: arm, gripper, dexterous hand, head, lift torso, waist, chassis.
- Mesh files referenced in the URDF should be reasonably sized, with the total size not exceeding 50MB.
Joint Feedback Interface Testing
You need to obtain joint position feedback for all controllable degrees of freedom, which may include:
- Arm
- Gripper or dexterous hand
- Head
- Waist
- Lift torso
Aggregate all feedback and publish it as a JointState message to the /io_teleop/joint_states
topic via ROS1 or ROS2.
Make sure to use the exact joint names as in the URDF for JointState.name
, fill in the corresponding joint angles (in radians) in JointState.position
, and update the header timestamp.
Check with the following commands:
rostopic hz /io_teleop/joint_states
(ROS1)ros2 topic hz /io_teleop/joint_states
(ROS2)
You should see a stable frequency, and the values should match the actual robot's joint angles and update dynamically.
There is no strict requirement for feedback frequency, but the feedback interface must not block control commands.
If you plan to use teleoperation data for training embodied AI models, a feedback frequency above 15Hz is recommended.
Control Interface Testing
TeleXperience sends control commands at 100Hz. Please ensure all robot modules can respond at this frequency.
1. Manipulator Arm
TeleXperience outputs two types of control commands for the arm:
a. (Recommended) Joint Space Control:
TeleXperience includes a universal controller that:
- Combines VR end-effector pose commands and motion capture joint references, generating smooth joint space commands (in radians).
- Ensures that if unreachable commands are sent, the arm still responds with the closest possible pose within its workspace, avoiding abrupt stops or jumps.
You can use this tool to check if your joint space control interface meets the requirements. Please read the README and follow the instructions to implement the test node.
Ensure safety during testing!
b. End-Effector Cartesian Space Control:
If you wish to use Cartesian space control, ensure:
- The interface supports real-time 100Hz response without blocking.
- When receiving unreachable commands, the arm still responds with the closest possible pose within its workspace, without abrupt stops or jumps.
2. End Effectors
For grippers or dexterous hands, a 100Hz control interface is preferred. If not possible, reduce the frequency as needed during real robot operation.
3. Chassis and Lift Torso
Provide 100Hz velocity control interfaces for the chassis and lift torso. If not possible, reduce the frequency as needed during real robot operation.
4. Head, Waist, and Other Body DOFs
Provide 100Hz joint position control interfaces. If not possible, reduce the frequency as needed during real robot operation.
Image Feedback Interface Testing
TeleXperience supports image synchronization. If you want to display the robot's perception images in VR, publish them in ROS1 or ROS2 CompressedImage format with the following specs:
- Supported resolutions: 1920x1080, 1440x1080, 1280x720, 960x720, 640x480
- Supported frame rates: 30fps, 15fps, 10fps
- Up to 4 image streams can be displayed simultaneously
Use rostopic hz
or ros2 topic hz
to check for stable image frequency.
Industrial PC Environment Requirements
Prepare a host machine with a ROS environment to run the robot control node.
You may use ROS1 or ROS2, but ROS2 versions above Humble are not supported.
If your robot's onboard computer allows, you can deploy the control node directly on it. Otherwise, prepare an additional computer with ROS to run the control node and enable communication between TeleXperience and the robot.