Problème démarrage du drone
✔ Ce sujet est résolu
frangipane
42 Messages
Le vendredi 7 janvier 2022 à 12:45:10
Bonjour,
Je suis maintenant presque sur qu'un calibrage au niveau du sol est une mauvaise idée :
- A très faible puissance le drone ce stabilise très bien (pas de vent)
- Mais dès qu'on augmente un peu la puissance il galère (plus de vent)
C'est du à un effet (je sais plus comment il s'appelle) du sol sur le drone, je crois.
Aussi je propose une petite modification sur le code. A la Fonction "isStarted()" :
Les valeurs de l'emplacement des sticks sont quelque fois un peu différente, j'ai juste un peu modifié les valeurs pour que ce soit plus large. Y compris la valeur central, qui est maintenant un encadrement.
Voila Voila !
Je suis maintenant presque sur qu'un calibrage au niveau du sol est une mauvaise idée :
- A très faible puissance le drone ce stabilise très bien (pas de vent)
- Mais dès qu'on augmente un peu la puissance il galère (plus de vent)
C'est du à un effet (je sais plus comment il s'appelle) du sol sur le drone, je crois.
Aussi je propose une petite modification sur le code. A la Fonction "isStarted()" :
bool isStarted() {
// When left stick is moved in the bottom left corner
if (status == STOPPED && pulse_length[mode_mapping[YAW]] <= 1100 && pulse_length[mode_mapping[THROTTLE]] <= 1100) {
status = STARTING;
}
// When left stick is moved back in the center position
if ((status == STARTING) && (1450 < pulse_length[mode_mapping[YAW]] && pulse_length[mode_mapping[YAW]] < 1550) && (pulse_length[mode_mapping[THROTTLE]] <= 1100)) {
status = STARTED;
// Reset PID controller's variables to prevent bump start
resetPidController();
resetGyroAngles();
}
// When left stick is moved in the bottom right corner
if (status == STARTED && pulse_length[mode_mapping[YAW]] >= 1950 && pulse_length[mode_mapping[THROTTLE]] <= 1100) {
status = STOPPED;
// Make sure to always stop motors when status is STOPPED
stopAll();
}
return status == STARTED;
}
Les valeurs de l'emplacement des sticks sont quelque fois un peu différente, j'ai juste un peu modifié les valeurs pour que ce soit plus large. Y compris la valeur central, qui est maintenant un encadrement.
Voila Voila !
frangipane
42 Messages
Le lundi 10 janvier 2022 à 17:34:12
Bon, j'ai trouvé aucune valeur de coefficient qui fasse le taf. Pourtant j'en ai tester beaucoup !
J'observe tout de même des changements selon les valeurs. Le problème récurrent c'est l'incapacité d'être horizontale au sol (c'est embêtant quand même) et quand la proportionnel intervient le drone oscille de plus en plus (même si il est très petit <0.5).
J'ai essayé de comprendre commet marche la formule du pid et en même temps le code pour l'asservissement mais je comprends rien...
Vous pouvez m'expliquer ? C'est quoi les "setpoints" ? C'est quoi "l'erreur" ? Quelle est selon vous l'influence des coefficients P, I et D ?
Quelle que fois y a des calcules on c'est pas d'où il sortent...
Je veux comprendre ! Je veux faire voler mon drone !
Je comprends pas non plus pourquoi on prends pas l'erreur en tant qu'angle par rapport à l'horizontale, contrairement à une vitesse d'angle dont je comprends rien. Vous aviez fait un chapitre sur ca. La raison c'est "la lecture des mesures n'est pas assez élevée". Comment ca ? il faut quelle fréquence d'exécution pour que ca fonctionne bien ? J'avais vérifié ca allait jusqu'à 100Hz, c'est insuffisant ?, si finalement c'est possible comment on pourrait coder un asservissement de cette manière ?
Voila ca fait beaucoup de questions mais j'ai envie de terminé ce drone !!
J'observe tout de même des changements selon les valeurs. Le problème récurrent c'est l'incapacité d'être horizontale au sol (c'est embêtant quand même) et quand la proportionnel intervient le drone oscille de plus en plus (même si il est très petit <0.5).
J'ai essayé de comprendre commet marche la formule du pid et en même temps le code pour l'asservissement mais je comprends rien...
Vous pouvez m'expliquer ? C'est quoi les "setpoints" ? C'est quoi "l'erreur" ? Quelle est selon vous l'influence des coefficients P, I et D ?
Quelle que fois y a des calcules on c'est pas d'où il sortent...
Je veux comprendre ! Je veux faire voler mon drone !
Je comprends pas non plus pourquoi on prends pas l'erreur en tant qu'angle par rapport à l'horizontale, contrairement à une vitesse d'angle dont je comprends rien. Vous aviez fait un chapitre sur ca. La raison c'est "la lecture des mesures n'est pas assez élevée". Comment ca ? il faut quelle fréquence d'exécution pour que ca fonctionne bien ? J'avais vérifié ca allait jusqu'à 100Hz, c'est insuffisant ?, si finalement c'est possible comment on pourrait coder un asservissement de cette manière ?
Voila ca fait beaucoup de questions mais j'ai envie de terminé ce drone !!
frangipane
42 Messages
Le jeudi 21 avril 2022 à 11:36:48
C'est bon mon drone vole !!!!!!!!!
J'avais pas organisé les moteurs de la même manière et il devait avoir un problème d'axe aussi !
Sachez qui si votre drone part soudainement à gauche ou à droite, c'est pas un problème de PID !
Passez une très bonne journée en somme toute géniale !
frangipane
J'avais pas organisé les moteurs de la même manière et il devait avoir un problème d'axe aussi !
Sachez qui si votre drone part soudainement à gauche ou à droite, c'est pas un problème de PID !
Passez une très bonne journée en somme toute géniale !
frangipane