상세 컨텐츠

본문 제목

위치 경로 생성

경로 생성

by Zin9 2024. 11. 7. 19:12

본문

728x90

로봇의 모터 제어에 있어 경로 생성은 매우 중요한 분야다.

상위 제어기에서 통신을 통해 매 주기마다 위치지령을 모터 드라이버에 전달하고, 이 위치 지령을 추종하며 움직이기 때문이다.

이 위치 지령을 생성해주는 것은 여러 방법이 있다.

위치 지령은 속도 지령을 적분하면 된다.

경로 생성을 쉽게 이해하기 위해선 속도 지령을 어떻게 만들 것인지 이해해야 한다.

 

1) 가속도 그래프가 일정한 속도 파형(y=k) → 3차 다항식

2) 가속도 그래프가 증감하는 속도 파형(y≠k) → 5차 다항식

3) 가속도 그래프가 포물선 형태를 띄는 속도 파형 → 2n+1차 다항식(n=3,4,5,...)

 

말로는 설명이 어려우니 그래프로 알아보자.

 

그림 1은 3차, 5차, 7차 다항식을 시뮬레이션으로 보여준다.

가속시간은 0.3초이며 1000[rpm]에 도달하도록 설정한다.

 

다항식의 차수가 높아질수록 속도 파형에 곡선이 커지게 된다.

 

<그림 1. 3차, 5차, 7차 다항식의 시뮬레이션 결과>

 

① 3차 다항식

가속하는 동안 가속도 파형이 일정하다.

② 5차 다항식

가속하는 동안 가속도 파형이 포물선 형태를 띈다.

③ 7차 다항식

가속하는 동안 가속도 파형이 포물선 형태를 띄며, 처음과 끝에서 가속도 파형이 5차 다항식의 파형보다 완만하다.

→ 가속을 부드럽게 함으로써 진동을 줄이기 위함이다!

→ 하지만, 가속도의 최대치가 높아지므로, 더 많은 순간 토크가 필요하다는 단점이 존재한다.

위치 경로 생성과 진동은 무슨 관계?

모션의 처음과 끝에서 부드럽게 운동해야 한다.
자동차를 운전하면서 가속할 때 가속 페달을 세게 밟으면 어떠한가?
반대로 감속할 때 브레이크 페달을 세게 밟으면?
두 경우 모두 몸이 튕겨져 나갈만큼 충격이 온다.
가장 좋은 건 가속할 때나 감속할 때나 운전자의 몸이 시트에 딱 달라붙어 있으며 충격이 느껴지지 않는 것이다.

로봇에 있어 위치 제어가 이렇다.
급가감속을 하면 모션이 종료되었음에도 모터는 목표 위치에 안정적으로 도달하지 못한다.
모션이 종료되면 되도록 빠르게 현재 위치가 위치 지령과 동일하게 되어야 한다.
그래야 다음 모션을 시작할 수 있기 때문이다.
목표 위치에 도달하지 않았는데 다음 모션을 시작할 수 없기 때문이다.

그래서 목표 위치에 도달하는 시점에는 부드럽게 감속해야 떨림을 최소화해서 목표치에 도달할 수 있다.
로봇 팔의 말단에 부하가 크고 로봇의 강성이 약해질수록 이러한 위치 제어(7, 9차 다항식을 이용한 경로 생성)가 필요하다.

<그림 2. 추가하기>

※ 모션: 한 지점으로부터 다른 지점으로 이동하는 움직임

 

 

 

3차, 5차, 7차 다항식의 특징을 살펴보자.

 

먼저 3차 다항식의 표현을 보자.

★ 3차 다항식에선 "위치와 속도"로 경로를 생성한다!

 

위치 경로 생성에서는 q(t)로 표현한다.

이 식에 경계조건을 넣어보자.

먼저 시간 t가 0인 때를 보면, q(0) = a0 가 된다. 즉, a0는 현재 위치가 된다.

q(t)를 미분하면 속도 표현이 된다.

q'(t)에서 t가 0이면 초기 속도가 되고, a1가 초기속도가 된다.

<3차 다항식 위치 표현>
<3차 다항식의 속도 표현>

 

나머지 계수는 어떻게 구할 수 있을까?

총 이동 시간을 T라고 하면 아래의 수식을 풀어서 각각의 계수를 구할 수 있다.

 

자, 5차 다항식은 어떤가?

"위치, 속도, 가속도"를 설정하여 경로를 생성한다.

3차 다항식의 풀이를 이해했다면, 5차 다항식도 스스로 풀어볼 수 있을 것이다.

표현식, 경계조건, 방정식을 설명없이 첨부한다.

 

시뮬레이션에선 다음과 같이 행렬로 표현해서 사용해도 되지만, 실제 코드로 작성할 때는 연립방정식을 이용해서 풀도록 하자.

 

 

이어서 7차 다항식도 첨부한다.

7차 다항식에는 "저크"라는 개념이 포함되는데, 가속도를 미분한 것이다.

저크로 인해 가속도 파형의 차수가 높아져서 모션의 시작과 끝에서 가속도가 완만하게 변하게 된다.

이는 로봇이 부드럽게 가속하고 감속하는데 도움을 준다.

즉, 모션의 시작과 끝에서 로봇의 진동을 줄이기 위함이다!

 

각 다항식의 계수는 인공지능한테 물어보도록 하자.

5차 다항식까지는 계산해볼만 하지만 7차는 좀...

7차 다항식의 계수는 풀이에 따라 여러 해가 나오는 듯 하다.

그런데 시뮬레이션 해보니 계수가 조금 다를지라도 결과는 거의 차이 없는 것처럼 보인다.

728x90