メインコンテンツ

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

lookupPose

特定の時間における測地軌跡の姿勢を取得する

R2024a 以降

説明

[position,orientation,velocity,acceleration,angularVelocity,ecef2ref] = lookupPose(traj,sampleTimes) は、指定されたサンプル時間におけるウェイポイント軌跡の姿勢情報を返します。サンプル時間が軌跡の持続時間を超えている場合、対応する姿勢情報は NaN として返されます。

[___] = lookupPose(traj,sampleTimes,coordinateSystem) ではさらに、position 出力の形式を指定することもできます。

すべて折りたたむ

開始LLAが[15 15 0]、終了LLAが[75 75 100]のgeoTrajectoryを作成します。飛行時間を10時間に設定します。1000 秒ごとに軌跡をサンプリングします。

startLLA = [15 15 0];
endLLA = [75 75 100];
timeOfTravel = [0 3600*10];
sampleRate  = 0.001;

trajectory = geoTrajectory([startLLA;endLLA],timeOfTravel,'SampleRate',sampleRate);

軌跡の LLAウェイポイントを出力します。

positionsLLA = startLLA;
while ~isDone(trajectory)
    positionsLLA = [positionsLLA;trajectory()];  
end
positionsLLA
positionsLLA = 37×3

   15.0000   15.0000         0
   16.6667   16.6667    2.7778
   18.3333   18.3333    5.5556
   20.0000   20.0000    8.3333
   21.6667   21.6667   11.1111
   23.3333   23.3333   13.8889
   25.0000   25.0000   16.6667
   26.6667   26.6667   19.4444
   28.3333   28.3333   22.2222
   30.0000   30.0000   25.0000
   31.6667   31.6667   27.7778
   33.3333   33.3333   30.5556
   35.0000   35.0000   33.3333
   36.6667   36.6667   36.1111
   38.3333   38.3333   38.8889
      ⋮

lookupPose 関数を使用して、ECEF フレーム内の軌跡の直交ウェイポイントを検索します。

sampleTimes = 0:1000:3600*10;
n = length(sampleTimes);
positionsCart = lookupPose(trajectory,sampleTimes,'ECEF');

ECEF フレームで結果を可視化します。

figure()
km = 1000;
plot3(positionsCart(1,1)/km,positionsCart(1,2)/km,positionsCart(1,3)/km, 'b*');
hold on;
plot3(positionsCart(end,1)/km,positionsCart(end,2)/km,positionsCart(end,3)/km, 'bo');
plot3(positionsCart(:,1)/km,positionsCart(:,2)/km,positionsCart(:,3)/km,'b');

plot3([0 positionsCart(1,1)]/km,[0 positionsCart(1,2)]/km,[0 positionsCart(1,3)]/km,'k:');
plot3([0 positionsCart(end,1)]/km,[0 positionsCart(end,2)]/km,[0 positionsCart(end,3)]/km,'k:');
xlabel('x (km)'); ylabel('y (km)'); zlabel('z (km)');
legend('Start position','End position', 'Trajectory')

Figure contains an axes object. The axes object with xlabel x (km), ylabel y (km) contains 5 objects of type line. One or more of the lines displays its values using only markers These objects represent Start position, End position, Trajectory.

入力引数

すべて折りたたむ

測地軌跡。geoTrajectory オブジェクトとして指定されます。

秒単位のサンプル時間。非負のスカラーの K 要素ベクトルとして指定します。

位置を報告する座標系。次のように指定します。

  • 'LLA' — 位置を緯度(度)、経度(度)、WGS84 参照楕円体からの高度(メートル)で報告します。

  • 'ECEF' — ECEF (地球中心地球固定) 座標系内の直交座標として位置をメートル単位で報告します。

.

出力引数

すべて折りたたむ

ローカル参照座標系の測地位置。K 行 3 列の行列として返されます。KSampleTimes の数です。

  • coordinateSystem 入力が 'LLA' として指定されている場合、各行の 3 つの要素は、測地ウェイポイントの緯度 (度)、経度 (度)、および WGS84 参照楕円体上の高度(メートル) を表します。

  • coordinateSystem 入力が 'ECEF' として指定されている場合、各行の 3 つの要素は、ECEF (地球中心地球固定) 座標系内の直交位置座標をメートル単位で表します。

データ型: double

ローカル参照座標系での方向。K 行 1 列の quaternion 列ベクトル、または 3 行 3 列の各行列が回転行列である 3 行 3 列の K 実数配列として返されます。

各四元数または回転行列は、ウェイポイントのローカル基準座標系 (NED または ENU) から軌道上のターゲットのボディ座標系までの座標系回転です。

KSampleTimes の数です。

データ型: double

ローカル参照座標系での速度(メートル/秒)が、M 行 3 列の行列として返されます。

KSamplesPerFrame プロパティで指定します。

データ型: double

ローカル参照座標系での加速度(メートル毎秒毎秒)が、M 行 3 列の行列として返されます。

KSampleTimes の数です。

データ型: double

ローカル参照座標系での角速度(ラジアン/秒)が、K 行 3 列の行列として返されます。

KSampleTimes の数です。

データ型: double

ECEF (地球中心地球固定) フレームに対する基準座標系の方向。K 行 1 列の quaternion 列ベクトルまたは 3 行 3 列の K 実数配列として返されます。各 3 行 3 列の行列は回転行列です。

各四元数または 3 行 3 列の回転行列は、現在の軌道位置における ECEF フレームからローカル基準座標系 (NED または ENU) へのフレーム回転です。

KSampleTimes の数です。

データ型: double

拡張機能

すべて展開する

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2024a で導入