This is a discussion of getting the PX4Flow sensor working with Copter-3.3.1 (or higher).

Views: 24350

Reply to This

Replies to This Discussion

Thanks a lot Paul.

mounted a separated sonar, zhang xu wrote about this .

I have another optical flow senosor and I'll trying how it work.

I also have this problem. What works is logging in via NSH and rebooting the px4flow driver:

-Use mission planner

-Enable advanced mode, then click the Terminal tab

-Select NSH


-Type "px4flow start"

-px4flow status (or was it info) should tell you the driver is running


I would like to implement Optical Flow into ArduRover, emplying laser mouse and modified lens to get sharp image underneath.

Distance is constant so no need to install distance sensor (sonar, Lidar lite)

PC laser mouse is highly sophisticated Optical Flow machinery and algorithm.

Pls let me know your opinion and your experience with laser mouse employed as Optical Flow controler.

Frankly speaking, optical flow generates ranging sensor on itself.

Algorithm developed can turn 2D video into 3D video on-the-fly, extracting Z-dimension from 2D video/ comparing movement of selected points between individual image frames.

This is the solution I have offered @Cala to track problems with her crops


Video camera pointed down can replace Lidar lite acting as single-point scanner vs.

2D scanner made of video camera + 2D > 3D video conversion to extract Z-dimension to get 3D scanner, hot item in 3D printing industry.

(no more Laser equipment warning label)


I have the following simple question: is it possibile to fly indoors with px4flow (without gps 3d fix)?

Can the image built from px4flow source code work with APM:Copter 3.3.1 that downloaded by MissionPlanner?

Yes, I think it should work.  I'd recommend using Copter-3.3.2 though because it allows arming without a GPS.

I have just tried the V3.3.2 copter for pixhawk, and get below result

1.opt_flow enabled, EKF_GPS_TYPE=3.

2.opt_m_x, opt_m_y,opt_qua is not zero in flying data->status

3.EKF5.meaRng is between (0,3), EKF5.FIX goes up step by step from 0 to 20, EIF5.FIY keeps zero

4. tried several time ,loiter is not working

attachement is part of my log


I've tested the optical flow setup on my DJI F550 Hexa with an i2c external sonar and PX4FLOW module with Copter V3.4-dev (89c14718) which I downloaded today.

I've calibrated the optical flow manually according to the following wiki page and it looks ok.

Log download link:

The test flight log link with EK2 and optical flow is below. It seems the the EK2 and optical flow are doing well, except that during flight the hexa starts drifting in various directions and, as someone posted before, it reacts sluggishly to pilot inputs.

Log download link:

I suspect that the loiter PID is not tuned well enough as NTUN's DesVelX vs VelX and DesVelY vs VelY are not matching. But before I try playing with PID parameters, does anyone have another idea why this may be? Can I be sure that the optical flow and EK2 are indeed working as I suspect? The loiter wiki page says its very unlikely that the loiter PID has to be tuned differently from default values. Therefore I'm not sure. 



P.S. My apologies as the attachment limit of 7MB was too low to attach the logs directly to this post.

Hi Paul,

Thanks for the fast reply.

I did the camera focus with a checkerboard and text printed on A4 paper on the ground. So I doubt this it it.

I was flying above mats with yellow colour and colourful spots in them. Possible the contrast is not good enough. I'll check with the high def video stream. I could try printing several A0 size checkerboards and pinning them to the floor.

We have TL lights in the building. Perhaps strobing is possible. That would explain why both files are noisy as I did the calibration above a checkerboard floorpanel. I will have to test outdoor to be sure, but the weather is too bad the next few days.

I'll also add more damping to the optical flow mount.

Thanks again for the input!


  I think that one very important point we are missing is that the optical flow sensor needs to installed with VIBRATION insulation just like the IMU. I have the original 3DR optical flow sensor and Lidar Lite V2. When I test the senor just by waving the multicopter by hand the Of.flowX/OF.bodyX/IMU.GyrX perfectly match. However when inflight the OF.flowX is way off the other two values which match. 

Log when waved by hand.

Log when flying.

  I have been thinking hard what could be the reason. The only difference I can think of is vibration when the copter is flying. I have just attached the optical flow to the base of my copter with some hot glue and attached a zip tie. The zip tie is to prevent the sensor from falling, just in case the hot glue failed.


Tomorrow I will attach the sensor using some nice vibration isolation foam and try again. Do you guys think that this will help?

Hi Paul,

FW : AC3.3.3 RC2


I'm still struggling with OF.

I found that Lidar is indicating correct alt  and OF log is shown in MP's log analyzer ( but not match each other OF.flow, OF.body IMU.Gyro like wiki )

Even with AC3.3.3 RC2 + EKF_GPS_TYPE=3, my copter can't be armed with the message GPS 3D Lock error.

I followed your instruction about NSH and it shows no error

It'll be very appreciated if you correct me ^^;

P.S : Log file is attached here ( )

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service