Series
Plotjuggler G1 Debug
The "Plotjuggler G1 Debug" series has 5 parts — read them in order from part 1.
Humanoid
PlotJuggler + G1: ROS2 Setup & Live Topic Streaming
Install ros-humble-plotjuggler-ros, configure CycloneDDS for Unitree G1, and stream /lowstate and /sportmodestate live in under 15 minutes.

Visualizing 23 G1 Joints: MCAP Bags & Panel Layouts
Load G1 MCAP recordings with the DataLoadMCAP plugin, drag 23 joint channels into a synced multi-panel grid, save layout as XML, and plot phase portraits.

IMU Debug: Quaternion to Euler + FFT Vibration Analysis
ToolboxQuaternion converts G1 IMU quaternions to roll/pitch/yaw, ToolboxFFT detects gyroscope resonance, and Moving Average smooths foot_force data.

PlotJuggler Lua: Computing Power and Tracking Error for G1
PlotJuggler Custom Function Editor writes Lua computing per-joint power (τ × dq) and tracking error — detecting overloaded joints /lowstate doesn't expose.

ZMQ + VideoViewer: Sim-to-Real Debug for G1 with PlotJuggler
A ZMQ bridge from MuJoCo/Python to PlotJuggler to stream G1 sim state live, sync VideoViewer with hardware, and compare sim-to-real gaps per joint/gait phase.