[Maximus] Un empileur de pions !
Débuté par Jbot, déc. 15 2010 04:12
161 réponses à ce sujet
#68
Posté 27 mars 2011 - 03:01
c'est wazup sur canal j
http://www.cubernetes.com/caliban/2011/03/caprica-3-a-la-tala-1153
en plus jbot joue le rôle du grands gentil qui aide les petits
http://www.cubernetes.com/caliban/2011/03/caprica-3-a-la-tala-1153
en plus jbot joue le rôle du grands gentil qui aide les petits
#69
Posté 28 mars 2011 - 12:24
Sauf que j'avais rien à lui dire à ce pauvre petit :D
Bon, dimanche soir, j'ai ajouté une ptite fonctionnalité au robot.
J'ai ajouté 2 capteurs de contact sur ses "fesses" pour qu'il puisse se positionner automatiquement dans sa zone de départ.
Du coup lorsqu'il démarre, il se cale contre un mur pour initialiser sa valeur en Y, puis se tourne et se cale contre un deuxieme mur (a la perpendiculaire du premier) pour initialiser son X et théta.
alpha_motor.max_speed = 5000;
// go back to touch the wall
set_new_command(&bot_command_delta, -1000);
while( (digitalRead(LEFT_REAR_SENSOR) == 0) || (digitalRead(RIGHT_REAR_SENSOR) == 0) ) {
delay(100);
}
// Set the Y position and theta
my_robot->theta = PI/2;
my_robot->pos_Y = DISTANCE_REAR_WHEELS;
my_robot->pos_X = 0;
delay(100);
// Stop the motors
set_new_command(&bot_command_alpha, 0);
set_new_command(&bot_command_delta, 0);
// Go forward, turn, and go bachward to touch the other wall
set_new_command(&bot_command_delta, 150);
delay(2000);
set_new_command(&bot_command_alpha, (color * PI/2 * RAD2DEG));
delay(4000);
set_new_command(&bot_command_delta, -1000);
while( (digitalRead(LEFT_REAR_SENSOR) == 0) || (digitalRead(RIGHT_REAR_SENSOR) == 0) ) {
delay(100);
}
// Set the X and theta values
my_robot->pos_X = color * (1500 - DISTANCE_REAR_WHEELS);
if(color == 1) {
my_robot->theta = PI;
}
else {
my_robot->theta = 0;
}
delay(100);
// Stop the motors
set_new_command(&bot_command_alpha, 0);
set_new_command(&bot_command_delta, 0);
delay(1000);
// Go in the middle of the starting area
set_new_command(&bot_command_delta, 100);
delay(2000);
// Set the speed to the maximum
delta_motor.max_speed = DELTA_MAX_SPEED;
alpha_motor.max_speed = ALPHA_MAX_SPEED;[/code]
J'ferais ptete une vidéo, même si ça n'a pas forcement d'interet :p
Bon, dimanche soir, j'ai ajouté une ptite fonctionnalité au robot.
J'ai ajouté 2 capteurs de contact sur ses "fesses" pour qu'il puisse se positionner automatiquement dans sa zone de départ.
Du coup lorsqu'il démarre, il se cale contre un mur pour initialiser sa valeur en Y, puis se tourne et se cale contre un deuxieme mur (a la perpendiculaire du premier) pour initialiser son X et théta.
delta_motor.max_speed = 12000;
alpha_motor.max_speed = 5000;
// go back to touch the wall
set_new_command(&bot_command_delta, -1000);
while( (digitalRead(LEFT_REAR_SENSOR) == 0) || (digitalRead(RIGHT_REAR_SENSOR) == 0) ) {
delay(100);
}
// Set the Y position and theta
my_robot->theta = PI/2;
my_robot->pos_Y = DISTANCE_REAR_WHEELS;
my_robot->pos_X = 0;
delay(100);
// Stop the motors
set_new_command(&bot_command_alpha, 0);
set_new_command(&bot_command_delta, 0);
// Go forward, turn, and go bachward to touch the other wall
set_new_command(&bot_command_delta, 150);
delay(2000);
set_new_command(&bot_command_alpha, (color * PI/2 * RAD2DEG));
delay(4000);
set_new_command(&bot_command_delta, -1000);
while( (digitalRead(LEFT_REAR_SENSOR) == 0) || (digitalRead(RIGHT_REAR_SENSOR) == 0) ) {
delay(100);
}
// Set the X and theta values
my_robot->pos_X = color * (1500 - DISTANCE_REAR_WHEELS);
if(color == 1) {
my_robot->theta = PI;
}
else {
my_robot->theta = 0;
}
delay(100);
// Stop the motors
set_new_command(&bot_command_alpha, 0);
set_new_command(&bot_command_delta, 0);
delay(1000);
// Go in the middle of the starting area
set_new_command(&bot_command_delta, 100);
delay(2000);
// Set the speed to the maximum
delta_motor.max_speed = DELTA_MAX_SPEED;
alpha_motor.max_speed = ALPHA_MAX_SPEED;[/code]
J'ferais ptete une vidéo, même si ça n'a pas forcement d'interet :p
#74
Posté 29 mars 2011 - 08:52
Voila, hier soir j'ai donc rajouté la calibration du point de départ automatique (le robot calcul sa position en fonction des bordures qu'il touche) et le cordon de démarrage obligatoire.
La ptite vidéo.
La ptite vidéo.
#76
Posté 30 mars 2011 - 08:06
Un petit test d'évitement.
Malheuresement ça introduit une trés grosse erreur d'estimation de position, surement due au mauvais alignement entre les roues codeuses et les roues motrice... Il va falloir regarder la méca de plus prés...
Malheuresement ça introduit une trés grosse erreur d'estimation de position, surement due au mauvais alignement entre les roues codeuses et les roues motrice... Il va falloir regarder la méca de plus prés...
#80
Posté 30 mars 2011 - 09:45
Le roi fait au grand maximum 160mm de large, alors que les robots adverse font largement plus. Donc j'essaierais de différencier par rapport à la largeur. C'est sur que c'est pas optimal mais je n'ai vraiment pas les ressources temporelle pour créer une balise de repérage de l'adversaire :(
Au pire si ca rate j'éviterais un roi, c'est tjrs mieux que de foncer sur un adversaire ^^
Au pire si ca rate j'éviterais un roi, c'est tjrs mieux que de foncer sur un adversaire ^^
Répondre à ce sujet
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users