PathPlannerLib
Loading...
Searching...
No Matches
RobotConfig.h
1#pragma once
2
3#include <units/mass.h>
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>
12#include <vector>
13#include "pathplanner/lib/config/ModuleConfig.h"
14#include "pathplanner/lib/trajectory/SwerveModuleTrajectoryState.h"
15
16namespace pathplanner {
18public:
19 units::kilogram_t mass;
20 units::kilogram_square_meter_t MOI;
21 ModuleConfig moduleConfig;
22
23 std::vector<frc::Translation2d> moduleLocations;
24 bool isHolonomic;
25
26 size_t numModules;
27 std::vector<units::meter_t> modulePivotDistance;
28 units::newton_t wheelFrictionForce;
29 units::newton_meter_t maxTorqueFriction;
30
32
33 RobotConfig(units::kilogram_t mass, units::kilogram_square_meter_t MOI,
34 ModuleConfig moduleConfig,
35 std::vector<frc::Translation2d> moduleOffsets);
36
37 RobotConfig(units::kilogram_t mass, units::kilogram_square_meter_t MOI,
38 ModuleConfig moduleConfig, units::meter_t trackwidth);
39
40 static RobotConfig fromGUISettings();
41
49 std::vector<frc::SwerveModuleState> toSwerveModuleStates(
50 frc::ChassisSpeeds speeds) const;
51
59 frc::ChassisSpeeds toChassisSpeeds(
60 std::vector<SwerveModuleTrajectoryState> states) const;
61
69 frc::ChassisSpeeds toChassisSpeeds(
70 std::vector<frc::SwerveModuleState> states) const;
71
79 std::vector<frc::SwerveModuleState> desaturateWheelSpeeds(
80 std::vector<frc::SwerveModuleState> moduleStates,
81 units::meters_per_second_t maxSpeed) const;
82
83 std::vector<frc::Translation2d> chassisForcesToWheelForceVectors(
84 frc::ChassisSpeeds chassisForces) const;
85
86private:
87 frc::SwerveDriveKinematics<4> swerveKinematics;
88 frc::DifferentialDriveKinematics diffKinematics;
89 frc::Matrixd<4 * 2, 3> swerveForceKinematics;
90 frc::Matrixd<2 * 2, 3> diffForceKinematics;
91
92 static frc::DCMotor getMotorFromSettingsString(std::string motorStr,
93 int numMotors);
94};
95}
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