Obsah:

Samochodný robot: 7 kroků
Samochodný robot: 7 kroků

Video: Samochodný robot: 7 kroků

Video: Samochodný robot: 7 kroků
Video: Kamerová prohlídka potrubí vzduchotechniky pro kuchyně 2024, Listopad
Anonim
Samochodný robot
Samochodný robot

Co jsem udělal?

● Robot, kterého lze vycvičit, aby chodil (pohyboval se vpřed) po různých površích. Bot zobrazuje jednoduché stvoření se 4 nohama bez kolen, které se snaží pohnout vpřed. Ví, že dokáže každou nohu orientovat pouze třemi možnými způsoby. Nyní musí vymyslet nejlepší možné kroky, které může podniknout, aby se mohl hýbat. Protože jeho pohyb také závisí na tření s povrchem, věříme, že pro každý jiný povrch, po kterém jde, bude existovat jiný (ne nutně jedinečný, ale pravděpodobně podobný) soubor kroků, aby se maximalizovalo jeho úsilí o pohyb vpřed.

K čemu slouží?

● Nejlépe se používá k vizualizaci vzorců chůze pro AI ROBOT.

Krok 1: Vývojový diagram

Schéma toku
Schéma toku

Zde rozpis celého projektu. Obecně je projekt rozdělen na 2 části elektroniky s mechanickou strukturou robota a druhou je algoritmus běžící přes počítač a kód běžící přes arduino.

Krok 2: ZAPOJENÉ HLAVNÍ KOMPONENTY:

Elektronika

Arduino UNO (!)

Ultrazvukový senzor

Servomotory

Bluetooth modul

Kódování

Arduino IDE

Teraterm

Notebook Jupyter

Algoritmus učení Q

Krok 3: MODUL V1:

MODUL V1
MODUL V1

Posílení učení: Pomocí ANN (Artificial Neural Network) jsme plánovali trénovat našeho robota a přišli jsme na dvě možné metody.

Omezení: Každá noha (servomotor) je nucena zaujmout pouze 3 možné polohy 60, 90 a 120 stupňů. Předpoklady: Domníváme se, že pohyb robota bude představovat 4 stavy (stav je určitou orientací všech čtyř serv), tj. Budou existovat 4 různé stavy robota, které budeme považovat za 4 kroky, což nám poskytne jeden cyklus pohybu, který se robot posune o určitou vzdálenost dopředu. Tento cyklus se bude opakovat do nekonečna, aby se robot pohyboval.

Jediným problémem však byl počet iterací, které měly být posouzeny - pro každý motor máme 3 možné orientace a existují 4 různé motory, což činí 3^4 = 81 stavů, ve kterých může robot existovat v jednom kroku nebo stavu. K dokončení jednoho komplexního pohybu musíme provést 4 různé kroky, což znamená, že 81^4 = 43, 046, 721 možných kombinací je třeba zkontrolovat pro maximální účinnost pro jeden pohybový cyklus. Předpokládejme, že trénování jednoho stavu trvá 5 sekund, dokončení školení by trvalo 6,8250 let!

Krok 4: MODUL V2:

Algoritmus Q-učení

Algoritmus učení s časným posilováním vyvinutý pro trénování věcí s konečným stavem a hledání nejkratších cest. zdroj:

Matematika algoritmu: Existuje 81 možných stavů pro každý krok, ve kterém může být robot, tyto stavy pojmenujeme jako čísla od 1 do 81 a nyní chceme vědět hodnotu přechodu, což znamená změnu polohy robota (vzdálenost přesunuta) zatímco se pohybuje z náhodného stavu s1 do jiného stavu s2 (s1, s2 z těchto 81 stavů). Můžeme ji vidět jako matici s 81 řádky a 81 sloupci, kde prvek matice bude roven hodnotě vzdálenosti, ze které se přesunul, odpovídající číslu jejího řádku a sloupce. Tyto hodnoty mohou být kladné nebo záporné v závislosti na činnosti robota ve skutečném slově. Nyní najdeme uzavřenou smyčku stavů, kde vzdálenost, kterou urazí, je vždy kladná. Budeme vyhodnocovat hodnoty matice 81x81, které jsou 81^2 = 6561, nyní pokud trvá 5 sekund, než se tyto hodnoty uloží do matice, pak bude Výroba celé matice zabere pouze 9,1125 hodiny a poté lze snadno zjistit smyčku kroků k maximalizaci efektivity pohybu.

Krok 5: ZAPOJENÉ PROBLÉMY -

  1. V některých státech byl pohyb robota velmi nerovnoměrný a ovlivňoval hodnotu senzoru ultrazvuku, bot se nakláněl a snímal vzdálenost od vzdálené stěny.
  2. Problém odpojení od notebooku a restartování arduina, který způsobil, že se trénuje od hodnoty 0, byl velmi dráždivý.
  3. Sledování nepřetržitého vlaku robota bylo velmi vyčerpávající.

Krok 6: MODUL A1 a A2:

  • Mechanická část obsahuje podvozkovou desku se čtyřmi servy, která jsou k ní připevněna. Na výrobu nožiček jsme použili tyčinky ze zmrzliny.
  • Náš hlavní úkol - sledovat vzdálenost robota od jeho počáteční polohy.
  • Náš první přístup byl použít gyroskopický senzor a použít akceleraci robota při jeho pohybu, aby se extrahovala jeho rychlost a následně jeho poloha.
  • Problém - Ukázalo se, že implementace je příliš komplikovaná! Alternativa - omezili jsme pohyb robota pouze na 1 rozměr a pomocí ultrazvukového senzoru měříme vzdálenost od zdi přímo vpředu.
  • Modul HC05-Bluetooth byl během tréninku použit k přenosu rychlosti přechodu na vzdálenost mezi dvěma kroky do PC a tam byla data uložena v matici.

Krok 7: Odkaz na videa:

Odkaz na videa
Odkaz na videa

Kroky pro děti:

Tréninkový záběr:

Téměř rovně:

Video tančícího robota:

Final Vide0:

Doporučuje: