Program Listing for File OdomMotorSensor.cpp

Return to documentation for file (src/LouLib/Odometry/OdomMotorSensor.cpp)

#include "OdomMotorSensor.hpp"

namespace LouLib {
    namespace Odometry {

        OdomMotorSensor::OdomMotorSensor(int motorPort, pros::motor_gearset_e_t gearset, bool motorReversed,
                        const Units::Length &wheelDiam) : motor(motorPort, gearset, motorReversed,
                                pros::E_MOTOR_ENCODER_DEGREES), wheelDiam(wheelDiam){
            gearRatio = 1;
        }

        void OdomMotorSensor::setGearRatio(int wheelSide, int sensorSide) {
            gearRatio = (double)wheelSide/(double)sensorSide;
        }

        Units::Length OdomMotorSensor::getPosition() {
            Units::Angle drivingRotation = motor.get_position() * Units::DEGREE;
            Units::Angle drivenRotation = drivingRotation / gearRatio;
            return drivenRotation.to(Units::RADIAN) * (wheelDiam/2.0);
        }
    } // LouLib
} // Odometry