1.계획서

프로젝트 계획서 요약보고서


I. 프로젝트 개요

현재 후방카메라와 초음파 센서 만을 이용해서는 운전자에게 후방에 대해 현실적으로 시각적인 정보를 제공해 주지 못한다.

우리는 이러한 현재 후방주차 시스템의 문제를 해결하기 위해서

Kinect를 이용하여 Depth 정보를 받아 image 영상과 depth 영상을 합성한다.

이 합성한 영상을 통해 운전자에게 후방에 가까워진 물체에 하이라이트 효과를 주어 좀더 현실적으로 시각정보를 제공한다.

또한 차체가 장애물과 일정거리 이상 가까워지면 자동제어가 되도록 모형자동차를 통하여 테스트 환경을 구축한다.


II. 배경기술

<Kinect 카메라 기술적 요구사항>

우선 Kinect v1을 가지고 개발 할 예정이지만, 차후에 Kinect v2 버전으로 바꾸게 될 것을 대비하여 v1v2 각각에 대한 기술적 요구사항을 나열해보도록 하겠다.

첫 번째로, Kinect v1v2의 개발 환경을 살펴보면 다음과 같다.

Kinect v1

Kinect v2

Windows 7 또는 Microsoft Windows Embedded Standard 7

Embedded 8 Standard, Windows 8, Windows 8.1

32비트(x86) 또는 64비트(x64) 프로세서

64 비트(x64) 프로세서

Dual-core2.66GHz 이상의 프로세서

Dual-core3.1 GHz 이상의 프로세서

전용 USB 2.0 버스

전용 USB 3.0 버스

2GB RAM

4GB RAM

Visual Studio 2010 이상

Visual Studio 2012 또는 2013

그 다음으로 프로젝트 결과물 확인 환경은 개발 환경과 동일한 환경이 모두 갖추어져 있어야 하며, 직접 pc를 통하여 카메라에서 출력되는 영상을 확인해야 한다. 위에 나열되어 있는 시스템적인 요구사항을 모두 갖추었다면, 기본적으로 Kinect SDK 프로그램을 설치하여 영상 출력 결과를 확인할 수 있다.


<모형차량 기술적 요구사항>

모형차량의 기술적 요구 사항을 파악하기 위해서는 우선 모형차량의 하드웨어구성을 알아야 한다. 아래 표는 모형차량의 구성요소와 개발에 필요한 기술적인 요구사항들을 나타낸 것이다.

항목

규격 및 내용

요구사항

싱글 보드 컴퓨터

Raspberry pi

Model B타입,rev2

(700 MHz ARM1176)

- linux 계열의 OS환경

- PCpi간 통신환경 설정

- WiringPi모듈 설정

- Micro controllerUART통신

마이크로 컨트롤러

STM32F103R8

(72 MHZ ARM Cortex-M3)

거리 센서

라인감지용 7

- 제어CODE Sheet필요

적외선 센서

적외선 거리센서 6SET

- 제어CODE Sheet필요

구동모터

DC서보 모터 엔코더

- 제어CODE Sheet필요

서보모터-3EA

(조향 및 카메라)

6V. 9Kg (180)

- 제어CODE Sheet필요

모형차량의 Micro controller에는 이미 제조사에서 작성된 프로그램이 업로드 되어 있고, Controller가 실행될 때 이 프로그램이 실행된다. 이 프로그램은 Pi로부터 UART통신을 통해 읽어 들이는 제어 Data에 따라 차량의 각 구성 요소를 제어하게 된다. 제어 Code sheet는 다음과 같은 형식으로 제공된다.

Code

Data1

Data2

Read/Write

설명

0x80

0-255

R

로봇 ID

0xA0

High(L-Speed)

Low(L-Speed)

W

L모터 속도설정

0xC8

W

전진(mm)

0xC9

W

후진(mm)

모형차량의 테스트나 결과물은 모형차량의 구동을 통해 직접 눈으로 확인할 수 있기 때문에, 결과물을 확인할 수 환경을 위한 기술적 요구사항은 따로 기술하지 않았다.



<현실적 제한 요소 및 그 해결 방안>

-하드웨어

1) Kinect

Depth map을 얻기 위한 카메라의 경우 외부에서 사용 가능한 depth camera는 그 비용이 예산을 초과하므로 차선책인 Kinect를 사용하여 실내를 기반으로 프로그래밍 하며 프로그램이 검증 될 경우 좋은 성능의 카메라와 호환 가능하게 구성한다.

현재까지 알려진 Kinect v1의 사양 중 depth 영상의 해상도는 320 * 240으로, 실제로 실험을 위한 영상을 촬영해 보았더니, 뚜렷하게 인식되지 않는 부분들이 많이 보였다. 특히 테두리 부분에서 그림자가 심하게 진다거나, 테두리가 명확히 드러나지 않는 부분들이 많이 보여서 확실한 depth 정보가 확보되지 않았다. 따라서 Kinect v2를 이용하여 실험을 해 보았는데,해상도가 512 * 424으로 많이 향상되어서 좀 더 세밀한 부분까지 출력이 가능한 것을 확인할 수 있었다.

Kinect v1의 단점을 보안하기 위해 Kinect v2를 사용하면 되지만, 해외 구매대행을 해야 하기 때문에 기기를 확보하는 데까지 시간이 많이 소요된다. 따라서 우선 v1을 통하여 개발을 진행하고, v2를 구매하게 된다면 기기를 바꾸어 카메라의 성능을 향상시킬 수 있도록 할 것이다.

2) 모형자동차

Depth map 을 구하기 위한 Kinect의 요구전력이 모형 차량에 내장된 파워 만으로 부족하기 때문에 외부에서 전력을 공급해야 된다.
무선으로 차량을 구성할 경우 Raspberry Pi의 무선 네트워크를 통하여 영상을 pc로 전송해야 되는데 무선 네트워크의 경우 거리나 외부 변수에 따라 그 속도가 불안정하고 평균적으로 최대 지원 속도가 54mbps이며, 연결방식이 일반적인 n방식으로 이루어질 경우 속도는 20mbps 에 머문다.

Depth map 의 영상정보와 일반 이미지 영상의 경우 초당 23Mbyte의 용량을 가지고 있으며 이를 실시간으로 pc에 전송함과 동시에 pc에서 차량제어 신호를 보내야 한다. 무선 네트워크로 구성 하였을 경우 조금 더 유동적인 움직임이 가능하지만 정보의 상호교환과 실시간 처리에 있어서 전송속도문제가 생길 여지가 있으므로 유선랜 구성을 차선책으로 둔다. Kinect의 시야각은 수평 57도 수직 43도로 좁은 편이나 시야를 위해 두개의 Kinect를 모형 차량에 설치하기엔 어댑터의 수나 공간의 협소함 같은 물리적 한계가 있다.


-소프트웨어

1) Kinect

미흡할 수 있는 Kinect의 영상처리에 부분에 대해서 인터넷 검색 및 전문 서적을 활용하여 개선 방안에 관련된 알고리즘을 찾아봐야 한다. Image 영상과 depth 영상을 합성하였을 때, 오차가 많이 발생할 수 있으므로 이를 대비하여 자연스럽게 영상을 합성할 수 있는 프로그래밍 방안을 찾아보고 적용시켜야 한다. 또한 좀 더 정밀한 depth 영상을 출력하기 위해 무조건 하드웨어를 교체하기보다는 소프트웨어 부분에서 최대한 개선시킬 수 있을만한 방법을 알아보는 것이 중요하다.

2) 모형자동차

Raspberry Pi의 경우 oslinux 기반인 반면 Kinectwindows 기반에서 사용할 수 있게 설계되어 있기 때문에 Raspberry Pi를 통한 영상 처리에 문제가 있으므로 Kinectpc에 직접 연결하여 영상을 처리한다.
Micro controller unit을 제어하기 위한 프로그램을 작성하려면, 해당 Controller의 매뉴얼을 통해 각 칩의 입출력 값 등의 하드웨어 중점적인 내용을 심도 있게 파악해야 한다. 이 프로젝트에서는 Controller에서 실행될 프로그램을 새로 프로그래밍 하는 것이 의미가 없으며, 많은 시간을 소요하므로 제조사에서 제공하는 제어 프로그램을 활용, 응용하여 사용한다.


-기타

Kinect나 모형 자동차에 대해서 오랜 시간 동안 전문적으로 다루어본 팀원들이 없기 때문에, 프로젝트를 수행하는 데 필요한 정보들이 많이 부족하다. 그래서 팀원들 간의 스터디 및 자료 조사를 철저히 하여야 한다. 계획한 대로 프로젝트가 진행되지 않을 수도 있는 가능성이 있기 때문에 개발을 할 때 신중하게 알아보고 해야 한다.


III. 역할분담

이름

역할

최승혁

- Software Project Leader

- Kinect 영상처리 알고리즘 개발

신태섭

- 모형자동차Interface 담당

- Kinect 자료수집, 모형자동차 자료수집 분석

박성우

- 모형자동차 자료수집 및 분석

- 모형자동차의 STM32F10과 컴퓨터 통신

신동호

- Kinect 자료수집 및 분석

- Depth map 의 정밀성 향상 알고리즘

최성현

- Kinect calibration 알고리즘

- KinectInterface 담당

박민욱

- 모형자동차 자료분석

- 모형자동차 회로설계,제어 알고리즘 개발


IV. 성과물 계획

대분류

소분류

기능

형식

비고

파일

Kinect image data open

Kinectimage data를 화면에 보여준다.

C++함수

Kinect depth data open

KinectDepth data를 화면에 보여준다.

C++함수

입력

Image information

Kinect로부터 카메라의 image 정보를 얻는다.

Module

depth information

Kinect로부터 depth 정보를 얻는다.

Module

car information

Controller unit으로부터 모형차의 모터 정보를 얻는다.

Module

출력

후방 영상 출력

Kinectimage datadepth data를 영상처리 한 후방의 영상이 출력된다.

Module

장애물 경고

Depth data를 분석하여 사용자에게 장애물 발견을 경고하는 경고음과 화면 경고 메시지를 출력, 모형차에 제동을 한다.

Module

알고리즘

Calibration

Kinect로부터 받아온 depth dataimage datacalibration하여 두 영상의 좌표를 맞춰준다.

C++

Image

processing

Depth dataimage data를 이용하여 장애물에 해당하는 부분에 영상처리 작업을 한다.

C++함수

모형차 모터 제어

특정 장애물이 자작차로부터 거리가 일정거리 이하면 모형차에 제동을 걸어주는 작업을 한다.

C++, UART통신

LinuxWindow환경의 control sign

UI

후방카메라 영상

후방 주차 시 합성된 후방 영상을 출력할 UI화면

Scene

Driving UI

사용자가 자작차를 컨트롤할 때의 화면

Scene


V. 개발 일정

항목

세부내용

1

2

3

4

5

6

비고

요구사항

분석

아이디어 구상회의

아이디어 선정 및

정보수집

관련분야

연구

Depth map 과 영상관련 연구

Kinect interface 연구

모형자동차interface연구

설계

하드웨어 설계

프로그램 설계

구현

영상과 depth map Calibration

모형차량과 컴퓨터 통신

모형차량 제어 알고리즘

깊이 정보 영상처리

모형차량과 Kinect 연동

테스트

주차환경 구축 및 테스트


첨부 성과물 문서와 발표자료 포함


1PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
2015 Capstone Design 1 10조(천리안) - 발표자료.pdf
2PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
2015 Capstone Design 1 10조(천리안)-계획서.pdf
3발표자료파워포인트로 작성된 발표자료입니다.
2015Capstone Design 1 10조-천리안 .ppsx
4PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
중간보고서.pdf
5PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
2차 중간보고서(최종본).pdf
6성과물이 프로젝트의 성과물입니다.
최종보고서(10조-천리안).pdf.docx
7PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
10조 천리안슬라이드.pdf
8PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
10조 천리안 포스터.pdf
Ċ
캡스톤관리자,
2015. 3. 11. 오전 4:47