Sinon, une sphère actionnée par des Omniwheels ou des Mecanums. Le cube étant soutenu aux angles par des billes libres. Il y en a chez Lego.
J'ai déjà fait quelque chose comme ça, mais cela n'a pas abouti.
J'ai des cases de 18 cm, 14 cm est le plus petit carré que j'ai réussi à faire avec des omniwheels, je veux maintenir cet objectif pour avoir une marge de 2cm de chaque côté. Au-delà j'augmente les difficultés du trajet, en particulier au niveau des intersections.
je ne vois pas ce que tu veux dire avec une sphère ? Après je me suis donné des contraintes esthétiques, c'est à dire zéro trous ou "picots" identifiant lego visibles de l'extérieur, c'est très contraignant mais plus élégant et intéressant à construire
Je repars donc à zéro et j'essaie de construire le même robot, avec le même encombrement avec des roues mecanum. J'ai échoué une première fois avec des entrainement directs, je vais voir si je peux positionner les moteurs de façon astucieuse avec des trains d'engrenages pour laisser la place au positionnement des capteurs ultrasons. L'inconvénient des roues mecanum est leur taille et une gestion plus complexe. Elles ont tendance aussi à chaque démarrage et arrêt de provoquer une très légère déviation mais qui peut se corriger. Le challenge est chaud de faire rentrer 4 roues mecanum , 4 moteurs, 4 capteurs ultrasons et une brique EV3 dans un cube de 14 cm de côté... même si en hauteur je me laisse la possibilité de dépasser cette cote.
Je peux te proposer des roues mécanum un peu plus petite ... 50 mm 48 mm ou 38mm au lieu de 60mm est ce que ça t'intéresse?
Par contre j'ai pas l'adaptateur lego en direct qui va avec ... ( Des roues trop petites ça peut ne pas être pratique si le moteur est plus large que la roue ^^ Donc à toi de voir =) )
Je peux te proposer des roues mécanum un peu plus petite ... 50 mm 48 mm ou 38mm au lieu de 60mm est ce que ça t'intéresse?
Par contre j'ai pas l'adaptateur lego en direct qui va avec ... ( Des roues trop petites ça peut ne pas être pratique si le moteur est plus large que la roue ^^ Donc à toi de voir =) )
Une semaine de construction et de déconstruction pour arriver enfin à un résultat. C'est fou comme je trouve que c'est plus difficile de se déplacer dans un labyrinthe que de se mouvoir de façon autonome dans une pièce libre.
* J'ai résolu le problème de patinage en remplaçant les omniwheels par les mecanum. J'ai eu du mal à les loger dans mon cube de 14 cm mais c'est fait. J'ai pu le faire en positionnant les moteurs de façon verticale et en les déportant avec un train d'engrenage. Les mecanum permettent un couple plus important sans patinage et du coup je peux faire de l'odométrie pour me déplacer. Je suis définitivement convaincu de la supériorité des mecanum sur les omniwheels.
* Autre gros problème inhérent au capteur ultrason lego, son absence totale de fiabilité pour les distances inférieures à 3cm, donc impossibilité de mesurer de façon fiable les distances avec les murs, y compris quand le robot est plaqué contre. Du coup j'ai décalé à l'intérieur les capteurs (avant ils étaient à fleur) et pour cela j'ai du aussi les décaler en hauteur par paire à cause de leur encombrement.
Cela me permet dans chaque case avec des murs parallèles de vérifier que je ne suis pas plaqué au mur (je corrige sinon) et surtout dans les angles droits de refaire un RAZ de la perpendicularité en plaquant en diagonale le robot, chose très facile à faire avec le mecanum.
Je suis très satisfait du résultat, très fiable et répétable. La vitesse est un paramètre réglable à voir par la suite si j'essaie d'aller plus vite. Là on est à 2.5s/case. Je compte aussi au final ne plus marquer d'arrêt à chaque case.
Je vais enfin pouvoir attaquer la recherche du meilleur algorithme pour la résolution du labyrinthe !
L'algorithme le plus connu est "L’algorithme de Pledge", connu pour sa simplicité, donc facile à coder, prend peu de ressource cpu, mémoire, ...
Laurent
Je ne sais pas s'il s'en approche, mais je suis parti pour explorer les cases, avec un soupçon d'aléatoire au début, mais en enregistrant toutes les informations et surtout en blacklistant les cases au fur et à mesure, de façon à ne jamais revenir dessus.
Le plus drôle c'est que lorsque j'ai posé le robot en mode avancement aléatoire pour tester les déplacements, il a trouvé la solution idéale du premier coup, alors que la probabilité était de 1 chance sur 64...et que la moindre erreur pouvait le faire tourner en rond des heures...
Juste avant que j'attaque la partie de programmation de résolution du labyrinthe... pas très motivant !
En parallèle j'ai développé la communication avec une deuxième brique Ev3 pour pouvoir suivre à distance (bluetooth) la progression du robot dans le labyrinthe, case par case. Sur chaque case parcourue par le robot apparaît un point et quand la case a été identifiée comme étant sans issue, donc à ne pas réemprunter, elle est complètement noircie. A gauche le temps de parcours s'incrémente. Cette deuxième brique sert de starter , de chrono et d'arrêt d'urgence.
En poussant le vice plus loin le robot n'aurait pas du visiter le cul de sac qu'il a visité, car le chemin déjà parcouru coupait toute sortie possible =)
En poussant le vice plus loin le robot n'aurait pas du visiter le cul de sac qu'il a visité, car le chemin déjà parcouru coupait toute sortie possible =)
Non je ne crois pas, rien ne peut indiquer que la sortie n'est pas là , il n'a pas encore parcouru ces cases. Aléatoirement il peut aller à droite (cul de sac) ou à gauche.en revanche il n'y reviendra pas.
Je me suis toujours posé la question.
Il n'y aurait pas moyen d'envoyer les infos sur un PC pour visualiser le labyrinthe ?
J'ai regardé aussi...peut-être en sortant du langage EV3 ? Autrement il faut télécharger les fichiers d'un Ev3 , ce qui ne peut se faire qu'à l'arrêt, Il est donc possible de tracer tout le parcours une fois effectué mais pas de le visualiser en live.
Il y a aussi le mode expérience mais qui ne permet de voir sur le pc que les états des capteurs et des moteurs. C'est très puissant mais pas suffisamment pour ce projet.
S'il y avait une possibilité, cela m'intéresserait.
Je pensais également au mode expérience. Si tu peux récupérer des données, c'est le principal. Connais-tu un langage de programmation en dehors de l'EV3-G ?
Non je ne crois pas, rien ne peut indiquer que la sortie n'est pas là , il n'a pas encore parcouru ces cases. Aléatoirement il peut aller à droite (cul de sac) ou à gauche.en revanche il n'y reviendra pas.
Par des coordonnées qui sont hors du cadre. Le robot incrémente ligne et colonne en se déplaçant, de 0 à 9. S'il se déplace dans une ligne ou colonne de valeur -1 ou 10 c'est qu'il est sorti, et il n'y a qu'une sortie. Dans la petite vidéo la sortie pouvait très bien être à la place du cul de sac. la seule façon de le savoir est d'y aller (mais c'est un choix aléatoire, il aurait pu aller de l'autre côté).