ArduPilot开源代码之MatekSys Optical Flow 3901-L0X

news/2024/7/10 21:02:02 标签: autopilot, 开源

ArduPilot开源代码之MatekSys Optical Flow 3901-L0X

  • 1. 源由
  • 2. 安装
  • 3. 参数配置
    • 3.1 配置光流定位
    • 3.2 配置激光测距
    • 3.3 辅助配置
  • 4. 测试
    • 4.1 光流数据测试
    • 4.2 测距数据测试
    • 4.3 飞行注意事项
    • 4.4 实际飞行测试
  • 5. 参考资料

1. 源由

之前介绍过MatekSys Optical Flow 3901-L0X模块:

【1】传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X
【2】iNavFlight之MSP v2 Sensor报文格式

当时主要是在inav固件上进行测试,整体感觉效果一般。

鉴于本次打算将电传模块换到VTOL飞机上去飞固定翼,
【1】Ardupilot开源飞控之VTOL之旅:配件规格
【2】Ardupilot开源飞控之VTOL之旅:配件试装

所以借着这个机会,将MatekSys Optical Flow 3901-L0X替换Mark4的电传,看下Ardupilot效果如何?

2. 安装

  1. 电源供电5V
  2. UART4_Tx/UART4_Rx用于通信
  3. 安装方法参考:传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X

3. 参数配置

3.1 配置光流定位

FLOW_TYPE = 7 (MSP)
FLOW_FXSCALER = -800
FLOW_FYSCALER = -800
SERIAL4_PROTOCOL = 32 (MSP)
SERIAL4_BAUD = 115 (115200 bps)

3.2 配置激光测距

RNGFND1_TYPE = 32 (MSP)
RNGFND1_MIN_CM = 8 to set range finder’s minimum range to 0.08m
RNGFND1_MAX_CM = 200 to set range finder’s maximum range to 2m
RNGFND1_ORIENT = 25 (Facing Down)

注:文档中不推荐使用这颗板载的激光测距传感,可能是测量距离太近(0~2m),或者数据的稳定性受到环境影响较大。

3.3 辅助配置

  1. Loiter和PosHold飞行模式下,需要提供:光流+测距+GPS定位信息。

  2. FlowHold飞行模式下,仅需提供:光流位置信息。

  3. 定位优化:(GPS/IMU/OpticalFlow在15cm距离以内,通常对性能没有影响);距离重心的位置;

Optical Flow

FLOW_POS_X, FLOW_POS_Y, FLOW_POS_Z
FLOW_POS_X = 0.05 set to 5 cm forward
FLOW_POS_Y = 0
FLOW_POS_Z = 0

IMU

INS_POS1_X, INS_POS1_Y, INS_POS1_Z
INS_POS2_X, INS_POS2_Y, INS_POS2_Z
INS_POS3_X, INS_POS3_Y, INS_POS3_Z

GPS

GPS_POS1_X, GPS_POS1_Y, GPS_POS1_Z
GPS_POS2_X, GPS_POS2_Y, GPS_POS2_Z

Range Finder (Sonar or Lidar)

RNGFND1_POS_X, RNGFND1_POS_Y, RNGFND1_POS_Z
RNGFND2_POS_X, RNGFND2_POS_Y, RNGFND2_POS_Z

Visual Odometry

VISO_POS_X, VISO_POS_Y, VISO_POS_Z

4. 测试

4.1 光流数据测试

  1. opt_m_x, opt_m_y, opt_qua显示非零值,持续跳动。

在这里插入图片描述

  1. OF.flowX, OF.bodyX, IMU.GyrX 趋势和大小基本一致

在这里插入图片描述

  1. OF.flowY, OF.bodyY, IMU.GyrY 趋势和大小基本一致

在这里插入图片描述

4.2 测距数据测试

状态栏 rangefinder1不为零,且随着姿态、高度变化,数值缓慢线性变化。

在这里插入图片描述

4.3 飞行注意事项

  1. 飞行预检查,取消GPS检查项。

注:室内无GPS,若不取消,无法arm。
在这里插入图片描述
2. 第一次短距离STABILIZE 飞行(通常现在都是4.4.0以上的固件,所以大部分情况下采用的是EKF3算法)

EK3_SRC1_VELXY = 0 //we don’t want the optical flow being used by the EKF at this stage

短距离飞行后,下载日志检查:

  • OF.bodyXOF.bodyYIMU.GyrX, IMU.GyrY 都有变化且趋势一致
  • EKF5.meaRng变化趋势和范围与实际飞机高度变化一致

注:检查日志数据EKF5.meaRng,最新4.4.0固件XKF5.rng

  • HereFlow calibration - what and where is EKF5.meaRng
  • What happened to meaRng?

在这里插入图片描述

  1. 第二次飞行

室内FlowHold起飞

EK3_SRC1_VELXY = 5 //OpticalFlow
EK3_SRC1_POSXY = 0 //不要GPS

室外Loiter起飞

EK3_SRC1_VELXY = 5 //OpticalFlow
EK3_SRC1_POSXY = 3 //GPS

注:通常户外是有GPS的,所以Loiter 是可以正常起飞;但是室内没有GPS,此时就需要使用FlowHold。

参考:Prearm: Need Position Estimate

4.4 实际飞行测试

这里配置了第二次室内飞行参数,验证MatekSys Optical Flow 3901-L0X的使用效果。

Ardupilot 4.4.0 Mark4 + MatekSys Optical Flow 3901-L0X + FlowHold

对比iNav光流悬停,详见:传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X

iNav

5. 参考资料

【1】传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X
【2】iNavFlight之MSP v2 Sensor报文格式
【3】MatekSys Optical Flow 3901-L0X


http://www.niftyadmin.cn/n/5303118.html

相关文章

基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互、温湿度/新闻热点/日期显示等

基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互、温湿度/新闻热点/日期显示等

作业--day41

利用模板类完成顺序表 #include <iostream>using namespace std;//模板类 template <typename T> class SeqTab{T arr[20];int maxsize; public:SeqTab():maxsize(0){}void Insert(T a);void Search(T a);void Delete(int index);void Show(); };//尾插 template …

mysql与其他数据库有何区别?

随着信息技术的不断发展&#xff0c;数据库系统在各行各业中得到了广泛的应用。其中&#xff0c;MySQL作为一种流行的关系型数据库管理系统&#xff0c;与其他数据库系统存在一些明显的区别。本文将就MySQL与其他数据库的区别进行深入探讨。 1、更低的成本 MySQL是一个开源的关…

15.bash shell中自定义命令行选项与getopt/getopts

文章目录 linux shell 命令行选项1.命令行选项的手动实现简单选项分离命令行参数和选项带值的选项合并选项 2.使用 getopt 命令getopts命令选项标准化 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; linux shell 命令行选项 选项是跟在单…

只需一招彻底解决SOLIDWORKS不显示缩略图预览

SOLIDWORKS缩略图能够让工程师便于识别想要打开的模型&#xff0c;但经常会有用户遇到在资源管理器中查看SOLIDWORKS文件时&#xff0c;仅显示SOLIDWORKS的图标&#xff0c;而没有相关文件的预览缩略图。 Windows文件夹选项设置 首先确保Windows文件夹选项设置&#xff0c;显…

DDD落地实践-架构师眼中的餐厅

本文以餐厅场景为叙事主线&#xff0c;以领域驱动为核心思想&#xff0c;结合架构设计与功能设计方法论。是从领域分析到落地的全过程案例&#xff0c;内容偏重于落地&#xff0c;因此不乏一些探讨&#xff0c;欢迎指正。 文章较长、全程干货、耐心读完、必有收获。 本文不针对…

设置代理IP地址对网络有什么影响?爬虫代理IP主要有哪些作用?

在互联网的广泛应用下&#xff0c;代理IP地址成为了一种常见的网络技术。代理IP地址可以改变用户的上网行为&#xff0c;进而影响网络访问的速度和安全性。本篇文章将探讨设置代理IP地址对网络的影响&#xff0c;以及爬虫代理IP的主要作用。 首先&#xff0c;让我们来了解一下代…

同义词替换器降低论文重复率的最新技术趋势预测

大家好&#xff0c;今天来聊聊同义词替换器降低论文重复率的最新技术趋势预测&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;同义词替换器降低论文重复率…