|
|
bool | begin (const Coordinate< T > &initialPosition={0, 0, 0}, Orientation3D initialOrientation=Orientation3D()) |
| |
|
void | end () |
| |
| void | update (T accelX, T accelY, T accelZ, T gyroX, T gyroY, T gyroZ, unsigned long nowMillis) |
| |
|
Distance3D | getLastDelta () const |
| | Get the last delta update (dx, dy, dz)
|
| |
|
AngularVelocity3D | getLastAngularVelocity () const |
| | Get the last angular velocity (rad/s)
|
| |
|
Speed3D | getLinearVelocity () const |
| | Get the current linear velocity (m/s)
|
| |
| Coordinate< DistanceM > | getPosition () const override |
| | Get the current position (IMotionState3D)
|
| |
| Orientation3D | getOrientation () const override |
| | Get the current orientation (IMotionState3D)
|
| |
| Speed3D | getSpeed () const override |
| |
| AngularVelocity3D | getAngularVelocity () const override |
| |
| 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.
|
| |
| virtual Coordinate< DistanceM > | getPosition () const =0 |
| |
| virtual Orientation3D | getOrientation () const =0 |
| |
|
virtual Speed3D | getSpeed () const =0 |
| |
|
virtual AngularVelocity3D | getAngularVelocity () const =0 |
| |
template<typename T = float>
class tinyrobotics::IMU3D< T >
Basic 3D IMU dead-reckoning class.
This class estimates 3D position, velocity, and orientation (yaw, pitch, roll) for robotics applications by integrating gyroscope and accelerometer data over time.
- Integrates gyro (roll, pitch, yaw rates) to estimate orientation (radians)
- Integrates accelerometer (X, Y, Z) in the robot frame, rotated to world frame, to estimate velocity and position
- All units SI (meters, seconds, radians)
Limitations:
- No sensor fusion with magnetometer or GPS
- No Kalman filter or bias estimation
- Subject to drift over time (no correction)
- Template Parameters
-
| T | Numeric type (float or double recommended) |