基本実験 | uORBメッセージの読み書きとカスタム実験(2)

ガイド

uORB は、PX4/Pixhawk システムの非常に重要かつ重要なモジュールの 1 つであり、UAV モジュール間の通信のためのプロトコル メカニズムです。この記事では、uORB を詳しく紹介し、uORB メッセージの読み書きとカスタム実験 (2) のプロセス全体を分解します。

基本実験 | uORBメッセージの読み書きとカスタム実験(2)

01

RflySimプラットフォームのuORBメッセージ読み書き機能

PX4 の uORB メッセージ システムは、内部モジュール間で非常に強力で便利なデータ対話機能を提供します。すべてのモジュールはメッセージ プールにデータを保存でき、他のモジュールはメッセージ プールから必要なデータをサブスクライブできます。ただし、uORB メッセージの読み取り、書き込み、およびカスタム メッセージの開発プロセスは、前のルーチンで示したように比較的面倒です。

RflySim プラットフォームは、MATLAB/Simulink ソフトウェアに基づいて Pixhawk ターゲット ブロック ツールボックスを開発しました。ツールボックスの uORB 読み取りおよび書き込みは、豊富な uORB メッセージの読み取り、書き込み、およびカスタム メッセージ モジュールを提供します。主なモデルは次のとおりです。

写真

Simulink でこれら 3 つのインターフェイスを使用すると、パラメーター設定にはメッセージ タイプ、トピック名、メッセージ データが含まれます。メッセージ タイプは書き込まれるメッセージのタイプを指し、対応するメッセージ タイプ定義ファイルは PX4 ソース コードの「msg」ディレクトリにあります。トピック名は、書き込まれるメッセージに対応するトピック名を指し、対応するトピック定義ファイルは、PX4 ソース コードの「topics」ディレクトリにあります。uORB メッセージ列の次の形式を選択します。中央の二重アンダースコア「__」は区切り線で、区切り線の前は uORB メッセージのファイル名を示し、区切り線の後は uORB メッセージ ID を示します。actuator_controls__actuator_controls_0 上記の形式は、メッセージ ファイルが actuator_controls.msg、メッセージ ID が actuator_controls_0 であり、同じメイン メッセージで複数の異なるメッセージ ID をカスタマイズできることを示しています。メッセージ データは、書き込まれる実際のデータを指し、Simulink モデルの他のブロックで生成できます。注: 上記の 3 つのモジュールは PX4 飛行制御システムでのみ使用できるため、使用前に PX4 開発環境が正しく構成されていること、および Simulink モデルが PX4 に正常に展開されていることを確認し、「uORB」を使用する必要があります。 「Read Function-Call Trigger」モジュールを使用するには、PX4 で対応する uORB メッセージを定義する必要があります。

①:uORBメッセージデータ監視インターフェースモジュール。このインターフェイスは、外部関数を呼び出すことで受信した新しいメッセージに応答できます。Simulink の uORB Read Function-Call Trigger インターフェイスを使用すると、コールバック関数 (このルーチンでは使用されません) を通じて新しいメッセージを処理できます。

写真

②:uORBメッセージデータ公開インターフェースモジュール。このインターフェイスを使用すると、ユーザーは指定された値または構造を uORB トピックに公開できます。

写真

③:uORBメッセージデータ公開インターフェースのアドバンストモジュール。このインターフェイスにより、ユーザーは公開するデータをより柔軟に制御できるようになります。Simulink で uORB Write Advanced インターフェイスを使用すると、より複雑で正確なメッセージ パブリッシュ方法を実現できます。オプションで、書き込むメッセージ ファイルとメッセージ ID。さらに、メッセージの優先順位やキューのサイズなどの詳細オプションを設定できます。

写真

02

RflySimプラットフォームに基づくUORBメッセージの読み書き実験

RflySim が提供する豊富な uORB メッセージの読み書きインターフェイスに基づいて、コントローラー設計の実験開発や飛行制御の内部データ監視に使用できます。この実験の全体的なフレームワークは次のとおりです。

写真

同時に、RflySim プラットフォームは、データを送信するための uORB メッセージ rfly_px4 を提供します (特定のデータを 40100 シリーズ ポートに送信します)。この実験では、フライト コントローラーから読み取られたメッセージが rfly_px4 メッセージを通じて転送された後、そのメッセージはハードウェアインザループ シミュレーション中に Simulink で監視できます。uORB メッセージをリッスンする Simulink のデモは次のとおりです。

写真

自動コード生成によってフライト コントローラーに uORB メッセージの読み書きデモ ファイルを書き込んだ後、QGC の Anslyze Tools->MAVLINK コンソールを開き、listener actuator_controls、listener actuator_controls_0 と入力して、次のようにこのルーチンの実行効果を確認します。

写真

ハードウェアインザループ シミュレーションを実行するときは、次の図に示すように、Simulink リスナーを開いて [実行] をクリックして、書き込まれた uORB メッセージを監視します。

参考文献

[1]。https://doc.rflysim.com/

おすすめ

転載: blog.csdn.net/FEISILAB_2022/article/details/132097582