Guillaume Chauvon
/
Asservissment_robot2_v16_05
l
Diff: deplacement.cpp
- Revision:
- 3:d38aa400d5e7
- Parent:
- 2:3066e614372f
- Child:
- 4:eac6746544fb
diff -r 3066e614372f -r d38aa400d5e7 deplacement.cpp --- a/deplacement.cpp Wed May 08 21:19:10 2019 +0000 +++ b/deplacement.cpp Thu May 09 07:09:54 2019 +0000 @@ -112,14 +112,14 @@ if(abs(vitesse_G) > 900){ vitesse_local_G=900; } - if(abs(vitesse_G)<2){ - vitesse_local_G=2; + if(abs(vitesse_G)<10){ + vitesse_local_G=10; } if(abs(vitesse_D) > 900){ vitesse_local_D=900; } - if(abs(vitesse_D)< 2){ - vitesse_local_D=2; + if(abs(vitesse_D)< 10){ + vitesse_local_D=10; } ; @@ -149,7 +149,7 @@ set_PWM_moteur_D(0); } } -void deplacement::reculer_un_peu(int distance) +void deplacement::marche_arriere(int distance) { somme_y=0; // le robot avance en ligne droite sur une distance donnée, à la vitesse voulue (entre 0 et 900) @@ -214,13 +214,13 @@ //printf(" VG : %f VD : %f ; x_local : %lf, y_local : %lf, angle_vise : %f\n",vitesse_G,vitesse_D, x_local,y_local, angle);// sqrt((x_ini - x_actuel)*(x_ini - x_actuel) + (y_ini - y_actuel)*(y_ini - y_actuel)), y_actuel, (x_actuel - x_ini)*(x_actuel - x_ini) + (y_actuel - y_ini)*(y_actuel - y_ini)); } //printf("x : %d, y : %d, angle : %f\n", get_x_actuel(), get_y_actuel(),get_angle()); - test_rotation_abs(angle_vise_deg); + rotation_abs(angle_vise_deg); //printf("x : %d, y : %d, angle : %f\n", get_x_actuel(), get_y_actuel(),get_angle()); } -void deplacement::ligne_droite_v2(long int distance) +void deplacement::ligne_droite(long int distance) { somme_y=0; // le robot avance en ligne droite sur une distance donnée, à la vitesse voulue (entre 0 et 900) @@ -285,11 +285,11 @@ //printf(" VG : %f VD : %f ; x_local : %d, y_local : %d, angle_vise : %f",vitesse_G,vitesse_D, x_local,y_local, angle_vise_deg);// sqrt((x_ini - x_actuel)*(x_ini - x_actuel) + (y_ini - y_actuel)*(y_ini - y_actuel)), y_actuel, (x_actuel - x_ini)*(x_actuel - x_ini) + (y_actuel - y_ini)*(y_actuel - y_ini)); } //printf("x : %d, y : %d, angle : %f\n", get_x_actuel(), get_y_actuel(),get_angle()); - test_rotation_abs(angle_vise_deg); + rotation_abs(angle_vise_deg); //printf("x : %d, y : %d, angle : %f\n", get_x_actuel(), get_y_actuel(),get_angle()); } -void deplacement::test_rotation_rel(double angle_vise) +void deplacement::rotation_rel(double angle_vise) { // rotation de angle_vise motors_on(); @@ -328,17 +328,17 @@ //consigne_G = 0; vitesse_nulle_G(0); vitesse_nulle_D(0); - wait(0.2); + wait(0.1); motors_stop(); } -void deplacement::test_rotation_abs(double angle_vise) +void deplacement::rotation_abs(double angle_vise) { actualise_position(); //printf("bite"); double angle_rel = borne_angle_d(angle_vise-get_angle()); - test_rotation_rel(angle_rel); + rotation_rel(angle_rel); } void deplacement::asservissement(){ @@ -381,8 +381,8 @@ erreur_G += erreur_glissee_G[i]; } - erreur_D = erreur_D/5.0; - erreur_G = erreur_G/5.0; // erreur est maintenant la moyenne des 5 erreurs prec + erreur_D = erreur_D/5.0f; + erreur_G = erreur_G/5.0f; // erreur est maintenant la moyenne des 5 erreurs prec somme_erreur_D += erreur_D; somme_erreur_G += erreur_G; @@ -446,7 +446,7 @@ t.start(); for (int i =0;i<5 ;i++){ changement_consigne(consigne_tab[i][0], consigne_tab[i][1]); - while(t.read()<0.5){ + while(t.read()<0.5f){ //actualise_positio n(); } //printf("t.read() : %f\n",t.read()); @@ -461,16 +461,19 @@ compteur_glisse = -1; } -void deplacement::bouton(){ - DigitalIn depart(USER_BUTTON); - while (depart){} -} + void deplacement::poussette(){ motors_on(); commande_vitesse(150,150); - wait(1); + wait(1.5); vitesse_nulle_G(0); vitesse_nulle_D(0); motors_stop(); +} +void deplacement::initialisation(){ + init_odometrie(); + init_hardware(); + srand(time(NULL)); + motors_on(); } \ No newline at end of file