惯性传感器的倾角计算

这篇具有很好参考价值的文章主要介绍了惯性传感器的倾角计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

惯性传感器单元 IMU

IMU 是 Inertial Measurement Unit 的缩写, 直接翻译过来就是惯性测量单元, 常见的有单独的三轴加速度(Accelerometer)计 ADXL345, L3G4200D, L3GD20等, 单独的三轴角速度计(又称陀螺仪, Gyroscope) LIS3DH, L3GD20H, BMG160, 以及包含了加速度计和陀螺仪的六轴运动传感器 MPU6050, MPU6500, MPU6881, BMI160等, 以及带电子罗盘的九轴运动传感器 MPU9250, MPU9255等.

在判断物体在空间中的姿态以及运动轨迹时, 用得最多的是加速度和角速度传感器. 加速度传感器可以计算倾角, 陀螺仪可以计算角速度, 这两种传感器各自的特点为

  • 陀螺仪: 动态特性好, 因为测量噪声(误差)的存在, 以及各向灵敏度的差异, 通过积分计算角度会累积误差, 导致结果越来越不准
  • 加速度计: 不会累积误差, 所以准确度有保证, 但是动态响应差, 不适用于角度变化快速的场景.

如果设备运动速度较慢, 作用于系统的加速度力主要是重力, 可以使用加速度计来计算倾角, 利用重力矢量及其在加速度计轴上的投影(即对应读数)来确定倾角. 由于重力是恒定加速度, 如果存在额外的恒定加速度也会影响计算结果. 额外的恒定加速度包括发动机持续加速以及设备自身匀速的旋转等.

通过加速度计算倾角

静止和慢速物体因为主要加速度来源为重力, 用加速度传感器可以计算得到物体的倾角.

单轴数据计算倾角

假设X轴上测到的加速度值为 \(a_x\) 定义倾角 \(α\) 为X轴与水平面(与重力矢量垂直的平面)的夹角, 计算为

\[α = sin^{-1}(\frac{a_x}{g}) \]

\(a_x = 0\) 时, 倾角为0, X轴处于水平位置, 当\(a_x = g\) 时, 倾角90°, 处于垂直位置, 当 \(a_x\) 的值很小时, 可以用近似公式 \(sin(α) ≈ α\), 于是

\[α ≈ k(\frac{a_x}{g}) \]

比例系数k用于角度的线性近似计算

\(a_x\) 的读数匹配 \(sin(α)\) 曲线, 读数值范围为 \(-1g ~ 1g\), 在读数为0(水平位置)时灵敏度最高, 在读数为 \(+-1g\) 时灵敏度最低.

双轴加速度数据计算倾角

单轴无法判断方向, 因为在倾角为 \(α\)\(180° - α\) 时读数是一样的. 如果增加一个与X轴垂直的轴, 假定为Z轴, 且XZ轴形成的平面垂直于水平面, 那么XZ轴在这个平面里形成的对水平面的倾角就可以判断方向, 并且结果较为精确, 因为总会有一个轴处于灵敏度较高的区间.

当XZ轴形成的平面垂直于水平面时, X轴倾角可以用两个轴的读数进行计算.

\[α = tan^{-1}(\frac{a_x}{a_z}) \]

\(a_x\)为0时, 倾角为0, X轴处于水平, 当\(a_z\)为0时要注意避免零除. 如果XZ轴平面不垂直于水平面, 这个结果会小于实际的倾角, 倾斜越厉害误差越大.

三轴加速度数据计算倾角

假设传感器Z轴垂直朝下, X轴朝正前方, 则X轴与水平面之间的夹角为俯仰角(pitch) \(α\), Y轴与水平面间的夹角为横滚角(roll) \(β\), 航向角yaw需要地磁传感器, 无法通过加速度传感器计算. Z轴垂直于X轴和Y轴, 和两轴数值是相关的, 并没有独立性, 仅用于判断设备上下的朝向. 令Z轴与水平面的夹角为 \(γ\)

重力加速度在XYZ三个轴上的投影即为三个轴传感器的读数, 可以将三轴倾角和重力加速度想像为一个斜立的长方体, 长方体的对角线为重力加速度, 对角线就是这个角对应的三条边, 倾角的计算方法为

\[α = sin^{-1}(\frac{a_x}{g}) \]
\[β = sin^{-1}(\frac{a_y}{g}) \]
\[γ = sin^{-1}(\frac{a_z}{g}) \]

带运动加速度的倾角计算

上面的计算方式适合相对静止和慢速的场景, 当物体受作用于多个外力时, 作用于传感器的综合加速度为重力与各外力的叠加, 此时加速度的方向就不是重力的方向, 上面的计算方式就不适用了, 因为综合加速度可能比 \(g\) 更大或更小.

对于一个物体, 整体加速度等于三轴加速度的矢量和, 其大小 \(G\) 可以通过三个向量的大小计算得到

\[G = \sqrt[2]{{a_x}^2 + {a_y}^2 + {a_z}^2} \]

由此可以得到运动状态下倾角的计算

\[α = sin^{-1}(\frac{a_x}{G}) \]
\[β = sin^{-1}(\frac{a_y}{G}) \]
\[γ = sin^{-1}(\frac{a_z}{G}) \]

因为 \(a_x\), \(G\), \(\sqrt[2]{{a_y}^2 + {a_z}^2}\) 三个矢量形成直角三角形, 上面的式子可以也可以用 \(tan^{-1}\) 计算

\[α = tan^{-1}(\frac{a_x}{\sqrt[2]{{a_y}^2 + {a_z}^2}}) \]
\[β = tan^{-1}(\frac{a_y}{\sqrt[2]{{a_x}^2 + {a_z}^2}}) \]
\[γ = tan^{-1}(\frac{a_z}{\sqrt[2]{{a_x}^2 + {a_y}^2}}) \]

此时的倾角并非相对重力加速度的倾角, 而是相对物体整体加速度矢量的倾角, 例如物体向前(X轴方向)加速运动时, 整体加速度方向会向后倾斜, 当物体左转时, 离心力会导致整体加速度方向向右倾斜. 计算此时的姿态倾角, 可以用于帮助物体在当前的运动状态上保持平衡.

互补滤波

通过加速度传感器(Accelerometer)可以使用反三角函数\(sin^{-1}\)\(tan^{-1}\)求静止和慢速运动物体的倾角, 对于高速运动的物体, 需要结合陀螺仪的角速度读数快速响应倾角变化. 对于这两种传感器读数的结合, 通常采用互补滤波算法.

互补滤波就是在短时间内采用陀螺仪得到的角度做为最优值, 定时用加速度值来校正陀螺仪的得到的角度. 加速度计要滤掉高频信号, 陀螺仪要滤掉低频信号, 互补滤波器就是根据传感器特性不同, 通过不同的滤波器, 相加得到整个频带的信号.

互补滤波的公式为

\[α_n = k * (α_{n-1} + \delta_α ∗ dt) + (1 - k) ∗ α^{\prime} \]

其中

  • \(α_n\) 互补计算得到的角度
  • \(α_{n-1}\) 前一次计算得到的角度
  • \(\delta_α\) 陀螺仪得到的角速度
  • \(dt\) 两次计算的时间间隔
  • \(α^{\prime}\) 通过加速度计得到的倾角
  • \(k\)\(1-k\) 为加权系数, 和为 1

加权系数的确定. 在 《The Balance Filter》 中提到关于加权系数的求解公式, 先设滤波器的加权系数为 \(α\), 时间常数为为 \(τ\), 运行周期为 \(dt\), 那么公式为

\[α = \frac{τ}{τ+dt} \]

运行周期 dt 根据运行周期确定, 如果互补滤波器方法的调用频率为 200次每秒, 那么 \(dt = \frac{1000ms}{200} = 5ms\)

时间常数 \(τ\) 的取值根据系统的实际需求调整,
不同的系统的 \(τ\) 值不一定相同. \(τ\)取值越大则陀螺仪权重越大, \(τ\)取值越小则加速度传感器的权重越大. 通常互补滤波器对陀螺仪的权重会大些, 以降低加速度传感器中噪声的影响. 例如互补滤波器运行间隔为 10ms, 时间常数 \(τ =0.49\), 那么此时加权系数为:

\[α = \frac{τ}{τ+dt} = \frac{0.49}{0.49 + 0.01} = 0.98 \]

C语言代码

// a = tau / (tau + dt)  
// acc = 加速度传感器数据 
// gyro = 陀螺仪数据 
// dt = 运行周期

float angle;
float a;

float ComplementaryFliter(float acc, float gyro, float dt)
{
  a = 0.98;
  angle = a * (angle + gyro * dt) + (1 - a) * (acc);
  return angle;
}

在实际应用中, 因为加速度计和角速度计读取的数据存在很大的噪音, 直接使用会造成反馈的不稳定(抖动), 需要在计算前通过卡尔曼滤波器等进行平滑.文章来源地址https://www.toymoban.com/news/detail-837755.html

参考

  • 倾角计算 https://www.analog.com/cn/resources/app-notes/an-1057.html

到了这里,关于惯性传感器的倾角计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 大数据与云计算、物联网、人工智能_识别二维码 传感器wifl网络蓝牙应用5g云计算关键技术,具体应用(1)

    大数据与云计算、物联网、人工智能_识别二维码 传感器wifl网络蓝牙应用5g云计算关键技术,具体应用(1)

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新大数据全套学习资料》,

    2024年04月25日
    浏览(11)
  • 机器人内部传感器-位置传感器-电位器式位置传感器

    机器人内部传感器-位置传感器-电位器式位置传感器

    位置传感器 位置感觉是机器人最基本的感觉要求,可以通过多种传感器来实现。位置传感器包括 位置 和 角度 检测传感器。常用的机器人位置传感器有 电位器式 、 光电式 、 电感式 、 电容式 、 霍尔元件式 、 磁栅式 及 机械式 位置传感器等。机器人各关节和连杆的 运动

    2024年02月19日
    浏览(11)
  • 高效学习传感器|霍尔式传感器

    高效学习传感器|霍尔式传感器

    霍尔式传感器的物理基础是霍尔效应。如图1所示,在一块长度为l、宽度为b、厚度为d的长方体导电板上,左、右、前、后侧面都安装上电极。在长度方向上通入电流I,在厚度方向施加磁感应强度为B的磁场。 ■ 图1 霍尔效应示意图 导电板中的自由电子沿电流反方向作定向移

    2024年02月05日
    浏览(11)
  • 相机传感器和镜头传感器面积关系

    相机的传感器尺寸和镜头传感器尺寸之间存在密切关系。 传感器尺寸指的是相机传感器的大小,通常用对角线长度表示,单位为英寸。传感器尺寸越大,相机能捕捉到的光线就越多,成像质量也就越好。 镜头传感器尺寸指的是镜头所能覆盖的传感器面积的大小。如果镜头传

    2024年02月03日
    浏览(17)
  • 无线传感器基础:获取手机传感器、加速度

    无线传感器基础:获取手机传感器、加速度

    一些实验过程中的疑问: 如何知道设备上有哪些传感器? 如果手机不支持的传感器,程序运行往往不会抛出异常,只是无法获得传感器传回的数据。那么如何知道设备上有哪些传感器可用呢?有两种方式,一种是直接方式,一种是间接方式。直接方式就是遍历获取得到传感

    2024年02月02日
    浏览(20)
  • 常用传感器-温湿度传感器SHT30

    常用传感器-温湿度传感器SHT30

    SHT30温湿度传感器 工作电压:2.4V-5.5V 通讯协议:IIC 湿度测量范围:0-100 温度测量范围:-40°-125° VIN:电源正极 GND:电源负极 SCL:数据线 SDA:数据线 1.加载库文件:ClosedCube_SHT31D 选择库文件:ClosedCube_SHT31D 2.连接esp mini d1和温湿度传感器 VIN和GND分别取主板5V电压 SCL和SDA分别接

    2024年02月01日
    浏览(14)
  • 传感器:探索Android中的传感器功能与使用

    传感器:探索Android中的传感器功能与使用

    利用 Android 传感器框架,您可以访问多种类型的传感器。有些传感器基于硬件,有些基于软件。基于硬件的传感器是内置在手机或平板设备中的物理组件。这类传感器通过直接测量特定的环境属性(如加速度、地磁场强度或角度变化)来采集数据。基于软件的传感器不是物理

    2024年02月03日
    浏览(17)
  • 多传感器融合定位十五-多传感器时空标定(综述)

    多传感器融合定位十五-多传感器时空标定(综述)

    Reference: 深蓝学院-多传感器融合 多传感器融合定位理论基础 文章跳转: 多传感器融合定位一-3D激光里程计其一:ICP 多传感器融合定位二-3D激光里程计其二:NDT 多传感器融合定位三-3D激光里程计其三:点云畸变补偿 多传感器融合定位四-3D激光里程计其四:点云线面特征提取

    2024年02月14日
    浏览(20)
  • Arduino驱动BME680环境传感器(环境传感器篇)

    目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序

    2024年02月13日
    浏览(16)
  • Arduino驱动MiCS-4514气体传感器(气体传感器篇)

    目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序

    2024年02月11日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包