24#ifndef TAPROOT_ODOMETRY_2D_TRACKER_HPP_
25#define TAPROOT_ODOMETRY_2D_TRACKER_HPP_
27#include "modm/math/geometry/location_2d.hpp"
34class ChassisWorldYawObserverInterface;
35class ChassisDisplacementObserverInterface;
59 : chassisYawObserver(chassisYawObserver),
60 chassisDisplacementObserver(chassisDisplacementObserver)
78 inline float getYaw() const final {
return chassisYaw; }
88 modm::Location2D<float> location;
90 modm::Vector2f velocity;
94 modm::Vector<float, 3> prevChassisAbsoluteDisplacement;
96 uint32_t lastComputedOdometryTime = 0;
98 bool displacementPrimed =
false;
Definition chassis_displacement_observer_interface.hpp:65
Definition chassis_world_yaw_observer_interface.hpp:43
Interface for retrieving the position of a robot chassis in 2 dimensions.
Definition odometry_2d_interface.hpp:44
Definition odometry_2d_tracker.hpp:43
float getYaw() const final
Definition odometry_2d_tracker.hpp:78
Odometry2DTracker(ChassisWorldYawObserverInterface *chassisYawObserver, ChassisDisplacementObserverInterface *chassisDisplacementObserver)
Definition odometry_2d_tracker.hpp:56
void overrideOdometryPosition(const float positionX, const float positionY)
Definition odometry_2d_tracker.cpp:84
uint32_t getLastComputedOdometryTime() const final
Definition odometry_2d_tracker.hpp:80
modm::Location2D< float > getCurrentLocation2D() const final
Definition odometry_2d_tracker.hpp:74
modm::Vector2f getCurrentVelocity2D() const final
Definition odometry_2d_tracker.hpp:76
void update()
Definition odometry_2d_tracker.cpp:38
Definition chassis_displacement_observer_interface.hpp:30