Grayson Hoang
Grayson Hoang
## Please fill out the following before requesting review on this PR ### Description See #3408 https://github.com/user-attachments/assets/a77848b3-ee4a-4df8-ad6d-0fa36bc76db8 Changes motor fault handling to a per motor control. Allows for faulty motors...
### Description of the task Currently, when our motors fail, the robot will stop, attempt to reset, and if it fails to do that, drive as normal minus the failed...
Assuming #3425 is merged, motor.cpp will have a field called `enabled_motors` that represents the motors that are currently usable (out of the 4 drive motors and the dribbler). The motor...
### Description  The main idea is to encapsulate all of our tactics and tactic-FSMs under a common FSM base class (and tactic class for the tactics). I'm mainly making...
### Description This is built off of PR #3481 I use [Boost::SML logging capabilities ](https://boost-ext.github.io/sml/examples.html#logging) to expose the guard calls and state transitions that our AI undergoes as it is...
### Description Adds a pytest for penalty kick Basically this test just assess whether the ball goes into the goal. I may update it later to pass if the ball...