Sommario:
- Fase 1: Conoscenze di base
- Passaggio 2: acquisizione dei materiali necessari
- Passaggio 3: come funziona
- Passaggio 4: configurazione del broker MQTT
- Passaggio 5: installazione di Kinect SDK V1.8
- Passaggio 6: installazione di Python V2.7
- Passaggio 7: codifica
Video: Nao Robot che imita i movimenti usando Kinect: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
In questo tutorial ti spiegherò come permettiamo a un robot Nao di imitare i nostri movimenti usando un sensore Kinect. L'obiettivo effettivo del progetto è uno scopo educativo: un insegnante ha la capacità di registrare determinate serie di mosse (ad es. una danza) e può utilizzare queste registrazioni per consentire ai bambini in classe di imitare il robot. Seguendo l'intera istruzione passo dopo passo, dovresti essere in grado di ricreare completamente questo progetto.
Questo è un progetto relativo alla scuola (NMCT @ Howest, Kortrijk).
Fase 1: Conoscenze di base
Per ricreare questo progetto è necessario possedere alcune conoscenze di base:
- Conoscenza di base del pitone
- Conoscenza base di C# (WPF)
- Conoscenze di base di trigonometria
- Conoscenza su come impostare MQTT su un lampone pi
Passaggio 2: acquisizione dei materiali necessari
Materiali necessari per questo progetto:
- Lampone Pi
- Sensore Kinect v1.8 (Xbox 360)
- Nao robot o robot virtuale (Coregraph)
Passaggio 3: come funziona
Un sensore Kinect è connesso a un computer che esegue l'applicazione WPF. L'applicazione WPF invia i dati all'applicazione Python (robot) tramite MQTT. I file locali vengono salvati se l'utente lo sceglie.
Spiegazione dettagliata:
Prima di iniziare la registrazione, l'utente deve inserire l'indirizzo IP del broker MQTT. Oltre a ciò, abbiamo anche bisogno dell'argomento su cui vogliamo pubblicare i dati. Dopo aver premuto start, l'applicazione verificherà se è possibile stabilire una connessione con il broker e ci darà un feedback. Controllare se un argomento esiste non è possibile, quindi sei pienamente responsabile di questo. Quando entrambi gli input sono OK, l'applicazione inizierà a inviare dati (coordinate x, y & z da ciascun giunto) dallo scheletro che viene tracciato all'argomento sul broker MQTT.
Poiché il robot è connesso con lo stesso broker MQTT e sottoscritto sullo stesso argomento (questo deve essere inserito anche nell'applicazione python), l'applicazione python ora riceverà i dati dall'applicazione WPF. Usando la trigonometria e algoritmi auto-scritti, convertiamo le coordinate in angoli e radianti, che usiamo per ruotare i motori all'interno del robot in tempo reale.
Quando l'utente ha terminato la registrazione, preme il pulsante di arresto. Ora l'utente riceve un pop-up che chiede se vuole salvare la registrazione. Quando l'utente preme Annulla, tutto viene ripristinato (i dati vengono persi) e può essere avviata una nuova registrazione. Se l'utente desidera salvare la registrazione, deve inserire un titolo e premere 'salva'. Quando si preme 'salva', tutti i dati acquisiti vengono scritti in un file locale utilizzando l'input del titolo come nome del file. Il file viene anche aggiunto alla visualizzazione elenco sul lato destro dello schermo. In questo modo, dopo aver fatto doppio clic sulla nuova voce nella listview, il file viene letto e inviato al broker MQTT. Di conseguenza, il robot riprodurrà la registrazione.
Passaggio 4: configurazione del broker MQTT
Per la comunicazione tra il kinect (progetto WPF) e il robot (progetto Python) abbiamo utilizzato MQTT. MQTT consiste in un broker (un computer linux su cui è in esecuzione il software mqtt (es. Mosquitto)) e un argomento su cui i client possono iscriversi (ricevono un messaggio dall'argomento) e pubblicare (postano un messaggio sull'argomento).
Per configurare il broker MQTT basta scaricare l'intera immagine di jessie. Questa è un'installazione pulita per te Raspberry Pi con un broker MQTT su di esso. L'argomento è "/Sandro".
Passaggio 5: installazione di Kinect SDK V1.8
Affinché Kinect funzioni sul tuo computer, devi installare Microsoft Kinect SDK.
Potete scaricarlo qui:
www.microsoft.com/en-us/download/details.a…
Passaggio 6: installazione di Python V2.7
Il robot funziona con il framework NaoQi, questo framework è disponibile solo per python 2.7 (NON 3.x), quindi controlla quale versione di python hai installato.
Puoi scaricare Python 2.7 qui:
www.python.org/downloads/release/python-27…
Passaggio 7: codifica
Github:
Appunti:
- Codifica con il kinect: per prima cosa cerchi il kinect connesso. Dopo averlo salvato all'interno di una proprietà, abbiamo abilitato color- e skeletonstream sul kinect. Colorstream è il video in diretta, mentre skeletonstream significa che verrà visualizzato lo scheletro della persona davanti alla telecamera. Colorstream non è realmente necessario per far funzionare questo progetto, l'abbiamo solo abilitato perché il bitmap dello skeletonstream nel colorstream sembra perfetto!
- In realtà è davvero lo skeletonstream che fa il lavoro. L'abilitazione di skeletonstream significa che lo scheletro della persona viene monitorato. Da questo scheletro ricevi tutti i tipi di informazioni, ad es. orientamenti ossei, informazioni sulle articolazioni, … La chiave del nostro progetto erano le informazioni sulle articolazioni. Utilizzando le coordinate x-y e z di ciascuna delle articolazioni dello scheletro tracciato, sapevamo di poter far muovere il robot. Quindi, ogni 0,8 secondi (usando un timer) pubblichiamo le coordinate x, y & z di ciascuno dei giunti al broker mqtt.
- Poiché il progetto Python ha una sottoscrizione sul broker mqtt, ora possiamo accedere ai dati all'interno di questo progetto. All'interno di ogni giunto del robot ci sono due motori. Questi motori non possono essere guidati semplicemente utilizzando direttamente le coordinate x, y e z. Quindi, usando la trigonometria e un po' di buon senso, abbiamo convertito le coordinate x, y e z dei giunti in angoli sottostabili per i robot.
Quindi praticamente ogni 0,8 secondi il progetto WPF pubblica le coordinate x, y & z di ciascuno dei giunti. Di conseguenza, all'interno del progetto Python queste coordinate vengono convertite in angoli, che vengono poi inviati ai corrispondenti motori del robot.
Consigliato:
Il grosso braccio robotico stampato in 3D che imita il controller dei burattini: 11 passaggi (con immagini)
Molto braccio robotico stampato in 3D che imita il controller delle marionette: sono uno studente di ingegneria meccanica dall'India e questo è il mio progetto di laurea. Questo progetto è focalizzato sullo sviluppo di un braccio robotico a basso costo che è principalmente stampato in 3D e ha 5 DOF con un 2 dita pinza. Il braccio robotico è controllato con
Conversione dello stepper in movimenti di gioco: 4 passaggi
Conversione dello stepper in movimenti di gioco: IntroQuesto dispositivo converte il movimento da uno stepper fatto in casa (macchina passo-passo) in movimento di gioco. Funzionerà per qualsiasi gioco che riceve ("w") come movimento in avanti. Può funzionare anche con i giochi VR se accettano l'input da tastiera. Probabilmente ha vinto
Nao Robot che copia i movimenti tramite la fotocamera Kinect di Xbox: 4 passaggi
Nao Robot che copia i movimenti attraverso la fotocamera Xbox Kinect: come progetto nella nostra classe di informatica al liceo (Porter Gaud), io (Legare Walpole) e un altro studente (Martin Lautenschlager) abbiamo deciso di ottenere un robot umanoide Nao per imitare i nostri movimenti attraverso una fotocamera cinetica Xbox. Per mesi nessun professionista
RC Rover Controllato da Gesti Movimenti e Joyestick: 8 Passi
RC Rover Controlled by Gestures Motions & Joyestick: RC Rover è un progetto di Robotica che mira a migliorare il controllo del rover attraverso l'uso della radiofrequenza e l'interazione del movimento del rover con il movimento della mano utilizzando l'unità inerziale (MPU6050), ma anche il controllo di questo Rover con un Joyestik. Tutto
Fai in modo che il tuo computer dica ciò che scrivi usando il Blocco note: 3 passaggi
Fai in modo che il tuo computer dica ciò che scrivi usando il Blocco note: ecco un codice interessante creato da noi per far parlare il tuo computer ciò che scrivi. Useremo il blocco note per crearlo. Iniziamo