Problème démarrage du drone
✔ Ce sujet est résolu
frangipane
42 Messages
Le dimanche 9 mai 2021 à 17:23:20
Même problème...
Je suis entrain de checker si toutes les valeurs sont les bonnes.
J'ai regarder la variable "angular_motions[ROLL]" avec aussi YAW et PITCH.
Je ne sais pas quelles doivent être les valeurs. En tout cas moi ca tourne autour de 0. Quand il y a du mouvement ca va peut-être vers 10, ca dépends. Après ca se calme (je ne bouge plus) et ca reviends à zéro très rapidement (même étant incliné)
Pas de problème pour la réception des joysticks.
Peut-être que la dérive viens du batterie drop.
Quand je dirige mon joystick pour les directions (avancer, reculer, gauche, droite), le drone semble calculer le mouvement du drone (pour aller par exemple vers la gauche) seulement pendant que je dirige mon joystick vers la gauche.
Exemple : je met les moteurs à 50%
je commence à diriger mon joystick vers la gauche --> il y a du changement
je suis au max vers la gauche --> ca reviens comme avant
Je trouve que ca réagis un peu comme le angular_motions (le même fonctionnement).
Désolé pour les fautes et merci de m'aider !
Frangipane
Je suis entrain de checker si toutes les valeurs sont les bonnes.
J'ai regarder la variable "angular_motions[ROLL]" avec aussi YAW et PITCH.
Je ne sais pas quelles doivent être les valeurs. En tout cas moi ca tourne autour de 0. Quand il y a du mouvement ca va peut-être vers 10, ca dépends. Après ca se calme (je ne bouge plus) et ca reviends à zéro très rapidement (même étant incliné)
Pas de problème pour la réception des joysticks.
Peut-être que la dérive viens du batterie drop.
Quand je dirige mon joystick pour les directions (avancer, reculer, gauche, droite), le drone semble calculer le mouvement du drone (pour aller par exemple vers la gauche) seulement pendant que je dirige mon joystick vers la gauche.
Exemple : je met les moteurs à 50%
je commence à diriger mon joystick vers la gauche --> il y a du changement
je suis au max vers la gauche --> ca reviens comme avant
Je trouve que ca réagis un peu comme le angular_motions (le même fonctionnement).
Désolé pour les fautes et merci de m'aider !
Frangipane
Le jeudi 20 mai 2021 à 13:54:33
Je t'avoue que là j'ai pas trop de piste... Il va falloir débuguer pas-à-pas. Vérifier la partie IMU puis, PID.
frangipane
42 Messages
Le vendredi 4 juin 2021 à 16:18:05
J'ai une idée !
Vous avez bien réussi à faire voler votre drone non ?
Donc le plus simple c'est de faire un grand tableau en comparant plein de variables avec les miennes.
Comme ca je vois tout de suite les différence et je s'aurai où chercher !
Le problème c'est que ce genre de tableau prendrait un peu de temps à faire...
Vous accepteriez ?
Je pourrai peut-être enfin faire voler ce truc !
Vous avez bien réussi à faire voler votre drone non ?
Donc le plus simple c'est de faire un grand tableau en comparant plein de variables avec les miennes.
Comme ca je vois tout de suite les différence et je s'aurai où chercher !
Le problème c'est que ce genre de tableau prendrait un peu de temps à faire...
Vous accepteriez ?
Je pourrai peut-être enfin faire voler ce truc !
Le mercredi 16 juin 2021 à 22:31:36
Salut Frangipane, désolé pour le temps de réponse, j'ai bcp de trucs à gérer en même temps en ce moment.
Quelles variables veux-tu comparer ?
Quelles variables veux-tu comparer ?
frangipane
42 Messages
Le vendredi 18 juin 2021 à 18:20:25
Je voudrais comparé en gros les variables qui "forme" le résultat finale, la commande moteur, avec les votre.
Enfaite, je vais chercher un peu de mon côté, voir par exemple quel est la source de la dérive (à mon avis c'est du à la compensation de la perte de puissance de la batterie). Malheureusement je suis en révision..............
Donc je suis obligé de voir ça après le 25..............................
Merci quand même de votre attention à mon projet !
Enfaite, je vais chercher un peu de mon côté, voir par exemple quel est la source de la dérive (à mon avis c'est du à la compensation de la perte de puissance de la batterie). Malheureusement je suis en révision..............
Donc je suis obligé de voir ça après le 25..............................
Merci quand même de votre attention à mon projet !
frangipane
42 Messages
Le samedi 19 juin 2021 à 15:58:18
Enfaite ! J'ai envie d'avancer !
J'ai trouver quel est l'origine de la dérive !
c'est "error_sum", qui augmente au fil du temps. En effet, elle n'est pas remise à zéro et elle ajoute à chaque fois "errors" (ben oui c'est une somme en fait je suis bête).
Si j'ai bien compris cet somme d'erreur devrait au contraire être de plus en plus petite en se rapprochant de la consigne (tendre vers 0).
J'ai regardé la fameuse variable "errors" et bingo ! ça vient du gyroscope ! Ca doit être mon problème.
"angular_motions" fluctue donc entre -0.04 et 0.03... hmm aucune idée de ce que ça veut dire : voyons plus loin.
Cette variable est calculé avec gyro_raw, comme c'est des données brute je pense que je ne comprendrai rien si je vais regarder. Du coup j'ai regarder "gyro_angle" : ca me semble être bien.
Attendez... Ho nan... Y a pas un truc qui vous choque dans tout ca ?...
Si le drone est dans l'incapacité de faire l'asservissement (évidemment j'ai rien relier aux moteurs pour l'instant), que fait-il ?
Donner plus de jus !!! J'en ai mare ! puré ! Bon ben si y a pas de problème je vous redirai si j'ai réussi !
...........
J'ai trouver quel est l'origine de la dérive !
c'est "error_sum", qui augmente au fil du temps. En effet, elle n'est pas remise à zéro et elle ajoute à chaque fois "errors" (ben oui c'est une somme en fait je suis bête).
Si j'ai bien compris cet somme d'erreur devrait au contraire être de plus en plus petite en se rapprochant de la consigne (tendre vers 0).
J'ai regardé la fameuse variable "errors" et bingo ! ça vient du gyroscope ! Ca doit être mon problème.
"angular_motions" fluctue donc entre -0.04 et 0.03... hmm aucune idée de ce que ça veut dire : voyons plus loin.
Cette variable est calculé avec gyro_raw, comme c'est des données brute je pense que je ne comprendrai rien si je vais regarder. Du coup j'ai regarder "gyro_angle" : ca me semble être bien.
Attendez... Ho nan... Y a pas un truc qui vous choque dans tout ca ?...
Si le drone est dans l'incapacité de faire l'asservissement (évidemment j'ai rien relier aux moteurs pour l'instant), que fait-il ?
Donner plus de jus !!! J'en ai mare ! puré ! Bon ben si y a pas de problème je vous redirai si j'ai réussi !
...........
frangipane
42 Messages
Le samedi 19 juin 2021 à 22:01:08
J'ai fait les 1er essais ! (Ca fait quand même du bien)
Toujours la notion d'une dérive. Je pense, pour éviter ce genre de problème que le drone ne devrait faire de calcule (PID) tant que la puissance demandé est égale à 1100. Si le drone fait la somme des erreurs sans qu'il puisse les corriger ca peut partir en steak ! (la dérive).
Je ne l'ai pas vraiment fait décoller (il touchait le sol, pas envie qu'il aille se planter dans le décor), c'est peut pour ca qu'il partait en steak aussi, je pense que les deux sont lié. J'ai fait une tour censé enlever le problème du décollage.
Mon drone n'a pas de pied --> il est pas droit --> ca doit provoquer la dérive. Je vais en faire.
Mon gyroscope n'est pas parfaitement parallèle au drone --> important ? (surement oui, je vais essayé de changer ca).
Mon drone est à peu près équilibré pour le poids.
Il me semble que la dérive s'applique à deux, voir trois moteurs et qui ne sont pas forcément les mêmes à chaque fois --> je pense donc que l'asservissement ce fait bien. Tout doit être un problème physique.
Des conseils ? remarques ? Merci de m'aidé ! :)
Toujours la notion d'une dérive. Je pense, pour éviter ce genre de problème que le drone ne devrait faire de calcule (PID) tant que la puissance demandé est égale à 1100. Si le drone fait la somme des erreurs sans qu'il puisse les corriger ca peut partir en steak ! (la dérive).
Je ne l'ai pas vraiment fait décoller (il touchait le sol, pas envie qu'il aille se planter dans le décor), c'est peut pour ca qu'il partait en steak aussi, je pense que les deux sont lié. J'ai fait une tour censé enlever le problème du décollage.
Mon drone n'a pas de pied --> il est pas droit --> ca doit provoquer la dérive. Je vais en faire.
Mon gyroscope n'est pas parfaitement parallèle au drone --> important ? (surement oui, je vais essayé de changer ca).
Mon drone est à peu près équilibré pour le poids.
Il me semble que la dérive s'applique à deux, voir trois moteurs et qui ne sont pas forcément les mêmes à chaque fois --> je pense donc que l'asservissement ce fait bien. Tout doit être un problème physique.
Des conseils ? remarques ? Merci de m'aidé ! :)
frangipane
42 Messages
Le dimanche 4 juillet 2021 à 15:43:58
J'ai refait des tests, mon drone par sur le côté dans le sens opposé de la pente. Il semble partir en saturation. Sans la fonction minMax() qui englobe les calculs du PID je me demande qu'elles auraient été les valeurs pour la puissance demandé. Je vais essayé de retrouver mes coefficients PID pour voir si c'est mieux.
Comme je ne comprend pas le calculs des angles utilisé, je me suis penché sur le chapitre 5. Pourquoi ne pas utiliser cette méthode ? Elle semble fiable, marche très bien. Vous avez dit que la fréquence de lecture n'est pas suffisamment élevé mais elle est tout de même de 100 exécution par seconde à peu près.
Comme je ne comprend pas le calculs des angles utilisé, je me suis penché sur le chapitre 5. Pourquoi ne pas utiliser cette méthode ? Elle semble fiable, marche très bien. Vous avez dit que la fréquence de lecture n'est pas suffisamment élevé mais elle est tout de même de 100 exécution par seconde à peu près.
Le lundi 5 juillet 2021 à 10:00:18
J'ai refait des tests, mon drone par sur le côté dans le sens opposé de la penteTu as bien orienté ton capteur dans le bon sens ?
La méthode du chapitre 5 est très loin des 100 lectures/sec. Je n'ai plus les chiffres en tête, mais c'est très insuffisant. Il ne faut pas oublier que la lecture est séquentielle et bloque donc le reste du programme. Du coup, l'asservissement n'a pas le temps de s'effectuer à 250 Hz, le drone par donc en vrille.
frangipane
42 Messages
Le lundi 5 juillet 2021 à 11:25:39
J'ai orienté le "x" du capteur vers les moteurs 1 et 2, qui représente l'avant il me semble. Mais je pense qu'il n'est pas dans le mauvais sens puisque, quelque soit l'orientation du drone par rapport à une pente, il va toujours se retourner dans le sens opposé de celle-ci. Par contre le "y", selon votre schéma, le mien est inversé. Voici mon gyroscope, "y" est dans le mauvais sens :
Il est donc orienté vers les moteurs A et C alors que ca devrait être vers les moteurs B et D. Comment je peux faire pour régler ca ?
Un autre problème c'est qu'il part en saturation et se retourne. Est-ce que c'est donc bien du à des mauvais coefficients PID ?
Il est donc orienté vers les moteurs A et C alors que ca devrait être vers les moteurs B et D. Comment je peux faire pour régler ca ?
Un autre problème c'est qu'il part en saturation et se retourne. Est-ce que c'est donc bien du à des mauvais coefficients PID ?
Le lundi 12 juillet 2021 à 12:27:53
Bonjour frangipane,
En effet, les sens de rotation positifs du capteur ne sont pas les mêmes que les miens, mais ça ne pose pas de problème, il ne s'agit que d'un signe à changer dans le code. Donc pas d'inquiétude de ce côté-là, c'est déjà géré dans le code.
Pour t'en assurer, tu peux mettre des Serial.print dans ton code pour afficher l'inclinaison du drone.
Je vais essayer de prendre du temps en fin de semaine pour comparer avec mon drone pour voir comment il se comporte.
En effet, les sens de rotation positifs du capteur ne sont pas les mêmes que les miens, mais ça ne pose pas de problème, il ne s'agit que d'un signe à changer dans le code. Donc pas d'inquiétude de ce côté-là, c'est déjà géré dans le code.
Pour t'en assurer, tu peux mettre des Serial.print dans ton code pour afficher l'inclinaison du drone.
Je vais essayer de prendre du temps en fin de semaine pour comparer avec mon drone pour voir comment il se comporte.
frangipane
42 Messages
Le mardi 13 juillet 2021 à 12:12:23
C'est booooooooooooooooooooooooon !!!!
Le problème était des mauvais coefficients PID !!
J'ai finis par trouvez ceci (complètement différents des vôtre !) : 0.3, 0.00045, 12
Alors que mon drone a à peu près la même carrure que le vôtre (mes hélices sont quand même plus grandes).
Ce qui ma étonné c'est le coefficient I
Durant le calibrage j'ai laissé les coefficient du lacet à 0, est-ce qu'il peut décoller comme ça ?
Merci beaucoup de votre aide !!
Plus qu'a le faire décoller !
Un drone peut donc se retourner directement (sans même décoller) si il a de mauvais coefficients.
Le problème était des mauvais coefficients PID !!
J'ai finis par trouvez ceci (complètement différents des vôtre !) : 0.3, 0.00045, 12
Alors que mon drone a à peu près la même carrure que le vôtre (mes hélices sont quand même plus grandes).
Ce qui ma étonné c'est le coefficient I
Durant le calibrage j'ai laissé les coefficient du lacet à 0, est-ce qu'il peut décoller comme ça ?
Merci beaucoup de votre aide !!
Plus qu'a le faire décoller !
Un drone peut donc se retourner directement (sans même décoller) si il a de mauvais coefficients.
Le mardi 13 juillet 2021 à 13:21:48
Top ! Pour un premier test tu peux laisser le lacet à zéro mais il risque de tourner sur lui-même.
Je confirme, mon premier essai le drone s'est retourné directe !
Je confirme, mon premier essai le drone s'est retourné directe !
frangipane
42 Messages
Le jeudi 6 janvier 2022 à 18:25:50
Alors...
du coup bas nan... c'est pas les bon...
Mais y a de l'amélioration ! (le drone est juste mou à répondre, et se retourne après 5 cm de vol)
Après 4-5 mois je me suis enfin remotivé à refaire un asservissement !! enfin !! (c'est que ca dure super longtemps ce truc, et emmagasiner les fail.. y'en a marre !)
Comment c'est possible que la commande des moteurs soit possible avec la télécommande alors que tous les coefficients sont à 0 ?
Je suis en ce moment en train de refaire l'asservissement, je reviendrai poster des nouvelles
Je me demandais aussi (dans votre procédure de calibration - chap 8) si votre drone volait parfaitement sans oscillation (pendant la calibration hein) ou si quelque fois il se bloquait ou virait à gauche un peu soudainement ? Et n'est-ce pas une meilleur idée de faire l'asservissement à environ 2 mètre du sol, pour ne pas avoir de turbulences ?
Parce que j'ai l'impression que des turbulence du au sol perturbe beaucoup le drone (je n'arrive pas à savoir si je suis tombé sur la bonne valeur du coeff' D par exemple).
Bonne année !
du coup bas nan... c'est pas les bon...
Mais y a de l'amélioration ! (le drone est juste mou à répondre, et se retourne après 5 cm de vol)
Après 4-5 mois je me suis enfin remotivé à refaire un asservissement !! enfin !! (c'est que ca dure super longtemps ce truc, et emmagasiner les fail.. y'en a marre !)
Comment c'est possible que la commande des moteurs soit possible avec la télécommande alors que tous les coefficients sont à 0 ?
Je suis en ce moment en train de refaire l'asservissement, je reviendrai poster des nouvelles
Je me demandais aussi (dans votre procédure de calibration - chap 8) si votre drone volait parfaitement sans oscillation (pendant la calibration hein) ou si quelque fois il se bloquait ou virait à gauche un peu soudainement ? Et n'est-ce pas une meilleur idée de faire l'asservissement à environ 2 mètre du sol, pour ne pas avoir de turbulences ?
Parce que j'ai l'impression que des turbulence du au sol perturbe beaucoup le drone (je n'arrive pas à savoir si je suis tombé sur la bonne valeur du coeff' D par exemple).
Bonne année !