Skip to content

Conversation

@tbowers7
Copy link
Collaborator

This PR brings improvements to Az-RBSI's logging and tuning capabilities.

Subsystem periodic logging has been adjusted by adding a RBSI wrapper to include timing and logging of each subsystem's periodic loop. This necessitates changing the periodic loop declaration in any child class that extends RBSISubsystem from:

  @Override
  public void periodic() {

to

  /** Periodic function -- inherits timing logic from RBSISubsystem */
  @Override
  protected void rbsiPeriodic() {

For tuning, additional drivetrain variables have been moved into Constants.DrivebaseConstants for easier tuning. Conformal changes to other modules have been made to point to the new location of these variables.

Implement rbsiPeriodic() in RBSISubsystem that child classes must override
for periodic input updating and other tasks.

The upshot of this is that subsystems would need to have a `rbsiPeriodic()`
method for the input updating and other tasks, rather than a `periodic()`.
The autologging of periodic timing is a major 👍!
Some characterizable constants like slip current and wheel radius have
been moved to the ``DrivetrainConstants`` section of the constants file
to make it easier to modify them during drivetrain tuning.  Conformal
changes to allow downstream modules to properly find these values.
@tbowers7 tbowers7 force-pushed the rbsi_periodic branch 4 times, most recently from 685f611 to 7dc51cd Compare January 25, 2026 17:36
Instead of different commands having their own ProfiledPIDController for
robot rotation, define it in `Drive.java` and use it everywhere else.
This works since the drivebase can only be doing one command at a time,
so there is no need to have multiple controllers running around.

Also, streamline where constants are defined and used to minimize
repeated definitions and contain all drivebase-related constants in the
``DrivebaseConstants`` class.
Instead of using arbitrary maximum angular velocity and acceleration,
use the combination of the specified maximum linear limits and drivebase
radius to compute the angular limits.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants