IMA3/IMA4 2020/2022 P3 : Différence entre versions
(→Simulation) |
(→Initialisation du drone) |
||
(65 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
=<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> PRESENTATION DU SUJET </div>= | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> PRESENTATION DU SUJET </div>= | ||
<p> | <p> | ||
− | L’objectif de ce projet est de réaliser un drone de sa conception à sa réalisation et de mettre en œuvre une solution pour le commander par wifi. <br /> | + | |
+ | [[Fichier:LOGOXX.png|200px|thumb|left|Notre logo]]<br> | ||
+ | |||
+ | L’objectif de ce projet est de réaliser un drone, de sa conception à sa réalisation et de mettre en œuvre une solution pour le commander par wifi. <br /> | ||
Notre équipe est composée d'étudiants en 4ème année de la spécialité « Systèmes embarqués » qui sont : Niels Godbert, Léo Poumaer, Rémi Brachot, Lucas Postollec et Louise Maës. <br /> | Notre équipe est composée d'étudiants en 4ème année de la spécialité « Systèmes embarqués » qui sont : Niels Godbert, Léo Poumaer, Rémi Brachot, Lucas Postollec et Louise Maës. <br /> | ||
− | Nous espérons que ce projet nous permettre de pouvoir mettre en application les savoir-faire acquis pendant notre formation, et ainsi pouvoir développer de nouveaux acquis grâce à ce travail en groupe. <br /> | + | Nous espérons que ce projet va nous permettre de pouvoir mettre en application les savoir-faire acquis pendant notre formation, et ainsi pouvoir développer de nouveaux acquis grâce à ce travail en groupe. <br /> |
+ | <br /><br /><br /><br /><br /><br /> | ||
</p> | </p> | ||
Ligne 34 : | Ligne 38 : | ||
== Principe de fonctionnement == | == Principe de fonctionnement == | ||
− | [[Fichier:fonctionnement.png|150px|thumb|right| | + | [[Fichier:fonctionnement.png|150px|thumb|right|Axes de rotation]]<br> |
− | Afin de comprendre le fonctionnement d’un drone, il est important de définir les trois axes de rotation sur lesquels | + | Afin de comprendre le fonctionnement d’un drone, il est important de définir les trois axes de rotation sur lesquels il va se déplacer : <br /><br /> |
L’axe des x, dit axe de roulis, qui correspond au mouvement de bascule de gauche à droite.<br /> | L’axe des x, dit axe de roulis, qui correspond au mouvement de bascule de gauche à droite.<br /> | ||
Ligne 52 : | Ligne 56 : | ||
<br /> | <br /> | ||
Le but de notre projet est de concevoir un drone dans son intégralité, ce qui inclut : la modélisation d’un circuit imprimé et de la partie électronique, la réalisation du châssis, la modélisation et programmation informatique du système de contrôle qui permettra la communication avec le drone. <br /><br /> | Le but de notre projet est de concevoir un drone dans son intégralité, ce qui inclut : la modélisation d’un circuit imprimé et de la partie électronique, la réalisation du châssis, la modélisation et programmation informatique du système de contrôle qui permettra la communication avec le drone. <br /><br /> | ||
− | Finalement, une fois tous ces éléments réalisés, le drone | + | Finalement, une fois tous ces éléments réalisés, le drone devrait être capable de voler selon les bons vouloirs de son pilote. |
<br /><br /> | <br /><br /> | ||
− | + | L'année dernière, nous avons hérité du drone des anciens SE4. Notre objectif était alors de faire voler leur drone. Nous avons constaté que le câblage était à refaire et que les pieds de leur drone n'étaient pas assez solides. Nous avons donc dû revoir notre cahier des charges. <br /><br /> | |
== Description fonctionnelle des besoins == | == Description fonctionnelle des besoins == | ||
<br /> | <br /> | ||
− | + | Initialement, afin d’atteindre notre but de concevoir un drone; voici ce qui devait être mis en place : <br /><br /> | |
'''''Niveau matériel :'''''<br /> | '''''Niveau matériel :'''''<br /> | ||
− | La conception (ou l’achat) d’un châssis capable de résister aux chocs, de supporter le poids de la batterie, et bien évidemment conçu de manière à simplifier l'ensemble des branchements électriques entre les différentes parties du drone.<br /> | + | * La documentation et le choix des matériaux pour les différentes parties du châssis.<br /> |
− | + | * La conception (ou l’achat) d’un châssis capable de résister aux chocs, de supporter le poids de la batterie, et bien évidemment conçu de manière à simplifier l'ensemble des branchements électriques entre les différentes parties du drone.<br /> | |
− | La documentation et le choix sur le dimensionnement des pièces électroniques/électromécaniques (moteurs, contrôleurs de moteurs, contrôleur de vol, carte mère, capteurs) et autres pièces indispensable (hélices par exemple).<br /><br /> | + | * La documentation et le choix sur le dimensionnement des pièces électroniques/électromécaniques (moteurs, contrôleurs de moteurs, contrôleur de vol, carte mère, capteurs) et autres pièces indispensable (hélices par exemple).<br /><br /> |
'''''Niveau informatique :'''''<br /> | '''''Niveau informatique :'''''<br /> | ||
− | La communication entre le drone et un téléphone, un ordinateur ou une télécommande via le wifi (nous pensons | + | * La communication entre le drone et un téléphone, un ordinateur ou une télécommande via le wifi (nous pensons à une application dédiée à cet effet, via AppInventor). <br /> |
− | La modélisation, la programmation de parcours pour vérifier le fonctionnement du drone. <br /><br /> | + | * La modélisation, la programmation de parcours pour vérifier le fonctionnement du drone. <br /><br /> |
'''''Niveau Automatique/Commande :'''''<br /> | '''''Niveau Automatique/Commande :'''''<br /> | ||
− | Le drone doit pouvoir monter, descendre, se déplacer latéralement et pivoter sur lui-même (axe de lacet).<br /> | + | * Le drone doit pouvoir monter, descendre, se déplacer latéralement et pivoter sur lui-même (axe de lacet).<br /> |
− | Le drone devra répondre aux instructions du pilote de manière rapide et précise.<br /> | + | * Le drone devra répondre aux instructions du pilote de manière rapide et précise.<br /> |
− | Le drone doit être en mesure de voler correctement et jusqu’à une distance suffisamment grande entre lui-même et le pilote. <br /> | + | * Le drone doit être en mesure de voler correctement et jusqu’à une distance suffisamment grande entre lui-même et le pilote. <br /> |
− | Le drone doit être stable, même face aux intempéries (vent par exemple) .<br /> | + | * Le drone doit être stable, même face aux intempéries (vent par exemple) .<br /> |
− | Les servomoteurs doivent être parfaitement synchronisés pour garantir la stabilité.<br /><br /> | + | * Les servomoteurs doivent être parfaitement synchronisés pour garantir la stabilité.<br /><br /> |
== Limites du projet == | == Limites du projet == | ||
Ligne 87 : | Ligne 91 : | ||
La météo et les potentiels obstacles doivent être pris en compte par le pilote. | La météo et les potentiels obstacles doivent être pris en compte par le pilote. | ||
<br /><br /> | <br /><br /> | ||
+ | |||
+ | == Gantt projet == | ||
+ | [[Fichier:Gantt-projet.xlsx - SE4-1.jpg|800px|thumb|center|Diagramme de Gantt du semestre 7]] | ||
=<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> LES MATERIAUX ET EQUIPEMENTS ELECTRONIQUES UTILISES</div>= | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> LES MATERIAUX ET EQUIPEMENTS ELECTRONIQUES UTILISES</div>= | ||
Ligne 104 : | Ligne 111 : | ||
Une hélice dite longue va tourner moins rapidement qu’une hélice dite courte, mais sa capacité de portance sera, bien évidemment, plus importante au vu de sa taille. Elle apporte aussi, plus de stabilité. Contrairement à la taille de l’hélice, un pas élevé implique une faible portance et une vitesse de rotation maximale limitée.<br /><br /> | Une hélice dite longue va tourner moins rapidement qu’une hélice dite courte, mais sa capacité de portance sera, bien évidemment, plus importante au vu de sa taille. Elle apporte aussi, plus de stabilité. Contrairement à la taille de l’hélice, un pas élevé implique une faible portance et une vitesse de rotation maximale limitée.<br /><br /> | ||
− | On peut alors établir un tableau récapitulatif des effets de la taille des hélices :<br /> | + | On peut alors établir un tableau récapitulatif des effets de la taille des hélices et de son pas :<br /> |
[[Fichier:tableauhelice.png|500px|thumb|center|Les différentes tailles d'hélices et leurs conséquences]] | [[Fichier:tableauhelice.png|500px|thumb|center|Les différentes tailles d'hélices et leurs conséquences]] | ||
<br /> | <br /> | ||
Ligne 132 : | Ligne 139 : | ||
Notre choix s’est donc porté sur le contrôleur de vol Pixhawk qui inclut tout ce dont nous avons besoin. <br /> | Notre choix s’est donc porté sur le contrôleur de vol Pixhawk qui inclut tout ce dont nous avons besoin. <br /> | ||
− | En effet, le PixHawk4 est un contrôleur de vol, c’est-à-dire que ce module agit comme | + | En effet, le PixHawk4 est un contrôleur de vol, c’est-à-dire que ce module agit comme une carte microcontrôleur (comme un arduino) déjà programmée (programmation très complexe) et conçue de manière à être extrêmement exploitable : on peut ajouter au PX4 un grand nombre de capteurs tels que : une caméra, des capteurs ultrason, stabilisateur de caméra,...<br /><br /> |
=<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> MODELISATION </div>= | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> MODELISATION </div>= | ||
Ligne 142 : | Ligne 149 : | ||
Avant toute chose, il est important de savoir comment fonctionne mathématiquement notre système, afin de pouvoir modéliser notre système sur Matlab. <br /><br /> | Avant toute chose, il est important de savoir comment fonctionne mathématiquement notre système, afin de pouvoir modéliser notre système sur Matlab. <br /><br /> | ||
− | Ainsi, après | + | Ainsi, après plusieurs études de documentation sur la conception d’un drone, nous en sommes venus aux équations de mouvement suivantes :<br /><br /> |
[[Fichier:equationMouv.png|300px|thumb|center|Equations du mouvement du système]] | [[Fichier:equationMouv.png|300px|thumb|center|Equations du mouvement du système]] | ||
Ligne 174 : | Ligne 181 : | ||
== Simulation == | == Simulation == | ||
<br /> | <br /> | ||
− | Pour réaliser une simulation Matlab à l’aide des résultats trouvés précédemment, nous avions besoin d’un modèle du quadrirotor | + | Pour réaliser une simulation Matlab à l’aide des résultats trouvés précédemment, nous avions besoin d’un modèle du quadrirotor. <br /><br /> |
− | |||
Grâce à la partie Simulink du logiciel Matlab, nous avons pu commander le drone, et vérifier sa stabilité via des simulations. <br /> | Grâce à la partie Simulink du logiciel Matlab, nous avons pu commander le drone, et vérifier sa stabilité via des simulations. <br /> | ||
Ligne 201 : | Ligne 207 : | ||
Voici la structure du schéma bloc permettant ces calculs :<br /> | Voici la structure du schéma bloc permettant ces calculs :<br /> | ||
− | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> | + | [[Fichier:regulation.png|500px|thumb|center|Bloc de régulation du système]]<br /> |
+ | Le principe est plutôt simple: la position mesurée est soustraite à la valeur désirée. Elle est ensuite corrigée dans un PID qui renvoie une tension adaptée, permettant d’atteindre la vitesse voulue. <br /> | ||
+ | La vitesse théorique en x et y est soustraite à la vitesse mesurée et multipliée par la matrice de rotation afin d’avoir l’erreur sur la vitesse. L’erreur est corrigée par un PID qui nous donne respectivement la valeur de l’angle de roulis et de tangage désirée. <br /> | ||
+ | Le principe reste le même pour la vitesse en z mis à part que nous n’avons pas besoin de multiplier par la matrice de rotation, de plus, le dernier PID renvoie la valeur de poussée. <br /><br /> | ||
+ | |||
+ | |||
+ | Maintenant que nous avons les valeurs désirées en angle, il nous faut, dans un second temps, réaliser la correction que nécessite le système afin de répondre correctement à la consigne en rotation sur les 3 axes. <br /> | ||
+ | On convertit alors la valeur consigne, calculée au préalable en radians, puis on soustrait la valeur mesurée pour connaître l’erreur et la corriger à l’aide d’un PID. <br /> | ||
+ | Cela donne le schéma bloc suivant :<br /><br /> | ||
+ | [[Fichier:bloc4.png|500px|thumb|center|Bloc de correction]]<br> | ||
+ | |||
+ | Et pour finir, on doit envoyer au drone les valeurs de tension à appliquer sur chaque moteur qui correspondent aux coordonnées désirées. Un bloc dans la boîte à outil UAV permet de faire cela.<br /><br /> | ||
+ | [[Fichier:bloc5.png|500px|thumb|center|Bloc de commande des moteurs]]<br> | ||
+ | |||
+ | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> COMMUNICATION </div>= | ||
+ | |||
+ | == Le logiciel QGround == | ||
+ | [[Fichier:px4.png|150px|thumb|right|Pack Px4]]<br> | ||
+ | |||
+ | Le pack PX4 commandé par l’école comportait 2 radios télémétriques (toutes 2 émettrices/réceptrices) de la marque Holybro, ce sont des modules fonctionnant à 433MHz.<br /><br /> | ||
+ | |||
+ | De manière générique, le logiciel utilisé avec ses radios, qui sont faites pour fonctionner avec le PX4 (et que nous avons aussi commencé à utiliser) est le logiciel QGroundControl.<br /><br /> | ||
+ | |||
+ | Ce logiciel (open source) qui est disponible sur PC et Android, permet principalement de commander au drone un certain trajet, et aussi de configurer le drone, ainsi que tous ces capteurs, moteurs, … (du moment qu’ils fonctionnent grâce à PX4 ou ArduPilot, une bibliothèque faite pour les drone d’Arduino). <br /> | ||
+ | Le logiciel offre une utilisation facile et directe pour les débutants, tout en offrant une prise en charge des fonctionnalités haut de gamme pour les utilisateurs expérimentés.<br /><br /> | ||
+ | |||
+ | |||
+ | [[Fichier:interfaceQG.png|300px|thumb|right|Interface QGround]]<br> | ||
+ | Ces principales caractéristiques sont :<br /><br /> | ||
+ | |||
+ | * Installation / configuration complète des véhicules alimentés par ArduPilot et PX4 Pro.<br /> | ||
+ | * Assistance en vol pour les véhicules exécutant PX4 et ArduPilot (ou tout autre pilote automatique qui communique en utilisant le protocole MAVLink).<br /> | ||
+ | * Planification de la mission pour le vol autonome.<br /> | ||
+ | * Affichage de la carte de vol indiquant la position du véhicule, la trajectoire de vol, les points de cheminement et les instruments du véhicule.<br /> | ||
+ | * Streaming vidéo avec superpositions d'affichage des instruments.<br /> | ||
+ | * Prise en charge de la gestion de plusieurs véhicules.<br /> | ||
+ | |||
+ | <br /><br /><br /> | ||
+ | En récupérant le drone, étant donné que les branchements entre le PX4 et la PMB était incorrects pour notre utilisation du drone, le logiciel et le drone n’arrivaient pas à se connecter.<br /> | ||
+ | Grâce à M. Louad Kahouadji, ingénieur et professeur au bâtiment Esprit, nous avons pu résoudre ce problème et établir la communication entre notre drone et le logiciel GroundControl. <br /><br /> | ||
+ | |||
+ | == Initialisation du drone == | ||
+ | <br /> | ||
+ | Grâce à une intervention du professeur M. Louad Kahouadji nous avons pu commencer la configuration du PixHawk 4. Dans un premier temps, il nous fallait configurer l’orientation des capteurs, pour ce faire, nous avons suivi le mode d’emploi fourni par la documentation disponible sur le site PX4. La configuration de la boussole interne se fait ensuite. M. Louad Kahouadji nous a accompagnés dans la configuration et cela nous a éclairé de nombreuses zones d’ombres. <br /><br /> | ||
+ | |||
+ | Au fur et à mesure, nous sommes arrivés à un moment bloquant car il nous manque un module. Nous n’avons pas de module GPS ni de module optical flow pour faire déplacer le drone dans un espace.<br /> | ||
+ | <br /> | ||
+ | |||
+ | Le module GPS est utile pour un déplacement en extérieur et le module optical flow est plus amené à être utilisé dans un espace clos. Sans l’un de ces modules il nous a été impossible de finaliser l’initialisation.<br /> | ||
+ | <br /> | ||
+ | |||
+ | Cependant, grâce à l’aide du professeur nous savons désormais vers quelle direction travailler afin d’enfin commencer les simulations du drone.<br /><br /> | ||
+ | |||
+ | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> REVISIONS APPORTEES </div>= | ||
+ | <br /> | ||
+ | En fin de semestre l'année dernière, nous avons hérité du drone du groupe des anciens SE4. Cependant, celui-ci ne pouvait pas voler d'une, par ce que nous avons appris précédemment, mais aussi parce que son câblage était à revoir.<br /><br /> | ||
− | + | Nous avons donc dans un premier temps, réétudier le câblage électrique de notre drone. Nous avons donc, resoudé des câbles qui s'étaient désoudés ou qui alors n'étaient pas encore câblé. <br /><br /> | |
− | |||
− | + | Nous avons aussi et surtout, pensez judicieux de refabriquer les pieds du drone faits en bois qui étaient, de part notre jugement, trop fragiles. En effet, le bois est une matériau rigide, lorsque le drone se pose sur le sol après son vol, il subit des vibrations qui déforment le matériau de part ses ondes. Or le bois des pieds n'auraient pas pu subir cette propagation d'on et se seraient cassés instantanément. <br /> | |
+ | [[Fichier:ancienp.png|300px|thumb|center|Les anciens pieds de notre drone]]<br /> | ||
+ | Nous avons donc remodéliser les pieds de notre drone sur le logiciel Fusion au Fabricarium, avant de les imprimer à l'aide des imprimantes 3D de l'école.<br /><br /> | ||
+ | [[Fichier:fusion.png|300px|thumb|center|Modélisation 3D des nouveaux pieds de notre drone]]<br /> | ||
− | + | Après avoir modélisé la pièce, la seule étape restante fut l’impression en 3 dimensions, qui a été réalisée, non sans quelques ratés, au Fabricarium.<br /> | |
+ | [[Fichier:failimpression.png|150px|thumb|left|Une impression ratée dûe à un mauvais réglage]] | ||
+ | [[Fichier:impressionpied2.png|150px|thumb|right|Une impression réussie]] | ||
+ | <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> | ||
+ | =<div class="mcwiki-header" style="border: double; border-color: #616363; border-width:5px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #BDC3C2; vertical-align: top; width: 98%;"> CONCLUSION </div>= | ||
+ | <br /> | ||
+ | Durant ce second semestre de travail sur le projet nous avons perdu du temps durant cette période. En effet, nous aurions pu prévoir en effet qu’il pouvait nous manquer du matériel pour la simulation, nous étions persuadés d'avoir ce qu’il nous fallait. De plus, l’impression des pieds a pris plus de temps que prévu et il nous a fallu relancer les impressions à plusieurs reprises. Parallèlement, nous avons pu avancer davantage sur la partie wiki et sur la préparation d’une future simulation qui était initialement prévue. <br /> | ||
+ | Quand nous serons amenés à de nouveau travailler sur un projet il pourrait être intéressant de mieux vérifier les ressources à disposition et essayer de faire une simulation plus rapidement afin d’obtenir des résultats concrets. De plus, ce serait un gain de temps de se fixer rapidement sur un logiciel de travail afin de ne pas perdre à travers les multitudes de solutions qui s’offrent à nous. <br /><br /> | ||
− | |||
+ | Finalement, en travaillant sur la conception de quadricoptère, nous avons réussi à réaliser :<br /><br /> | ||
+ | * d’importantes recherches bibliographiques sur le fonctionnement du drone, <br /> | ||
+ | * la compréhension du modèle de commande et de correction,<br /> | ||
+ | * le dimensionnement des pièces,<br /> | ||
+ | * le choix des matériaux,<br /> | ||
+ | * la prise en main de la simulation MatLab du robot,<br /> | ||
+ | * la prise en main du logiciel QGround, qui nous permettra de nous connecter au PixHawk 4, et de calibrer, contrôler le drone.<br /> | ||
+ | * Modéliser en 3D, ou en 2D, de nouveaux pieds pour le drone, en choisissant avec soin le matériau<br /> | ||
+ | * Prendre encore mieux en main la modélisation MatLab, effectuer des simulations avec<br /> | ||
+ | * Nous avons refait toute la partie branchement électronique du drone (notamment au niveau PixHawk 4)<br /> | ||
+ | * A l’aide du logiciel QGroundControl (qu’il nous faut continuer d’apprendre à maîtriser), initialiser le PixHawk 4, les moteurs brushless et les capteurs afin de faire voler le drone en intérieur<br /> | ||
+ | * On a aussi porté à notre connaissance le langage de programmation ROS, qui est utilisé pour la programmation robotique. Il pourrait être intéressant d’apprendre ce langage afin de faire faire un parcours au drone.<br /><br /> | ||
+ | |||
+ | |||
+ | == Aller plus loin == | ||
+ | <br /> | ||
+ | Pour continuer le projet, nos premières pistes seraient de nous orienter vers l’achat des fournitures manquantes : le gps ou le optical flow. Cela nous permettrait de réaliser les premières simulations afin d’obtenir des résultats concrets. Cela nous permettrait d'ensuite nous attarder sur les pistes d’optimisations/améliorations possibles et d’observer les différents impacts des paramètres du logiciel PX4.<br /><br /> | ||
− | + | Dans un second temps nous pourrons nous attarder sur la conception du châssis et son optimisation. En effet, nous pourrions utiliser d’autres matériaux tels que le carbone ou l’aluminium afin d’optimiser son poids et sa rigidité. <br /><br /> |
Version actuelle datée du 6 janvier 2022 à 19:17
Sommaire
PRESENTATION DU SUJET
L’objectif de ce projet est de réaliser un drone, de sa conception à sa réalisation et de mettre en œuvre une solution pour le commander par wifi.
Notre équipe est composée d'étudiants en 4ème année de la spécialité « Systèmes embarqués » qui sont : Niels Godbert, Léo Poumaer, Rémi Brachot, Lucas Postollec et Louise Maës.
Nous espérons que ce projet va nous permettre de pouvoir mettre en application les savoir-faire acquis pendant notre formation, et ainsi pouvoir développer de nouveaux acquis grâce à ce travail en groupe.
QU'EST-CE QU'UN DRONE ?
Introduction
Les drones sont des aéronefs autonomes qui ont la particularité de ne pas nécessiter de présence humaine à bord. Cependant, leurs utilisations la plus répandue n’est que semi-autonome, ils restent majoritairement pilotés manuellement à distance par commande numérique.
Utilisés aussi bien en tant que loisir que dans le milieu professionnel et militaire, on observe une popularité qui ne cesse de croître depuis plusieurs années. Que ça soit pour la photographie afin de filmer des plans autrement impossibles, pour des relevés de terrain ou encore pour la sécurité et pour le bâtiment, les drones deviennent un outil de travail unique et de plus en plus indispensable dans certaines professions.
Durant ce projet, nous allons nous intéresser plus précisément sur les quadrirotors (ou quadricoptères), une catégorie bien précise de drones.
Le quadrirotor se démarque du fait de sa voilure tournante comportant quatre rotors et quatre hélices pour sa sustentation contrairement à d’autres types de drones où le nombre d’hélice peut aller jusqu’à huit. Les rotors les plus populaires sont placés aux extrémités d'une croix, cependant d’autres variétés de cadres existent (en “H”, en “X”, en “T”...etc).
Ici, nous allons réaliser un drone quadrirotors en "X".
Composition
L’architecture d’un quadrirotor est épurée, la conception du drone est un compromis entre légèreté, résistance et performance.
Son châssis central comporte le contrôleur de vol (un microcontrôleur et des capteurs), une batterie et 4 bras avec au bout, les hélices mises en rotations par des moteurs commandés par le microcontrôleur.
La différence entre les nombreux modèles va se faire sur la matière du châssis et des hélices ainsi que leurs tailles, la capacité de la batterie, la vitesse maximale, la distance de contrôle, la portée des différents capteurs et la caméra embarquée. Le choix est très vaste et, avec une demande croissante, le prix baisse de plus en plus ce qui rend cette technologie accessible au grand public.
Principe de fonctionnement
Afin de comprendre le fonctionnement d’un drone, il est important de définir les trois axes de rotation sur lesquels il va se déplacer :
L’axe des x, dit axe de roulis, qui correspond au mouvement de bascule de gauche à droite.
L’axe des y, dit axe de tangage, qui correspond au mouvement de bascule d’avant en arrière.
L’axe des z, dit axe de lacet, qui correspond à la rotation sur lui-même.
On observe deux positions possibles pour le drone dans son repère ; lorsque les hélices sont parallèles au sol, elles génèrent une force perpendiculaire qui permet au drone de s’élever dans les airs. Lorsque celles-ci sont inclinées, elles permettent au drone de se déplacer dans une direction.
On peut alors établir le tableau suivant :
CAHIER DES CHARGES
Objectifs
Le but de notre projet est de concevoir un drone dans son intégralité, ce qui inclut : la modélisation d’un circuit imprimé et de la partie électronique, la réalisation du châssis, la modélisation et programmation informatique du système de contrôle qui permettra la communication avec le drone.
Finalement, une fois tous ces éléments réalisés, le drone devrait être capable de voler selon les bons vouloirs de son pilote.
L'année dernière, nous avons hérité du drone des anciens SE4. Notre objectif était alors de faire voler leur drone. Nous avons constaté que le câblage était à refaire et que les pieds de leur drone n'étaient pas assez solides. Nous avons donc dû revoir notre cahier des charges.
Description fonctionnelle des besoins
Initialement, afin d’atteindre notre but de concevoir un drone; voici ce qui devait être mis en place :
Niveau matériel :
- La documentation et le choix des matériaux pour les différentes parties du châssis.
- La conception (ou l’achat) d’un châssis capable de résister aux chocs, de supporter le poids de la batterie, et bien évidemment conçu de manière à simplifier l'ensemble des branchements électriques entre les différentes parties du drone.
- La documentation et le choix sur le dimensionnement des pièces électroniques/électromécaniques (moteurs, contrôleurs de moteurs, contrôleur de vol, carte mère, capteurs) et autres pièces indispensable (hélices par exemple).
Niveau informatique :
- La communication entre le drone et un téléphone, un ordinateur ou une télécommande via le wifi (nous pensons à une application dédiée à cet effet, via AppInventor).
- La modélisation, la programmation de parcours pour vérifier le fonctionnement du drone.
Niveau Automatique/Commande :
- Le drone doit pouvoir monter, descendre, se déplacer latéralement et pivoter sur lui-même (axe de lacet).
- Le drone devra répondre aux instructions du pilote de manière rapide et précise.
- Le drone doit être en mesure de voler correctement et jusqu’à une distance suffisamment grande entre lui-même et le pilote.
- Le drone doit être stable, même face aux intempéries (vent par exemple) .
- Les servomoteurs doivent être parfaitement synchronisés pour garantir la stabilité.
Limites du projet
Les objectifs que nous nous sommes fixés au début du projet ont évolué. En effet, nous avions prévu de réaliser un drone de A à Z, en codant son programme et en le chargeant nous-même sur notre carte préalablement designée par nos soins. Cependant, nous n'avions pas encore eu conscience de la difficulté de ce que nous voulions entreprendre. De plus, nous avons également revu à la baisse notre volonté d'apporter une amélioration à notre projet. Les équipements que nous pouvons ajouter au drone restent malgré tout très couteux.
De plus, d’autres limites de notre projet nous sont apparues, par exemple les contraintes financières et matérielles. En effet, certains matériaux dont nous connaissons les caractéristiques avantageuses dans la conception d’un drone sont plutôt coûteux, à savoir le carbone pour le châssis ou alors des matériaux peut-être trop lourds comme le bois.
Nous devons aussi prendre en compte l’installation d’une batterie : comment recharger le drone ? Est-ce trop lourd ? Quelle est l’autonomie ?
La météo et les potentiels obstacles doivent être pris en compte par le pilote.
Gantt projet
LES MATERIAUX ET EQUIPEMENTS ELECTRONIQUES UTILISES
Le châssis
Avant tout, le choix du matériau est très important pour un drone : il faut qu’il soit ni trop lourd ni trop rigide. En effet, le cadre du drone va devoir supporter toutes les vibrations que va générer le drone, il faut donc un matériau pas trop déformable afin que celui-ci reste stable et ne se détériore pas. Même si le carbone semble être idéal, il reste une solution très coûteuse. En compromis, l’alliance entre le bois et le plastique est ce qui nous semblait le plus conforme : le bois forme un châssis solide et rigide, tandis que pour les pieds le plastique résisterait aux vibrations et à l'atterrissage de l’engin.
En réalité, le bois est à proscrire et mieux vaut le remplacer par de l’aluminium, très léger et très rigide.
Les hélices
Comme pour le cadre, les hélices définissent la fonction que l’on veut donner à notre drone. Il en existe de tailles, de formes et de matériaux différents.
Plus les hélices ont de pales, plus elles consomment d’énergie et donc, par conséquent, la consommation du drone est plus importante. Les hélices en plastique sont de très bonnes candidates et rivalisent avec celles en carbone, beaucoup plus chères. Mais au-delà du matériau, la longueur et le pas de celles-ci jouent un rôle important dans la fonction de notre drone.
Une hélice dite longue va tourner moins rapidement qu’une hélice dite courte, mais sa capacité de portance sera, bien évidemment, plus importante au vu de sa taille. Elle apporte aussi, plus de stabilité. Contrairement à la taille de l’hélice, un pas élevé implique une faible portance et une vitesse de rotation maximale limitée.
On peut alors établir un tableau récapitulatif des effets de la taille des hélices et de son pas :
Les moteurs
Afin de bien choisir ses moteurs, il faut bien définir le type de vol que va réaliser notre drone. Il faut donc définir les paramètres suivants : l’endurance souhaitée, la taille du drone, son poids total, sa charge utile, sa vitesse maximale, le nombre de moteurs (ici quatre) ainsi que son utilité. En général, pour un vol “stable”, il faut 8 000 tours/minutes maximum, pour un vol “normal”, il faut 10 000 tours/minutes et enfin, pour un vol “nerveux”, il faut 12 000 tours/minutes.
Si on utilise une batterie 3S (11,1V), on peut établir le tableau suivant :
Ici, pour la conception de notre drone, nous avons décidé d’utiliser des moteurs brushless qui sont de la même famille que les machines synchrones. Ils sont faciles à contrôler à l’aide d’un ESC, sont plus fiables et ont une grande marge de vitesse de rotation, ce qui correspond à la fonctionnalité que l’on veut donner à notre drone.
La batterie
Le choix de la batterie est très important pour le bon fonctionnement du drone.
En effet, la batterie doit être assez puissante pour alimenter les différents composants mais être également assez légère pour ne pas rendre le drone trop lourd et ainsi, l'empêcher de voler correctement.
Le contrôleur de vol
Après avoir fait de nombreuses recherches, nous nous sommes vite rendu compte qu’il allait nous être compliqué à notre niveau de réaliser par nous même l’ensemble de la partie communication avec le drone, ainsi que le contrôle et la commande des moteurs, des différents capteurs,..
Notre choix s’est donc porté sur le contrôleur de vol Pixhawk qui inclut tout ce dont nous avons besoin.
En effet, le PixHawk4 est un contrôleur de vol, c’est-à-dire que ce module agit comme une carte microcontrôleur (comme un arduino) déjà programmée (programmation très complexe) et conçue de manière à être extrêmement exploitable : on peut ajouter au PX4 un grand nombre de capteurs tels que : une caméra, des capteurs ultrason, stabilisateur de caméra,...
MODELISATION
Modélisation mathématique
Avant toute chose, il est important de savoir comment fonctionne mathématiquement notre système, afin de pouvoir modéliser notre système sur Matlab.
Ainsi, après plusieurs études de documentation sur la conception d’un drone, nous en sommes venus aux équations de mouvement suivantes :
avec Iq , q ∈ [ x , y , z ] : le moment d’inertie en kg.m2
φ : angle de roulis. Il définit la rotation autour de l’axe x1( − π < φ < π) en radians
θ : angle de tangage. Il définit la rotation autour de l’axe y1( − 2π < θ < 2π ) en radians
Ψ : angle de lacet. Il définit la rotation autour de l’axe z1(− π <Ψ < π ) en radians
Le drone va subir différentes forces qui vont entrer en jeu dans la dynamique du système :
La portance: composante de force subie par un corps en mouvement dans un fluide qui s’exerce perpendiculairement à la direction du mouvement des hélices. Celle-ci est générée grâce à la rotation des quatre hélices. Elle va permettre à l’appareil de décoller si elle compense au moins la traînée. Elle s’exprime sous la forme : τx = bl(Ω4² − Ω2²) sur l’axe de roulis et τy = bl(Ω3² − Ω1²) sur l’axe de tangage avec b le coefficient de portance en kg.m/rad2 et l la demi-envergure du quadrirotor en mètres.
L’effet gyroscopique: capacité d’un objet à conserver son moment angulaire. Ainsi, lorsque le quadrirotor est en rotation sur deux axes, cette force apparaît sur le troisième axe et résiste aux mouvements de ce dernier. Elle s'exprime comme suit : Gx = Jωy(Ω1² + Ω3² − Ω4² − Ω2²) et Gy = Jωx(− Ω1² − Ω3² + Ω4² + Ω2²), respectivement pour l’axe de roulis et de tangage.
La traînée: force qui s’oppose parallèlement au mouvement d’un corps dans un fluide et agit comme un frottement. Elle vaut : τz = d(Ω1² + Ω3² − Ω4² − Ω2²) avec d le coefficient de traînée en kg.m2/rad2. Elle s’applique donc selon l’axe de lacet.
En projetant ces trois forces et en ajoutant l’effet de l’accélération des moments
d’inertie sur chaque axe, on obtient les équations de la vitesse angulaire suivant les axes de
lacet, roulis et tangage :
avec Iq , q ∈ [ x , y , z ] : le moment d’inertie en kg.m2
φ : angle de roulis. Il définit la rotation autour de l’axe x1( − π < φ < π) en radians
θ : angle de tangage. Il définit la rotation autour de l’axe y1( − 2π < θ < 2π ) en radians
Ψ : angle de lacet. Il définit la rotation autour de l’axe z1(− π <Ψ < π ) en radians
Ω , i ∈ [1; 4] : la vitesse de chaque moteur en rad/s
Simulation
Pour réaliser une simulation Matlab à l’aide des résultats trouvés précédemment, nous avions besoin d’un modèle du quadrirotor.
Grâce à la partie Simulink du logiciel Matlab, nous avons pu commander le drone, et vérifier sa stabilité via des simulations.
La boîte à outils UAV comprend des outils et des applications de référence pour concevoir, simuler, tester et déployer des applications de drones. On peut alors observer sur la figure suivante, les commandes que nous avons utilisé afin de procéder à la simulation du drone :
Ce gros schéma bloc comprend quatre curseurs permettant d’appliquer une commande au drone en hauteur, en latitude, en longitude et en angle de lacet.
Le suivant, quatre sous-systèmes qui permettent d’ajuster manuellement les valeurs des paramètres des PID qui corrigent chaque commande à l’aide de curseurs.
Enfin, ces deux parties représentent différents capteurs tels qu’un gyroscope, un capteur de vitesse et de position.
On peut décider de commander le drone manuellement grâce au curseur ou automatiquement, grâce à des schémas de commande.
Cela va permettre au drone de suivre des commandes sans intervention extérieure. On peut par exemple commander au drone de suivre un trajet particulier, ou tout simplement de lui demander d’atterrir.
Régulation du drone :
On doit maintenant réussir à stabiliser le quadrirotor, afin qu’il “obéisse” aux consignes de manière stable, rapide et précise. Pour cela, on doit récupérer les données en vitesse, position et angles fournies par les différents capteurs. Un convertisseur nous indique les tensions qu’on peut appliquer pour que le drone puisse atteindre la position désirée. Dans un premier temps, on cherche à calculer la poussée à appliquer et les valeurs d’angle de roulis et de tangage désirées.
Voici la structure du schéma bloc permettant ces calculs :
Le principe est plutôt simple: la position mesurée est soustraite à la valeur désirée. Elle est ensuite corrigée dans un PID qui renvoie une tension adaptée, permettant d’atteindre la vitesse voulue.
La vitesse théorique en x et y est soustraite à la vitesse mesurée et multipliée par la matrice de rotation afin d’avoir l’erreur sur la vitesse. L’erreur est corrigée par un PID qui nous donne respectivement la valeur de l’angle de roulis et de tangage désirée.
Le principe reste le même pour la vitesse en z mis à part que nous n’avons pas besoin de multiplier par la matrice de rotation, de plus, le dernier PID renvoie la valeur de poussée.
Maintenant que nous avons les valeurs désirées en angle, il nous faut, dans un second temps, réaliser la correction que nécessite le système afin de répondre correctement à la consigne en rotation sur les 3 axes.
On convertit alors la valeur consigne, calculée au préalable en radians, puis on soustrait la valeur mesurée pour connaître l’erreur et la corriger à l’aide d’un PID.
Cela donne le schéma bloc suivant :
Et pour finir, on doit envoyer au drone les valeurs de tension à appliquer sur chaque moteur qui correspondent aux coordonnées désirées. Un bloc dans la boîte à outil UAV permet de faire cela.
COMMUNICATION
Le logiciel QGround
Le pack PX4 commandé par l’école comportait 2 radios télémétriques (toutes 2 émettrices/réceptrices) de la marque Holybro, ce sont des modules fonctionnant à 433MHz.
De manière générique, le logiciel utilisé avec ses radios, qui sont faites pour fonctionner avec le PX4 (et que nous avons aussi commencé à utiliser) est le logiciel QGroundControl.
Ce logiciel (open source) qui est disponible sur PC et Android, permet principalement de commander au drone un certain trajet, et aussi de configurer le drone, ainsi que tous ces capteurs, moteurs, … (du moment qu’ils fonctionnent grâce à PX4 ou ArduPilot, une bibliothèque faite pour les drone d’Arduino).
Le logiciel offre une utilisation facile et directe pour les débutants, tout en offrant une prise en charge des fonctionnalités haut de gamme pour les utilisateurs expérimentés.
Ces principales caractéristiques sont :
- Installation / configuration complète des véhicules alimentés par ArduPilot et PX4 Pro.
- Assistance en vol pour les véhicules exécutant PX4 et ArduPilot (ou tout autre pilote automatique qui communique en utilisant le protocole MAVLink).
- Planification de la mission pour le vol autonome.
- Affichage de la carte de vol indiquant la position du véhicule, la trajectoire de vol, les points de cheminement et les instruments du véhicule.
- Streaming vidéo avec superpositions d'affichage des instruments.
- Prise en charge de la gestion de plusieurs véhicules.
En récupérant le drone, étant donné que les branchements entre le PX4 et la PMB était incorrects pour notre utilisation du drone, le logiciel et le drone n’arrivaient pas à se connecter.
Grâce à M. Louad Kahouadji, ingénieur et professeur au bâtiment Esprit, nous avons pu résoudre ce problème et établir la communication entre notre drone et le logiciel GroundControl.
Initialisation du drone
Grâce à une intervention du professeur M. Louad Kahouadji nous avons pu commencer la configuration du PixHawk 4. Dans un premier temps, il nous fallait configurer l’orientation des capteurs, pour ce faire, nous avons suivi le mode d’emploi fourni par la documentation disponible sur le site PX4. La configuration de la boussole interne se fait ensuite. M. Louad Kahouadji nous a accompagnés dans la configuration et cela nous a éclairé de nombreuses zones d’ombres.
Au fur et à mesure, nous sommes arrivés à un moment bloquant car il nous manque un module. Nous n’avons pas de module GPS ni de module optical flow pour faire déplacer le drone dans un espace.
Le module GPS est utile pour un déplacement en extérieur et le module optical flow est plus amené à être utilisé dans un espace clos. Sans l’un de ces modules il nous a été impossible de finaliser l’initialisation.
Cependant, grâce à l’aide du professeur nous savons désormais vers quelle direction travailler afin d’enfin commencer les simulations du drone.
REVISIONS APPORTEES
En fin de semestre l'année dernière, nous avons hérité du drone du groupe des anciens SE4. Cependant, celui-ci ne pouvait pas voler d'une, par ce que nous avons appris précédemment, mais aussi parce que son câblage était à revoir.
Nous avons donc dans un premier temps, réétudier le câblage électrique de notre drone. Nous avons donc, resoudé des câbles qui s'étaient désoudés ou qui alors n'étaient pas encore câblé.
Nous avons aussi et surtout, pensez judicieux de refabriquer les pieds du drone faits en bois qui étaient, de part notre jugement, trop fragiles. En effet, le bois est une matériau rigide, lorsque le drone se pose sur le sol après son vol, il subit des vibrations qui déforment le matériau de part ses ondes. Or le bois des pieds n'auraient pas pu subir cette propagation d'on et se seraient cassés instantanément.
Nous avons donc remodéliser les pieds de notre drone sur le logiciel Fusion au Fabricarium, avant de les imprimer à l'aide des imprimantes 3D de l'école.
Après avoir modélisé la pièce, la seule étape restante fut l’impression en 3 dimensions, qui a été réalisée, non sans quelques ratés, au Fabricarium.
CONCLUSION
Durant ce second semestre de travail sur le projet nous avons perdu du temps durant cette période. En effet, nous aurions pu prévoir en effet qu’il pouvait nous manquer du matériel pour la simulation, nous étions persuadés d'avoir ce qu’il nous fallait. De plus, l’impression des pieds a pris plus de temps que prévu et il nous a fallu relancer les impressions à plusieurs reprises. Parallèlement, nous avons pu avancer davantage sur la partie wiki et sur la préparation d’une future simulation qui était initialement prévue.
Quand nous serons amenés à de nouveau travailler sur un projet il pourrait être intéressant de mieux vérifier les ressources à disposition et essayer de faire une simulation plus rapidement afin d’obtenir des résultats concrets. De plus, ce serait un gain de temps de se fixer rapidement sur un logiciel de travail afin de ne pas perdre à travers les multitudes de solutions qui s’offrent à nous.
Finalement, en travaillant sur la conception de quadricoptère, nous avons réussi à réaliser :
- d’importantes recherches bibliographiques sur le fonctionnement du drone,
- la compréhension du modèle de commande et de correction,
- le dimensionnement des pièces,
- le choix des matériaux,
- la prise en main de la simulation MatLab du robot,
- la prise en main du logiciel QGround, qui nous permettra de nous connecter au PixHawk 4, et de calibrer, contrôler le drone.
- Modéliser en 3D, ou en 2D, de nouveaux pieds pour le drone, en choisissant avec soin le matériau
- Prendre encore mieux en main la modélisation MatLab, effectuer des simulations avec
- Nous avons refait toute la partie branchement électronique du drone (notamment au niveau PixHawk 4)
- A l’aide du logiciel QGroundControl (qu’il nous faut continuer d’apprendre à maîtriser), initialiser le PixHawk 4, les moteurs brushless et les capteurs afin de faire voler le drone en intérieur
- On a aussi porté à notre connaissance le langage de programmation ROS, qui est utilisé pour la programmation robotique. Il pourrait être intéressant d’apprendre ce langage afin de faire faire un parcours au drone.
Aller plus loin
Pour continuer le projet, nos premières pistes seraient de nous orienter vers l’achat des fournitures manquantes : le gps ou le optical flow. Cela nous permettrait de réaliser les premières simulations afin d’obtenir des résultats concrets. Cela nous permettrait d'ensuite nous attarder sur les pistes d’optimisations/améliorations possibles et d’observer les différents impacts des paramètres du logiciel PX4.
Dans un second temps nous pourrons nous attarder sur la conception du châssis et son optimisation. En effet, nous pourrions utiliser d’autres matériaux tels que le carbone ou l’aluminium afin d’optimiser son poids et sa rigidité.