During SVE, we browned out a few times because the robot was instructed to take many actions at once near to the end of a match. We don't want it to be possible for the drivers to brown out the robot during a match, so we need to implement some method for preventing brownouts, while avoiding sacrificing too much performance.
This task could be completed by either modifying the constant per-subsystem current limits or implement a system that dynamically changes motion profile constraints. Dynamically changing constraints is preferred because it lets the robot move faster when only running a few subsystems, and slow down the low priority systems when many are running.
During SVE, we browned out a few times because the robot was instructed to take many actions at once near to the end of a match. We don't want it to be possible for the drivers to brown out the robot during a match, so we need to implement some method for preventing brownouts, while avoiding sacrificing too much performance.
This task could be completed by either modifying the constant per-subsystem current limits or implement a system that dynamically changes motion profile constraints. Dynamically changing constraints is preferred because it lets the robot move faster when only running a few subsystems, and slow down the low priority systems when many are running.