17 #ifndef IGNITION_MATH_DIFFDRIVEODOMETRY_HH_ 18 #define IGNITION_MATH_DIFFDRIVEODOMETRY_HH_ 23 #include <ignition/math/Export.hh> 24 #include <ignition/math/config.hh> 34 inline namespace IGNITION_MATH_VERSION_NAMESPACE {
37 class DiffDriveOdometryPrivate;
42 class IGNITION_MATH_VISIBLE DiffDriveOdometry
86 public:
explicit DiffDriveOdometry(
size_t _windowSize = 10);
89 public: ~DiffDriveOdometry();
93 public:
void Init(
const clock::time_point &_time);
97 public:
bool Initialized()
const;
105 public:
bool Update(
const Angle &_leftPos,
const Angle &_rightPos,
106 const clock::time_point &_time);
110 public:
const Angle &Heading()
const;
114 public:
double X()
const;
118 public:
double Y()
const;
122 public:
double LinearVelocity()
const;
126 public:
const Angle &AngularVelocity()
const;
132 public:
void SetWheelParams(
double _wheelSeparation,
133 double _leftWheelRadius,
double _rightWheelRadius);
137 public:
void SetVelocityRollingWindowSize(
size_t _size);
142 #pragma warning(push) 143 #pragma warning(disable: 4251) The Angle class is used to simplify and clarify the use of radians and degrees measurements. A default constructed Angle instance has a value of zero radians/degrees.
Definition: Angle.hh:61