開源自動導航系統:ArduPilot/APM
ArduPilot/APM是一款開源自動導航系統,支持多旋翼飛行器,傳統直升機,固定翼飛機與傳統直升機。源碼由一個大型愛好者社區開發。
支持的導航板
目前,ArduPilot/APM支持如下自動導航板
- </li>
-
APM2 – 一款受歡迎的AVR2560 8位自動導航儀
</li> -
APM1(已終止開發) – 一款基于AVR2560的自動導航儀,使用分離式結構
</li> </ul>ArduPilot/APM源碼基于AP-HAL硬件抽象層編寫,使代碼能支持更多自動導航板變為可能。請查看這篇博客文章獲取關于遷移到AP-HAL的更多信息。
關鍵資源
-
ArduPilot/APM的源碼使用git管理在http://github.com/diydrones/ardupilot
</li> -
主開發者討論郵件列表drones-discuss,它開放給任何人加入
</li> -
用于支持的自動導航板的預編譯固件可在http://firmware.diydrones.com上下載
</li> -
有關配置與飛行ardupilot的用戶文檔可在http://copter.ardupilot.cn,http://plane.ardupilot.cn與http://rover.ardupilot.cn上找到
</li> -
用戶支持由DIYDrones論壇提供
</li> -
ArduPilot/APM自動測試系統顯示每個commit的測試狀態
</li> -
故障追蹤與開放issues可以使用github issues系統跟蹤
</li> -
由源代碼自動生成的載具板載參數文檔
</li> </ul>為什么取這個名字?
ArduPilot的“Ardu”部分取自Arduino。最初APM1自動導航板是基于Arduino開 發環境的。自從我們成長的比Arduino環境更快時,我們就不再使用Arduino運行庫了。盡管我們仍然使用稍加修改的Arduino集成開發環境版 本,來支持用于基于AVR的APM1與APM2板的ArduPilot。因為我們現在不僅支持Arduino兼容硬件(如PX4),為表示當前代碼的跨平 臺特性,我們把“Ardu”前綴從軟件項目取消,改為了“APM” 前綴(APM:Copter,APM:Plane,APM:Rover等)。
開發語言與工具
用于ArduPilot/APM的主要飛行代碼使用C++編寫。支持工具使用多語言編寫,最常用的是python。
目前,主要載具代碼編寫為“.pde”文件,由Arduino構建系統得來。pde文件是預處理為.cpp文件構建的一部分。pde文件中包含的聲明也能提供構建規則,說明需要包含與連接到哪些庫。
地面站
ArduPilot/APM支持多種地面站用于計劃與控制飛行。飛行固件使用MAVLink協議,它允許飛機被任何MAVLink兼容設備控制。
-
使用最廣泛的地面站就是Mission Planner,使用用于Windows的C#語言編寫。Mission Planner的源碼可以在github上查看。Mission Planner也能通過mono運行在Linux與MacOS上。
</li> -
QGroundControl也是地面站的一個選擇,使用C++的Qt庫編寫
</li> -
對于面相命令行與可編腳本地面站,你可以使用MAVProxy
</li> -
對于android平板,你可以使用ArdroPilot或者DroidPlanner
</li> </ul>
-
-