Аз ракетаҳо то роботҳо ва Python бо он чӣ кор дорад. Ҳикояи хатмкардагони GeekBrains

Аз ракетаҳо то роботҳо ва Python бо он чӣ кор дорад. Ҳикояи хатмкардагони GeekBrains
Имрӯз мо достони гузариши Андрей Вуколовро ба IT нашр мекунем. Ҳаваси кӯдакии ӯ ба кайҳон боре ӯро водор кард, ки дар МДТУ риштаи мушакшиносиро омӯзад. Воқеияти сахт маро аз хоб фаромӯш кард, аммо ҳама чиз боз ҳам ҷолибтар шуд. Омӯзиши C++ ва Python ба ман имкон дод, ки кори якхела шавқоварро иҷро кунам: барномасозии мантиқи системаҳои идоракунии робот.

Оғоз

Ман хушбахт будам, ки дар тамоми давраи кӯдакиам дар бораи кайҳон шавқманд будам. Аз ин рӯ, пас аз дарс ман як дақиқа шубҳа надоштам, ки ба куҷо бояд таҳсил кунам ва ба MSTU дохил шудам. Бауман, ба кафедраи техникам харакати ракетй. Аммо, филиали худи курс - хока ё моеъи муҳаррикҳои мушакҳои кайҳонӣ - тамоман интихоб кардан лозим набуд: дар соли 2001 комиссияи махсуси факултет ҳанӯз гурӯҳҳои мақсадноки довталабонро тақсим мекард. Маро дар як точкае дастгир карданд.

Дар он вакт «бом ракетй» танхо дар накшахо вучуд дошт, инженерхо маоши ночиз мегирифтанд ва дар бюрохои махсуси конструкторй ва институтхои тадкикотии пушида кор мекарданд, ки дар амал перспективаи касбу хунар ва болоравии касбй надошт. Бо вуҷуди ин, мушакҳои хокаи Русия танҳо маҳсулоти низомӣ мебошанд.

Ҳоло ин соҳа талабот дорад, аммо аллакай дар давоми таҳсил ман фаҳмидам, ки дар илми ракета ҳама гуна фаъолият бо ташаббуси шахс қариб ғайриимкон аст. Дар асл, ин хизмати ҳарбӣ аст. Масалан, ман дар саноати ракета кор карда истодаам, ман аз имконияти мустақилона таҳияи нармафзор, ҳатто барои худам комилан маҳрум мешудам, зеро ин фаъолият ба таври қатъӣ танзим карда мешавад.

Ҳама маҳсулоти нармафзор танҳо бо фармоиши махсус ва бо тасдиқи комиссияи махфият (ҳоло як шӯъбаи FSTEC) таҳия карда мешаванд. Аз таҳиягари он ҷо талаб карда мешавад, ки ҳар як сатри кодро сабти ном кунад ва иҷозатнома диҳад. Ҳама нармафзор дар ибтидо дар сатҳи вазифа махфӣ аст. Ин қисман мефаҳмонад, ки чаро нармафзоре, ки ҳоло барои омӯзиши донишҷӯёни илми ракета истифода мешавад, дар солҳои 90-ум таҳия шудааст.

Вақте ки ман институтро хатм кардам, ман тавонистам дар кафедраи назарияи механизм кор кунам ва ба таҳияи симулятори раванди таълим дар C++ шурӯъ кардам, аз ин рӯ ман барои муқоиса намунае доштам ва метавонистам мусбат ва манфиро барраси кунам. Интихоб аён буд ва ман тадриҷан ба IT ва робототехника рафтанро сар кардам. Механикаи амалӣ назар ба илми ракета хеле шавқовартар буд: мушкилоти зиёди ҳалнашуда, муҳити кушод, набудани саноати рушд, ниёзи фаврӣ ба нармафзори симулятсия. Дар робототехника як меъмории ноустувори нармафзори умумӣ ва зарурати такроран татбиқи алгоритмҳои мураккаб, аз ҷумла мантиқи номуайян ва ибтидои AI вуҷуд дорад. Аз ин рӯ, пас аз барномаҳои аввалини ман барои коркарди маълумоти таҷрибавӣ ман қариб ҳеҷ гоҳ ба ракета барнагаштам (ба истиснои лоиҳаи хатмкардаам).

Натичаи хамин буд, ки ман имконият пайдо кардам, ки аз руи ихтисоси худ танхо чор мох пеш аз хатми омузишгох дар заводи конструкцияхои композитии саноати аэрокайхонй кор кунам. Пас аз хатми таҳсил ба ман ҳатто лозим набуд, ки кор ҷӯям — ман дарҳол омадам, ки ба кафедраи робототехника дарс диҳам.

Аз таълим то барномасозӣ

Аз ракетаҳо то роботҳо ва Python бо он чӣ кор дорад. Ҳикояи хатмкардагони GeekBrains
Дар Конгресси умумиҷаҳонии IFTOMM бо донишҷӯёни гурӯҳи тадқиқотӣ (ман дар тарафи рост)

Ман 10 сол дар МДТУ дар шӯъбаи намунагирӣ кор карда, аз курси назарияи механизмҳо таълим медодам. Ӯ корҳои илмиро нашр кард (ниг. ба охири мақола), тадриҷан аз механика ба CAD ва робототехника гузашт. Ва дар ниҳоят ӯ тасмим гирифт, ки омӯзгориро тарк кунад. Барои равшантар нишон додани сабабҳои ин тасмим бигӯям, ки дар тӯли даҳ сол курси таҳсиле, ки ман таълим медодам, як адади даҳиро иваз накардааст. Гарчанде, ки механикаи амалй, аз руи нашрияхо ба назар мерасад, хеле ва хеле бомуваффакият пеш мерафт.

Гайр аз ин, кор ба кори бюрократй — хисоботхо, программахо, стандартхо ва тонна когазхо бештар шабохат пайдо мекард. Дар чунин шароит лаззати таълимро гузориш додан дар бораи гирифтани ин лаззат иваз мекард ва ин барои мутахассиси амалкунанда бештар аз нохушоянд аст.

Ва ниҳоят ман ба робототехника чунин омадам: солҳои 2007-2009 ҳамроҳ бо профессорҳо А.Головин ва Н.Умнов мо ба омода кардани аввалин корҳои илмӣ шурӯъ кардем. Дар он ҷо ба ман лозим омад, ки алгоритмҳоро барои муайян кардани роҳҳои объектҳо аз аксбардории строб истифода барам. Аз ин мавзӯъ ин як қадам ба биниши мошин, OpenCV ва System Operating Robotics аст (гарчанде ки дар он вақт ман ҳатто дар бораи чунин миқёс фикр намекардам). Пас аз он, ман ниҳоят ба механикаи амалӣ ва робототехника дар тадқиқот таваҷҷӯҳ кардам ва рушд ба як фаъолияти ёрирасон табдил ёфт.

Бо вуҷуди ин, барои пайдо кардани кори нав дар робототехника дониши барномасозии худро такмил додан ва пурра кардан лозим буд. Дар ниҳоят, ман ҳеҷ гоҳ IT-ро махсус наомухтаам, ба истиснои як курси яксолаи донишгоҳ (ObjectPascal ва Borland VCL дар C++) ва барои ҷанбаҳои назариявии рушд ба математика такя кардам.

Дар аввал ман вариантҳои курсҳои рӯзона дар институти зодгоҳамро баррасӣ кардам. Дуруст аст, ки зуд маълум шуд, ки аз сабаби номунтазам кор кардан ва берун аз ҷадвали худ (ивазкунӣ ва ғайра) пайвастани чунин омӯзишҳо бо кор дар кафедра қариб ғайриимкон аст. Ҳамин тавр, ман тадриҷан ба андешаи хатми курсҳои пулакӣ аз фосилавӣ омадам. Ман бо тавсияи профессорони маркази таълимии Технопарки Mail.ru, ки дар Бауманка ҷойгир аст, ба GeekBrains омадам ва ба курси барномасози Python дохил шудам.

Курсҳо ҳеҷ мушкиле ба бор намеоварданд, танҳо мушкилӣ дар он буд, ки ман бояд онҳоро бо кор дар кафедра, корҳои илмӣ ва чорабиниҳо пайваста пайвастам. Вақт чунон танг буд, ки аксари робитаҳои иҷтимоии берун аз хона бояд қурбонӣ карда шаванд (хушбахтона, муваққатан).

Ман аз бори кор ана хамин тавр мубориза мебурдам: проблемахои рохро хал мекардам. Ин маҳорат, ки тавассути сафарҳои сершумори корӣ ташаккул ёфтааст, хеле муфид буд, зеро бе он ман ҳатто тамоми корҳои хонагии худро иҷро карда наметавонам (ва он инчунин мулоҳизаро иваз мекунад...). Ман дар роҳ бо истифода аз ноутбук, смартфон ва клавиатураҳои бесими смартфони худ кодро омӯхтам.

Ноутбуки ман Dell Latitude 3470 аст ва ҳама гуна смартфони диагонали 5.5 дюйм ё бештар аз он, ки бо клавиатураи Logitech K 810 BT пайваст карда шудаанд, кор хоҳад кард. Умуман, ман маҳсулоти Logitech-ро ба ҳама тавсия медиҳам; онҳо хеле боэътимоданд ва метавонанд ба шароити хеле сахти истифода тоб оваранд (ва ин ҳеҷ гоҳ таблиғ нест).

Аз ракетаҳо то роботҳо ва Python бо он чӣ кор дорад. Ҳикояи хатмкардагони GeekBrains
Клавиатура Logitech K810

Python барои чунин кор хеле мусоид аст - агар шумо муҳаррири хуб дошта бошед. Боз як ҳакери барномасозӣ: пайвастҳои дурдаст ба мизи корӣ ё муҳити корӣ истифода баред. Ман якчанд вазифаҳоро бо истифода аз веб-сервери бехатари Django дар компютери хонагии худ иҷро кардам. Ман аз қатора кор кардам, бо истифода аз нармафзори PyDroid, DroidEdit, Maxima.

Чаро Python?

Дере нагузашта ман кӯшиш кардам, ки PHP-ро ҳамчун забони скрипти система истифода барам. Ман дар аввал Python-ро мустақилона ва оҳиста-оҳиста "барои худам" омӯхтам. Пас аз он ки ман дар бораи мавҷудияти робитаи муассир байни Python ва C++ дар сатҳи модул фаҳмидам, ман тасмим гирифтам, ки ҷиддӣ таҳсил кунам - мубодилаи алгоритмҳои оптимизатсияшуда ва расмиёти омодасозии маълумот дар як забон ҷолиб ба назар мерасид.

Мисоли соддатарин: системаи идоракунӣ барои диски пурқуввати ғайристандартӣ мавҷуд аст, ки дар мошини дохилӣ бо протсессори RISC дар C++ амалӣ карда мешавад. Идоракунӣ тавассути API-и берунии вобаста ба мошин сурат мегирад, ки масалан, иртибот байни зерсистемаҳоро тавассути шабака дастгирӣ мекунад. Дар сатҳи баланд, алгоритми амалиёти гардонанда ислоҳ карда нашудааст ё доимӣ нест (вобаста ба раванди кор алгоритмҳои гуногунро бор кардан лозим аст).

Яке аз роҳҳои беҳтарини ноил шудан ба чунин система ин истифодаи зерсистемаи API-и махсуси C++ ҳамчун асос барои маҷмӯи синфҳои Python, ки дар тарҷумони кросс-платформа кор мекунанд, мебошад. Ҳамин тариқ, таҳиягари сатҳи боло набояд хусусиятҳои мошини дарунсохташуда ва OS-ро ба назар гирад; вай танҳо бо синфҳои Python кор хоҳад кард, ки ҳамчун "маҷмӯаҳо" -и API-и сатҳи паст амал мекунанд.

Ман маҷбур шудам, ки C++ ва Python ҳатмии тақрибан аз сифр ёд гирам. Ба зудӣ маълум шуд, ки қобилиятҳои ба объект нигаронидашуда дар сатҳи баланд назар ба сатҳи паст муҳимтаранд. Аз ин рӯ, мо маҷбур шудем, ки равишро ба тарҳрезӣ ва татбиқи API, интихоб кардани дарсҳо дар сатҳи Python ва мубодилаи маълумоти глобалӣ дар C/C++ комилан тағир диҳем. Ба тавлиди код одат кунед: масалан, худи чаҳорчӯбаи ROS дар Python номҳо ва объектҳоро тавлид мекунад, аз ин рӯ шумо бояд ҳангоми тарҳрезии интерфейсҳои худ фарқиятҳои забонро ба инобат гиред, махсусан ҳангоми чоп кардан.

Кор дар айни замон: Python ва Logic Control Robot

Ҳоло ман ба ҳайси барномасози Python ва C++ дар Маркази тадқиқотӣ ва таълими робототехникаи Донишгоҳи давлатии техникии Маскав кор мекунам. Мо лоиҳаҳои тадқиқотӣ ва асбобҳои нармафзорро, ки аз ҷониби шӯъбаҳои давлатӣ фармоиш дода шудаанд, амалӣ месозем: мо манипуляторҳоро бо системаҳои дарунсохташудаи биниши техникӣ ва алгоритмҳои сатҳи баланди идоракунии автоматӣ, ки аз системаҳо мустақил нестанд, таҳия мекунем.

Дар айни замон ман мантиқи сатҳи баландро барои системаҳои идоракунии роботҳо дар Python барномарезӣ мекунам; ин забон модулҳои хеле оптимизатсияшуда, ки дар C++, assembler ва Go навишта шудаанд, мепайвандад.

Дар барномасозии алгоритмҳои идоракунии роботҳо ду гурӯҳи калони алгоритмҳо истифода мешаванд. Якумин онҳо бевосита дар таҷҳизот, дар сатҳи паст амалӣ карда мешавад - ин нармафзори дарунсохташудаи контроллерҳои диск, консентраторҳои хати алоқа ва зерсистемаҳои ҳамкории оператор мебошад.

Алгоритмҳои ин ҷо барои суръат ва эътимоднокии идорашаванда тарҳрезӣ шудаанд, ки аз кори робот дар маҷмӯъ зиёдтаранд. Охирин ҳатмист, зеро амнияти тамоми система аз нармафзори идоракунии сатҳи паст вобаста аст.

Гурухи дуюми алгоритмхо кори роботро умуман муайян мекунад. Инҳо барномаҳои сатҳи баланд мебошанд, ки дар таҳияи онҳо ба возеҳӣ ва суръати татбиқи алгоритм, аксар вақт хеле мураккаб аст. Илова бар ин, нармафзори сатҳи баланд дар робот аксар вақт ҳангоми танзим ва санҷиш тағир меёбад. Барои чунин рушд, забонҳои тафсири умумӣ ҳатмӣ мебошанд.

Барои чунин кор чӣ дониш лозим аст?

Омӯзиши забони қолаби C++ ва қобилиятҳои ба объект нигаронидашудаи Python ҳатмӣ хоҳад буд. Маҳорати қариб ивазнашаванда ин қобилияти тарроҳӣ ва ҳуҷҷатгузории API мебошад. Барои омӯхтани имкониятҳои китобхонаҳои махсусгардонидашуда ба монанди Boost::Python, хуб мебуд. Онҳое, ки бо нармафзори сатҳи паст кор мекунанд, ҳатман бояд бо чанд ришта (дар сатҳи ядро) ва зангҳои системаи Linux/UNIX/QNX сару кор гиранд. Барои беҳтар кардани фаҳмиши шумо дар бораи принсипҳои робототехника, шинос шудан бо чаҳорчӯбаи системаи амалиётии роботӣ хеле муфид аст.

Ман кӯшиш мекунам, ки ақаллан як забони барномасозии тартибдодашуда ва тафсиршуда дошта бошам, ки дар ҳоли рушд ва талабот аст. Ин як стратегияи ғолиб барои кор дар муҳандисӣ аст, ки дар он ҷо ниёзи доимии таҳияи алгоритмҳои махсусгардонидашуда (хондан: ғайриоддӣ) ва татбиқи онҳо дар тартиб додани забонҳо вуҷуд дорад. Вазифаи тайёр кардани маълумот барои чунин нармафзор барои ҳалли истифодаи забонҳои тафсиршуда хеле гуворотар аст. Дар аввал маҷмӯи ман C++, Pascal ва BASIC-ро дар бар мегирифт, баъдтар PHP ва BASH илова карда шуданд.

Чӣ тавр воситаҳои рушд метавонанд дар таълими донишҷӯён муфид бошанд

Наќшаи асосии такмили ихтисос њоло аз он иборат аст, ки барои ба роњ мондани асосњои илмии истифодаи воситањои профессионалї барномасозї дар педагогика, тањия ва санљиши усулњои таълим.

Аз соли 2016 ман як таҷрибаи бузургро дар ҷорӣ кардани василаҳои рушд - забонҳои барномасозӣ, IDE, генераторҳои ҳуҷҷатгузорӣ, системаҳои идоракунии версияҳо - ба амалияи омӯзгорӣ дар мактаби олӣ оғоз кардам. Мо холо ба натичахое муяссар шудем, ки аз чихати сифатй умум карда шаванд.

Масалан, дар раванди таълим ҷорӣ намудани версияи маводҳо сифати кори донишҷӯёнро ба таври назаррас беҳтар мекунад, аммо танҳо дар ҳолати ҳатмӣ: донишҷӯён дар лоиҳаҳои муштарак кор мекунанд. Таҳияи усулҳои таълими фанҳои техникӣ бо истифода аз воситаҳои касбии таҳияи нармафзор ҳоло аз ҷониби гурӯҳи тадқиқотии ман, ки аз донишҷӯён, довталабон ва донишҷӯёни барномаҳои таълимии иловагии МДТУ иборат аст, фаъолона анҷом дода мешавад.

Дар омади гап, ман таҷрибаи омӯзгории худро тарк накардаам - ман курси амиқи худро оид ба тарроҳӣ ва идоракунии Linux барои Институти такмили ихтисос дар МДТУ таҳия кардам ва худам онро таълим медиҳам.

Коғазҳои тадқиқотӣ

Корҳои аввал
Масъалаҳои банақшагирии гаштугузор ҳангоми тарҳрезии системаҳои гаштугузори чорпоя бо мисоли татбиқи гашти асп (2010)

Оид ба масъалаи кинематика ва боркунии унсури такякунандаи пои пеши асп дар марҳилаи наздик шудан ба такя ҳамчун ҷузъҳои сикли кории чорпоён (2012)

Аз охирин
Барномаи моделиронии истеҳсоли фишанги 3D барои таълими механизм ва назарияи мошин (2019)

Усули эътирофи монеаҳои сохторӣ ва татбиқи он дар ҷустуҷӯи объектҳои рельефӣ (2018)

Корҳои дигареро, ки аз ҷониби пойгоҳи додаҳои иқтибосҳои илмӣ индексатсия шудаанд, дар профили ман дидан мумкин аст ResearchGate. Аксари маколахо ба харакати мошинхо бахшида шуда, асархои оид ба педагогикаи инженерй ва программахои таълимй мавчуданд.

Манбаъ: will.com

Илова Эзоҳ