Mission Planner編譯

來源:互聯網
上載者:User

標籤:

軟體下載:

       本文使用VS2013進行編譯和修改Mission Planner,其他版本沒有嘗試過。首先下載Mission Planner源碼。

https://github.com/diydrones/MissionPlanner

同時聲明本文是翻譯APM官方論壇的文章,和嘗試的結果。還有因為是開源的項目本身比較活躍,版本很多,這裡不保證可以一定編譯成功。英文原文地址:

http://dev.ardupilot.com/wiki/buildin-mission-planner/

在編譯之前請務必下載好最新的mission planner到C盤下,因為官方文檔說一些dll庫在專案檔裡面沒有,推薦安裝.msi尾碼的安裝板軟體。

http://ardupilot.com/downloads/?did=82

點擊橘黃色的Download下載按鈕即可。本文成於這是2016年3月的版本,供大家參考。Mission Planner具有非常複雜的庫內含項目關聯性,不推薦概念模糊就改編代碼。這裡列出了你需要的基本技能:

具備C#編程技術與相關經驗(至少有C++相關經驗)

具有微軟VS開發環境相關經驗。MP不是學習VS的入門應用。

具有Windows的API(應用程式介面),包括理解資料流、進程、線程等相關知識。

VS的相關支援,C#編程相關以及Windows API相關技術可能不會從DIY Drones社區獲得。你需要從其他資源獲得協助與支援。

編譯環境搭建:

          第一步安裝Visual Studio 2013,並且保證在Windows系統中能夠正常運行。

下載並安裝MS Visual Studio 2013

重啟電腦

從開始按鈕中運行Visual Studio

當安裝完成後,嘗試改變Mission Planner之前先使用一個簡單的“Hello World”例子測試一下你安裝的軟體能否正常使用。

通過下載並運行 DirectX End-User Runtime Web Installer,完成DirectX的安裝。

從Github中得到原始碼

Mission Planner原始碼儲存在Github網站上。你可以遵循之前如何擷取ardupilot飛行代碼的介紹在

https://github.com/diydrones/MissionPlanner

程式碼程式庫中擷取得到Mission Planner原始碼。開啟項目,在Mission Planner中找到Ardupilot.sln 用VS開啟項目:

圖1.1

這時候如果直接編譯可能會出現如下問題:

圖1.2

要修改下配置,如果真的那麼順利,就沒天理了.....那麼步驟如下:

工程設定:

運行Visual Studio

點擊 檔案 >> 開啟 >> 工程 / 解決方案

導航到Mission Planner檔案夾,選擇Ardupilot.sln 檔案開啟。

Visual Studio應該開啟包含有Mission Planner和其他一些相關引用(如“3DR Radio”, “Updater”等)的相關解決方案(solution),可以在“解決方案”資源管理員面板看到(黃色高亮地區)

設定“Solution Configuration”為“Debug”或者“Release”(可在工具菜單下找到相關命令)

設定“Solution Platforms”為“x86″

在“解決方案”管理器面板中,在Mission Planner項右擊選擇屬性,在Signing(簽名)選型卡中取消選中“Sign the ClickOnce manifests”(為ClickOnce清單簽名),不要點勾選。

                                                          圖1.2 取消清單簽名!

     Mission Planner有如下幾個工程項目組成,你可以通過在解決方案面板中開啟“Mission Planner”和“Libs”檔案夾看到。

MissionPlanner (主代碼)

AviFile
BaseClasses
BSE.Windows.Forms
Core
GeoUtility
GMap.Net.Core
GMap.Net.WindowsForms
KMLib
MAVLink
MetaDataExtractor
MissionPlanner.Comms
MissionPlanner.Controls
MissionPlanner.Utils
px4uploader
SharpKml
ZedGraph

批量編譯Mission Planner工程檔案:

在產生裡面找到批產生。

選擇Build >> Batch Build…(產生 >> 批產生),“Select All”(全選),然後點擊“Rebuild”(重建)。第一次嘗試編譯Mission Planner時可能會出現一些錯誤,所以多嘗試幾次。這是候可能會編譯成功。

圖1.3批量產生

關於錯誤的解決:

如果一些錯誤仍然存在,那麼試著使用下面這些方法:

對於缺失dlls相關的錯誤:

解決方案面板中,在MissionPlanner工程上右擊選擇屬性,參考引用路徑:在檔案選擇視窗,選擇已經安裝的Mission Planner檔案目錄,其可能為: C:\Program Files (x86)\Mission Planner 或者 C:\Program Files\Mission Planner,根據你的MP的安裝路徑

點擊添加檔案夾按鈕,然後將已安裝的Mission Planner檔案目錄輸入到參考目錄框中。

點擊(選擇)編譯事件。移除所有先行編譯pre-build和編譯後(Post build)選項。

點擊 (選擇)編譯。

對於缺失索引相關錯誤,可以查看每個列出的錯誤對應的工程名。然後選擇相應工程的屬性,和之前一樣添加已安裝版Mission Planner安裝目錄。這樣應該可以減少此類錯誤。如果在工程BSE.Windows.Forms中遇到類似“..could not locate the Code Analysis tool at”。你可以在BSE.Windows.Forms屬性選項中的Code Analysis通過取消勾選程式碼分析選型來解決。
解決編譯錯誤時一些有用的協助:
在VS中,當你進行編譯或者先行編譯一個解決方案時,選擇功能表項目[BUILD] [Configuration Manager],將會顯示出每次哪個項目將被編譯。
選擇編譯那些未被選中的項目: (例如 3DRRadio, Updater, wix)
選擇 [Build], [Clean Solution] 然後 [Build], [Rebuild solution].
所有的工程應該都可以被正確編譯.
當編譯中沒有錯誤發生時,那麼你就可以準備開始瀏覽並編輯原始碼了。

圖1.3這是編譯成功的樣子

       想必編譯Mission Planner的人,都想修改MP的架構,或者增加新的功能。但是MP的架構確實比較複雜,對C#要有一定的開發經驗。MP的常式下面提供了一個SimpleExample簡單的常式我們可以首先編譯這個常式來上手MP的地面站的開發。

圖1.4 SimpleExample運行

“SimpleExample”方案作為一個微型應用,用來說明一個C#程式如何與載具串連,並且控制它解鎖與上鎖。這個簡單的例子與完整的Mission Planner相比具有更少的依賴性,因此編譯工作相當容易理解。

首先,從Visual Studio的 File >> Open >> Project/Solution 中開啟Solution面板。然後在MissionPlanner代碼目錄選擇ExtLibs/SimpleExample.sln

選擇 Build >> Build Solution 選項,確保程式能夠成功的被編譯。

完成上述工作後,接下來第一步先要檢查能夠正常串連到你的飛行控制板,並且使用已安裝的Mission Planner軟體能夠正常解鎖,然後斷開常規的Mission Planner,點擊“Start”按鈕使用debug模式運行程式。當面板“Florm1”彈出後,選擇正確的COM連接埠和傳輸速率(一般115200),點擊“Connect”按鈕。如果串連成功,點擊“Arm/Disarm”按鈕嘗試解鎖你的APM控制板。

點擊串連之後,會有一些參數列印出來,就是解析MAVLINK協議到軟體上顯示出來,這個常式的構架相對簡單,如果直接貿然修改MP的內容,不容易入手。這邊的控制板是下載的APM巡航車的韌體,不用考慮板卡解鎖的問題,因為APM的巡航車的韌體在室內可以解鎖,所以串連上以後,控制台會有資料更新。

可以先研究MAVLINK的協議了,編譯的文章到一段落,後續我們會更具MAVLINK協議來完成一個簡單的地面站。

更多內容請參考:http://www.amovauto.com  阿木社區

                           QQ群:526221258

Mission Planner編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.