Table des matières:

EyeRobot - la canne blanche robotique : 10 étapes (avec photos)
EyeRobot - la canne blanche robotique : 10 étapes (avec photos)

Vidéo: EyeRobot - la canne blanche robotique : 10 étapes (avec photos)

Vidéo: EyeRobot - la canne blanche robotique : 10 étapes (avec photos)
Vidéo: Il enlève mon soutif en 0.1 SECONDE 😭 #humour #drole #blague #couplegoals #marrant #challenge 2024, Juillet
Anonim
EyeRobot - la canne blanche robotique
EyeRobot - la canne blanche robotique

Résumé: À l'aide de l'iRobot Roomba Create, j'ai prototypé un appareil appelé eyeRobot. Il guidera les utilisateurs aveugles et malvoyants à travers des environnements encombrés et peuplés en utilisant le Roomba comme base pour marier la simplicité de la canne blanche traditionnelle avec les instincts d'un chien d'aveugle. L'utilisateur indique son mouvement souhaité en poussant et en tournant intuitivement la poignée. Le robot prend ces informations et trouve un chemin clair dans un couloir ou à travers une pièce, en utilisant un sonar pour orienter l'utilisateur dans une direction appropriée autour des obstacles statiques et dynamiques. L'utilisateur suit ensuite le robot alors qu'il guide l'utilisateur dans la direction souhaitée par la force notable ressentie à travers la poignée. Cette option robotique nécessite peu d'entraînement: pousser pour aller, tirer pour arrêter, tourner pour tourner. La prévoyance fournie par les télémètres est similaire à celle d'un chien d'aveugle et constitue un avantage considérable par rapport aux essais et erreurs constants qui caractérisent l'utilisation de la canne blanche. Pourtant, eyeRobot offre toujours une alternative beaucoup moins chère que les chiens-guides, qui coûtent plus de 12 000 $ et ne sont utiles que pendant 5 ans, alors que le prototype a été construit pour bien moins de 400 $. C'est aussi une machine relativement simple, nécessitant quelques capteurs peu coûteux, divers potentiomètres, du matériel et bien sûr, un Roomba Create.

Étape 1: Démonstration vidéo

Démonstration vidéo
Démonstration vidéo

Version de haute qualité

Étape 2: Présentation de l'opération

Présentation de l'opération
Présentation de l'opération

Contrôle de l'utilisateur: le fonctionnement d'eyeRobot est conçu pour être aussi intuitif que possible afin de réduire considérablement ou d'éliminer la formation. Pour commencer le mouvement, l'utilisateur doit simplement commencer à avancer, un capteur linéaire à la base du bâton captera ce mouvement et commencera à faire avancer le robot. Grâce à ce capteur linéaire, le robot peut alors adapter sa vitesse à la vitesse souhaitée de l'utilisateur. eyeRobot se déplacera aussi vite que l'utilisateur le souhaite. Pour indiquer qu'un virage est souhaité, l'utilisateur doit simplement tourner la poignée, et si un virage est possible, le robot répondra en conséquence.

Navigation du robot: lorsqu'il voyage dans un espace ouvert, eyeRobot tentera de garder un chemin rectiligne, en détectant tout obstacle pouvant gêner l'utilisateur et en guidant l'utilisateur autour de cet objet et en revenant sur le chemin d'origine. Dans la pratique, l'utilisateur peut naturellement suivre derrière le robot avec peu de réflexion consciente. Pour naviguer dans un couloir, l'utilisateur doit essayer de pousser le robot dans l'un des murs de chaque côté, lors de l'acquisition d'un mur, le robot commencera à le suivre, en guidant l'utilisateur dans le couloir. Lorsqu'une intersection est atteinte, l'utilisateur sentira le robot commencer à tourner et pourra choisir, en tournant la poignée, de baisser la nouvelle ramification ou de continuer sur un chemin rectiligne. De cette façon, le robot ressemble beaucoup à la canne blanche, l'utilisateur peut ressentir l'environnement avec le robot et utiliser ces informations pour la navigation globale.

Étape 3: Capteurs de portée

Capteurs de portée
Capteurs de portée

Ultrasons: L'eyeRobot est équipé de 4 télémètres à ultrasons (MaxSonar EZ1). Les capteurs à ultrasons sont positionnés en arc de cercle à l'avant du robot pour fournir des informations sur les objets devant et sur les côtés du robot. Ils informent le robot de la portée de l'objet et l'aident à trouver un itinéraire ouvert autour de cet objet et à revenir sur sa trajectoire d'origine.

Télémètres IR: L'eyeRobot est également équipé de deux capteurs IR (GP2Y0A02YK). Les télémètres IR sont positionnés pour faire face à 90 degrés vers la droite et la gauche pour aider le robot à suivre le mur. Ils peuvent également alerter le robot des objets trop proches de ses côtés dans lesquels l'utilisateur peut entrer.

Étape 4: Capteurs de position de canne

Capteurs de position de canne
Capteurs de position de canne

Capteur linéaire: pour que l'eyeRobot adapte sa vitesse à celle de l'utilisateur, l'eyeRobot détecte si l'utilisateur pousse ou retarde son mouvement vers l'avant. Ceci est réalisé en faisant glisser la base de la canne le long d'une piste, car un potentiomètre détecte la position de la canne. L'eyeRobot utilise cette entrée pour réguler la vitesse du robot. L'idée de l'eyeRobot s'adaptant à la vitesse de l'utilisateur grâce à un capteur linéaire a en fait été inspirée de la tondeuse à gazon familiale. La base de la canne est reliée à un bloc de guidage se déplaçant le long d'un rail. Attaché au bloc de guidage se trouve un potentiomètre à glissière qui lit la position du bloc de guidage et la rapporte au processeur. Afin de permettre au bâton de tourner par rapport au robot, une tige traverse un bloc de bois et forme un palier rotatif. Ce roulement est ensuite fixé à une charnière pour permettre au bâton de s'ajuster à la taille de l'utilisateur.

Capteur de torsion: Le capteur de torsion permet à l'utilisateur de tourner la poignée pour faire tourner le robot. Un potentiomètre est fixé à l'extrémité d'un manche en bois et le bouton est inséré et collé dans la partie supérieure du manche. Les fils descendent le long du goujon et transmettent les informations de torsion au processeur.

Étape 5: Processeur

Processeur
Processeur

Processeur: Le robot est contrôlé par un Zbasic ZX-24a assis sur une Robodyssey Advanced Motherboard II. Le processeur a été choisi pour sa vitesse, sa facilité d'utilisation, son coût abordable et ses 8 entrées analogiques. Il est connecté à une grande maquette de prototypage pour permettre des changements rapides et faciles. Toute l'alimentation du robot provient de l'alimentation de la carte mère. Le Zbasic communique avec le roomba via le port de la soute et a un contrôle total sur les capteurs et les moteurs du Roomba.

Étape 6: Présentation du code

Présentation des codes
Présentation des codes

Évitement d'obstacles: pour éviter les obstacles, eyeRobot utilise une méthode dans laquelle les objets proches du robot exercent une force virtuelle sur le robot en l'éloignant de l'objet. En d'autres termes, les objets éloignent le robot d'eux-mêmes. Dans mon implémentation, la force virtuelle exercée par un objet est inversement proportionnelle à la distance au carré, donc la force de la poussée augmente à mesure que l'objet se rapproche et crée une courbe de réponse non linéaire:PushForce = ResponseMagnitudeConstant/Distance2Les poussées provenant de chaque capteur sont additionnées; les capteurs sur le côté gauche poussent vers la droite, et vice versa, pour obtenir un vecteur pour le déplacement du robot. Les vitesses des roues sont ensuite modifiées pour que le robot se tourne vers ce vecteur. Pour s'assurer que les objets morts devant le robot ne présentent pas de « pas de réponse » (parce que les forces des deux côtés s'équilibrent), les objets placés devant le robot poussent le robot vers le côté le plus ouvert. Lorsque le robot a passé l'objet, il utilise ensuite les encodeurs du Roomba pour corriger le changement et revenir sur le vecteur d'origine.

Suivi de mur: Le principe du suivi de mur est de maintenir une distance souhaitée et un angle parallèle à un mur. Des problèmes surviennent lorsque le robot est tourné par rapport au mur, car le seul capteur donne des lectures de plage inutiles. Les lectures de distance sont effectuées autant par l'angle du robot par rapport au mur que par la distance réelle par rapport au mur. Afin de déterminer l'angle et donc d'éliminer cette variable, le robot doit avoir deux points de référence qui peuvent être comparés pour obtenir l'angle du robot. Étant donné que l'eyeRobot n'a qu'un seul côté du télémètre IR orienté, pour atteindre ces deux points, il doit comparer la distance par rapport au télémètre au fil du temps au fur et à mesure que le robot se déplace. Il détermine ensuite son angle à partir de la différence entre les deux lectures lorsque le robot se déplace le long du mur. Il utilise ensuite ces informations pour corriger un positionnement incorrect. Le robot passe en mode suivi de mur chaque fois qu'il a un mur à côté de lui pendant un certain temps et en sort chaque fois qu'il y a un obstacle sur son chemin, qui le pousse hors de sa trajectoire, ou si l'utilisateur utilise la poignée tournante pour amener le robot loin du mur.

Étape 7: Liste des pièces

Liste des pièces
Liste des pièces

Pièces requises:1x) Roomba create1x) Grande feuille d'acrylique2x) Télémètre IR Sharp GP2Y0A02YK4x) Télémètres à ultrasons Maxsonar EZ11x) Microprocesseur ZX-24a1x) Robodyssey Advanced Motherboard II1x) Potentiomètre à glissière1x) Potentiomètre à un tour1x) Palier linéaire1x)) Sans soudure Trié sur carte mère Charnières, chevilles, vis, écrous, supports et fils

Étape 8: Motivation et amélioration

Motivation et amélioration
Motivation et amélioration

Motivation: Ce robot a été conçu pour combler l'écart évident entre le chien-guide capable mais coûteux et la canne blanche peu coûteuse mais limitée. Dans le développement d'une canne blanche robotique commercialisable et plus performante, le Roomba Create était le véhicule parfait pour concevoir un prototype rapide pour voir si le concept fonctionnait. De plus, les prix fourniraient un soutien économique pour les dépenses considérables liées à la construction d'un robot plus performant.

Amélioration: La quantité que j'ai apprise à construire ce robot était substantielle et ici, je vais essayer de présenter ce que j'ai appris au fur et à mesure que je vais essayer de construire un robot de deuxième génération: 1) Évitement d'obstacles - j'ai beaucoup appris sur les obstacles en temps réel évitement. Dans le processus de construction de ce robot, j'ai traversé deux codes d'évitement d'obstacles complètement différents, en commençant par l'idée originale de la force de l'objet, puis en passant au principe de trouver et de rechercher le vecteur le plus ouvert, puis en revenant à l'idée de la force de l'objet avec la réalisation clé que la réponse de l'objet doit être non linéaire. À l'avenir, je corrigerai mon erreur de ne pas faire de recherche en ligne sur les méthodes précédemment utilisées avant de me lancer dans mon projet, car j'apprends maintenant qu'une recherche rapide sur Google aurait donné de nombreux excellents articles sur le sujet.2) Conception du bâton capteurs - Au début de ce projet, je pensais que ma seule option pour un capteur linéaire était d'utiliser un pot coulissant et une sorte de roulement linéaire. Je me rends compte maintenant qu'une option beaucoup plus simple aurait été de simplement attacher le haut de la tige à un joystick, de sorte que pousser le manche vers l'avant pousserait également le joystick vers l'avant. De plus, un simple joint universel permettrait de traduire la torsion du manche dans l'axe de torsion de nombreux joysticks modernes. Cette implémentation aurait été beaucoup plus simple que celle que j'utilise actuellement.3) Roues à rotation libre - Bien que cela aurait été impossible avec le Roomba, il semble maintenant évident qu'un robot avec des roues à rotation libre serait idéal pour cette tâche. Un robot qui roule passivement ne nécessiterait aucun moteur et une batterie plus petite et serait donc plus léger. De plus, ce système ne nécessite aucun capteur linéaire pour détecter la poussée de l'utilisateur, le robot roulerait simplement à la vitesse de l'utilisateur. Le robot pouvait être tourné en braquant les roues comme une voiture, et si l'utilisateur devait être arrêté, des freins pouvaient être ajoutés. Pour la prochaine génération d'eyeRobot, j'utiliserai certainement cette approche très différente.4) Deux capteurs espacés pour le suivi du mur - Comme indiqué précédemment, des problèmes sont survenus lors de la tentative de suivi du mur avec un seul capteur orienté vers le côté, il était donc nécessaire de déplacer le robot entre les lectures pour atteindre différents points de référence. Deux capteurs avec une distance entre eux simplifieraient grandement le suivi du mur.5) Plus de capteurs - Bien que cela aurait coûté plus d'argent, il était difficile d'essayer de coder ce robot avec si peu de fenêtres sur le monde en dehors du processeur. Cela aurait rendu le code de navigation beaucoup plus puissant avec une matrice de sonar plus complète (mais bien sûr les capteurs coûtent de l'argent, ce que je n'avais pas à l'époque).

Étape 9: Conclusion

Conclusion
Conclusion

Conclusion: l'iRobot s'est avéré être une plate-forme de prototypage idéale pour expérimenter le concept d'une canne blanche robotique. D'après les résultats de ce prototype, il est évident qu'un robot de ce type est en effet viable. J'espère développer un robot de deuxième génération à partir des leçons que j'ai tirées de l'utilisation du Roomba Create. Dans les futures versions d'eyeRobot, j'imagine un appareil capable de faire plus que simplement guider une personne dans un couloir, mais plutôt un robot qui peut être mis entre les mains des aveugles pour une utilisation dans la vie quotidienne. Avec ce robot, l'utilisateur parlerait simplement de sa destination et le robot l'y guiderait sans effort conscient de la part de l'utilisateur. Ce robot serait suffisamment léger et compact pour être facilement transporté dans les escaliers et rangé dans un placard. Ce robot serait capable d'effectuer une navigation globale en plus de la navigation locale, pouvant guider l'utilisateur du début à la destination sans que l'utilisateur ait une connaissance ou une expérience préalable. Cette capacité irait bien au-delà même du chien-guide, avec un GPS et des capteurs plus avancés permettant aux aveugles de naviguer librement dans le monde, Nathaniel Barshay, (entré par Stephen Barshay) (Merci spécial à Jack Hitt pour le Roomba Create)

Étape 10: Construction et code

Construction et code
Construction et code

Quelques mots superflus sur la construction: le pont est fait d'un morceau d'acrylique découpé en cercle avec une ouverture à l'arrière pour permettre l'accès à l'électronique, puis est vissé dans les trous de montage à côté de la soute. La carte de prototypage est vissée dans le trou de vis au fond de la baie. Le Zbasic est monté avec un support en L avec les mêmes vis que le pont. Chaque sonar est vissé dans un morceau d'acrylique, qui est à son tour attaché à un support en L fixé au pont (les supports en L sont repliés de 10 degrés pour offrir une meilleure vue). Le rail du capteur linéaire est vissé directement dans le pont et le pot coulissant est monté avec des supports en L à côté. Une description plus technique de la construction du capteur linéaire et de la tige de commande se trouve à l'étape 4.

Code: j'ai joint la version complète du code des robots. Au cours d'une heure, j'ai essayé de le nettoyer des trois ou quatre générations de code qui se trouvaient dans le fichier, cela devrait être assez facile à suivre maintenant. Si vous avez l'IDE ZBasic, il devrait être facile à visualiser, sinon utilisez le bloc-notes en commençant par le fichier main.bas et en parcourant les autres fichiers.bas.

Conseillé: