End-to-End Physical AI With the Unitree G1 Troubleshooting#

Use this skill to triage issues in the End-to-End Physical AI With the Unitree G1 course workflow. Start with safety, identify the symptom, run the smallest relevant check, and avoid changing workflow commands until hardware and environment basics are verified.

Safety First#

Before troubleshooting hardware, cables, camera access, teleoperation, recording, or deployment:

  1. Stop robot motion.

  2. Follow manufacturer and lab safety procedures.

  3. Keep the robot in a safe state before restarting teleoperation, recording, or deployment services.

Quick Triage#

Match the symptom to the section below.

RealSense Camera Not Found#

Symptoms:

  • rs-enumerate-devices fails without sudo, but succeeds with sudo rs-enumerate-devices.

  • ros2 launch realsense2_camera rs_launch.py reports failed to set power state or The requested device ... is NOT found.

  • realsense-viewer does not detect the RealSense camera.

Checks:

ros2 launch realsense2_camera rs_launch.py
rs-enumerate-devices

Fixes:

  • Confirm librealsense, realsense2_camera, and camera firmware versions.

  • If udev rules are missing, install 99-realsense-libusb.rules, reload rules, and trigger udev.

  • Update D400 firmware with rs-fw-update -f <binary_filename> when firmware is out of date.

Isaac Teleop UI Disappears After Certificate Acceptance#

Symptom: after accepting the CloudXR certificate in the headset browser, part of the Isaac Teleop web client UI disappears or fails to render.

Fix:

  • Update the headset OS and native browser.

  • For PICO headsets, software version 5.15.5 was tested with this workflow.

  • Reopen Isaac Teleop and repeat certificate acceptance.

MuJoCo Teleop Starts During Real Robot Teleop#

Symptom: starting real robot teleop opens a MuJoCo window, and the simulated robot falls because there is no virtual gantry.

Cause: the MuJoCo teleop terminal or a background MuJoCo process is still running.

Fix:

  • Close the MuJoCo teleop window.

  • Stop the MuJoCo teleop terminal.

  • Stop any background MuJoCo processes before launching real robot teleop again.

Image Width or Height Is Odd#

Symptom:

[NitrosImage]: [convert_to_custom] Image width/height must be even for creation of gxf::VideoBuffer
what(): [convert_to_custom] Odd Image width or height.

Fix: replace the input image source with one that produces even image width and height.

RealSense IR Stereo Images Do Not Stream#

Symptom: inside Isaac ROS, realsense-viewer does not show IR images, but depth images stream.

Fix:

  • Install the librealsense2-dkms package for Kernel 5.15 from the referenced RealSense DKMS release.

  • Build librealsense inside the Isaac ROS environment without CUDA if required.

RealSense Failed to Resolve the Request#

Symptom: RealSense tutorials launch, but no images stream; logs include Failed to resolve the request.

Fix: verify camera firmware using the RealSense version and firmware checks from the camera-not-found section.

RealSense QoS Policy Error#

Symptom: a RealSense output topic is not subscribed, and logs mention an incompatible QoS policy such as RELIABILITY_QOS_POLICY.

Fix: set the relevant RealSense image QoS setting, such as depth_qos or color_qos, to SYSTEM_DEFAULT in the launch graph configuration.

RealSense Laser Emitter Turns On#

Symptom: the Intel RealSense laser emitter turns on even though emitter_enabled is set to 0.

Fix:

ros2 param set /camera/camera depth_module.emitter_enabled 0

ROS_DOMAIN_ID Crosstalk#

Symptoms:

  • ros2 topic list shows topics from another robot or workstation.

  • Nodes connect to the wrong robot, camera, recorder, or deployment stack.

  • Teleop, recording, or deployment behavior changes when another ROS 2 system starts.

Cause: when multicast is supported, ROS 2 systems on the same network and same ROS_DOMAIN_ID can discover each other.

Fix:

echo "${ROS_DOMAIN_ID:-0}"
export ROS_DOMAIN_ID=12
ros2 node list
ros2 topic list

Assign a unique domain ID before launching nodes. Restart launch files that were started with the wrong domain ID.

D455 Infra Camera Capped at 15 FPS#

Symptom: Intel RealSense D455 infra camera is capped near 15 FPS even when configured for 90 FPS.

Fix:

ros2 param set /camera/camera depth_module.enable_auto_exposure true

System Throttled Due to Over-Current#

Symptom: the compute unit reports System throttled due to over-current.

Fix:

  • Reduce system load, image resolution, or frame rate.

  • Check the over-current event count:

cat "$(find /sys/devices -name oc3_event_cnt -print -quit)"

Only disable over-current limits when finding workload limits. Disabling limits can allow overheating and may affect silicon health.

G1 Workflow Sanity Checks#

Before changing course workflow commands, confirm:

  • G1 and NVIDIA Thor are powered on.

  • Required USB and direct Ethernet cables are connected.

  • Cable routing does not interfere with robot motion.

  • RealSense camera is visible to the system.

  • Thor and G1 network interfaces are on the expected network.

  • Robot is in a safe state before restarting workflow services.

Source Reference#

For the full learner-facing troubleshooting guide, see docs/troubleshooting.md.