Inhoudsopgave:
- Stap 1: Bouw je Hawking Bot
- Stap 2:
- Stap 3: Maak je eigen Hawking-soundbites
- Stap 4: Tips en trucs
- Stap 5: Voorgestelde verbeteringen, updates en toekomstige ideeën
Video: Hawking Bot: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
De Hawking Bot is een Lego MINDSTORMS EV3-project geïnspireerd door wijlen Stephen Hawking. Stephen Hawking had een goed gevoel voor humor, dus ik weet zeker dat hij dit project zou hebben goedgekeurd. De Hawking Bot kan om obstakels heen navigeren en reageert op bewegingen, laat een van Stephen Hawkings beroemde soundbites horen en beweegt zich in de richting van het bewegende object. Het maakt gebruik van de ultrasone sensor die zijn omgeving scant met een vegende hoofdbeweging.
Stap 1: Bouw je Hawking Bot
Alle benodigde onderdelen zitten in de basisset EV3 Lego MINDSTORMS, met uitzondering van de ultrasone sensor (zijn ogen) die apart moet worden aangeschaft.
Stap 2:
De code voor de Hawking Bot is allemaal geschreven in python 3. Een opstartbaar afbeeldingsbestand om python uit te voeren in een Debian Linux-omgeving op de Hawking Bot kan worden gedownload van de ev3dev-website. De code om de Hawking Bot uit te voeren kan hier worden gedownload. Alle code bevindt zich in een klassenbestand, zodat u de bestaande methoden kunt gebruiken of zelfs kunt wijzigen als u dat wilt.
Bekijk deze video met gedetailleerde instructies over het instellen van Debian Linux en Python3 op uw robot. Hoewel dit specifiek voor een Mac-configuratie is, is het toch nuttig om een algemeen begrip van het proces te krijgen. Dit is werk in uitvoering. De ultrasone sensor is soms onbetrouwbaar en vereist slimmere code om 'uitbijters' te detecteren. Ik zou graag bijdragen van anderen zien om de code efficiënter en minder foutgevoelig te maken.
Stap 3: Maak je eigen Hawking-soundbites
Oké, nu wil je een paar beroemde citaten of een paar simpele uitspraken van Prof Hawking. Er zijn talloze video's waar je hem kunt horen praten en dan zijn er zijn lezingen die een schat aan wijsheid en nuttige soundbites zijn.
Je hebt een programma als Audacity nodig dat op veel platforms werkt om je favoriete soundbites te selecteren en uit te schakelen.
Sla je soundbite op als een wav mono-bestand als SH6, SH7, …SH11, SH12 enzovoort.
Hieronder vindt u een aantal voorbeelden die ik heb gemaakt volgens bovenstaande methode.
Stap 4: Tips en trucs
De Hawking Bot wordt geleverd met een zelfcontrolemodule om ervoor te zorgen dat alle kabels zijn aangesloten en de batterij voldoende is. Losse, ontbrekende of zelfs beschadigde verbindingen kunnen gemakkelijk ontstaan. Deze module is dus erg handig. De 'checkConnection'-methode controleert alleen of er een elektrische aansluiting is. U moet er nog steeds voor zorgen dat de motoren op de juiste poort zijn aangesloten.
De swipende hoofdbeweging is essentieel voor de Hawking Bot om het terrein af te tasten en het langste onbelemmerde pad voor je te vinden. De kabels hebben voldoende ruimte nodig om hoofdbewegingen op te vangen; het is daarom aan te raden om ze samen te binden zoals op de foto te zien is.
De Hawking Bot werkt het beste met grote obstakels en op een vlakke en gladde ondergrond. Tapijten vormen een grotere uitdaging voor de motoren en het kan zijn dat u de instellingen moet aanpassen om het gedrag voor verschillende oppervlakken aan te passen.
De Hawking Bot is zeker niet perfect en dit is een prototype dat zal profiteren van verdere verbeteringen. De code is volledig becommentarieerd en het zou voor u gemakkelijk moeten zijn om uit te zoeken wat de verschillende methoden doen. Verschillende bits zijn becommentarieerd met #, als je de # voor 'print' verwijdert, zal het lopende programma je de verschillende sensormetingen en berekeningen laten zien.
Stap 5: Voorgestelde verbeteringen, updates en toekomstige ideeën
Nu je je robot met succes hebt gebouwd, wil je hem naar een hoger niveau tillen. Je zou de MotionDetector-methode kunnen verbeteren. Op dit moment krijgt het zo vaak een verkeerde lezing. U kunt de werkelijke meetwaarden zien door disA en disB te verwijderen (onder aan het methodeblok). De verkeerde meting onderscheidt zich meestal van andere metingen, dus u kunt een algoritme schrijven om te voorkomen dat de robot reageert op een verkeerde meting.
Misschien wilt u de robot volledig onder controle krijgen en de verschillende functies op afstand bedienen. Je zou dit via Bluetooth kunnen doen en een Android-programma schrijven om met de robot te communiceren. Een veel eenvoudigere benadering zou echter zijn om een plaats te vinden voor de infraroodsensor om de controle over de Hawking Bot over te nemen.
Hoe zit het met het krijgen van de robot om te leren over zijn omgeving? Dit kan worden bereikt met een k-nearest-buurbenadering of mogelijk een neuraal netwerk. De EV3-steen heeft een beperkte verwerkingskracht, hoewel deze Numpy wel ondersteunt. Een alternatief zou een BrickPi zijn waarmee je een AI-bibliotheek zoals Tensorflow kunt gebruiken, maar de bedoeling van deze gids was om de Lego EV3 MINDSTORMS-kit te gebruiken zonder dat je veel dure extra onderdelen anders dan de ultrasone sensor hoeft te kopen.
De re-infocement-leerbenadering van k-nearest buren zou echter moeten werken op de EV3-steen en dit is het voorgestelde algoritme. Ik laat het aan jou over om een werkende implementatie te vinden of eventuele problemen op te sporen:
Versterking leren voor Hawkings Bot
Het idee is dat de 7 USS-metingen worden gecodeerd in een vector en de laatste 10 head-swoops worden gebruikt om een sequentiële vector van 70 items te creëren. De eerste aflezingen zijn onvolledig en worden dus gevuld met nullen. Elke invoer bevat de afstandswaarde van de USS. Dit is de toestandsvector s. Het systeem laat 1000 inzendingen toe. Daarna wordt de oudste inzending vervangen en worden de leeftijdsinschrijvingen voor elk s-r-paar met één verminderd.
De bot mag niet dichter dan 10 cm bij een object komen. Dit zorgt voor een negatieve beloning. Voor de eenvoud; goede acties worden beloond met een 1 en slechte met een 0. Dit creëert in feite een waarschijnlijkheid voor de beloning voor elke actie-toestandcombinatie. We zullen kortingsbeloningen en epsilon hebzuchtig beleid gebruiken.
Dit creëert 3 grote status-beloningstabel (s-r) voor alle drie de acties rechts, rechtdoor en links - het kan mogelijk zijn om voor elke actie hoge en lage snelheden te hebben. We zouden dan 6 acties en 6 opzoektabellen hebben.
Elke keer dat een nieuwe toestand s wordt geregistreerd, wordt deze vergeleken met de tabellen, de Euclidische afstand (of vergelijkbare maat) wordt gebruikt om de dichtstbijzijnde buur te vinden. Dit wordt niet gerangschikt, maar er wordt eerder een drempel t ingesteld om de status als zeer vergelijkbaar te accepteren, de bestaande status te overschrijven en bij te werken voor de hoogste beloning en de bijbehorende actie a uit te voeren. Als het niet vergelijkbaar is (d>t), voer dan een nieuw s-r-paar in voor elke actie a. Als er een verband is tussen acties voor voor s-r (ze hebben allemaal dezelfde beloning), kies dan willekeurig, maar dit is niet gebruikelijk en kan worden weggelaten.
t zal experimenteel moeten worden bepaald, als t te klein is, worden vergelijkbare toestanden genegeerd en wordt elke toestand als uniek beschouwd. Een te grote t betekent dat zelfs nogal ongelijksoortige toestanden op één hoop worden gegooid, wat van invloed kan zijn op het vermogen om goede acties te kiezen. Het kan mogelijk zijn om statistische methoden te gebruiken om de beste t te bepalen.
De tabel ziet er ongeveer zo uit: Invoer nr. Toestandsvector beloning voor actie 1 beloning voor actie 2 beloning voor actie 3.
Ik denk dat de daadwerkelijke implementatie lastig zal zijn, maar het zou de moeite waard moeten zijn. Veel geluk!
Aanbevolen:
Telegram Bot met NodeMCU (ESP8266): 3 stappen
Telegram Bot met NodeMCU (ESP8266): Heeft u een bot nodig om meldingen van uw systeem te geven? of iets doen door gewoon een bericht te sturen? Telegram Bot is jouw oplossing!In deze tutorial zal ik Telegram Web en BotFather gebruiken om mijn bot te maken
Een interactieve bot toevoegen in Discord: 6 stappen
Hoe een interactieve bot in Discord toe te voegen: In deze tutorial laat ik zien hoe je een eigen interactieve bot kunt maken die met een paar commando's werkt. Discord is zo'n Skype/Whats-app social media-app die gamers bij elkaar brengt. Ze kunnen een eigen kanaal hebben, controleren welk spel elk lid speelt
Bouw de computerinterface van Stephen Hawking binnen slechts Rs.1000 (15 $) met Arduino - Ajarnpa
Bouw de computerinterface van Stephen Hawking binnen slechts Rs.1000 (15 $) met behulp van Arduino: het begon allemaal met de vraag "Hoe spreekt Stephen Hawking?", nadat ik over zijn computersysteem had gelezen, bedacht ik me dat ik een goedkopere versie van het systeem zonder al te veel van de functies in gevaar te brengen. Dit apparaat
Prullenbak gebouwde BT lijntekening Bot - Mijn Bot - Ajarnpa
Trash Built BT Line Drawing Bot - Mijn Bot: Hai vrienden na een lange onderbreking van ongeveer 6 maanden hier kom ik met een nieuw project. Tot de voltooiing van Cute Drawing Buddy V1, SCARA Robot - Arduino ben ik van plan een andere tekenbot te maken, het belangrijkste doel is om een grote ruimte voor tekenen te bedekken. Dus vaste robotarmen c
Hawking 7dBi Wifi Antenne Gratis Boost - Ajarnpa
Hawking 7dBi Wifi Antenne Gratis Boost: Ik ontdekte dat de Hawking 7dBi Wifi Antenne een fout heeft. Door de fout te verwijderen kreeg ik GRATIS een signaalversterking. Het onderdeelnummer van de antenne is HAI7SIP. Vóór deze wijziging had ik een signaalbalk die soms helemaal wegviel. Na de