inteligentni tehnoloski sistemi - projekat

74
УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ КАТЕДРА ЗА ПРОИЗВОДНО МАШИНСТВО Интелигентни технолошки системи ГРУПА 4 Страна: 1 УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ Мастер академске студије – 2. година Модул: ПРОИЗВОДНО МАШИНСТВО, шк. год. 2012/2013. Предмет: ИНТЕЛИГЕНТНИ ТЕХНОЛОШКИ СИСТЕМИ (ПРО220-0131) Предметни наставници: проф. др Зоран Миљковићи проф. др Бојан Бабић ПРОЈЕКТНИ ЗАДАТАК (1/2) ГРУПА 4 РБ Име и презиме Број индекса 1. Јелица Његовановић 1012/2011 2. Марко Димитријевић 1157/2011 3. Јелена Грубач 1243/2011 4. Илија Ристовић 1288/2012 5. Далибор Кришан 238/2006 6. Душан Никић 1072/2011 7. Влада Поповић 1291/2012 Ради успостављања унутрашњег транспорта материјала, сировина и готових делова у оквиру експерименталног модела технолошког окружења XYприменом интелигентних мобилних робота, на мобилном роботу LEGOMindstormsNXT урадити следеће: 1. Формирати конфигурацију мобилног робота; 2. Развити и имплементирати модел кретања у Matlabокружењу; 3. Развити и имплементирати опсервациони (сензорски) модел мобилног робота применом система вештачких неуронских мрежа; 4. Применити алгоритам Калмановог филтера у циљу одређивања положаја мобилног робота у окружењу; 5. Имплементирати А* алгоритам претраге; 6. У експерименталном моделу технолошког окружења верификовати резултате. За дату диспозицију технолошког окружења „XY”: 1. Развити симулациони модел у Anylogic окружењу; 2. На основу резултата симулације предложити нови диспозициони план технолошког окружења (задржати исте машине) и формирати „троугаону” матрицу за нови модел;

Upload: marko-dimitrijevic

Post on 13-Apr-2015

142 views

Category:

Documents


12 download

DESCRIPTION

U ovom Projektu je razradjeno kretanje mobilnog robota u tehnoloskom okruzenju sa primenom jednacine kretanja, A zvezda algoritma kao i kalmanovog filtera,

TRANSCRIPT

Page 1: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 1

УНИВЕРЗИТЕТ У БЕОГРАДУ – МАШИНСКИ ФАКУЛТЕТ

Мастер академске студије – 2. година

Модул: ПРОИЗВОДНО МАШИНСТВО, шк. год. 2012/2013.

Предмет: ИНТЕЛИГЕНТНИ ТЕХНОЛОШКИ СИСТЕМИ (ПРО220-0131)

Предметни наставници: проф. др Зоран Миљковићи проф. др Бојан Бабић

ПРОЈЕКТНИ ЗАДАТАК

(1/2)

ГРУПА 4

РБ Име и презиме Број индекса

1. Јелица Његовановић 1012/2011

2. Марко Димитријевић 1157/2011

3. Јелена Грубач 1243/2011

4. Илија Ристовић 1288/2012

5. Далибор Кришан 238/2006

6. Душан Никић 1072/2011

7. Влада Поповић 1291/2012

Ради успостављања унутрашњег транспорта материјала, сировина и готових делова у

оквиру експерименталног модела технолошког окружења „XY” применом

интелигентних мобилних робота, на мобилном роботу LEGOMindstormsNXT урадити

следеће:

1. Формирати конфигурацију мобилног робота;

2. Развити и имплементирати модел кретања у Matlabокружењу;

3. Развити и имплементирати опсервациони (сензорски) модел мобилног робота применом система вештачких неуронских мрежа;

4. Применити алгоритам Калмановог филтера у циљу одређивања положаја мобилног робота у окружењу;

5. Имплементирати А* алгоритам претраге;

6. У експерименталном моделу технолошког окружења верификовати резултате.

За дату диспозицију технолошког окружења „XY”:

1. Развити симулациони модел у Anylogic окружењу;

2. На основу резултата симулације предложити нови диспозициони план технолошког окружења (задржати исте машине) и формирати „троугаону” матрицу за нови модел;

Page 2: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 2

3. Упоредити два модела диспозиционог плана на основу резултата симулације и дати закључак.

Решењем пројектног задатка обухватити:

1. Основни циљ пројекта; 2. Теоријску поставку проблема и анализу; 3. Тестирати и верификовати перформансе експерименталних и

симулационих решења;

4. Дискутовати резултате и дати закључак;

Напомене:

1. Пројекат ће бити позитивно оцењен ако и само ако приликом одбране пројектних задатака пројектно решење омогући несметано функционисање мобилног робота у окружењу;

2. Студенти су у обавези да на предавања и вежбе дођу припремљени јер ће у супротном коначан исход пројектних активности бити негативан;

3. Иницијатива студената у погледу предлога решења проблема, као и у погледу рада на додатним проблемима је више него пожељна, па ће стога сваки додатни рад бити узет у обзир приликом формирања завршне оцене;

4. Рокови израде појединачних пројектних целина дефинисани су планом и програмом предмета (Course Outline);

5. Сва питања, сугестије и евентуалне проблеме предочити у директном контакту са предметним наставницима, проф. др Зораном Миљковићем и проф. др Бојаном Бабићем, као и путем електронске поште на [email protected], [email protected], а посебно у разговору са сарадницима у настави и на е-пошту: [email protected], [email protected]и[email protected].

Датум издавања задатка: 12.10.2012.

Рок завршетка задатка: 07.12.2012.

Задатак издали: _______________________

(Марко М. Митић)

(Милица М. Петровић)

Page 3: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 3

Грубач Јелена1, Димитријевић Марко2,Кришан Далибор3,Никић Душан4, Његовановић Јелица5,Поповић Влада6, Ристовић Илија7

Резиме

Примена интелигентних технолошких система у производним технологијама

сваки дан напредује. Овај елаборат управо даје прилог унапређења у тој области

истраживања, у циљу развоја ових технологија. За производни погон пројектован је

систем мобилног робота који има задатак опслуживања машина. На тај начин се

повећава продуктивност и поузданост самог система. За потребе пројекта коришћен је

едукациони мобилни робот чији је софтвер управљања пројектован у програмском

пакету „MatLab“. За решавање неких од проблема управљања роботом коришћене су

вештачке неуронске мреже. За симулацију рада предузећа према пројектованом

диспозиционом плану производног система коришћен је „AnyLogic“ софтверски пакет,

помоћу ког се могу видети подаци о врсти и намени машине, као и времена

појединачних операција у току производње. Помоћу „AnyLogic“ софтверског пакета

знатно се смањује време пројектовања и побољшава се квалитет пројектовања

производног предузећа.

Кључне речи: управљање мобилним роботом, интелигентни технолошки

системи, вештачке неуронске мреже, технолошко окружење.

1Грубач Јелена1243/11, Универзитет у Београду- Машински факултет, студент друге године

Дипломских академских студија, е - пошта:[email protected] 2Димитријевић Марко 1157/11, Универзитет у Београду- Машински факултет, студент друге

године Дипломских академских студија, е - пошта: [email protected] 3Кришан Далибор 238/06, Универзитет у Београду- Машински факултет, студент друге године

Дипломских академских студија, е - пошта:[email protected] 4Никић Душан 1072/11, Универзитет у Београду- Машински факултет, студент друге године

Дипломских академских студија, е - пошта:[email protected] 5Његовановић Јелица 1012/11, Универзитет у Београду- Машински факултет, студент друге

године Дипломских академских студија, е - пошта:[email protected] 6Поповић Влада1291/12 , Универзитет у Београду- Машински факултет, студент друге године

Дипломских академских студија, е - пошта:[email protected] 7Ристовић Илија1288/12, Универзитет у Београду- Машински факултет, студент друге године

Дипломских академских студија, е - пошта:[email protected]

Page 4: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 4

Списак слика

Слика 2.2.1: Управљачка јединица ............................................................................. 11 Слика 2.2.2: Серво мотор ............................................................................................ 12

Слика 2.2.3: Светлосни сензор ................................................................................... 12 Слика 2.2.4: Изглед мобилног робота ........................................................................ 13

Слика 2.2.5: Мобилни робот у радном окружењу ...................................................... 14

Слика 2.2.6: Приказ модуларности мобилног робота ................................................ 14

Слика 2.3.1: Кретање мобилног робота ..................................................................... 15

Слика 2.3.2: Приказ промене позиције и оријенатације мобилног робота ............... 16

Слика 3.1: Пример структуре вештачке неуронске мреже ........................................ 19

Слика 3.2: Приказ процесирајућег елемента – неурона ............................................ 20

Слика 3.3: Примери графика активационих функција ............................................... 20

Слика 3.1.1: Подаци мерени оптичким сензором ...................................................... 21

Слика 3.1.2: График перформанси мреже број 4 ....................................................... 23

Слика 3.1.3: График перформанси мреже број 8 ....................................................... 23

Слика 3.1.4: График перформанси мреже број 12 ..................................................... 24

Слика 3.1.5: График перформанси изабране мреже ................................................. 24

Слика 3.2.1: Остварене вредности ротације робота у зависности од задате .......... 26

Слика 3.2.2: Обучавајући парови мреже и резултати мреже .................................... 27

Слика 3.2.3: Тестирање мреже за управљање ротацијом робота ............................ 28

Слика 3.2.4: Пареаметри мреже за управљање ротацијом робота .......................... 28

Слика 3.2.5: Провера рада мреже .............................................................................. 29

Слика 4.2.1: Положај оптичког сензора ...................................................................... 37

Слика 5.1: Пример графа ............................................................................................ 39

Слика 5.2: Пример графа за А* алгоритам ................................................................ 40

Слика 5.3: Пример једног чвора графа ...................................................................... 40

Слика 5.4: Путања кроз граф на основу А* алгоритма .............................................. 41

Слика 5.5: Алгоритам А* .............................................................................................. 42

Слика 5.6: Матрица препрека ..................................................................................... 42

Слика 5.7: Матрица хеуристике .................................................................................. 43

Слика 5.8: Спектар матрице хеуристике .................................................................... 43

Слика 5.9: Путања робота за дати пример ................................................................ 44

Слика 5.10: Резултати верификације А* алгоритма претраге .................................. 44

Слика 6.1: Робот у изабраном положају 1 .................................................................. 45

Слика 6.2: Робот у изабраном положају 2 .................................................................. 46

Слика 6.3: Робот у изабраном положају 3 .................................................................. 46

Слика 6.4: Робот у изабраном положају 4 .................................................................. 47

Слика 6.5: Робот у изабраном положају 5 .................................................................. 47

Слика 7.1.1: Диспозициони план ................................................................................. 51

Слика 7.1.2: Прво решење за дати диспозициони план ........................................... 52

Слика 7.1.3: Грешка првог решења ............................................................................ 52

Слика 7.1.4: Ново решење симулације за дати диспозициони план ........................ 53

Слика 7.1.5: Грешка другог решења за дати диспозициони план ............................. 53

Page 5: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 5

Слика 7.1.6: Треће решење ........................................................................................ 54

Слика 7.2.1: Нови диспозициони план предузећа „XY“. ........................................... 55

Слика 7.2.2: Троугаона матрица ................................................................................. 56

Слика 7.2.3: Почетна страна ....................................................................................... 56

Слика 7.2.4: Прво решење .......................................................................................... 57

Слика 7.2.5: Друго решење. ....................................................................................... 58

Слика 7.2.6: Треће решење. ....................................................................................... 59

Слика 7.2.7: Четврто решење. ................................................................................... 60

Слика 7.2.8: Анимација .............................................................................................. 61

Слика 7.2.9: Статистика рада машина ....................................................................... 62

Page 6: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 6

Списак табела

Табела 3.1: Параметри обучавања вештачке неуронске мреже за препознавање

боја очитаних оптичким сензором ........................................................ 22

Табела 3.2: Резултати мерења угла ротације робота ............................................... 25

Табела 3.3: Параметри обучавања вештачке неуронске мреже за управљање

скретањем робота ................................................................................. 27

Табела 7.1: Списак машина са описом ....................................................................... 49

Табела 7.2: Трајање технолошких операција у секундама за дате делове. ............ 49

Табела 7.3: Промењени називи делова ..................................................................... 50

Табела 7.4: Енитети коришћени у симулацијама ....................................................... 50

Табела 7.5: Табела степена зависности ..................................................................... 55

Табела 7.6: Табела разлога ........................................................................................ 55

Табела 7.7: Резултати симулација за 30 минута. ...................................................... 62

Табела 7.8: Резултати симулације за 8h .................................................................... 62

Page 7: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 7

Садржај

1. Увод ................................................................................................................8

2. Мобилни робот .............................................................................................9

2.1. Класификација и примена индустријских робота .............................10

2.2. Конфигурација мобилног робота .......................................................11

2.3. Модел кретања ....................................................................................15

3. Систем вештачких неуронских мрежа ......................................................19

3.1 Вештачка неуронска мрежа за процесирање података очитаних

оптичким сензором ..............................................................................20

3.2 Вештачка неуронска мрежа за управљање ротацијом робота .........25

4. Калманов филтер .........................................................................................30

4.1 Принцип рада Калмановог филрера ...................................................30

4.2 Имплементација Калмановог филтера ..............................................34

5. А - звезда (А*) алгоритам претраживања .................................................39

6. Верификација резултата пројектног решења ..........................................45

7. Симулација рада технолошког окружења „XY“ у „Anylogic“

софтверском пакету ....................................................................................48

7.1 Технолошко окружење и симулација датог диспозиционог плана

предузећа „XY“ .....................................................................................48

7.2 Технолошко окружење и симулација новог диспозиционог плана ...54

7.3 Упоредни приказ решења. ...................................................................62

8. Закључак ........................................................................................................64

9. Литература .....................................................................................................65

10. Прилози .........................................................................................................66

10.1 Програм за бучавање вештачке неуронске мреже за

процесирање података очитаних са оптичког сензора ....................66

10.2 Програм за бучавање вештачке неуронске мреже за управљање

ротацијом робота ...............................................................................68

10.3 Главни програм ..................................................................................69

10.4 Подпрограм модела кретања робота ...............................................73 10.5 Подпрограм А – звезда алгоритма ...................................................74

Page 8: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 8

1. Увод

Пројектни задатак је могуће поделити у два дела, од којих ће оба бити приказана

у овом елаборату пројектног решења.

Први део се бави проблематиком мобилног робота, тачније конфигурисањем

мобилног робота. Мобилни робот се састоји из механичког, актуационог и сензорског

подсистема. Само управљање мобилним роботом вршено је у „MatLab“ окружењу. Код

који је направљен има задатак управљања мобилним роботом са елементима

интелигентног понашања на почетном нивоу.

Задатак мобилног робота је транспорт материјала, делова, алата и специјалних

уређаја у оквиру производног предузећа. Мобилни роботи имају широку примену у тим

задацима.

У оквиру програма за управљање мобилним роботом потребно је развити

алгоритам претраживања односно А* алгоритам, такође је потребно имплементирати

математички модел Калмановог филтера чији је задатак кориговање позиције

мобилног робота као и модел кретања мобилног робота.

Рад кретања мобилног робота испитан је у лабараторијском моделу технолошког

окружења према пројектованом диспозиционом плану који је други део пројектног

задатка.

Као што је већ напоменуто други део пројектног задатка говори о пројектовању

диспозиционог плана производног предузећа. На основу података о технолошком

процесу производње, времена технолошких операција и врста машина потребно је

пројектовати диспозициони план производног предузећа.

За симулацију резултата коришћен је софтвер „AnyLogic“ помоћу којег се изводи

симулација технолошког процеса израде производа.

Пројектовање диспозиционог плана производног предузећа је могуће урадити уз

коришћење троугаоне матрице пројектовања која показује међузависност машина у

погону.

Page 9: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 9

2. Мобилни робот

Пре самог почетка потребно је дати неколико дефиниција робота.

Амерички институт за роботе (Robot Institute of America- RIA) је дефинисао робот

као репрограмабилни мултифункционални манипулатор пројектован да помера

материјал, делове, алате или специјалне уређаје коришћењем различитих програма

кретања при извршавању различитих задатака [1].

Као што можемо да видимо у овој дефиницији учествују две кључне речи

репрограмабилни и мултифункционални. То значи да је робот машина која може да се

поново програмира у функцији неког новог задатка, а и да је у стању да флексбилно

прилагоди своју намену тим новим задацима.

Иако сличну дефиницију нуди и ISO стандард, има размишљања која указују на

то да постоји и други системи који имају овакве карактеристике а нису роботи, што

говори о недоследности ових дефиниција. Зато је данас веома тешко дати потпуно

јасну дефиницију робота, али би се уоштено могло рећи да је робот активан вештачки

систем, чије је окруженје физички све са којим је у сталној интеракцији. Овим

дефиницијама, собзиром на данашњи степен развоја робота, недостају кључне речи

као што су интелигентан и аутономан. Може се рећи да је аутономан онај робот који

може самостално да доноси одлуке у ограниченом домену, при реализацији задатка,

на основу управљачке стратегије базиране на претходном учењу, коришћењем

повратних веза које остварује помоћу сигнала сензора. Постоје аналогије са

природним системима које уче на основу сопственог искуства, тако да се данас сматра

резонски, приступ који вестачком интелигентном систему-роботу обезбеђује

иницијално знање и спознаје окружења са могућности учењ кроз евентуалну

надоградњу серво управљања. То значи да се аутономан робот може рећи да је

“свестан себе и окружења“. Робот можемо сматрати аутономним само ако доноси

правилне правовремене одлуке о својим акцијама у складу са реалним окружењем. Та

својства су :

Реално окружење је изван или на граници доступности сензора.

Реално окружење је недертерминистичко, посматрано кроз аспект рада робота. То значи да робот мора да буде у стању да ради у неуређеној средини.

Реално окружење није епизодно, јер се ефекти у њему мењају у току времена. Робот мора зато да решава проблеме секвенцијално да учи.

Реално окружење је динамичко. Робот би требало да зна када је потребно одложити одлуку о некој акцији, а кад је боље реаговати одмах.

Реално окружење је континуално , ретке су ситуације у којима је реално окружење дискретно.

Page 10: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 10

Дакле, аутономан индустријски робот би у интеракци са реалним окружењем,

мора да има реализоване следеће способности:

Манипулативност

Комуникативност

Локомоцију

Сензитивност

Расуђивање

Веома важне способности робота представљају сензитивност и расуђивање.

Аутономност робота је пре свега заснована на реализацији његових управљачких

функција, које представљају тако уконпонован скуп хардверких и софтверских

компонената да се без спољашње интервенције у дужем временском периоду могу

извршити постављени задаци, као што је манипулација препознатим објектима.

Управлјачки систем аутономног робота подразумева висок ниво адаптације према

променама у његовом реалном окружењу. Да би се то остварило коритре се методе

као сто су:

Алгоритамску- нумеричке методе, базиране на индетификацији и естимацији

Методе засноване на одлучивању које користе технике вештачке интелигенције

Комплексним управљаки проблеми који се јављају код аутономних робота

условљавају да се, коришћењем мотода заснованих на одлучивање и примену технике

вештачке интелигенције. Како би се коришћенјем емпириско управљачког алгоритма

комплетни управљачки проблем успеешно решио и задатак робота реализовао са

највећом могућом вероватноћом. Важно је да се нагласи и то да је за остваривање

интелигентних управљачких функција апсолутно неопходно да аутономни робот

континуирано учи и да може да се адаптира у новонасталом стању. Вештачке

неуронске мреже као погодна техника вештачке интелигенције се успешно користе у

ове сврхе, јер је њихова изражена особина управо учење.

2.1. Класификација и примена индустријских робота

Класификација индустријских робота са аспекта функција и примене обухвата

четири основне групе технолошких захтева: манипулациони, процесни, комбиновани и

специјални задаци. За аутономне роботе је задржана ова основна класификација, с

тим што се наглашава њихова оснобина локомоције, јер има примена код којих је

поседовање мобилних оса неопходно (нуклеарна постројења, истраживање свемира,

свемирски робори, итд.) за аутономне роботе важи иста констатација као за

индустријске роботе а то је да ниво примене не прати ниво развијености, иако је

развијени ниво интелигенције такав да су аутономни роботи већ лабораториски

Page 11: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 11

тестиирани на сложене задатке. Разлози за то су историјске, културолошке и

технолошке, природне потребе.

Функције система препознавања као критеријум за класификацију, могу се

сврстати на пет основних класа:

Препознавање делова и/или стабилних стања,

Одрђивање позиције и оријентације,

Издвајање и лоцирање значајних карактеристика делова као просторних референци,

Инспекција/контрола,

Управљање путањом робота

За технолошки задатак манипулације уопсте у монтажи, издвојене су функције

система препознавања које директно утичу на реализацију тих задатака. У том смислу

најбитније су: препознавање делова и/или стабилних стања; индетификација делова;

одређивање позиције и оријентације делова; издвајање значајних карактеристика

делова и позиционирање енд-ефектора робота у односу на препознати део.

2.2. Конфигурација мобилног робота

Управљачка јединица

Управљачка јединица слика 2.2.1 представља главни управљачки систем. Помоћу ње се прикупљају подаци са мерних система мотора и мерни подаци са сензора, како би се подаци прослеђивали преко USB комуникационог протокола на PC рачунар који представља главну управљачку јединицу целокупног система мобилног робота. Управљачка јединица садржи три прикључка за повезивање са моторима (А, B, C), четири прикључка за повезивање са сензорима (1, 2, 3, 4) и један прикључак за USB комуникацију са рачунаром. Такође садржи дисплеј и тастере за контролу рада система.

Слика 2.2.1: Управљачка јединица

Page 12: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 12

Серво мотори

Мотори се управљају помоћу PWM - Pulse Width Modulation, тј. принципа

ширинске модулације импулса, што представља начин управљања савременим серво

системима. Мотори дају контролној јединици сигнале повратне спреге помоћу 12bit-ог

инкременаталог енкодера. Диск енкодера је назубљен како би био у спрези са

вратилом мотора. Мотор има шестостепени зупчасти пренос од вратила мотора до

осовине преко које се остварује кретање точка робота. Два мотора, која независно

покрећу леви и десни точак, спојени су међусобно помоћу свих везних места која на

свом кућишту имају из разлога повећања крутости система. Такође спојени су на

малом осном растојању како би точкови прелазили мањи пут приликом окретања

робота. То је урађено првенствено због могућности акумулирања грешке при великим

вредностима пређеног пута. Слика 2.2.2.представља приказ серво мотора.

Слика 2.2.2: Серво мотор

Оптички сензор

Поред енкодерског система који служи за давање информација повратној спрези

контролера мотора, у овом пројектном решењу је коришћен и светлосни сензор слика

2.2.3. из LEGO пакета. Основна идеја јесте да овај сензор детектује референтне тачке

на појединим деловима радног окружења како би се кориговала тренутна позиција

робота [2].

Слика 2.2.3: Светлосни сензор

Page 13: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 13

Оваква врста сензора састоји се из кућишта у коме су смештене две светлосне

диоде. Једна диода је одашиљач чија светлост је уперена ка објекту који се сензором

испитује, док је друга диода фото осетљива диода. Друга диода се користи за

примање рефлектоване светлости прве диоде оd површинe објекта који се испитује.

Унутар сензора се налази појчавач сигнала и аналогно дигитални конвертор који на

излазу из сензора даје нумеричку вредност очитавања.

Проблем у раду овог сензора понекад представља недовољна осветљеност

површине испитивања, чиме се добија и ниска вредност очитавања, тј. вредност близу

црне боје. То се може решити додавањем нове диоде која служи за осветљење што је

и урађено у сензорима нових LEGO пакета.

Од расположиве опреме још постоји и сензор додира, ултразвучни сензор,

звучни сензор,као и елементи за везу као што су: зупчаници, блокови, спојнице,

точкови, гуме и сл.

Од горе наведених компоненти конфигурисан је мобилни робот за потребе овог

рада. Приликом конфигурисања робота водило се рачуна о величини робота,

релативном положају сензорског система у односу на актуациони систем, као и о

доступности свих портова управљачке јединице. На слици 2.2.4. је приказан

конфигурисан мобилни робот.

Слика 2.2.4: Изглед мобилног робота

Како би се стекао утисак величине робота у односу на макету окружења дата је

слика 2.2.5. где се јасно види тај однос.

Page 14: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 14

Слика 2.2.5: Мобилни робот у радном окружењу

У циљу лакшег манипулисања самом конфигурацијом приликом измене батерија

на управљачкој јединици, управљачка јединица је причвршћена само на једном крају.

То је приказано сликом 2.2.6. Са те слике такође можемо видети да су серво мотори

на минималном растојању, што смањује габаритне димензије мобилног робота, а

оптички сензор се налази тачно између точкова мобилног робота. Последица

позиционирања оптичког сензора тачно на осу обртања точкова је детаљније

разрађена при пројектовању модела кретања мобилног робота.

Слика 2.2.6: Приказ модуларности мобилног робота

Page 15: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 15

2.3. Модел кретања

Модел кретања на основу брзина (Velocity based motion model) - у овом моделу

транслаторна и угаона брзина кретања мобилног робота представљају управљања u(t)

која одређују промену позиције и оријентације током експлоатације.

Модел кретања на основу пређеног пута (Odometry) - у овом моделу управљање

u(t) је дефинисано пређеним путем точкова мобилног робота током тачно дефинисаног

временског интервала.

Код овог типа модела кретања пређени пут се мери помоћу енкодера од неког

положаја у коме је мобилни робот био у тренутку t-1 до неког положаја у тренутку t,

има два независна погонска точка Differential Drive Mobile Robots.

Управљањем смером обртања точкова контролише се скретање мобилног

робота. На осовинама точкова се налазе енкодери који мере углове ротације (обртање

точкова).

Извођење једначина кретања мобилног робота:

На слици 2.3.1. представљен је мобилни робот у два узастопна карактеристична

положаја, са пређеним растојањима и дефинисаним угловима оријентације у тим

положајима. На основу наведене слике формиран је математички модел кретања

робота.

Слика 2.3.1: Кретање мобилног робота

Page 16: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 16

Пређени пут робота S рачунамо као аритметичку средину пређеног пута левог

и пређеног пута десног точка, једначина (2.1):

2

l dS SS

(2.1)

где је:

lS - пређени пут левог точка;

dS - пређени пут десног точка.

cos( )2

x S

(2.2)

sin( )2

y S

(2.3)

где је:

x - прираштај координате у x правцу;

y - прираштај координате у y правцу;

- угао оријентације у првом тренутку;

- прираштај угла оријентације.

Према једначини (2.4) може сеодредити положај робота у односу на претходни

положај.

'

'

'

x x x

y y y

(2.4)

Након тога се одређује прираштај угла закретања , који се може видети са

слике 2.3.2.

Слика 2.3.2: Приказ промене позиције и оријенатације мобилног робота

Page 17: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 17

sin

2

S

bR

(2.5)

sin l

S

R

(2.6)

sin d

S

R b

(2.7)

Једначине (2.5), (2.6), (2.7) су добијене на основу геометрије приказане на слици

2.3.2.

Пошто је угао много мали sin

Следи да је:

2

S

bR

(2.8)

Када се једначина (2.8) диференцира по временудобија се угаона брзина

роботаи точкова робота, односно:

' ' ;

2

c ll l

V V

b RR

(2.9)

' d

d d

V

R b

(2.10)

Изједначавањем угаоне брзине левог точка (2.9) и угаоне брзине десног точка

(2.10) добија се следеће:

=l d ll d

d l

V V V bR

R R b V V

(2.11)

Диференцирањем пређеног пута S , односно једначине (2.1) по времену добија

се једначина (2.12), која представља зависност брзине центра маса робота у односу

на брзине точкова.

2

l dc

V VV

(2.12)

Заменом једначине (2.12) и изразе за угаону брзину робоза (2.10) добија се

једначина (2.13)

Page 18: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 18

2 =2

2

l d

l d

V V

V V

b R bR

(2.13)

Након тога се једначина (2.11) уврсти у једначину (2.13) и добија се нова

једначина (2.14).

2l d

l

d l

V V

V bb

V V

(2.14)

Сређивањем једначине (2.14) добија се:

d l d lV V S S

b b

(2.15)

Након тога следи једначина кретања мобилног робота (2.16).

' cos( )2

' sin( )2

'

x x S

y y S

(2.16)

Заменом једначине (2.1) у једначину (2.16) добија се коначни облик једначина

кретања, односно математички модел кретања мобилног робота наведене

конфигурације, и има следећи облик:

' cos( )2 2

' sin( )2 2

'

l d d l

l d d l

d l

S S S Sx xb

S S S Sy y

b

S S

b

(2.17)

Овако изведен математички модел кретања је имплементиран у подпрограм који

је позиван унутар главног програма током извршавања задатог кретања робота. Код

овог програма развијеног у “MatLab” – у је дат у прилогу овог рада.

Page 19: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 19

3. Систем вештачких неуронских мрежа

У општем смислу, неуронске мреже представљају скуп једноставних

процесирајућих елемената – неурона, међусобно повезаних везама са одговарајућим

тежинским односима. Шематски посматрано, неуронска мрежа се може представити

као оријентисани граф, где су чворови заправо процесирајући елемнти, а линије са

стрелицама показују правац протока сигнала [3]. На слици 3.1 је приказан пример

структуре вештачке неуронске мреже. Структура вештачке неуронске мреже се увек

састоји од једног улазног слоја неурона, једног излазног слоја неурона и једног или

више скривених слојева неурона, број неурона у скривеним слојевим је произвољан и

до њега се углавном долази кроз неколико итерација процеса обучавања мреже, док је

број неурона у улазном и излазном слоју одређен задатком, односно бројем улазних

података и бројем излазних података.

Слика 3.1: Пример структуре вештачке неуронске мреже

Један процесирајући елемент – неурон, сачињавају три основна елемента:

Улазни оператор – обједињује улазе и тежинске односе међусобних веза;

Функција преноса – обрађује излаз из улазног оператора и

Активациона функција - обрађује излаз функције преноса и управља излазном

вредношћу неурона.

Структура једног неурона је приказана на слици 3.2, где се може видети

међусобни поредак између горе наведених саставних делова неурона. Такође битна

чињеница да сваки од ових елемената може бити различита функција, тако нпр.

Page 20: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 20

сигнали са улазног оператора могу бити директно прослеђени активационој функацији

као да функција преноса не постоји. Такође постоји и неколико типова активационе

функције нпр: Бинарна активациона функција, Линеарна активациона функција,

Сигмоидна активацона функција, итд. Изглед графика ових функциа је дат на слици

3.3 а), б) и в)респективно.

Слика 3.2: Приказ процесирајућег елемента – неурона

Слика 3.3: Примери графика активационих функција

У циљу што ефикаснијег и експедитивнијег развоја софтверског решења

управљања роботом у равни (радном окружењу) развијене су вештачке неуронске

мреже за обраду података очитаних са оптичког сензора и управљање моторима при

ротацији робота.

3.1 Вештачка неуронска мрежа за процесирање података очитаних

оптичким сензором

Развој вештачких неуронских мрежа за потребе овог пројекта је реализован у

софтверском пакету “MatLab”, где су мреже обучаване са свим потребним

Page 21: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 21

параметрима подешавања, симулирани резултати и праћени параметри добијених

резултата.

Пре процеса обучавања неуронских мрежа било је потребно формирати

обучавајуће парове. Обучавајући парови за вештачку неуронску мрежу која обрађује

податке са оптичког сензора су формирани аквизирањем по 1000 узорака са сензора

док се испред њега налазила бела боја, а потом црна боја. Резултати мерења су дати

на слици 3.1.1. На овом приказу резултата се може уочити да резултати имају

одређени степен дисипације, он се јавио јер се током аквизирања података испред

сензора сваки пут налазила друга нијанса дате боје или под другим углом је вршено

мерење. Овај поремећај је намерно уношен у мерење како би обучавајући парови

вештачке неуронске мреже били што разноврснији, а самим тим се постиже бољи рад

мреже у експлоатацији.

Слика 3.1.1: Подаци мерени оптичким сензором

Након формирања обучавајућих парова сачињених од резултата очитаних са

оптичког сензора приступљено је генерисању вештачке неуронске мреже. Потребно је

нагласити да је коришћена мрежа са простирањем унапред, јер се сматрало да ће овај

тип мреже дати најбоље резултате. Програм којим је вршеоно обучавање мреже

унутар “MatLab” – a је дат у прилогу овог рада. Током процеса обучавања мреже и

проналажења оптималне конфигурације мреже варирани су: параметри обучавања,

бројеви неурона по слојевима као и метод обучавања мреже. У наставку текста су

дати неки од резултата добијени током развоја вештачке неуронске мреже.

Прва серија обучавања вештачке неуронске мреже за препознавање боја

очитаних оптичким сензором је имала један неурон у улазном слоју, два неурона у

скривеном слоју и један неурон у излазном слоју. Модул “MatLab” – a који поседује

алате за рад са вештачким неуронским мрежама аутоматски додељује број неурона у

улазном и излазном слоју у зависности од облика обучавајућих парова. Током овог

Page 22: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 22

процеса формирања неуронских мрежа варирана јегрешка обучавања и параметар

обучавања.У наредним итерацијама обучавања мрежа вариран је број скривених

слојева, као и број неурона у тим слојевима. Приказ параметара обучавања вештачке

неуронске мреже за процесирање података очитаних са оптичког сензора су дати у

табели 3.1. Број неурона у скривеном слоју је биран према препорукамa из литературе

[11].

Табела 3.1: Параметри обучавања вештачке неуронске мреже за препознавање боја

очитаних оптичким сензором

Редни број ВНМ

Број неурона у скривеном

слоју

Параметар обучавања

Жељена грешка

обучавања

Тип активационе

функције

Број итерација обучавања

1 1 [2]1 1 0.5 10-12 сигмоидна 38

2 1 [2]1 1 0.5 10-12 линеарна 45

3 1 [2]1 1 0.5 10-18 линеарна 24

4 1 [2]1 1 0.3 10-18 сигмоидна 20

5 1 [2]1 1 0.6 10-15 сигмоидна 24

6 1 [2]1 1 0.7 10-15 линеарна 35

7 1 [2]1 1 0.2 10-12 сигмоидна 37

8 1 [5]1 1 0.4 10-18 сигмоидна 36

9 1 [10]1 1 0.4 10-18 сигмоидна 17

10 1 [5-10]2 1 0.4 10-18 линеарна 1000

11 1 [5-5]2 1 0.4 10-18 линеарна 1000

12 1 [2-2]2 1 0.4 10-15 сигмоидна 1000

13 1 [3-1]2 1 0.5 10-15 сигмоидна 37

14 1 [8]1 1 0.5 10-15 линеарна 47

15 1 [3]1 1 0.5 10-22 линеарна 32

16 1 [3]1 1 0.2 10-22 сигмоидна 18

17 1 [3]1 1 0.2 10-22 сигмоидна 23

Према подацима наведеним у табели 3.1 може се видети у којој конфигурацији

неурона и са којим почетним параметрима су мреже брзо пролазиле кроз процес

обучавања и давале добар резултат. Мреже под редним бројем 10, 11 и 12 нису и

након 1000 (дефинисани максимални број итерација обучавања) итерација процеса

обучавања дошле до жељене вредности грешке, што води ка закључку да је

непотребан велики број неурона у скривеним слојевима. Наредне мреже које су

обучаване са мањим бројем неурона у једном скривеном слоју су давале веома добре

резултате, па је стим у вези мрежа под редним бројем 17 коришћена за управљање

мобилним роботом.

На сликама 3.1.2, 3.1.3 и 3.1.4 су проказани резултати након обучавања мрежа

под редним бројевима 4, 8 и 12 респективно, оне су изабране као карактеристичне из

сваке од предходно наведених група. Мрежа број 4 је изабрана јер у скривеном слоју

Page 23: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 23

има два неурона и процес обучавања је извршен у 20 итерација. Мрежа под редним

бројем 8 је изабрана као представник групе јер се могу уочити дисконтинуитети током

обучавања (достизање локалних минимума градијента грешке). Док је мрежа 12

изабрана јер ни након задатог броја итерација није достигла жељену вредност грешке

и могу се уочити јасни сегменти достизања локалних минимума током процеса

обучавања.

Слика 3.1.2: График перформанси мреже број 4

Слика 3.1.3: График перформанси мреже број 8

Page 24: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 24

Слика 3.1.4: График перформанси мреже број 12

Како је већ било речи за обраду података очитаних оптичким сензором при

управљању мобилним роботом изабрана је вештачка неуронска мрежа под редним

бојем 17. График њених перформанси је приказан на слици 3.1.5, где се јасно види

веома брзо улажење у засићење током процеса учења и константан тренд смањења

грешке током процеса обучавања.

Слика 3.1.5: График перформанси изабране мреже

Page 25: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 25

3.2 Вештачка неуронска мрежа за управљање ротацијом робота

Како робот има диференцијални погон на точковима и ротација се врши њиховим

обртањем у супротним смеровима, а притом угао ротације не зависи само од угла

ротације точкова, него и од конфигурације мобилног робота, подлоге на којој се налази

и брзине обртања точкова, било је неопходно обучити вештачку неуронску мрежу

помоћу које ће се задавати команде моторима при промени оријентације мобилног

робота у радном простору.

Вештачка неуронска мрежа за управљање ротацијом је обучавана на основу

снимљених карактеристика робота у радном простору. Наиме, роботу су задаване

команде да изврши ротацију за неки угао, и мерени су стварни (остварени) углови. На

основу овако снимљених углова формирануи су обучавајући парови који ће мрежу

обучити тако да за задати угао у степенима роботу проследи информацију којом ће он

стварно постићи захтевани угао.

Податци који чине обучавајуће парове за вештачку неуронску мрежу која

управља ротацијом робота су приказани у табели 3.2, где је РБ – редни број мерења,

ЗВ – задата вредност и МВ – измерена вредност.

Табела 3.2: Резултати мерења угла ротације робота

РБ 1 2 3 4 5 6 7 8 9 10 11

ЗВ 0 30 55 80 95 122 140 164 180 195 220

МВ 0 -19 -30 -47 -55 -67 -82 -97 -105 -115 -130

РБ 12 13 14 15 16 17 18 19 20 21 22

ЗВ 245 261 280 300 322 360 30 55 80 95 122

МВ -144 -150 -164 -186 -190 -210 22 27 45 52 61

РБ 23 24 25 26 27 28 29 30 31 32 33

ЗВ 140 164 180 195 220 245 261 280 300 322 360

МВ 75 88 95 100 117 135 143 153 169 173 192

На основу табеле се може закључити да се углови постигнуте ротације за исту

вредност у једном смеру и у другом смеру разликују и за десетину степени, што је још

уочљивије на графику приказаном на слици 3.2.1.

Page 26: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 26

Слика 3.2.1: Остварене вредности ротације робота у зависности од задате

Овако дефинисани обучавајући парови су далеко захтевнији за обучавање

мреже него у случају мреже која процесира податке прикупљене оптичким сензором.

Такође је било неопходно формирати програм у MatLab – у којим ће бити извршено

обучавање мреже за управљање скретањем робота, код програма се налази у прилогу

овог рада.

За потребе управљања мобилним роботом развијено је седам вежтачких

неуронских мрежа за управљање скретањем робота током кретања кроз радни

простор. Мрежа која је усвојена да буде саставни део софтверског решења за

управљање мобилним роботом је мрежа под редни мројем 5. У табели 3.3 је приказан

списак вештачких неуронских мрежа које су обучаване за извршавање овог задатка и

параметри тих мрежа.

Page 27: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 27

Табела 3.3: Параметри обучавања вештачке неуронске мреже за управљање

скретањем робота

Редни број ВНМ

Број неурона у скривеном

слоју

Параметар обучавања

Жељена грешка

обучавања

Тип активационе

функције

Број итерација обучавања

1 1 [5]1 1 0.4 10-5 сигмоидна 65

2 1 [5-3]2 1 0.4 10-5 сигмоидна, сигмоидна

18

3 1 [5-3]2 1 0.4 10-5 сигмоидна, сигмоидна

18

4 1 [5-5-3]3 1 0.4 10-5 линеарна, сигмоидна, сигмоидна

26

5 1 [5-5-3]3 1 0.4 10-5 линеарна, сигмоидна, линеарна

19

6 1 [5-5-3]3 1 0.4 10-5 линеарна, сигмоидна, линеарна

24

7 1 [5-10-3]3 1 0.4 10-5 линеарна, сигмоидна, линеарна

16

Приликом симулирања резултата вештачке неуронске мреже дошло је до

погрешног очитавања резултата, односно ваљаности мрежа. Мреже су тестиране за

неке дискретне вредности улазних података, и у таквом случају је долазило до губитка

информација о адекватности и поузданости мреже. Пример овог проблема се може

уочити упоређивањем слика 3.2.2 и 3.2.3, где се на слици 3.2.3 може видети

симулација рада мреже за цео спектар а не само за дискретне вредности, где се јасно

виде одступања од жељених вредности.

Слика 3.2.2: Обучавајући парови мреже и резултати мреже

Page 28: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 28

Слика 3.2.3: Тестирање мреже за управљање ротацијом робота

На слици 3.2.4 је дат дијаграм параметара вештачке неуронске мреже за

управљање ротирирања мобилног робота након обучавања. Сликом 3.2.5 је приказана

симулација рецултата мреже која је усвојена за управљање ротацијом мобилног

робота (мрежа под редним бројем 5).

Слика 3.2.4: Пареаметри мреже за управљање ротацијом робота

Page 29: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 29

Слика 3.2.5: Провера рада мреже

Како се види у пређашњим разматрањима формирање и обучавање мрежа је

веома брз поступак што отвара могућности за брзе измене и формирање неколицине

решења, па њиховим упоређивањем долазити до оптималног.

Page 30: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 30

4. Калманов филтер

Калманов филтер је алгоритам који користи низ мерења посматраних

временом, која садрже шумове (случајне варијанте) и друге нетачности и производи

процене непознатих варијабли које теже да буду прецизније од оних које се заснивају

на само једном мерењу. Више формално, Калманов филтер ради рекурзивно на

токовима бучних улазних података да произведе статистички оптималну процену

основног стања система. Филтер је добио име по Рудолфу (Руди) Е. Калману, једном

од идејних твораца ове теорије.

Понекад је потребно измерити неку физичку величину која се тешко може

директно измерити. Рецимо да жељена величина представља директно недоступну

променљиву стања система (уколико систем опишемо моделом са варијаблама

стања). До тражене величине потребно је доћи посредно. Притом проблем

представља сам реалан систем чије понашање није до краја детерминистичко. Такође,

мерење неке величине преко које желимо доћи до потребне променљиве стања често

је зашумљено и непоуздано (мерена величина је заправо случајна променљива).

Калманов филтер служи за изоловање ове недоступне променљиве стања система из

доступних зашумљених извора (зашумљено мерење излаза система и зашумљени

стохастички улаз у систем) и претходног стања система. Калманов филтер, као

оптимални проценитељ (естиматор) и предиктор непознате величине пронашао је

велику примену у управљању системима, навигацији, праћењу и предвиђању путање

објекта. У овом раду, употребљен је овај алат за управљање кретањем робота у

технолошком систему за унутрашњи транспорт материјала [6,7].

Примена Калмановог филтера за процену положаја робота у технолошком

окружењу заснива се на примени модела кретања на основу пређеног пута. На основу

овог модела добијају се вредности унутрашњих координата за задате вредности

спољашњих координата, односно за дати положај и оријентацију мобилног робота.

Једначине које описују зависност унутрашњих од спољашњих координата добију се

решавањем инверзног кинематичког проблема.

4.1 Принцип рада Калмановог филрера

Основна идеја Калмановог филтера се заснива на неколико појмова:

Филтрација, процес одређивања удела сигнала и удела шума у некој

измереној информацији;

Интерполација, процес прикупљања што више валидних информација о неком

систему или процесу;

Предикција, што боље предвиђање стања неког система или процеса у

наредном посматраном тренутку времена, а на основу прикупљених података

до тог тренутка;

Корекција, процес корекције стања неког система или процеса по преласку у

наредно стање у времену, а на основу неких познатих, измерених и рачунских

вредности;

Калманов филтер претпоставља да постоји временски дискретан процес којим

управљамо, односно који надгледамо. Процес је описан линеарним моделом са

променљивим стања и није потпуно детерминистички. Може се описати једначинама

(4.1) и (4.2):

Page 31: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 31

1k k k k k kA x Bx x w (4.1)

k k kkxy C v (4.2)

где је:

xk+1, стање система у тренутку к+1;

Ak, матрица која успоставља везу између претходног и тренутног стања;

xk, стање система у тренутку к;

Bk, матрица везе управљања и тренутног стања

ux, матрица управљања помоћу које се дефинише прелажење из стања xk у

стање xk+1 ;

wk, шум система, неодређеност у систему, случајни вектор, случајна

променљива, поремећај на који не можемо утицати пошто је систем

стохастички;

yk, измерена излазна величина

Ck, матрица која успоставља везу између тренутног стања и тренутног мерења;

vk, шум мерења;

Ознака x је n-димензионална променљива стања система. Ради се о величини

која је инхерентна систему и која се не може непосредно измерити, а жели се

одредити. То је задатак естиматора. Прва једначина говори о вези између вредности

променљиве стања у тренутном и претходном кораку. Видљиво је да тренутна

вредност x зависи од претходне вредности променљиве x помножене nxn

димензионом матрицом A. Даље, тренутно стање зависи од улаза у систем из

претходног корака представљеног l-димензионим вектором u , помноженог матрицом B

димензија nxl.

Осим ових детерминистичких чланова, тренутно стање зависи и од случајног

члана w . Ради се о случајном вектору којим се моделира шум својствен процесу. Реч

је о белом шуму (фреквенцијски је и временски независан) с нормалном расподелом:

p(w)~N(0,Q). Q је матрица коваријације шума процеса. Може се одредити поступком

идентификације процеса. Као што се види из горњег модела, и систем и мерење

"загађени" су шумом, што онемогућава доношење поузданог закључка о тренутној

вредности променљиве стања x овог система.

Задатак Калмановог филтера је управо да процени ту вредност. Уопштено

говорећи, филтер ради у два корака [7]:

Предикција - на темељу последњег познатог стања к-1 предвиђа се

следеће стање к. Ова процена садржи грешку због шума, који притом

није узет у обзир.

Корекција - након што се стање стварно промени у следеће, измери се

излаз система (вектор у стању k) и на основу тог резултата, матрица које

описују понашање процеса и података о шуму, коригује се процена

стања x.

Page 32: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 32

Након тога, циклус се понавља: предвиђа се следеће стање, мери се излаз,

коригује процена следећег стања. Мерење, дакле, дели алгоритам реализације

Калмановог филтера на два дела: део пре мерења (процена стања a priori ) и након

мерења (процена стања уз познато мерење, a posteriori).

Дакле, Калманов филтер је оптимални рекурзивни филтер који ради искључиво

у временском домену. Карактерише га то што тренутни корак зависи само од

претходног корака. Може се користити за интерполацију претходних стања, процену

тренутног, као и предвиђање следећег стања система. Постоји више извођења

Калмановог филтера. Тако се поједностављена верзија у којој се уместо матрица

коваријанси користе скаларне вредности назива алфа-бета филтер, а постоји и

општија верзија која се користи за управљање нелинеарним системима.

Rudolf E. Kalman je формулисао филтер према следећем алгоритму [6]:

Корак предикције(улазне вредонсти: µt-1, ∑t-1, ut, zt):

1. 1t t t t tA B u (4.3)

2. 1

T

t t t t tA A R (4.4)

Корак корекције (излазне вредности µt,∑t ):

3. 1

T T

t t t t t t tk C C C Q

(4.5)

4. t t t tt tK z C (4.6)

5. t t t tI K C (4.7)

где је:

Кт -Калманово појачање

µt -oчекивана вредност расподеле

∑t -матрица коваријанси

µt-1 - средња вредност у тренутку t-1

∑t-1 - матрица коваријансе у тренутку t-1

ut - управљање у тренутку t

yt - мерење у тренутку t – очитавање са сензора

At - матрица која успоставља везу између стања претнодног и тренутног корака

без утицаја управљања и шума

Bt - матрица која повезује управљање и стање система у тренутцима t и t-1

t - предикција стања система

t tC - предикција мерења

Qt - матрица коваријанси шума мерења, несигурност у мерењу

Page 33: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 33

Када примењујемo Калманов филтер на нелинеарним моделима, мора се

изврши ти линеаризација у околини радне тачке, тј. нелинеарну функцију представити

линеарном у једној тачки. Такав поступак се назива линеаризовани Калманов филтер.

Једначина стања је тада нелинеарна функција управљања и претходног стања.

Такође, опсервациони модел је нелинеарна функција стања система. Функција g (ut,xt-

1) показује како се мењају x,y,θ у функцији управљања и средње вредности.

xt = g(ut, xt-1) (4.8)

yt= c(xt) (4.9)

Развијањем у Тејлоров ред линеаризујемо функцију у околини изабране тачке.

Рачунајући само прва два члана реда изводи функције g(ut, xt-1) добијамо изразе (4.10)

и (4.11).

11 1 1 1

1

( , )( , ) ( , ) ( )t t

t t t t t t

t

g ug u x g u x

x

(4.10)

1 1 1 1( , ) ( , ) ( )t t t t t t tg u x g u G x (4.11)

А за изабрану тачку µt-1 и функције c(xt) у тачки t добијамо изразе (4.12) и (4.13).

( )( ) ( ) ( )t

t t t t

t

cc x c x

x

(4.12)

( ) ( ) ( )t t t t tc x c C x (4.13)

У линеаризованом Калмановом филтеру Gt представља промену функције

модела кретања у односу на положај робота (Јакобијан), а Нt представља промену

мерења са променом координата положаја мобилног робота. Овако се врши

калибрација сензора. Оба алгоритма важе уколико модел подлеже Гаусовој

расподели. Ако се то не деси, добијени резултати применом филтера нису довољно

тачни.

Алгоритам линеаризованог Калмановог филтера дефинисан је:

Корак предикције (улазне вредонсти су 1T

, 1t , ut, yt):

1. 1t t t t tA B u (4.14)

2. 1

T

t t t t tA A R (4.15)

Корак корекције (излазне вредности µt,∑t ):

3. 1

T T

t t t t t t tK C C C Q

(4.16)

4. t t t tt tK z C (4.17)

Page 34: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 34

5. t t t tI K C (4.18)

Из једначине (4.16), тј. Калманвог појачања (Кt), посматрају се следећи

случајеви:

Уколико се вредност коваријансе повећава, расте несигурност, а са тим расте и

вредност Калмановог појачања. Такође, уколико опада вредност коваријансе

грешке мерења, вредност Калмановог појачања се повећава.

Уколико се вредност коваријансе смањује, смањује се и вредност Калмановог

појачања. Такође, уколико расте вредност коваријансе грешке мерења, смањује

се вредност Калмановог појачања.

4.2 Имплементација Калмановог филтера

На основу кинематичког модела робота и кретања које се

региструјеенкодерима, процењује се позиција робота у неком тренутку времена, док се

мерењем добија валидна сензорска информација. На основу модела мерења

процењује се вредност мерења процењујући раздаљину стварног објекта, чија је

позиција позната. Разлика мерења и процене мерења се множи Калмановим

појачањем и додаје процењеној позицији у том тренутку времена. На овај начин се

коригује инфорамција о положају робота.

За примену Калмановог филтера потребно је да се на основу модела кретања

мобилног робота нађу предходно наведена два корака:

1. Предикција

2. Корекција

Корак предикције

У овом кораку траже се јакобијан функције у односу на положај робота и

јакобијан функције у односу на управљање.

Извођење јакобијан функције у односу на положај:

Модел кретања мобилног робота дат је једначином (4.2.1).

' cos( )2 2

' sin( )2 2

'

l d d l

l d d l

d l

S S S Sx xb

S S S Sy y

b

S S

b

(4.19)

Page 35: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 35

где је:

lS - пређени пут левог точка;

dS - пређени пут десног точка.

b - растојање између точкова.

x - координата робота у x правцу у првом тренутку.

y - координата робота у y правцу у првом тренутку.

- угао оријентације у првом тренутку

На основу израза (4.20) одређујемо јакобијан функције у односу на положај.

1, 1, 1,

1

1 1, 1, 1,

1, 1, 1,

' ' '

( , ) ' ' '

' ' '

t x t x t x

t tt

t t y t y t y

t t t

x x x

g u y y yG

x

(4.20)

Развијањем једначине (4.20) добијају се једначине од (4.21) до (4.29).

1,

'( ) ' ( ) ' cos( ) (cos( )) ' 1

2 2 2 2

l d d l d l l d

t x

S S S S S S S Sxx

b b

(4.21)

1,

'( ) ' ( ) ' cos( ) (cos( )) ' 0

2 2 2 2

l d d l d l l d

t y

S S S S S S S Sxy

b b

(4.22)

1,

'( ) ' ( ) ' cos( ) (cos( )) '

2 2 2 2

sin( )2 2

l d d l d l l d

t

l d d l

S S S S S S S Sxx

b b

S S S S

b

(4.23)

1,

'( ) ' ( ) ' sin( ) (sin( )) ' 0

2 2 2 2

l d d l d l l d

t x

S S S S S S S Syy

b b

(4.24)

1,

'( ) ' ( ) ' sin( ) (sin( )) ' 1

2 2 2 2

l d d l d l l d

t y

S S S S S S S Syy

b b

(4.25)

1,

'( ) ' ( ) ' sin( ) (sin( )) '

2 2 2 2

cos( )2 2

l d d l d l l d

t

l d d l

S S S S S S S Syy

b b

S S S S

b

(4.26)

Page 36: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 36

1,

'( ) ' ( ) ' 0d l

t x

S S

b

(4.27)

1,

'( ) ' ( ) ' 0d l

t y

S S

b

(4.28)

1,

'( ) ' ( ) ' 1d l

t

S S

b

(4.29)

Јакобијан функције у односу на положај дат је једначином (4.30).

1 0 sin( )2 2

0 1 cos( )2 2

0 0 1

l d d l

l d d lt

S S S S

b

S S S SG

b

(4.30)

Извођење јакобијан функције у односу на управљање:

На основу израза (4.31) одређујемо јакобијан функције у односу на управљање.

1

' '

( , ) ' '

' '

t t

t tt

t t t

t t

x x

v

g u y yV

u v

v

(4.31)

Развијањем једначине (4.31) добијају се једначине од (4.32) до (4.37).

'( ) ' ( ) ' cos( ) (cos( )) '

2 2 2 2

1 1 cos( ) sin( )

2 2 2 2 2

l d d l d l l d

t

d l l d d l

S S S S S S S Sxx

v b b

S S S S S S

b b b

(4.32)

'( ) ' ( ) ' cos( ) (cos( )) '

2 2 2 2

1 1 cos( ) sin( )

2 2 2 2 2

l d d l d l l d

t

d l l d d l

S S S S S S S Sxx

b b

S S S S S S

b b b

(4.33)

'( ) ' ( ) ' sin( ) (sin( )) '

2 2 2 2

1 1 sin( ) cos( )

2 2 2 2 2

l d d l d l l d

t

d l d l l d

S S S S S S S Syx

v b b

S S S S S S

b b b

(4.34)

Page 37: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 37

'( ) ' ( ) ' sin( ) (sin( )) '

2 2 2 2

1 1 sin( ) cos( )

2 2 2 2 2

l d d l d l l d

t

d l d l l d

S S S S S S S Syx

b b

S S S S S S

b b b

(4.35)

' 1( ) ' ( ) 'd l

t

S S

v b b

(4.36)

' 1( ) ' ( ) 'd l

t

S S

b b

(4.37)

Јакобијан функције у односу на управљањеј дат је једначином (4.38).

1 1 1 1cos( ) sin( ) cos( ) sin( )

2 2 2 2 2 2 2 2 2 2

1 1 1 1sin( ) cos( ) sin( ) cos( )

2 2 2 2 2 2 2 2 2

d l l d d l d l l d d l

d l d l l d d l d l l

t

S S S S S S S S S S S S

b b b b b b

S S S S S S S S S S SV

b b b b b b

2

1 1

dS

b b

(4.38)

Корак корекције

У овом кораку тражи се јакобијан функције у односу на положај робота.

Извођење јакобијан функције у односу на положај:

На слици 4.2.1 дат је положај оптичког сензора робота.

Слика 4.2.1: Положај оптичког сензора

Са слике се на основу тригонометрије уочава једначина (4.39).

cos

sin

s r

s r

x x lh

y y l

(4.39)

Page 38: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 38

На основу израза (4.40) одређујемо јакобијан функције у односу на положај.

, , ,

, , ,

( , )

t t t

t x t y ttt

t t tt

t x t y t

r r r

g mH

x

(4.40)

Пошто је и ,r rx y већ урађен у јакобијану функције у односу на положај робота овде је

урађено cosl односно sinl .

Развијањем једначине (4.40) добијају се једначине од (4.41) до (4.46).

,

1 ( cos ) ' 1t

t x

rl

(4.41)

,

0 ( cos ) ' 0t

t y

rl

(4.42)

,

sin( ) ( cos ) '2 2

sin( ) sin2 2

t l d d l

t

l d d l

r S S S Sl

b

S S S Sl

b

(4.43)

,

0 ( sin ) ' 0t

t x

l

(4.44)

,

1 ( sin ) ' 1t

t y

l

(4.45)

,

cos( ) ( sin ) '2 2

cos( ) cos2 2

t l d d l

t

l d d l

S S S Sl

b

S S S Sl

b

(4.46)

Јакобијан функције у односу на положај дат је једначином (4.47).

1 0 sin( ) sin2 2

0 1 cos( ) cos2 2

l d d l

tl d d l

S S S Sl

bH

S S S Sl

b

(4.47)

Конфигурација робота је тако направљена да је оптички сензор смештен на оси

између точкова па у овом случају не узима у обзир растојање оптичког сензора.

Јакобијан функције у односу на положај робота који је имплементиран у управљачки

код који је дат у прилогу приказан је једначином (4.48).

1 0 sin( )2 2

0 1 cos( )2 2

l d d l

tl d d l

S S S S

bH

S S S S

b

(4.48)

Page 39: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 39

5. А - звезда (А*) алгоритам претраживања

Алгоритми претраживања се у највећој мери ослањају на теорију графова, која

је у математици посебна област истраживања. Граф сачињавају чворови графа и везе

између чворова графа, оне могу бити двосмерне (неусмерене) или усмерене. Пример

једног графа је дат на слици 5.1. На датој слици се може уочити да је сваком од

чворова графа додељен тежински фактор, као и свакој од веза.

Слика 5.1: Пример графа

Алгоритам А* је генерисан у циљу ефикасног претраживања у простору, тј.

проналажења најкраће путање од тачке А до тачке Б у простору чији су саставни део и

препреке које је неопходно заобићи. На приказаном графу неопходно је

идентификовати почетни и крајњи чвор (односно тачке А и Б), а према алгоритму

кретањем кроз чворове и сумирањем вредности чворова и тежинских фактора веза

између чворова проналази се најкраћа путања, што је детаљније разрађено у наставку

текста.

Простор претраге је могуће дискретизовати на разне начине, како према облику

тако и према униформности. У овом случају разматра се алгоритам за раванску

претрагу, па је раван подељена на површине у облику квадрата, где центри квадрата

представљају чворне тачке графа а физичка растојања између њих предтављају

тежински фактор веза између посматраних чворова. На слици 5.2 је приказан пример

оваквог графа где је зеленом бојом означена циљна тачка, жутом бојом почетна тачка,

док су препреке означене црвеном бојом.

Вредности у чворовима овог графа су вредности хеуристике, која има улогу да

претрагу „води“ ка циљу, а једнака је растојању циљног чвора од посматраног чвора.

Неопходно је нагласити да се да су тежински фактори веза између чворова једнаки

јединици ако су они суседни по вертикали или хоризонтали и да су једнаки корену од

два ако су они суседни по дијагонали. Што се лако може приметити на слици 5.3 где се

изолован само један чвор са својим суседима. Чворови који су идентификовани као

Page 40: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 40

препреке имају за неколико редова величина већу вредност, да би што лакше били

изузети при одлучивању алгоритма. Такође је потребно нагласити да осим оваквог

кретања кроз граф (у осам праваца) могуће је реализовати и кретање кроз граф у

четири правца, односно само у хоризонталном и вертикалном правцу.

Слика 5.2: Пример графа за А* алгоритам

На слици 5.3 је приказан чвор 4,4са слике 5.2 и његови први суседни, и на том

примеру ће бити објашњен начин одлучивања који је чвор следећи у кретању кроз

граф (у овом случају радни простор).

Слика 5.3: Пример једног чвора графа

Page 41: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 41

Како је већ било речи, из тренутног чвора (на слици 5.3) је могуће наставити

кретање у осам праваца. Сумиранјем тежинских фактора везе према сваком од

суседних чворова и вредности у том чвору доноси се одлука да се кретање наставља

кроз чвор са тежинским фактором 2.24, како је и приказано на слици, јер је ова сума ка

њему најмања, односно износи 3.65.

За дати пример са слике 5.2 након процедуре претраге А* алгоритма генерише

се путања кроз чворове како је приказано на слици 5.4.

Слика 5.4: Путања кроз граф на основу А* алгоритма

На слици 5.5 је приказан алгоритам на основу којег је пројектовано софтверско

решење постављеног пројектног задатка.

На основу горе наведеног алгоритма у MatLab окружењу је развијен подпрограм

којим се реализује исти алгоритам, а чији је код дат у прилогу овог рада.

Више речи о целокупном софтверском решењу ће бити у даљем тексту у одељку

где је описана експериментална верификација решења, а у наставку су дати само неки

од примера на којима је тестиран развијени алгоритам А*.

Улазне величине за тестирање рада програма су били вектор почетног положаја

у облику [Xp, Yp], вектор крајњег положајса у облику [Xc, Yc] и матрица препрека која

приказана на слици 5.6 и потребно је да се она задаје у пикселима. Такође је важно

нагласити да су у матрицу „по ободу“ унете веће вредности како неби долазило до

напуштања радног простора односно грешака у одлучивању алгоритма.

Page 42: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 42

Слика 5.5: Алгоритам А*

Слика 5.6: Матрица препрека

Page 43: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 43

За унете координате старта Xs = 2, Ys = 9 и циља Xc = 12, Yc = 4 алгоритам

генерише матрицу хеуристике, слика 5.7, док је на слици 5.8 приказана слика спектра

формирана на основу матрице хеуристике, која на сликовит начин приказује њену

улоги. Црвена зоне на слици показују место циља, а бела зона место старта.

Слика 5.7: Матрица хеуристике

Слика 5.8: Спектар матрице хеуристике

Матрица хеуристике се сабира са скалираном матрицом препрека и омогућава

даљи рад алгоритма. Одтле се претраживањем генерише матрица координата

путање, на основу које се робот дање управља. А за посматрани случај генерисан је

вектор координата: [2,9; 3,8; 4,7; 5,6; 6,5; 7,4; 8,4; 9,5; 10,5; 11,4; 12,4] и на основу тога

путања изгледа као на слици 5.9.

Page 44: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 44

Слика 5.9: Путања робота за дати пример

На слици 5.10 су проказани неки од резултата добијених током тестирања

алгоритма претраживања који је развијан за решавање постављеног проблема. На

сликама се могу уочити почетне и крајње тачке, означене са „СТАРТ“ и „ЦИЉ“, као и

маркери на путањи црвене боје који показују тачке кроз које робот мора да прође

током кретања.

Слика 5.10: Резултати верификације А* алгоритма претраге

Page 45: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 45

6. Верификација резултата пројектног решења

Верификација рада вештачких неуронских мрежа описана је у поглављу

Системи вештачких неуронских мрежа. А – звезда алгоритам претраживања као и

вештачке неуронске мреже верификован је у поглављу 5. А – звезда (А*) алгоритам

претраживања. Тестирање кретања мобилног робота извршено је у технолошком

окружењу предвиђеном за тестирање односно верификацију. Пре самог тестирања

имплементирани су у управљачки код мобилног робота модел кретања, вештачке

неуронске мреже као и А – звезда алгоритам. Приликом самог тестирања односно

верификације кретања мобилног робота верификован је и рад вештачких неуронских

мрежа, модел кретања и А – звезда алгоритам.Верификација кретања мобилног

робота у технолошком окружењу успешно је извршена и дата је на сликама од 6.1 до

6.5.

Слика 6.1: Робот у изабраном положају 1

Page 46: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 46

Слика 6.2: Робот у изабраном положају 2

Слика 6.3: Робот у изабраном положају 3

Page 47: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 47

Слика 6.4: Робот у изабраном положају 4

Слика 6.5: Робот у изабраном положају 5

Page 48: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 48

7. Симулација рада технолошког окружења „XY“ у „Anylogic“

софтверском пакету

Почетком деведесетих година јавило се велико интересовање за моделирање и

симулацију паралелних процеса. Група истраживача са техничког универзитета Saint

Petersburg развила је софтвер за анализу исправности програма и назвали су га

COVERS (Concurrent Verification and Simulation).

Овај успех је 1998. године инспирисао DCN лабораторију за развој овог

софтвера. Акценат је ставњен на следеће методе: симулација, перформансе анализе,

стохастичко понашање система, оптимизацију и визуелизацију. Нови софтвер је

изашао 2000. године који је базиран на предходним методама, а писан је програмском

језику Java и назван је „AnyLogic“.

„AnyLogic“се може користити за симулацију разних предузећа, преко пошти и

банака до веома сложених производних погона. Коришћен је за симулацију нашег

производног погона у циљу анлизе и побољшања истог.

7.1 Технолошко окружење и симулација датог диспозиционог плана

предузећа „XY“

Применом софтвера „AnyLogic“ добија се могућност да се симулацијом

реалног процеса или неке производне линије у некој фабрици добију резултати који се

могу анализирати и ако је могуће унапредити тај процес. Шта више могу се повећавати

и смањивати времена обраде, капацитет машина и др. Све ради анализе и провере

максималног искоришћења машина и сл.

На основу добијеног задатка и датог диспозиционог плана урађена је

симулација производне линије за добијање односно обраду делова датих у табела 7.2.

На основу анализе симулације уколико је могуће биће унапређена постојећа линија и

дати нови диспозициони план за дату линију производње.

На слика 7.1.1 дат је диспозициони план са назначеним местима на којима се

налазе дате машине (табела 7.1). На основу тог диспозиционог плана урађена је

симулација рада дате производне линије за обраду делова дате на слици 7.1.2.

Page 49: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 49

Табела 7.1: Списак машина са описом

Машина Опис

М1 Маказе за сечење

М2 ЦНЦ машина за пробијање и просецање

М3 ЦНЦ хидраулична апкант преса

М4 Машина за исецање профила

М5 , М6 Стубна бушилица

М7 Кружна тестера

М8 Оштрилица алата

М9 Линија за обраду делова од бакра

Табела 7.2: Трајање технолошких операција у секундама за дате делове.

Машина Transport fuse Mainbusbar

support Support d800 Busbar 2 L1

М1 / / / /

М2 8 / / /

М3 4 / 16 /

М4 2.5 / 96.5 /

М5 , М6 / 16 / /

М7 / 12 / /

М8 / / / /

М9 / / / 49

Page 50: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 50

У даљем тексту коришћени су промењени називи делова дати у табела 7.3.

Табела 7.3: Промењени називи делова

Стари назив Transport fuse Mainbusbar support Support d800 Busbar 2 L1

Нови назив Д1 Д2 Д3 Д4

У симулацијама које су вршене коришћени су ентитети софтвера „AnyLogic“ дати у

табели 7.4.

Табела 7.4: Енитети коришћени у симулацијама

Назив команде Икона Опис

Source

Представља улаз у систем

Delay

Представља машину односно вереме обраде

Queue

Ред чекања испред машине

Conveyor

Конвејер

Select Output

Помоћу ове команде препознајемо део и шаљемо га на одговарајућу машину

Sink

Представља излаз из система

Page 51: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 51

Слика 7.1.1: Диспозициони план

Page 52: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 52

Прво решење симулације за дати диспозициони план приказан је на слици

7.1.2, док је на слици 7.1.3 дата грешка коју је избацио „AnyLogic“ .

Слика 7.1.2: Прво решење за дати диспозициони план

Слика 7.1.3: Грешка првог решења

Page 53: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 53

Као што се види са слике софтвер је избацио грешку и не може да настави са

симулацијом. Под претпоставком да је капацитет реда који чекају на ред мали односно

недовољан да испрати процес обраде за Д4 додати су конвејери са очекиваним

резултатом да је проблем успешно решен. На слици 7.1.4 дато је ново решење

симулације, међутим софтвер је и ту избацио грешку, слика 7.1.5.

Слика 7.1.4: Ново решење симулације за дати диспозициони план

Слика 7.1.5: Грешка другог решења за дати диспозициони план

Page 54: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 54

Са слике је уочена грешка за Д1. У овој симулацији коригован је капацитет реда

и конвејера али је сада грешка настала на новом месту. Са детаљнијом анализом

проблема за дати симулациони модел закључено је да проблем настаје у самом улазу

делова у симулациони модел јер је време улаза делова у модел много краће него

сама обрада на машинама. Са тим закључком регулисано је време улаза свих делова

у систем сходно њиховим задржавањем на машинама. Дати модел трећег решења које

је успешно извршено дат је на слици 7.1.6.

Слика 7.1.6: Треће решење

7.2 Технолошко окружење и пројектовање новог диспозиционог плана

Пројектовани нови диспозициони план за предузеће „XY“ дат је на слици 7.2.1.

Као што се види са слике битно се разликује од предходног. Овде је направљен нови

размештај машина. Симулација која ће бити направљена за нови диспозициони план

даће резултате који ће се упоредити и на основу њих семоже донети закључак о

успешности развоја новог диспозиционог плана.

Page 55: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 55

Слика 7.2.1: Нови диспозициони план предузећа „XY“.

Троугаона матрица за нови модел

Акроними и вредности за формирање троугаоне матрице приказани су табелама 7.5 и

7.6.

Формирана троугаона матрица за нови диспозициони модел налази се на слици 7.2.2.

Ознака Степен зависности

АН Апсолутно неопходно

ВВ Веома важно

В Важно

П Потребно

Н Неважно

Ознака Разлог

1 Ток материјала

2 Тип машине

3 Одржавање машине

4 Еколошки

Табела 7.6: Табела разлога Табела 7.5: Табела степена зависности

Page 56: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 56

Слика 7.2.2: Троугаона матрица

У наставку су приказана неколико решења симулационог модела за нови

диспозициони план. Почевши од првог па даљим усавршавањем до крајњег решења.

Почетна страна симулациионог модела дата је на слици 7.2.3 док је на слици 7.2.4

дато прво решење. Симулација се покреће кликом на “ПОКРЕНИ СИМУЛАЦИЈУ”.

Слика 7.2.3: Почетна страна

Page 57: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 57

Слика 7.2.4: Прво решење

Са слике је уочено да до застоја у систему долази због малог капацитета

конвејера. Извршена је измена у симулационом моделу чиме је добио нову структурну

промену, друго решење дато је на слика 7.2.5.

Page 58: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 58

Слика 7.2.5: Друго решење.

Page 59: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 59

Пуштањем у рад овај преуређени симулациони модел уочен је застој за који је

закључено да је капацитет машине М3 премали за дати број делова који надолази и

чека на обраду. Корекцијом капацитета машине решен је проблем у трећем решењу

али и ту се јавила иста грешка само је у питању машина М4, слика 7.2.6.

Слика 7.2.6: Треће решење.

Page 60: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 60

Анализом појављивања грешака у симулационом моделу и немогућности

одвијања истог до краја закључено једа су извор појављивања грешака као и у случају

симулационог модела за предходни диспозициони план, времена уласка делова у

модел. Проблем је решенкао и у предходном случају регулисањем улаза делова у

симулациони модел тј. повећана су времена међудоласка делова у симулациони

модел. Међутим добијани су неадекватни резултати због тога што су у моделу

коришћене по две машине М3 и М4. Коришћење таквог решења одлучено је због

различитих времена обраде делова Д1 и Д3 на машинама М3 и М4. Анализирајући

дати проблем мало дубље дати проблем је решен, тако што је спорним машинама

додељено променљиво време чекања. Приказ четвртог коначног решења дат је на

слици 7.2.7.

Слика 7.2.7: Четврто решење.

Page 61: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 61

Након успешно изведене симулације развијена је и анимацију дате симулације

такође у оквиру софтвера „AnyLogic“. Приказ анимације у току процеса дата је на

слици 7.2.8.

Слика 7.2.8: Анимација

Page 62: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 62

У анимацији су квадратићима поред машина у горњем десном ћошку приказани

статуси машина тј. квадратићи су попуњени црвеном бојом уколико је машина заузета

односно обрађује неки део док зелена боја означава да је машина слободна.

Статистика рада свих машина дата је на слици 7.2.9.

Слика 7.2.9: Статистика рада машина

7.3 Упоредни приказ решења.

Након пуштања симулационог модела за оба диспозициона плана, који су

симулирали рад система од 30 минута, забележен је број обрађених делова, а

резултати су дати у табели 7.7.

Табела 7.7: Резултати симулација за 30 минута.

Диспозициони план Дати диспозициони план Нови диспозициони план

Број обрађених делова 413 662

Предходне резултате који су рађени у временском интервалу од 30 минута

преведени су као рад у једној смени од 8h. Добијени резултати су дати у табели 7.8.

Табела 7.8: Резултати симулације за 8h

Дати диспозициони план 6608

Нови диспозициони план 10592

Разлика новог и датог дисп. плана 3984

Page 63: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 63

Из табеле 7.8 се јасно види да за нови диспозициони план приликом рада

машина у једној смени у трајању од 8h се добија 3984 обрађених делова више него за

дати диспозициони план. Након анализе резултата се види да је нови диспозициони

план далеко бољи од предходног.

Са слике 7.2.9 се уочава да је искоришћеност машина велика осим машина М1

и М8 које уопште не учествију у обради делова како је и дато по поставци задатка.

Из предходне анализе долази се до логичног закључка да нови диспозициони

план који је пројектован даје далеко боље резултате од предходног, стим у вези

предузеће „XY“ има уштеду у времену делова проведених у систему а самим тим

остварује далеко већи профит што је и био циљ пројектовања новог диспозиционог

плана.

Page 64: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 64

8. Закључак

Решавање пројектног задатка је захтевало имплементацију неколико различитих

сегмената управљања мобилног робота у радном окружењу. Интелигентно

управљање је стављено у функцију процесирања података очитаних са оптичког

сензора и захтеваног угла ротације мобилног робота, кроз вештачке неуронске мреже

са простирањем сигнала унапред. Такође је било потребно пројектовати диспозициони

план технолошког окружења како би овако обучен робот што ефикасније обављао

задате задатке. Симулацијом тока материјала унутар технолошког окружења је

постигнут завидан ниво ефикасности. У прилог томе је и симулиран ток материјала, за

пројектовани диспозициони план, унутар софтверског пакета „AnyLogic“.

У раду су приказани резултати развоја техничко-технолошког решења и

предочене препреке које је било неопходно елиминисати у циљу што ефикаснијег

решавања проблема. Такође је проказан комплетан развој система вештачких

неуронских мрежа за процесирање података очитаних са оптичког сензора и

управљање ротацијом робота. Помоћу Калмановог филтера вршена је корекција

положаја и оријентације робота на основу задаток положаја робота и података

очитаних са енкодера покретачког система. Алгоритам претраживања А* је

имплементиран у софтверски систем управљања у циљу проналажења оптималне

путање кретања мобилног робота кроз радно окружење.

Анализирањем и верификацијом решења кретања мобилног робота унутар

технолошког окружења дошло се до закључка да је овако развијено решење уз мале

дораде и унапређења могуће имплементирати у реалном технолошком окружењу. Што

би за последицу имало већу продуктивност производње, повећање квалитета

производа и постизање конкурентније цене на тржишту. Током верификације

резултата развијеног система најмања грешка позиције мобилног робота након

извршеног задатка је била око 4 cm.

Даља истраживања би обухватала самостално снимање непознатог окружења

помоћу ултразвучног сензорског система или помоћу камера. Такође је потребно

развијати систем који би омогућавао обилажење динамичких препрека у технолошком

окружењу, што би омогућило потпуну примену оваквог система.

Page 65: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 65

9. Литература

[1] Милутиновић, Д., Изводи са предавања, Индустријски роботи, Машински Факултет,

Београд, 2011.

[2] Интернет: http://www.lego.com/ , јануар 2013.

[3] Миљковић, З., Системи вештачких неуронских мрежа у производним технологијама,

Машински факултет, Београд, 2003.

[4] Gershenson, C., Artificial Neural Networks for Beginners

[5] Интернет: http://www.cs.stir.ac.uk/~lss/NNIntro/InvSlides.html , новембар 2012.

[6] Вуковић, Н., Материјали са аудоторних вежби на предмету Интелигентни

технолошки системи (ПРО220-0131), Универзитет у Београду -Машински

факултет, Београд,2010.

[7] Интернет: http://www.fer.unizg.hr/_download/repository/Seminar_-_SPUS.pdf,

децембар 2012.

[8] Интернет: http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html ,

новембар 2012.

[9] Интернет: http://www.informatics.sussex.ac.uk/courses/

FP/AstarAlgorithm/AstarAlgorithm.pdf, новембар 2012.

[10] Интернет: http://www.anylogic.com, јануар 2012.

[11] Миљковић, З., Алексендрић Д., Вештачке неуронске мреже – Збирка решених

задатака са изводима из теорије, Машински факултет, Београд, 2009.

Page 66: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 66

10. Прилози

10.1 Програм за бучавање вештачке неуронске мреже за процесирање

података очитаних са оптичког сензора

close all; clear all; clc;

load crna_boja; black = S; load bela_boja; white = S; x = [black; white];

xi = (x - (max(x)+min(x))./2)./((max(x)-min(x))./2);

figure(1), plot(white,'ob','MarkerSize',3,'MarkerFaceColor','b'),hold on, plot(black,'ok','MarkerSize',3,'MarkerFaceColor','k') xlabel('Broj merenih uzoraka') ylabel('Intenzitet izmerene svetlosti') title('Parovi parametara za treniranje mreze') h = legend('BELA boja','CRNA boja',1);

x1 = xi(1:size(black,1)); x2 = xi(size(black,1)+1:end);

o1 = ones(size(black,1),1)*-1; o2 = ones(size(white,1),1);

netff = newff([x1;x2]',[o1;o2]',[3],{'tansig'},'trainlm');

% Training parameters net.trainParam.show = 100; net.trainParam.lr = 0.2; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-22;

netff = train(netff,[x1;x2]',[o1;o2]');

% Verify network's performance Yp = sim(netff,[x1;x2]')' % Variance of FFNN model is: sff2 = (1/length(x))*sum(([o1;o2] - Yp).^2)

save netff

Page 67: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 67

10.2 Програм за бучавање вештачке неуронске мреже за управљање

ротацијом робота

clear all; close all; clc;

load('zakretanje_robota.txt'); merenje = zakretanje_robota; AL = merenje(1,:); input = merenje(2,:); output = AL;

SCnet_PR = newff(input,output,[15 10 3],{'purelin','tribas', ... 'tansig'},'trainlm');

SCnet_PR.trainParam.show = 50; SCnet_PR.trainParam.lr = 0.05; SCnet_PR.trainParam.mc = 0.4; SCnet_PR.trainParam.mu = 0.0001; SCnet_PR.trainParam.epochs = 1000; SCnet_PR.trainParam.goal = 1e-5; SCnet_PR.trainParam.max_fail = 10;

[SCnet_PR,slika] = train(SCnet_PR,input,output); y = sim(SCnet_PR,input); x1 = -250:0.5:250; y1 = sim(SCnet_PR,x1);

disp('y AL input'); mreza_vs_AL = [y' AL' input' ];

figure(1), plot(input,AL,'or'),hold on plot(input,y,'b*',x1,y1,'.c'); grid; legend('Obucavajuci parovi','Trenirani parovi');

save SCnet_PR2

Page 68: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 68

10.3 Главни програм

% Motori se povezuju na B i C kanal; % Senzor se povezuje na kanal 1; % Rastojanje izmedju tockova je B = 10cm; % Poluprecnik tocka je r = 2,8cm

clear all; close all; clc;

load netff % ucitavanje VNM za senzor boje load SCnet_PR % ucitavanje VNM za skretanje load bela_boja; bela = S; load crna_boja; crna = S;

% Unos tacaka kroz koje je potrebno da robot prodje xc = [2 5 6 4]; yc = [2 2 8 8];

% pocetak programa

% Iniciranje komunikacije sa robotom handle = COM_OpenNXT('USB.ini', 'check'); COM_SetDefaultNXT(handle); OpenLight(SENSOR_1,'ACTIVE');

S = []; yp = [];

boje_const_plus = (max(bela) + min(crna))./2; boje_const_minus = (max(bela) - min(crna))./2;

% Polozaj robota u pocetnoj tacki x = [0 0 0/57.3]';

C = eye(3)*.1; dmax = 2.5;

for i = 1:(size(xc,2)-1)

[Putanja] = A_zvezda(okruzenje, xc(i), yc(i), xc(i+1), yc(i+1));

b = 10; r = 2.8; QL = [0 0 ; 0 0]; Q = [100 0 ; 0 100];

% Mapa markera (u cm) mapa1 = [41.5 19; 67 58; 34.5 94.5; 34.5 109];

pathx = Putanja(1:end, 1)*8; pathy = Putanja(1:end, 2)*11;

figure (1) xlim([-10 90])

Page 69: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 69

ylim([-10 140]) plot_simulation_data(x, C), hold on; plot(pathx, pathy, '-*r', 'linewidth', 4); hold on; xlim([-10 90]) ylim([-10 140])

k = okruzenje; hold on; path = [pathx, pathy]; sizpath = size(path,1);

StopMotor all off ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C);

s = GetLight(SENSOR_1); S = [S; s];

xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp];

for k = 1 : sizpath

StopMotor('all', 'off'); ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C); d_wp = ITS_compute_distance(x, path(k,:)); fi_steer = ITS_compute_direction(x, path(k,:))*57.3;

if abs(fi_steer) >= 15

if fi_steer <= 0 trrot = -100; else trrot = 100; end

s = GetLight(SENSOR_1); S = [S; s]; xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp];

alrot = round(sim(SCnet_PR, fi_steer));

StopMotor('all', 'off'); ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C); SetMotor(MOTOR_C); SyncToMotor(MOTOR_B); SetPower 20 SetTurnRatio (trrot) SetAngleLimit (alrot) SendMotorSettings pause(1) WaitForMotor(MOTOR_B); pause(1)

Page 70: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 70

MC = GetMotorSettings(MOTOR_C); MB = GetMotorSettings(MOTOR_B);

dsl = MC.Angle/57.3*r; dsr = MB.Angle/57.3*r; M = [10^-5*abs(dsl) 0; 0 10^-5*abs(dsr)]; [x, C] = model_kretanja(x, C, dsr, dsl, b, M);

s = GetLight(SENSOR_1); S = [S;s]; xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp];

end

while d_wp > 5

s = GetLight(SENSOR_1); S = [S; s]; xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp];

if Yp < 0 [x,C] = korigovanje_polozaja(x, C, Q, mapa1); end

StopMotor('all', 'off'); ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C); SetMotor(MOTOR_C); SyncToMotor(MOTOR_B); SetPower 20 SetTurnRatio 0 SetAngleLimit 100 SendMotorSettings WaitForMotor(MOTOR_C); WaitForMotor(MOTOR_B);

MC = GetMotorSettings(MOTOR_C); MB = GetMotorSettings(MOTOR_B);

dsl = MC.Angle/57.3*r; dsr = MB.Angle/57.3*r;

M = [10^-5*abs(dsl) 0; 0 10^-5*abs(dsr)];

[x,C] = model_kretanja(x, C, dsr, dsl, b, M);

ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C); xlim([-10 90]) ylim([-10 140]) plot_simulation_data(x, C); hold on;

s = GetLight(SENSOR_1);

Page 71: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 71

S = [S; s]; xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp];

if Yp < 0 [x, C] = korigovanje_polozaja(x, C, Q, mapa1); end

d_wp = ITS_compute_distance(x, path(k,:)); fi_steer = ITS_compute_direction(x, path(k,:))*57.3;

if abs(fi_steer) >= 30 if fi_steer <= 0 trrot = -100; else trrot = 100; end s = GetLight(SENSOR_1); S = [S; s]; xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp]; alrot = round(sim(SCnet_PR, fi_steer)); StopMotor('all', 'off'); ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C); SetMotor(MOTOR_C); SyncToMotor(MOTOR_B); SetPower 20 SetTurnRatio (trrot) SetAngleLimit (alrot) SendMotorSettings pause(1) WaitForMotor(MOTOR_B); pause(1) MC = GetMotorSettings(MOTOR_C); MB = GetMotorSettings(MOTOR_B);

dsl = MC.Angle/57.3*r; dsr = MB.Angle/57.3*r; M = [10^-5*abs(dsl) 0; 0 10^-5*abs(dsr)]; [x, C] = model_kretanja (x, C, dsr, dsl, b, M); else continue end s = GetLight(SENSOR_1); S = [S; s]; xi = (s - boje_const_plus)./boje_const_minus; Yp = sim(netff, xi); yp = [yp; Yp];

d_wp = ITS_compute_distance(x, path(k,:)); fi_steer = ITS_compute_direction(x, path(k,:))*57.3;

end StopMotor('all', 'off'); ResetMotorAngle(MOTOR_B); ResetMotorAngle(MOTOR_C); end end

Page 72: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 72

10.4 Подпрограм модела кретања робота function [ X, Cn ] = model_kretanja( X, Dsd, Dsl, Cs, b, M ) %MODEL_KRETANJA kao izlaz daje novu matricu koordinata 'X' i novu matricu %kovajijansi 'Cn' x = X(1); y = X(2); theta = X(3); % x = x + ((Dsl+Dsd)/2)*cos(theta+(Dsd-Dsl)/(2*b)); y = y + ((Dsl+Dsd)/2)*sin(theta+(Dsd-Dsl)/(2*b)); theta = theta + ((Dsd-Dsl)/b); % X = [x; y; theta]; % Gt = [1 0 -((Dsl+Dsd)/2)*sin(theta+(Dsd-Dsl)/(2*b)); 0 1 ((Dsl+Dsd)/2)*cos(theta+(Dsd-Dsl)/(2*b)); 0 0 1];

Vt = 1/2.*[cos(theta+(Dsd-Dsl)/(2*b))+1/b*((Dsl+Dsd)/2)* ... sin(theta+(Dsd-Dsl)/(2*b)) cos(theta+(Dsd-Dsl)/(2*b))-1/b* ... ((Dsl+Dsd)/2)*sin(theta+(Dsd-Dsl)/(2*b)); sin(theta+(Dsd-Dsl)/(2*b))-1/b*((Dsl+Dsd)/2)* ... cos(theta+(Dsd-Dsl)/(2*b)) sin(theta+(Dsd-Dsl)/(2*b))+1/b* ... ((Dsl+Dsd)/2)*cos(theta+(Dsd-Dsl)/(2*b)); -2/b 2/b];

Cn = Gt*Cs*Gt'+Vt*M*Vt'; end

Page 73: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 73

10.5 Подпрограм А – звезда алгоритма function [MP] = A_zvezda(okruzenje, xt, yt, xc, yc)

for x = 1:size(okruzenje(1)) for y = 1:size(okruzenje(2)) H(x,y) = sqrt((x-xc)^2+(y-yc)^2); end; end;

P = 1000*okruzenje + H;

s = P(xt, yt); PP = 0; k = 0; f = 1; MP(1, f) = xt; MP(2, f) = yt; M = [];

while s ~=0 for i = -1:1 X = xt+i; for j = -1:1 Y = yt+j; if (X ~= xt) || (Y ~=yt) k = k+1; M(1,k) = P(X,Y); end; end; end;

P(xt,yt) = P(xt,yt)+2; [~,d] = min(M); f = f+1;

switch d case 1 xt = xt-1; yt = yt-1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+sqrt(2); case 2 xt = xt-1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+1; case 3 xt = xt-1; yt = yt+1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+sqrt(2); case 4 yt = yt-1; MP(1,f) = xt;

Page 74: Inteligentni Tehnoloski sistemi - Projekat

УНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ

КАТЕДРА ЗА ПРОИЗВОДНО

МАШИНСТВО

Интелигентни технолошки системи ГРУПА 4 Страна: 74

MP(2,f) = yt; PP = PP+1; case 5 yt = yt+1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+1; case 6 xt = xt+1; yt = yt-1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+sqrt(2); case 7 xt = xt+1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+1; case 8 xt = xt+1; yt = yt+1; MP(1,f) = xt; MP(2,f) = yt; PP = PP+sqrt(2); end; k = 0; s = P(xt,yt); M = []; end; end