Sommario:

Robot che cammina da solo: 7 passaggi
Robot che cammina da solo: 7 passaggi

Video: Robot che cammina da solo: 7 passaggi

Video: Robot che cammina da solo: 7 passaggi
Video: SI SVUOTA DA SOLO!! Recensione ROOMBA i7 di iRobot robot aspirapolvere. 2024, Dicembre
Anonim
Robot che cammina da solo
Robot che cammina da solo

Cosa ho fatto?

● Un bot che può essere addestrato a camminare (andare avanti) su diverse superfici. Il bot raffigura una semplice creatura con 4 gambe "senza ginocchio" che sta lottando per andare avanti. Sa che può orientare ciascuna delle gambe solo in 3 modi possibili. Ora deve capire i migliori passi possibili per continuare a muoversi. Poiché il suo movimento dipende anche dall'attrito con la superficie, riteniamo che per ogni superficie diversa su cui cammina, ci sarà una serie di passaggi diversi (non necessariamente unici ma molto probabilmente simili) per massimizzare il suo sforzo di andare avanti.

A cosa serve?

● È meglio utilizzato per visualizzare i modelli di camminata per un ROBOT AI.

Passaggio 1: il diagramma di flusso

Il diagramma di flusso
Il diagramma di flusso

Qui una ripartizione dell'intero progetto. In linea di massima il progetto è in 2 parti l'elettronica con la struttura meccanica del robot e l'altra è l'algoritmo in esecuzione su pc e codice in esecuzione su arduino.

Fase 2: PRINCIPALI COMPONENTI COINVOLTI:

Elettronica

Arduino UNO(!)

Sensore ultrasonico

Servomotori

Modulo Bluetooth

codifica

Arduino IDE

Teraterm

Taccuino Jupyter

Algoritmo di Q-learning

Fase 3: MODULO V1:

MODULO V1
MODULO V1

Apprendimento per rinforzo: utilizzando ANN (Artificial Neural Network) abbiamo pianificato di addestrare il nostro robot e abbiamo trovato due possibili metodi.

Vincoli: ogni gamba (servomotore) è vincolata a prendere solo 3 possibili posizioni di 60, 90 e 120 gradi. Ipotesi: Consideriamo che il movimento del bot costituirà 4 stati (uno stato è un certo orientamento di tutti e quattro i servi), cioè ci saranno 4 diversi stati del robot che considereremo come 4 passi che ci danno rispettivamente un ciclo di movimento, in quale il bot si sposterà di una certa distanza in avanti. Questo ciclo verrà ripetuto all'infinito per mantenere il bot in movimento.

Ma l'unico problema era il numero di iterazioni da valutare: abbiamo 3 possibili orientamenti per ogni motore e ci sono 4 motori diversi che lo rendono 3^4=81 stati in cui il robot può esistere in un singolo passaggio o stato. Dobbiamo compiere 4 passaggi diversi per completare un movimento complesso, il che significa 81^4 = 43, 046, 721 possibili combinazioni da verificare per la massima efficienza per un ciclo di movimento. Supponiamo che ci vogliano 5 secondi per addestrare un singolo stato, ci vorrebbero 6.8250 anni per completare l'addestramento!

Fase 4: MODULO V2:

Algoritmo di Q-learning

Un algoritmo di apprendimento per rinforzo precoce sviluppato per addestrare cose che hanno uno stato finito e trovare i percorsi più brevi. fonte:

Math of Algorithm: ci sono 81 possibili stati per ogni passaggio in cui può trovarsi il bot, chiamiamo questi stati come numeri da 1 a 81 e ora quello che vogliamo sapere è il valore di transizione, ovvero il cambiamento nella posizione del robot (distanza spostata) mentre si sposta da uno stato casuale s1 a qualche altro stato s2 (s1, s2 da quegli 81 stati). Possiamo vederlo come una matrice con 81 righe e 81 colonne in cui un elemento della matrice sarà uguale al valore della distanza da cui si è spostato corrispondente al suo numero di riga e colonna. Questi valori possono essere positivi o negativi a seconda dell'azione del robot nella parola reale. Ora troveremo un ciclo chiuso di stati in cui la distanza percorsa è sempre positiva, valuteremo i valori della matrice 81x81 che sono 81^2=6561, ora se impieghiamo 5 secondi per ottenere questi valori memorizzati nella matrice, allora lo farà impiegare 9.1125 ore solo per creare un'intera matrice e quindi un ciclo di passaggi per massimizzare l'efficienza del movimento potrebbe essere facilmente individuato.

Fase 5: PROBLEMI COINVOLTI -

  1. Per alcuni stati il movimento del bot era molto irregolare e stava influenzando il valore del sensore degli ultrasuoni, il bot si inclinava e prendeva la distanza da una parete lontana.
  2. Il problema della disconnessione dal laptop e il riavvio di arduino lo faceva allenare dal valore 0 era molto irritante.
  3. Guardare il treno del robot per 5 ore continue è stato molto esaustivo.

Fase 6: MODULI A1 e A2:

  • La parte meccanica comprende la scheda del telaio con quattro servocomandi fissati ad essa. Abbiamo usato dei bastoncini di gelato per fare le gambe.
  • Il nostro compito principale - tenere traccia della distanza del bot dalla sua posizione iniziale.
  • Il nostro primo approccio è stato quello di utilizzare il sensore giroscopico e utilizzare l'accelerazione del bot mentre si muove per estrarre la sua velocità e successivamente la sua posizione.
  • Problema - Si è rivelato troppo complicato da implementare! Alternativa: abbiamo limitato il movimento del robot a 1 sola dimensione e utilizzato un sensore a ultrasuoni per misurare la distanza da un muro davanti a te.
  • Il modulo HC05-Bluetooth è stato utilizzato durante il periodo di addestramento per trasmettere al PC la velocità di transizione della distanza tra due passaggi e lì i dati sono stati archiviati in una matrice.

Passaggio 7: collegamento ai video:

Link ai video
Link ai video

Piccoli passi:

Scatto di allenamento:

Quasi dritto:

Video del robot danzante:

Video finale0:

Consigliato: