Lati awọn apata si awọn roboti ati kini Python ni lati ṣe pẹlu rẹ. Itan Alumni GeekBrains

Lati awọn apata si awọn roboti ati kini Python ni lati ṣe pẹlu rẹ. Itan Alumni GeekBrains
Loni a n ṣe atẹjade itan ti iyipada Andrey Vukolov si IT. Ifẹ igba ewe rẹ fun aaye ni ẹẹkan mu u lati kawe imọ-jinlẹ rocket ni MSTU. Otitọ lile jẹ ki n gbagbe nipa ala naa, ṣugbọn ohun gbogbo yipada paapaa ti o nifẹ si. Ikẹkọ C ++ ati Python gba mi laaye lati ṣe iṣẹ ti o nifẹ si dọgbadọgba: siseto ọgbọn ti awọn eto iṣakoso roboti.

Начало

Mo ni orire lati wa ni raving nipa aaye ni gbogbo igba ewe mi. Nitorinaa, lẹhin ile-iwe, Emi ko ṣiyemeji fun iṣẹju kan nibiti MO yẹ ki n lọ si ikẹkọ, ati pe Mo wọ MSTU. Bauman, si Ẹka ti Rocket Propulsion Engineering. Bibẹẹkọ, ẹka ti ẹkọ funrararẹ - lulú tabi awọn ẹrọ olomi ti awọn rockets aaye - ko ni lati yan rara: ni ọdun 2001, Igbimọ Oluko pataki kan tun pin awọn ẹgbẹ ibi-afẹde ti awọn olubẹwẹ. Wọ́n mú mi nínú ìgò ìbọn.

Ni akoko yẹn, “ariwo rocket” wa ninu awọn ero nikan; awọn onimọ-ẹrọ gba awọn owo osu diẹ ati ṣiṣẹ ni awọn ọfiisi apẹrẹ pipade pataki ati awọn ile-iṣẹ iwadii pẹlu fere ko si awọn ireti fun iṣẹ ati idagbasoke ọjọgbọn. Sibẹsibẹ, awọn apata lulú ni Russia jẹ awọn ọja ologun nikan.

Bayi agbegbe yii wa ni ibeere, ṣugbọn tẹlẹ lakoko awọn ẹkọ mi Mo rii pe ni imọ-jinlẹ rocket eyikeyi iṣẹ ṣiṣe lori ipilẹṣẹ ti ara ẹni jẹ eyiti ko ṣee ṣe. Ni otitọ, iṣẹ ologun ni eyi. Fun apẹẹrẹ, ṣiṣẹ ni ile-iṣẹ rọkẹti, Emi yoo ni anfani patapata lati ṣe agbekalẹ sọfitiwia ominira, paapaa fun ara mi, nitori iṣẹ ṣiṣe yii jẹ ilana ti o muna.

Gbogbo awọn ọja sọfitiwia ni idagbasoke ni iyasọtọ lori aṣẹ pataki ati pẹlu ifọwọsi ti Igbimọ aṣiri (bayi pipin ti FSTEC). Olùgbéejáde ti o wa nibẹ ni a nilo lati forukọsilẹ ati iwe-aṣẹ gangan gbogbo laini koodu. Gbogbo sọfitiwia jẹ ikọkọ ni ibẹrẹ ni ipele iṣẹ-ṣiṣe. Eyi ni apakan ṣalaye idi ti sọfitiwia ti a lo ni bayi lati kọ awọn ọmọ ile-iwe imọ-jinlẹ rocket ni idagbasoke ni awọn ọdun 90 ni tuntun.

Ni akoko ti Mo pari ile-ẹkọ giga, Mo ṣakoso lati ṣiṣẹ ni ẹka ti imọ-ẹrọ ẹrọ ati bẹrẹ simulator ilana eto-ẹkọ ni C ++, nitorinaa Mo ni apẹẹrẹ fun lafiwe ati pe o le ṣe iwọn awọn anfani ati awọn konsi. Yiyan naa han gbangba, ati pe Mo bẹrẹ sii maa lọ si ọna IT ati awọn roboti. Awọn ẹrọ ẹrọ ti a lo jẹ igbadun pupọ diẹ sii ju imọ-jinlẹ Rocket lọ: ọpọlọpọ awọn iṣoro ti ko yanju, agbegbe ṣiṣi, aini ile-iṣẹ idagbasoke, iwulo iyara fun sọfitiwia kikopa. Ninu awọn ẹrọ roboti, faaji ti ko yanju ti sọfitiwia ti o wọpọ ati iwulo lati ṣe imuse leralera awọn algoridimu eka, pẹlu ọgbọn iruju ati awọn ibẹrẹ ti AI. Nitorinaa, lẹhin awọn eto akọkọ mi fun sisẹ data esiperimenta, Emi fẹrẹ ko pada si awọn rọkẹti (ayafi ti iṣẹ akanṣe ayẹyẹ ipari ẹkọ mi).

Bi abajade, Mo ni aye lati ṣiṣẹ ni pataki mi fun oṣu mẹrin nikan ṣaaju ṣiṣe ayẹyẹ ipari ẹkọ ni ile-iṣẹ ọgbin kan nitosi Moscow fun awọn ẹya akojọpọ fun ile-iṣẹ afẹfẹ. Lẹ́yìn tí mo parí ìkẹ́kọ̀ọ́ mi, mi ò tilẹ̀ ní láti wá iṣẹ́—kíá ni mo wá kọ́ àwọn ẹ̀rọ afọwọ́ṣe ní ẹ̀ka ọ́fíìsì ẹ̀rọ roboti.

Lati ẹkọ si siseto

Lati awọn apata si awọn roboti ati kini Python ni lati ṣe pẹlu rẹ. Itan Alumni GeekBrains
Ni Ile-igbimọ Agbaye ti IFTOMM pẹlu awọn ọmọ ẹgbẹ ọmọ ile-iwe ti ẹgbẹ iwadii (mi ni apa ọtun)

Mo ṣiṣẹ ni MSTU ni ẹka iṣapẹẹrẹ fun ọdun 10, nkọ ẹkọ kan lori imọ-ẹrọ ti awọn ilana. O ṣe atẹjade awọn iṣẹ imọ-jinlẹ (wo opin nkan naa), laiyara gbe lati awọn ẹrọ ẹrọ si ọna CAD ati awọn roboti. Ati ni ipari o pinnu lati lọ kuro ni ẹkọ. Lati ṣe apejuwe awọn idi fun ipinnu yii ni kedere, Emi yoo sọ pe ni ọdun mẹwa iṣẹ ikẹkọ ti mo kọ ko ti yipada aaye eleemewa kan. Botilẹjẹpe awọn ẹrọ ẹrọ ti a lo, ṣiṣe idajọ nipasẹ awọn atẹjade, lọ siwaju pupọ, ni aṣeyọri pupọ.

Ni afikun, awọn iṣẹ siwaju ati siwaju sii jọ iṣẹ bureaucratic - iroyin, eto, awọn ajohunše ati awọn toonu ti iwe. Ni iru awọn ipo bẹẹ, idunnu ti ikọni ni a rọpo nipasẹ ijabọ lori gbigba igbadun yii, ati pe eyi jẹ diẹ sii ju aibanujẹ fun alamọja adaṣe.

Ati nikẹhin Mo wa si awọn roboti bii eyi: ni 2007-2009, pẹlu awọn ọjọgbọn A. Golovin ati N. Umnov, a bẹrẹ ngbaradi awọn iṣẹ ijinle sayensi akọkọ. Nibẹ ni mo ni lati lo awọn algoridimu lati pinnu awọn ipa-ọna ti awọn nkan lati fọtoyiya strobe. Lati koko yii o jẹ igbesẹ kan si iran ẹrọ, OpenCV ati Robotic Operating System (botilẹjẹpe ni akoko yẹn Emi ko paapaa ronu nipa iru iwọn yii). Lẹhin iyẹn, Mo dojukọ nipari lori awọn ẹrọ afọwọṣe ati awọn ẹrọ roboti ninu iwadii, ati idagbasoke di iṣẹ ṣiṣe atilẹyin.

Bibẹẹkọ, lati wa iṣẹ tuntun ni awọn roboti, o jẹ dandan lati ni ilọsiwaju ati ṣafikun imọ siseto mi. Lẹhinna, Emi ko kọ ẹkọ IT ni pato, ayafi fun ẹkọ ile-ẹkọ giga ti ọdun kan (ObjectPascal ati Borland VCL ni C ++), ati gbarale mathimatiki fun awọn abala imọ-jinlẹ ti idagbasoke.

Ni akọkọ Mo gbero awọn aṣayan fun awọn iṣẹ akoko kikun ni ile-ẹkọ abinibi mi. Otitọ, o yarayara di mimọ pe yoo jẹ eyiti ko ṣeeṣe lati darapo iru awọn ẹkọ bẹ pẹlu iṣẹ ni ẹka nitori iṣeto aiṣedeede ati iṣẹ loorekoore ni ita ti iṣeto ti ara ẹni (fidipo, bbl). Nitorinaa Mo wa diẹdiẹ si imọran ti ipari awọn iṣẹ isanwo latọna jijin. Mo wa si GeekBrains lori iṣeduro ti awọn ọjọgbọn lati ile-iṣẹ ikẹkọ Mail.ru Technopark, ti ​​o wa ni Baumanka, ati forukọsilẹ ni eto Python Programmer.

Awọn iṣẹ ikẹkọ ko fa awọn iṣoro eyikeyi, iṣoro nikan ni pe Mo ni nigbagbogbo lati darapọ wọn pẹlu iṣẹ ni ẹka, awọn iṣẹ onimọ-jinlẹ ati awọn iṣẹlẹ. Akoko ti ṣoro tobẹẹ pe ọpọlọpọ awọn isopọ awujọ ni ita ile ni lati rubọ (dare, fun igba diẹ).

Báyìí ni mo ṣe fara da ẹrù iṣẹ́ náà: Mo yanjú àwọn ìṣòro lójú ọ̀nà. Imọ-iṣe yii, ti o dagbasoke nipasẹ awọn irin-ajo iṣowo lọpọlọpọ, yipada lati wulo pupọ, nitori laisi rẹ Emi kii yoo paapaa ni anfani lati pari gbogbo iṣẹ amurele mi (ati pe o tun rọpo iṣaro…). Mo kọ lati koodu lori lilọ ni lilo kọǹpútà alágbèéká mi, foonuiyara, ati awọn bọtini itẹwe alailowaya alailowaya.

Kọǹpútà alágbèéká mi jẹ Dell Latitude 3470, ati eyikeyi foonuiyara pẹlu akọ-rọsẹ ti 5.5 inches tabi diẹ ẹ sii ti a so pọ pẹlu bọtini itẹwe Logitech K 810 BT yoo ṣe. Ni gbogbogbo, Mo ṣeduro awọn ọja Logitech si gbogbo eniyan; wọn jẹ igbẹkẹle pupọ ati pe o le koju awọn ipo lile pupọ ti lilo (ati pe eyi kii ṣe ipolowo rara).

Lati awọn apata si awọn roboti ati kini Python ni lati ṣe pẹlu rẹ. Itan Alumni GeekBrains
Keyboard Logitech K810

Python jẹ itara pupọ si iru iṣẹ bẹẹ - ti o ba ni olootu to dara. Gige siseto miiran: lo awọn asopọ latọna jijin si tabili tabili tabi agbegbe asiko asiko. Mo pari awọn iṣẹ-ṣiṣe pupọ nipa lilo olupin wẹẹbu to ni aabo ti nṣiṣẹ Django lori kọnputa ile mi. Mo ṣiṣẹ lati inu ọkọ oju irin, ni lilo sọfitiwia PyDroid, DroidEdit, Maxima.

Kí nìdí Python?

Ko pẹ diẹ ṣaaju ki Mo gbiyanju lati lo PHP gẹgẹbi ede kikọ eto. Mo kọkọ kọ Python funrararẹ ati diẹ diẹ “fun ara mi.” Mo pinnu lati ṣe iwadi ni pataki lẹhin ti Mo kọ ẹkọ nipa wiwa asopọ ti o munadoko laarin Python ati C ++ ni ipele module - o dabi ẹni pe o nifẹ lati pin awọn algoridimu iṣapeye ati awọn ilana igbaradi data laarin ede kanna.

Apeere ti o rọrun julọ: eto iṣakoso wa fun awakọ ti kii ṣe boṣewa, ti a ṣe lori ẹrọ ti a fi sii pẹlu ero isise RISC, ni C ++. Isakoso waye nipasẹ API ti o gbẹkẹle ẹrọ ita, eyiti o ṣe atilẹyin, fun apẹẹrẹ, ibaraẹnisọrọ laarin awọn ọna ṣiṣe lori nẹtiwọki kan. Ni ipele ti o ga, algorithm iṣiṣẹ awakọ ko ni yokokoro tabi kii ṣe igbagbogbo (o jẹ dandan lati fifuye awọn algorithm oriṣiriṣi ti o da lori ilana iṣẹ).

Ọkan ninu awọn ọna ti o dara julọ lati ṣaṣeyọri iru eto yii ni lati lo ẹrọ-pato C ++ subsystem API gẹgẹbi ipilẹ fun eto ti awọn kilasi Python ti o nṣiṣẹ lori onitumọ agbelebu. Nitorinaa, olupilẹṣẹ ipele oke kii yoo ni lati ṣe akiyesi awọn ẹya ti ẹrọ ti a fi sii ati OS rẹ; yoo rọrun ṣiṣẹ pẹlu awọn kilasi Python ti o ṣiṣẹ bi “awọn apilẹṣẹ” ti API ipele-kekere.

Mo ni lati ko eko C ++ ati Python abuda fere lati ibere. O yarayara di mimọ pe awọn agbara-iṣalaye ohun ni ipele giga jẹ pataki pupọ ju ni ipele kekere. Nitori eyi, a ni lati yi iyipada patapata si apẹrẹ ati imuse API, jijade fun awọn kilasi ni ipele Python ati pinpin data agbaye ni C / C ++. Lo lati ṣe koodu iran: fun apẹẹrẹ, ilana ROS funrararẹ n ṣe awọn orukọ ati awọn nkan ni Python, nitorinaa o ni lati ṣe akiyesi awọn iyatọ ede, paapaa ni titẹ, nigbati o n ṣe apẹrẹ awọn atọkun rẹ.

Ṣiṣẹ ni Lọwọlọwọ: Python ati Robot Iṣakoso Logic

Bayi mo ṣiṣẹ bi Python ati C++ pirogirama ni Robotics Research and Education Centre ni Moscow State Technical University. A ṣe awọn iṣẹ akanṣe iwadi ati awọn irinṣẹ sọfitiwia ti a fun ni aṣẹ nipasẹ awọn apa ijọba: a ṣe agbekalẹ awọn ifọwọyi pẹlu awọn eto iran imọ-ẹrọ ti a ṣe sinu ati awọn algoridimu iṣakoso laifọwọyi ti ipele giga ti o jẹ ominira ti awọn eto.

Lọwọlọwọ, Mo ṣe eto ọgbọn ipele giga fun awọn eto iṣakoso roboti ni Python; ede yii ṣopọ papọ awọn modulu iṣapeye giga ti a kọ sinu C ++, apejọ, ati Go.

Ni siseto awọn algorithm iṣakoso robot, awọn ẹgbẹ nla meji ti awọn algoridimu lo. Ni igba akọkọ ti wọn ni imuse taara lori ohun elo, ni ipele kekere - eyi ni sọfitiwia ti a ṣe sinu ti awọn olutona awakọ, awọn ifọkansi laini ibaraẹnisọrọ, ati awọn ọna ṣiṣe ibaraenisepo oniṣẹ.

Awọn algoridimu nibi jẹ apẹrẹ fun iyara ipaniyan iṣakoso ati igbẹkẹle ti o kọja iṣẹ ṣiṣe ti robot lapapọ. Igbẹhin jẹ dandan, nitori aabo ti gbogbo eto da lori sọfitiwia iṣakoso ipele kekere.

Ẹgbẹ keji ti awọn algoridimu pinnu iṣẹ ti robot lapapọ. Iwọnyi jẹ awọn eto ipele-giga, tcnu ninu idagbasoke eyiti o wa lori mimọ ati iyara imuse ti algorithm, nigbagbogbo eka pupọ. Ni afikun, sọfitiwia ipele-giga lori roboti nigbagbogbo koko ọrọ si iyipada lakoko iṣeto ati ilana idanwo. Fun iru idagbasoke bẹẹ, awọn ede itumọ gbogbogbo jẹ pataki.

Imọye wo ni a nilo fun iru iṣẹ bẹẹ?

Yoo jẹ dandan lati ṣe iwadi ede awoṣe C ++ ati awọn agbara ti o da lori ohun ti Python. Ogbon ti ko ni rọpo ni agbara lati ṣe apẹrẹ ati ṣe iwe awọn API. Yoo jẹ imọran ti o dara lati ṣawari awọn agbara ti awọn ile-ikawe amọja bii Boost :: Python. Awọn ti n ṣiṣẹ pẹlu sọfitiwia ipele-kekere yoo dajudaju ni lati koju pẹlu multithreading (ni ipele ekuro) ati awọn ipe eto Linux/UNIX/QNX. Lati mu oye rẹ pọ si ti awọn ipilẹ ti awọn ẹrọ Robotik, o wulo pupọ lati mọ ararẹ pẹlu ilana Eto Iṣiṣẹ Robotic.

Mo gbiyanju lati ni o kere ju akojọpọ kan ati ede siseto ti o tumọ ti o ndagba ati ni ibeere. Eyi jẹ ete imubori fun ṣiṣẹ ni imọ-ẹrọ, nibiti iwulo igbagbogbo wa lati ṣe agbekalẹ amọja ti o ga julọ (ka: dani) awọn algoridimu ati imuse wọn ni awọn ede ikojọpọ. Iṣẹ ṣiṣe ti ngbaradi data fun iru sọfitiwia jẹ igbadun pupọ diẹ sii lati yanju nipa lilo awọn ede itumọ. Ni ibẹrẹ, eto mi pẹlu C ++, Pascal ati BASIC, nigbamii PHP ati BASH ni a ṣafikun.

Bii awọn irinṣẹ idagbasoke ṣe le wulo ni kikọ awọn ọmọ ile-iwe

Eto akọkọ fun idagbasoke ọjọgbọn ni bayi ni lati gbiyanju lati pese ipilẹ imọ-jinlẹ fun lilo awọn irinṣẹ idagbasoke sọfitiwia alamọja ni ẹkọ ẹkọ, lati dagbasoke ati idanwo awọn ọna ikọni.

Lati ọdun 2016, Mo bẹrẹ idanwo nla ni iṣafihan awọn irinṣẹ idagbasoke - awọn ede siseto, IDE, awọn olupilẹṣẹ iwe, awọn eto iṣakoso ẹya - sinu adaṣe ikọni ni eto-ẹkọ giga. A ti ṣaṣeyọri ni bayi ni gbigba awọn abajade ti o le ṣe akopọ ni agbara.

Fun apẹẹrẹ, ifihan ti ikede ti awọn ohun elo sinu ilana ẹkọ ṣe ilọsiwaju didara iṣẹ ọmọ ile-iwe, sibẹsibẹ, nikan labẹ ipo dandan: awọn ọmọ ile-iwe ṣiṣẹ papọ lori awọn iṣẹ akanṣe. Idagbasoke awọn ọna fun ikọni awọn ilana imọ-ẹrọ nipa lilo awọn irinṣẹ idagbasoke sọfitiwia alamọdaju ti wa ni bayi ni ti nṣiṣe lọwọ nipasẹ ẹgbẹ iwadii mi, ti o ni awọn ọmọ ile-iwe, awọn olubẹwẹ ati awọn ọmọ ile-iwe ti awọn eto eto-ẹkọ afikun ni MSTU.

Nipa ọna, Emi ko lọ kuro ni adaṣe ikọni mi - Mo ṣe agbekalẹ ikẹkọ akoko-kikun ti ara mi lori apẹrẹ ati iṣakoso Linux fun Institute of Advanced Studies ni MSTU, ati pe Mo kọni funrararẹ.

Iṣẹ ijinle sayensi

Awọn iṣẹ ibẹrẹ
Awọn ọran ti igbero mọnran nigba ti n ṣe apẹrẹ awọn ọna ṣiṣe ẹsẹ mẹrin ni lilo apẹẹrẹ imuse gait ẹṣin (2010)

Lori ọrọ ti kinematics ati ikojọpọ ti ẹya atilẹyin ti ẹsẹ iwaju ẹṣin ni ipele ti isunmọ atilẹyin bi awọn paati ti iṣẹ ṣiṣe ti ẹlẹsẹ mẹrin-ẹsẹ. (2012)

Lati kẹhin
Ohun elo kikopa iṣelọpọ jia 3D fun ẹrọ ikọni ati ero ẹrọ (2019)

Ọna fun idanimọ awọn idiwọ igbekalẹ ati ohun elo rẹ ni wiwa awọn nkan iderun (2018)

Awọn iṣẹ miiran ti a ṣe atọka nipasẹ awọn apoti isura data itọka imọ-jinlẹ ni a le rii ninu profaili mi lori Iwadi iwadi. Pupọ julọ awọn nkan jẹ iyasọtọ si gbigbe ti awọn ẹrọ, awọn iṣẹ wa lori ẹkọ imọ-ẹrọ ati sọfitiwia eto-ẹkọ.

orisun: www.habr.com

Fi ọrọìwòye kun