基于 IMU 的位姿解算

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 解算 IMU 采样数据的过程与惯导解算技术原理有关,而提高定位精度的方法主要依赖于IMU自身精度的提高和算法改进。

 前言

IMU,即惯性测量元件,以牛顿经典力学定律为基本工作原理,三轴加速度计三轴陀螺仪作为敏感元件,上电时分别输出加速度角速度

一般情况下,将捷联固定IMU的运动对象称为载体。当载体位姿发生变化时,可以通过初始位姿完成 IMU 采样数据在导航坐标系之间的转换,实现对载体位姿、速度等信息的计算和反馈。

解算 IMU 采样数据的过程与惯导解算技术原理有关,而提高定位精度的方法主要依赖于IMU自身精度的提高和算法改进。参考了一些论文,总结了一些IMU 位姿解算的方法和案例,记录与分享给大家。


一、IMU特点

民用的IMU,具有体积小、成本低、稳定性强等优点。但是,通常纯IMU长时间工作会导致输出数据的内部出现偏移,解算过程产出的累积误差使结果出现失真。

基于纯IMU会产生偏移的特点,通常会融合其他其他传感器;比如:在定位方面,IMU和GPS融合;IMU和磁力计融合等等。

IMMU,引入三轴磁力计的 IMU 称为惯性-磁测量元件(Inertial and Magnetic Measurement Unit,IMMU)。姿态测量方面,使用磁力数据加速度数据来计算物 体运动时的姿态角度,对使用角速度计算所得姿态进行实时的滤波,从而提高姿态数据的精度。


二、IMU应用

1、动作捕捉:IMU动作捕捉是一种新的动捕方案,其根据是刚体铰链模型以及关节测姿。

2、状态判别:使用 IMU 进行状态判别,需要使用特定状态下的 IMU 输出进行训练,涉及智能 学习方法。

3、空间轨迹重建:IMU 在空间轨迹重建的应用以大范围导航定位为主。

4、定位:一般将 IMU 与其他传感器进行组合,即应用组合导航法。常用的组合有 IMU/UWB、IMU/视觉相机、IMU/GPS,其他可以组合的传感器包 括雷达、里程计等等。


三、IMU固定在某物体上(位姿解算)

IMU能输出了载体的加速度、角速度,通过惯导解算原理获得载体运动的位姿轨迹。进行解算时,还需要消除 IMU 采样数据中存在的误差,以 及过程中产生的误差。

将IMU 固定一个物体上,比如固定在机器人上(机器人上有个喷枪)、固定在一个装有摄像头的支架上等等,按照捷联惯导解算的原理,IMU 与固定物体的相对位置并不会发生变化,可以将 IMU的运动视作刚体运动。而刚体运动是通过位姿对时间的变化进行描述的。


3.1 坐标系转换

首先通过机器人运动学参数,将机器人的关节坐标转化为 IMU 捷联载体(喷枪)的初始位姿。

IMU 输出的是基于自身坐标系三轴加速度三轴角速度数据,需要转换为机器人世界坐标系下的参数信息。此处的坐标系转换参数使用姿态矩阵表示,视作姿态信息,在姿态更新环节使用初始姿态推算得出。

image.gif

其中当地导航坐标,是惯导解算原理中的标准坐标系,解算过程需要把 IMU 输出的加速度转换到 当地导航坐标系内求解分析。


3.2 姿态更新

将 IMU 输出的加速度转换为机器人世界坐标系下 的加速度之后,根据初速对其进行二次积分,然后结合初始位置才能得到喷枪的位置信息。惯导解算原理图,包含了坐标系转换和姿态更新两个基本环节之间的关系。

image.gif


3.3 位姿解算 注意点

1、一般情况下,惯导解算需要考虑地球自转;如果研究对象的移动范围较地图定位的范围更小,因此地球转速、地球自转坐标系等因素可以忽略。

2、重力加速度一般值 g=9.8 m/s2,但建议考虑具体的地理位置进行取值,比如:研究地点在广东省珠三角地区(北纬 23°2′17.68″),重力加速度的 计算结果在 9.788 m/s2 左右浮动。

持续更新中...........



四、姿态表示法

不同坐标系之间存在着 3 自由度的位置关系3 自由度的姿态关系;其中3 自由度的位置关系,通常可以分别对x,y,z轴进行平移,让两个三维坐标系的原点重合。

而姿态关系,可以用欧拉角旋转矩阵单位四元数来表示,这三种方法在满 足一定条件时可以互相转化。

4.1 欧拉角

欧拉角是定位系统中对姿态的一种直观描述,计算时无需正交化处理,一般指航空领域主要应用的航空次序欧拉角。

假设:有两个坐标系,坐标系1记为n,坐标系2记为b。

坐标系2相对于 坐标系1的任意姿态,均能够以 坐标系1为初始状态, 绕坐标系1或自身的任意轴依次旋转 3 次获得,3 次旋转的角度统称欧拉角

选择 z-y-x(旋转顺序)作为欧拉角的表示形 式,如下图所示:

image.gif

    1. 先绕z轴旋转,对应偏航运动,为偏航角(yaw)
    2. 然后绕y轴旋转,对应俯 仰运动,为俯仰角(pitch)
    3. 最后绕x轴旋转,对应横 滚运动,为横滚角(roll)

    注意:

    在使用欧拉角描述物体姿态时,存在万向节死锁的问题,这导致欧拉角并不能实 现全姿态表达。例如,当俯仰角为±90°时,横滚角和偏航角将无法求出。


    4.2 旋转矩阵

    待完善


    4.3 单位四元数

    四元数符号为𝒒 ∈ 𝑅 4×1,有两种表示形式:

    image.gif

    其中,𝑞0为实数,𝑞1𝒊、𝑞2𝒋和𝑞3𝒌为虚数,此处的𝒊、𝒋和𝒌为 3 个虚单位。𝒒与𝑪𝑛 𝑏的 关系如下:

    image.gif

    若𝒒的范数为 1,则称𝒒为单位四元数,可以表示一次旋转,用两个单位四元数相 乘表示两次旋转。

    四元数𝒒用 4 个标量描述了姿态,不会存在欧拉角表示法的万向锁问题,也不像旋转矩阵 一样存在过多的冗余,是在姿态解算中常用的一种表示方法。



    参考文献

    [1] 黄耀聪.基于 IMU 的机器人位姿示教技术研究[D].广州:广东工业大学,2021.



    本文只供大家参考与学习,谢谢!

    相关文章
    |
    7月前
    |
    编解码 机器人
    标定系列一、手眼标定基础介绍
    标定系列一、手眼标定基础介绍
    237 0
    |
    传感器
    使用校准相机测量平面物体
    使用校准相机测量平面物体。
    168 0
    |
    7月前
    |
    资源调度 算法
    [Halcon&测量] 一维测量
    [Halcon&测量] 一维测量
    230 0
    [Halcon&测量] 一维测量
    |
    7月前
    |
    算法
    [Halcon&标定] 相机自标定
    [Halcon&标定] 相机自标定
    174 1
    |
    7月前
    |
    传感器 机器学习/深度学习 存储
    使用激光雷达(LiDAR)和相机进行3D物体跟踪
    使用激光雷达(LiDAR)和相机进行3D物体跟踪
    |
    机器学习/深度学习 传感器 算法
    基于视差传播进行相机阵列的视差估计附matlab代码
    基于视差传播进行相机阵列的视差估计附matlab代码
    |
    传感器 机器学习/深度学习 算法
    【滤波跟踪】基于扩展卡尔曼滤波器实现 IMU 和 GPS 数据计算无人机的姿态附matlab代码
    【滤波跟踪】基于扩展卡尔曼滤波器实现 IMU 和 GPS 数据计算无人机的姿态附matlab代码
    |
    机器学习/深度学习 传感器 算法
    基于PCA的点云位姿估计与粗拼接附matlab代码
    基于PCA的点云位姿估计与粗拼接附matlab代码
    |
    算法 数据安全/隐私保护
    点云地面点滤波-progressive TIN densification(PTD)算法介绍
    点云地面点滤波-progressive TIN densification(PTD)算法介绍
    794 0
    点云地面点滤波-progressive TIN densification(PTD)算法介绍
    |
    机器学习/深度学习 传感器 资源调度
    【滤波跟踪】基于粒子、sigma和卡尔曼滤波器实现目标跟踪滤波附matlab代码
    【滤波跟踪】基于粒子、sigma和卡尔曼滤波器实现目标跟踪滤波附matlab代码

    热门文章

    最新文章

    下一篇
    DataWorks