Cuprins:

Robot de mers pe jos: 7 pași
Robot de mers pe jos: 7 pași

Video: Robot de mers pe jos: 7 pași

Video: Robot de mers pe jos: 7 pași
Video: Ce înseamna semnul tau din nastere 2024, Noiembrie
Anonim
Robot de mers pe jos
Robot de mers pe jos

Ce am făcut?

● Un robot care poate fi antrenat să meargă (să avanseze) pe diferite suprafețe. Botul descrie o creatură simplă cu 4 picioare „fără genunchi” care se luptă să avanseze. Știe că poate orienta fiecare dintre picioare numai în 3 moduri posibile. Acum trebuie să descopere cele mai bune măsuri posibile pe care le poate face pentru a continua să te miști. Deoarece mișcarea sa depinde și de fricțiunea cu suprafața, credem că pentru fiecare suprafață diferită pe care o parcurge, va exista un set diferit (nu neapărat unic, dar cel mai probabil similar) de pași pentru a-și maximiza efortul de a merge mai departe.

Pentru ce se folosește?

● Este cel mai bine folosit pentru vizualizarea tiparelor de mers pe jos pentru un ROBOT AI.

Pasul 1: Diagrama fluxului

Diagrama fluxului
Diagrama fluxului

Iată o defalcare a întregului proiect. În linii mari, proiectul este format din 2 părți electronice cu structură mecanică a robotului, iar cealaltă este algoritmul care rulează pe computer și codul care rulează pe arduino.

Pasul 2: COMPONENTE MAJORI IMPLICATE:

Electronică

Arduino UNO (!)

Senzor cu ultrasunete

Servomotoare

Modul Bluetooth

Codificare

IDE Arduino

Teraterm

Notebook Jupyter

Q- algoritm de învățare

Pasul 3: MODULUL V1:

MODULUL V1
MODULUL V1

Învățarea prin întărire: folosind ANN (rețea neuronală artificială) am planificat să ne antrenăm robotul și am venit cu două metode posibile.

Constrângeri: Fiecare picior (servomotor) este constrâns să ia doar 3 poziții posibile de 60, 90 și 120 de grade. Ipoteze: considerăm că mișcarea botului va constitui 4 stări (o stare este o anumită orientare a tuturor celor patru servouri), adică vor exista 4 stări diferite ale robotului pe care le vom considera ca fiind 4 pași, respectiv, oferindu-ne un ciclu de mișcare, în pe care robotul se va deplasa oarecum înainte. Acest ciclu va fi repetat ad infinitum pentru a menține robotul în mișcare.

Dar singura problemă a fost numărul de iterații care trebuie evaluat - Avem 3 orientări posibile pentru fiecare motor și există 4 motoare diferite care îl fac 3 ^ 4 = 81 de stări în care robotul poate exista într-un singur pas sau stare. Trebuie să facem 4 pași diferiți pentru a finaliza o mișcare complexă, ceea ce înseamnă 81 ^ 4 = 43, 046, 721 combinații posibile care trebuie verificate pentru eficiență maximă pentru un ciclu de mișcare. Să presupunem că durează 5 secunde pentru a pregăti o singură stare ar dura 6,8250 de ani pentru a finaliza antrenamentul!

Pasul 4: MODULUL V2:

Algoritm Q-learning

Un algoritm de învățare a întăririi timpurii dezvoltat pentru instruirea lucrurilor cu stare finită și găsirea celor mai scurte căi. sursa:

Math of Algorithm: Există 81 de stări posibile pentru fiecare pas în care poate fi botul, numim aceste stări ca numere de la 1 la 81 și acum ceea ce vrem să știm este valoarea de tranziție, adică schimbarea poziției robotului (distanța mutată) în timp ce se deplasează de la o stare aleatorie s1 la o altă stare s2 (s1, s2 din acele 81 de stări). O putem vedea ca o matrice care are 81 de rânduri și 81 de coloane în care un element al matricei va fi egal cu valoarea distanței de la care s-a mutat corespunzător numărului său de rând și coloană. Aceste valori pot fi pozitive sau negative în funcție de acțiunea robotului într-un cuvânt real. Acum vom găsi o buclă închisă de stări în care distanța pe care o parcurge este întotdeauna pozitivă. Vom evalua valorile matricei 81x81 care sunt 81 ^ 2 = 6561, acum, dacă luăm 5 secunde pentru a obține aceste valori stocate în matrice, atunci va fi luați 9.1125 de ore doar pentru a face o întreagă matrice și apoi o buclă de pași pentru a maximiza eficiența de deplasare ar putea fi calculată cu ușurință.

Pasul 5: PROBLEME IMPLICATE -

  1. Pentru unele stări, mișcarea botului a fost foarte inegală și afectează valoarea senzorului ultrasonic, botul se va înclina și va lua distanța de la un perete îndepărtat.
  2. Problema deconectării de la laptop și a repornirii arduino a făcut ca antrenamentul de la valoarea 0 să fie foarte iritant.
  3. Urmărirea trenului robotului timp de 5 ore a fost foarte exhaustivă.

Pasul 6: MODULUL A1 și A2:

  • Piesa mecanică include placa șasiului cu patru servouri fixate pe aceasta. Am folosit bastoane de înghețată pentru a face picioare.
  • Sarcina noastră principală - să urmărim distanța dintre bot de poziția sa inițială.
  • Prima noastră abordare a fost să folosim senzorul giroscopic și să folosim accelerația botului în timp ce acesta se deplasează pentru a-și extrage viteza și ulterior poziția.
  • Problemă - S-a dovedit a fi prea complicat de implementat! Alternativă - Am restricționat mișcarea botului la o singură dimensiune și am folosit senzor cu ultrasunete pentru a măsura distanța de la un perete drept înainte în față.
  • Modulul HC05-Bluetooth a fost utilizat în timpul perioadei de antrenament pentru a transmite rata de tranziție la distanță între doi pași către PC și acolo datele au fost stocate într-o matrice.

Pasul 7: Link către videoclipuri:

Link către videoclipuri
Link către videoclipuri

Pași pentru bebeluși:

Plan de antrenament:

Aproape drept:

Video robot de dans:

Vide0 final:

Recomandat: