Localisation d'un essaim de robots

9

J'ai une pièce de 300cm x 300cm avec un plafond de 25cm de haut (oui vingt cinq centimètres). Il contient 50 petits robots à roues (environ 20 cm x 20 cm). Un ordinateur central orchestrera les mouvements des robots, en utilisant un réseau sans fil pour leur envoyer des commandes de position. Les robots effectueront leur propre contrôle de position en boucle fermée pour économiser la bande passante sans fil. Les robots ont des microcontrôleurs ARM 32 bits. Ils ont des capteurs de position de roue et la possibilité de contrôler précisément les roues.

Problème: les robots ne peuvent pas encore le faire car ils n'ont aucun moyen de mesurer leur position dans la pièce.

Question: Comment donner aux robots la capacité de mesurer leur position et leur orientation avec une précision meilleure que ± 5 mm? Je recherche une solution précise et robuste, qui ne soit pas affectée par les occlusions, et ne nécessite pas de PC haute puissance sur chaque robot. Les capteurs nécessaires à la localisation peuvent facilement être ajoutés aux robots. Les microcontrôleurs peuvent facilement être remplacés par des microcontrôleurs plus puissants si la solution de localisation l'exige.

Rocketmagnet
la source
De quel type de capteurs disposent les robots et quel type de puissance de calcul?
DaemonMaker
1
@DaemonMaker - Ajout de ces informations et tentative de clarification de la question.
Rocketmagnet
1
C'est une bonne mise à jour @Rocketmagnet mais la question est toujours plutôt ouverte. Il existe de nombreuses astuces dans la documentation sur la localisation qui peuvent être à votre disposition en fonction de ce que vos robots peuvent observer sur eux-mêmes, leur environnement et les uns des autres. Par exemple, il y a beaucoup de travail lié à la combinaison des croyances de plusieurs robots pour augmenter la précision de la croyance d'un robot donné. Cela peut être réalisé en ajoutant une petite caméra et un marqueur fiduciaire à chaque robot et n'augmenterait pas beaucoup le traitement.
DaemonMaker
Les occlusions bloquent-elles la ligne de vue xy ou z également? Par exemple, si vous avez des lignes, des lasers ou des miroirs au plafond, les robots pourront-ils généralement les voir?
James Waldby - jwpat7
@ jwpat7 - Puisque le plafond est si bas et que les robots le touchent pratiquement, il n'y a pratiquement jamais de ligne de vue dans la direction Z.
Rocketmagnet

Réponses:

4

Quelques idées qui me viennent à l'esprit ... En général, vous pouvez soit faire en sorte que chaque robot détecte sa propre position, soit demander à une sorte de système de trouver les robots et de leur envoyer des informations sur leur position (ou une combinaison). Utiliser éventuellement d'autres positions de robot pour vous localiser est une autre option s'ils peuvent communiquer. Vous pouvez également combiner les informations des capteurs provenant des robots et d'autres sources.

Optique

Vous pouvez encoder la position absolue ou la position relative au sol ou au plafond. Un capteur sur le robot peut les regarder. Un capteur comme celui de votre souris optique peut obtenir un mouvement relatif sur la plupart des surfaces, même sans motif. Il y avait des souris de style plus ancien qui utilisaient une grille à motifs.

Vous pouvez avoir deux caméras (ou plus) sur chaque robot regardant dans des directions différentes, si les murs de la pièce ont le bon type de motif, vous pouvez déterminer votre emplacement en fonction des images. Une caméra tournante est une autre option. L'obstruction de la caméra par d'autres robots peut être un problème.

Un réseau de capteurs ou une caméra au sol ou au plafond pourrait localiser les robots et vous pouvez ensuite envoyer les robots à leur emplacement.

Une sorte de capteur optique tournant qui peut localiser la direction d'une balise optique (par exemple une LED).

Du son

Vous pourriez avoir quelques balises autour de l'émission de gazouillis ultrasonores. S'ils sont tous synchronisés (par exemple, un délai fixe entre eux), étant donné leur emplacement, vous pouvez utiliser un calcul du temps de vol pour déterminer la position du robot. Il y a de nombreuses années, j'ai travaillé avec un numériseur à ultrasons qui était précis à environ un mm sur une distance d'environ un mètre, il semble donc dans le stade approximatif. Selon la forme de votre robot et la configuration des réflexions et des obstructions de l'essaim peuvent ou non être un problème. Vous auriez besoin d'expérimenter, mais mon instinct est qu'avec suffisamment de balises, vous pourriez avoir de bonnes performances.

Télémètres à ultrasons sur chaque robot. (tournant?) Pourrait cartographier la distance avec d'autres robots ou les murs.

Si l'un de ces sons vous intéresse, je peux essayer de développer ces idées un peu plus loin.

Guy Sirton
la source
J'aime la méthode à ultrasons. Je me demande si je pourrais l'envoyer à travers le sol pour qu'il puisse voyager sans être dérangé ou réfléchi par l'essaim.
Rocketmagnet
@Rocketmagnet: Vous pouvez l'envoyer par le sol. Le problème est de coupler correctement le transducteur, ce qui se fait généralement avec du gel. Ce serait probablement un peu compliqué pour votre application. Sans le bon couplage, les ultrasons rebondiraient simplement sur la surface. Peut-être que les roues de votre robot pourraient faire l'affaire.
Guy Sirton
@GuySirton Je souhaite implémenter la détection des gazouillis ultrasonores d'un appareil émis par un autre appareil. J'ai du mal à le faire parce que tous les composants que je vois disponibles sont des télémètres qui émettent et détectent l'écho. Ils sortent la plage et il est difficile de les séparer en pièces d'émission et de réception. Je dois envoyer les signaux par voie aérienne. Des conseils ou des suggestions? Merci!
nécromancien
@necromancer, vous devriez pouvoir acheter des émetteurs / récepteurs, par exemple, consultez ce digikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146 et plus dans la même catégorie ...
Guy Sirton
@GuySirton merci beaucoup. une grande aide!
nécromancien
4

Si le plafond est une surface plane visible du haut des robots, vous pouvez placer des bandes de marqueur (ou tout autre motif fiducial connu) sur le plafond à intervalles réguliers. Les rayures peuvent être des lignes blanches ou noires ou des bandes réfléchissantes étroites, détectées à l'aide de photocapteurs sur les robots.

Si les capteurs de position des roues et le contrôle précis des roues sont suffisamment bons pour maintenir la précision souhaitée des données de localisation lorsqu'un robot ne s'est pas éloigné de la distance d d'une position connue avec précision, les bandes (qui peuvent être des bandes blanches, des bandes noires ou une bande réfléchissante étroite) il peut être nécessaire de les placer à une distance d'au moins environ d / √2.

Le logiciel de planification de mouvement devrait probablement s'adapter. Si la position d'un robot est toujours incorrecte lorsqu'il traverse une bande, ajustez son rapport entre le nombre d'encodeurs de roue et la distance parcourue; ou si une bande serait vue si une jambe de voyage était légèrement plus longue, étendez la jambe pour traverser la bande; ou déplacer pour calibrer contre plusieurs bandes juste avant toute opération sensible à la position; ou effectuer des opérations sensibles à la position à un point de croisement de bandes.

Il existe une grande variété de modèles fiduciaires possibles. Les bandes orthogonales disposées parallèlement aux axes x et y sont probablement les plus simples à créer et à utiliser. Mais les yeux de taureau, les réticules, les coins, les codes à barres et d'autres modèles méritent également d'être pris en considération.

James Waldby - jwpat7
la source
+1 Même si j'ai lu votre réponse avant de poster la mienne, j'ai quand même posté à peu près la même réponse sur les fiduciaires ... Je blâme le manque de sommeil.
ThomasH
@ThomasH, merci! Je suis surpris de voir l'OP n'a pas voté à aucune des réponses, toutes offrent une information utile.
James Waldby - jwpat7
4

La faible distance entre le haut du robot et le plafond limite vraiment vos options. Il semble à peu près impossible d'obtenir un aperçu centralisé de toute la pièce et de travailler à partir de là.

Je ne sais pas de quel type de `` pièce '' vous parlez et combien vous pouvez l'instrumenter, mais ce pourrait être une option pour placer des marqueurs au plafond plutôt que les robots. Compte tenu de la courte distance, vous devrez presque complètement remplir le plafond de minuscules marqueurs qui peuvent être complètement observés par une caméra pointant vers le haut sur chaque robot, bien que vous puissiez peut-être positionner cette caméra plus bas sur le robot, disons entre les roues avant et arrière de chaque côté, pour vous donner un angle de vision plus large. Mais le plus grand défi serait d'imprimer suffisamment de marqueurs distincts pour instrumenter l'ensemble du plafond.

Alternativement, il peut être envisageable d'instrumenter le sol avec de nombreuses étiquettes RFID, à condition que vous puissiez trouver des lecteurs qui ont une portée suffisamment petite (AFAIK, les lecteurs RFID vous diront seulement qu'une certaine étiquette est à portée, pas où elle se trouve). Le lecteur RFID Phidgets a déjà une portée d'env. 3 pouces, donc à moins que vous ne localisiez en voyant quel groupe de balises vous pouvez observer (s'il est possible d'observer plusieurs balises en même temps - pouvez-vous dire que je n'ai aucune expérience de travail réelle avec la RFID?), Vous devrez expérimenter avec obtenir des étiquettes plus petites et les «protéger» dans une certaine mesure du lecteur, afin qu'elles ne puissent pas être lues autrement qu'à très courte distance.

Dans l'ensemble, cela semble un défi difficile mais très intéressant. Si c'est pour le travail, je suppose que vous ne pouvez pas nous dire le but du projet, mais ça a l'air intriguant :)

ThomasH
la source
Merci d'avoir répondu. Frustrant, il y a si peu de choses que je peux divulguer sur le projet qu'il a été très difficile de poser la question.
Rocketmagnet
Je pensais la même chose. Les piscines ont des drapeaux colorés au-dessus et des lignes en dessous pour indiquer au nageur son emplacement dans sa voie dans la piscine. Même concept mais 2 axes au lieu d'un.
zkent
3

Si un système Vicon est hors de question, vous pouvez utiliser un système de caméras calibrées pour lire les marqueurs placés au-dessus des robots.

  1. Placez les meilleures caméras que vous pouvez déplacer dans l'environnement. J'utilise des caméras Web de 20 $ d'Amazon.com
  2. Utilisez les outils d'étalonnage d'OpenCV pour étalonner les caméras.
  3. Placer des marqueurs sur les robots
  4. Les caméras connaissent leurs positions relatives dans l'environnement, donc en triangulant les positions des marqueurs, elles peuvent reproduire avec précision la position et l'orientation des marqueurs.

Un peu comme ce que ces chercheurs ont fait dans cet article (voir page 16)

Cependant, comme d'autres l'ont remarqué, si le plafond est très bas, vous n'aurez pas une bonne ligne de vue vers le haut des robots, et vous aurez du mal à utiliser cette méthode.

Josh Vander Hook
la source
Merci d'avoir répondu. Le problème avec quelque chose comme Vicon est la quantité massive d'occlusion qui se produit lorsque 50 robots envahissent une pièce avec un plafond aussi bas. Je pense que cela rend ce type de solution impossible.
Rocketmagnet du