Program Listing for File ThreeSensorIMUOdom.hpp
↰ Return to documentation for file (src/LouLib/Odometry/ThreeSensorIMUOdom.hpp
)
#ifndef LOULIB_THREESENSORIMUODOM_HPP
#define LOULIB_THREESENSORIMUODOM_HPP
#include "AbstractOdometry.hpp"
#include "OdomMotorSensor.hpp"
#include "OdomRotationSensor.hpp"
#include "OdomIMUSensor.hpp"
namespace LouLib {
namespace Odometry {
class ThreeSensorIMUOdom : public AbstractOdometry{
private:
AbstractOdomSensor &leftSensor;
AbstractOdomSensor &rightSensor;
Units::Length trackWidth;
AbstractOdomSensor &backSensor;
Units::Length backDist;
OdomIMUSensor &imuSensor;
Units::Length lastLeft = 0_in;
Units::Length lastRight = 0_in;
Units::Length lastBack = 0_in;
Units::Angle lastTheta = 0_deg;
public:
ThreeSensorIMUOdom(AbstractOdomSensor &leftSensor, AbstractOdomSensor &rightSensor,
const Units::Length &trackWidth, AbstractOdomSensor &backSensor,
const Units::Length &backDist, OdomIMUSensor &imuSensor);
void setPose(Math::Pose2D newPose) override;
void update() override;
};
} // LouLib
} // Odometry
#endif //LOULIB_THREESENSORIMUODOM_HPP