31 std::shared_ptr<ChassisModel> imodel,
32 std::unique_ptr<AsyncPosIntegratedController> ileftController,
33 std::unique_ptr<AsyncPosIntegratedController> irightController,
@ green
18:1, 200 RPM, Green gear set
std::shared_ptr< ChassisModel > chassisModel
AbstractMotor::GearsetRatioPair gearsetRatioPair
void waitUntilSettled() override
Delays until the currently executing movement completes.
void setTurnsMirrored(bool ishouldMirror) override
Sets whether turns should be mirrored.
void turnAngle(QAngle idegTarget) override
Turns the robot clockwise in place (using closed-loop control).
void turnRaw(double idegTarget) override
Turns the robot clockwise in place (using closed-loop control).
AbstractMotor::GearsetRatioPair getGearsetRatioPair() const override
Get the GearsetRatioPair.
void moveRaw(double itarget) override
Drives the robot straight for a distance (using closed-loop control).
std::shared_ptr< ChassisModel > getModel() override
void moveRawAsync(double itarget) override
Sets the target distance for the robot to drive straight (using closed-loop control).
ChassisScales getChassisScales() const override
Get the ChassisScales.
ChassisModel & model() override
void turnRawAsync(double idegTarget) override
Sets the target angle for the robot to turn clockwise in place (using closed-loop control).
void turnAngleAsync(QAngle idegTarget) override
Sets the target angle for the robot to turn clockwise in place (using closed-loop control).
std::unique_ptr< AsyncPosIntegratedController > rightController
std::unique_ptr< AsyncPosIntegratedController > leftController
std::shared_ptr< Logger > logger
void setMaxVelocity(double imaxVelocity) override
Sets a new maximum velocity in RPM [0-600].
double getMaxVelocity() const override
bool isSettled() override
Checks whether the internal controllers are currently settled.
void moveDistance(QLength itarget) override
Drives the robot straight for a distance (using closed-loop control).
void stop() override
Interrupts the current movement to stop the robot.
ChassisControllerIntegrated(const TimeUtil &itimeUtil, std::shared_ptr< ChassisModel > imodel, std::unique_ptr< AsyncPosIntegratedController > ileftController, std::unique_ptr< AsyncPosIntegratedController > irightController, const AbstractMotor::GearsetRatioPair &igearset=AbstractMotor::gearset::green, const ChassisScales &iscales=ChassisScales({1, 1}, imev5GreenTPR), std::shared_ptr< Logger > ilogger=Logger::getDefaultLogger())
ChassisController using the V5 motor's integrated control.
void moveDistanceAsync(QLength itarget) override
Sets the target distance for the robot to drive straight (using closed-loop control).
A version of the ReadOnlyChassisModel that also supports write methods, such as setting motor speed.
static std::shared_ptr< Logger > getDefaultLogger()
Utility class for holding an AbstractTimer, AbstractRate, and SettledUtil together in one class since...
static constexpr std::int32_t imev5GreenTPR
The ticks per rotation of the V5 motor with a green gearset.
A simple structure representing the full ratio between motor and wheel.