• No results found

Bakal´ aˇ rsk´ a pr´ ace

N/A
N/A
Protected

Academic year: 2022

Share "Bakal´ aˇ rsk´ a pr´ ace"

Copied!
38
0
0

Loading.... (view fulltext now)

Full text

(1)

Model autonomn´ıho vozu sleduj´ıc´ıho ˇ c´ aru

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B 2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: Milan Honc˚u

Vedouc´ı pr´ace: Ing. Jan Koprnick´y, Ph.D.

(2)

Autonomous line following car

Bachelor thesis

Study programme: B 2646 – Information technology Study branch: 1802R007 – Information technology

Author: Milan Honc˚u

Supervisor: Ing. Jan Koprnick´y, Ph.D.

Liberec 2016

(3)
(4)
(5)

Pnoh$a*$ernf

Byl jsem seznS,men s tim, Ze na mou vztahuje z6"kon a. 72112000 Sb., o prd,vu Skolni dilo.

bakalS,iskou pr6ci se p1n6 autorsk6m, zejm6na $ 60

Beru na v6domf, Ze Technickd, univerzita

v

Liberci (TUL) neza- sahuje do rn.fch autorsk.fch pr6v

uzitin

m6 bakal6isk6 prdce pro

vnitini potiebu TUL.

UZiji-li bakalS,iskou pr6ci nebo poskytnu-li licenci k jejimu vyuiiti, jsem

si

v6dom povinnosti informovat

o

t6to skutednosti TUL;

v

tomto piipad6 m6

TUL

prd,vo ode mne poZadovat rihradu niikladri, kter6 vynaloiila na vytvoieni diIa, ai, do jejich skute6n6 qfse.

Bakald,iskou prd,ci jsem vypracoval samostatne s pouZitim uveden6

literatury a na, z6,klad6 konzultaci s vedoucim m6 bakal6isk6 prd,ce a konzultantem.

Soudasn6 destn6 prohla5uji, Ze ti5t6n5, verze pr5"ce se shoduje s elek- tronickou verzi, vlolenou do IS STAG.

t-lon.*

a

Datum:

4( 5 [046

Podpis:

(6)

Abstrakt

Tato bakal´aˇrsk´a pr´ace se zab´yv´a v´yvojem a testov´an´ım ˇr´ıdic´ıho algoritmu vyvinut´eho pro autonomn´ı model vozidla od spoleˇcnosti Freescale. D´ale jsou testov´any HW ´upravy proveden´e na vozidle, umoˇzˇnuj´ıc´ı reverzaci motor˚u. Z´avˇerem je pops´ano testov´an´ı a od- ladˇen´ı algoritmu na testovac´ı dr´aze.

Kl´ıˇcov´a slova: Freescale, EMEA, algoritmus ˇr´ızen´ı jednoˇr´adkov´e kamery

Abstract

The thesis deals with the development and testing of a control algorithm developed for an autonomous vehicle model from Frees- cale company. Further the vehicle HW adjustments, which allows engine reversing, are tested. In conclusion, testing and debugging of the algorithm, that was made on a test track, is described.

Keywords: Freescale, EMEA, algorithm of control one-liner camera

5

(7)

Podˇ ekov´ an´ı

Podˇekov´an´ı za tuto pr´aci patˇr´ı pˇredevˇs´ım Ing. Janu Koprnick´emu, Ph.D., pod jehoˇz odborn´ym veden´ım byla pr´ace sepisov´ana a algo- ritmus ladˇen.

D´ale bych chtˇel podˇekovat panu Petru Stanˇc´ıkovi ze spoleˇcnosti Freescale, kter´y mi pomoc´ı e-mailov´e komunikace pomohl pochopit principy fungov´an´ı tohoto v´yvojov´eho kitu.

Nesm´ım rozhodnˇe opomenout podˇekovat panu docentu Satrapovi za perfektn´ı bal´ık tulthesis, se kter´ym je sazba textu v syst´emu LATEX radost´ı.

A v neposledn´ı ˇradˇe patˇr´ı m´e podˇekov´an´ı rodinˇe a vˇsem, jeˇz mˇe v m´ych studijn´ıch aktivit´ach podporuj´ı.

(8)

Obsah

Seznam zkratek . . . 10

Uvod´ 11 1 Motivace 12 1.1 EMEA . . . 12

1.1.1 Vybran´a pravidla EMEA 2016 . . . 12

2 Teoretick´a a reˇserˇsn´ı ˇc´ast 14 2.1 Hardware . . . 14

2.1.1 Freescale kit . . . 14

2.1.2 Deska TRK-MPC5604B/C . . . 15

2.1.3 Mechanick´e spojky vodiˇc˚u (jumpery) . . . 15

2.1.4 Konektory TRK-MPC5604B/C . . . 17

2.1.5 Deska The FC Motor Drive Version A . . . 19

2.1.6 Line´arn´ı kamera . . . 20

2.1.7 Motory, baterie . . . 21

2.1.8 Zmˇeny HW . . . 22

2.2 Software . . . 23

2.2.1 Vyuˇzit´y software . . . 23

2.2.2 CodeWarrior . . . 23

2.2.3 Terminal . . . 23

2.2.4 Sample Project . . . 24

3 Praktick´a ˇc´ast 25 3.1 N´astin ˇreˇsen´ı . . . 25

3.1.1 Sledov´an´ı ˇc´ary . . . 25

3.1.2 R´ızen´ı motor˚ˇ u . . . 26

3.2 Moˇzn´e realizace parkovac´ıho man´evru . . . 26

3.2.1 Enkod´er . . . 26

3.2.2 Odometrie . . . 27

3.3 Vlastn´ı algoritmus . . . 27

3.3.1 Cekac´ı f´ˇ aze . . . 27

3.3.2 Zpracov´an´ı dat z kamery . . . 27

3.3.3 Rychlost . . . 28

3.3.4 Prahovac´ı funkce . . . 28

7

(9)

3.4 HW ´upravy . . . 30

3.4.1 Vnˇejˇs´ı ´uprava . . . 30

3.4.2 Softwarov´e testov´an´ı proveden´ych ´uprav . . . 31

3.5 Probl´emy pˇri realizaci . . . 32

3.5.1 32bit OS . . . 32

3.5.2 Chybn´e mˇeˇren´ı kamery . . . 32

3.5.3 Funkce Delay() . . . 32

3.5.4 Vybit´a baterie . . . 32

3.6 Testov´an´ı . . . 33

Z´avˇer 34

Pˇr´ılohy 37

A Obsah pˇriloˇzen´eho CD 37

(10)

Seznam obr´ azk˚ u

1.1 Uk´azka tratˇe podle pravidel v roce 2015 . . . 13

2.1 Boˇcn´ı pohled . . . 14

2.2 Horn´ı pohled . . . 14

2.3 Z´akladn´ı jumpery . . . 16

2.4 R´ıdic´ı deska . . . 18ˇ 2.5 V´ykonov´a deska . . . 19

2.6 Led diody a tlaˇc´ıtka . . . 19

2.7 Motory zadn´ı n´apravy . . . 21

2.8 Servomotor pˇredn´ı n´apravy . . . 21

2.9 Propojen´ı prvk˚u vozu . . . 22

2.10 V´yvojov´e prostˇred´ı CodeWarrior . . . 23

2.11 Termin´al . . . 24

3.1 N´astin ˇreˇsen´ı . . . 25

3.2 Diagram navrhnut´eho algoritmu . . . 29

3.3 Pravdivostn´ı tabulka [15] . . . 30

3.4 HW ´upravy vozidla . . . 31

3.5 Trat’ v laboratoˇr´ıch TUL . . . 33

9

(11)

Seznam zkratek

RAM Random Access Memory — pamˇet’ s libovoln´ym pˇr´ıstupem HW Hardware — fyzick´e vybaven´ı pˇr´ıstroje

PWM Pulse Wide Modulation — pulznˇe ˇs´ıˇrkov´a modulace GND Ground — uzemnˇen´ı

I/O Input/Output — vstupnˇe/v´ystupn´ı

EMEA N´azev soutˇeˇze, pˇri kter´e se poˇr´adaj´ı z´avody voz˚u Freescale CAN Controller Area Network — sbˇernice

DC Direct Current — stejnosmˇern´y proud LIN Local Interconnect Network — sbˇernice

LED Light Emitting Diode — dioda emituj´ıc´ı svˇetlo

(12)

Uvod ´

Tato pr´ace se zab´yv´a v´yvojem a testov´an´ım algoritmu pro autonomn´ı model vozidla od spoleˇcnosti Freescale. D´ale jsou testov´any realizovan´e HW ´upravy pro moˇznost reverzace motor˚u. V prvn´ı ˇc´asti se pr´ace zab´yv´a motivac´ı a zpracov´an´ım reˇserˇsn´ı ˇc´asti na toto t´ema.

Pops´any jsou z´akladn´ı schopnosti modelu vˇcetnˇe popisu jeho hlavn´ıch periferi´ı.

N´asleduje popis a postup v´yvoje vlastn´ıho algoritmu pro pohyb vozidla. Pops´any jsou tak´e vybran´e realizovan´e stˇeˇzejn´ı funkce, kter´e maj´ı pro algoritmus nepostra- dateln´y v´yznam. Jelikoˇz se pr´ace neobeˇsla bez komplikac´ı, v posledn´ı ˇc´asti jsou tyto pops´any.

11

(13)

1 Motivace

Motivac´ı t´eto pr´ace bylo zrealizovat a n´aslednˇe otestovat algoritmus, kter´ym by bylo moˇzn´e splnit poˇzadavky pro kvalifikaci do z´avod˚u, jeˇz se s tˇemito modely organizuj´ı.

Tak´e bylo tˇreba otestovat funkˇcnost a spr´avn´e proveden´ı HW ´uprav, kter´e byly realizov´any pro letoˇsn´ı rok.

Toto t´ema jsem si vybral z d˚uvodu m´e z´aliby v robotice a automatizaci. Zpra- cov´an´ım bakal´aˇrsk´e pr´ace jsem si osvojil jednoduch´e zpracov´an´ı obrazu, inicializaci v´yvojov´eho procesoru a vytv´aˇren´ı jednoduch´ych ˇr´ıdic´ıch algoritm˚u. Deska modelu obsahuje tak´e sbˇernice typu RS-232, LIN a CAN, kter´e jsou pro mˇe velmi zaj´ımav´e, a proto jsem se s nimi zkusil ˇc´asteˇcnˇe sezn´amit.

1.1 EMEA

Soutˇeˇz, bˇehem n´ıˇz se poˇr´adaj´ı z´avody s tˇemito modely se jmenuje EMEA [10].

T´yk´a se pˇredevˇs´ım student˚u technick´ych univerzit. Kaˇzd´y rok jsou specifikov´any poˇzadavky pro moˇznost ´uˇcasti na t´eto soutˇeˇzi.

Trat’ je sloˇzena z nˇekolika ˇc´ast´ı. M˚uˇze obsahovat tunely, mosty a z´avody mohou prob´ıhat ve tmˇe, na coˇz jsou ovˇsem potˇrebn´e dodateˇcn´e ´upravy, podmiˇnuj´ıc´ı spr´avn´e sn´ım´an´ı kamery, jako napˇr´ıklad pˇr´ıdavn´e led osvˇetlen´ı.

Povolen´e ´upravy na modelu jsou specifikov´any. Nˇekter´e ˇc´asti kitu je nutn´e za- chovat, jin´e je moˇzn´e demontovat a nahradit jinou souˇc´astkou. Pravidla jsou velmi striktn´ı a pˇred kaˇzd´ym z´avodem prob´ıh´a technick´a pˇrej´ımka a kontrola modelu vozu.

T´ym˚um, jeˇz jak´ymkoliv zp˚usobem poruˇs´ı podm´ınky stanoven´e v pravidlech, nen´ı start v soutˇeˇzi umoˇznˇen.

V minul´ych letech doˇslo k z´asadn´ı zmˇenˇe v ´upravˇe trati. Dˇr´ıve byla trat’ opatˇrena ˇcernou ˇcarou uprostˇred cesty. V souˇcasn´e dobˇe je auto navigov´ano a ˇr´ızeno podle krajnic silnice. Novou podobu tratˇe m˚uˇzete vidˇet na obr´azku 1.1.

1.1.1 Vybran´ a pravidla EMEA 2016

• Poˇzadavky na t´ym:

– maxim´aln´ı velikost t´ymu jsou 3 ˇclenov´e, minim´aln´ı poˇcet 2 – t´ym sm´ı b´yt sloˇzen pouze ze student˚u

– studenti nemus´ı b´yt z jedn´e univerzity – . . .

(14)

• N´aleˇzitosti a povolen´e modifikace modelu:

– nutnost pouˇzit´ı Freescale 32-bit Microcontroller – procesor m˚uˇze b´yt na modelu pouze jeden

– model mus´ı b´yt navigov´an pomoc´ı optick´eho senzoru, ˇz´adn´y jin´y zp˚usob nen´ı povolen

– nen´ı povolen DC-DC mˇeniˇc

– povolena pouze jedna baterie s kapacitou <= 3000 mAh – . . .

Obr´azek 1.1: Uk´azka tratˇe podle pravidel v roce 2015

Jelikoˇz byl algoritmus ps´an pro star´y typ tratˇe, nebylo by moˇzn´e se z´uˇcastnit soutˇeˇze podle aktu´aln´ıch pravidel. Nutn´ymi podm´ınkami podmiˇnuj´ıc´ı start v soutˇeˇzi by bylo poskl´ad´an´ı t´ymu, v´ymˇena kamery a v neposledn´ı ˇradˇe pˇreps´an´ı a precizn´ı odladˇen´ı algoritmu.

13

(15)

2 Teoretick´ a a reˇ serˇ sn´ı ˇ c´ ast

2.1 Hardware

2.1.1 Freescale kit

Z´akladem tohoto projektu je kit od spoleˇcnosti Freescale [13], kter´y obsahuje z´akladn´ı komponenty pro stavbu vozidla ve velikosti 1/18. Podvozek je tvoˇren plastov´ym r´amem, na nˇemˇz jsou uchyceny ostatn´ı komponenty. V´yvojov´y kit je jednoduch´y, slouˇz´ı pouze ke sv´emu ´uˇcelu v´yuky programov´an´ı procesor˚u. Z´akladn´ı ˇc´asti tvoˇr´ı tyto komponenty (bude rozebr´ano pozdˇeji):

• ˇr´ıdic´ı deska MPC 5604B/C,

• v´ykonn´a deska s H-m˚ustky (Motor drive version A),

• baterie pro nap´ajen´ı,

• servomotor pro nat´aˇcen´ı pˇredn´ıch kol,

• elektromotory pro ˇr´ızen´ı ot´aˇcen´ı zadn´ıch kol,

• line´arn´ı kamera.

Obr´azek 2.1: Boˇcn´ı pohled Obr´azek 2.2: Horn´ı pohled

(16)

2.1.2 Deska TRK-MPC5604B/C

Tato deska [3] disponuj´ıc´ı 32-bitov´ym procesorem se star´a o zpracov´an´ı veˇsker´ych instrukc´ı vstupuj´ıc´ıch do v´yvojov´eho kitu. Obsahuje nˇekolik konektor˚u, pˇres kter´e je moˇzn´a komunikace s deskou, a t´ım i cel´ym modelem. Program je moˇzn´e nahr´avat do pamˇeti typu FLASH ˇci SRAM.

RAM

Jedn´a se o nejrychlejˇs´ı typ pamˇeti. Probl´em je ovˇsem v jejich nest´alosti, coˇz znamen´a, ˇze po odpojen´ı od zdroje nap´ajen´ı dojde k jejich vymaz´an´ı. Tomuto jevu se ˇr´ık´a volatilita pamˇeti. Pamˇeti RAM se dˇel´ı na SRAM a DRAM. SRAM jsou statick´e pamˇet’ov´e buˇnky realizov´any jako bistabiln´ı klopn´e obvody. Oproti tomu dynamick´e RAM jsou na v´yrobu mnohem jednoduˇsˇs´ı, a tud´ıˇz i znaˇcnˇe levnˇejˇs´ı. Pamˇet’ov´e buˇnky jsou zde tvoˇreny pomoc´ı tranzistor˚u. Nev´yhodou je, ˇze se obsah kaˇzd´e pamˇet’ov´e buˇnky mus´ı pravidelnˇe obnovovat.

Naˇse deska je opatˇrena 32 kB pamˇeti typu SRAM.

FLASH

Jedn´a se o nevolatiln´ı pamˇet’ s libovoln´ym pˇr´ıstupem. Data jsou ukl´ad´ana v poli unipol´arn´ıch tranzistor˚u s plovouc´ımi hradly. V naˇsem pˇr´ıpadˇe je deska opatˇrena FLASH pamˇet´ı o velikosti 512 kB.

2.1.3 Mechanick´ e spojky vodiˇ c˚ u (jumpery)

Na desce se nach´az´ı tak´e velk´e mnoˇzstv´ı propojovac´ıch konektor˚u neboli jumper˚u.

Pro n´as jsou podstatn´e n´asleduj´ı jumpery:

• POWER SELECT

• OSJTAG IRQ OSJTAG IRQ

Propojen´ı toho jumperu najde uplatnˇen´ı v pˇr´ıpadˇe, ˇze budeme cht´ıt pˇrehr´at firm- ware desky. T´eto moˇznosti bylo vyuˇzito pˇred zaˇc´atkem programov´an´ı algoritmu, kdy doˇslo k nahr´an´ı aktu´aln´ı verze. Uˇcinˇeno tak bylo z d˚uvodu nefunkˇcnosti v´yvojov´eho softwaru s aktu´aln´ı verz´ı OS. Ani tento update ovˇsem nepomohl s probl´emy po- psan´ymi v kapitole 3.5.1 na stranˇe 32.

15

(17)

POWER SELECT

Tento jumper slouˇz´ı pro v´ybˇer varianty, jak´ym zp˚usobem m´a b´yt deska nap´ajena.

Jsou zde tˇri moˇznosti propojen´ı:

• REG 5V

• USB 5V

• SBC 5V

Vyuˇzito bylo moˇznosti nap´ajen´ı USB 5V v procesu seznamov´an´ı s deskou. Toto zapo- jen´ı postaˇcuje pro obsluhu z´akladn´ıch funkc´ı desky, jak´ymi jsou napˇr´ıklad rozsvˇecen´ı LED diod a stisky tlaˇc´ıtek. Pro sloˇzitˇejˇs´ı ´ulohy jako jsou rozt´aˇcen´ı motor˚u je za- potˇreb´ı pˇrepojit jumper na variantu REG 5V, kter´a nastav´ı jako v´ychoz´ı pˇr´ıjem nap´ajen´ı z nap´ajec´ıho konektoru popsan´eho v kapitole 2.1.4 na stranˇe 18.

Obr´azek 2.3: Z´akladn´ı jumpery

(18)

2.1.4 Konektory TRK-MPC5604B/C

Mezi nejv´yznamnˇejˇs´ı konektor, kter´ym je tato deska opatˇrena, je bezpochyby port USB, d´ıky nˇemuˇz prob´ıhalo pˇripojen´ı k PC a ladˇen´ı v programu termin´al. Dalˇs´ımi konektory um´ıstˇen´ymi na hlavn´ı desce jsou:

• RS-232

• LIN

• CAN

• PORT[A-H]

• nap´ajec´ı konektor RS-232

Tento konektor se pouˇz´ıv´a jako komunikaˇcn´ı rozhran´ı pro spojen´ı osobn´ıch poˇc´ıtaˇc˚u a dalˇs´ı elektroniky. Propojen´ı prob´ıh´a skrze s´eriovou komunikaci, coˇz znamen´a, ˇze bity jsou pˇren´aˇseny sekvenˇcnˇe za sebou. Poˇcet pˇren´aˇsen´ych datov´ych bit˚u je vo- liteln´y, nejˇcastˇeji se ovˇsem pouˇz´ıv´a varianta s osmi bity, kdy je pro logickou

”1“

napˇet´ı - 12V a pro logickou

”0“ 12V. Dalˇs´ı informace o sbˇernici: [14]

CAN

Jedn´a se o sbˇernici, kter´a se pouˇz´ıv´a pˇredevˇs´ım v automobilov´em pr˚umyslu. Jako v pˇredchoz´ım pˇr´ıpadˇe se jedn´a o s´eriovou sbˇernici. Parametry pˇrenosu jsou defi- nov´any normou ISO 11898. Data jsou odes´ıl´ana v r´amc´ıch, z nichˇz kaˇzd´y m˚uˇze obsahovat aˇz 8 datov´ych bajt˚u.

LIN [9]

LIN je jednoduch´a jednovodiˇcov´a sbˇernice vhodn´a pro pˇrenos dat mezi ˇr´ıd´ıc´ı jednot- kou, smart senzory a aktu´atory. Rychlost komunikace se pohybuje mezi 2400 a 19200 bit/s. Jedn´a se o pomˇernˇe novou sbˇernici, jeˇz byla poprv´e pouˇzita v automobilech roku 2001.

PORT[A–H]

Na desce se nach´az´ı mnoho programovateln´ych pin˚u, kter´e jsou rozdˇeleny na PORTY.

Port˚u se zde nach´az´ı celkem 8 a to s oznaˇcen´ım PORT[A–H], podporovan´a funkce dostupn´e na konkr´etn´ıch pinech lze vyˇc´ıst z datasheetu desky. Na kaˇzd´em portu, kromˇe H, se nach´az´ı 15 pin˚u. Na portu H je 12 programovateln´ych pin˚u. Vyuˇzit´y je cel´y port B, kter´y je spojen s v´ykonovou deskou. D´ale bude vyuˇzit port E pro schopnost reverzace.

17

(19)

Nap´ajec´ı konektor

Konektor kulat´eho pr˚uˇrezu nach´azej´ıc´ı se v lev´e horn´ıˇc´asti desky slouˇz´ı jako nap´ajec´ı.

Sem je pˇriveden vodiˇc z v´ykonov´e desky, kter´y se star´a o nap´ajen´ı.

Obr´azek 2.4: ˇR´ıdic´ı deska

(20)

2.1.5 Deska The FC Motor Drive Version A

V´yraznou souˇc´ast´ı modelu je tato deska propojuj´ıc´ı veˇsker´e komponenty s nap´ajen´ım.

Jedn´a se o starˇs´ı typ desky (rev. 0), jenˇz byl prod´av´an pˇred rokem 2013. Dnes je hojnˇe vyuˇz´ıv´ana deska novˇejˇs´ı (rev. 1). Hlavn´ım rozd´ılem mezi tˇemito deskami je fakt, ˇze modernˇejˇs´ı deska m´a oproti starˇs´ımu typu moˇznost pˇr´ım´e reverzace mo- tor˚u bez dodateˇcn´ych HW ´uprav. Dalˇs´ı v´yhodou je eliminace elektro-magnetick´e interfence, kter´a zp˚usobovala ruˇsen´ı sign´alu z line´arn´ı kamery a sniˇzov´an´ı v´ykonu servomotoru.

Obr´azek 2.5: V´ykonov´a deska

LED diody a tlaˇc´ıtka

Na t´eto desce se nach´az´ı 4 programovateln´e led diody zelen´e barvy, pˇr´ımo soused´ıc´ı se stejn´ym poˇctem tlaˇc´ıtek. Na obr´azku 2.6 lze vidˇet tak´e jumpery povoluj´ıc´ı LED diody a tlaˇc´ıtka.

Obr´azek 2.6: Led diody a tlaˇc´ıtka

19

(21)

2.1.6 Line´ arn´ı kamera

Line´arn´ı kamera, kter´a je pˇredsazena pˇred vozidlo na kovov´e rampˇe smontovan´e ze stavebnice Merkur, se jako jedin´a star´a o z´ısk´av´an´ı vstupn´ıch dat z okol´ı, a tud´ıˇz po- skytuje rozhoduj´ıc´ı vˇetven´ı pro dalˇs´ı vykon´av´an´ı algoritmu. Kamera je spojena pro- pojovac´ım kabelem pˇr´ımo s v´ykonnou deskou. Vodiˇce, jeˇz jsou potˇrebn´e ke spr´avn´emu fungov´an´ı kamery jsou ground, power, SI (seriov´y vstup), AO (analogov´y v´ystup), CK (hodinov´y sign´al).

Moˇzn´e je tak´e pˇr´ımo nastaven´ı zaostˇrovac´ı vzd´alenosti na kameˇre pomoc´ı otoˇcn´e ˇcoˇcky. Ploˇsn´y spoj, na nˇemˇz je kamera uchycena, m´a ze zadn´ı ˇc´asti spoje nalepe- nou ˇcernou p´asku, jeˇz eliminuje svˇeteln´e paprsky dopadaj´ıc´ı ze ˇspatn´e strany pa- nelu. T´ımto doch´az´ı k lehk´emu potlaˇcen´ı ruˇsiv´ych informac´ı, kter´e by mohly m´ıt na v´ysledn´e sn´ım´an´ı kamery neblah´y vliv. Kamera produkuje 128 hodnot z fotodiod, jeˇz jsou v rozmez´ı 0 – 5 V. Zpracov´an´ı dat z kamery se nejˇcastˇeji prov´ad´ı n´asleduj´ıc´ımi zp˚usoby:

Prahov´a funkce

Jedn´a se o funkci, kter´a na z´akladˇe nastaven´eho, ˇci vypoˇcten´eho vhodn´eho prahu upravuje nasn´ıman´e hodnoty. Hodnoty vyˇsˇs´ı neˇz je pr´ah nastav´ı na hodnotu

”log.

1“, menˇs´ı ˇci rovn´e prahu na

”log. 0“.

Korelace

V tomto pˇr´ıpadˇe je nutn´e z´ıskat kvalitn´ı vzor pro zpracov´an´ı dat. Algoritmus naˇcte z pamˇeti uloˇzen´y vzor a porovn´a s daty z´ıskan´ymi z kamery. Na z´akladˇe vyhodnocen´ı rozd´ılu mezi tˇemito dvˇema vzorky se vypoˇc´ıt´a akˇcn´ı z´asah.

Tento zp˚usob je ovˇsem pomˇernˇe v´ypoˇcetnˇe n´aroˇcn´y, a tud´ıˇz je pro naˇsi potˇrebu rychl´eho vykon´av´an´ı algoritmu nevhodn´y.

(22)

2.1.7 Motory, baterie

O nat´aˇcen´ı pˇredn´ıch kol se star´a servomotor uchycen´y k ramen˚um kol. Vzd´alenost a korekce nat´aˇcen´ı je moˇzn´a pˇres z´avˇesy, kter´e jsou vyrobeny ze z´avitov´ych tyˇc´ı.

O pohon zadn´ıch kol se staraj´ı dva motory, kde kaˇzd´y poh´an´ı jedno hnan´e kolo.

Ot´aˇcen´ı kol na sobˇe nen´ı z´avisl´e, proto je moˇznost jak´esi simulace diferenci´alu. Rych- lost ot´aˇcen´ı kol je ˇr´ızena pomoc´ı stˇr´ıdy. Baterie kter´e se nach´az´ı na tomto modelu disponuje kapacitou 3000 mAh a napˇet´ım 7.2 V. Baterie je pˇripojena na v´ykonovou desku modelu. Aktu´aln´ı stav akumul´atoru nen´ı bohuˇzel nijak indikov´an. V pˇr´ıpadˇe nedostateˇcn´eho nabit´ı se model chov´a nepˇredv´ıdatelnˇe a je jen tˇeˇzko odhadnuteln´e, ˇze tyto stavy m´a za n´asledek baterie.

Servomotor

Rozd´ıl oproti klasick´ym motor˚um je v tom, ˇze u servomotoru lze nastavit pˇresnou polohu natoˇcen´ı. ˇR´ızen´ı prob´ıh´a pomoc´ı PWM, pokud je stˇr´ıda nastaven´a na 50 %, motor bude ve stˇredu sv´eho natoˇcen´ı. Pˇri sniˇzov´an´ı ˇci zvyˇsov´an´ı pomˇeru stˇr´ıdy dojde k jeho vych´ylen´ı bud’ ve smˇeru vlevo, nebo vpravo.

Obr´azek 2.7: Motory zadn´ı n´apravy Obr´azek 2.8: Servomotor pˇredn´ı n´apravy

21

(23)

2.1.8 Zmˇ eny HW

Oproti minul´ym let˚um, kdy byl tento model vyuˇz´ıv´an pro BP a PRJ, doˇslo k v´yrazn´e

´

upravˇe HW. Jedn´a se o spojen´ı mezi v´ykonovou a ˇr´ıdic´ı deskou, kter´e umoˇzˇnuje pˇr´ımou reverzaci motor˚u, a proto je zajiˇstˇena moˇznost pohybu vzad i u t´eto starˇs´ı v´ykonov´e desky s oznaˇcen´ım Motor Drive Version A. Pˇredpoklady nutn´e pro splnˇen´ı podm´ınek reverzace najdeme v tabulce 3.3 na stranˇe 30.

Obr´azek 2.9: Propojen´ı prvk˚u vozu

(24)

2.2 Software

2.2.1 Vyuˇ zit´ y software

Pro naps´an´ı funkˇcn´ıho algoritmu pro ˇr´ızen´ı modelu bylo vyuˇzito nˇekolik program˚u.

Pro naps´an´ı k´odu byl pouˇzit program CodeWarrior MPC55xx/MPC56xx v2.10 (Classic), vhodn´y pr´avˇe pro v´yvoj t´eto desky. Pro odladˇen´ı a testov´an´ı napsan´eho k´odu byl vyuˇzit software od firmy PE micro, jedn´a se o cel´y bal´ık program˚u, kter´e se k odladˇen´ı vyuˇz´ıvaj´ı. Jeden z nejd˚uleˇzitˇejˇs´ıch se jmenuje Terminal Utility a slouˇz´ı ke komunikaci s v´yvojovou deskou. D´ale zde najdeme kupˇr´ıkladu Logic Analyzer, Accelerometer, Serial Grapher atd. Pouˇzit´e programy budou zm´ınˇeny a pops´any n´ıˇze.

2.2.2 CodeWarrior

Jedn´a se o v´yvojov´e prostˇred´ı pro r˚uzn´e druhy operaˇcn´ıch syst´em˚u. Hlavn´ım pro- gramovac´ım jazykem je C/C++, ale je moˇzn´e pouˇz´ıvat i jin´e jazyky, jako napˇr´ıklad Pascal, Object Pascal, Objective-C ˇci r˚uzn´e Java kompil´atory.

Obr´azek 2.10: V´yvojov´e prostˇred´ı CodeWarrior

23

(25)

2.2.3 Terminal

Terminal od firmy PE micro byl cenn´ym pomocn´ıkem pˇri ladˇen´ı programu. Umoˇzˇnuje komunikaci s deskou, zad´av´an´ı vstupn´ıch dat a moˇznost v´ypisu dat v´ystupn´ıch.

Jedn´a se o velmi intuitivn´ı program, se kter´ym se d´a pracovat bez vˇetˇs´ıch obt´ıˇz´ı.

Pot´ıˇz pˇrich´az´ı aˇz s 64bit verz´ı OS, kde se spojen´ı ani za vydatn´e pomoci vedouc´ıho pr´ace nepodaˇrilo zprovoznit. Proto v´yvoj prob´ıhal na x86 verzi OS.

Obr´azek 2.11: Termin´al

2.2.4 Sample Project

Pˇri v´yvoji algoritmu pro desku byl stˇeˇzejn´ı uk´azkov´y program, jenˇz lze st´ahnout na str´ank´ach komunity Freescale. Jedn´a se o velmi popisn´y algoritmus, kter´y d´av´a jasnou pˇredstavu o fungov´an´ı desky. Je zde vytvoˇreno nˇekolik funkc´ı, jeˇz nastiˇnuj´ı pr´aci s komponenty desky, jako napˇr´ıklad diody LED, ˇr´ızen´ı servomotoru a tak´e sa- motn´a pr´ace s registry a povolov´an´ı konkr´etn´ıch pin˚u, kter´e budeme pro n´aˇs projekt potˇrebovat. Je zde realizov´ana tak´e metoda, jeˇz pˇredstavuje pr´aci s kamerou.

(26)

3 Praktick´ a ˇ c´ ast

3.1 N´ astin ˇ reˇ sen´ı

Po sezn´amen´ı se s HW ˇc´astmi modelu pˇriˇsla na ˇradu programovac´ı ˇc´ast. Jednalo se o vytvoˇren´ı algoritmu, kter´y bude schopen pomoc´ı kamery sledovat a proj´ıˇzdˇet vytyˇcenou dr´ahu. Dalˇs´ım ´ukolem byla realizace parkovac´ıho man´evru.

Obr´azek 3.1: N´astin ˇreˇsen´ı

3.1.1 Sledov´ an´ı ˇ c´ ary

Sledov´an´ı ˇc´ary lze prov´adˇet r˚uzn´ymi zp˚usoby. V naˇsem pˇr´ıpadˇe se jedn´a o jednu z nejjednoduˇsˇs´ıch metod, pˇri kter´e se sn´ım´a odraz paprsk˚u svˇetla a n´aslednˇe dojde k vyhodnocen´ı. V´yhodou tohoto ˇreˇsen´ı je jednoduchost, nev´yhodou naopak to, ˇze si naˇse ˇreˇsen´ı vynucuje perfektn´ı svˇeteln´e podm´ınky. Pˇri sn´ım´an´ı jsou dopadaj´ıc´ı paprsky na ˇr´adkovou kameru pomoc´ı A/D pˇrevodn´ık˚u transformov´any a ukl´ad´any do struktury. V naˇsem pˇr´ıpadˇe se jedn´a o line´arn´ı pole se 128 hodnotami. Opotˇrebov´an´ı kamery je jiˇz znaˇcn´e, tud´ıˇz jsou pro naˇse ˇreˇsen´ı neupotˇrebiteln´e krajn´ı hodnoty z obou stran. Tak´e uprostˇred mˇeˇren´ı se vyskytuje p´ar nevalidn´ıch hodnot, kter´e ovˇsem nemaj´ı na fungov´an´ı z´asadn´ı vliv.

25

(27)

3.1.2 R´ızen´ı motor˚ ˇ u

Moˇznost generov´an´ı ˇs´ıˇrky stˇr´ıdy n´am d´av´a schopnost mˇenit rychlost ot´aˇcen´ı motor˚u.

Toho jistˇe vyuˇzijeme pˇri pr˚ujezdu trat´ı, kdy na rovin´ach budou ot´aˇcky vyˇsˇs´ı a pˇri j´ızdˇe do oblouku niˇzˇs´ı za ´uˇcelem eliminace chybn´ych mˇeˇren´ı a opuˇstˇen´ı tratˇe. Rever- zace motor˚u je po HW ´uprav´ach moˇzn´a za splnˇen´ı podm´ınek z tabulky 3.3. Rozsah parkovac´ıho man´evru je ovˇsem znaˇcnˇe eliminov´an neschopnost´ı sn´ımat plochu za vozidlem.

Pulznˇe ˇs´ıˇrkov´a modulace

Jedn´a se o jev, kdy je k pˇrenosu analogov´eho sign´alu nutno pouˇz´ıt pouze dvouhod- notov´y ´udaj. Sign´al je pˇren´aˇsen pomoc´ı stˇr´ıdy. Pro demodulaci sign´alu se pouˇz´ıv´a dolnofrekvenˇcn´ı propust.

Stˇr´ıda

U sign´al˚u, kter´e bˇehem jedn´e periody pˇrech´azej´ı z jednoho stavu do druh´eho a na- opak, znamen´a stˇr´ıda pomˇer ˇcas˚u, v nichˇz je sign´al v jednotliv´ych ´urovn´ıch. Tud´ıˇz napˇr´ıklad stˇr´ıda, generovan´a v pomˇeru 1:1, ud´av´a pˇr´ıpad, kdy se v polovinˇe doby cyklu nach´az´ı v´ystup na hodnotˇe vrchn´ı a zbytek cyklu na hranˇe spodn´ı. Stˇr´ıda se ˇcasto ud´av´a v %, procentu´aln´ı hodnota ud´av´a na kolik % se sign´al nach´az´ı na ´urovni 1. Tedy napˇr´ıklad stˇr´ıda 30 % ud´av´a, ˇze 30 % ˇcasu je na v´ystupu log. 1 (hodnota HIGH) a 70 % ˇcasu log. 0 (LOW).

3.2 Moˇ zn´ e realizace parkovac´ıho man´ evru

Parkovac´ı man´evr lze prov´est nˇekolika zp˚usoby. Jako nejjednoduˇsˇs´ı se jev´ı um´ıstˇen´ı dalˇs´ı kamery na z´ad’ vozidla. Tato modifikace by ovˇsem neumoˇznila vyjet´ı mimo stanovenou trat’ a algoritmizace pˇr´ıpadn´ych trat’ov´ych v´yhybek by byla pomˇernˇe n´aroˇcn´a. Dalˇs´ı moˇznost´ı by bylo um´ıstˇen´ı enkod´er˚u na kola. Ty by dovolovaly sn´ımat poˇcet ot´aˇcek kol, a t´ım poskytovaly informace pro dalˇs´ı zpracov´an´ı. K z´ısk´an´ı pˇredstavy o pohybu vozidla by bylo nutn´e implementovat proces odometrie, kter´y by n´am poskytl informace pro ˇr´ızen´ı. Porovn´an´ım informac´ı z enkod´eru by bylo zˇrejm´e, jak´e kolo se otoˇcilo kolikr´at, a tud´ıˇz v jak´em ´uhlu se model vozidla nach´az´ı.

3.2.1 Enkod´ er

Z´akladn´ım principem enkod´eru je pˇrevod rotaˇcn´ıho pohybu na sekvence elektrick´ych digit´aln´ıch impuls˚u. Enkod´ery lze rozdˇelit na inkrement´aln´ı a absolutn´ı. V pˇr´ıpadˇe inkrement´aln´ıho enkod´eru z´ısk´ame sign´al obdeln´ıkov´eho tvaru nab´yvaj´ıc´ı dvou hod- not, kter´y n´am ovˇsem neˇr´ık´a nic o smˇeru ot´aˇcen´ı motoru. Pro pˇr´ıpad, kdy potˇrebujeme kontrolu jak nad poˇctem otoˇcen´ı, tak i smˇerem, mus´ıme pouˇz´ıt enkod´er absolutn´ı.

V pˇr´ıpadˇe absolutn´ıho enkod´eru m´ame v´ıce stav˚u, neˇz je tomu u inkrement´aln´ıho a m˚uˇzeme tud´ıˇz posoudit, doch´az´ı–li k inkrementaci ˇci dekrementaci.

(28)

3.2.2 Odometrie

Odometrie je proces, pˇri kter´em lze ze z´ıskan´ych dat z enkod´er˚u urˇcit polohu vozu.

D˚uleˇzit´a je znalost prostˇred´ı a poˇcet otoˇcen´ı jednotliv´ych kol. Odometrie je zaloˇzena na principu, ˇze namˇeˇren´y rotaˇcn´ı pohyb kol je moˇzn´e pˇrepoˇc´ıtat na konkr´etn´ı pohyb v rovinˇe.

3.3 Vlastn´ı algoritmus

3.3.1 Cekac´ı f´ ˇ aze

Za ´uˇcelem zamezen´ı okamˇzit´eho vykon´av´an´ı algoritmu je implementovan´a funkce ready(), kter´a se star´a jenom o rozsv´ıcen´ı diody, jeˇz pˇr´ımo soused´ı s tlaˇc´ıtkem.

Funkce d´ale ˇcek´a na stisk tohoto tlaˇc´ıtka. Pˇri stlaˇcen´ı je model uveden do provozu.

Souˇcasnˇe dojde k deaktivaci svitu diody. Pˇri vyhodnocen´ı algoritmem, ˇze se jedn´a o v´yjezd z trati, je model uveden opˇet do t´eto ˇcekac´ı funkce.

3.3.2 Zpracov´ an´ı dat z kamery

Jeden z prvn´ıch ´ukol˚u pˇri realizaci ˇr´ıdic´ıho algoritmu bylo z´ısk´an´ı a n´asledn´a ´uprava dat pˇrich´azej´ıc´ıch z kamery. Data jsou ˇctena do pole integer˚u pomoc´ı funkce CA- MERA(), pro snadnˇejˇs´ı pouˇzit´ı byly hodnoty v rozsahu 0 – 255 modifikov´any do rozsahu 0, 1 (true/false), hodnota jedna pro znaˇcen´ı ˇc´ary a hodnoty nula pro pˇr´ıpad okoln´ıho (svˇetlejˇs´ıho) prostˇred´ı. Pole bylo tak´e oˇrez´ano o prvn´ıch a posledn´ıch deset hodnot, kter´e vykazovaly nejsp´ıˇse z d˚uvodu opotˇreben´ı kamery zn´amky nevalidn´ıch hodnot.

Pouˇzita byla prahovac´ı funkce popsan´a n´ıˇze. Algoritmus funguje tak, ˇze spoˇc´ıt´a nejdelˇs´ı sekvenci hodnot 1 v poli, n´aslednˇe je vypoˇc´ıt´an stˇred t´eto sekvence a na tento index nastavena promˇenn´a pro natoˇcen´ı kol. V pˇr´ıpadˇe, ˇze se tento index nach´az´ı okolo 30 % ˇci 70 % rozsahu pole, je promˇenn´a pro natoˇcen´ı nastavena na

´

uplnˇe vlevo/vpravo. Pˇri v´ıce poloˇzk´ach s hodnotou 1 neˇz je polovina rozsahu pole je promˇenn´a pro natoˇcen´ı kol nastavena do stˇredu. Toto se m˚uˇze st´at v pˇr´ıpadˇe, ˇze v˚uz proj´ıˇzd´ı startovn´ı ˇc´arou, kter´a je poloˇzena po ˇs´ıˇrce cel´e tratˇe ˇci v pˇr´ıpadˇe kˇr´ıˇzen´ı trat´ı.

Algoritmus je ps´an jeˇstˇe pro starˇs´ı typ dr´ahy, kdy byla vodic´ı ˇc´ara um´ıstˇena uprostˇred tratˇe. V souˇcasnosti je trat’ ohraniˇcena ˇcarami z obou stran, obdobnˇe jako je tomu v pˇr´ıpadˇe silnic pouze s krajnicemi bez stˇredov´eho pruhu. Takto bylo re- alizov´ano z d˚uvodu toho, ˇze veˇsker´e vyroben´e testovac´ı tratˇe jsou jeˇstˇe pˇrizp˚usobeny starˇs´ım podm´ınk´am. Pro pˇr´ıpad v´yjezdu modelu z tratˇe, je implementov´ana podm´ınka, kter´a v pˇr´ıpadˇe, ˇze se poˇcet kladn´ych hodnot symbolizuj´ıc´ıch ˇc´aru dostane pod urˇcenou mez, zastav´ı vozidlo.

27

(29)

3.3.3 Rychlost

Rychlost ot´aˇcen´ı motor˚u je definov´ana pomoc´ı stˇr´ıdy na odpov´ıdaj´ıc´ım v´ystupu desky. Nastaven´ı rychlosti ot´aˇcen´ı se ˇr´ıd´ı podle dat z kamery. Vypoˇctena je od- chylka od stˇredn´ı hodnoty natoˇcen´ı kol. Rychlost m´a tˇri stupnˇe. Pˇri mal´e odchylce je rychlost vysok´a, s pˇrib´yvaj´ıc´ım odch´ylen´ım je sniˇzov´ana. V pˇr´ıpadˇe, ˇze jsou hod- noty od kamery vyhodnoceny jako vyjet´ı z tratˇe, je algoritmus uveden do stavu ˇcek´an´ı.

3.3.4 Prahovac´ı funkce

Podle svˇeteln´ych podm´ınek a schopnost´ı kamery lze nastavit prahovou hodnotu, po- moc´ı kter´e je rozezn´av´ana ˇc´ara od okoln´ıho prostˇred´ı. Pˇri standardn´ıch svˇeteln´ych podm´ınk´ach se jevila jako ide´aln´ı prahov´a hodnota 250. Nad hodnotu 250 vyk´az´ana hodnota true (1) symbolizuj´ıc´ı ˇc´aru, v opaˇcn´em pˇr´ıpadˇe hodnota false (0) pro okoln´ı prostˇred´ı. Bylo by tak´e moˇzn´e pouˇz´ıt adaptivn´ı nastaven´ı prahu, kdy by byl nasn´ım´an nejjasnˇejˇs´ı a nejtemnˇejˇs´ı bod a byl vypoˇcten pr˚umˇer tˇechto hodnot.

Od tohoto ˇreˇsen´ı bylo ale upuˇstˇeno a jako vhodn´a se uk´azala hranice 250.

(30)

Obr´azek 3.2: Diagram navrhnut´eho algoritmu

29

(31)

3.4 HW ´ upravy

Na vozidle byly provedeny HW ´upravy pro moˇznost reverzace motor˚u. Provedenou

´

upravu je moˇzn´e vidˇet na obr´azku 3.4. Jedn´a se o spojen´ı mezi v´ykonovou a ˇr´ıdc´ı deskou. Jde o dvouvodiˇcov´y kabel, kter´y je pˇrip´ajen na noˇziˇcky H-m˚ustk˚u obou motor˚u. Na druh´e stranˇe lze kabel zasunout na vhodn´e piny podporuj´ıc´ı PWM, nezbytnou pro ˇr´ızen´ı reverzovan´eho chodu motor˚u. V´ıce viz. [15].

Obr´azek 3.3: Pravdivostn´ı tabulka [15]

3.4.1 Vnˇ ejˇ s´ı ´ uprava

Podle tabulky 3.3 bylo tˇreba pro zpˇetn´y chod zajistit moˇznost ˇr´ızen´ı vstupuj´ıc´ıho sign´alu IN1 na H-m˚ustc´ıch motor˚u. Za t´ımto ´uˇcelem byl pˇriveden vodiˇc z ˇr´ıdic´ı desky. Ve v´ychoz´ım stavu byl takov´y, ˇze vstup IN1 byl trvale pˇripojen na GND. Bylo tud´ıˇz nutn´e toto spojen´ı pˇreruˇsit. Kv˚uli eliminaci moˇznosti, ˇze by doˇslo k ulomen´ı ˇci odtaven´ı noˇziˇcky na H-m˚ustku, nebyla odp´ajena, bylo pouze provedeno pˇreruˇsen´ı spoje mezi noˇziˇckou a GND.

(32)

3.4.2 Softwarov´ e testov´ an´ı proveden´ ych ´ uprav

Za ´uˇcelem ˇr´ızen´ı vybran´eho pinu na portech ˇr´ıdic´ı desky bylo tˇreba zjistit, jak´e piny podporuj´ı perif´erii EMIOS pro ˇr´ızen´ı PWM. Na ˇr´ıdic´ı desce se nach´az´ı nˇekolik port˚u, kaˇzd´y, krom portu H, po 16 pinech. Na portu H se nach´az´ı pouze 12 pin˚u. Porty jsou v rozsahu A-H, proto se zde nach´az´ı 124 pin˚u pro I/O operace. Podporovan´e funkce na kaˇzd´em pinu jsou pops´any v datasheetu desky [3]. Jako optim´aln´ı se zd´alo pouˇzit´ı pin˚u, podporuj´ıc´ıch EMIOS 0, kter´e byly jiˇz nakonfigurov´any pro ˇr´ızen´ı modelu smˇerem vpˇred. Bylo nutn´e dokonfigurovat kan´aly 16 a 22, jeˇz odpov´ıdaj´ı pin˚um 64 a 70, na nˇeˇz bylo spojen´ı s H-m˚ustky napojeno. Konfigurace kan´al˚u byla definov´ana obdobnˇe jako pro kan´aly 6 a 7, kter´e se staraj´ı o vytv´aˇren´ı stˇr´ıdy pro pohyb vpˇred.

Zde n´asleduje uk´azkov´a deklarace kan´alu ˇc 16. obdobnˇe je definov´an a deklarov´an kan´al ˇc. 22. Pro spr´avnou rotaci kol je nutn´e pos´ılat PWM pouze na IN1 nebo IN2.

Tud´ıˇz je nutn´e selektivn´ı povolov´an´ı v´ystup˚u pin˚u na desce.

Obr´azek 3.4: HW ´upravy vozidla

31

(33)

3.5 Probl´ emy pˇ ri realizaci

3.5.1 32bit OS

Jedn´ım z prvn´ıch probl´em˚u, kter´y se bˇehem v´yvoje algoritmu vyskytl, byla nutnost pouˇzit´ı 32-bitov´eho operaˇcn´ıho syst´emu. Termin´al i program CodeWarrior odm´ıtal pod 64-bitov´ym syst´emem pracovat. Bylo tud´ıˇz nutn´e zajistit operaˇcn´ı syst´em s ar- chitekturou x86. Jelikoˇz ani Windows 10 x86 nechtˇel s programy spolupracovat, byl nutn´y n´avrat k syst´emu Windows 7, jenˇz se pˇri n´avrhu algoritmu osvˇedˇcil.

3.5.2 Chybn´ e mˇ eˇ ren´ı kamery

Algoritmus z´ıskan´y ze Sample projektu, kter´y ukl´ad´a do pole o rozsahu 128 jednotek hodnoty 0 – 255, vykazoval pˇri testov´an´ı nevaliditu nasn´ıman´ych hodnot na zaˇc´atku a konci pole. Bylo prok´az´ano, ˇze hodnoty jsou chybnˇe interpretov´any jiˇz na ˇcipu kamery. Pole bylo proto oˇrez´ano o deset hodnot zleva a deset zprava, jelikoˇz bylo vypozorov´ano, ˇze tyto hodnoty vykazuj´ı nekonzistenci s nasn´ıman´ym prostˇred´ım.

Mˇeˇren´ı po tomto kroku zaˇcalo vykazovat znaky validity. Nev´yhodou je ovˇsem to, ˇze jsme tak pˇriˇsli o krajn´ı hodnoty pole, kter´e jsou pro vykon´av´an´ı algoritmu d˚uleˇzit´e a umoˇzˇnuj´ı vˇcasnou reakci na n´astup ˇc´ary do zorn´eho pole kamery. Z tohoto d˚uvodu bylo nutn´e sn´ıˇzit rychlost pohybu vozidla, aby bylo moˇzn´e i bez krajn´ıch hodnot dostat validn´ı a vˇcasn´e z´asahy do ˇr´ızen´ı.

3.5.3 Funkce Delay()

Po naps´an´ı algoritmu a jeho n´asledn´em testov´an´ı bylo odhaleno, ˇze program nen´ı vykon´av´an v takov´e frekvenci, jakou bychom oˇcek´avali. To bylo zp˚usobeno t´ım, ˇze se v k´odu nach´azelo p´ar zapomenut´ych vol´an´ı funkc´ı Delay(). Tato funkce pˇri kaˇzd´em zavol´an´ı zp˚usob´ı zpoˇzdˇen´ı okolo nˇekolika milisekund. Nejedn´a se o z´asadn´ı ˇcasov´y

´

usek, ovˇsem v naˇsem pˇr´ıpadˇe okamˇzit´e potˇreby vyhodnocen´ı pozice ˇc´ary, je kaˇzd´e prodlen´ı na spr´avn´em fungov´an´ı zn´at.

3.5.4 Vybit´ a baterie

Za tohoto stavu doch´az´ı k nepˇredv´ıdateln´emu chov´an´ı kitu. Probl´em je jak pˇri pˇripojen´ı k PC, tak pˇri samotn´em vykon´av´an´ı programu. Jelikoˇz se na modelu ne- nach´az´ı ˇz´adn´a signalizace stavu nabit´ı baterie, je tento stav jen tˇeˇzko odliˇsiteln´y on pˇr´ıpadn´e chyby v algoritmu. Je proto nutn´e stav nabit´ı baterie pravidelnˇe kontrolo- vat multimetrem.

(34)

3.6 Testov´ an´ı

Testov´an´ı prob´ıhalo nejdˇr´ıve na zkuˇsebn´ım kousku tratˇe, kter´y byl realizov´an pouze pro pˇr´ıpad sezn´amen´ı se s vykon´av´an´ım, a spr´avn´ym sn´ım´an´ım kamery. Pro jiˇz ˇc´asteˇcnˇe otestovan´y algoritmus byla d´ale pˇripraven´a trat’ vytvoˇren´a v laboratoˇri Technick´e univerzity v Liberci. Dr´aha, kter´a je vytvoˇrena na desce stolu za pomoc´ı ˇcern´e p´asky na svˇetl´em podkladu. Jedn´a se o standardn´ı ov´al se startovn´ı ˇc´arou.

Testy navrhnut´eho algoritmu prob´ıhaly s nejvyˇsˇs´ı obezˇretnost´ı, aby nedoˇslo k p´adu a poˇskozen´ı vozidla. Trat’ se podaˇrilo projet s ˇcasem pod 20 vteˇrin bez kolize. Ko- lem tohoto v´ysledku se pohybovaly hodnoty, zaznamenan´e v bakal´aˇrsk´ych prac´ıch z pˇredeˇsl´ych let. Testov´any byly i vˇetˇs´ı rychlosti, ovˇsem omezen´e sn´ım´an´ı kamery, kter´e neposkytuje validn´ı krajn´ı hodnoty, mˇelo za n´asledek nˇekolik koliz´ı. S ohle- dem na vyv´yˇsen´y st˚ul bylo tud´ıˇz od vˇetˇs´ıch rychlost´ı upuˇstˇeno. Byla t´eˇz otestov´ana moˇznost reverzace motor˚u.

Byly testov´any jenom z´akladn´ı moˇznosti couv´an´ı. Pro parkovac´ı man´evr by byla nutn´a modifikace tratˇe a modelu samotn´eho, jenˇz by musel sn´ımat plochu nejen pˇred, ale i za vozidlem. Algoritmizace takto navrhnut´eho parkovac´ıho man´evru by nebyla pˇr´ıliˇs sloˇzit´a, algoritmus vyhodnocov´an´ı stˇredu ˇc´ary by byl dost podobn´y inverzn´ımu algoritmu smˇeru vpˇred. Bylo takto odzkouˇseno chvilkov´ym odpojen´ım kamery od r´amu modelu a provizorn´ım pˇripojen´ım na zadn´ı ˇc´ast, aby byl sn´ım´an povrch nikoli pˇred, ale za vozidlem.

Obr´azek 3.5: Trat’ v laboratoˇr´ıch TUL

33

(35)

Z´ avˇ er

Mnou realizovan´e zad´an´ı bakal´aˇrsk´e pr´ace se uk´azalo jako velice pˇr´ınosn´e a zaj´ımav´e.

Sezn´amil jsem se za toto obdob´ı s inicializac´ı a principy fungov´an´ı mikropoˇc´ıtaˇce, se kter´ym jsem v dosavadn´ım studiu nebyl pˇr´ıliˇs mnoho kontaktu. Zaj´ımav´ym prvkem bylo tak´e vyv´ıjen´ıˇr´ıdic´ıho algoritmu, pˇri nˇemˇz byla osvˇeˇzena znalost programovac´ıho jazyka C/C++. Jako vˇetˇsina prac´ı se bohuˇzel ani tato neobeˇsla bez poˇc´ateˇcn´ıch probl´em˚u, kter´e byly naˇstˇest´ı brzo pˇrekon´any.

Testov´an´ı algoritmu na trati dopadlo vcelku podle m´ych oˇcek´av´an´ı. ˇCas, kter´eho jsem dos´ahl, nebyl z tˇech nej´uchvatnˇejˇs´ıch, ale mysl´ım si, ˇze jsem naˇsel rozumnou hranici mezi rychlost´ı a rizikem poniˇcen´ı modelu.

Testov´an´ı reverzace motor˚u mohlo jistˇe probˇehnout ve vˇetˇs´ı m´ıˇre, avˇsak jsem r´ad, ˇze se mi pˇres ˇcasov´y tlak podaˇrilo prokousat datasheety desky a potvrdit spr´avn´e proveden´ı realizovan´ych ´uprav a jejich ˇc´asteˇcn´e otestov´an´ı.

Byl demonstrov´an ˇc´asteˇcn´y parkovac´ı man´evr, ovˇsem jenom po provizorn´ıch

´

uprav´ach modelu. Kamera byla pˇrem´ıstˇena za vozidlo a bylo t´ım umoˇznˇeno sn´ımat plochu za modelem. Pro sloˇzitˇejˇs´ı parkovac´ı man´evry by bylo nutno opatˇrit model zadn´ı kamerou v pˇr´ıpadˇe, ˇze bychom chtˇeli parkovac´ı man´evr realizovat podle vo- dic´ı ˇc´ary. V pˇr´ıpadˇe vyˇsˇs´ıch poˇzadavk˚u na parkov´an´ı by bylo nutn´e model opatˇrit enkod´ery a realizovat proces odometrie viz. 3.2.

Touto prac´ı jsem z´ıskal mnoho cenn´ych zkuˇsenost´ı, kter´ych douf´am budu moci v budoucnu vyuˇz´ıt. At’ uˇz se jedn´a o m˚uj z´ajem v inicializaci mikropoˇc´ıtaˇc˚u, ˇci programov´an´ı v n´ızko´urovˇnov´ych jazyc´ıch.

(36)

Literatura

[1] PL´IVA, Z., J. DR ´ABKOV ´A, J. KOPRNICK ´Y a L. PETRˇZ´ILKA. Metodika zpracov´an´ı bakal´aˇrsk´ych a diplomov´ych prac´ı

2. upraven´e vyd´an´ı. Liberec: Technick´a univerzita v Liberci, FM, 2014.

ISBN 978-80-7494-049-1. Dostupn´e z: doi:10.15240/tul/002/2014-11-002 [2] Pulznˇe ˇs´ıˇrkov´a modulace. In: Wikipedia: the free encyclopedia [on-

line]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2016-05- 05]. Dostupn´e z: https://cs.wikipedia.org/wiki/Pulzn%C4%9B_%C5%

A1%C3%AD%C5%99kov%C3%A1_modulace

[3] MPC5604B/C Microcontroller Reference Manual. MPC5604B/C Micro- controller Reference Manual [online].

Freescale Semiconductor, 2013 [cit. 2016-05-05]. Dostupn´e z:

http://cache.freescale.com/files/32bit/doc/ref_manual/

MPC5604BCRM.pdf

[4] Pravidla EMEA 2016. TFC 2016 EMEA Challenge Rules 01 June 2015 — NXP Community[online]. Freescale Semiconductor, 2013 [cit. 2016-05-05].

Dostupn´e z: https://community.freescale.com/docs/DOC-105423 [5] Sample project Codewarrior Sample project for MPC55xxB/C and

MPC56xxB/C [online]. [cit. 2016-05-06].

Dostupn´e z: https://community.freescale.com/docs/DOC-1019

[6] Tvorba diagram˚u - draw. Draw.io is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams [online]. [cit. 2016-05-06]. Dostupn´e z: https://www.draw.io/

[7] Pouˇzit´e ikon. Icon Archive [online]. [cit. 2016-05-06].

Dostupn´e z: http://www.iconarchive.com

[8] Statick´e a dynamick´e pamˇeti. Root.cz [online]. [cit. 2016-05-06] Dostupn´e z: http://www.root.cz/clanky/staticke-a-dynamicke-pameti/

[9] LIN – Local Interconnect Network Automatizace.hw.cz: rady a posledn´ı novinky z oboru [online]. 2004 [cit. 2016-05-11]. Dostupn´e z: http://

automatizace.hw.cz/clanek/2005101501

35

(37)

[10] The NXP Cup EMEA. NXP [online]. [cit. 2016-05-15]. Dostupn´e z: https:

//community.freescale.com/groups/tfc-emea

[11] Enkod´ery. Robotika.cz [online]. [cit. 2016-05-15]. Dostupn´e z: https://

robotika.cz/guide/encoders/cs

[12] Odometry. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA):

Wikimedia Foundation, 2001- [cit. 2016-05-15]. Dostupn´e z: https://en.

wikipedia.org/wiki/Odometry

[13] TFC-KIT: The NXP Cup Intelligent Car Development Sys- tem Favorite. NXP [online]. [cit. 2016-05-15]. Dostupn´e z: http:

//www.nxp.com/products/microcontrollers-and-processors/

power-architecture-processors/mpc5xxx-5xxx-32-bit-mcus/

mpc56xx-mcus/the-freescale-cup-intelligent-car-development-system:

TFC-KIT

[14] RS-232. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA):

Wikimedia Foundation, 2001- [cit. 2016-05-15]. Dostupn´e z: https://cs.

wikipedia.org/wiki/RS-232

[15] Freescale Cup Motor Driver Board. NXP [online]. [cit. 2016-05-15]. Do- stupn´e z: https://community.freescale.com/docs/DOC-1059

(38)

Pˇ r´ılohy

A Obsah pˇ riloˇ zen´ eho CD

1. Bakal´aˇrsk´a pr´ace(BP.pdf) 2. V´yvojov´y algoritmus(BPA.zip)

3. Datasheet ˇr´ıdic´ı desky(MPC5604BC.pdf)

37

References

Related documents

Hodnocen´ı navrhovan´e vedouc´ım bakal´aˇrsk´e pr´ace: velmi dobře Hodnocen´ı navrhovan´e oponentem bakal´aˇrsk´e pr´ace:?. Pr˚ ubˇ eh obhajoby bakal´ aˇrsk´ e

Z tohoto důvodu následně členové komise udělili sníženou známku z obhajoby práce, čímž se neztotožnila se závěry vedoucí této práce. Posudek vedoucího

Nováková položila otázku: Uvažovala jste v rámci symboliky barev o jiných barvách?.

Hodnocen´ı navrhovan´ e vedouc´ım bakal´ aˇ rsk´ e pr´ ace: výborně Hodnocen´ı navrhovan´ e oponentem bakal´ aˇ rsk´ e pr´ ace: velmi dobře.. Pr˚ ubˇ eh obhajoby bakal´

Hodnocen´ı navrhovan´ e vedouc´ım bakal´ aˇ rsk´ e pr´ ace:.. Hodnocen´ı navrhovan´ e oponentem bakal´ aˇ rsk´ e

Dokážete najít logickou oporu v odborné literatuře, kterou byste podložila Váš návrh na vytvoření webových stránek a profilů na sociálních

Hodnocen´ı navrhovan´ e vedouc´ım bakal´ aˇ rsk´ e pr´ ace: výborně Hodnocen´ı navrhovan´ e oponentem bakal´ aˇ rsk´ e pr´ ace: výborně.. Pr˚ ubˇ eh obhajoby bakal´

Z navrhovaných opatření studentka uvedla například zvýšení podpory začlenění dětí s narušenou komunikační schopností do vrstevnické skupiny nebo předcházení