この間、DJIのMobileSDKに翻弄されて、iPhoneからAndroidoに変えようと思ったが、また、同じようなことは起きそうなので、そういうアプストア系のやつを頼らないことにした。そのためさしあたってドローンを自作する。コントローラーまで自作できないので、これはPixHawkを使い、機上に載せたRaspberryPi (以下 Raspi)で制御する。という道筋を考えた。
ただ、このPixHawk用ののSDKでRaspiのプログラムを開発するのがとても面倒。まず、開発ツールの全体構成が複雑で、広範囲で何がどうなっているのかがわからない。
まず、PixHawkに乗っているシステムの全体は、
https://docs.px4.io/master/en/
ここに掲載されている。そして、このPixHawkと、OnBoardコンピュータとの接続はMavLinkというシステムが担っている。
https://mavsdk.mavlink.io/main/en/index.html
どちらにも開発者が何をやるべきかが書かれているが、これから自分にとって必要なのはなんであるかを理解するために2日くらいかかった。
更に最も頭を悩ませたのは、これらのシステムの開発でLinux系のライブラリが作られているCPU周りのアーキテクチャとRaspiのアーキテクチャが異なっていることだ。
そのため、Raspiから、簡単なコマンドを作成して、Pixhawkに贈ろうとしても、プレコンパイル済みのライブラリを使おうとすると、エラーになって実行できない。簡単な離陸コマンドのコンパイル方法は以下にある。
https://mavsdk.mavlink.io/main/en/cpp/quickstart.html
結局、ライブラリから作り直さなければどうにもならない。
その過程で、Raspiを諦めようかとも思った。
しかし、ライブラリのソースがコンパイルできることがわかった。そのことの書いてある場所が分かりづらい。
こんなところにあった。
https://mavsdk.mavlink.io/main/en/cpp/guide/build.html
まず、ここからライブラリを作成して、インストール。ただし、公開する前はデバック用のライブラリにしておきなさいと書いてあったのでそうしておいた。また、いつかリリース版のライブラリをコンパイルし直さなければならない。
それで、先の簡単な離陸コマンドをコンパイルした。そして無事にRaspi上で、動いた。
0 件のコメント:
コメントを投稿