Obsah:
Video: Samoučiaci sa chaotický robot: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Máte záujem o strojové učenie, AI a roboty? Nepotrebujete pracovať na nejakej luxusnej univerzite. Toto je popis môjho chaotického robota. Je to veľmi jednoduchý robot, ktorý demonštruje, ako používať kód vlastného učenia a ako ho implementovať do platformy arduino, v tomto prípade kvôli Arduino. Je to veľmi lacná platforma!
Kód vyvíja robota tak, aby sa robot naučil plaziť. Získava spätnú väzbu od myši, ktorá je ťahaná za sebou. Kód je „genetický“. To znamená, že je testovaných niekoľko jedincov a tí najlepší sú držaní a budú mať deti. To znamená, že kód sa vyvíja evolučným spôsobom.
Krok 1: Hardvér AKA robot
Potrebuješ:
- splatnosť 1 Arduino
- 8 mikroslužieb
- 1 myš PS/2
- 1 radič prevodov
- nejaký variant senzorového štítu alebo podobný, štítový senzor som unavený a navaril som si vlastný.
-drôty
-externý 5V zdroj pre servá
- nejaké kúsky kovového šrotu, nejaké lepidlo a nejaké oceľové vlákno. A páska!
Položte teda Due na podlahu. Okolo dajte serva do krúžku. Dajte ich dohromady so šrotom, lepidlom a niťou. Toto je časť chaosu! Pretože je dizajn chaotický, nie je možné predvídať, ako sa pohybovať, aby sa mohol plaziť. To je dôvod, prečo je samoučiaci sa kód správnou cestou!
Tipy: použite niekoľko dosť ťažkých kovových dielov, ktoré robotovi uľahčujú pohyb.
Pripojte servá k príslušnému, v mojom prípade sú pripojené k D39, 41, 43, 45, 47, 49, 51, 53.
Pripojte serva k externému 5V zdroju. Za týmto účelom postavte nejaký štít, alebo použite štítový štít alebo podobný. NEDÁVAJTE servá z kolíka 5 V, nestačí, Due sa pripáli. Na distribúciu 5 V na všetky servá som použil malú prototypovú dosku. Táto doska obsahuje aj radič úrovne hodín a dátových liniek myši PS/2. Doska napája myš aj 5V. Nezabudnite pripojiť uzemnenie z externého napájania na uzemnenie Arduino! schémy ukazujú, ako to všetko prepojiť.
Pripojte PS/2 k napájaniu (5 V) a uzemneniu. Pripojte hodinový a dátový riadok PS/2 k Due pomocou radiča úrovne. (vzhľadom na napätie 3,3 V, PS/2 na 5 V). Pripojte hodiny na D12 a dáta na D13.
Pre podrobnosti o protokole PS/2 je to veľmi dobrý návod:
www.instructables.com/id/Optical-Mouse-Od…
Knižnica PS/2 od jazzycamel, ktorú som použil:
Krok 2: Kód
Na začiatok mi dovoľte povedať: NIE SOM programátor. Niektoré časti sú veľmi rozsiahle, skúsený programátor by to samozrejme mohol skrátiť a tak a tak.
Kód je samoštúdium a to je jadro projektu. Toto je jej zábavná časť! Znamená to, že robot sa vyvíja a je stále lepší a lepší, v tomto prípade sa zlepšuje pri plazení. Úžasné na tom je, že robot sa bude vyvíjať tak, ako mu budete kedykoľvek dávať spätnú väzbu. V tomto prípade ťahá myš PS/2 a čím dlhšie je myš potiahnutá, tým vyššie body získava.
To tiež znamená, že pomocou tohto kódu môžete svojho robota vycvičiť, aby robil niečo iné, pokiaľ je meraný a privádzaný späť do robota!
Ako vidíte na obrázkoch, myš je ťahaná po tenkom lanku. Najprv to bolo vtiahnuté do kábla myši. Kábel je však akýsi tuhý, a tak sa robot naučil myšou potriasť, namiesto toho, aby ju ťahal. Pretrepávanie prinieslo vysoké body…
Kód používa 50 osôb. Jadrom toho je pole 50 x 50 bajtov.
Jednotlivec je pole bajtov. Keď sa individual používa na spustenie robota, tento jedinec je odoslaný do funkcie v kóde nazývanej „tolken“.
Na začiatku behu je 8 premenných m1, m2, m3, m4, m5, m6, m7 a m8 (jedna pre každé servo). V tomto robote majú všetci konštantné počiatočné hodnoty. V "tolken" sú mś transformované v slučke prípad/swich v závislosti od hodnôt jednotlivca. napríklad hodnota „1“vykoná nasledovné: m1 = m1 + m2.
Ak je jednotlivec: 1, 2, 3, 0, 0, 0, 0….., potom sa mś transformuje nasledujúcim spôsobom:
m1 = m1 + m2;
m1 = m1 + m3;
m1 = m1 + m4;
Tolken je zoznam 256 rôznych matematických operácií, takže každá možná hodnota jednotlivého poľa predstavuje matematickú zmenu m hodnôt.
Proces tolken sa vykonáva štyrikrát s čítaním medzi každým kolom a generovaním štyroch rôznych kódov motora pre každé „m“. Kódy motora sú hodnoty, ktoré sú neskôr odoslané na servá.
V každom kroku vývoja súťažia 4 jednotlivci v plazení. Dvaja najlepší jednotlivci budú rodičmi dvoch detí, deti nahradia dvoch najhorších jedincov. Keď sa narodia deti, spojenie „genetického kódu“od jedného rodiča sa vymení za plátok od druhého rodiča, čím sa vytvoria dvaja noví jedinci.
Ak žiadny jedinec nevykonáva žiadnu činnosť, dôjde k mutácii jedincov, aby sa vytvorili nové.
Kód nájdete na GitHub:
Krok 3: Ako to trénovať?
Toto je ošemetná časť. Aby ste mohli poriadne trénovať, musíte to po každom behu „vynulovať“. To znamená, že ho musíte zakaždým umiestniť do rovnakej polohy.
Do kódu som vložil niekoľko kontrolných bodov, aby som sa uistil, že robot je vo svojej počiatočnej polohe.
Zarovnajte teda robota a nechajte ho bežať.
Testuje 4 jednotlivcov a potom vyberie dvoch najlepších rodičov. Po náhrade najhoršieho za deti vytlačí niekoľko údajov o výkonnosti jednotlivcov. Vytlačí sa aj pole 50 x 50. Je rozumné skopírovať to do listu programu Excel alebo podobne. (alebo napíšte nejaký potrebný kód pri spracovaní) Ak sa splatnosť resetuje (to sa stáva z rôznych dôvodov), potom o svoju školiacu prácu neprídete. Pole môžete skopírovať/prilepiť do kódu a pokračovať v školení, ak ste zostali.
Môj robot sa naučil plaziť po niekoľkých hodinách. Stiahnite si video, aby ste ho mohli prehľadávať. Nešlo to tým smerom, ako som si myslel!
Skúste tiež rôzne podlahy! Môj robot si najlepšie počínal na nylonovom koberci.
Možné vylepšenia:
1. Bolo by lepšie mať samostatné nano na čítanie myši PS/2 a odoslať spracovanú vzdialenosť presunutú cez sériové číslo do nano. Čítanie mojej myši PS/2 je trochu roztrasené. To je dôvod, prečo myš číta/vymazáva časti kódu.
2. nejaký druh testovacej súpravy, ktorá ťahala robota späť do východiskovej polohy, by urýchlil výcvik.
3. Myslím si, že je múdre trénovať to trochu pomalšie ako ja. Pomalší tréning zaisťuje, že sa trénuje „správnym smerom“. Možným spôsobom by mohol byť priemerný výkon niekoľkých testovacích cyklov.
Odporúča:
Samoučiaci sa robot Maze Crab PROTOTYPE 1 STAV NEÚPLNÝ: 11 krokov
Samoučiaci sa robot Maze Crab PROTOTYP 1 STAV NEÚPLNÝ: ODMIETNUTIE !!: Ahoj, ospravedlňujem sa za nekvalitné obrázky, ďalšie pokyny a schémy pridám neskôr (a konkrétnejšie podrobnosti. Postup som nezdokumentoval (namiesto toho som len urobil časozberné video). Tento návod je tiež neúplný, ako som to urobil
Živé streamovanie videa v rozlíšení HD 4G/5G z dronu DJI s nízkou latenciou [3 kroky]: 3 kroky
Živé streamovanie videa v rozlíšení HD 4G/5G z DJI Drone s nízkou latenciou [3 kroky]: Nasledujúci sprievodca vám pomôže získať živé video streamy v kvalite HD z takmer akéhokoľvek dronu DJI. S pomocou mobilnej aplikácie FlytOS a webovej aplikácie FlytNow môžete začať streamovať video z drona
4 kroky na meranie vnútorného odporu batérie: 4 kroky
4 kroky na meranie vnútorného odporu batérie: Tu sú 4 jednoduché kroky, ktoré vám môžu pomôcť zmerať vnútorný odpor batérie
Vyvažovací robot / 3 -kolesový robot / robot STEM: 8 krokov
Vyvažovací robot / 3 -kolesový robot / STEM Robot: Postavili sme kombinovaný vyvažovací a 3 -kolesový robot na školské použitie a školské vzdelávacie programy. Robot je založený na Arduino Uno, vlastnom štíte (všetky konštrukčné detaily sú k dispozícii), batérii Li Ion (všetky
Pst , (kroky hore): 3 kroky (s obrázkami)
Pššššt … (ut-up): Šepkanie nie je najefektívnejším spôsobom, ako prinútiť ľudí, aby mlčali. Zvlášť vo verejných priestoroch a obzvlášť vo verejných knižniciach. Zavrieme si teda ústa pocitom viny. Toto svetlo je nainštalované v knižnici.