目录
3.8、Hex HereFlow PMW3901 光流传感器
px4使用手册中光流模块配置文档下载:【无人机领域】基于PX4的光流模块OpticalFlow配置与应用:无人机光流传感器及测距仪详细设置指南PX4使用手册光流模块详细配置资源-CSDN文库
1、光流概述
参考:px4使用手册:Optical Flow | PX4 Guide (v1.15)
光流利用向下的摄像头和向下的距离传感器来估算速度。
视频:PX4 在位置模式下使用 ARK Flow 传感器进行速度估算以保持位置。
1.1、设置
光流设置需要一个向下的摄像头和一个距离传感器(最好是激光雷达)。这些设备可以通过 MAVLink、I2C 或任何其他支持该外设的总线进行连接。
注意事项
如果光流设备通过 MAVLink 连接到 PX4,它必须发布到 OPTICAL_FLOW_RAD 主题,距离传感器必须发布到 DISTANCE_SENSOR 主题。
在不同方向移动时,光流的输出必须如下:
车辆移动方向 | 积分光流 |
---|---|
向前 | +Y |
向后 | -Y |
向右 | -X |
向左 | +X |
对于纯旋转运动,
integrated_xgyro 和 integrated_x(分别对应 integrated_ygyro 和 integrated_y)必须相同。
一种常见的设置是使用 PX4Flow 和 Lidar-Lite,如下所示。
(如图为光流激光雷达连接的图片)
光流设备的传感器数据会与其他速度数据源进行融合。
在估算器中必须配置融合传感器数据的方法以及与车辆中心的任何偏移量。
1.2、光流传感器 / 摄像头
- ARK Flow:ARK Flow 是一款基于 DroneCAN 的光流传感器、距离传感器和惯性测量单元(IMU)。它配备了 PAW3902 光流传感器、Broadcom AFBR-S50LV85D 30 米距离传感器和 BMI088 惯性测量单元。
- 基于 PMW3901 的传感器:PMW3901 是一种光流跟踪传感器,类似于电脑鼠标中的传感器,但经过适配,可在 80 毫米至无穷远的距离范围内工作。它被用于许多产品中,包括 Bitcraze、Tindie、Hex、Thone 和 Alientek 等公司的产品。
- 其他摄像头 / 传感器:也可以使用集成了摄像头的开发板或四轴飞行器。为此,可以使用光流仓库(另见 snap_cam)。
1.3、测距仪 Range Finders
你可以使用任何受支持的距离传感器。不过,由于激光雷达的稳定性和准确性,我们建议使用激光雷达而不是超声波传感器。
1.4、估算器 Estimators
估算器融合来自光流传感器和其他数据源的数据。
必须为所使用的估算器指定融合方式的设置以及相对于车辆中心的偏移量。
偏移量是相对于车辆方向和中心计算的,如下所示。
(如图为光流偏移量的图片)
基于光流的导航可由可用的估算器 EKF2 和 LPE(已弃用)启用。
1.5、扩展卡尔曼滤波器(EKF2)
对于使用 EKF2 的光流融合,设置 EKF2_OF_CTRL。
如果您的光流传感器偏离车辆中心,您可以使用以下参数进行设置。
参数 | 描述 |
---|---|
EKF2_OF_POS_X | 体框中光流焦点的 X 位置(默认为 0.0m)。 |
EKF2_OF_POS_Y | 体框中光流焦点的 Y 位置(默认为 0.0m)。 |
EKF2_OF_POS_Z | 体框中光流焦点的 Z 位置(默认为 0.0m)。 |
2、ARK Flow
参考:ARK Flow | PX4 Guide (v1.15)
ARK Flow 是一款开源的基于 DroneCAN 的光流、距离传感器以及惯性测量单元(IMU)模块。
2.1、购买渠道
可从以下渠道订购该模块:ARK Flow – ARK Electronics
- ARK Electronics(美国)
2.2、硬件规格
开源原理图和物料清单
2.3、传感器
- PixArt PAW3902 光流传感器:能在大于 9 勒克斯的超低光照条件下进行追踪;工作范围广,从 80 毫米到 30 米;最高转速可达 7.4 弧度 / 秒;板载 40 毫瓦红外 LED,可改善低光环境下的性能
- Broadcom AFBR-S50LV85D 飞行时间距离传感器:集成 850 纳米激光光源;视场角为 12.4°×6.2°,有 32 个像素;典型测距范围可达 30 米;可在高达 200,000 勒克斯的环境光下工作;在各种表面条件下都能良好工作;发射光束为 2°×2°,可照亮 1 到 3 个像素
- 博世 BMI088 六轴 IMU 或 Invensense ICM - 42688 - P 六轴 IMU
- STM32F412CEU6 微控制器
- 两个 Pixhawk 标准 CAN 连接器(4 针 JST GH)
- Pixhawk 标准调试连接器(6 针 JST SH)
- 软件可切换的内置 CAN 终端电阻
- 小尺寸规格:3 厘米 ×3 厘米 ×1.4 厘米
- LED 指示灯
- 美国制造
2.4、硬件设置
布线
ARK Flow 使用 Pixhawk 标准的 4 针 JST GH 电缆连接到 CAN 总线。更多信息,请参考 CAN 布线说明。
安装
建议的安装方向是使板上的连接器指向飞行器后方,如下图所示。
(此处应有一张 ARK Flow 模块安装方向的图片)
这对应参数 SENS_FLOW_ROT 的默认值(“0”)。如果使用不同的安装方向,需相应更改该参数。
传感器可安装在机架的任何位置,但在 PX4 配置过程中,你需要指定其相对于飞行器重心的焦点位置。
2.5、固件设置
ARK Flow 运行 PX4 DroneCAN 固件。因此,它支持通过 CAN 总线进行固件更新和动态节点分配。
ARK Flow 板出厂时已预装了较新的固件,但如果你想自己构建并刷写最新固件,请参阅《PX4 DroneCAN 固件 > 构建固件》。
- 固件目标:ark_can - flow_default
- 引导加载程序目标:ark_can - flow_canbootloader
2.6、飞行控制器设置
注意事项
如果飞行控制器开机时没有插入 SD 卡,Ark Flow 将无法启动。
启用 DroneCAN
为了使用 ARK Flow 板,需将其连接到 Pixhawk CAN 总线,并通过将参数 UAVCAN_ENABLE 设置为 “2”(用于动态节点分配)或 “3”(如果使用 DroneCAN 电调)来启用 UAVCAN 驱动程序。
具体步骤如下:
- 在 QGroundControl 中,将参数 UAVCAN_ENABLE 设置为 “2” 或 “3”,然后重启(详见《查找 / 更新参数》)。
- 将 ARK Flow 的 CAN 接口连接到 Pixhawk 的 CAN 接口。
启用后,模块将在启动时被检测到。光流数据应会以 10Hz 的频率传输。
PX4 中 DroneCAN 的配置在《DroneCAN > 启用 DroneCAN》中有更详细的解释。
2.7、PX4 配置,QGC中参数设置
你需要设置 EKF 光流参数,以启用光流测量数据融合用于速度计算,设置必要的 DroneCAN 参数,并在传感器未位于飞行器中心时定义偏移量。
在 QGroundControl 中设置以下参数:
- 通过设置 EKF2_OF_CTRL 启用光流融合。
- 若要选择性禁用 GPS 辅助,将 EKF2_GPS_CTRL 设置为 “0”。
- 启用 UAVCAN_SUB_FLOW。
- 启用 UAVCAN_SUB_RNG。
- 将 EKF2_RNG_A_HMAX 设置为 “10”。
- 将 EKF2_RNG_QLTY_T 设置为 “0.2”。
- 将 UAVCAN_RNG_MIN 设置为 “0.08”。
- 将 UAVCAN_RNG_MAX 设置为 “30”。
- 将 SENS_FLOW_MINHGT 设置为 “0.08”。
- 将 SENS_FLOW_MAXHGT 设置为 “25”。
- 将 SENS_FLOW_MAXR 设置为 “7.4”,以匹配 PAW3902 的最大角流速。
参数 EKF2_OF_POS_X、EKF2_OF_POS_Y 和 EKF2_OF_POS_Z 可用于设置 Ark Flow 相对于飞行器重心的偏移量。
2.8、Ark Flow 配置
在 ARK Flow 上,你可能需要配置以下参数:
参数 | 描述 |
---|---|
CANNODE_TERM | CAN 内置总线终端 |
2.9、LED 指示灯含义
在 ARK Flow 进行固件刷写时,你会看到红色和蓝色 LED 灯亮起;如果运行正常,会显示稳定的蓝色 LED 灯。
如果看到稳定的红色 LED 灯,说明存在错误,你应检查以下几点:
- 确保飞行控制器已安装 SD 卡。
- 确保在刷写 ark_can - flow_default 之前,Ark Flow 已安装 ark_can - flow_canbootloader。
- 从 SD 卡的根目录和 ufw 目录中删除二进制文件,然后尝试重新构建并刷写。
3、PMW3901 光流传感器
参考:PMW3901-Based Flow Sensors | PX4 Guide (v1.15)
PMW3901 是一种光流 ASIC,可在内部计算流并提供每帧之间的像素差异。 它使用的跟踪传感器类似于您在计算机鼠标中找到的传感器,但适用于在 80 毫米和无限远之间工作。 该PMW3901用于多种产品,包括 Bitcraze、Tindie、Hex、Thone 和 Alientek 的一些产品
3.1、使用 PMW3901 的 Board
下表显示了一些使用此传感器的板卡,列出了接口数量、传感器数量、输入电压和大小。 板名称链接到特定于板的部分,其中包括布线和购买信息。
3.2、外部测距仪
没有测距仪的传感器(例如 Tindie 或 Thone)需要一个外部测距仪/距离传感器,建议其他板使用(因为它们的范围非常有限)。
所需的范围取决于应用:
- 室内飞行:≈4 米
- 室外飞行:≥10 米(例如,在 GPS 可能存在问题的环境中支持位置控制)
可以使用 PX4 支持的任何测距仪/距离传感器。 传感器可以安装在任何地方,但必须朝下,并且应照常连接/配置。
提示
PX4 团队主要在大型车辆上使用 Lidar Lite V3 进行测试,在小型车辆上使用 Lanbao CM8JL65。
3.3、安装/方向
流量模块通常安装在车辆中心附近。 如果安装偏心,则需要设置偏移量:光流 > EKF2。
Flow 模块可以相对于车身框架的任何偏航方向进行安装,但您必须设置SENS_FLOW_ROT中使用的值。
“零”旋转是指传感器板和车辆 X 轴对齐时(即车辆的“前部”和电路板在同一方向上),旋转沿顺时针方向增加。
PMW3901模块都有一个小槽口,指示板子背面的方向。 该图显示了对应的相对电路板和车辆方向(注意后面的缺口)。SENS_FLOW_ROT=0
品牌 | PMW3901 模块凹槽位置说明 |
---|---|
Tindie | PMW3901 Tindie 模块的凹槽 |
Hex Hereflow | PMW3901 Hereflow 模块的凹槽 |
Thone | PMW3901 Thoneflow 模块的凹槽 |
Alientek(还有一个箭头指示正面!) | PMW3901 Alientek 模块的凹槽 |
3.4、PX4 配置
所有基于 PMW3901 的板子通用的 PX4 配置如下:
- “光流> EKF2” 介绍了如何在 EKF2 估计器中融合光流数据,以及如何为光流传感器的安装位置设置位置偏移量。
- “SENS_FLOW_ROT” 用于设置光流传感器相对于飞行器航向的方向。
此外,针对不同连接方式的传感器,还需进行以下设置:
- SPI 连接的传感器:必须将 “SENS_EN_PMW3901” 设置为 1,以启用传感器驱动程序。
- UART 连接的传感器(例如 ThoneFlow - 3901UY):必须通过将 “SENS_TFLOW_CFG” 参数设置为所连接 UART 端口的值来配置相关串口(例如,如果将此传感器连接到 TELEM 2 端口,则需要将 “SENS_TFLOW_CFG” 设置为 102 )。
- DroneCAN 传感器:必须正确设置 “UAVCAN_ENABLE”。更多信息,请参阅 “DroneCAN 外设”(以及下面的 HereFlow PMW3901 文档)。
下面的章节将进一步介绍各个光流传感器的设置 / 配置。
3.5、Bitcraze Flow Breakout
Bitcraze Flow Breakout 直接引出了 PMW3901 模块的 SPI 接口。
该板子还集成了一个连接到 Pixhawk I2C 端口的距离传感器,此距离传感器是意法半导体的 VL53L0x 飞行时间(ToF)传感器。该传感器的测量范围较小(2 米),在阳光下飞行时测量范围还会减小。因此,强烈建议使用外部距离传感器。
(此处应有一张名为 “Bitcraze Flow Deck” 的图)
PX4 配置以及安装 / 方向说明如上所述。
SPI 布线
如果将 PMW3901 连接到 Pixhawk 4 的 SPI 端口,它将自动检测到 Bitcraze 光流模块。此设备的驱动程序专门设计为使用芯片选择 1 插入 SPI 端口。除了传感器的方向和位置外,无需配置其他参数。
Pixhawk SPI 端口到 Bitcraze 光流板的引脚映射如下所示(所有 Pixhawk FMU 版本的端口映射均相同)。
Pixhawk SPI 端口(从左到右) | Bitcraze 光流板 |
---|---|
1(VCC) | VCC |
2(SCK) | CLK |
3(MISO) | MISO |
4(MOSI) | MOSI |
5(CS1) | CS |
6(CS2) | 不连接 |
7(GND) | GND |
要将 Bitcraze 光流板连接到 Pixhawk,需要将 Pixhawk SPI 电缆的线焊接到光流板上。SPI 电缆有 7 根线,需要将其中 6 根连接到光流板上。
下图展示了如何将传感器连接到 Pixhawk 4。
(此处应有一张名为 “Bitcraze PH4 Pinout” 的图)
I2C 布线
I2C 布线与其他任何距离传感器的布线相同。只需将 SLA、SLC、GND 和 VCC 连接到 Pixhawk 和传感器上相应的(相同)引脚即可。
3.6、Tindie PMW3901 光流传感器
Tindie PMW3901 光流传感器与 Bitcraze 模块一样,直接引出了 PMW3901 模块的 SPI 接口(见 SPI 布线)。
(此处应有一张名为 “Tindie PH4 Pinout” 的图)
该传感器板载没有距离传感器,因此需要使用外部距离传感器。
PX4 配置以及安装 / 方向说明如上所述。
3.7、AlienTek ATK - PMW3901
AlienTek ATK - PMW3901 与 Bitcraze 模块一样,引出了 PMW3901 模块的 SPI 接口(见 SPI 布线)。
(此处应有一张名为 “Alientek Pixhawk4 Connections” 的图)
该板子也集成了一个距离传感器(建议使用外部距离传感器)。可以像连接其他任何 I2C 外设一样,将内部传感器连接到 Pixhawk 的 I2C 端口。下面提供了显示 I2C 引脚(SLA、SLC、GND 和 VCC)的截图。
(此处应有一张名为 “Alientek Pinout” 的图)
PX4 配置以及安装 / 方向说明如上所述。
3.8、Hex HereFlow PMW3901 光流传感器
Hex HereFlow PMW3901 光流传感器是一块小型板子,包含 PMW3901 光流模块、VL53L1X 距离传感器和一个 IMU(用于使光流数据与陀螺仪数据同步)。
板载微控制器对这三个传感器进行采样,并发布两条 DroneCAN 消息,其中包含光流和距离传感器计算所需的所有信息。
该板子可以连接到任何 Pixhawk 板的任意 CAN 端口(见 DroneCAN 布线)。
与其他光流板一样,建议使用外部距离传感器。
PX4 配置以及安装 / 方向说明如上所述。
DroneCAN 布线 / 设置
下图展示了如何将传感器连接到 Pixhawk 4 的 CAN 总线。
(此处应有一张名为 “Hex PH4 Pinout” 的图)
除了其他配置之外,还需要根据系统情况将 “UAVCAN_ENABLE” 参数设置为 2 或 3:
- “UAVCAN_ENABLE = 2”:表示使用 DroneCAN 传感器,但不使用电机控制器。
- “UAVCAN_ENABLE = 3”:表示使用 DroneCAN 传感器和电机控制器。
有关 DroneCAN 布线和配置的一般信息,请参阅:DroneCAN 外设。
3.9、Holybro PMW3901 光流传感器
Holybro PMW3901 光流传感器通过 UART 接口引出 PMW3901 光流模块。
该板子板载没有距离传感器,因此需要使用外部距离传感器。
(此处应有三张名为 “HB - pmw3901 - 1”、“HB - pmw3901 - 2”、“HB - pmw3901 - 3” 的图)
它配有一个 3D 打印外壳,并有一个预焊接的 TX、电压和 GND 四针连接器,可以插入飞行控制器的遥测端口,如下图所示(适用于 Pixhawk 6C)。
3.10、Thone ThoneFlow - 3901U
Thone ThoneFlow - 3901U 通过 UART 接口引出 PMW3901 光流模块。
该板子板载没有距离传感器,因此需要使用外部距离传感器。
(此处应有一张名为 “PMW3901 Thoneflow Hero” 的图)
PX4 配置以及安装 / 方向说明如上所述。
此外,还必须将 “SENS_TFLOW_CFG” 参数设置为所连接的 UART 端口的值(例如,如果传感器连接到 TELEM 2,则设置 “SENS_TFLOW_CFG = 102”。更多信息,请参阅串口配置 。
4、光流模块配置文档下载:
【无人机领域】基于PX4的光流模块OpticalFlow配置与应用:无人机光流传感器及测距仪详细设置指南PX4使用手册光流模块详细配置资源-CSDN文库