[EXERCICE 2] Les déplacements de base

Faites vos preuves !

Messagepar cybermaster » Dim Mar 29, 2009 4:03 pm

Anio a écrit:Les joints des carreaux doivent sacrément perturber le pied frotteur, et donc la direction du robot. Je pense que tes décalages importants viennent de là. :clin:


J'ai essayé sur parquet, et le décalage est sensiblement le même. Y'a que pour le triangle que c'est un peu mieux. :clin:

semtou a écrit:Tu vas faire une vidéo ? j'ai bien envie de voir la bête en action.


La vidéo, j'essaierais demain si j 'ai le temps (je pense que oui).

Y'a un autre problème que le frottement du pied par terre (qui n'est quand même pas transcendant) : c'est le patinage des jantes sur les pneus au démarrage. Donc j'ai mis des démarrages progressifs quand j'ai pu, c'est à dire pas toujours :/
Image

Le jour où on mettra les con* sur orbite, j'en connait qui n'ont pas fini de tourner
Avatar de l’utilisateur
cybermaster
Level 9
Level 9
 
Messages: 2267
Localisation: Valence
Âge: 16 ans

Messagepar Thibaud » Dim Mar 29, 2009 4:32 pm

dans le genre unminimum de pieces je dirait bravo et pour le reste aussi d'ailleurs. Comme anio et semtou je dirais que le pieds sur les jointures des carreaux ce n'est pas top il doit bien changer ta direction.
Venez voir mes créations ;) NXTGEN
Thibaud
Level 6
Level 6
 
Messages: 324
Localisation: Paris

Messagepar roboleo » Dim Mar 29, 2009 5:45 pm

Pour cybermaster:
en attendant la vidéo, chapeau pour le programme NXT-G. :clap:
C'est vraiment complet, il y a tout: l'affichage, le comptage, la sélection, les déplacements…
Il est possible d'améliorer. Dès que j'aurai le temps, je t'enverrai une proposition.
Je vois que tu as bien assimilé mes modestes leçons. :D
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso
Avatar de l’utilisateur
roboleo
Level 7
Level 7
 
Messages: 730
Localisation: Hauts de Seine

Messagepar cybermaster » Dim Mar 29, 2009 6:00 pm

Merci à tous ;)

roboleo a écrit:Il est possible d'améliorer.


Oui, j'ai remarqué, mais par flemme je ne l'ai pas fait .. Par exemple, pour le triangle, faire une boucle qui se repète trois fois à la place des multiples blocs, etc ... :D
Image

Le jour où on mettra les con* sur orbite, j'en connait qui n'ont pas fini de tourner
Avatar de l’utilisateur
cybermaster
Level 9
Level 9
 
Messages: 2267
Localisation: Valence
Âge: 16 ans

Messagepar Alban42800 » Lun Mar 30, 2009 12:47 pm

Cybermaster :
Il est bien propre ton robot. Pour le programme je suis au bureau et je ne peux le lire donc...
Si tu veux améliorer la précision :
Roule doucement et sans régulation de vitesse (peut-être puissance = 30% sans cocher "contrôle de la puissance")
Fait un deuxième pied frotteur à l'avant et centre le NXT sur les roues motrices. Un seul pied doit toucher le sol en même temps, surtout avec tes joints de carrelage.

Thibaud :
Intéressant ce test unitaire. Quelle erreur de lecture as-tu, + ou - 1 degré ?
Il y a certainement une tolérance dans la classe qui provoque cela.

Tu peux faire le même test en avançant en ligne droite pour "rigoler" ?
Essaie aussi à différentes vitesses et distances. il y a peut-être des cas plus favorables.
Le bouton "Aperçu" permet de vérifier son message avant de l'envoyer.
Avatar de l’utilisateur
Alban42800
Modérateur
Modérateur
 
Messages: 1648
Localisation: Loire (42)
Âge: 37 ans

Messagepar Thibaud » Lun Mar 30, 2009 1:08 pm

Alban je ne suis en effet pas aller beaucoup plus loin dans les test, je vais y remedier dés que possible. L'erreur est de plus ou moins 0.5 degrés en moyenne. Je ne sais pas trop si il s'agit d'une tolérance si tu fais deux fois les même calculs tu obtiens la même chose. Là où c'est aussi étonnant c'est que dans la classe Pilot et dans la classe moteur les getTachoCount et le getAngle sont en entiers ce qui est logique puisque la résolution des encodeurs est au degrés. Par contre sur le tachonavigator le getAngle est en float et retourne des valeurs à virgule... je comprends pas tout la.
Venez voir mes créations ;) NXTGEN
Thibaud
Level 6
Level 6
 
Messages: 324
Localisation: Paris

Messagepar Thibaud » Lun Mar 30, 2009 1:47 pm

Humm j'ai trouvé une chose intérressante dans les sources de lejos :)

Lorsque tu demandes un rotate, le programme demande aux deux moteurs de tourner en sens inverse d'un nombre de degré indiqué et de s'arreter (un des moteurs est donc lancé avant l'autre)
Et quant tu demande un get angle il fait la chose suivante :
Code: Tout sélectionner
public int getAngle() {
    return _parity * Math.round((getRightCount() - getLeftCount()) / (2 * _turnRatio));
  }


Il fait un arrondis du coup si les moteurs ne tourne pas a la même vitesse, ne parte pas en mm temps, on aura jamais le même resultat.... d'où le besoin d'une conduite différentielle pour améliorer cela. A noter que la méthode getANgle que je montre là, est celle utiliseée par la classe pilot celle pour la classe tachonavigator elle retourne un float et est donc plus précise.
Venez voir mes créations ;) NXTGEN
Thibaud
Level 6
Level 6
 
Messages: 324
Localisation: Paris

Messagepar Alban42800 » Lun Mar 30, 2009 3:10 pm

Tout s'explique, avec les angles en entier de chaque roue indépendente et le diamètre des roues en float et la voie en float tu tombe au final sur un angle de rotation du robot en float.
Pour cette raison aussi il est presque impossible d'avoir des angles sans décimales, donc quand tu demande 5° tu est presque sur d'avoir une erreur de +/-0,5°.
Il faut choisir la taille des roues et la largeur de la voie de sorte d'avoir les angles 90-180-270° qui tombent juste !
Le bouton "Aperçu" permet de vérifier son message avant de l'envoyer.
Avatar de l’utilisateur
Alban42800
Modérateur
Modérateur
 
Messages: 1648
Localisation: Loire (42)
Âge: 37 ans

Messagepar Thibaud » Lun Mar 30, 2009 5:41 pm

oui il faut donc penser à l'envers partir de ce que l'ont veux pour choisir les params de son tachonavigator, l'idéal serait de faire un bout de code pour calibrer tout ça.
Venez voir mes créations ;) NXTGEN
Thibaud
Level 6
Level 6
 
Messages: 324
Localisation: Paris

Messagepar roboleo » Mar Avr 07, 2009 2:48 pm

Je vous avais promis un réponse sur la recherche du centre de gravité.
Vous la trouverez ici:
http://gallery.me.com/roboleo/
C'est un peu rudimentaire, mais suffisant pour une première approche.
Le robot est supposé en équilibre parfait par rapport à son axe longitudinal, ce qui implique la symétrie.
L'équilibre se recherche par rapport à un axe parallèle à celui du train de roues motrices. On détermine la projection verticale (facilement visible) du C. de G. sur le plan de roulement horizontal. ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso
Avatar de l’utilisateur
roboleo
Level 7
Level 7
 
Messages: 730
Localisation: Hauts de Seine


Retourner vers Les exercices et les concours SeTechnic

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités