.. _program_listing_file_src_LouLib_Odometry_OdomRotationSensor.cpp: Program Listing for File OdomRotationSensor.cpp =============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/LouLib/Odometry/OdomRotationSensor.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "OdomRotationSensor.hpp" LouLib::Odometry::OdomRotationSensor::OdomRotationSensor(int port, bool reversed, const LouLib::Units::Length &wheelDiam) : rotationSensor(port, reversed), wheelDiam(wheelDiam){ gearRatio = 1; rotationSensor.reset_position(); } void LouLib::Odometry::OdomRotationSensor::setGearRatio(int wheelSide, int sensorSide) { gearRatio = (double)wheelSide/(double)sensorSide; } LouLib::Units::Length LouLib::Odometry::OdomRotationSensor::getPosition() { Units::Angle drivingRotation = rotationSensor.get_position() * Units::CENTIDEGREE; Units::Angle drivenRotation = drivingRotation / gearRatio; return drivenRotation.to(Units::RADIAN) * (wheelDiam/2.0); }