Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

transformtraj

두 변환 사이의 궤적 생성

R2019a 이후

설명

예제

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples)는 시간 간격과 주어진 시간 샘플에 기반한 점을 사용하여 두 개의 4×4 동차 변환 T0TF 사이를 보간하는 궤적을 생성합니다.

[tforms,vel,acc] = transformtraj(T0,TF,tInterval,tSamples,Name,Value)Name,Value 쌍 인수를 사용하여 추가 파라미터를 지정합니다.

예제

모두 축소

두 개의 방향과 위치에서 변환을 만듭니다. 보간을 위한 시간 간격과 시간으로 구성된 벡터를 지정합니다.

t0 = axang2tform([0 1 1 pi/4])*trvec2tform([0 0 0]);
tF = axang2tform([1 0 1 6*pi/5])*trvec2tform([1 1 1]);
tInterval = [0 1];
tvec = 0:0.01:1;

점 사이를 보간합니다. plotTransforms를 사용하여 궤적을 플로팅합니다. 변환을 쿼터니언 회전과 선형 천이로 변환합니다. Figure가 좌표 프레임의 모든 중간 변환을 보여줍니다.

[tfInterp, v1, a1] = transformtraj(t0,tF,tInterval,tvec);

rotations = tform2quat(tfInterp);
translations = tform2trvec(tfInterp);

plotTransforms(translations,rotations)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains an axes object. The axes object contains 404 objects of type patch, line.

입력 인수

모두 축소

초기 변환으로, 4×4 동차 변환으로 지정됩니다. 함수는 초기 변환 T0에서 시작하여 최종 변환 TF로 이동하는 궤적을 생성합니다.

데이터형: single | double

최종 변환으로, 4×4 동차 변환으로 지정됩니다. 함수는 초기 변환 T0에서 시작하여 최종 변환 TF로 이동하는 궤적을 생성합니다.

데이터형: single | double

궤적의 시작 시간과 종료 시간으로, 요소를 2개 가진 벡터(단위: 초)로 지정됩니다.

예: [0 10]

데이터형: single | double

궤적에 대한 시간 샘플로, 요소를 m개 가진 벡터(단위: 초)로 지정됩니다.

예: 0:0.01:10

데이터형: single | double

궤적에 대한 시간 샘플로, 요소를 m개 가진 벡터로 지정됩니다.

예: 0:0.01:10

데이터형: single | double

이름-값 인수

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

R2021a 이전 버전에서는 쉼표를 사용하여 각 이름과 값을 구분하고 따옴표로 Name을 묶으십시오.

예: 'TimeScaling',[0 1 2; 0 1 0; 0 0 0]

시간 스케일링 벡터와 1계 2계 도함수로, 3×m 행렬로 지정됩니다. 여기서 m은 tSamples의 길이입니다. 기본적으로 시간 스케일링은 tInterval의 시간 지점 사이의 선형 시간 스케일링입니다.

비선형 시간 스케일링의 경우 시간 지점의 값을 미터 단위의 위치로 첫 번째 행에 지정합니다. 두 번째 행과 세 번째 행은 각각 시간 지점의 속도(단위: m/s)와 가속도(단위: m/s2)입니다. 예를 들어 중간 지점까지는 선형 속도로 경로를 따라가고 종료 지점까지는 급하게 빨라지도록 하는 경우 시간 스케일링이 다음과 같습니다.

s(1,:) = [0 0.25 0.5 1 1 1] % Position
s(2,:) = [1    1   1 0 0 0] % Velocity
s(3,:) = [0    0   0 0 0 0] % Acceleration

데이터형: single | double

출력 인수

모두 축소

변환 궤적으로, 4×4×m 동차 변환 행렬 배열로 반환됩니다. 여기서 m은 tSamples의 점 개수입니다.

변환 속도로, 6×m 행렬(단위: m/s)로 반환됩니다. 여기서 m은 tSamples의 점 개수입니다. 처음 세 요소는 각속도이고 두 번째 세 요소는 시간의 속도입니다.

변환 가속도로, 6×m 행렬(단위: m/s2)로 반환됩니다. 여기서 m은 tSamples의 점 개수입니다. 처음 세 요소는 각가속도이고 두 번째 세 요소는 시간의 가속도입니다.

참고 문헌

[1] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press, 2017.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2019a에 개발됨