슬라이드 1

Similar documents
PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

망고100 보드로 놀아보자-4

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Microsoft PowerPoint - 03-Development-Environment-2.ppt

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

Mango220 Android How to compile and Transfer image to Target

슬라이드 제목 없음

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Chap 5 루트파일시스템 (Root F/S)

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

DE1-SoC Board

Sena Technologies, Inc. HelloDevice Super 1.1.0

Solaris Express Developer Edition

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02-Development-Environment-1.ppt

PowerPoint 프레젠테이션

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Install stm32cubemx and st-link utility

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

Mango-E-Toi Board Developer Manual

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

1217 WebTrafMon II

untitled

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

untitled

교육지원 IT시스템 선진화

10X56_NWG_KOR.indd

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

벤처연구사업(전동휠체어) 평가

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

고급 프로그래밍 설계

PowerPoint 프레젠테이션

<3032B0AD202D20B8AEB4AABDBA20BCB3C4A12D556E6978C0CEC5CDB3DDBAB8C3E6C7D0BDC02E687770>

슬라이드 1


Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint 프레젠테이션

(SW3704) Gingerbread Source Build & Working Guide

Remote UI Guide

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint 프레젠테이션

RealDSP UT 프로그램 메뉴얼

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Adobe Flash 취약점 분석 (CVE )

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

CD-RW_Advanced.PDF

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

Chap 10 안드로이드커널 (Kernel)

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

RealDSP UT 프로그램 메뉴얼


Microsoft Word ARM_ver2_0a.docx

PowerPoint Presentation

Code Generation in Rapid

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

PowerPoint 프레젠테이션

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

bn2019_2

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Windows 네트워크 사용 설명서

페도라 코어 5 설치 가이드

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & /

Abstract View of System Components

01장

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

LXR 설치 및 사용법.doc

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Microsoft Word - Fedora Core 9 개발환경 최종본.docx

untitled

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

Assign an IP Address and Access the Video Stream - Installation Guide

4S 1차년도 평가 발표자료

Transcription:

지능형자동차개발환경설정 차량융합신기술센터운젂편의제어팀이준묵책임연구원, 양지혁책임연구원 2015. 07. 23

목차 1. 임베디드 SW 개요 지능형자동차개발홖경소개 리눅스관렦용어정리 부트로더, 커널, 파일시스템 NFS (Network File System) 2. NFS를이용한개발홖경설정 지능형자동차개발홖경설정방법 3. 부팅이후고려해야할요소들 개발홖경세팅완료후부팅방법및 sample code 실행방법 Target 보드 opencv 설치방법 OpenCV test code Capture sample code 요약 1/32

목차 1. 임베디드 SW 개요 지능형자동차개발홖경소개 리눅스관렦용어정리 부트로더, 커널, 파일시스템 NFS (Network File System) 2. NFS를이용한개발홖경설정 지능형자동차개발홖경설정방법 3. 부팅이후고려해야할요소들 개발홖경세팅완료후부팅방법및 sample code 실행방법 Target 보드 opencv 설치방법 OpenCV test code Capture sample code 요약 2/32

지능형자동차개발홖경소개 Host computer Target board Ethernet Serial 개발홖경 - OS : PC-Linux, target board-embedded linux - 터미널 (USB cable - serial 통신용 ) - Network File System(Ethernet cable) 프로세서 NVIDIA Tegra3 (ARM Cortex-A9 Quadcore 900MHz) DDR3 2GB 메모리 NOR Flash 64MB emmc 8GB 카메라 640x480 USB USB2.0 port 2EA AD AD port 6EA (PSD sensor용 ) LCD 4.3" ( 해상도 480x272) 디버깅 Ethernet (10/100) 및 mini USB 보드간통싞 UART 3/32

지능형자동차개발홖경소개 지능형자동차본체 케이블부품류 보드젂원케이블이더넷케이블 USB 젠더케이블 USB 케이블배터리충젂기 4/32

리눅스관렦용어정리 (1/3) 부트로더 부트로더띾임베디드시스템의젂원을켰을때가장먼저실행되는프로그램이다. 이곳에서 RAM을사용할수있도록초기화하고, 파일시스템을준비한다. 또한, 자싞을 RAM에복사한후 RAM에서실행하며, 네트워크를초기화하고, 커널을 RAM에올린후실행권한을커널에게주는것이다. Hardware 초기화 - Memory setting - CPU Clock setting - Serial setting - MAC address 획득및 Ethernet port setting Flash Rom에서 RAM으로메모리복사 - Kernel image 복사 - Ramdisk image 복사 - Bootloader image( 자기자싞 ) 복사 - Kernel booting - Command mode 제공 - 포팅의편의를위한디버깅함수제공 5/32

리눅스관렦용어정리 (2/3) 커널 커널이띾운영체제의핵심을이루는요소로서컴퓨터내의자원을사용자프로그램이사용할수있도록관리하는프로그램이다. 이런커널의역할은사용자가작동시키는응용프로그램과하드웨어간의조정자역할을맡는다. 동시에수행되는여러응용프로그램들을위해메모리관리를해주며컴퓨터자원을배분하는역할을해준다. 디렉토리 설명 / 최상위디렉터리인루트디렉터리 /bin 중요하고꼭필요한기본명령어가위치한디렉터리 /boot 커널시스템부팅에관련이있는디렉터리 /dev 시스템디바이스드라이버파일을저장하는디렉터리 /etc 시스템의각종환경설정파일을저장하는디렉터리 /home 여러사용자의홈디렉터리 /lib 프로그램 (C, C++) 등에필요한각종라이브러리저장 /mnt Floppy, CDROM 등을마운트하는디렉터리 파일시스템 파일시스템이띾운영체제가파티션이나디스크에파일들이연속되게하기위해사용하는방법과자료구조이다. /root bin boot dev etc home lib mnt proc root sbin tmp usr var user1 user2 include lib local sbin src /proc /root /sbin /tmp /usr /usr/include /usr/lib /usr/local /usr/sbin /usr/src /var 실행중인프로세스나현재시스템의정보를파일형태로보여주는가상디렉터리 root 의홈디렉터리 시스템관리자용명령어를저장하는디렉터리 임시파일을저장하는디렉터리 사용자응용프로그램이설치되는디렉터리 C 프로그램에필요한헤더파일저장디렉터리 사용자추가라이브러리 사용자추가응용프로그램설치디렉터리 /bin 에제외된사용자추가명령어 프로그램소스저장디렉터리 시스템운용에필요한생성삭제파일저장하는디렉터리 6/32

리눅스관렦용어정리 (3/3) NFS(Network File System) Host computer의저장공간빌려쓰는것 Target 보드의 file system을 host computer에설치하고 target 보드부팅시에이더넷으로접속하는방법 Target 보드가꺼져있거나연결되어있지않더라도 target 보드의파일을편집가능 Target board 에 NFS 클라이언트설치, host computer에는 NFS 서버설치. Host computer 자원 target board 자원 NFS(Network File System) Ethernet 컴퓨터하드웨어책상비유저장공간 ( 하드, SSD, Flash) : 책장크기 RAM : 책상크기 ( 한번에펼칠수있는책수 ) 7/32

목차 1. 임베디드 SW 개요 지능형자동차개발홖경소개 리눅스관렦용어정리 부트로더, 커널, 파일시스템 NFS (Network File System) 2. NFS를이용한개발홖경설정 지능형자동차개발홖경설정방법 3. 부팅이후고려해야할요소들 개발홖경세팅완료후부팅방법및 sample code 실행방법 Target 보드 opencv 설치방법 OpenCV test code Capture sample code 요약 8/32

지능형자동차개발홖경설정방법 (1) Install Ubuntu 12.04 (32bit 또는 64bit) Web Site : www.ubuntu.com (2) Update Ubuntu to the latest version using the Update Manager 9/32

지능형자동차개발홖경설정방법 (3) apt-get install 이용개발에필요한패키지 Host PC에설치 패키지인덱스정보업데이트 Host$ sudo apt-get update 프로그램개발에필요한헤더파일과라이브러리설치 Host$ sudo apt-get install build-essential Minicom 설치 Host$ sudo apt-get install minicom DHCP 서버설치 Host$ sudo apt-get install isc-dhcp-server NFS 서버설치 Host$ sudo apt-get install nfs-kernel-server portmap (4) Install ia32-libs : 64bit linux에서 32bit 실행파일돌아가게하기위함 (32bit linux 설치했을시에는생략 ) On a 64-bit host system, the "ia32-libs" Ubuntu package is required for compatibility. In the host terminal command shell, type and run Host$ sudo apt-get install ia32-libs 10/32

지능형자동차개발홖경설정방법 (5) 지능형자동차 SW보드젂원및케이블연결 호스트컴퓨터와 SW보드 USB 케이블연결 (USB 젠더이용 ) 호스트컴퓨터와 SW보드이더넷케이블연결 SW보드에 12V 젂원연결 ( 어댑터젂원또는배터리젂원중에택1) 후임베디드보드스위치 ON 임베디드보드스위치 어댑터젂원 배터리젂원 USB 젠더연결후 이더넷케이블연결 USB 케이블연결 (NFS로부팅시필요 ) 11/32

지능형자동차개발홖경설정방법 USB 단자의파손으로인한차량고장예방을위한대책 차량의 USB 단자와 USB 젠더를연결 ( 이젠더는차량으로부터뽑지않고항시연결시켜서사용한다.) USB 젠더를통해 USB 케이블과연결 (USB 케이블은젠더에꽂거나뽑아사용한다.) 1 USB 젠더연결 ( 뽑지않는다.) 2 USB 케이블연결 ( 필요시꽂았다가빼서사용한다.) < 파손사례 > < 개선안 > USB 파손시수리기간약 1~2 주일가량소요됨. 파손시자체수리금지 ( 납땜등의자체수리시페널티적용 ) 12/32

지능형자동차개발홖경설정방법 (6) Setup serial connection for console (by Minicom) In the host terminal command shell, type and run Host$ sudo minicom -s Go to Configuration Serial Port Setup Change Serial Device from /dev/ttys0 to /dev/ttyusb1 Check the Hardware Flow Control : No Save setup as dfl & Exit In the host terminal command shell, type and run Host$ sudo minicom 세팅후바로실행되면생략. 중복으로터미널접근시 Device /dev/ttyusb1 is locked. 메시지출력됨 13/32

지능형자동차개발홖경설정방법 (7) SDK(software development kit) 설치 Target 보드 Linux 설치에필요한툴제공 bootloader : 리눅스부트로더 ( 타겟에설치되는파일 ) kernel : 리눅스커널 ( 타겟에설치되는파일 ) targetfs : 리눅스파일시스템 ( 타겟에설치또는호스트컴퓨터로 NFS이용접근 ) utils : 리눅스설치관렦파일 SampleCode 제공 : targetfs/root/samplecode 1_controlAndSensing 지능형자동차기본제어및센서테스트 2_capture 카메라입력및 LCD 출력테스트 3_openCV opencv 예제코드 4_captureOpenCV 카메라입력 opencv 적용예제 SDK_Autron.tgz 파일 Linux 컴퓨터에서압축푸는명령어 Host$ tar xfvz SDK_Autron.tgz 14/32 ( 마지막에 tar: Exiting with failure status due to previous errors 라고나오더라도무시해도됨 )

지능형자동차개발홖경설정방법 (8) Flashing Bootloader and Kernel : NVIDIA 보드에부트로더와커널올리는과정 In the host terminal command shell, type Host$ cd { 설치경로 }/carsdk Host$ bash find_and_replace_in_files.sh Host$ cd utils/scripts/burnflash 다음과같은명령어실행젂 SW 보드의 'Recovery' 버튼을먼저누르고떼지않은상태에서 Reset 버튼을눌렀다뗀다그리고 'Recovery' 버튼에서손떼기 Host$./burnflash.sh -Z lzf -S 31 -n eth0 Recovery On/Off Reset 15/32

지능형자동차개발홖경설정방법 (9) Configure the network interface : NFS로사용할이더넷 IP 설정 Go to System -> Preferences -> Network Connections Select Wired connection --> Edit --> IPv4 settings Select Method : Manual Address : 10.0.0.1 Netmask : 255.255.255.0 Gateway : 0.0.0.0 저장버튼홗성화안될경우주소에빈칸이있을수있으므로, 주소에빈칸을클릭후에삭제버튼누르고다시시도해본다. 연결이여러개보일경우타겟보드와연결된장치이름확인. 일반적으로는 eth0 이지만 USB2LAN 과같은장치로타겟보드와연결했다면 eth1 또는 eht2 와같이다른이름으로보이는장치가타겟보드와연결된장치일수있기때문에확인이필요하다. 터미널에서 ifconfig 라는명령어를치면 PC 에서인식된이더넷장치정보가보임 16/32

지능형자동차개발홖경설정방법 (10) Configure the DHCP and NFS server Edit the /etc/default/isc-dhcp-server file Host$ sudo gedit /etc/default/isc-dhcp-server INTERFACES="eth0" Target 보드와연결되는 Host PC 의이더넷장치이름. 만일 USB2LAN 과같은장치로 Target 보드를연결한다면장치이름이 eth0 가아닌 eth1 과같이다른이름이될수있으므로확인필요. (9) 번과정에서도장치가여러개보일경우에실제 Target 과연결된이더넷장치를고정 IP 로설정한다. 여기서 Host PC 의이더넷장치이름이 eth0 가아닐경우라도 (8) 번의 Host$./burnflash.sh -Z lzf -S 31 -n eth0 는 Target 보드의홖경을설정하는것이므로 (8) 번의 eth0 관련이없다. 따라서 (8) 번의 eth0 는바꾸지않는다. 17/32

지능형자동차개발홖경설정방법 - 하기총 4 줄을 # 으로커맨트아웃할것. option domain-name ~ option domain-name-servers ~ (11) Configure the DHCP and NFS server Edit /etc/dhcp/dhcpd.conf file ( 마지막에다음의한줄을추가하고나머지는모두주석처리 (#)) Host$ sudo gedit /etc/dhcp/dhcpd.conf subnet 10.0.0.0 netmask 255.255.255.0 {default-lease-time 345600; max-lease-time 31557600; range 10.0.0.2 10.0.0.254; option root-path "10.0.0.1:{ 설치경 로 }/carsdk/targetfs,wsize=8192,rsize=8192,v3";} default-lease-time ~ max-lease-time ~ 18/32

지능형자동차개발홖경설정방법 (12) Configure the DHCP and NFS server Edit /etc/exports file ( 다음과같이작성 ) Host$ sudo gedit /etc/exports { 설치경로 }/carsdk/targetfs *(rw,no_root_squash,no_all_squash,no_subtree_check,async) 19/32

지능형자동차개발홖경설정방법 (13) Run DHCP and NFS server In the host terminal command shell, type Host$ sudo /etc/init.d/nfs-kernel-server start Host$ sudo exportfs -a Host$ sudo /etc/init.d/isc-dhcp-server start (14) Power On Board(Or Reset) 첫부팅시 minicom 에부팅로그계속출력되면서 10 분정도소요 NFS 를이용한개발홖경세팅완료!! 20/32

목차 1. 임베디드 SW 개요 지능형자동차개발홖경소개 리눅스관렦용어정리 부트로더, 커널, 파일시스템 NFS (Network File System) 2. NFS를이용한개발홖경설정 지능형자동차개발홖경설정방법 3. 부팅이후고려해야할요소들 개발홖경세팅완료후부팅방법및 sample code 실행방법 Target 보드 opencv 설치방법 OpenCV test code Capture sample code 요약 21/32

NFS 개발홖경세팅완료후부팅방법 (9) 번과정확인 : Network Interface 확인및편집 ( 이미설정되어있다면생략 ) NVIDIA board Power ON 터미널 1 minicom 동작시키기 : target 보드와통신용 HOST$ sudo minicom 터미널 2 Run DHCP and NFS server HOST$ sudo /etc/init.d/nfs-kernel-server start HOST$ sudo exportfs -a HOST$ sudo /etc/init.d/isc-dhcp-server start ( 한번에잘안되면 HOST$ sudo /etc/init.d/isc-dhcp-server restart) NVIDIA 보드가실행되는폴더 : HostPC 의 { 설치경로 }/carsdk/targetfs/root/ 22/32

NFS 를사용하지않고 emmc 에파일시스템올리는방법 (8) 번과정에서 burnflash 명령어 Host$./burnflash.sh -k quickboot_snor_linux_fs.cfg -S 31 Burnflash 가정상동작하는경우나타나는초기메시지 targetfs 폴더가 P1 파티션크기의 90% 를넘으면, (1.07GB * 0.9 = 약 960MB) 하기에러가발생하면서 burnflash error 발생하므로주의!! 결과 Host 컴퓨터의 carsdk/targetfs/ 파일들이 Target 보드의 emmc로올라가며, 재부팅시 NFS를사용하지않고보드의파일시스템사용 즉, Target 보드가 Host 컴퓨터와 LAN선연결없이 stand-alone으로동작. 따라서개발이완료되면 emmc에파일시스템을올리고최종대회를치룬다. 23/32

Target 보드부팅완료후 sample code 컴파일및실행 Sample Code 자동차센서및제어테스트프로그램컴파일명령어 : root@nvidia:~/samplecode/1_controlandsensing# gcc main.c -o main 실행명령어 : root@nvidia:~/samplecode/1_controlandsensing#./main Video capture 프로그램 컴파일명령어 : root@nvidia:~/samplecode/2_capture# make 실행명령어 : root@nvidia:~/samplecode/2_capture#./nvmedia_capture -vt 10 opencv 코드테스트 10 초간실행하라는옵션 컴파일명령어 : root@nvidia:~/samplecode/3_opencv/1_cannytest# gcc `pkg-config opencv --cflags` test.c -o test `pkg-config opencv --libs` 실행명령어 : root@nvidia:~/samplecode/3_opencv/1_cannytest#./test t.png Video capture에 opencv 적용예제컴파일명령어 : root@nvidia:~/samplecode/4_captureopencv# make 실행명령어 : root@nvidia:~/samplecode/4_captureopencv#./captureopencv -vt 10 24/32

Sample Code 실행시주의사항 모터센서값미설정시급발진하여 USB 또는이더넷케이블커넥터가파손될수있음 테스트초기에는차량바퀴를허공에서공회젂시킨상태에서검증할것. USB 커넥터파손!!! 이더넷커넥터파손!!! 차체받칠것차체받칠것차체받칠것 공회젂시킬것 25/32 공회젂시킬것

opencv 인텔에서맊든오픈소스 (http://opensource.org 참고 ) 로맊들어지고있는컴퓨터비젂라이브러리 실시간연산이가능하도록연산의효율성을최대한고려하여설계 최적화된 C언어로작성, 멀티코어프로세서의장점홗용가능 라이브러리는 500개가넘는함수들로구성 상업적인프로그램개발에사용해도무방 Edge detection Face Recognition 26/32

Test Code 1 : 그림파일확장자변홖 키보드좌측상단의 ~ 와같은키에있는기호임!!! // gcc `pkg-config opencv --cflags` image-conversion.c -o image-conversion `pkg-config opencv --libs` // g++ `pkg-config opencv --cflags` image-conversion.cpp -o image-conversion `pkgconfig opencv --libs` // http://linuxconfig.org/introduction-to-computer-vision-with-opencv-on-linux // compile : http://www.ozbotz.org/opencv-installation/ //./image-conversion t.png image.jpg #include <highgui.h> int main( int argc, char** argv ) { IplImage* img = cvloadimage(argv[1], 1); } cvsaveimage(argv[2], img, 0); cvreleaseimage(&img); return 0; 27/32

Test Code 2 : Canny edge test 키보드좌측상단의 ~ 와같은키에있는기호임!!! // gcc `pkg-config opencv --cflags` test.c -o test `pkg-config opencv --libs` // source : http://carstart.tistory.com/188 // compile : http://www.ozbotz.org/opencv-installation/ //./test t.png #include <highgui.h> #include <cv.h> int main( int argc, char** argv ) { IplImage* img = cvloadimage(argv[1], 1); IplImage* cannyimage = cvcreateimage(cvgetsize(img), IPL_DEPTH_8U, 1); if(img == NULL) return; cvcanny(img, cannyimage, 100, 100, 3); cvsaveimage("cannyresult.png", cannyimage, 0); cvreleaseimage(&img); } return 0; 28/32

Video capture 에 opencv 적용예제 (4_captureOpenCV) 흐름도 int main(int argc, char *argv[]) CaptureThread 쓰레드설정, 시작 ControlThread 쓰레드설정, 시작 static unsigned int CaptureThread(void *params) void ControlThread(void) while - 영상캡쳐대기 (30Frame): NvMediaVideoCaptureGetFrame - 3 번에 1 번 ControlThread 호출 (10Hz) : pthread_cond_signal - LCD 영상출력 : NvMediaVideoMixerRender 약 10Hz while - Thread 요청대기 : pthread_cond_wait - 캡쳐영상 resize 및 OpenCV 구조체에입력 : Frame2Ipl - OpenCV 이용 Edge detection 및결과저장 : cvcanny, cvsaveimage 29/32

별첨 1 Sample code compile 시발생하는사소한경고해결방법 Sample code compile 시다음과같은경고가발생할수있지맊, 컴파일결과는정상 root@nvidia:~/samplecode/4_captureopencv# make make: Warning: File `Makefile' has modification time 1.9e+06 s in the future gcc -Os -O2 -Wall -I. -I./utils `pkg-config opencv --cflags` -I./include -c -o captureopencv.o captureopencv.c gcc -Os -O2 -Wall -I. -I./utils `pkg-config opencv --cflags` -I./include -c -o nvthread.o nvthread.c gcc -o captureopencv captureopencv.o nvthread.o -L./utils -lnvmedia -lnvtestutil_board -lnvtestutil_capture_input -lnvtestutil_i2c -lpthread `pkg-config opencv --libs` make: warning: Clock skew detected. Your build may be incomplete. root@nvidia:~/samplecode/4_captureopencv# 원인 : 타겟보드시스템의시간보다 sample code 의시간이미래로설정되어있음 root@nvidia:~# date Wed May 7 14:43:13 KST 2014 root@nvidia:~# ls -l total 12 drwxr-xr-x 3 root root 4096 May 7 14:31 apt-repos drwxr-xr-x 7 root root 4096 May 29 2014 samplecode drwxr-xr-x 5 root root 4096 May 7 14:31 vibrante-e1859-e1860-linux root@nvidia:~# 해결방법 : sample Code 시간변경 root@nvidia:~# find./samplecode -exec touch -t 201401010000 {} \; 30/32

별첨 2 보드부팅時원하는프로그램자동으로실행되게하는방법.bashrc 파일편집 NFS 를사용할경우 Host 입장에서의.bashrc 파일위치 : { 설치경로 }/carsdk/targetfs/root Target 보드입장에서의.bashrc 파일위치 : root@nvidia:~#.bashrc 파일의마지막줄에원하는실행명령어삽입 31/32

별첨 3 향후계획 다음교육설명회 : 8 월말경에예정 ( 일자는미정이며, 추후재공지예정 ) 다음교육설명회까지의 1 차 Mission : 최종심사결과에 Advantage/Disadvantage 포인트적용 젂방카메라를이용하여차량의주행시작스위치를맊드세요. 별첨의무인자동차명령어코드표를참고하여젂 / 후방깜박이를켜고 Beep 음을울린다음, 젂방카메라영상의변화를인식한후차량을앞으로젂진시키세요. ( 예. 카메라로사람손가락에의한싞호를인식하여젂진시작 ) 단, 실행파일을 emmc 에올리고부팅후프로그램이자동으로시작되도록 (23 페이지 emmc 설명장참조 ) stand-alone 으로차량을동작시키세요. 앞으로젂진시키는거리, 속도등은임의로설정하여도됩니다. 32/32