ARK Flow
Last updated
Last updated
ARK Flow is an open source DroneCAN optical flow, distance sensor, and IMU module.
Order this module from:
ARK Electronics (US)
Sensors
PixArt PAW3902 Optical Flow Sensor
Tracks under super low light condition of >9 lux
Wide working range from 80mm up to 30m
Up to 7.4 rad/s
40mW IR LED built onto board for improved low light operation
Broadcom AFBR-S50LV85D Time-of-Flight Distance Sensor
Integrated 850 nm laser light source
Field-of-View (FoV) of 12.4° x 6.2° with 32 pixels
Typical distance range up to 30m
Operation of up to 200k Lux ambient light
Works well on all surface conditions
Transmitter beam of 2° x 2° to illuminate between 1 and 3 pixels
Bosch BMI088 6-Axis IMU or Invensense ICM-42688-P 6-Axis IMU
STM32F412CEU6 MCU
Two Pixhawk Standard CAN Connectors (4 Pin JST GH)
Pixhawk Standard Debug Connector (6 Pin JST SH)
Software-toggleable built in CAN termination resistor
Small Form Factor
3cm x 3cm x 1.4cm
LED Indicators
USA Built
The ARK Flow is connected to the CAN bus using a Pixhawk standard 4 pin JST GH cable. For more information, refer to the CAN Wiring instructions.
The recommended mounting orientation is with the connectors on the board pointing towards back of vehicle, as shown in the following picture.
This corresponds to the default value (0
) of the parameter SENS_FLOW_ROT. Change the parameter appropriately if using a different orientation.
The sensor can be mounted anywhere on the frame, but you will need to specify the focal point position, relative to vehicle centre of gravity, during PX4 configuration.
ARK Flow runs the PX4 DroneCAN Firmware. As such, it supports firmware update over the CAN bus and dynamic node allocation.
ARK Flow boards ship with recent firmware pre-installed, but if you want to build and flash the latest firmware yourself see PX4 DroneCAN Firmware > Building the Firmware.
Firmware target: ark_can-flow_default
Bootloader target: ark_can-flow_canbootloader
:::note The Ark Flow will not boot if there is no SD card in the flight controller when powered on. :::
In order to use the ARK Flow board, connect it to the Pixhawk CAN bus and enable the UAVCAN driver by setting parameter UAVCAN_ENABLE to 2
for dynamic node allocation (or 3
if using DroneCAN ESCs).
The steps are:
In QGroundControl set the parameter UAVCAN_ENABLE to 2
or 3
and reboot (see Finding/Updating Parameters).
Connect ARK Flow CAN to the Pixhawk CAN.
Once enabled, the module will be detected on boot. Flow data should arrive at 10Hz.
DroneCAN configuration in PX4 is explained in more detail in DroneCAN > Enabling DroneCAN.
You need to set the EKF optical flow parameters to enable fusing optical flow measurements for velocity calculation, set necessary DroneCAN parameters, and define offsets if the sensor is not centred within the vehicle.
Set the following parameters in QGroundControl:
Enable optical flow fusion by setting EKF2_OF_CTRL.
To optionally disable GPS aiding, set EKF2_GPS_CTRL to 0
.
Set EKF2_RNG_A_HMAX to 10
.
Set EKF2_RNG_QLTY_T to 0.2
.
Set UAVCAN_RNG_MIN to 0.08
.
Set UAVCAN_RNG_MAX to 30
.
Set SENS_FLOW_MINHGT to 0.08
.
Set SENS_FLOW_MAXHGT to 25
.
Set SENS_FLOW_MAXR to 7.4
to match the PAW3902 maximum angular flow rate.
Enable UAVCAN_SUB_FLOW.
Enable UAVCAN_SUB_RNG.
The parameters EKF2_OF_POS_X, EKF2_OF_POS_Y and EKF2_OF_POS_Z can be set to account for the offset of the Ark Flow from the vehicle centre of gravity.
On the ARK Flow, you may need to configure the following parameters:
CAN built-in bus termination.
You will see both red and blue LEDs on the ARK Flow when it is being flashed, and a solid blue LED if it is running properly.
If you see a solid red LED there is an error and you should check the following:
Make sure the flight controller has an SD card installed.
Make sure the Ark Flow has ark_can-flow_canbootloader
installed prior to flashing ark_can-flow_default
.
Remove binaries from the root and ufw directories of the SD card and try to build and flash again.
PX4 holding position using the ARK Flow sensor for velocity estimation (in Position Mode).