Swirl
Autor: sebathorus -29/09/2011-
Salutare
In cele ce urmeaza va voi prezenta constructia robotului SWIRL cu care am participat la concursul Search & Rescue propus de Gabi (Ro-Bot-X) pe site-ul LMR.
Regulamentul prevede ca fiecare robot participant la concurs sa navigheze in mod autonom printr-un labirint cu latimea minima a culoarelor de 12 inch, sa gaseasca o jucarie plasata in labirint, sa o ia printr-o metoda oarecare (nu exista restrictii) si sa o scoata din labirint. Dimensiunea robotului trebuie sa fie mai mica de 12 inch.
Pana la locul in care se gaseste jucaria, robotul trebuie sa faca cel putin 4 curbe iar jucaria nu are voie sa aiba nici un element care sa o faca mai usor detectabila, balize, elemente reflectorizante, etc. De asemenea robotul nu are voie sa “vada” peste ziduri.
Labirintul l-am facut din carton de 1mm, iar inaltimea peretilor este de 17 cm. Din cauza grosimii foarte mici a peretilor, 1 mm, am avut ceva probleme la intoarcerile de 180 de grade, deoarece senzorii pierdeau foarte usor peretele din raza de detectie. Pentru a elimina aceasta problema am lipit cate o fasie de carton de 3-4cm pe capetele libere ale peretilor pentru a le “da grosime”.
Constructia partii hardware a robotului a fost destul de simpla si a durat 2-3 zile.
Partea de procesare si control este asigurata de un Arduino Uno plus un shield facut de mine cu scopul de-a conecta mai usor servomecanisme. Partea de deplasare este asigurata de 2 servouri standard, modificate pentru rotatie continua, fiecare servo avand atasata cate o roata cu diametrul de 70mm. In spatele robotului se afla o roata cu miscare libera.
Pentru detectia peretilor si a obstacolelor pe lateralele robotului am folosit 2 senzori Sharp iar pentru detectia obstacolelor si peretilor din fata robotului am folosit un senzor homemade format din 4 LED-uri ultrabright si 3 fotorezistoare.

Pentru prinderea “tintei” am proiectat un ansamblu cu un cleste actionat de un servo care la randul sau era deplasat sus-jos de un al doilea servo. Aceasta solutie nu a ajuns sa fie folosita datorita dificultatilor pe care le voi descrie in continuare.
Alimentarea am realizat-o cu ajutorul unui acumulator LiPo 7,4V – 1200mA si a unui stabilizator de tensiune de 5V.
Prima abordare a fost de a programa robotul sa detecteze jucaria cu ajutorul senzorului frontal amintit mai sus, sa o apuce cu gripperul (cleste) iar apoi sa se intoarca la intrarea/iesirea din labirint optimizand daca era posibil traseul de intoarcere. Simplu, nu? Nici vorba
Una dintre cele mai mari probleme este detectia obiectului plasat in labirint. Daca detectia unui obiect izolat nu este foarte complicata, treaba se schimba radical in cazul unui obiect plasat in apropierea unui perete.
Evidentierea caracteristicilor unui obiect de mici dimensiuni (cativa cm) aflat pe fondul altui obiect s-ar putea realiza probabil cu ajutorul unei camere video + procesarea aferenta sau un senzor de mare rezolutie (laser?)+procesarea aferenta. Din pacate senzorul meu cu fotorezistente nu este nici una nici cealalta, asa ca dupa numeroase teste si incercari acesta metoda a esuat si a fost abandonata
De la metoda “detecteaza si apuca” am trecut la metoda “apuca ce poti si da-ti seama ca ai facut-o” ?!?!?!
Treaba e mai simpla decat pare. In locul ansamblului cu clestele, am montat un cerc facut dintr-o banda de plastic pe care am prins o banda de velcro (scai) care este rotit continuu de servoul care ar fi trebuit sa ridice clestele. Pe jucarie (o zana
, nu am gasit altceva mai potrivit in cei 1,5 metri cubi de jucarii ai junioarei mele) este montata cealalta jumatate de scai.
In timp ce robotul se deplaseaza prin labirint, cercul se roteste continuu. In momentul in care jucaria este atinsa, cele 2 jumatati de scai se lipesc iar zana este transportata spre spatele robotului unde agata parghia unui intrerupator si inchide un contact.
In momentul in care se inchide contactul, rotorul nu se mai…roteste iar robotul face stanga-imprejur si porneste spre iesire.
Aici aveti cateva poze cu robotul:






Iar aici una dintre parcurgerile labirintului si salvarea zanei – http://www.vimeo.com/29541322.
Iar aici puteti vedea personalitatea si hotararea care i-au caracterizat inceputul carierei precum si viziunea unica asupra aspectului pe care ar trebui sa-l aiba un labirint – http://www.vimeo.com/29601814.
-=Seba=-
Vezi aici detalii complete.





Musat Cristian
October 1st, 2011
Felicitari pentru robot, si felicitari pentru ca ai castigat. Am vrut si eu sa particip la la acest concurs si m-am gandit la aceeasi metoda cu un brat robotic, dar pana imi vine bratul din china… se pare ca mai am de asteptat. Pentru prima metoda pe care ai vrut sa o folosesti ca sa detectezi zana:
Planul meu era sa montez 4 senzori la distante de 1cm intre ei si sa masor distantele pe care mi le afiseaza fiecare senzor, distantele apropiate ca valoare le egalam, iar senzorul care afisa o valoare diferita, si mult mai mica fata de restu, acolo se afla “victima”.
Ca sa nu am probleme cand fac intoarcerile prin labirint, senzorii nu sunt cititi in timpul acelei operatiuni.
Am prezentat ideea mea in mare nu am intrat in detalii exacte, e cu aproximatie.
Inca odata felicitari pentru robotul realizat!!! si cat mai multi romani sa castige competitiile!!
Ro-Bot-X
October 2nd, 2011
Felicitari inca o data pentru castigarea concursului! Mi-a placut modul original in care ai rezolvat problema apucarii jucariei. De asemenea, mi-a placut ca ai programat robotul sa detecteze gasirea ei si sa se intoarca la iesire, spre deosebire de continuarea drumului prin labirint pina la iesire.
Am ridicat stacheta competitiei, asa ca poti continua constructia bratului si detectia obiectului de catre senzori de distanta. Scopul competitiei a devenit localizarea si aducerea unei beri la doza (can) de lina frigiderul din bucatarie pina linga canapea in sufragerie. Ideal ar fi sa poti spune: Robot, adu-mi o bere! si acesta sa porneasca voios de linga canapea, sa gaseasca berea si sa o aduca inapoi linga canapea. Ma rog, poate sa fie la fotoliul din fata calculatorului, ca de, noi petrecem mai mult timp in fata lui decat pe canapea in fata televizorului.
Primul pas este facul, si anume navigarea prin labirintul casei. Desigur, in casa pot exista si obiecte ce pot ingreuna navigarea, ramane la discretia fiecaruia modul de evitare a aglomerarilor, dar in principiu nu se doreste pre-programarea traseului (inainte 200cm, dreapta 90 grade, inainte 300cm, stanga 90 grade, etc.). Scoaterea berii din frigider ar fi pasul urmator al competitiei, deoarece este mai dificil si necesita o constructie mai complicata a robotului (deschiderea usii, brat extensibil, detectia berii intre diverse lucruri aflate in frigider). Competitia nu mai are o data fixa de sfarsit, pentru a permite constructorilor timpul necesar realizarii si testarii robotului. Premiul va fi un “device” in jur de $100, la alegerea castigatorului.
Succes participantilor!
sebathorus
October 4th, 2011
@Cristian
Multumesc pt aprecieri.
Cam asa era si planul meu cu detectia obiectului dar din pacate nu functioneaza decat in anumite cazuri particulare, de exemplu daca jucaria este pe mijlocul culoarului si destul de departe de zid.
Daca obiectul este foarte aproape de zid iar robotul nu este PERFECT perpendicular pe zid, ceea ce se intampla foarte rar, atunci exista posibilitatea ca o portiune a zidului sa fie mai apropiata de robot decat obiectul cautat si sa fie in mod gresit identificata drept obiectul cautat.
Cu doar 3-4 senzori montati fix cred ca este destul de greu de detectat obiectul. Dar daca deja ai construit ansamblul celor 4 senzori, presupun ca nu ai nimic de pierdut incercand sa rezolvi asa problema detectiei. Este posibil ca in cazul meu, problema sa fi fost data si de faptul ca senzorii mei sunt bazati pe fotorezistente, acest lucru facandu-i destul de imprecisi si lenti.
O posibila rezolvare ar fi montarea unuia sau mai multor senzori pe un suport mobil care sa scaneze un arc de cerc in fata robotului. Astfel obtii mai multe puncte si poate asa reusesti sa diferentiezi obiectul de zidul din spatele sau.
Iti doresc bafta la rezolvarea problemei si sa ne tii la curent cu rezultatele testelor.
-=Seba=-
sebathorus
October 4th, 2011
@Gabi
Noua ta provocare este, cred, urmatorul pas logic dupa rezolvarea navigarii prin labirint, desi sunt convins ca vor mai fi “cateva” provocari in plus, navigare intr-o locuinta este destul de diferita de mediul controlat pe care-l reprezinta un labirint .
Planuiesc de ceva timp sa construiesc un robot mai mare care sa-mi permita montarea unui(unor) brate mai mari si mai puternice, sa poata suporta o incarcatura mai mare si poate chiar sa adaposteasca un sistem miniITX sau ceva echivalent.
Cel putin in prima faza navigarea va fi bazata pe senzori de distanta + encodere + harta stocata in memorie.
Nu va avea un traseu preprogramat ca cel din exemplul tau, dar va avea niste rute pe care sa le urmeze care sa-l ajute sa-si atinga destinatiile si o baza de date cu locatiile din casa si obiectele atasate locatiilor. De exemplu, sa stie daca este in sufragerie in ce parte trebuie sa mearga sa ajunga in bucatarie sau in hol, baie, etc., fara sa fie nevoie sa caute frigiderul sau alte obiecte in toata casa.
Sper sa se descurce asa pana in momentul (daca va fi unul) in care va naviga pe baza imaginilor capturate cu o camera video.
De asemenea cutiile sau rafturile unde se afla obiectele vor avea marcaje care sa ajute la localizarea lor precisa si la pozitionarea bratului pentru a le putea apuca.
In momentul in care voi avea ceva concret de prezentat voi deschide un post nou in care va voi tine la curent cu evolutia robotului.
-=Seba=-
Mihai
October 19th, 2011
Salut, foarte interesant robotul. Si eu am un proiect de licenta asemanator, doar ca eu as vrea sa si cartografieze acel labirint.
Daca se poate as vrea sa vad codul folosit de tine pentru a memora traseul si a se intoarce automat spre iesire.
Multumesc anticipat.
Mihai
October 19th, 2011
Daca se poate sa vorbim da-mi un mail pe moradu7@gmail.com.
Concurs Robofun 2012 | Robofun Blog
February 5th, 2012
[...] – Statie meteo cu Mac, ROBOTL – robot cu retele neurale, Animatronic Hand, Swirl, Smart Home Management System, Radar Arduino, Valkirie [...]