|
TinyRobotics
|
Odometry model for Ackermann, differential drive, and boat kinematics. More...
#include <OdometryModel2D.h>


Public Member Functions | |
| OdometryModel2D (Distance wheelBase) | |
| void | setSpeedSource (ISpeedSource &speedSource) override |
| Set the speed source (e.g., encoder, estimator) for this model. | |
| void | setSteeringAngle (Angle angle) |
| void | setSpeed (Speed speed) |
| virtual void | updateSpeed (uint32_t deltaTimeMs) |
| Update the speed estimate based on elapsed time. | |
| float | computeDeltaTheta (uint16_t deltaTimeMs) const override |
| Compute heading change (deltaTheta) for Ackermann kinematics. | |
| void | computeDeltaXY (float theta, uint32_t deltaTimeMs, float &deltaX, float &deltaY) const override |
| Compute position change (deltaX, deltaY) for odometry kinematics. | |
| bool | onMessage (const Message< float > &msg) |
| Handle an incoming message (pure virtual). | |
| void | setCallback (void(*callback)(void *), void *userData) |
| Speed | getSpeed () const override |
| Get the current speed of the vehicle. | |
| Angle | getSteeringAngle () const override |
| Get the current steering angle of the vehicle. | |
Public Member Functions inherited from IOdometryModel2D | |
| virtual | ~IOdometryModel2D ()=default |
| Virtual destructor for interface. | |
| virtual Speed | getSpeed () const =0 |
| Get the current speed of the vehicle. | |
| virtual Angle | getSteeringAngle () const =0 |
| Get the current steering angle of the vehicle. | |
| virtual void | updateSpeed (uint32_t deltaTimeMs)=0 |
| Update the speed estimate based on elapsed time. | |
| virtual void | setSpeedSource (ISpeedSource &speedSource)=0 |
| Set the speed source (e.g., encoder, estimator) for this model. | |
| virtual void | registerCallback (void(*callback)(void *), void *userData)=0 |
| Register a callback to be invoked on relevant events (e.g., input change, update). | |
| virtual float | computeDeltaTheta (uint16_t deltaTimeMs) const =0 |
| Compute heading change (deltaTheta) for odometry kinematics. | |
| virtual void | computeDeltaXY (float theta, uint32_t deltaTimeMs, float &deltaX, float &deltaY) const =0 |
| Compute position change (deltaX, deltaY) for odometry kinematics. | |
Public Member Functions inherited from MessageHandler | |
| virtual bool | onMessage (const Message< float > &msg)=0 |
| Handle an incoming message (pure virtual). | |
| virtual bool | onMessage (const Message< Coordinate< float > > &msg) |
| virtual bool | onMessage (const Message< GPSCoordinate > &msg) |
| virtual bool | onMessage (const Message< MotionState3D > &msg) |
Odometry model for Ackermann, differential drive, and boat kinematics.
This model computes the change in heading (theta) for:
For boats, set wheelBase to the distance from the center of mass to the rudder, and provide the rudder angle as steeringAngle.
|
inlineoverridevirtual |
Compute heading change (deltaTheta) for Ackermann kinematics.
| speed | Speed of the vehicle (meters/second) |
| steeringAngle | Steering angle (radians) |
| deltaTimeMs | Time interval (milliseconds) |
Implements IOdometryModel2D.
|
inlineoverridevirtual |
Compute position change (deltaX, deltaY) for odometry kinematics.
| speed | Speed of the vehicle (meters/second) | |
| theta | Heading (radians) | |
| deltaTimeMs | Time interval (milliseconds) | |
| [out] | deltaX | Change in X position (meters) |
| [out] | deltaY | Change in Y position (meters) |
Implements IOdometryModel2D.
|
inlineoverridevirtual |
Get the current speed of the vehicle.
Implements IOdometryModel2D.
|
inlineoverridevirtual |
Get the current steering angle of the vehicle.
Implements IOdometryModel2D.
|
inlinevirtual |
Handle an incoming message (pure virtual).
This method should be implemented by derived classes to process messages.
| msg | The message to handle. |
Implements MessageHandler.
|
inlineoverridevirtual |
Set the speed source (e.g., encoder, estimator) for this model.
| speedSource | Reference to an ISpeedSource implementation |
Implements IOdometryModel2D.
|
inlinevirtual |
Update the speed estimate based on elapsed time.
| deltaTimeMs | Time interval (milliseconds) |
Implements IOdometryModel2D.