How driftless-vexu/driftless_override_software works
Driftless Override is VEXU robot-control software. The principal workflow configures a match, initializes the selected robot and control components, then dispatches either autonomous behavior or operator control. Its domain stages include configuration and alliance selection, autonomous execution, operator input, robot subsystems, and motion/control algorithms. The tree also shows trajectory-following, odometry, drive-train, process, and menu capabilities. Several of these are represented by their enclosing source directories because their implementation files were not excerpted; links are limited to relationships visible in excerpts or the SOURCE INDEX.
Main entry points: MatchController.cpp Match controller · ControlSystem.cpp Control system · OpControlManager.cpp Operator manager · Robot.cpp Robot subsystem router
Components 22
Match orchestration
- PROS entry points
Driftless_Override_PROS/src/main.cpp - Match factory
Driftless_Override_PROS/src/driftless/MatchControllerFactory.cpp - Match controller
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match menu
Driftless_Override_PROS/src/driftless/menu - Autonomous manager
Driftless_Override_PROS/src/driftless/AutonManager.cpp - Autonomous routines
Driftless_Override_PROS/src/driftless/auton - Alliance selection
Driftless_Override_PROS/src/driftless/alliance - Operator manager
Driftless_Override_PROS/src/driftless/OpControlManager.cpp - Robot profiles
Driftless_Override_PROS/src/driftless/profiles
Robot runtime
- Robot subsystem router
Driftless_Override_PROS/src/driftless/robot/Robot.cpp - Drive trains
Driftless_Override_PROS/src/driftless/robot/subsystems - Odometry
Driftless_Override_PROS/src/driftless/robot/subsystems/odometry/InertialPositionTracker.cpp - Process system
Driftless_Override_PROS/src/driftless/Processes/ProcessSystem.cpp
Motion control
- Control system
Driftless_Override_PROS/src/driftless/control/ControlSystem.cpp - Trajectory planning
Driftless_Override_PROS/src/driftless/control/trajectory - Path following
Driftless_Override_PROS/src/driftless/control/path/PIDPathFollower.cpp - Pose control
Driftless_Override_PROS/src/driftless/control/motion/PIDHolonomicGoToPose.cpp
PROS integration
- Controller interface
Driftless_Override_PROS/include/driftless/io/IController.hpp - PROS controller adapter
Driftless_Override_PROS/src/driftless/pros_adapters/ProsController.cpp - Motor voltage control
Driftless_Override_PROS/src/driftless/io/motor_voltage_control/PartialFeedForwardVoltageController.cpp
Other components
- Competition operator
- PROS runtime
Connections 21
- PROS entry points → Match factory: includes factory
- Match factory → Match controller: creates controller
Driftless_Override_PROS/src/driftless/MatchControllerFactory.cpp - Match controller → Match menu: displays and reads
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match controller → Autonomous manager: configures and runs
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match controller → Operator manager: configures and runs
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match controller → Control system: builds and runs
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match controller → Robot subsystem router: builds and runs
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match controller → Process system: builds and runs
Driftless_Override_PROS/src/driftless/MatchController.cpp - Match controller → Alliance selection: sets alliance
Driftless_Override_PROS/src/driftless/MatchController.cpp - Operator manager → Robot profiles: sets profile
- Operator manager → Controller interface: reads controls
- PROS controller adapter → Controller interface: implements interface
- Autonomous manager → Autonomous routines: selects routine
- Control system → Trajectory planning: uses planning
- Control system → Path following: runs follower
- Control system → Pose control: runs pose control
- Robot subsystem router → Drive trains: routes commands
- Robot subsystem router → Odometry: routes commands
- Drive trains → Motor voltage control: sets motor voltage
- PROS controller adapter → PROS runtime: uses runtime API
- Competition operator → PROS entry points: starts competition