ahrs-rs
A Rust port of Sebastian Madgwick's AHRS algorithm.
Documentation
Usage
Add ahrs-rs to your Cargo.toml
:
[dependencies]
ahrs = "0.2.0"
Here's a simple example that updates the filter state with arbitrary sensor data:
extern crate nalgebra as na;
extern crate ahrs;
use ahrs::{Ahrs, Madgwick};
use na::{Vector3, Quaternion};
use std::f64;
fn main() {
let mut ahrs = Madgwick::default();
let gyroscope = Vector3::new(60.1, 30.2, 20.3);
let accelerometer = Vector3::new(0.1, 0.2, 0.3);
let magnetometer = Vector3::new(0.5, 0.6, 0.7);
let quat: &Quaternion<f64> = ahrs.update( &(gyroscope * (f64::consts::PI/180.0)),
&accelerometer,
&magnetometer ).unwrap();
println!("{}", quat);
}
Crate nalgebra is also needed as a dependency for its algebraic types Vector3
and Quaternion
.
License
GPLv3