IMU加速度、磁力计校正--椭球拟合
来源:互联网 发布:ido软件下载中文版 编辑:程序博客网 时间:2024/05/21 08:49
版权声明:本文为博主原创文章,未经博主允许不得转载。
博主:shenshikexmu
联系方式:shenshikexmu@163.com
问题
考虑到IMU中,x,y,z轴的度量单位并不相同,假设各轴之间相互直。
那么加速度传感器在静止状态(也就是只受重力的状态下),各个姿态只受重力的,x,y,z轴值(假设x,y,z轴相互垂直并且度量单位都一致,如mpu9250三轴的度量单位都是2048,16g量程的情况下),在三维空间中,重力点都在一个球面上,但各轴之间的度量单位都会有偏差,所以各姿态重力点都落在一个椭球面上,椭球的中心,就是加速度的偏移量,也就是校准值。
在磁力计上,由于测量磁场强度,在环境不变的情况下,传感器每个姿态感受磁场强度是相同,所以不需要静止状态,磁力计测量的x,y,z轴值,在没有偏差的情况下,在传感器内部x,y,z轴相互垂直的情况下,在三维空间中组成一个圆球面。但是磁力计存在Hard Iron Distortion和Soft Iron Distortion。使得x,y,z轴度量单位不相同,各轴也并非相互垂直,(说明一下,任意椭球的三个轴都是相互垂直的,几何上,椭球最长的轴与最短的轴相互垂直,从代数的角度看,对称正定矩阵
数学模型
所以问题在于给定椭球球面上的点,如何求椭球球心。其实就是一个椭球拟合问题。
从几何的角度表示上式的椭球为
上式写成矩阵形式
其中
算法实现
function[ Center,Scale_axis] = fit_elliposoid9( data )% input data is n*3, n points of the ellipsoid surface% Least Square Method% a(1)x^2+a(2)y^2+a(3)z^2+a(4)xy+a(5)xz+a(6)yz+a(7)x+a(8)y+a(9)z=1% output Center is 1*3, center of elliposoid, % Scale_axis is 1*3, 3 axis' scale% author Zhang Xinx=data(:,1);y=data(:,2);z=data(:,3);D=[x.*x y.*y z.*z x.*y x.*z y.*z x y z ];a=inv(D'*D)*D'*ones(size(x));M=[a(1) a(4)/2 a(5)/2;... a(4)/2 a(2) a(6)/2;... a(5)/2 a(6)/2 a(3)]; Center=-1/2*[a(7),a(8),a(9)]*inv(M); SS=Center*M*Center'+1;[U,V]=eig(M);[~,n1]=max(abs(U(:,1)));[~,n2]=max(abs(U(:,2)));[~,n3]=max(abs(U(:,3)));lambda(n1)=V(1,1);lambda(n2)=V(2,2);lambda(n3)=V(3,3);Scale_axis=[sqrt(SS/lambda(1)),sqrt(SS/lambda(2)),sqrt(SS/lambda(3))]; Center=round(Center);Scale_axis=round(Scale_axis);figureplot3(x,y,z,'b.',Center(1),Center(2),Center(3),'ro');axis equalxlabel('X');ylabel('Y');zlabel('Z');end
加速度校正
磁力计校正
- IMU加速度、磁力计校正--椭球拟合
- IMU中地磁计的椭球面拟合标定法与C++实现
- 磁力计校正和数据处理
- imu 加速度 二
- ceres-solver拟合椭球
- IMU加速度到位移的变换方法
- 椭球曲面拟合算法实现,matlab/C++
- 6轴IMU+磁力计,9轴传感器讲解
- 磁力计
- IMU姿态融合(MPU9250从校正到滤波步骤)
- IMU
- imu
- IMU
- Android 方向传感器与磁力计和加速度传感器之间的关系
- Android 方向传感器与磁力计和加速度传感器之间的关系
- Android 方向传感器与磁力计和加速度传感器之间的关系
- 加速度
- 机器学习-过拟合 (Overfitting)
- Elasticsearch Java API总汇
- 如何在latex中添加参考文献
- css-centered
- Yachen Zhangmysql证明为什么用限制时间,偏移很大会影响性能
- 高精度除以低精精度数
- IMU加速度、磁力计校正--椭球拟合
- 汉语拼音音节的歧义指数
- STM32CubeMX系列教程,关于随机数发生器RNG和循环冗余校验CRC的应用
- bzoj1225: [HNOI2001] 求正整数
- react的传值
- Oracle的三种高可用集群方案
- jquery获取表格除第一行以外的所有行并清空
- Android 使用Palette获取Gallery图片主色调
- 微信企业号/企业微信的corpid和secret