PX4FLOW: need 3D fix when Arming

162 views
Skip to first unread message

Ming Xu

unread,
May 9, 2016, 4:41:32 AM5/9/16
to drones-discuss
Hi guys,
I purchased PX4Flow sensor, I manully adjust the camera focus with 3m distance, after that, put the copter 1m distance from ground to calibrate, the OF.flowX, OF.bodyX, IMU.GyrX looks good.
now I want arm the copter on ground with loiter mode(the copter is ~15-20cm distance from ground). Mission Plan display "Need 3D Fix".
I do some test:
1. Lift the copter 1m distance, arm the copter successfully with loiter mode.
2. put back the copter to ground again, arm failed with "need 3d fix".

so, I guess, this maybe the camera focus introduced, 15-20cm is too short.
my question is, if I focus the camera with 3m distance, how to take off with loiter mode with px4flow position is not okay with short distance.

Now I focus the camera again with 15-20cm distance, althougth the copter can arm with loiter mode, but 3m or higher distance, the ground picture is not clear. it will impact loiter in air.

Thanks, 


Randy Mackay

unread,
May 9, 2016, 5:20:41 AM5/9/16
to drones-...@googlegroups.com

Ming,

 

     You checked the “Pre-Arm checks” section of the wiki?

           http://ardupilot.org/copter/docs/common-px4flow-overview.html#pre-arm-checks

 

-Randy

--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ming Xu

unread,
May 9, 2016, 8:59:35 AM5/9/16
to drones-discuss
Yes, the "all" and GPS" check box are unchecked.

 I check the souce code :
Copter::loiter_init  --> position_ok() --> return (ekf_position_ok() || optflow_position_ok());

I think "optflow_position_ok" "ekf_position_ok()" both return false.

 
 
Auto Generated Inline Image 1

Allan Matthew

unread,
May 9, 2016, 11:00:50 AM5/9/16
to drones-discuss
Ming-

Have you disabled the geo-fence?  Additionally, if you are operating without good GPS, you'll need to set EK2_GPS_TYPE to 3.

-Allan

Ming Xu

unread,
May 9, 2016, 2:13:58 PM5/9/16
to drones-discuss
Hi Randy,
sorry to make mistake, not in control_loiter.cpp: loiter_init  --> position_ok() --> return (ekf_position_ok() || optflow_position_ok());
it's in: motors.cpp:pre_arm_gps_checks()--> position_ok() --> return (ekf_position_ok() || optflow_position_ok());

both ekf_position_ok() and optflow_position_ok() are failed.

Ming Xu

unread,
May 9, 2016, 11:08:49 PM5/9/16
to drones-discuss
Thanks Matthew:
Geo Fence not enabled.

here is my parameters setting:
EKF_GPS_TYPE: 3   // only use Optical Flow
FLOW_ENABLE:1 
FLOW_FXSCALER: 160
FLOW_FYSCALER:160
FLOW_ORIENT_YAW:  Y axis aligin to he head

GPS_HDOP_GOOD: 9999
LOG_BITMASK:131071 
Reply all
Reply to author
Forward
0 new messages