Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
chassis_config.hpp
Go to the documentation of this file.
1#ifndef FANG_ROBOTICS_MCB_CHASSIS_CONFIG_PIERCE_HPP
2#define FANG_ROBOTICS_MCB_CHASSIS_CONFIG_PIERCE_HPP
3
6
7namespace fang::robot
8{
9 using namespace units::literals;
10
11 //pwm initialization
12 static const auto kPwmTimer{tap::gpio::Pwm::TIMER1};
13 static const Hertz kPwmFrequency{400};
14 static const Volts kControllerInputVoltage{24};
15
16 //All motors are assume to move counterclockwise when given a positive signal
17 static bool kLeftMotorInversion{false};
18 static bool kRightMotorInversion{true};
19
20 static double kUltraMk2GearRatio{14.0};
21
22 static double kMotorRampSpeed{750}; //RepeatUltraMk2 RPM per Second
23
24
25 static const chassis::PierceMecanumDrive::Motor::Config kFrontLeftMotorConfig
26 {
27 .controllerInputVoltage = kControllerInputVoltage,
28 .pwmData = {tap::gpio::Pwm::C1, kPwmFrequency},
29 .inverted = kLeftMotorInversion,
30 .gearRatio = kUltraMk2GearRatio,
31 .rampSpeed = kMotorRampSpeed
32 };
33
34 static const chassis::PierceMecanumDrive::Motor::Config kFrontRightMotorConfig
35 {
36 .controllerInputVoltage = kControllerInputVoltage,
37 .pwmData = {tap::gpio::Pwm::C2, kPwmFrequency},
38 .inverted = kRightMotorInversion,
39 .gearRatio = kUltraMk2GearRatio,
40 .rampSpeed = kMotorRampSpeed
41 };
42
43 static const chassis::PierceMecanumDrive::Motor::Config kRearLeftMotorConfig
44 {
45 .controllerInputVoltage = kControllerInputVoltage,
46 .pwmData = {tap::gpio::Pwm::C3, kPwmFrequency},
47 .inverted = kLeftMotorInversion,
48 .gearRatio = kUltraMk2GearRatio,
49 .rampSpeed = kMotorRampSpeed
50 };
51
52 static const chassis::PierceMecanumDrive::Motor::Config kRearRightMotorConfig
53 {
54 .controllerInputVoltage = kControllerInputVoltage,
55 .pwmData = {tap::gpio::Pwm::C4, kPwmFrequency},
56 .inverted = kRightMotorInversion,
57 .gearRatio = kUltraMk2GearRatio,
58 .rampSpeed = kMotorRampSpeed
59 };
60
61 static const chassis::PierceMecanumDrive::MotorConfigs kMotorConfigs
62 {
63 .frontLeft = kFrontLeftMotorConfig,
64 .frontRight = kFrontRightMotorConfig,
65 .rearLeft = kRearLeftMotorConfig,
66 .rearRight = kRearRightMotorConfig,
67 };
68
69 static const chassis::PierceMecanumDrive::PowerLimiter::Config kChassisPowerLimiterConfig
70 {
72 .energyBufferLimitThreshold = 5_J,
73 .energyBufferCritThreshold = 30_J
74 };
75
76 static const chassis::FieldMecanumLogic::Config kFieldMecanumLogicConfig
77 {
78 150_mm, //Wheel Radius
79 15_in, //Vertical Wheel Distance
80 13.5_in //Horizontal Wheel Distance
81 };
82
83 static const chassis::PierceMecanumDrive::Config kChassisConfig
84 {
85 .motorConfigs = kMotorConfigs,
86 .powerLimiterConfig = kChassisPowerLimiterConfig,
87 .fieldMecanumConfig = kFieldMecanumLogicConfig,
88 .chassisPwmFrequency = kPwmFrequency,
89 .pwmTimer = kPwmTimer,
90 };
91
92}
93#endif
RobotMecanumLogic::Config Config
Definition field_mecanum_logic.hpp:14
QuadCollection< Motor::Config > MotorConfigs
Definition pierce_mecanum_drive.hpp:13
@ TIMER1
Definition pwm.hpp:73
@ C2
Definition pwm.hpp:61
@ C3
Definition pwm.hpp:62
@ C1
Definition pwm.hpp:60
@ C4
Definition pwm.hpp:63
Definition base_robot.cpp:4
MotorConfigs motorConfigs
Definition pierce_mecanum_drive.hpp:17
Volts controllerInputVoltage
Definition repeat_ultra_mk2.hpp:47
Joules startingEnergyBuffer
Definition power_limiter.hpp:20
units::voltage::volt_t Volts
Definition units_alias.hpp:41
units::frequency::hertz_t Hertz
Definition units_alias.hpp:24