前言:我们使用了激光雷达作为高度来源,但是高度会跳变,出现问题,写篇文章记录一下
1.设备介绍
硬件连接要求
2.参数设置
(1)修改高度数据来源
即修改 EKF2_HGT_MODE 这个参数
barometric pressure :气压计作为高度来源
gps:是以gps的z轴高度作为高度来源
range sensor :距离传感器(激光雷达、超声波)
Vision:视觉来源(t265、d435等深度摄像头)
(2)使能激光雷达
EKF2_RNG_AID参数
选择 Range aid enabled
(3) 设置串口
设置 SENS_TFMINI_CFG 参数
具体串口以下滑栏为实际,选择 TELEM2
开启雷达选项:Setting--Sensors--SENS_TFMINI_CFG,选择 TELEM2,
注:若没有此选项,需要从官网下载源程序后更改对应板子的 default.cmake 文件
文件位置:PX4\Firmware\boards\px4\fmu-v2\default.cmake,fmu-v2 为对应飞控板,具体请参考下面官方教程链接
更改内容:需要添加 distance_sensor/tfmini
(4)用户自定义设置
EKF2_RNG_A_VMAX:TF 系列飞行器最大水平速度触发值,即:仅当飞行速度小于此值时,
TF 系列雷达生效。默认值 1m/s,最小值 0.1m/s,最大值 2m/s。
EKF2_RNG_A_HMAX:TF 系列飞行器最大高度触发值,即:仅当飞行高度小于此值时,TF 系列生效。默认值 5m,最小值 1m,最大值 10m。
(5)高度跳变问题解决
问题描述:
为了解决高度不准的问题,我上了一个测距激光雷达(px4官网支持tfmini版),高度来源修改为了range sensor。激光雷达的高度也更新到了local_position_pose话题的Z轴高度。我户外实际飞行中,0.3-05米,local_position_pose话题的Z轴高度会突变,但是此时激光测距高度是正确的,也就是它的高度来源变化了,这个变化很不准,有可能调到+5米也有可能到-4米,高度变化没有规律。
有效的解决办法:
把tfmini 激光雷达架高,官方推荐10cm以上,我没有合适的地方,放在了高度50cm处,不过也解决了问题。
可能的解决办法:
EKF2_GND_MAX_HGT 改成0
EKF2_GND_MAX_HGT所在PX4网页,参数网页最下面
调整方法就是调极限
不过还是出现了高度突变的问题