Main Content

poseplot

3차원 자세 플롯

R2021b 이후

설명

예제

poseplot은 좌표 원점 위치에서 회전이 0인 자세(위치와 방향)를 플로팅합니다. 디폴트 내비게이션 프레임은 북쪽-동쪽-아래쪽(NED) 프레임입니다.

예제

poseplot(quat)는 쿼터니언 quat에 의해 지정된 방향으로 자세를 플로팅합니다. 위치의 디폴트 값은 [0 0 0]입니다.

예제

poseplot(R)은 회전 행렬 R에 의해 지정된 방향으로 자세를 플로팅합니다. 위치의 디폴트 값은 [0 0 0]입니다.

예제

poseplot(___,position)은 자세 플롯의 위치를 지정합니다.

poseplot(___,frame)은 자세 플롯의 내비게이션 프레임을 지정합니다.

예제

poseplot(___,Name=Value)는 하나 이상의 이름-값 인수를 사용하여 자세 패치 속성을 지정합니다. 예를 들어 poseplot(PatchFaceColor="r")은 빨간 면 색으로 자세를 플로팅합니다. 속성의 목록을 보려면 PosePatch Properties 항목을 참조하십시오.

poseplot(ax,___)는 자세 플롯의 부모 좌표축을 지정합니다.

예제

p = poseplot(___)PosePatch 객체를 반환합니다. 자세 패치를 생성한 후 속성을 수정하려면 p를 사용합니다. 속성의 목록을 보려면 PosePatch Properties 항목을 참조하십시오.

예제

모두 축소

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에 두 번째 자세를 플로팅하고 PosePatch 객체를 반환합니다. 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 함수를 사용하여 일련의 자세를 애니메이션으로 표시합니다. 먼저 초기 위치와 최종 위치를 정의합니다.

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 함수를 사용하여 메시 표현으로 방향과 위치를 플로팅합니다. 먼저 차량을 회전을 0으로 하여 원점에 플로팅합니다.

poseplot(ones("quaternion"),[0 0 0],MeshFileName="groundvehicle.stl",ScaleFactor=0.3);
xlabel("North-x (m)")
ylabel("East-y (m)")
zlabel("Down-z (m)")

둘째, 회전익 항공기를 회전을 0으로 하여 [20 20 -20]에 플로팅합니다.

hold on
poseplot(ones("quaternion"),[20 20 -20],MeshFileName="multirotor.stl",ScaleFactor=0.2);

마지막으로 고정익 항공기를 회전을 0으로 하여 위치 [5 5 -40] 에 플로팅합니다.

poseplot(ones("quaternion"),[5 5 -40],MeshFileName="fixedwing.stl",ScaleFactor=0.4);
view([-37.8 28.4])
hold off

입력 인수

모두 축소

쿼터니언으로, quaternion 객체로 지정됩니다.

회전 행렬로, 3×3 정규 직교 행렬로 지정됩니다.

예: eye(3)

자세 플롯의 위치로, 요소를 3개 가진 실수 값 벡터로 지정됩니다.

예: [1 3 4]

자세 플롯의 내비게이션 프레임으로, 북쪽-동쪽-아래쪽 프레임의 경우 "NED" 또는 동쪽-북쪽-위쪽 프레임의 경우 "ENU"로 지정됩니다.

부모 좌표축 상태가 hold off일 때 NED 내비게이션 프레임을 지정하면 부모 좌표축의 YDir 속성과 ZDir 속성이 설정되어 Figure에서 y축과 z축이 반대가 됩니다.

자세 플롯의 부모 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않으면 poseplot 함수는 현재 좌표축을 사용합니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: poseplot(PatchFaceAlpha=0.1)

여기에 나열된 PosePatch 속성은 일부일 뿐입니다. 전체 목록을 보려면 PosePatch Properties를 참조하십시오.

자세 플롯의 방향으로, quaternion 객체 또는 회전 행렬로 지정됩니다.

자세 플롯의 위치로, 요소를 3개 가진 실수 값 벡터로 지정됩니다.

STL(Standard Triangle Language) 메시 파일의 이름으로, 메시 파일의 이름이 포함된 string형 스칼라 또는 문자형 벡터로 지정됩니다. 이 인수를 지정하면 poseplot 함수는 방향 상자 대신 메시를 플로팅합니다.

자세 플롯의 스케일링 인자로, 음이 아닌 스칼라로 지정됩니다. 스케일링 인자는 방향 상자의 크기를 제어합니다. MeshFileName 인수를 지정하면 스케일링 인자가 메시의 스케일도 변경합니다.

패치 면 색으로, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다.

  • RGB 3색은 색의 빨간색, 녹색, 파란색 성분의 명암을 지정하는 요소를 3개 가진 행 벡터입니다. 명암은 [0, 1] 범위 안에 있어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리 16진수(범위: 0~F)가 이어지는 문자형 벡터 또는 string형 스칼라입니다. 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 "#FF8800", "#ff8800", "#F80", "#f80"은 동일합니다.

다음은 일반적으로 사용되는 색과 그에 대응하는 값의 목록입니다.

색 이름짧은 이름RGB 3색16진수 색 코드모양
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

패치 면 투명도로, 범위 [0, 1] 내의 스칼라로 지정됩니다. 값 1은 완전히 불투명하고 값 0은 완전히 투명합니다.

출력 인수

모두 축소

자세 패치 객체로, PosePatch 객체로 반환됩니다. 반환된 객체를 사용하여 플로팅된 자세의 속성을 쿼리하고 수정할 수 있습니다. 속성의 목록을 보려면 PosePatch Properties 항목을 참조하십시오.

버전 내역

R2021b에 개발됨