Je voudrais construire un robot qui suit un chemin virtuel (pas un chemin visible comme une «ligne noire sur une surface blanche», etc.).
Je suis juste enthousiaste en voyant des vidéos de science-fiction montrant des robots transportant des marchandises et des matériaux dans un endroit bondé. Et ils ne suivent vraiment pas une ligne physique. Ils sentent les obstacles, la profondeur, etc.
Je voudrais construire un tel robot qui suit un chemin spécifique (virtuel) du point A à B.
J'ai essayé deux ou trois choses:
Utilisation d'un capteur magnétique à «effet Hall» sur le robot et d'un fil transportant du courant (sous la table). Le problème ici était que le voisinage du capteur à effet Hall est si petit (<2 cm) qu'il est très difficile de juger si le robot est sur la ligne ou hors ligne. Même l'utilisation d'une série d'aimants n'a pas pu résoudre ce problème, car ma table mesure 1 pouce d'épaisseur. Donc, cette idée a échoué: P
Utilisation d'une peinture ultraviolette (sur une ligne) et utilisation de LED UV sur le robot comme capteurs. Cela donnera plus de mouvement Zig-Zag pour le robot. Et en raison des menaces potentielles d'utilisation de la source de lumière UV, même cette idée a échoué: P
J'ai finalement pensé à avoir une caméra sur le dessus et à utiliser des algorithmes de traitement d'image pour voir si le robot est en ligne ou divergent.
Y a-t-il une meilleure solution que celle-ci? Vraiment à la recherche de solutions créatives et simples. :)
Réponses:
Il existe de nombreuses façons possibles d'aborder ce problème, et elles dépendent toutes du matériel disponible et de l'expertise du constructeur de robots.
En bref, les critères sont les suivants:
Selon la longueur du chemin, l'utilisation de codeurs peut être suffisante. Cependant, il convient de noter qu'en raison de l'inexactitude physique, la dérive rend l'odométrie (ce que nous appelons l'utilisation de codeurs pour mesurer la distance) peu pratique sur de longues distances. Cependant, cela est facile pour les courtes distances et devrait au moins être envisagé.
Si la distance est trop éloignée pour l'odométrie uniquement, il faut envisager d'utiliser un capteur pour mesurer les virages (par exemple, un gyroscope ou une boussole ). Les virages ont tendance à introduire le plus d'erreurs en odométrie (la mesure le long d'une ligne droite n'a pas trop d'erreurs), donc l'utilisation d'un capteur pour les virages peut parfois faire de l'odométrie une solution viable.
Si l'odométrie ou l'odométrie + le tournage détecté ne fonctionne pas, alors nous devenons créatifs. Si vous voulez que le robot suive un chemin composé principalement de segments droits, vous pouvez placer des LED IR à des «points de cheminement» donnés sur la table, et demander au robot de détecter ces LED et de se diriger vers chaque waypoint en série.
Cependant, cela laisse encore un certain marquage visuel sur la table (bien qu'il puisse être déguisé dans une certaine mesure), et ce serait formidable de pouvoir s'en passer. Une autre approche consisterait à utiliser des pointeurs laser brillant parallèlement à la surface de la table, mais à quelques centimètres au-dessus de la table. Le robot pourrait utiliser une photorésistance pour détecter quand il traverse un laser, et cela pourrait lui faire savoir quand tourner.
Dans l'ensemble, je pense que l'odométrie augmentée avec un capteur d'angle est probablement le meilleur pari pour votre robot, au moins avec la façon dont vous l'avez décrit. Je peux peut-être penser à plus d'options, mais c'est tout ce que je vois en ce moment.
Juste curieux - pourquoi voulez-vous que la ligne soit invisible? Savoir pourquoi pourrait ouvrir d'autres possibilités.
la source
Anki utilise des capteurs optiques dans ses petites voitures pour mettre en œuvre des suiveurs de ligne. Les capteurs optiques sont sensibles dans la gamme IR. Le fait que les lignes ne soient pas visibles s'explique facilement: les lignes sont recouvertes de couleur noire transparente dans la gamme IR. Le noir Paliogen L 86 ou le noir Paliogen S 84 de BASF sont de telles couleurs. Si vous placez des codes-barres le long des lignes, vous pouvez même obtenir des informations de positionnement absolues à partir des capteurs optiques.
la source
J'ai une réponse courte à votre question. Cela concerne uniquement un robot compatible ROS. Il y a plusieurs façons de le faire, mais c'est ainsi que je l'ai fait. J'ai utilisé ROS et Kuka Youbot. Il peut s'agir de n'importe quel robot utilisant ROS. Il est très utile de connaître ROS si vous prévoyez d'être en robotique.
Utilisez ROS Utilisez ensuite GMapping pour cartographier votre environnement. Exemple de pièce ou de couloir et enregistrez la carte. Ensuite, en utilisant RVIZ, indiquez la position de l'objectif sur la carte.
la source
Eh bien, vous n'avez besoin d'aucune ligne d'ailleurs. La seule chose dont vous auriez probablement besoin serait des coordonnées globales. si vous pouvez placer votre robot dans un champ défini par des coordonnées globales et appliquer des règles simples de la physique newtonienne, le robot peut aller d'un point à l'autre. Sur la base de son emplacement actuel, il découvrira l'angle de braquage actuel, l'angle de braquage souhaité et les coordonnées de l'objectif (également appelé «pose»). Une fois que vous avez fourni au robot une vitesse, il commencera à se déplacer vers les coordonnées du but. À chaque itération, il recalculera sa pose et fera les ajustements nécessaires.
la source