Paras vastaus
Yksinkertaisin vastaus olisi C ++ ja Python .
Kaikki robotiikkaprojektit, joiden kanssa olen työskennellyt, toimivat jommallakummalla näistä alustoista tavalla tai toisella. Tämä olisi kuitenkin epätäydellinen vastaus näyttämättä sinulle todellista kuvaa robotiikan tapahtumista.
Käyttöjärjestelmä:
- C ++ ja Python ovat ehdottomasti ohjelmointikieli, jota käytät lopussa. Useimpien robottien koodit elävät kuitenkin nykyään ROS-nimisessä käyttöjärjestelmässä (Robot Operating System). ROS tarjoaa tyylikkään ohjelmistoarkkitehtuurin robottien hallinnan ja suunnittelun helpottamiseksi. Kirjoitat erilaisia solmuohjelmia, jotka voivat julkaista tiettyjä tietoja, joita muut ROS -alueella asuvat solmut voivat käyttää. Esimerkiksi lokalisointisolmu, joka arvioi droneen sijainnin 3D-maailmassa, julkaisi tämän tiedon muille solmuille käytettäväksi. Reittisuunnittelusolmu voi sitten tilata nämä solmut saadakseen nämä tiedot droneen seuraavan polun arvioimiseksi. Jokainen näistä solmuista on yksinkertaisia C ++ – tai Python -koodeja.
Ohjelmointi robotiikan tutkimukseen:
- Simulaatio : Lähes kaikki tutkimusvaiheen tiukat simulaatiot ja testit tehdään ensin MATLAB -palvelussa ennen sen muuntamista C ++ – tai Python -koodiksi. Tämä johtuu alustan tarjoamista tyylikkäistä visualisointityökaluista ja kätevistä ennalta kirjoitetuista toiminnoista. MATLAB -koodit voidaan myös integroida ROS -palveluun.
Ohjelmointi visuaalista tunnetusta varten:
- koneoppimismallit : Jos robotti käyttää jonkinlaista koneoppimista tai syvällisiä oppimistekniikoita, heidät koulutetaan ensin alustoilla, kuten Tensorflow, Keras, PyTorch jne., ja sitten koulutetaan mallit siirretään soluun ROS . Esimerkiksi etsintä- ja pelastusrapu käyttäisi ihmisen havaitsemismallia ROS -solmuna, joka tilaa raakakamerakuvasolmun ja julkaisee kaiken ihmisen havaitsemisen.
- Kuvankäsittely : OpenCV on laajalti käytetty kuvankäsittelytyökalu, joka voi integroitu C ++ – tai Python -palveluun ROS -palvelussa. Esimerkiksi jalkapallorobotti tarvitsisi tämän moduulin tunnistamaan kaikki värilliset pallot kuvassa.
Robotiikkalaitteiden ohjelmointi:
- Laitteisto-ohjelmointi : Laitteistotasolle FPGA ohjelmointi, verilog tai VHDL käytetään.
- Laiteohjelmisto tai mikro-ohjaimet : AVR -ohjelmointi ohjelmalle ATMEGA -siruja käytetään laajalti, jos haluat hallita laitteistoa tehokkaammin ja hienostuneemmin. Helpompi vaihtoehto on käyttää Arduino mikro-ohjainta, joka käyttää kääriä C-kielen ympärillä. Arduinossa on melko yksinkertaista ohjelmoida servomoottoria tai ohjaamaan moottoriohjainta.
- Yksikorttitietokoneet : Jos tarvitset lisää muistia ja prosessointitehoa kuin mitä Arduino tai Atmega tarjoavat, valitset Vadelma Pi tai Beagle Board väli>. Molemmat tukevat Ubuntu -laitetta Pythonilla tai C ++: lla ROS: ssa , mikä helpottaa elämääsi!
Lopussa kaikki kiehuu Pythoniksi, C ++: ksi ja MATLAB: ksi ROS-alustalla . ROS on juuri valloittanut robotiikan kentän niin paljon, että suurin osa uusista hienoista robotiikan ohjelmointityökaluista syntyy nimellä ROS paketteja.
Vastaa
Ehkä luomani tiekartta auttaa sinua robotiikan oppimisessa. Näen, että tätä kysymystä kysytään paljon.
Tiekartassa on 4 tasoa ja jokainen taso keskittyy neljään peruskäsitteeseen.
Lämmitystaso
- Opi koodaus: ala valita vähintään yksi kätevä ohjelmointikieli . Arduino IDE on hyvä.Python on hieno. C / C ++ on upea. Ehdotukseni olisi Python . Tähän on useita syitä, ja myöhemmin etenemissuunnitelmasta näet, miksi.
- Opi elektroniikkaa: Aloita sähköisen perusosan rakentaminen piirit . Se voi olla yhtä yksinkertaista kuin sytyttää LED. Seuraava syttyy lisää LEDejä. Tee yksinkertainen liikennemerkki. Työkoneen kytkimet. Opi teoreettiset ideat jännitteen, virran, vastusten, transistoreiden, sarja- ja rinnakkaispiirien toiminnasta. Tutki myös antureita ja servomoottoreita!
- Opi perusasennukset: Rakastimme lapsena lasten lelujen valmistamista ja tavaroiden rakentamista. Tee sama täällä. Opi tekemään joitain perusrakenteita käyttämällä puuta, akryyliä, kuitua tai muovia.
- Integroi mikro-ohjaimeen: Tietäen yllä olevan käsitteitä, sinun kannattaa kokeilla niitä mikro-ohjaimella. Loppujen lopuksi haluat piirisi ”reagoivan”. Harrastajien ja aloittelijoiden suosituin valinta on valita Arduino . Arduino on todella yksinkertaistanut reaktion peruspiirien koodaamista ja toteuttamista.
(Resurssit: YouTube, Khan Academy, Code, Coursera, Udemy)
Aloittelijoiden taso
- Opi kohdennettua ohjelmointia: Koodaamisen lisäksi robotiikassa on tärkeää myös kuinka koodata hyvin . Kohdekeskeinen ohjelmointi (OOP) on valtava lihas kasvaa, ja aikaisemmin voit tehdä sen, sitä enemmän kiität itseäsi tulevaisuudessa. OOP ei ole yksinomaan Pythonille. Pythonissa voit kuitenkin toteuttaa nämä helposti ja harjoitella. OOP: n kautta opit luokista, menetelmistä, perinnöstä jne., Ja tämä on erinomainen tekniikka toiminnallisten, modulaaristen ja tehokkaiden koodien kirjoittamiseen.
- Opi fysiikka, todennäköisyys ja lineaarinen algebra: Kun kasvat pikkulasten robotista murrosikäiseksi, on tärkeää, että tiedät myös kuinka robotiikkaa kirjoittavat, lukevat ja puhuvat muut yhteisössä. Tämä robotiikkakieli käyttää voimakkaasti fysiikkaa, todennäköisyyksiä ja lineaarista algebraa. Kyllä, et voi nauttia näistä aiheista koulussa tai yliopistossa, mutta luota minuun, että tarvitset niitä, jos olet tosissaan robotiikkaa. Et voi tehdä tietokonenäköä tietämättä matriiseista. Et voi tehdä polun suunnittelua tietämättä fysiikasta. Et voi tehdä tekoälyä tai koneoppimista tietämättä todennäköisyydestä.
- Lisää tietokoneitaitoja: Mitä tarkoitan tällä? Monet robotiikan uudet tulokkaat törmäävät (minäkin olin!), Että heidän täytyy oppia tämä uusi ulkomaalaiselta näyttävä käyttöjärjestelmä, jonka vieressä on pingviini. Puhun Linux -käyttöjärjestelmästä. On välttämätöntä, että joku, joka haluaa syventyä robotiikkaan, tutustuu Linuxiin. Monet robotiikkaa varten kehitetyt kirjastot, paketit ja ohjelmistot jaetaan helposti ja tehokkaasti Linux-ympäristöihin. Suosittu Linux-käyttöjärjestelmän valinta: Ubuntu
- Sulautetut järjestelmät: Nyt se Sinulla on parempi tietämys koodauksesta, piiristä, teoreettisista käsitteistä ja Linux-tuntemisesta, meidän on toteutettava nämä pienemmällä tietokoneella kuin kannettava tietokone. Joten mene eteenpäin ja kokeile lämmitystaso -käsitteitä sekä yllä olevia -käsitteitä minitietokoneella kuten Vadelma Pi tai BeagleBone. Kiinnitä joitain antureita, servoja ja kameraa johonkin näistä minitietokoneista ja kirjoita koodi tunnistamaan, siirtämään ja havaitsemaan tavaraa!
(Resurssit: YouTube, Khan Academy, Code, Coursera, MIT OCW)
Keskitaso
- Kehitä teoreettiset perusteet: Täällä riippuen mistä robotiikan alueesta olet kiinnostunut, sinun on opittava enemmän sen taustalla olevasta teoriasta. Lisätietoja robotin käsivarsien manipuloinnista (kinematiikka ja hallinta), havaitsemisesta (tietokonenäkö, lineaarinen algebra , matriisit), koneoppiminen / tekoäly (todennäköisyys, tilastot, matematiikka). Näetkö, miten jotkut edellisistä käsitteistä ovat olennaisia näille robotiikan pääalueille?
- Käytä edistyneitä kirjastoja: Nyt sinun on toteutettava kone oppimis- ja / tai tietokonenäön algoritmeja robotissasi. Loppujen lopuksi robotin pitäisi pystyä näkemään, ajattelemaan ja oppimaan, eikö?Pythonissa on hämmästyttäviä kirjastoja , jotka on kirjoitettu koneoppimisen ja tietokonenäön algoritmien toteuttamiseen. tensorin virtaus ja OpenCV. Vastaavasti paljon tekoälyä voidaan harjoittaa myös Pythonissa. Tietenkin voit tehdä saman C / C ++: ssa. Yritän kuitenkin pitää sen johdonmukaisena täällä.
- Tutustu ROS: iin: Kaikkien edellä mainittujen tietojen ansiosta erinomainen keskituote, jonka pitäisi oppia, on robottien käyttöjärjestelmä (ROS). Se voi olla hieman hankala poimia aluksi. ROS kuitenkin avaa ovesi testata edistyneitä algoritmeja ja simulaatioita robotteilla, joita sinulla ei edes ole! Haluatko lentää quadcopteria? Tai navigoida robotilla itsenäisesti kartalla? Entä jos saisit teollisuusvarren noutamaan esine? Voit tehdä sen ROS: ssa sen simulaatioympäristön kautta nimeltä Gazebo.
- Lisää CAD: Saatat olla kiinnostunut kehittämään ja suunnittelemaan monimutkaisia robotteja. Aloita oppimalla 3D-suunnitteluohjelmisto , kuten Blender tai SolidWorks, jotta voit suunnitella omia robottejasi.
Asiantuntijataso
- Jatka oppimista ja kasvamista: Jokainen yllä mainituista käsitteistä on loputtomia omasta hyveestään, ja tullaksesi robotiikan asiantuntijaksi sinun on investoitava aika ja jatkettava oppimista. Ymmärrät, että sinun on opittava lisää luokittelijoita tai malleja esineiden / kuvien tunnistamiseksi paremmin. Tai sinun on ehkä opittava lisää ohjausalgoritmeista ratkaisujen optimoimiseksi.
- Lisää ohjelmistoja / laitteistoja: riippuen kiinnostavastasi alueesta ja erikoistuminen, teet enemmän ja enemmän koodausta, algoritmikehitystä, ROS: ää ja / tai robottisuunnittelua.
Lopuksi, en todellakaan ole asiantuntija, joten en voi lisätä siihen paljon . Mitä voin sanoa varmasti, en edes tiedä mitä en tiedä. Yksi tärkeä asia on muistaa: aloita ja ole johdonmukainen =)