PX4FLOW 开发者指南

硬件准备

  • PX4FLOW Board v1.3
  • HRLV-MaxSonar-EZ (MB1043)
  • 16mm Lens
  • Micro USB cable

这篇论文在德国卡尔斯鲁厄ICRA 2013上作为论文被接受 Dominik Honegger, Lorenz Meier, Petri Tanskanen and Marc Pollefeys. An Open Source and Open Hardware Embedded Metric Optical Flow CMOS Camera for Indoor and Outdoor Applications, ICRA2013 (Full version)

软件 / 生成源代码

  • PC 并安装好Qgroundcontrol
  • 最新的 PX4FLOW 固件

Build

通过开发者指南安装PX4工具链: px4_quickstart 'https://github.com/PX4/Flow' via GIT (开发者指南中有 GIT quick start).

cd flow
make all
make upload-usb

然后连接光流传感器,上传成功会显示如下的语句:

Found board 6,0 bootloader rev 3 on /dev/ttyACM1
erase...
program...
verify...
done, rebooting.

故障排除

如果你看不到上述步骤, 请通过以下语句卸载modem-manager:

sudo apt-get remove modemmanager

用户需要在 plugdev 组:

sudo usermod -a -G plugdev $USER

图像对焦

连接 PX4FLOW到 QGroundcontrol:

  1. 通过 USB连接PX4FLOW 传感器到 PC
  2. 打开 QGroundcontrol
  3. 点击connect连接

将参数 VIDEO_ONLY 改为 1 然后点击Set.

之后光流的视频会全分辨率的显示出来.将镜头对焦到约1.5m,固定镜头位置,点击 VIDEO_ONLY Mode off.

数据输出

PX4FLOW通过USB和串口输出Mavlink数据包。请使用 QGroundControl来读取模块的数据包

参数

BFLOW_F_THRD

这个参数是一个特征阀值,限制着底层光流计算图形的质量。如果数值较低(如10)则几乎所有的图形都要被用来计算,如果值较高(如100),则只有重要的图形会被用来计算。

BFLOW_V_THRD

这个参数是图形相关阀值,用来过滤较差的图形匹配。较低的值代表只有很好相关性的图形可以被接受使用。

参数目前还没有写到 ROM (断电会重置)

PX4FLOW Parameters

 

参数目前还没有写到 ROM (断电会重置)

Name Default Access Comment
BFLOW_F_THLD 30 RW 这个参数是一个特征阀值,限制着底层光流计算图形的质量。如果数值较低(如10)则几乎所有的图形都要被用来计算,如果值较高(如100),则只有重要的图形会被用来计算。
BFLOW_V_THLD 5000 RW 这个参数是图形相关阀值,用来过滤较差的图形匹配。较低的值代表只有很好相关性的图形可以被接受使用。
BFLOW_HIST_FIL 0 RW 1: 光流直方图滤波开启, 0: 关闭
BFLOW_GYRO_COM 1 RW 1: 陀螺仪补偿开启, 0: 关闭
BFLOW_LP_FIL 0 RW 1:光流输出的低通滤波器开启, 0: 关闭
BFLOW_W_NEW 0.3 RW 光流低通滤波器增益
DEBUG 1 RW 1: 调试信息开启, 0: 关闭
GYRO_SENS_DPS 250 RW 陀螺仪敏感度: 250, 500, 2000 (dps)
GYRO_COMP_THR 0.01 RW 陀螺仪补偿阀值 (dps): 陀螺仪数据低于此阀值不会补偿来防止漂移
IMAGE_WIDTH 64 R 图像宽度(像素)
IMAGE_HEIGHT 64 R 图像高度(像素)
IMAGE_L_LIGHT 0 RW 1: 图像传感器低光照模式开启, 0:关闭
IMAGE_NOISE_C 1 RW  
IMAGE_TEST_PAT 0 RW 1:阴影测试模式开启, 0: 关闭
LENS_FOCAL_LEN 16 RW 透镜焦距 (mm)
POSITION 0 RW 0: 只有位置0被使用(Bottom: 0, Front: 1, Top: 2, Back: 3, Right: 4, Left: 5)
SONAR_FILTERED 0 RW 1: 声呐输出的卡尔曼滤波开启, 0: 关闭
SONAR_KAL_L1 0.8461 RW 声呐卡尔曼增益 L1
SONAR_KAL_L2 6.2034 RW 声呐卡尔曼增益L2
SYS_ID 81 RW MAVLink 系统 ID
SYS_COMP_ID 50 RW MAVLink 组件 ID
SYS_SENSOR_ID 77 RW MAVLink 传感器 ID
SYS_TYPE 0 RW MAVLink 系统类型
SYS_AP_TYPE 1 RW MAVLink Autopilot 类型
SYS_SW_VER 13XX R 软件版本
SYS_SEND_STATE 1 RW 1: 发送MAVLink Heartbeat, 0: 不发送
USART_2_BAUD 115200 R USART 2 波特率
USART_3_BAUD 115200 R USART 3波特率 (数据输出)
USB_SEND_VIDEO 1 RW 1: 通过 USB发送视频, 0: 不发送
USB_SEND_FLOW 1 RW 1: 通过USB发送光流, 0: 不发送
USB_SEND_GYRO 1 RW 1: 通过USB发送陀螺仪数据, 0: 不发送
USB_SEND_FWD 0 RW 1: 通过USB发送转发光流, 0: 不发送
USB_SEND_DEBUG 1 RW 1: 通过USB发送调试信息, 0: 不发送
VIDEO_RATE 150 RW 视频传输中的图像间隔时间(ms)
VIDEO_ONLY 0 RW 1: 高分辨图像模式开启, 0: 关闭

模式

VIDEO ONLY 模式

将VIDEO_ONLY 设置为 1,高分辨图像模式开启.在此模式下,摄像头图像会传输更高分辨率的图像来方便调整焦距。此模式下没有光流数据计算。

低光照模式

如果将 IMAGE_L_LIGHT设置为 1, 传感器会变为低光照模式。

此模式仍在开发中,效果目前并不理想

测试图像模式

如果参数 IMAGE_TEST_PAT 被设置为1, 传感器信号链中会插入一个垂直的灰色测试图像。

  • Test Pattern 64×64 (VIDEO ONLY Mode is OFF)

  • Test Pattern 376×240 (VIDEO ONLY Mode is ON)

疑难排查

  • 如果插入了flow传感器,请拔出
  • 运行 QGroundControl, 选择Firmware Upgrade.
  • 连接 the flow 传感器
  • 刷写 stable firmware
  • 点击parameters查看参数
  • 通过 QGroundControl 播放视频流 (Tool Widgets → Video Downlink)
    • 检查视频中是否有条纹. 如果有, 把 IMAGE_TEST_PAT 设置为 1. 他应该看起来像上面的例子. 如果之前有条纹但开启后条纹消失,请在两种模式中分别截图,发送给flow的生产商。
    • 检查你是否得到一个清晰的图像(由于配备的远距、缩放镜头,可视区域是非常小的)
  • 设置参数 VIDEO_ONLY 为 1 来得到一个高分辨图像.
  • 在工作的高度检查图像是否清晰 (通常飞行的高度)

  • Please check the mailing list in case you have a similar distorted image with visible dark lines:

本页面的其他翻译:


Quick Links

QR Code: URL of current page