Jump to content
ELFORUM - Forumul electronistilor

Robo-caine


Recommended Posts

De un timp lucrez la un robot care trebuie sa-si urmareasca utilizatorul, intocmai ca un... caine. Pare simplu , dar sarcina se complica cand e sa o pun in practica.

 

Am pornit cu un rover 4x4:

Posted Image

 

I-am distribuit spatiul interior, lasand loc pentru pachetul de baterii pe centru, care e destul de greu:

Posted Image

 

Creierul robotului e un microcontroler Atmega128. Am contruit o placuta care expune pinii pentru interconectare ulterioara usoara:

Posted Image

 

In acest punct planul e urmatorul: montez un modul GPS pe robot, si un modul bluetooth (amandoua conectate prin uart la atmega128) , utilizatorul foloseste un telefon cu GPS si bluetooth (de ex. un telefon cu Android). Telefonul se conecteaza prin bluetooth la robot, si raporteaza pozitia proprie luata prin GPS. Robotul, folosind GPS-ul propriu, calculeaza cum trebuie sa se deplaseze ca sa poata ajunge langa utilizator, si sa-l insoteasca, "la pas".

Modulul GPS montat pe robot, si codul pentru interpretarea NMEA au fost implementate cu succes:

Posted Image

 

I-am construit un h-bridge dublu, pentru controlul motoarelor:

Posted Image

Iata un prim test:

miao-Yv_xWo

 

Am conectat si modulul de Bluetooth, si am scris un soft pentu Android, care sa-mi permita controlul de la distanta (max 10 m) al robotului:

R6vbkIuUhjs

Designul e reusit, foarte compact, cu LCD-ul montat "scufundat" in partea din fata a robotului. Va afisa diverse informatii si parametrii interni.

Posted Image

 

Vesti destul de proaste. Erorile GPS sunt prea mari pentru a permite robotului sa urmeze utilizatorul (de ordinul zecilor de metri). Asta inseamna ca in loc sa identifice pozitia corecta a utilizatorului, robotul ar "gravita" la intamplare pe o raza de 10m in jurul pozitiei reale a acestuia, complet inacceptabil pentru scopul propus:

Posted Image

Am decis sa schimb abordarea: utilizatorul va tine un emitator de ultrasunete, iar robotul , printr-o retea de sensori va detecta pozitia acestuia, si se va deplasa corespunzator. Am realizat PCB-urile pentu acestia si primele rezultate arata promitator:

Posted Image Posted Image

9d8HmCxB158

Frontal, doi senzori pot determina directia de provenienta a semnalului si pozitia utilizatorului:

Posted Image

 

Testele au aratat nevoia de a monta inca 3 senzori, unul in spate, unul in stanga si unul in dreapta. Acestia trei vor determina rotirea robotului spre sursa semnalului. Apoi senzorii frontali vor detecta directia exacta si vor comanda deplasarea robotului:

Posted Image Posted Image

 

De dragul esteticii, am adaugat leduri frontale albe, si rosii de pozitie in spate. In fata am montat un senzor de distanta cu infrarosii, pentru a putea evita obstacolele. Arata foarte bine:

Posted Image

Posted Image

 

In curand sper sa termin softul si sa pot realiza un test afara. Miscarea nu e inca suficient de fluida , dar lucrez sa o imbunatatesc. Sugestiile voastre sunt binevenite.

Link to comment
  • Replies 9
  • Created
  • Last Reply

Top Posters In This Topic

Am finalizat acest proiect, lung, dar si foarte interesant, din care am invatat multe.

 

Ca ultim pas, am construit emitatorul de ultrasunete, sub forma unui modul usor de tinut in mana. Cu un buton emit utlrasunetele, pe care robotul le detecteaza pentru a ma putea urmari.

 

Detaliile de contructie sunt postate aici: http://www.pocketmagic.net/2013/02/andr ... -2/#130501

 

Iata doua filme demonstrative - se comporta bine si afara:

omh-m_DDcfw

 

ECS1E6e6xes

Link to comment
  • 3 weeks later...

Pe ultima suta de metri, am facut unele modificari in software, care au imbunatatit felul in care se comporta robotul:

 

1) Pentru partea de comportament autonom, secventa de urmarire a utilizatorului:

Am imbunatatit algoritmul care detecteaza sursa semnalelor ultrasonice, dar si logica folosita in deplasare, care urmareste sursa semnalului: acum robotul va urmari utilizatorul cu o mai buna precizie, dar si viteza va varia in functie de semnalul detectat: daca robotul simte utilizatorul la o distanta mai mare, se va indrepta inspre acesta cu o viteza mare, in timp ce pentru apropiere, va folosi viteze mai mici. Calculele viteza/distanta nu sunt liniare, si am cautat cea mai buna formula. Sunt multumit de rezultat, se poate vedea un progres, fata de cele doua filme anterioare:

UuYxDldQtn4

 

2) Pentru partea de telecomandare, unde utilizatorul comanda robotul de la distanta, folosind un telefon, mi-a venit idea de a transmite datele citite de senzorul frontal, date care indica distanta pana la cel mai apropiat obstacol, catre telefon, si sa reprezint grafic apropierea de un eventual obstacol. Astfel programul Android acum afiseaza o linie rosie, care se apropie sau se indeparteaza de centru in functie de cat de aproape se afla robotul de un obstacol detectat. Functioneaza ca un radar, si permite controlul la distanta si cand nu putem vedea robotul: in acest fel il pot deplasa fara sa il lovesc:

1ZRPEJxP-IY

 

Intregul jurnal al acestui proiect e disponibil aici: http://www.pocketmagic.net/2013/02/andr ... bot-part-2

Link to comment

Subscriu in totalitate la ce a zis antevorbitorul meu! :aplauze Din pacate m-am lasat in urma cu multi ani de MCU & Co dar urmaresc cu interes realizarile altora si ma bucur pentru ei ca au timpul si mai ales capacitatea de a realiza asaceva. Ma bucur si mai tare daca pot contribui si eu cu ceva, cel putin cu o idee.Ideea mea in cazul de fata ar fi o turela cu 4 "tunuri" (4 dintre senzorii pe care-i folosesti momentan) asezate in forma de +. Turela e suficient sa se poata roti 90 de grade. Diferenta e ca, in loc sa-mi rotesc tot corpul ca sa ma orientez, mi-as putea roti doar capul (sau doar ochii). Cred ca ar ajuta mult la "cursivitatea" miscarii.Pe viitor, aceste tunuri s-ar putea inlocui cu niste module emitator-receptor, de care am vazut ca detii si ar rezulta un veritabil radar ultrasonic. Astfel robotul si-ar putea crea o harta a lumii inconjuratoare si ar putea chiar invata sa urmareasca un punct care se deplaseaza pe aceasta harta, in acest fel eliminand emitatorul.

Link to comment

Asa e, sistemul diferential e o mica bijuterie pentru cei ce construiesc genul asta de roboti - foarte manevrabil, in special posibilitatea de intoarcere pe loc.

 

Cu timp in urma , am incercat o platforma asemanatoare cu doar doua motorase, ca sa fac economie de piese, din pacate e nevoie de 4, cu 2 nu a functionat prea bine la rotire:

http://www.youtube.com/watch?feature=player_embedded&v=

WnrERopbXD8

Suna a chin :rade:

 

http://www.pocketmagic.net/2009/07/anot ... -platform/

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines