poseplot
構文
説明
poseplot
は、姿勢 (位置と向き) を座標の原点位置にゼロ回転でプロットします。既定のナビゲーション座標系は北-東-下 (NED) 座標系です。
poseplot(___,
は、姿勢プロットのナビゲーション座標系を指定します。 frame
)
poseplot(___,
は、1 つ以上の名前と値の引数を使用して pose patch プロパティを指定します。たとえば、Name=Value
)poseplot(PatchFaceColor="r")
は、赤の面の色で姿勢をプロットします。プロパティのリストについては、PosePatch Properties を参照してください。
poseplot(
は、姿勢プロットの親座標軸を指定します。ax
,___)
は、p
= poseplot(___)PosePatch
オブジェクトを返します。pose patch を作成した後でそのプロパティを変更する場合は p
を使用します。プロパティのリストについては、PosePatch Properties を参照してください。
例
poseplot
を使用した姿勢の可視化
既定の設定で関数 poseplot
を使用して、既定の姿勢をプロットします。
poseplot xlabel("North-x (m)") ylabel("East-y (m)") zlabel("Down-z (m)");
次に、指定した向きと位置の姿勢をプロットします。
q = quaternion([35 10 50],"eulerd","ZYX","frame"); position = [1 1 1]; poseplot(q,position)
その後、Figure 上に 2 番目の姿勢をプロットし、PosePatch
オブジェクトを返します。2 番目の姿勢は、名前と値の引数 ScaleFactor
を使用してサイズを小さくしてプロットします。
hold on
p = poseplot(eye(3),[5 5 5],ScaleFactor=0.5)
p = PosePatch with properties: Orientation: [3x3 double] Position: [5 5 5] Use GET to show all properties
legend("First Pose","Second Pose") hold off
poseplot
を使用した姿勢のアニメーション化
関数 poseplot
を使用して、一連の姿勢をアニメーション化します。まず、初期位置と最終位置を定義します。
ps = [0 0 0]; pf = [10 0 0];
次に、quaternion
オブジェクトを使用して初期の向きと最終の向きを定義します。
qs = quaternion([45,0,0],'eulerd','ZYX','frame'); qf = quaternion([-45,0,0],'eulerd','ZYX','frame');
開始姿勢を表示します。
patch = poseplot(qs,ps); ylim([-2 2]) xlim([-2 12]) xlabel("North-x (m)") ylabel("East-y (m)") zlabel("Down-z (m)");
係数を使用して位置と向きを連続的に変更し、オブジェクト関数 set
を使用して姿勢を更新します。
for coeff = 0:0.01:1 q = slerp(qs,qf,coeff); position = ps + (pf - ps)*coeff; set(patch,Orientation=q,Position=position); drawnow end
メッシュを使用した姿勢の表示
関数 poseplot
を使用して、向きと位置をメッシュでプロットします。まず、地上ビークルを原点にゼロ回転でプロットします。
poseplot(ones("quaternion"),[0 0 0],MeshFileName="groundvehicle.stl",ScaleFactor=0.3); xlabel("North-x (m)") ylabel("East-y (m)") zlabel("Down-z (m)")
次に、回転子を位置 [20 20 -20]
にゼロ回転でプロットします。
hold on poseplot(ones("quaternion"),[20 20 -20],MeshFileName="multirotor.stl",ScaleFactor=0.2);
最後に、固定翼航空機を位置 [5 5 -40]
にゼロ回転でプロットします。
poseplot(ones("quaternion"),[5 5 -40],MeshFileName="fixedwing.stl",ScaleFactor=0.4); view([-37.8 28.4]) hold off
入力引数
quat
— 四元数
quaternion
オブジェクト
四元数。quaternion
オブジェクトとして指定します。
R
— 回転行列
3 行 3 列の正規直交行列
回転行列。3 行 3 列の正規直交行列として指定します。
例: eye(3)
position
— 姿勢プロットの位置
3 要素の実数値ベクトル
姿勢プロットの位置。3 要素の実数値ベクトルとして指定します。
例: [1 3 4]
frame
— 姿勢プロットのナビゲーション座標系
"NED"
(既定値) | "ENU"
姿勢プロットのナビゲーション座標系。北-東-下座標系の場合は "NED"
、東-北-上座標系の場合は "ENU"
として指定します。
親座標軸のステータスが hold off
の場合、NED ナビゲーション座標系を指定すると、親座標軸の YDir
プロパティと ZDir
プロパティを設定することで Figure 内の y 軸と z 軸が反転します。
ax
— 姿勢プロットの親座標軸
Axes
オブジェクト
姿勢プロットの親座標軸。Axes
オブジェクトとして指定します。座標軸を指定しない場合、関数 poseplot
は現在の座標軸を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。
例: poseplot(PatchFaceAlpha=0.1)
ここでは、PosePatch
プロパティの一部だけを紹介しています。完全な一覧については、PosePatch Properties を参照してください。
Orientation
— 姿勢プロットの向き
quaternion
オブジェクト (既定値) | 回転行列
姿勢プロットの向き。quaternion
(Sensor Fusion and Tracking Toolbox) オブジェクトまたは回転行列として指定します。
Position
— 姿勢プロットの位置
[0 0 0]
(既定値) | 3 要素の実数値ベクトル
姿勢プロットの位置。3 要素の実数値ベクトルとして指定します。
MeshFileName
— STL メッシュ ファイルの名前
string スカラー | 文字ベクトル
Standard Triangle Language (STL) メッシュ ファイルの名前。メッシュ ファイルの名前を含む string スカラーまたは文字ベクトルとして指定します。この引数を指定した場合、関数 poseplot
は向きのボックスの代わりにメッシュをプロットします。
ScaleFactor
— 姿勢プロットのスケール係数
1
(既定値) | 非負のスカラー
姿勢プロットのスケール係数。非負のスカラーとして指定します。スケール係数は、向きのボックスのサイズを制御します。MeshFileName
引数を指定した場合、スケール係数はメッシュのスケールも変更します。
PatchFaceColor
— パッチ面の色
[0 0 0]
(既定値) | RGB 3 成分 | 16 進数カラー コード | "r"
| "g"
| "b"
| ...
パッチ面の色。RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。
RGB 3 成分は、色の赤、緑、青成分の強度値を指定する 3 要素の行ベクトルです。強度値は
[0, 1]
の範囲でなければなりません。たとえば[0.4 0.6 0.7]
のようになります。16 進数カラー コードは、ハッシュ記号 (
#
) で始まり、3 桁または 6 桁の0
からF
までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード"#FF8800"
、"#ff8800"
、"#F80"
、および"#f80"
は等価です。
次に、よく使用する色とそれに対応する値のリストを示します。
色名 | 省略名 | RGB 3 成分 | 16 進数カラー コード | 外観 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
PatchFaceAlpha
— パッチ面の透明度
0.1
(既定値) | 範囲 [0, 1]
のスカラー
パッチ面の透明度。範囲 [0, 1]
のスカラーとして指定します。値 1
は完全に不透明で、値 0
は完全に透明です。
出力引数
p
— pose patch オブジェクト
PosePatch
オブジェクト
pose patch オブジェクト。PosePatch
オブジェクトとして返されます。返されたオブジェクトは、プロットされた姿勢のプロパティのクエリと変更に使用できます。プロパティのリストについては、PosePatch Properties を参照してください。
バージョン履歴
R2021b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)