Hexapod Ignác
Zo stránky SensorWiki
Autori: | Martin Psotka, Vladimír Beňák | |
Študijný odbor: | Robotika a kybernetika | 3. Bc. (2019) |
Opis projektu
Cieľom tohto projektu bolo zdokonalenie už existujúceho HEXAPODU, čo je šesťnohý kráčajúci robot svojou stavbou pripomínajúc pavúka.
Po menej úspešnej účasti na robotickej súťaži ISTROBOT, ktorá sa konala v roku 2018 sme analyzovali nedostatky nášho kráčajúceho HEXAPODU. Z analýzy sme zistili, že robot nedodržuje požadovaný smer kráčania a neudržuje svoj pohyb vo vymedzených hraniciach. Táto zmena smeru je spôsobená nepresným dosahovaním požadovaných polôh servomotorov, ktoré pohybujú končatinami robota a tým udávajú robota do pohybu.
Analýza 1
Problematiku HEXAPODU sme zaznamenali postupným získavaním skúseností v tejto oblasti. Už pred účasťou na súťaži ISTROBOT 2018 sme zaznamenali problém s HEXAPODOM, kedy sme postrehli, že robot nie je schopný udržať sa vo vymedzených hraniciach na dráhe určenej pre robotí šprint. Keďže v tom čase sme nemali čas na nápravu tohto problému, tak problém sme riešili postupným ladením jednotlivých servomotorov. Žiaľ tento spôsob sa nám neosvedčil, pretože sme zistili, že akokoľvek prestavíme požadovanú hodnotu, tak servomotor nám presne túto hodnotu nedosiahne z dôvodu menšej nosnosti jednotlivých motorov. Naším návrhom bolo odstránenie prebytočných častí systému, ktoré neboli využívané. Z toho dôvodu sme sa rozhodli pre odstránenie jedného kĺbu (servomotoru), ktorý nebol využívaný a zbytočne zaťažoval konštrukciu robota. Týmto spôsobom by sa mala konštrukcia odľahčiť a motory by mali väčšiu šancu dosiahnuť požadovanú polohu.
Analýza 2
Po vykonaní analýzy 1 a následne po aplikácií jednotlivých krokov, ktoré mali vyriešiť analyzovaný problém sme zistili, že problém pretrváva. Z toho dôvodu sme sa rozhodli implementovať kameru k mikropočítaču Raspberry pi3, ktorá nám ponúka vizuálny kontakt s okolím a vďaka tomuto vizuálnemu kontaktu získavame spätnú väzbu za pomoci ktorej dokážeme presnejšie riadiť pohyb robota.
Popis riešenia
Návrh novej končatiny
Po vykonaní analýzy 1 sme zistili, že musíme nanovo navrhnúť nohy robota. Po prekonzultovaní možnosti sme sa rozhodli odstrániť 3. kĺb, ktorý pre náš robotí šprint bol nevyužívaný. V online 3D modelovacom prostredí ThinkerCad sme si tieto nohy navrhli . Nohy sme navrhli tak, že namiesto servomotoru, ktorý tvoril kĺb nohy sme vytvorili spoj medzi jednotlivými článkami nohy. Kvôli odľahčeniu sme pridali do nohy výrez taký, aby nastalo, čo najväčšie odľahčenie a zároveň sa zachovala pevnosť nohy. Následne sme si navrhnuté nohy vytlačili za pomoci 3D tlačiarne.
Implementácia kamery
Keďže náš odhad v analýze a riešení 1 sa neosvedčil, tak sme sa rozhodli vykonať 2. analýzu, v ktorej sme sa rozhodli pre implementáciu kamery, ktorá ponúka spätnú väzbu s prostredím, v ktorom sa robot nachádza. Jedná sa o kameru Arducam 8 MP Sony IMX219, ktorá poskytuje pohľad rybieho oka. Na upevnenie kamery sme si vytlačili nami navrhnutý držiak, taktiež v prostredí ThinkerCad. Ku kamere bol vytvorený algoritmus, ktorý môžeme vidieť opísaný nižšie.
Použité komponenty
- Raspberry Pi 3
- Časti tela vytlačené na 3D tlačiarni
- 12 servomotorov
- Kábliky
- 2 tlačidlá
- Powerbanka
- Batéria na napájanie motorov
- Kamera pre Raspberry Pi
Algoritmus a program
Program na riadenie robota sme vytvorili v programovacom prostredí MATLAB & Simulink 2019a za pomoci podporných balíkov pre Raspberry Pi. V prostredí Simulink, konkrétne v bloku Stateflow, ktorý slúži na tvorbu udalostných systémov, sme ovládali chod jednotlivých servomotorov, a teda sme v ňom vytvorili schému chôdze a bloky, ktoré riadili jeho otáčanie. Z obrazu získaného z kamery sa po spracovaní vyhodnocuje v MATLAB Funkcii, či sa robot nepriblížil k čiare. Ak sa priblíži k pravej alebo ľavej čiare, tak sa pootočí do opačnej strany.
Zdrojový kód: serial.h a main.c
Výsledok
Na obrázku nižšie môžeme vidieť riadený pohyb robota za pomoci kamery.