TinyRobotics
Loading...
Searching...
No Matches
Public Member Functions | List of all members
IOdometryModel2D Class Referenceabstract

Abstract interface for 2D odometry models. More...

#include <IOdometryModel2D.h>

Inheritance diagram for IOdometryModel2D:
Inheritance graph
[legend]
Collaboration diagram for IOdometryModel2D:
Collaboration graph
[legend]

Public Member Functions

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)
 

Detailed Description

Abstract interface for 2D odometry models.

Member Function Documentation

◆ computeDeltaTheta()

virtual float computeDeltaTheta ( uint16_t  deltaTimeMs) const
pure virtual

Compute heading change (deltaTheta) for odometry kinematics.

Parameters
speedSpeed of the vehicle (meters/second)
steeringAngleSteering angle (radians)
deltaTimeMsTime interval (milliseconds)
Returns
Change in heading (radians)

Implemented in OdometryDifferentialDriveModel, and OdometryModel2D.

◆ computeDeltaXY()

virtual void computeDeltaXY ( float  theta,
uint32_t  deltaTimeMs,
float &  deltaX,
float &  deltaY 
) const
pure virtual

Compute position change (deltaX, deltaY) for odometry kinematics.

Parameters
speedSpeed of the vehicle (meters/second)
thetaHeading (radians)
deltaTimeMsTime interval (milliseconds)
[out]deltaXChange in X position (meters)
[out]deltaYChange in Y position (meters)

Implemented in OdometryDifferentialDriveModel, and OdometryModel2D.

◆ getSpeed()

virtual Speed getSpeed ( ) const
pure virtual

Get the current speed of the vehicle.

Returns
Speed of the vehicle (meters/second)

Implemented in OdometryDifferentialDriveModel, and OdometryModel2D.

◆ getSteeringAngle()

virtual Angle getSteeringAngle ( ) const
pure virtual

Get the current steering angle of the vehicle.

Returns
Steering angle (radians)

Implemented in OdometryDifferentialDriveModel, and OdometryModel2D.

◆ registerCallback()

virtual void registerCallback ( void(*)(void *)  callback,
void *  userData 
)
pure virtual

Register a callback to be invoked on relevant events (e.g., input change, update).

Parameters
callbackFunction pointer with signature void callback(void* userData)
userDataUser-provided pointer passed to the callback

◆ setSpeedSource()

virtual void setSpeedSource ( ISpeedSource speedSource)
pure virtual

Set the speed source (e.g., encoder, estimator) for this model.

Parameters
speedSourceReference to an ISpeedSource implementation

Implemented in OdometryDifferentialDriveModel, and OdometryModel2D.

◆ updateSpeed()

virtual void updateSpeed ( uint32_t  deltaTimeMs)
pure virtual

Update the speed estimate based on elapsed time.

Parameters
deltaTimeMsTime interval (milliseconds)

Implemented in OdometryDifferentialDriveModel, and OdometryModel2D.


The documentation for this class was generated from the following file: