2021年9月1日水曜日

RspberryPi 4 によるPixHawkの制御

 この間、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上で、動いた。


PixHawkとつなげてないので、つなげなさいというメッセージが表示されている。
つなげる部分は、それはまたそれで面倒なので、また別の記事にしたい。今日は、コンパイルできたことの喜びに浸る。これができればいろいろ展望が開けるのだ。


0 件のコメント:

コメントを投稿

立ち上がらないraspberrypiのネットワーク

 raspberrypiのネットワークが立ち上がらなくなってしまっていた。差し当たって必要ないのでほっておいたが、今日、いろいろ調べてみた。 結局、raspi-confgで、network Configure をdhcpcdから、networkmanagerに変更したら立ち上がる...