传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X

  • 1. 模块介绍
  • 2. 规格参数
  • 3. 使用方法
    • Step1: 接线方式
    • Step2: 安装方式
    • Step3: 使用范围
  • 4. 存在问题(思考)
    • 4.1 MATEK 3901-L0X 输出协议格式?
      • 4.1.1 支持光流计协议(CXOF)
      • 4.1.2 支持光流计+激光测距协议(UPFLOW)
    • 4.2 iNav & ArduPilot使用该模块存在什么问题?
    • 4.3 如何合理的匹配飞控固件?
    • 4.4 关于“Sonar connection (Trig & Echo) has not been implemented”的问题?
  • 5. iNV - MSP Sensor Protocol (突破)
  • 6. MATEK 3901-L0X定位效果
  • 7. 测试效果
  • 8. 参考资料

这里主要针对模块使用过程中遇到的问题做一些整理和总结。

1. 模块介绍

详见: MATEKSYS Optical Flow & LIDAR 3901-L0X

Beginners Guide To Optical Flow Sensor with LIDAR on Drone MATEKSYS 3901-L0X Opt

其主要硬件构成:

  1. PMW3901 Optical Flow Sensor --> SPI
  2. VL53L0X Lidar Sensor --> I2C
  3. STM32L051/STM32F051 --> TTL(UART)

2. 规格参数

PMW3901

Field of view: 42 degree
Working range: > 80 mm
Minimum Illumination: >60Lux

VL53L0X

Field of view: 27 degree
Working range: 20 mm ~ 2000 mm

模块参数

Input voltage: 4.5~5.5V
Power Consumption: 40mA
Size: 3612mm (F051 version) 2g
Size: 36
13mm (L051 version) 2g

3. 使用方法

根据官网描述和规格分析,我们大致可以知道该模块的使用步骤如下:

Step1: 接线方式

传感模块:Tx/Rx/GND/VCC与飞控对应引脚相接

Step2: 安装方式

  1. 光流计安装方向与机头保持一直,且安装在航模底部。
  2. 激光测距距离地面高度保持20mm以上。

Step3: 使用范围

鉴于以下细节规格:

光流计 > 80 mm
激光测距 20 mm ~ 2000 mm
气压计 10cm以内存在气垫效应

整体上要做到定点定高的悬停功能存在以下局限:

  1. 激光测距使能:20mm ~ 80mm ==》VL53L0X定高稳定,定位漂移
  2. 激光测距使能:80mm ~ 2000mm ==》VL53L0X定高稳定,定位稳定
  3. 激光测距使能:> 2000mm ==》Baro定高,定位稳定
  4. 激光测距【不】使能:< 80mm ==》Baro定高,定位漂移
  5. 激光测距【不】使能:> 80mm ==》Baro定高,定位稳定

4. 存在问题(思考)

基于使用,以及传感应用逻辑,有以下问题:

4.1 MATEK 3901-L0X 输出协议格式?

4.1.1 支持光流计协议(CXOF)

  +---------------------------+|      header (0xFE)        |+---------------------------+|number of data bytes (0x04)|+---------------------------+|     x-motion high byte    |+---------------------------+|     x-motion low byte     |+---------------------------+|     y-motion high byte    |+---------------------------+|     y-motion low byte     |+---------------------------+|         checksum          |+---------------------------+|      surface quality      |+---------------------------+|       footer (0xAA)       |+---------------------------+

4.1.2 支持光流计+激光测距协议(UPFLOW)

  +------------------------------+|   up  header 1 (0xFE)        |+------------------------------+|   up  header 2 (0x0A)        |+------------------------------+|  flow_x_integral low byte    |+------------------------------+|  flow_x_integral high byte   |+------------------------------+|  flow_y_integral low byte    |+------------------------------+|  flow_y_integral high byte   |+------------------------------+|integration_timespan low byte |+------------------------------+|integration_timespan high byte|+------------------------------+|     distance_z low byte      |+------------------------------+|     distance_z high byte     |+------------------------------+|     optical flow valid       |+------------------------------+|    distance credibility      |+------------------------------+|            XOR               |+------------------------------+|        footer (0x55)         |+------------------------------+

4.2 iNav & ArduPilot使用该模块存在什么问题?

目前从协议格式及代码角度,CXOF & UPFLOW协议不兼容。

从兼容性角度看:

Ardupilot代码中,直接支持CXOF & CXOF协议。
iNav代码中,尚未支持UPFLOW协议

4.3 如何合理的匹配飞控固件?

从光流和测距传感类型支持广度角度看:

  1. Ardupilot生态支持的的更好,支持UPFLOW
  2. 而iNav在测距传感主要停留在直接使用I2C的测距芯片:srf10 tof10120 us42 vl5310x vl5311x,虽然benewake串行协议,但是价格相对略贵。
  3. MATEK 3901-L0X在官网介绍中,也提示如果VL5310x 使能,则可以使用2米以下的定高功能,详见官网或者下面截图。
  4. 关于VL5310x使能的硬件配置分析(不确定,因为可能还会与嵌入式软件和硬件设计有关)

鉴于上述情况,如果iNav希望使用MATEK 3901-L0X模块,就需要硬件上确认如何使能VL53L0X 芯片,并通过I2C将数据传输到飞控上。

注:VL53L0X 可能与STM32L051/STM32F051连接,至于STM32是否固件上操做I2C控制该芯片,完全取决于软硬件的使能方法。该信息从官网资料上看,并未给出。

该模块使用的参考视频详见:Beginners Guide To Optical Flow Sensor with LIDAR on Drone | MATEKSYS 3901-L0X Optical Flow & LIDAR


4.4 关于“Sonar connection (Trig & Echo) has not been implemented”的问题?

估计是指MATEKSYS 3901-L0X模块,尚没有支持外接声呐测距功能。

现实情况:

  1. MATEKSYS 3901-L0X本身是具有激光测距(20mm ~ 2000mm)的VL53L0X Lidar传感器;
  2. 通常飞控板子都是集成了一个气压计芯片;
  3. 声呐精度相对于激光测距来说不够精准(通常来说:激光mm级别,声呐cm级别);

初步分析:

  1. 【猜测】该模块期望解决定高(低空)+ 定位
  2. 【使用】根据规格总结的使用范围与猜测期望解决问题一致
  3. 【需求】户外飞行定高定位:通常在GPS+Baro传感融合,效果良好(开阔场地)
  4. 【需求】户外飞行RTH功能:除了GPS返航,主要是一个自动精准降落,VL53L0X Lidar能够比较好的处理在2米以下高度精准性
  5. 【猜测】该模块补充声呐硬件接口,怀疑希望做数据融合应对低空的各种场景,比如:水面/复杂地形

不知道是什么原因导致MATEK最后没有将该模块以完整功能投入市场。市场需求(购买力),数据融合效果,技术问题,还是其他问题。虽然硬件接口上都遗留了产品规划的一些构思,但是在实际开发和产品化阶段,停留在现在的情况。

5. iNV - MSP Sensor Protocol (突破)

之前主要是BF代码看的多点,而且拿到了一份upixels的光流激光二合一协议手册,总是纠结在CXOF和UPFLOW上。

src/main/target/common.h

上面的这个角度去看问题,确实会就在iNav在使用MATEK 模块会遇到一些实际问题。

最终,还是仔细看了MATEK官网给出的一个信息,支持MSPV2格式通信协议。

src/main/fc/fc_msp.c


按照上述角度,可以非常清晰的看清传感数据逻辑流程:

PMW3901 Optical Flow Sensor  --- SPI  ---+|+--->   STM32L051/STM32F051 --- TTL(UART/MSP Sensor Protocol)  ---> Flight Control|
VL53L0X Lidar Sensor         --- I2C  ---+

6. MATEK 3901-L0X定位效果

Matek Optical Flow and Lidar Sensor Journey. Part 1

Matek Optical Flow and Lidar Sensor Journey. Part 2

Matek Optical Flow and Lidar Sensor Journey. Part 3

7. 测试效果

目前的效果尚不理想主要存在以下几个问题:
1)【未解决】桨叶有缺损
2)【未解决】螺丝有缺失
3)【待改善】水平校准(iNav多次水平校准 + 遥控器微调,能暂时1~2秒内保持稳定悬停)
4)【待改善】地面花纹(漫反射)
5)【待改善】光照照度需要量化
6)【未解决】定制的posHold算法

iNav

8. 参考资料

【1】Multiwii Serial Protocol Version 2
【2】BetaFlight模块设计之三十二:MSP协议模块分析
【3】iNavFlight之MSP Sensor报文格式

传感模块:MATEKSYS Optical Flow LIDAR 3901-L0X相关推荐

  1. Boost:将帧传输到GPU以及如何应用用OpenCL编写的naive optical flow

    Boost:将帧传输到GPU以及如何应用用OpenCL编写的naive optical flow 实现功能 C++实现代码 实现功能 Boost的compute模块,将帧传输到GPU以及如何应用用Op ...

  2. 【论文阅读】【综述】从Optical Flow到Scene Flow

    文章目录 Optical Flow FlowNet(2015ICCV) FlowNet2.0(2017CVPR) PWCNet(2018CVPR) MaskFlowNet(2020CVPR) Sene ...

  3. 【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)

    一.论文简述 1. 第一作者:Deqing 2. 发表年份:2018 3. 发表期刊:CVPR 4. 关键词:光流估计.端到端训练.代价体.金字塔 5. 探索动机:大多数性能最好的方法都采用能量最小化 ...

  4. BetaFlight深入传感设计:传感模块设计框架

    BetaFlight深入传感设计:传感模块设计框架 1. BetaFlight传感器简介 2. BetaFlight传感器嵌入式软件设计 3. HwPreInit/HwInit阶段 4. HwIo阶段 ...

  5. RAFT: Recurrent All-Pairs Field Transforms for Optical Flow

    Abstract 递归全对场变换:一种新的光流深度神经架构.RAFT提取像素特征,对所有像素对建立多尺度4D关联体积,并且使用一个循环单元在关联体积上执行查找来迭代地更新光流场. Motivation ...

  6. 【入门向】光流法(optical flow)基本原理+深度学习中的应用【FlowNet】【RAFT】

    目录 1. 理论背景 1.1 光流 1.2 光流场 2. 基本原理 2.1 假设条件 2.2 约束方程 3. 光流估计方法 3.1 思路概述 3.2 优缺点对比 4. 稠密光流和稀疏光流 4.1 稠密 ...

  7. 《Optical Flow in the Dark》光流

    光流其实就是目标物在第n帧与第n+1帧之间的位移差,也就是帧与帧的像素点的2维向量差. 在稠密光流图中,利用颜色表示目标光流向量的方向和强度 <Optical Flow in the Dark& ...

  8. RAFT:Recurrent All-Pairs Field Transforms for Optical Flow

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Abstract 1 Introduction 2 Related Work Optical Flow as Energy ...

  9. CNN光流计算2--FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks

    FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks CVPR2017 Code: https://github.c ...

最新文章

  1. 十三: 悲观锁乐观锁:解决丢失更新问题
  2. python对文件的操作模式_python对文件的操作
  3. 【数据结构与算法】之深入解析“两数之和”的求解思路与算法示例
  4. docker-compose 一键部署分布式配置中心Apollo
  5. 设计: ListView 接口,and the missing read-only interfaces in java collection framework
  6. Steady Cow Assignment
  7. mysql中的lgwr_MySQL Replication和Oracle logical standby的原理对比
  8. 杭电OJ(HDU)-ACMSteps-Chapter Three-《FatMouse#39; Trade》《今年暑假不AC》《排名》《开门人和关门人》...
  9. 如何修复“ DNS_PROBE_FINISHED_NXDOMAIN”错误
  10. 关于VOID *在cl与gcc的不同(无意中发现)
  11. 俄罗斯方块c语言代码及注释,C语言代码实现俄罗斯方块
  12. sqlite创建表格
  13. 二极管正向浪涌测试系统
  14. 51单片机--时钟芯片ds1302
  15. Linux工作目录切换命令
  16. php whois查询,php whois查询API制作方法
  17. 服务器2008r2如何系统还原,windows如何创建系统还原点和还原点还原系统的使用方法...
  18. 如何把很多照片拼成一张照片_如何能把多张照片拼凑在一张上图片上
  19. JAVA - 垃圾回收
  20. 9006:单链表的建立和遍历

热门文章

  1. 中级职称软考设计师笔记之【多媒体基础】
  2. win10 C盘居然一夜间满了,清理C盘过大
  3. 四旋翼无人机动力学模型
  4. 士兵职业基本适应性测试软件,士兵职业基本适应性检测系统 类型1.2.3怎么分...
  5. 接口测试要点及用例设计
  6. 基于SSM的酒店前台管理系统的设计与实现,高质量论文范例-2022年最新,可直接使用
  7. [ANT]apache ant 安装说明
  8. minio搭建文件存储服务
  9. 微小说:如果你在骗我,真希望你能骗我一辈子
  10. sqlhelper 的使用 (C#)超级详细的入门教程