メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Parrot Minidrone に基づくクアッドコプターのモデリングとシミュレーション

この例では、Simulink ® を使用して、Parrot® シリーズのミニドローンをベースにしたクアッドコプターをモデル化、シミュレート、可視化する方法を示します。

QuadAHscene.png of quadcopter scene

クアッドコプターの実装の詳細については、Parrot Minidrones をベースにしたクアッドコプターのモデル化 を参照してください。

注: 例にハードウェアを統合するには、Simulink Support Package for Parrot Minidrones と C/C++ コンパイラをインストールする必要があります。

クアッドコプタープロジェクトを開く

次のコマンドを実行して、この例のプロジェクト ファイルの作業コピーを作成して開きます。

openProject('asbQuadcopter');

設計

高レベルの設計は以下のとおりです。各コンポーネントは個別のサブシステムとして設計されており、各サブシステムはバリアントの形式で複数のアプローチをサポートしています。

asbQuadcopter model

コマンド

6 つの自由度 (x、y、z、ロール、ピッチ、ヨー) すべてに入力コマンド信号を提供します。VSS_COMMAND 変数は、以下を使用して入力コマンド信号を選択的に提供するために使用できます。

  • Signal Editor ブロック

  • ジョイスティック

  • 事前保存データ

  • スプレッドシート

環境

環境パラメーター、重力、温度、音速、圧力、密度、磁場を適切な値に設定します。VSS_ENVIRONMENT 変数を使用すると、環境パラメーター値を次のように選択的に設定できます。

  • Constant

  • 変数

センサー

機体の位置、向き、速度、加速度を測定し、視覚データも取得します。VSS_SENSORS 変数を使用すると、センサーを次のように選択的に設定できます。

  • 動的

  • 直達

機体

VSS_AIRFRAME 変数を使用して、機体モデルを非線形または線形として選択します。線形状態空間モデルは、Simulink Control Design ™ を使用してトリム ソリューションに関する非線形モデルを線形化することによって得られます。

FCS(飛行制御システム)

FCS は次の要素で構成されます。

  • 推定器: 補完フィルターとカルマン フィルターを使用して実装され、機体の位置と方向を推定します。推定パラメーターは[1]に基づいています。

  • フライト コントローラー: PID コントローラーを使用して実装され、機体の位置と方向を制御します。

  • 着陸ロジック: 参照コマンドをオーバーライドし、特定のシナリオで機体を着陸させるアルゴリズムを実装します。

可視化

アクチュエータの入力値、機体の状態、環境パラメータの値が記録され、シミュレーション データ インスペクターを使用して可視化できます。機体の向きとアクチュエータの入力値は、飛行計器を使用して表示されます。

さらに、VSS_VISUALIZATION 変数を使用すると、次の方法で機体の向きを可視化できます。

  • スコープ

  • ワークスペース内

  • FlightGear

  • Simulink ® 3Dアニメーション™

Simulink ® 3D Animation™ を使用した可視化では、Epic Games® の Unreal Engine® と、Simulation 3D Scene ConfigurationSimulation 3D Rotorcraft ブロック、および Aerospace Blockset の Simulation 3D Multirotor 機体が使用されます。可視化は、空港 (VSS_VISUALIZATION = 3) または Apple Hill (VSS_VISUALIZATION = 3) シーンで実行できます。Apple Hill シーンは、Unreal Engine プロジェクト サポート パッケージの Aerospace Blockset ™ インターフェースで利用できます。

実装

  • コマンド サブシステムからの AC cmd バス信号は、FCS サブシステムへの参照信号を形成します。

  • 環境サブシステムからの Environment バス信号には環境データが含まれており、センサーサブシステム (慣性計測ユニットの重力による加速度入力) と 機体サブシステム (力とモーメントの計算に使用) に渡されます。

  • Sensors バス信号と センサー サブシステムからの Image Data は測定信号を形成し、機体の現在の状態に関する情報を FCS サブシステム に提供します。

  • 推定器とコントローラで構成される FCS サブシステムは、参照信号と測定信号に基づいて、クアッドコプターのモーター Actuators へのコマンド信号を計算します。FCS からの追加出力、Flag は、機体の状態値 (位置と速度) が特定の安全限界を超えた場合にシミュレーションを停止します。

  • プラント モデルとして機能する 機体 サブシステムは、クアッドコプターの 4 つのローターに対応するモーターへの入力として Actuator コマンドを受け取ります。Multirotorブロックは[2]および[3]に基づいて実装されており、力とモーメントの計算に使用されます。機体 サブシステムからの出力は States バス信号であり、 センサー サブシステムにフィードバックされます。

  • 可視化サブシステムは、AC cmd バス信号 (参照コマンド信号)、FCS によって生成された Actuators 入力、および Aiframeサブシステムからの States バス信号を使用して可視化を支援します。

軌跡生成

軌跡生成ツールは、Dubin メソッドを使用して、一連のナビゲーションウェイポイントを作成します。一連のウェイポイントを持つ軌跡を作成するために、この方法では、位置、進行方向、旋回曲率、旋回方向によって定義された一連のポーズを使用します。

ツールを起動するには、プロジェクトが開いていることを確認して実行します。

asbTrajectoryTool

次のインターフェイスが表示されます。

Helicopter trajectory

インターフェースにはいくつかのパネルがあります:

ウェイポイント

このパネルでは、軌跡ツールに必要なポーズについて説明します。これらのポーズを定義するために、パネルではテキスト ボックスを使用します。

  • (位置はメートル単位)

  • 方位(北からの度数)

  • 曲率(旋回曲率(メートル^-1))

  • 回転(時計回りまたは反時計回りの方向)

テキスト ボックスの右側のウェイポイントリストにポーズのリストが表示されます。

ウェイポイントを追加するには、編集ボックスにポーズ値を入力し、追加 をクリックします。新しいウェイポイントが同じパネルのウェイポイントリストに表示されます。

ウェイポイントの特性を編集するには、リスト内のウェイポイントを選択し、編集 をクリックします。ウェイポイントの特性は編集ボックスに表示されます。必要に応じて特性を編集し、OK をクリックします。変更をキャンセルするには、キャンセル をクリックします。

ウェイポイントを削除するには、ウェイポイントリストでウェイポイントを選択し、削除 をクリックします。

飛行禁止区域

この委員会は飛行禁止区域の位置と特徴を定義します。飛行禁止区域を定義するために、パネルではテキスト ボックスを使用します。

  • (位置はメートル単位)

  • 半径(メートル単位の距離)

  • マージン (メートル単位の安全マージン)

ウェイポイントパネルと同じように、追加削除編集OKキャンセル ボタンを使用します。

マップされた軌跡

このパネルは、ウェイポイントと飛行禁止区域の特性に基づいて、Apple Hill キャンパスの航空図上の軌跡をプロットします。

軌跡を生成するには、それぞれのパネルにウェイポイントと飛行禁止区域の特性を追加し、軌跡の生成をクリックします。

現在パネルにある軌跡を保存するには、[保存] ボタンをクリックします。このボタンは最後の軌跡のみを保存します。

最後に保存した軌跡を読み込むには、読み込み をクリックします。

デフォルトの軌跡を読み込むには、[デフォルトの読み込み] ボタンを押します。

ウェイポイントと飛行禁止区域パネルの値をクリアするには、クリア をクリックします。

デフォルト データには、おもちゃのクアッドコプターがカメラを使用する特定の場所のポーズが含まれており、地上のパイロットは屋根の雪の高さを推定できます。補助電源発電機ごとに3つの飛行禁止区域が定義されているため、クアッドコプターに障害が発生した場合でも、キャンパスのインフラストラクチャに損害が発生することはありません。

例がデフォルトデータの軌跡を生成すると、プロットは次のように表示されます:Helicopter trajectory with default data.

赤い線は軌跡を表し、黒い x マーカーは軌跡の変化または特定のポーズを決定します。特定のウェイポイントの方向を表す青い線には、特定のポーズが伴います。飛行禁止区域は緑色の円で表されます。

参考文献

[1] https://github.com/Parrot-Developers/RollingSpiderEdu/tree/master/MIT_MatlabToolbox/trunk/matlab/libs/RoboticsToolbox.

[2] Prouty、R.ヘリコプターの性能、安定性、および制御。PWS出版社、2005年。

[3] Pounds, P., Mahony, R., Corke, P. 大型クアッドローターロボットのモデリングと制御。制御工学実習。2010年。

参考

トピック