Voglio sapere:
Hai bisogno di competenze hardware per diventare un programmatore robotico?
Voglio sapere:
Hai bisogno di competenze hardware per diventare un programmatore robotico?
Dipende dalla programmazione di quali robot.
Quando si programmano i robot industriali, di solito è necessario conoscere abbastanza bene i dettagli di come viene costruito questo specifico modello. Forse non al livello dei singoli dadi e bulloni, ma ti preghiamo di sapere quanto carico è in grado di gestire, quali forze / velocità / accelerazioni sono consentite, quali posizioni si traducono in minore capacità o qualità di posizionamento, ecc. Questo è raramente un problema, però, perché prima che qualcuno ti abbia mai lasciato (o il tuo programma) vicino a un robot sul pavimento della fabbrica, segui la formazione del produttore.
Dipende dal livello su cui si programma il robot. Sono già state programmate tutte le astrazioni hardware? In caso contrario, è molto simile allo sviluppo incorporato e dovrai conoscere bene i punti di forza e i limiti dell'hardware.
Attualmente molti robot eseguono linux embedded. Cosa succede se un nuovo dispositivo personalizzato è stato aggiunto al robot? Dovresti scrivere un software driver. Quindi dovresti avere una conoscenza approfondita di come programmare vicino al sistema e all'hardware. Non è necessario essere un esperto di hardware, ma la conoscenza fondamentale dei circuiti digitali e dell'elettronica è obbligatoria.
Dovresti anche avere una certa conoscenza della meccatronica. È molto simile al software aziendale: non puoi scrivere un buon software se non conosci bene il tuo dominio aziendale.
Naturalmente, se non si sviluppano i robot da soli ma ne si ottiene uno da un fornitore, le API e le astrazioni sono già state scritte. Quindi si riduce alla programmazione degli utenti finali, spesso con linguaggi personalizzati, e l'hardware non è più così importante. È quindi possibile concentrarsi sulle attività che il robot deve eseguire. Questa può essere una vasta gamma di compiti, da quelli molto banali (sequenze di movimenti facili) a quelli molto complessi (prendere decisioni sulla base di dati complessi, AI).
In conclusione, puoi dire:
Modifica: btw, la maggior parte dei programmatori di robot e sviluppatori embedded che conosco sono ingegneri elettronici.
Tuttavia, tutto ciò è soggetto a modifiche in futuro. La programmazione dei computer ha richiesto molto tempo. Nei primi giorni dei computer, dovevi conoscere abbastanza bene il tuo hardware. Oggi questa conoscenza è diventata sempre meno rilevante per i programmatori nella maggior parte dei campi. Lo stesso probabilmente accadrà ai robot un giorno.
Non sono in questo campo, quindi non posso dire quanto sarebbe facile ottenere un lavoro senza conoscenza delle competenze hardware.
Anche se per la parte di programmazione puoi sicuramente farlo senza sapere molto sull'hardware. Ho giocato una volta con il Gazebo Project una volta e la mia mancanza di conoscenza dell'hardware non è stata affatto un problema. Ci sono molti altri simulatori di robot di quel tipo e, per quanto posso dire, tutti i robot moderni hanno un'interfaccia molto astratta per la loro funzionalità, che consente di programmarli in linguaggi elevati come C ++ o Python con semplici comandi che ne controllano la funzionalità.
Penso che i requisiti per questa parte dei robot di programmazione siano più sulla linea di elaborazione delle immagini, individuazione dei percorsi e in generale algoritmi di ricerca del tipo di intelligenza artificiale che consentono di scrivere software che consente al robot di interagire con un ambiente complesso e prendere decisioni intelligenti.
Ad esempio: il noto RoboCup Contest ha per il suo Rescue Contest una Simulation League in cui le squadre gareggiano nel USARSim ambiente, in modo che possano testare il software contro altri team anche se non dispongono di robot. Questi compiti, esplorando un'area di disastro simulato e individuando le vittime hanno bisogno di specialisti in molte aree. Non sono sicuro che questo campionato sia ancora attivo, ma è stato per molti anni)