Autonómna všesmerová robotická platforma schopná lokalizácie objektov

Stanislav Jochman, Michal Miškolci

Amavet klub 971, Amavet klub 549

O nás

Sme dvaja študenti z Gymnázia Alejová 1 v Košiciach a Gymnázia Viliama Paulinyho Tótha v Martine. Obaja sa dlhodobo zaujímame o informatiku, robotiku zúčastnujeme sa súťaží. Na tejto webovej stránke by sme Vám chceli ukázať našu poslednú prácu s názvom Autonómna všesmerová robotická platforma schopná lokalizácie objektov.

    Úlohy robota:
  • Zefektívnenie procesov v zdravotníctve
  • Pomoc v domove dôchodcov
  • Prenos nákladu v skladoch
  • Monitoring ľuďom neprístupných oblastí
  • Slúžiť ako edukačná platforma robotiky
Napísali o nás - Veda na dosah Napísali o nás - Quark

Vlastnosti všesmerovej platformy

  • 01Sledovanie objektov a ľudí termálnou alebo farebnou kamerou

    Vďaka zabudovanej kamere OpenMV s voliteľným kamerovým senzorom (farebná kamera, termokamera) je robot schopný sledovať objekty, na základe ich farby, tvaru alebo tepla, rozlišovať QR kódy, hľadať živočíchov, ľudí so zvýšenou teplotou a veľa ďalšieho. Spracované dáta z kamery sa posielajú skrz UART a slipring do hlavného mikrokontroléra Atmega2560.

  • Otočná platforma slúži na otáčanie modulov pripevnených na jej povrch. Má vysokú nosnosť a dokáže rotovať dookola bez obmedzenia uhlu vďaka slipringu, ktorý prenáša komunikačné signály cez UART, I2C a CAN bus. Uhol platformy je nastaviteľný nakoľko na otáčanie používa N20 motor s enkóderom. Tento motor je kontrolovaný PID algorimom s využitím našej vlastnej kontrolnej dosky, ktorá používa procesor Atmega328 a s hlavný procesorom komunikuje skrz I2C.

  • Robot používa omniwheel kolieska, ktoré mu umožnujú pohyb všetkými smermi. Každé koliesko je poháňané motorom s enkóderom. Tieto štyri motory sú ovládané vlastnými kontrolérmi našej výroby, ktoré používajú procesor Atmega328. Tieto kontroléry sa sa starajú o PID algoritmus a rôzne módy kontrolovania ako napríklad konštantná rýchlosť, presná pozícia a rýchlosť.

  • Na otočnej plošine je umiestnená výkonná BLDC turbína, u ktorej sa smer prúdu vzduchu dá ľubovoľne meniť. Taktiež je možné regulovať výkon vrtuľe. Táto vrtuľa sa dá použiť na hasenie ohňa prípadne chladenie dôležitých komponentov v nebezpečných, ľudom neprístupných oblastiach.

  • Celý robot je urobený modulárne, čo zabezpečuje rýchlu opravu a jednoduchú rozšíriteľnosť. Jednotlivé moduly vykonávajú pridelené funkcie a sú navzájom pospájané I2C zbernicou, UART a CAN bus zbernicou. To umožnuje hociktoréj komponente prevziať kontrolu nad celým systémom bez nutnosti preprogramovávať celého robota.

 

Mechanika robota

Mechanická časť robota pozostáva zo 3 statických a 1 otočného poschodia. Poschodia slúžia na upevnenie potrebnej elektriniky a senzorov. Celého robota sme nadesignovali v programe Fusion360 a každý diel bol pred vyrobením odsimulovaný a až po úspešnej simulácii vyrobený. Tento postup obmedzil počet dielov ktoré počas testovania robota zlyhali.

Všesmerový podvozok

Všesmerový podvozok zložený z omni-wheel kolies umiestnených po obvode, nami navrhnuté upevnenie kolies na osku motora 3D tlačenými nalisovanými valčekmi, držiak motora navrhnutý pre zachovanie minimálnej svetlosti a tak zachovanie stability robota.

Poschodia robota

Montážne poschodia ako modulárne platformy s možnosťou zameniteľnosti komponentov na nich, distančné stĺpiky spájajúce poschodia robota pre dosiahnutie pevnosti a stability robota.

Otočná platforma

Jedinečná otočná platforma robota so zabudovaným slipringom (krúžkovým zberačom) poháňaná N20 motorom s enkodérom remeňovým prevodom. Samotná platforma má množstvo montážnych dier pre doplnenie komponentov a zachovanie modulárnosti.

Materiál

Vhodne zvolený materiál poschodí – textit a kuprextit, pre ich pevnosť a malú pružnosť, vyrobených pomocou CNC frézy. Viaceré komponenty vytlačené na 3D tlačiarni pre ich postačujúcu pevnosť, nízku hmotnosť a vhodnú pružnosť (hlavne pri senzoroch nárazu). Komponenty prešli viacerými simuláciami, kde sa testoval ich tvar a vhodnosť materiálu.

Softvér robota

Softvér robota sme vyvíjali obaja. Program je rozdelený do niekoľkých hlavičkových súborov a je spravovaný github version control systémom.

PID regulátory

Využitie viacerých PID, PD regulátorov na udržanie konštantnej rýchlosti motorov, čo zvyšuje silu motorov pri nízkej rýchlosti, na kompenzáciu otočenia robota cez gyroskop a kameru, na nastavenie požadovanej pozície motora cez ich enkódery. Viaceré PID regulátory bežia naraz, čo zabezpečuje väčšiu funkcionalitu.

Nastavovanie PID zložiek

Možnosť úpravy jednotlivých zložiek PID regulátorov bezdrôtovo a priamo za chodu, čo výrazne urýchľuje ich nastavovanie a zlepšuje ich úspešnosť.

Komunikácia medzi kontrolérmi

Využitie I2C a UART komunikácie medzi senzormi, kontrolérmi pre vyššiu rýchlosť, jednoduchosť čítania dát a väčšej možnosti pridania ďalších komponentov

Algoritmy

Zabezpečenie prehľadnosti a jednoduchosti kódov, algoritmus na plynulú akceleráciu a spomaľovanie robota. Použitie neurónovej siete pre detekciu ľudí termokamerou.

Elektronika robota

Plošné spoje sme navrhovali v programe Eagle a nechali sme si ich vyrobiť v Číne. Následne sme plošné spoje osadili ručne.

Vlastné moduly na detekciu čiar

Vlastné PCB moduly na detekciu čiar obsahujúce procesor Attiny. Moduly na obsahujú 3 senzory na detekciu čiar. Sú umiestnené po obvode robota, dokopy 12 pevných senzorov ku ktorým sa dajú doplniť aj ďalšie senzory cez konektor na PCB.

Vlastný kontrolér motorov

Vlastný PCB modul spracúva údaje z enkóderov a pomocou PID algoritmu riadi motory. Kontrolér je kompatibilný s Arduino IDE.

Hlavný mikrokontrolér

Arduino Mega ovláda kontroléry motorov a číta dáta zo senzorov. Komunikuje s nimi cez I2C zbernicu a UART.

Napájanie

Pohon robota zabezpečuje 12V 2200mAh LiPo batéria umiestnená na druhom poschodí robota. Batéria poháňa motory a taktiež všetky kontroléry cez 5V step-down regulátor.

Testovanie robota

Po navrhnutí a postavení robota sme robota začali programovať. Na ukážkach dole môžete vidieť naše úspešné pokusy naších najdôležitejších algoritmov, ktoré sme pre robota vytvorili.

Kompenzácia vychýlenia

Robot pomocou dát z gyroskopu, akcelerometra kompenzuje výchílenie za použiťia 2 PID regulátorov.

Sledovanie farby s využitím openMV

Robot pomocou openMV kamery sleduje zelený objekt. Xová pozícia objektu kamera posiela hlavnému mikrokontroléru, ktorý túto pozíciu spracuje a pomocou PID regulátora riadi otáčanie robota.

Termálna kamera

Náš 1. úspešný test termálnej kamery. OpenMV kamera posiela nasnímane údaje zo senzoru FLIR Lepton do počítača, kde sú následne vykreslené.

Konštantná rýchlosť a sila

Univerzálna platforma musí byť schopná chodiť po rôznych druhoch povrchov. Jej rýchlosť sa taktiež nesmie meniť na základe váhy materiálu ktorý prenáša a preto sme vyvinuli algoritmus, ktorý zaručuje konštnatnú rýchlosť nezávisle od zaťaženia robota a od druhu povrchu. Tento algoritmus taktiež umožnuje robotovi dosiahnuť maximálnu silu aj pri malých rýchlosťiach.

Podrobnejšia dokumentácia

Podrobnejšie informácie o našom projekte sa dočítate v našej Stredoškolskej odbornej činnosti

Úspechy

Našu prácu na tomto robotovi sme prezentovali na mnohých súťažiach v priebehu školského roku a robota sme stále vylepšovali, ladili a robili modulárnejšieho. V týchto súťažiach sme obsadili hneď niekoľko výnimočných miest nielen na Slovensku, ale aj v zahraničí.

  • All
  • Amavet
  • Vernadský contest
  • SOČ

Náš tím

Náš tím pozostáva z dvoch členov, čo sťažovalo špecifikáciu v tíme no aj tak sme si úlohy rozdelili. Nakoľko pochádzame z Košíc a Martina pracovali sme väčšinu času na diaľku, absolvovali sme mnoho online meetingov a diely sme si posielali poštou. Napriek vzdialenosti sme sa pár krát stretli a pracovali na robotovi spolu.

Stanislav Jochman

HW designer, Programátor, Web programátor, Web designér

Mám 19 rokov a vo voľnom čase vytváram Webové stránky, programujem v Pythone, programujem Arduino a vyvýjam Hardware. Pravidelne sa zúčastňujem roboticých súťaží, táborov, ktoré mi poskytujú nové príležitosti rozvoja a nastolujú mi prekážky. Taktiež vytváram webové stránky na zakázku.

Michal Miškolci

Poster designer, Programátor

Mám 18 rokov a vo voľnom čase sa venujem vývoju hardvéru a programovaniu. Okrem účastnenia sa robotických súťaží, z ktorých si často odnášam nové kontakty poskytujem aj mentoring Arduina, programovania.

Mohlo by Vás zaujímať

Pripravili sme si pre Vás taktiež sekciu najčastejších otázok ohľadom našej práce a samotnom robotovi. V prípade, že otázka nieje zodpovedaná nižšie neváhajte nás kontaktovať skrz formulár.

  • Koľko hodín ste strávili vyvíjaním a programovaním robota?

    Vývoj robota trval pomerne dlho(niekoľko stovák hodín). Robota sme si najprv nakreslili a odsimulovali v počítači a až po optimalizácii sme sa pustili do stavby. Aj po dostavaní robota bolo nutné niektore mechanizmy prípadne komponenty vymeniť za iné, ktoré vykonávajú danú úlohu efektívnejšie. Programovanie zabralo asi najviac času nakoľko robot obsauje 9 procesorov a každý z nich má v sebe náš program. Je však pravda, že procesory na senzorových doskách majú na 99% zhodný program. Napriek tomu má náš program niekoľko tisíc riadkov.

  • Cena robota sa pohybuje okolo 800€ - 1000€ no cena vývoja je samozrejmä väčšia. Navyšujú ju nutné výmeny komponentov po ich zlyhaní, odpadový materiál a nákup nástrojov. Na vývoj a prezentáciu robota sme potrebovali zhruba 2500€. Väčšinu sme získali vďaka nadádcii EPH, sponzorstvu PCBWay a naších škol. Napriek tomu sme do robota investovali zhruba 500€.

  • Našou najväčšou inšpiráciou pre vytvorenie robota bola uplatniteľnosť v praxi ako aj výzva spojená s konštrukciou všesmerového robota. Takéto roboty sa dajú použiť v skladoch na manipuláciu predmetov, v nemocniciach na manipuláciu pacientov a nosenie liekov pacientom, no aj v domovoch dôchodcov na roznášanie obedov a liekov.

  • Kedže sme v tíme iba 2 museli sme si rozdeliť úlohy a nemohli sme sa každý špecializovať iba na jednu konkrétnu. Po rozdelení úloh mali niekoľko online meetingov kde sme sa dohodli, do kedy spravíme jednotlivé veci. Kedže Mišo mal prístup k CNC fréze robot začal vznikať u neho v Martine. Ja som pracoval na 3D dieloch ktoré som následne vytlačil na 3D tlačiarni a poslal Mišovi poštou. Väčšinu kódu a senzorov sme vytvárali na diaľku no v nevyhnutných prípadoch sme sa na pár dní zišli a dali hotové veci dokopy.

  • Medzi naše plánované vylepšenia rozhodne patrí pretvorenie všetkých plošných spojov na profesionálne vyrobené vo fabrike. Taktiež by sme radi dodali Jetson Nano pre vačší výpočetný výkon, ktorý umožní lepšie a rýchlejšie sledovania kamerou. Vytvorenie plášťa(karosérie) na robota a odpruženie sú vylepšenia na ktorých pracujeme momentálne takisto ako aj na vylepšovaní programu.

Kontaktujte nás


Vytvoril Stanislav Jochman