Previous Contents 51

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

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

GP에서 ADFs에 대한 이야기

Automatically Defined Functions(ADFs)? J. R. Koza 의 94년에 발간된 Genetic Programming II 에 보면 나오는 용어입니다. 말 그대로 풀이하면 자동적으로 정의된 함수들 쯤 될꺼 같습니다. 그 책의 내용에 따르면 이 기법을 사용하게 되면 트리 안에서 어떤 강제적인 흐름을 가지는 구조물을 위치시키게 되고, 이 구조물은 트리 안에서 반복적으로 사용될 수 있게 된다고 하고 있습니다. GP 는 터미널 노드와 함수 노드를 사용하여 일정한 흐름의 프로그램을 만들어내죠. 이 ADFs 라는 녀석은 그 일정한 흐름의 프로그램들의 한 부분을 ADFs 라는 하나의 구조물안에 가두어서 반복적으로 사용할 수 있는 효과를 가지게 됩니다. 한마디로 어떤 구조가 반복적으로 사용되..

Homologous CX Operator for lil-gp

Homologous CX 연산자는 기본적으로 동일 구조를 가진 서브트리들 간의 교환만 허용하는 연산자 입니다. 즉, 위의 그림에 Tree1 과 Tree 2 에서, 1-1, 2-2, 3-3, 6-4, 7-7 간의 교환만을 허용한다는 이야기 입니다. 이 연산자의 출발점은 생물체의 교배에 있어서 동일 형질의 유전자 만을 교환한다는 것으로 기억하고 있습니다. 예로서 팔의 유전자와 다리의 유전자를 교환해서는 이상형질이 나타날 수 있다는 것을 들 수 있겠습니다. 실제로 몇가지 테스트 문제에 대해 실험해 보면 매우 빠른 속도로 연산이 이루어지고, 코드의 증가 또한 기본 연산자에 비해서 매우 적게 증가하는 것을 확인할 수 있었습니다. 본 소스코드에 어떤 오류가 있을지는 모르겠습니다만, 혹시 참고하실 분은 첨부된 소스를..

보행로봇의 CPG(Central Pattern Generator) 이론에 대해서...

요새 관심을 갖고 보고있는 것이 바로 이 CPG 입니다. Central Pattern Generator 이하 줄여서 CPG 라고 부릅니다. 중추신경발생기? 라고 해야 맞는말인지는 잘 모르겠습니다. ? 어찌되었든, CPG 는 일반적인 생물체의 보행에 관련된 신경을 나타냅니다. 인간의 걸음걸이나 개의 걸음걸이와 같은 2족, 혹은 4족, 또는 그 이상의 곤충들, 기타 모든 생물체의 반복적 움직임에 관여하고 있다고 알려져 있습니다. ( 이 부분은 정확한 것은 아닙니다. ) ? 한마디로 표현하면 CPG 라는 것은 규칙적인 순환구조의 패턴을 생성해내는 신호 발생기라고 생각하면 간단합니다. 물론 어디까지나 간단하게 생각하는 차원에서 입니다. ? 위키에 나와 있는 다음의 원문을 번역해본 것 입니다. ( http://e..

기타. CMA(Covariance Matrix Adaptation) 의 시작.

(*) CMA(Covariance Matrix Adaptation) - 공분산 행렬 적응 방식 입니다. - CMA 통장 말하는거 아니예요 ^^; 그걸 기대하셨다면 back space 를 살포시;; 본 자료는 http://www.bionik.tu-berlin.de/user/niko/cmaesintro.html Four slides on randomized search and the CMA-ES (pdf). A written tutorial (pdf 460KB). 위의 두 자료를 토대로 나름의 의견을 반영하여 작성 된것임을 미리 밝혀드립니다. 좀 더 정확한 내용을 원하신다면 위의 두 자료를 참고하시는 것이 좋을 것으로 보여집니다. 위의 두 자료는 수치해석법에 대한 기본적 지식을 토대로 보시면 더 쉽게 이해하..

유전 프로그래밍에서 트리간의 유사도 측정방식에 대한 고찰

유사 - [명사]{주로 일부 명사 앞에 쓰여} 서로 비슷함. 그렇습니다. 유사하다는 말을 서로 비슷하다는 말입니다. 비슷하다? 그럼 비슷하다는 말은? 비슷하다 [형용사] ━ ⅰ『(…과)』 {‘…과’가 나타나지 않을 때는 여럿임을 뜻하는 말이 주어로 온다} 두 개의 대상이 크기, 모양, 상태, 성질 따위가 똑같지는 아니하지만 전체적 또는 부분적으로 일치하는 점이 많은 상태에 있다. {명사의 단독형 뒤에 쓰여} 1 정체가 확인되지 아니한 어떤 대상에 대하여 누구 또는 무엇이라고 짐작되는 상태에 있다. 2 비교가 되는 대상과 어느 정도 일치되지만 다소 미흡한 면이 있다. 네 그렇습니다. 크기, 모양, 상태, 성질 따위가 똑같지는 않지만, 전체적 또는 부분 적으로 일치하는 점이 많은 상태에 있다 라고 하고 있습..

기타. 알고리즘과 적용에 대한 작은 생각들(주로 유전프로그래밍)

본 글은 어떤 일반론적인 생각도 아니고 어디까지나 제 자신의 개인적인 생각들 임을 사전에 밝히도록 하겠습니다. 짧은 지식을 통해 나오는 생각들이기에 편협할 수도 있고, 좁은 식견이 확 보일수도 있고 정리가 안된 그냥 머리속 튀어나오는 대로 쓰는거지만... 그냥 한번 써보렵니다. 사족이므로 반말나갑니다. - 다른 녀석들을 봤을 때 유전프로그래밍이라는 것의 가능성... - 우선 신경회로망 이라는 녀석. 많이 알고 있는 녀석은 아니지만 태어난지 매우 오래되었음에도 불구하고, 과거의 알고리즘에 비해 심대한 변화는 없는 녀석이다. 다층 퍼셉트론 이후에 오류역전파 알고리즘, 그것들을 제외하고는 어째 크게 발전은 없는 모양이다. 사실 내가 크게 관심이 없어서 그럴수도 있지만, 여러 논문을 검색해 보았을때 다 고만고만..

기타. 이번퍼지 학회에서 제가 발표한 퍼지추론기반의 유전알고리즘 선택 연산자 입니다.

대단한건 아니지만;; 어쨌든, (1) 조기수렴 문제? 조기수렴 문제의 해결에 대해서 연구를 좀 했습니다. 그러던 중에 나온 많은 알고리즘들, 적합도 공유방식(Fitness Sharing), 군중 분산 방식(?, 말이 좀 이상합니다만, 본래는 Crowding 방식입니다. 제 생각에 저 표현이 의미와 잘 부합되는것 같습니다.), 다중군집을 기반으로한 새로운 모델들(Multi-pop 을 기반으로한 HFC(Hierarchical Fair Competition) 혹은 ALPS(Age-Layered Population Structure)) 이 있습니다. 우선 적합도 공유방식은 적합도가 높은 개체들이 적합도가 낮은 개체들에게 자신의 적합도를 나눠준다고 생각하면 간단합니다. 즉, 비슷한 수준의 적합도를 이용해서 다른 ..

기타 5. Steady-state 와 Generational 방식

오랜만에 Genetic Algorithm 에 대한 포스팅을 하는군요. 크게 언급할 부분은 아니지만, 이부분에 대해 연구하시는 대다수의 분들이 매번 느끼시는 부분이리라고 사료됩니다. Generational 과 Steady-state 의 차이점에 대한 부분입니다. 일반적 유전연산, 즉, Evolutionary Computation 에서, 그것도 유독 GP 와 GA 에서는 Generational 이라 불리는 방식과 Steady-state 라고 불리는 두가지 방식이 있습니다. 이 두 방식의 차이점은 아직 학회에서 확실하게 정의하지는 않았습니다. 반드시 이래야 한다, 라든지 이것이 표준이다 라는 레퍼런스가 없는 것입니다. 하지만 확실한 차이점은 존재합니다. 그 차이점이라는 것은 다음같은 점이지요. Generati..

기타4. 조기수렴 문제의 극복 (3) Island Parallelism(MPOP-Injection)

이번에는 지난번에 언급했던 Island Parallelism 의 방식중에서 Injection 방식에 대해서 언급해보겠습니다. Injection 방식이란 말그대로 주입식 방식이라고 표현하면 간단하겠습니다. GP 나 GA 에서 사용되는 Multi-POP 을 응용해서 만들어진 여러 알고리즘은 크게보면 POP 을 전체적으로 분산, 격리 시켜서 그 상태를 운용하는 방식을 벗어나지 않습니다. 즉, 거의 모든 방식이 Multi-POP 을 이용하게 되는 기본 이론인 Island Parallelism 을 벗어나지 않는 선에서 만들어집니다. Injection 방식이라는 것 또한 마찬가지 입니다. 지난번에 Migration 에 의해 몇몇 방식으로 나뉘어 진다고 말씀 드렸는데, Injection 방식 또한 Migration ..