How-to guides
Recipes for specific problems. Each page assumes you have a working install, have done the Lite 101 lesson, and now have a concrete task in mind. How-tos skip the pedagogy that tutorials include — they go straight to the steps.
Bring-up & operations
| Guide | Use it when |
|---|---|
| First real-hardware bringup | You have the physical Lite robot on the bench and a workspace built. You want /lite/joint_states to flow and zero_torque_controller active. |
| Calibrate the zero pose | The URDF "joint zero" doesn't match where the robot's encoders read zero. You want to regenerate bar_bringup_lite/config/calibration.yaml. |
| Probe actuators on a CAN bus | You suspect a wiring issue, a missing motor, or just want to scan all IDs on a bus before bringup. |
| Switch controllers without the FSM | The gamepad isn't in the loop. You want to call switch_controller directly to put the robot in DAMPING / STANDBY / REMOTE. |
Manual control & debug
| Guide | Use it when |
|---|---|
| Drive a single joint with mit_slider_gui | You want to inject a position/velocity/effort/K/D combination by hand and see the actuator follow. Good for sanity-checking a freshly calibrated joint. |
| Live-visualize the robot (rerun / viser) | You want the live kinematic chain on screen while the robot runs — for tuning, demos, or watching a policy from another machine. |
| Record experiments with rosbag (MCAP) | You want a replayable trace — joints, FSM transitions, safety status, policy I/O — for offline analysis, regression baselines, or Foxglove Studio. |
Diagnosis & recovery
| Guide | Use it when |
|---|---|
| Diagnose ENOBUFS / TX drops | The plugin spams Network is down or you see tx_failed counters climb. Usually motor power is off or txqueuelen is too small. |
| Recover from a fault | /safety_status reported BUS_OFF, RX_TIMEOUT, or TEMPERATURE_LIMIT and mode_manager auto-dropped to DAMPING. |
Extension
| Guide | Use it when |
|---|---|
| Promote a Python policy to in-process C++ | You've validated a policy via bar_policy/remote_policy_runner and want the lower-latency C++ tier (RLPolicyController) to run the same ONNX. |
| Add a new joint to the URDF | A new actuator goes on the robot. You need to wire it into the URDF, controllers YAML, and calibration.yaml. |