과제명 자율주행 시스템 : NXT로봇 접목 작성일 2014-05-12 월요일
팀 명 동물농장
팀 원 20094033 정진수
프로젝트 구조설계서
목 차
1. 개요 ··· 3
2. 시스템 구조도 ··· 3
2.1. 시스템 구조 개요 ··· 3
2.2. 시스템 구조도 ··· 4
2.3. 모듈 설명 ··· 5
3. 데이터 구조 ··· 9
4. 상세 UI 프로토타입 ··· 11
1. 개요
자율주행이란, 장애물 인식장치와 자동 항법 장치를 기반으로 도로 환경에 맞춰 스스로 제어해 목적지까지 스스로 주행하는 기술을 말한다. 본 프로젝트에서는 제한된 주행환경을 배경으로 NXT 로봇과 스마트 폰(Android)을 이용하여 자율주행시스템을 설계하고 구현할 것이다.
본 설계서에서는 시스템 구조도를 통해서 주행 기능, 길 찾기 기능, 교통 신호인식 기능이 어떻게 수행되는지에 대해서 설명 할 것이고, 신호등의 처리에 관한 좀 더 세부적인 내용에 대한 서술과 UI 프로토타입에 대해서 더 상세하게 보일 것이다.
2. 시스템 구조도
§ 시스템 구조 개요
데이터 흐름도(DFD)란 시스템의 분석 과정이나 설계 과정에서 사용되는 그래픽을 이용한 도표로서 시스템에서의 자료의 흐름을 나타내기 위해 사용된다. 현재 프로젝트의 기능은 크게 나누면 주행 기능, 길 찾기 기능, 교통 신호인식 기능으로 나눠지는데 데이터 흐름도를 이용하여 각 기능들에 대한 데이터의 흐름을 좀 더 이해하기 쉽도록 하는 것이 목적이다.
현재 프로젝트의 기능은 크게 나누면 주행 기능, 길 찾기 기능, 교통 신호인식 기능으로 나눠진다. 이 기능들을 시스템 구조도를 이용하여 설명하고자 하는데 주행기능은 광센서와 모터의 동작을, 길 찾기 기능은 경로탐색 알고리즘을, 교통신호 인식기능은 신호등에 대한 판별과 동작에 대하여 설명할 것이다.
§ 시스템 배경도
§ 시스템 구조도
§ 구조적 방법론 DFD
모듈기능
사용자의 요구를 받아 요구대로 모터를 제어할 수 있도록 하는 모듈이다.모듈인터페이스
Input검증된 출발, 목적지 정보 환경설정 정보
Output
사용하는 파일
호출하는 모듈
모듈 M2.1, M2.2, M2.3, M2.4모듈기능
사용자는 자율주행 시스템에서 필요로 하는 정보를 입력받는 모듈이다.모듈 인터페이스
Input
Output 검증된 출발, 목적지 정보 환경설정 정보
사용하는 파일
호출하는 모듈
M1.1, M1.2, M1.3■ 모듈 M1. 요구입력
■ 모듈 M2. 처리
모듈기능
안드로이드와 NXT 모듈을 블루투스를 통해 연결 설정하는 모듈모듈인터페이스
Input 블루투스 요청 Output사용하는 파일 호출하는 모듈
모듈기능
주행에 필요한 옵션들을 설정하는 과정, 환경설정을 완료하면 설정이 저장 되고 환경설정을 실행하지 않으면 디폴트 값을 이용한다.모듈인터페이스
Input 환경설정 요청 Output 환경설정 정보사용하는 파일
호출하는 모듈 모듈기능
경로를 탐색하기 위해 출발지와 목적지를 입력 받게 되는 모듈로써 검증과 정을 거쳐 올바른 출발지와 목적지가 입력 되면 출발지, 목적지 정보를 저 장하고 그렇지 않으면 재입력을 받는다.
모듈인터페이스
Input 길 찾기 설정 요청Output 검증된 출발, 도착지점 정보
사용하는 파일
시뮬레이션 맵 데이터호출하는 모듈
모듈 M1.2.1, M1.2.2.모듈기능
경로를 탐색하기 위해 출발지와 목적지를 입력 받는 모듈모듈인터페이스
Input 출발지, 목적지 입력 요청 Output 출발지, 목적지 정보
사용하는 파일
시뮬레이션 맵 데이터■모듈 M1.1. 블루투스 설정
■ 모듈 M1.2. 길 찾기 설정
■ 모듈 M1.3. 환경설정
■ 모듈 M1.2.1 출발, 목적지점 입력
모듈기능
검증하여 저장된 출발, 목적지 정보와 맵 데이터를 이용 경로를 탐색하는 모듈모듈인터페이스
Input 검증된 출발, 목적지 정보 Output 방향정보가 포함된 경로정보
사용하는 파일
시뮬레이션 맵 데이터호출하는 모듈
모듈 M2.1.1, M2.1.2.모듈기능
입력된 출발지, 목적지 정보가 올바른 것인지 검사하는 모듈모듈인터페이스
Input 출발지, 목적지 정보 Output 검증 결과
사용하는 파일 호출하는 모듈
■ 모듈 M1.2.2 입력 검증
■ 모듈 M2.1. 길 찾기
모듈기능
탐색된 경로 및 환경설정을 통해 입력된 정보를 통해 행동제어를 계산하여 모터를 제어하여 로봇이 동작할 수 있도록 하는 모듈모듈인터페이스
Input 환경설정 정보, 방향정보가 포함된 경로정보, 교통신호 정보 Output 정지선 정보
사용하는 파일
호출하는 모듈
모듈 M2.3.1., M2.3.2, M2.3.3, M2.3.3.4모듈기능
검증된 출발지, 목적지 정보를 이용하여 경로를 탐색하는 모듈. 경로를 탐 색하게 되면 경로 정보에 산출된 경로가 저장된다.모듈인터페이스
Input 검증된 출발, 목적지 정보 Output 경로 정보
사용하는 파일 호출하는 모듈
■ 모듈 M2.3 주행제어
■ 모듈 M2.1.1. 최단 경로 탐색
모듈기능
탐색된 경로에 방향정보를 포함 시키는 모듈. 노드간의 방향정보를 이용 하여 탐색된 경로에 방향정보도 포함시켜 저장한다.모듈인터페이스
Input 경로 정보
Output 방향정보가 포함된 경로 정보
사용하는 파일
노드의 방향 정보호출하는 모듈
■ 모듈 M2.1.2. 방향 산출
모듈기능
촬영된 이미지를 분석하여 교통신호 정보를 저장하는 모듈모듈인터페이스
Input 이미지 정보 Output 교통신호 정보
사용하는 파일
호출하는 모듈
모듈기능
광 센서를 이용하여 라인 및 정지선의 정보를 얻기 위한 모듈. 정지선이 입 력되면 입력된 정지선 정보를 저장한다.모듈인터페이스
Input 라인인식 요청
Output 정지선 정보, 라인 정보
사용하는 파일
호출하는 모듈
모듈기능
광 센서를 이용하여 라인 및 정지선의 정보를 얻기 위한 모듈. 정지선이 입 력되면 입력된 정지선 정보를 저장한다.모듈인터페이스
Input 라인인식 요청
Output 정지선 정보, 라인 정보
사용하는 파일
호출하는 모듈
모듈기능
광 센서를 이용하여 라인 및 정지선의 정보를 얻기 위한 모듈. 정지선이 입■ 모듈 M2.2.2. 영상 분석
■ 모듈 M2.3.1. 라인 인식
■ 모듈 M2.3.1.1 광 센서
■ 모듈 M2.3.1.2 라인 분석
모듈기능
방향 정보가 포함된 경로 정보 및 라인 정보를 이용하여 현 위치를 대략 적으로 갱신하며 남은 경로를 새로 갱신하는 모듈모듈인터페이스
Input 라인 정보, 방향정보가 포함된 경로정보 Output 방향정보가 포함된 경로정보
사용하는 파일 호출하는 모듈
모듈기능
사용자의 입력으로 저장된 환경설정, 출발지 목적지를 통해 산출된 경로 정보, 정지선에서 인신된 교통신호, 그 밖의 라인 정보를 종합하여 모터 의 제어 값을 계산하는 모듈
모듈인터페이스
Input환경 설정, 방향정보가 포함된 경로정보, 교통 신호정보, 라인정보
Output 모터 제어
사용하는 파일
호출하는 모듈
모듈기능
행동 제어 계산에서 나온 값들을 통해 모터를 제어하여 로봇의 바퀴를 회전 시키는 모듈Output 정지선 정보, 라인 정보
사용하는 파일
호출하는 모듈
■ 모듈 M2.3.2. 경로 정보, 현 위치 갱신
■ 모듈 M2.3.3. 행동 제어 계산
■ 모듈 M2.3.4. 바퀴
3. 데이터 구조
△ 시뮬레이션 맵 데이터
시뮬레이션 맵 맵 거리 정보
휴리스틱 거리정보
- 출발지, 목적지 지점: {P1, P2, P3, P4, P5}
- 교차로 지점: {C1, C2, C3, C4}
데이터 명 내용
블루투스 요청 블루투스 연결을 기능을 수행하는 On/Off 환경 설정 요청 환경설정 기능을 수행하는 On/Off 길 찾기 설정 요청 길 찾기 설정을 기능을 수행하는 On/Off
출발, 목적지 정보 입력한 출발지, 도착지 정보 값 (출발지 이름, 도착지 이름)
- 노드의 정보: 이웃노드정보(이웃 노드의 이름, 거리 값)를 리스트로 저장 Ex) C2 : (C1, 6), (P5, 6) (C4, 6)
- 휴리스틱 거리 정보: 출발지에서 목적지까지의 일직선상의 거리 (출발지 지점의 이름, 목적지 지점의 이름, 휴리스틱 거리 값)
△ 신호등 이미지 데이터
(이미지 이름, 색상 정보(R,G,B), 신호 의미)
△ 세부 데이터 정리
지, 정지) )
정지선 정보 광센서가 인식한 정보
촬영 요청 정지선 정보를 받아드려 카메라에 영상촬영을 요청On/Off
이미지 정보 카메라로 촬영한 이미지 정보
교통신호정보 카메라로 촬영한 이미지를 분석하여 행동을 제어할 정보 라인인식 요청 광센서가 라인을 인식하기 위한 요청On/Off
갱신된 방향 정보가 포함된 경로 정보
출발, 도착 지점 정보를 이용하여 탐색된 경로정보를 주행한 경 로를 제거한 경로정보 ( (다음 노드1, 방향), (다음 노드2, 방향), (다음 노드3, 방향)... (도착지, 정지) )
라인 정보 광 센서가 인식한 라인에 대한 정보
검증 결과 출발지 목적지가 겹치지않았는지를 판별하는 정보 On/Off
1. 앱 시작 시 화면 2. 블루투스 설정, 주행옵션을 정하는 화면
4. 환경 설정으로 소리와 주행 속도 결정 화면 3. 신호인식을 사용하는 화면