Skip to content

Commit

Permalink
Corrections
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Sansou committed Sep 30, 2024
1 parent 1ea955f commit 2e8fea7
Show file tree
Hide file tree
Showing 30 changed files with 385 additions and 386 deletions.
4 changes: 2 additions & 2 deletions chapters/Abstract.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@

Cette thèse cherche à étudier la commande de drones dans des environnements perturbés ou en présence de vent. Les premiers travaux se sont concentrés sur la dynamique sans vent pour appréhender une dynamique simplifiée. Nous avons pu proposer une modification non-linéaire du vecteur de commande pour rendre ce modèle linéaire en commande. De ce modèle, nous avons proposé une loi de commande locale-globale fondée sur une dynamique hybride à hystérésis. Elle permet d'étendre le domaine de stabilité de la loi de commande linéaire agressive à l'aide d'une loi non-linéaire avec une grande région d'attraction, mais moins agressive.

La suite des travaux s'est concentrée sur la stabilisation d'un \textit{tailsitters} soumis à des échelons de vent. Il en résulte une caractérisation des équilibres stationnaires pour un ensemble de conditions de vent et l'obtention de la représentation linéarisée de la dynamique du drone. À l'aide de ce modèle, il a été possible d'analyser les saturations des actionneurs et l'autorité disponible aux environs des points d'équilibre. Nous avons réalisé une stabilisation établie sur un retour de sortie, avec une action proportionnelle et intégrale. Cette commande n'utilise pas la mesure de l'angle de tangage du drone, car nous ne pouvons pas, a priori, connaître la valeur cible qui nécessiterait une estimation de la vitesse et de la direction du vent. L'optimisation de ce bouclage est effectuée à l'aide du logiciel "Systune" pour obtenir de bonnes propriétés de réjection de perturbation. Une approche incrémentale a été suivie, la loi de commande ayant été testée dans un premier temps sur une maquette à un degré de liberté face à une soufflerie ouverte. Une fois validée, la loi de commande a été implémentée dans le système de drone Paparazzi. Grâce à son architecture modulaire, il a été possible de nous interfacer avec les codes d'estimation et de commande des actionneurs. Ainsi, nous avons pu réaliser des vols sur le modèle complet à six degrés de liberté.
La suite des travaux s'est concentrée sur la stabilisation d'un \textit{tailsitter} soumis à des échelons de vent. Il en résulte une caractérisation des équilibres stationnaires pour un ensemble de conditions de vent et l'obtention de la représentation linéarisée de la dynamique du drone. À l'aide de ce modèle, il a été possible d'analyser les saturations des actionneurs et l'autorité disponible aux environs des points d'équilibre. Nous avons réalisé une stabilisation établie sur un retour de sortie, avec une action proportionnelle et intégrale. Cette commande n'utilise pas la mesure de l'angle de tangage du drone, car nous ne pouvons pas, a priori, connaître la valeur cible qui nécessiterait une estimation de la vitesse et de la direction du vent. L'optimisation de ce bouclage est effectuée à l'aide du logiciel "Systune" pour obtenir de bonnes propriétés de réjection de perturbation. Une approche incrémentale a été suivie, la loi de commande ayant été testée dans un premier temps sur une maquette à un degré de liberté face à une soufflerie ouverte. Une fois validée, la loi de commande a été implémentée dans le système de drone Paparazzi. Grâce à son architecture modulaire, il a été possible de nous interfacer avec les codes d'estimation et de commande des actionneurs. Ainsi, nous avons pu réaliser des vols sur le modèle complet à six degrés de liberté.

Enfin, nous avons proposé une architecture inspirée du \textit{tailsitter}, nommée \textit{freewing}. Nous avons développé un drone multicorps basé sur une aile en rotation libre sur son axe de tangage autour d'un fuselage. L'actionnement de l'aile est sensiblement le même que pour le \textit{tailsitters} et le fuselage possède deux actionneurs pour se maintenir horizontal. Nous recherchons, dans cette architecture, une passivité naturelle à la turbulence induite par le changement naturel de l'incidence de l'aile en fonction du vent incident. Il s'agit aussi d'installer une charge utile sur le fuselage horizontal sur le domaine de vol. De plus, nous avons réalisé un modèle de simulation où la dynamique est obtenue à l'aide des équations de Udwadia-Kalaba et de la phi-théorie. Enfin, nous nous sommes concentrés sur la stabilisation et le guidage du drone en utilisant une inversion incrémentale non-linéaire de la dynamique (INDI). Nous utilisons les actionneurs de l'aile et du fuselage pour obtenir une loi de stabilisation globale. Des vols ont validé l'intérêt de cette architecture.
Enfin, nous avons proposé une architecture inspirée du \textit{tailsitter}, nommée \textit{freewing}. Nous avons développé un drone multicorps basé sur une aile en rotation libre sur son axe de tangage autour d'un fuselage. L'actionnement de l'aile est sensiblement le même que pour le \textit{tailsitter} et le fuselage possède deux actionneurs pour se maintenir horizontal. Nous recherchons, dans cette architecture, une passivité naturelle à la turbulence induite par le changement naturel de l'incidence de l'aile en fonction du vent incident. Il s'agit aussi d'installer une charge utile sur le fuselage horizontal sur le domaine de vol. De plus, nous avons réalisé un modèle de simulation où la dynamique est obtenue à l'aide des équations de Udwadia-Kalaba et de la phi-théorie. Enfin, nous nous sommes concentrés sur la stabilisation et le guidage du drone en utilisant une inversion incrémentale non-linéaire de la dynamique (INDI). Nous utilisons les actionneurs de l'aile et du fuselage pour obtenir une loi de stabilisation globale. Des vols ont validé l'intérêt de cette architecture.

{\large\textbf{Mots clés :}}
Planification et contrôle des drones ; validation de modèles ; contrôle robuste ; systèmes électromécaniques
Expand Down
4 changes: 3 additions & 1 deletion chapters/Acknowledgments.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
% LTeX: enabled=false

% Here you can see an example of how to create text conditioned by the language
% variable. The \iftoggle command:
%
Expand All @@ -18,7 +20,7 @@ \section*{Acknowledgments}
\section*{Remerciements}
}

\todo{Remerciement}
% \todo{Remerciement}
% Un tel travail aurait été impossible à réalisé sans la gentillesse d'autres personnes. Mes remerciements vont d'abord à Paolo ROBUFFO GIORDANO et Pascal MORIN, qui ont accepté de relire cette thèse et d'en être rapporteur. La version définitive de ce mémoire a bénéficié de leur lecture très attentive et de leurs remarques précieuses. Je tiens à remercier Sophie TARBOURIECH d’avoir accepté d’être présidente du jury. Je remercie également Philippe CHEVREL d’avoir accepté d’assister à la présentation de ce travail et de s’être déplacé depuis Nantes.

% Je voudrais remercier tout particulièrement Luca ZACCARIAN
28 changes: 14 additions & 14 deletions chapters/Annexe1.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
% LTeX: enabled=true
\chapter*{Annexe technique sur les drones}
\addstarredchapter{Annexe technique sur les drones}
\label{chap:annexe1}

\markboth{Annexe technique sur les drones}{Annexe technique sur les drones}

\renewcommand{\thefigure}{A.\arabic{figure}}
\setcounter{figure}{0} % Réinitialiser le compteur à 0
Expand All @@ -12,12 +14,11 @@ \section*{Système de drone : Paparazzi}

Un drone est composé de plusieurs pièces assemblées entre elles pour former la structure sur laquelle sont fixés des actionneurs, un autopilote et une charge utile (colis, caméra, capteur, etc.). L'élément central est l'autopilote qui assure la communication entre tous les éléments. Nous pouvons décomposer l'autopilote en deux parties : la partie matérielle et la partie logicielle.
\nomenclature[]{\(PCB\)}{Circuit imprimé \textit{Printed Circuit Board}}
La partie matérielle est constituée d'un circuit imprimé (PCB) sur lequel des composants sont installés pour assurer les tâches relatives au vol. La partie logicielle se décompose en deux éléments : le segment sol et le logiciel embarqué \ref{sec:logiciel}.
La partie matérielle est constituée d'un circuit imprimé (PCB) sur lequel des composants sont installés pour assurer les tâches relatives au vol. La partie logicielle se décompose en deux éléments : le segment sol et le logiciel embarqué.

Nous pouvons détailler les capteurs embarqués et le microcontrôleur avec l'ensemble de ses ports de communication \ref{sec:capteurs} et \ref{sec:micoctrl}.
Nous pouvons détailler les capteurs embarqués et le microcontrôleur avec l'ensemble de ses ports de communication.

\subsection*{Les capteurs d'un autopilote}
\label{sec:capteurs}
Un autopilote comporte généralement un accéléromètre, un gyroscope, un magnétomètre et un baromètre.

\paragraph*{}
Expand All @@ -35,19 +36,20 @@ \section*{Système de drone : Paparazzi}


\paragraph*{}
\textbf{Le GPS} est monté en extérieur de l'autopilote. Ce système de géopositionnement par satellite (\textit{ Global Positioning System}) \nomenclature[]{\(GPS\)}{Géo-positionnement par satellite (\textit{Global Positioning System})} permet d'obtenir un positionnement absolu du drone.

\textbf{Le GPS} est monté en extérieur de l'autopilote. Ce système de géopositionnement par satellite (\textit{Global Positioning System}) permet d'obtenir un positionnement absolu du drone.

\nomenclature[]{\(GPS\)}{Géo-positionnement par satellite (\textit{Global Positioning System})}
\paragraph*{}
Il est courant de retrouver plusieurs capteurs dans un même boitier, que l'on nomme centrale inertielle (Inertial Measurement Units, IMU), \nomenclature[]{\(IMU\)}{Centrales inertielles (\textit{Inertial Measurement Units})}. Ces dernières sont composées au minimum d'un accéléromètre 3-axes et d'un gyroscope 3-axes, mais il est courant de les trouver avec un magnétomètre 3-axes.
Il est courant de retrouver plusieurs capteurs dans un même boitier, que l'on nomme centrale inertielle (Inertial Measurement Units, IMU). Ces dernières sont composées au minimum d'un accéléromètre 3-axes et d'un gyroscope 3-axes, mais il est courant de les trouver avec un magnétomètre 3-axes.

\subsection*{Le microcontrôleur d'un autopilote}
\label{sec:micoctrl}
Le microcontrôleur (Microcontroller Unit, MCU) \nomenclature[]{\(MCU\)}{Microcontrôleurs (\textit{Microcontroller Unit})} est la pièce maitresse de l'autopilote en ce qu'il permet d'effectuer l'ensemble des traitements nécessaires à la conduite du vol.
\nomenclature[]{\(IMU\)}{Centrales inertielles (\textit{Inertial Measurement Units})}

De plus il possède plusieurs ports de communication pour récupérer les données des capteurs ou envoyer des ordres aux actionneurs.
\subsection*{Le microcontrôleur d'un autopilote}
Le microcontrôleur (Microcontroller Unit, MCU) est la pièce maitresse de l'autopilote en ce qu'il permet d'effectuer l'ensemble des traitements nécessaires à la conduite du vol.

\nomenclature[]{\(MCU\)}{Microcontrôleurs (\textit{Microcontroller Unit})}

De plus, il possède plusieurs ports de communication pour récupérer les données des capteurs ou envoyer des ordres aux actionneurs.

La liaison série permet de relier deux équipements numériques pour qu'ils puissent s'échanger des informations. C'est le moyen de communication le plus simple. Toutefois, il contient un moyen de détection des erreurs tel que le bit de parité.

Expand Down Expand Up @@ -88,7 +90,6 @@ \section*{Système de drone : Paparazzi}
Ces évolutions continues permettent une amélioration de l'estimation du drone utilisée pour la stabilisation. Il en résulte une stabilité accrue et de nouvelles possibilités pour la commande des drones.

\subsection*{Les logiciels d'un autopilote}
\label{sec:logiciel}
Tout le fonctionnement d'un drone repose sur le logiciel qui permet de le faire voler. Il se décompose en deux catégories : la partie sol et la partie embarquée.

\subsection*{Le segment sol}
Expand All @@ -111,7 +112,7 @@ \section*{Système de drone : Paparazzi}
\subsection*{Le logiciel embarqué}
Le logiciel embarqué est un code écrit en C, intégré dans un système d'exploitation temps réel "Chibios". Il est téléversé sur le microcontrôleur au travers d'une sonde de programmation ou de la prise USB présente sur l'autopilote.

L'ensemble du code est organisé sous la forme de modules que l'on change au besoin. Chaque module assure des fonctionnalités telles que l'estimation d'état, la stabilisation, le guidage, la navigation ou encore la gestion de la charge utile (voir Figure \ref{fig:schedulingpaparazzi}). Grâce à un mécanisme de gestion de dépendance, les modules ont la possibilité de charger d'autres modules nécessaires à leur fonctionnement. L'ordre de compilation et d'édition des liens sera géré par le logiciel de compilation.
L'ensemble du code est organisé sous la forme de modules que l'on change au besoin. Chaque module assure des fonctionnalités telles que l'estimation d'état, la stabilisation, le guidage, la navigation ou encore la gestion de la charge utile (voir Figure \ref{fig:schedulingpaparazzi}). Grâce à un mécanisme de gestion de dépendance, les modules ont la possibilité de charger d'autres modules nécessaires à leur fonctionnement. L'ordre de compilation et d'édition des liens seront gérés par le logiciel de compilation.


\begin{figure}[ht!]
Expand All @@ -123,7 +124,6 @@ \section*{Système de drone : Paparazzi}


\section*{AM32}
\label{sec:AM32}
Le logiciel AM32 est conçu pour les microprocesseurs ARM STM32 afin de contrôler un moteur \textit{brushless}, couramment utilisé pour les drones. Le logiciel est conçu pour être sûr et rapide, avec des démarrages rapides et sans à-coups et une accélération linéaire. Il est destiné à être utilisé avec plusieurs types de véhicules et de contrôleurs de vol.

L'intérêt de ce logiciel est qu'il est ouvert, permettant de contribuer, en proposant des évolutions. Nous avons ainsi implémenté l'approche de \cite{franchi2017}, avec un algorithme de biais et de gain adaptatif (ABAG) (voir \ref{fig:ABAG_algo}).
Expand Down
Loading

0 comments on commit 2e8fea7

Please sign in to comment.