Legjobb válasz
A legegyszerűbb válasz a következő: C ++ és Python .
Az összes robotikai projekt, amellyel már dolgoztam, mindkét platformon fut, így vagy úgy. Ez azonban hiányos válasz lenne, anélkül, hogy megmutatnánk a robotika tényleges képét.
Operációs rendszer:
- A C ++ és a Python egyértelműen az a programozási nyelv, amelyet a végén használ. A legtöbb robot kódja azonban manapság az ROS (robot operációs rendszer) nevű operációs rendszerben él. A ROS elegáns szoftverarchitektúrát kínál a robotok könnyebb vezérléséhez és tervezéséhez. Vannak ezek a különböző csomópont-programok, amelyeket ír, amelyek közzétehetnek bizonyos információkat, amelyeket a ROS -on belül élő más csomópontok felhasználhatnak. Például a lokalizációs csomópont, amely megbecsüli a drón helyzetét a 3D-s világban, közzéteszi ezeket az információkat más csomópontok számára. Ezután egy pályatervező csomópont feliratkozhat ezekre a csomópontokra, hogy megkapja ezeket az adatokat a drón következő útjának kiértékeléséhez. Ezen csomópontok mindegyike egyszerű C ++ vagy Python kód.
Programozás a robotika kutatásához:
- Szimuláció : A kutatási szakaszban szinte minden szigorú szimulációt és tesztet elvégeznek a MATLAB fájlon, mielőtt átalakításra kerülne C ++ vagy Python kódra. Ennek oka a platform által kínált elegáns megjelenítő eszközök és praktikus előre megírt funkciók. A MATLAB kódok integrálhatók a ROS .
Programozás a vizuális megismeréshez:
- Gépi tanulási modellek : Ha a robot valamilyen gépi tanulást vagy mély tanulási technikát használ, akkor először olyan platformokkal oktatják ki őket, mint a Tensorflow, Keras, PyTorch stb., majd a képzett platformok a modellek csomópontként kerülnek át a ROS fájlba. Például egy keresési és mentési drón egy emberi detektálási modellt használna ROS csomópontként, amely feliratkozik a nyers kamera képcsomópontjára és közzéteszi az összes emberi észlelést.
- Képfeldolgozás : Az OpenCV egy széles körben használt képfeldolgozó eszköz, amely képes integrálható a C ++ vagy a Python -al a ROS -on belül. Például egy futballrobotnak szüksége lenne erre a modulra a képen látható összes színes golyó felismeréséhez.
Robotikai hardver programozása:
- Hardver programozás : Hardverszintű FPGA programozás, verilog vagy VHDL használatos.
- Firmware vagy mikrovezérlők : AVR programozás ATMEGA számára A chipeket széles körben használják, ha hatékonyabb és kifinomultabb vezérlést szeretne a hardver felett. Egyszerűbb lehetőség az Arduino mikrovezérlő használata, amely a C nyelv körüli burkolót használ. Arduinóban elég egyszerű szervomotor működtetésére vagy motorvezérlő vezérlésére programozni.
- Egytáblás számítógépek : Ha még többre van szüksége memória és feldolgozási teljesítmény, mint amit az Arduino vagy Atmega szolgáltat, akkor Raspberry Pi vagy Beagle Board . Mindkettő támogatja az Ubuntu fedélzeten Python vagy C ++ ROS-ban , megkönnyítve ezzel az életed!
Végül mindez Pythonra, C ++ -ra és MATLAB-ra változik egy ROS platformon . A ROS éppen annyira meghódította a robotika területét, hogy a legtöbb újszerű robotika programozási eszköz ROS néven született meg csomagok.
Válasz
Talán az általam készített útiterv segít a robotika elsajátításában. Úgy látom, hogy ezt a kérdést sokat teszik fel.
Az ütemtervnek 4 szintje van, és mindegyik szint 4 alapfogalomra összpontosít.
Bemelegedési szint
- További információ kódolás: Kezdjen el legalább egy praktikus programozási nyelvet felvenni. Az Arduino IDE jó.A Python nagyszerű. A C / C ++ fantasztikus lesz. A javaslatom Python lenne. Ennek számos oka van, és később az ütemtervben meg fogja tudni, miért.
- Tanulja meg az elektronikát: Kezdje el megépíteni az alapvető elektronikus áramkörök . Olyan egyszerű lehet, mint egy LED megvilágítása. Ezután további LED-ek világítanak. Készítsen egyszerű közlekedési jelzést. Végezze el a kapcsolókat. Ismerje meg a feszültség, áram, ellenállások, tranzisztorok, soros és párhuzamos áramkörök működésének elméleti elképzeléseit. Fedezze fel az érzékelőket és a szervomotorokat is!
- Ismerje meg az alapvető összeszerelést: Gyerekként szerettük játékok és építőanyagok gyártását. Tedd ugyanezt itt. Tanuljon meg néhány alapvető szerkezetet készíteni fa, akril, szál vagy műanyag felhasználásával.
- Integrálódjon a mikrovezérlővel: A fentiek ismeretében koncepciókat, meg kell próbálni és tesztelni őket egy alapvető mikrovezérlőn. Végül is azt akarja, hogy az áramköre „reagáljon”. A hobbisták és a kezdők körében a legnépszerűbb választás az Arduino használata. Az Arduino valóban leegyszerűsítette az alapvető reakciós áramkörök kódolásának és megvalósításának folyamatát.
(Források: YouTube, Khan Academy, Code, Coursera, Udemy)
Kezdő szint
- Tanulja meg az objektum-orientált programozást: Nem csak a robotikában kell kódolni, hanem hogyan kell jól kódolni . Az objektum-orientált programozás (OOP) óriási izomnövekedést jelent, és korábban ezt megteheti, annál többet fog köszönni magának a jövőben. Az OOP nem kizárólag a Pythonra vonatkozik. A Pythonban azonban ezeket egyszerűen megvalósíthatja és gyakorolhatja. Az OOP révén megismerheti az osztályokat, módszereket, öröklődést stb., És ez kiváló technika a funkcionális, moduláris és hatékony kódok írásához.
- fizika, valószínűség és lineáris algebra: Ahogy csecsemő robot robotból serdülőként növekszik, fontos, hogy tudd, hogyan írják, olvassák és beszélik mások a robotikát a közösségben. Ez a robotikai nyelv nagymértékben használja a fizikát, a valószínűséget és a lineáris algebrát. Igen, lehet, hogy nem élvezi ezeket a tantárgyakat az iskolában vagy az egyetemen, de hidd el, hogy szükséged van rájuk, ha komolyan foglalkozik a robotikával. Nem lehet számítógépes látást végezni anélkül, hogy tudna a mátrixokról. Nem lehet útvonaltervezést végezni a fizika ismerete nélkül. Nem végezhet mesterséges intelligenciát vagy gépi tanulást anélkül, hogy tudna a valószínűségről.
- Bevontabb számítógépes ismeretek: Most mit értek ez alatt? A robotika sok újonca megbotlik (én is!), Hogy meg kell tanulniuk ezt az új, idegen kinézetű operációs rendszert, amelynek valahol egy pingvin van. Linux operációs rendszerről beszélek. Elengedhetetlen, hogy valaki, aki jobban el akarja magát mélyíteni a robotikában, ismerkedjen meg a Linuxszal. Sok robotikához fejlesztett könyvtár, csomag és szoftver nagyon egyszerűen és hatékonyan terjesztésre kerül Linux környezetben. Népszerű linuxos operációs rendszer választás: Ubuntu
- Beágyazott rendszerek: jobban megismerte a kódolást, az áramkört, az elméleti koncepciókat és a Linux ismeretét, ezeket egy kisebb számítógépen kell megvalósítanunk, mint a laptopunkat. Tehát folytassa, és próbálja ki a bemelegedési szint fogalmakat a fenti fogalmakkal együtt egy mini-számítógépen mint például a Raspberry Pi vagy a BeagleBone. Csatlakoztasson néhány érzékelőt, szervót és kamerát az egyik ilyen számítógéphez, és írjon néhány kódot a dolgok érzékeléséhez, mozgatásához és észleléséhez!
(Források: YouTube, Khan Akadémia, Code, Coursera, MIT OCW)
Középszint
- Elméleti alapok kidolgozása: Itt attól függően, hogy hogy a robotika melyik területe érdekli, többet kell megtudnia a mögötte álló elméletről. Tudjon meg többet a robotkar manipulációról (kinematika és vezérlés), érzékelésről (számítógépes látás, lineáris algebra , mátrixok), gépi tanulás / mesterséges intelligencia (valószínűség, statisztika, matematika). Látja, hogy az előző koncepciók némelyike alapvető fontosságú ezeknek a robotika alapvető területeinek?
- Speciális könyvtárak használata: Most meg kell valósítania a gépet tanulási és / vagy számítógépes látási algoritmusok a robotján. Végül is a robotnak képesnek kell lennie látásra, gondolkodásra és tanulásra, igaz?A Pythonon csodálatos könyvtárak vannak megírva, amelyek gépi tanulás és számítógépes látás algoritmusok megvalósítására vannak írva. tenzor áramlás és OpenCV. Hasonlóképpen sok AI-t lehet gyakorolni a Pythonon is. Természetesen ugyanezt megteheti C / C ++ nyelven is. Itt azonban igyekszem konzisztensnek tartani.
- Ismerkedjen meg a ROS-szal: A fentiek ismeretében kiváló középáru, amelyet meg kell tanulnia, a robot operációs rendszer (ROS). Először kissé trükkös lehet átvenni. Az ROS azonban megnyitja kapuit, hogy fejlett algoritmusokat és szimulációkat tesztelhessen olyan robotokon, amelyek még nincsenek is neked! Quadcopterrel akar repülni? Vagy a térképen autonóm módon navigálhat? Mit szólnál ahhoz, ha egy ipari kar felvenné egy tárgyat? Ezt a ROS-ban teheti meg a Gazebo nevű szimulációs környezetén keresztül.
- További CAD: Érdekes lehet összetett robotok fejlesztése és megtervezése. Kezdje el a 3D tervező szoftverek , például a Blender vagy a SolidWorks tanulását, hogy megtervezhesse saját robotjait.
Szakértői szint
- Folyamatosan tanulj és fejlődj: Minden fent említett koncepció a maga erényével végtelen, és ahhoz, hogy a robotika szakértőjévé válj, fektetned kell az időt és tovább kell tanulnod. Rájössz, hogy több osztályozót vagy modellt kell megtanulnia az objektumok / képek jobb észleléséhez. Vagy a megoldások optimalizálásához lehet, hogy többet kell megtudnia a vezérlő algoritmusokról.
- További szoftver / hardver: az Ön érdeklődési körétől és szakterületen egyre többet foglalkozol kódolással, algoritmikus fejlesztéssel, ROS és / vagy robottervezéssel.
Végül, határozottan nem vagyok szakértő, és ezért nem tudok ehhez sokat hozzáfűzni. . Amit biztosan mondhatok, még azt sem tudom, amit nem. Egy fontos dolog, amire emlékezni kell: indulás és következetes működés =)