Open spacey-sooty opened 2 months ago
From how my team (2609) uses RobotContainer and TimedRobot, I think:
startCompetition()
), although these could be moved into IterativeRobotBase
.robotPeriodic()
and teleopPeriodic()
could be marked final to force teams to use commands (and use addPeriodic()
for any functions that should run repeatedly)RobotContainer
has getAutonomousCommand()
and configureBindings()
, which could both be eliminated as they are called once and never used again: getAutonomousCommand()
is called once in autonomousInit()
, and configureBindings()
is called in the constructor. If teams had a long list of bindings to configure or a long method of choosing their autonomous mode, they could create their own function (no need to require teams to use one).Since RobotContainer
's functions aren't required, RobotContainer
's other main function (holding subsystems) could be moved to CommandRobot
.
CommandRobot
should definitely hold subsystems.
There has been some discussion about how a CommandRobot might be implemented and why. It seems to be a generally positive change to move away from RobotContainer and TimedRobot to a single unified class with clarity about its purpose. From the discussions that I've seen there are still some questions to be answered: