image 10
image 11

인공지능과 휴머노이드 로봇이 결합된 사례를 찾고 있습니다. 그게 walking pattern 을 generation 하는 것이나 제어 자체에 사용되는 쪽으로 찾아보고 있습니다.

생각보다 많은 논문이 있지는 않았습니다. 이 논문은 그중에 조금 오래 되었지만 전형적으로 상상할 수 있는 인공지능이 휴머노이드 로봇에 적용되는 제어 에 관한 논문입니다.

image 13

이 논문은 인공 신경망에 영감을 받은 ZMP(Zero Moment Point, 영점 모멘트 지점) 기반의 제어 방법을 사용하여 다양한 경사면에서 걷는 인간형 로봇의 안정적인 보행을 달성하기 위한 연구를 다루고 있습니다.

image 14

이 연구에서는 인간형 로봇의 ZMPx와 ZMPy 오류를 입력으로 하고, 로봇의 x, y 위치를 출력으로 하는 신경망 아키텍처를 사용합니다. 이 신경망은 역전파 알고리즘으로 훈련되는데 이는 저희가 착용로봇에 사용하고 있는 학습 기법이기도 하고 지금와서는 아주 흔한 학습 방법입니다.

image 15

Zmp error 를 input 으로 하고 보상 각도를 output 으로 한다는 말입니다. 여기서 아웃 풋은 com 의 roll 과 pitch 로의 기울어짐을 의미하는 것으로 보입니다. 결국 이 기울어짐을 발목 관절과 hip 관절을 변화하는 process 가 있을 겁니다. 마치 저희가 com 의 x,y 평면에서의 위치를 얻고 이를 inverse 풀어서 각 관절의 각도를 얻는 것처럼 논문 저자가 사용하는 process 가 있을 테지만 따로 설명되어 있지는 않습니다.

image 20

 저는 처음 논문을 보았을 때 다음과 같은 구조를 상상했었습니다.

 다시 한번 설명 하면 이들은 zmp error 을 입력으로 하였을 때 로봇 joint angle 의 보상 각도를 출력으로 하는 인공신경망을 학습하고 이때 모델 학습에 사용하는 error 는 입력과 같은 zmp error 입니다.

이는 인공지능을 따로 공부했다면 생소한 개념입니다.

image 21

결국 착용로봇에서 저희가 하였던 neural network 는 입력에 대한 모델의 output 이 있고 이 output 과 정답 output 과의 오차를 모델의 역전파로 전달하여 모델의 weight 를 업데이트 하였습니다.

하지만 저자가 제안하는 방법에서는 모델을 학습하는 동안은 모델의 출력이 직접적으로 쓰이지 않습니다. 직접 error 를 받고 이를 가지고 모델을 학습시킵니다.

결국 로봇에 입력으로 NN 의 output 이 들어가기 때문에 결국에는 쓰고 있기는 하지만 구현의 관점에서 이전과는 생소한 코드를 구현하게 됩니다.

image 22

이 결과를 보면 굉장히 유효 해보입니다. 하지만 오히려 이전 결과가 성능이 많이 낮아서 이전에는 제어기를 아예 안쓴것인가? 란 의문도 듭니다

image 23

참고 자료입니다.

image 24

다윈 OP3 의 발을 fsr센서로 zmp를 측정할 수 있도록 한 로봇을 webots simulation 에서 사용하고 있습니다.

image 25

Neural network 의 입출력 구조는 다음과 같이 하였습니다. 또한 신경망을 2개를 사용하였습니다. 저자의 논문과는 다르게 ZMP 가 아닌 CP 를 사용할 것이기 때문에 오른발 지지일 때와 왼발 지지일 때를 나누어 제어하기 위함입니다. 신경망은 저자와 비슷하게 히든레이어가 하나인 MLP 구조를 사용하였습니다.

image 26

먼저 기본적인 CP 를 이용한 제어기를 적용하였을 때의 cp 에러 감소입니다.

image 27

CPT 를 적용한 상태에서 NN 을 적용한 결과입니다. 특별히 게인값을 건들인 상황은 아니고 단순히 구현한 NN controller 가 작동을 하고 있구나를 확인하기 위함이었습니다.

image 28

이제 기존의 CPT 를 끄고 NN controller 의 파라미터들을 조절해 보았습니다. 아직 잘 모르겠습니다. 어떤 작용을 하고 있긴 한데 이게 충분히 유효한지에 대해서는 잘 모르겠습니다.

image 29

Nn controller 의 출력을 hip 의 roll, pitch 각도 뿐 아니라 ankle 의 roll, pitch 에도 적용하였을 때의 결과입니다. DSP 에서는 영향이 있긴 있는 것 같은데 이렇게 하여도 일부 구간에서는 오히려 성능이 하락하기도 합니다.

Categories: Humanoid

0 Comments

Leave a Reply