Skip to main content

sensor_fusion/
lib.rs

1#![doc = include_str!("../README.md")]
2#![cfg_attr(feature = "simd", feature(portable_simd))]
3#![cfg_attr(not(test), no_std)]
4#![deny(clippy::unwrap_used)]
5#![deny(clippy::expect_used)]
6#![deny(clippy::panic)]
7//#![deny(missing_docs)]
8#![deny(
9    missing_copy_implementations,
10    missing_debug_implementations,
11    trivial_casts,
12    trivial_numeric_casts,
13    unused_must_use,
14    unused_extern_crates,
15    unused_import_braces,
16    unused_qualifications,
17    unused_results
18)]
19#![warn(unused_results)]
20#![warn(clippy::pedantic)]
21#![warn(clippy::doc_paragraphs_missing_punctuation)]
22
23mod complementary_filter;
24mod madgwick_filter;
25mod mahony_filter;
26
27mod kalman_filter_z;
28mod kalman_filter_z_with_sensors;
29
30mod kalman_filter_xy;
31mod kalman_filter_xy_with_sensors;
32
33mod kalman_filter_xyz;
34mod kalman_filter_xyz_with_sensors;
35
36mod sensor_fusion;
37mod sensor_fusion_math;
38
39mod trilaterate_2d;
40mod trilaterate_3d;
41
42pub use complementary_filter::{ComplementaryFilter, ComplementaryFilterf32, ComplementaryFilterf64};
43pub use madgwick_filter::{MadgwickFilter, MadgwickFilterf32, MadgwickFilterf64};
44pub use mahony_filter::{MahonyFilter, MahonyFilterf32, MahonyFilterf64};
45
46pub use sensor_fusion::{FuseAccGyro, FuseAccGyroMag, SensorFusion};
47pub use sensor_fusion_math::SensorFusionMath;
48
49pub use kalman_filter_z::{KalmanFilterZ, KalmanFilterZf32, KalmanFilterZf64};
50pub use kalman_filter_z_with_sensors::{
51    KalmanFilterZWithSensors, KalmanFilterZWithSensorsf32, KalmanFilterZWithSensorsf64,
52};
53
54pub use kalman_filter_xy::{KalmanFilterXY, KalmanFilterXYf32};
55pub use kalman_filter_xy_with_sensors::{KalmanFilterXYWithSensors, KalmanFilterXYWithSensorsf32};
56
57pub use kalman_filter_xyz::{KalmanFilterXYZ, KalmanFilterXYZf32};
58pub use kalman_filter_xyz_with_sensors::{KalmanFilterXYZWithSensors, KalmanFilterXYZWithSensorsf32};
59
60pub use trilaterate_2d::{Anchor2d, Anchor2df32, Anchor2df64, trilaterate_2d};
61pub use trilaterate_3d::{Anchor3d, Anchor3df32, Anchor3df64, trilaterate_3d_weighted};