このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
軌跡データから飛行アニメーションを作成
この例では、 FlightGear Animation オブジェクトを使用して、軌跡の飛行アニメーションを作成する方法を示します。
製品内でこの例を実行する場合は、 FlightGearインストールで例をカスタマイズし、GenerateRunScript、system、および play コマンドのコメントを解除する必要があります。HL20 フォルダを $FLIGHTGEAR/data/ 航空機/ フォルダにコピーする必要もあります。HL20 フォルダーは、この例の作業フォルダー内、または次のフォルダーの下にあります。
fullfile(matlabroot, "toolbox", "aero", "animation")
注: この例はMATLAB Onlineではサポートされていません。
記録された飛行軌跡データを読み込む
この例の飛行軌跡データは、コンマ区切り値形式のファイルに保存されます。ファイルからデータを読み込むには、readmatrix を使用します。
tdata = readmatrix('asthl20log.csv');
軌跡データから時系列オブジェクトを作成する
MATLAB ® timeseries コマンドを使用して、tdata 内の時間配列とともに、緯度、経度、高度、およびオイラー角データから時系列オブジェクト ts を作成します。緯度、経度、オイラー角を度からラジアンに変換するには、convang 関数を使用します。
ts = timeseries([convang(tdata(:,[3 2]),'deg','rad') ... tdata(:,4) convang(tdata(:,5:7),'deg','rad')],tdata(:,1));
「Array6DoF」などの他の有効な形式を使用して、このデータからインポートされたデータを作成できます。以下に例を示します。
ts = [tdata(:,1) convang(tdata(:,[3 2]),'deg','rad') tdata(:,4) ... convang(tdata(:,5:7),'deg','rad')];
そして「Array3DoF」。
ts = [tdata(:,1) convang(tdata(:,3),'deg','rad') tdata(:,4) ... convang(tdata(:,6),'deg','rad')];
FlightGearAnimation オブジェクトを使用してフライトアニメーションを初期化する
FlightGearAnimation オブジェクトを開きます。
h = Aero.FlightGearAnimation;
時系列の FlightGearAnimation オブジェクトのプロパティを設定します。
h.TimeseriesSourceType = 'Timeseries';
h.TimeseriesSource = ts;
FlightGearに関する FlightGearAnimation オブジェクトのプロパティを設定します。
これらのプロパティには、インストール フォルダーへのパス、航空機ジオメトリモデル、 FlightGearフライト シミュレータのネットワーク情報が含まれます。
h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear'; h.GeometryModelName = 'HL20'; h.DestinationIpAddress = '127.0.0.1'; h.DestinationPort = '5502';
FlightGearフライト シミュレータの希望する初期条件 (場所と方向) を設定します。
h.AirportId = 'KSFO'; h.RunwayId = '10L'; h.InitialAltitude = 7224; h.InitialHeading = 113; h.OffsetDistance = 4.72; h.OffsetAzimuth = 0;
FlightGearフライト シミュレータの「ジャスト イン タイム」のシーナリー インストールを有効にします。シミュレータの実行中に必要な風景がダウンロードされます。Windows® システムの場合、このオプションを有効にしてFlightGear を起動するとエラー メッセージが表示される場合があります。詳細については、Installing Additional FlightGear Sceneryを参照してください。
h.InstallScenery = true;
FlightGearシェーダーを無効にします。
h.DisableShaders = true;
ウォールクロック時間の 1 秒あたりのアニメーション データの秒数を設定します。
h.TimeScaling = 5;
get(h) を使用して、FlightGearAnimation オブジェクトのプロパティとその値を確認します。
get(h)
OutputFileName: 'runfg.bat' FlightGearBaseDirectory: 'C:\Program Files\FlightGear' GeometryModelName: 'HL20' DestinationIpAddress: '127.0.0.1' DestinationPort: '5502' AirportId: 'KSFO' RunwayId: '10L' InitialAltitude: 7224 InitialHeading: 113 OffsetDistance: 4.7200 OffsetAzimuth: 0 InstallScenery: 1 DisableShaders: 1 Architecture: 'Default' TimeScaling: 5 FramesPerSecond: 12 TStart: NaN TFinal: NaN TimeSeriesSource: [1×1 timeseries] TimeSeriesSourceType: 'Timeseries' TimeSeriesReadFcn: @TimeseriesRead
FlightGear Flight Simulatorを起動するための実行スクリプトを作成する
希望する初期条件 (場所、日付、時刻、天気、動作モード) でFlightGear を起動するには、GenerateRunScript コマンドを使用して実行スクリプトを作成します。デフォルトでは、GenerateRunScript は実行スクリプトを 'runfg.bat' という名前のテキスト ファイルとして保存します。
GenerateRunScript(h)
データを表示するたびにこのファイルを生成する必要はありません。必要な初期条件またはFlightGear情報が変更された場合にのみ生成します。
FlightGearフライトシミュレータを起動する
MATLAB コマンド プロンプトからFlightGearを起動するには、system コマンドを入力して、GenerateRunScript によって作成された実行スクリプトを実行します。
system('runfg.bat &');
ヒント: FlightGearウィンドウにフォーカスを当てた状態で、V キーを押すと、コックピット ビュー、ヘリコプター ビュー、追跡ビューなど、さまざまな航空機のビューが切り替わります。
軌跡データの飛行アニメーションを再生する
FlightGearが起動して実行されると、 FlightGearAnimation オブジェクトはFlightGearとの通信を開始できます。FlightGearで飛行アニメーションを表示するには、play コマンドを使用します。
play(h)
飛行アニメーションのスクリーンショットを表示するには、MATLAB image コマンドを使用します。
image(imread('astfganim01.png','png')); axis off; set(gca,'Position',[ 0 0 1 1 ]); set(gcf,'MenuBar','none');