17 #ifndef GZ_MATH_DIFFDRIVEODOMETRY_HH_
18 #define GZ_MATH_DIFFDRIVEODOMETRY_HH_
22 #include <gz/math/Export.hh>
23 #include <gz/math/config.hh>
24 #include <gz/utils/ImplPtr.hh>
32 inline namespace GZ_MATH_VERSION_NAMESPACE {
84 public:
void Init(
const clock::time_point &_time);
88 public:
bool Initialized()
const;
96 public:
bool Update(
const Angle &_leftPos,
const Angle &_rightPos,
97 const clock::time_point &_time);
101 public:
const Angle &Heading()
const;
105 public:
double X()
const;
109 public:
double Y()
const;
113 public:
double LinearVelocity()
const;
117 public:
const Angle &AngularVelocity()
const;
123 public:
void SetWheelParams(
double _wheelSeparation,
124 double _leftWheelRadius,
125 double _rightWheelRadius);
129 public:
void SetVelocityRollingWindowSize(
size_t _size);
132 GZ_UTILS_IMPL_PTR(dataPtr)
136 #endif // GZ_MATH_DIFFDRIVEODOMETRY_HH_