PX4 磁罗盘干扰分析

推力与磁场关系

无人机上的电机电流会干扰无人机上搭载的磁罗盘,PX4官方提供了一些方式,通过分析飞行日志,判断电机是否对磁罗盘有严重影响。
PX4官方手册介绍:Thrust and Magnetic Field
将飞行日志导入PX4官方的Flight Review中,其中图表Thrust and Magnetic Field展示了推力磁罗盘采集的原始磁场向量的模长之间的关系。

正常情况

正常
正常状况下,飞行全程磁罗盘的曲线接近为一个常值,并且推力与磁场之间不存在相关性。

干扰情况

与推力相关

干扰情况
明显可以看出,磁场受到推力变化的影响。两者存在相关性

解决方法

1.增加外置罗盘
2.远离电机安装
3.罗盘补偿(后文会介绍)

与推力不相关

不存在明显相关性但磁场不为常值
还有一种情况,即磁场不明显与推力相关,但不维持在一个常值。这种情况可能有两个原因:
1.磁罗盘没有正确校准
2.飞行过程受到外部干扰

罗盘补偿

无人机的磁罗盘应该安装在远离大电流的位置,比如安装时应远离电机,因为电流的诱发磁场会干扰磁罗盘的读数。同时磁场强度是按与电缆距离的二次方衰减的,因此最有效的排除干扰方式应当是改变安装位置,但如果无法改变安装位置,那么也可以在软件层面,通过推力补偿/电流补偿尽量消除这部分影响。
PX4官方手册介绍:Compass Power Compensation

操作流程

获取用于分析的日志

  1. 所使用固件最好是v1.11.0之后版本
  2. 执行磁罗盘校准
  3. 修改参数SDLOG_MODE = 2,使无人机从上电后就开始记录日志
  4. 修改参数SDLOG_PROFILE
  5. 使用外力固定无人机。因为后续要推动油门,需要确保无人机无法移动,但不能影响到电机的正常转动。
  6. 飞行模式要调整为ACRO,在该模式下,无人机不会尝试补偿外界阻力,从而得到更为准确的数据。

开始实验:

  1. 解锁无人机,缓慢推动油门到最高位置
  2. 油门到达最高位置后,缓慢降低油门到0
  3. 将无人机上锁

分析日志

PX4源码里提供了分析磁罗盘补偿参数的脚本
具体目录:
PX4-Autopilot/src/modules/sensors/vehicle_magnetometer/mag_compensation/python/mag_compensation.py
用下述命令运行该脚本

python mag_compensation.py ~/path/to/log/logfile.ulg thrust(current)
/* 
* ~/path/to/log/logfile.ulg是实验日志的存放目录
* thrust/current选择用推力补偿或是用电流补偿
*/

会得到拟合度曲线
拟合度曲线
和计算得到的补偿参数的数值:
磁罗盘补偿参数

调整罗盘补偿参数

得到上述补偿参数的数值 CAL_MAGx_XCOMP、CAL_MAGx_YCOMP、CAL_MAGx_ZCOMP之后。首先需要修改参数CAL_MAG_COMP_TYPE
如果是用推力补偿,CAL_MAG_COMP_TYPE = 1
如果是用电流补偿,CAL_MAG_COMP_TYPE = 2
然后修改对应参数CAL_MAGx_XCOMP、CAL_MAGx_YCOMP、CAL_MAGx_ZCOMP的数值即可。

附上一个对比结果:
补偿前:
补偿前
补偿后:
补偿后

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值