저 시-비 리-동 조건 경허락 20 한민
는 아래 조건 르는 경 에 한하여 게
l 저 물 복제 포 전송 전시 공연 송할 수 습니다
l 차적 저 물 성할 수 습니다
다 과 같 조건 라야 합니다
l 하는 저 물 나 포 경 저 물에 적 허락조건 확하게 나타내어야 합니다
l 저 터 허가를 러한 조건들 적 지 않습니다
저 에 른 리는 내 에 하여 향 지 않습니다
것 허락규약(Legal Code) 해하 쉽게 약한 것 니다
Disclaimer
저 시 하는 원저 를 시하여야 합니다
비 리 하는 저 물 리 적 할 수 없습니다
동 조건 경허락 하가 저 물 개 형 또는 가공했 경에는 저 물과 동 한 허락조건하에서만 포할 수 습니다
工學碩士學位 請求論文
스테레오 비젼을 이용한 6족 로봇의
국소 맵 빌딩 및 걸음새 구현
Development of Stereo Vision Based Local Map
Building and Walking Pattern for Hexapod Robot
2009 年 2 月
仁荷大學校 大學院
電氣工學部(制御 및 시스템 專攻)
金 起 佑
工學碩士學位 請求論文
스테레오 비젼을 이용한 6족 로봇의
국소 맵 빌딩 및 걸음새 구현
Development of Stereo Vision Based Local Map
Building and Walking Pattern for Hexapod Robot
2009 年 2 月
指導敎授 金 振 桀
이 論文을 碩士學位 論文으로 提出함
仁荷大學校 大學院
電氣工學科(制御 및 시스템 專攻)
金 起 佑
이 論文을 金起佑 의 碩士學位 論文으로 認准함
2009年 2月
主審 권 오 규
副審 김 진 걸
委員 이 영 삼
i
목 차
목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ
그림목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ
표 목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ
국문요약 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅵ
Abstract helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅶ
1 서론 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
11 연구배경 및 목적 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
12 연구내용 및 논문 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2
2 스테레오 시각 시스템 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
21 스테레오 영상시스템 기구설계helliphelliphelliphelliphelliphelliphelliphelliphellip 4
22 카메라 보정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
23 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
231 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
232 외부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
24 스테레오 카메라helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
241 영상의 평행화 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
242 카메라 보정과 평행화 결과helliphelliphelliphelliphelliphelliphelliphelliphellip 14
3 6족 로봇의 구조 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
31 기구적 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
32 제어기 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21
33 로봇 구동 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
ii
331 로봇의 기구학적 해석helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
331 모션 데이터 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24
4 변위지도 생성과 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
41 전처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
42 이미지 상관관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
43 후처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30
44 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 31
5 로봇의 경로생성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
51 포텐셜 필드를 사용한 경로계획 방법helliphelliphelliphelliphelliphelliphellip 36
511 포텐셜 필드 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
512 포텐셜 필드 방법을 사용한 경로생성helliphelliphelliphellip 39
52 장애물을 넘을 수 있는 경우의 경로계획helliphelliphelliphelliphellip 42
53 두 가지를 혼합한 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47
6 실험 결과 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 49
61 포텐셜필드 방법을 사용한 경로추종 실험helliphelliphelliphelliphellip 49
62 로봇의 역기구학을 이용한 장애물 넘기 동작 실험hellip 55
63 포텐셜필드 방법과 넘기 동작의 혼합방법helliphelliphelliphelliphellip 61
7 결론 및 향후 과제 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 66
참고 문헌 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 68
부록 A ISHURO의 역기구학 해석 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 72
부록 B 모션 제어기 명령어 테이블 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 75
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
工學碩士學位 請求論文
스테레오 비젼을 이용한 6족 로봇의
국소 맵 빌딩 및 걸음새 구현
Development of Stereo Vision Based Local Map
Building and Walking Pattern for Hexapod Robot
2009 年 2 月
仁荷大學校 大學院
電氣工學部(制御 및 시스템 專攻)
金 起 佑
工學碩士學位 請求論文
스테레오 비젼을 이용한 6족 로봇의
국소 맵 빌딩 및 걸음새 구현
Development of Stereo Vision Based Local Map
Building and Walking Pattern for Hexapod Robot
2009 年 2 月
指導敎授 金 振 桀
이 論文을 碩士學位 論文으로 提出함
仁荷大學校 大學院
電氣工學科(制御 및 시스템 專攻)
金 起 佑
이 論文을 金起佑 의 碩士學位 論文으로 認准함
2009年 2月
主審 권 오 규
副審 김 진 걸
委員 이 영 삼
i
목 차
목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ
그림목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ
표 목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ
국문요약 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅵ
Abstract helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅶ
1 서론 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
11 연구배경 및 목적 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
12 연구내용 및 논문 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2
2 스테레오 시각 시스템 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
21 스테레오 영상시스템 기구설계helliphelliphelliphelliphelliphelliphelliphelliphellip 4
22 카메라 보정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
23 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
231 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
232 외부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
24 스테레오 카메라helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
241 영상의 평행화 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
242 카메라 보정과 평행화 결과helliphelliphelliphelliphelliphelliphelliphelliphellip 14
3 6족 로봇의 구조 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
31 기구적 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
32 제어기 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21
33 로봇 구동 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
ii
331 로봇의 기구학적 해석helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
331 모션 데이터 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24
4 변위지도 생성과 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
41 전처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
42 이미지 상관관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
43 후처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30
44 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 31
5 로봇의 경로생성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
51 포텐셜 필드를 사용한 경로계획 방법helliphelliphelliphelliphelliphelliphellip 36
511 포텐셜 필드 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
512 포텐셜 필드 방법을 사용한 경로생성helliphelliphelliphellip 39
52 장애물을 넘을 수 있는 경우의 경로계획helliphelliphelliphelliphellip 42
53 두 가지를 혼합한 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47
6 실험 결과 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 49
61 포텐셜필드 방법을 사용한 경로추종 실험helliphelliphelliphelliphellip 49
62 로봇의 역기구학을 이용한 장애물 넘기 동작 실험hellip 55
63 포텐셜필드 방법과 넘기 동작의 혼합방법helliphelliphelliphelliphellip 61
7 결론 및 향후 과제 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 66
참고 문헌 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 68
부록 A ISHURO의 역기구학 해석 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 72
부록 B 모션 제어기 명령어 테이블 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 75
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
工學碩士學位 請求論文
스테레오 비젼을 이용한 6족 로봇의
국소 맵 빌딩 및 걸음새 구현
Development of Stereo Vision Based Local Map
Building and Walking Pattern for Hexapod Robot
2009 年 2 月
指導敎授 金 振 桀
이 論文을 碩士學位 論文으로 提出함
仁荷大學校 大學院
電氣工學科(制御 및 시스템 專攻)
金 起 佑
이 論文을 金起佑 의 碩士學位 論文으로 認准함
2009年 2月
主審 권 오 규
副審 김 진 걸
委員 이 영 삼
i
목 차
목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ
그림목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ
표 목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ
국문요약 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅵ
Abstract helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅶ
1 서론 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
11 연구배경 및 목적 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
12 연구내용 및 논문 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2
2 스테레오 시각 시스템 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
21 스테레오 영상시스템 기구설계helliphelliphelliphelliphelliphelliphelliphelliphellip 4
22 카메라 보정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
23 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
231 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
232 외부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
24 스테레오 카메라helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
241 영상의 평행화 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
242 카메라 보정과 평행화 결과helliphelliphelliphelliphelliphelliphelliphelliphellip 14
3 6족 로봇의 구조 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
31 기구적 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
32 제어기 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21
33 로봇 구동 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
ii
331 로봇의 기구학적 해석helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
331 모션 데이터 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24
4 변위지도 생성과 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
41 전처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
42 이미지 상관관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
43 후처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30
44 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 31
5 로봇의 경로생성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
51 포텐셜 필드를 사용한 경로계획 방법helliphelliphelliphelliphelliphelliphellip 36
511 포텐셜 필드 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
512 포텐셜 필드 방법을 사용한 경로생성helliphelliphelliphellip 39
52 장애물을 넘을 수 있는 경우의 경로계획helliphelliphelliphelliphellip 42
53 두 가지를 혼합한 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47
6 실험 결과 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 49
61 포텐셜필드 방법을 사용한 경로추종 실험helliphelliphelliphelliphellip 49
62 로봇의 역기구학을 이용한 장애물 넘기 동작 실험hellip 55
63 포텐셜필드 방법과 넘기 동작의 혼합방법helliphelliphelliphelliphellip 61
7 결론 및 향후 과제 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 66
참고 문헌 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 68
부록 A ISHURO의 역기구학 해석 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 72
부록 B 모션 제어기 명령어 테이블 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 75
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
이 論文을 金起佑 의 碩士學位 論文으로 認准함
2009年 2月
主審 권 오 규
副審 김 진 걸
委員 이 영 삼
i
목 차
목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ
그림목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ
표 목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ
국문요약 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅵ
Abstract helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅶ
1 서론 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
11 연구배경 및 목적 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
12 연구내용 및 논문 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2
2 스테레오 시각 시스템 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
21 스테레오 영상시스템 기구설계helliphelliphelliphelliphelliphelliphelliphelliphellip 4
22 카메라 보정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
23 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
231 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
232 외부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
24 스테레오 카메라helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
241 영상의 평행화 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
242 카메라 보정과 평행화 결과helliphelliphelliphelliphelliphelliphelliphelliphellip 14
3 6족 로봇의 구조 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
31 기구적 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
32 제어기 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21
33 로봇 구동 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
ii
331 로봇의 기구학적 해석helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
331 모션 데이터 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24
4 변위지도 생성과 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
41 전처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
42 이미지 상관관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
43 후처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30
44 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 31
5 로봇의 경로생성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
51 포텐셜 필드를 사용한 경로계획 방법helliphelliphelliphelliphelliphelliphellip 36
511 포텐셜 필드 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
512 포텐셜 필드 방법을 사용한 경로생성helliphelliphelliphellip 39
52 장애물을 넘을 수 있는 경우의 경로계획helliphelliphelliphelliphellip 42
53 두 가지를 혼합한 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47
6 실험 결과 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 49
61 포텐셜필드 방법을 사용한 경로추종 실험helliphelliphelliphelliphellip 49
62 로봇의 역기구학을 이용한 장애물 넘기 동작 실험hellip 55
63 포텐셜필드 방법과 넘기 동작의 혼합방법helliphelliphelliphelliphellip 61
7 결론 및 향후 과제 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 66
참고 문헌 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 68
부록 A ISHURO의 역기구학 해석 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 72
부록 B 모션 제어기 명령어 테이블 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 75
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
i
목 차
목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ
그림목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ
표 목차 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ
국문요약 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅵ
Abstract helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅶ
1 서론 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
11 연구배경 및 목적 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1
12 연구내용 및 논문 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2
2 스테레오 시각 시스템 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
21 스테레오 영상시스템 기구설계helliphelliphelliphelliphelliphelliphelliphelliphellip 4
22 카메라 보정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
23 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5
231 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
232 외부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
24 스테레오 카메라helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
241 영상의 평행화 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12
242 카메라 보정과 평행화 결과helliphelliphelliphelliphelliphelliphelliphelliphellip 14
3 6족 로봇의 구조 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
31 기구적 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17
32 제어기 구성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21
33 로봇 구동 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
ii
331 로봇의 기구학적 해석helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
331 모션 데이터 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24
4 변위지도 생성과 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
41 전처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
42 이미지 상관관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
43 후처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30
44 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 31
5 로봇의 경로생성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
51 포텐셜 필드를 사용한 경로계획 방법helliphelliphelliphelliphelliphelliphellip 36
511 포텐셜 필드 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
512 포텐셜 필드 방법을 사용한 경로생성helliphelliphelliphellip 39
52 장애물을 넘을 수 있는 경우의 경로계획helliphelliphelliphelliphellip 42
53 두 가지를 혼합한 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47
6 실험 결과 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 49
61 포텐셜필드 방법을 사용한 경로추종 실험helliphelliphelliphelliphellip 49
62 로봇의 역기구학을 이용한 장애물 넘기 동작 실험hellip 55
63 포텐셜필드 방법과 넘기 동작의 혼합방법helliphelliphelliphelliphellip 61
7 결론 및 향후 과제 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 66
참고 문헌 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 68
부록 A ISHURO의 역기구학 해석 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 72
부록 B 모션 제어기 명령어 테이블 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 75
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
ii
331 로봇의 기구학적 해석helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
331 모션 데이터 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24
4 변위지도 생성과 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
41 전처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26
42 이미지 상관관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
43 후처리 과정helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30
44 장애물 검출helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 31
5 로봇의 경로생성helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
51 포텐셜 필드를 사용한 경로계획 방법helliphelliphelliphelliphelliphelliphellip 36
511 포텐셜 필드 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
512 포텐셜 필드 방법을 사용한 경로생성helliphelliphelliphellip 39
52 장애물을 넘을 수 있는 경우의 경로계획helliphelliphelliphelliphellip 42
53 두 가지를 혼합한 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47
6 실험 결과 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 49
61 포텐셜필드 방법을 사용한 경로추종 실험helliphelliphelliphelliphellip 49
62 로봇의 역기구학을 이용한 장애물 넘기 동작 실험hellip 55
63 포텐셜필드 방법과 넘기 동작의 혼합방법helliphelliphelliphelliphellip 61
7 결론 및 향후 과제 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 66
참고 문헌 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 68
부록 A ISHURO의 역기구학 해석 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 72
부록 B 모션 제어기 명령어 테이블 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 75
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
iii
그림 목차
그림 211 스테레오 영상처리 장치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 4
그림 231 영상과 실 세계의 관계helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6
그림 2311 카메라 렌즈의 왜곡helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8
그림 2321 에피폴라 기하학helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14
그림 2421 카메라 대응점 추출과 정합helliphelliphelliphelliphelliphelliphellip helliphellip 15
그림 311 로봇의 3차원 모델helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18
그림 312 로봇 다리의 세부 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 19
그림 313 변형 가능한 6족 로봇 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
그림 321 로봇 시스템 구조helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22
그림 3311 로봇의 좌표계 시스템helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
그림 3321모션 데이터 구조와 전송 알고리즘helliphelliphelliphelliphelliphellip 25
그림 411 교정된 이미지와 변위지도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28
그림 412 OpenGL기반의 변위지도 3D재구성 helliphelliphelliphelliphelliphellip 28
그림 421 대응점 상관관계 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29
그림 441 변위지도의 명도 기울기 차이helliphelliphelliphelliphelliphelliphelliphelliphellip 31
그림 442 제안된 알고리즘으로 구한 장애물helliphelliphelliphelliphelliphelliphellip 32
그림 443 라벨링된 장애물들helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 34
그림 51 원으로 근사화된 장애물helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35
그림 52 경로생성 방법 선택과정 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 36
그림 5111 포텐셜 필드 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
iv
그림 5121 포텐셜 필드 방법을 이용한 경로생성과 장애물
표현helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39
그림 5121 경유점간의 거리와 각도 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
그림 5122 주행 시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 41
그림 521 직선과 원의 교점helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 42
그림 522 일반보행시뮬레이션 결과helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
그림 523 장애물을 통과 보행시뮬레이션 결과helliphelliphelliphelliphelliphellip 47
그림 53 혼합 방법helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 48
그림 611 포텐셜필드 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphellip 50
그림 612 포텐셜필드 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphellip 50
그림 613 포텐셜필드 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphellip 51
그림 614 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53
그림 614 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 55
그림 621 통과 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 622 통과 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 56
그림 623 통과 방법을 이용한 실험3helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57
그림 624 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 59
그림 624 통과방법을 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 61
그림 631 혼합 방법을 이용한 실험1helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 632 혼합 방법을 이용한 실험2helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62
그림 634 장애물의 위치helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 64
그림 634 포텐셜필드를 사용한 궤적helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 65
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
v
표 목차
표 2311 내부변수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 7
표 2312 외부변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 10
표 2421 계산된 카메라 변수 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 16
표 311 로봇의 기구학적 구조에 따른 특성 비교helliphelliphelliphelliphellip 17
표 312로봇 시스템 외형 치수helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20
표 3311 D-H변수 값helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23
표 521 로봇발의 끝점 좌표helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 44
표 521 로봇관절의 각도helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 46
표 611 첫 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 52
표 621 두 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 58
표 631 세 번째 실험의 실제 측정된 장애물 좌표helliphelliphelliphellip 63
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
vi
요 약
본 논문에서는 스테레오 카메라를 이용하여 장애물을
감지하고 목적지까지의 경로를 생성하는 6족 로봇의 개발을
서술 하고 있다 실험에 사용된 6족 로봇은 보행과 주행이
동시에 가능한 타입으로 설계가 되어있어 평상시에는 주행으로
동작을 하나 장애물을 만났을 경우 다리 관절을 이용하여 이를
넘을 수 있다 두 대의 카메라로 찍은 두 이미지의 상관관계를
명암도 영상으로 나타낸 것을 Disparity map이라고 하며 이를
기반으로 로봇에서부터 장애물까지의 거리를 산출할 수 있다
작성된 Disparity map으로부터 장애물의 정보를 얻어와
궤적생성을 할 수 있으며 Potential field 알고리즘을 사용하여
경로를 생성을 하였다 OpenGL기반의 시뮬레이터를 이용하여
경로생성 시뮬레이션을 선행하였으며 실제주행과 비교하여 이를
검증하였다
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
vii
ABSTRACT
In this thesis using a stereo camera to detect obstacles and
describes development a robot that generate the path to
destination The hexapod robot in the experiment is able to
walking and driving simultaneously The hexapod robot
operates driving mode normally If the hexapod robot met
obstacles the robot can overcome obstacle using itrsquos legs
The correlation between two images taken with stereo
camera represents intensity image is said to be a disparity
map Using the disparity map the robot can calculate the
distance between robot and obstacle The obstacles
information is figured out from the disparity map and the
potential field algorithm to create the path The OpenGL
based simulator is used to generate the path generation and
we verify the result comparing the actual results with
simulated results
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
1
1 서 론
11 논문 배경 및 목적
로봇은 다리를 가진 보행 로봇과 바퀴 달린 모바일 로봇으로
크게 나뉠 수 있다 우리나라에서 연구중인 4족 로봇으로는
FRAMIX[1]가 있고 일본에서 연구중인 4족 로봇은 AIBO[2]
Tekken series[3] TITAN series[4] 등이 있다 위의
로봇들은 주행이 불가능한 설계로 인하여 로봇 구동에 필요한
전력수급이 원활하지 못한 것이 문제점으로 지적되고 있다 바퀴
달린 로봇들은 장애물을 회피하는 등의 원활한 이동성을 기초로
개발되어 있다 하지만 주행타입의 로봇들은 이동하는 경로에
턱과 같은 장애물을 만나게 되면 턱을 넘어가기가 어렵게
되므로 로봇의 움직임에 제약을 받게 된다
본 논문에서 제안하는 6족 로봇은 보행과 주행이 동시에
가능한 타입으로 설계되어 로봇이 진행하기 힘든 지형을 극복할
수 있고 장애물 또한 넘을 수 있는 구조로 되어있다 본 로봇은
기본적으로 6족의 다리를 가지고 있으며 외곽의 4개의 다리의
끝에 바퀴 모듈이 장착되어 있다 또한 조향이 가능하도록 바퀴
모듈 위에 모터가 장착되어 있다
지형지물을 판단하기 위한 방법으로는 초음파센서를 이용한
거리측정[5] 레이져 스캐너를 이용한 거리측정[6] 영상처리를
이용하는 방법[7] 등이 있는데 본 논문에서는 많은 정보를 얻기
위하여 스테레오 카메라를 이용하여 거리를 산출하였다 거리는
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
2
한 점에서 다른 점까지의 길이를 나타내는 것으로 인간의
양안에 의한 거리 감각과 같이 카메라를 수평으로 일정 거리의
차이를 두어 시차가 생기게 하여 장애물과의 거리를 측정 할 수
있게 된다 시차 정보를 추출하기 위하여 카메라 보정을 하여
카메라의 특성 왜곡을 보정하고 두 이미지 사이의 픽셀이
동일한 축에 있어야 하므로 영상의 평행화 과정[8]을
수행하였다 이렇게 수행된 이미지 사이의 시차를 명암도
영상으로 나타낸 시차지도[9]를 이용하여 장애물의 위치 및
크기를 검출하여 경로계획에 사용하였다 본 논문에서는
장애물을 검출하기 위한 방법을 제시하고 로봇이 장애물의
크기와 높이를 판단하여 장애물의 회피 또는 극복에 대한
방법을 제시한다
12 연구 내용 및 논문 구성
변형 가능한 6족 로봇은 스테레오 비젼을 이용하여 장애물을
회피하며 궤적을 생성한다 또한 본 로봇은 다리관절의 이동
범위를 넓혀 환경에 맞게 로봇이 형태를 변형할 수 있다
본 논문에서는 스테레오 카메라를 이용하기 위한 전처리
과정과 후처리 과정을 기술하고 있으며 장애물 검출에 관한
이론을 제시한다 또한 검출된 장애물기반으로 궤적을 생성한다
본 논문의 2장에서는 스테레오 카메라의 보정과정과 평행화
과정 그리고 후 보정 과정을 설명하였고 3장에서는 6족 로봇의
기구학 및 전체 시스템 구성에 대하여 설명을 하였다 4장에서는
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
3
스테레오 영상 시스템 구축과 장애물 검출 알고리즘을
설명하였고 5장에서는 3차원 환경 데이터를 통한 로봇의
궤적계획에 대한 설명하였다 6장에서는 로봇을 이용하여 실험한
결과에 대해서 설명하였다 7장은 결론 및 향후 과제에 대해
요약한다
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
21
스
카메
2차원
복원
같은
간격
Grey
Grab
시스
스테
스테레오 영
스테레오 비
라로부터
원 스크린으
하는 방법이
수평시차
을 조절할
y社의 IE
bber보드가
템 구축이
레오 영상
2 스테
영상 시스템
비젼이란 수
같은 물체
으로 투영
이다 그러므
차 분만 가
수 있도록
EE-1394방
가 필요 없어
이 간편해졌
시스템의 모
그림 211Fig 21
4
테레오 시
기구 설계
수평적으로
의 이미지를
영될 때 소
므로 영상 시
가지도록 설
록 제작이
방식의 디
어 기존의
졌다 그림
모델링과 실
1 스테레오1 Stereo V
시각시스템
위치한 서
를 얻어내
소멸된 물
시스템은 인
설계되었으며
되었다
디지털 카메
아날로그
211은
실제 모습을
영상 처리Vision Sys
템
서로 다른
어 3차원
물체의 거리
인간의 시각
며 카메라
카메라는
메라로 추
카메라보다
CAD를
보여준다
장치 tem
2대의
영상이
리정보를
구조와
사이의
Point-
추가적인
다 영상
이용한
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
5
22 카메라 보정
본 절에서는 카메라 보정 기본 개념을 설명한다 카메라로
부터 한 점의 삼차원 정보를 얻기 위해서는 카메라의 보정이
필수적이다 실 세계 좌표의 임의의 한 점이 이 차원 카메라
좌표계 평면에 어떻게 사상이 되는지를 표현하는데 있어서
관련된 각 카메라 변수의 값을 정해줄 필요가 있는 것이다
더구나 핀홀(Pinhole)카메라를 제외한 모든 카메라는 렌즈를
사용하므로 렌즈에 의한 영상 왜곡이 생기게 된다 그러므로
이러한 왜곡된 영상에서 얻은 삼차원 정보는 많은 오차를
포함하고 있다 이러한 오차가 제거된 실 세계와 카메라의
좌표계의 상관관계를 정의할 필요가 있다
카메라 보정 알고리즘은 크게 2가지 방법이 있는데 카메라
변수들을 바로 구하는 방법과 프로젝션 매트릭스로부터 카메라
변수를 구하는 방법이 있다 전자는 Tsai가 제안한
방법[10]이고 후자는 Faugeras에 의하여 제안된 방법[11]이다
본 논문에서는 Tsai가 제안한 방법을 사용하여 카메라의 보정을
수행한다 Tsai의 보정 방법은 내부변수(Intrinsic parameter)와
외부변수(Extrinsic parameter)을 나누어서 구한다
23 카메라 변수
카메라 보정(camera calibration)은 회전요소 이동요소
크기요소 값을 이용하여 한 영상을 변형시킴으로써 두 영상간의
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
6
부분적으로 동일한 영역이 오버랩 되도록 하는 작업을 말하며
영상처리의 전처리 과정 중 하나이다 카메라 행렬은
내부 matrix 와 외부 matrix 로 나타낼 수 있다 내부 matrix 는
focal length principal point lens distortion 등의 정보를 담고
있으며 외부 matrix 는 rotation translation projection type 의
정보를 담고 있다
카메라 변수는 불완전한 카메라 렌즈에 의해 디지털 이미지
좌표계에 사영되는 영상과 실 세계의 영상간의 관계를 정의하는
변수이다 그림 231은 실 세계와 영상간의 관계를 정의한
그림이다
그림 231 영상과 실 세계의 관계
Fig 231 Relation between image coordinate and world coordinate
231 내부 변수(Intrinsic parameter)
렌즈에 의해 이미지 좌표계에 사영되는 왜곡된 영상과 실
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
7
세계의 영상의 관계를 정의하는 변수이다 실 세계 좌표계가
설정되어 있으면 실 세계 좌표계의 한 점 TZYXP )( 와 이에
대응하는 영상 좌표계 상의 위치 )( uuu YXP 와 컴퓨터 영상좌표
)( ff YXP 를 얻는 과정을 나타낸다 표 2311은 내부변수를
나타낸 것이며 이 변수를 구하는 과정은 다음과 같다
표 2311 내부 변수
Table 2311 intrinsic parameters
)( yx CC 카메라 중심 좌표
)( yx ff 수평 수직 방향 초점거리
321 kkk 방사형 렌즈 왜곡 변수
21ττ 접선 렌즈 왜곡 변수
첫째로 기본 투영(prospective)식을 이용하여 실 세계의
좌표를 표준화(normalization)이미지 평면으로 투영한다
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
ZYY
ZXX uu (2311)
여기서 uu YX 는 왜곡이 없는 표준화된 이미지 좌표계이다
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
8
두 번째로 렌즈의 왜곡 모델은 그림 2311과 같이 발생하게
된다
그림 2311 카메라 렌즈의 왜곡
Fig 2311 Distortion of camera lens
다음과 같이 방사형 렌즈의 왜곡 성분 321 kkk 와 접선 왜곡
변수 21ττ 의 합으로 이루어 지는데 아래의 식 2312으로
나타낼 수 있다
( )( )
)2(2
)2(2
1
1
2221
2221
63
42
21
63
42
21
uuuy
uuux
yud
xud
YrYXd
XrYXd
drkrkrkYY
drkrkrkXX
++=
++=
++++=
++++=
ττττ
(2312)
여기서 dd YX 는 왜곡된 이미지의 좌표계이고 렌즈의 특성상
접선 왜곡 변수 21ττ 는 렌즈의 반지름에 대한 원의 방정식
)( 222 dd YXr += 과 관련이 있고 식2312에서 yx dd 로 정리되어
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
9
나타낼 수 있다 그러나 실제로 21ττ 는 21kk 에 비하여 매우
작은 값이므로 일반적으로 yx dd 는 생략된다
세 번째로 왜곡된 이미지 좌표계는 실 세계 좌표 )( ff YX 에
식 2313을 사용하여 맵핑된다
ydyfxdxf CXfYCXfX +=+= (2313)
여기서 )( yx ff 는 각각 렌즈의 수평 수직 초점 거리이다
카메라 내부 변수는 행렬을 이용하여 아래 식 2314와 같이
표현할 수 있다
dfyy
xx
KKXCfCf
K =⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1000
0 (2314)
여기서 fX 는 실 세계 좌표 dX 는 왜곡이 있는 영상
좌표이다 이 왜곡된 dX 는 식 2312에 의해 왜곡되지 않은
좌표로 변환이 되어 카메라 내부 변수 행렬에 반영된다
232 외부 변수(Extrinsic parameter)
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
10
외부 변수는 카메라와 실 세계 좌표계간의 회전 이동을
나타내는 변수이다 표 2321은 외부 변수의 종류를 나타내고
외부변수의 정의는 식 2321로 나타낼 수 있다
표 2321 외부 변수
Table 2321 Extrinsic parameters
][ zyx TTTT = 실 세계 좌표를 기준으로 각각 x y
x방향으로의 이동거리
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
987
654
321
rrrrrrrrr
R
각각 실 세계 좌표의 x y z축을 기준으로
회전한 오일러 회전행렬
[ ] TZYX
RZYX
c
c
c
+⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
times33 (2321)
여기서 이동 변환 행렬은 ][ zyx TTTT = 이며 회전 변환 행렬
R은 아래의 식 2322와 같다
⎢⎢⎢
⎣
⎡
+minus+minus++minus
minus=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
θθφθψφψφθψφψφθφθψφψφθψφψ
θφψφψ
coscossinsinsinsincoscossincossinsinsincossinsinsincoscoscossincoscossin
sincossincoscos
987
654
321
rrrrrrrrr
R
(2322)
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
11
ψφθ 는 X Y Z축을 중심으로 회전한 것이다
앞의 식 (2313)에 의해서 식(2314)식을 보다 자세히
다음과 같이 정의할 수 있다
ydyf
xdxxf
CXdY
CXdsX
+=
+prime=minus
minus
1
1
(2323)
yy
fx
cxxx
dd
NNdd
=prime
= (2324)
여기서 xs 는 오차요인이고 ff YX 는 영상 화소의 위치
yx CC 는 영상에서의 중점 좌표이다 그리고 yx dd 는 카메라
구조 중 이웃한 센서 요소간의 중점거리 fxN 는 영상의 한 라인
표본화 수이며 YX 축 화소의 개수는 cycx NN 로 나타낼 수
있다 식 2321을 이용하여 영상 좌표계와 카메라 좌표계를
정리해 보면 다음 식 2325를 얻을 수 있다
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
12
c
cxy
c
cxxdxx
ZYfrYkdXd
ZXfrXkdsXds
=+prime
=prime+prime minusminus
21
21
11 (2325)
위의 식 2325를 식 2321에 대입하여 아래의 식
2326으로 정리될 수 있다
zwww
xwwwxy
zwww
xwwwxxdxx
TZrYrXrTZrYrXrfrYkdXd
TZrYrXrTZrYrXrfrXkdsXds
++++++=+prime
++++++=prime+prime minusminus
987
65421
987
32121
11 (2326)
이 식에 실 세계 좌표에서 알고 있는 점들의 집합과 이에
상응하는 영상 좌표계 점을 대입하면 외부변수인 TR 를 계산할
수 있다
24 스테레오 카메라
241 영상의 평행화(Image rectification)
스테레오 비젼의 구조는 이미 잘 알려져 있는 에피폴라
기하학으로 간단히 표현할 수 있다 그림 2411 은 두 대의
핀홀 카메라의 투영중점 rO lO 과 이미지 평면 rπ lπ 를
보여주고 있다 ][ rrrr xyxP = ][ llll xyxP = 은 카메라
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
13
좌표계에서 3 차원상에 한 점 p 를 가리키는 백터이고
][ rrrr xyxP = ][ llll xyxP = 는 점 p 를 가리키는 좌우 이미지
안의 좌표를 나타낸다 그림 2411 에서 좌측 이미지 평면 lπ 의
한 점 lP 에 대해서 우측 이미지에 대응하는 점 rP 과 le 를
연결하는 선 위에 존재한다 이선을 에피폴라 선이라고 하고 rL
lL 이라고 정의한다 에피폴라 선은 두 카메라의 투영중점 rO
lO 과 p 로 정의되는 에피폴라 평면과 이미지 평면 rπ lπ 의
교선이고 한 이미지의 모든 점에 에피폴라 라인은 공통적으로
le re 을 지난다 이를 에피폴 이라고 하고 rO lO 과 이미지
평면 rπ lπ 과 교점을 이룬다 만약 lp rp 이 3 차원
공간상에서 한 점 p 와 각각 대응되는 점이라면 한
이미지평면의 점은 다른 이미지 평면상의 에피폴라 라인 위에
존재 함으로 대응하는 점을 찾기 위한 영역이 2 차원에서
1 차원으로 줄일 수 있다 이를 에피폴라 제약조건이라고 한다
카메라 좌표계 안에서 두 카메라의 관계는 외부
파라메터(Extrinsic parameter)인 이동벡터 lr OOT minus=( )와
회전백터 R 로 표현될 수 있다 공간상에 주어진 p 에 대하여
lp 와 rp 의 관계는 다음과 같다
)( TPRP lr minus= (2411)
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
14
또한 픽셀 좌표계에서의 lp rp 과 카메라 좌표계의 lp rp
의 관계는 다음과 같은 수식으로 표현 할 수 있다
ll
ll p
zfP = (2412)
rr
rr p
zfP = (2413)
여기서 lf rf 은 각각 카메라의 초점거리(Focal length)를
나타낸다 아래의 그림 2411 은 에피폴라 기하학을 나타낸
그림이다
rπlπ
lO rO
rPlP
lere
p
rplp
rL lL
그림 2411 에피폴라 기하학 Fig 2411 The epipolar geometry
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
15
242 카메라 보정과 평행화 결과
22절부터 232절을 기반으로 카메라 변수를 구하였다
아래의 그림 2421은 체스보드의 edge를 구하여 실 세계
좌표를 구하여 보정과 평행화한 결과이다 오차를 줄이기 위하여
10장의 이미지를 촬영하여 대응점을 구하였다
1st capture 2nd capture
3rd capture 4th capture
5th capture 6th capture
7th capture 8th capture
9th capture 10th capture
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
16
그림 2421 카메라 대응점 추출과 정합 Fig 2421 Extract corresponding points and rectification
아래의 표2421은 10장의 대응점을 추출하여 구해진 카메라
변수들 이다
표 2421 계산된 카메라 변수
Table 2421 Calculated camera parameters
Camera_1
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002278110723700032630000107251
Camera_2
intrinsic
parameter ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
1000000002119510672900032130000106611
Fundamental
matrix ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
100008632000022-008590-000-000-000009000000-
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
17
3 iTiBO 로봇의 구조
31 기구적 구조
본 논문의 연구 대상인 변형 가능한 6족 로봇은 CAD Tool을
이용하여 3D형태로 설계하였고 본체를 가볍게 하기 위해
알루미늄을 사용하였다 한 개의 다리에는 5자유도(Degree of
Freedom)를 가지고 있으며 가운데 두 다리의 끝에는 집게
손을 가지고 있어 물체를 들어올리거나 운반할 수 있다
표 311은 서로 다른 구동 방식에 따른 특성 비교이다
영상처리 및 센서 감지 성능을 높이기 위해서는 로봇의
자세안정이 중요하다 따라서 변형 가능하며 바퀴와 보행이
동시에 가능한 로봇의 기구학적 구조의 특징은 많은 장점을
가지고 있음을 알 수 있다
표 311 로봇의 기구학적 구조에 따른 특성 비교
Table 311 Hexapod Configuration
주행방식 지형
적합성
에너지
효율성
이동
속도
장애물
극복
자세
유지
2족 보행 times times
무한궤도 times
바퀴 times times
변형 가능한
바퀴와 보행
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
18
변형 가능한 6족 로봇의 각 관절은 200도의 넓은 동작범위를
가지고 있다 그림 311은 CAD를 이용한3D 모델링과 각
관절의 구조를 나타내고 있다
그림 311 로봇의 3 차원 모델 Fig 311 Robot 3D Model
각각의 다리는 위치제어가 되는 5개의 디지털 서보모터로
구동된다 서보모터는 회전각을 체크할 수 있는 가변저항을
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
19
장착하고 있으며 서보모터 내부의 컨트롤러는 이 회전각 정보를
이용하여 모터의 회전축 움직임 제어에 사용한다 바퀴 구동을
위한 서보모터는 무한 회전이 가능하며 회전속도를 설정 할 수
있다 각각의 서보모터는 모터에 가해지는 부하 및 온도를 측정
할 수 있어 과부하로부터 모터를 보호할 수 있다 그림 212는
로봇의 다리 세부 구조를 나타내고 있다
그림 312 로봇 다리의 세부 구조 Fig 312 Details structure of robot leg
로봇의 최대 높이는 3705mm 최대 폭 850mm 최대 너비
800mm이며 전체 무게는 약 52Kg이다 리튬 폴리머 2차
전지를 사용하여 로봇의 무게를 줄였으며 148V의 전압에
순간출력 8A이며 용량은 1500mAh로 약 20분간의 연속동작이
가능하다 표 312은 로봇의 자세한 외형 치수를 나타내고 그림
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
20
313은 로봇의 실제 모습을 나타낸다
표 312 iTiBO 시스템 외형 치수
Table 312 iTiBO Configuration
Height 370 mm(Max) ~ 120 mm(Min)
Width 850 mm(Max) ~ 400 mm(Min)
Depth 800 mm(Max) ~ 460 mm(Min)
Weight 52 Kg
Wheel 4
DOFs 34
Power Li-Polymer 148V 1500mAh
그림 313 변형 가능한 6 족 로봇 iTiBO Fig 313 Transformable hexapod robot iTiBO
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
21
32 제어기 구성
제어시스템은 크게 세 부분으로 나눌 수 있다 영상 처리
로봇의 보행궤적 생성을 담당하는 주 제어기와 30개의 모터
제어기에 보행 궤적 데이터를 전송하는 메시지 제어기로 나뉜다
영상 카메라는 Point Gray社[12]의 소형 IEEE-1394
디지털 카메라를 사용하였으며 중앙 처리기로는 작은 크기의
Micro-ITX 메인보드와 Intel社의 펜티엄4 CPU Windows-XP
운영체제로 영상처리 성능과 프로그램 이식성을 높였다 또한
사용자와 로봇과의 인터페이스는 Blue-Tooth 무선통신[13]을
사용하였다
메시지 제어기는 다양한 인터페이스 환경을 구축할 수 있는
Atmel社의 AT-mega128 CPU[14]를 사용하였다
6족 보행을 위한 모터 모듈은 로보티즈社의 DX-117 DX-
113과 AX-12 모듈[15]을 사용하였으며 DC 16V에서 최고 약
38KgfCm의 힘을 가지는 이들 모듈은 RS-485 통신방식을
취하고 있다 이 중 AX-12모터 모듈은 무한 회전 기능이 있어
다리 끝의 구동 바퀴용 모터로 사용하였다 그림 321는 6족
로봇의 제어 시스템 구조를 나타낸다
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
22
그림 321 로봇 시스템 구조
Fig 321 Robot system configuration
33 로봇 구동 시스템
331 로봇의 기구학적 해석
변형 가능한 6족 로봇의 기구학 해석[16]을 위해 좌표계를
구성하였다 로봇의 특성상 6개의 다리가 같은 형태로 되어있어
하나의 다리관절의 해석으로도 전체 로봇의 구조를 해석할 수
있다 그림 3311은 로봇 시스템의 좌표계이다
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
23
그림 3311 iTiBO 의 좌표계 시스템
Figure 3311 Coordinate system of iTiBO
기구학 해석을 위해 좌표계는 강체의 링크 사이의 관계를
표시하는 D-H(Denavit-Hartenberg) 표기법[16]을 사용하여
세 부분의 단순 기구 연쇄로 표시하였다 표 3311은 로봇의
시스템의 D-H 변수 값을 나타내었다
표 3311 D-H 변수 값
Table 3311 D-H Parameters
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
24
로봇 시스템의 역기구학은 부록 A에 나타내었다
332 모션 데이터 구조
변형 가능한 6족 로봇은 로봇의 모양을 나타내기 위해
30개에 해당하는 각 관절의 각도 값이 필요하다 이러한 한가지
모습들이 연속적으로 바뀌면서 로봇은 움직이게 된다 동작에
따라 연속적인 흐름이 될 수 있고 정적인 상태가 될 수 있다
예를 들어 걷거나 이동할 경우엔 연속적인 흐름이 필요하지만
그 자세를 유지하거나 특정한 부분만 움직일 경우에는 정적인
상태가 될 수 있다 이러한 가변적인 흐름은 로봇의 움직임에
필요한 궤적 데이터를 줄여주는 효과를 가져온다
로봇은 가변적인 주기로 로봇의 궤적 데이터를 전송하며
전체 궤적뿐만 아니라 필요한 부분에만 궤적 데이터를 전송할
수 있는 구조로 되어있다 명령하고자 하는 모터 ID와 목적
위치 속도 토크 등을 연속적으로 보내는 구조로 되어 있다
그림 3321은 로봇에서 사용하는 모션 데이터 구조와 전송
알고리즘을 나타내고 있다
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
25
그림 3321 모션 데이터 구조와 전송 알고리즘
Fig 3321 Motion Data Structure and Transfer Algorithm
그림 3321에서와 같이 로봇에서 사용하는 모션 데이터
전송 알고리즘은 전체 34개의 관절 각도 값을 받을 수 있으며
부분적인 관절의 값만 받을 수도 있다 데이터의 검증 절차를
거처 오류가 있을 경우에는 주 제어기에 재전송 요청 신호를
보내게 된다
메시지 제어기에서는 모터에 전송하는 데이터 양을 줄이기
위해 현재 관절이 가지고 있는 값과 비교하여 값이 바뀐
관절에만 새로운 각도 값을 전송할 수 있도록 하였다
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
26
4 변위지도 생성과 장애물 검출
변위란 같은 물체를 다른 각도에서 찍은 두 이미지 사이의
대응점들의 위치 차이를 말하는 것이다 즉 동일한 월드좌표가
두 이미지의 다른 위치에 투영되었을 때 어느 정도의 차이를
두고 투영되었는지 알 수 있는 값이라고도 할 수 있다 이와
같은 변위 값은 두 이미지 사이의 가상 이미지 합성 시 중요한
값으로 사용될 수 있다 이 절에서는 가상 이미지 합성에 필요한
변위지도를 구하는 방법에 대해 설명한다
41 전처리 과정(preprocessing)
전처리 과정은 크게 3부분으로 나뉜다 첫 번째는 과정은
이미지의 사이즈를 줄이는 과정이다 이미지의 사이즈가 크게
되면 연산시간이 오래 걸리므로 320 x 240사이즈의 크기로
resizing하여 연산을 하게 되며 Inter cubic방식을 이용하여
사이즈를 resizing하였다 두 번째 과정은 LoG(Laplacian of
Gaussian filter)[17]를 이용하여 영상의 밝기 변화나 광원의
영향을 크게 받지 않게 하며 상대적으로 잡음의 영향이 적게
받아 계산이 빠른 장점을 가진다 그러나 특징이 영상전체에
고루 분포되어 있지 않을 경우에는 추출 할 수 있는 특징정보가
부족하기 때문에 정합의 정확도가 저하된다 마지막으로
미디언필터(Median filter)[17]를 사용하였다 미디언 필터는
입력영상의 주변 픽셀 값들을 오름 차순 또는 내림차순으로
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
27
정렬하여 그 중앙에 있는 픽셀 값을 사용하는 필터로써 salt and
pepper와 노이즈 충격[17]을 제거한다 아래의 그림411은
전처리 과정을 거치고 SSD로 정합된 Disparity map을 나타낸다
흰색에 가까울수록 카메라와 가깝고 검은색에 가까울수록
카메라와의 거리가 먼 것이다 그림 412은 OpenGL기반으로
disparity map를 3D로 재구성한 그림이다
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
28
그림 411 교정된 이미지와 변위지도 Fig 411 Rectified images and disparity map
그림 412 OpenGL 기반의 변위지도 3D 재구성 Fig 412 OpenGL based 3D reconstruction
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
29
42 이미지 상관관계(Image correlation)
Disparity는 오래 전부터 많은 사람들에 의해 연구되어 온
분야이다 Disparity 알고리즘 중 가장 간단한 방법이 바로
SSD를 이용한 방법이다 이 알고리즘은 두 이미지 사이의
명도차이를 이용한 방법이다 본 논문에서는 한 이미지를
기준으로 다른 이미지의 명도값의 차이를 특정영역에서
계산하고 이 차이 값이 최소가 되는 부분이 해당 픽셀의
대응점이라고 생각하고 그때의 인덱스의 위치가 변위값이 된다
이와 같은 작업을 각 이미지들을 기준으로 왼쪽과 오른쪽에
해당하는 변위지도를 각각 계산해 준다 하지만 SSD만을
이용하여 정확한 변위값을 구하기 힘들다 그러므로 전처리
과정과 후처리 과정을 통하여 이미지의 품질을 향상 시켰다
아래의 그림은 421은 대응구간을 이용한 상관관계에 대한
그림이다
그림 421 대응점 상관관계 Fig 421 Corresponding points correlation
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
30
아래의 식 421은 SSD function이고 식 422는 윈도우
사이즈를 정의한 것이다
sumisin
minusminus=)()(
2)]()([)(yxWvu
RLrm
vduIvuIdyxC (421)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
|)( 2222mmmm
m yvyxuxvuyxW +leleminus+leleminus= (422)
여기서 LI RI 은 왼쪽 이미지의 명암도 와 오른쪽 이미지의
명암도를 나타내며 u v 는 식 422에 의하여 정의된 윈도우의
사이즈 이다
43 후처리 과정(Post processing)
후처리 과정은 크게 2가지로 나뉜다 하나는 모폴로지컬 필터
(Morphological filter)[17]이고 다른 하나는 스파이크
제거이다 모폴로지컬 필터 연산은 침식(erode) 연산 후
팽창(dilation) 연산을 하게 되는데 이를 닫힘(closing)연산이라
한다 닫힘 연산을 하게 되면 원래 영상의 형태는 유지하게 되고
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
31
작은 노이즈는 사라져 버리기 때문에 노이즈를 제거하는 효과를
볼 수 있다 마지막으로 스파이크제거 알고리즘[18]은 영역
기반 정합 방식에서 깊이가 불연속적으로 변하거나 경사가
급격하게 변하는 경우에 발생하며 국소적으로 나타나는 특징이
있다 따라서 국소적으로 나타난다는 특징을 이용하여 이를
제거할 수 있다 변위지도에서 스파이크가 존재할 경우
스파이크가 존재하는 열에서 스파이크 값은 상대적으로 큰 값을
갖는다 따라서 스파이크 값과 진짜 값은 일정한 차이가
발생한다 실험적으로 명도차이가 10~12라는 것을 확인
하였으며 이 값이 발생하였을 경우 이를 스파이크로 간주하고
스파이크 전의 값을 이용하여 보정을 한다
44 장애물 검출
계산된 변위지도에서 장애물은 바닥과 다르게 흰색을 띄게
된다 그림 441은 계산된 변위지도의 기울기 차이를 보여준다
그림 441 변위 지도의 명동의 기울기 차이
Fig 441 Difference of gradient of disparity map
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
32
이런 특징을 살려 수평라인을 스캔 하여 장애물의 테두리를
검출하게 된다 또한 자연히 배경과 장애물은 분리가 된다
아래의 표 441은 장애물을 분리 하는 과정을 나타낸다
표 441 장애물 분리과정
Table 441 A process of obstacle separation
valnewreturnforendI
thenIaverageifXsumaverage
Isum
doYallforIYXobjectextractorithmA
X
n
_
0
)(lg
1
=lt
=
=sum=
여기서 X는 이미지의 수평크기이고 Y는 수직크기이고 I는
이미지의 명도를 나타낸다 수평축 라인의 평균을 구한 후
평균보다 작은 값들은 명도를 0으로 하여 배경을 분리하였다
그림 442 제안된 알고리즘으로 구한 장애물 Fig 442 Calculated obstacles by proposed algorithm
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
33
장애물들은 배경과 분리 되어 하나의 덩어리(blob)으로
변환하였다 이 덩어리들 blob labeling[19]하기 위하여
openCV에서 제공하고 있는 blob labeling 라이브러리를
사용하였다 Blob coloring 라이브러리는 표 442와 같이
동작한다
표 442 Blob 컬러링 알고리즘
Table 442 Blob coloring algorithm
repeat
colornewKCColorthenLimageandUimageif
LColorCColorthenLimageandUimageif
UColorCColorthenLimageandUimageif
thenCimageifimageSizekfor
templateshapeLgubottomtotopandrighttoleftfromimageoriginaltheScan
StepkColorinitialtheLet
labelingbloborithmA
][255][0][
][][255][0][
][][0][255][
255][
sin
10][
lg
++===
===
===
==
minus
=
Blob labeling 알고리즘은 각 화소에 그 화소의 상단 화소와
왼쪽 화소의 라벨을 검색하여 현재 화소의 라벨을 결정한다 이
두 이웃 화소들은 라벨링 과정에서 이미 주사된 화소이다 결정
과정에서는 세 가지의 서로 다른 경우가 발생할 수 있다 만약
두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에
새로운 라벨값을 할당한다 두 화소 중 하나의 화소만
전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
34
그리고 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는
경우에는 동일한 라벨값을 현재 화소에 할당한다 그러나 두
화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두
영역은 현재화소에 의해 서로 연결되는 영역이므로 동일한
라벨값으로 병합되어야 한다 따라서 더 두 화소의 라벨값 중 더
작은 값을 현재화소의 라벨값으로 할당하고 두 라벨은 동치
테이블에 동치 라벨로 등록된다 아래의 그림 443는 blob
labeling으로 구해진 장애물의 중심위치와 disparity값들이다
그림 443 라벨링된 장애물들 Fig 443 Labeled obstacles
이로써 라벨링 된 장애물들은 각각의 좌표와 크기 그리고 거
리를 알 수 있다
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
35
5 로봇의 경로생성
본 장은 로봇이 장애물을 판단하여 경로를 생성하는
부분으로써 첫 번재는 포텐셜 필드방법[20]을 이용하여
장애물을 회피하는 경로를 생성하는 방법이고 두 번째는
시작점과 도착점 사이에 최단 거리인 가상의 직선을 그렸을 때
장애물이 검출이 되면 로봇의 역기구학을 이용하여 로봇이
넘어가는 방법이며 마지막으로 위 두 개의 방법을 혼합하여
사용하는 방법으로 경로를 생성 할 수 있다
먼저 포텐셜 필드를 이용한 방법은 장애물의 높이가 로봇이
통과하지 못하는 경우 이루어 진다 로봇은 최대 150mm까지
다리를 올릴 수 있으나 로봇의 동작이 불안정해지는 이유로
50mm로 제한을 하였다 즉 장애물의 높이가 50mm 이상일
경우 로봇은 회피동작을 하게 된다 또한 계산의 복잡성과 국부
최소점(Local minima)를 줄이기 위하여 장애물의 형태를 원의
형태로 근사화 하였다 포텐셜 필드 방법을 사용하였을 경우
장애물의 형태가 사각형의 형태로 존재하면 국부 최소점에 쉽게
빠지는 것을 실험적으로 알아내었다
그림 51 원으로 근사화 된 장애물 Fig 51 Approximated obstacle as a circle
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
36
원의 형태는 장애물의 모서리를 다 포함 할 수 있는 크기의
원으로 근사화 하였으며 타원이 아닌 원의 형태를 가지고 있다
위의 그림은 51은 원의 형태로 근사화 된 장애물을 나타낸
것이다
아래의 그림52는 경로생성의 방법을 선택하는 순서를 나타낸
것이다
그림 52 경로생성 방법 선택 과정
Fig 52 Selection of method of path plan
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
37
51 포텐설 필드를 사용한 경로계획 방법
511 포텐셜 필드 방법
포텐셜 필드 방법(Potential field method)은 자율이동로봇의
경로계획(path planning)이나 작업공간 내에서 로봇 매니퓰레이
터를 나타내는 포인터를 충돌 없이 목적지까지 이동시키는 문제
에 주로 적용되었다 포텐셜 필드 방법은 로봇을 포텐셜 함수의
영향을 받는 물체로 취급하는 것이다 장애물은 척력의 포텐셜
(Repulsive potential)에 의하여 모델링 되고 목표점은 인력의
포텐셜(Attractive potential)에 의하여 모델링 된다 따라서 모
든 작업 공간은 위의 두 전위 함수의 합에 의해 표현이 된다 로
봇에 작용하는 힘은 전위함수의 구배(Negative gradient)와 같
으므로 로봇은 종점으로 유도될 수 있다 즉 인력의 포텐셜 함
수는 계곡과 같은 역할을 하고 물체에 의한 척력의 포텐셜은 언
덕과 같은 역할을 하여 로봇은 목표점으로 따라 흘러간다아래의
식 5111은 포텐셜 필드를 나타내는 것이다
)()()( xUxUxU oxd += (5111)
여기서 )(xU xd 는 인력의 포텐셜을 나타나며 식 5112와 같
이 정의 된다
2)(21)( dpxd xxkxU minus= (5112)
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
38
여기서 pk 는 포지션의 게인 값을 나타내며 x 는 현재 포지션
값이며 dx 는 목표의 좌표를 나타낸다 식 5113은 척력의 포
텐셜이며 다음과 같다
⎪⎪⎪
⎭
⎪⎪⎪
⎬
⎫
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
ge
leminus
=
0
02
0
0
0
)11(21
)(ρρ
ρρρρ
η
if
if
xU (5113)
여기서 η 는 상수이득 값(Constant gain)이며 ρ 는 장애물로
부터의 최소 거리를 나타내며 0ρ 는 포텐셜 필드에 있어서 제한
거리를 나타내는 것이다 그림 5111은 포텐셜 필드를 설명하
는 그림이다 붉은색 2개의 원은 장애물을 나타내며 파란색 화
살표는 인력과 척력의 전위장의 방향을 나타낸다 그림을 보면
시작점과 장애물들은 척력 전위장을 내고 있으며 도착지점은 인
력 전위장을 띄고 있다
그림 5111 포텐셜 필드
Fig 5111 Potential field
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
39
512 포텐셜 필드 방법을 사용한 경로생성
인력과 척력의 전위장에 착안점을 둔 이 방법은 복잡한 형상
공간의 모델링이 필요 없고 비교적 간단한 계산으로 로봇의 경
로계획이 가능하다 그림 511는 좌표의 원점 즉 (00)에서 출
발하여 (9090)으로 경로가 생성되는 것을 볼 수 있다 본 연구
에서는 장애물의 형태가 각이 진 형태가 아닌 윈의 모양이 국부
최소점에 강인한 면모를 보인다는 점을 이용하여 장애물의 형태
를 원으로 근사화 하였다
그림 5121 포텐셜 필드 방법을 이용한 경로 생성과 장애물 표현
Fig 5121 Path generation and obstacle expression using a potential field
그림 5121은 그림 432와 같이 스테레오 비젼을 기반으로
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
40
하여 추출된 장애물의 좌표를 기반으로 장애물을 근사화 하여
표현한 것이다 장애물이 원의 형태로 근사화 되어 있기 때문에
국부 최소점에 빠지지 않고 생성되는 궤적을 보여준다 생성된
궤적을 기반으로 시뮬레이션 상에서 로봇의 움직임을 구현하기
위하여 경유점 간의 각도와 거리를 알아야 한다 아래의 그림
5122은 각 경유점간의 각도와 거리를 알 수 있는 방법을 제시
한 것이다
그림 5121 경유점간의 거리와 각 Fig 5122 The angles and degrees between way points
여기서 α 는 현재의 포인트와 다음 포인트간의 각을 나타내며
다음 식 5121와 같이 표현이 된다
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
getimes⎟⎠⎞
⎜⎝⎛
minusminusminus
letimes⎟⎠⎞
⎜⎝⎛
minusminus
=10180
0101arctan
101800101arctan
XXifpiXX
YY
XXifpiXX
YY
α
(5121)
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
41
α 는 두 개의 조건으로 나타낼 수 있으며 로봇의 방향을 위의
조건으로 판단할 수 있다 또한 L 은 두 점 간의 거리를 나타내
며 로봇이 이동하는 거리를 나타낸다
22 )01()01( YYXXL minus+minus= (5122)
로봇은 시작점(00)부터 목표점(9090)까지 106개의 경유점
을 식 5121과 식 5122를 사용하여 추종을 하게 되며 오차
없이 목표점까지 추종하였다 아래의 그림5122는 장애물을 통
과 할 수 없을 때 포텐셜 필드를 이용하여 궤적을 생성하였고
이를 수행된 시뮬레이션의 결과를 보여준다
그림 5122 주행 시뮬레이션 결과 Fig 5122 Driving simulation result
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
42
52 장애물을 넘을 수 있는 경우의 경로계획
두 번째 경우인 본 방법은 로봇이 장애물을 통과 할 수 있을
때의 경우로 시작점과 도착점의 최단거리인 가상의 직선을 그리
며 진행 도중 장애물을 만났을 경우 장애물을 넘어 가는 경우이
다 장애물은 원으로 근사화 되어있기 때문에 장애물 좌표와 반
지름의 크기를 기반으로 장애물의 위치와 크기를 알 수 있다 먼
저 시작점부터 목적지까지의 접하는 장애물이 있는지 체크를 한
다 그림 521과 같이 직선의 방정식과 원의 방정식을 연립방정
식을 풀어 교점을 판별한다
그림 521 직선과 원의 교점 Fig 521 An intersection between circle and line
로봇의 중심점을 기준으로 움직이기 때문에 중심으로부터 양
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
43
쪽 다리를 기준으로 하여 2개의 직선이 생기므로 이 직선의 방
정식을 대입하여 풀면 어떤 다리에 장애물이 걸리는지 알 수 있
다 여기서 d는 원의 중심과 직선의 거리이고 r은 반지름의 길이
라고 가정하면 dltr의 조건이면 두 점에서 만나고 d=r이면 한
점에서 만나고 dgtr이면 만나지 않는다 두 점이나 한 점에서 만
나는 경우에 장애물의 높이를 판별한 후 로봇이 어떤 방식으로
진행할 것인지에 대한 판단을 하게 된다 이러한 방법으로 두 개
의 직선을 대입하여 방정식을 풀어내면 로봇의 어떤 다리에 어
떤 장애물이 걸리는지를 알 수 있다
또한 로봇이 넘을 수 있는 장애물로 판단이 되면 두 개의 교
점의 거리를 구하여 로봇의 궤적에 걸리는 장애물의 길이를 알
수 있다 여기서 장애물의 높이는 일정하다고 가정한다 로봇의
역기구학을 풀어 로봇이 넘어 가는 동작을 하게 된다
로봇이 장애물을 넘기 위하여 그에 상응하는 걸음새를 구현해
야 한다 역기구학을 사용하여 다리의 끝점을 입력하면 각 관절
의 각도 값을 알 수 있다 역기구학은 부록에 있는 방식을 사용
하여 구하였다 로봇은 한 스텝을 가기 위하여 총 9개의 세부
동작을 하게 되며 한 스텝을 진행하였을 경우 로봇은 100mm를
이동하게 된다 아래의 그림 522는 기본적인 로봇의 걸음새를
보여주고 있고 표 521는 평지를 보행할 때의 걸음새로 9개의
로봇발의 끝점 좌표를 나타낸 것이고 표 522은 평지를 보행할
때의 걸음새에 대한 역기구학을 풀은 각을 표현하고 있다 로봇
발의 끝점 좌표는 X Y Z로 3차원으로 구성이 되어있으며 이
끝점 정보를 이용하여 3개의 관절 값을 알 수 있다 로봇의 다
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
44
리는 6개가 동일하기 때문에 1개의 다리만 역기구학을 풀어 모
든 다리에 적용을 하였다
그림 522 일반 보행 시뮬레이션 결과 Fig 522 General walking simulation result
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
45
표 521 로봇발의 끝점 좌표
Table 521 End coordinates of legs
세부동 다리1 다리2 다리3 다리4 다리5 다리6
1st
X 100
Y 100
Z -250
X 100
Y 0
Z -250
X 100
Y -100
Z -250
X 100
Y -100
Z -250
X 100
Y 0
Z -250
X 100
Y 100
Z -250
2nd
X 100
Y 100
Z -220
X 100
Y 0
Z -250
X 100
Y -100
Z -220
X 100
Y -100
Z -250
X 100
Y 0
Z -220
X 100
Y 100
Z -250
3rd
X 100
Y 100
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y -50
Z -250
X 100
Y 0
Z -220
X 100
Y 150
Z -250
4th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
5th
X 100
Y 100
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y -50
Z -220
X 100
Y 0
Z -250
X 100
Y 150
Z -220
6th
X 100
Y 50
Z -250
X 100
Y 0
Z -220
X 100
Y -50
Z -250
X 100
Y -100
Z -220
X 100
Y 50
Z -250
X 100
Y 100
Z -220
7th
X 100
Y 50
Z -250
X 100
Y 0
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y 50
Z -250
X 100
Y 100
Z -250
8th
X 100
Y 50
Z -220
X 100
Y 0
Z -250
X 100
Y -50
Z -220
X 100
Y -100
Z -250
X 100
Y 50
Z -220
X 100
Y 100
Z -250
9th
X 100
Y 100
Z -250
X 100
Y -50
Z -250
X 100
Y -100
Z -250
X 100
Y -50
Z -250
X 100
Y 0
Z -250
X 100
Y 150
Z -250
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
46
표 522 로봇다리의 각도
Table 522 The degree of robotrsquos joints
세부동작 다리1 다리2 다리3 다리4 다리5 다리6
1st
T1 45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 -45
T2 44
T3 45
T1-45
T2 44
T3 45
T1 0
T2 46
T3 54
T1 45
T2 44
T3 45
2nd
T1 45
T2 22
T3 72
T1 0
T2 46
T3 54
T1 -45
T2 22
T3 72
T1-45
T2 44
T3 45
T1 0
T2 27
T3 80
T1 45
T2 44
T3 45
3rd
T1 45
T2 44
T3 45
T1 -27
T2 46
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
4th
T1 45
T2 44
T3 45
T1 -27
T2 45
T3 52
T1 -45
T2 44
T3 45
T1-27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 56
T2 50
T3 24
5th
T1 45
T2 44
T3 45
T1 -27
T2 25
T3 78
T1 -45
T2 44
T3 45
T1-27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 56
T2 23
T3 59
6th
T1 27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 72
T1 27
T2 45
T3 52
T1 45
T2 22
T3 72
7th
T1 27
T2 45
T3 52
T1 0
T2 46
T3 54
T1 -27
T2 45
T3 52
T1-45
T2 22
T3 45
T1 27
T2 45
T3 52
T1 45
T2 44
T3 45
8th
T1 27
T2 25
T3 78
T1 0
T2 46
T3 54
T1 -27
T2 25
T3 78
T1-45
T2 44
T3 45
T1 27
T2 25
T3 78
T1 45
T2 44
T3 45
9th
T1 45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 -45
T2 22
T3 72
T1-27
T2 45
T3 52
T1 0
T2 27
T3 80
T1 56
T2 50
T3 24
위의 표521과 같이 로봇의 발의 끝점 좌표를 주면 표 522와
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
47
같은 각이 산출이 된다 이를 이용하여 궤적상에 장애물이 존재
하게 되면 장애물의 높이와 길이를 측정하여 궤적의 변화를 줄
수 있다 기존의 걸음새에서 높이 즉 Z방향의 좌표에 변화를 줌
으로써 로봇이 장애물을 넘어갈 수 있는 것이다 아래의 그림
523은 제작된 시뮬레이터의 장면으로써 장애물을 넘어가는 모
습을 보여준다
그림 523 장애물 통과 시뮬레이션 결과
Fig 523 Simulation result
53 포텐셜 필드방법과 장애물을 넘어가는 방법을 혼합한 방법
포텐셜필드 방법과 로봇이 장애물을 넘어가는 방법을 혼합
하여 목적지까지 도달 할 수 있다 그림 521을 사용하여
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
48
로봇의 진행방향에 장애물의 유무를 알 수 있다 장애물의
크기를 판단하여 두 가지 방법을 적절히 혼합하여 사용할 수
있다 로봇이 장애물을 피해가거나 넘어갈 조건은 장애물의
높이이다 그러나 목적지까지의 경로를 직선으로 지정하였을 때
이 두 가지 조건이 함께 충족할 수 있다 이때 위의 두 가지
방법을 혼합하여 사용을 하면 최단거리의 경로를 생성할 수
있다 아래의 그림 531은 본 방법에 대한 그림이다
그림 531 혼합방법 Fig 523 Mixed method
예를 들어 장애물 2 크기가 다른 장애물이 검출되면 장애물 2
와 1사이에서 포텐셜필드에 의하여 목적지까지의 경로를 다시
생성하게 된다
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
49
6 실험결과 및 고찰
본 논문의 실험은 실내의 400cm x 400cm 의 공간에서 실험
을 하였다 실험은 로봇이 장애물을 회피할 수 있는 경우의 궤적
생성과 생성된 궤적에 대한 추종에 대한 실험과 로봇이 장애물
회피하지 않는 경우 즉 로봇이 판단을 하여 장애물을 넘어가는
동작 그리고 마지막으로 혼합동작으로 나뉜다 아래의 표는 실제
장애물의 좌표와 카메라로 획득한 이미지를 분석하여 얻어진 장
애물의 좌표를 나타낸다 포텐셜필드를 이용한 장애물회피 주행
실험 로봇의 걸음새를 이용한 장애물 극복실험 2개를 혼합한
실험 총3가지 실험이며 각 실험당 2에서 3번씩 실험을 실시하였
다
61 포텐셜 필드방법을 사용한 경로추종 실험
본 실험은 로봇이 판단을 하여 장애물을 넘어가지 못하는 경
우 포텐셜필드 방법에 의해 생성된 궤적을 나타낸 것이다 실내
의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을 설
치한 후 실험이 진행되었다 아래의 그림 611부터 그림 613
은 포텐셜 필드를 사용한 실험으로써 스테레오 카메라를 이용하
여 획득한 이미지와 시차지도를 나타낸 것이며 총 8개의 장애물
이 촬영되었으며 시차지도를 포함하고 있다 시차지도를 사용하
여 장애물의 위치 및 크기를 추정할 수 있으며 이를 기반으로
경로를 생성하여 로봇이 진행방향을 결정 할 수 있다
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
50
그림 611 포텐셜필드 방법을 이용한 실험 1 Fig 611 Experiment 1 using the PF method
그림 612 포텐셜필드 방법을 이용한 실험 2 Fig 612 Experiment 2 using the PF method
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
51
그림 613 포텐셜필드 방법을 이용한 실험 3 Fig 613 Experiment 3 using the PF method
표 611은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
52
표 611 첫 번째 실험의 실제 측정된 장애물 좌표
Table 611 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 1012 2012 1212 1011 1912 1112 916 95 916
2 2026 2024 2020 2023 2023 2019 884 958 95
3 3430 1228 2816 3230 1227 3016 941 964 933
4 1410 2828 3232 149 2728 3131 90 964 968
5 2020 1216 208 2018 1116 198 90 9167 95
6 2410 2412 1628 2210 2512 1626 916 96 926
7 1020 3220 820 1020 3420 820 100 9412 100
8 820 2032 3220 820 2030 3020 100 100 937
추정된 장애물의 좌표의 정확도의 평균치는 9454이다 위
의 표611를 근거하여 장애물의 위치를 표현하면 그림 614와
같다
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
53
그림 614 장애물 위치
Fig 614 Coordinates of obstacles
아래의 그림 615는 포텐셜필드 방법에 의하여 생성된 궤적
을 보여준다 그림 615의 첫 번째 궤적의 평균 정확도는
9349이며 끝점에서의 정확도는 9098의 정확도를 보인다
두 번째 궤적의 평균정확도는 9313이며 끝점의 정확도는
9723의 정확도를 보인다 세 번째 궤적의 평균정확도는 958
이며 끝점의 정확도는 931이다
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
54
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
450
Ground truth data measured data
Y
X
-50 0 50 100 150 200 250 300 350 400-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
55
-50 0 50 100 150 200 250 300 350 400
0
100
200
300
400
Y
X
Ground truth data Measured data
그림 615 포텐셜필드를 사용한 궤적 Fig 615 Generated paths by PF method
62 로봇의 역기구학을 이용한 장애물 넘기 동작실험
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우의
생성된 궤적을 나타낸 것이다 첫 번째 실험과 동일한 조건인 실
내의 400cm x 400cm의 공간에서 각기 다른 위치에 장애물을
설치한 후 실험이 진행되었다
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
56
그림 621 통과 방법을 이용한 실험 1 Fig 621 Experiment 1 using the through method
그림 622 통과 방법을 이용한 실험 2 Fig 622 Experiment 2 using the through method
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
57
그림 623 통과 방법을 이용한 실험 3 Fig 623 Experiment 3 using the through method
표 621은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
58
표 621 두 번째 실험의 실제 측정된 장애물 좌표
Table 621 Object coordinates of actual measurement
번호 실제 데이터(cm) 추정된 데이터(cm) 정확도()
1st 2nd 3rd 1st 2nd 3rd 1st 2nd 3rd
1 204 824 412 194 822 411 950 916 916
2 1224 208 1220 1124 198 1218 916 950 900
3 1632 2436 288 1532 2434 289 937 944 888
4 3220 328 2816 3221 329 2616 932 888 928
5 816 816 88 817 716 89 941 875 888
6 2812 2020 2020 2712 1820 2018 964 900 900
7 2028 2028 208 2026 2026 198 928 928 950
8 3232 3236 2836 3030 3033 2434 937 925 843
추정된 장애물의 좌표의 정확도의 평균치는 9185이다 위의
표621를 근거하여 장애물의 위치를 표현하면 그림 624와 같
다
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
59
그림 624 장애물 위치
Fig 624 Coordinates of obstacles
아래의 그림 625는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 615의 첫 번째 궤적의 평
균 정확도는 9445이며 끝점에서의 정확도는 9212의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9113이며 끝점의
정확도는 8924의 정확도를 보인다 세 번째 궤적의 평균정확
도는 919이며 끝점의 정확도는 904이다
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
60
0 100 200 300 400 500
0
100
200
300
400
500
Y
X
Ground truth data Measured data
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
61
0 100 200 300 400 500
0
100
200
300
400
500
Ground truth data Measured data
Y
X
그림 625 통과방법을 사용한 궤적 Fig 625 Generated paths by through method
63 포텐셜필드 방법과 넘기 동작의 혼합방법
본 실험은 로봇이 판단을 하여 장애물을 넘을 수 있는 경우와
포텐셜필드 방법을 혼합하여 생성된 궤적을 나타낸 것이다 첫
번째 실험과 동일한 조건인 실내의 400cm x 400cm의 공간에서
각기 다른 위치에 장애물을 설치한 후 실험이 진행되었다
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
62
그림 631 혼합 방법을 이용한 실험 1 Fig 631 Experiment 1 using the mixed method
그림 632 혼합 방법을 이용한 실험 2 Fig 632 Experiment 2 using the mixed method
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
63
표 631은 실제 측정된 장애물의 좌표 및 스테레오 카메라를
사용하여 얻은 시차지도를 사용하여 추정된 데이터 및 실제데이
터와 추정된 데이터간의 오차율 나타낸다
표 631 세 번째 실험의 실제 측정된 장애물 좌표
Table 631 Object coordinates of actual
measurement
번호 실제 데이터(cm) 추정 데이터(cm) 정확도()
1st 2nd 1st 2nd 1st 2nd
1 1212 3434 1211 3033 916 929
2 2020 1028 1920 1024 950 857
3 3416 3622 3316 3222 944 888
4 1028 834 1026 833 928 977
5 3232 2434 3030 2332 937 932
6 3622 3020 3321 2820 920 933
7 1836 X 1832 X 889 X
추정된 장애물의 좌표의 정확도의 평균치는 9230이다 위
의 표631을 근거하여 장애물의 위치를 표현하면 그림 633과
같다
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
64
그림 633 장애물 위치
Fig 633 Coordinates of obstacles
아래의 그림 634는 로봇의 걸음새를 이용한 넘기 방법에 의
하여 생성된 궤적을 보여준다 그림 634의 첫 번째 궤적의 평
균 정확도는 9245이며 끝점에서의 정확도는 9112의 정확
도를 보인다 두 번째 궤적의 평균정확도는 9313이며 끝점의
정확도는 9224의 정확도를 보인다
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
65
-50 0 50 100 150 200 250 300 350 400 450-50
0
50
100
150
200
250
300
350
400
Y
X
Ground truth data Measured data
0 100 200 300 400-50
0
50
100
150
200
250
300
350
400
Ground truth dataMeasured data
B
A
그림 634 포텐셜필드를 사용한 궤적 Fig 634 Generated paths by mixed method
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
66
7 결론 및 향후 과제
본 논문에서는 스테레오 카메라를 이용하여 로봇이 장애물을
모델링하고 이 정보를 이용하여 장애물의 넘을 수 있는지에 대
한 판단과 그에 대하여 궤적을 생성하는 실험을 하였다
크게 세 가지 경우에 대하여 실험을 하였는데 첫 번째 실험인
회피동작은 포텐셜 필드 알고리즘을 사용한다 이 알고리즘은 국
부 최소점에 빠질 수 있기 때문에 이에 대한 예외처리를 해주어
야 한다 본 실험에서는 원의 모양으로 장애물을 근사화 해주었
기 때문에 국부 최소점에 빠지지 않았다 그리고 포텐셜필드 방
법으로 생성된 궤적으로 로봇이 부드럽게 움직이는 것을 볼 수
있었다 두 번째 경우로 로봇이 장애물을 넘어가는 경우이다 이
경우에는 장애물의 높이를 정확히 측정을 하야 로봇이 자연스럽
게 넘어갈 수 있다 장애물의 높이를 정확하게 측정하기 위해서
는 카메라의 보정결과가 정확해야 하므로 본 실험에서는 카메라
보정을 여러 번 반복하여 정확성을 기하였다 로봇의 역기구학과
보행패턴을 이용하여 로봇이 장애물을 정확하게 넘을 수 있었다
세 번째 실험은 위의 2가지 방법을 혼합하여 실험을 하였으며
각 부분의 장점만을 사용하여 적용을 하였다
로봇이 장애물을 검출하고 궤적을 생성하여 추종하는데 있어
서 92이상의 정확도를 보이고 있다 그러나 절대적인 위치를
판단할 수 없기 때문에 향후에는 Visual marker를 이용하여 절
대위치를 알아내야 할 것이다 보완해야 할 점은 비젼에 사용하
는데 있어서 조명의 영향은 많은 영향을 끼치는데 본 실험에서
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
67
도 많은 영향을 받았다 외부 광원의 위치가 바뀌면 장애물의 위
치도 바뀌는 경우가 생겼다 이 문제를 해결하기 위하여 조명의
영향을 최소화 하는 알고리즘을 사용하여야 할 것이다 또한 로
봇이 장애물에 대하여 회피해갈 것인지 아니면 넘어갈 것인지에
대하여 로직으로 하는 판단보다는 퍼지알고리즘을 적용하여 보
다 나은 판단을 해야 할 것이다
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
68
참고 문헌
[1] 안영명 ldquo곤충 형 다리구조를 갖는 4 족 보행 로봇에 관한
연구rdquo 중앙대학교 대학원 2006
[2] Masahiro Fujita ldquoOn Activating Human Communications
With Pet-Type Robot AIBOrdquo Proceedings of the IEEE
Vol92 issue 11 pp1804-1813 2004
[3] Y Fukuoka H Kimura Y Hada and K Takase
ldquoAdaptive Dynamic Walking of a Quadruped Robot
lsquoTekkenrsquo on Irregular Terrain Using a Neural System
Modelrdquo Proceedings of Robotics and Automation IEEE
Vol4 pp2037-2042 2003
[4] Hodoshima R Doi T Fukuda Y Hirose S Okamoto T
and Mori J ldquoDevelopment of TITAN XI a quadruped
walking robot to work on slopesrdquo Proceedings of
Intelligent Robots and Systems IEEE Vol1 pp792-
797 2004
[5] Choon-Young Lee Ho-Gun Choi Jun-Sik Park Keun-
Young Park Sang-Ryong Lee ldquoCollision Avoidance by
the Fusion of Different Beam-width Ultrasonic
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
69
Sensorsrdquo Proceedings of sensors IEEE pp985-988
2007
[6] Songmin Jia Akira Yasuda Daisuke Chugo and
Kunikatsu Takase ldquoLRF-Based Self-Localization of
Mobile Robot Using Extended Kalman Filterrdquo SCIE
Annual Conference pp2295-2298 2008
[7] Lu-Fang Gao Yu-Xian Gai and Sheng Fu
ldquoSimultaneous Localization and Mapping for
Autonomous Mobile Robots Using Binocular Stereo
Vision Systemrdquo International Conference on
Mechatronics and Automation pp326-330 2007
[8] Min Zhu Yunjian Ge Shangfeng Huang and Wenbing
Chen ldquoStereo Vision Rectification Based on Epipolar
Lines Match and Three Variables Projective Matrixrdquo
International Conference on Integration Technology
IEEE pp133-138 2007
[9] Han Shin Lim and Hyun Wook Park ldquoA Dense Disparity
Estimation Method using Color Segmentation and
Energy Minimizationrdquo International Conference on
Image Processing IEEE pp1033-1036 2006
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
70
[10] R Tsai ldquoA versatile camera calibration technique for
high accuracy 3D machine vision metrology using off
the shelf TV cameras and lensesrdquo Journal of Robotics
and Automation IEEE VolRA-3 No 4 pp323-344
1987
[11] ODFaugeras and GToscani ldquoThe Calibration Problem
for Stereordquo Conference on Computer Vision and
Pattern Recognition IEEE pp15-20 1986
[12] httpwwwptgreycom
[13] wwwbluetoothcom
[14] wwwatmelcom
[15] wwwrobotiscom
[16] KSFU RCGonzalez and CSG Lee ldquoRoboticsrdquo
McGRAW-HILL
[17] 정성환 이문호 ldquo오픈소스 OpenCV 를 이용한 컴퓨터 비젼
실무 프로그래밍rdquo 홍릉과학출판사
[18] 김종협 최창혁 송재복 박성기 김문상 ldquo스테레오 비전
방식을 이용한 자율 이동로봇의 격자지도 작성rdquo
한국정 공학회지 제 19 권 제 5 호 pp36-42 2002
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
71
[19] Park JM Looney CG and Chen HC ldquoFast Connected
Component Labeling Algorithm Using A Divide and
Conquer Techniquerdquo Conference on Computer and
Their Applications pp373-376 2000
[20] Barraquand J Langlois B and Latombe J rdquo Numerical
potential field techniques for robot path planningrdquo
Transaction on Systems Man and Cybernetics IEEE
Vol22 Issue 2 pp224-241 1992
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
72
부록 A iTiBO의 역기구학 해석
A1 Coordinate System
나머지 다리들은 동일한 좌표계를 가지기 때문에 한쪽 다리에
에 대해서만 해석하였다
A2 DH(Denavit-Hartenberg) Parameter
ith link ai αi di өi
First Link 1l -90deg 0 -90deg
Second Link 2l 0deg 0 0deg
Third Link 3l 0deg 0 0deg
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
73
A3 Inverse Kinematics
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
minus
minus
=
10000010
sincos0sincossin0cos
1111
1111
1
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
2222
2222
2
θθθθθθ
l
l
A
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡ minus
=
10000100
sin0cossincos0sincos
3333
3333
3
θθθθθθ
l
l
A
(1) 0cossin 11 =sdot+sdotminus yx pp θθ
(3) zpa minus=13 sinθ
0sincossin 212121 =+sdot+sdotminus app yx θθθθθ
331212121 coscossincos θθθθθθ aaapp yx =minus+sdot+sdot
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
74
(1) )(2tan0sincos baAba minusrArr=+ θθ
=gt 0sin)(cos 11 =sdotminus+sdot θθ xy pp
(2)
)(2tan)(2tan0sincos 222 ccbaAabAba minus+plusmnrArr=+ θθ
=gt 122121 sinsin)(cos θθθθθ sdotminus=sdotminus+sdot app xy
2112 θθθ =minus
(3) ⎟⎟⎠
⎞⎜⎜⎝
⎛ minusrArrminus=sdot
333 sinsin
apapa z
zθ
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
75
부록 B 모션 제어기 명령어 테이블
모션
제어
기 명
령어
테이
블
Moti
on C
ontr
oller
Com
man
d T
able
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우
76
감사의 글
언제나 그랬듯이 끝은 더 큰 시작을 의미하고 있습니다 제 곁에서 저와 함께 숨쉬었던 모든 분들에게 감사하며 더 좋은 모습 보여드리기 위해 열심히 살겠습니다
먼저 짧지 않은 대학원 생활 동안 지켜보시고 많은 조언과
충고 가르침을 아끼지 않으셨던 김진걸 교수님과 이보희 교수님 그리고 저에게 많은 가르침을 주신 모든 교수님들에게 감사 드립니다
실험실에서 동고동락을 함께한 경곤형 상호형 정식형 영국
기태 윤섭 우창 상훈형에게 감사의 마음을 전합니다 그리고 같이 로봇을 만들며 같은 꿈을 꾸었던 인구형 남길형 남영형 봉희형 경식형 재민형 성덕형 규태형 우주 해진 성철에게도 감사의 마음을 전합니다 대학 생활에서 알게 된 모든 친구들과 오랜 시간 서로를 믿고 돕던 고교 친구들 광주에 있는 광수 김형근 성일 승현 현중 유형근에게 감사 드립니다
지난 29년간 한결같이 저를 믿고 사랑하며 보살펴 주신
사랑하는 부모님께 너무나도 부족한 이 한 줄의 글로서 감히 감사의 마음 전합니다 끝으로 나의 소중한 반쪽인 경옥이에게 감사와 따뜻한 사랑을 전합니다
더 좋은 모습 보여드릴 것을 약속하며hellip
2009 02 김 기 우