• 검색 결과가 없습니다.

Peer Peer Peer

N/A
N/A
Protected

Academic year: 2021

Share "Peer Peer Peer"

Copied!
73
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

碩碩碩 碩 士士士 士 學學學 學 位 位位 位 論 論論 論 文 文文 文

P P PP e e ee e e ee rrrr --- -

tttt oo oo - -- -

P P PP e e ee e e ee rrrr

2 22 2 0 00 0 0 00 0 7 77 7 禹 禹 禹禹 薰 薰 薰薰 濟 濟 濟濟

工學碩士學位論文 工學碩士學位論文 工學碩士學位論文 工學碩士學位論文

Peer Peer Peer

Peer- - - -to to to to- -Peer - - Peer Peer Peer 방식을 방식을 방식을 방식을 이용한 이용한 이용한 이용한 무인 무인 무인

무인 차량 차량 차량 차량 시스템 시스템 시스템 시스템의 의 통신 의 의 통신 통신 통신 아키텍처 아키텍처 아키텍처 아키텍처 개발 개발 개발 개발

Development Development Development

Development of of of of Communication Architecture Communication Architecture Communication Architecture Communication Architecture ffffor Unmanned or Unmanned or Unmanned Vehicle or Unmanned Vehicle Vehicle System Vehicle System System System with with with with Peer Peer- Peer Peer - - -to to to to- -P - - P P Peer eer eer eer

國民大學校 國民大學校 國民大學校

國民大學校 自動車工學專門大學院 自動車工學專門大學院 自動車工學專門大學院 自動車工學專門大學院 전자제어시스템

전자제어시스템 전자제어시스템

전자제어시스템 專攻 專攻 專攻 專攻

禹 禹

禹 禹 薰 薰 薰 薰 濟 濟 濟 濟

20 20 20 200 0 07 0 7 7 7

(2)

碩士學位論文 碩士學位論文 碩士學位論文 碩士學位論文

Peer Peer Peer

Peer- -to - - to to- to - -Peer - Peer 방식을 Peer Peer 방식을 방식을 이용한 방식을 이용한 이용한 무인 이용한 무인 무인 무인 차량

차량 차량

차량 시스템의 시스템의 시스템의 통신 시스템의 통신 통신 통신 아키텍처 아키텍처 아키텍처 아키텍처 개발 개발 개발 개발

D D D

Development evelopment evelopment of evelopment of of of Communication Communication Communication Communication Architecture

Architecture Architecture

Architecture for Unmanned for Unmanned for Unmanned for Unmanned Vehicle Vehicle Vehicle Vehicle System

System System

System with P with P with P with Peer eer eer- eer -to - - to to- to - -Peer - Peer Peer Peer

國民大學校 國民大學校 國民大學校

國民大學校 自動車工學 自動車工學 自動車工學 自動車工學專門大學院 專門大學院 專門大學院 專門大學院 전자제어시스템

전자제어시스템 전자제어시스템

전자제어시스템 專攻 專攻 專攻 專攻 禹

禹 禹

禹 薰 薰 薰 薰 濟 濟 濟 濟

200

200

200

2007 7 7 7

(3)

P P

P Peer eer eer eer- - - -to to to- to -Peer - - Peer Peer 방식을 Peer 방식을 방식을 방식을 이용한 이용한 이용한 이용한 무인 무인

무인 무인 차량 차량 차량 시스템 차량 시스템 시스템 시스템의 의 통신 의 의 통신 통신 통신 아키텍처 아키텍처 아키텍처 아키텍처 개발 개발 개발 개발

지도교수 지도교수 지도교수

지도교수 김 김 김 김 정 정 정 정 하 하 하 하

이 이 이

이 논문 논문을 논문 논문 을 을 석사학위 을 석사학위 석사학위 청구논문 석사학위 청구논문으로 청구논문 청구논문 으로 으로 으로 제출 제출 제출 제출함 함 함 함

200 200 200

2007 7 7 7년 년 년 년 7 7 7 7월 월 월 월

국민대학교 국민대학교 국민대학교

국민대학교 자동차공학전문대학원 자동차공학전문대학원 자동차공학전문대학원 자동차공학전문대학원 전자제어시스템

전자제어시스템 전자제어시스템

전자제어시스템 전공 전공 전공 전공 우

우 우

우 훈 훈 훈 훈 제 제 제 제 200

200

200

2007 7 7 7

(4)

우훈제 우훈제 우훈제 우훈제의 의 의 의 석사학위 석사학위 석사학위

석사학위 청구논문을 청구논문을 청구논문을 청구논문을 인준함 인준함 인준함 인준함....

200 200

200 2007 7 7 7년 년 년 년 6 6월 6 6 월 월 21 월 21 21 21일 일 일 일

심사위원장 심사위원장 심사위원장

심사위원장 이 이 이 운 이 운 운 운 성 성 성 성 ○ ○ ○ ○ 심사위원 심사위원

심사위원 심사위원 장 장 장 용 장 용 용 용 훈 훈 ○ 훈 훈 ○ ○ ○ 심사위원 심사위원

심사위원 심사위원 김 김 김 정 김 정 정 정 하 하 하 하 ○ ○ ○ ○

국민대학교 국민대학교 국민대학교

국민대학교 자동차공학전문대학원 자동차공학전문대학원 자동차공학전문대학원 자동차공학전문대학원

(5)

목 목 목 목 차 차 차 차

목 차 ⅰ

그 림 목 차 ⅳ

표 목 차 ⅵ

국 문 요 약 ⅶ

Ⅰ. 서 론 1

1.1 연구 배경 1

1.2 연구 동향 2

1.2.1 국외 연구 동향 2 1.2.2 국내 연구 동향 5

1.3 연구 목적 7

Ⅱ. JAUS 9

2.1 JAUS Overview 9

2.1.1 Volume I: JAUS Domain Model 10 2.1.2 Volume II: JAUS Reference Architecture 10 2.1.3 Volume III: JAUS Document Control Plan 11

2.2 JAUS Hierarchy 12

2.3 JAUS Nomenclature 13 2.3.1 System 계층 13 2.3.2 Subsystem 계층 13

2.3.3 Node 계층 14

2.3.4 Component 계층 14

(6)

- ii -

2.3.5 Instance 계층 14

2.4 무인 자율 차량 시스템 15

2.4.1 횡방향 제어 18

2.4.2 종방향 제어 19

2.5 차량의 센서 시스템 및 인터페이스 20

2.6 장애물 인식 시스템 21

2.6.1 레이저 시스템 21

2.6.2 비전 시스템 23

2.7 항법 시스템 24

2.8 JAUS 계층으로 나눈 전체 시스템 아키텍처 25

Ⅲ. JAUS를 따른 Peer-to-Peer 통신 아키텍처 27 3.1 JAUS Standards 27 3.1.1 Textual Data Representation 27 3.1.2 Numerical Data Representation 28 3.1.3 Byte Ordering 28

3.2 네트워킹의 기초 30

3.2.1 네트워크 지연(latency) 30 3.2.2 대역폭(bandwidth) 32 3.2.3 네트워크 프로토콜(protocol) 33 3.3 Peer-to-Peer 통신 아키텍처 35 3.3.1 서버 vs. 클라이언트 35 3.3.2 Peer-to-Peer Topology 37 3.4 무인 자율 차량의 계층 간 통신 아키텍처 39

3.5 통신 메시지 셋 42

(7)

Ⅳ. 실험 및 결과 44

4.1 개발 환경 44

4.2 통신 알고리즘 45

4.3 Peer-to-Peer 테스트 46

4.4 필드 테스트 48

4.5 결과 50

Ⅴ. 결 론 54

참고문헌 56

Abstract 58

(8)

- - iv

그림 그림 그림

그림 목차 목차 목차 목차

Fig.1.1 화성 탐사용 로봇 ‘Spirit’과 ‘Opportunity’ 2 Fig.1.2 DARPA Grand Challenge 2005 3 Fig.1.3 Proposal of Urban Challenge 2007 3 Fig.1.4 상용차에 적용된 긴급 회피 기능 및 ACC 기능 4 Fig.1.5 무인 정찰 차량(左)과 스마트 UAV(右) 5 Fig.2.1 JAUS hierarchy 12

Fig.2.2 차량 시스템 16

Fig.2.3 차량 제어 드라이버 17 Fig.2.4 횡 방향 제어 드라이버 18 Fig.2.5 종 방향 제어 드라이버 19 Fig.2.6 무인 자율 차량의 각종 센서들 20

Fig.2.7 장애물 검출 센서 21

Fig.2.8 비전 시스템 23

Fig.2.9 GPS 시스템 24

Fig.2.10 무인 자율 차량 시스템의 hierarchy 25 Fig.2.11 무인 자율 차량의 전체 시스템 블록 다이어그램 25 Fig.3.1 컴퓨터 네트워크 통신에 대한 개념도 30 Fig.3.2 서버와 클라이언트의 통신 개념 35 Fig.3.3 Star topology of Peer-to-Peer 37 Fig.3.4 무인 자율 차량의 통신 topology 39 Fig.3.5 Peer-to-Peer 통신 블록 다이어그램 40 Fig.3.6 Peer-to-Peer 통신의 데이터 획득 방법 41 Fig.3.7 Peer-to-Peer 통신의 메시지 헤더 43

Fig.4.1 네트워크 라이브러리 44

Fig.4.2 통신 알고리즘 순서도 45

Fig.4.3 테스트 프로그램의 블록 다이어그램 46

(9)

Fig.4.4 실행하고 있는 테스트 프로그램의 콘솔 창 47 Fig.4.5 데이터 흐름 블록 다이어그램 48 Fig.4.6 통합 node의 GUI 프로그램 49 Fig.4.7 각 node별 통신 데이터 흐름 정보 51 Fig.4.8 사용자 모드 시 조향 반응 52 Fig.4.9 사용자 모드 시 가속 반응 52 Fig.4.10 실제 주행 시 조향 반응 53 Fig.4.11 실제 주행 시 가속 반응 53

(10)

- - vi

표 표

표 표 목차 목차 목차 목차

Table 2.1 RA의 기술 명세(version 3.2) 10

Table 2.2 차량의 명세 15

Table 2.3 레이저 스캐너의 명세 21 Table 3.1 JAUS의 데이터 형 28 Table 3.2 Big-endian vs. Little-endian 29 Table 3.3 각 회선 별 최대 대역폭 32 Table 3.4 네트워크 프로토콜 비교 33 Table 3.5 메시지 헤더의 포맷 42

(11)

국 국

국 국 문 문 문 요 문 요 요 요 약 약 약 약

본 논문에서 소개할 통신 아키텍처는 미 국방성 산하 DARPA(Defense Advanced Research Projects Agency)에서 정의한 JAUS(Joint Architecture for Unmanned System)를 참조하였다. JAUS 는 무인 시스템의 연구, 개발을 단기간 내에 효율적으로 구성할 수 있도록 하는 참조 규약이며 본 연구를 진행하면서 무인 시스템을 위해 개발한 통신 아키텍처의 근간이라 말할 수 있다.

JAUS 아키텍처를 간단히 살펴보면 몇 개의 계층으로 나눌 수 있는데 세부적으로는 하나의 system 에서 여러 개의 subsystem 계층으로 나뉘며, 나누어진 subsystem 에서 또 여러 개의 node 들로 나누어진다. Node 들은 다시 component 와 instance 계층으로 나누어지며, 각 계층들은 독립적으로 동작하거나 상호 보완적으로 동작할 수 있다. 이러한 계층으로 나누는 이유는 각기 고속으로 들어오는 여러 센서의-GPS, IMU, 다수의 레이저 스캐너, 비전 카메라, 리니어 포텐쇼미터, 엔코더 등- 데이터를 하나의 processor 에서 계산하기 위해 여러 개의 sub-processor 를 생성해야 하는데 이는 system 의 높은 퍼포먼스가 뒷받침되어야 하기 때문이다. 이러한 취약점을 보안하기 위해, 분산 컴퓨팅(distributed computing)이라는 개념을 생각해야 하는데 JAUS 프로토콜에서 각 계층을 분리한 내용과 일치되는 내용이다.

이에 본 연구를 통해 JAUS 와 JAUS 계층에 대한 설명, 그리고 JAUS 프로토콜에 따라 설계된 무인 자율 차량(Unmanned

(12)

- - viii

Ground Vehicle: UGV)의 아키텍처 구성에 대해 알아보고 무인 자율 차량의 분산된 각 계층을 유기적으로 연결하기 위해 개발한 통신 아키텍처와 Peer-to-Peer 의 연결 방법 및 각 계층간 연결에 필요한 메시지 셋과 각 시스템이 통신을 주고 받을 때 어느 정도의 지연성(latency)이 발생하는지에 대해 알아보겠다.

(13)

Ⅰ Ⅰ

Ⅰ Ⅰ. . . . 서 서 서 서 론 론 론 론

1.1 1.1 1.1

1.1 연구 연구 연구 연구 배경 배경 배경 배경

20 세기 초, 로봇에 대한 관심이 높아지면서 선진국을 중심으로 여러 나라에서 활발한 로봇 연구가 진행 중이다. 특히, 로봇 산업 분야 중 가장 활발한 연구는 인간의 간섭 및 제재 없이 로봇 단독으로 주변 환경의 정보를 읽어 들여 그에 따른 판단 및 행동을 할 수 있는 무인 기술이다. 이 무인 기술의 근간이 되었다고 할 수 있는 원격 제어(tele-operated)기술은 현재 많은 분야에서 실용적으로 사용되고 있다. 80 년대 이후로 GIS 사업을 통해 상하수도 관의 수치 관리뿐만 아니라 체계화된 사고 관리 및 유지를 위해서 크기가 작은 모바일 로봇에 카메라를 장착하여 상하수도 관의 상태와 노후 상태를 파악하는 관망용 또는 작업용 원격 제어 로봇 등을 사용하였다.

더욱이 상용 제품에서도 무인 기술을 적용하여 사람이 제품을 조작하는 상태에서 응급 상황이 발생했을 때, 제품은 즉각 무인 기술을 이용해 응급 상황에 적절히 대처하여 회피할 수 있는 기술들이 개발되고 있다. 예로, 현재 고급 상용차에 쓰이고 있는 적응 순항 제어시스템(Adaptive Cruise Control: ACC)은 운전자가 반응할 수 있는 차량의 조향은 그대로 둔 상태에서 차량의 부착된 센서를 통해 선행 차량과의 거리 및 상대 속도 등에 따른 데이터를 계산하여 자동적으로 조절하는 전자제어 시스템이다.

(14)

- - 2

1.2 1.2 1.2

1.2 연구 연구 연구 연구 동향 동향 동향 동향

1.2.1 1.2.1 1.2.1

1.2.1 국외국외국외국외 연구연구연구 동향연구 동향동향 동향

이미 미국은 NASA 의 무인 기술력으로 화성에 무인 시스템을 탑재한 두 대의 화성 탐사 로봇 ‘Opportunity’와 ‘Spirit’을 보내어 화성의 대기, 물의 흔적, 대륙의 구성요소, 생명체 존재 여부 등의 정보를 얻기도 하였다.

Fig.1.1 화성 탐사용 로봇 ‘Spirit’과 ‘Opportunity’

그리고 군사 무기 체계에 있어 고도의 직접, 첨단화를 기반으로 전장에서 군인들을 대체할 무인화 무기 체계를 계획, 개발하기 위해 미의회에서 미 국방성 산하 DARPA 에 JRP(Joint Robotic Program)등과 같은 무인 시스템에 대한 기술적인 연구를 지시하였다. 이러한 무인 기술을 대학 및 민간 기업 연구소에서 개발토록 권장하고자 차량에 무인 시스템을 탑재한 무인 자율 차량을 개발하여 2004, 2005 년에 DARPA Grand Challenge 라는 험로 자율 주행 대회를 개최하기도 했다. 2007 년에는 DARPA Urban Challenge 라는 시내 무인 자율 주행 대회를 개최할 예정이며 무인 기술의 인프라 확충에 열을 올리고 있다.

(15)

(a) Start chutes in final (b) Stanford on finish line

(c) TerraMAX (d) University of Florida Fig.1.2 DARPA Grand Challenge 2005

Fig.1.3 Proposal of Urban Challenge 2007

(16)

- - 4

최근에는 국방분야에서만 개발되던 무인 기술을 상용차에 적용하여 차량 주행의 질적인 기술 향상을 높이고 있다. 앞 차와의 거리 자동 조절을 할 수 있는 ACC, 차선 인식 기능(Lane Departure Warning System: LDS), 사이드 미러의 사각지대 정보 시스템(Blind Spot Information System: BLIS) 등은 현재 개발 중이거나 개발을 완료해 상용차량에 장착되어 있는 상황이다.

Fig.1.4 상용차에 적용된 긴급 회피 기능 및 ACC 기능

(17)

1.2.2 1.2.2 1.2.2

1.2.2 국내국내국내국내 연구연구연구 동향연구 동향동향 동향

우리나라에서도 이러한 로봇 산업은 국가 정책 산업 중 하나로 중장기적인 계획을 세우고 산학에 개발 지원을 하고 있다. 그러나, 로봇 산업 분야 중 무인 기술에 대한 기술 개발은 극히 미약하다.

특히, 무인 기술은 다른 산업의 활용도 측면에서 가장 높은 기술임에도 불구하고 아직 기반 기술 및 개발의 어려움으로 인해 몇몇 기관 및 연구소에서만 연구가 진행되고 있다.

최근 들어 미국을 중심으로 한 군사 무기체계 무인화 작업이 본격화 되면서 우리나라도 국방 과학 분야에서 무인 기술 연구에 박차를 가하고 있다.

Fig.1.5 무인 정찰 차량(左)과 스마트 UAV(右)

2012 년까지 전방 일반 전초(General Out-Post: GOP)의 경계력 강화 조치의 일환으로 GOP 과학화 경계 시스템을 단계별 시험, 보급할 예정이며, 334 억 원의 예산으로‘견마로봇’을 개발해 군수 및 민간 분야에 활용할 뜻을 밝혔으며 국방과학연구소에서는 2020 년까지 야지용 무인 자율 주행 차량을 총 10 단계의

(18)

- - 6

자율레벨을 구분하여 연구 목표를 설정하고 여러 방위 산업체와 공동 연구 개발을 하고 있다. 또한, 무인 지상무기와 함께 무인화 프로젝트가 한창 진행 되고 있는 항공기 분야에서도 무인 기술을 이용하여 무인 항공기(Unmanned Aerial Vehicle: UAV)를 미국, 이스라엘, 영국, 프랑스에 이어 2012 년까지 스마트 UAV 기술 개발 사업을 추진하고 있다.

이렇듯 무인 기술은 로봇 산업뿐만 아니라 군사 및 실생활에서도 많이 보급되고 있으며 앞으로도 기술적, 경제적인 파급 효과가 클 것으로 기대를 모으고 있다.

(19)

1.3 1.3 1.3

1.3 연구 연구 연구 연구 목적 목적 목적 목적

무인 자동차는 ACC 와 같이 하나의 시스템 또는 processor 로 작동하는 것이 아니라 서로 다른 임무를 지닌 여러 개의 시스템들이 적절한 우선권(priority)을 가지고 차량을 동작 시키게 된다. 쉽게 사람이 차량을 운전할 때, 보고, 듣고, 생각할 수 있는 형태를 무인 시스템에서는 센서의 수치 데이터와 시스템의 제어 알고리즘을 바탕으로 차량을 동작시킬 수 있어야 한다. 특히, 무인 자율 차량을 제어하기 위해서는 항법, 장애물 인식, 차량 제어, 원격 제어, path planning, 통합 시스템으로 나누어 제어하게 된다.

이렇게 시스템을 여러 계층으로 나누는 이유는 무인 자율 차량에 부착된 여러 종류의 센서가 대용량의 데이터를 고속으로 보내기 때문이다. 다수의 대용량 데이터를 하나의 시스템에서 고속으로 처리하기 위해서는 시스템 안의 여러 sub-processor 가 생성되어야 하며 각 sub-processor 는 동기적으로 임의의 수식 알고리즘을 통해 계산해야 한다. 그러나, 하나의 시스템 또는 processor 만을 이용해 차량을 실시간 제어하기에는 불가능하며 실현 가능하게 시스템을 구성하기 위해서는 안정성 및 시스템의 높은 성능이 뒷받침되어야 한다. 이에 일반적인 시스템 상황에서 앞서 말한 데이터를 처리하기 위해서는 하나의 시스템 또는 processor 가 아닌 여러 시스템을 두거나 나누어 병렬 처리를 하는 방법이 일반적이다.

JAUS 는 각 계층을 4~5 계층으로 나누어 처리하고 있다. 각 계층은 서로 유기적으로 묶여 있어 실시간으로 들어오는 고속의 대용량 데이터를 처리하며 처리된 데이터를 다시 계산된 수치로

(20)

- - 8

만들어 동기적으로 통합하고 마지막으로 차량의 조향, 속도 및 브레이크의 데이터 수치와 제어에 대한 우선 순위를 결정하도록 한다.

이렇듯 JAUS 규약에 의해 나누어진 계층을 서로 독립적, 상호보완적, 유기적으로 묶어야 하는데 이 때 사용할 수 있는 방법은 분산 컴퓨팅이며 본 논문에서는 무인 시스템을 위한 통신 아키텍처 설계와 Peer-to-Peer 통신 방법에 대해 설명하겠다.

본 논문의 구성은 다음과 같다.

제 2 장에서는 JAUS 와 JAUS 계층에 대해서 설명하고, 본 논문의 연구를 진행할 수 있도록 개발한 무인 자율 차량의 각 시스템 구성을 JAUS 와 연계해서 기술한다.

제 3 장에서는 JAUS 표준 정의, 통신에 대한 기본적인 설명, 통신 아키텍처와 Peer-to-Peer 방식에 대한 설명을 무인 자율 차량의 각 시스템과 관련해 열거한다.

제 4 장에서는 실험과 검증을 통해 각 계층이 Peer-to-Peer 방식으로 연결되었는지에 대한 통신 알고리즘을 기술한다.

마지막으로 제 5 장에서는 실험을 통해 얻은 결론으로 앞으로의 발전 방향에 대해 제시한다.

(21)

Ⅱ Ⅱ

Ⅱ Ⅱ. . . . JAUS JAUS JAUS JAUS

2.

2.

2.

2.1 1 1 JAUS Overview 1 JAUS Overview JAUS Overview JAUS Overview

JAUS 는 무인 시스템에 대한 연구, 개발과 데이터 획득의 사용에 대해 정의하도록 미 의회가 승인하고 미 국방성이 제시한 참조 규약(Reference Protocol)이다. 이 규약은 무인 시스템을 개발함에 있어 시스템을 효율적으로 구성하고 각 시스템 또는 계층간의 인터페이스 방법을 제시함으로써 원활한 데이터 송·수신이 가능하도록 되어있고 다른 시스템에 이식하여도 호환성을 유지함에 제약이 없다는 것을 제시하고 있다. 즉, JAUS 규약을 따른 무인 정찰 로봇의 시스템을 무인 자율 차량의 JAUS 시스템에 그대로 이식하여도 무인 자율 차량의 각 시스템 인터페이스가 서로 능동적으로 연결될 수 있도록 설계가 가능하다는 것이다.

또한 각 시스템 구축에 들어가는 비용과 유지 보수에 따른 기간과 비용을 최소화하는 것에도 목적을 두고 있다. JAUS 문서는 크게 3 개의 volume 으로 정의하고 있다. 각각의 volume 을 살펴보면 Volume I 은 JAUS Domain Model 에 대해 설명하고 있고, Volume II 는 JAUS Reference Architecture 규약에 대해 설명하고 있다. 마지막으로 Volume III 에서는 JAUS Document control plan 으로 정의하고 있다.

(22)

- - 10 2.1.1 Volume I: JAUS Domain Model 2.1.1 Volume I: JAUS Domain Model 2.1.1 Volume I: JAUS Domain Model 2.1.1 Volume I: JAUS Domain Model

Domain Mode (DM)은 무인 시스템을 보조하기 위해 개발자나 사용자가 이미 알고 있거나 잠재적으로 알고 있는 시스템 동작에 필요한 모든 디바이스의 모델들을 뜻하고 JAUS 의 요구사항을 정의하기 위한 목적으로 만들어진 무인 시스템의 함수와 정보를 나타낸다. 이 DM 에서는 두 가지의 다른 조직체계를 Acquirer 와 Developer 로 정의한다. Acquirer 는 무인 시스템의 동작에 필요한 물체를 결정하는 조직이고, Developer 는 Acquirer 가 결정한 무인 시스템을 설계하는 조직 체계이다.

2.1.

2.1.

2.1.

2.1.2222 Volume II: JAUS Reference Architecture Volume II: JAUS Reference Architecture Volume II: JAUS Reference Architecture Volume II: JAUS Reference Architecture

Table 2.1 RA 의 기술 명세(version 3.2) Number of

Part Definition Note

RA Part 1 Architecture

Framework JAUS 의 구조를 설명.

RA Part 2 Message Definition

JAUS Definition 명세서.

이 문서는 JAUS 메시지의 모든 헤더와 데이터형을 명세화하였고 각 계층별 통신 manager 에 대해 설명하였다.

RA Part 3 Message set JAUS 의 모든 메시지에 대한 명세서.

(23)

Reference Architecture (RA)는 무인 시스템 상에서 JAUS 를 참조하여 무인 시스템을 설계할 Developer 가 기술적 명세를 서술하기 위한 문서이다. 이는 Acquirer 가 기술적인 적합성을 이용하기 위해 참조하는 매뉴얼과 같다. Table 2.1 은 기술적 명세서의 각 파트 별 서술 내용을 나타내고 있다.

2.1.3 Volume III: JAUS Document Control Plan 2.1.3 Volume III: JAUS Document Control Plan 2.1.3 Volume III: JAUS Document Control Plan 2.1.3 Volume III: JAUS Document Control Plan

Document Control Plan(DCP)은 개발된 무인 시스템의 JAUS 명세서에서 요청된 변경사항을 추적하고 확인하기 위해 사용된 과정을 정의하고 있다.

(24)

- - 12

2.2 JAUS 2.2 JAUS 2.2 JAUS

2.2 JAUS hierarchy hierarchy hierarchy hierarchy

Fig.2.1 JAUS hierarchy

위의 Fig.2.1 은 JAUS 의 가상적인 hierarchy 를 보여 주고 있다. 위의 hierarchy 는 최상위 계층에 하나의 system 을 두고 그 밑으로 하나 또는 여러 개의 subsystem 으로 구성되어 있으며, 각 s u b sy s t em 은 하부로 하나 또는 여러 개의 n o de 들로 구성되어 있다. Node 는 single processor 나 유기적으로 연결된 여러 processor 일 수 있다. 즉, 공유된 메모리 영역을 쓰거나 공통 backplane bus 를 이용하는 여러 processor 로 생각할 수 있다. 다시 각 node 들은 하나 또는 여러 개의 component 와 instance 로 구성되어 있다. 이 둘은 JAUS 계층에서도 가장 낮은 계층이며 응집적 기능 단위로 보통 소프트웨어로 구현되어 있다.

(25)

2.3 JAUS Nomen 2.3 JAUS Nomen 2.3 JAUS Nomen

2.3 JAUS Nomenclature clature clature clature

2.3.1 System 2.3.1 System 2.3.1 System 2.3.1 System 계층계층계층계층

이 계층은 하나 또는 여러 개의 subsystem 이 모인 구조로 이루어져 있으며 각 하위계층에 대한 원격 및 무인 인터페이스를 통하여 제어할 수 있는 가장 상위 계층이다. 이 계층은 물리적인 것보다는 추상적인 계층의 의미를 갖는다.

n A command center.

n Operator Control Unit(OCU)

n A represented name of whole layers

2.3.2 Subsystem 2.3.2 Subsystem 2.3.2 Subsystem 2.3.2 Subsystem 계층계층계층계층

Subsystem 은 독립적이고 개별적인 존재이다. 즉, 적어도 하나의 무인 시스템이 내장되어 있는 정형화된 하나의 개체이다.

n An operator control unit

n An unmanned ground mobility platform (bulldozer, tractor, ground shuttle, etc)

n An unmanned air vehicle

n An unmanned surface vehicle

n An unmanned stationary sensor

n A surveillance system

(26)

- - 14 2.3.3 Node

2.3.3 Node 2.3.3 Node 2.3.3 Node 계층계층계층 계층

Node 계층은 subsystem 안에서 동작하고 있는 개별적 운영 시스템으로 정의한다. 특히 node 는 다른 위치의 node 또는 하위 계층의 component 와의 JAUS 의 통신 메시지 트래픽에 대한 흐름 조절을 관리한다.

n A mobility controller

n A world modeling computer

n A vision processor

n A master controller

2.3.4 2.3.4 2.3.4

2.3.4 ComponentComponentComponentComponent 계층계층계층 계층

이 계층은 JAUS 계층 중 가장 하단에 있으며, 무인 시스템을 위해 단일 기능을 수행할 수 있는 능력을 갖춘 계층이다. 즉, 직접적으로 실행 가능한 processor 또는 소프트웨어를 지칭한다.

2.3.5 Instance 2.3.5 Instance 2.3.5 Instance 2.3.5 Instance 계층계층계층 계층

Instance 는 component 내에 존재한다. Node 상에서 실행하고 있는 하나의 component 에는 여러 instance 들이 존재하며 이들은 각자 고유의 ID 를 갖고 있는데 이는 각 instance 를 구별하기 위함이다. 간단히, 하나의 system 안에 여러 processor 가 일을 하는 multi-processing 과 유사한 의미를 갖는다. 이들 또한 sensor 개체들로 단정지을 수 있다.

(27)

2.

2.

2.

2.4 4 4 무인 4 무인 무인 무인 자율 자율 차량 자율 자율 차량 차량 차량 시스템 시스템 시스템 시스템

본 논문의 통신 아키텍처를 위해 개발한 무인 자율 차량은 상용차의 구조를 가진 전기 차량을 사용하였다. 종·횡 방향 제어를 위해 1kW brushed DC 모터로 견인력을 내며, 차량의 기본적인 움직임인 조향과 감속을 위한 브레이크에 각각 서보 모터를 장착하였다. 무인 자율 차량은 크게 4 개의 시스템으로 구성되어 있는데, 각 시스템에는 Windows XP™ OS 가 설치된 National Instrument 社의 산업용 컴퓨터 PXI 를 장착하였다.

각각의 PXI 시스템과 DC 모터에 전원을 공급하기 위해 6 개의 차 량 용 1 2 V 배 터 리 와 2 k W 가 솔 린 발 전 기 를 장 착 하 였 다 . 세부 제원 및 사양은 다음과 같다.

Table 2.2 차량의 명세

(28)

- - 16

차량 시스템의 역할은 크게 횡방향, 종방향 제어로 나눌 수 있다.

또한 조향각, 주행 속도 및 충전량 등 차량의 전체적인 상태를 차량 내 또는 원격 시스템에서 항상 모니터링 할 수 있도록 DAQ 를 통하여 데이터를 획득 한다.

(a) 차량 시스템

(b) 운전석 (c) 계기판 Fig.2.2 차량 시스템

(29)

무인 자율 차량의 컨트롤 시스템은 크게 Motion control 과 Driver mode control, Power control 과 DAQ driver 로 나눌 수 있다. Motion controller 는 조향과 브레이크의 모터 컨트롤을 위한 것으로 모터의 rpm 을 조절하여 차량의 조향 및 브레이크를 사용자의 제약 조건에 맞게 동작하게 된다. Driver mode control driver 는 차량의 가속을 위한 것으로 기존에 장착된 차량 모터 driver 를 사용하게 된다. 지금까지의 controller 들은 조향각과 차량의 속도 등을 홀 센서와 포텐쇼미터 및 DAQ driver 를 통하여 각각의 데이터들을 획득하며, joystick 을 이용한 haptic control 도 가능하다.

Fig.2.3 차량 제어 드라이버

(30)

- - 18 2.

2.

2.

2.444.1 4.1 .1 횡방향.1 횡방향횡방향횡방향 제어제어제어제어

차량의 이동 방향을 제어하는 횡방향 제어는 15:1 의 감속기가 장착된 100W 급 AC 서보 모터의 제어와 Rack & Pinion 기어로 하였다. 이러한 조향 제어는 데이터 신호에 대한 추종 성능이 매우 중요하여 full 조향 소요 시간 목표를 3 초 이내로 설정하였으며 조향각의 초기화와 상태 정보 획득을 위하여 포텐쇼미터를 함께 설치 하였다.

(a) 모터와 포텐쇼미터 (b) 벨트 기어 Fig.2.4 횡 방향 제어 드라이버

본 연구에서 사용된 차량의 조향은 중앙을 0°기준으로 둘 때 full 조향의 범위가 ±30° 이내로 움직인다. 이것은 본 연구에서 얻어지는 조향각 값 역시 ±30°범위 안에서 제한적으로 작동하도록 알고리즘을 구현하였다.

(31)

2.4 2.4 2.4

2.4.2 .2 .2 종방향.2 종방향종방향종방향 제어제어제어제어

종방향 제어는 크게 가속과 제동으로 나뉠 수 있는데 가속 컨트롤은 페달과 연결된 가변저항에 의해서 변화되는 전압값을 차량의 모터 컨트롤러에 입력하여 듀티값 변화에 의한 모터 회전 수를 제어하여 가속을 조절하였다. 제동의 경우 차량에 기본으로 장착되어 있는 드럼(Drum)식 브레이크를 그대로 이용하였으며 브레이크 페달을 제어하기 위해 70:1 의 감속기가 장착된 200W 급 AC 서보 모터를 이용하였다.

(a) 브레이크 제어 용 모터 (b) 포텐쇼미터 Fig.2.5 종 방향 제어 드라이버

무인 자동자가 자율 주행이 아닌 수동으로 조작할 때 브레이크 페달과 모터가 직접 연결이 되어 있을 경우 모터에 무리가 갈 수 있을 뿐만 아니라 제동 성능에 영향을 미칠 수 있다. Fig.2.5 와 같이 브레이크 페달과 모터를 flexible belt 로 연결하여 위와 같은 문제점을 해결하였다.

(32)

- - 20

2.5 2.5 2.5

2.5 차량의 차량의 차량의 차량의 센서 센서 센서 센서 시스템 시스템 시스템 시스템 및 및 및 및 인터페이스 인터페이스 인터페이스 인터페이스

Fig.2.6 무인 자율 차량의 각종 센서들

Fig.2.6 은 장애물 인식 시스템을 위한 레이저 스캐너와 stereo 비전 카메라, 항법 시스템을 위한 전자 compass 를 보여주고 있다.

위의 Fig.2.6 에 나오는 여러 센서를 시스템에 연결하기 위해서는 여러 인터페이스 방식이 있다. RS-232, 422, 485, CAN(Controller Area Network), I2C, Ethernet, Wireless Ethernet, Bluetooth, analog signal 등의 여러 인터페이스 방식을 무인 자율 차량에 장착된 각 시스템에 연결하여 센서로부터 얻은 데이터에 대해 분산 컴퓨팅을 행할 수 있도록 한다.

(33)

2.

2.

2.

2.6 6 6 장애물 6 장애물 장애물 장애물 인식 인식 인식 인식 시스템 시스템 시스템 시스템

2.

2.

2.

2.666.1 6.1 .1 레이.1 레이레이레이저저저저 시스템시스템시스템시스템

장애물 인식 시스템은 차량이 목적지까지 이동하는 동안 이동 경로상에 있는 장애물 정보를 수집하여 차량 이동을 원활하게 해주는 역할을 한다. 대표적인 장애물 정보 수집 장치로는 초음파 센서와 레이저 스캐너, RADAR 등이 있다.

(a) 레이저 스캐너 (b) 장애물 검출 이미지 Fig.2.7 장애물 검출 센서

Table 2.3 레이저 스캐너의 명세 RangRang

RangRangeeee 80m/30m Scanning Angle

Scanning AngleScanning Angle

Scanning Angle Max. 180°

Angular Resolution Angular Resolution Angular Resolution

Angular Resolution 0.25°(53msec) / 0.5°(26msec) / 1°

(13msec) Data Interface

Data Interface Data Interface

Data Interface RS-232/422/485

레이저 스캐너는 레이저를 이용한 비접촉식 거리 측정방식으로 레이저 발생장치와 인식 및 레이저를 원하는 방향으로 방사할 수

(34)

- - 22

있는 거울 등으로 구성되어 있다. 측정 원리는 여러 가지 방법이 있는데, 대표적인 방법은 내부에서 발진된 레이저와 외부 물체에 반사되어 돌아온 반사파 사이의 시간차를 이용하여 거리를 측정 하게 된다. 레이저 스캐너의 측정 각도 분해능은 0.25o , 0.5 o , 1o로 선택이 가능하며 응답 시간 또한 각각 53ms, 26ms, 13ms 이다. 최대 측정 거리는 80m 정도이며, 최대 유효 거리는 30~40m 이다. 레이저 스캐너의 단점으로는 장치의 위치에서 수평으로 방사되는 빔이 2 차원의 물체만 인식한다는 것이다. 또한, 방사되는 빔의 위치보다 높거나 낮게 되면 인식을 하지 못하며 수증기와 빗물에 대해서도 민감한 반응 정도를 나타낸다.

(35)

2.

2.

2.

2.666.26.2.2 비전.2 비전비전비전 시스템시스템시스템 시스템

비전 시스템은 stereo 카메라를 이용하여 차량 전방의 물체를 파악하고 거리를 측정하여 포장 혹은 비포장도로에서 차량의 원활한 주행을 위한 주행 노면 인식 등 다양한 용도로 사용된다.

이 시스템은 렌즈가 부착된 CCD 카메라, 습득된 영상을 입력 받기 위한 프레임그레버(Frame grabber), 입력된 영상의 처리를 위한 컴퓨터 등으로 구성되어 있다.

(a) 스테레오 비전 카메라 (b) 스테레오 영상 Fig.2.8 비전 시스템

렌즈로부터 획득된 영상을 이진화 및 특정 영역을 분할하는 알고리즘을 이용하고 시스템에 저장된 형상 references 와 비교하여 그 물체가 어떤 것인지 판단 할 수 있고 물체까지의 거리까지도 계산할 수 있다. 물체가 영상에 여러 개 인식되는 경우에는 각 물체마다 라벨을 달리하여 인식함으로써 다양한 형상과 다수의 물체를 인식할 수 있다.

(36)

- - 24

2.

2.

2.

2.7 7 7 항법 7 항법 항법 항법 시스템 시스템 시스템 시스템

항법 시스템은 무인 자동차에서 global position 의 지표인 GPS 와 현 차량의 방향 벡터를 알 수 있는 디지털 compass 를 이용하여 이미 정해준 Way-point(경유점)의 좌표를 이용하여 차량의 조향각 값을 결정해준다.

Fig.2.9 GPS 시스템

GPS 로부터 들어오는 차량의 현재 위치 정보, 디지털 compass 에서 들어오는 차량의 이동 방향 방위각과 RDDF(Route Data Definition File)로부터 받는 Way-point 정보를 이용하여 조향각을 결정하며, 조향 방향은 이동하고 있는 차량의 현재 위치를 translation & rotation matrix 를 이용하여 최종적으로 좌 또는 우 조향을 결정하게 된다. 마지막으로 Way-point 에 대한 update 는 Lateral Boundary Offset(LBO)을 지정하여 차량의 Way-point 통과 여부를 판단하게 된다.

(37)

2.

2.

2.

2.8 8 8 JAUS 8 JAUS JAUS JAUS 계층으로 계층으로 계층으로 계층으로 나눈 나눈 전체 나눈 나눈 전체 전체 전체 시스템 시스템 시스템 시스템 아키텍처 아키텍처 아키텍처 아키텍처

Fig.2.10 무인 자율 차량 시스템의 hierarchy

Fig.2.10 은 JAUS 에 따른 무인 자율 차량의 전체 시스템 hierarchy 이다. 무인 자율 차량은 총 5 개의 node 로 구성되어 있으며 항법 node, 장애물 검출 node, path planning node, 차량 제어 node, 그리고 전체 차량의 모든 제어를 통합하는 통합 node 로 구성된다. 항법 node 는 GPS 를 가지고 있으며, 장애물 검출 node 는 레이저 스캐너 및 비전 component 를 갖추고 있다.

Fig.2.11 무인 자율 차량의 전체 시스템 블록 다이어그램

(38)

- - 26

각 component 와 node, node 와 node 사이의 연결은 RS- 232/422/485 과 analog signal, UDP 로 연결되어 있으며 이를 빠르고 안정된 시스템으로 개발하는 것이 이후에 필요할 것이다.

이는 매우 중요한 사항이며, 인간으로 따진다면 신경계를 만드는 것과 같은 것이다. Fig.2.11 은 각 계층간 다양하게 연결된 상태를 보여주고 있다.

(39)

Ⅲ. . . . JAUS JAUS JAUS JAUS 를 를 따른 를 를 따른 따른 Peer 따른 Peer Peer Peer- -to - - to to to- - - -Peer Peer Peer Peer 통신 통신 통신 통신 아키텍처 아키텍처 아키텍처 아키텍처

3 3 3

3....1 1 1 JAUS Standards 1 JAUS Standards JAUS Standards JAUS Standards

JAUS 규약의 Volume II 인 RA 의 Part 2 를 보면 JAUS 의 메시지 definition 에 대한 명세가 나와 있다. 이 부분은 무인 시스템의 각 계층을 연결하는 통신의 메시지 standards 와 메시지 통신에 대한 중요한 참조 및 제시를 서술하였다.

JAUS standard reference 에는 JAUS 의 표준 데이터 형과 데이터 모델에 대해 서술되어 있고, JAUS 메시지 헤더와 JAUS 메시지 형에 대해서도 정의하고 있다.

다음은 JAUS standard 에서 제시한 지침이다.

3.1.1 Textual Data Representation 3.1.1 Textual Data Representation 3.1.1 Textual Data Representation 3.1.1 Textual Data Representation

문자형 데이터(string data)는 Latin-1 ISO/IEC 8859 Latin-1 standard character set(UNICODE: 2 바이트 형식)을 따라야 한다.

문자열 데이터에서 전체 문자의 수가 고정이라면 끝자리에 NUL(0 decimal, 00 hex)은 넣을 필요가 없다. 그러나, 이 외의 형식에서는 끝자리에 NUL 을 넣어야 한다.

(40)

- - 28 3.1.2 Numerical Data Representation 3.1.2 Numerical Data Representation 3.1.2 Numerical Data Representation 3.1.2 Numerical Data Representation

JAUS 는 모든 통신 메시지 set 의 표현 및 구분을 위한 가장 기본적인 수치 데이터의 형을 맞추기 위해 다음 Table 3.1 과 같은 정의를 하였다.

Table 3.1 JAUS 의 데이터 형 Data t

Data tData t

Data typeypeype ype SizeSizeSizeSize

(in Bytes) (in Bytes)(in Bytes)

(in Bytes) RepresentationRepresentation RepresentationRepresentation

Byte 1 8bit unsigned integer

Short Integer 2 16bit signed integer

Integer 4 32bit signed integer

Long Integer 8 64bit signed integer

Unsigned

Short Integer 2 16bit unsigned integer Unsigned Integer 4 32bit unsigned integer Unsigned

Long Integer 8 64bit unsigned integer

Float 4 IEEE 32bit signed floating point number

Long Float 8 IEEE 64bit signed floating point number

3.1.3 Byte Ordering 3.1.3 Byte Ordering 3.1.3 Byte Ordering 3.1.3 Byte Ordering

CPU 는 데이터 해석을 크게 두 가지 방식으로 하게 되는데 첫 번째는 Big-endian 방식, 두 번째는 Little-endian 방식이 있다.

JAUS 에서는 이 Little-endian 방식을 쓰는데 두 방식의 차이점은 Table 3.2 에서 소개한다.

(41)

Table 3.2 Big-endian vs. Little-endian Method

Method Method

Method CPU typeCPU typeCPU typeCPU type Storage typeStorage type Storage typeStorage type EExampleEExamplexample xample

Big- endian

IBM 370, RISC 방식의 Workstation CPU,

모토로라 chipset

메모리의 낮 은 번지에 저

장하고자 하 는 데이터의 하위바이트가

저장.

0x78563412 78 56 34 12

Little- endian

X86 프로세서, 인텔 CPU, DEC 알파프로세서

메모리의 낮 은 번지에 저

장하고자 하 는 데이터의 상위바이트가

저장.

0x78563412 12 34 56 78

통신에서는 요청 또는 응답되는 데이터의 형식을 binary 형식으로 보내게 되는데 이때 알고 있어야 되는 사항이 바로 데이터 정렬(Byte ordering)이다. 각 단말장치에서 쓰는 MCU 나 CPU 가 데이터를 읽어오는 방식이 각각 틀리기 때문이다. 인텔 계열 process unit 과 모토로라 계열 process unit, 두 계열의 연산 처리 방식이 다르기 때문이다. 각 통신 메시지 단위가 1Byte 인 경우에는 문제가 되지 않지만, 2Byte 이상의 한 패킷 데이터가 연속적으로 들어오는 경우 응답을 받고 있는 쪽의 device process unit 을 먼저 알아봐야 한다. 이러한 이유로 사용할 장치의 스펙을 상세히 알아두어야 한다.

(42)

- - 30

3 3 3

3....2 2 2 네트워킹의 2 네트워킹의 네트워킹의 네트워킹의 기초 기초 기초 기초

네트워크는 도시 간을 연결하는 도로의 복잡한 미로와 같다. 이 도로에서 자동차들이 출발지부터 목적지까지 운행을 한다. 이러한 수송을 설명하기 위해서 수송 수단들, 도로의 샛길들, 교통 표지들, 교통 정체들 등을 말한다. 마치 수송 기술자가 도로 시스템과 수송 흐름을 기술할 때 쓰는 고유한 언어를 가지고 있듯이 컴퓨터 네트워크를 통한 데이터의 흐름을 기술하는 언어(protocol)가 있다. Fig.3.1 의 그림은 네트워크를 통한 컴퓨터 데이터의 흐름 특성을 잘 나타내고 있다.

Fig.3.1 컴퓨터 네트워크 통신에 대한 개념도

3.2 3.2 3.2

3.2.1 .1 .1 네트워크.1 네트워크네트워크네트워크 지연지연지연(latency)지연(latency)(latency) (latency)

지연성(latency) 또는 지연(delay)은 데이터의 비트가 한쪽 단말장치에서 다른 쪽 단말장치로 전송되는데 걸리는 시간의 총계이다. 네트워크 지연은 많은 이유로 발생한다. 첫째로, 데이터 전송은 빛의 속도 그 자체의 지연에 지배를 받는다. 데이터는 근본적으로 빛의 속도보다 빠르게 움직일 수 없다. 그리고 광섬유와 같은 운송 소재를 통하는 빛의 속도는 진공을 통한 빛의

(43)

속도보다 상당히 느리다. 둘째로 지연은 각 종단 컴퓨터들 자신으로부터 초래하기도 하는데 네트워크에 도달하기 전에 데이터가 컴퓨터의 OS 와 네트워크 하드웨어를 통과하는데도 시간이 걸린다. 이는 무시될 만한 수준이지만, 모뎀과 네트워크 하드웨어(Ethernet 과 같은)에서의 지연도 원인일 수 있다.

마지막으로 네트워크 자체에서 초래하기도 하는데 전형적으로 데이터는 source 와 목적 호스트가 직접 연결된 선로로 여행할 수 없다. 대신에 네트워크 교차점(router)을 통해 지나가야 하기 때문에 데이터는 교차점의 처리 과정에서 데이터 지연을 초래한다.

그러나, 로컬로 묶인 Ethernet LAN 통신의 데이터 지연성은 전형적으로 10ms 이하로 나타난다.

(44)

- - 32 3.2.2

3.2.2 3.2.2

3.2.2 대역폭대역폭대역폭대역폭(bandwidth)(bandwidth)(bandwidth)(bandwidth)

대역폭(bandwidth)은 네트워크가 목적지 호스트로 전달할 수 있는 데이터의 속도(rate)이다. 유효한 대역폭은 데이터를 전달하는데 쓰이는 회선의 종류에 따라 결정된다. 다음 Table 3.3 은 각 회선의 종류와 최대 대역폭을 나타내고 있다.

Table 3.3 각 회선 별 최대 대역폭 회선

회선

회선회선 형태형태형태 형태 bandwidth of Max.(bps)bandwidth of Max.(bps) bandwidth of Max.(bps)bandwidth of Max.(bps) RS-232/422/485 20K~10M

CAN 1M

Ethernet 10~100M

USB 2.0 450M

Giga-bit Ethernet 1G

네트워크 상에서의 대역폭은 사용자의 네트워크 환경에 제한적으로 영향을 받는다. 접속자 수가 늘어날수록 해당 프로토콜의 패킷 헤더의 정보에 따라 부하가 발생할 수 있다. 또한, 네트워크의 각 종단 간 거리에 대해서도 부하가 발생할 수 있다.

이에 네트워크 종단 간 사이에 라우터를 두어 이러한 대역폭 부하를 줄일 수 있다.

(45)

3.

3.

3.

3.2.3 2.3 2.3 네트워크2.3 네트워크네트워크네트워크 프로토콜프로토콜프로토콜(Protocol)프로토콜(Protocol)(Protocol) (Protocol)

네트워크 프로토콜은 두 프로그램들이 서로 통신을 하는데 사용하는 규정들의 집합을 기술한 것이다. 실제로 두 프로그램들이 서로 통신을 할 때 일반적으로 동시에 많은 프로토콜들을 사용한다. 프로그램 간 정보 교환을 위한 프로토콜도 있고, 라우터들 간의 정보 교환을 위한 또 다른 프로토콜 등이 있다.

본 연구에서 쓰인 프로토콜은 가장 대중적으로 많이 사용하고 있는 UDP(User Datagram Protocol)로 개발하였다. 다음 Table 3.4 에서는 UDP 와 TCP/IP 프로토콜에 대한 특징에 대해 비교하고 있다.

Table 3.4 네트워크 프로토콜 비교 TCPTCP

TCPTCP UDPUDP UDPUDP 연결지향형(connection-

oriented) 프로토콜

비 연결지향형(connectionless) 프로토콜

데이터 경계를 구분하지 않음 -Byte-stream 서비스

데이터 경계를 구분함 - Datagram 서비스

패킷 전송 및 순서 보장, 대역폭 오버헤드 및 지연성 있음

전달만을 위한 패킷 기반 전송으로 신뢰성은 떨어짐 대역폭 오버헤드 및 지연성 없음 1 대 1 통신(unicast) 1:1, 1: n, n:n 통신

UDP 는 TCP 보다 훨씬 축소된 서비스를 제공하지만 TCP 의 통신 오버헤드를 제거했다. 즉, 대역폭 및 지연성이 우수하다.

(46)

- - 34

그러나, 이러한 이유로 TCP 보다 상대적으로 신뢰성이 낮으며 도착 순서 보증을 하지 않는다. UDP 는 단지 데이터 패킷 전송에 최선을 다한 배달만을 제공하기 때문이다. 사용자는 이런 이유로 인해 발생되는 UDP 의 신뢰성을 다양한 통신 알고리즘으로 높일 수 있도록 패킷을 설계해야 한다.

(47)

3.3 3.3 3.3

3.3 Peer Peer Peer- Peer - - -to to to to- -Peer - - Peer Peer 통신 Peer 통신 통신 통신 아키텍처 아키텍처 아키텍처 아키텍처

현재 개발되어 사용되고 있는 통신 구조는 여러 가지가 있다.

기본적으로 통신의 연결은 호스트 vs. 호스트 형식으로 구현이 가능하며, 1:1 통신, 1:n 통신, n:n 통신이 가능하도록 되어 있다.

가장 일반적으로 설계가 되어 있는 아키텍처는 서버 vs.

클라이언트 개념이다. 다음은 일반 서버 vs. 클라이언트통신 아키텍처와 본 연구를 위해 설계된 Peer-to-Peer 아키텍처에 대해 비교 설명이다.

3.3 3.3 3.3

3.3.1 .1 .1 서버.1 서버서버서버 vs. vs. vs. vs. 클라이언트클라이언트클라이언트클라이언트

서버/클라이언트 개념은 두 개의 애플리케이션이 상호 작용하는 방식을 나타내는 용어로, 클라이언트가 서버에 요청하면 서버는 이 요청을 받아 즉각 처리하게 되며, 다시 요청한 클라이언트에 즉각 응답을 하도록 되어 있다.

Fig.3.2 서버와 클라이언트의 통신 개념

(48)

- - 36

이 때, 서버와 클라이언트는 각각 다른 곳-멀리 떨어져 있는- 에서 행하여 지는데 이 때 먼저 실행하고 있는 쪽이 서버이어야 하며, 나중에 실행하는 쪽이 클라이언트이어야 한다. 클라이언트가 서버에 접속하기 위해서는 서버의 IP 주소와 포트를 미리 알고 있어야 한다. 물론, 서버는 클라이언트가 보내어 오는 패킷에 클라이언트 주소 정보가 포함되어 있기 때문에 클라이언트의 IP 주소와 포트를 미리 알 필요는 없다.

(49)

3.3 3.3 3.3

3.3.2.2.2 Peer.2 Peer Peer Peer----toto-toto---PeerPeerPeerPeer TopologyTopologyTopologyTopology

통신을 설명하면서 연계하여 설명할 수 있는 부분이 바로 게임 부분이다. Peer-to-Peer 방식은 게임 스타 크래프트로 유행하기 시작한 아키텍처이다. 이미 그 이전에도 이 아키텍처 모델에 대한 개념은 많은 곳에서 알려져 있었지만 실제적으로 적용하기에는 아직 유효하지 않았다. 이 개념이 발달한 배경은 통신 인프라의 폭발적 증가였다. 광대한 대역폭 및 빠른 속도가 필요하게 된 게임 산업이 이러한 통신 아키텍처를 필요로 하게 된 원인이었다.

Peer-to-Peer 방식은 각 peer 간의 동기화와 일관성을 보장하기 위한 통신 아키텍처이다. 각 peer 간의 직접 통신 방법을 쓰기 때문에 낮은 지연성과 사용자 수에 따라 대역폭을 제한할 수 있고 만약 peer 간의 통신 중에 한쪽의 통신이 끊어지더라도 다른 peer 들과의 통신은 계속 지속되는 장점을 가지고 있다. Peer- to-Peer 환경에서는 중앙집중식 서버 방식이 아니므로 여러 대의 전용 서버를 갖추고 있을 필요가 없는 star 형 topology 를 가지고 있다.

Fig.3.3 star topology of Peer-to-Peer

(50)

- - 38

Fig.3.3 은 모든 peer 는 서로 묶여 있는 그물망 형태를 띠고 있다. 이러한 star 형 topology 는 각 peer 들의 위치를 서버에게 요청하며 위치 정보를 얻은 각 peer 들은 서버를 거치지 않고 직접 서로의 데이터를 교환할 수 있다는 것을 의미한다.

(51)

3.4 3.4 3.4

3.4 무인 무인 무인 무인 자율 자율 자율 자율 차량의 차량의 차량의 차량의 계층 계층 간 계층 계층 간 간 간 통신 통신 통신 통신 아키텍처 아키텍처 아키텍처 아키텍처

본 연구에서 개발한 무인 자율 차량의 시스템은 JAUS 계층의 형태와 유사하며 각 계층 간 유기적으로 연결되어 있다.

Fig.3.4 무인 자율 차량의 통신 topology

이러한 유기적 연결의 topology 는 Fig.3.4 에서 보여주는 것과 같이 Peer-to-Peer 방식의 star 형 topology 와 유사한 형태를 갖추고 있으며 각 계층은 서버와 n 개의 클라이언트로 구성하고 있다. 서버는 자신의 계층에서 계산하고 있는 데이터를 저장하고 있으며 이 저장된 데이터에 대해 다른 계층의 클라이언트에게 요청이 있을 시 요청 받은 계층의 클라이언트들은 다른 계층에 상주하고 있는 서버로 필요한 데이터를 곧바로 응답할 수 있다.

이러한 통신 방식은 낮은 성능에서도 높은 대역폭과 낮은 지연성으로 통신 구조를 갖출 수 있다. 이 아키텍처의 각 계층 연결 방식은 UDP 를 이용한 Peer-to-Peer 통신 방법을

(52)

- - 40

이용하였다. UDP 는 1:n 이라는 통신 연결 방법과 비 연결지향이라는 특수성을 갖기 때문이다.

Fig.3.5 Peer-to-Peer 통신 블록 다이어그램

각 node 별 연결 방법은 Peer-to-Peer 형식의 UDP 연결로 되어 있지만 각 component 별 연결은 다양한 방식으로 연결되어 있다. 이는 각 component 에 연결된 센서 통신 방법이 다르기 때문인데 RS-232/422/485 형식과 CAN (2.0b), firewire(IEEE 1394)로 되어 있다.

각 node 들은 자기 자신에게 연결된 센서들의 데이터들을 한 곳으로 모으거나 각 node 들끼리 통신이 가능하도록 로컬 네트워킹으로 묶여있다. 서로 통신을 하고 있는 node 중 가장 빈번하게 데이터를 받고 있는 node 는 통합 node 이며, 통합 node 는 장애물 인식 node 와 현재 진행 방향 및 위치를 알려주는 항법 node 의 데이터 중에서 우선 순위를 매기어 조향각 값과

(53)

속도 값을 결정하게 된다. 이렇게 결정된 조향각 값과 속도 값은 차량 제어 node 로 보내어 차를 제어하게 된다. 다시 차량 제어 node 에서 속도 값을 통합 node 로 피드백 하여 현재 속도를 사용자가 볼 수 있도록 한다.

Fig.3.6 Peer-to-Peer 통신의 데이터 획득 방법

각 node 계층과 component 계층에서 데이터의 획득 방법은 Fig.3.6 와 같은 형식으로 얻게 된다. 각 component(sensor process)들은 현재 연결된 센서의 데이터를 계산하여 자기 자신의 상위 계층인 node 계층의 공유 메모리에 앞서 계산된 데이터를 채운다. 계산된 데이터는 계속 공유 메모리를 저장되며 다른 n o d e ( b r a i n p r o c e s s ) 의 데 이 터 요 청 이 있 을 때 까 지 기 다리 다( WA I T ) 가 요 청이 있 을 시 동기화 b l o c k 을 걸어 데이터가 공유 메모리에 저장을 막고 요청이 있는 다른 node 에 UDP 를 이용하여 전달하게 된다. 이 획득 방법은 대역폭이 한정된 상 황 에 서 지 연 성 을 낮 추 는 데 가 장 효 율 적 인 방 식 이 다 .

(54)

- - 42

3.5 3.5 3.5

3.5 통신 통신 통신 통신 메시지 메시지 메시지 메시지 셋 셋 셋 셋

Table 3.5 메시지 헤더의 포맷

무인 자율 차량 시스템에서 쓰인 통신 메시지 셋에는 헤더와 데이터 필드로 구성되어 있다. 헤더의 내용으로는 자신이 필요한 node 의 메시지 ID, 긴급 정지, 초기화, 현재 node 의 상태 필드로 되어 있으며, 데이터의 필드 사이즈를 알기 위해서 데이터 길이 비트로 구성하였다. 데이터 길이 비트는 공용체(union)로 되어 있어 Data length_1 과 Data length_2 로 나누어져 있다. 이는 항법 node 의 GPS 와 IMU 데이터를 동시에 받을 수 있으며 통합 node 에서 차량 제어 node 로 조향각 및 차량 속도의 값을

(55)

보내도록 설계하였다. 설계된 데이터 헤더의 각 데이터 포맷을 Table 3.5 에 정의하였다.

Fig.3.7 은 무인 자율 차량 시스템에서 쓰인 Peer-to-Peer 통신의 메시지 헤더 필드를 표현하였다.

Fig.3.7 Peer-to-Peer 통신의 메시지 헤더

(56)

- - 44

Ⅳ Ⅳ Ⅳ

Ⅳ. . . . 실험 실험 실험 실험 및 및 및 및 결과 결과 결과 결과

4.

4.

4.

4.1 1 1 개발 1 개발 개발 개발 환경 환경 환경 환경

본 연구에서 개발한 통신 프로그램은 BSD(Berkeley Software Distribution) 소켓을 기반으로 만들어진 윈도우즈용 윈도우 소켓(이하 Winsock)을 이용하여 개발하였다. Winsock 은 현재 version 2.2 까지 나와있으며 API 라이브러리는 WS2_32.dll 을 이용하였다. 개발 환경은 Windows XP 상에서 Visual C++ 6.0 을 이용해 개발하였으며 개발 방법은 DLL(Dynamic Linked Library)형식인 네트워크 라이브러리로 개발하였다. 이는 각 component 의 개발 툴이 다르기 때문에 같은 윈도우 상에서 범용적으로 사용할 수 있도록 만들기 위해서이다.

Fig.4.1 네트워크 라이브러리

(57)

4.

4.

4.

4.2 2 2 통신 2 통신 통신 통신 알고리즘 알고리즘 알고리즘 알고리즘

Fig.4.2 통신 알고리즘의 순서도

UDP 소켓은 blocking 함수(sendto, recvfrom)로 이용하였으며, 1 개의 서버와 다수의 클라이언트들을 멀티 스레딩 방식으로 연결하였다. 각 node 들의 통신 방법은 비동기적으로 통신 데이터를 요청, 요구할 수 있도록 설계되어 있다. 각 node 들의 통신 데이터 요청 순환 시간은 50Hz 이며, 요청 받은 다른 node 들의 데이터 응답은 받는 즉시 이루어진다.

(58)

- - 46 4.

4.

4.

4.333 Peer3PeerPeerPeer----toto-toto--Peer-PeerPeer 테스트Peer 테스트테스트 테스트

무인 자율 차량에 네트워크 라이브러리를 적용하기 이전에 Peer-to-Peer 통신에 대한 연결 테스트를 수행하였다. 테스트용 프로그램은 네트워크 라이브러리를 적용하여 Visual C++ 6.0 에서 콘솔용 응용 프로그램으로 개발하였다.

연결 테스트 프로그램은 4 대의 PC 에 설치하여 로컬 망을 이루게 하고, 각 PC 의 OS 상에서 시스템 시간 데이터(1 번 PC:

Date, 2 번 PC: Hour, 3 번 PC: Minute, 4 번 PC: Seconds)를 이용하여 생성하도록 한다.

이에 각 PC 의 시간 데이터는 다른 PC 와 서로 상호 교환하며 받은 데이터를 기초로 화면에 표시한다. Fig.4.3 은 테스트 프로그램이 어떻게 동작하는지에 대한 블록 다이어그램이다.

Fig.4.3 테스트 프로그램의 블록 다이어그램

(59)

예로, 만약 날짜를 생성하고 있는 PC 를 1 번 PC 라고 가정하면 1 번 PC 는 시간, 분, 초에 대한 데이터는 생성하지 않고 있다.

생성되지 않는 데이터에 대해서는 각 2, 3, 4 번 PC 에서 자신이 필요한 데이터를 생성하고 있기 때문에 1 번 PC 는 데이터 요청을 각 PC 에 하게 된다. 1 번 PC 에 요청된 각 시간 데이터는 즉각 응답을 한다. 이러한 반복은 다른 PC 상에서 다음과 같은 “DD- MM-YYYY_hh:mm:ss” 형태로 표기되며, 20ms 마다 데이터에 대한 요청을 하며 950ms 마다 화면에 표시하도록 했다.

Fig.4.4 실행하고 있는 테스트 프로그램의 콘솔 창

F i g . 4 . 4 는 네 트 워 크 라 이 브 러 리 를 이 용 하 여 연 결 테 스 트 프로그램을 실행한 콘솔 창이며, 현재 이 프로그램이 실행하고 있는 PC 는 Date 를 생성하고 있는 PC 이다. 이 그림의 맨 위 3 번째 라인을 보면 Date 는 처음부터 표시하고 있지만 각 시간 데이터는 시간이 지날수록 점차 발생하는 것을 보여 주고 있다.

(60)

- - 48

4.4 4.4 4.4

4.4 필드 필드 필드 필드 테스트 테스트 테스트 테스트

현재 개발한 무인 자율 차량에는 4 개의 각기 다른 node 들이 존재한다. 이들 각기 다른 node 들은 또 각기 다른 sensor 들의 데이터를 받아 계산을 하는데 항법 node 는 차량의 진행 방향에 대한 θnav 및 RDDF 파일 안의 각 Way-point 별 속도 vnav 와 장애물 감지 node 에서는 차량 회피 방향에 대한

θ

obs , 통합

node 는 이 두 node 의

θ

θ

nav

θ

obs 두 값으로 통합, 비교해

steering

θ

의 우선 순위를 정하며 차량의 속도 또한,

v

highprior 값으로

결정한다. 통합 node 와 연결되어 있는 차량 제어 node 는 받아온 조향각과 속도를 유지 시킨다. 다시 차량 제어 node 는 통합 node 로 현재 조향각과 속도 데이터를 피드백한다.

Fig.4.5 데이터 흐름 블록 다이어그램

수치

그림     목차 목차 목차 목차
표 표     목차 목차 목차 목차
Table 2.1 RA 의  기술  명세(version 3.2)  Number of
Table 2.2  차량의  명세
+3

참조

관련 문서

❑ What peer review does best is improve the quality of published papers by motivating authors to submit good quality work – and helping to improve that work through the

Social emotional classroom climate in child care, child teacher relationships and children's second grade peer relations.. Teacher turnover and teacher

The effects of mindfulness and social support (family support, peer support) on the interpersonal competence of college students showed significant positive

According to process analysis ‘the process of establishing peer-relationships between disabled children and non-disabled children in inclusive classeses of

The objective of this study is to understand the effects of walking activity using fairy tales on the peer competence and emotional intelligence of

This study is to determine the effect of peer abusive supervision on the organizational silence and service oriented organizational citizenship behaviors

The purpose of this study is to investigate the effect of peer-mentoring on the achievement and learning attitudes of middle school students toward

From these results, we suggested that it is necessary to invigorate nature-experience in education program for alternative school so that self-esteem and