Tank Drive
This is the standard TankDrive class for modern BunyipsLib robots. This is a component for the RoadRunner Tank Drive, integrating RoadRunner and BunyipsLib to be used as a BunyipsSubsystem. As such, this allows for integrated trajectory and pose management, while using features from BunyipsLib including Task and subsystem-based allocations.
Note: If you'd like to use deadwheel configurations, you can set them yourself by instantiating your own localizer and setting it via setLocalizer. Note pose estimate data is discarded when switching a localizer (see the updatePoseFromMemory method).
This class has an integrated safety watchdog to ensure that the drive stops and locks if no updates are being supplied. This is to prevent a runaway robot in case of a software bug or other issues, as the methods attached to this class, such as setSpeedUsingController()
and setWeightedDrivePower()
will propagate instantly on the drive motors. This is the only type of subsystem that has this feature as it wraps around a RoadRunner drive. Other subsystems follow this safety by default as their methods only propagate hardware when the subsystem is updated. This timeout can be changed as it is a constant in RoadRunner.
Author
Lucas Bubner, 2023
Since
1.0.0-pre
Constructors
Functions
Inherited functions
NullSafety.assertComponentArgs()
on the given parameters, usually on the motors/hardware/critical objects passed into the constructor.