Quali linguaggi informatici dobbiamo conoscere per la robotica?

Migliore risposta

La risposta più semplice sarebbe C ++ e Python .

Tutti i progetti di robotica con cui ho lavorato vengono eseguiti su una di queste piattaforme, in un modo o nellaltro. Tuttavia, questa sarebbe una risposta incompleta senza mostrarti limmagine reale di ciò che accade allinterno della robotica.

Sistema operativo:

  • C ++ e Python sono sicuramente il linguaggio di programmazione che usi alla fine. Tuttavia, i codici per la maggior parte dei robot oggigiorno risiedono allinterno di un sistema operativo chiamato ROS (Robot Operating System). ROS fornisce unelegante architettura software per facilitare il controllo e la pianificazione del robot. Ci sono questi diversi programmi nodo che scrivi che possono pubblicare certe informazioni che possono essere usate da altri nodi che vivono allinterno di ROS . Ad esempio, il nodo di localizzazione che stima la posizione di un drone nel mondo 3D pubblicherebbe queste informazioni per altri nodi da utilizzare. Un nodo del pianificatore di traiettoria può quindi iscriversi a questi nodi per ottenere questi dati per valutare il percorso successivo per il drone. Ciascuno di questi nodi è un semplice codice C ++ o Python .

Programmazione per la ricerca sulla robotica:

  • Simulazione : quasi tutte le simulazioni e i test rigorosi nella fase di ricerca vengono eseguiti per primi su MATLAB prima che venga convertito in un codice C ++ o Python . Ciò è dovuto agli eleganti strumenti di visualizzazione e alle pratiche funzioni pre-scritte che la piattaforma offre. I codici MATLAB possono anche essere integrati con ROS .

Programmazione per la cognizione visiva:

  • Modelli di machine learning : se il robot utilizza una sorta di machine learning o tecniche di deep learning, viene prima addestrato con piattaforme come Tensorflow, Keras, PyTorch ecc. e poi addestrato i modelli vengono trasferiti a ROS come nodo. Ad esempio, un drone di ricerca e salvataggio utilizzerebbe un modello di rilevamento umano come nodo ROS che si iscrive al nodo dellimmagine della telecamera non elaborata e pubblica tutti i rilevamenti umani.
  • Elaborazione delle immagini : OpenCV è uno strumento di elaborazione delle immagini ampiamente utilizzato che può essere integrato con C ++ o Python allinterno di ROS . Un robot calcistico, ad esempio, avrebbe bisogno di questo modulo per rilevare tutte le palline colorate sullimmagine.

Programmazione per hardware robotico:

  • Programmazione hardware : per il livello hardware FPGA programmazione, viene utilizzato verilog o VHDL .
  • Firmware o microcontrollori : AVR programmazione per ATMEGA I chip sono ampiamente usati se vuoi avere un controllo più efficiente e sofisticato dellhardware. Unopzione più semplice è utilizzare il microcontrollore Arduino che utilizza un wrapper attorno al linguaggio C . È abbastanza semplice programmare in Arduino per eseguire un servomotore o per controllare un driver del motore.
  • Computer a scheda singola : se ne hai bisogno di più memoria e potenza di elaborazione superiori a quelle fornite da Arduino o Atmega , scegli Raspberry Pi o Beagle Board . Entrambi supportano Ubuntu integrato con Python o C ++ in ROS , rendendoti la vita più facile!

Alla fine, tutto si riduce a Python, C ++ e MATLAB in una piattaforma ROS . ROS ha appena conquistato il campo della robotica così tanto che la maggior parte dei nuovi fantastici strumenti di programmazione robotica sono nati come ROS pacchetti.

Risposta

Forse la road map che ho creato ti aiuterà nel tuo viaggio per imparare la robotica. Vedo che questa domanda viene posta spesso.

La road map ha 4 livelli e ogni livello si concentra su 4 concetti fondamentali.

Livello di riscaldamento

  1. Impara codifica: inizia a prendere almeno un pratico linguaggio di programmazione . LIDE di Arduino è buono.Python è fantastico. C / C ++ sarà fantastico. Il mio suggerimento sarebbe Python . Ci sono diversi motivi per questo e più avanti nella road map lo vedrai.
  2. Impara lelettronica: Inizia a costruire elettronica di base circuiti . Può essere semplice come accendere un LED. Quindi accendi più LED. Crea un semplice segnale stradale. Interruttori dellattrezzo. Impara le idee teoriche alla base del funzionamento di tensione, corrente, resistori, transistor, serie e circuiti paralleli. Esplora anche sensori e servomotori!
  3. Impara il montaggio di base: Da bambini amavamo creare giocattoli e costruire cose. Fai lo stesso qui. Impara a realizzare alcune strutture di base utilizzando legno, acrilico, fibra o plastica.
  4. Integrazione con microcontrollore: Con la conoscenza di quanto sopra concetti, dovresti provare a testarli su un microcontrollore di base. Dopo tutto, vuoi che il tuo circuito “reagisca”. La scelta più popolare tra gli hobbisti e i principianti è utilizzare Arduino . Arduino ha veramente semplificato il processo di codifica e implementazione di circuiti reazionari di base.

(Risorse: YouTube, Khan Academy, Code, Coursera, Udemy)

Livello principiante

  1. Impara la programmazione orientata agli oggetti: non è importante solo codificare in robotica, ma anche come programmare bene . La programmazione orientata agli oggetti (OOP) è un enorme muscolo per crescere e prima puoi farlo, più ti ringrazierai in futuro. OOP non è unesclusiva di Python. Tuttavia, in Python puoi implementarli facilmente e fare pratica. Attraverso OOP, imparerai a conoscere classi, metodi, ereditarietà, ecc. E questa è una tecnica eccellente per scrivere codici funzionali, modulari ed efficienti.
  2. Impara fisica, probabilità e algebra lineare: Mentre stai crescendo da robotista infantile a adolescente, è importante che tu sappia anche come la robotica è scritta, letta e parlata da altri nella comunità. Questo linguaggio di robotica utilizza molto fisica, probabilità e algebra lineare. Sì, potresti non apprezzare queste materie a scuola o alluniversità, ma credimi, ne hai bisogno se lo sei serio sulla robotica. Non puoi fare la visione artificiale senza conoscere le matrici. Non puoi pianificare il percorso senza conoscere la fisica. Non puoi fare intelligenza artificiale o apprendimento automatico senza conoscere la probabilità.
  3. Competenze informatiche più coinvolte: Ora cosa intendo? Molti nuovi arrivati ​​alla robotica rimangono perplessi (lo ero anchio!) Che hanno bisogno di imparare questo nuovo sistema operativo dallaspetto alieno che ha un pinguino da qualche parte accanto ad esso. Sto parlando del sistema operativo Linux . È fondamentale che qualcuno che cerca di approfondire la robotica familiarizzi con Linux. Molte librerie, pacchetti e software sviluppati per la robotica vengono distribuiti in modo molto semplice ed efficiente su ambienti Linux. Scelta del sistema operativo Linux più diffuso: Ubuntu
  4. Sistemi incorporati: Ora che hai sviluppato una migliore conoscenza di codifica, circuiti, concetti teorici e familiarità con Linux, dobbiamo implementarli su un computer più piccolo del nostro laptop. Quindi vai avanti e prova i concetti del livello di riscaldamento insieme ai concetti del sopra su un mini-computer come Raspberry Pi o BeagleBone. Collega alcuni sensori, servi e una fotocamera a uno di questi min-computer e scrivi del codice per rilevare, spostare e rilevare cose!

(Risorse: YouTube, Khan Academy, Code, Coursera, MIT OCW)

Livello intermedio

  1. Sviluppa basi teoriche: qui a seconda quale area della robotica ti interessa, devi imparare di più sulla teoria che cè dietro. Informazioni sulla manipolazione del braccio robotico (cinematica e controllo), percezione (visione artificiale, algebra lineare , matrici), apprendimento automatico / intelligenza artificiale (probabilità, statistica, matematica). Vedi come alcuni dei concetti precedenti siano fondamentali per queste aree di robotica fondamentali?
  2. Usa librerie avanzate: Ora devi implementare la macchina algoritmi di apprendimento e / o visione artificiale sul tuo robot. Dopotutto, il robot dovrebbe essere in grado di vedere, pensare e imparare, giusto?Su Python sono disponibili librerie scritte per limplementazione di algoritmi di machine learning e visione artificiale, ad es. flusso tensoriale e OpenCV. Allo stesso modo, anche molta intelligenza artificiale può essere praticata su Python. Ovviamente puoi fare lo stesso in C / C ++. Tuttavia, sto cercando di mantenerlo coerente qui.
  3. Acquisisci familiarità con ROS: Con la conoscenza di tutto quanto sopra, un eccellente il middleware che si dovrebbe imparare è il Robot Operating System (ROS). Allinizio può essere un po complicato da imparare. Tuttavia, ROS ti apre le porte per testare algoritmi avanzati e simulazioni su robot che non hai nemmeno! Vuoi pilotare un quadricottero? O navigare autonomamente un robot in una mappa? Che ne dici di convincere un braccio industriale a raccogliere un oggetto? Puoi farlo in ROS tramite il suo ambiente di simulazione denominato Gazebo.
  4. Altro CAD: Potresti essere interessato a sviluppare e progettare robot complessi. Inizia a imparare il software di progettazione 3D come Blender o SolidWorks in modo da poter progettare i tuoi robot.

Livello Esperto

  1. Continua a imparare e a crescere: Ogni concetto sopra menzionato è infinito per le sue virtù e per diventare un esperto di robotica, dovrai investire il tempo e continuare ad imparare. Ti renderai conto che devi imparare più classificatori o modelli per rilevare meglio oggetti / immagini. Oppure potresti aver bisogno di saperne di più sugli algoritmi di controllo per ottimizzare le tue soluzioni.
  2. Altro software / hardware: a seconda della tua area di interesse e specializzazione, farai sempre di più codifica, sviluppo algoritmico, ROS e / o progettazione robotica.

Infine, non sono assolutamente un esperto e quindi non posso aggiungere molto a questo . Quello che posso dire con certezza è che anche io non so cosa non so. Una cosa importante da ricordare è: inizia e sii coerente =)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *