Bho rocaidean gu innealan-fuadain agus dè a th’ aig Python ri dhèanamh leis. Sgeulachd Alumni GeekBrains

Bho rocaidean gu innealan-fuadain agus dè a th’ aig Python ri dhèanamh leis. Sgeulachd Alumni GeekBrains
An-diugh tha sinn a’ foillseachadh na sgeulachd mu ghluasad Andrey Vukolov gu IT. Mar thoradh air an dìoghras òige aige airson fhànais chaidh e gu sgrùdadh saidheans rocaid aig MSTU. Thug an fhìrinn chruaidh orm dìochuimhneachadh mun aisling, ach thionndaidh a h-uile dad a-mach eadhon nas inntinniche. Le bhith a’ sgrùdadh C ++ agus Python leig dhomh obair a cheart cho brosnachail a dhèanamh: a’ prògramadh loidsig siostaman smachd robot.

An toiseach

Bha mi fortanach a bhith a’ còrdadh ris an fhànais fad m’ òige. Mar sin, às deidh na sgoile, cha robh mi teagmhach airson mionaid càite am bu chòir dhomh a dhol a sgrùdadh, agus chaidh mi a-steach do MSTU. Bauman, gu Roinn Innleadaireachd Tiomnadh Rocaid. Ach, cha robh feum air meur a 'chùrsa fhèin - pùdar no einnseanan leaghaidh de rocaidean fànais - a thaghadh idir: ann an 2001, bha coimisean dàimhe sònraichte fhathast a' sgaoileadh na buidhnean targaid de thagraichean. Chaidh mo ghlacadh ann an cnap de fhùdar-gunna.

Aig an àm sin, cha robh an “àrdachadh rocaid” ann ach ann am planaichean; fhuair innleadairean tuarastal gann agus bha iad ag obair ann am biùro dealbhaidh dùinte sònraichte agus ionadan rannsachaidh le cha mhòr dùil sam bith airson fàs dreuchdail is proifeasanta. Ach, tha rocaidean pùdar anns an Ruis dìreach mar thoraidhean armachd.

A-nis tha iarrtas mòr air an raon seo, ach mar-thà rè mo chuid ionnsachaidh thuig mi gu bheil gnìomhachd sam bith air an ceann fhèin cha mhòr do-dhèanta ann an saidheans rocaid. Gu dearbh, is e seirbheis armachd a tha seo. Mar eisimpleir, ag obair anns a 'ghnìomhachas rocaid, bhithinn gu tur a' faighinn cothrom air bathar-bog a leasachadh gu neo-eisimeileach, eadhon dhomh fhìn, leis gu bheil an gnìomhachd seo air a riaghladh gu teann.

Tha a h-uile toradh bathar-bog air a leasachadh a-mhàin air òrdugh sònraichte agus le cead bhon choimisean dìomhaireachd (a-nis na roinn de FSTEC). Feumaidh an leasaiche an sin clàradh agus cead a thoirt dha gach loidhne de chòd. Tha a h-uile bathar-bog dìomhair an toiseach aig ìre na h-obrach. Tha seo gu ìre a’ mìneachadh carson a chaidh am bathar-bog a thathas a’ cleachdadh a-nis airson oileanaich saidheans rocaid a thrèanadh a leasachadh anns na 90n aig a’ char as fhaide.

Mun àm a cheumnaich mi bhon institiùd, fhuair mi air a bhith ag obair aig an roinn teòiridh uidheamachd agus thòisich mi a 'leasachadh simuladair pròiseas foghlaim ann an C ++, agus mar sin bha eisimpleir agam airson coimeas agus b' urrainn dhomh na buannachdan agus na cunntasan a mheasadh. Bha an roghainn follaiseach, agus mean air mhean thòisich mi a’ gluasad gu IT agus robotics. Bha meacanaig gnìomhaichte tòrr nas spòrsail na saidheans rocaid: mòran dhuilgheadasan gun fhuasgladh, àrainneachd fhosgailte, dìth gnìomhachas leasachaidh, feum èiginneach air bathar-bog atharrais. Ann an robotics, tha ailtireachd neo-sheasmhach de bhathar-bog cumanta agus an fheum air algorithms iom-fhillte a chuir an gnìomh a-rithist, a’ toirt a-steach loidsig fuzzy agus toiseach AI. Mar sin, às deidh na ciad phrògraman agam airson a bhith a’ giullachd dàta deuchainneach, cha mhòr nach do thill mi gu rocaidean (ach a-mhàin mo phròiseact ceumnachaidh).

Mar thoradh air an sin, bha cothrom agam a bhith ag obair nam eòlas sònraichte airson dìreach ceithir mìosan mus do cheumnaich mi aig plannt faisg air Moscow airson structaran co-dhèanta airson gnìomhachas aerospace. Às deidh dhomh mo chuid ionnsachaidh a chrìochnachadh, cha robh agam eadhon ri obair a lorg - thàinig mi sa bhad a theagasg meacanaig gnìomhaichte aig an roinn robotics.

Bho theagasg gu prògramadh

Bho rocaidean gu innealan-fuadain agus dè a th’ aig Python ri dhèanamh leis. Sgeulachd Alumni GeekBrains
Aig Co-labhairt Cruinne IFTOMM le oileanaich bhon bhuidheann rannsachaidh (mise air an làimh dheis)

Bha mi ag obair aig MSTU anns an roinn samplachaidh airson 10 bliadhna, a’ teagasg cùrsa air teòiridh uidheamachdan. Dh'fhoillsich e obraichean saidheansail (faic deireadh an artaigil), mean air mhean ghluais e bho mheacanaig gu CAD agus robotics. Agus mu dheireadh chuir e roimhe an teagasg fhàgail. Gus na h-adhbharan airson a’ cho-dhùnaidh seo a nochdadh nas soilleire, canaidh mi, ann an deich bliadhna, nach eil an cùrsa sgrùdaidh a bha mi a’ teagasg air atharrachadh aon ionad deicheach. Ged a ghluais meacanaig gnìomhaichte, a rèir nam foillseachaidhean, air adhart gu math, gu math soirbheachail.

A thuilleadh air an sin, bha an obair a 'sìor fhàs coltach ri obair biùrocratach - aithisgean, prògraman, inbhean agus tonna de phàipear. Ann an leithid de shuidheachaidhean, chaidh aithris mu bhith a 'faighinn an tlachd seo a chur an àite toileachas teagaisg, agus tha seo nas mì-thlachdmhor dha speisealaiche gnìomhach.

Agus mu dheireadh thàinig mi gu robotics mar seo: ann an 2007-2009, còmhla ris na h-ollamhan A. Golovin agus N. Umnov, thòisich sinn ag ullachadh a 'chiad obraichean saidheansail. An sin bha agam ri algorithms a chleachdadh gus slighean nithean a dhearbhadh bho dhealbhan strobe. Bhon chuspair seo tha e na aon cheum gu sealladh inneal, OpenCV agus Siostam Obrachaidh Robotic (ged aig an àm sin cha do smaoinich mi eadhon air a leithid de sgèile). Às deidh sin, chuir mi fòcas mu dheireadh air meacanaig gnìomhaichte agus innealan-fuadain ann an rannsachadh, agus thàinig leasachadh gu bhith na ghnìomhachd taiceil.

Ach, airson obair ùr a lorg ann an robotics, bha e riatanach m’ eòlas prògramaidh a leasachadh agus a leudachadh. Às deidh na h-uile, cha do rinn mi sgrùdadh air IT gu sònraichte, ach a-mhàin cùrsa oilthigh fad bliadhna (ObjectPascal agus Borland VCL ann an C ++), agus bha mi an urra ri matamataig airson taobhan teòiridheach leasachaidh.

An toiseach bheachdaich mi air roghainnean airson cùrsaichean làn-ùine aig an institiùd dhùthchasach agam. Fìor, dh'fhàs e soilleir gu luath gum biodh e cha mhòr do-dhèanta a leithid de sgrùdaidhean a chur còmhla ri obair san roinn air sgàth a 'chlàr neo-riaghailteach agus obair tric taobh a-muigh a' chlàr-ama agad fhèin (ionadachadh, msaa). Mar sin mean air mhean thàinig mi chun bheachd a bhith a’ crìochnachadh chùrsaichean pàighte air astar. Thàinig mi gu GeekBrains air moladh ollamhan bho ionad trèanaidh Mail.ru Technopark, a tha stèidhichte ann am Baumanka, agus chlàraich mi air a ’chùrsa Python Programr.

Cha do dh'adhbhraich na cùrsaichean duilgheadasan sam bith, is e an aon dhuilgheadas a bh 'ann gum feumadh mi an-còmhnaidh a chur còmhla ri obair aig an roinn, obraichean saidheansail agus tachartasan. Bha an ùine cho teann is gum feumadh a’ mhòr-chuid de cheanglaichean sòisealta taobh a-muigh na dachaigh a bhith air an toirt seachad (gu fortanach, airson ùine).

Seo mar a dhèilig mi ris an eallach obrach: dh’ fhuasgail mi duilgheadasan air an rathad. Bha an sgil seo, a chaidh a leasachadh tro ghrunn thursan gnìomhachais, gu math feumail, oir às aonais cha bhithinn eadhon comasach air m ’obair-dachaigh gu lèir a chrìochnachadh (agus bidh e cuideachd a’ dol an àite meòrachadh...). Dh’ ionnsaich mi còd a dhèanamh air an t-slighe a’ cleachdadh mo laptop, fòn cliste, agus meur-chlàran fòn cliste gun uèir.

Is e Dell Latitude 3470 an laptop agam, agus nì fòn cliste sam bith le trastain de 5.5 òirleach no barrachd air a chàradh le meur-chlàr Logitech K 810 BT. San fharsaingeachd, tha mi a’ moladh toraidhean Logitech don h-uile duine; tha iad gu math earbsach agus faodaidh iad seasamh an aghaidh suidheachaidhean cleachdaidh gu math cruaidh (agus chan e sanas a tha seo a-riamh).

Bho rocaidean gu innealan-fuadain agus dè a th’ aig Python ri dhèanamh leis. Sgeulachd Alumni GeekBrains
Meur-chlàr Logitech K810

Tha Python gu math cuideachail airson obair mar sin - ma tha deagh neach-deasachaidh agad. Hack prògramadh eile: cleachd ceanglaichean iomallach ris an àrainneachd deasg no runtime. Chuir mi crìoch air grunn ghnìomhan a’ cleachdadh frithealaiche lìn tèarainte a’ ruith Django air a’ choimpiutair dachaigh agam. Bha mi ag obair bhon trèana, a’ cleachdadh am bathar-bog PyDroid, DroidEdit, Maxima.

Carson Python?

Cha b' fhada gus an do dh'fheuch mi ri PHP a chleachdadh mar chànan sgrìobhaidh siostam. An toiseach rinn mi sgrùdadh air Python leam fhìn agus beag air bheag “dhomh fhìn.” Cho-dhùin mi sgrùdadh mòr a dhèanamh às deidh dhomh ionnsachadh mu dheidhinn ceangal èifeachdach a bhith ann eadar Python agus C ++ aig ìre modal - bha e coltach gu robh e inntinneach a bhith a’ roinn algorithms làn-leasaichte agus modhan ullachaidh dàta taobh a-staigh an aon chànan.

An eisimpleir as sìmplidh: tha siostam smachd ann airson draibhear cumhachdach neo-àbhaisteach, air a chuir an gnìomh air inneal freumhaichte le pròiseasar RISC, ann an C ++. Bidh riaghladh a’ tachairt tro API taobh a-muigh an urra ri inneal, a bheir taic, mar eisimpleir, conaltradh eadar fo-shiostaman thairis air lìonra. Aig ìre àrd, chan eil an algairim gnìomhachd dràibhidh air a dhì-mhilleadh no chan eil e seasmhach (feumar a bhith a 'luchdachadh diofar algorithms a rèir a' phròiseas obrach).

Is e aon de na dòighean as fheàrr air leithid de shiostam a choileanadh a bhith a’ cleachdadh an API fo-shiostam C ++ a tha sònraichte don inneal mar bhunait airson seata de chlasaichean Python a bhios a’ ruith air eadar-theangair tar-àrd-ùrlar. Mar sin, cha bhith aig an leasaiche àrd-ìre ri aire a thoirt do fheartan an inneil freumhaichte agus an OS aige; obraichidh e gu sìmplidh le clasaichean Python a bhios nan “luchd-gleidhidh” den API aig ìre ìosal.

Bha agam ri C ++ ionnsachadh agus ceangal Python cha mhòr bhon fhìor thoiseach. Dh’fhàs e soilleir gu luath gun robh comasan a bha ag amas air nithean aig ìre àrd mòran na bu chudromaiche na aig ìre ìosal. Air sgàth seo, bha againn ri atharrachadh gu tur a dhèanamh air an dòigh-obrach airson an API a dhealbhadh agus a bhuileachadh, a’ roghnachadh clasaichean aig ìre Python agus dàta cruinne co-roinnte ann an C/C ++. Faigh cleachdte ri gineadh còd: mar eisimpleir, bidh frèam ROS fhèin a’ gineadh ainmean agus nithean ann am Python, mar sin feumaidh tu aire a thoirt do eadar-dhealachaidhean cànain, gu sònraichte ann a bhith a’ taipeadh, nuair a bhios tu a’ dealbhadh an eadar-aghaidh agad.

Ag obair san latha an-diugh: Python agus Logic Smachd Robot

A-nis tha mi ag obair mar phrògramadair Python agus C ++ aig an Ionad Rannsachaidh agus Foghlaim Robotics aig Oilthigh Teicnigeach Stàite Moscow. Bidh sinn a’ cur an gnìomh pròiseactan rannsachaidh agus innealan bathar-bog air an coimiseanadh le roinnean riaghaltais: bidh sinn a’ leasachadh luchd-làimhseachaidh le siostaman sealladh teignigeach togte agus algorithms smachd fèin-ghluasadach àrd-ìre a tha neo-eisimeileach bho shiostaman.

An-dràsta, bidh mi a’ prògramadh loidsig àrd-ìre airson siostaman smachd robot ann am Python; bidh an cànan seo a’ ceangal ri chèile modalan làn-leasaichte sgrìobhte ann an C ++, assembler, agus Go.

Ann am prògramadh algorithms smachd robot, thathas a’ cleachdadh dà bhuidheann mòr de algorithms. Tha a 'chiad dhiubh air a chur an gnìomh gu dìreach air an uidheamachd, aig ìre ìosal - is e seo am bathar-bog a tha air a thogail a-steach de luchd-riaghlaidh dràibhidh, luchd-cruinneachaidh loidhne conaltraidh, agus fo-shiostaman eadar-obrachaidh gnìomhaiche.

Tha na h-algorithms an seo air an dealbhadh airson astar cur an gnìomh fo smachd agus earbsachd a tha nas àirde na coileanadh an inneal-fuadain gu h-iomlan. Tha an tè mu dheireadh èigneachail, leis gu bheil tèarainteachd an t-siostam gu lèir an urra ri bathar-bog smachd ìre ìosal.

Bidh an dàrna buidheann de algorithms a 'dearbhadh obrachadh an inneal-fuadain gu h-iomlan. Is e prògraman àrd-ìre a tha seo, agus tha an cuideam ann an leasachadh air soilleireachd agus astar buileachadh an algairim, gu tric gu math toinnte. A bharrachd air an sin, gu tric bidh bathar-bog àrd-ìre air an inneal-fuadain ag atharrachadh tron ​​​​phròiseas rèiteachaidh agus deuchainn. Airson a leithid de leasachadh, tha cànanan eadar-mhìneachaidh coitcheann riatanach.

Dè an t-eòlas a tha a dhìth airson obair mar sin?

Bidh e riatanach sgrùdadh a dhèanamh air cànan teamplaid C ++ agus comasan Python a tha ag amas air nithean. Is e sgil nach gabh atharrachadh a th’ ann an comas APIan a dhealbhadh agus a chlàradh. Bhiodh e na dheagh bheachd sgrùdadh a dhèanamh air comasan leabharlannan sònraichte leithid Boost ::Python. Feumaidh an fheadhainn a tha ag obair le bathar-bog aig ìre ìosal gu cinnteach dèiligeadh ri multithreading (aig ìre kernel) agus fiosan siostam Linux/UNIX/QNX. Gus do thuigse mu phrionnsapalan robotics a leasachadh, tha e glè fheumail eòlas fhaighinn air frèam an t-Siostam Obrachaidh Robotic.

Bidh mi a’ feuchainn ri co-dhiù aon chànan prògramaidh a chur ri chèile agus aon eadar-mhìneachaidh a tha a’ leasachadh agus air a bheil iarrtas. Is e ro-innleachd soirbheachail a tha seo airson a bhith ag obair ann an innleadaireachd, far a bheil feum cunbhalach air algoirmean fìor speisealaichte (leugh: neo-àbhaisteach) a leasachadh agus an cur an gnìomh ann an cànanan a chur ri chèile. Tha an obair a bhith ag ullachadh dàta airson a leithid de bhathar-bog tòrr nas tlachdmhoire a bhith a’ cleachdadh chànanan eadar-mhìneachaidh. An toiseach, bha an seata agam a’ toirt a-steach C ++, Pascal agus BASIC, nas fhaide air adhart chaidh PHP agus BASH a chur ris.

Mar a dh’fhaodas innealan leasachaidh a bhith feumail ann a bhith a’ teagasg oileanaich

Is e am prìomh phlana airson leasachadh proifeasanta a-nis feuchainn ri bunait saidheansail a thoirt seachad airson a bhith a’ cleachdadh innealan leasachadh bathar-bog proifeasanta ann an eòlas-eòlas, gus dòighean teagaisg a leasachadh agus fheuchainn.

Bho 2016, thòisich mi air deuchainn mhòr ann a bhith a’ toirt a-steach innealan leasachaidh - cànanan prògramaidh, IDEn, gineadairean sgrìobhainnean, siostaman smachd dreach - gu cleachdadh teagaisg ann am foghlam àrd-ìre. Tha sinn a-nis air a bhith soirbheachail ann a bhith a’ faighinn thoraidhean a dh’fhaodar a choitcheannachadh gu càileachdail.

Mar eisimpleir, tha toirt a-steach dreachdadh stuthan a-steach don phròiseas foghlaim gu mòr a’ leasachadh càileachd obair oileanach, ge-tà, dìreach fo chumhachan èigneachail: oileanaich ag obair còmhla air pròiseactan co-roinnte. Tha a’ bhuidheann rannsachaidh agam a-nis gu gnìomhach a’ leasachadh dhòighean airson cuspairean teignigeach a theagasg a’ cleachdadh innealan leasachaidh bathar-bog proifeasanta, anns a bheil oileanaich, tagraichean agus oileanaich air prògraman foghlaim a bharrachd aig MSTU.

Co-dhiù, cha do dh’ fhàg mi mo chleachdadh teagaisg - leasaich mi mo chùrsa làn-ùine dhomh fhìn air dealbhadh is rianachd Linux airson Institiud nan Sgrùdaidhean Adhartach aig MSTU, agus bidh mi ga theagasg fhìn.

Obair saidheansail

Obraichean tràth
Cùisean a thaobh planadh slighe nuair a thathar a' dealbhadh shiostaman coiseachd ceithir-chasach a' cleachdadh eisimpleir de chur an sàs each (2010 g.)

A thaobh cùis cinematics agus luchdachadh an eileamaid taiceil de chas aghaidh an eich aig an ìre de bhith a’ tighinn faisg air an taic mar phàirtean de chearcall obrach an neach-gluasad ceithir-chasach (2012 g.)

Bhon fhear mu dheireadh
Iarrtas atharrais saothrachadh gèar 3D airson uidheamachd teagaisg agus teòiridh inneal (2019 g.)

Dòigh airson cnapan-starra structarail aithneachadh agus an cleachdadh ann a bhith a’ lorg nithean faochaidh (2018 g.)

Chithear obraichean eile air an clàradh le stòran-dàta luaidh saidheansail nam phròifil agam air Rannsachadh. Tha a’ mhòr-chuid de na h-artaigilean gu sònraichte airson gluasad innealan, tha obraichean ann air dòighean-teagaisg innleadaireachd agus bathar-bog foghlaim.

Source: www.habr.com

Cuir beachd ann