Kubva pamarobhoti kusvika kumarobhoti uye Python ine chekuita nei nazvo. GeekBrains Alumni Nyaya

Kubva pamarobhoti kusvika kumarobhoti uye Python ine chekuita nei nazvo. GeekBrains Alumni Nyaya
Nhasi tiri kubudisa nyaya yekuchinja kwaAndrey Vukolov kuIT. Kuda kwake kwehudiki kwenzvimbo kwakamboita kuti adzidze rocket science paMSTU. Chokwadi chakakasharara chakaita kuti ndikanganwe nezvechiroto, asi zvese zvakazonyanya kunakidza. Kudzidza C ++ nePython zvakandibvumira kuita basa rinonakidza zvakaenzana: kuronga pfungwa yemarobhoti ekudzora masisitimu.

Musha

Ndakaita rombo rakanaka kuve ndichitamba nezve space hudiki hwangu hwese. Naizvozvo, ndapedza chikoro, handina kukahadzika kweminiti kwandaifanira kuenda kunodzidza, uye ndakapinda MSTU. Bauman, kuDhipatimendi reRocket Propulsion Engineering. Nekudaro, bazi rekosi yacho pachayo - hupfu kana mainjini emvura emaroketi emuchadenga - aisafanira kusarudzwa zvachose: muna 2001, komisheni yakakosha yekosisheni ichiri kugovera mapoka evakanyorera. Ndakabatwa mubhegi repfuti.

Panguva iyoyo, "rocket boom" yaivapo muzvirongwa chete; mainjiniya akatambira mihoro mishoma uye akashanda munzvimbo dzakavharwa dzakavharwa dhizaini uye masangano ekutsvagisa asina tarisiro yebasa uye kukura kwehunyanzvi. Zvakadaro, maroketi eupfu muRussia anongova zvigadzirwa zvemauto.

Iye zvino nzvimbo iyi iri kudiwa, asi kare panguva yezvidzidzo zvangu ndakaona kuti mune rocket sainzi chero chiitiko chemunhu wega hachigoneke. Kutaura zvazviri, iri ibasa rechiuto. Semuenzaniso, kushanda muindasitiri yeroketi, ndingatorerwa zvachose mukana wekuzvimiririra kugadzira software, kunyangwe ini, sezvo chiitiko ichi chakanyatso kudzorwa.

Zvese zvigadzirwa zvesoftware zvinogadzirwa chete pane yakakosha kurongeka uye nemvumo yekomisheni yekuvanzika (ikozvino kupatsanurwa kweFSTEC). Mugadziri aripo anodiwa kunyoresa uye rezinesi chairo mutsara wega wega wekodhi. Yese software inotanga yakavanzika padanho rebasa. Izvi zvinotsanangura chikonzero nei software ikozvino yaishandiswa kudzidzisa rocket sainzi vadzidzi yakagadziriswa muma90s pakutanga.

Pandakazopedza chikoro, ndakakwanisa kushanda kudhipatimendi remechanical theory ndokutanga kugadzira simulator yedzidzo muC ++, saka ndaiva nemuenzaniso wekuenzanisa uye ndaigona kuyera zvakanakira nezvayakaipira. Sarudzo yacho yaive pachena, uye zvishoma nezvishoma ndakatanga kukukurwa ndakananga kuIT uye marobhoti. Mechanics akashandiswa ainakidza kupfuura sainzi yeroketi: matambudziko mazhinji asina kugadziriswa, nharaunda yakavhurika, kushomeka kweindasitiri yekusimudzira, kudiwa kwekukurumidzira kwesoftware yekunyepedzera. Mune marobhoti, kune isina kugadzikana dhizaini yeakajairika software uye kudiwa kwekudzokorora kuita ma algorithms akaomarara, anosanganisira fuzzy logic uye kutanga kweAI. Naizvozvo, mushure mezvirongwa zvangu zvekutanga zvekugadzirisa data rekuyedza, ini handina kuzombodzokera kumaroketi (kunze kwepurojekiti yangu yekupedza kudzidza).

Nekuda kweizvozvo, ndakava nemukana wekushanda muhunyanzvi hwangu kwemwedzi mina chete ndisati ndapedza kudzidza pachirimwa chiri pedyo neMoscow chezvivakwa zvakaumbwa zveindasitiri yezvemuchadenga. Ndapedza zvidzidzo zvangu, handina kutombotsvaga basaβ€”ndakabva ndangouya kuzodzidzisa maapplication mechanics padhipatimendi remarobhoti.

Kubva pakudzidzisa kusvika pakuronga

Kubva pamarobhoti kusvika kumarobhoti uye Python ine chekuita nei nazvo. GeekBrains Alumni Nyaya
PaIFTOMM World Congress nenhengo dzevadzidzi veboka rekutsvagisa (ini kurudyi)

Ndakashanda paMSTU mudhipatimendi resampling kwemakore gumi, ndichidzidzisa kosi yedzidziso yemaitiro. Akaburitsa mabasa esainzi (ona kumagumo kwechinyorwa), zvishoma nezvishoma akatama kubva kumakanika akananga kuCAD uye marobhoti. Uye pakupedzisira akasarudza kusiya kudzidzisa. Kunyatso kuratidza zvikonzero zvechisarudzo ichi, ndichataura kuti mumakore gumi kosi yekudzidza yandakadzidzisa haina kushandura nzvimbo imwe chete. Kunyange zvazvo vakashandisa makanika, tichitarisa nezvinyorwa, vakafambira mberi zvikuru, zvinobudirira zvikuru.

Mukuwedzera, basa racho rakawedzera kufanana nebasa rehurumende - mishumo, mapurogiramu, zviyero uye matani emapepa. Mumamiriro ezvinhu akadaro, kunakidzwa kwekudzidzisa kwakatsiviwa nekutaura pakugamuchira iyi mafaro, uye izvi zvinopfuura zvisingafadzi kune nyanzvi inodzidzira.

Uye pakupedzisira ndakasvika kune robotics seizvi: muna 2007-2009, pamwe chete nemapurofesa A. Golovin naN. Umnov, takatanga kugadzirira mabasa ekutanga esayenzi. Ikoko ndaifanira kushandisa algorithms kuona nzira dzezvinhu kubva kustrobe kutora mafoto. Kubva pachinyorwa ichi inhanho imwe kuenda kumuchina kuona, OpenCV uye Robotic Operating System (kunyangwe panguva iyoyo ini handina kana kumbofunga nezve chiyero chakadaro). Mushure meizvozvo, ini pakupedzisira ndakatarisa pakushandisa mechanics nemarobhoti mukutsvagisa, uye kusimukira kwakava basa rinotsigira.

Nekudaro, kuti ndiwane basa idzva mumarobhoti, zvaive zvakafanira kuvandudza nekuwedzera ruzivo rwangu rwehurongwa. Mushure mezvose, handina kumbobvira ndadzidza IT zvakananga, kunze kwekosi yeyunivhesiti yegore rose (ObjectPascal neBorland VCL muC ++), uye ndakavimba nemasvomhu nokuda kwezvinyorwa zvekusimudzira.

Pakutanga ndakafunga sarudzo dzenguva yakazara makosi pachikoro changu chekuzvarwa. Ichokwadi, zvakakurumidza kuva pachena kuti zvingave zvisingagoneki kubatanidza zvidzidzo zvakadaro nebasa padhipatimendi nekuda kwehurongwa husina kunaka uye kushanda nguva dzose kunze kwepurogiramu yako (kutsiva, nezvimwewo). Saka zvishoma nezvishoma ndakasvika papfungwa yekupedza makosi anobhadharwa ndiri kure. Ndakauya kuGeekBrains pamusoro pekurudziro yevaporofesa kubva kuMail.ru Technopark kudzidzisa nzvimbo, iri muBaumanka, uye ndakanyoresa muPython Programmer kosi.

Iwo makosi haana kukonzera chero matambudziko, dambudziko chete nderekuti ndaigara ndichifanira kuvasanganisa nebasa kudhipatimendi, mabasa esainzi uye zviitiko. Nguva yaive yakasimba zvekuti kushamwaridzana kwakawanda kunze kwemba kwaifanira kubayirwa (nerombo rakanaka, kwenguva pfupi).

Aya ndiwo maitiro andakaita nemutoro webasa: Ndakagadzirisa matambudziko mumugwagwa. Unyanzvi uhwu, hwakagadziridzwa kuburikidza nenzendo dzakawanda dzebhizinesi, hwakazove hunobatsira, sezvo pasina iyo ini ndingadai ndisingakwanisi kupedza basa rangu rose rechikoro (uye zvakare rinotsiva kufungisisa ...). Ndakadzidza kukodha ndiri kuenda ndichishandisa laptop yangu, smartphone, uye wireless smartphone keyboards.

Laptop yangu iDell Latitude 3470, uye chero smartphone ine diagonal ye5.5 inches kana kupfuura yakapetwa neLogitech K 810 BT keyboard ichaita. Kazhinji, ini ndinokurudzira Logitech zvigadzirwa kumunhu wese; ivo vanovimbika zvakanyanya uye vanogona kumira zvakanyanya mamiriro ekushandiswa (uye ichi hachisi kushambadzira).

Kubva pamarobhoti kusvika kumarobhoti uye Python ine chekuita nei nazvo. GeekBrains Alumni Nyaya
Kiyibhodhi Logitech K810

Python inobatsira zvikuru kubasa rakadaro - kana uine mupepeti akanaka. Imwe programming hack: shandisa kure kubatana kune desktop kana yekumhanyisa nharaunda. Ndakapedza mabasa akati wandei ndichishandisa yakachengeteka webhu server inoshandisa Django pakombuta yangu yekumba. Ndakashanda kubva muchitima, ndichishandisa software yePyDroid, DroidEdit, Maxima.

Nei Python?

Hazvina kutora nguva refu ndisati ndaedza kushandisa PHP semutauro wekunyora. Pakutanga ndakadzidza Python ndiri ndega uye zvishoma nezvishoma "ini pachangu." Ndakafunga kudzidza zvakakomba mushure mekunge ndadzidza nezve kuvepo kwekubatana kunoshanda pakati pePython neC ++ padanho remodule - zvaiita sekunakidza kugovera akakwenenzverwa algorithms uye maitiro ekugadzirisa data mukati memutauro mumwe chete.

Muenzaniso wakapfava: kune yekudzora sisitimu yeasina-standard ane simba dhiraivha, akaiswa pamushini wakamisikidzwa une RISC processor, muC ++. Kutungamira kunoitika kuburikidza neyekunze-inotsamira muchina API, iyo inotsigira, semuenzaniso, kutaurirana pakati pe subsystems pamusoro petiweki. Padanho repamusoro, iyo drive operation algorithm haina debugged kana haisi nguva dzose (inodiwa kurodha akasiyana algorithms zvichienderana nebasa rekuita).

Imwe yedzakanakisa nzira dzekuzadzisa sisitimu yakadai ndeye kushandisa muchina-chaiwo C++ subsystem API sehwaro hweseti yemakirasi ePython anomhanya pamuchinjiko-chikuva muturikiri. Nekudaro, mugadziri wepamusoro-yepamusoro haafanire kufunga nezve maficha akaiswa muchina uye OS yayo; anongoshanda nemakirasi ePython anoita se "wrappers" yepi yakaderera-level API.

Ini ndaifanira kudzidza C ++ uye Python inosunga kubva pakutanga. Zvakakurumidza kuve pachena kuti kugona-kunakirwa nechinhu padanho repamusoro kwaive kwakakosha zvakanyanya pane yakaderera. Nekuda kweizvi, taifanira kushandura zvachose nzira yekugadzira nekushandisa iyo API, kusarudza makirasi padanho rePython uye kugovana data repasi rose muC / C ++. Jairira kugadzira kodhi: semuenzaniso, iyo ROS dhizaini pachayo inoburitsa mazita uye zvinhu muPython, saka iwe unofanirwa kufunga nezve misiyano yemitauro, kunyanya pakunyora, paunenge uchigadzira nzvimbo dzako.

Kushanda muIzvino: Python uye Robot Kudzora Logic

Iye zvino ndiri kushanda sePython uye C ++ programmer paRobotics Research and Education Center paMoscow State Technical University. Isu tinoshandisa mapurojekiti ekutsvagisa uye zvishandiso zvesoftware zvakatumwa nemadhipatimendi ehurumende: isu tinogadzira manipulator ane akavakirwa-mukati ehunyanzvi ekuona masisitimu uye yakakwirira-level otomatiki yekudzora algorithms ayo akazvimirira kubva kune masisitimu.

Parizvino, ini ndinoronga yepamusoro-level logic yemarobhoti ekudzora masisitimu muPython; uyu mutauro unobatanidza pamwe akakwenenzverwa mamodule akanyorwa muC ++, assembler, uye Go.

Mukugadzirisa marobhoti kudzora algorithms, mapoka maviri makuru ealgorithms anoshandiswa. Yekutanga yadzo inoshandiswa zvakananga pamidziyo, padanho rakaderera - iyi ndiyo yakavakirwa-mukati software yevanodzora dhiraivha, kutaurirana mutsara concentrators, uye opareta yekudyidzana subsystems.

Iwo algorithms pano akagadzirirwa kudzorwa kuuraya kumhanya uye kuvimbika kunodarika kuita kwerobhoti rose. Iyo yekupedzisira inosungirwa, sezvo kuchengetedzwa kwehurongwa hwese kunoenderana ne-low-level control software.

Boka rechipiri realgorithms rinosarudza kushanda kwerobhoti sese. Aya ndiwo mapurogiramu epamusoro-soro, kusimbiswa mukugadzirwa kwayo kuri pakujeka uye kukurumidza kwekuita kwegorgorithm, kazhinji yakaoma. Uye zvakare, yepamusoro-mwero software parobhoti inowanzo chinja panguva yekuseta uye yekuyedza maitiro. Nekusimudzira kwakadaro, mitauro yakadudzirwa-yechinangwa yakakosha.

Zivoi inodikanwa nokuda kwebasa rakadaro?

Zvichave zvinosungirwa kudzidza iyo C ++ template mutauro uye inotungamirwa nechinhu-yakatarisana nePython. Hunyanzvi hunenge husingadzokerike kugona kugadzira uye kunyora maAPI. Ringave zano rakanaka kuongorora kugona kwemaraibhurari ehunyanzvi seBoost::Python. Avo vanoshanda neakaderera-level software vanozonyatso kubata nemultithreading (paiyo kernel level) uye Linux/UNIX/QNX system mafoni. Kuti uvandudze manzwisisiro ako emisimboti yemarobhoti, zvinobatsira kwazvo kuti uzvizive iwe neRobotic Operating System framework.

Ini ndinoedza kuve neine imwechete yakanyorwa uye imwe yakadudzirwa programming mutauro uri kusimukira uye uri kudiwa. Iri izano rekukunda rekushanda muinjiniya, uko kune kudikanwa kwekugara kwehunyanzvi (verenga: zvisingawanzo) maalgorithms uye kuashandisa mukunyora mitauro. Basa rekugadzirira data yesoftware yakadaro rinonyanya kunakidza kugadzirisa uchishandisa mitauro yakadudzirwa. Pakutanga, seti yangu yaisanganisira C ++, Pascal uye BASIC, gare gare PHP neBASH yakawedzerwa.

Maturusi ekusimudzira anogona kubatsira sei pakudzidzisa vadzidzi

Chirongwa chikuru chebudiriro yehunyanzvi ikozvino kuyedza kupa hwaro hwesainzi hwekushandiswa kwehunyanzvi hwekuvandudza maturusi esoftware mukudzidzisa, kugadzira uye kuyedza nzira dzekudzidzisa.

Kubva 2016, ndakatanga kuyedza kwakakura mukuunza maturusi ebudiriro - mitauro yekuronga, maIDE, majenareta ezvinyorwa, masisitimu ekudzora shanduro - mukudzidzira mudzidzo yepamusoro. Ikozvino takabudirira kuwana mhedzisiro inogona kuve yemhando yepamusoro.

Semuenzaniso, kuiswa kweshanduro yezvinyorwa muchirongwa chedzidzo kunovandudza zvakanyanya kunaka kwebasa remudzidzi, zvisinei, pasi pemamiriro ekusungirwa: vadzidzi vanoshanda pamwechete pamapurojekiti akagovaniswa. Kuvandudzwa kwenzira dzekudzidzisa hunyanzvi hwekuita nehunyanzvi maturusi ekuvandudza maturusi iko zvino kuri kuitwa nesimba neboka rangu rekutsvagisa, rine vadzidzi, vanyoreri uye vadzidzi vemamwe mapurogiramu edzidzo paMSTU.

Nenzira, handina kusiya maitiro angu ekudzidzisa - ndakagadzira yangu yakadzama-yakazara kosi padhizaini nekutonga kweLinux yeInstitute of Advanced Studies paMSTU, uye ndinoidzidzisa pachangu.

Basa resainzi

Mabasa ekutanga
Nyaya dzekuronga mafambiro pakugadzira masisitimu ekufamba ane makumbo mana uchishandisa muenzaniso webhiza rekufamba (2010 g.)

Panyaya ye kinematics uye kurodha kwechinhu chinotsigira chegumbo remberi rebhiza padanho rekusvika kune tsigiro sezvikamu zvekushanda kwemufambisi wemakumbo mana. (2012 g.)

Kubva kwekupedzisira
3D giya rekugadzira simulation application yekudzidzisa michina uye muchina dzidziso (2019 g.)

Nzira yekuziva zvipingamupinyi zvezvimiro uye kushandiswa kwayo mukutsvaga zvinhu zvekuyamura (2018 g.)

Mamwe mabasa akarongedzerwa nesainzi citation dhatabhesi anogona kuonekwa mune yangu mbiri pa ResearchGate. Zvizhinji zvezvinyorwa zvakatsaurirwa kufamba kwemichina, kune mabasa einjiniya pedagogy uye software yekudzidzisa.

Source: www.habr.com

Voeg