大疆无人机用过的两款IMU

        大疆WooKong-M飞控使用了3片ADI公司的模拟信号输出的陀螺仪,该型号相比常用的6050等廉价型号的传感器具有更高的精度及更低的噪声和漂移。

各传感器具体型号如下:

加速度:ADXL326

datasheet:https://www.analog.com/media/en/technical-documentation/data-sheets/ADXL326.pdf

陀螺: ADXRS620

datasheet:https://www.analog.com/media/en/technical-documentation/data-sheets/ADXRS620.pdf

 

气压:  MPXH6115ADC:   AD7689(16位8通道)

        大疆精灵3

IMU尽然只是成本只要10块的invensense MPU6500芯片,有IMU减震机构。

datasheet:https://invensense.tdk.com/wp-content/uploads/2020/06/PS-MPU-6500A-01-v1.3.pdf

### 无人机IMU滤波算法概述 在无人机控制系统中,惯性测量单元(IMU)用于提供高频率的姿态角速率和加速度信息。然而,由于传感器噪声和其他因素的影响,原始IMU数据通常存在偏差和漂移等问题。为了获得更准确的姿态估计,可以采用不同的滤波技术来处理这些数据。 #### 互补滤波算法简介 一种常用的方法是互补滤波器,这是一种相对简单的传感器融合方案[^2]。该方法通过组合来自不同类型的传感器的数据——比如陀螺仪短期内的角度变化率以及加速计长期稳定的重力方向指示——从而得到更加可靠的结果。具体来说,在短时间内主要依赖于快速响应但容易积累误差的陀螺仪;而在较长时间尺度上,则利用不易受瞬态干扰影响却可能存在静态偏置问题的加速度计来进行校正。 ```python def complementary_filter(gyro, acc, dt, alpha=0.98): """ :param gyro: 测量到的角度变化率 (rad/s) :param acc: 加速度计测得的方向向量 :param dt: 时间间隔(s) :param alpha: 权衡系数,默认接近1表示信任陀螺仪更多 :return: 更新后的姿态角(rad) """ # 计算由陀螺仪得出的新角度增量 angle_gyro = prev_angle + gyro * dt # 使用加速度计算当前倾斜度数作为参考值 angle_acc = atan2(acc[1], sqrt(pow(acc[0], 2)+pow(acc[2], 2))) # 将两者按照一定比例混合起来形成最终输出 current_angle = alpha * angle_gyro + (1 - alpha) * angle_acc return current_angle ``` 此函数实现了基本形式下的互补滤波逻辑,其中`alpha`决定了两种输入源之间的重要性分配关系。当其取较大数值时意味着系统倾向于相信陀螺仪所提供的即时反馈;反之则会给予更多的权重给基于重力场解析出来的方位信息。 #### 卡尔曼滤波的应用实例 除了上述提到的方式之外,另一种更为复杂但也可能带来更好性能表现的选择就是卡尔曼滤波(Kalman Filter)[^3]。这种方法不仅考虑到了过程本身的不确定性模型,还引入了观测方程以描述外部环境对于内部状态的影响机制。因此非常适合用来解决像多模态感知这样的任务场景下所面临的挑战。 在一个典型的例子当中,假设我们拥有两组独立采集而来的时空序列资料集:一组来自于安装在飞行器上的IMU设备记录下来的角速度与线性加速度样本集合;另一组则是地面站接收到的位置坐标及其对应时刻的速度分量列表。那么就可以构建起如下所示的状态转移矩阵A、观测矩阵H以及其他必要的统计特性参数Q(过程噪音协方差), R(测量误差协方差),进而完成整个预测-修正循环迭代流程的设计工作: \[ \mathbf{x}_{k}=\left[\begin{array}{c} \text { position } \\ \text { velocity } \end{array}\right]=\mathrm{F}_{k-1} \cdot \mathbf{x}_{k-1}+\mathrm{B}_{k-1} u_{k-1}+\omega_{k-1}, \quad k=1,2,\ldots,N \] 这里$\mathbf{x}_k$代表第$k$步的状态向量,包含了当前位置和速度的信息;$\mathrm F_k−1$为一步向前传播因子;$\mathrm B_k−1u_k−1$项反映了外界作用力对物体运动轨迹产生的改变效果;最后加上随机扰动成分ω_k−1模拟实际物理世界中存在的各种不可预见的因素所带来的波动情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神仙约架

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值