|
Question pour un champion.
Je me suis construit une voiture de course avec un NXT. Les fonctions sont assez simple, il tourne a droite si le capteur de distance gauche détecte de quoi à moins de 24po et tourne a gauche si le capteur de distance droite détecte de quoi à moins de 24po. Arret et recul si les distances sont de moins de 6po. Programme disponible au besoin. Mon problème est le suivant, les capteurs de distance souffrent de certains problème, parfois il s'y glisse des donnés erroné sur la distance. La voiture dans le cas présent se retrouve donc à tourner sans la présence d'un obstable. Existe-t-il une façon de diminuer ses erreurs sans ralentir le programme, car c'est avant tout une voiture de course? Présentement il mesure en permanence la distance, une section debug du programme me permet de voir les valeurs en tout temps. |
|
@ Kaldaten
Avec le capteur US (que l'on voit fixé sur le haut du robot) et en le positionnant le plus bas possible. C'est faisable juste au-dessus de la pince … Pour régler la distance avec précision, voir plus bas. @ TrEvIzE Pour améliorer la précision, on peut utiliser le bloc PLAGE, donc l'ajouter à la suite du bloc ULTRASONS il suffit de raccorder le plot "Distance" du bloc Ultrasons au plot "#" du bloc Plage, et dans ce bloc préciser les valeurs min et max. Par exemple 20 et 24. Si la distance est comprise entre 20 et 24 la relation est vérifiée donc "Vrai"; dans l'autre cas c'est "Faux". On obtient une précision bien meilleure que celle donnée directement par le bloc Ultrasons. Le plot de sortie du bloc Plage est du type logique. Ce plot sera raccordé à celui d'un bloc suivant "Commutateur" qui décidera de la suite à donner: si Oui alors le moteur change de comportement, si Non alors il continue sans changement. Et pour le débug c'est nettement simplifié. A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
Merci de la réponse si rapide, par contre le problème n'est pas tout à faite là. Mais plutôt au niveau de valeur fantôme. Des 16po par exemple qui apparaissent une fraction de seconde alors qu'il n'y a absolument rien devant. Le problème va persister même en utilisant un système de plage car la donné erroné est quand même dans la plage mais non réel.
J'ai penser utiliser un système qui attendrais que la donné sois moins de 24po durant un temps donné, mais vu la vitesse du bolide c'est l'accident à coup sur. Edit: Problème régler. Enfin si on veut.Après avoir jaser avec Bazmati il m'a fait réaliser que l'interférence venais du fait que j'utilisais 2 capteurs ultrasonic à environ 45deg l'un de l'autre, donc parfois l'onde de un étais capteur par l'autre, ce qui faussait les données. Dernière édition par TrEvIzE le Dim Avr 17, 2011 5:09 pm, édité 1 fois au total.
|
|
Hello
J'ai changé le système de pince et installé le même que vous m'avez proposé Mais le problème persiste. J'ai pourtant changé le programme DébutPPE, et supprimé le multiplexeur. Je pense que le problème ne viendrait donc pas du multiplexeur, mais alors pour savoir où, je suis incapable de le dire... Se peut-il que le programme soit trop long ? (3 Monblocs => DébutPPE, Auto-calib_Photo et suivi de ligne) Toujours le même problème : Il exécute DébutPPE, s'arrête 10secondes comme je lui ai imposé, mais ne lance pas auto-calib et avance tout droit après le "bip" sonore annonçant la fin de ce dernier bloc... Ha, parfois il a esquissé un mouvement de rotation, mais dans le mauvais sens, et sans vouloir s'arrêter... |
|
Le programme principal n'est pas trop long. Supprime le bloc "Déplacer CB" en position STOP entre les monblocs DebutPPE et Auto-calib_Photo… EDIT: erreur de ma part: supprime la boucle finale du Monbloc DebutPPE (blocs "Moteurs" C et B) et conserve le bloc "Déplacer" en position STOP du programme principal ci-dessus. Cette boucle empêche le programme de continuer, puisqu'elle tourne en rond indéfiniment. Quand ce Monbloc fonctionne tout seul, il exécute convenablement tout ce qui précède, puis se met attente en stoppant les moteurs B et C grâce à cette boucle. Cela signifie que ce programme n'a pas de fin. Pour sortir tu es obligé d'appuyer sur la touche Annulation. Variante: sans supprimer cette boucle, au lieu de la faire tourner "pour toujours", tu peux utiliser le paramètre "capteur" > "bouton du NXT". En appuyant sur le bouton rouge "Entrée" par exemple, tu sort de la boucle et le programme se poursuit. A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
Après de nombreux essais, encore et toujours le même problème...
Voici mon bloc DébutPPE remanié La dernière boucle dure 5secondes. J'ai placé entre les blocs DébutPPE et Auto-calib_photo, 1bloc Déplacer "STOP" pour B et C ainsi qu'une pause de 2secondes. Sans succès... J'espère ne pas trop vous déranger avec mes soucis, mais je ne sais pas à qui m'adresser d'autre Merci encore pour toute votre aide EDIT : Je me pose également une question : Est-il possible de détecter une fin de ligne avec le capteur en mode photosensible ? |
|
Petit message à l'attention de Roboleo :
Bravo pour tout ton travail sur les PID (et les autres sujets) ! C'est un peu difficile à comprendre la première fois mais avec un peu de calme (et pas ma fille dans les pattes ...) c'est super clair ! Je vais pouvoir passer d'un système P à PID |
|
Tiens, encore un eurobotteur qui viens sur ST
Bienvenu sur le forum, n'oublie pas de passer par le topik de présentation, c'est la règle ici |
|
Merci à toi. Pour un esprit un peu matheux, on s'y fait rapidement… A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
Bon, j'ai commencé la lecture de ce post... C'est une mine d'informations... Je n'ai pas encore fini...
Je vais essayer d'appliquer le PID au produit dont j'ai fait l'acquisition dernièrement : Le light sensor array une petite image avec un réglet pour avoir une échelle... C'est l'équivalent de huits capteurs photosensibles cote à cote. Donc 8 valeurs en lecture et je ne sais pas trop comment les exploiter... Je suis plus mécanicien de formation plus que programmeur. Donc on va voir... Pour info je programme avec le logiciel en NXT-G. J'ai téléchargé le NXT-G bloc j'ai regardé les exemples... maintenant voici mon problème... Faire un suiveur de ligne le plus rapide possible... Je ne sais pas si je dois ouvrir un post spécifique sur le produit et son utilisation. Peut-être que l'un d'entre vous à déjà bosser sur ce capteur ? Je serais preneur pour maitriser le capteur et réussir à le transmettre aux roboticiens en herbe de mon collège... Merci d'avance... |
Retourner vers De la théorie à la pratique
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités