Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
chassis_config.hpp
Go to the documentation of this file.
1#pragma once
2
6
8
9namespace fang::robot
10{
11// Construct on first use idiom ahhhh
12using namespace units::literals;
13
14//All motors are assume to move counterclockwise when given a positive signal
15static bool kLeftMotorInversion{false};
16static bool kRightMotorInversion{true};
17
18// M3580 Pid Config
20tap::algorithms::SmoothPidConfig M3508PidConfig{.kp = 100, .ki = 0.0f, .kd = 0.0f, .maxICumulative = 0.0f, .maxOutput = M3508maxOutput};
21
22static const chassis::SliceMecanumDrive::Motor::Config kFrontLeftMotorConfig
23{
26 .name = "FL",
27 .inverted = kLeftMotorInversion,
29 .speedPidConfig = M3508PidConfig
30
31};
32
33static const chassis::SliceMecanumDrive::Motor::Config kFrontRightMotorConfig
34{
37 .name = "FR",
38 .inverted = kRightMotorInversion,
40 .speedPidConfig = M3508PidConfig
41};
42
43static const chassis::SliceMecanumDrive::Motor::Config kRearLeftMotorConfig
44{
47 .name = "RL",
48 .inverted = kLeftMotorInversion,
50 .speedPidConfig = M3508PidConfig
51};
52
53static const chassis::SliceMecanumDrive::Motor::Config kRearRightMotorConfig
54{
57 .name = "RR",
58 .inverted = kRightMotorInversion,
60 .speedPidConfig = M3508PidConfig
61};
62
63static const chassis::SliceMecanumDrive::MotorConfigs kMotorConfigs
64{
65 .frontLeft = kFrontLeftMotorConfig,
66 .frontRight = kFrontRightMotorConfig,
67 .rearLeft = kRearLeftMotorConfig,
68 .rearRight = kRearRightMotorConfig,
69};
70
71static const chassis::SliceMecanumDrive::PowerLimiter::Config kChassisPowerLimiterConfig
72{
74 .energyBufferLimitThreshold = 5_J,
75 .energyBufferCritThreshold = 30_J
76};
77
78static const chassis::FieldMecanumLogic::Config kFieldMecanumLogicConfig
79{
80 150_mm, //Wheel Radius
81 15_in, //Vertical Wheel Distance
82 13.5_in //Horizontal Wheel Distance
83};
84
85static const chassis::SliceMecanumDrive::Config kChassisConfig
86{
87 .motorConfigs = kMotorConfigs,
88 .powerLimiterConfig = kChassisPowerLimiterConfig,
89 .fieldMecanumConfig = kFieldMecanumLogicConfig
90};
91}
RobotMecanumLogic::Config Config
Definition field_mecanum_logic.hpp:14
QuadCollection< Motor::Config > MotorConfigs
Definition slice_mecanum_drive.hpp:14
static constexpr float GEAR_RATIO_M3508
Definition dji_motor_encoder.hpp:61
static constexpr DjiMotorOutput k_maxOutput
Maximum output that can be sent to the C620 controller.
Definition dji_m3508_old.hpp:89
Definition base_robot.cpp:4
tap::algorithms::SmoothPidConfig M3508PidConfig
Definition chassis_config.hpp:20
trap::motor::DjiMotorOutput M3508maxOutput
Definition chassis_config.hpp:19
@ MOTOR3
Definition dji_motor_ids.hpp:41
@ MOTOR4
Definition dji_motor_ids.hpp:42
@ MOTOR1
Definition dji_motor_ids.hpp:39
@ MOTOR2
Definition dji_motor_ids.hpp:40
int16_t DjiMotorOutput
Definition dji_motor_aliases.hpp:13
MotorConfigs motorConfigs
Definition slice_mecanum_drive.hpp:18
Definition smooth_pid.hpp:36
float kp
Definition smooth_pid.hpp:37
Joules startingEnergyBuffer
Definition power_limiter.hpp:20
Definition dji_m3508_old.hpp:23
tap::motor::MotorId motorId
Definition dji_m3508_old.hpp:24