メインコンテンツ

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

軌跡データから飛行アニメーションを作成

この例では、 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');

Figure contains an axes object. The hidden axes object contains an object of type image.

参考

トピック