Previous Contents/Robotics

보행로봇의 걸음 제어의 여러가지 방식

shhyun 2008. 11. 1. 01:40

이 글에서는 여러가지 제어방식에 대해 이제까지 제가 찾아보고 알아낸 정보들을 개략적으로 정리해보고자 합니다. 보행 로봇의 걸음제어에 대해 막 입문하시는 분들께 약간의 도움이라도 되었으면 좋겠습니다.

제가 처음에 보행로봇의 걸음제어에 관심을 가지게 된 것은 Aibo 를 이용한 Robocup 대회 관련된 논문들을 살펴보면서 였습니다. 외국의 많은 팀들은 각자 독특한 여러가지 방식으로 로봇의 걸음새(영어로 Gait 라는 표현을 쓰더군요)를 만들었습니다. 처음에 가장 기초적인 프리미티브(Primitive, 적절한 한글 표현이 없는듯 싶네요;;)방식, 그리고 역기구학 해석을 통한 발자취의 제어 형태, 수학적 알고리즘을 통한 발자취 제어의 최적화 방식, 가장 최근에는 진화연산을 이용한 발자취 파라미터의 최적값을 찾아내는 방식에 이르기까지 상당히 많은 형태의 제어방식이 있습니다.


1. 프리미티브(Primitive) 제어 방식

처음 제가 생각했던 걸음을 만드는 방식은 강아지가 걸어가는 것을 참고로해서 일일이 각각의 각도 값을 전부 기록해서 일종의 리스트로 표현하고 이것을 연속적으로 움직이는 것이었습니다. 이것은 일반적으로 프리미티브 제어라고 하죠. 하나의 프리미티브는 하나의 동작을 의미하게 됩니다.

이를테면 한걸음 앞, 한걸음 뒤, 좌로 30도, 우로 30도 이런식의 정의를 합니다. 그리고 각각의 정의에는 해당하는 움직임에 대한 각도값들의 리스트를 저장해놓습니다. 실제 이용시에는 한걸음 앞을 호출하면 딱 한걸음만 앞으로 가는 그런 형태를 이용하는 것 입니다.

가장 기초적인 제어방식이고 구현도 어려울것이 없습니다.(물론 관절값을 직접 입력할 수 있는 경우에만 그렇습니다.) 그러나 불확실한 환경에 대한 적응력이나 움직임에 대한 오차보정등이 전혀 고려되지 않았다는 단점이 있습니다. 아주 정밀한 모터를 사용하는 로봇이라면 그래도 어느정도 적용에 있어서 그 오차등이 적긴 합니다만, 이 방식을 통해 정밀한 제어는 사실상 매우 어렵습니다.


2. 역기구학 해석을 통한 발자취의 제어 형태

이 방식은 로봇을 연구하는 연구자들의 가장 일반적인 형태의 방식입니다. 제가 이 방식을 처음 본 것은 Robocup 출전팀중 rUNSWift 팀의 2002년 리포트[1]에서 였습니다. 처음 4족 보행 로봇의 제어에 대해 접하신다면 정말 참고할만한 자료가 많습니다. 거의 모든 자료를 공개해놓았기 때문에 실제 이 팀에서 쓴 제어기도 이용해볼 수 있구요.(물론 Aibo ERS-7 모델을 가지고 계실 경우에 그렇다는 말입니다;;)

그리고 아래의 [2] 논문에서는 로봇의 발자취는 사각형으로 고정시킨 상태에서 좌우의 Phase 를 어떻게 조절하느냐에 따른 속도 차이나 이런것에 대한 분석을 해 놓았습니다. 실제 좌우 Phase 의 영향은 로봇의 방향 조절이나 그 속도면에서 어느정도 차이를 보여주는 것으로 알려져 있습니다.

위의 두 자료에서 걸음의 제어에 이용한 방식은 다음과 같습니다. 우선적으로 역기구학 해석을 통해 몸통에 대한, 혹은 전역 좌표계에 대한 발끝의 상대적인 좌표값을 구합니다. 그리고 그 좌표값이 그리는 자취의 도형을 결정하고, 실제 걸음에 적합한 자취의 좌표값을 구합니다. 그리고 그 자취를 통한 걸음의 제어를 수행합니다.

여기서 역기구학 해석이란 아시는 분은 잘 아시겠지만 간단하게 설명하겠습니다. 로봇의 다리는 다수의 관절로 이루어져 있습니다. 이 로봇의 다리가 만약에 3개의 관절로 이루어져 있다고 생각해 보죠. 만약에 로봇의 어느 한 관절이라도 움직인다면, 로봇의 발 끝의 좌표는 그것의 영향으로 변하게 됩니다. 즉, 발끝과 관절들은 상호간의 어떤 관계로서 정의할 수 있다는 말 입니다. 그리고 기구학 해석이란 관절들의 값을 이용해서 발끝의 전역 좌표계상의 위치를 구해내는 것이고, 역기구학 해석이란 발끝의 전역 좌표계상 위치를 통해 현재 관절들의 값을 역으로 해석해내는 것을 말합니다.

발자취를 통한 제어를 이용할 경우에는 로봇을 원하는 방향으로 원하는 만큼 조절하는 것이 가능합니다. 이것이 발자취를 통한 제어의 최대 장점입니다. 게다가 어떤 특정 환경에 대해 가변적으로 움직임을 조절하는 것도 가능합니다. 고로 일반적인 로봇축구 팀들이 가장 많이 쓸 수 있는 방식입니다. 프리미티브 방식에 발자취를 이용한 제어를 결합시킨 형태를 주로 이용합니다.

그러나 이 방식에는 결정해야할 문제가 많습니다. 예를들면 발자취의 도형이나 그 도형의 크기, 도형을 순환하는 속도, 사용할 역기구학의 해석등 상대적으로 많은 문제를 가지고 있습니다. 그래서 가장 처음에는 주로 가장 단순화시킨 직사각형의 형태를 이용하는 것이 대부분입니다. 그리고 역기구학 해석도 yaw, roll, pitch 를 사용해서 행렬로 해석하는 방식을 이용하거나, 기본적인 삼각함수와 거리 함수를 통한 조합을 이용하는 등 어떤 것을 사용할 지 정해야 합니다. 역기구학도 오차나 사용 불가 각도 같은 것도 고려해 줘야 하기 때문에 이것 또한 어떤 걸 쓸지 결정해 주어야 합니다. 그렇기 때문에 수학적 방식을 통한 최적화나 진화연산을 통한 최적화 기법을 이용하곤 합니다. (물론 역기구학의 해석에는 이를 이용할 수 없지만, 도형의 순환속도나 크기 등을 결정하는 데에는 상당한 도움을 줍니다.)


3. 수학적 알고리즘이나 진화 알고리즘을 통한 자취의 최적화

위에서 설명한바와 같이 자취를 이용하는 방식에서는 결정해야할 파라미터가 너무 많기 때문에 이를 해결해주기 위해 가장 처음 시도 되었던 방식이 바로 수학적 알고리즘 입니다. [3]논문에서는 Powell’s (direction set) method for multidimensional minimisation 방식을 통해 직사각형의 자취에서 가변적인 형태의 사각형을 사용하게 되었습니다. 즉, 실제 사각형은 최적의 값으로 적합하지 않다는 것이 처음으로 나타나게 된 논문이라고 할까요? 물론 처음이 아닐수도 있습니다만, 이 이전에 나타난 대부분의 논문들에서는 정적인 사각형을 이용하곤 했습니다. 이에 이어 rUNSWift 팀이나 German team[3-5] 등 다른 로봇축구 팀이나 게이트를 연구하는 사람들은 타원형이나 기울어진 타원, 3차원 공간에서의 다각형, 3차 스플라인 함수로 보간된 도형 등을 이용하게 되었습니다.

어떤 도형을 이용하는지도 문제지만, 그 도형의 크기나 순환 속도 역시 큰 문제가 됩니다. 순환 속도는 너무 짧다면 실제적으로 그 도형과 비슷하게 움직이지 않으므로 너무 짧은 형태의 불규칙적 순환형태로 변질되고, 너무 길경우에는 말 그대로 움직임이 굼뜬 거북이마냥 느리게 되죠. 도형의 크기 또한 해당 로봇의 다리가 커버할 수 없는 크기 정도로 클 경우에는 너무 큰 동작을 수행하려고 해서 로봇의 움직임이 예측 불가능이 되기도 하고, 순환 속도와 크기가 복합적으로 작용해서 전혀 예측하지 못한 형태의 움직임이 나타나기도 합니다.

그러므로 이 문제는 상당히 많은 변수를 지닌 복합적인 문제로서 그 해결에 GA 나 ES 등의 진화 알고리즘을 사용하게 됩니다. GA 나 ES 는 제 다른 포스팅에서도 많이 있듯이 다양한 변수를 가진 문제의 최적화 기법으로서 많이 이용됩니다. 가장 중요한 점은 GA 나 ES 에서는 준최적화된 값도 제공하기 때문에 이것을 이용할 경우에도 사람이 손으로 조작한 값보다는 꽤 향상된 형태를 보여준다는 것이죠.


4. 다른 형태의 보행로봇의 수많은 제어기법

위에서 설명한 방식들외에도 상당히 많은 제어기법이 존재합니다. 위에서 설명한 방식은 각도 자체를 제어하기 보다는 역기구학을 통해서 점에서 각도를 제어하는 형태의 방식이죠. 그러나 각도 자체를 직접적으로 제어하는 기법들도 있습니다.

이를테면 아래의 포스팅에서 간접적으로 소개했던 CPG를 사용한 방식이 있습니다. 이는 두개의 뉴런의 상호작용을 통해 반복적인 비선형 신호를 발생하는 것을 모델화해서 이용하는 것으로서 비선형 신호 자체가 로봇의 관절값을 나타냅니다. 이것을 이용하게 되면 실제 사람이나 동물이 움직이는 것과 같은 아주 부드러운 형태의 움직임이 가능합니다.

그리고 신경회로망을 이용해서 각 로봇의 관절값을 입,출력으로 이용해서 Controller 형태의 보행 제어 기법이 있습니다[6]. 이 논문에서는 로봇의 관절값이 좌, 우 대칭으로 순환한다는 점을 착안해서 신경회로망을 그에 대응하는 모듈형태로 구성해서 제어에 이용한 기법이 사용되었습니다.

또한, 제안한 기법으로는 Genetic Programming 을 사용해 일정한 수학적 함수를 만들어내고 이를 토대로 로봇의 걸음새를 만들어내는 형태의 기법이 있습니다[7]. 네개의 멀티트리 기법을 통해서 각각의 트리는 각각의 관절 자체가 그리는 궤적을 의미하고, 이를 순환적으로 반복해서 로봇의 걸음을 진화시키는 기법이었는데, 최적화 형태의 접근방식입니다. 장점이라면 직선 거리를 이동하는데 있어서 최고의 속도를 기록할 수 있다는 것이지만, 단점이라는 실제적인 제어의 형태에서 적용하기가 어렵고, 외부 환경에 대한 적응성을 갖기 어렵다는 것이 있습니다.


5. 마치면서

보행로봇의 최고의 장점은 역시 걸어간다는 것입니다. 걸어간다는 것은 바퀴로봇과는 달리 계단을 오르거나 장애물을 건너가는 등의 장점을 가질 수 있죠. 그러나 역시 바퀴보다는 느린 속도가 가장 큰 단점이죠. 걸어간다는 것에 속도까지 더해져서 가장 이상적인 형태의 걸음걸이를 만든 다는 일은 완전한 직선형태의 스커트라인을 갖는 필터를 설계하는 것 만큼이나 어려운 일일겁니다. 그러나 역시 안되는 일을 되게 하는것이 공학자들이나 여러 과학자들의 몫이겠죠. 여기서 소개한 걸음 걸이들에 대한 여러가지 이론들은 빙산의 일각이라 할 정도로 수많은 걸음 걸이에 관련된 이론들이 존재합니다.

이제 막 보행로봇의 걸음에 대해 관심을 가지시는 분들에게는 약간이나마 도움이 되었으면 좋겠습니다. 저 역시 아직 부족한 점도 많고, 더 새로운 이론의 적용과 구성을 위해 노력하는 입장이지만, 그래도 조금이라도 도움이 된다면 좋을것 같네요.


[1] rUNSWift team homepage, http://www.cse.unsw.edu.au/~robocup/2005site/index.phtml

[2] D. Golubovic, H. Hu, Parameter optimisation of an evolutionary algorithm for on-line gait generation of quadruped robots. In Proceedings of IEEE International Conference on Industrial Technology ? ICIT’03, Maribor Slovenia December, (2003)

[3] M. S. Kim and W. Uther Automatic gait optimisation for quadruped robots. In Proceedings of the Australasian Conference on Robotics and Automation, Brisbane, Australia, December, (2003)

[4] T. R¨ofer, T. Laue, D. Thomas. Particle-Filter-Based Self-Localization Using Landmarks and Directed Lines. In RoboCup 2005: Robot Soccer World Cup IX, Lecture Notes in Artificial Intelligence, Springer, (2005)

[5] T. Mericli, H. L. Akın, C. Mericli, K. Kaplan, B. Celik, The Cerbus'05 Team Report

[6] V. K. Valsalam, R. Miikkulainen, Modular Neuroevolution for Multilegged Locomotion. In Proceedings of Genetic and Evolutionary Computation Conference 2008 (GECCO 2008), Atlanta, Georgia, USA, July 12-16, pp. 265-272 (2008)

[7] 서기성, 현수환, 관절 공간에서의 GP 기반 진화기법을 이용한 4족 보행로봇의 걸음새 자동 생성, 제어·자동화·시스템공학논문지 - Vol.14, No.6 , (2008)