◆ Thunderloop()
Thunderloop is a giant loop that runs at THUNDERLOOP_HZ. It receives Primitives and World from AI, executes the primitives with the most recent vison data, and polls the services to interact with the hardware peripherals.
High Level Diagram: Service order in loop not shown
┌─────────────────┐
│ │
│ ThunderLoop │
│ │
Primitives───────► │ Target Vel ┌────────────┐ │ ├────────────► │ World ───────────► │ │ MotorBoard │ │ Services ◄────────────┤ │ │ │ Actual Vel └────────────┘ │ Primitive Exec │ │ │ │ │ Kick/Chip ┌────────────┐ │ ├────────────► │ Robot Status◄─────┤ │ │ PowerBoard │ │ ◄────────────┤ │ └─────────────────┘ Voltages └────────────┘
- Parameters
-
| robot_constants | The robot constants |
| enable_log_merging | Whether to merge repeated log message or not |
| loop_hz | The rate to run the loop |
The documentation for this class was generated from the following files:
- src/software/embedded/thunderloop.h
- src/software/embedded/thunderloop.cpp