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

2023-05-16

传感模块: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

官网提示
分析使能I2C

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支持CXOF和UPFLOW

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

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

MSP Sensor Protocolsrc/main/fc/fc_msp.c

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

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报文格式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X 的相关文章

  • 计算机图形学方向和前景&&3D

    我是刚入坑计算机图形学的小菜鸟 xff0c 在百度上搜索计算机图形学方向和前景和3D xff0c 几乎不能搜到什么有用的东西 xff0c google还能搜到些有用的 xff0c 但是需要翻墙 恰好前几天山大承办的games xff0c 北
  • [Machine Learning & Algorithm] 随机森林(Random Forest)

    1 什么是随机森林 xff1f 作为新兴起的 高度灵活的一种机器学习算法 xff0c 随机森林 xff08 Random Forest xff0c 简称RF xff09 拥有广泛的应用前景 xff0c 从市场营销到医疗保健保险 xff0c
  • 使用SP Racing F3飞控&ROSflight软件包的无人机自主飞行系统

    搭建四旋翼系统 机架 xff1a XR215 Plus 328 分线板 xff1a XR215 Plus PDB 飞控 xff1a SP Racing F3 标准版 xff08 Acro xff09 86 电机 xff1a 银燕RS2205
  • CMake&CMakeList.txt

    1 各种关系 在各种开源项目中 xff0c 经常会发现项目中除了代码源文件 xff0c 还包含了 CMakeList txt Makefile 文件 xff0c 在项目的编译时候需要用到的命令有 cmake make 我们本次想搞清楚他们之
  • 递归遍历无限极分类菜单、菜单树。(php版&&java版)

    文章目录 php版java版 php版 span class token operator lt span span class token operator span php span class token comment 定义一个数组
  • (5)py接口自动化之配置文件&数据库连接详解

    目录 一 配置文件 ini amp yaml 1 作用 2 ini A 语法 B 特点 C 操作方法 3 yaml A 安装第三方库 B 支持的数据类型 C 特性 D 语法 E 数据读取 二 数据库连接与pytho配置文件 1 安装数据库
  • 传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X

    传感模块 xff1a MATEKSYS Optical Flow amp LIDAR 3901 L0X 1 模块介绍2 规格参数3 使用方法Step1 接线方式Step2 安装方式Step3 使用范围 4 存在问题 思考 4 1 MATEK
  • LiDAR 6 FMCW

    FMCW是TOF之外的另一种方式 xff0c 利用光波的调频实现目标的探测 光的波粒二象性 多普勒效应 系统架构 当系统的复杂程度上升后 xff0c 能够采集到的信息也更多 xff0c 包括距离和速度 采用OPA扫描的FMCW激光雷达设计
  • C++编程(五)--- Cmake详解&Makefile详解

    C C 43 43 程序员肯定离不开Makefile和Cmake xff0c 因为如果对这两个工具不熟悉 xff0c 那么你就不是一个合格的C C 43 43 程序员 本文对Makefile和Cmake xff0c 及它们的使用进行了详细的
  • A1&AlienGo--通过realsense-viewer调用相机

    使用机器狗时 xff0c 有时需要通过NX 树莓派上的系统来查看调用相机 xff0c 可以通过realsense提供的realsense viewer来查看 但是机器狗自带的视觉程序会开机自启占用相机 xff0c 所以首先需要杀掉这个进程
  • 无人机拉力测试台研制&测试过程中的9个关键技术点

    随着近年来无人机行业的飞速迭代发展 xff0c 越来越多的相关从业人员选择使用拉力测试台来测试并优化无人机的动力系统 xff0c 本文尝试从无人机拉力测试台的研制和使用角度来阐述无人机拉力测试中的9个关键技术点 1 电磁干扰方面的考虑 测试
  • 用rs_lidar雷达跑lio_sam

    1 准备工作 imu绑定串口有线连接雷达并能用rviz显示雷达点云用两个imu标定包标定imu在完成第二步必要的工作后 xff0c 配置LIO SAM config 下的params yaml参数 xff0c 更改之前建议备份在旁边复制粘贴
  • Oracle获取日期&天数

    一 获取当年所有日期 span class token comment select from span span class token keyword select span trunc span class token punctua
  • Docker数据卷&&自定义Docker镜像

    目录 宿主机与容器之间的文件拷贝 引言 xff1a 利用MySQL镜像安装MySQL服务 从容器中拷贝文件到宿主机 从宿主机拷贝文件到容器 数据卷 数据卷容器 Dockerfile自定义镜像 自定义tomcat8 xff08 熟悉几乎所有的
  • UART&RS232&RS485的区别

    UART RS232 RS485在串口通信中 xff0c 主要区别是电平的不同 xff0c 其中UART通常使用TTL电平 TTL TTL全名是晶体管 晶体管逻辑集成电路 Transistor Transistor Logic 输入高电平最
  • linux中断&poll&selcet按键处理机制

    在上一篇linux按键中断处理中 xff0c 我们采用按键中断处理获取按键 xff0c 在read函数中阻塞读取 xff0c 当按键发生时 xff0c read自动解除阻塞 xff0c 实现应用层读取到相应的按键值 在上一节中如果没有按键到
  • ubuntu(15):对‘casadi::MX::MX(casadi::MX const&)’未定义的引用

    catkin build 编译报错 xff0c 找不到CASADI的头文件目录CASADI INCLUDE DIRS或者库文件也达不到CASADI LIBRARIES xff1b 对 casadi MX horzsplit casadi M
  • C++ 文件的读写(fin && fout)

    如何让键盘输入字符保存在 txt文件中 如何让我们自己在键盘上输入的字符不仅仅在屏幕上显示 xff0c 而且还能保存在特定路径的文件中 xff0c 这让简单枯燥的控制台命令程序变得略有趣 首先 xff0c 先看看cin和cout对象 xff
  • 将 XYZ 点云转换为灰度图像

    每个人 我正在尝试使用 python 将点云 X Y Z 转换为灰度图像 我了解到灰度图像可以由 Numpy 数组生成 但我现在拥有的是一组包含 X Y 和高度的点 我想根据 X Y 和灰度值 即高度 生成灰度图像 有人能给我一个关于这个的
  • 在 Swift 中检查 iOS 设备是否有 LiDAR

    Swift 有没有办法检查设备是否有 LiDAR 传感器 不幸的是 我在苹果官方纪录片和互联网搜索中都没有找到任何信息 我当前的解决方法是确定设备类型 如本文中所述 如何确定当前的iPhone 设备型号 https stackoverflo

随机推荐

  • Royal TS 一款非常好用的SSH客户端,XShell的完美代替品

    Royal TS 一款非常好用的SSH客户端 XShell的完美代替品 使用界面 SSH客户端 RDP客户端 FTP客户端 Windows下载地址 xff1a https www royalapps com ts win download
  • BetaFlight深入传感设计之六:四元数计算方法

    BetaFlight深入传感设计之六 xff1a 四元数计算方法 1 四元数理论1 1 定义1 2 基本运算1 2 1 矢量加减1 2 2 标量乘法 1 3 矢量点叉乘1 3 1 矢量点乘1 3 2 矢量叉乘 1 4 除法求逆 2 程序四元
  • 【杭州】户外航模试飞地踩点

    杭州 户外航模试飞地踩点 1 拱墅区 飞地踩点1 1 城北公园1 2 善贤地铁站口 东侧 1 3 善贤地铁站口 东侧 43 城北公园 2 西湖区 飞地踩点2 1 梅林南路 隧道出口 2 2 十里琅珰2 3 双峰2 4 梅坞春早 3 钱塘区
  • BetaFlight深入传感设计之七:GPS&Baro高度数据融合

    BetaFlight深入传感设计之七 xff1a GPS amp Baro高度数据融合 1 现象2 分析2 1 程序逻辑2 2 GPS精度2 3 数值分析 3 总结 传感器数据融合最主要的目的是为了数据的精准 同时也可以通过多个传感数据源来
  • BetaFlight深入传感设计之八:坐标系

    BetaFlight深入传感设计之八 xff1a 坐标系 1 坐标系统应用1 1 Geographic Coordinate System LLH Longitude Latitude Height1 2 Navigation Coordi
  • 树莓派(Raspberry Pi)FTP服务搭建

    64 TOC 树莓派 Raspberry Pi FTP服务搭建 由于家里使用下载电影 迅雷 xff0c 存储电影 树莓派 43 移动硬盘 xff0c 简易NAS xff1b PC下载的电影可以通过家里的有线主干网络100MB带宽通过samb
  • 四轴飞控DIY Mark4 - 整理&参数优化

    四轴飞控DIY Mark4 整理 amp 参数优化 1 历程2 参数优化2 1 固件BF4 3 12 2 动态怠速值2 3 滤波参数2 4 电调PWM频率2 5 GPS高度配置2 6 返航速度和高度2 7 线性推力修正2 8 图传频道调整
  • BetaFlight深入传感设计之九:传感坐标系/机体坐标系/导航坐标系/经纬度坐标系

    BetaFlight深入传感设计之九 xff1a 传感坐标系 机体坐标系 导航坐标系 经纬度坐标系 1 问题症结2 入手分析2 1 传感坐标系2 2 机体坐标系2 3 导航坐标系2 4 经纬坐标系 3 CF BF iNav代码3 1 机体坐
  • BetaFlight深入传感设计之十:传感器物理特性方向对齐

    BetaFlight深入传感设计之十 xff1a 传感器物理特性方向对齐 1 对齐定义2 常见对齐方式3 自定义对齐方式4 总结5 参考资料6 补充 xff1a gyro 43 mag对齐方式 AHRS Attitude and Headi
  • ArduPilot飞控AOCODARC-H7DUAL固件编译

    ArduPilot飞控AOCODARC H743DUAL固件编译 1 编译目标 xff08 AOCODARC H743DUAL xff09 2 硬件支持包 xff08 APM AOCODARC H743DUAL xff09 3 编译步骤3
  • 四轴FPV手动训练进阶步骤

    四轴FPV手动训练进阶步骤 1 目的2 训练2 1 基本操作训练2 1 1 滞空训练2 1 2 基本动作2 1 3 位置保持 2 2 基本控制训练2 2 1 转弯 Turn 2 2 2 翻滚 Roll 2 2 3 翻转 Flips 2 3
  • 数据库binlog(二进制日志binary log)

    二进制日志中存储的内容称之为事件 xff0c 每一个数据库更新操作 Insert Update Delete xff0c 不包括Select 等都对应一个事件 mysql binlog基本原理 简书 jianshu com https ww
  • 四轴异常炸机分析讨论集锦

    四轴异常炸机分析讨论集锦 0 异常 amp 炸机 汇总目的1 AT9SPro 43 R12DSM 300米信号丢失炸机2 PID参数异常 起飞 Takeoff Runaway 炸机3 接收机信号干扰 炸机4 GPS救援 RC控制信号丢失炸机
  • Github工程中的Markdown语言应用

    Github工程中的Markdown语言应用 1 介绍2 工具2 1 下载链接2 2 编辑界面2 3 插件安装 3 基本操作3 1 标题编写3 2 正文编写3 3 代码块编写3 4 加粗倾斜3 5 有序列表3 6 无序列表3 7 行内代码编
  • iNavFlight之MSP DJI协议分析

    iNavFlight之MSP DJI协议分析 1 iNav串行口通信1 1 iNav 串口任务1 2 调用逻辑 2 iNav串行抽象2 1 框架代码2 2 MSP DJI 协议处理 3 DJI协议相关实现3 1 DJI串口初始化3 2 DJ
  • iNavFlight之MSP DJI协议天空端请求报文

    iNavFlight之MSP DJI协议天空端请求报文 1 报文格式 请求 2 报文标志 flag 3 报文命令 cmd 4 参考资料 MSP DJI协议是用于DJI天空端与飞控端之间的通信协议 xff0c 其工作模式符合C S经典设计 这
  • iNavFlight之MSP DJI协议飞控端请求应答

    iNavFlight之MSP DJI协议飞控端请求应答 1 报文格式2 报文标志 flag 3 报文命令 cmd 4 请求应答 amp 反馈报文4 1 DJI MSP API VERSION4 2 DJI MSP FC VARIANT4 3
  • 大疆Tello UDP控制协议接口

    大疆Tello UDP控制协议接口 1 设计架构2 UDP报文格式2 1 控制报文2 2 查询报文2 3 状态报文 3 命令集3 1 控制报文 控制命令3 2 控制报文 设置命令3 3 查询报文 读取命令 4 状态报文 这里介绍了大疆Tel
  • 蓝牙无线自制串口模块连接穿越机配置工具

    蓝牙无线自制串口模块连接穿越机配置工具 1 目的2 验证环境3 BLE SPP验证4 BT SPP验证5 参考资料6 补充资料 windows10配置全过程截图6 1 添加设备 搜索蓝牙串口设备6 2 连接 选中SnapAirUnit设备6
  • 传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X

    传感模块 xff1a MATEKSYS Optical Flow amp LIDAR 3901 L0X 1 模块介绍2 规格参数3 使用方法Step1 接线方式Step2 安装方式Step3 使用范围 4 存在问题 思考 4 1 MATEK