Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
basic_flywheel.hpp
Go to the documentation of this file.
1#ifndef FANG_ROBOTICS_MCB_CONTROL_TURRET_SYSTEM_BLUEPRINT_FLYWHEEL_SYSTEM_HPP
2#define FANG_ROBOTICS_MCB_CONTROL_TURRET_SYSTEM_BLUEPRINT_FLYWHEEL_SYSTEM_HPP
3#include "driver/drivers.hpp"
4
8
9namespace fang::turret
10{
19 virtual public motor::ISpeedWheel
20 {
21 public:
23 struct Config
24 {
26 };
27
28 BasicFlywheel(std::unique_ptr<Motor> motor, const Config& config);
29
30 virtual ~BasicFlywheel() = default;
31
32 void setTargetRimSpeed(const MetersPerSecond& rimSpeed) override;
33
34 void initialize() override;
35 void update() override;
36 private:
37 RPM RimSpeedToMotorSpeed(const MetersPerSecond& rimSpeed) const;
38 const MetersPerRadians kRadius_; //This is required for the math to smoothly work
39 std::unique_ptr<Motor> motor_;
40
41 MetersPerSecond targetRimSpeed_{};
42 };
43}
44#endif
Definition basic_flywheel.hpp:20
motor::ISpeedMotor Motor
Definition basic_flywheel.hpp:22
void update() override
Definition basic_flywheel.cpp:24
void initialize() override
Definition basic_flywheel.cpp:29
void setTargetRimSpeed(const MetersPerSecond &rimSpeed) override
Definition basic_flywheel.cpp:13
virtual ~BasicFlywheel()=default
Definition pwm_info.hpp:4
rail::motor::ISpeedWheel< MetersPerSecond > ISpeedWheel
Definition ispeed_wheel.hpp:8
rail::motor::ISpeedMotor< RPM > ISpeedMotor
Definition ispeed_motor.hpp:9
Definition activate_booster_command.cpp:5
Definition brushlessutils.cpp:4
Definition basic_flywheel.hpp:24
Meters radius
Definition basic_flywheel.hpp:25
units::velocity::meters_per_second_t MetersPerSecond
Definition units_alias.hpp:27
units::angular_velocity::revolutions_per_minute_t RPM
Definition units_alias.hpp:30
units::length::meter_t Meters
Definition units_alias.hpp:7
units::unit_t< RawMetersPerRadians > MetersPerRadians
Definition units_alias.hpp:57