Ji roketan bigire heya robotan û çi pêwendiya Python pê re heye. Çîroka Alumni GeekBrains

Ji roketan bigire heya robotan û çi pêwendiya Python pê re heye. Çîroka Alumni GeekBrains
Îro em çîroka derbasbûna Andrey Vukolov bo IT diweşînin. Hesreta wî ya zarokatiyê ya ji bo fezayê carekê rê da wî ku li MSTU zanistiya rokêtê bixwîne. Rastiya dijwar min xewnê ji bîr kir, lê her tişt hê balkêştir derket. Xwendina C++ û Python hişt ku ez karek wekhev balkêş bikim: bernamekirina mantiqa pergalên kontrolkirina robotan.

Destpêka

Ez bextewar bûm ku di hemû zarokatiya xwe de li ser fezayê dilgeş bûm. Ji ber vê yekê, piştî dibistanê, min yek deqîqe jî guman nekir ku ez biçim ku bixwînim, û ez ketim MSTU. Bauman, ji bo beşa Endezyariya Propulsion Rocket. Lêbelê, şaxê qursê bixwe - motorên toz an şilav ên roketên fezayê - ne hewce bû ku were hilbijartin: di sala 2001-an de, komîsyonek taybetî ya fakulteyê hîn jî komên armanc ên serlêderan belav kir. Ez di nav barûtê de hatim girtin.

Di wê demê de, "boom roket" tenê di planan de hebû; endezyaran meaşên hindik distînin û di buroyên sêwiranê yên girtî û enstîtûyên lêkolînê yên bi rastî bê perspektîfek ji bo kariyera û mezinbûna pîşeyî dixebitin. Dîsa jî, roketên toz ên li Rûsyayê tenê hilberên leşkerî ne.

Naha ev dever daxwaz e, lê jixwe di dema xwendina xwe de min fêm kir ku di zanistiya rokê de her çalakî bi însiyatîfa xwe hema hema ne gengaz e. Bi rastî, ev xizmeta leşkerî ye. Mînakî, di pîşesaziya rokêtê de dixebitim, ez ê bi tevahî ji fersendê bêpar bim ku ez bixwe jî nermalava xwe pêşve bixim, ji ber ku ev çalakî bi tundî tê rêve kirin.

Hemî hilberên nermalavê bi taybetî li ser fermanek taybetî û bi erêkirina komîsyona nepenîtiyê (niha dabeşek FSTEC) têne pêşve xistin. Pêşdebir li wir pêdivî ye ku bi rastî her rêzika kodê qeyd bike û destûr bide. Hemî nermalava di destpêkê de di asta peywirê de veşartî ye. Ev hinekî rave dike ku çima nermalava ku naha ji bo perwerdekirina xwendekarên zanistiya rokê tê bikar anîn herî dereng di salên 90-an de hate pêşve xistin.

Wexta ku min ji enstîtuyê mezûn bû, min karî li beşa teoriya mekanîzmayê bixebitim û dest bi pêşxistina simulatorek pêvajoya perwerdehiyê di C++ de kir, ji ber vê yekê min mînakek ji bo berhevdanê hebû û dikarim pro û nebaş binirxînim. Hilbijartin eşkere bû, û min hêdî hêdî dest bi IT û robotîkê kir. Mekanîka sepandî ji zanistiya roketan pir xweştir bû: gelek pirsgirêkên neçareser, jîngehek vekirî, nebûna pîşesaziya pêşkeftinê, hewcedariya lezgîn a nermalava simulasyonê. Di robotîkê de, mîmariya nermalava hevpar a bêserûber heye û hewcedariya dubarekirina pêkanîna algorîtmayên tevlihev, tevî mantiqa fuzzy û destpêka AI-ê heye. Ji ber vê yekê, piştî bernameyên min ên yekem ji bo hilberandina daneyên ceribandinê, ez hema qet venegeriyam roketan (ji bilî projeya mezûnbûna xwe).

Wekî encamek, min firsend dît ku tenê çar mehan di pisporiya xwe de bixebitim berî ku li kargehek li nêzî Moskowê ji bo strukturên pêkhatî yên ji bo pîşesaziya hewayê mezûn bibim. Piştî qedandina xwendina xwe, ez neçar bûm ku li karekî bigerim - ez tavilê hatim ku li beşa robotîkê fêrî mekanîka serîlêdanê bikim.

Ji hînkirinê bigire heya bernamekirinê

Ji roketan bigire heya robotan û çi pêwendiya Python pê re heye. Çîroka Alumni GeekBrains
Di Kongreya Cîhanê ya IFTOMM de bi endamên xwendekar ên koma lêkolînê re (ez li rastê)

Ez 10 salan li MSTU di beşa nimûneyê de xebitîm, dersa teoriya mekanîzmayan didim. Wî xebatên zanistî weşandin (li dawiya gotarê binêre), hêdî hêdî ji mekanîkê ber bi CAD û robotîkê ve çû. Û di dawiyê de wî biryar da ku dev ji mamostetiyê berde. Ji bo ku sedemên vê biryarê bi awayekî herî zelal diyar bikim, ez ê bibêjim ku di deh salan de dersa xwendina ku min ders daye yek dehiyek neguheriye. Her çend mekanîka sepandî, li gorî weşanan dadbar bike, pir û pir serfiraz pêş ve çû.

Bi ser de jî, xebat her ku diçû dişibiya xebatên burokratîk - rapor, bername, standard û ton kaxez. Di şert û mercên weha de, kêfa hînkirinê bi raporkirina wergirtina vê kêfê hate guheztin û ev ji bo pisporek pispor ji ne xweştir e.

Û di dawiyê de ez bi vî awayî hatim ser robotîkê: di salên 2007-2009 de, bi profesorên A. Golovin û N. Umnov re, me dest bi amadekirina yekem xebatên zanistî kir. Li wir ez neçar bûm ku algorîtmayan bikar bînim da ku rêyên tiştan ji wênekêşiya strobe diyar bikim. Ji vê mijarê ew yek gav e ji bo dîtina makîneyê, OpenCV û Pergala Xebatê ya Robotîk (her çend wê demê min li ser pîvanek wusa jî nedifikirî). Piştî wê, min di dawiyê de di lêkolînê de bal kişand ser mekanîka û robotîkê ya sepandî, û pêşkeftin bû çalakiyek piştgirî.

Lêbelê, ji bo ku ez di robotîkê de karek nû bibînim, pêdivî bû ku zanîna xwe ya bernamesaziyê baştir û temam bikim. Jixwe, min tu carî bi taybetî IT nexwend, ji xeynî qursek zanîngehê ya salek dirêj (ObjectPascal û Borland VCL di C ++ de), û ji bo aliyên teorîkî yên pêşkeftinê pişta xwe da matematîkê.

Di destpêkê de min vebijarkên ji bo qursên tam-time li enstîtuya xweya dayikê fikirî. Rast e, zû eşkere bû ku ji ber nexşeya nerêkûpêk û xebata pir caran li derveyî nexşeya xwe (guheztin, hwd.) hema hema ne gengaz e ku meriv lêkolînên weha bi xebata li beşê re bike yek. Ji ber vê yekê ez hêdî hêdî hatim ramana ku ez qursên drav ji dûr ve biqedînim. Ez li ser pêşniyara profesorên ji navenda perwerdehiyê ya Mail.ru Technopark, ku li Baumanka ye, hatim GeekBrains, û ez beşdarî qursa Bernamesazê Python bûm.

Kurs tu zehmetî derneket, tenê pirsgirêk ew bû ku ez bi berdewamî neçar bûm ku wan bi xebata li beşê, xebatên zanistî û bûyeran re bigirim hev. Dem ew qas teng bû ku piraniya têkiliyên civakî yên li derveyî malê neçar bûn ku bêne qurban kirin (bextane, demkî).

Bi vî rengî min bi giraniya xebatê re rû bi rû ma: Min pirsgirêkên di rê de çareser kirin. Ev jêhatîbûn, ku bi gelek rêwîtiyên karsaziyê ve hatî pêşve xistin, pir bikêr derket, ji ber ku bêyî wê ez ê nekaribim hemî karên xwe yên malê jî biqedînim (û ew jî şûna meditationê digire ...). Ez fêr bûm ku di rê de bi karanîna laptop, smartphone, û klavyeyên smartphone yên bêtêl kod bikim.

Laptopa min Dell Latitude 3470 e, û her têlefonek bi diagonalek 5.5 înç an jî zêdetir bi klavyeyek Logitech K 810 BT ve hatî berhev kirin dê bike. Bi gelemperî, ez hilberên Logitech ji her kesî re pêşniyar dikim; ew pir pêbawer in û dikarin li ber şert û mercên karanîna pir dijwar bisekinin (û ev qet reklamek nabe).

Ji roketan bigire heya robotan û çi pêwendiya Python pê re heye. Çîroka Alumni GeekBrains
Klavyeya Logitech K810

Python ji bo xebatek weha pir guncan e - heke we edîtorek baş hebe. Hackek bernamekirinê ya din: girêdanên ji dûr ve bi sermaseyê an jîngeha dema xebitandinê re bikar bînin. Min gelek peywir bi karanîna serverek weba ewledar a ku Django li ser komputera xweya malê dixebitîne qedand. Ez ji trênê xebitîm, bi karanîna nermalava PyDroid, DroidEdit, Maxima.

Çima Python?

Demek dirêj derbas nebû ku min hewl da ku PHP-ê wekî zimanek nivîsandina pergalê bikar bînim. Min di destpêkê de Python bi xwe û hêdî hêdî "ji bo xwe" xwend. Min biryar da ku ez bi ciddî bixwînim piştî ku min li ser hebûna têkiliyek bi bandor di navbera Python û C++ de di asta modulê de fêr bûm - parvekirina algorîtmayên xweşbînkirî û prosedurên amadekirina daneyê di nav heman zimanî de balkêş xuya bû.

Mînaka herî hêsan: ji bo ajokerek hêzdar a ne-standard pergala kontrolê heye, ku li ser makîneyek pêvekirî ya bi pêvajoyek RISC, di C++ de hatî bicîh kirin. Rêvebirî bi navgîniya API-ya girêdayî makîneya derveyî, ku ji bo nimûne, pêwendiya di navbera bine pergalên li ser torê de piştgirî dike, pêk tê. Di astek bilind de, algorîtmaya xebata ajotinê ne xeletî ye an ne domdar e (pêwîst e ku li gorî pêvajoya xebatê algorîtmayên cûda werin barkirin).

Yek ji awayên çêtirîn ku meriv bigihîje pergalek wusa ev e ku meriv binepergala API-ya C++-a-taybet a makîneyê wekî bingehek ji bo komek çînên Python-ê ku li ser wergêrek cross-platform dixebitin bikar bîne. Ji ber vê yekê, pêşdebirê asta jorîn dê ne hewce ye ku taybetmendiyên makîneya pêvekirî û OS-ya wê li ber çavan bigire; ew ê bi tenê bi çînên Python re bixebite ku wekî "pêçandî" ya API-a-asta nizm tevdigerin.

Diviya bû ku ez C++ û Python-ê hema hema ji sifrê ve girêdana fêr bibim. Zû zû eşkere bû ku kapasîteyên obje-oriented di astek bilind de ji asta nizm pir girîngtir in. Ji ber vê yekê, me neçar ma ku nêzîkatiya sêwirandin û bicîhkirina API-yê bi tevahî biguhezînin, dersên di asta Python de hilbijêrin û daneyên gerdûnî yên di C/C++ de parve bikin. Ji bo hilberîna kodê bikar bînin: Mînakî, çarçoveya ROS-ê bixwe nav û tiştan di Python de çêdike, ji ber vê yekê divê hûn cûdahiyên ziman, nemaze di nivîsandinê de, dema sêwirana navrûyên xwe bidin ber çavan.

Di Niha de dixebitin: Python û Mantiqa Kontrolkirina Robot

Naha ez wekî bernamesazek ​​Python û C++ li Navenda Lêkolîn û Perwerdehiya Robotîk a Zanîngeha Teknîkî ya Dewletê ya Moskowê dixebitim. Em projeyên lêkolînê û amûrên nermalavê yên ku ji hêla dezgehên hukûmetê ve hatine peywirdarkirin bicîh dikin: em manipulatoran bi pergalên dîtbarî yên teknîkî yên çêkirî û algorîtmayên kontrolkirina otomatîkî yên asta bilind ên ku ji pergalan serbixwe ne pêşdixin.

Heya nuha, ez ji bo pergalên kontrolkirina robotan ên li Python mantiqa asta bilind bername dikim; ev ziman modulên pir xweşbînkirî yên ku di C++, assembler, û Go de hatine nivîsandin girêdide.

Di bernamekirina algorîtmayên kontrolkirina robotan de, du komên mezin ên algorîtmayan têne bikar anîn. Yekem ji wan rasterast li ser amûrê, di astek nizm de tête bicîh kirin - ev nermalava çêkirî ya kontrolkerên ajotinê, koncentratorên xeta ragihandinê, û bine pergalên danûstendina operatorê ye.

Algorîtmayên li vir ji bo leza darvekirinê ya kontrolkirî û pêbaweriya ku ji performansa robot bi tevahî derbas dibe hatine sêwirandin. Ya paşîn mecbûrî ye, ji ber ku ewlehiya tevahiya pergalê bi nermalava kontrolê ya nizm ve girêdayî ye.

Koma duyemîn a algorîtmayan xebata robotê bi tevahî destnîşan dike. Van bernameyên asta bilind in, ku di pêşkeftina wan de giranî li ser zelalî û leza pêkanîna algorîtmê ye, bi gelemperî pir tevlihev e. Wekî din, nermalava asta bilind a li ser robotê pir caran di dema sazkirin û ceribandinê de diguhezîne. Ji bo pêşveçûnek weha, zimanên şirovekirî yên gelemperî hewce ne.

Ji bo xebateke wiha çi zanîn pêwîst e?

Lêkolînkirina zimanê şablonê C++ û kapasîteyên objekt-oriented ên Python dê mecbûrî be. Zehmetiyek hema hema bêserûber şiyana sêwirandin û belgekirina API-yan e. Dê ramanek baş be ku hûn kapasîteyên pirtûkxaneyên pispor ên mîna Boost::Python bikolin. Kesên ku bi nermalava nizm re dixebitin bê guman neçar in ku bi bangên pirzimanî (di asta kernelê de) û pergalên Linux / UNIX / QNX re mijûl bibin. Ji bo baştirkirina têgihîştina xwe ya prensîbên robotîkê, pir bikêr e ku hûn xwe bi çarçoveya Pergala Xebatê ya Robotîk nas bikin.

Ez hewl didim ku bi kêmanî yek zimanek bernamesazkirî yê berhevkirî û şirovekirî hebe ku pêşkeftî û daxwaz e. Ev stratejiyek serketî ye ji bo xebata di endezyariyê de, ku li wir hewcedariyek domdar heye ku algorîtmayên pir pispor (bixwîne: neasayî) pêşve bibin û wan di berhevkirina zimanan de bicîh bikin. Karê amadekirina daneyan ji bo nermalava weha pir xweştir e ku meriv bi karanîna zimanên şirovekirî çareser bike. Di destpêkê de, koma min C ++, Pascal û BASIC di nav de, paşê PHP û BASH hatin zêdekirin.

Çawa amûrên pêşveçûnê dikarin di hînkirina xwendekaran de bikêr bibin

Plana sereke ya pêşkeftina pîşeyî niha ev e ku meriv hewl bide ku bingehek zanistî ji bo karanîna amûrên pêşkeftina nermalava profesyonel di pedagojiyê de peyda bike, ji bo pêşxistin û ceribandina rêbazên hînkirinê.

Ji sala 2016-an vir ve, min dest bi ceribandinek mezin kir di danasîna amûrên pêşkeftinê - zimanên bernamekirinê, IDE, hilberînerên belgekirinê, pergalên kontrolkirina guhertoyê - di pratîka hînkirinê de di xwendina bilind de. Em niha di bidestxistina encamên ku dikarin bi kalîteyî ve werin gelemperî kirin biser ketin.

Mînakî, danasîna guhertoya materyalan di pêvajoya perwerdehiyê de bi girîngî qalîteya xebata xwendekar çêtir dike, lêbelê, tenê di bin şertek mecbûrî de: xwendekar bi hev re li ser projeyên hevpar dixebitin. Pêşxistina rêbazên ji bo hînkirina dîsîplînên teknîkî bi karanîna amûrên pêşkeftina nermalava pîşeyî naha ji hêla koma min a lêkolînê ve, ku ji xwendekar, serlêder û xwendekarên bernameyên perwerdehiya zêde li MSTU pêk tê, bi aktîvî tê meşandin.

Bi awayê, min dev ji pratîka xwe ya hînkirinê berneda - min qursa xweya tev-time ya kûr a li ser sêwirandin û rêveberiya Linux-ê ji bo Enstîtuya Lêkolînên Pêşkeftî li MSTU pêşxist, û ez bi xwe fêrî wê dikim.

Xebatên zanistî

Xebatên destpêkê
Pirsgirêkên plansaziya rêveçûnê dema sêwirana pergalên meşê yên çar-ling bi karanîna mînaka pêkanîna rêça hespê bikar tînin (2010/XNUMX/XNUMX)

Li ser mijara kinematîk û barkirina hêmana piştgir a lingê pêşiyê hespê di qonaxa nêzîkbûna piştgirîyê de wekî pêkhateyên çerxa xebatê ya tevgera çar ling (2012/XNUMX/XNUMX)

Ji ya dawî
Ji bo mekanîzmaya hînkirinê û teoriya makîneyê serîlêdana simulasyona çêkirina gemarê 3D (2019/XNUMX/XNUMX)

Rêbaza naskirina astengiyên avahîsaziyê û sepana wê di lêgerîna tiştên alîkariyê de (2018/XNUMX/XNUMX)

Berhemên din ên ku ji hêla databasên vegotina zanistî ve têne navnîş kirin dikarin di profîla min de li ser werin dîtin Lêkolînê. Piraniya gotaran ji tevgera makîneyan re hatine veqetandin, xebatên li ser pedagojiya endezyariyê û nermalava perwerdehiyê hene.

Source: www.habr.com

Add a comment