Robotica

Come pianificare un semplice robot usando Linux

Come pianificare un semplice robot usando Linux
Una volta installato ROS, potresti voler costruire un robot. Un buon modo per avere successo in questo progetto è pianificare ciò che vuoi fare. In questo caso ci viene in soccorso il ROS. Con ROS, puoi impostare ciò che hai costruito e visualizzare il tutto. Quando lavori con i robot, ci saranno molti scenari che potresti dover considerare. Il robot deve interagire con l'ambiente, come evitare il divano e ritrovare la strada del ritorno dalla cucina. Il robot dovrebbe anche avere braccia e gambe se le tue esigenze lo richiedono. Puoi simulare tutto questo usando ROS e, per la parte di codifica, puoi anche simulare l'interno del tuo sistema.

Come si costruisce un robot ROS??

Affinché il sistema funzioni bene e tu possa seguire ciò che il dispositivo farà in determinate situazioni, hai bisogno di definizioni standard per ogni parte. In ROS, questi componenti sono nodi, servizi e argomenti. In breve, crei un nodo per ogni esigenza principale. Ad esempio, il movimento è un nodo, la visione è un altro nodo e la pianificazione è un terzo nodo. I nodi contengono servizi che possono inviare informazioni ad altri nodi e i servizi possono anche gestire richieste e risposte. Un argomento può trasmettere valori a molti altri nodi. Fare i conti con questi termini e come dovresti usarli è la prima chiave per padroneggiare lo sviluppo di ROS2.

Emula la navigazione con turtlesim

Quando inizi in ROS, probabilmente acquisterai un robot che cammina o si rotola in casa tua. Per fare ciò, il robot deve avere una visione dell'area in cui sta navigando. Per fare ciò, puoi utilizzare un'applicazione simile a una mappa per testare il comportamento del tuo robot. I designer dietro il Turtlebot hanno ideato un'applicazione, chiamata turtlesim, che può farlo per te. Come con tutte le altre parti di ROS2, puoi avviare questi strumenti con un sottocomando dalla riga di comando. Hai quindi attività per diverse funzioni. La prima parte è avviare la finestra in cui puoi vedere la simulazione, e questo si chiama nodo.

$ ros2 esegui turtlesim turtlesimnode

Apparirà una finestra con una tartaruga al centro. Per controllare la tartaruga con la tastiera, devi eseguire un secondo comando che rimane aperto e continuare a premere determinati tasti. Questo è un secondo nodo che comunica con il primo.

$ ros2 esegui tartarugatartartarugateleopkey

Ora puoi spostare la tartaruga e vedere come si muove. Potresti anche ricevere errori, come colpire il muro. Questi errori vengono visualizzati nel terminale in cui è in esecuzione il turtlesimnode. Questo è l'uso più semplice del modulo di simulazione. Puoi anche eseguire determinate forme, viene fornito un quadrato e aggiungere più tartarughe. Per aggiungere più tartarughe, puoi usare il comando rqt.

Definisci i servizi con rqt

Il programma rqt fornisce servizi per la simulazione. La q sta per Qt, che sta per gestire l'interfaccia. In questo esempio, generi una nuova tartaruga.

$ rqt

L'interfaccia rqt è un lungo elenco di servizi per la simulazione che stai eseguendo. Per creare una nuova tartaruga, seleziona il menu a discesa "spawn", dai un nuovo nome alla tartaruga e fai clic su "chiama".' Vedrai subito una nuova tartaruga accanto alla prima. Se fai clic sul menu a discesa "spawn", vedrai anche un nuovo gruppo di voci relative alla tartaruga appena generata.

Puoi anche rimappare i comandi per eseguire la nuova tartaruga. Il comando per farlo è il seguente:

$ ros2 esegui turtlesim turtleteleopkey -ros-args -remap turtle1/cmdvel:=turtle2/cmdvel

Imposta il nome "tartaruga2" in base alla tua scelta precedente.

Visualizzazione avanzata con Rviz

Per una visualizzazione più avanzata e 3D, usa rviz. Questo pacchetto simula tutti i nodi del tuo progetto.

$ ros2 esegui rviz2 rviz2

Nell'interfaccia grafica, hai tre pannelli, con la vista al centro. Puoi creare ambienti utilizzando il pannello "Display". Puoi aggiungere muri, forze del vento e altre proprietà fisiche. Qui è anche dove aggiungi i tuoi robot.

Tieni presente che prima di arrivare a questo punto, dovrai capire come utilizzare il formato URDF. Il formato URDF definisce un robot, consentendo di impostare il corpo, le braccia, le gambe e, soprattutto, le zone di collisione. Le zone di collisione sono lì, quindi la simulazione può decidere se il robot è entrato in collisione.

Imparare a creare un robot nel formato URDF è un grande progetto, quindi usa un codice open source esistente per sperimentare con gli emulatori.

Simula la fisica con Gazebo

In Gazebo puoi simulare la fisica dell'ambiente che circonda il tuo robot. Gazebo è un programma complementare che funziona bene insieme a rviz. Con Gazebo puoi vedere cosa sta realmente accadendo; con rviz, tieni traccia di ciò che rileva il robot. Quando il tuo software rileva un muro che non c'è, Gazebo mostrerà vuoto e rviz mostrerà dove nel tuo codice è stato creato il muro.

Conclusione

La simulazione del tuo robot e dei suoi ambienti è necessaria per trovare bug e fornire i miglioramenti necessari al funzionamento del tuo robot prima di metterlo in libertà. Questo è un processo noioso che continua a lungo dopo aver iniziato a testare il bot, sia in ambienti controllati che nella vita reale. Con un'adeguata conoscenza dell'infrastruttura dei sistemi interni del tuo robot, puoi dare un senso a ciò che hai fatto di giusto e sbagliato. Impara velocemente ad apprezzare tutti i difetti che trovi, in quanto possono rendere il tuo sistema più robusto nel lungo periodo.

OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...