6#include "units/acceleration.h"
7#include "units/angle.h"
8#include "units/angular_velocity.h"
10#include "units/length.h"
11#include "units/time.h"
12#include "units/velocity.h"
19 units::compound_unit<units::length::inches, units::inverse<units::time::second>>)
28 namespace swerve_drive {
35 constexpr units::degree_t
ToAngle(
const double sensorunit) {
45 constexpr units::inch_t
ToDistance(
const double sensorunit) {
52 constexpr units::inches_per_second_t
ToVelocity(
const double sensorVelocity) {
53 return ToDistance(sensorVelocity) / units::decisecond_t{1};
61 constexpr double sensorConversionFactor =
63 constexpr double ToSensorUnit(
const units::degree_t degrees) {
64 return sensorConversionFactor * degrees.to<
double>();
66 constexpr units::degree_t ToAngle(
const double sensorunit) {
67 return units::make_unit<units::degree_t>(sensorunit / sensorConversionFactor);
71 constexpr double sensorConversionFactor =
78 360.0 / (2 * M_PI * 11.5);
79 constexpr double ToSensorUnit(
const units::degree_t degrees) {
81 sensorConversionFactor;
83 constexpr units::degree_t ToAngle(
const double sensorunit) {
89 constexpr double sensorConversionFactor =
91 constexpr double ToSensorUnit(
const units::revolutions_per_minute_t rpm) {
92 return rpm.to<
double>() / sensorConversionFactor;
94 constexpr units::revolutions_per_minute_t ToVelocity(
const double sensorunit) {
95 return units::make_unit<units::revolutions_per_minute_t>(sensorunit * sensorConversionFactor);
98 namespace climb_arms {
107 constexpr double ToSensorUnit(
const units::millimeter_t extension) {
112 constexpr double ToSensorVelocity(
const units::meters_per_second_t velocity) {
113 return ToSensorUnit(velocity * units::decisecond_t{1});
116 constexpr units::meters_per_second_t ToVelocity(
double sensorVelocity) {
117 return units::meters_per_second_t{
ToExtension(sensorVelocity) / units::decisecond_t{1}};
120 constexpr double ToSensorAccel(
const units::meters_per_second_squared_t accel) {
121 return ToSensorVelocity(accel * 1_s);
124 constexpr units::meters_per_second_squared_t
ToAccel(
double sensorAccel) {
125 return ToVelocity(sensorAccel) / 1_s;
129 namespace climb_hooks {
130 constexpr double sensorToMotorRev = 1.0 / 2048;
131 constexpr double gearboxReduction = 1.0 / 12;
134 constexpr double fudgeFactor = 1.0;
135 constexpr units::inch_t ToExtension(
const double sensorUnit) {
136 return units::make_unit<units::inch_t>(sensorUnit * sensorToMotorRev * gearboxReduction *
140 constexpr double ToSensorUnit(
const units::inch_t extension) {
145 constexpr double ToSensorVelocity(
const units::meters_per_second_t velocity) {
146 return ToSensorUnit(velocity * units::decisecond_t{1});
149 constexpr units::meters_per_second_t ToVelocity(
double sensorVelocity) {
150 return units::meters_per_second_t{ToExtension(sensorVelocity) / units::decisecond_t{1}};
153 constexpr double ToSensorAccel(
const units::meters_per_second_squared_t accel) {
154 return ToSensorVelocity(accel * 1_s);
157 constexpr units::meters_per_second_squared_t ToAccel(
double sensorAccel) {
158 return ToVelocity(sensorAccel) / 1_s;
constexpr units::inch_t ToExtension(const double sensorUnit)
Definition: sensor_conversions.h:103
constexpr double fudgeFactor
Definition: sensor_conversions.h:102
constexpr double sensorToMotorRev
Definition: sensor_conversions.h:99
constexpr double extensionMillimetersPerRevolution
Definition: sensor_conversions.h:101
constexpr double ToSensorAccel(const units::meters_per_second_squared_t accel)
Definition: sensor_conversions.h:120
constexpr units::meters_per_second_squared_t ToAccel(double sensorAccel)
Definition: sensor_conversions.h:124
constexpr double gearboxReduction
Definition: sensor_conversions.h:100
constexpr double driveSprocketTeethPerRevolution
Definition: sensor_conversions.h:132
constexpr double extensionInchesPerDriveSprocketTooth
Definition: sensor_conversions.h:133
constexpr double sensorConversionInAngle
multiply to convert hood extension distance to hood angle
Definition: sensor_conversions.h:77
constexpr double sensorConversionTeethIn
multiply to convert hood sproket teeth to hood extension distance
Definition: sensor_conversions.h:75
constexpr double sensorConversionDegTeeth
multiply to convert motor output shaft degrees to hood sproket teeth
Definition: sensor_conversions.h:73
constexpr auto wheelCircumference
Definition: sensor_conversions.h:41
constexpr double ToSensorVelocity(const units::inches_per_second_t velocity)
Definition: sensor_conversions.h:55
constexpr double sensorUnitsPerMotorRevolution
Definition: sensor_conversions.h:42
constexpr auto wheelDiameter
Definition: sensor_conversions.h:40
constexpr double ToSensorPosition(const units::inch_t distance)
Definition: sensor_conversions.h:48
constexpr units::inch_t ToDistance(const double sensorunit)
Definition: sensor_conversions.h:45
constexpr double driveGearRatio
Definition: sensor_conversions.h:43
constexpr units::inches_per_second_t ToVelocity(const double sensorVelocity)
Definition: sensor_conversions.h:52
constexpr double ToSensorUnit(const units::degree_t degrees)
Definition: sensor_conversions.h:32
constexpr double sensorConversionFactor
multiply to convert raw sensor units to module degrees
Definition: sensor_conversions.h:30
constexpr units::degree_t ToAngle(const double sensorunit)
Definition: sensor_conversions.h:35
Definition: sensor_conversions.h:27
Definition: sensor_conversions.h:14
ips2
Definition: sensor_conversions.h:23
inches_per_second_squared
Definition: sensor_conversions.h:21
UNIT_ADD(velocity, inches_per_second, inches_per_second, ips, units::compound_unit< units::length::inches, units::inverse< units::time::second > >) UNIT_ADD(acceleration