1. 서 론
보행로봇은 바퀴 로봇에 비해 이동성의 제약이 적다는 장점이 있는 반면, 보행의 생성이나 제어의 어려움이 존재한다 [1]. 4족 보행로봇의 걸음새 생성은 발의 궤적, 궤적의 크기, 자세 파라미터, 다리의 움직임 사이의 위상차 등 많은 파라미터를 결정해야 하는 복잡한 문제이다[2]-[6].
기존의 일반적인 걸음새 생성은 직교좌표공간에서 일정한 형태의 발 궤적을 미리 결정하고, ZMP나 CoM의 계산에 의한 안정성을 결합하여 걸음새를 설계한 다음, 이에 대한 관련 변수를 반복적인 미세조정을 통해 걸음새를 완성한다 [7]. 이러한 수동적인 접근법은 많은 시간과 복잡한 노력을 필요로 한다.
한편, 다양한 로봇의 개발에 따라, 각각의 걸음새를 단기간내에 생성해줄 수 있는 자동생성 기법의 중요성이 높아지고 있다[2]. 대표적인 자동생성 기법은 진화적 기반의 방법들로서 다음과 같이 두 가지가 있다. 첫째, GA(Genetic Algorithm)를 사용한 접근법으로, 직교좌표상에서 로봇의 발이 그리는 자취, 자세 파라미터, 사이클 보간수등의 파라미터를 최적화한다[2]-[6]. GA를 이용한 기존의 주요 걸음새 생성 기법은 다음과 같다. Hornby 는 Sony ERS-110 모델을 대상으로 20여개의 걸음새 파라미터를 정의하여 직교 좌표 공간에서 스윙과 게인의 조절을 통해 주기적인 걸음새를 생성 하였다[2]. 다른 접근 방법으로는 Mercli의 타원형 발 궤적을 사용한 방법이 있는데, 이는 10여개의 궤적과 자세 파라미터에 대해서 GA로 최적화를 시도하였다[4].
둘째, 저자에 의해 제안된 방법으로, GP(Genetic Programming)와 기호적 회귀분석(symbolic regression)을 이용하여 관절좌표계 상에서 어깨와 무릅등의 관절궤적을 하나의 다항식으로 생성하는 기법이 있다[8].
이 두 가지 방식은 결정해야 하는 변수들이 각각 서로 다른 직교좌표계와 관절좌표계상에서 정의되는 것 외에, 변수의 형태 및 개수에 차이가 있다. 또한 대상 공간의 상이에 따른 걸음새의 특성이 존재한다. 그러나 아직까지 진화연산 방식과 대상 공간과의 관계 및 특성을 결합하여 비교 분석한 연구는 시도되지 않고 있다.
따라서 두 기법의 비교는 로봇 걸음새의 서로 다른 공간에 대해서 진화적 최적화 기법이 어떤 관계성을 가지는가 에 대한 고찰을 제공하고, 특정 로봇의 걸음새의 생성에 대한 기법의 선택에 있어서 일종의 안내가 될 수 있다.
본 연구에서는 Webots 기반의 시뮬레이션을 통해 해당 기법들에 대한 진화 최적화를 수행하고, GA와 GP 기반 음새 생성법의 특성 차이를 비교 및 분석한다.
2. 4족 보행로봇의 걸음새 생성
2.1 4족 보행로봇 모델 및 기구학
본 논문에서 모델로 사용되는 4족 보행로봇이 다음 그림 1에 나와 있다. 로보티즈사의 바이올로이드 모듈[9]로 구성 되었으며, 각 다리는 3관절을 가진다.
역기구학은 식 (1) - (5)에 나와 있다. 해당 파라미터인 관절각 θ1, θ2, θ3와 링크 길이 L1 과 L2는 그림 1과 같이 정의된다. 좌표계가 아래 그림과 같이 설정되어 있으며, Z 축이 앞으로 이동하는 방향, y 축은 높이, 그리고 z 축은 측면 방향을 나타낸다.
그림 1역기구학 계산 Fig. 1 Calculation of inverse kinematics
2.2 걸음새 설계의 두 가지 공간 측면
걸음새(gait) 생성 방법은 설계 공간 측면에서 직교좌표공간과 관절좌표공간 접근법으로 나뉠 수 있다. 일반적으로 많이 쓰이는 직교좌표공간 접근법은 로봇의 ZMP나 CoM의 값이 안정성을 유지하는 범위내에서 일정한 형태의 발 궤적을 설계한다. 이 경우에, 발 궤적은 정형화된 패턴인 사각형, 타원, 그리고 원호등이 쓰이며, 비정형적인 발 궤적을 생성해서 사용하기도 한다. 이때, 원하는 제어 입력을 얻기 위해서, 각 발 궤적의 좌표에 해당하는 관절값들을 역기구학을 통해 부가적으로 계산해야 한다.
관절좌표공간상에서의 설계는 발 궤적을 설계하지 않고, 보행에 대한 각 관절값의 집합인 관절 궤적을 직접 구하는 접근법이다. 기존의 관절공간상의 관절궤적 설계는 시작점과 끝점의 좌표가 주어진 상태에서 이 두 점을 연결하는 관절 궤적을 보간법을 사용하여 구한다. 그러나 본 연구에서 비교하는 관절 공간상의 관절궤적 설계는 완전한 한 주기 동안의 보행에 대해서 보간법을 사용하지 않고, 연속적인 임의의 고차 다항식을 생성하는 방식이다. 이를 통해 보간법의 단점인 다항식 차수의 제한과 같은 단점을 해결할 수 있 다[8].
그런데, 두 가지 공간적인 측면을 진화연산 알고리즘과 연관시키면 흥미로운 고찰을 얻을 수 있다. 먼저, 직교좌표공 간에서의 설계는 동물의 걸음새에서 흔히 볼 수 있는 보행 움직임, 특히 발의 움직임의 궤적을 직관적으로 로봇에 적용하기에 적합하다. 발 궤적의 설계를 진화연산을 이용하여 자동적으로 수행할 경우 한 예를 들면, 그림 2의 왼쪽에 있는 원호에 대해서 밑변 지름, 높이, 그리고 좌우 비대칭 부분에 대한 비율등을 수치 파라미터 변수로 설정하여 구할 수 있다.
관절좌표계에서는 각 관절의 궤적이 그림 2의 오른쪽에 있는 열려있는 다항식으로 표현될 수 있으므로, 이러한 곡선 식을 구조(다항식의 차수나 초월함수등의 선택여부등)와 수치 파라미터를 동시에 진화연산을 통해 결정하는 문제로 접근할 수 있다.
그림 2직교좌표계와 관절좌표계의 궤적 Fig. 2 Trajectories for cartesian and joint coordinates
3. GA와 GP의 특성 비교
3.1 Genetic Algorithm (유전 알고리즘)
유전 알고리즘(GA)[10]는 진화 방향성을 가진 확률적 탐색 알고리즘의 하나로 최적화 문제에 널리 적용되고 있다. TSP와 같은 조합최적화 문제와 수치최적화에 모두 사용되며, 유전해의 표현으로 스트링을 사용한다. 로봇 분야에서는 문제 특성에 따라 주로 수치최적화 방식이 쓰이고 있다. 초기에는 0, 1 비트열을 염색체(유전해의 표현형)로 사용하여 실수로 변환하는 방식을 사용하였으나, 소숫점 해상도 및 메모리 낭비, 변환의 번거로움으로 인해, 최근에는 주로 실수를 직접 염색체로 사용하고 있다.
GA의 수치최적화 문제 적용은 사전에 구조(변수의 종류 나 수, 다항식의 차수, 연결관계등)를 정해놓고, 이에 관련된 수치 파라미터를 진화적으로 최적화 시키는 방식이다. 따라서 사전에 구조가 결정된 것이 최적이 아니라면, 아무리 그 구조에 따른 수치 변수에 대한 최적화가 이루어지더라도 부분최적화에 머무는 한계가 있다. 한편으로, 유전해의 크기가 고정되어 있으므로 진화과정의 연산자 구현이 비교적 용이하다.
3.2 Genetic Programming (유전 프로그래밍)
유전 프로그래밍(GP)[11]은 유전 알고리즘(GA)과는 달리 비트나 실수에 의한 스트링이 아닌 트리로 개체를 표현한다. 이때 트리의 노드는 하나의 함수나 터미널을 나타내며 각 개체는 이러한 함수와 터미널들의 집합으로 표현된다. 부가적으로 GA가 대부분 고정 크기의 염색체를 이용하는데 반해, GP는 트리의 특성상 가변크기의 염색체를 사용한다
또한, 트리 형태를 사용하므로 유전자 크기가 가변이며, 구조적으로 열려진 공간의 탐색 문제에 적합하다. 기호적 회귀분석(symbolic regression)으로 변수나 연산자등의 구성 요소가 제한되지 않는 다항식을 생성할 수 있다. 그림 3에 GA와 GP의 특징에 대한 비교가 나와 있다.
GP의 수행과정은 다음과 같다. 사전에 트리로 표현되는 유전자를 구성하는 함수와 터미널을 정의한다. 함수와 터미널은 해를 조합적으로 구현할 수 있는 요소들을 선택한다. 초기에 트리로 구성된 각 개체들을 임의로 생성한다. 그리고, 각 개체 트리를 해석하여 구한 후보 해를 적합도 함수로 평가한다. 이후, 주어진 선택 방법에 의해 유전 연산에 참여 할 개체들을 선택한다. 선택된 개체들을 대상으로 유전 연산을(교배, 돌연변이) 수행한다. 그리고 이 전체과정을 종료 조건이 만족될 때 까지 반복한다. GP에서의 교배 연산자는 그림 4와 같이 선택점에서 서브트리를 교체하는 방식으로 수행된다.
그림 3GA와 GP의 특성 비교 Fig. 3 Comparison of features between GA and GP
그림 4GP의 Crossover 연산 Fig. 4 Crossover operation of GP
4. GA 기반의 걸음새 생성 기법
GA 기반 접근법은 일반적인 걸음새 생성 기법과 유사하게 직교좌표 공간에서 일정한 형태의 발 궤적을 설계하나, 안정성 확보를 위한 ZMP나 CoM 계산을 생략하고, 이를 보행성능을 위주로 한 간접적인 적합도 함수로 대치한다. 발 궤적은 일반적으로 정형화된 패턴인 사각형, 사다리꼴, 반원 형, 반 타원형등이 많이 사용되어 왔는데, 진화연산등을 이용하여 발 궤적을 설계하는 접근법이 시도되었다[3][4]. 이를 위해, 발 궤적의 특정 패턴을 선택하여 각 패턴의 크기나 비율등을 파라미터화한 다음, 이들 수치 변수들을 최적화 하는 접근이 주를 이루고 있다[3][4], 더 나아가서 발 궤적을 변형 된 사다리꼴, 기울어진 원호 또는 임의의 다각형으로 생성하는 연구도 이루어져 왔다[5].
그림 5에는 4족 보행에서의 발 궤적의 의미와 여러 가지 발의 궤적의 형태가 나와 있으며, 그림 6에는 타원형의 발 궤적에 대한 구체적인 구성도가 나와 있다. 참고로 발 궤적 은 paw locus 또는 foot trajectory 로 혼용되어 쓰이고 있다. 그림 7에는 자세 파라미터에 대한 표시가 나와있다.
GA 기반의 직교좌표 접근법에서 대표적으로 사용되는 걸음새 파라미터는 다음과 같다. 먼저 그림 6과 같이 발의 궤 적의 형태와 크기에 관련된 변수와 그림 7의 초기 자세 파라미터가 있다.
그림 54족 보행로봇의 발 궤적 Fig. 5 Locus of paw positions for quadruped robot
그림 6타원형의 발 자취 Fig. 6 Elliptical paw locus
그림 7초기 자세 파라미터들 Fig. 7 Initial stance parameters
그림 6과 7에서 표시된 걸음새 파라미터에 대한 상세한 정의는 표 1에 나와 있으며, 문헌 [4]에서 인용하였다. 이들 10여개의 파라미터들은 그림 8과 같이 GA의 유전자로 표현 될 수 있으며, 이들이 동시에 최적화되어야 하는 문제를 구성한다. 이때, 발 궤적 파라미터와 자세 파라미터 변수 수의 비율은 진화과정에서 교배등의 진화연산이 수행에 밀접한 영향을 끼친다. 즉, 진화연산의 대상 지점이 선택되는 확률이 각 그룹의 파라미터 변수 수에 비례하기 때문에, 표 1의 경우에는 자세에 대한 최적화가 더 이루어진다고 볼 수 있다. 따라서 일반적으로 중요시되는 발 궤적을 더 최적화시키기 위해서는, 파라미터 수의 조정이 필요하거나, 진화연산시 걸음새 파라미터 대해서 선택 확률을 강제적으로 조정해 주어야 한다.
표 1자세 파라미터와 발 궤적 파라미터 Table 1 Stance Parameters and locus Parameters
그림 8GA와 GP의 특성 비교 Fig. 8 Comparison of features between GA and GP
상기 GA 기법을 통해 생성된 걸음새는 직교좌표공간상에서 그림 6과 7에 대한 좌표값들로 나타내진다. 특히, 발 궤적에서 일정 간격마다의 좌표점들에 대해서 역기구학을 적용하여 움직여야할 관절각을 구한다.
GA등의 진화연산 기반의 접근에서는 성능에 대한 적합도 값을 정의하여 이를 최대화하는 개체들을 진화시키는데, 대부분의 연구에서 보행속도(또는 이동거리)를 성능기준으로 한다. 일반적인 접근법에서 중요시하는 넘어지지 않는 안정성 문제에서 진화적 접근법은 ZMP나 CoM 값을 사용하지 않는데, 적합도 성능 지표인 속도를 높이는 방향에 안정성이 포함되기 때문이다. 또한, 휴머노이드 로봇과는 달리 4족보행로봇은 4개의 발을 가지고 있기 때문에, 상대적으로 넘어짐에 대한 회피가 용이한 점이 있다.
5. GP 기반의 관절공간 걸음새 생성 기법
한편, RoboCup 등의 로봇축구 대회에서 보행속도가 우선일 경우에는, 발 궤적을 설계해서 일정한 보행 패턴을 유지 하는 대신에, 속도를 최대화 할 수 있는 관절의 조합을 탐색 하는 것이 더 효율적일 수 있다. 즉, 사전에 발 궤적을 정하지 않고, 열려진 공간에서 시간에 따른 관절 궤적을 직접 다항식으로 생성함으로써, 성능에 대한 최적화의 가능성을 더 높일 수 있다.
GP의 유전자 표현인 트리는 구조적으로 열려있기 때문에, 다항식의 탐색에 제한을 받지 않는다. 특히, 트리의 노드로 기본 연산외에 sin, cos 함수등의 초월함수를 포함하여 다항식을 구성할 수 있기 때문에, 로봇의 관절 궤적을 보간법을 사용하지 않고, 하나의 연속적인 곡선을 표현할 수 있다. 기존의 회귀분석과는 다르게 다항식의 구성요소에 다양한 함수와 더불어 논리 조건식까지 포함할 수 있는 것이 특징이며, 이를 symbolic regression 이라고 한다[11]. 이러한 접근법은 관절공간에서의 관절 궤적의 생성에 매우 적합하다. 더욱이 기존의 보간식을 사용하여 관절 궤적을 설계하는 경우에 발생되는 제한 사항들을 해결할 수 있다.
GP 기반의 관절공간 걸음새 생성법은 다음과 같다. 시간에 따른 어깨, 무릅등의 각 관절 궤적이 그림 9(a)에 표현 되어 있다. 그림 9(b)는 곡선들로 표시된 관절 궤적의 집합이 GP 트리로 구성된 다항식으로 대응된다는 의미이다. 즉, 진화에 의해서 임의적으로 구성될 수 있는 GP의 트리는 관절궤적에 대한 하나의 다항식 개체 해를 나타낸다. 한편, GP 방식에서는 앞 절의 GA 방식처럼 발의 궤적을 최적화 하는 것 이 아니라, 한 사이클 동안 관절의 연속적인 궤적을 최적화 한다[8]. GA 기법과는 달리 초기 자세는 따로 구 지 않고, 기본 자세를 이용한다.
그림 9(a) 4족로봇의 관절 궤적, (b) 관절 궤적의 GP 트리 표현 Fig. 9 (a) Joint trajectories of quadruped robot, (b) representation of joint trajectories with GP trees
대상 모델인 바이올로이드로 4족 보행로봇은 각 다리가 3개의 관절로 구성되어 있지만, 직진 보행을 위해 어깨와 무릎, 두 개의 관절만의 움직임에 대한 궤적 식을 생성한다. 그리고 좌우 다리는 동일한 움직임을 시간차를 두고 적용하므로 앞, 뒷면의 다리에 대한 움직임만을 생성하면 된다. 각 관절의 독립적인 제어를 위해 그림 10과 같이 다중트리 방식의 구성을 이용하여 진화연산을 수행하며, 단일 트리로 해를 구성하는 일반적인 GP 보다 탐색의 난이도가 높으나, 로봇 관절 궤적을 표현하는데 훨씬 효율적이다.
그림 10다중트리로 구성된 GP의 개체 Fig. 10 Individual of GP by multi-trees
이러한 GP 기반의 관절공간 걸음새 생성 방법은 제한되지 않는 관절좌표 공간에서 전체적인 최적화에 근접할 수 있는 가능성이 가장 높으나, 탐색 공간이 구조적으로 열려있어서, 복잡도가 높으며 지역해에 빠질 확률도 GA 보다 더 크다. 저자에 의해 제안된 GP 기반 관절공간 궤적생성 기법은 Sony Aibo 로봇에 적용되어 우수한 결과를 나타낸 바 있다[8].
6. 실험 및 결과
6.1 실험 환경, 모델, 적합도함수
시뮬레이션 환경은 Cyberbotics사의 Webots[12]을 사용하였다. Webots은 로봇에 대한 모델링, 프로그래밍, 그리고 시뮬레이션 기능을 제공하는 ODE(Open Dynamics Engine) 기반의 S/W이다.
그림 114족 로봇과 시뮬레이션 모델 Fig. 11 Simulation and Real model
시뮬레이션 대상 모델은 바이올로이드를 사용하여 구성된 4족 보행로봇을 사용하였다.(그림 10) 바이올로이드는 국내 로보티즈 사에서 개발한 로봇 키트로서, 센서, 모터, 조립용 프레임등이 모듈로 구성되어 있기 때문에 로봇의 구성이 용이하고, 모터의 개별적인 제어가 가능하기 때문에 교육 및 연구용으로 많이 사용되고 있다[9].
두 가지 기법의 비교를 위하여, Robocup 관련 연구자들이 주로 사용하는 성능지표로 보행속도를 선택하였다. 넘어지지 않는 조건에서 속도를 최대화하는 문제는 걸음의 안정성과 같은 불확실한 지표에 비해 성능 평가의 척도가 명확하고, 일반적인 걸음새 이외에 기존에 생각지 못했던 걸음 패턴을 발견할 수 있어 새로운 보행 형태 연구의 발전에 기여를 할 수 있다.
걸음새 생성을 위한 적합도 함수는 직진 거리(x) 에다 측면(z) 의 벗어남을 벌칙으로 주어 구성하였다. 여기서, x는 정면방향, y 는 높이, z 는 측면 방향으로 설정되어 있다.
여기서, 직진으로 이동한 거리(x) = −x
양 옆으로 흔들린 폭(z) = (+z)~(−z)
GA 실험에는 다음과 같은 파라미터를 사용하였다.
Number of generations: 100
Population sizes: 150
Selection: Roulette Wheel
Crossover: Arithmetic Crossover, 0.9
Mutation: Random Mutation, 0.1
또한, GP 실험에는 아래와 같은 파라미터를 사용하였다
Number of generations: 100
Population sizes: 30 * 5 (Multi-pop)
Migration: Ring Migration
Initial depth: 1-6, Max depth: 15
Selection: Tournament (size=7)
Crossover: 0.6, Mutation: 0.1, Reproduction: 0.3
Function Set : { sin, cos, +, −, *, / }
Terminal Set : { X, erc }
6.2 결과 비교
GA 기법과 GP 기반 걸음새 생성기법에 대한 실험을 각 20회씩 반복 수행하였다. 또한 실험의 공정성을 위해 GA 와 GP는 서로 거의 동일한 횟수의 평가연산을 수행하도록 설정하였다.
표 2사이클 당 보간수 변화에 대한 결과(GA Table 2 Results by variation of step numbers per cycle(GA)
표 2는 GA 기법에 대한 사이클당 보간수 변화에 따라 나타난 속도 결과이며, 단위는 cm/s 이다. 사이클 당 보간수는 일정기간의 자취나 궤적을 반복적으로 사용하는 기법에서 필요한 것으로서, 계획된 자취를 몇 개의 데이터로 나눌지를 결정해주는 파라미터이다. 기존의 연구들[2][4]에서 40-60 단계를 사용하고 있으며, 상기의 GA 실험의 경우, 50 단계를 사용하는 것이 평균 및 최고 속도에서 가장 우수한 성능을 보여 주고 있다.
표 3사이클 당 보간수 변화에 대한 결과(GP) Table 3 Results by variation of step numbers per cycle(GP)
표 3의 GP 기반 걸음새 생성기법의 실험 결과에서는 GA 와는 달리 40 단계의 속도 결과가 가장 우수하며, 보간수의 증가에 따라 평균속도와 최고속도 모두 느려지는 현상을 확인할 수 있었다. 또한, GP 기반 걸음새 생성 기법의 실험 결과가 GA 결과에 비해 평균속도와 최고속도가 많이 차이가 나는데, 이는 GP의 탐색 공간이 더 넓기 때문에 충분히 수렴되지 않는 개체들이 나타나기 때문으로 사료된다.
부가적으로, 군집의 개체를 진화시키는 진화연산의 특성상, 최우수 개체외에 제2, 제 3의 성능을 가진 다양한 보행 결과도 부수적으로 얻을 수 있어서, 약간 떨어지나 유사한 속도 성능을 가진 다른 형태의 걸음새도 대안으로 선택할 수 있는 장점이 있다.
7. 결 론
본 논문에서는 기존의 GA 기반의 걸음새 파라미터 최적화 방식과 GP 기반의 관절공간에서의 걸음새 생성방식을 비교하였다.
바이올로이드로 구성된 4족 보행로봇에 대하여 Webots기반의 ODE 시뮬레이션 실험을 수행하였다. 시뮬레이션 결과, GA는 실험당 평균적 속도가 더 우수함을 보여주었고, 최고 속도 면에서는 GP 기반의 걸음새 생성 방식이 우수한 성능을 보여 주었다.
GA 접근법이 직교좌표공간에서 발 궤적을 생성하기 때문에, 좀 더 안정적인 걸음새가 가능하다. 이로 인해 편차가 적고, 평균적인 속도 성능이 우수한 결과가 나왔다고 생각된다. 반면 GP 접근법은 더 크고 복잡한 공간을 탐색하기 때문에 평균적으로는 GA 보다 성능이 떨어지나, 최고 속도 면에서는 더 우수한 결과를 보인다. 즉, 관절 궤적을 직접 생성하는 것이 열려진 구조에 대한 탐색이 가능하기 때문에 최적해에 더 가까운 해를 발견할 수 있음을 보이고 있다.
이를 통해, 각각의 진화 기법과 보행로봇의 걸음새 생성 기법과의 연관성 및 특성을 파악할 수 있어, 목적에 맞는 기법의 선택에 일종의 참고가 될 수 있다고 사료된다.
References
- G. A. Bekey, Autonomous Robots From Biological Inspiration to Implementation and Control, MIT Press, 2005
- G. S. Hornby, S. Takamura, T. Yamamoto, M. Fujita, "Autonomous Evolution of Dynamic Gaits with Two Quadruped Robots", IEEE Trans. Robotics, Vol. 21, No. 3, pp. 402-410, 2005 https://doi.org/10.1109/TRO.2004.839222
- Z. D. Wang, J. Wong, T. Tam, B. Leung, M. S. Kim, J. Brooks, A. Chang, N. V. Huben, The 2002 rUNSWift Team Report, 2002
- T. Mericli, H. L. Akin, C. Mericli, K. Kaplan, B. Celik, The Cerberus'05 Team Report
- T. Rofer, "Evolutionary Gait-Optimization using a Fitness Function based on Proprioception", Robocup 2004: Robot World Cup VIII, Lecture Notes in Artificial Intelligence (LNAI 3276), pp. 310-322, (2005)
- H. Dong, M. Zhao, J. Zhang, Z. Shi, N. Zhang, "Gait Planning Of Quadruped Robot Based On Third-Order Spline Interpolation", in Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems, Beijing, China, pp. 5756-5761, 2006
- S. Yi, "Reliable gait planning and control for miniaturized quadruped robot pet", Mechatronics, Volume 20, Issue 4, pp. 485-495, 2010 https://doi.org/10.1016/j.mechatronics.2010.04.006
- K. Seo S. Hyun E. D. Goodman, "Genetic Programming-Based Automatic Gait Generation in Joint Space for a Quadruped Robot," Advanced Robotics, Vol. 24, No. 15, pp. 2199-2214. 2010. https://doi.org/10.1163/016918610X534312
- ROBOTIS, http://www.robotis.com/
- J. H. Holland, "Genetic Algorithms in Search, Optimization and Machine Learning," Addison-Wesley, Reading, MA, 1989.
- J. R. Koza, Genetic Programming: On the Programming of Computers by means of Natural Selection, MIT Press, Cambridge, MA, USA, 1992
- L. Hohl, R. Tellez, O. Michel, A. J. Ijspeert, "Aibo and Webots: Simulation, wireless remote control and controller transfer", Robotics and Autonomous Systems, 54(2006), pp. 472-485, 2006. https://doi.org/10.1016/j.robot.2006.02.006