transformtraj
두 변환 사이의 궤적 생성
구문
설명
예제
동차 변환 간 보간하기
두 개의 방향과 위치에서 변환을 만듭니다. 보간을 위한 시간 간격과 시간으로 구성된 벡터를 지정합니다.
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')
SE(3) 변환 간 보간하기
축-각 회전에서 첫 번째 변환을 구축하고 축-각 회전과 변환 모두에서 마지막 변환을 구축합니다.
t0 = se3([0 1 1 pi/4],"axang"); tF = se3([1 0 1 6*pi/5],"axang")*se3([1 1 1],"trvec");
보간을 위한 시간 간격과 시간으로 구성된 벡터를 지정합니다.
tInterval = [0 1]; tvec = 0:0.01:1;
변환 사이를 보간합니다. plotTransforms
를 사용하여 궤적을 플로팅합니다.
[tfInterp] = transformtraj(t0,tF,tInterval,tvec); plotTransforms(tfInterp(1:10:end))
입력 인수
tInterval
— 궤적의 시작 시간과 종료 시간
요소를 2개 가진 벡터
궤적의 시작 시간과 종료 시간으로, 요소를 2개 가진 벡터로 지정됩니다(단위: 초).
예: [0 10]
데이터형: single
| double
tSamples
— 궤적에 대한 시간 샘플
요소를 m개 가진 벡터
궤적에 대한 시간 샘플로, 요소를 m개 가진 벡터로 지정됩니다(단위: 초).
예: 0:0.01:10
데이터형: single
| double
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 버전에서는 쉼표를 사용하여 각 이름과 값을 구분하고 따옴표로 Name
을 묶으십시오.
예: TimeScaling=[0 1 1; 0 1 0; 0 0 0]
TimeScaling
— 시간 스케일링 벡터와 1계 2계 도함수
3×m 벡터
시간 스케일링 벡터와 1계 2계 도함수로, 3×m 행렬로 지정됩니다. 여기서 m은 tSamples
의 길이입니다. 기본적으로 시간 스케일링은 tInterval
의 시간 지점 사이의 선형 시간 스케일링입니다.
비선형 시간 스케일링의 경우 시간 지점의 값을 첫 번째 행에 위치 시간 스케일링으로 지정합니다. 두 번째 행과 세 번째 행은 각각 첫 번째 행의 첫 번째 도함수(1/s)와 두 번째 도함수(1/s2)입니다. 예를 들어 중간 지점까지는 선형 속도로 경로를 따라가고 종료 지점까지는 급하게 빨라지도록 하는 경우 시간 스케일링이 다음과 같습니다.
s(1,:) = [0 0.25 0.5 1 1 1] % Position time scaling, s(t) s(2,:) = [1 1 1 0 0 0] % Velocity time scaling, ds/dt s(3,:) = [0 0 0 0 0 0] % Acceleration time scaling, d^2s/dt^2
데이터형: single
| double
출력 인수
tforms
— 변환 궤적
4×4×m 동차 변환 행렬 배열 | se3
객체로 구성된 m개 요소를 가진 배열
변환 궤적으로, 4×4×m 동차 변환 행렬 배열 또는 se3
객체로 구성된 m개 요소를 가진 배열로 반환됩니다. 여기서 m은 tSamples
의 점 개수입니다.
vel
— 변환 속도
6×m 행렬
변환 속도로, 6×m 행렬로 반환됩니다(단위: m/s). 여기서 m은 tSamples
의 점 개수입니다. 처음 세 요소는 각속도이고 두 번째 세 요소는 시간의 속도입니다.
acc
— 변환 가속도
6×m 행렬
변환 가속도로, 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에 개발됨참고 항목
bsplinepolytraj
| contopptraj
| cubicpolytraj
| quinticpolytraj
| rottraj
| trapveltraj
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 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)