Main Content

trapveltraj

사다리꼴 속도 프로파일로 궤적 생성

설명

예제

[q,qd,qdd,tSamples,pp] = trapveltraj(wayPoints,numSamples)는 사다리꼴 속도 프로파일을 따라, 주어진 일련의 입력 웨이포인트를 통과하는 궤적을 생성합니다. 이 함수는 지정된 샘플 수 numSamples를 기반으로 주어진 시간 샘플 tSamples에서의 위치, 속도, 가속도를 출력합니다. 또한 시간에 대한 다항식 궤적의 조각별 다항식 pp 형식을 반환합니다.

[q,qd,qdd,tSamples,pp] = trapveltraj(wayPoints,numSamples,Name,Value)Name,Value 쌍 인수를 사용하여 추가 파라미터를 지정합니다.

예제

모두 축소

주어진 일련의 2차원 xy 웨이포인트와 함께 trapveltraj 함수를 사용합니다.

wpts = [0 45 15 90 45; 90 45 -45 15 90];

주어진 샘플 수(501)에 대한 궤적을 계산합니다. 이 함수는 사다리꼴 속도를 사용하여, 웨이포인트를 구현하는 다항식의 궤적 위치(q), 속도(qd), 가속도(qdd), 시간 벡터(tvec), 다항식 계수(pp)를 출력합니다.

[q,qd,qdd,tvec,pp] = trapveltraj(wpts,501);

x 위치와 y 위치에 대한 궤적과 각 웨이포인트 사이의 사다리꼴 속도 프로파일에 대한 궤적을 플로팅합니다.

subplot(2,1,1)
plot(tvec, q)
xlabel('t')
ylabel('Positions')
legend('X','Y')
subplot(2,1,2)
plot(tvec, qd)
xlabel('t')
ylabel('Velocities')
legend('X','Y')

Figure contains 2 axes objects. Axes object 1 with xlabel t, ylabel Positions contains 2 objects of type line. These objects represent X, Y. Axes object 2 with xlabel t, ylabel Velocities contains 2 objects of type line. These objects represent X, Y.

2차 평면에서 실제 위치를 확인할 수도 있습니다. q 벡터와 웨이포인트의 개별 행을 xy 위치로 플로팅합니다.

figure
plot(q(1,:),q(2,:),'-b',wpts(1,:),wpts(2,:),'or')

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

입력 인수

모두 축소

궤적의 웨이포인트에 대한 점으로, n×p 행렬로 지정됩니다. 여기서 n은 궤적의 차원이고 p는 웨이포인트 개수입니다.

예: [1 4 4 3 -2 0; 0 1 2 4 3 1]

데이터형: single | double

출력 궤적의 샘플 개수로, 양의 정수로 지정됩니다.

데이터형: single | double

이름-값 인수

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

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

예: 'PeakVelocity',5

참고

사다리꼴 속도 프로파일의 특성으로 인해 다음 파라미터 중 최대 두 개만 설정할 수 있습니다.

속도 프로파일 세그먼트의 피크 속도로, 'PeakVelocity'와 함께 스칼라, 벡터 또는 행렬이 쉼표로 구분되어 지정됩니다. 이 피크 속도는 사다리꼴 속도 프로파일링 동안 가장 높이 도달한 속도입니다.

스칼라 값은 궤적의 모든 요소와 모든 웨이포인트 사이에 적용됩니다. 요소를 n개 가진 벡터는 모든 웨이포인트 사이 궤적의 각 요소에 적용됩니다. 각 웨이포인트에 대한 궤적의 각 요소에 n×(p-1) 행렬이 적용됩니다.

데이터형: single | double

속도 프로파일의 가속도로, 'Acceleration'과 함께 스칼라, 벡터 또는 행렬이 쉼표로 구분되어 지정됩니다. 이 가속도는 속도가 0에서 PeakVelocity 값까지 도달하는 일정한 가속도를 정의합니다.

스칼라 값은 궤적의 모든 요소와 모든 웨이포인트 사이에 적용됩니다. 요소를 n개 가진 벡터는 모든 웨이포인트 사이 궤적의 각 요소에 적용됩니다. 각 웨이포인트에 대한 궤적의 각 요소에 n×(p-1) 행렬이 적용됩니다.

데이터형: single | double

p-1개 궤적 세그먼트들 각각의 지속 시간으로, 'EndTime'과 함께 스칼라, 벡터 또는 행렬이 쉼표로 구분되어 지정됩니다.

스칼라 값은 궤적의 모든 요소와 모든 웨이포인트 사이에 적용됩니다. 요소를 n개 가진 벡터는 모든 웨이포인트 사이 궤적의 각 요소에 적용됩니다. 각 웨이포인트에 대한 궤적의 각 요소에 n×(p-1) 행렬이 적용됩니다.

데이터형: single | double

속도 프로파일의 가속도 단계 지속 시간으로, 'AccelTime'과 함께 스칼라, 벡터 또는 행렬이 쉼표로 구분되어 지정됩니다.

스칼라 값은 궤적의 모든 요소와 모든 웨이포인트 사이에 적용됩니다. 요소를 n개 가진 벡터는 모든 웨이포인트 사이 궤적의 각 요소에 적용됩니다. 각 웨이포인트에 대한 궤적의 각 요소에 n×(p-1) 행렬이 적용됩니다.

데이터형: single | double

출력 인수

모두 축소

tSamples에 주어진 시간 샘플에서의 궤적의 위치로, n×m 행렬로 반환됩니다. 여기서 n은 궤적의 차원이고 m은 numSamples와 같습니다.

데이터형: single | double

tSamples에 주어진 시간 샘플에서의 궤적의 속도로, n×m 행렬로 반환됩니다. 여기서 n은 궤적의 차원이고 m은 numSamples와 같습니다.

데이터형: single | double

tSamples에 주어진 시간 샘플에서의 궤적의 가속도로, n×m 행렬로 반환됩니다. 여기서 n은 궤적의 차원이고 m은 numSamples와 같습니다.

데이터형: single | double

궤적에 대한 시간 샘플로, 요소를 m개 가진 벡터로 반환됩니다. 출력 위치 q, 속도 qd, 가속도 qdd는 이러한 시간 간격으로 샘플링됩니다.

예: 0:0.01:10

데이터형: single | double

조각별 다항식으로, 조각별 궤적의 각 섹션에 대한 다항식을 정의한 구조체로 구성된 셀형 배열로 반환됩니다. 궤적의 모든 요소가 같은 절점을 공유하는 경우 셀형 배열은 하나의 조각별 다항식 구조체입니다. 그렇지 않은 경우 셀형 배열은 n개의 요소를 가지며, 요소는 각각 서로 다른 궤적 요소(차원)에 대응됩니다. 각 구조체에는 다음 필드가 있습니다.

  • form: 'pp'.

  • breaks: 조각별 궤적의 형식이 변경되는 시점으로 구성된, 요소를 p개 가진 벡터입니다. p는 웨이포인트 개수입니다.

  • coefs: 다항식의 계수에 대한 n(p-1)×order 행렬입니다. n(p-1)은 궤적의 차원에 pieces의 개수를 곱한 값입니다. 각각의 n 행 세트는 각 변수 궤적을 설명하는 다항식의 계수를 정의합니다.

  • pieces: p–1. 절점의 개수에서 1을 뺀 값입니다.

  • order: 다항식의 차수(degree)에 1을 더한 값입니다. 예를 들어 3차 다항식의 위수(order)는 4입니다.

  • dim: n. 제어점 위치의 차원입니다.

mkpp를 사용하여 직접 조각별 다항식을 만들거나 ppval을 사용하여 지정된 시간에서의 다항식을 계산할 수 있습니다.

조각별 다항식으로, 조각별 궤적의 각 섹션에 대한 다항식을 정의한 구조체로 반환됩니다. mkpp를 사용하여 직접 조각별 다항식을 만들거나 ppval을 사용하여 지정된 시간에서의 다항식을 계산할 수 있습니다. 구조체에는 다음 필드가 있습니다.

  • form: 'pp'.

  • breaks: 조각별 궤적의 형식이 변경되는 시점으로 구성된, 요소를 p개 가진 벡터입니다. p는 웨이포인트 개수입니다.

  • coefs: 다항식의 계수에 대한 n(p-1)×order 행렬입니다. n(p-1)은 궤적의 차원에 pieces의 개수를 곱한 값입니다. 각각의 n 행 세트는 각 변수 궤적을 설명하는 다항식의 계수를 정의합니다.

  • pieces: p–1. 절점의 개수에서 1을 뺀 값입니다.

  • order: 다항식의 차수(degree)에 1을 더한 값입니다. 예를 들어 3차 다항식의 위수(order)는 4입니다.

  • dim: n. 제어점 위치의 차원입니다.

참고 문헌

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

[2] Spong, Mark W., Seth Hutchinson, and M. Vidyasagar. Robot Modeling and Control. John Wiley & Sons, 2006.

확장 기능

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

버전 내역

R2019a에 개발됨