[논문리뷰]Biped Walking Pattern Generation by using PreviewControl of Zero-Moment Point

2022. 7. 11. 23:35카테고리 없음

1. introduction

control과 walking pattern generation에 따라서 두 가지 관점이 있음

zmp based approach : 질량, com위치, walking pattern을 준비하기 위한 각 link의 inertia 를 포함한 정확한 robot dynamics의 지식이 요구됨

- 주로 zmp를 pattern generation과 walking control을 위해 사용

 

inverted pendulum approach : com위치, 총 angular momentum 등의 dynamics에 대한 제한된 지식을 사용함

- 주로 inverted pendulum model 사용

 

두 번째 관점에서, 글쓴이는 성공적으로 실현된 simulation과 experiment에 의한 walking control과 pattern generation의 방법을 제안한다.

 

그러나, 우리의 방법이 원래의 배치에서 발의 위치를 바꿔서 stable gait(안정된 걸음걸이)를 만들기 때문에, 발이 특정한 상황에 놓여햐 하는 징검다리같은 곳에서의 걸음같은 상황에는 적용이 불가능하다

 

많은 ivp가 이런 문제에 고통받지만 zmp based 방법은 그런 상황을 다룰 수 있다

 

이 논문에서 우리는 zmp와 ivp방법을 혼합함으로써 임의의 발 위치를 허용하는 새로운 walking pattern generation을 소개한다.

 

이것은 또한 preview controller를 이용한것으로 보여지고, 우리의 방법이 단순한 ivp에 기반함에도 불구하고 우리는 정확한 multibody dynamics 에 적용할 수 있다.

 

2. dynamic models of biped robot

 

ivp

inverted pendulum이 임의의 평면 위에서 움직이는 구속조건 

평면의 법선벡터 : (kx, ky, -1), 평면이 지나는 점 : (0, 0,zc)

평면의 방정식

만약 평면이 지면과 수평하다면(kx = ky = 0)

모멘트의 평형을 고려하면

m : 진자의 질량, g : 중력, Tx, Ty : x축과 y축의 토크

위 식의 지배변수는 zc 하나 이므로 linear equation이다.

 

평면이 지면과 수평하다면 cart-table model로 modeling 가능

cart-table model

(px, py) : zmp의 지면에서의 위치

모멘트의 평형을 고려하면,

 

motion x에 대해서는 y방향 가속도 무시, motion y에 대해서는 x방향 가속도 무시

이고 앞선 식을 이용하면

이 되고 이를 다시 쓰면

zmp equation

 

 

 

3. walking pattern generation for given zmp

cart-table model : com의 궤적을 알고있다면 zmp equation을 통해 zmp를 쉽게 계산 가능

walking pattern generation : 반대로 zmp 주어진 궤적을 통해 cart의 움직임 계산

 

jerk(가가속도)
위 : 상태공간방정식, 아래 : zmp equation을 다시 씀
블록선도.
점선 : zmp ref, 실선 : x(com의 위치)

로봇이 0초부터 1.5초까지 뒷다리로 몸을 지지하고 1.5초부터 3.0초까지 앞다리로 몸을 지지한다.

그러므로 reference zmp는 반드시 1.5에 step change를 해야 하고 명백히 com은 그전에 움직이기 시작해야한다.

output은 반드시 future input으로부터 계산되야 하는 것이다!

 

 

시스템을 discretize(이산화) 하자.  discrete time : 특정한 지점의 시간에서만 값을 정의

k : 현재 시간

k+1 : state의 시간

x(k) : state vector, com의 x방향 위치

u(k) : control vector, x방향 가가속도

p(k) : zmp의 x 위치

T : sampling time. 뽑아내는 간격

A, B ,C : 상수로 구성된 행렬

 

perfomance index(=cost function)

perfomance index(성능 지수) : 시스템 매개변수가 극단값(일반적으로 최솟값)에 도달하도록 조정될 때 시스템은 최적 제어 시스템으로 강조

e(i) = p(i) - p_ref(i)   에러 : 계산한 p값 - 주어지는 p ref

Qe, R>0, Qx : 3*3 symmetric non-negative definite matrix 상수로 이루어진 행렬

del x = x(k) - x(k-1)

del u(k) = u(k) - u(k-1)

 

zmp ref( p ref)는 매 sampling time (T) 마다 NL step의 미래를 봄으로써 preview 될 수 있는데, 그것은 perfomance index를 위의 식에 의해서 최소한다.

시그마 e(k) : 현재 k까지 도달했을 때 zmp의 에러 합

가장 마지막 항 : 미래의 zmp 궤적(k+1 ~ k+NL)

Gx, Gi : 일정한 값( gain) 

Gp :    j = 1, 2, ..., NL동안 계속 변함  

Optimal controller for discrete-time system 681쪽

k slot : Gx, Gi, 특히 Gp를 구하는데 필요, 계산 복잡함

 

y축 : Gp

Gp가 바로 앞이 크다는 것은 바로 앞의 미래가 중요하다는 뜻 먼 미래는 중요 x(0으로 수렴하기 때문)

궤적을 바꾸더라도 좀 뒤의 미래에서 바꿔야함( 즉각 반응을 못함)

 

perfomance index 식을 생각하면

Qe = 1.0 이라는 건 zmp error가 가장 중요 하다는 뜻

Qx = 0 이라는 건 com이 어떻게 움직이든 상관x

R이 매우 작은 건 입력 u가 작으면 좋다는 뜻

 

 

 

위 그림과 아래 그림은 sampling time T는 같은데 위가NL이 더 크다(더 많은 미래를 나타낸다)

이때가 ref를 더 잘 추종하지만 계산속도가 느리다

T*NL = preview time

 

실제 로봇의 데이터를 이용해 계산한 zmp는 cart-table 모델로 계산한 zmp와 차이가 존재한다.

 

이러한 zmp error를 해결하기 위해 zmp error에 대해 preview control을 반복하여 적절히 보상하였음. ( 위의 블록 선도 참고)

 

--------

zmp :  로봇의 발이 지면에 접촉했을 때, 로봇에 작용하는 모든 moment의 합이 0인 지점

보행하는 동안 로봇의 zmp는 로봇의 발바닥 혹은 support polygon 영역 안에서 벗어나지 않고 유지되어야 함

따라서, 목표 zmp위치는 보행패턴의 발바닥 위치가 되어야 함

로봇의 zm가 발바닥 영역 안에서 벗어나지 않도록 하는 보행 패턴 궤적이 필요함

 

preview control : 기본적으로 linear quadratic optimal control 형태의 제어기

이 논문에서의 preview control은 zmp와 com간의 역학 관계를 서보 제어 문제로 해석하고,

미래 목표 zmp궤적에 따른 최적의 com궤적(Xc)를 출력하는 walking pattern generator