Click any component for what it does and the topics it touches. Use the layer buttons to trace one kind of flow at a time.
Pick a component
The diagram is the real Car 2 wiring: the same nodes, topics and ports you will meet in the docs. Car 1 runs the same software with a USB LiDAR and a webcam instead. Click a box to read about it.
The chain in words
- The gamepad produces
/joy; manual teleop turns it into a steering-and-speed command on/teleop. Autonomy nodes (follow-the-gap, pure pursuit) publish their own decisions on/drive. ackermann_muxpicks exactly one command source. The human always wins: teleop has priority 100, autonomy 10.- The winning command leaves as
/ackermann_cmdand becomes raw motor and servo numbers on/commands/motor/speedand/commands/servo/position. vesc_driver_nodesends those down a serial cable to the VESC, which drives the motor with three-phase power and the steering servo with PPM/PWM.- The LiDAR publishes
/scanover Ethernet the whole time, whether the car drives or not. The VESC reports back up the same serial line andvesc_to_odom_nodeturns that into/odom. - Underneath it all, the LiPo feeds the power board: battery bus to the VESC, regulated DC to the Jetson. Nothing above moves without it.
Source of truth: the car workspace docs - architecture.md on GitHub.