Skip to content

Commit

Permalink
Move types into types module, add prelude
Browse files Browse the repository at this point in the history
  • Loading branch information
sunsided committed Jul 13, 2024
1 parent 45009d9 commit 623587a
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 34 deletions.
11 changes: 7 additions & 4 deletions examples/simulation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ use serde::de::DeserializeOwned;
use serde::Deserialize;

use marg_orientation::gyro_free::{MagneticReference, OwnedOrientationEstimator};
use marg_orientation::{
use marg_orientation::types::{
AccelerometerNoise, AccelerometerReading, GyroscopeReading, MagnetometerNoise,
MagnetometerReading,
};
Expand Down Expand Up @@ -432,9 +432,12 @@ fn main() -> Result<(), Box<dyn Error>> {
}

// Obtain a rotation matrix from the estimated angles.
let north = estimator.rotate_vector_world(marg_orientation::Vector3::new(1.0, 0.0, 0.0));
let east = estimator.rotate_vector_world(marg_orientation::Vector3::new(0.0, 1.0, 0.0));
let down = estimator.rotate_vector_world(marg_orientation::Vector3::new(0.0, 0.0, 1.0));
let north =
estimator.rotate_vector_world(marg_orientation::types::Vector3::new(1.0, 0.0, 0.0));
let east =
estimator.rotate_vector_world(marg_orientation::types::Vector3::new(0.0, 1.0, 0.0));
let down =
estimator.rotate_vector_world(marg_orientation::types::Vector3::new(0.0, 0.0, 1.0));
let filter_x = kiss3d_point(NorthEastDown::new(north.x, north.y, north.z));
let filter_y = kiss3d_point(NorthEastDown::new(east.x, east.y, east.z));
let filter_z = kiss3d_point(NorthEastDown::new(down.x, down.y, down.z));
Expand Down
9 changes: 5 additions & 4 deletions src/gyro_free/filter.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
use crate::gyro_free::types::*;
use crate::vector3::Vector3;
use crate::{
Abs, AccelerometerNoise, AccelerometerReading, ArcSin, ArcTan, EulerAngles, IsNaN,
MagnetometerNoise, MagnetometerReading, NormalizeAngle,
use crate::prelude::*;
use crate::types::{
AccelerometerNoise, AccelerometerReading, EulerAngles, MagnetometerNoise, MagnetometerReading,
Vector3,
};
use crate::IsNaN;
use minikalman::buffers::types::*;
use minikalman::extended::{ExtendedKalmanBuilder, ExtendedObservationBuilder};
use minikalman::matrix::MatrixDataType;
Expand Down
28 changes: 9 additions & 19 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,20 @@
// Only enables the `doc_cfg` feature when the `docsrs` configuration attribute is defined.
#![cfg_attr(docsrs, feature(doc_cfg))]

mod accelerometer_noise;
mod accelerometer_reading;
mod euler_angles;
pub mod gyro_drift;
pub mod gyro_free;
mod gyroscope_bias;
mod gyroscope_noise;
mod gyroscope_reading;

mod macros;
mod magnetometer_noise;
mod magnetometer_reading;

mod num_traits;
#[deprecated(note = "This is a test implementation not suitable for real use")]
pub mod test_estimator;
mod vector3;

pub use crate::accelerometer_noise::AccelerometerNoise;
pub use crate::accelerometer_reading::AccelerometerReading;
pub use crate::euler_angles::EulerAngles;
pub use crate::gyroscope_bias::GyroscopeBias;
pub use crate::gyroscope_noise::GyroscopeNoise;
pub use crate::gyroscope_reading::GyroscopeReading;
pub use crate::magnetometer_noise::MagnetometerNoise;
pub use crate::magnetometer_reading::MagnetometerReading;
pub use crate::vector3::Vector3;

pub mod types;
pub use crate::num_traits::*;

/// Imports commonly used types and traits.
pub mod prelude {
pub use crate::num_traits::*;
pub use crate::types::Vector3;
}
9 changes: 4 additions & 5 deletions src/test_estimator.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
use crate::vector3::Vector3;
use crate::{
AccelerometerNoise, AccelerometerReading, ArcSin, ArcTan, DetectGimbalLock, EulerAngles,
GyroscopeBias, GyroscopeNoise, GyroscopeReading, IsNaN, MagnetometerNoise, MagnetometerReading,
NormalizeAngle,
use crate::prelude::*;
use crate::types::{
AccelerometerNoise, AccelerometerReading, EulerAngles, GyroscopeBias, GyroscopeNoise,
GyroscopeReading, MagnetometerNoise, MagnetometerReading,
};
use core::ops::Neg;
use minikalman::buffers::types::*;
Expand Down
19 changes: 19 additions & 0 deletions src/types.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
mod accelerometer_noise;
mod accelerometer_reading;
mod euler_angles;
mod gyroscope_bias;
mod gyroscope_noise;
mod gyroscope_reading;
mod magnetometer_noise;
mod magnetometer_reading;
mod vector3;

pub use crate::types::accelerometer_noise::AccelerometerNoise;
pub use crate::types::accelerometer_reading::AccelerometerReading;
pub use crate::types::euler_angles::EulerAngles;
pub use crate::types::gyroscope_bias::GyroscopeBias;
pub use crate::types::gyroscope_noise::GyroscopeNoise;
pub use crate::types::gyroscope_reading::GyroscopeReading;
pub use crate::types::magnetometer_noise::MagnetometerNoise;
pub use crate::types::magnetometer_reading::MagnetometerReading;
pub use crate::types::vector3::Vector3;
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
3 changes: 1 addition & 2 deletions src/vector3.rs → src/types/vector3.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use crate::accelerometer_reading::AccelerometerReading;
use crate::magnetometer_reading::MagnetometerReading;
use crate::types::{AccelerometerReading, MagnetometerReading};
use core::borrow::Borrow;
use core::fmt::{Debug, Formatter};
use core::ops::{Add, Mul, Neg, Sub};
Expand Down

0 comments on commit 623587a

Please sign in to comment.