implementation of distributed controller based on ... · -iii-abstract this thesis deals with...

154
工學博士學位 請求論文 휴머노이드 로봇을 위한 지능 기반의 분산처리 제어기 구현 Implementation of Distributed Controller Based on Intelligent system for a Humanoid Robot 2006 2 仁荷大學校 大學院 自動化工學科

Upload: others

Post on 28-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

  • 工學博士學位 請求論文

    휴머노이드 로봇을 위한 지능 기반의 분산처리 제어기 구현

    Implementation of Distributed Controller Based on Intelligent system

    for a Humanoid Robot

    2006 年 2 月

    仁荷大學校 大學院

    自動化工學科

    孔 正 植

  • 工學博士學位 請求論文

    휴머노이드 로봇을 위한 지능 기반의 분산처리 제어기 구현

    Implementation of Distributed Controller Based on Intelligent system

    for a Humanoid Robot

    2006 年 2 月

    指導敎授 金 振 傑

    이 論文을 博士學位 論文으로 提出함

    仁荷大學校 大學院

    自動化工學科

    孔 正 植

  • 이 論文을 孔正植의 博士學位 論文으로 提出함

    2006 년 2 월

    主 審

    副 審

    委 員

    委 員

    委 員

  • -i-

    요 약

    본 논문은 휴머노이드 로봇을 원활하게 제어하기 위한 지능

    시스템을 갖춘 분산 처리 제어기 구현에 관한 것이다. 로봇의 안

    정적인 보행을 수행함에 있어서 중앙 집중적인 제어 방식은 시

    스템에 부하를 크게 줄 뿐만 아니라 프로그램 상이나 각 요소를

    세부적으로 제어하는 데에는 상당한 어려움이 존재한다. 이러한

    복잡한 휴머노이드 로봇 시스템에 대해 원하는 성능을 얻어내기

    위해서는 분산처리 기반의 제어기의 필요성은 주지의 사실이다.

    본 논문에서는 분산처리 제어를 수행할 수 있도록 구조적으

    로 하부 제어기, 주 제어기, 명령 해석기 이 3개로 구성하였다.

    하부 제어기는 로봇의 각 관절을 원활하게 제어할 수 있도록 구

    성하였으며, 주 제어기는 로봇 각 관절에 들어오는 정보와 사용

    자의 행동 요구에 대해 이를 처리할 수 있는 구조로 이루어져

    있다. 그리고 명령 해석기는 사용자가 로봇에 지시하는 상황에

    대해 적절한 행동을 생성함을 주 목적으로 한다.

    이러한 휴머노이드 로봇의 제어기에 대해 구조적인 관점에

    서뿐만 아니라 제어적인 관점에서 보았을 때 크게 관절 제어, 행

    동 제어, 실시간 제어로 나누어 제어기를 구성하였다. 관절제어

    는 로봇의 움직임에 대해 원하는 시점에서 원하는 움직임을 생

    성해 낼 수 있게 할 수 있도록 수행하며 이러한 관절 제어를 원

    활하게 수행하기 위해 본 논문에서는 유전 알고리즘 기반의 퍼

    지-슬라이딩 제어기를 구현하여 비선형성이 다수 포함되어 있는

    로봇 시스템에 대해 안정적인 제어를 수행할 수 있도록 하였다.

    그리고 행동 제어에 대해서도 원활하고 안정적인 보행을 수행

  • -ii-

    할 수 있도록 유전 알고리즘 기반으로 안정적인 궤적 생성을 수

    행 하였다. 마지막으로 시스템의 동기화와 주어진 데이터들의 정

    확한 전송을 위해 실시간 제어기를 구성하였다. 이러한 구조적

    구성과 제어적인 관점에서의 제어기를 구축함으로써 로봇이 실

    제 보행을 수행했을 때 보다 안정적인 움직임을 확립할 수 있도

    록 하였고 이는 모의 실험과 실험을 통해 이를 고찰하였다.

  • -iii-

    Abstract

    This thesis deals with distributed controller based on artificial

    intelligence for a humanoid robot. If a main controller controls all of the

    system, it requires much computational resource to treat a humanoid robot.

    And it is hard to control the system in detail. So, distributed controller is

    needed in order to obtain performance to control a humanoid robot.

    In this thesis, whole controller is separated into three parts from

    structural points of view. One is local controller. It manages joints of a

    humanoid robot and transmits various sensor data. Another is main

    controller. It manages whole schedule of data, and it treats user’s order.

    The other is order analyzer. It gives user’s order and it transmits analyzed

    information at main control.

    Whole controller is separated from three parts from controllable

    points of view. They are joints controller, motion controller, and real-time

    controller. First, joints controller treats motor system with a humanoid

    robot. Joints controller is composed at the fuzzy-sliding mode controller

    based on genetic algorithm to reduce multi-nonlinearities and to perform

    highly efficient tracking control. And motion controller also uses genetic

    algorithm to make optimal trajectory. Lastly, real-time controller is

    proposed to synchronize among the local controllers and to communicate

    more safely between main controller and local controllers.

    From proposed controller by two kinds of points of view, a humanoid

    robot can make more various and optimal motion. Also, a humanoid robot

    can work more various tasks without any instability. All algorithms are

  • -iv-

    verified by simulation and real experiment.

  • -v-

    목 차

    요약………………………………………………….……………………..ⅰ

    ABSTRACT……………………………….………………………….........ⅲ

    목차……………………………………….……………………………......ⅴ

    표 목차…………………………………….……………………..………..ⅶ

    그림 목차………………………………….…………………..…………..ⅷ

    제 1 장 서론……………………………………….………………………1

    1.1 관련 연구 배경…………………………………………………..1

    1.2 연구 목적…………………………………………………………4

    1.3 연구 방법 및 논문 구성………………………………………..6

    제 2 장 휴머노이드 로봇의 구조……………………………………….7

    2.1 휴머노이드 로봇의 기구적 구조………………………………7

    2.2 휴머노이드 로봇의 기구학적 해석…………………………..12

    2.3 휴머노이드 로봇의 동역학 해석……………………………..17

    2.3.1 휴머노이드 로봇의 가속도 및 토크 해석……………...17

    2.3.2 휴머노이드 로봇의 균형 모델…………………………...20

    2.3.3 반발력에 의한 ZMP 검증 방정식……………………….25

    2.4 휴머노이드 로봇의 제어기……………………………………27

    2.4.1 하부 제어기………………………………………...............29

    2.4.2 주 제어기…………………………………………...............29

    2.4.3 명령 해석기………………………………………...............31

    2.4.4. 센서 모듈…………………………………………………..32

  • -vi-

    2.4.5 비젼 시스템...........................................................................33

    2.4.6 CAN 네트워크……………………………………................33

    제 3 장 휴머노이드 로봇의 제어기 구성…………………………….37

    3.1 관절 제어………………………………………………………..40

    3.1.1. 유전 알고리즘……………………………………………..40

    3.1.2 시스템 식별………………………………………………...47

    3.1.3 모터 제어 알고리즘……………………………………….51

    3.2 행동 제어………………………………………………………..59

    3.3 실시간 제어……………………………………………………..67

    4. 모의 실험………………………………………………………………71

    4.1 모터 식별…………….…...……………………………………..71

    4.2 관절 제어………………………………………………………..74

    4.3. 로봇 행동 제어…………………………………………….......87

    5. 실험 및 고찰…………………………………………………………106

    5.1 관절 제어 실험……..…………………………………………106

    5.2 행동 제어 실험………………………………………………..116

    6. 연구 결과 및 향후 연구 방향……………………………………..123

    7. 참고 문헌……………………………………………………………..126

  • -vii-

    표 차례

    표 2.1 ISHURO의 사양 …………………………………………………10

    표 2.2 오른 다리의 DH Parameter……………………………………...13

    표 2.3 왼 다리의 DH Parameter………………………………………...14

    표 2.4 제어기의 하드웨어 사양………………………………………..27

    표 2.5 ISHURO의 메시지 정의…………………………………………35

    표 3.1 Re-max 24와 A-max 26의 하드웨어 사양……………………...49

    표 3.2 모터 식별에 사용된 유전 알고리즘의 매개변수값…………50

    표 3.3 퍼지 알고리즘의 제어 규칙……………………………………56

    표 3.4 다리 궤적 생성에 사용된 유전 알고리즘의 매개변수값......59

    표 3.5 ISHURO의 메시지 시간…………………………………………67

    표 4.1 각 모터의 식별 결과…………………………………………....71

    표 4.2 유전 알고리즘을 이용한 각 제어기의 최적 이득값………..75

  • -viii-

    그림 차례

    그림 2.1 ISHURO의 3D 모델………………………....………………….8

    그림 2.2 ISHURO의 좌표계……………………………………………....9

    그림 2.3 ISHURO의 질량 모델…………………………………………18

    그림 2.4 기준 좌표계에 대한 벡터량 표시…………………………..21

    그림 2.5 반발력 측정을 위해 장착된 센서 위치……………………25

    그림 2.6 ISHURO의 제어 시스템 구성………………………………..28

    그림 2.7 하부 제어기……………………………………………………29

    그림 2.8 주 제어기………………………………………………………30

    그림 2.9 명령 해석기……………………………………………………31

    그림 2.10 힘 감지 센서………………………………..………………..32

    그림 2.11 비젼 시스템…………………………………………………..33

    그림 3.1 ISHURO의 분산제어기 구조…………………………………38

    그림 3.2 ISHURO의 데이터 흐름도……………………………………39

    그림 3.3 유전알고리즘의 블록 다이어그램…………………………..41

    그림 3.4 이진 유전알고리즘의 교배와 돌연변이……………………42

    그림 3.5 십진-철면 유전 알고리즘의 교배와 돌연변이…………….43

    그림 3.6 Sigmoid 함수…………………………………………………...45

    그림 3.7 각 유전알고리즘의 평균 적합도 값의 비교……................46

    그림 3.8 각 유전알고리즘에 대한 최대 적합도 값의 비교………..47

    그림 3.9 포화의 수학적 모델…………………………………………..51

    그림 3.10 백래쉬의 수학적 모델………………………………………52

    그림 3.11 제안된 제어기 블록도………………………………………54

    그림 3.12 관절속도 오차에 관한 입력 멤버쉽 함수………………..55

  • -ix-

    그림 3.13 관절속도 오차의 미분치에 관한 입력 멤버쉽 함수…....55

    그림 3.14 슬라이딩 모드 제어기의 이득값에 대한 출력 멤버쉽 함

    수………………………………………………………….….57

    그림 3.15 휴머노이드 로봇의 간략 모델…………………………….61

    그림 3.16 ZMP 제어 알고리즘…………………………………………66

    그림 3.17 로봇 구동시의 실시간 스케줄…………………………….68

    그림 4.1 Re-max 24의 모터 식별 결과………………………………..72

    그림 4.2 A-max 26의 모터 식별 결과…………………………………72

    그림 4.3 계단 입력일 때 PID 제어기에 대한 출력………..............76

    그림 4.4 계단 입력일 때 퍼지 제어기에 대한 출력……..………...76

    그림 4.5 계단 입력일 때 퍼지 PID 제어기에 대한 출력................77

    그림 4.6 계단 입력일 때 제안된 제어기에 대한 출력….................77

    그림 4.7 경사 입력일 때 PID 제어기에 대한 오차………………...79

    그림 4.8 경사 입력일 때 퍼지 제어기에 대한 오차 …...................79

    그림 4.9 경사 입력일 때 퍼지 PID 제어기에 대한 오차.................80

    그림 4.10 경사 입력일 때 제안된 제어기에 대한 오차 .................80

    그림 4.11 삼각파 입력일 때 PID 제어기에 대한 오차 ..…………..81

    그림 4.12 삼각파 입력일 때 퍼지 제어기에 대한 오차 ..................82

    그림 4.13 삼각파 입력일 때 퍼지 PID 제어기에 대한 오차…..….82

    그림 4.14 삼각파 입력일 때 제안된 제어기에 대한 오차 ..……...83

    그림 4.15 펄스 입력에 대한 PID 제어기의 출력................................84

    그림 4.16 펄스 입력에 대한 퍼지 제어기의 출력………..................84

    그림 4.17 펄스 입력에 대한 퍼지 PID제어기의 출력........................85

    그림 4.18 펄스 입력에 대한 제안된 제어기의 출력..........................85

    그림 4.19 시뮬레이터……………………………………………………87

    그림 4.20 X좌표의 위치에 대한 궤적 비교…………………………..89

  • -x-

    그림 4.21 Y좌표의 위치에 대한 궤적 비교…………………………..89

    그림 4.22 X좌표의 속도에 대한 궤적 비교…………………………..90

    그림 4.23 Y좌표의 속도에 대한 궤적 비교…………………………..90

    그림 4.24 X좌표의 가속도에 대한 궤적 비교………………………..91

    그림 4.25 Y좌표의 가속도에 대한 궤적 비교………………………..91

    그림 4.26 유전 알고리즘을 사용하지 않았을 때의 오른 다리의 관

    절 위치………………………………………........................92

    그림 4.27 유전 알고리즘을 사용했을 때의 오른 다리의 관절 위

    치.…………………………………………………………….93

    그림 4.28 오른 다리 발목 롤의 속도 비교………………………….94

    그림 4.29 오른 다리 발목 롤의 가속도 비교…………………….....94

    그림 4.30 오른 다리 발목 피치의 속도 비교…………………….....95

    그림 4.31 오른 다리 발목 피치의 가속도 비교………………….....95

    그림 4.32 오른 다리 무릎 피치의 속도 비교……………………….96

    그림 4.33 오른 다리 무릎 피치의 가속도 비교…………………….96

    그림 4.34 오른 다리 힙 피치의 속도 비교………………………….97

    그림 4.35 오른 다리 힙 피치의 가속도 비교……………………….97

    그림 4.36 오른 다리 힙 롤의 속도 비교…………………………….98

    그림 4.37 오른 다리 힙 롤의 가속도 비교………………………….98

    그림 4.38 오른쪽 발목 롤의 토크 비교…………………………….100

    그림 4.39 오른쪽 발목 피치의 토크 비교………………………….100

    그림 4.40 오른쪽 무릎 피치의 토크 비교………………………….101

    그림 4.41 오른쪽 힙 피치의 토크 비교…………………………….101

    그림 4.42 오른쪽 힙 롤의 토크 비교……………………………….102

    그림 4.43 오른쪽 힙 요의 토크 비교……………………………….102

    그림 4.44 ZMP와 COG 비교………………………………………….103

  • -xi-

    그림 4.45 3차원 모의 실험 결과……………………………….…….105

    그림 5.1 경사 입력에 대한 PID 제어기의 실험 오차…………….107

    그림 5.2 경사 입력에 대한 퍼지 제어기의 실험 오차 ………….107

    그림 5.3 경사 입력에 대한 퍼지 PID 제어기의 실험 오차...……108

    그림 5.4 경사 입력에 대한 제안된 제어기의 실험 오차…….......108

    그림 5.5 삼각함수 입력에 대한 PID 제어기의 실험 오차…….…109

    그림 5.6 삼각함수 입력에 대한 퍼지 제어기의 실험 오차……...110

    그림 5.7 삼각함수 입력에 대한 퍼지 PID 제어기의 실험 오차...110

    그림 5.8 삼각함수 입력에 대한 제안된 제어기의 실험 오차...….111

    그림 5.9 오른쪽 발목 롤에 대한 궤적 실험 결과………………...112

    그림 5.10 오른쪽 발목 피지에 대한 궤적 실험 결과…………….112

    그림 5.11 오른쪽 무릎 피지에 대한 궤적 실험 결과…………….113

    그림 5.12 오른쪽 힙 피지에 대한 궤적 실험 결과……………….113

    그림 5.13 오른쪽 힙 롤에 대한 궤적 실험 결과………………….114

    그림 5.14 외력과 ZMP의 상관관계 실험결과……………………...116

    그림 5.15 관절 입력에 대한 수학적 ZMP와 실제 ZMP의 비교...117

    그림 5.16 궤적 생성 시 유전알고리즘을 사용하기 전 후의 오른쪽

    다리 발목 피치 관절 비교………………………………118

    그림 5.17 궤적 생성 시 유전알고리즘을 사용하기 전 후의 오른쪽

    다리 무릎 피치 관절 비교………………………………119

    그림 5.18 궤적 생성 시 유전알고리즘을 사용하기 전 후의 오른쪽

    다리 힙 피치 관절 비교…………………………………120

    그림 5.19 ISHURO의 보행 실험……………………………………...122

  • -1-

    제 1 장 서론

    지난 30년간 인간 형상의 로봇에 대한 많은 연구가 수행되

    었다. 특히 최근에는 휴머노이드 로봇 연구에 대한 관심이 급격

    하게 증가되고 있다. 이러한 관심으로부터 많은 휴머노이드 로봇

    들이 제안되고 있고 그 대표적인 예가 혼다 사의 ASIMO [1], 소

    니 사의 SDR-4X[2-4], 후지쯔 사의 HOAP[5, 6], KAIST의 KHR[7,

    8]등이 있다. 이러한 휴머노이드 로봇은 인간과 유사하여 인간이

    수행해야 할 일들을 대체할 수 있는 가장 최적의 시스템으로 인

    식되고 있다. 그러나 실제 로봇을 구동하는데 있어서는 기본적으

    로 내제되어 있는 기구학적인 불안정성 때문에 이를 해결하기

    위한 많은 연구들이 진행되어 왔다. 그리고 최근에는 그와 더불

    어 사람들의 요구에 순응할 수 있도록 하기 위한 기초 연구가

    많이 진행되어 오고 있다.

    1.1 관련 연구 배경

    휴머노이드에 대한 연구는 1970년대 와세다 대학의 이족보

    행로봇 Wabot-1을 시작으로 하여 지속적으로 발전해왔다. 1970년

    대의 휴머노이드 로봇의 전신이라고 할 수 있는 이족보행로봇에

    대한 기본적인 개념을 정리하는 단계였다. 본격적인 인간형 로봇

    에 대한 연구는 1980년대부터 수행되기 시작하였다. 1980년대는

    로봇을 구동함에 있어서 안정적인 보행을 가능하게 할 것인지에

    대한 연구들이 수행되었다. 이러한 안정적인 보행을 수행하기 위

  • -2-

    해 로봇에 균형관절이라는 개념을 도입하였는데, 균형관절은 크

    게 직진 운동 관절[9-12]와 회전 운동 관절[13-16]로 나뉘어 연구

    되어 왔다.

    1990년대 들어서면서 휴머노이드 로봇의 보행과 제어에 대

    한 다양한 연구를 진행하기 시작했다. 이들 연구를 면밀히 살펴

    보면 역동력학(inverse dynamics) 연산에 의한 토크제어를 기본으

    로 하거나[17] 신경회로 알고리즘을 이용한 걸음새를 구현하였다

    [18]. 이외에도 외란 관측기, 2 자유도 제어기, H∞ 제어기 등을

    이용하여 강인한 제어를 구현하거나[19-21] 모의실험을 수행하여

    기존 연구가 갖고 있는 제약을 극복하고자 하는 연구 등이 수행

    되었다.

    그리고 근래 연구는 이제 보행과 제어에 대한 기본적인 한

    계를 넘어서서 보다 다양한 환경하에서 로봇을 적용시키기 위한

    방법들이 제시되고 있다. 이러한 다양한 환경하에서 로봇을 적용

    시키기 위해 로봇의 시스템에 변화를 가져오게 되었는데 로봇시

    스템 내에 자체 실시간 운영체제(Operating System)를 개발하고

    [22] 다축 제어 알고리즘을 로봇 시스템에 적용할 수 있도록 제

    어 알고리즘을 개발하고, 이 다축 제어 시스템을 적용하는 연구

    가 진행 되고 있다[23, 24]. 이러한 시스템적인 측면과 더불어 로

    봇의 다양한 보행을 수행 하게끔 하는 궤적 계획에 대한 다양한

    연구가 진행되어 오고 있다. 이는 로봇의 환경을 이전의 단순 장

    애물이 없는 평면상에서 존재한다는 가정에서 탈피하여 로봇이

    외부 환경에 노출되어 있을 때 얼마나 환경에 적응할 수 있느냐

    [25] 하는 것에 대한 연구이다. 이러한 문제를 해결하기 위해 궤

    적 생성을 온라인으로 처리 하는 방법[26-28]이 제안되었으며, 이

    와 동시에 로봇의 다양한 보행 상황에 대해 보다 안정적이고 부

  • -3-

    드러운 보행 궤적을 생성해 내기 위한 방법[29-32]등이 개발되었

    다.

    현재 로봇 시스템은 자율적인 보행을 수행할 수 있도록 하

    는 다양한 알고리즘이 제안되고 있으나, 다양한 환경하에서 로봇

    시스템을 안정적으로 수행할 수 있는 시스템 구조에 대해서는

    아직 명확하게 제시되어 있는 알고리즘은 드문 실정이다. 향후

    로봇이 인간이 수행하기 어려운 위험하고 복잡한 일을 수행하기

    위해서는 보다 복잡한 시스템을 요구하게 될 것이고 이러한 상

    황에 부흥하기 위한 로봇 시스템에 적합한 제어기는 필요한 사

    항이라 하겠다.

  • -4-

    1.2 연구 목적

    휴머노이드 로봇의 자연스럽고 자유로운 보행을 수행하기

    위해서는 로봇의 하부 모터 시스템부터 로봇의 보행 생성과 이

    를 통한 안정적 보행 수행까지 모든 부분에 고려가 이루어져야

    한다. 그러나 이러한 최 하부 제어부터 최 상단의 로봇 움직임

    결정까지 하나의 시스템을 통해 구현하기에는 프로세서에 걸릴

    것으로 예상되는 시스템 부하가 프로세서가 감당하기 어려울 정

    도로 많을 것으로 예상되며, 또 실제 로봇이 움직이게 될 경우

    발생하게 될 각 관절간의 동기화 작업과 각 시스템간의 정보 교

    류를 원활하게 하기 위해서는 시스템을 구현했을 때 분산화 된

    시스템으로 구현되어야 한다.

    본 논문에서는 시스템의 안정적인 동작과 이에 따른 원활한

    보행을 수행할 수 있게끔 하는 분산 처리 구조의 휴머노이드 로

    봇의 제어 시스템을 제안한다. 이러한 안정된 분산처리 제어기를

    구현하기 위해 시스템을 하부 제어기(local controller), 주 제어기

    (main controller), 명령 해석기 (order analyzer) 3개의 계층적인 구조

    로 나누어 시스템에 발생하는 연산이나 시스템 부하를 분배할

    수 있도록 하였다.

    먼저 로봇의 움직임에 기초가 되는 안정적인 모터 제어를

    주요한 업무로 수행하게 될 하부 제어기를 제안한다. 이 하부 제

    어기는 로봇 시스템이 가지고 있을 수 밖에 없는 비선형성을 해

    결하면서 로봇의 궤적 추종에 보다 원활하게 수행할 수 있는 궤

    적 추종 제어 알고리즘을 고려함으로써 로봇이 보행하는데 있어

    서 발생할 수 있는 요구 움직임과 실제 움직임과의 차이를 줄이

    며 이를 실시간으로 보행 정보와 보행 결과 정보를 주고 받는

  • -5-

    역할을 수행한다.

    그리고 이와 더불어 로봇의 다양한 정보를 동기화 하고 로

    봇 각 부분에서 발생하는 다양한 정보에 대해 실시간으로 대처

    하기 위한 실시간 시스템이 구축되어 있는 주 제어기를 구성한

    다. 이러한 주 제어기는 기존의 로봇 시스템과는 달리 사용자의

    다양한 요구를 수용하기 위해 구성된 분산처리 구조하에서 보다

    정확하고 시스템의 통신상으로 발생할 수 있는 불안정성을 해결

    할 수 있도록 하는 실시간 시스템을 내장하고 있다.

    마지막으로 사용자의 다양한 데이터를 처리할 수 있는 명령

    해석기를 제안한다. 이 명령 해석기는 사용자가 요구하는 움직임

    을 처리할 수 있는 시스템으로써 사용자에 의해서 생성된 궤적

    을 해석하거나 사용자의 요구 사항을 주 제어기에 전달하여 로

    봇이 요구에 적절하게 적응할 수 있도록 한다.

    이러한 계층적인 구조의 시스템을 제시하여 시스템을 구조

    적으로 구성하고 이에 대해 각 모듈의 특징을 살려 하부제어기

    를 이용한 관절 제어, 주 제어기를 이용한 실시간 제어, 명령 해

    석기를 통한 행동 제어를 제안하여 각각의 로봇에 필요로 되는

    요소들을 분산 처리함으로써 사용자의 요구에 맞게 로봇을 구동

    시킬 수 있도록 한다.

  • -6-

    1.3 연구 방법 및 논문 구성

    본 논문을 작성함에 있어서 2장에서는 논문에 적용할 휴머

    노이드 로봇의 시스템에 대해 서술하였다. 적용될 휴머노이드 로

    봇 시스템을 크게 기구부와 제어 시스템 부분으로 나누어서 적

    용된 시스템에 대해 부가 서술하였다. 이를 위해 기구부는 기구

    적 구조, 기구학적 해석, 동역학 해석에 대해 설명하며, 제어 시

    스템 부분은 구조적으로 하부 제어기, 주 제어기, 명령 해석기의

    하드웨어적 특성을 서술한다.

    3장에서는 구조적으로 나뉜 제어 시스템에 대해 실제 제어

    상의 관점에서 관절 제어, 행동 제어, 실시간 제어인 3개의 부분

    으로 시스템을 나누어 서술한다. 이를 위해 관절 제어에서는 비

    선형성을 제거하면서 추종 오차를 줄일 수 있도록 하는 제어기

    를 제안하며, 행동 제어에서는 로봇의 안정적인 보행을 수행 할

    수 있도록 지능 시스템을 부여하여 로봇의 행동을 생성한다. 그

    리고 실시간 시스템에 대해서는 로봇의 안정적인 보행을 위해

    시스템이 갖추어야 할 데이터 전송의 안정성을 확립하기 위한

    방안을 제시한다.

    이렇게 정의된 2, 3장의 내용을 토대로 4장에서는 시스템에

    적용될 알고리즘에 대해 시뮬레이션을 통해 그 안정성을 검토한

    다. 그리고 이를 토대로 5장에서는 실제 로봇 시스템에 제안된

    제어 알고리즘을 적용하였을 때 각 알고리즘에 의해 실제 적용

    된 로봇 시스템이 안정적으로 작동함을 증명한다. 이러한 과정을

    거쳐 나오는 결과에 대한 검토와 향후 연구 과제에 대해서는 6

    장에서 서술한다.

  • -7-

    제 2 장 휴머노이드 로봇의 구조

    2.1 휴머노이드 로봇의 기구적 구조

    휴머노이드 로봇 시스템을 구축하기 위해서는 최적의 구조

    설계 기술, 운동 기능 센서를 이용한 계측 기술, 서보 제어 기술,

    걸음새 제어 기술 등이 요구된다. 이러한 복잡하고 정밀한 휴머

    노이드 로봇을 개발하는데 있어서 만약 로봇 시스템 전체를 중

    앙에서 제어 처리하는 중앙 집중식 제어기로 시스템을 구성할

    경우에는 로봇 시스템의 각각의 요소를 처리하는데 있어서 중앙

    제어 장치의 연산처리 장치에 부담을 많이 가해지게 된다. 이러

    한 문제를 해소하고 다양한 상황에 대해 빠른 대처를 하기 위해

    서 분산 처리 구조의 로봇 시스템에 대한 구현이 요구 된다. 이

    에 본 논문에 적용되는 ISHURO는 모듈화된 기구 구조를 이용하

    여 조립, 수리 및 교체를 보다 원활하게 수행할 수 있을 뿐만 아

    니라 각 모듈에 한 개의 하부 제어기를 포함하고 있고 각각의

    센서를 이 하부 제어기를 통해 처리할 수 있게 하는 분산 처리

    구조의 시스템으로 로봇을 구현하였다.

    본 연구자가 개발한 휴머노이드 로봇 ISHURO는 관절 각각

    이 모듈화 되어 있는 형상을 가지고 있다. 그림 2.1과 그림 2.2는

    ISHURO의 3D모델과 좌표계를 나타낸다. 그림 2.1에서 로봇의

    각 관절은 조립과 분해가 편하게 되어 있는 구조로써, 각 모듈은

    하나의 독립적인 마이크로 프로세서와 모터와 감속기로 이루어

    져 있다.

  • -8-

    그림 2.1 ISHURO 의 3D 모델 Fig. 2.1 3D Model of the ISHURO

  • -9-

    BZ

    BX

    LLTZ

    LLTX

    6LLZ

    6LLX5LLZ5LLY

    4LLZ

    4LLX

    3LLZ3LLX

    2LLZ

    2LLX

    1LLZ

    1LLX

    0LLZ

    0LLX

    LLBRLTZ ,

    LLBRLTX ,

    1RLZ 1RLX

    2RLZ

    2RLX

    0RLZ

    0RLX

    3RLZ

    3RLX

    4RLZ

    4RLX

    5RLZ

    5RLX

    6RLZ

    0BZ

    0BX

    1BZ1BX

    7RLZ

    BTZ

    BTX

    1HZ

    0HX0HZ1HX

    0RAZ

    0RAX1RAZ

    1RAX

    2RAZ

    2RAX

    RATZRATX

    0LAZ

    0LAX

    1LAZ

    1LAX2LAZ

    2LAX

    LATZ

    LATX

    그림 2.2. ISHURO 의 좌표계

    Fig. 2. 2 Coordinates of the ISHURO

  • -10-

    본 휴머노이드 로봇 ISHURO는 총 21 자유도를 가지고 있는

    시스템으로 이를 세부적으로 보면 로봇이 사람과 유사한 움직임

    을 수행할 수 있는 각각 6 자유도를 가진 다리와, 몸체 보정을

    위한 1자유도의 몸체, 사물을 식별할 수 있는 비전 시스템을 장

    착할 수 있는 2자유도의 머리, 물체를 원하는 위치로 보내기 위

    한 각각 3자유도의 팔을 가지고 있다. 표 2.1은 ISHURO의 기구

    부에 대한 재원이다.

    표 2.1 ISHURO 의 사양

    Table 2.1 Specification of ISHURO

    높이 865.2mm

    폭 459×195.1mm

    무게 9.8 Kg

    발바닥 길이 135mm

    자유도 21

    구동기 A-max 26 Re-max 24

    출력 11Watt, 18V 11Watt, 18V

    기어비 231:1 190:1

    그림 2.1과 그림 2.2에서 볼 수 있듯이 ISHURO의 기구학적

    모델은 여타의 다른 휴머노이드 로봇 모델과 같이 여러 개의 자

    유도가 종속적으로 연결되어 있으며, 이렇게 종족적으로 연결된

    다 자유도 형상을 해석적인 방법으로 해를 구하기는 어려우며

    수치 해석적 방법으로 풀이하기에는 상대적으로 긴 시간이 소요

    된다. 이러한 문제를 해결하기 위해 로봇의 움직임을 결정하게끔

    하는 기구학적 해석에 있어서 지지각(support leg) 과 유각(swing

  • -11-

    leg) 그리고 몸체로 이루어진 3개의 부분으로 좌표계를 나누어

    해석을 하였다. 그리고 로봇의 안정성을 확인하고 로봇의 각 관

    절에 소요되는 토크를 확인하기 위한 동역학적 해석에 있어서는

    로봇의 각 관절이 다른 관절과 유기적인 관계를 가짐을 착안하

    여 로봇 해석을 수행했을 때 다리부(leg)와 상체(upper body)를 분

    리 없이 해석하였다.

    그리고 로봇의 제어기 관점에서 각 관절에 각각의 제어 모

    듈을 두고 이를 중앙에 있는 주 제어기와 통신을 통해 로봇 각

    관절간의 유기적인 동기화를 수행함과 동시에 제어를 수행함에

    있어서 생기는 연산을 분산 시킴으로써 각 관절이 독립적이면서

    도 스스로 필요한 작업을 수행할 수 있는 준 독립적인 시스템으

    로 기구부를 구성하였다.

  • -12-

    2.2. 휴머노이드 로봇의 기구학적 해석

    휴머노이드 로봇의 움직임을 해석해 내기 위한 방법으로는

    인간의 움직임을 센서로 측정하고 이를 로봇에 적용하기 위해

    데이터 재처리 과정을 거쳐 보행시키는 방법[33]과 로봇의 움직

    임을 기구학(kinematics)적으로 해석하고 이를 기초로 하여 각 관

    절부의 끝 단에 대해 궤적을 생성[34]하여 이를 기초로 보행을

    수행하는 방법으로 크게 나뉘어 진다. 전자의 경우 로봇의 움직

    임에 부드러움을 줄 수 있는 장점을 가지고 있으나 로봇 움직임

    이 인간의 형상을 빌리기 때문에 사용자가 요구하는 움직임에

    빠르게 대처하기 어려운 단점을 지니고 있다. 후자의 경우 사용

    자가 요구하는 움직임에 대해 신속하게 처리하여 움직일 수 있

    는 장점을 가지고 있으나 신속한 궤적 생성시 인간과 유사한 부

    드러운 궤적을 만들어내지 못하는 단점을 가지고 있다.

    본 연구에서는 이러한 두 가지 방법 중에 후자의 방법을 통

    해 로봇의 궤적을 생성하였다. 이는 분명 로봇이 보행하는데 있

    어 최적의 궤적 생성을 수행하는데 어느 정도의 한계를 가지고

    있으나 요즈음은 사용자가 휴머노이드 로봇에 대해 다양한 역할

    을 수행하기를 요구하고 있으며, 이에 부합하기 위해 휴머노이드

    로봇은 다양한 행동을 생성해 내야 하며, 이러한 다양한 움직임

    을 수행하기 위한 방법으로 후자의 기구학적 해석과 궤적 계획

    에 의한 보행이 보다 유용하다고 판단 되어진다.

    본 연구에서 ISHURO의 보행을 구현하기 위해서는 기구학적

    변화와 각 링크의 운동 특성을 용이하게 표현할 수 있어야 한다.

    이를 위해 본 연구에서는 그림 2.2와 같이 Denavit-Hartenberg 강

    제 링크 표시법을 사용하여 각 링크에 고착된 3개의 링크 파라

  • -13-

    미터, 그리고 관절 변수로 표현하고 이에 대한 해석을 3개의 기

    준 좌표계에 대해 표현할 수 있도록 하였다. 이는 서로 다른 궤

    적에 대한 운동을 21개의 관절로 구성된 복잡한 기구 연쇄를 가

    진 세 개의 단순 기구연쇄로 가정할 수 있음을 의미한다. 이와

    같은 가정을 충족하기 위해서는 세 개의 기준 좌표계에 대한 각

    기구 연쇄의 궤적 계획이나 구속조건을 필요로 하며, 이는 휴머

    노이드 로봇의 보행을 위해서는 최소한 오른 다리, 왼 다리, 휴

    머노이드 상체에 대한 궤적계획이 필요함을 의미한다. 표 2.2와

    표 2.3은 각각 ISHURO의 오른 다리와 왼다리의 D-H Parameter이

    다. ISHURO의 경우는 이족 보행을 구현하기 위해 오른 다리와

    왼다리의 궤적이 필요로 하며 이에 대해 휴머노이드 로봇의 상

    체는 오른 다리와 왼다리의 운동특성을 근거로 보조적인 역할을

    수행하게끔 하였다.

    표 2.2 오른다리의 DH Parameter

    Table 2.2 DH Parameter of right leg

    Link No. a α d θ Init. Value

    1(가) 0 90 1l 90 ×

    2 2l− 90 0 2θ -90

    3 3l− 0 0 3θ -30

    4 4l− 0 0 4θ 60

    5 5l− -90 0 5θ -30

    6 0 -90 0 6θ 90

    7 6l− 0 0 7θ 0

    8(가) 0 0 0 -90 ×

  • -14-

    표 2.3 왼다리의 DH Parameter Table 2.3 DH Parameter of left leg

    Link No. a α d θ Init. Value

    1(가) 6l 0 0 90 ×

    2 0 90 0 2θ 0

    3 5l 90 0 3θ -90

    4 4l 0 0 4θ 30

    5 3l 0 0 5θ -60

    6 2l− -90 0 6θ 30

    7 1l− 90 0 7θ 0

    8(가) 0 -90 0 90 ×

    표 2.2와 표 2.3에서 1l ~ 6l 는 각 관절의 링크 길이를 나타내며

    2θ ~ 6θ 는 각 관절의 회전각을 의미한다.

    로봇의 궤적 계획방법은 주어진 경유점에 대하여 역기구학

    을 수행하여 도출한 관절변수 값을 이용하여 관절공간에서 궤적

    을 계획하는 방법과 주어진 경유점을 이용하여 직교공간에서 궤

    적 계획을 수행한 후 각각의 궤적에 대하여 역기구학을 수행하

    는 방법의 두 가지로 대별된다. 전자의 경우는 역기구학과 궤적

    계획 함수의 사용 빈도가 상대적으로 낮아 비교적 열악한 연산

    자원 하에서도 수행할 수 있는 장점이 있으나 경유점과 경유점

    사이에서의 직교공간 궤적에 대한 예측이 어려워 장애물의 회피

    등과 같은 경우에 취약한 단점이 있다. 특히 휴머노이드 로봇의

    경우 지면이라는 상존하는 장애물이 있어 주의를 요한다. 후자의

    경우는 역기구학적 연산량이 많고 궤적 계획함수의 차수가 낮을

  • -15-

    경우 관절 공간에서 미분 불연속 함수로 표현될 수 있으며 특이

    해와 작업영역에 대한 예측이 필요한 단점이 있다. 그러나 로봇

    의 모델에 고정된 경우에는 해석적인 방법으로 역기구학을 수행

    할 수 있어 연산량을 상당히 줄일 수 있으며, 고차 함수를 이용

    하여 궤적 계획을 수행하고, 기구적으로 공동(Cavity)이 없는 작

    업영역을 구현하고, 상존하는 특이 해를 회피할 수 있는 알고리

    즘을 첨가하여 단점을 극복할 수 있다. 이 경우는 장애물 회피

    등에 필요한 궤적을 상호적으로 생성할 수 있는 장점을 살릴 수

    있다.

    이상의 이유로 ISHURO의 모든 궤적계획은 5차 다항식을 이

    용하여 직교 공간을 배경으로 이루어지도록 설계되었다. 궤적계

    획에 있어 시작점과 목표점이 주어지면 시작속도, 가속도 그리고

    목표점에서의 속도 가속도 등의 6개의 미지수로 이루어진 시간

    에 대한 5차 함수를 구할 수 있다. 식 (2.1)은 6개의 미지수로 이

    루어진 시간에 대한 5차 함수이다. 식 (2.1)로부터 로봇의 궤적을

    6개의 구속조건을 이용하여 대수적으로 구할 수 있다.

    55

    44

    33

    2210)( tatatatataat +++++=λ

    ia λ=0 , ia λ&=1 , 2/2 ia λ&&=

    { } 323 2)3()128(2020 fffififif ttta λλλλλλ &&&&&& −−+−−= { } 424 2)23()1416(3030 fffififif ttta λλλλλλ −−+−−= &&&& { } 525 2)23()66(1212 fffififif ttta λλλλλλ −−+−−= &&&&

    (2.1)

    식 2.1에서 0a ~ 5a 는 각각 결정해야 할 상수 값이며 이에 대해

  • -16-

    iλ 와 fλ 는 궤적의 초기 위치와 최종 위치를 나타내며, iλ& 와 fλ&

    는 궤적의 초기 속도와 최종 속도를 나타내며, iλ&& 와 fλ&& 는 궤적

    의 초기 가속도와 최종 가속도를 나타내며, ft 는 궤적이 생성되

    는 시간을 나타낸다. 이렇게 주어진 물리적 조건에 대하여 최고

    차인 5차 다항식을 이용하여 궤적계획을 할 경우 가속도 함수가

    3차 함수로 표현될 수 있어 충격량(Jerk)을 갖지 않는 장점이 있

    다. ISHURO의 경우 수학적으로 댐핑(Damping)효과를 갖는 항이

    없고, 지지면과 마찰력 이외의 고정력을 갖지 못하므로 운동의

    충격량을 최소화하려는 것이 다른 어떤 로봇 시스템에서 보다

    중요하다. 그러기 위해서 궤적 생성 시 한 다리 지지 상태에서

    양다리 지지 상태로 진입하게 될 경우 다리의 끝 단의 속도 가

    속도를 ‘0’으로 설정함으로써 휴머노이드 로봇이 발바닥을 내딛

    게 될 때 충격량을 없앨 수 있도록 궤적 생성을 수행하였다.

  • -17-

    2.3 휴머노이드 로봇의 동역학 시스템

    로봇의 안정적인 구동을 위한 로봇을 설계할 때, 예상되는

    각 관절의 토크(Torque) 특성과 보행 안정성을 고려하기 위해서

    는 로봇 시스템에 대한 동역학적인 해석이 필요하다. ISHURO는

    로봇 설계를 위한 토크 해석과 로봇 보행 시 발생할 수 있는 로

    봇 균형 안정성에 대해 두 가지 수학적 모델을 가지고 로봇을

    접근하였다.

    2.3.1 휴머노이드 로봇의 가속도 및 토크 해석

    로봇의 동역학적 해석을 위해 로봇을 총 10개의 질점으로

    해석하였다. 그림 2.3은 로봇의 질량 모델이다. 로봇의 토크 계산

    을 위한 동역학적인 해석 방법은 크게 Lagrange-Euler 방법과

    Newton-Euler 방법으로 크게 나뉠 수 있다. Lagrange-Euler 방법은

    로봇을 에너지 관점에서 해석하여 처리한 방법으로써 일반적이

    고 로봇의 다양한 환경에서 모두 적용할 수 있는 장점을 가지고

    있으나 연산량이 많고 복잡한 구조에서 적용하기 어려운 단점을

    가지고 있는 방법이다. 이에 대해 Newton-Euler방법은 로봇의 기

    계적인 연쇄를 통한 방법으로 동역학을 해석한 기법으로 해석

    시 컴퓨터를 통한 산술 연산이 유리한 반면에 폐쇄형 구조의 경

    우 정확한 토크 계산이 어려운 단점을 지니고 있다.

    본 논문에서는 다리에 9개, 몸통을 전체 1개의 질량으로 해

    석하여 10개의 로봇 질량 모델을 이용하여 로봇 다리의 각 관절

    에 소요 예상되는 토크를 Newton-Euler Method를 이용하여 유추

    하였다[35]. 이는 로봇 시스템이 10개의 질량 모델을 가지고

  • -18-

    0m

    8m

    7m

    6m

    5m

    4m

    3m

    2m

    1m

    Cm

    Hm

    0LAm

    1LAm

    2LAm

    2RAm

    1RAm0RAm

    그림 2.3 ISHURO 의 질량 모델 Fig. 2.3. Mass Model of ISHURO

  • -19-

    있으므로 Lagrange-Euler방법을 사용할 경우 연산 시간이 오래 걸

    리고, 휴머노이드 로봇의 경우 한 다리 지지 상태에서의 안정성

    에 대한 문제와 토크 문제가 로봇 동역학 해석에 있어서 주요한

    고려 사항이기 때문에 로봇의 동역학 해석을 수행할 때 개방형

    연쇄 구조라고 가정하여도 크게 무리가 없기 때문에 Newton-

    Euler Method를 이용하여 동역학 해석을 수행하였다. Newton-Euler

    Method를 이용한 동역학 해석은 식(2.2)~(2.9)으로써 표현 될 수

    있다.

    [ ]Tiiiiiii ddapR αα cossin*0 = (2.2)

    )( 0101

    10 iii

    ii

    ii qzRRR &+= −

    −− ωω (2.3)

    ])([ 0101

    0101

    10 iii

    iii

    ii

    ii qzRqzRRR &&&&& ×++= −

    −−

    −− ωωω (2.4)

    )(

    )]()[()()()(

    101

    1

    *000

    *000

    −−

    −+

    ××+×=

    ii

    ii

    ii

    ii

    ii

    ii

    ii

    ii

    vRR

    pRRRpRRvR&

    && ωωω (2.5)

    ii

    ii

    ii

    ii

    ii

    ii

    ii vRsRRRsRRaR && 0000000 )]()[()()()( +××+×= ωωω (2.6)

    ii

    iii

    ii

    ii aRmfRRfR 010

    110 )( += +

    ++ (2.7)

    )])([()())((

    )()]()([

    00

    0000

    00*

    0101*

    01

    101

    10

    ii

    iii

    iiii

    ii

    ii

    ii

    ii

    ii

    ni

    ii

    ii

    RRIRRRRIR

    FRsRpRfRpRnRRnR

    ωωω ×++

    ×++×+= +++

    ++

    + (2.8)

    iiiT

    ii

    i qbzRnR &+= − )()( 010τ (2.9)

    여기에서 0Ri 는 기준 좌표계에서 i 좌표계까지의 회전 행렬

  • -20-

    을 의미하며, iω 와, iω& 는 각각 기준 좌표계에서 본 i 좌표계의

    각속도(angular velocity)와 각가속도(angular acceleration)를, 0z 는 T)1,0,0( 를, iq& 와 iq&& 는 각각 i 좌표계에서의 각속도와 각가속도

    를, iv& 은 기준 좌표계에서 본 i 좌표계의 선속도(linear velocity)를,

    ia 는 기준좌표계에서 i 번째 질량 중심에서의 선가속도(linear

    acceleration)를 의미한다. 그리고 if , iF , in , ib 는 각각 질점에

    걸리는 힘(internal force), 외력(external force), 모멘트(moment), 점

    성 마찰(viscous damping)상수를 의미하며, iI , iτ 는 각각 i 링크

    의 형상에 의한 관성 모멘트(moment of inertia)와 관절에 걸리는

    토크를 의미한다. 위의 식 (2.2)부터 식(2.9)로부터 만약 기구학적

    연쇄 구조로 이루어진 로봇의 경우 비교적 간단하게 토크를 구

    할 수 있으므로 휴머노이드 로봇의 보행 중에 발생하게 될 토크

    를 유추하여 보행을 생성해 낼 수 있게 된다.

    2.3.2 휴머노이드 로봇의 균형 모델

    휴머노이드 로봇의 균형점 검증을 위해서 본 논문에서는

    D’alembert 원리를 이용하여 균형점 검증 방정식을 유도하였다.

    이를 위해 그림 2.4와 같이 시스템을 정의하게 되면 점 P의 운동

    은 식 (2.10)과 같이 표현할 수 있다.

    0)()(0

    =++×−∑=

    Tii

    n

    ii MGrPrm

    rrr&&

    rr (2.10)

    여기서 im 는 물체 i 의 질량, irr

    는 물체 i 의 질량 중심의 위

    치 벡터, Pr

    는 XY평면 위의 임의의 점 P 에서의 위치벡터, Gr

  • -21-

    중력 가속도, 그리고 TMr

    는 점 P 에서의 전체 모멘트를 나타낸

    다.

    그림 2.4 기준 좌표계에 대한 벡터량 표시

    Fig. 2.4. Vector Definition

    식(2.10)을 임의의 개수의 질점에 대하여 적용하면 다음 의 식

    (2.11)로 표현할 수 있다.

    00

    =⎥⎥⎥

    ⎢⎢⎢

    ⎡+

    ⎟⎟⎟

    ⎜⎜⎜

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡+

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡×⎟⎟⎟

    ⎜⎜⎜

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡−

    ⎥⎥⎥

    ⎢⎢⎢

    ∑=

    Tz

    Ty

    Tx

    z

    y

    x

    iz

    iy

    ix

    z

    y

    x

    iz

    iy

    ixn

    ii

    MMM

    ggg

    rrr

    PPP

    rrr

    m&&

    &&

    &&

    (2.11)

    식(2.11)의 벡터곱을 연산하고 TMr

    에 대하여 다시 정리하면 식

    (2.12)와 같이 표현할 수 있다.

  • -22-

    ⎥⎥⎥

    ⎢⎢⎢

    +−−+−+−−+−+−−+−

    −=⎥⎥⎥

    ⎢⎢⎢

    ∑= ))(())((

    ))(())(())(())((

    0xxiyiyyiyxix

    zizxixxixziz

    yiyzizzizyiyn

    ii

    Tz

    Ty

    Tx

    grprgrprgrprgrprgrprgrpr

    mMMM

    &&&&

    &&&&

    &&&&

    (2.12)

    여기서 평면 위로 투영된 점 P 를 균형점으로 정의하면 식(2.12)

    는 식(2.13)~(2.15)으로 표현할 수 있다.

    [ ]∑=

    +−−+−=n

    izizmpiyizmpiiTx gzyygyzzmM

    0))(())(( &&&& (2.13)

    [ ]∑=

    +−−+−=n

    ixizmpizizmpiiTy gxzzgzxxmM

    0))(())(( &&&& (2.14)

    [ ]∑=

    +−−+−=n

    iyizmpixizmpiiTz gyxxgxyymM

    0))(())(( &&&& (2.15)

    여기서 im 는 i 번째 질점의 질량, ix , iy , iz 는 기준 좌표계에

    대한 i 번째 질점의 위치, x&& , y&& , z&& 는 기준 좌표계에 대한 i번째

    질점의 가속도, zmpx , zmpy , zmpz 는 기준 좌표계에 대한 균형점의

    위치, 그리고 xg , yg , zg 는 기준 좌표계에 대한 중력가속도이

    다.

    균형점은 지지 평면상으로 투영된 한 점이며 균형점의 정의

    가 반발 모멘트가 영(‘0’)인 점을 상기하여 0=zmpz , 0=TxM ,

    0=TyM 를 식 (2.13)~(2.15)식에 대입하면 식(2.16)~(2.18)으로 표

    현된다.

    ∑∑==

    =+−−+=−n

    iyiii

    n

    izmpiziiTx gyzmyygzmM

    000)())(( &&&& (2.16)

  • -23-

    0)())((00

    =+−−+= ∑∑==

    n

    iixii

    n

    izmpiziiTy zgxmxxgzmM &&&& (2.17)

    ∑ ∑= =

    +−+−−+=n

    i

    n

    izmpiyiizmpixiiTz SxxgymyygxmM

    0 0

    ))(())(( &&&& (2.18)

    여기서, S 는 지지 평면과 평행한 평면 회전 운동이 있을 경우

    그 회전 중심에 대한 관성 모멘트의 양을 의미한다. 그림 2.3의

    질량모델을 식(2.16)~(2.18)에 적용하면 다음의 식 (2.19)~(2.21)으

    로 표현할 수 있다.

    ∑∑==

    =+−−+9

    0

    9

    00)())((

    iyiii

    izmpizii gyzmyygzm &&&& (2.19)

    0)())((9

    0

    9

    0=+−−+ ∑∑

    == iixii

    izmpizii zgxmxxgzm &&&& (2.20)

    Tzi i

    zmpiyiizmpixii MSxxgymyygxm =+−+−−+∑ ∑= =

    9

    0

    9

    0))(())(( &&&& (2.21)

    이상에서 정리한 식 (2.19)와 식(2.20)은 휴머노이드 로봇의

    안정도에 있어서 절대적인 균형점의 지지평면 위의 2차원 성분

    을 포함하고 있으므로 휴머노이드 로봇의 보행 시 안정도 해석

    에 적용할 수 있다. 그런데 2차원 평면상의 운동은 식(2.19)와 식

    (2.20) 두 개의 기본인자에 대한 성분 외에 회전에 관한 성분도

    가질 수 있음은 주지의 사실이다. 휴머노이드 로봇에 있어서 지

    지 평면 상에 나타나는 회전 성분은 발바닥과 지지 평면 사이의

    스핀 모멘트로 나타나며 식(2.21)이 그것을 표현한다. 이 스핀 모

    멘트의 양이 발바닥과 지지면 사이의 마찰보다 클 경우 보행 방

    향에 간섭을 주게 되며, 이에 대해 지지 평면과 평행하게 보상

  • -24-

    회전운동을 할 수 있는 자유도를 필요로 한다. 그러나 ISHURO

    는 보행 시 발생할 수 있는 스핀모멘트의 양은 실제 마찰력에

    비해 작다고 가정하여 설계하였다.

    식(2.19)와 식(2.20)의 좌변에서 균형점을 포함하고 있는 항을

    분리하여 우변에 정리하면 다음의 식(2.22)과 식(2.23)로 표현할

    수 있다.

    ∑∑∑===

    +=+−+9

    0

    9

    0

    9

    0)()()(

    izmpzii

    iixii

    iizii xgzmzgxmxgzm &&&&&& (2.22)

    ∑ ∑∑= ==

    +=+−+9

    0

    9

    0

    9

    0)()()(

    i izmpziiyiii

    iizii ygzmgyzmygzm &&&&&& (2.23)

    식(2.22)와 식(2.23)은 다음의 식(2.24)와 식(2.25)와 같은 균형

    점 검증 방정식으로 변형될 수 있다.

    ∑ ∑

    =

    = =

    +

    +−+= 9

    0

    9

    0

    9

    0

    )(

    )()(

    izii

    i iixiiizii

    ZMP

    Gzm

    zGxmxGzmx

    &&

    &&&&

    (2.24)

    ∑ ∑

    =

    = =

    +

    +−+= 9

    0

    9

    0

    9

    0

    )(

    )()(

    izii

    i iiyiiizii

    ZMP

    Gzm

    zGymyGzmy

    &&

    &&&&

    (2.25)

    식(2.24)와 식(2.25)를 통해 로봇 시스템의 안정적인 보행에

    기본적인 척도가 되는 ZMP(Zero Moment Point)를 알 수 있으며,

    만약 ZMP의 정보가 한 다리 지지 상태(Single supported state)일

  • -25-

    경우에 로봇의 발바닥 안에 ZMP가 들어오고 양다리 지지 상태

    (Double supported state)에서 ZMP가 두 발바닥 사이에 존재하는

    영역 내에 존재하게 되면 로봇은 안정적인 보행을 수행하고 있

    다고 가정할 수 있다.

    2.3.3 반발력에 의한 ZMP 검증 방정식

    ZMP의 경우 로봇의 모멘트의 합이 영(‘0’)이 되는 지점을 의

    미하는데 이는 로봇이 보행을 하면서 지면에 닿아있는 발바닥에

    생기는 지면의 반발력에 의해서도 계산 될 수 있다. 발바닥이 바

    닥에 닫아 있는 경우 로봇의 움직임과 중력에 의해 반발력이 발

    생하게 되며 이를 기초로 발바닥의 반발력을 이용하여 ZMP 점

    을 계산 할 수 있다. 그림 2.5와 식(2.21)과 식(2.22)는 반발력에

    대한 ZMP값을 나타낸다.

    137.

    5mm

    84mmX

    (x1, y1) (x2, y2)

    (x3, y3) (x4, y4)

    Y

    F1 F2

    F3 F4

    (0,0) 그림 2.5 반발력 측정을 위해 장착된 센서위치 Fig. 2.5 Sensor position to calculate reaction force

  • -26-

    =

    == n

    ii

    n

    iii

    zmp

    f

    xfx

    1

    1 (2.21)

    =

    == n

    ii

    n

    iii

    zmp

    f

    yfy

    1

    1 (2.22)

    여기에서 n 은 발바닥에 작용하는 반발력이 측정되는 위치의 개

    수를 나타내며, if 는 지면의 반발력을 나타내고 ix , iy 는 기준

    좌표계에 대한 지면 반발력의 측정 위치를 나타낸다. 식(2.21)과

    식(2.22)로부터 휴머노이드 로봇에 가해지는 지면 반발력의 크기

    에 대한 ZMP 위치를 판별할 수 있으며 이를 기초로 하여 로봇

    의 안정성 판별에 있어서의 ZMP의 위치와 실제 ZMP와의 차이

    를 기초로 로봇의 자세 제어를 수행하여 로봇이 안정적으로 보

    행 할 수 있도록 유도 할 수 있다.

  • -27-

    2.4 휴머노이드 로봇의 제어기

    휴머노이드 로봇의 제어 시스템을 구축하기 위해 시스템을

    하부 제어기(Local Controller), 주 제어기(Main Controller) 그리고

    명령 해석기(Order Analyzer)로 나누어 시스템을 계층적으로 구성

    하였다. 각각의 하드웨어 재원은 표 2.4과 같고, 이에 대한 시스

    템 구성도는 그림 2.6와 같다.

    표 2.4 제어기 하드웨어 사양

    표 2.4 Hardware specification of Controller

    Target CPU Clock

    Speed

    Calculation

    Speed OS

    Local

    Controller TMS320F2810 150MHz 150MIPS X

    Main

    Controller TMS320F6713 300MHz 1.3GFLOPS X

    Order

    Analyzer XScale 400MHz 400MIPS

    Embedded

    Linux

    그림 2.6에서 ISHURO의 통신 시스템은 하부 제어기와 주

    제어기 사이를 CAN을 이용하여 통신을 수행하고 있고, 주 제어

    기와 명령 해석기 사이에는 local bus를 통해 통신을 수행하고 있

    다. 그리고 ISHURO과 외부와의 의사 소통을 위해 802.11b기반의

    무선 네트워크를 이용하여 시스템을 구축하였다.

  • -28-

    User802.11b(wireless LAN)

    ISHURO Layer

    Order Analyzer Main Controller

    Vision System

    CAN Communicator

    Spec- CPU : XScale 400MHz- OS : Linux- Wireless LAN, etc.

    Spec- Vision :640X480 60Fps- CPU : TMS320F6713

    Spec- CPU : TI320F2812

    - Real-Time CAN Communication

    - Target Analysis- Object Detect- Mapping

    - Real-Time Data Communication- Trajectory and Kinematics Analysis- Robot Dynamic Analysis- Sensor Data Analysis- Robot Posture Control

    - User Order Communication- Robot System Check- Walking Management

    - Robot Motion Pattern Generation- User Order Analysis

    Spec- CPU :TI320F2810- Driver : LMD18201- CAN included

    - Motor Precision Control - Now Robot State Sensing with Gyro, Acceleration and FSR sensor.

    Local Controller

    LocalBus

    LocalBus

    CANNetwork

    그림 2.6 ISHURO 의 제어 시스템 구성도

    Fig. 2.6 Control system structure of a ISHURO

  • -29-

    2.4.1 하부 제어기

    그림 2.6의 계층적 시스템에서 로봇 관절을 제어하기 위한

    시스템인 하부 제어기(Local Controller)는 TI사의 TMS320F2810로

    써 하부 제어기는 그림 2.7과 같다.

    그림 2.7 하부 제어기

    Fig. 2.7 Local controller

    하부제어기는 로봇의 각 관절에 들어가는 모터에 대한 제어

    가 주요한 역할이다. 현재 개발된 ISHURO시스템의 비선형성에

    의한 시스템 제약에 대해 비선형 제어기를 구축하여 시스템을

    안정화 시켰으며 CAN 통신을 통한 각 관절의 동기화 및 궤적

    데이터와 보행 결과에 대한 통신 그리고 나아가 로봇 각 부분에

    존재하는 다양한 센서에 대한 정보를 주 제어기에 보내는 역할

    을 수행한다.

    2.4.2 주 제어기

    주 제어기(Main controller)는 고속의 CPU를 이용하여 전체 시

    스템을 총괄 관리하는 역할을 수행한다. 이에 시스템의 복잡하고

    다양한 작업을 실시간으로 수행하기 위해 고속 CPU인 TI사의

  • -30-

    TMS320F6713을 이용하였다. 주제어기는 그림 2.8과 같다.

    그림 2.8 주 제어기

    Fig. 2.8 Main controller

    주 제어기의 역할은 크게 3가지로 나눌 수 있다. 첫 번째로

    로봇의 안정성 확보를 위한 하부 제어기들의 상태를 확인하는

    일을 수행한다. 이는 주 제어기가 하부 제어기와 CAN

    Communicator를 통해 CAN통신으로 연결되어 있어 로봇의 구동

    상태와 로봇의 각 하부 제어기 간의 동기화 과정을 수행하게끔

    한다. 두 번째 역할은 로봇의 안정 제어에 관한 것이다. 사용자

    가 요구하는 상황에 대해 보다 유연하게 대처하기 위해서는 로

    봇이 자체적으로 궤적을 생성해 낼 수 있는 구조여야 한다. 이러

    한 자체적인 연산 수행을 통한 로봇의 행동 궤적 생성이 주 제

    어기의 주요한 업무 중에 하나이다. 그리고 마지막으로 비전

    (Vision)이나 각종 센서 그리고 사용자의 요구를 수용하는 작업을

    수행한다. 휴머노이드 로봇에 있어서 각 센서의 정보는 곧 로봇

    의 안정도와 밀접한 관계를 맺고 있다. 그리고 사용자의 요구 또

    한 로봇이 반드시 수행해야 할 일 중에 하나이다. 이러한 사용자

    의 요구와 안정성 확보를 위해서는 주 제어기는 고속의 CPU를

  • -31-

    가져야 하며, 그리고 이렇게 다양한 일을 병렬적이고 주어진 시

    간 안에 처리하기 위해서는 실시간 요소가 주 제어기 내에 포함

    되어야 한다.

    2.4.3 명령 해석기

    오늘날 휴머노이드 로봇의 주요한 업무 중에 하나는 인간과

    유사한 행동을 수행하면서 인간이 수행하기 어려운 일들을 대신

    수행하는 것이다. 이러한 휴머노이드의 필요성에 의해 로봇을 개

    발 할 당시 다양한 요구에 순응할 수 있는 구조로 로봇을 개발

    해야 한다. 그러기 위해서 ISHURO는 사람의 명령을 처리할 수

    있도록 명령 해석기(Order Analyzer)가 요구된다. ISHURO는

    XScale 400MHz 의 CPU를 이용하였으며 Embedded Linux를 적용

    하여 시스템 구축하였다. 그리고 외부 시스템간의 통신을 원활하

    게 수행하기 위해 802.11b기반의 wireless LAN을 구축하였다. 그

    림 2.9는 명령 해석기이다.

    그림 2.9 명령 해석기

    Fig. 2.9 Order Analyzer

  • -32-

    2.4.4. 센서 모듈

    휴머노이드 로봇의 안정적인 보행을 수행하기 위해는 위의

    제시된 3개의 계층 구조의 모듈뿐만 아니라 로봇에 적용될 센서

    시스템 또한 구축되어 있어야 한다. 그러기 위해서 본 논문에서

    는 로봇의 안정성을 확인할 수 있는 힘 감지 센서(FSR: Force

    Sensing Register)를 적용하였다. ISHRURO에 적용된 센서는

    Interlink의 402모델로 힘을 98N까지 인식할 수 있으며 이에 대한

    결과는 전압의 차이로 나타내어진다. 본 논문에서는 힘 감지센서

    를 이용하여 발바닥에 존재하는 반발력을 측정하였으며, 이는 발

    바닥 외력으로부터 ZMP를 측정하여 로봇이 안정적으로 보행 할

    수 있도록 할 수 있도록 보조하는 역할을 수행하게 된다. 그림

    2.10은 힘 감지 센서이다.

    그림 2.10 힘 감지 센서 Fig. 2.10 Force Sensing Register

    이 센서는 각 발에 4개씩 총 8개의 센서를 부착하였고 식

    (2.21)과 식(2.22)를 이용하여 로봇의 현재 ZMP를 하부 제어기에

    서 연산하여 그 정보를 주 제어기에 전달하게 된다.

  • -33-

    2.4.5 비젼 시스템

    로봇의 안정적인 보행을 수행하기 위해 장애물에 대한 정보

    를 추정하기 위해 비젼 시스템을 휴머노이드 로봇에 탑재하였다.

    그림 2.11은 로봇에 적용된 비젼 시스템의 모습이다.

    그림 2.11 비젼 시스템 Fig. 2.11 Vision system

    비젼 시스템을 구현하기 위해 2개의 Sony 사의 CCD를 이용

    한 FLEA-COL-CS카메라와 8mm 렌즈 2개를 이용하였고 비젼 시

    스템의 정보를 얻기 위해 TI사의 TMS320F6713을 이용하여 비젼

    시스템을 구축하였다. 비젼 시스템을 이용하여 물체의 거리를 측

    정하기 위해 총 2개의 구동기를 삽입하였으며 초점을 잡기 위해

    좌우 대칭으로 카메라를 움직이며 카메라를 위, 아래로 움직임으

    로써 장애물을 인식할 수 있도록 하였다.

    2.4.6 CAN 네트워크

    하부 제어기와 주 제어기 간의 동기화 수행 및 분산 제어를

    수행하기 위해 하부 제어기와 주 제어기 사이의 통신 시스템을

    구축해야 할 필요가 제기되었다. 이에 본 논문에서는 CAN을 이

  • -34-

    용하여 시스템간의 통신을 수행하였다.

    CAN 프로토콜은 CSMA/NBA(Carrier Sense Multiple Access with

    Non-destructive Bit-wise Arbitration)라는 MAC(Medium Access

    Control)을 사용한다. 기본 CAN에는 메시지 당 11bits의 인식자

    (ID)를 사용하여 메시지 우선 순위를 결정하는데 둘 이상의 노드

    가 동시에 데이터를 전송할 경우 메시지의 인식자를 이용한 중

    재로 데이터 사이의 충돌이 존재하지 않으며 데이터를 손실 없

    이 전송할 수 있는 프로토콜이다.

    휴머노이드 로봇 ISHURO에 CAN 프로토콜을 적용하기 위해

    서 ISHURO동작에 필요한 데이터를 정의하고 정의된 데이터를

    CAN 메시지화하는 작업을 필요로 한다. ISHURO에 필요로 하는

    메시지는 표 2.5에 정의하였다.

    표 2.5에서 초기화 상태는 ISHURO이 보행을 하기 위해 초

    기 위치를 설정해 주는 과정이다. 먼저 사용자 명령에 의해 모든

    지역 제어기의 상태를 확인하게 되는데 주 제어기는 지역 제어

    기에 Module_State 메시지를 전송하고 이 메시지를 받은 모든 지

    역 제어기들은 주 제어기로 확인 신호를 보내어 자신의 상태를

    알린다. 그 다음 각 구동부의 출력 축 엔코더의 I상을 이용하여

    로봇의 초기 위치로 로봇을 구동 시키게 되는데 이때 사용하는

    메시지는 Output_I_State이다. Walking_Position은 로봇의 보행 초기

    위치로 움직여 주기 위해 주 제어기에서 하부 제어기로 보내는

    메시지이며 Jog_Move는 로봇이 초기 상태의 불안정성을 교정하

    기 위해 출력 엔코더 값으로 1 pulse에 해당하는 값을 이동하게끔

    할 때 사용하는 메시지이다.

  • -35-

    표 2.5 ISHURO 의 메시지 정의 Table 2.5 Message definition of ISHURO

    초기화 상태

    Message Name Message

    Module_State 모듈 상태 점검 메시지

    Output_I_State 출력축 엔코더 I-상 검출 메시지

    Walking_Position 보행 초기 위치 이동 메시지

    Jog_Move 1 펄스 이동 메시지

    보행 상태

    Message Name Message

    Global_Sync 모터 구동 메시지

    Angle_Data 보행 궤적 데이터 메시지

    Encoder_Data 엔코더 데이터 메시지

    Sensor_Data (FSR, Gyro) 센서 데이터 메시지

    실시간 상태

    Message Name Message

    System_Time 시스템 시간 동기화

    Global_Cmd 주제어기 명령 전송

    Local_Cmd 하부 제어기

    로봇의 보행을 지시하게 되면 로봇에는 많은 데이터들이 오

    고 가게 되는데 이때 전송되는 데이터는 크게 4개의 데이터로

    나뉠 수 있다. Global_Sync 메시지는 로봇의 동기화 과정 속에서

  • -36-

    동시에 로봇의 관절을 움직이게끔 하는 보행 시작을 알리는 메

    시지이고, Angle_Data는 로봇이 움직이게 될 때 각 관절이 움직여

    야 할 값을 전송하는 메시지이다. 그리고 Encoder_Data는 로봇이

    보행 중에 있을 때, 각 관절의 상태를 주 제어기에 전달하기 위

    한 메시지이며, 마지막으로 Sensor_Data 메시지는 로봇 각 부분에

    붙어 있는 다양한 센서의 정보를 주 제어기에 보내기 위해 정의

    된 메시지이다. 로봇을 실시간으로 구동 시키기 위해 각 메시지

    의 우선순위는 Global_Sync, Angle_Data, Encoder_Data, Sensor_Data

    순으로 결정하였다.

    마지막으로 로봇의 실시간성을 보장하기 위해 3개의 메시지

    를 정의하였다. 첫번째로 System_Time은 로봇을 실시간으로 구동

    함에 있어 각 하부 제어기에서 발생하는 시간적인 오차에 의해

    발생할 수 있는 상황에 대비할 수 있도록 각 모듈에 존재하는

    타이머에 대해 일정 시간마다 이를 동기화 시키는 메시지이다.

    이와 더불어 로봇에 기본적인 명령 이외에 다른 여하의 명령을

    처리할 수 있도록 Global_Cmd 와 Local_Cmd를 둬서 비 정기적인

    요인에 대해 서로간의 정보를 주고 받을 수 있도록 하였다. 이에

    이러한 메시지 정의를 이용함으로써 분산처리 하에 로봇을 구동

    시킬 수 있게 된다.

  • -37-

    3. 휴머노이드 로봇의 제어기 구성

    휴머노이드 로봇 ISHURO의 움직임을 결정하는 제어 시스템

    을 구축함에 있어서 시스템의 구조적인 상황 하에 하부 제어기,

    주 제어기, 명령 해석기로 분리할 수 있다. 그리고 이를 로봇의

    제어 관점으로 분류 했을 때는 관절 제어기(Joint Controller), 행동

    제어기(Motion Controller), 실시간 제어기(Real-time Controller)로 분

    류 할 수 있다. 먼저 분산 제어기의 제어 시스템 구조는 그림

    3.1과 같다. 그림 3.1에서 관절 제어기는 로봇의 하부 제어기에

    존재하며 로봇의 각 관절을 제어하고, 제어의 결과로서 나온 로

    봇의 현재 관절 위치와 각종 센서 정보를 전달하는 역할을 하며,

    이때 주 제어기와 하부 제어기 사이의 원활한 정보 전달을 위해

    모터 제어 변환기(Motor Data Translator)를 구현하였다. 그리고 행

    동제어기와 실시간 제어기는 주 제어기 내에 존재하며 실시간

    제어기의 중재 하에 행동 제어에 필요한 ZMP 해석과 제어, 동역

    학 해석, 궤적 생성을 통한 각 다리의 위치 생성을 수행한다. 이

    때 이러한 일련의 과정을 실시간 제어기가 관장하며 실시간 제

    어기는 행동 제어기에서 생성되는 로봇 생성 에 관련된 정보 이

    외에 로봇에 존재하는 비전 정보를 이용한 장애물 인식, 사용자

    가 요구하는 상황을 받아서 이를 해석하는 해석기의 정보를 처

    리하는 역할을 수행한다. 그림 3.2는 그림 3.1의 제안된 분산제어

    기 하에서 로봇의 보행에 필요한 데이터 생성과 이렇게 생성된

    데이터를 기초로 하여 로봇 보행에 적용된 데이터의 흐름도이다.

    이제 분산처리 제어기 하에서의 각각의 하부 제어기에 대해 설

    명한다.

  • -38-

    그림

    3.1

    ISH

    UR

    O의

    분산

    제어기

    구조

    Fi

    g. 3

    .1 D

    istr

    ibut

    ed C

    ontr

    olle

    r of

    ISH

    UR

    O

  • -39-

    그림

    3.2

    ISH

    UR

    O의

    데이터

    흐름도

    Fi

    g. 3

    .2 D

    ata

    flow

    char

    t of I

    SHU

    RO

  • -40-

    3.1 관절 제어

    휴머노이드 로봇의 최적의 안정적인 보행을 수행하기 위해

    서는 로봇의 관절에 대한 제어가 안정적으로 수행되어야 한다.

    이러한 안정된 모터 시스템을 구현하기 위해 본 연구자는 유전

    알고리즘과 퍼지 제어기를 이용하여 하부 관절 제어 시스템을

    안정적으로 구축하였다. 이를 위해 먼저 적용된 유전알고리즘에

    대해 설명하며, 이렇게 새로 제안된 유전알고리즘을 기초로 보다

    정확한 제어를 구성하기 위한 각 모터에 대한 시스템 식별을 수

    행한다. 이러한 과정을 통해 얻어진 정확한 정보를 기초고 유전

    알고리즘하의 비선형제어기인 퍼지-슬라이딩 모드 제어기를 이용

    하여 비선형 시스템하에서의 각 관절의 최적화 된 제어기를 제

    안한다.

    3.1.1 유전 알고리즘

    유전 알고리즘(Genetic Algorithm)은 자연세계의 진화 현상에

    기초한 계산모델로서 1975년에 개발된 전역적인 최적화 알고리

    즘이다[36]. 유전 알고리즘은 병렬적이고 전역적인 탐색 알고리

    즘이며, 주어진 다양한 환경 속에서 적응하여 적합한 것만이 살

    아남는다는 적자생존의 이론을 기본 개념으로 한다.

    유전알고리즘은 풀고자 하는 문제에 대한 가능한 해들을 정

    해진 형태의 자료 구조로 표현한 다음 이들을 점차적으로 변형

    시킴으로써 점점 좋은 해들을 만들어낸다. 다시 말하면 미지 함

    수를 최적화하는 해를 찾는 모의 진화형의 탐색 알고리즘이다.

    유전 알고리즘의 구성은 그림 3.3에 나타나 있다.

  • -41-

    Start

    Generate Initial Value

    Max Generation?

    Generate Optimal Value from max fitness value

    End

    No

    Yes

    Calculate from fitness function

    Regeneration

    Crossover

    Mutation

    Existing fitness data < Present fitness data

    Present max fitness data search

    Max data = Present data

    Yes

    No

    그림 3.3 유전 알고리즘의 블록 다이어그램 Fig. 3.3 Block diagram of genetic algorithm

    유전 알고리즘은 크게 이진 유전 알고리즘(Binary-coded

    genetic algorithm)과 십진 유전 알고리즘(Decimal-coded genetic

    algorithm)으로 크게 나뉘어진다.

  • -42-

    이진 유전 알고리즘[37]은 유전 알고리즘을 적용했을 때 보

    다 손쉽게 교배(Crossover)와 돌연변이(Mutation)에 의한 재생산

    (Regeneration)이 용이한 장점을 가지고 있다. 그러나 이진 유전

    알고리즘은 시스템이 요구하는 값을 이진수로 표현하기 때문에

    필연적으로 시스템 값의 해상도로 인해 최적의 값을 구하는데

    그 만큼 많은 이진수가 필요하며 그로 인해 연산이 복잡해지는

    단점을 가지고 있다. 그림 3.4는 이진 유전알고리즘의 교배와 돌

    연변이 과정을 나타낸다.

    . . . 0 0 1 0 0 1 0 0 0 0 1 0 . . .

    . . . 1 1 1 1 0 1

    Parent1

    Parent2 0 1 1 1 1 0 . . .

    Crossover

    Mutation

    . . . 0 0 1 0 0 1

    0 0 0 0 1 0 . . . . . . 1 1 1 1 0 1

    Child1

    Child2

    0 1 1 1 1 0 . . .

    . . . 0 0 0 0 0 1

    0 1 0 0 1 0 . . . . . . 1 1 1 1 1 1

    Child1

    Child2

    0 1 1 1 1 0 . . .

    그림 3.4 이진 유전알고리즘의 교배와 돌연변이 Fig. 3.4 Crossover and mutation of binary-coded genetic algorithm

    십진수를 이용한 유전 알고리즘[38]은 이에 비해 실수 자체

    를 이용하기 때문에 보다 정확한 값을 추종할 수 있는 장점을

    지니고 있으나 이진수를 이용한 유전 알고리즘에 비해 교배와

    돌연변이를 찾기 위한 방법이 쉽게 적용되지 않기 때문에 이에

    대한 많은 알고리즘이 제안되었고 대표적인 십진 유전알고리즘

    으로는 십진-철면(decimal-convex) 유전 알고리즘이 있다. 이 십

  • -43-

    진-철면 유전 알고리즘은 교배를 수행할 때 교배 대상이 되는 부

    모(Parents)의 위치 내부에서 임의의 값을 찾고, 돌연변이는 돌연

    변이 되고자 하는 대상에 대해 일정 반경 내에서 임의의 값을

    결정하는 방식을 취한다. 그림 3.5는 십진-철면 유전 알고리즘의

    교배와 돌연변이를 나타내며 식(3.1)과 (3.2)는 십진-철면 유전 알

    고리즘의 교배와 돌연변이에 관한 식이다.

    Crossover Boundary

    X

    Y

    X

    YMutation Boundary

    Crossover Mutation

    ),( 111 yxSP

    ),( '1'1 yxSC

    ),( 222 yxSP

    ),( '1'1 yxSC

    ),( '1'1

    'mmC yxS

    그림 3.5 십진-철면 유전 알고리즘의 교배와 돌연변이 Fig. 3.5 Crossover and Mutation of decimal-convex genetic algorithm

    142'2231

    '1

    122'2211

    '1

    )1(,)1(

    )1(,)1(

    yyyyyy

    xxxxxx

    λλ

    λλ

    −+=−+=

    −+=−+= (3.1)

    mM

    mM

    dyy

    dxx

    λα

    λα

    ××+=

    ××+=

    )sgn(

    )sgn('1

    '1

    '1

    '1

    ⎩⎨⎧

  • -44-

    변이 결과이다. 이 때, ix 와 iy 는 부모의 데이터 정보를 나타내

    며, 'ix 와 'iy 는 교배 결과를 나타내며,

    'iMx 와

    'iMy 는 돌연변이

    의 결과를 나타내고, α 와 nλ 는 ‘0’과 ‘1’ 사이의 임의의 수를 나

    타낸다. 십진-철면 유전 알고리즘은 십진 유전 알고리즘의 장점

    인 임의의 한계 없이 원하는 정보를 전역적으로 찾을 수 있다는

    장점을 가지고 있다. 그러나 십진-철면 방법을 이용할 경우 일정

    수 이상으로 세대수가 지나게 되면 유전 알고리즘의 최적 값은

    일정 값으로 수렴하게 되는데 이때 수렴된 값은 최적의 값이라

    고 하기에는 한계가 있다. 이는 교배를 수행할 때 부모들의 정보

    가 서로 많이 떨어져 있기 때문에 데이터를 검증하기 위한 전역

    성을 확보할 수 있는 대신에 현 최적의 정보 근처에서 더 좋은

    데이터를 찾는데 한계를 지니게 된다. 또한 돌연변이를 수행할

    때에도 마찬가지로 반경이 일정 이상으로 커지기 때문에 이로

    인한 최적의 데이터를 보다 세밀하게 찾는데 한계를 가지게 된

    다. 이에 본 논문에서는 이러한 데이터를 찾는 정밀성을 보다 확

    보할 수 있게 하기 위한 유전 알고리즘을 제안하고 이를 이용하

    여 모터 시스템에서 필요로 하는 각각의 정보를 유추하였다.

    본 논문에서 제안한 유전 알고리즘[39]은 십진 유전 알고리

    즘 중에서 십진-철면 유전 알고리즘을 기본 알고리즘으로 한다.

    십진 유전알고리즘의 장점을 기본으로 하여 십진-철면 알고리즘

    의 단점을 보안하기 위해 제안된 알고리즘에서는 시그모이드

    (sigmoid)함수를 이용하였다. 식 (3.3)은 제안된 시그모이드 함수

    이고 이때의 결과는 그림 3.6에 나타나 있다.

    ⎟⎠⎞

    ⎜⎝⎛

    +−= +− 5101

    11)( tetδ t : generation ratio (3.3)

  • -45-

    0.0 0.2 0.4 0.6 0.8 1.00.0

    0.2

    0.4

    0.6

    0.8

    1.0

    t

    Sigmoid Function

    δ(t)

    그림 3.6 Sigmoid 함수 Fig. 3.6 Sigmoid Function

    식 (3.3)과 그림 3.6로부터 제안된 변형 시그모이드 함수는

    횟수가 증가할수록 함수 결과가 ‘0’에 근접함을 알 수 있다. 이

    로부터 만일 유전 알고리즘의 세대수가 증가함에 따라 이에 대

    한 교배와 돌연변이 범위의 폭을 줄일 수 있는 장점을 가진다.

    식(3.4)와 (3.5)는 제안된 유전 알고리즘을 이용했을 때의 교배와

    돌연변이를 나타낸다.

    142'2231

    '1

    122'2211

    '1

    )1()(,)1()(

    )1()(,)1()(

    ytyxytyy

    xtxxxtxx

    λδλδ

    λδλδ

    −×+=−×+=

    −×+=−×+=

    (3.4)

    mM

    mM

    dtyy

    dtxx

    λαδ

    λαδ

    ×××+=

    ×××+=

    )sgn()(

    )sgn()('1

    '1

    '1

    '1 (3.5)

  • -46-

    여기에서 ix 와 iy 는 부모의 데이터 정보를 나타내며, 'ix

    와 'iy 는 교배 결과를 나타내며, 'iMx 와

    'iMy 는 돌연변이의 결과

    를 나타내고, α 와 nλ 는 ‘0’과 ‘1’ 사이의 임의의 수를 나타낸다.

    그리고 )(tδ 는 시그모이드 함수이고, 이때 t는 전체 세대 수에

    대한 현 세대수의 비로 ‘0’과 ‘1’사이의 값이다. 식 (3.4)는 제안

    된 유전 알고리즘의 교배를 나타낸다. 식(3.2)와 비교하여 볼 때

    )(tδ 에 의해 세대수가 증가함에 따라 교배에 의해 이동되는 값

    의 위치의 변화가 줄어듦을 알 수 있다. 이와 마찬가지로 식(3.5)

    는 제안된 알고리즘의 돌연변이를 나타내는데 이 또한 세대수가

    증가할수록 )(tδ 에 의해 돌연변이 반경이 줄어듦을 알 수 있다.

    이와 같은 시그모이드 함수의 특성을 이용함으로써 세대수가 증

    가함에 따라 현재의 최적값 주위에서 보다 최적의 정보를 유출

    할 수 있게끔 하였다. 그림 3.7과 그림 3.8은 제안된 알고리즘에

    의한 생성된 세대 수에 따른 평균적합도 값과 최대 적합도 값을

    나타낸다.

    0 50 100 150 200 250 3000

    1

    2

    3

    4

    5

    6

    7

    Fitn

    ess

    Valu

    e

    Generation No.

    BGA DGA AGA

    Comparison average fitness value

    그림 3.7 각 유전 알고리즘의 평균 적합도 값의 비교

    Fig. 3.7 Comparison of average fitness values of each genetic algorithm

  • -47-

    0 50 100 150 200 250 3000

    1

    2

    3

    4

    5

    6

    7

    BGA DGA AGA

    Generation No.

    Fitn

    ess

    Valu

    e

    Comparison maximum fitness value

    그림 3.8 각 유전알고리즘에 대한 최대 적합도 값의 비교

    Fig. 3.8 Comparison of maximum fitness values of each genetic algorithm

    그림 3.7와 그림 3.8으로부터 세대수가 증가함에 따라 제안

    된 알고리즘(AGA: Advanced Genetic Algorithm)의 성능이 다른 여

    하의 유전알고리즘(BGA: Binary-coded genetic algorithm, DGA:

    Decimal-coded genetic algorithm)보다 좋은 성능을 보임을 알 수 있

    다. 이에 본 논문에서는 유전 알고리즘이 필요로 하는 부분에서

    이 제안된 유전알고리즘을 적용하여 최적의 해를 유추한다.

    3.1.2 시스템 식별

    현재, 시스템을 정밀하게 제어하기 위한 다양한 제어 기법들

    이 소개되고 있다. 그러나 이렇게 다양한 제어 기법들을 시뮬레

    이션 상에서 정확하게 구현하여도 시뮬레이션과 실제 시스템 간

    의 오차로 인해 실제 시스템에 적용하기에는 무리가 따르기 마

    련이다. 본 논문에서는 모터 시스템에 대해 이러한 실제 시뮬레

    이션과 실제 시스템간의 오차를 줄이기 위해 시스템 식별

  • -48-

    (identification)을 수행하였다.

    시스템 식별방법은 크게 수학적인 접근 방법과 지능적인 접

    근 방법으로 크게 나눌 수 있다. 수학적인 접근 방법은 시스템에

    서 발생하는 시스템의 주파수 특성을 파악하고 이에 따른 시스

    템 상황을 유추해 내는 기법이다. 그리고 지능적인 접근 방법은

    퍼지 알고리즘, 신경망 알고리즘, 그리고 유전 알고리즘 등을 이

    용하여 시스템의 미분학적인 접근 없이 해를 구할 수 있다.

    본 논문에서는 로봇 관절에 주요하게 사용되는 두 개의 모

    터인 Re-max 24, A-max 26과 주위 시스템 등에 대한 정확한 식별

    을 통해 제어기를 개발한 후 실제 시스템에 적용할 때 발생할

    수 있는 조정 과정을 생략할 수 있도록 하였다. 표 3.1은 Re-max

    24와 A-max 26모터의 하드웨어 사양이다.

    표 3.1로부터 모터에 대한 전달함수를 계산 할 수 있으며,

    이때 모터에 대한 전달함수는 식(3.6)을 통해 구할 수 있다.

    ))(()()(

    2baeffaeffaeffaaeff

    a

    a

    m

    KKfRsJRfLLJssK

    sVs

    ++++=

    θ(3.6)

    여기서 mθ , aV , aL , aR , aK , bK , effJ , efff 는 각각 모터

    출력 단에서의 위치, 모터에 인가되는 전압, 모터의 인덕턴스, 모

    터내의 저항, 모터 토크 상수, 역기전력 상수, 모터 축에 의한 질

    량 관성 모멘트, 그리고 모터 축에 존재하는 마찰계수를 나타낸

    다. 이렇게 정의되어 있는 모터의 일반적인 수학적 모델을 표

    3.1에 의해 존재하는 데이터를 적용하면 Re-max 24모터는 식(3.7)

    과 같은 전달함수를 구할 수 있고, A-max 26모터는 식 (3.8)과 같

    은 전달함수를 얻을 수 있다.

  • -49-

    표 3.1 Re-max 24와 A-max 26의 하드웨어 사양 Table 3.1 Hardware specification of Re-max 24 and A-max 26

    Motor Data Unit A-max26 Re-max24

    Assigned Power rating W 11 11

    Nominal voltage Volt 18.0 18.0

    No load speed rpm 7570 9410

    Stall torque mNm 73.3 54.7

    Speed/torque gradient rpm/mNm 105 174

    No load current mA 34 27

    Starting current mA 3300 3030

    Terminal resistance Ohm 5.46 5.93

    Max. permissible speed rpm 10400 9800

    Max. continuous current mA 878 677

    Max. continuous torque mNm 19.5 12.2

    Max. power output at nominal voltage mW 14000 13100

    Max. efficiency % 79 81

    Torque constant mNm/A 22.3 18

    Speed constant rpm/V 429 529

    Mechanical time constant ms 14 8

    Rotor inertia gcm2 12.7 4.11

    Terminal inductance mH 0.53 0.36

    Thermal resistance housing-ambient K/W 13 20

    Thermal resistance rotor-housing K/W 3.2 6

    Thermal time constant winding s 12 10

  • -50-

    )1.56546743.16484(38.176401

    )()(

    2 ++=

    ssssVs

    a

    mθ (3.7)

    )2.16793923.10307(2.506403

    )()(

    2 ++=

    ssssVs

    a

    mθ (3.8)

    식(3.7)과 식(3.8)에 의해 생성된 전달함수에 의해 실제로 시

    뮬레이션 한 결과는 실제 모터에 의해 생성되는 결과와 차이를

    가지게 된다. 이를 해결하기 위해서 본 논문에서는 유전알고리즘

    을 이용하여 모터의 식별을 수행하였다. 표 3.2는 모터 식별을

    수행하였을 때 유전 알고리즘에 적용된 각 요소의