Copter3.4 pxflow issue

http://ardupilot.org/copter/docs/common-px4flow-overview.html
I’ve followed that Instruction. I have no Lidar Lite RangeFinder, but LZ-EZ4 buid-in with px-flow. It is said the build-in LZ-EZ4 sonar data is not used.

  1. Is the separate rangefinder a must for optical flow to work. If so, can I force the built-in LZ-EZ4 sonar to be the separate RangeFinder ?
  2. I did calibration like the instruction above. Here is the dataLog.

    It seems really BAD, flowX/Y not follow bodyX/Y at all. ( my FLOW_ORIENT_YAW seems not correct ).
    Is it caused by “No RangeFinder” ? or something else ? My ground may be not well textured, like this.

    Anyone can help, many thanks.

Yes.

No, a sonar is not good enough.

Truly Thanks.
But, you mean all kinds of sonars( Ultrasonic sensors ) are not good enough or just the LZ-EZ4 but-in.
Only “Laser-based/Light-Based" range-finder could be used ?
And I just wanna have a test/try, I’am modifying the src code, to get range data from flow-sensor and put it in range-finder loop…I am not sure if it will work…

I am in no way an expert on this. But from what I’ve learned sonars don’t provide good enough information for a good estimation.
It may work, but I think it was considered not good enough to be in our code.

I just test for myself and will not commit the “weird” code : )
I consider, Lidar may pass through thin glass or water but faster and further max-range. Sonar could be err on some complex surfaces, slower and limited max-range.
Maybe my understanding is wrong, I will search for more information about range-finder.
Thanks for your help.