Skip to main content

Marvin Pro Startup and Debugging

This page applies to the current Tianzhun-controller version and covers the minimum sequence from power-on to first teleoperation. For buttons, recording, playback, and logs, see Current Marvin Pro Apex Teleop.

1. Before startup​

  • Connect the robot, cabinet, host PC, and headset according to Hardware Wiring.
  • Release the emergency stop and clear the robot workspace.
  • Put the host PC and Tianzhun controller on the same subnet.
  • Connect the headset to the same LAN.
  • Check whether the robot is still in its factory packing pose. Do not click Home from the packing pose. A wrist camera may collide with the center column.

2. Connect to the Tianzhun controller​

The following uses the default IP 6.6.7.100. Use the delivered site configuration if it was changed.

ping 6.6.7.100
ssh nvidia@6.6.7.100

After controller power-on, if the delivered system contains ~/cam_geac, initialize the cameras according to the delivered configuration:

cd ~/cam_geac
./rb_camera.sh init

Start the Apex backend service:

sudo systemctl start apex-backend.service
sudo systemctl status apex-backend.service --no-pager

Disable X11-Forwarding in MobaXterm to avoid camera timeout or headset video issues.

3. Start Apex Teleop and the Robot​

  1. Open Apex Teleop.
  2. Enter the Tianzhun controller IP in the upper-right field and press Enter.
  3. Start Robot.
  4. Confirm that the URDF pose matches the physical robot.
  5. Start Teleop and dnsmasq.
  6. Start Camera when video is required. Start Tool only when an end effector is configured.
  7. Click Start Robot in the lower-left card.

Current Marvin Pro Apex Teleop

4. First Unpacking: Exit the Packing Pose​

Do not Home directly from the packing pose

The robot is delivered with both arms hanging vertically close to the center column. Calling Home directly from this pose can cause a wrist camera to collide with the column. After first unpacking, or whenever the robot has been manually returned to the packing pose, first move all 14 arm joints to zero.

After completing the previous section, confirm that Robot and Teleop are running and the robot is Ready. Open RQt from a desktop terminal with the Apex ROS environment loaded:

source /etc/apex/apex_ros_env.sh
rqt

In RQt, open Plugins → Services → Service Caller, then perform these calls:

  1. Select /control/set_mode, set data to 1, and switch to Position Mode.
  2. Select /control/set_input, set data to 2, and select Planner input.
  3. Select /control/movej, set joint_values to the following 14 zeros, and click Call:
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

Watch the physical robot and the distance between each wrist camera and the center column throughout the motion. Keep the emergency stop within reach. Continue only after both arms reach the all-zero pose. This section does not need to be repeated when the robot has already left the packing pose and its starting path is known to be safe.

5. Enter the Teleoperation Pose​

  1. Confirm that the robot has left the packing pose and is at the all-zero pose or another verified safe starting pose.
  2. Select Impedance Mode.
  3. Click Home and wait for the teleoperation initial pose.
  4. Set Input Mode to Teleop.

6. Connect the Headset​

Marvin Pro supports Pico and Meta Quest:

Connect the headset cable, open the Apex headset client, and connect to the controller. Confirm the VR state in Apex Teleop, then begin with small motions in a clear workspace.

7. Quick Checks​

SymptomCheck
Cannot connect from the IP fieldIP, subnet, cable, and controller network
Robot does not startE-stop, robot power, controller link, and Robot log
URDF does not follow the robotRobot module and robot model configuration
Teleop unavailableRobot running and Ready state
Headset cannot connectdnsmasq, headset cable, connection IP, and VR state
Camera is blackCamera module, camera initialization, and camera_sources
No teleoperation motionImpedance Mode, Home completion, and Teleop input mode
First startup from the packing poseDo not Home directly; use RQt and /control/movej to move all 14 arm joints to zero first
Home path approaches the center columnStop immediately and use the emergency stop if needed; check the starting pose and the all-zero step

For further diagnosis, see Apex Teleop logs.