tizen.moe

tizen.moe

MissionPlannerの自前ビルド

複数機能があって便利ではあるのだけど、実際のデバッグで使うには不便な機能が結構あるので自前ビルドをしようと思ったらハマったのでメモ。と言うか、作りがどうも素人臭い部分があってうざいので本当の意味ではQGroundControl使う方がクロスプラットフォーム的な観点も含めて出自が良いんじゃないかと思うのだけど。*1

基本的に↓を見ながらやれば出来るとは思う。部分的にハマったポイントだけ列挙しておきます。(for 自分用。後から書いてるので抜け漏れあるかもしれません)

Building Mission Planner with Visual Studio | Developer

環境設定

前提として、 Windows 10 + Visual Studio 2013でやってます。VSはBizsparkがあったのでPremiereにしてますが別にCommunity Editionで十分のはず。

  • Visal Studio 2013推奨
    • 2015でビルドしようとしたら幾つかのSystem系usingで参照エラーになった。.NetFramework 4(3.5でもビルドは出来た気がする)推奨なので4.65だとエラーになるっぽい。そのうちその内に直したいけど今のところ需要が無い。。。
  • DirectX 9.0c SDK
    • これで良いはずなのだけど、何故か上手く行かなかったのでこちらから500MB位のデッカイファイルを落として入れなおしました
    • DirectX系の参照で必要。今のユースケース的には不要なのでこの部分ビルド重くなるだけで(ry...
  • Python 2.7

ソースダウンロード

$ git clone https://github.com/diydrones/MissionPlanner

特に何も考え無い。tortoisegitでもsourcetreeでもVSのgitクライアントでも良い気がします。

ビルド

cloneした直下にある"Ardupilot.sln"をVSから開いてF5。nugetで追加パッケージを落としたりして気づいたら
f:id:moguriso:20160222151726p:plain
例外吐きますがアンマネージドコードからマネージドコードを呼び出してるよという警告のはずなのでとりあえず無視します(F5)


構造の設計はまー理解しますが、保守性に㌧だ実装だとは個人的には思えない。。。

*1:なんか、MissionPlannerじゃないと出来ない機能があると聞いた気がするけれど、どの機能だったかは聞いてないor聞いたけれど忘れてしまった