8.1 Интелигентни роботи¶
У седмом разреду било је речи о вештачкој интелигенцији (скраћено: ВИ). Поменули смо да се она користи и у роботици. Тако данас, поред старијих и једноставнијих робота имамо и модерније роботе којима управља ВИ, па их називамо и интелигентним роботима.
По чему се роботи којима управља ВИ разликују од својих претходника?
Покушајте да набројите што више способности које интелигентни роботи имају а њихови претходници не. Дискутујте у групи које особине су типичне за интелигентне роботе.
Први индустријски робот у Србији, настао 1978. године¶
Непознати аутор, CC BY-SA 3.0, via Wikimedia Commons
Једна од лако уочљивих разлика је у начину на који се данашњи роботи крећу. Вероватно сте имали прилике да видите снимке робота који трче, скачу, ходају по степеницама и разним препрекама, изводе салто (окрет преко главе у ваздуху) унапред или уназад и разне друге акробације. Ево само једног од многих примера које је лако пронаћи на интернету. Роботи донедавно нису могли да се крећу на овај начин. Наравно, ово су роботи направљени да демонстрирају најновија достигнућа и помињемо их као очигледан пример. Роботи који при кретању имају знатно скромније могућности такође могу да буду управљани помоћу ВИ.
Још неке разлике у способностима између робота управљаних помоћу ВИ и оних који то нису ћемо поменути нешто касније, а у резимеу на крају стране ћемо их набројати прегледније.
Да ли је за трчање, скакање, заобилажење или савладавање препрека и друга сложена кретања роботима потребна вештачка интелигенција? Шта мислите, на који начин роботи постижу сва ова сложена кретања? Чиме све треба да буду опремљени и како користе ту опрему, да би могли да се крећу на описани начин?
Настојте да при одговарању на ово питање будете што детаљнији. По могућности, поведите разговор о овоме у групи. Када дате прве одговоре на постављена питања, размислите да ли можете додатно да појасните и образложите неки део одговора.
Размотримо, на пример, способност робота да заобиђе или прескочи препреку. Како робот може уопште да „зна” да је пред њим препрека? Свакако је потребно да он буде опремљен камером или камерама које снимају његово окружење, али то није довољно. Робот мора да буде у стању и да протумачи оно што камера сними. За то је роботу потребан нарочит програм, који на основу добијене слике може да изведе закључак „испред тебе је равна подлога без препрека” или „испред тебе је препрека, те и те величине и на том и том растојању”. Робот би затим те информације могао да искористи за доношење одлука о даљем начину кретања.
Слично је и са кретањем по неравном терену. Робот преко различитих сензора добија информације о нагибу подлоге по којој се креће, о томе колико је подлога глатка (клизава) итд. Те информације стижу до другог нарочитог програма, који на основу њих одлучује да ли потребно да робот другачије прерасподели своју тежину на ослонце, да ли треба да смањи или повећа брзину кретања, односно какве тачно покрете треба да изведе да би направио следећи корак или скок.
Људи и животиње као сасвим мали спонтано науче да ходају, а када та рана фаза савладавања вештине ходања прође, касније током целог живота ходају без размишљања о томе, присећања, прорачунавања, или других интелектуалних напора. Због тога ходање доживљавамо као нешто сасвим једноставно, што се догађа само од себе и не захтева нарочиту интелигенцију. Као што знамо, роботи не функционишу на исти начин као људи, а тако је и у овом примеру. Неизбежна карика у процесу савладавања ових проблема код робота су рачунарски програми који анализирају информације са сензора и на основу тога доносе одлуке о томе како даље да управљају покретима робота.
У седмом разреду смо говорили о неким проблемима којима се бави вештачка интелигенција. Поменули смо и проблем препознавања садржаја слике као један од типичних проблема ВИ. Према томе, вештачка интелигенција јесте потребна роботима да би могли да изводе описана сложена кретања.
Закључили смо да су способности попут уочавања и заобилажења препрека, ходања по неравном терену итд. карактеристичне за роботе управљане вештачком интелигенцијом, јер су повезани са разумевањем садржаја слике, што спада у задатке ВИ. Присетимо се и осталих проблема за које смо рекли да њихово решавање спада у вештачку интелигенцију. Међу таквим проблемима, они који су посебно значајни за роботе су разумевање и генерисање људског говора, проналажење људи или одређених предмета на фотографијама, препознавање лица људи, разврставање објеката детектованих на фотографији у задате групе (категорије). За роботе који су способни да обављају било који од ових задатака са сигурношћу можемо да кажемо да су управљани вештачком интелигенцијом, па чак и да их сматрамо напредним интелигентним роботима.
Интелигентне роботе можемо да разликујемо од осталих по томе што су у стању да опажају свет око себе, а затим да на основу података прикупљених опажањем доносе самосталне одлуке о даљим акцијама.
За опажање роботи користе различите сензоре, као што су камере (које шаљу слике), микрофони (који шаљу аудио записе), акцелерометри (који шаљу податке о свом убрзању, на основу којих робот може да открије нпр. да се сударио са нечим), магнетометри (који шаљу податке о мангетном пољу, на основу којих робот зна како је окренут) и многи други. Сви они шаљу роботу различите врсте сигнала, који се сви своде на велике низове бројева.
Податке прикупљене преко сензора анализирају разни интелигентни програми, од којих је сваки специјално дизајниран за одређену намену.
На основу резултата обраде података са сензора, посебан софтверски модул доноси одлуке и шаље одговарајуће команде деловима робота задуженим за његово кретање.
Захваљујући свему овоме, кажемо да интелигентан робот види, чује, има осећај за додир или равнотежу, или уопште да разуме податке који му пристижу са сензора. Наравно, робот не мора да има све ове особине да би био сматран интелигентним, довољна је било која од њих.
До сада смо разне програме који се извршавају у рачунарима или роботима разврставали на интелигентне и класичне само на основу осећаја који смо стекли из набројаних примера. Ако вас интересује нешто више о суштинским разликама између ове две групе програма, кликните на следеће дугме. Приступ који је ту изложен даје неке смернице како размишљањем о програму можемо да откријемо или бар наслутимо којој групи он припада.
Како разликовати интелигентне и класичне пргораме
Из набројаних примера знамо да многи интелигентни програми анализирају слику, звук, видео и друге сигнале који стижу са разних сензора. Ако се налазе у роботу, интелигентни програми на основу анализе сигнала изводе закључке о роботовом окружењу и доносе одлуке о даљим акцијама робота.
По чему се ови програми суштински разликују од класичних програма које уобичајено користимо, као што су програми за прављење презентација, писање текста, школски дневник, програми за цртање, за прегледање интернет страница, слушање музике?
Када размишљамо о томе како набројани класични програми раде, код већине можемо да разложимо њихове поступке на све једноставније и једноставније кораке. На пример, када у програму за цртање изаберемо оловку а затим померамо миша, појављује се траг изабране боје. На основу тога, можемо да претпоставимо да се негде у програму налазе овакве наредбе:
ако је стигло обавештење о новом положају миша
{
ако је тренутно активна алатка оловка
{
обој пиксел на коме се тренутно налази миш у боју оловке
}
иначе, ако је тренутно активна алатка гумица
{
обој пиксел на коме се тренутно налази миш у боју позадине
}
иначе, ако је тренутно активна алатка за избор дела слике
{
...
}
...
}
ако је стигло обавештење о клику на неку од алатки
{
...
}
...
Слично томе, имамо неку идеју о томе како би могао да функционише програм за школски дневник. Он негде чува податке о ученицима, наставницима, одржаним часовима, оценама итд. Када се корисник програма пријави (улогује), програм на основу тога зна да ли је тај корисник родитељ, предметни наставник, одељењски старешина, или има неку другу улогу, па му у складу са тиме нуди одговарајуће могућности. И овде пажљивим аназлизирањем можемо да претпоставимо да негде у програму постоје наредбе облика:
ако је овај корисник родитељ
{
прикажи му оцене његовог детета
}
иначе, ако је овај корисник предметни наставник
{
понуди му да изабере одељење и ученика, а затим
понуди му да унесе нову оцену
}
итд.
Није нарочито тешко да замислимо и ситније кораке, као што је очитавање вредности из неког поља за унос, а то је већ ниво појединачних наредби за програмске језике у којима се такви програми пишу.
Наравно, овај приказ је веома поједностављен. Прави проргами су сложенији него што је овде описано, али у принципу се до њих долази на описани начин - разлагањем задатака на ситније кораке, до нивоа наредби на неком програмском језику. Не морамо да будемо у стању да испратимо све детаље да бисмо могли да препознамо да је поменуто разлагање изводљиво.
Ако покушамо да замислимо слично разлагање на ситније кораке код програма који на основу података са сензора управљају кретањем робота, наилазимо на проблем. Врло нам је тешко да замислимо како неки програм може на основу низа бројева који представљају слику да дође до закључка да је пред роботом, тј. његовом камером некаква препрека. То је зато што наредбе које овакви програми извршавају нису ни настале на претходно описани начин, људским разлагањем задатка на ситније кораке. У ствари, људи сами нису у стању да на тај начин опишу своје закључивање и понашање, тј. не умеју да га разложе на једноставне рачунске кораке. Човек који на слици препознаје препреку не може да каже да је поредио нијансе осветљености тачно одређених пиксела и на основу тога донео закључак. Зато се за стварање оваквих проргама и користи вештачка интелигенција.
Из овог размишљања можемо да извучемо један критеријум, који може да помогне у препознавању интелигентних програма:
Ако смо у стању да препознамо како задаци које програм обавља могу да се разложе на све ситније кораке, до нивоа наредби на неком програмском језику, тај програм скоро сигурно спада у класичне, тј. неинтелигентне.
Ако нам разлагање на ситније кораке у почетку добро иде, али од неког тренутка постаје веома тешко да наслутимо како би процес разлагања могао да тече даље, то је знак да је вероватно реч о програму из области вештачке интелигенције.
Описани критеријум није сасвим прецизан и разрађен, па не може да буде ни потпуно поуздан. Свакако можете да га испробате на разним познатим програмима и видите да ли вам помаже и колико.
На које начине су поменуте способноти интелигентних робота и појединачни задаци које они умеју да обављају корисни са људе?
Покушајте да наведете конкретне примере практичне употребе интелигентних робота.
Кроз примену вештачке интелигенције, роботи су напредовали и у извршавању задатака које су и раније обављали. На пример, роботи који се користе у аутомобилској индустрији за заваривање, бушење и слично, пре него што изведу своју операцију морају да буду врло прецизно постављени. Раније је о томе морао да води рачуна човек, а сада, користећи рачунарски вид, робот може самостално да прилагоди свој положај. Рачунарски вид је заједнички назив за технологије које се користе у рачунарству да омогуће машинама да „разумеју” оно што виде. Тако робот који се креће препознаје препреке, а индустријски робот зна где се тачно налази предмет његове обраде и како је тачно окренут.
Интелигентни роботи су и безбеднији за људе. Робот који само слепо понавља одређену механичку радњу може да буде веома опасан по онога ко му се приближи, јер такав робот не зна где се човек тренутно налази. Данас постоје и тзв. колаборативни роботи, или скраћено коботи, који су знатно безбеднији по човека. Такви роботи могу да буду опремљени камерама и другим сензорима који детектују присуство човека и контакт са њим. Захваљујући томе, робот помоћу софтвера може да прилагоди понашање и избегне повређивање човека. Уз ову и друге мере заштите, роботи и људи могу да раде у истом простору без опасности по човека.
Поменули смо да поботи управљани вештачком интелигенцијом осим слике могу да разумеју и говор, као и друге различите сигнале, који им пристижу са сензора. Тако, на пример, роботи намењени за помоћ старим или слабо покретним лицима могу да одговарају на нека питања својих власника, да ћаскају са њима и да извршавају неке команде. Неки од ових робота могу и да подигну власника из инвалидских колица и пренесу га у кревет и обрнуто. Када имамо на уму да роботи о свом окружењу сазнају само преко различитих сензора (слике, звука, додира и слично), разумећемо да је ово врло сложена операција за робота и да захтева непрекидно, брзо и правилно тумачење податка различитих врста, који стално пристижу у великим количинама. Програм који омогућава такво понашање такође спада у вештачку интелигенцију.
Резимирајмо:
Интелигентни роботи се одликују способношћу да опажају свет око себе, да разумеју податке прикупљене опажањем и да доносе самосталне одлуке о даљим акцијама на основу тих података.
Захваљујући овим способностима, интелигентни роботи могу да примете и заобиђу препреке, крећу се по неравном терену, проналазе алтернативне путеве до циља, детектују и препознају (разликују) објекте на које наилазе, разумеју и генеришу људски говор, препознају људска лица, итд. Све ово интелигентни роботи користе да брзо реагују на промене у свом окружењу и тако стално прилагођавају своје понашање новим околностима (избегавају сударе, падове, разне опасности, заузимају тачно одређен положај у односу на објекте из окружења, прихватају измене у задатку који им је додељен итд.).
Интелигентни роботи су самосталнији, ефикаснији и прецизнији у задацима које су обављали и њихови претходници, безбеднији су за човека и боље сарађују са њим, а могу да обављају и низ послова које претходна генерација робота није могла да обавља.