Los ntawm foob pob hluav taws mus rau neeg hlau thiab Python ua li cas rau nws. GeekBrains Alumni Dab Neeg

Los ntawm foob pob hluav taws mus rau neeg hlau thiab Python ua li cas rau nws. GeekBrains Alumni Dab Neeg
Niaj hnub no peb tab tom tshaj tawm zaj dab neeg ntawm Andrey Vukolov txoj kev hloov mus rau IT. Nws txoj kev mob siab rau qhov chaw thaum yau tau coj nws mus kawm rocket science ntawm MSTU. Qhov kev muaj tiag hnyav ua rau kuv tsis nco qab txog kev npau suav, tab sis txhua yam tau nthuav tawm ntau dua. Kawm C ++ thiab Python tau tso cai rau kuv ua haujlwm zoo sib xws: programming logic ntawm cov tshuab tswj neeg hlau.

Начало

Kuv muaj hmoo tau raving txog qhov chaw tag nrho kuv thaum yau. Yog li ntawd, tom qab tsev kawm ntawv, kuv tsis ua xyem xyav rau ib feeb uas kuv yuav tsum mus kawm, thiab kuv nkag mus rau MSTU. Bauman, mus rau Department of Rocket Propulsion Engineering. Txawm li cas los xij, cov ceg ntawm cov chav kawm nws tus kheej - hmoov lossis kua xyaw ntawm qhov chaw foob pob hluav taws - tsis tas yuav tsum tau xaiv txhua qhov: hauv xyoo 2001, cov kws qhia ntawv tshwj xeeb tseem tau faib cov hom phiaj ntawm cov neeg thov. Kuv raug ntes nyob rau hauv ib keg ntawm rab phom.

Lub sijhawm ntawd, " foob pob hluav taws boom" tsuas yog muaj nyob hauv cov phiaj xwm xwb; cov kws ua haujlwm tau txais cov nyiaj hli meager thiab ua haujlwm hauv cov chaw tsim khoom tshwj xeeb kaw thiab cov koom haum tshawb fawb uas tsis muaj kev cia siab rau kev ua haujlwm thiab kev loj hlob. Tseem, hmoov foob pob hluav taws hauv Russia yog cov khoom siv tub rog nkaus xwb.

Tam sim no thaj chaw no yog qhov xav tau, tab sis twb dhau los ntawm kuv cov kev tshawb fawb kuv pom tau tias hauv kev tshawb fawb foob pob hluav taws txhua yam haujlwm ntawm tus kheej txoj haujlwm yuav luag tsis tuaj yeem. Qhov tseeb, qhov no yog kev ua tub rog. Piv txwv li, ua haujlwm hauv kev lag luam foob pob hluav taws, kuv yuav tsis muaj lub sijhawm los tsim software ntawm nws tus kheej, txawm tias kuv tus kheej, vim tias qhov haujlwm no tau tswj hwm nruj.

Tag nrho cov khoom lag luam software tau tsim tshwj xeeb rau kev txiav txim tshwj xeeb thiab nrog kev pom zoo los ntawm kev tso cai zais cia (tam sim no ib qho kev faib ntawm FSTEC). Tus tsim tawm muaj yuav tsum tau sau npe thiab tso cai rau txhua kab ntawm cov cai. Tag nrho cov software yog pib zais cia ntawm qib ua haujlwm. Qhov no yog ib feem piav qhia vim li cas cov software tam sim no siv los cob qhia cov tub ntxhais kawm foob pob hluav taws tau tsim nyob rau xyoo 90 thaum kawg.

Thaum lub sij hawm kuv kawm tiav los ntawm lub koom haum, kuv tau ua hauj lwm nyob rau hauv lub department ntawm mechanism ntawm kev tshawb xav thiab pib tsim ib tug txheej txheem kev kawm simulator nyob rau hauv C ++, yog li ntawd kuv muaj ib tug piv txwv rau kev sib piv thiab yuav luj qhov zoo thiab cons. Qhov kev xaiv tau pom tseeb, thiab kuv maj mam pib txav mus rau IT thiab robotics. Applied mechanics muaj kev lom zem ntau dua li kev tshawb fawb foob pob hluav taws: ntau yam teeb meem tsis daws teeb meem, ib puag ncig qhib, tsis muaj kev txhim kho kev lag luam, kev xav tau ceev rau simulation software. Nyob rau hauv robotics, muaj ib tug unsettlement architecture ntawm ib yam software thiab qhov yuav tsum tau rov qab siv complex algorithms, nrog rau fuzzy logic thiab pib ntawm AI. Yog li ntawd, tom qab kuv thawj cov kev pabcuam rau kev ua cov ntaub ntawv sim, kuv yuav luag tsis rov qab mus rau foob pob hluav taws (nrog rau qhov tshwj tsis yog kuv qhov kev kawm tiav).

Raws li qhov tshwm sim, kuv muaj sijhawm los ua haujlwm hauv kuv qhov tshwj xeeb tsuas yog plaub lub hlis ua ntej kawm tiav ntawm cov nroj tsuag ze Moscow rau cov qauv sib xyaw rau kev lag luam aerospace. Tom qab kawm tiav kuv txoj kev kawm, kuv tsis tas yuav mus nrhiav haujlwm - tam sim ntawd kuv tuaj qhia cov kws kho tsheb hauv chav haujlwm robotics.

Los ntawm kev qhia mus rau programming

Los ntawm foob pob hluav taws mus rau neeg hlau thiab Python ua li cas rau nws. GeekBrains Alumni Dab Neeg
Ntawm IFTOMM World Congress nrog cov tub ntxhais kawm ntawm pawg tshawb fawb (kuv ntawm sab xis)

Kuv tau ua haujlwm ntawm MSTU hauv chav ua haujlwm sampling rau 10 xyoo, qhia ib chav kawm ntawm txoj kev xav ntawm cov txheej txheem. Nws tau luam tawm cov haujlwm tshawb fawb (saib qhov kawg ntawm tsab xov xwm), maj mam txav los ntawm kev siv tshuab mus rau CAD thiab robotics. Thiab thaum kawg nws txiav txim siab tawm mus qhia. Yuav kom qhia meej meej txog qhov laj thawj ntawm qhov kev txiav txim siab no, kuv yuav hais tias nyob rau hauv kaum xyoo txoj kev kawm kuv tau qhia tsis tau hloov ib qho lej lej. Txawm hais tias siv mechanics, txiav txim siab los ntawm cov ntawv tshaj tawm, tau txav mus tom ntej heev, ua tiav zoo.

Tsis tas li ntawd, kev ua hauj lwm ntau thiab ntau zoo li bureaucratic ua hauj lwm - cov lus ceeb toom, cov kev pab cuam, cov qauv thiab tons ntawm ntawv. Nyob rau hauv cov xwm txheej zoo li no, kev txaus siab ntawm kev qhia tau hloov los ntawm kev tshaj tawm ntawm qhov tau txais kev txaus siab, thiab qhov no yog qhov tsis txaus siab rau tus kws tshaj lij.

Thiab thaum kawg kuv tuaj rau robotics li no: nyob rau hauv 2007-2009, ua ke nrog professors A. Golovin thiab N. Umnov, peb pib npaj thawj scientific tej hauj lwm. Nyob ntawd kuv yuav tsum tau siv algorithms los txiav txim txoj hauv kev ntawm cov khoom los ntawm kev yees duab strobe. Los ntawm cov ncauj lus no nws yog ib kauj ruam mus rau lub zeem muag tshuab, OpenCV thiab Robotic Operating System (txawm hais tias lub sijhawm ntawd kuv tsis tau xav txog qhov ntsuas li ntawd). Tom qab ntawd, thaum kawg kuv tau tsom mus rau kev siv tshuab thiab cov neeg hlau hauv kev tshawb fawb, thiab kev loj hlob los ua ib qho kev txhawb nqa.

Txawm li cas los xij, txhawm rau nrhiav txoj haujlwm tshiab hauv robotics, nws yog qhov tsim nyog los txhim kho thiab ntxiv kuv qhov kev paub txog kev ua haujlwm. Tom qab tag nrho, kuv yeej tsis tau kawm IT tshwj xeeb, tshwj tsis yog rau ib lub xyoo kawm ntawv qib siab (ObjectPascal thiab Borland VCL hauv C ++), thiab tso siab rau kev ua lej rau qhov kev xav ntawm kev loj hlob.

Thaum xub thawj kuv txiav txim siab xaiv cov chav kawm puv sij hawm ntawm kuv lub koom haum ib txwm muaj. Muaj tseeb tiag, nws tau pom meej sai sai tias nws yuav luag tsis tuaj yeem ua ke cov kev tshawb fawb no nrog kev ua haujlwm ntawm lub tuam tsev vim yog lub sijhawm tsis tu ncua thiab ua haujlwm tsis tu ncua ntawm tus kheej lub sijhawm (hloov, thiab lwm yam). Yog li kuv maj mam tuaj rau lub tswv yim ntawm kev ua tiav cov kev kawm them nyiaj nyob deb. Kuv tuaj rau GeekBrains raws li kev pom zoo ntawm cov xibfwb los ntawm Mail.ru Technopark chaw cob qhia, nyob hauv Baumanka, thiab tau kawm hauv Python Programmer chav kawm.

Cov chav kawm tsis ua rau muaj kev nyuaj, tsuas yog qhov teeb meem yog tias kuv tas li yuav tsum tau ua ke nrog kev ua haujlwm ntawm lub tuam tsev, kev tshawb fawb thiab cov xwm txheej. Lub sij hawm nruj heev uas feem ntau kev sib raug zoo sab nraum lub tsev yuav tsum tau txi (zoo hmoo, ib ntus).

Qhov no yog li cas kuv tiv nrog kev ua haujlwm: Kuv daws teeb meem ntawm txoj kev. Qhov kev txawj no, tsim los ntawm ntau yam kev mus ncig ua lag luam, tau dhau los ua qhov muaj txiaj ntsig zoo, vim tias tsis muaj nws kuv yuav tsis tuaj yeem ua tiav tag nrho kuv cov ntawv ua tom tsev (thiab nws kuj hloov kev xav ...). Kuv tau kawm kom code ntawm kev mus siv kuv lub laptop, smartphone, thiab wireless smartphone keyboards.

Kuv lub laptop yog Dell Latitude 3470, thiab txhua lub xov tooj smartphone uas muaj kab pheeb ces kaum ntawm 5.5 ntiv tes lossis ntau dua ua ke nrog Logitech K 810 BT keyboard yuav ua. Feem ntau, kuv pom zoo Logitech cov khoom rau txhua tus; lawv muaj kev ntseeg siab heev thiab tuaj yeem tiv taus kev siv hnyav heev (thiab qhov no tsis yog kev tshaj tawm).

Los ntawm foob pob hluav taws mus rau neeg hlau thiab Python ua li cas rau nws. GeekBrains Alumni Dab Neeg
Keyboard Logitech K810

Python yog qhov zoo rau kev ua haujlwm zoo li no - yog tias koj muaj tus kho kom zoo. Lwm qhov programming hack: siv cov chaw taws teeb sib txuas rau lub desktop lossis lub sijhawm ua haujlwm. Kuv ua tiav ntau txoj haujlwm siv lub vev xaib ruaj ntseg khiav Django ntawm kuv lub computer hauv tsev. Kuv tau ua haujlwm ntawm lub tsheb ciav hlau, siv software PyDroid, DroidEdit, Maxima.

Vim li cas Python?

Nws tsis ntev ua ntej kuv tau sim siv PHP ua ib hom lus sau ntawv. Kuv pib kawm Python ntawm kuv tus kheej thiab me ntsis "rau kuv tus kheej." Kuv tau txiav txim siab los kawm tiag tiag tom qab kuv kawm txog qhov muaj kev sib txuas zoo ntawm Python thiab C ++ ntawm qib module - nws zoo li nthuav qhia cov kev ua kom zoo tshaj plaws thiab cov txheej txheem npaj cov ntaub ntawv hauv tib hom lus.

Qhov piv txwv yooj yim tshaj plaws: muaj kev tswj hwm rau lub tsav tsis muaj zog, siv rau ntawm lub tshuab kos nrog RISC processor, hauv C ++. Kev tswj hwm tshwm sim los ntawm lub tshuab sab nraud-dependent API, uas txhawb nqa, piv txwv li, kev sib txuas lus ntawm subsystems hauv lub network. Nyob rau theem siab, kev tsav tsheb ua haujlwm algorithm tsis debugged lossis tsis tas li (nws yog qhov tsim nyog los thauj cov algorithms sib txawv nyob ntawm cov txheej txheem ua haujlwm).

Ib txoj hauv kev zoo tshaj plaws kom ua tiav cov kab ke no yog siv lub tshuab tshwj xeeb C ++ subsystem API ua lub hauv paus rau cov chav kawm Python uas khiav ntawm tus neeg txhais lus hla platform. Yog li, tus tsim tawm sab saum toj yuav tsis tau coj mus rau hauv tus account cov yam ntxwv ntawm lub tshuab kos thiab nws OS; nws tsuas yog ua haujlwm nrog Python cov chav kawm uas ua raws li "wrappers" ntawm API qib qis.

Kuv yuav tsum kawm C ++ thiab Python khi yuav luag ntawm kos. Nws tau pom meej sai sai tias cov peev txheej ntawm cov khoom lag luam nyob rau theem siab yog qhov tseem ceeb dua li ntawm qib qis. Vim li no, peb yuav tsum tau hloov pauv txoj hauv kev los tsim thiab siv API, xaiv rau cov chav kawm ntawm Python qib thiab sib koom cov ntaub ntawv thoob ntiaj teb hauv C / C ++. Tau siv los tsim cov cai: piv txwv li, ROS lub moj khaum nws tus kheej tsim cov npe thiab cov khoom hauv Python, yog li koj yuav tsum coj mus rau hauv tus account cov lus sib txawv, tshwj xeeb tshaj yog hauv kev ntaus ntawv, thaum tsim koj cov interfaces.

Ua haujlwm tam sim no: Python thiab Robot Control Logic

Tam sim no kuv ua haujlwm ua Python thiab C ++ programmer ntawm Robotics Research thiab Education Center ntawm Moscow State Technical University. Peb siv cov kev tshawb fawb txog kev tshawb fawb thiab cov cuab yeej software uas tau muab los ntawm tsoomfwv cov tuam tsev: peb tsim cov kev tswj xyuas nrog cov cuab yeej ua kom pom kev zoo thiab qib siab tsis siv neeg tswj algorithms uas tsis muaj kev ywj pheej ntawm cov tshuab.

Tam sim no, kuv qhov kev pab cuam theem siab rau cov neeg hlau tswj cov tshuab hauv Python; cov lus no txuas ua ke ua kom zoo tshaj plaws modules sau hauv C ++, assembler, thiab Go.

Hauv programming neeg hlau tswj algorithms, ob pawg loj ntawm algorithms yog siv. Thawj ntawm lawv yog siv ncaj qha rau ntawm cov khoom siv, nyob rau theem qis - qhov no yog cov software built-in ntawm cov tswj tsav, kev sib txuas lus kab concentrators, thiab cov neeg ua haujlwm sib cuam tshuam subsystems.

Cov algorithms ntawm no yog tsim los tswj kev ua tiav ceev thiab kev ntseeg siab uas tshaj qhov kev ua tau zoo ntawm cov neeg hlau tag nrho. Cov tom kawg yog qhov yuav tsum tau ua, txij li kev ruaj ntseg ntawm tag nrho cov system nyob ntawm qis-qib tswj software.

Pab pawg thib ob ntawm algorithms txiav txim siab ua haujlwm ntawm tus neeg hlau tag nrho. Cov no yog cov kev kawm qib siab, qhov tseem ceeb hauv kev txhim kho uas yog nyob rau ntawm qhov tseeb thiab ceev ntawm kev siv cov algorithm, feem ntau nyuaj heev. Tsis tas li ntawd, cov software qib siab ntawm cov neeg hlau feem ntau raug hloov pauv thaum lub sijhawm teeb tsa thiab kev sim. Rau txoj kev loj hlob zoo li no, cov ntsiab lus txhais lus dav dav yog qhov tseem ceeb.

Yuav tsum muaj kev paub dab tsi rau txoj haujlwm ntawd?

Nws yuav yog qhov yuav tsum tau kawm C ++ template hom lus thiab lub peev xwm ua haujlwm ntawm Python. Ib qho txuj ci yuav luag tsis tuaj yeem hloov pauv yog lub peev xwm los tsim thiab sau ntawv APIs. Nws yuav yog ib lub tswv yim zoo los tshawb txog lub peev xwm ntawm cov tsev qiv ntawv tshwj xeeb xws li Boost:: Python. Cov neeg ua haujlwm nrog cov software qib qis yuav tsum tau ua haujlwm nrog ntau txoj xov xwm (ntawm qib ntsiav) thiab Linux / UNIX / QNX system hu. Txhawm rau txhim kho koj txoj kev nkag siab ntawm cov hauv paus ntsiab lus ntawm cov neeg hlau, nws yog qhov tseem ceeb heev kom paub koj tus kheej nrog Robotic Operating System moj khaum.

Kuv sim kom muaj tsawg kawg yog ib qho muab tso ua ke thiab ib qho kev txhais lus programming uas tab tom tsim thiab xav tau. Qhov no yog ib lub tswv yim zoo rau kev ua haujlwm hauv engineering, qhov uas yuav tsum tau tsim kom muaj kev tshwj xeeb (nyeem: txawv txawv) algorithms thiab siv lawv ua cov lus sau. Lub luag haujlwm ntawm kev npaj cov ntaub ntawv rau cov software zoo li no yog qhov zoo dua los daws kev siv cov lus txhais. Thaum pib, kuv lub teeb suav nrog C ++, Pascal thiab BASIC, tom qab PHP thiab BASH tau ntxiv.

Cov cuab yeej txhim kho yuav pab tau li cas hauv kev qhia cov tub ntxhais kawm

Lub hom phiaj tseem ceeb rau kev txhim kho kev tshaj lij tam sim no yog sim muab lub hauv paus kev tshawb fawb rau kev siv cov cuab yeej tsim kho software hauv kev qhia, tsim thiab sim cov kev qhia.

Txij li xyoo 2016, kuv tau pib qhov kev sim loj hauv kev nthuav qhia cov cuab yeej tsim kho - cov lus programming, IDEs, cov ntaub ntawv tsim hluav taws xob, cov qauv tswj hwm - rau hauv kev qhia hauv kev kawm qib siab. Tam sim no peb tau ua tiav hauv kev tau txais cov txiaj ntsig uas tuaj yeem ua tau zoo.

Piv txwv li, kev qhia txog kev hloov pauv ntawm cov ntaub ntawv rau hauv cov txheej txheem kev kawm ua tau zoo txhim kho cov tub ntxhais kawm ua haujlwm zoo, txawm li cas los xij, tsuas yog nyob rau hauv qhov yuav tsum tau ua: cov tub ntxhais kawm ua haujlwm ua ke ntawm cov haujlwm sib koom. Kev txhim kho cov txheej txheem rau kev qhia kev qhuab qhia siv cov cuab yeej tsim kho software tshaj lij tam sim no tau ua los ntawm kuv pawg tshawb fawb, suav nrog cov tub ntxhais kawm, cov neeg thov thiab cov tub ntxhais kawm ntawm cov kev kawm ntxiv ntawm MSTU.

Los ntawm txoj kev, kuv tsis tau tso kuv txoj kev qhia - Kuv tau tsim kuv tus kheej qhov kev kawm puv sijhawm ntawm kev tsim thiab kev tswj hwm ntawm Linux rau Lub Tsev Kawm Ntawv Qib Siab ntawm MSTU, thiab kuv qhia nws tus kheej.

Kev tshawb fawb ua haujlwm

Thaum ntxov ua haujlwm
Teeb meem ntawm kev npaj gait thaum tsim plaub-legged taug kev tshuab siv tus piv txwv ntawm kev siv nees (2010 g.)

Ntawm qhov teeb meem ntawm kinematics thiab kev thauj khoom ntawm cov khoom txhawb nqa ntawm tus nees pem hauv ntej ceg nyob rau hauv theem ntawm kev mus txog qhov kev txhawb nqa raws li cov khoom ntawm kev ua haujlwm ntawm plaub-legged mover (2012 g.)

Los ntawm qhov kawg
3D iav tsim simulation daim ntawv thov rau kev qhia mechanism thiab tshuab kev xav (2019 g.)

Txoj kev paub txog cov teeb meem ntawm cov txheej txheem thiab nws daim ntawv thov hauv kev tshawb nrhiav cov khoom nyem (2018 g.)

Lwm cov hauj lwm indexed los ntawm scientific citation databases tuaj yeem pom hauv kuv qhov profile ntawm Tshawb nrhiav. Feem ntau ntawm cov khoom tau mob siab rau kev txav ntawm cov tshuab, muaj kev ua haujlwm ntawm engineering pedagogy thiab kev kawm software.

Tau qhov twg los: www.hab.com

Ntxiv ib saib