Skip to content



Video: PX4 holding position using the ARK Flow sensor for velocity estimation (in Position Mode).


光流的配置需要一个下视摄像头和 距离传感器 (最好是激光). 这些设备可以通过MAVLink、I2C或其他总线连接。

If connected to PX4 via MAVLink the Optical Flow device must publish to the OPTICAL_FLOW_RAD topic, and the distance sensor must publish to the DISTANCE_SENSOR topic.


Vehicle movementIntegrated flow
Forwards+ Y
Backwards- Y
Right- X
Left+ X

For pure rotations the integrated_xgyro and integrated_x (respectively integrated_ygyro and integrated_y) have to be the same.

An popular setup is the PX4Flow and Lidar-Lite, as shown below.

Optical flow lidar attached

Sensor data from the optical flow device is fused with other velocity data sources. The approach used for fusing sensor data and any offsets from the center of the vehicle must be configured in the estimator.

Flow Sensors/Cameras

ARK Flow

ARK Flow is a DroneCAN optical flow sensor, distance sensor, and IMU. It has a PAW3902 optical flow sensor, Broadcom AFBR-S50LV85D 30 meter distance sensor, and BMI088 IMU.

PMW3901-Based Sensors

PMW3901 is an optical flow tracking sensor similar to what you would find in a computer mouse, but adapted to work between 80 mm and infinity. It is used in a number of products, including some from: Bitcraze, Tindie, Hex, Thone and Alientek.

Other Cameras/Sensors

It is also possible to use a board/quad that has an integrated camera. For this the Optical Flow repo can be used (see also snap_cam).

Range Finders

您可以使用任何支持的 距离传感器 然而,我们建议使用激光而不是超声波传感器,因为它的鲁棒性和准确性更高。


估计器融合数据从光流传感器和其他资源获得。 The settings for how fusing is done, and relative offsets to vehicle center must be specified for the estimator used.

The offsets are calculated relative to the vehicle orientation and center as shown below:

Optical Flow offsets

Optical Flow based navigation is enabled by both the availableestimators: EKF2 and LPE (deprecated).

Extended Kalman Filter (EKF2)

For optical flow fusion using EKF2, set EKF2_OF_CTRL.

If your optical flow sensor is offset from the vehicle centre, you can set this using the following parameters.

EKF2_OF_POS_XX position of optical flow focal point in body frame (default is 0.0m).
EKF2_OF_POS_YY position of optical flow focal point in body frame (default is 0.0m).
EKF2_OF_POS_ZZ position of optical flow focal point in body frame (default is 0.0m).