36
УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА НОВИ САД Департман за рачунарство и аутоматику Одсек за рачунарску технику и рачунарске комуникације ЗАВРШНИ (BACHELOR) РАД Кандидат: Кристина Омеровић Број индекса: РА45/2012 Тема рада: Интеграција мултимедијалног екрана са системима у возилу нове генерације Ментор рада: Доц. др Милан Бјелица Нови Сад, септембар, 2016

Integracija multimedijalnog ekrana sa sistemima u vozilu nove

  • Upload
    ngonhan

  • View
    241

  • Download
    1

Embed Size (px)

Citation preview

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

НОВИ САД

Департман за рачунарство и аутоматику

Одсек за рачунарску технику и рачунарске комуникације

ЗАВРШНИ (BACHELOR) РАД

Кандидат: Кристина Омеровић

Број индекса: РА45/2012

Тема рада: Интеграција мултимедијалног екрана са системима у возилу нове генерације

Ментор рада: Доц. др Милан Бјелица

Нови Сад, септембар, 2016

УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

21000 НОВИ САД, Трг Доситеја Обрадовића 6

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР:

Идентификациони број, ИБР:

Тип документације, ТД: Монографска документација

Тип записа, ТЗ: Текстуални штампани материјал

Врста рада, ВР: Завршни (Bachelor) рад

Аутор, АУ: Кристина Омеровић

Ментор, МН: Доц. др Милан Бјелица

Наслов рада, НР: Интеграција мултимедијаног екрана са системима у возилу нове генерације

Језик публикације, ЈП: Српски / латиница

Језик извода, ЈИ: Српски

Земља публиковања, ЗП: Република Србија

Уже географско подручје, УГП: Војводина

Година, ГО: 2016

Издавач, ИЗ: Ауторски репринт

Место и адреса, МА: Нови Сад; трг Доситеја Обрадовића 6

Физички опис рада, ФО: (поглавља/страна/ цитата/табела/слика/графика/прилога)

7/36/8/0/11/0/0

Научна област, НО: Електротехника и рачунарство

Научна дисциплина, НД: Рачунарска техника

Предметна одредница/Кључне речи, ПО: Андроид, АДАС, Кластер

УДК

Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад

Важна напомена, ВН:

Извод, ИЗ: Мултимедијални екрани и системи за помоћ возачу су доста заступљени у модерним аутомобилима. Они омогућавају возачу лакше и сигурније контролисање возила. У раду је описана реализација интеграције мултимедијалног екрана са осталим системима у возилу. Ти системи су волан, педале, ручни контролер, дигитална инструмент табла и систем за помоћ возачу. Са системом за помоћ возачу веза је успостављена директно, док се комуникација са осталим системима реализује преко диспечера.

Датум прихватања теме, ДП:

Датум одбране, ДО: 02.09.2016.

Чланови комисије, КО: Председник: prof. dr Ilija Bašičević

Члан: doc. dr Ivan Kaštelan Потпис ментора

Члан, ментор: doc. dr Milan Bjelica

UNIVERSITY OF NOVI SAD FACULTY OF TECHNICAL SCIENCES

21000 NOVI SAD, Trg Dositeja Obradovića 6

KEY WORDS DOCUMENTATION

Accession number, ANO:

Identification number, INO:

Document type, DT: Monographic publication

Type of record, TR: Textual printed material

Contents code, CC: Bachelor Thesis

Author, AU: Kristina Omerovic

Mentor, MN: Milan Bjelica, PhD

Title, TI: Integration of an In-Vehicle Infotainment Unit with next generation vehicle components

Language of text, LT: Serbian

Language of abstract, LA: Serbian

Country of publication, CP: Republic of Serbia

Locality of publication, LP: Vojvodina

Publication year, PY: 2016

Publisher, PB: Author’s reprint

Publication place, PP: Novi Sad, Dositeja Obradovica sq. 6

Physical description, PD: (chapters/pages/ref./tables/pictures/graphs/appendixes)

7/36/8/0/11/0/0

Scientific field, SF: Electrical Engineering

Scientific discipline, SD: Computer Engineering, Engineering of Computer Based Systems

Subject/Key words, S/KW: Android, ADAS, Cluster

UC

Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia

Note, N:

Abstract, AB: Multimedia displays and driver assistance systems are very common in modern cars. They allow the driver to easily and safely operate the vehicle. This paper describes the integration of multimedia screen with other systems in vehicle. These systems are the steering wheel, pedals, Jog Shuttle, cluster and driver assistance system. With advanced driver assistance system (ADAS) connection is established directly, while the communication with other systems is realized through dispatcher.

Accepted by the Scientific Board on, ASB:

Defended on, DE: 02.09.2016.

Defended Board, DB: President: Ilija Bašičević, PhD

Member: Ivan Kaštelan, PhD Menthor's sign

Member, Mentor: Milan Bjelica, PhD

Zahvalnost

I

Zahvalnost

Zahvaljujem se doc. dr Milanu Bjelici i Mileni Milošević na stručnoj pomoći i savetima

prilikom izrade ovog rada.

Posebno se zahvaljujem članovima svoje porodice na pruženoj podršci tokom celog

školovanja.

Na kraju se zahvaljujem institutu RT-RK, kao i svima ostalima koji su omogućili i

doprineli realizaciji ovog rada.

Sadržaj

II

SADRŽAJ

1. Uvod ............................................................................................................................... 1

2. Teorijske osnove ............................................................................................................. 3

2.1 Napredni sistemi za pomoć vozaču .......................................................................... 3

2.1.1 Sistem za prikaz potpunog okruženja vozila ....................................................... 4

2.2 Head Unit ................................................................................................................. 5

2.3 Klaster ekran ............................................................................................................ 6

2.4 HMI u vozilu ............................................................................................................ 7

2.5 Android u automobilu .............................................................................................. 8

2.5.1 Android platforma ............................................................................................... 8

2.5.2 Android Studio ..................................................................................................... 9

2.5.3 Head Unit kao Android aplikacija ...................................................................... 9

3. Koncept rešenja ............................................................................................................ 10

3.1 Integracija video signala sa ADAS platforme u Head Unit .................................... 11

3.2 Integracija HMI komponenti sa Head Unit-om ..................................................... 12

3.3 Integracija Jog Shuttle kontrolera sa Head Unit aplikacijom ................................ 14

3.4 Integracija klaster ekrana sa Head Unit-om ........................................................... 15

4. Programsko rešenje....................................................................................................... 16

4.1 Integracija video signala sa ADAS platformom u Head Unit ................................ 16

4.2 Integracija HMI komponenti sa Head Unit-om ..................................................... 20

4.3 Integracija Jog Shuttle kontrolera sa Head Unit aplikacijom ................................ 22

4.4 Integracija klaster ekrana sa Head Unit-om ........................................................... 22

5. Rezultati ........................................................................................................................ 24

6. Zaključak ...................................................................................................................... 28

7. Literatura ...................................................................................................................... 29

Spisak slika

III

SPISAK SLIKA

Slika 2.1: Prikaz okruženja vozila (Surround View) ......................................................... 4

Slika 2.2: Head Unit ......................................................................................................... 6

Slika 2.3: Klaster ekran ..................................................................................................... 7

Slika 2.4: Android stek ...................................................................................................... 8

Slika 3.1: Predlog povezivanja sistema u vozilu ............................................................ 10

Slika 4.1: Prikaz sadržaja ................................................................................................ 17

Slika 4.2: Primer potpunog okruženja vozila (Surround View) ...................................... 19

Slika 4.3: Primer videa dobijenog sa zadnje kamere (Rear View) .................................. 19

Slika 5.1: Prikaz okruženja za testiranje ......................................................................... 25

Slika 5.2: Vremena potrebna da se pusti video signal na Head Unit .............................. 26

Slika 5.3: ADAS platforma na demo automobilu ............................................................ 26

Skraćenice

IV

SKRAĆENICE

ACC – Adaptive Cruise Control - Prilagodljiva kontrola brzine

ADAS – Advanced Driver Assistance System – Napredni sistem za pomoć vozaču

API – Application Programming Interface – Aplikativna programska sprega

AVC – Advanced Video Coding – Napredno video kodovanje

CAN – Controller Area Network

CD – Compact Disc – Kompakt disk

HMI – Human-Machine Interface – Sprega čovek-računar

IP – Internet Protocol, Internet protokol

JPEG – Joint Photographic Experts Group – Udruženje fotografskih eksperata

LIN – Local Interconnect Network

MPEG – Moving Picture Experts Group – Grupa eksperata za pomerajuću sliku

OSI - Open Systems Interconnection – Otvoreno povezivanje sistema

PCS – Pre-Crash Safety – Pred-udesna bezbednost

PNG – Portable Network Graphics – Prenosiva mrežna grafika

SDK – Software Development Kit – Softverski razvojni komplet

SGL – Scalable Graphics Library – Prilagodljiva grafička biblioteka

TCP – Transmission Control Protocol – Protokol kontrole prenosa

TMC - Traffic Message Channel - Kanal saobraćajnih poruka

TSR – Traffic Sign Recognition – Prepoznavanje saobraćajnih znakova

USB – Universal Serial Bus – Univerzalna serijska magistrala

Uvod

1

1. Uvod

Iz dana u dan automobili postaju sve inteligentniji i korisnicima se prezentuju

konstantna poboljšanja njihovih karakteristika i funkcija. Head Unit i sistem za pomoć vozaču

(engl. Advanced Driver Assistance System - ADAS) postaju veoma važni za poboljšanje

ugođaja putnika tokom vožnje i njihove bezbednosti. Iz tog razloga se povezuju kako bi se

podaci sa ADAS platforme prikazali korisniku u njemu što razumljivijem obliku.

U modernim automobilima se mogu naći i ekrani koji se koriste u druge svrhe (na

primer digitalni klaster ekran), ali i razni HMI uređaji. Da bi podaci bili prikupljeni i prikazani

vozaču, neophodno je sve te komponente automobila povezati i omogućiti njihovu

komunikaciju u realnom vremenu.

Zadatak ovog rada je da integriše Head Unit zasnovan na Android platformi, sa

ostalim modernim sistemima u vozilu, kao što su ulazni interfejsi čovek-računar, klaster ekran

i platforma za pomoć vozaču, kroz realizaciju nekoliko slučajeva korišćenja. Slučajevi

korišćenja su:

kontrola aplikacije putem dodira ekrana, ali i eksternih tastera;

prihvatanje informacija o vozilu i o okruženju vozila;

prosleđivanje informacija sa Head Unit ekrana na klaster ekran.

Uvod

2

Rad je organizovan u šest poglavlja. U drugom poglavlju navedeni su osnovi iz

oblasti, poput teorijskih osnova i opisa Head Unit aplikacije, ADAS platforme, klaster ekrana,

interfejsa čovek-računar (Human-Machine Interface), kao i opis Android platforme.

Treće poglavlje opisuje Head Unit softver i korisničke zahteve koji se odnose na

njega, dok je u četvrtom poglavlju dat opis modula njihove programske realizacije.

U petom poglavlju se nalaze rezultati ispitivanja funkcionalnosti i korisničkih zahteva.

Mereno je vreme potrebno da se podaci prenesu od Head Unit aplikacije do drugih sistema u

vozilu i obrnuto.

Šesto poglavlje sadrži kratak opis šta je urađeno u ovom radu i koji su pravci daljeg

razvoja.

Teorijske osnove

3

2. Teorijske osnove

U ovom poglavlju su opisane teorijske osnove na kojima je rad zasnovan. Opisano je

trenutno stanje u automobilskoj industriji i dat je prikaz novih tehnologija kao sto su napredni

sistemi za pomoć vozaču i multimedijalni i klaster ekrani. Multimedijalni ekran realizuje se

na Android platformi, tako da su izložene i osnovne informacije te platforme i njenih

aplikacija.

2.1 Napredni sistemi za pomoć vozaču

Napredni sistemi za pomoć vozaču (ADAS – Advanced driver assistance systems) su

sistemi razvijeni da poboljšaju sigurnost vozača. Sigurnosni dodaci su osmišljeni tako da

izbegnu saobraćajne nesreće, nudeći tehnologije koje upozoravaju vozača na potencijalne

probleme ili preuzimaju kontrolu nad vozilom.

Primeri sistema za pomoć vozaču [1]:

navigacioni sistem u automobilu za pružanje informacija o saobraćaju u realnom

vremenu – TMC (engl. Traffic Message Channel);

sistem za ublažavanje posledica sudara - PCS (engl. Pre-Crash Safety);

sistem za detekciju pešaka (engl. Pedestrian Safety Systems);

prilagodljivi tempomat – ACC (engl. Adaptive Cruise Control);

sistem za upozorenje pri napuštanju trake (engl. Lane Departure);

prepoznavanje saobraćajnih znakova – TSR (engl. Traffic Sign Recognition);

detekcija pospanosti vozača (engl. Drowsiness Detection System);

sistem za pomoć pri smanjenoj vidljivosti (npr. Night Vision);

sistem za prikaz potpunog okruženja vozila (Surround View);

pomoć pri parkiranju (engl. Park Assist);

Teorijske osnove

4

pregled mrtvog ugla (engl. Blind Spot Detection).

ADAS platforme su dostupne u više formi. Neka svojstva su ugrađena u automobile, a

neka su dostupna kao dodatni paket. ADAS platforme se oslanjaju na više ulaza, uključujući

ulaze sa kamera, LiDAR (laserski daljinomer), radar, obradu slike i komunikacija vise sistema

u vozilu.

2.1.1 Sistem za prikaz potpunog okruženja vozila

Kombinovanjem više kamera omogućuje se vozaču da vidi sliku od 360° koja okružuje

automobile. To zahteva 4 ili više kamera, spajanje slika u realnom vremenu i ispravljanje

prikaza koji omogućava normalan pogled na spoljašnjost vozila. [2]

Slika 2.1: Prikaz okruženja vozila (Surround View)

Na Slici 2.3 se vidi primer potpunog okruženja vozila. Za potpuno okruženje vozila se

koriste su 4 posebne vrste sočiva (eng. Fisheye lens), da bi se dobila šira slika okoline.

Spajanjem ovih slika i korišćenjem algoritama za ispravljanje dobija se jedna slika.

Teorijske osnove

5

2.2 Head Unit

Head Unit (Slika 2.2) je skup hardvera i softvera u automobilima koji omogućavaju

audio ili video zabavu. Ranije su to bili uređaji za kasete i CD, a sada uključuju navigaciju,

video plejere, USB i Bluetooth, kao i internet. Ovi sistemi donose informacije vozaču i

obezbeđuju fokus na putnike.

Mogućnost proizvođača automobila da se izdvoje među konkurencijom zavisi od toga

da li će uspeti da korisniku omoguće što bolju povezanost sa životnim stilom. Proizvođači

koji uspeju u tome biće vodeći na tržištu [4].

Multimedijalni ekrani su sada dostupni u automobilima od različitih proizvođača kao

što su [5]:

Ford (SYNC i MyFord Touch);

Toyota (Entune);

Kia Motors (UVO);

Cadillac (CUE);

Fiat (Blue&Me).

Iako je svaka Head Unit aplikacija drugačija, standardni zadaci su:

Kontrola i puštanje audio sadržaja;

Podešavanje navigacije;

Preslušavanje dolazećeg SMS-a;

Slanje novog SMS-a;

Pozivanje i prihvatanje poziva;

Internet.

Teorijske osnove

6

Slika 2.2: Head Unit

2.3 Klaster ekran

Analogna instrument tabla zamenjena je ekranom. Taj ekran se naziva klaster ekran ili

digitalna instrument tabla.

Analognu instrument tablu čini skup instrumenata, kao što su brzinomer, merač

pređenog puta, obrtomer, nivo goriva itd.

Digitalni klaster ekran donosi još neke korisne informacije. To je trenutna potrošnja,

nadmorska visina, navigacija, brzinomer koji pokazuje brzinu u metrima i miljama, ali i

mnoge druge.

Da bi se to sve omogućilo, klaster se mora povezati sa ostalim komponentama

automobilima (Head Unit i HMI uređaji). Sa Head Unit aplikacijom je povezan preko

Ethernet veze i na taj način prima podatke kao što su informacije o dolazećim pozivima i

promeni radio stanice i na taj način vozaču omogućava sigurniju vožnju. Sa HMI uređajima je

takođe povezan Ethernet vezom preko koje dobija podatke sa pedala i volana.

Na slici 2.4 se nalazi primer klaster ekrana.

Teorijske osnove

7

Slika 2.3: Klaster ekran

2.4 HMI u vozilu

Sprega čovek-mašina je prostor u kojem se interakcija čoveka i mašine dešava. Cilj je

da se omoguće operacije i kontrole mašine koje zahteva čovek.

HMI tehnologije se mogu podeliti na 3 grupe: mehanički, akustički i vizuelni.

U mehaničke sprege svrstavaju se pedale, menjač, volan, ručni kontroler, ekran na dodir

itd.

Kod akustičkih tehnologija vozač ne mora da skreće pogled sa saobraćaja, što im daje

prednost. Neke od ovih sprega su sirene, koje daju signale upozorenja (npr. vrata su otvorena,

pojas nije vezan, itd).

Vizuelnim spregama pripadaju multimedijalni i klaster ekrani. U ovaj tip sprega ubraja

se i Head Unit.

Najzastupljenije sprežne tehnologije su [7]:

CAN – prenosi podatke kao što su informacije o vožnji i pritisku tastera na Jog Shuttle

kontroleru

LIN – prenosi podatke kao što je podešavanje sedišta, svetlo, zaključavanje vrata

Ethernet – prenosi informacije sa radara, kamere, Head Unit aplikacije

FlexRay – prenosi kontrole gasa i kočnice

Teorijske osnove

8

2.5 Android u automobilu

Android platforma se prvobitno koristila u mobilnoj industriji, ali se odnedavno ona

integriše i u automobile nove generacije. Proizvođači automobila razvijaju aplikacije za

multimedijalni ekran jer na taj način održavaju specifičnost i korisnicima omogućavaju

upotrebu već poznatog okruženja u automobilu.

Prednost u odnosu na druge platforme u automobilu, kao što su AGL i GENIVI, je što

donosi i neke benefite iz mobilne industrije kao što je nekoliko proverenih verzija koje su već

na tržištu. Iz tog razloga proizvođačima štedi vreme i smanjuje troškove [3].

2.5.1 Android platforma

Android je paket programske podrške za mobilne uređaje koji uključuje operativni

sistem, srednji sloj (eng. middleware) i ključne aplikacije. Android SDK obezbeđuje alatke i

API potreban za razvoj aplikacija na Android platformi korišćenjem Java programskog jezika.

Slika 2.4: Android stek

Android obuhvata skup C i C++ biblioteka koje koriste razne komponente Android

sistema. Ove mogućnosti su dostupne programeru kroz Android aplikacione okvire. Neke od

osnovnih biblioteka su:

Teorijske osnove

9

Sistemska C biblioteka – izvedena implementacija standardne C sistemske

biblioteke, podešene za namenske Linux bazirane uređaje;

Medija biblioteka – podrška za reprodukciju i snimanje mnogih popularnih

audio i video formata, kao i statičnih slika, uključujući i MPEG4, H.264, MP3,

AAC, AMP, JPG, PNG;

Upravljač površine – upravlja pristupu podsistemu prikaza;

Biblioteke Web pretraživača;

SGL – osnovna 2D grafička podrška;

3D biblioteke;

Slobodan tip – bitmape i vektore iscrtavanja;

SQLite – alat za relacione baze podataka dostupan za sve aplikacije.

2.5.2 Android Studio

Android Studio predstavlja razvojno okruženje namenjeno za pisanje Android aplikacija.

Google je IntelliJ platformu razvio Android Studio i objavio 2013. godine. One je zamenio

Eclipse koji se do njegove pojave koristio za programiranje Android aplikacija. Dostupan je

besplatno. Može se koristiti na svim operativnim sistemima. Nalazi se pod Apache 2.0

licencom.

2.5.3 Head Unit kao Android aplikacija

Head Unit aplikacija može raditi na raznim platformama, ali Android ima prednost zbog

već postojećih funkcija koje su implenentirane u mobilnoj industriji, a mogu se preneti i na

automobilsku industriju. Manu koju je imala Android platforma jeste što samo jedan prozor

moze biti vidljiv u određenom vremenskom trenutku, ali pomoću plugin-a (dodataka) taj

problem se može rešiti i korisnik neće morati da izlazi iz aplikacije ukoliko želi da koristi

neku od popularnih aplikacija [6].

Koncept rešenja

10

3. Koncept rešenja

U ovom poglavlju dat je opis rešenja povezivanja različitih sistema u vozilu. Predlog

povezivanja sistema dat je na Slici 3.1.

Slika 3.1: Predlog povezivanja sistema u vozilu

HMI agent prikuplja podatke sa pedala (gas i kočnica), tastera na volanu, kao i senzora

za ugao na volanu. Te podatke HMI agent obrađuje i šalje klaster aplikaciji.

U okviru klaster aplikacije postoji plugin (dodatak). Plugin sadrži funkcije koje primaju

podatke posebno za svaku komponentu i šalje ih klaster aplikaciji kroz biblioteku pisanu u

Koncept rešenja

11

JavaScript programskom jeziku. Klaster aplikacija, realizovana uz pomoc HTML5 i CSS3

tehnike, prihvata podatke i ispisuje ih na ekran kako bi bili vidljivi korisniku.

ADAS platforma prikuplja podatke sa kamera koje se nalaze na vozilu i obrađuje ih tako

što na slici iscrtava i prepreke koje se nalaze oko vozila, kao i predikciju kretanja vozila.

Head Unit aplikacija, koja je i tema ovog rada, komunicira i sa HMI agentom i sa ADAS

platformom. Od ADAS platforme prima video sa kamera vozila, zajedno sa iscrtanim

preprekama i putanjom vozila. Taj video se prikazuje korisniku i olakšava mu vožnju. Sa HMI

agenta pristižu podaci o automobilu, kao što su brzina kretanja, pređen put i nivo goriva i ulja

u vozilu. Podaci se obrađuju i iscrtavaju na ekran, kako bi bili dosputni korisniku.

3.1 Integracija video signala sa ADAS platforme u Head Unit

Slike koje se prikupljaju sa kamera ADAS-a obrađuju se u zavisnosti od korisnikovog

zahteva. U zahtevu se zadaje željeni ADAS algoritam.

Komunikacija između ADAS sistema i Head Unit aplikacije se odvija u 3 faze. Prva faza

je slanje komande za pokretanje određenog prikaza, druga prenos podataka i treća slanje

komande za isključivanje pokrenutog prikaza. Na slici 3.2 je ilustrovana komunikacija.

Slika 3.2: Komunikacija Head Unit aplikacije sa ADAS platformom

Koncept rešenja

12

U prvoj fazi korisnik zahteva, preko Head Unit aplikacije, okruženje koje želi da mu

bude prikazano. Postoje dve vrste zahteva. To su potpuni prikaz okruženja vozila i prikaz sa

zadnje kamere. Za potpuni prikaz okruženja vozila pored prikaza okoline obeležene su i

prepreke, dok za prikaz sa zadnje kamere, pored toga, iscrtava se i predikcija kretanja vozila.

Zahtev za odabrano okruženje se šalje u vidu poruke ADAS platformi. Poruka je direktna

komanda platformi koja se šalju u obliku niza heksadecimalnih cifara. Platforma prihvata

poruku i otpočinje prikupljanje podataka za korisnikov zahtev.

Druga faza je slanje slike preko Ethernet veze do Head Unit aplikacije. Podaci Head

Unit-u konstantno pristižu nakon čega ih on obrađuje. Obrađeni frejmovi se reprodukuju na

ekran preko komponente za prikaz slike u Android-u Image View-a.

Treća faza je prekid slanja video signala. Kada korisnik ne želi više da mu na ekranu

bude prikazan video, pritiskom na dugme back (nazad) izlazi iz dela aplikacije koji prikazuje

video. Tada aplikacija, kao i u prvoj fazi, šalje poruku platformi, u vidu komande od niza

heksadecimalnih cifara, za isključivanje prikupljanja podataka sa kamera.

Celokupna komunikacija se vrši u sloju sesije koja se oslanja na transportni sloj OSI

(Open Systems Interconnection) referentnog modela u kojem se nalazi TCP protokol.

Slojevi OSI modela su:

fizički sloj;

sloj veze;

mrežni sloj;

transportni sloj;

sloj sesije;

aplikativni sloj.

3.2 Integracija HMI komponenti sa Head Unit-om

Preko HMI agenta, Head Unit dobija informaciju o pritisku dugmića na volanu, kao i

informacije o potrošnji goriva, brzini i slično, kao i informaciju da li je na klaster ekranu

izabran rikverc rezim.

Ukoliko je vozač na klaster ekranu izabrao rikverc režim preko HMI komponente stiže

obaveštenje i na Head Unit-u se automatski uključuje video sa zadnje kamere koji stiže sa

ADAS platforme.

Koncept rešenja

13

Dugmići sa volana, čije aktivnosti dispečer šalje Head Unit-u vide se na slici 3.3 i oni

su:

Prebacivanje radio stanice unapred;

Prebacivanje radio stanice unazad;

Pokretanje osluškivanja glasovnih komandi.

Slika 3.3: Prikaz dugmića volana na koje reaguje Head Unit

Head Unit prikazuje i neke informacije o vožnji, kao i o samom vozilu. Dispečer računa

informacije o stanju vozila na osnovu pritiska pedala (gas i kočnica) i prosleđuje ih kako

klaster ekranu, tako i Head Unit aplikaciji. Slanje podataka se obavlja nakon uspostave TCP

veze i konstantno se šalje.

Koncept rešenja

14

3.3 Integracija Jog Shuttle kontrolera sa Head Unit

aplikacijom

Rucni kontroler (Jog Shuttle – Slika 3.4) je povezan sa Head Unit ekranom preko USB

porta. Svako dugme na njemu očitava se kao dugme sa regularne tastature. Na Jog Shuttle

kontroleru ima 7 tastera i točkić za kretanje kroz elemente na Head Unit ekranu.

Dugmići su:

Media (otvara prozor za muziku);

Radio (otvara prozor za radio);

Menu (otvara prozor menia);

Tel (otvara prozor sa propuštenim pozivima);

Nav (otvara prozor sa navigacijom);

Back (vraća na prethodni prozor);

Option (glavni prozor stavlja na mesto sporednog i obrnuto).

Slika 3.4: Jog Shuttle

Koncept rešenja

15

3.4 Integracija klaster ekrana sa Head Unit-om

Preko prethodno pomenutog dispečera povezuje se i Head Unit sa klaster aplikacijom.

Head Unit se povezuje preko TCP veze sa HMI agentom i preko Ethernet mreže mu šalje

dešavanja. Agent dalje prosleđuje klaster aplikaciji koja ih nakon primanja iscrtava na ekran.

Dešavanja koja Head Unit prosleđuje klasteru su:

Promena radio stanice;

Dolazni poziv;

Trajanje prihvaćenog poziva (Slika 3.5).

Slika 3.5: Primer obaveštenja o trajanju dolazećeg poziva na klaster ekranu

Dešavanja Head Unit aplikacija šalje u obliku stringa. String se sastoji iz dve celine

odvojene karakterom „|”.

Prva celina je tip dešavanja. Tip dešavanja označava da je došlo do promene radio

stanice, da li imamo dolazeći poziv ili da li je primljeno obaveštenje o trajanju poziva.

Druga celina je vrednost tipa dešavanja. To može biti:

koja radio stanica je aktivna nakon promene;

od koga je dolazeći poziv;

vreme trajanja poziva.

Komunikacija između Head Unit aplikacije i HMI agenta se odvija u sloju sesije koja se

oslanja na transportni sloj OSI referentnog modela u kojem se nalazi TCP protokol.

Programsko rešenje

16

4. Programsko rešenje

U ovom poglavlju dat je prikaz programskog rešenja integracije Head Unit-a sa

sistemima u vozilu nove generacije. Okruženje za izradu je Android Studio u programskim

jezicima C i Java. Programsko rešenje se sastoji iz vise delova jer obuhvata integraciju Head

Unit-a sa ADAS platformom, klaster ekranom i ostalim sistemima u vozilu.

4.1 Integracija video signala sa ADAS platformom u Head

Unit

ADAS i Head Unit se povezu preko TCP veze na dva porta. Jedan port služi za slanje

komandi ploči za uključivanje i isključivanje odabranog prikaza, a drugi za primanje videa sa

kamere.

Na prvi port povezuje se kada se uđe u listu mogućih prikaza okoline vozila u Head

Unit aplikaciji (Slika 4.1).

Programsko rešenje

17

Slika 4.1: Prikaz sadržaja

Konektuje se funkcijom:

void connectToServer();

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: -

Povratna vrednost: -

Funkcija nema argument jer se unutar nje vrši čitanje IP adrese iz fajla, što olakšava

promenu IP adrese u toku demonstracije.

Nakon odabira perspective, ako je povezivanje bilo uspešno, poziva se funkciju:

void sendCommand(int command);

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: command

Povratna vrednost: -

Programsko rešenje

18

Argument command je promenljiva tipa int i predstavlja željeni prikaz okoline vozila.

Prikaz vozila može biti potpuni ili samo prikaz videa sa zadnje kamere. Ta komanda se u vidu

niza heksadecimalnih cifara šalje ADAS platformi.

Zatim se poziva funkcija:

void onPlay();

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: -

Povratna vrednost: -

U funkciji onPlay() aplikacija se konektuje na drugi port za primanje video signala,

prihvata pristigle frejmove i prikazuje ih na Head Unit-u.

Prikazivanje videa vozač moze prekinuti pritiskom na back dugme. Kada se detektuje

pritisak dugmeta, poziva se funkcija:

void onStopPlaying();

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: -

Povratna vrednost: -

Ovde se zatvara otvorena mrežna utičnica za primanje videa i poziva se funkcija:

void stopCommand(int command);

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: command

Povratna vrednost: -

Promenljiva command je tipa int i ona predstavlja komandu za isključivanje prethodno

uključenog prikaza okoline. Funkcija šalje tu komandu ADAS ploči.

Prikaz vozila koji se iscrtava na Head Unit ekranu može biti potpuni (Slika 4.2) ili samo

prikaz videa sa zadnje kamere (Slika 4.3).

Programsko rešenje

19

Slika 4.2: Primer potpunog okruženja vozila (Surround View)

Slika 4.3: Primer videa dobijenog sa zadnje kamere (Rear View)

Programsko rešenje

20

4.2 Integracija HMI komponenti sa Head Unit-om

Integracija ove dve komponente je implementirana u programskim jezicima C i Java.

Pri pokretanju Android aplikacije se preko nativnog dela pisanom u programskom jeziku C

šalje zahtev za uspostavu veze sa HMI agentom funkcijom:

jint connectToServer(jint port);

Opis funkcije:

Tip: jint

Argument: port

Povratna vrednost: jint

Promenljiva port je tipa jint, koja predstavlja broj porta na kojem želi da uspostavi vezu

sa HMI agentom. Povratna vrednost je tipa jint, jer funkcija vraća broj na osnovu koga se

određuje da li je uspostava veze prošla uspešno.

Ukoliko je uspostava veze završena uspešno, HMI agentu se šalju identifikacioni brojevi

željenih događaja. To se obavlja funkcijom:

jint sendId();

Opis funkcije:

Tip: jint

Argument: -

Povratna vrednost: jint

Ova funkcija šalje HMI agentu identifikacioni broj tipova na koje događaje želimo da se

pretplatimo. Identifikacioni brojevi tipova događaja:

2 – događaj se desio na volanu;

4 – primaju se informacije o vozilu;

5 – aplikacija koja je napravljena u demonstrativne svrhe.

Svi događaji stižu u obliku stringa u nativni deo iz kog se šalje u deo aplikacije pisanog

u Java programskom jeziku.

Funkcija koja prihvata podatke je:

void receiveFromServer();

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: -

Programsko rešenje

21

Povratna vrednost: -

Odavde se poziva funkcija za obradu događaja koja podatke čini dostupnim u Java

programskom jeziku. Ta funkcija je:

void sendEventToJava(char* data);

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: data

Povratna vrednost: -

Argument data predstavlja niz podataka tipa char. Taj niz podataka se prosleđuje delu

aplikacije pisanom u Java programskom jeziku, gde se ti podaci obrađuju u zavisnosti od tipa

događaja. Obrađivanje radi funkcija:

void eventReceive(String data);

Opis funkcije:

Tip: void – funkcija ne vraća povratnu vrednost

Argument: data

Povratna vrednost: -

Argument data predstavlja niz podataka poslatih iz dela aplikacije pisanom u C

programskom jeziku, koje treba obraditi i izvršiti.

Ukoliko je stigao identifikacioni broj 2 to znači da je pritisnut neki od tastera na volanu.

Head Unit reaguje na tri dugmeta sa volana. To su:

Prebacivanje radio stanice unapred;

Prebacivanje radio stanice unazad;

Pokretanje osluškivanja glasovnih komandi.

Ako stigne broj 4 to znači da su primljene informacije o vozilu kao što su pređena

kilometraza, brzina, potrošnja, informacija o gorivu i slično. Pristigle informacije se obrađuju

i ispisuju na Head Unit.

Identifikacioni broj 5 označava aplikaciju napravljenu za demonstrativne svrhe koja

simulira način prilagođavanja Head Unit aplikacije osobi koja se nalazi na mestu vozača. U

našem slučaju su napravljena dva profila u zavisnosti od kojih se menjaju scene na Head Unit

ekranu.

Programsko rešenje

22

4.3 Integracija Jog Shuttle kontrolera sa Head Unit

aplikacijom

Pomoću postojećeg Android mehanizma KeyListener detektovani su pritisci na tastere

Jog Shuttle kontrolera. Tasteri su označeni kao dugmići na tastaturi za PC:

Media taster koji otvara prozor za muziku predstavlja dugme F6;

Radio taster koji otvara prozor za radio predstavlja dugme F7;

Menu taster koji otvara prozor menija predstavlja dugme F1;

Tel taster koji otvara prozor sa propuštenim pozivima predstavlja dugme F9;

Nav taster koji otvara prozor sa navigacijom predstavlja dugme F8;

Back taster koji vraća na prethodni prozor predstavlja BACK dugme;

Option taster koji glavni prozor stavlja na mesto sporednog i obrnuto predstavlja

dugme F5.

4.4 Integracija klaster ekrana sa Head Unit-om

Ovaj deo aplikacije implementiran je u nativnom delu Androida u programskom jeziku

C. Prilikom pokretanja Android aplikacije iz Java dela softvera se preko nativnog dela

aplikacije šalje zahtev HMI komponenti za povezivanje funkcijom:

jint connect(String address);

Opis funkcije:

Tip: jint

Argument: address

Povratna vrednost: jint

Promenljiva address je tipa String koja predstavlja IP adresu HMI agenta preko kojeg se

šalju podaci do klaster aplikacije. Konekcija se uspostavlja preko TCP protokola. Kada se

promeni radio stanica ili se dogodi telefonski poziv, aplikacija šalje događaj HMI komponenti

preko funkcije:

jint send(jstring data);

Opis funkcije:

Tip: jint

Argument: data

Povratna vrednost: jint

Programsko rešenje

23

Argument data je promenljiva tipa jstring koji je sačinjen od naziva nove radio stanice

ili imena osobe koja nas poziva. Ukoliko se poziv prihvati, na svaki sekund se šalje i proteklo

vreme razgovora.

Rezultati

24

5. Rezultati

Okruženje u kom je testirano prikazano je na Slici 5.1 i sastoji se od multi touch

ekrana, sa rezolucijom 1920x1080, na kojem se prikazuje aplikacija, volana, pedala, Jog

Shuttle kontrolera, klaster ekrana i ADAS platforme. Volan je povezan na Arduino koji

podatke šalje aplikaciji preko HMI agenta. Pedale i Jog Shuttle takodje su povezani na

Arduino. Princip prenosa podataka sa pedala je sličan principu prenosa podataka sa volana,

dok Jog Shuttle ne ide preko agenta, vec se priključuje direktno u ekran. Povezivanje Head

Unit i klaster aplikacije se takođe odvija preko HMI agenta, a Head Unit aplikacije i ADAS

ploče preko gigabitnog rutera.

Vršena testiranja su:

merenje vremena potrebno da se prikaže video na ekranu, od trenutka kada je

pristigao;

merenje vremena od trenutka pritiska tastera na Jog Shuttle kontroleru do izvršavanja

operacije;

merenje vremena od trenutka slanja klaster aplikaciji do trenutka ispisa informacija na

ekran.

Rezultati

25

Slika 5.1: Prikaz okruženja za testiranje

Testiranje aplikacije sastojalo se od proveravanja unapred zadatih use case-ova:

Komunikacija sa ADAS platformom (Slika 5.3) i puštanje video signala

pristiglog sa nje. Izvršeno je 10 merenja vremena od trenutka primanja prvog

frejma do trenutka puštanja videa na Head Unit. Merenja se mogu videti na Slici

5.2. Prosečno vreme puštanja videa iznosi 0,104 sekundi. Svaki sledeći frejm se

brže iscrtava, jer dok se jedan frejm prikazuje drugi se obrađuje.

Rezultati

26

Slika 5.2: Vremena potrebna da se pusti video signal na Head Unit

Slika 5.3: ADAS platforma na demo automobilu

Rezultati

27

Primanje informacija preko HMI agenta. Testirano je pomeranje kružnog tastera

i dugme za zamenu scena, snimanjem HMI uređaja i ekrana. Listanje imenika je

korišćeno za testiranje kružnog tastera i iznosilo je 80ms, a nakon pritiska

dugmeta za zamenu scena vreme potrebno dok animacija ne počne da se menja

bilo je 40ms. Može se smatrati prihvatljivim, jer optimalno vreme u

automobilsokoj industriji za reakciju na HMI događaje 70 ms [8].

Slanje informacija HMI agentu. Testiranje je vršeno video snimanjem HMI

uređaja i ekrana. Testirano je vreme od pritiska na polje za promenu stanice do

trenutka ispisivanja naziva radio stanice na klaster ekranu i ono iznosi 30ms.

Zaključak

28

6. Zaključak

U ovom radu predstavljeno je rešenje integracije Head Unit ekrana sa sistemima u

vozilu nove generacije. Integracija podrazumeva četiri aspekta:

integraciju Head Unit elementa sa ADAS platformom koja vozaču omogućava

lakši i bolji pregled okruženja vozila, kao i obeležavanje i upozoravanje na

prepreke;

integraciju ručnog kontrolera sa Head Unit elementom koja omogućava lakšu

navigacij unutar aplikacije;

integraciju Head Unit elementa sa HMI agentom i prihvatanje informacija o

vozilu sa njega, kao i obaveštavanje o pritiscima na tastere volana. Na taj način

omogućeno je kontrolisanje Head Unit aplikacije bez sklanjanja ruke sa

volana;

integraciju Head Unit elementa i klaster ekrana kao i slanje informacija

klasteru preko HMI agenta i prikazivanje na klaster ekranu. To korisniku

omogućava, na primer, da vidi ime osobe koja ga zove, kao i obaveštenje da je

promenio radio stanicu, to mu omogućava da bez skretanja pogleda sa

saobraćaja dobije te informacije.

Dalji razvoj uključivao bi dodavanje više prikaza okoline koji se dobavljaju sa ADAS

ploče (npr. Camera Mirror Replacement – kamera umesto retrovizora), kao i prihvatanje ugla

volana preko HMI agenta i prosleđivanje ADAS platformi zbog predikcije kretanja

automobila. To bi omogućava dalji razvoj softvera u skladu sa današnjim zahtevima modernih

automobila koji akcenat stavljaju na povezivanje ADAS platforme i Head Unit aplikacije.

Literatura

29

7. Literatura

[1] A. Hakanović, “Sistemi za pomoć vozaču”, Sarajevo, 2011

[2] Advanced driver assistance systems, Surround View,

https://www.altera.com/solutions/industry/automotive/applications/drive-

assistance/surround-view-camera.html [Dostupno 25.08.2016.]

[3] Diego Buffa, “Android & IVI systems”,

http://www.windriver.com/seminars/7839-android/4_IVI_ANDROID.pdf [Dostupno

25.08.2016.]

[4] http://www.ics.com/services/ivi [Dostupno 25.08.2016.]

[5] http://www.webopedia.com/TERM/I/in-vehicle-infotainment-ivi.html [Dostupno

25.08.2016.]

[6] B. Kovacevic, M. Kovacevic, T. Maruna, D. Rapic, Android4Auto: “A proposal for

integration of Android in vehicle infotainment systems”, IEEE International

Conference, 2016

[7] A. Dakic, T. Srejic, M. Z. Bjelica, M. Krbanjevic, “Pilot In-Vehicle Infotainment

Learning Platform“,

[8] E. Kollorz, A. Barke, “Gesture recognition with a tiome-of-flight camera”,

International Journal of Intelligent Systems Technologies and Application, 2008