Bonjour,
Je travaille actuellement avec un capteur ultrason sur mon mini sumo robot.
Je trouve que le capteur manque de fiabilité dans la détection.
Auriez-vous un autre type de capteur à me conseiller?
Merci d’avance.
Bonjour,
Je travaille actuellement avec un capteur ultrason sur mon mini sumo robot.
Je trouve que le capteur manque de fiabilité dans la détection.
Auriez-vous un autre type de capteur à me conseiller?
Merci d’avance.
c'est pour détecter les distances ? ça devrait fonctionner sauf si les ondes sont très amorties ou bien sûr que votre code (que vous n'avez pas posté) ou votre schéma de câblage (que vous n'avez pas posté non plus...) sont merdiques...
il existe des capteurs laser dit ToF (time of flight) qui utilisent un laser, par exemple le VL53L0X vous donnera une mesure entre 30 et 1000 mm. il y a d'autres versions pour une distance plus grande
vous avez aussi des capteurs en infra-rouge, par exemple le DMS-80 (10 à 80 cm)
vous trouverez aussi des trucs plus chers.. par exemple TeraRanger One A Box et autres LIDARs....
tout dépend des performances attendues et du budget
Bonjour,
J’utilise le code classique du détecteur à ultrason. Voir ci-dessous.
Mais lorsque le robot tourne sur lui-même pour chercher l’objet, il ne le détecte que dans certaines positions.
J’utilise une boite métallique comme objet a détecter.
Lorsque le robot est a plus de 50cm et qu’il est face à une arrête de la boîte (boite en diagonale par rapport au robot), il ne la détecte pas. Pour éviter que le robot ne tourne bêtement en boucle
Si par contre la boite est bien de face ou sur le côté, le robot la détecte parfaitement bien.
int MesureDistance(){
long duration;
int distance;
// Clears the trigPin condition
digitalWrite(TRIGGER, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH (ACTIVE) for 10 microseconds
digitalWrite(TRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(ECHO, HIGH);
delayMicroseconds(200); //temps d'attente imposé par le capteur entre 2 mesures
// Calculating the distance
distance = duration * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
return distance;
}
oui les ondes rebondissent et ne reviennent pas vers le capteur...
n'appellez pas MesureDistance() trop souvent, laissez par exemple 100ms entre 2 appels pour éviter que les ondes ne se mélangent
C'est normal, la majeur partie de la salve d'ultrason n'est pas renvoyée vers le robot mais déviée.
Lorsque la face est perpendiculaire au capteur 100% du signal revient (moins l'atténuation dû à la distance évidemment). Lorsque la face tourne la fraction de signal réfléchi diminue avec l'angle jusqu'à atteindre 0 lorsque la face est parallèle au faisceau. Je parle là d'une face théorique qui n'aurait pas d'épaisseur.
Dans le cas d'une boite, la limite est autour de 45° car lorsqu'une face disparaît l'autre devient visible.
Lorsque le robot est très près une petite partie du signal doit quand même revenir vers ton capteur mais lorsque le robot est éloigné la distance ajoutant une atténuation supplémentaire le capteur ne doit plus rien détecter.
A noter que tu auras le même problème avec des capteurs optiques les lois de la réflexion étant sensiblement les mêmes.
Il faut aussi prendre en compte:
Oui je l'avais compris !
Ce que je retiens, c'est que c'est un fonctionnement "normal" du capteur, et qu'un capteur optique pourrait présenter les mêmes inconvénients.
Afin d'éviter que le robot ne tourne en rond bêtement, je lui impose de modifier sa trajectoire au bout d'un certain temps.
Je prends note pour le temps d'attente entre deux appelles de "MesureDistance()".
Merci beaucoup.
Merci beaucoup pour ces précisions.
Bonne fin de journée,
En générale on couple un détecteur de contact avec un détecteur optique.
Après heureusement une boite en diagonale n'est pas l'élément le plus fréquent dans nos intérieurs ou la nature.
Comment la fait tu tenir en équilibre?
elle est stable, c'est juste le robot qui la regarde du mauvais endroit
imaginez une boîte cubique
vue de côté avec l'émission du ping
mais vu de dessus suivant la façon dont vous approchez la boîte cubique vous aurez plus ou moins de reflexion du signal ultrason qui reviendra vers l'émetteur et si vraiment vous n'avez pas de chance, rien ne reviendra (ou trop atténué pour être pris en compte)
ha ok effectivement!, c'est vraiment pas de bol, de tombé pile sur la tranche d'un objet qui a une arrête aussi fine
C'est pour cela que les avions dits furtifs ont tous une géométrie très particulière pour réfléchir l’onde RADAR ailleurs que de là d'où elle vient (dans certains cas, l’onde du radar est aussi piégée dans la partie angulaire de la carlingue de l'avion qui finit par en dissiper l’énergie totalement et bien sûr il y aussi un revêtement absorbant)
Ha oui, j'y pense que maintenant, souvent aussi, il y a deux capteurs optiques. peut être cela pourrait être suffisant pour ton cas et permet de savoir si ton mur/objet est plutôt à droite ou à gauche.
C'est exactement ça, tu as bien compris la situation !
Bravo !
Alors, dans mon cas, c'est pour tester des combats de mini sumos robots.
J'ai vu pas mal de vidéo et c'est souvent des capteurs à ultrasons.
Mais sur certaines vidéos, c'est d'autres types de capteurs qui semblent être beaucoup plus précis...
Je vais continuer d'experimenter pour voir comment j'arrive à avancer.
J'attends aussi mes PCB et mon materiel pour me fabriquer un deuxième robot. et commencer les combats.
Oui @J-M-L au post #2 ta donnée, si ce n'est un panel exhaustif, les plus connus.
à ma connaissance le laser étant le plus précis.
Après dans un combat de robot, je ne suis pas sûr que la précision soit si primordiale.
Cela ce traduit comment la précision de détection dans la vidéo?
quel est la précision du capteur que tu possède?
Mais quitte à me répéter pour tomber dans le cas que tu cite, dans un combat cela ne doit pas être si simple?
Dans certaines vidéos, nous voyons des robots qui tournent en rond pour localiser l’autre robot.
Mais certains robots ne tournent pas en rond. Ils savent exactement où chercher le robot adverse.
C’est assez impressionnant.
Je ne sais pas si c'est uniquement la précision du capteur qui est en cause, l'algorithme doit avoir aussi un rôle crucial.
Tu as aussi avec deux détecteurs par exemple, tu peux commencer à avoir une indication de la direction de la cible.
Avec un lidar(laser avec balayage, je crois) tu as un angle encore plus précis.
Après il faut voir le temps de mesure.
Quand tu aura deux robots, tu pourra voir justement l'influence du logiciel par rapport au matériel.
En pratique le robot est en mouvement - si vous restez immobile vous êtes une proie facile donc le ranging ne tombera normalement pas en permanence sur une arrête du robot adverse. Vous pouvez aussi avoir plusieurs radars autour de votre robot… au final c’est une question aussi d’argent…
Effectivement,
J’hésite à mettre soit 2 capteurs en façade, soit 3 capteurs (1 en facade, 1 à droite, 1 à gauche).
Je verrai avec le temps!
Si tu nous montre la vidéo dont tu parle, peut être que quelqu'un pourra identifier le capteur utilisé.
Autant en mettre 4 alors