Ինքնավար մեքենաները և DARPA-ի մեծ մարտահրավերը․ մաս 1

Academy Writer
Picsart Academy
Published in
8 min readAug 24, 2021

Իրագործման արժանի շատ բաներ հեշտ և արագ չեն տրվում։ Պետք է օգտագործես այն, ինչ ունես, և այնպես, ինչպես ստացվում է։ Լավագույնը, որ կարող ես անել՝ ընտրել այն, ինչ սիրում ես և գնալ դրա հետևից՝ չխնայելով ոչինչ։ Հենց դա է կյանքը։

William “Red” Whittaker, Red/Կարմիր թիմի առաջնորդ

1 միլիոն դոլար մրցանակով մրցավազք անապատում

Ռոբոտ մեքենաների առաջին մրցավազքը տեղի է ունեցել Mojave-ի անապատում 2004 թ․ մի զով հինգշաբթի առավոտ։ Երբ արևը սկսեց ծագել, մի անապտային կրիա գլուխը հանեց իր բնից՝ հույս ունենալով օրն անցկացնել արագ տաքացող ճանապարհին։ Սակայն այդ օրը նա ծուղակն էր ընկել՝ չկարողանալով դուրս գալ բնից և շարժվել որևէ ուղղությամբ։ Մոտ քսան կենսաբան արգելքներ էր դրել նրա բնի և նմանատիպ այլ բների շուրջ, որպեսզի պաշտպանեին վտանգված կենդանատեսակներին ռոբոտ մեքենաների մրցավազքից, որը պետք է անցներ հարակից ճանապարհով։ Նրանք ճշտորեն կանխատեսել էին, որ մեքենաները չեն կարողանալու մնալ ճանապարհի երթևեկելի մասում, առավել ևս շրջանցել կրիաներին։

Մարդկանց ակնկալիքները մրցավազքի ավարտի վերաբերյալ շատ տարբեր էին։ Իսկ կազմակերպիչն առանց վարանելու պնդում էր, որ հաղթողը կավարտի 142 մղոն երկարություն ունեցողը ճանապարհը ոչ ավել քան 10 ժամում։ Մյուսները՝ այդ թվում շատ մարդիկ ռոբոտաշինության ասպարեզից, կասկածում էին, որ առհասարակ որևէ մասնակից կկարողանա ավարտել մրցավազքը։

Սեղանին դրված էր մեկ միլիոն դոլար արժողությամբ մրցանակ։ Humvee կոչվող ինքնավար մեքենա մշակող հետազոտողների թիմի ծրագրային ղեկավար Chris Urmson-ը նույնպես մրցում էր 1 միլիոնի դոլարի համար։

Chris-ը նիհար էր, բարձրահասակ, ուներ թափթփված շեկ մազեր։ Լեգենդար ռոբոտագետ William “Red” Whittaker-ի ղեկավարությամբ նա աշխատում էր Carnegie Mellon համալսարանում (CMU)՝ ասպիրանտի գիտական աստիճան ստանալու համար։ Իր հետազոտության նկատմամբ բացառիկ նվիրվածություն ունենալով՝ նա գրեթե երկու ամիս անցկացրել էր անապատում և փորձարկել իրենց թիմի Humvee-ն։ Այդ ընթացքում Chris-ը մի անգամ նույնիսկ արթուն էր մնացել շուրջ 40 ժամ։ Իր երկարատև փորձերից մեկի ժամանակ նա, փաթաթված հաստ ծածկոցով, գրեթե մինչև կեսգիշեր դիտում էր, թե ինչպես է Humvee-ն պտույտներ կատարում։ Թույլ մառախուղի միջից տեսանելի իր լուսարձակներով Humvee-ն հանկարծ դուրս եկավ երթևեկելի գոտուց՝ շրջվելով դեպի շղթայակապ պարիսպը։ Մեկ այլ փորձարկման ժամանակ, երբ փոձում էր կտրուկ շրջադարձ կատարել, Humvee-ն գլորվեց՝ մի քանի շաբաթով շարքից հանելով իր սենսորները։ Chris-ը գիտակցում էր, որ ավելի լավ է առերեսվել այս պատահարներին մրցավազքից առաջ, քան մրցավազքի ժամանակ։

Մրցավազքին մասնկացելու էր նաև ինքնավար մի մոտոցիկլետ, որը, իհարկե, լրատվամիջոցների սիրելին էր։

Նախագծողները մոտոցիկլետին գիրոսկոպներ էին կցել, որպեսզի այն կարողանա հակադարձ շրջադարձեր կատարելիս ուղիղ մնալ և պահպանել հավասարակշռությունը։ Այդ գաղափարը հավանության էր արժանացել ավելի քան հարյուր հետազոտողների և հոբբիստների կողմից։

Գիրոսկոպով մոտոցիկլետը խելացի էր, բայց բոլորը գիտեին, որ եթե որևէ թիմ պետք է հաղթեր մրզավազքը, ապա ավելի հավանական էր, որ դա կլիներ Chris֊ի և William֊ի թիմը Carnegie Mellon֊ի համալսարանից։ Վերջին երկու տասնամյակներում հենց այս համալսարանի հետազոտողներն էին ոլորտի առաջատարները։ Նրանք դեռ հեռավոր 1991-ին էին պարզագույն ինքնավար մեքենաներ ցուցադրել Pittsburgh֊ի փողոցներում։ Ոչ ոք չէր կարող հերքել CMU֊ի հետազոտողների էլեկտրամեխանիկական կարողությունները։

Մրցավազքի օրը Chris-ի կողմից նախագծած և սենսորներով հագեցած Humvee-ին շատ մոտիկից հետապնդում էր մեկ այլ մեքենա։ Humvee-ն ընթացքի մեջ էր արդեն մոտ 25 րոպե։ Այն արագ չէր գնում, իր անցած 7 մղոնը վարել էր միջինում 15 մղոն/ժամ արագությամբ, բայց միևնույն է այն դեռ օրվա առաջատարն էր։ Դիմապակուն ունենալով մեծ CAT տարբերանշան (logo), այս ռոբոտ մեքենան ինքնավստահ ճեմում էր։

Սակայն, երբ մեքենան կտրուկ հետադարձ կատարեց, նրա տեսողական համակարգը վնասվեց։ Կորցնելով տեսողությունը՝ մեքենան ընթանում էր ոչինչ չտեսնելով։

Ինչպե՞ս ստեղծել ինքնավար մեքենա

Ինչպե՞ս Humvee-ն ինքնուրույն երթևեկեց 7 մղոն։ Հնարավոր է՝ գիտեք, որ ինքնավար մեքենաներն ինքնուրույն երթևեկելու համար օգտագործում են մեքենայական ուսուցում, ավելի կոնկրետ՝ խորը նեյրոնային ցանցեր։ Սակայն, երբ Chris-ը և նրա գործընկերները մրցավազքից հետո նկարագրում էին Humvee-ն, նրանք ոչինչ չնշեցին մեքենայական ուսուցման կամ նեյրոնային ցանցերի մասին։ Դա 2004 թվականն էր, որից մոտ մեկ տասնամյակ հետո էինք հասկացել, թե ինչպես նեյրոնային ցանցերին սովորեցնել «տեսնել» օբյեկտներ։ Ուրեմն, դրանց փոխարեն ի՞նչ էին օգտագործում այդ վաղ ինքնավար մեքենաները։ Նախ պետք է հասկանալ, թե ինչպես է մեքենան երթևեկում մի քանի մղոն հեռավոր անապատային ճանապարհին առանց որևէ երթևեկության՝ ունենալով նախօրոք սահմանված նպատակակետեր։ Կան ինքնավար մեքենայի ծրագրակազմի մաս կազմող ալգորիթմներ, որոնք թույլ են տալիս մեքենային տեսնել իրեն շրջապատող աշխարհը և մինչև անգամ մտածել, թե ինչպես վարել քաղաքային ճանապարհներին, օրինակ՝ ենթարկվելով Կալիֆորնիայի երթևեկության կանոններին։ Բայց մինչ այս ալգորիթմներն ուսումնասիրելը, պետք է հասկանալ, թե ինչպես է համակարգիչը վերահսկում մեքենայի սարքավորումները։ Երբ Vaucanson-ը ստեղծեց Ֆլեյտահարին, նա ծրագրավորել էր, որ վերջինս նվագի երաժշտությունը՝ գամերը զգուշորեն դնելով պտտվող թմբուկի ճիշտ տեղում։ Հետո այս գամերը սեղմում էին լծակները, որոնք կառավարում էին արձանի շրթունքները, նրա շնչառության օդի հոսքը և մատները։ Երբ Vaucanson-ը ցանկանում էր նոր երաժշտություն ունենալ, նա պարզապես պետք է ստեղծեր նոր թմբուկ՝ փոխելով գամերի դիրքը։ Իսկ եթե նա ցանկանար փոխել շրթունքների կամ մատների դիրքը՝ պահպանելով իր 12 մեղեդիների երգապնակը, նա միայն պետք է հարմարեցներ ֆիզիկական սարքի լծակները, շղթաները և միացումները։ Vaucanson-ը ավտոմատացված սարքի աշխատանքը երկու աստիճանավորման էր բաժանել՝ պտտվող թմբուկը և ծրագրի մնացյալ մասը։ Սա հնարավորություն էր տալիս ավելի հեշտությամբ բարելավել սարքը և հասկանալ նրա գործելաոճը։ Նույնը կարող ենք անել նաև ինքնավար մեքենայի հետ։

Այժմ եկեք կենտրոնանանք նրա արագության վրա։ Պարզագույն տարբերակով մեքենան պետք է կարողանա համակարգչի կողմից իրեն տրված թիվը, ենթադրենք՝ 25, փոխել հստակ մեծության, որն այս դեպքում արագությունը պետք է լինի։ Հեշտ է թվում, բայց իրականում նման գործընթացի բարդությունն այն է, որ ֆիզիկական շարժիչը չգիտի, թե ինչ է 25-ը։ Օրինակ՝ եթե անգամ գիտենք, որ էլեկտրական շարժիչին 250 վոլտ լարում տալու դեպքում մեքենան կգնա 25 մղոն/ժամ արագությամբ, դա դեռ չի նշանակում, որ պարզապես բարձրացնելով և իջեցնելով հոսանքի լարման սանդղակը, հնարավոր է սահմանել ցանկալի արագությունը։ Եթե ցանկանում ենք, որ մեքենան շարժվի 1 մղոն/ժամ արագությամբ, չպետք է ակնկալել, որ դա կստացվի շարժիչին 10 վոլտ լարում տալով։ Մեքենան այդքան վոլտում առհասարակ չի շարժվի։ Vaucanson֊ի ժամանակակիցները լուծել էին այդ խնդիրը օգտագործելով կենտրոնախույս կարգավորիչ (centrifugal governor) կոչվող մի սարք, որը հետադարձ հանգույց էր ստեղծում շարժիչի արագությունը վերահսկելու համար։ Centrifugal governor-ը երկու մետաղյա գնդակներով «պտտվող» սարք է, որին կարելի է ասոցացնել լուսավորության ժամանակաշրջանի շոգեմեքենայի շարժիչի և մեխանիկական արհեստանոցների հետ։

Երբ շարժիչի արագությունը մեծանում է, governor֊ն ավելի արագ է պտտվում ու մետաղյա գնդերը centrifugal ուժի կողմից մղվում են դուրս։ Մի շարք լծակների միջոցով փակվում է շարժիչին վառելիք մատակարարող խողովակի հոսքը՝ այն նորից դանդաղեցնելով։ Եթե շարժիչի արագությունը փոքր է, սարքն ավելացնում է վառելիքը մխոցավոր ջերմային շարժիչի համար՝ հոսքը նորից արագացնելով։ Վառելիքը շարժիչին հարմարեցնելով՝ governor֊ը պահպանում է շարժիչի արագության կայունությունը։ Այս governor֊ի թերությունն այն է, որ կարողանում է աշխատեցնել շարժիչը հաստատուն արագությամբ։ Ժամանակակից ինքնավար մեքենաները օգտագործում են նմանատիպ հետադարձ հանգույց, բայց նրանք կարողանում են աշխատել համակարգչի կողմից ընտրված ցանկացած արագությամբ։

Centrifugal governor֊ը էլեկտրոնային վերահսկման համակարգերի նախատիպն է։ Երբ շարժիչի արագությունը մեծանում է, «գնդերով» պտտվող առանցքը սկսում է ավելի արագ պտտվել, և գնդերը centrifugal ուժի պատճառով մղվում են դուրս։ Սրա հետևանքով և մի շարք լծակների միջոցով փակվում է շարժիչի փականը։ Եթե շարժիչի արագությունը փոքր է, ապա փականը թույլ կտա օգագործել վառելիքի ավելի մեծ հոսք։ Հանգույցը պտտվող սարքի փոխարեն օգտագործում է արագության էլեկտրոնային սենսորներ, որպեսզի չափի, թե անիվների արագությունը որքանով է տարբերվում անհրաժեշտ արագությունից։
Մեր նպատակն այն է, որ արագությունը վերահսկող ալգորիթմը ինտուիտիվ մեծացնի շարժիչի հզորությունը, երբ մեքենան դանդաղ է ընթանում, և փոքրացնի, երբ մեքենան չափազանց արագ է ընթանում։ Շարժիչի հզորությունը կարգավորող հայտնի տարբերակներից մեկը կոչվում է իզոդրոմային կարգավորում (proportional control)։ Անունը պայմանավորված է նրանով, որ հզորության կարգավորումները ստանալու համար պետք է անհրաժեշտ արագությունից հանել ներկա արագությունը և բազմապատկել ֆիքսված թվով։ Իզոդրոմային կարգավորումն անթերի չէ, երբ մեքենան երթևեկում է զառիվերով կամ ուժեղ քամիների հակառակ ուղղությամբ, ապա այն ավելի դանդաղ կընթանա, քան մենք ցանկանում ենք։ Ուստի ալգորիթմը վերահսկելու նպատակով կատարվում են նաև մի քանի այլ կարգավորումներ, որպեսզի, եթե մեքենան հաստատուն կերպով դանդաղ ընթանա, շարժիչի հզորությունը մի փոքր խթան ստանա։

Սա իզոդրոմային եռականոն կարգավորիչի վերահսկման հանգույցն է։ Կարգավորիչը հետադարձ կապ է ստանում արագաչափից շարժիչին հոսանք մատակարարելու գործընթացը կարգավորելու համար։ Կարգավորման ամենատարածված համակարգը հիմնված է նման երեք պարզ կանոնների վրա, որոնք մեքենային հուսալիորեն հասցնում են իր ցանկալի արագությանը։ Այս եռականոն կարգավորիչը, որին մասնագետները կոչում են իզոդրոմային կարգավորիչ, օգտագործվում էր շատ ինքնավար մեքենաներում։

Սարքավորման վերահսկման մասին մոտավոր պատկերացում ոնենալը բավարար է, կարիք չկա ժամանակ ծախսել խճճող մանրամասների վրա։ Սարքավորում ստեղծելն իսկապես կարևոր է, բայց այն ամբողջովին այլ մարտահրավեր է։ Արագությունը և ղեկի կառավարումը վերահսկելու համար անհրաժեշտ է գրել ծրագրակազմ (perspective), որը մեքենային կհաղորդի, թե ինչ արագությամբ երթևեկել և որքան արագ պտտել անիվները։ Մեքենայի աշխատանքը սարքավորումից ծրագրային դաշտ բերելով` կարելի է բացառապես կենտրոնանալ ծրագրակազմի վրա։

Շարունակելի

Նյութի սկզբնաղբյուրը` “How Smart Machines Think

Code Republic-ը ծրագրավորման գիտահետազոտական կենտրոն է, որն ունի նաև ուսումնական բաժին։ Ուսումնական բաժնում խմբավորում ենք խորացված ծրագրավորումը մաթեմատիկայի, ֆիզիկայի և ինժեներության հետ։

Մենք ջանք ու ժամանակ չենք խնայում և ստեղծում ենք այնպիսի որակյալ նյութեր, որոնք ցույց են տալիս ծրագրավորման իրական կողմը` արվեստը: Առայժմ դա ստացվում է, իսկ պատճառը պարզ է.

մենք սիրում ենք այն, ինչ անում ենք։

Ձգտում ենք ունենալ ծրագրավորման, մաթեմատիկայի, ֆիզիկայի և ինժեներության խորացված լավագույն դասընթացները և վարձավճարը սահմանել ամսական հնարավոր նվազագույնը` 42 000 դրամ։ Խոստանում ենք երբեք չթանկացնել, իսկ շատ ու շատ անվճար դասընթացներ էլ տեղադրել YouTube-յան մեր ալիքում, այստեղ՝

Բոլոր ցանկացողները կարող են ստեղծել և տեղադրել նոր դասընթացներ, կամ, ինչու ոչ, գրել հայալեզու հոդվածներ Medium-ում։ Համագործակցության համար գրեք մեզ contact@coderepublic.am հասցեով։ Եվ, իհարկե, հետևեք մեզ այլ սոց. ցանցերում. Facebook, Instagram, Telegram, և որ ավելի կարևոր է՝ LinkedIn, տեղադրում ենք միայն օգտակար նյութեր։

Ջանք ու եռանդ չենք խնայում լուծելու երկրում գլխավոր խնդիրներից մեկը՝ որակյալ ծրագրավորող-ինժեներների կրթումը։ Ժամանակատար է, դժվար է, բայց կանգ չենք առնում։

Ընտրել ենք բա՛րդ ճանապարհը

--

--