Poiché lavorare con i robot sarà uno sforzo di sviluppo, la maggior parte degli strumenti di cui avrai bisogno saranno gli strumenti di sviluppo. La Open Source Robotics Foundation (OSRF) ha un'ottima pagina Web con risorse. Supportano e mantengono il sistema operativo robotico (ROS). Questa è una vasta raccolta di strumenti che puoi installare sia sul sistema esistente o come contenitore.
Il ragionamento alla base di una distribuzione
Quando inizi a sperimentare i robot, scoprirai molte cose che non ti aspettavi quando hai iniziato. Ti rendi conto di quanta interpretazione delle immagini contano nello sviluppo della robotica? In una distribuzione, hai tutti gli strumenti di cui avrai bisogno prima di sapere che ne hai bisogno.
Ciò rende più veloce iniziare ed evita complicazioni man mano che i progetti si evolvono. Occuperai lo spazio su disco inutilmente ma la dimensione totale del sistema non è grande per un computer moderno. Man mano che progredisci nel tuo progetto, assicurati di sapere cosa mettere nel robot e non. I restrizioni dello spazio su disco sono molto più severe lì.
Ros - La scelta più grande e ovvia
Come accennato in precedenza, ROS ha una vasta libreria di funzioni. Questi vanno dal controllo hardware, messaggi tra sottosistemi alle librerie di visione e simulatori. Il progetto è ben supportato dall'OSRF. Sono a loro volta supportati da molti leader del settore e la loro controllata commerciale supporta le stesse società nei loro sforzi.
Nonostante la vasta gamma di scelte e l'alto livello di raffinatezza, un nuovo utente può iniziare a utilizzare alcuni componenti standard. Grazie ai metodi cooperativi dell'OSRF, ci sono molti robot che sono stati costruiti utilizzando il ROS. Molti sono prodotti di consumo che puoi acquistare per un importo ragionevole e avvia il tuo progetto per un'attività specifica. I prodotti attualmente disponibili sono uno su ruote, gambe e ali sui droni volanti. Puoi persino trovare abitanti dell'acqua, compresi i sottomarini.
Questo progetto ti durerà fino all'uso industriale se miri ad andarci. C'è un po 'di curva di apprendimento che inizia, ma hai comunque molto da imparare sulla robotica. In effetti, quando pianifichi il tuo primo progetto, ti perderai sicuramente molte funzionalità di cui hai bisogno solo per un uso di base.
Toolkit di programmazione mobile robotica
Come vedrai quando inizierai con i robot, gran parte del lavoro sarà programmata. Questo toolkit ti aiuta con SLAM (localizzazione e mappatura simultanea) e altri strumenti di pianificazione del percorso. Molti degli strumenti hanno a che fare con la visione. Un pezzo interessante di questo kit di strumenti è il supporto per l'hardware Kinect. Le librerie libfreenect sono quelle sottostanti per questo progetto. Per aggiungerlo alla tua installazione di Ubuntu, puoi raccogliere il PPA e installarlo con APT. La compilazione del proprio richiede GCC-7 o più recente, Clang-4 o più recente. Per ulteriori informazioni e cosa devi fare quando si utilizza ROS, vai la loro pagina github.
Yarp
Chiamato "Un'altra piattaforma robot", si basa sull'idea di utilizzare il più possibile degli strumenti esistenti. Yarp è una raccolta di librerie C ++ che definiscono i protocolli di comunicazione per tutti i livelli di progetti di robotica. Hai tre componenti di Yarp, Yarpos, Yarpsig e Yarpdev. Sono tutti preoccupati di come inviare dati tra i componenti del tuo progetto. Il componente Yarpos crea interfacce per il sistema operativo che stai eseguendo. Ciò semplifica il passaggio del sistema operativo o dell'hardware di un componente mantenendo gli stessi flussi di dati Yarp. Questo è necessario per eseguire le altre parti del sistema. Yarpsig gestisce le attività di elaborazione del segnale, si interfaccia con OpenCV e librerie simili. Non fa l'elaborazione. Yarpdev fornisce interfacce a tutti i tipi di dispositivi necessari. Pensa a telecamere, microfoni, motori e altro ancora. Yarp farà l'interfaccia con il sistema complessivo. Lo utilizzerai anche per configurare i tuoi dispositivi. Yarp ti aiuterà a pianificare tutti gli altri software in modo da poter usare ciò che esiste là fuori. In effetti, hai anche la possibilità di eseguire alcuni componenti sotto ROS mentre altri eseguono Yarp. Ci sono molte opzioni disponibili e puoi passare gradualmente tra i due.
Conclusione
Quando inizi con la robotica, avrai bisogno di molte parti del software. Ogni controller e computer incorporato hanno esigenze e sistemi diversi. Ogni fotocamera ha di nuovo driver. Tutti i dati devono muoversi tra sottosistemi e componenti. Diventa davvero complicato. Per iniziare più velocemente, devi avere un sistema che coordina tutto. Lo fai avendo una funzione di coordinamento per messaggi e dati. Questi sono organizzati come "argomenti", "nodi" e "servizi". Il motivo di queste diverse funzioni è che a volte si desidera eseguire comandi, a volte si desidera rendere disponibili i dati per molte altre parti del sistema e sarai anche in grado di inviare tutti i dati al sistema in generale.
Qui è dove hai bisogno di una distribuzione o una piattaforma che mantenga tutto questo coordinato. ROS è il sistema che funziona con la maggior parte, se non con tutto hardware e tipi di progetti. Ricorda di capire cosa stai cercando di ottenere con il tuo design. Ciò è particolarmente importante quando si sta imparando. Se hai un obiettivo, tutti i passaggi hanno un motivo e un'associazione. Queste sono le basi dell'apprendimento; Per vedere la connessione tra ragione e azione.