8个版本

使用旧的Rust 2015

0.2.2 2020年6月12日
0.2.1 2018年9月5日
0.1.5 2018年9月4日

#618嵌入式开发


icm42688中使用

MIT许可证

54KB
1K SLoC

dcmimu

融合低成本三轴MEMS陀螺仪和加速度计测量的算法。

原始版本的无std Rust移植。

Build Status

注意libm仍然不能与溢出检查一起工作,因此您必须使用--release编译项目。在相关问题中留下评论以提高认识

证书

Heikki Hyyti和Arto Visala,“低成本MEMS IMU的基于DCM的姿态估计算法”,国际导航与观测杂志,第2015卷,文章ID 503814,18页,2015.

用法

库可通过crates.io 获取。


# Create DCMIMU:
let mut dcmimu = DCMIMU::new();
let mut prev_t_ms = now();
loop {
    # get gyroscope and accelerometer measurement from your sensors:
    let gyro = sensor.read_gyro();
    let accel = sensor.read_accel();
    # Convert measurements to SI if needed.
    # Get time difference since last update:
    let t_ms = now();
    let dt_ms = t_ms - prev_t_ms
    prev_t_ms = t_ms
    # Update dcmimu states (don't forget to use SI):
    let (dcm, _gyro_biases) = dcmimu.update((gyro.x, gyro.y, gyro.z),
                                            (accel.x, accel.y, accel.z),
                                            dt_ms.seconds());
    println!("Roll: {}; yaw: {}; pitch: {}", dcm.roll, dcm.yaw, dcm.pitch);
    # Measurements can also be queried without updating:
    println!("{:?} == {}, {}, {}", dcmimu.all(), dcmimu.roll(), dcmimu.yaw(), dcmimu.pitch());
}

查看mpu9250以获取加速度计/陀螺仪传感器驱动程序。

文档

可通过docs.rs获取。

许可证

MIT许可证.

依赖项

~435KB