NAVIO+ & Raspberry Pi & HUAWEI E3372

玩過用 4G 連線 Parrot DISCO,感受過無距離限制的FPV飛行後,很想以 Ardupilot 做同樣事: 以 4G 網絡連結無人機與 ground station,實時控制無人機,獲取飛行數據 以 4G 網絡傳送無人機鏡頭的實時影像 1小時或以上的飛行時間,30公里或以上的飛行距離 便在倉底找回2015年買下的NAVIO+,就以它來製作一部 4G 連線的定翼無人機,以下就是我的製作筆記。 使用的硬件 NAVIO+(現在出產的是 NAVIO2) Raspberry Pi 2 Model B SD card(8GB 或以上) Raspberry Pi camera module WiFi USB(方便連線做設定,但非必須) HUAWEI E3372 (4G USB) FX61機架 Panasonic NCR18650B Li-ion 電池(4S3P) 軟件設定 開始時,跟著 NAVIO 的官方文件做,由於我使用 ZeroTier 建 VPN,連結無人機與 ground station,NAVIO沒有這方面的資料,這部分設定要自己處理,以下就是軟件設定部分的筆記。 Raspberry Pi 基本設定 下載預先配置的 Raspbian image (md5),這是NAVIO廠方提供的專用 image 把下載的 image file 燒錄到 SC card,在 Mac 的 Terminal 執行以下程序(使用其他 OS 可參考官方文件): // show the SD card diskRead More →

EMax 12A ESC flash BLHeli wiring

如何在銀燕12A電調寫入BLHeli以支援OneShot125? 在淘寶買了銀燕12A電調,寫著是支援OneShot125。但其實「支援」不代表「安裝」,它裡面沒有寫入最新的BLHeli,也不能用OneShot125模式,最後唯有自己flash。(後來,貴一點的價錢,也有買來便可以用的OneShot版本,體積也小一點,這裡不是重點). 過程中發現這個video最有用: 透過以上的video,終於裝了最新版本的BLHeli,也可以使用OneShot125模式了。以下記錄了操作過程,方便有需要的同道。 準備 銀燕12A電調 EMax 12A ESC Arduino Nano(其他的Arduino也可以) 安裝BLHelioSuite 接線 如下圖焊接三條電線,完成後會移除,所以不用太在意鬆緊。接線的點很小,小心不要短路或燒掉ESC。(也可以學上面的YouTube,DIY一個頭,用手對位按著來flash,但個人覺得要對準個位好難,更要另一邊操電腦!) 線的另一端連接Arduino如下圖 把Arduino用USB接上電腦。 把ESC接上LiPo電池。 安裝(待續⋯⋯)  

( English version here ) 由於APM Copter3.3的更新開始支援Optical Flow LOITER,我的PX4FLOW project也重開了。 昨天安裝了APM Copter3.3rc8 到Pixhawk中,由於還是試版,隻QAV500只可以作近距離試飛了。為的只是想早點嘗試PX4FLOW LOITER。一步步跟著文件做安裝,過程如下。 安裝: 開始時發現QAV500機底的前方有個位置很合適,又有縲絲位,就安裝在那裡了。 由於I2C的線長度不足問題,把PX4Flow轉了180度。x向機尾,y向左,FLOW_ORIENT_YAW必須設定為18000。(如果跟足文件,沒有旋轉,就不用改動FLOW_ORIENT_YAW)   對焦: 你不能確定PX4Flow出廠的焦距是你所需要的,所以必須調較焦距。我用的是APM Planner,但那裡沒有可以顯示PX4Flow影像的功能,只有用QGroundControl,我連接QGroundControl的過程在這裡。看到PX4Flow影像輸出,就可以把鏡頭對著3米外的物件,鬆開鏡頭的螺絲,進行對焦。   效準(Flow Sensor Calibration): 跟著文件進行效準,一切順利,下載log file,得到以下的圖表: 以上是戶外的測試,接著我做了戶內的測試,效果差很多。 但做到Range Sensor Check就找不到數據。文件說可以在EKF5.meaRng看到距離的變化,但在log中這一項是0,不知是那裡出錯。文件說他們裝了外置的range finder,可能就是這個原因。我沒有打算為此而買一個Pulsed Light unit,就不理它去了試飛。 試飛後看到,比較GPS定位,Optical Flow定位還是不太穩定,有兩三米的移位,而且是在戶外做測試。如果要做到室內定位,一定要有厘米級的精確度,未知是否可以通過較準(calibration),或程式改良可以達到,又或者要加上雷射range finder才有改善。最起碼要買張地毯,家裡的地磚太平滑,不是很適合用來做光流定位。

OpenTLD on Drone Testing

想做到drone onboard object tracking,就像這一個https://vimeo.com/76358967。看到他們用的是OpenTLD,下載來試試,花了一些時間在Mac上build bin file。出來的效果很不錯,比OpenCV要簡單,學習的能力也很高,很準確。最重要的是它的速度很高,我用的是MacbookPro,運行時可以達到60fps,學習時約15fps。比較在OpenCV,只能有25fps是很好的一個選擇。 下一步是如何使它能在flight controller下運行,例如是Pixhawk? 想真一點,要使Pixhawk可以輸入video,執行OpenCV,好像不太可能。於是Google一下,在討論區找到這一篇文。原來很多學生也以此為畢業project,雖然沒有一個很確實的結論,但方向上也有一點頭緒。以RaspberryPi執行video輸入及分析的工作,再通過MAVLink輸入指令到Pixhawk。 下一步是: 1) 用RaspberryPi來做一次速度測試; 2) 嘗試連結Pixhawk和RaspberryPi; 3) 嘗試通過MAVLink控制Pixhawk;

PX4FLOW

更新(2015-08-06):由於APM Copter3.3的更新開始支援Optical Flow LOITER,使這篇文有點outdate了。我的PX4FLOW project也成功重開了。 和Pixhawk一起買了PX4FLOW,很想用它起碼可以做到室內的Autonomous Position Hold。 但它不是想像中的容易使用,網上可以找的文件不多,要看的幾乎都被我看過了。Forum的討論就問的人多答的人少,還有人怪罪於3DR會賣一件產品但沒有任何支援的,起碼也要在網站上說明,這個東東不被APM Planner支援哦。 但我相信還是可以找到方法的,再努力點。可能要靠自己看source code了。始終,都是open source project,所有code都在,還有examples,看不明,做不到也怪不了人吧。 如果你有興趣或正在做相同的事,search到了我這裡來,留個言,看看有沒有可以交流的地方。 這條片幾乎給我看破了。 有些人還是做到了,但好像很神秘,沒有一個寫出過程,更不用說提供原碼了。 讓我做到吧,我一定會把過程詳細列出的。祝我好運吧!   後記: 我終於知道為什麼很多人做到了,但沒有一個把「如何做」提供出來,原來很多條YouTube都是假的!請看這裡一位PX4的核心developer說什麼。 https://groups.google.com/d/msg/px4users/wXcDtNzXNRU/2utFB17F0dMJ   更新: 終於有人在APMCopter做了,有source code的,要試試。 https://github.com/priseborough/ardupilot/tree/ekfOptFlow-wip

幾個月前開始,努力在看PX4 development的文件,不過主力還是要有一隻可以試驗的multicopter,最近這部機還算可以了。今天,正式開始我PX4 programming的旅程。 跟著文件做開發環境設定 Setting Toolchain http://pixhawk.org/dev/toolchain_installation_mac Connect Pixhawk form NuttShell (NSH) https://pixhawk.org/users/serial_connection   Building and Flashing Firmware https://pixhawk.org/dev/nuttx/building_and_flashing_console 終於可以第一次用Terminal build到PX4FMU的firmware,和upload上Pixhawk。 整個過程不算太難,有問題都在forum上serach到解答,裡面的人都很願意幫人,很基礎的問題也用心回覆。 我用Mac來做開發平台,文件也很夠,只是夾雜著LINUX,Windows的文件,有時會難找,有時也不知道這項是不是for Mac的。等我有時間,會寫一個專for Mac的中文install workflow,讓有興趣入門的朋友,不會因為install不到而放棄。 下一步要走一次HelloSyk的Tutorial,看看是如何編自己的onboard app。祝我好運! https://pixhawk.org/dev/px4_simple_app