众所周知,在b系下的一个向量要投影到n系,需要其在b系下的坐标,乘上方向余弦矩阵Cnb。根据此原理,通过分别找到两个坐标系下对应的的三个不平行矢量,即可求解出该矩阵。在武大牛小骥的ppt中介绍了姿态阵的求解方法。

然而,在实际的解算过程中载体系的选取有“前右下”、“右前上”,导航系的选取有“北东地”、“东北天”,此外根据转动顺序的不同,欧拉角的定义又分为九种(甚至符号也有好几个)。在惯导领域似乎还没有一个统一的标准,这导致有的人用“东北天”当作n系,有的人用“北东地”当作n系,写出来的程序解算同一组数据,最终解算的姿态角不一样,在初学惯导时,总觉得这里很绕。

欧拉角(粗对准的姿态角)的值,与载体系、导航系的定义和欧拉角的定义均有关系。载体系是解算的起点,静态imu采集的比力fb=-gb,因此加速度计输出数据需要在前面加上负号,角速度数据直接使用即可。导航系的定义决定了在初始对准时,n系下的重力矢量与地球自转矢量的组成方式,当导航系为东北天时,

gn = [0; 0; -g];

wien = [0; we*cos(L); we*sin(L)];

当导航系为北东地时,

gn = [0; 0; g];

wien = [we*cos(L); 0; -we*sin(L)];

当载体系与导航系确定后,从b系到n系的方向余弦矩阵就唯一了。而欧拉角的定义决定了如何从方向余弦矩阵中解算出欧拉角,比如西工大严龚敏老师的欧拉角定义是z-x-y,那么方向余弦矩阵的含义为(γ:俯仰,θ:横滚,Ψ:航向)

牛小骥老师定义为z-y-x,方向余弦矩阵的含义为(θ:俯仰,Φ:横滚,Ψ:航向)

因此,在编程之初,就应该明确载体系、导航系与欧拉角定义,使用对应的欧拉角求解公式解算姿态角。

imu初始对准的姿态角解算注意事项相关推荐

  1. STM32实现四驱小车(三)传感任务——姿态角解算

    目录 一. 绪论 二. 惯性传感器测量原理 1. 三轴加速度计 2. 三轴陀螺仪 3. 三轴磁力计 三. 状态估计 1. 姿态估计 (1)线性互补滤波器 (2)非线性互补滤波器 (3)卡尔曼滤波器 2 ...

  2. MPU6050姿态融合解算(DMP)

    mpu6050是一个六轴传感器包括三轴陀螺仪和三轴加速度,分别可以测得三轴的角速度.加速度.但是一般传感器的原始数据都不能直接直接拿来用,都需要滤波和姿态融合解算.对于初学者来说卡尔曼滤波和姿态融合解 ...

  3. 【灵动MM32-姿态角解算】移植MPU6050-DMP库实现姿态角PRY解算

    MM32使用DMP库处理MPU6050数据.姿态解算 实现途径: ①MM32F3277G9P单片机 ②MPU6050模块 ③智能车逐飞MM32开源库 ④正点原子dmp开源库 开源库链接: 逐飞科技MM ...

  4. 有关加速度计,陀螺仪,姿态融合解算的原理

    机体就好似一条船,姿态就是船的航向(船头的方位),重力是灯塔,陀螺仪(角速度对时间的积分得到的角度)是舵手,加速度计是瞭望手.舵手负责估计和把稳航向,他相信自己,本来船像北开的,就一定会一直往北开,觉 ...

  5. python 数据处理 姿态角数据解算

    对于姿态角解算,目前我所知道的只有两种,一种是DMP库解算出姿态角.一种是算法进行姿态解算: 本次说的是姿态解算,采集的是六轴的原始数据,用python进行姿态解算:废话不多说,看程序,有注解的.. ...

  6. 四元数AHRS姿态解算和IMU姿态解算分析

    ref:https://blog.csdn.net/xiaoxie613520/article/details/78227170 AHRS是自动航向基准系统(Automatic Heading Ref ...

  7. 匿名飞控TI版_姿态解算

    匿名飞控TI版_姿态解算 准备电赛 准备大创 先看看匿名姿态解算的代码 文章目录 匿名飞控TI版_姿态解算 一,姿态解算原理 1.介绍 2.方向余弦矩阵 (1)方向余弦 (2)DCM矩阵 3.欧拉角 ...

  8. STM32入门笔记(02):MPU6050、MPU9250、ICM20948及姿态解算(SPL库函数版)

    目录 MPU6050 什么是MPU6050? MPU6050的特点 MPU6050框图 MPU6050初始化 MPU6050寄存器 电源管理寄存器1(0X6B) 陀螺仪配置寄存器(0X1B) 加速度传 ...

  9. 第三讲 AHRS姿态解算

    AHRS是自动航向基准系统(Automatic Heading Reference System)的简称.目前,使用四元数来进行AHRS姿态解算的算法被广泛采用于四轴飞行器上.该算法源自英国Brist ...

最新文章

  1. 独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了...
  2. 应对单条高频的数据修改方案
  3. matlab mpt工具箱帮助文档_替代 Matlab 的国产软件出现?
  4. EFProf Entity Framework Profile 工具
  5. vue --- 2.0 编译的实现
  6. private的用法,为什么要来一个取值方法和设置值方法
  7. Python入门学习:网络刷博器爬虫
  8. boot入门思想 spring_什么是Spring boot?Spring Boot快速入门以及Spring Boot实例教程
  9. CentOS7下 libvirt+virt-manager 虚拟机迁移配置及错误处理
  10. HDOJ--2151--worm
  11. 【Android开发】之Android环境搭建及HelloWorld
  12. centos-8搭建k8s并简单使用pv、pvc
  13. JDK 安装与环境变量配置(Win10详细版)
  14. nwjs macOS打包成dmg
  15. python 基础代谢率计算_基于python实现计算且附带进度条代码实例
  16. 通过Ping检测网络故障的典型次序和IPconfig命令的使用
  17. 登录北京住房公积金,使用已注册过账号
  18. 微软的winget包管理器
  19. 第十周 项目一 计算税后收入
  20. ZABBIX 监控基本报警故障

热门文章

  1. Kaggle项目——Spaceship Titanic
  2. 【opencv-python】大津法(Otsu)阈值分割原理深入分析
  3. 安卓开发实战!斗鱼直播Android开发二面被刷,成功入职阿里
  4. 求销售经理人数最多的层级-Java集合练习题
  5. 强化学习基本概念及与监督学习的区别
  6. 安装cuda时出现 non 7z achive.
  7. docker ubuntu or centos 中 报错 pip2: command not found 为 Python 2 安装 pip2
  8. 一篇文章搞懂数据埋点与数据同步
  9. Linux 4.1最新内核usb与hid驱动分析记录
  10. Ubuntu22.04没有ttyUSB(无法访问 ‘/dev/ttyUSB‘: 没有那个文件或目录)问题解决