TinyRobotics
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Fusion3D Class Reference

3D sensor fusion EKF for position, orientation, and velocity estimation. More...

#include <Fusion3D.h>

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

Classes

struct  State3D
 

Public Member Functions

bool begin (const Coordinate< float > &initialPosition={0, 0, 0}, const Orientation3D &initialOrientation=Orientation3D())
 
void predict (uint32_t timeMs, float ax=0.0f, float ay=0.0f, float az=0.0f)
 
void updateIMU (uint32_t timeMs, float omegaX, float omegaY, float omegaZ, float ax, float ay, float az)
 
void updateGPS (uint32_t timeMs, float x, float y, float z, float accuracy)
 
void updateOrientation (uint32_t timeMs, float yaw, float pitch, float roll)
 
State3D getState () const
 
Coordinate< float > getPosition () const
 
Speed3D getVelocity () const
 
Orientation3D getOrientation () const
 
- Public Member Functions inherited from MessageSource
void subscribe (MessageHandler &handler, MessageOrigin origin=MessageOrigin::Undefined, MessageContent content=MessageContent::Undefined)
 Subscribe a message handler to this source, with optional filtering.
 
void unsubscribeAll ()
 Remove all registered message handlers.
 
void sendMessage (Message< float > &msg)
 Publish a message to all registered handlers.
 
void sendMessage (const Message< Coordinate< float > > &msg)
 Publish a message to all registered handlers.
 
void sendMessage (const Message< GPSCoordinate > &msg)
 Publish a message to all registered handlers.
 
void sendMessage (const Message< MotionState3D > &msg)
 Overload for MotionState3D messages.
 

Protected Member Functions

void wrapAngles ()
 
void reset (uint32_t timeMs=millis())
 

Protected Attributes

State3D state
 
uint32_t lastPredictTime = 0
 
float omegaXMeasured = 0.0f
 
float omegaYMeasured = 0.0f
 
float omegaZMeasured = 0.0f
 
bool hasIMU = false
 
- Protected Attributes inherited from MessageSource
std::vector< MessageHandlerEntrymessageHandlers_
 

Detailed Description

3D sensor fusion EKF for position, orientation, and velocity estimation.

Supports optional sensors:

The EKF automatically adapts to the available sensors.


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