PX4FLOW project 重新啟動,光流定位測試

( English version here )

由於APM Copter3.3的更新開始支援Optical Flow LOITER,我的PX4FLOW project也重開了。

昨天安裝了APM Copter3.3rc8 到Pixhawk中,由於還是試版,隻QAV500只可以作近距離試飛了。為的只是想早點嘗試PX4FLOW LOITER。一步步跟著文件做安裝,過程如下。

安裝:

開始時發現QAV500機底的前方有個位置很合適,又有縲絲位,就安裝在那裡了。

PX4FLOW under QAV500
PX4FLOW under QAV500

由於I2C的線長度不足問題,把PX4Flow轉了180度。x向機尾,y向左,FLOW_ORIENT_YAW必須設定為18000。(如果跟足文件,沒有旋轉,就不用改動FLOW_ORIENT_YAW)

px4flow-top

 

對焦:

你不能確定PX4Flow出廠的焦距是你所需要的,所以必須調較焦距。我用的是APM Planner,但那裡沒有可以顯示PX4Flow影像的功能,只有用QGroundControl,我連接QGroundControl的過程在這裡。看到PX4Flow影像輸出,就可以把鏡頭對著3米外的物件,鬆開鏡頭的螺絲,進行對焦。

 

效準(Flow Sensor Calibration):

跟著文件進行效準,一切順利,下載log file,得到以下的圖表:

FX4Flow Flow Sensor Calibration log flow_y
OF.floxY vs OF.bodyY
FX4Flow Flow Sensor Calibration log flow_x
OF.floxX vs OF.bodyX

以上是戶外的測試,接著我做了戶內的測試,效果差很多。

FX4Flow Flow Sensor Calibration (Indoor)
FX4Flow Flow Sensor Calibration (Indoor)

但做到Range Sensor Check就找不到數據。文件說可以在EKF5.meaRng看到距離的變化,但在log中這一項是0,不知是那裡出錯。文件說他們裝了外置的range finder,可能就是這個原因。我沒有打算為此而買一個Pulsed Light unit,就不理它去了試飛。

試飛後看到,比較GPS定位,Optical Flow定位還是不太穩定,有兩三米的移位,而且是在戶外做測試。如果要做到室內定位,一定要有厘米級的精確度,未知是否可以通過較準(calibration),或程式改良可以達到,又或者要加上雷射range finder才有改善。最起碼要買張地毯,家裡的地磚太平滑,不是很適合用來做光流定位。

Connect PX4FLOW to QGroundControl

I followed the document PX4FLOW Developer Guide, connected QGroundControl to PIXFLOW finally.

PX4FLOW data output in QGroundControl
PX4FLOW data output in QGroundControl

The picture above is output ofOPTICAL_FLOW.flow_x and flow_y

I have some questions when start:
Q: Connect Pixhawk or PX4FLOW to PC when upload firmware?
A: Connect FX4FLOW to PC using USB

Q:VIDEO_ONLY set to 1, butVideo Downlink in QGroundcontrol can’t show PXFLOW’s video output (use it to adjust focus only)
A:upgrade QGroundcontrol to version 2.2 or up

Qgroundcontrol can't show PX4FLOW video
Qgroundcontrol can’t show PX4FLOW video

Q:What is focus range PX4FLOW?
A:I did a test, the result is 0.4 – 0.8m.
( remark: document recommend to set the focus to 3m, I can do it by adjusting the lens of PX4FLOW )




 

Q:How to wiring to Pixhawk?
A:Connect PX4FLOW UART3 to Pixhawk’s serial port. Default id TELEM2


 

Finally I did a outdoor flight test, check here.

PX4FLOW is not easy to kick-off

更新(2015-08-06):由於APM Copter3.3的更新開始支援Optical Flow LOITER,使這篇文有點outdate了。我的PX4FLOW project也成功重開了。

PX4FLOW under QAV500
PX4FLOW under QAV500

和Pixhawk一起買了PX4FLOW,很想用它起碼可以做到室內的Autonomous Position Hold。 但它不是想像中的容易使用,網上可以找的文件不多,要看的幾乎都被我看過了。Forum的討論就問的人多答的人少,還有人怪罪於3DR會賣一件產品但沒有任何支援的,起碼也要在網站上說明,這個東東不被APM Planner支援哦。

但我相信還是可以找到方法的,再努力點。可能要靠自己看source code了。始終,都是open source project,所有code都在,還有examples,看不明,做不到也怪不了人吧。

如果你有興趣或正在做相同的事,search到了我這裡來,留個言,看看有沒有可以交流的地方。

PX4FLOW
PX4FLOW



這條片幾乎給我看破了。










有些人還是做到了,但好像很神秘,沒有一個寫出過程,更不用說提供原碼了。

讓我做到吧,我一定會把過程詳細列出的。祝我好運吧!


 

後記:

我終於知道為什麼很多人做到了,但沒有一個把「如何做」提供出來,原來很多條YouTube都是假的!請看這裡一位PX4的核心developer說什麼。

https://groups.google.com/d/msg/px4users/wXcDtNzXNRU/2utFB17F0dMJ


 

更新:




終於有人在APMCopter做了,有source code的,要試試。

https://github.com/priseborough/ardupilot/tree/ekfOptFlow-wip