Optical flow without GPS

Good day everybody,

For a while I have been watching these youtube videos:

The drone seems to be very stable, however I also have an optical flow module, and I have never obtained anything similar using my drone, even i have better isolation and frame than these drone in the above video.
By looking at youtube comments it seems that the pilot is using a different forked firmware, so the question is: Does these modifications have be merged to the master? because the performance is outstanding.

There are nothing special about in firmware or other forked branch. We have tested a lot of optical flow and it does the same as in video.

You should probably check carefully about your environment(illumination, texture, etc) and your optical module setup.


For installation of the camera (px4flow) i have checked a lot of time, there is no problem, it is shifted 2 cm from the center of the drone.
I also changed efk to lpe in SYS configuration, However so far. I’m not able to access the list of lpe configuration even after booting the pixhawk, QGC always shows me the set of configurations for efk.
At the end I don’t know if you guys know how to be sure if the camera work, for instance. Does it show data in the log?

You can read the PX4 dev doc, to see how you can calibrate and setup optical module in QGC, as well as making sure your sonar is working properly. Also if you are not using MindPX/Mindracer, flow support may not be started by default(not quite sure you may need to double check).

Also, it is very important to make sure your environments can meet the minimum work condition of flow.

I have read this document, by following the instruction I should be able to get the set of LPE, settings, which never happens, by the way Does the camera have a log which might help?, I mean how to distinguish from damaged camera from a functioning one? QGC just show you the image received and ask you to optimize the focus.

Best regards.

My guess is that you did not pimped correctly your PID, you should send a log (logmuncher) so we can see how “bad” it is.

Whatever is the localization system, if the PID is incorrect (not adapted to your model), you will fly but not well.

1 Like


From my SD card, actually I didn’t understand all these data, as I’m not expert in drones.
all of these flight contained px4flow camera.

Crash altitude hold was used :
This test has finished by crash using altitude hold, the reason of crash is hitting a furniture, but the
drone was not that stable before the crash and it was well drifting .


This are two another log from a general flight i used stabilized mode: I don’t remember how they were finished. but it might be helpful to see the drone behavior in general.



In general the drone has a slight drift.

Looking at your logs makes me think the PX4Flow is not enabled. I guess the Local position X and Local position Y should exist with the PX4Flow.

I will do some tests tomorrow.

So if it is not enable, how to do it??

I never used it but soon I will.

Well, after some configuration, and re-flashing the firmware of optical flow camera. I used the analyzer of QGC without arming or taking off, I see that x, y value are changing in real time especially when moving the drone, or moving some objects under the camera, which mean that it does work, However. when starting a flight test, the log values for x and y are always 0.

I remember the last flight, i switched from stabilized to altitude control, and the drone increased the throttle and got up to 3 meter directly for no obvious reason.


Any ideas???


I have the same problem.

I will change the firmware to the 1.6.0 RC1 LPE version

I’m using 1.6.0 rc1, but i don’t know if there is a specific version for LPE

Download the ZIP and upload the px4fmu-v2_lpe.px4 file.

Or else, it will be using EKF2

In EKF2, you need to enable OF with the AID bitmask

EKF2_AID_MASK - AID bitmask

Set bits in the following positions to enable:
0 : Set to true to use GPS data if available
1 : Set to true to use optical flow data if available
2 : Set to true to inhibit IMU bias estimation
3 : Set to true to enable vision position fusion
4 : Set to true to enable vision yaw fusion

It is running here, but the distance sensor with the PX4Flow is incredibly noisy.

I am looking how to disable it to use the PX4Flow + teraranger (which is very stable)

Which flight mode we have used during this test? in my logic if camera is activated, stabilized mode should use optical flow and should be quite similar to altitude hold.

best regards

I used position mode to have a direct feedback from the PX4Flow.

Tried indoor (Low light enabled) and I had some quirks (drift issue)

Tried outdoor (Low light disabled) and had one quirk in a 3 minutes flight.

Thanks for your replay, i will try EKF, with the above configuration and see the results.

I tested again today, indoor, on a mat (used by kids to play cars) and it worked perfectly (+/- 10 cm, 3 inches)