Ti rokét ka robot sareng naon hubunganana Python sareng éta. Carita Alumni GeekBrains

Ti rokét ka robot sareng naon hubunganana Python sareng éta. Carita Alumni GeekBrains
Dinten ieu kami nyebarkeun carita transisi Andrey Vukolov kana IT. Gairah budak leutikna pikeun ruang angkasa sakali nyababkeun anjeunna diajar élmu rokét di MSTU. Kanyataan anu parah ngajantenkeun kuring hilap kana impian, tapi sadayana janten langkung narik. Diajar C ++ sareng Python ngamungkinkeun kuring pikeun ngalakukeun padamelan anu sami: program logika sistem kontrol robot.

ngamimitian

Kuring éta untung bisa raving ngeunaan spasi sadayana budak leutik kuring. Ku alatan éta, sanggeus sakola, abdi teu ragu pikeun menit dimana kuring kudu indit ka diajar, sarta kuring diasupkeun MSTU. Bauman, ka Departemen Téknik Propulsion Rokét. Sanajan kitu, cabang tina kursus sorangan - bubuk atawa mesin cair rokét spasi - teu kudu dipilih pisan: dina 2001, hiji komisi fakultas husus masih disebarkeun grup targét tina Ngalamar. Kuring katéwak dina tong bubuk mesiu.

Dina waktos éta, "booming rokét" ngan ukur aya dina rencana; insinyur nampi gaji anu sakedik sareng damel di biro desain katutup khusus sareng lembaga riset anu ampir henteu aya prospek pikeun karir sareng kamekaran profésional. Tapi, rokét bubuk di Rusia mangrupikeun produk militér murni.

Ayeuna wewengkon ieu di paménta, tapi geus salila studi kuring sadar yén dina elmu rokét sagala kagiatan dina inisiatif sorangan ampir teu mungkin. Kanyataanna, ieu layanan militér. Salaku conto, damel di industri rokét, kuring bakal dicabut kasempetan pikeun ngembangkeun software sacara mandiri, bahkan pikeun kuring sorangan, sabab kagiatan ieu diatur sacara ketat.

Sadaya produk parangkat lunak dikembangkeun sacara éksklusif dina tatanan khusus sareng kalayan persetujuan komisi rahasia (ayeuna divisi FSTEC). Pamekar di dinya diwajibkeun ngadaptar sareng lisénsi sacara harfiah unggal baris kode. Sadaya parangkat lunak mimitina rusiah dina tingkat tugas. Ieu sabagean ngécéskeun kunaon parangkat lunak anu ayeuna dianggo pikeun ngalatih murid élmu rokét dikembangkeun dina taun 90-an paling anyar.

Nalika kuring lulus ti institut, kuring tiasa damel di jurusan téori mékanisme sareng mimitian ngembangkeun simulator prosés pendidikan dina C ++, janten kuring ngagaduhan conto pikeun ngabandingkeun sareng tiasa beuratna pro sareng kontra. Pilihanna écés, sareng kuring laun-laun mimiti ngalayang ka IT sareng robotika. Mékanika terapan langkung pikaresepeun tibatan élmu rokét: seueur masalah anu teu kaungkab, lingkungan terbuka, kurangna industri pamekaran, kabutuhan urgent pikeun software simulasi. Dina robotika, aya hiji arsitéktur unsettled tina software umum jeung kudu sababaraha kali nerapkeun algoritma kompléks, kaasup logika Fuzzy jeung awal AI. Ku alatan éta, sanggeus program munggaran kuring pikeun ngolah data ékspérimén, kuring ampir pernah balik ka rokét (iwal proyék kalulusan kuring).

Hasilna, kuring ngagaduhan kasempetan pikeun damel di spesialisasi kuring ngan ukur opat bulan sateuacan lulus di pabrik caket Moscow pikeun struktur komposit pikeun industri aerospace. Sanggeus réngsé diajar, kuring malah teu kudu néangan pakasaban-Kuring langsung datang pikeun ngajarkeun mékanika terapan di jurusan robotics.

Ti ngajar nepi ka programming

Ti rokét ka robot sareng naon hubunganana Python sareng éta. Carita Alumni GeekBrains
Dina Kongrés Dunya IFTOMM sareng anggota mahasiswa tina grup panalungtikan (kuring di katuhu)

Kuring digawé di MSTU di departemén sampling pikeun 10 taun, ngajarkeun tangtu dina téori mékanisme. Anjeunna diterbitkeun karya ilmiah (tingali tungtung artikel), laun dipindahkeun ti mékanika ka CAD na robotics. Sarta dina tungtungna anjeunna mutuskeun ninggalkeun pangajaran. Pikeun paling jelas ngagambarkeun alesan pikeun kaputusan ieu, kuring bakal nyebutkeun yén dina sapuluh taun kursus ulikan kuring ngajar teu robah hiji tempat decimal. Sanaos mékanika terapan, ditilik ku publikasi, maju pisan, suksés pisan.

Sajaba ti éta, karya beuki resembled birokrasi - laporan, program, standar jeung ton kertas. Dina kaayaan kitu, pelesir ngajar diganti ku ngalaporkeun on resi pelesir ieu, sarta ieu leuwih ti pikaresepeun pikeun spesialis practicing.

Sarta pamustunganana kuring datang ka robotics kawas kieu: dina 2007-2009, babarengan jeung profesor A. Golovin jeung N. Umnov, urang mimitian Nyiapkeun karya ilmiah munggaran. Aya kuring kedah nganggo algoritma pikeun nangtukeun jalur objék tina fotografi strobe. Tina topik ieu mangrupikeun léngkah pikeun visi mesin, OpenCV sareng Sistem Operasi Robotic (sanaos waktos éta kuring henteu mikir ngeunaan skala sapertos kitu). Sanggeus éta, ahirna kuring museurkeun kana mékanika terapan sareng robotika dina panalungtikan, sareng pamekaran janten kagiatan pangrojong.

Nanging, pikeun milarian padamelan énggal dina robotika, peryogi pikeun ningkatkeun sareng nambihan pangaweruh program kuring. Barina ogé, kuring pernah diajar IT husus, iwal kursus universitas sataun-lila (ObjectPascal na Borland VCL dina C ++), sarta relied on matematik pikeun aspék téoritis ngembangkeun.

Mimitina kuring mertimbangkeun pilihan pikeun kursus full-time di institut asli kuring. Leres, gancang janten écés yén ampir teu mungkin pikeun ngagabungkeun studi sapertos sareng padamelan di jurusan kusabab jadwal anu henteu teratur sareng sering damel di luar jadwal sorangan (substitusi, jsb.). Janten kuring laun-laun dugi ka ideu pikeun ngarengsekeun kursus anu dibayar jarak jauh. Kuring datang ka GeekBrains dina rekomendasi profesor ti puseur latihan Mail.ru Technopark, lokasina di Baumanka, sarta enrolled dina kursus Python Programmer.

Kursus-kursus henteu nyababkeun kasusah, hiji-hijina masalah nyaéta kuring terus-terusan ngahijikeunana sareng padamelan di jurusan, karya ilmiah sareng acara. Waktosna ketat pisan sahingga seueur hubungan sosial di luar bumi kedah dikorbankeun (untungna, samentawis).

Ieu kumaha kuring nungkulan beban kerja: Kuring ngarengsekeun masalah di jalan. Kaahlian ieu, dikembangkeun ku seueur perjalanan bisnis, tétéla mangpaat pisan, sabab tanpa éta kuring malah moal tiasa ngabéréskeun sadaya padamelan abdi (sareng éta ogé ngagentos meditasi ...). Kuring diajar kode dina lebet nganggo laptop, smartphone, sareng keyboard smartphone nirkabel.

laptop abdi Dell Lintang 3470, sarta sagala smartphone kalawan diagonal 5.5 inci atawa leuwih dipasangkeun sareng Logitech K 810 keyboard BT bakal ngalakukeun. Sacara umum, kuring nyarankeun produk Logitech ka sadayana; aranjeunna dipercaya pisan sareng tiasa tahan kaayaan pamakean anu parah (sareng ieu sanés iklan).

Ti rokét ka robot sareng naon hubunganana Python sareng éta. Carita Alumni GeekBrains
Kibor Logitech K810

Python pisan kondusif pikeun karya sapertos - lamun boga redaktur alus. Hack programming sejen: make sambungan jauh ka desktop atawa lingkungan runtime. Kuring réngsé sababaraha pancén maké web server aman ngajalankeun Django dina komputer imah kuring. Kuring digawé ti karéta nu, ngagunakeun software PyDroid, DroidEdit, Maxima.

Naha Python?

Teu kungsi lila kuring nyobaan ngagunakeun PHP salaku basa skrip sistem. Mimitina kuring diajar Python nyalira sareng sakedik-sakedik "kanggo kuring sorangan." Kuring mutuskeun pikeun diajar sacara serius saatos diajar ngeunaan ayana sambungan anu efektif antara Python sareng C ++ dina tingkat modul - sigana pikaresepeun pikeun ngabagi algoritma anu dioptimalkeun sareng prosedur persiapan data dina basa anu sami.

Conto pangbasajanna: aya sistem kontrol pikeun drive kuat non-standar, dilaksanakeun dina mesin embedded kalawan processor RISC, dina C ++. Manajemén lumangsung ngaliwatan hiji API gumantung mesin éksternal, nu ngarojong, contona, komunikasi antara subsistem ngaliwatan jaringan. Dina tingkat anu luhur, algoritma operasi drive henteu debugged atanapi henteu konstan (perlu ngamuat algoritma anu béda-béda gumantung kana prosés kerja).

Salah sahiji cara anu pangsaéna pikeun ngahontal sistem sapertos kitu nyaéta ngagunakeun subsistem API C ++ khusus mesin salaku dasar pikeun sakumpulan kelas Python anu dijalankeun dina juru cross-platform. Ku kituna, pangembang tingkat luhur moal kudu tumut kana akun fitur tina mesin embedded jeung OS na; anjeunna ngan bakal bisa dipaké jeung kelas Python nu meta salaku "wrappers" tina API-tingkat low.

Kuring kungsi diajar C ++ jeung Python mengikat ampir ti scratch. Ieu gancang janten jelas yén kamampuhan obyék-berorientasi dina tingkat luhur éta leuwih penting batan di tingkat low. Kusabab ieu, urang kudu sagemblengna ngarobah pendekatan kana ngarancang jeung nerapkeun API, opting pikeun kelas di tingkat Python jeung dibagikeun data global dina C / C ++. Biasakeun kana kode generasi: contona, kerangka ROS sorangan ngahasilkeun nami sareng objék dina Python, janten anjeun kedah tumut kana bédana basa, khususna dina ngetik, nalika ngarancang antarmuka anjeun.

Gawe di Ayeuna: Python jeung Robot Control Logika

Ayeuna kuring damel salaku programer Python sareng C ++ di Robotics Research and Education Center di Moscow State Technical University. Urang ngalaksanakeun proyék panalungtikan sarta parabot software commissioned ku departemén pamaréntah: urang ngamekarkeun manipulator kalawan diwangun-di sistem visi teknis na-tingkat tinggi algoritma kontrol otomatis anu bebas tina sistem.

Ayeuna, kuring program logika tingkat luhur pikeun sistem kontrol robot di Python; basa ieu numbu babarengan modul kacida dioptimalkeun ditulis dina C ++, assembler, sarta Go.

Dina programming algoritma kontrol robot, dua grup badag tina algoritma dipaké. Kahiji di antarana dilaksanakeun langsung dina alat, dina tingkat low - ieu diwangun-di software controller drive, concentrators garis komunikasi, sarta subsistem interaksi operator.

Algoritma di dieu dirancang pikeun speed palaksanaan dikawasa jeung reliabilitas nu ngaleuwihan kinerja robot sakabéhna. Anu terakhir nyaéta wajib, sabab kaamanan sadaya sistem gumantung kana parangkat lunak kontrol tingkat rendah.

Grup kadua algoritma nangtukeun operasi robot sakabéhna. Ieu mangrupikeun program tingkat luhur, tekenan dina pamekaran anu aya dina kajelasan sareng laju palaksanaan algoritma, sering rada rumit. Salaku tambahan, parangkat lunak tingkat luhur dina robot sering pisan tiasa robih salami prosés pangaturan sareng uji. Pikeun pangwangunan sapertos kitu, basa-basa anu diinterpretasi sacara umum penting pisan.

Pangaweruh naon anu diperyogikeun pikeun padamelan sapertos kitu?

Éta wajib diajar basa citakan C ++ sareng kamampuan berorientasi obyék tina Python. Kaahlian anu ampir teu tiasa diganti nyaéta kamampuan mendesain sareng ngadokumentasikeun API. Éta hadé pikeun ngajalajah kamampuan perpustakaan khusus sapertos Boost :: Python. Jalma anu damel sareng parangkat lunak tingkat rendah pasti kedah ngurus multithreading (dina tingkat kernel) sareng telepon sistem Linux / UNIX / QNX. Pikeun ningkatkeun pamahaman anjeun kana prinsip robotika, mangpaat pisan pikeun ngabiasakeun diri sareng kerangka Sistem Operasi Robotik.

Kuring nyoba boga sahanteuna hiji disusun tur hiji diinterpretasi basa programming anu ngembang sarta di paménta. Ieu mangrupikeun strategi unggul pikeun damel di rékayasa, dimana aya kabutuhan konstan pikeun ngembangkeun algoritma khusus (baca: teu biasa) sareng nerapkeunana dina kompilasi basa. Tugas nyiapkeun data pikeun parangkat lunak sapertos kitu langkung pikaresepeun pikeun direngsekeun nganggo basa anu diinterpretasi. Mimitina, set abdi kalebet C ++, Pascal sareng BASIC, teras PHP sareng BASH parantos nambihan.

Kumaha parabot ngembangkeun bisa mangpaat dina pangajaran siswa

Rencana utama pikeun pamekaran profésional ayeuna nyaéta nyobian nyayogikeun dasar ilmiah pikeun ngagunakeun alat pangembangan parangkat lunak profésional dina pedagogi, pikeun ngembangkeun sareng nguji metode pangajaran.

Kusabab 2016, kuring ngamimitian ékspérimén ageung dina ngenalkeun alat pangembangan - basa pamrograman, IDE, generator dokuméntasi, sistem kontrol versi - kana prakték ngajar di paguron luhur. Urang ayeuna geus hasil meunangkeun hasil nu bisa kualitatif digeneralisasi.

Contona, bubuka versioning bahan kana prosés atikan nyata ngaronjatkeun kualitas karya murid, kumaha oge, ngan dina kaayaan wajib: siswa gawé bareng dina proyék dibagikeun. Ngembangkeun metode pikeun ngajarkeun disiplin téknis nganggo alat pamekaran parangkat lunak profésional ayeuna aktip dilaksanakeun ku kelompok riset kuring, anu diwangun ku mahasiswa, pelamar sareng mahasiswa program pendidikan tambahan di MSTU.

Ku jalan kitu, kuring henteu ngantunkeun prakték ngajar kuring - kuring ngembangkeun kursus full-time kuring sorangan dina desain sareng administrasi Linux pikeun Institut Studi Lanjutan di MSTU, sareng kuring ngajar sorangan.

Karya ilmiah

Karya mimiti
Isu tata gait nalika ngarancang sistem leumpang opat suku ngagunakeun conto palaksanaan gait kuda urang (2010)

Dina masalah kinematika sareng ngamuat unsur pendukung suku hareup kuda dina tahap ngadeukeutan dukungan salaku komponén siklus kerja tina mover opat suku. (2012)

Ti tukang
Aplikasi simulasi manufaktur gear 3D pikeun mékanisme pangajaran sareng téori mesin (2019)

Métode pikeun mikawanoh halangan struktural sareng aplikasina dina milarian objék relief (2018)

Karya-karya sanés anu diindeks ku pangkalan data kutipan ilmiah tiasa ditingali dina profil kuring dina ResearchGate. Kalolobaan artikel devoted kana gerak mesin, aya karya dina pedagogy rékayasa jeung software atikan.

sumber: www.habr.com

Tambahkeun komentar