文号D935736
145
1
收藏
编辑文章

数据校准

关键词

惯性导航传感器校准

嗯,前些时间考试一大堆,终于有时间更新了。

大致说下校准。

角速度不用校准,实测出厂校准够了。

磁场校准用提供的上位机,我用的是维特智能的,这个问客服要就行,不同厂家应该一样,有校准程序,校准方法也很简单。基本就是在上位机里点进去,然后转动传感器,获取数据后停止校准并写入。当然,重点是不能在室内校准,因为室内的金属和电器会显著影响磁场的分布,可以在室外找个没人的地方,比如天台,这样防止校准失败,也能防止社死。如果有发现无法校准,或者传感器的磁场数据诡异,可以尝试拔出单片机再插回去,或者先上电再插入单片机,也可以长按复位,我也不知道什么原理,但我出现这个问题确实这样解决了,怀疑可能和HAL库初始化串口有关,建议上电后按1s左右的复位再使用。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

类似这样,校准方法大同小异。

实测需要校准的是加速度。

根据之前的理论推导(在惯性导航开发0中),证明了可以线性校准(当然是矩阵形式),然后我们其实不需要太高的校准精度,毕竟mems陀螺仪精度本身就不算高,所以我把之前的程序简化了,在ai的帮助下搞了新的图形化界面,优化了防呆设计。核心思路简化了,就是六面校准法,单纯一次最小二乘法解决。

改一下,实测不行,还是用之前的程序,见1.4 加速度传感器的校准

实测这个精度更高,然后我小改了一下,数据改成浮点数的了,还是用串口,用"%f,%f,%f\r\n"的格式输出数据,增加输入当地重力加速度的窗口。

然后有个问题,实测这个校准精度似乎和让传感器拜访的角位置的均匀性有关,而且也不一定越校越准。我是在一次经过40个位置的校准中获取了目前最准的一组数据。推测这和非线性因素有关。不过这个以后迭代再考虑吧。

改动后的程序在此。

attachment iconacc_calibration.py17.82KBPY0次下载

attachment iconattitude_calibration.py4.01KBPY0次下载

attachment iconellipsoid_calibration.py3.95KBPY0次下载

attachment iconacc_calibration.exe68.90MBEXE0次下载

我放几张校准后的两个参考图吧,但不是最准的那次的


Figure_1.pngFigure_2.png

[修改于 10个月10天前 - 2025/12/24 15:53:15]

1
tmn_A 作者
10个月12天前 修改于 10个月10天前 IP:广东
D935782

我在新的程序中加了直接输出c语言数组的功能,可以直接复制。

我的校准矩阵:

float CK[3][3] = {{1.00415431, -0.00401098, -0.00994186},\
                 {0.00360330, 1.00102240, 0.01289015},\
                 {0.00849702, -0.01092791, 1.00027213}};
float CB[3] = {0.00528443, -0.00364301, -0.09124716};

想参与大家的讨论?现在就 登录 或者 注册。

tmn_A
进士 机友 笔友
文章
14
回复
172
学术分
0
2020/08/28注册,3时9分前活动

辰星引力工作室成员,火箭爱好者,嵌入式爱好者,物理爱好者,还有亚雷斯塔克劳利是我老婆。

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:广东
所在专栏
29 人订阅 24 篇文章
查看文章
ID: {{ user.uid }}
投诉或举报
加载中...
{{ tip }}
请选择违规类型:
{{ reason.type }}

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{ format('YYYY/MM/DD HH:mm:ss', toc) }}
回复
加入收藏取消收藏