ЗАВРШНИ (bachelor) РАД
TRANSCRIPT
УНИВЕРЗИТЕТ У НОВОМ САДУ
ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА
УНИВЕРЗИТЕТ У НОВОМ САДУ
ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА
НОВИ САД
Департман за рачунарство и аутоматику
Одсек за рачунарску технику и рачунарске комуникације
ЗАВРШНИ (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