How richardbwang/rw-template works
RW-Template is a VEX V5 competition robotics template. Its main workflow initializes configured devices and heading/odometry, dispatches the selected autonomous routine (or driver loop), and turns motion requests into chassis control using sensor feedback and PID. The graph retains the README’s navigation, odometry, tracking-wheel, and distance-reset capabilities. Several motion implementations were only partially sampled, so their internal call wiring is omitted; those capabilities are represented at the documented module level.
Main entry points: motor-control.cpp Motion Execution · user.cpp Mode Orchestration · pid.cpp PID Controller · autonomous.cpp Autonomous Routines
Components 18
Competition Flow
- Competition Entry
src/main.cpp - Mode Orchestration
custom/src/user.cpp - Autonomous Routines
custom/src/autonomous.cpp
Robot Setup
- Device Configuration
custom/src/robot-config.cpp - Robot Devices
custom/include/robot-config.h
Motion Control
- Motion Commands
include/motor-control.h - Motion Execution
src/motor-control.cpp - Chassis Control
src/motor-control.cpp - Turn And Swing
src/motor-control.cpp - Point Navigation
src/motor-control.cpp - Curved Navigation
src/motor-control.cpp - Odometry Tracking
src/motor-control.cpp - Distance Resets
src/motor-control.cpp
Control Support
- PID Controller
src/pid.cpp - PID Interface
include/pid.h - Geometry Utilities
src/utils.cpp
Other components
- VEX Competition
- VEX Hardware
Connections 25
- VEX Competition → Competition Entry: starts callbacks
- Competition Entry → Mode Orchestration: dispatches modes
- Mode Orchestration → Autonomous Routines: selects routine
- Mode Orchestration → Device Configuration: initializes devices
- Device Configuration → Robot Devices: defines devices
- Device Configuration → VEX Hardware: constructs devices
- Mode Orchestration → Motion Execution: starts odometry
- Autonomous Routines → Motion Commands: requests movement
- Mode Orchestration → Motion Commands: drives chassis
- Motion Commands → Motion Execution: declares commands
- Motion Execution → Chassis Control: controls chassis
- Motion Execution → Turn And Swing: executes turns
- Motion Execution → Point Navigation: executes navigation
- Motion Execution → Curved Navigation: executes curves
- Motion Execution → Odometry Tracking: tracks pose
- Motion Execution → Distance Resets: resets position
- Turn And Swing → PID Controller: updates control
- Point Navigation → PID Controller: updates control
- Curved Navigation → PID Controller: updates control
- Motion Execution → Geometry Utilities: uses calculations
- Motion Execution → VEX Hardware: reads sensors; drives motors
- Autonomous Routines → PID Controller: controls arm
- PID Interface → PID Controller: declares interface
- Odometry Tracking → VEX Hardware: reads encoders and IMU
- Distance Resets → VEX Hardware: reads distance sensors