I have gone through various forums configuring my Aero drone to use optical flow, but can't get it to work.
I have connected the LeddarOne sensor.
- set EKF2_AID_MASK to 2 (use optical flow)
- SYS_MC_ESG_GROUP to 1 (ekf2)
- SENS_EN_LEDDAR1 to 1
- Downloaded, compiled and ran the aero-optical-flow package. It seems to work and detect movement
- QGroundControl>Widgets>MAVLink Inspector>OPTICAL_FLOW_RAD>quality is well above 100 (unless I put my hand in front of the camera)
- QGroundControl>Widgets>MAVLink Inspector>DISTANCE_SENSOR>current_distance show the heigth above ground
BIOS_VERSION = Aero-01.00.16
OS_VERSION = Ubuntu 16.04.5 LTS"
AIRMAP_VERSION = unknown
FPGA_VERSION = 0xc2
AeroFC firmware version = 1.8.0
Moving the drone above the surface has no influence on LOCAL_POSITION_NED. However OPTICAL_FLOW_RAD does seem to change.
Now in a previous post, someone from Intel (Jesus) provided a test PX4-firmware (named "aerofc-v1_default_leddar_one.px4"), which I have tried, and it gives an improvement; LOCAL_POSITION_NED changes along with the movement of the drone.
However in our setup we also have a position estimate coming from triangualation (some indoor GPS sytem), which I feed to VISION_POSITION_ESTIMATE. In the default 1.8.0 PX4 firmware this is working, the values end up in LOCAL_POSITION_NED. But in the test PX4 firmware with optical flow working, the values from VISION_POSITION_ESTIMATE are no longer fused into LOCAL_POSITION_NED.
Of course I changed EKF2_AID_MASK to also incorporate vision positioning.
Any idea what changes are pending in the PX4 code to solve my issue?
Thanks and regards,