Jeffrey Cross
Jeffrey Cross

Robotica incipientă: Înțelegerea modului în care funcționează senzorii simpli

Pentru ca un robot să fie cu adevărat considerat un robot, acesta trebuie să fie capabil să simtă și să afecteze mediul său. De aceea, senzorii sunt atât de importanți pentru robotică, iar înțelegerea modului în care să le folosiți pentru a face un robot inteligent este vitală pentru orice robotizator în devenire. Am lansat recent un Kickstarter și, de fapt, oferim senzori liberi cu fiecare kit pe care îl vindem, deci verificați-l aici înainte de a se termina!

În acest Skill Builder vă voi duce printr-o operație robot numită sens> gândiți> acționați. Este o operație care este folosită pe scară largă în robotică și este un loc excelent pentru a începe să înțelegi cum să programezi un robot. Să ne scufundăm în ...

Alegerea unui senzor

Există la fel de mulți senzori disponibili, deoarece există lucruri fizice la înțeles, dar să folosim senzorul HC-SR04 cu ultrasunete pentru că este ieftin, simplu și utilizat pe scară largă în robotică (de asemenea, are o foarte convenabilă bibliotecă Arduino).

Definirea modelului robot

Acest senzor poate detecta distanțele, deci începeți cu un robot simplu care evită coliziunile. Acest robot se poate mișca înainte și înapoi și poate porni în orice direcție. Pe partea frontală a robotului este senzorul de distanță. Acum, că ne-am definit robotul, să începem să ne uităm cum să ne comportăm.

Ce este Sense, Think, Act?

Sense, Think, Act este o buclă de decizie care poate fi utilizată pentru a rezolva multe probleme robotizate și este remarcabil de simplă. În acest caz, robotul trebuie să sesizeze dacă există obstacole în fața acestuia. Atunci trebuie să se gândească dacă poate să avanseze sau să se întoarcă sau să inverseze, după care va acționa asupra acestei decizii. Aceeași logică se poate aplica oricărui robot, cu orice senzor pentru aproape orice comportament.

Pentru a transforma acest lucru într-un cod pe care îl putem scrie pentru a controla robotul, trebuie să fim mai specifici. Să creăm un comportament simplu pentru robot după cum urmează ...

  1. Robotul simte dacă orice obstacol este mai mic de 3 cm în față.
  2. Dacă nu există niciun obstacol, acesta avansează.
  3. Dacă există un obstacol, acesta se mișcă înapoi.

Acest lucru ar fi foarte ușor de tradus în cod, totuși s-ar putea să vă dați seama că acest lucru ar duce la "blocarea" robotului oscilând atunci când ajunge la un perete. Se va mișca înainte până când va detecta zidul, apoi se va deplasa înapoi până nu se va mai întoarce, apoi va merge din nou și așa mai departe. Să modificăm comportamentul în modul următor.

  1. Robotul simte dacă orice obstacol este mai mic de 3 cm în față.
  2. Dacă nu există niciun obstacol, acesta avansează.
  3. Dacă există un obstacol, se întoarce spre stânga, apoi înapoi la pasul 1.

Acest lucru va continua pana cand in cele din urma robotul va gasi o directie care nu are perete in limita a 3 cm.

Acum avem un mod de gândire, gândire, acțiune care ar putea funcționa pentru a ajuta robotul nostru să evite obstacolele. Nu este un model deosebit de sofisticat și am putea adăuga o mulțime de complexitate pentru a îmbunătăți evitarea obstacolelor.

Chiar și cu un robot simplu, simțul foarte complex, gândiți-vă, modelele actului pot fi proiectate pentru a crea comportamente foarte inteligente. Aceasta este esența roboticii - inteligentul în software-ul!

Comportamentul nostru actual este un pic ineficient, deoarece robotul trebuie să se întoarcă la stânga de trei ori, doar pentru a porni dreapta. Să ne modificăm comportamentul în felul următor, ca un al patrulea pas pentru a urma cele trei etape de mai sus:

4. Dacă există un obstacol, se întoarce spre stânga, apoi înapoi la pasul 1.

  1. Robotul simte dacă orice obstacol este mai mic de 3 cm în față.
  2. Dacă nu există niciun obstacol, acesta avansează.
  3. Dacă există un obstacol, se întoarce spre stânga și se simte din nou.
  4. Dacă nu există niciun obstacol, se mișcă înainte și buclă se resetează.
  5. Dacă există un obstacol, acesta se întoarce spre dreapta și simte din nou.
  6. Dacă nu există niciun obstacol, se mișcă înainte și buclă se resetează.
  7. Dacă există un obstacol, robotul continuă să se întoarcă până când nu există niciun obstacol.

Acum, robotul nostru va verifica ambele direcții pentru a vedea dacă există un perete, ceea ce înseamnă că robotul se va mișca mai eficient. Observați cum chiar comportamentul simplu începe să devină mai complex pentru a ilustra, totuși dacă ne gândim la acest comportament ca la o serie de bucle Sense, Think, Act, atunci devine mult mai ușor de înțeles!

Și acolo aveți. Am luat un caz foarte simplu de comportament Sense, Think, Act și l-am întărit într-un program de evitare a obstacolelor. Ar fi o sarcină foarte simplă de a traduce acest comportament în cod și de a începe să jucăm în jurul valorii de robotică! Și, bineînțeles, puteți adăuga mai mulți senzori de distanță și chiar și tipuri diferite de senzori pentru a face comportamentul și mai sofisticat. Doar amintiți-vă să o descompuneți în Sense, Think, Act și veți putea să o faceți. Și, bineînțeles, dacă căutați un kit de robot care include tone de senzori liberi, mergeți la Kickstarter!

Acțiune

Lasa Un Comentariu