Table des matières:
- Étape 1: Construisez votre robot Hawking
- Étape 2:
- Étape 3: Créez vos propres extraits sonores de Hawking
- Étape 4: Trucs et astuces
- Étape 5: Suggestions d'améliorations, de mises à jour et d'idées futures
Vidéo: Bot Hawking : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Le Hawking Bot est un projet Lego MINDSTORMS EV3 inspiré par le regretté Stephen Hawking. Stephen Hawking avait un bon sens de l'humour donc je suis sûr qu'il aurait approuvé ce projet. Le Hawking Bot peut se frayer un chemin autour des obstacles et réagir aux mouvements, puis prononce l'un des célèbres extraits sonores de Stephen Hawking et se déplace dans la direction de l'objet en mouvement. Il utilise le capteur à ultrasons qui balaye son environnement avec un mouvement de tête de balayage.
Étape 1: Construisez votre robot Hawking
Toutes les pièces requises se trouvent dans l'ensemble de base EV3 Lego MINDSTORMS à l'exception du capteur à ultrasons (ses yeux) qui doit être acheté séparément.
Étape 2:
Le code du Hawking Bot est entièrement écrit en python 3. Un fichier image amorçable pour exécuter python dans un environnement Debian Linux sur le Hawking Bot peut être téléchargé à partir du site Web ev3dev. Le code pour exécuter le Hawking Bot peut être téléchargé à partir d'ici. Tout le code est contenu dans un fichier de classe, vous pouvez donc utiliser les méthodes existantes ou même les modifier si vous le souhaitez.
Veuillez regarder cette vidéo avec des instructions détaillées sur la façon de configurer Debian Linux et Python3 sur votre robot. Bien que cela soit spécifiquement pour une configuration Mac, il sera toujours utile d'avoir une compréhension générale du processus. Ce travail est en cours. Le capteur à ultrasons est parfois peu fiable et cela nécessite un code plus intelligent pour détecter les « valeurs aberrantes ». J'aimerais voir les contributions des autres pour rendre le code plus efficace et moins sujet aux erreurs.
Étape 3: Créez vos propres extraits sonores de Hawking
OK, maintenant, vous voulez avoir des citations célèbres ou juste quelques déclarations simples du professeur Hawking. Il y a des tonnes de vidéos où vous pouvez l'entendre parler et puis il y a ses conférences qui sont un trésor de sagesse et d'extraits sonores utiles.
Vous avez besoin d'un programme comme Audacity qui fonctionne sur de nombreuses plateformes pour sélectionner et découper vos extraits sonores préférés.
Enregistrez votre extrait sonore en tant que fichier mono wav au format SH6, SH7, …SH11, SH12 et ainsi de suite.
Vous trouverez ci-dessous quelques exemples que j'ai créés selon la méthode ci-dessus.
Étape 4: Trucs et astuces
Le Hawking Bot est livré avec un module d'auto-vérification pour s'assurer que tous les câbles sont connectés et que la puissance de la batterie est suffisante. Des connexions desserrées, manquantes ou même endommagées peuvent se produire facilement. Ce module est donc très utile. La méthode 'checkConnection' vérifie uniquement s'il existe une connexion électrique. Vous devez toujours vous assurer que les moteurs sont connectés au bon port.
Le mouvement de la tête de balayage est essentiel pour que le Hawking Bot puisse balayer son terrain et trouver le chemin le plus long et dégagé devant lui. Les câbles ont besoin de suffisamment d'espace pour s'adapter aux mouvements de la tête; il est donc conseillé de les attacher ensemble comme indiqué sur la photo.
Le Hawking Bot fonctionne mieux avec de gros obstacles et sur une surface plane et lisse. Les tapis sont plus difficiles pour les moteurs et vous devrez peut-être ajuster les paramètres pour ajuster le comportement pour différentes surfaces.
Le Hawking Bot n'est en aucun cas parfait et c'est un prototype qui bénéficiera de nouvelles améliorations. Le code est entièrement commenté et il devrait être facile pour vous de comprendre ce que font les différentes méthodes. Divers bits ont été commentés avec #, si vous supprimez le # devant 'print', le programme en cours vous montrera les différentes lectures et calculs du capteur.
Étape 5: Suggestions d'améliorations, de mises à jour et d'idées futures
Maintenant que vous avez réussi à construire votre robot, vous voulez le faire passer au niveau supérieur. Vous pourriez améliorer la méthode MotionDetector. En ce moment, très souvent, la lecture est erronée. Vous pouvez voir les lectures réelles en décommentant disA et disB (au bas du bloc de méthode). La mauvaise lecture se démarque généralement des autres lectures, vous pouvez donc écrire un algorithme pour empêcher le robot de répondre à une mauvaise lecture.
Peut-être souhaitez-vous prendre le contrôle total du robot et simplement contrôler à distance ses différentes fonctions. Vous pouvez le faire via Bluetooth et écrire un programme Android pour communiquer avec le robot. Cependant, une approche beaucoup plus simple serait de trouver un endroit pour que le capteur infrarouge prenne le contrôle de Hawking Bot.
Et si vous faisiez découvrir au robot son environnement ? Cela pourrait être accompli avec une approche k-plus proche voisin ou éventuellement un réseau de neurones. La brique EV3 a une puissance de traitement limitée bien qu'elle prenne en charge Numpy. Une alternative serait un BrickPi qui vous permettrait d'exécuter une bibliothèque d'IA comme Tensorflow, mais l'intention de ce guide était d'utiliser le kit Lego EV3 MINDSTORMS sans avoir besoin d'acheter de nombreuses pièces supplémentaires coûteuses autres que le capteur à ultrasons.
Cependant, l'approche d'apprentissage par renforcement des k-voisins les plus proches devrait fonctionner sur la brique EV3 et c'est l'algorithme suggéré. Je vous laisse le soin de trouver une implémentation fonctionnelle ou de repérer les problèmes:
Apprentissage par renforcement pour Hawkings Bot
L'idée est que les 7 lectures USS sont codées dans un vecteur et que les 10 derniers coups de tête sont utilisés pour créer un vecteur séquentiel de 70 entrées. Les premières lectures sont incomplètes et seront donc remplies de zéros. Chaque entrée contient la valeur de distance par rapport à l'USS. C'est le vecteur d'état s. Le système permet 1000 entrées. Par la suite, l'entrée la plus ancienne sera remplacée et les entrées d'âge pour chaque paire s-r seront réduites de un.
Le robot ne doit pas s'approcher à moins de 10 cm d'un objet. Cela crée une récompense négative. Pour la simplicité; les bonnes actions sont récompensées par un 1 et les mauvaises par un 0. En fait, cela crée une probabilité de récompense pour chaque combinaison action-état. Nous utiliserons des récompenses à prix réduit et la politique de cupidité epsilon.
Cela crée 3 grands états – table de récompense (s-r) pour les trois actions à droite, tout droit et à gauche – il peut être possible d'avoir des vitesses rapides et lentes pour chaque action. Nous aurions alors 6 actions et 6 tables de recherche s-r.
Chaque fois qu'un nouvel état s est enregistré, il est comparé aux tables, la distance euclidienne (ou une mesure similaire) est utilisée pour trouver le voisin le plus proche. Cela ne sera pas classé mais plutôt un seuil t est défini pour accepter l'état comme très similaire, écraser l'état existant et mettre à jour pour la récompense la plus élevée et effectuer l'action associée a. S'il n'est pas similaire (d>t), entrez une nouvelle paire s-r pour chaque action a. S'il y a une égalité entre les actions pour pour s-r (elles ont toutes la même récompense), choisissez au hasard mais ce n'est pas courant et pourrait être omis.
t devra être déterminé expérimentalement, si t est trop petit, des états similaires seront ignorés et chaque état sera considéré comme unique. Un t trop grand signifie que même des états assez dissemblables sont regroupés, ce qui pourrait affecter la capacité de choisir de bonnes actions. Il peut être possible d'utiliser des méthodes statistiques pour déterminer le meilleur t.
Le tableau ressemble à ceci: No d'entrée – vecteur d'état – récompense pour l'action 1 – récompense pour l'action 2 – récompense pour l'action 3.
Je suppose que la mise en œuvre réelle sera délicate, mais devrait en valoir la peine. Bonne chance!
Conseillé:
Telegram Bot avec NodeMCU (ESP8266): 3 étapes
Telegram Bot With NodeMCU (ESP8266) : Besoin d'un bot pour envoyer des notifications depuis votre système ? ou faire quelque chose simplement en envoyant un message ? Telegram Bot est votre solution ! Dans ce tutoriel, j'utiliserai Telegram Web et BotFather pour créer mon bot
T2 - The Tea Bot - La préparation du thé en toute simplicité : 4 étapes
T2 - the Tea Bot - Tea Brewing Made Easy: Le thé bot a été conçu pour aider l'utilisateur à préparer son thé au temps d'infusion recommandé. L'un des objectifs de conception était de rester simple. Un ESP8266 est programmé avec un serveur Web pour contrôler un servomoteur. Le serveur Web ESP8266 est mobile responsive et
Construisez l'interface informatique de Stephen Hawking en seulement Rs.1000 (15 $) à l'aide d'Arduino : 5 étapes
Construisez l'interface informatique de Stephen Hawking avec seulement Rs.1000 (15 $) en utilisant Arduino: Tout a commencé avec la question "Comment parle Stephen Hawking ?", après avoir lu sur son système informatique, il m'est venu à l'esprit que je devrais fournir un version du système sans trop compromettre les fonctionnalités. Cet appareil
Trash Built BT Line Drawing Bot - Mon Bot : 13 étapes (avec photos)
Trash Built BT Line Drawing Bot - My Bot: Amis Hai, après un long écart d'environ 6 mois, je viens avec un nouveau projet. Jusqu'à la fin de Cute Drawing Buddy V1, Robot SCARA - Arduino, je prévois un autre robot de dessin, l'objectif principal est de couvrir un grand espace pour le dessin. Donc bras robotisés fixes c
Accélération gratuite de l'antenne Wifi Hawking 7dBi : 4 étapes
Boost gratuit de l'antenne Wifi Hawking 7dBi : J'ai découvert que l'antenne Wifi Hawking 7dBi avait un défaut. En supprimant le défaut, j'ai obtenu une amplification du signal GRATUITEMENT. Le numéro de pièce de l'antenne est HAI7SIP. Avant cette modification, j'avais une barre de signal qui tombait parfois complètement morte. Après le