4#include <units/length.h>
5#include <units/force.h>
6#include <units/torque.h>
7#include <units/moment_of_inertia.h>
8#include <frc/geometry/Translation2d.h>
9#include <frc/kinematics/SwerveDriveKinematics.h>
10#include <frc/kinematics/DifferentialDriveKinematics.h>
11#include <frc/EigenCore.h>
13#include "pathplanner/lib/config/ModuleConfig.h"
14#include "pathplanner/lib/trajectory/SwerveModuleTrajectoryState.h"
16namespace pathplanner {
19 units::kilogram_t mass;
20 units::kilogram_square_meter_t MOI;
23 std::vector<frc::Translation2d> moduleLocations;
27 std::vector<units::meter_t> modulePivotDistance;
28 units::newton_t wheelFrictionForce;
29 units::newton_meter_t maxTorqueFriction;
33 RobotConfig(units::kilogram_t mass, units::kilogram_square_meter_t MOI,
35 std::vector<frc::Translation2d> moduleOffsets);
37 RobotConfig(units::kilogram_t mass, units::kilogram_square_meter_t MOI,
50 frc::ChassisSpeeds speeds)
const;
60 std::vector<SwerveModuleTrajectoryState> states)
const;
70 std::vector<frc::SwerveModuleState> states)
const;
80 std::vector<frc::SwerveModuleState> moduleStates,
81 units::meters_per_second_t maxSpeed)
const;
83 std::vector<frc::Translation2d> chassisForcesToWheelForceVectors(
84 frc::ChassisSpeeds chassisForces)
const;
87 frc::SwerveDriveKinematics<4> swerveKinematics;
88 frc::DifferentialDriveKinematics diffKinematics;
89 frc::Matrixd<4 * 2, 3> swerveForceKinematics;
90 frc::Matrixd<2 * 2, 3> diffForceKinematics;
92 static frc::DCMotor getMotorFromSettingsString(std::string motorStr,
Definition: ModuleConfig.h:15
Definition: RobotConfig.h:17
std::vector< frc::SwerveModuleState > desaturateWheelSpeeds(std::vector< frc::SwerveModuleState > moduleStates, units::meters_per_second_t maxSpeed) const
Definition: RobotConfig.cpp:176
frc::ChassisSpeeds toChassisSpeeds(std::vector< SwerveModuleTrajectoryState > states) const
Definition: RobotConfig.cpp:147
std::vector< frc::SwerveModuleState > toSwerveModuleStates(frc::ChassisSpeeds speeds) const
Definition: RobotConfig.cpp:133