MAVkit は、コマンド ラインでのMAVLink 2.0用の C++ ツールボックスです。
さまざまなタイプのインターフェイス (シリアル、 UDP 、 TCP 、ファイル) との間でデータの表示、リダイレクト、ブロードキャスト、ログ、再生を行うことができます。
MAVkit は、MAVLink プログラマー向けのフレームワークでもあります。これは、各モジュールを他のプロジェクト内で独立して使用できるモジュラー アーキテクチャに基づいて構築されています。その場合、通信ハードウェアに応じて交換できるシンプルな MAVLink ブロックが提供されます。
低遅延を念頭に設計されており、インターフェイスごとにデュアル スレッド処理ループ (高速読み取りと処理) を使用することで、IO バッファーをオーバーフロー (データ損失につながる) から守ります。
注: 次の再帰コマンドを必ず使用してください。mavlink には 2 つのサブモジュール レベルがあります。
git submodule update --init --recursive
依存関係: Boost + MAVLink の通常の依存関係
mkdir build
cd build
cmake ..
make
Mavkit は、メッセンジャーと呼ばれるモジュールで構成されています。メッセンジャーは、完全に同時に他のユーザーとメッセージを送受信できます。
各メッセンジャーは、シリアル リンク、UDP ソケット、ログ ファイルなどのいずれかになります。
masterの役割には少なくとも 1 つのメッセンジャー (最初のメッセンジャー) を指定する必要があります。この特定のメッセンジャーは、その時点で作成される他のすべてのメッセンジャーに二重接続されます。逆に、二次メッセンジャーはそれらの間で接続されません。
以下は、それぞれ 4 つと 2 つのメッセンジャーで構成され、UDP を介してそれらの間でリンクされている 2 つの MAVkit インスタンスの例です。マスターは他のすべてのメッセンジャーに接続されていますが、それらの間ではリンクされていないことに注意してください。
ビルドしたら、メッセンジャーを次々に指定することでコマンド ラインから MAVKit を実行できます。
最初のメッセンジャーがマスターの役割を果たします。
引数:
例: --tty /dev/ttyUSB0 57600
引数:
例: --udp_server 14550
引数:
--udp_client 192.168.1.10 14550
引数:
例: --tcp_server 14550
引数:
--tcp_client 192.168.1.10 14550
受信したメッセージを .raw および .ts ファイルに保存します (.raw には mavlink の生データが含まれ、.ts には各メッセージのタイムスタンプが含まれます)。
引数はありません。
--log
.raw および .ts ファイルのコンテンツを再生します。
引数:
例: --file ../myLog 2.0 50
メッセージを標準出力に出力します。
引数はありません。
--display
コマンドラインでは、ほぼ必要な数のメッセンジャーを組み合わせることができます。
例 :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551