Frédéric Chapelle

Keywords: Marine robotics, underactuated robots, underwater vehicle dynamics, propulsion, robot control, design optimization, genetic algorithms, magnetic coupling

Janito Vaqueiro Ferreira from the

Abstract

In this manuscript, the optimization of the propulsion and control of AUVs is developed. The hydrodynamic model of the AUVs is examined. Additionally, AUV propulsion topologies are studied and models for fixed and vectorial technology are developed. The fixed technology model is based on an o↵ the shelf device, while the modeled vectorial propulsive system is based on a magnetic coupling thruster prototype developed in IRDL1 (ENI Brest).

A control method using the hydrodynamic model is studied, its adaptation to two AUV topologies is presented and considerations about its applicability will be discussed.

The optimization is used to find suitable propulsive topologies and control parameters in order to execute given robotic tasks, speeding up the convergence and minimizing the energy consumption. This is done using a genetic algorithm, which is a stochastic optimization method used for taskbased design. The results of the optimization can be used as a preliminary stage in the design process of an AUV, giving ideas for enhanced propulsive configurations.

The optimization technique is also applied to an IRDL existing robot, modifying only some of the propulsive topology parameters in order to readily adapt it to di↵erent tasks, making the AUV dynamically reconfigurable.

Résumé

Dans ce travail, l'optimisation de la propulsion et de la commande des AUV (Autonomous Underwater Vehicles en anglais) est développé. Le modèle hydrodynamique de l'AUV est examiné. Également, son système de propulsion est étudié et des modèles pour des solutions de propulsion di↵érentes (fixe et vectorielle) sont développés dans le cadre de la mobilité autonome.

Le modèle et l'identification de la technologie de propulsion dite fixe sont basés sur un propulseur disponible commercialement. Le système de propulsion vectoriel est basé sur un prototype de propulseur magneto-couplé reconfigurable (PMCR) développé à l'IRDL-ENIB.

Une méthode de commande non linéaire utilisant le modèle hydrodynamique de l' AUV est développée et son adaptation à deux systèmes de propulsion est présentée. Des analyses portant sur la commandabilité du robot et l'application de cette commande à di↵érents systèmes sont proposées.

L'optimisation globale est utilisée pour trouver des topologies propulsives et des paramètres de commande adaptés à la réalisation de tâches robotiques spécifiques. L'optimisation réalisée permet de trouver des solutions capables d'assurer le suivi de trajectoire et de minimiser la consommation génergétique du robot. L'optimisation utilise un algorithme génétique (algorithme évolutionnaire), une méthode d'optimisation stochastique appliquée ici à la conception orientée tâche de l'AUV. Les résultats de cette optimisation peuvent être utilisées comme une étape préliminaire dans la conception des AUVs, afin de donner des pistes pour améliorer les capacités de la propulsion.

La technique d'optimisation est également appliquée au robot RSM (fabriqué au sein de l'IRDL-ENIB) en modifiant seulement quelques paramètres de sa topologie propulsive. Cela afin d'obtenir des configurations de propulsion adaptées au cours d'une seule et même mission aux spécificités locomotrices des tâches rencontrées : Reconfiguration dynamique de la propulsion de l'AUV.

List of publications

The work on this manuscript has been published in the following international journals and conference:

-E. P. Vega L'impact et le potentiel des océans dans le développement humain est indéniable, ils ont été tout au long de l'histoire un élément clé pour les domaines économique, militaire et scientifique. D'un point de vue économique, les mers sont les fondations de l'industrie de la pêche; elles sont également utilisés, depuis l'antiquité, pour établir les routes commerciales. Aujourd'hui, en temps de croissance démographique sans précèdent, les mers sont considérées comme un élément essentiel de l'économie par ses ressources (c.-à.-d nourriture, eau et énergie [1]). Les mers ont aussi un intérêt militaire, puisqu'elles sont considérées depuis toujours comme une composante importante pour la stratégie et la géopolitique. Enfin, les mers sont également importantes pour l'étude du changement climatique. Les variations dans leur composition chimique, donnent aux chercheurs des informations sur la dégradation du climat et de l'environnement [START_REF] Barnett | Penetration of human-induced warming into the world's oceans[END_REF].

List of Tables

L'humanité a toujours essayé d'exploiter les ressources de l'océan à l'aide de la technologie. D'abord avec des navires et après avec des sous-marins et de la technologie sous-marine. Dans la seconde moitié du XXe siècle, grâce à la maturité de la technologie marine, les robots sous-marins ont commencé à être utilisés dans l'exploration des océans. Des véhicules sousmarins non habités (UUV's, unmanned underwater vehicles en anglais) ont été développés à cette époque, puis leurs caractéristiques ont été progressivement améliorées grâce aux avancées technologiques [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF]. On peut diviser les UUV's en deux catégories : robots sous-marins autonomes (AUV) et robots sous-marins télé-opérés (ROV). Actuellement, l'utilisation des ROVs est très répandue dans tous les domaines, alors que les AUV sont plutôt utilisés dans le domaine militaire pour leur autonomie.

Contexte opérationnel

Après plusieurs décennies d'opération, les robots sous-marins autonomes ont démontré leur capacité à réaliser des missions de plus en plus diciles. Ces robots étaient utilisés au début comme de simples dispositifs d'appui, puis, au cours des années, ils sont devenus plus fiables grâce aux progrès technologiques et scientifiques. Aujourd'hui ce type de robot peut être utilisé pour réaliser des missions complexes en autonomie ou en mode supervisé. Néanmoins, malgré leur succès, le développement des AUVs n'a pas encore atteint son potentiel maximum. E↵ectivement, la prochaine étape dans l'évolution des AUVs est l'amélioration de leur autonomie, ce qui leur permettra de réaliser les mêmes mission que les ROVs en autonomie. Le développement d'AUVs plus autonomes nous permettra de réaliser des missions dans lesquelles le robot pourra parcourir de grandes distances, réagir en temps-réel et réaliser des interventions sans supervision humaine.

Les domaines d'activité utilisant déjà les AUVs bénéficieront de ce type de robots sous-marins. Les océanographes, par exemple, pourront utiliser les AUVs pour mesurer sur des grandes distances et prendre des échantillons de façon autonome. L'industrie du pétrole pourrait utiliser ces robots pour inspecter et faire de la maintenance de son équipement sous-marin. La défense pourrait utiliser ces robots pour détecter, identifier et détruire des mines sans mettre en péril la vie humaine.

Même si ces missions sont impossibles à réaliser par les AUVs actuels, elles nous permettent de déterminer les caractéristiques nécessaires pour les futurs robot sous-marins. Afin de réaliser ces missions, nous remarquons qu'une bonne manoeuvrabilité et une bonne autonomie sont nécessaires. La combinaison de ces deux caractéristiques n'est pas disponible dans les AUVs d'aujourd'hui. Même si l'autonomie des AUVs a été améliorée, la manoeuvrabilité de ce type de véhicule reste réduite [START_REF] Djapic | Design and initial in-water testing of advanced non-linear control algorithms onto an Unmanned Underwater Vehicle (UUV)[END_REF][START_REF] Nguyen | Thrust improvement of an fish robot actuated by compressed unimorph piezoelectric composite actuator[END_REF][START_REF] Barngrover | The stingray AUV: A small and cost-e↵ective solution for ecological monitoring[END_REF]. Une solution à ce problème serait soit d'augmenter l'autonomie des ROVs, soit d'augmenter la manoeuvrabilité des AUVs. Cependant, par leur nature, il est très compliqué de donner des capacités de longue portée aux ROVs. Ces véhicules sont étroitement attachés à leurs navire d'appui car ils y sont reliés par un câble ombilical.

La deuxième option est plus faisable : augmenter la manoeuvrabilité des AUVs. E↵ectivement, la capacité de calcul embarqué et les capteurs actuels permettent d'implémenter des méthodes de commande avancées. Ces développements, avec les avancements en termes de technologie propulsive, sont susceptibles d'augmenter la manoeuvrabilité des AUVs et leur autonomie.

Méthodologie de recherche

Dans ce manuscrit on travaillera sur la seconde solution proposée : L'amélioration des capacités des AUVs par le biais d'une manoeuvrabilité augmentée. E↵ectivement, nous allons nous concentrer sur l'étude des systèmes de propulsion et leur e cacité afin d'augmenter la manoeuvrabilité des AUVs (mobilité et vitesse). La propulsion est un aspect clé dans l'étude de la manoeuvrabilité puisqu'elle intervient directement dans la mobilité et la commandabilité du robot sous-marin.

Selon le type de propulsion, le robot pourrait avoir besoin de plus ou moins de propulseurs, il pourrait être plus ou moins lourd, ou il pourrait même être incapable de réaliser certaines missions. La conception des systèmes de propulsion sera étudiée afin de déterminer son e↵et sur la performance des AUVs. Di↵érentes solutions technologiques (fixe et vectorielle) seront étudiées. De plus, un propulseur magnéto-couplé réconfigurable (PMCR) sera présenté, modélisé et simulé.

Nous étudierons, également, la topologie de propulsion, c'est à dire le nombre, l'orientation, la position et le type d'actionneur. Nous essaierons de déterminer la configuration propulsive la plus adaptée pour une tâche donnée, ce qui comprend la topologie et la méthode de commande (structure et paramètres).

Le problème de trouver la configuration propulsive la plus adaptée sera traité ici comme un problème d'optimisation. A cause d'infinies possibilités dans les solutions et du manque de formalisme mathématique, il n'est pas possible d'utiliser des techniques conventionnelles d'optimisation (descente de gradient). Afin de résoudre ce problème d'optimisation on utilisera des algorithmes évolutionnistes (algorithme génétique). Ce type d'algorithme utilise l'évolution artificielle afin de trouver des solutions adaptées au problème d'optimisation.

L'AUV étant autonome, il est équipé de batteries. Les solutions proposées ne doivent donc pas conduire à une forte consommation énergétique. Ce compromis (manoeuvrabilité et e cacité énergétique), nous amènera à privilégier des solutions avec un faible nombre de propulseurs idéalement configurés pour maximiser leur potentiel.

Modelisation de l'AUV

1.2 Modelisation de l'AUV 1.2.1 Modélisation des robots sous-marins autonomes L'étude des robots sous-marins commence par la modélisation mécanique du système, une étape fondamentale pour maîtriser, commander et optimiser n'importe quel robot. Les robots sous-marins nécessitent plusieurs modèles pour être complètement décrits. Les principaux modèles représentent les aspects cinématique et dynamique du système. De plus, on utilisera des modèles décrivant les di↵érents sous-systèmes tels que la topologie ou la technologie propulsive. Ces modèles seront présentés dans cette section. Les premiers seront issus de la littérature [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]. Ils font usage de l'approximation par les masses ajoutées (coe cients hydro-dynamiques), sa précision est su↵isante pour notre application.

Cinématique

Ici les équations cinématiques de l'AUV sont présentées. Afin de pouvoir les développer, on doit faire les hypothèses suivantes : L'AUV est submergé loin du sol, des parois et de la surface de l'eau. Il est dans un fluide homogène.

Les courants marins sont négligés (non fondamentales pour la méthode).

L'AUV est un corps rigide de masse constante.

Deux systèmes de coordonnées orthogonaux sont utilisés : R 0 (O 0 , x 0 y 0 , z 0 ) le repère fixe (attaché à la terre) et R b (O b , x b , y b , z b ) le repère mobile, lié a l'AUV.

On peut trouver le vecteur de vitesse absolue de l'AUV exprimé dans R 0 à partir de R b en utilisant une matrice de transformation cinématique [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF].

⌘ = d⌘ dt R 0 = J(⌘ 2 ) ⌫
avec ⌫ = [u v w p q r], le vecteur combinant les vitesses absolues linéaire et angulaire du robot dans R b Dynamique

Modelisation de l'AUV

Les équations dynamiques non linéaires du robot sous-marins sont données dans le repère R b et peuvent être développées comme [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF] :

M ⌫ + C ⌫ + D ⌫ + G = ⌧ où M 2 R 6⇥6 , C 2 R 6⇥6 et D 2 R 6⇥6
sont les matrices de masse, Coriolis et forces centripètes et forces de dissipation respectivement (incluant les termes de masse ajoutée). G est le vecteur des forces et moments gravitationnels. Enfin, ⌧ est le torseur des e↵orts extérieurs.

⌧ , représente les forces et moments générés par les propulseurs. Il est construit de la manière suivante : ⌧ = B u p où B est la matrice de configuration de la propulsion, qui dépend de l'architecture de propulsion (nombre, position et orientation des actionneurs). u p est le vecteur des forces d'actionnement (c.-à-d. poussées des propulseurs).

Ces matrices sont créées en utilisant les lois de la physique du solide rigide et hydro-dynamiques. La physique du solide rigide nous permet de modéliser l'AUV comme un solide, donc d'appliquer les équations dynamiques du solide (Newton -Euler). Par ce que l'AUV est submergé, on doit ajouter l'e↵et de l'eau sur le robot afin de décrire complètement le système dynamique.

Modélisation de la propulsion

La prochaine étape dans la modélisation du robot sous-marin concerne sa propulsion. Nous pouvons diviser la modélisation de la propulsion en deux niveaux. Le premier, le plus global, décrit mathématiquement la topologie (nombre, position et orientation) des propulseurs. Le second niveau, plus spécifique, décrit la technologie utilisé dans chaque propulseur. Dans ce manuscrit on présente deux technologies de propulsion : Fixe et vectorielle.

Propulsion fixe

Un propulseur fixe est un propulseur qui une fois monté dans le robot, n'est pas capable de changer sa configuration (orientation). Ce type de propulseur est très utilisée dans le domaine de la robotique sous-marine. Il existe plusieurs modèles décrivant ce type d'actionneur, dans ce manuscrit on utilisera le modèle le plus utilisé [START_REF] Koh | A study of the control of an underactuated underwater robotic vehicle[END_REF] [START_REF] Koh | A Control Module Scheme for an Underactuated Underwater Robotic Vehicle[END_REF].

A fin de développer le modèle pour ce type d'actionneur, on prendra comme référence les actionneurs utilisés dans le robot RSM : Le propulseur Seabotix BTD1501 , un propulseur avec un moteur à courant continu.

Propulsion vectorielle

Un propulseur vectoriel, est un propulseur capable de changer la direction de sa poussée. A fin de modéliser ce type d'actionneur, on utilisera le propulseur magnéto-couplé reconfigurable (PMCR) comme base [START_REF] Vega | A flat design and a validated model for an auv reconfigurable magnetic coupling thruster[END_REF].

La figure 1.1 montre un schéma du PMCR. Le système consiste en un moteur attaché à un axe. Un axe attaché à l'hélice fournit la force de propulsion. L'axe de propulsion est orientable par rapport à l'axe du moteur grâce à une fourche, le lien entre le bâti du système et l'axe du propulseur. Le couple généré par le moteur est transmis à l'hélice grâce à un accouplement magnétique.

Commande basée modèle

Après avoir modélisé le robot, la prochaine étape dans l'étude du robot sousmarin est la définition des méthodes de commande et d'estimation utilisées, deux éléments indispensable pour simuler le robot en mission.

Commande basée modèle

Étant donné qu'on a un modèle assez précis du robot, il semble logique de l'utiliser intensivement. La méthode choisie est le bouclage dynamique linéarisant; Une technique de commande non-linéaire qui utilise complètement les modèles cinématique et dynamique du robot.

Un filtre de Kalman étendu (EKF) est utilisé afin d'estimer les variables d'état non mesurées par des capteurs, mais utilisées par la méthode de commande. L'implantation des méthodes de commande et estimation est faite en utilisant le système d'exploitation robotique ROS (bibliothèque écrite en C++).

Bouclage dynamique linéarisant

Cette méthode de commande est très utilisée pour commander des AUVs [START_REF] Millán | Formation Control of Autonomous Underwater Vehicles Subject to Communication Delays[END_REF][START_REF] Yang | Robust geometric formation control of multiple autonomous underwater vehicles with time delays[END_REF]. La commande utilise directement les modèles cinématique et dynamique du robot. Cette caractéristique nous donne une vision claire du fonctionnement intérieur de la méthode, ce qui nous permet de mieux étudier la commandabilité du système. L'idée principale de cette méthode de commande est de transformer algébriquement le système non-linéaire en un système linéaire, afin de pouvoir appliquer des techniques de commande linéaires (Fig. 1.2). La méthode du bouclage dynamique linéarisant est di↵érente des méthodes classiques de linéarisation puisque la linéarisation est faite avec une compensation dynamique exacte et non pas par approximation linéaire. Le bouclage dynamique linéarisant est basé sur l'idée de commander le système en utilisant un actionnement subsidiaire capable de compenser les e↵ets nonlinéaires du système et de pouvoir appliquer une correction au système ainsi linéarisé.

La méthode est constituée des boucles cinématique et dynamique (Fig. 1.3). La boucle cinématique génère une vitesse de référence ⌫u ad qui fait qu'un point du robot (point traqué) e suive une trajectoire désirée ⌘ ed . Afin de calculer cette vitesse, il utilise la vitesse de la trajectoire désirée ⌘ed (anticipation) et un terme de correction proportionnel (gain ⇤) à l'erreur de position/orientation.

La boucle dynamique calcule le torseur ⌧ a à appliquer à l'AUV (compensation) afin qu'il suive ⌫ ad . Elle utilise aussi une anticipation (dérivée de ⌫ ad ) et une correction proportionnelle à l'erreur en vitesse (gain K p ). Cette méthode est très e cace si l'architecture de propulsion est capable de générer le torseur calculé ⌧ a et si le modèle est très précis (ou la période d'échantillonage très petite). Il est indispensable que le robot soit commandable sur la trajectoire ⌘ ed .

⌘ ed ⇤ d dt J 1 R o ! R

Optimisation génétique de la propulsion

Le modèle et la méthode de commande présentés précédemment montrent les di↵érents paramètres et sous-systèmes auxquels le concepteur doit répondre afin de créer le système de propulsion de l'AUV. Les paramètres et soussystèmes tels que les gains de la commande et la topologie de propulsion du robot sont essentiels pour créer un robot opérationnel. De plus, même pour un robot sous-marin fonctionnel, un léger changement dans les paramètres de conception peut générer de grandes variations de la performance du robot. Le robot sous-marin doit être alors une combinaison précise d'éléments de conception étroitement couplés.

La grande quantité d'éléments de conception et leur hétérogénéité, font de la conception du robot un processus très complexe. Pour surmonter cette di culté, le concepteur peut choisir les stratégies suivantes : Utiliser une approche descriptive, la méthode classique où "humaine". Le concepteur utilise l'expérience précédente et des nouvelles idées afin de créer le robot. Les idées sont transformées de façon itérative jusqu'à ce qu'on trouve une idée satisfaisante. Ce processus étant semiempirique, le robot créé avec cette approche dépend fortement de la capacité et de l'expérience du concepteur.

Utiliser une approche numérique, qui nécessite un ordinateur pour créer le système ou pour analyser un système déjà conçu. Cette approche peut être utilisée pour trouver automatiquement les éléments par optimisation d'un système selon des critères objectifs déterminés.

Le problème de conception dans ce travail peut être formulé comme un problème d'optimisation.

Algorithmes génétiques

Ce problème d'optimisation sera résolu en utilisant des algorithmes génétiques. Étant un type d'algorithme évolutionniste, les algorithmes génétiques (GA) sont basés sur la théorie de l'évolution de [START_REF] Darwin | On the origin of species by means of natural selection, or the preservation of favoured races in the struggle for life[END_REF] et les mécanismes de la génétique découverts par Mendel (1866). Les algorithmes génétiques utilisent des individus, regroupés en populations, une fonction objective ou fitness et des opérateurs génétiques tels que sélection, croisement et mutation [START_REF] Goldberg | Genetic algorithms in search, optimization, and machine learning[END_REF].

Un algorithme génétique typique suit les étapes suivantes :

1. Une population d'individus est créée. Cette population peut être créée aléatoirement ou en utilisant des connaissances antérieures.

2. Les individus de la population sont évalués et se voient attribuer une fitness selon leur performance (basée sur une fonction objective d'évaluation de leur gènes (codés en nombres binaires)

3. Les opérateurs génétiques utilisent la fitness de chaque individu afin de créer de nouveaux individus :

(a) Sélection : les meilleurs individus (meilleures fitness) sont sélectionnés. Cette sélection peut être stochastique ou déterministe (les deux souvent).

(b) Croisement : deux individus (parents) combinent leurs gènes afin de créer deux nouveaux individus (enfants).

(c) Mutation: un changement de la valeur d'un gène chez certains individus est réalisé aléatoirement. Ce changement (de 0 à 1 ou inversement) est décidé avec des méthodes stochastiques (chaque gène a une très petite probabilité d'avoir une mutation).

(d) Remplacement de la population: la nouvelle génération créée par les opérateurs remplace complètement la génération précédente.

4. Aller à l'étape 2 si les solutions ne sont pas encore satisfaisantes, autrement, finir l'algorithme. Le problème d'optimisation "créer un système de propulsion capable de réaliser une mission donnée" doit être défini plus précisément. Évidemment, une définition mathématique et concise du problème nous permettra de concevoir et implémenter correctement l'algorithme génétique.

Random Generation

La commande calcule la force (donc la poussée) qui doit être fournie par les propulseurs d'un robot sous-marin afin de qu'il suive une trajectoire donnée. On peut considérer aussi qu'une mission de haut-niveau est une succession de trajectoires enchaînées. Notre méthode de commande nous permet alors de réaliser une mission spécifique tout en suivant des trajectoires successives di↵érentes.

Le robot solution pour le problème d'optimisation doit suivre précisément la trajectoire désirée. Cela signifie que la distance entre le point traqué et la trajectoire (à l'instant correspondant) doit converger vers zéro. Autrement dit, l'intégrale de l'erreur de la trajectoire doit être la plus faible possible et converger. Le problème d'optimisation est, alors, la minimisation de la fonction objective définie comme l'intégrale de l'erreur cinématique ✏ kin . Cela peut être écrit mathématiquement de la façon suivante (cas de la minimisation) :

Trouver x ? 2 IR| 5n+5 [ 1,1] /8 x 2 IR| 5n+5 [ 1,1] , g(x ?
)  g(x) avec :

x ? L'individu le plus adapté créé à partir de 5n+5 gènes binaires (bits). L'espace de recherche est IR| 5n+5 [ 1,1] g(x) La fonction objective à minimiser , définit comme l'intégrale de l'erreur cinématique de la méthode de commande.

n La quantité de propulseurs.

Le nombre de paramètres (donc de gènes) d'un individu peut changer. Chaque propulseur a 5 paramètres : 3 coordonnées de position (x pi , y pi , z pi ) et 2 orientations (✓ pi , pi ), définies par rapport au repère du robot. Étant donné qu'on cherche également la meilleure topologie propulsive, le nombre de propulseurs n est variable.

Le robot a seulement un seul contrôleur, ce qui nous donne 5 paramètres à optimiser : 2 gains (pour les parties cinématiques et dynamiques de la méthode de commande) et 3 coordonnées de position (x e , y e , z e ) pour la position du point traqué e.

Paramètres de conception

Une liste exhaustive des paramètres de conception (pour le propulseur "i") est donnée ici :

Optimisation globale des robot sous-marins autonomes

Dans cette étape de l'optimisation des robot sous-marins, on déterminera la topologie complète du véhicule afin de faire une mission déterminée. On optimisera le nombre de propulseurs, les position et orientation des propulseurs et les gains du contrôleur.

Mission

La mission qu'on utilisera pour l'optimisation consiste à inspecter une hydrolienne. Cette mission a été choisie à cause du coût élevé de la maintenance des hydroliennes. Ces dispositifs pourraient être inspectés par des robots sous-marins avec une manoeuvrabilité et une autonomie améliorée.

La mission d'inspection (Fig. 1.5) peut être divisée en trois phases :

Scann du fond marin : dans cette étape, le robot suit une trajectoire qui lui permet de scanner le fond marin (trajectoire dans le plan proche de la surface). Le robot sous-marin peut utiliser un scanner latéral pour scanner le fond marin jusqu'à ce qu'il trouve la cible.

Plongé vers l'hydrolienne : une fois la cible trouvée, le robot commence la phase de plongée. Dans cette phase le véhicule essaiera de se rapprocher rapidement et directement de la turbine, tout en essayant de minimiser la consommation énergétique.

Tomographie (inspection circulaire) de la turbine: dans la troisième étape, le robot commence l'inspection de l'hydrolienne. Cette étape est réalisée en utilisant une caméra afin de filmer la turbine. Pour cela, le robot doit faire un cercle de rayon constant autour de la turbine tout en restant radial au cercle (en pointant constamment l'hydrolienne). On appliquera l'algorithme génétique à chacune de ces trois étapes.

Reconfiguration dynamique de la propulsion

La méthode d'optimisation nous permet d'obtenir des solutions intéressantes en termes de performance pour chaque phase, mais di cilement pour la mission complète. Une solution à ce problème est de réconfigurer dynamiquement le robot, selon la trajectoire suivie. Le robot changera alors sa configuration propulsive pendant la mission, sous l'eau et de manière autonome. Actuellement, la réconfiguration de l'orientation des propulseurs est technologiquement possible (section 3.1.3.2).

Dans cette section on testera l'algorithme dans une application plus "réaliste". On essayera de trouver des solutions pour les trajectoires décrites précédemment, mais avec un nombre fixe de propulseurs et avec des positions prédéterminées (configuration du robot RSM). Seulement les orientations des propulseurs et les paramètres de la méthode de commande seront optimisés. Cette solution est réaliste, car elle peut être appliquée en utilisant les propulseurs magnétocouplés reconfigurables (PMCR) (section 4.2.3).

Discussion

En analysant les résultats de la réconfiguration dynamique et de l'optimisation globale (Tableau 1.1), on voit que l'approche global a de meilleurs résultats. Pour le scan du fond marin, la fitness du meilleur individu trouvé avec l'approche global est 1.35 fois plus grande que celle trouvée avec la réconfiguration dynamique. On obtient un résultat similaire pour la plongée, l'optimisation globale est 1.38 fois plus grande que celle trouvée avec la réconfiguration dynamique. Cependant, pour la tomographie, la réconfiguration dynamique trouve une meilleure solution que l'optimisation globale (1.09 fois plus adaptée). Cela pourrait s'expliquer par l'espace de recherche réduit de la reconfiguration dynamique et par le fait que la configuration de base était proche de celle adaptée à la tâche. Concernant les valeurs de la fitness, l'optimisation globale est la plus performante. Cependant, d'un point de vue technologique, la réconfiguration dynamique semble plus intéressante. E↵ectivement, même si les valeurs de fitness de la réconfiguration dynamique ne sont pas si bonnes, le fait que les configurations soient adaptables dynamiquement, rend ces solutions plus utiles.

Les avantages de la reconfiguration dynamique sont claires, elle permet aux AUVs sous-actionnés de réaliser des tâches complexes, grâce à l'amélioration de leurs capacités propulsives. E↵ectivement, les AUVs équipées de propulseurs réconfigurables, en utilisant les solutions trouvées par la réconfiguration dynamique, sont capables de réaliser des tâches avec une bonne convergence vers la trajectoire désirée et une consommation énergétique réduite. Cela permet d'augmenter l'agilité des AUVs et ainsi leur autonomie de déplacement.

Conclusion

Pour concevoir un véhicule sous-marin autonome on doit définir une grande quantité de paramètres de conception. Ces paramètres doivent être sélectionnés et correctement configurés afin d'obtenir une performance et une autonomie améliorées. Une manière d'améliorer l'autonomie est d'incrémenter les capacités propulsives, est d'adapter le robot aux tâches qu'il doit réaliser.

Actuellement, les AUVs doivent réaliser des tâches et des missions de plus en plus exigeantes. Ces nouvelles missions demandent aux AUVs d'être très e caces et autonomes.

La majorité des méthodes de conception comptent sur l'expérience précédente, prennent des solutions très connues et adoptent des approches classiques. Les robots conçus avec ces méthodes, ne sont pas optimisés pour réaliser des missions spécifiques. Ces robots ont une manoeuvrabilité et e cacité médiocre.

Cette thèse propose une manière d'améliorer la conception des AUVs à travers l'optimisation de leur configuration propulsive, ce qui permet d'incrémenter leur performance et leur autonomie. E↵ectivement, une configuration propulsive adaptée à la mission à réaliser permet aux AUVs de réaliser des tâches complexes avec plus d'e cience (e cacité à coûts réduits).

La technique d'optimisation proposée dans cette thèse utilise un simulateur de l'AUV afin d'évaluer les solutions trouvées. Ce simulateur, exploite le modèle hydro-dynamique du robot, avec la dynamique du solide rigide et les e↵ets hydro-dynamiques (masse-ajoutée, force de flottaison et traînée).

Le simulateur inclut également le modèle électromécanique d'un propulseur réel. Un propulseur vectoriel a été étudié aussi dans cette thèse afin d'étudier sa faisabilité. Le propulseur vectoriel permet de changer la direction de la poussée grâce à un accouplement magnétique reconfigurable. Le modèle dynamique de ce dispositif a été développé et validé.

Afin de simuler correctement le comportement du robot, on utilise une méthode de commande non-linéaire appelée bouclage dynamique linéarisant. Cette méthode de commande utilise les modèles cinématique et dynamique afin de compenser les e↵ets hydro-dynamques et diriger l'AUV vers la trajectoire désirée. La méthode de commande calcule le torseur nécessaire pour suivre la trajectoire désirée. Une étape supplémentaire, appelée répartition de la poussée, a été ajoutée afin de déterminer les poussées nécessaires dans chaque propulseur du robot en fonction de la topologie propulsive.

Un filtre de Kalman étendu et son implantation dans l'architecture de contrôle a été également présenté. Cette étape n'a pas été utilisée dans l'optimisation génétique (car rendue non nécessaire par la simulation) mais elle est indispensable dans le développement du robot expérimental réel (qui ne dispose pas de capteurs de vitesse).

Conclusion

38

En utilisant les éléments mentionnés précédemment, l'algorithme génétique a été mis en place. Il nous permet, à partir d'un robot et une tâche donnés, de trouver une topologie propulsive et des paramètres du contrôleur optimaux. La solution trouvée sera adaptée pour la tâche demandée et le robot solution sera très performant mais spécifique à cette tâche. Les solutions trouvées par cette méthode sont di ciles à appliquer dans la réalité, donc une approche alternative a été présentée. Cette approche, appelée reconfiguration dynamique, propose d'appliquer la méthode d'optimisation à un robot avec le nombre de propulseur et leur positions fixés. Cette réduction de l'espace de recherche peut donner des solutions moins e caces. Cependant, ces solutions sont techniquement faisables aujourd'hui. En appliquant la reconfiguration dynamique au même robot pour di↵érentes tâches, on peut trouver la configuration optimale de la propulsion pour chaque tâche. Cette information nous permettra, à l'aide des propulseurs reconfigurables, de créer des robot sous-marins autonomes reconfigurables dans un futur proche.

Les travaux futurs se concentreront sur l'amélioration de l'algorithme génétique. Cela pourrait être fait en améliorant son e cacité, en utilisant des opérateurs avancés où en réduisant l'espace de recherche. Le nombre de paramètres de conception pourrait être incrémenté sans augmenter le temps de calcul.

Le jeu de paramètres étendu pourrait inclure di↵érents types de commande (PID, sliding mode, commande adaptative, etc). E↵ectivement, l'algorithme génétique pourrait choisir le type de contrôleur, selon la tâche. Les termes de correction utilisés dans la méthode présentée précédemment pourraient être améliorés également, on pourrait utiliser des correcteurs intégral et dérivé.

L'algorithme génétique pourrait être amélioré avec des modèles plus précis au niveau de la méthode de commande (on pourrait y inclure la dynamique des propulseurs, par exemple). E↵ectivement, un modèle avec une description hydro-dynamique plus précise et un modèle dynamique des propulseurs pourrait améliorer les solutions trouvées et les rendre plus facilement applicables dans la réalité en augmentant notamment la robustesse du contrôle-Chapter 2 Introduction

Unmanned underwater vehicles

Oceans impact and potential in human development is undeniable, they have been throughout history a key element in economic, military and, academic activities. From an economic point of view, they are the foundation of the fishing industry and they are used to establish reliable trade routes since ancient times. Nowadays, in times of unprecedented human population growth, they are regarded as a crucial asset, thanks to its large amount of important resources such as food, water and energy [1]. Oceans are also a topic of concern for military reasons, since they have always been considered a strategic aspect in geopolitics. A testimony of the strategic importance of the oceans are the words of Charles De Gaulle, that in his speech in Brest in 1969 foresaw that: "Men activity will be focused on the research and utilization of the sea. Naturally, states ambitions will seek to dominate the sea to control its resources". Lastly, oceans also play a key role in the study of environmental and climate change. Variations in measured data such as chemical composition, for example, give scientists informations about the degradation of the environment [START_REF] Barnett | Penetration of human-induced warming into the world's oceans[END_REF].

The importance of the ocean is well known by mankind since the dawn of civilization. This is why, non surprisingly, humans have always tried to harness its resources. All e↵orts for mastering oceans have been aided by technology. First with surface ships and afterwards with submarines and deepwater technology. In the second half of the 20 th century, thanks to marine technology maturity, marine robotics made its appearance in ocean exploration. Namely, Unmanned Underwater Vehicles (UUVs) started being developed and since then, advancements in technology allowed to have a rapid progression in their capabilities [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF]. Nowadays, UUVs have become increasingly prevalent and are used for scientific, military and industrial purposes. Current UUVs capabilities allow to perform tasks inconceivable fifty years ago [4][START_REF] Ribas | I-AUV Mechatronics Integration for the TRIDENT FP7 Project[END_REF][START_REF] Bruno | A ROV for supporting the planned maintenance in underwater archaeological sites[END_REF].

Underwater robots classification

Unmanned Underwater Vehicles can be divided in two large groups [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF]: Remotely Operated Vehicles (ROVs) and Autonomous Underwater Vehicles (AUVs), each type of underwater robot presents a set of characteristics, which are discussed next.

ROVs

Remotely Operated Vehicles (ROV) are a tethered type of underwater robot. They are controlled by an umbilical cable which is used to transmit orders, energy, and data between the robot and its operators. The operators pilot the ROV from a vessel or platform (or sometimes via a surface unmanned vehicle), controlling most of the robot subsystems [START_REF] Tsusaka | MURS-300 MK II: A remote inspection system for underwater facilities of hydraulic power plants[END_REF][START_REF] Liddle | TROJAN: Remotely operated vehicle[END_REF].

The first ROV, the Poodle, was developed by the Frenchman Dimitri Rebiko↵ in 1953. The U.S. Navy developed in 1966 the CURV (Cable Controlled Underwater Recovery Vehicle), a ROV that became famous for recovering an atomic bomb from Spanish coasts. After this promising start, the ROV gained popularity in the Oil and Gas industry which rapidly adopted this technology to support o↵shore interventions.

Remotely Operated Vehicles are typically equipped with at least six thrusters, which actuate the six degrees of freedom of the robot, that makes them fully actuated systems [START_REF] Nokin | Victor 6000-a deep teleoperated system for scientific research[END_REF]. Thanks to this characteristic, ROVs are very maneuverable, capable of hovering, for stationary interventions (including light work) with good precision.

Maneuverability made of ROVs an important asset, since their applications are very diverse. Remotely Operated Vehicles are used nowadays for commercial, military and scientific purposes. Classical applications include hull inspection [START_REF] Lynn | Performing ship hull inspections using a remotely operated vehicle[END_REF], drilling [START_REF] Liddle | TROJAN: Remotely operated vehicle[END_REF] and construction support [START_REF] Sona | Advancements in ROV and trenching technology[END_REF], object recovery [START_REF] Momma | Search and recovery of the H-II Rocket Flight No. 8 engine[END_REF], marine mine destruction [START_REF] Refsnes | Design of control system of torpedo shaped ROV with experimental results[END_REF] and environmental investigation [START_REF] Stein | ROV observations of benthic fishes in the Northwind and Canada Basins, Arctic Ocean[END_REF].

Despite its many advantages, ROVs have a fundamental drawback: lack of autonomy. Indeed, due to the fact that they are controlled by an operator, this type of robots can only work e ciently if they are assisted by nearby support vessels. Experienced and skilled operators on board of these support vessels receive images from the ROV and use them to pilot the robot. Moreover, deployment and recovery operations are very di cult and dangerous for the robot, they can be used only in calm weather. Furthermore, these robots use several thrusters in order to be fully maneuverable, making them very dependent of the pilot skills.

AUVs

Autonomous Underwater Vehicles (AUV) are a type of underwater robot that operates with on-board control and power supply. They navigate using a combination of preprogrammed trajectories (or reactive motions), acoustic ranging and detection, GPS technology and inertial sensors. The distinctive property of these underwater vehicles is their autonomy, allowing them to cover large distances to achieve complex missions without assistance.

The first AUV, the SPURV (Special Purpose Underwater Research Vehicle), was developed by the University of Washington in 1957. It was used to support oceanographic research and it had an autonomy of four hours. Since AUVs use an on-board controller, they need powerful processing capabilities. This stalled the development of this type of vehicle until technology was ready to provide su cient computational power. With technology advances in processing capabilities, power storage and sensors performance, AUV became more reliable and autonomous [START_REF] Yuh | Design and Control of Autonomous Underwater Robots: A Survey[END_REF][START_REF] Hagen | Making AUVs Truly Autonomous[END_REF].

Given its autonomous nature, AUVs are mostly used to perform survey tasks [START_REF] Nicholson | The present state of autonomous underwater vehicle (AUV) applications and technologies[END_REF] and are designed to be energy e cient. Designers aim at reducing the power consumption by using hydrodynamic hulls [START_REF] Stevenson | AUV shapes -Combining the Practical and Hydrodynamic Considerations[END_REF], since this reduces drag forces. Unlike ROVs, AUVs are typically under-actuated, i.e. they have fewer actuators than the Cartesian space degrees of freedom. A common propulsive strategy has one ot two rear propellers plus control surfaces (rudders), this configuration is adequate to perform long range missions. However, AUVs using this configuration need to advance to be able to turn, making them incapable of performing swerves, which are essential in a maneuverable robot. Consequently, energy e ciency and long range capabilities come at expense of maneuverability.

Autonomous Underwater Vehicles are used in tasks where long distances have to be covered. Typical applications for this kind of vehicle are pipeline and cable inspection [START_REF] Jacobi | Underwater pipeline and cable inspection using autonomous underwater vehicles[END_REF], under-ice exploration [START_REF] Kaminski | 12 days under ice -an historic AUV deployment in the Canadian High Arctic[END_REF], port surveillance [START_REF] Bovio | Autonomous underwater vehicles for port protection[END_REF], mine warfare [START_REF] Hagen | The HUGIN 1000 autonomous underwater vehicle for military applications[END_REF], hydro-graphic survey [START_REF] Stansfield | Deep-sea, high-resolution, hydrography and current measurements using an autonomous underwater vehicle: The overflow from the Strait of Sicily[END_REF], location and study of shipwrecks [START_REF] Diercks | NIUST AUV ' s study Shipwrecks in the Northern Gulf of Mexico[END_REF], among others like o↵-shore platform or airplane accidents.

Even thought AUVs have improved greatly in the last decades, there are still issues that need to be solved. The first one is insu cient power storage capabilities, since technology nowadays does not provide an e cient enough power source [START_REF] Fan | A potential method for underwater charging[END_REF][START_REF] Gri | Energy storage for long endurance AUVs[END_REF]. The second issue is AUV autonomy which remains limited up to these days [START_REF] Nicholson | The present state of autonomous underwater vehicle (AUV) applications and technologies[END_REF]. To solve this problem, e↵orts are needed in control methods, sensor technology and propulsion systems. Indeed, better propulsion systems will improve maneuverability which will allow AUVs to perform more complex tasks such as close object inspection, line or surface following despite marine currents or performing sharp turns. The result of a superior maneuverability will be a significant increase in AUVs overall autonomy.

Motivation

Decades of development have proven the ability of AUVs to achieve increasingly complex missions. These robots started as mere support devices, and throughout the years thanks to scientific and technological advancements, have gained reliability. Nowadays these robots can be trusted enough to carry out fairly complicated missions on their own or on supervised mode.

However, despite their success, AUVs development has not yet reached its full potential. Far from being in its maturity, AUVs capabilities can still be greatly improved. Indeed, the next milestone in the evolution of AUVs is the ability to accomplish autonomously the same tasks than ROVs. This would result in underwater robots capable of traveling long distances, react in real-time to unpredicted events and perform immediate intervention without the supervision of a human operator.

Sectors that already use AUVs would evidently benefit from robots of said characteristics. For oceanographers, for example, this would mean having a robot capable of scanning large areas of the sea floor and taking samples autonomously. Gas and oil industry could use these robots not only for inspecting pipelines but also to perform maintenance on their undersea equipment. Renewable Marine Energy industry could use AUVs to inspect and maintain their generators. Military would benefit of robots capable of detecting, identifying and/or destroying mines without jeopardizing human lifes.

Even if these tasks seem nowadays far from AUVs capabilities, they allow us to determine the characteristics that an improved AUV would need. In order to accomplish these tasks, we note that good maneuverability and autonomy are needed. The combination of these properties is not yet available on current AUVs. Even if great advances have been accomplished in terms of autonomy, nowadays AUVs have reduced maneuverability [START_REF] Djapic | Design and initial in-water testing of advanced non-linear control algorithms onto an Unmanned Underwater Vehicle (UUV)[END_REF][START_REF] Nguyen | Thrust improvement of an fish robot actuated by compressed unimorph piezoelectric composite actuator[END_REF][START_REF] Barngrover | The stingray AUV: A small and cost-e↵ective solution for ecological monitoring[END_REF].

A solution for this problem would be to give more autonomy to ROVs or more maneuverability to AUVs. However, given its nature, it is intricate to provide long range capabilities and autonomy to ROVs. The need of an operator and an umbilical cable makes these vehicles fundamentally tied up to their support vessels.

The second option seems more feasible: to give AUVs more maneuverability. Indeed, current computing processing and sensor technologies allow to implement sophisticated control methods, which added to developments in propulsive strategies and technology, would increase AUVs maneuverability and, therefore, its autonomy.

Research methodology

In this manuscript we work on the second solution, which is improving AUVs autonomy by means of enhanced maneuverability. More precisely, we will focus on the study of propulsion systems and their e ciency in order to achieve higher maneuverability (mobility and speed) for autonomous vehicles.

Propulsion is a key aspect of maneuverability since it can deeply a↵ect the robot mobility and control strategy. Depending on the propulsion, a robot might need more or less actuators, be more or less heavy, or be incapable of performing some missions. For this reason, propulsion systems design will be studied in order to determine their impact in the performance of AUVs. Technological solutions for AUV propulsion will be analyzed and modeled as well. Additionally, a reconfigurable magnetically coupled thruster (RMCT) is presented, modeled and simulated.

Another important aspect of propulsion that will be covered in this work is the propulsion topology, i.e. the number, orientation, position and type of actuators. We will try to determine the most suited propulsive configuration for a given task, this includes topology and the control system (i.e. control methods and parameters).

Finding the most convenient propulsive configuration will be treated as an optimization problem. Giving the infinite available possibilities and the lack of an unifying mathematical formalism to optimize, we can not use classical optimization techniques (gradient based search). In order to solve this optimization problem, we use evolutionary algorithms, which use the power of artificial evolution to find suitable solutions to our problem.

Given that AUVs have an on-board power storage system, it is important that improvements in maneuverability do not increase power consumption beyond measure. This trade-o↵ (maneuverability vs. power e ciency) will guide us during our studies. In practice, it will lead us to favor solutions consisting in a small number of multipurpose thrusters.

Organization of this manuscript

44

Organization of this manuscript

This manuscript is organized in four additional chapters prior to conclusions. Chapter 2 presents a state of the art of underwater robot design and establishes the parameters and methods that will be used in order to improve maneuverability in AUVs. Chapter 3 introduces the hydrodynamic model of AUVs and propulsion systems, also it describes the EAUVIVE1 dynamic simulator. Chapter 4 discusses control and estimation techniques applied to our AUV simulation. Validation of the control system by "in-the-loop" methods is presented. Chapter 5 shows the implementation of several evolutionary algorithms for the task-based optimization of AUVs propulsion configuration. Three methods are presented: sequential, global and dynamic configuration optimization. Afterwards, a conclusion discussing results, advantages and disadvantages of the presented methodology will be given. Additionally, prospects opened by this work will be presented.

Chapter 3

Underwater robot design: State of the art

Sub-systems design

The first step in the design process of an underwater vehicle is to determine its sub-systems. These are the systems that define the robot features, and the designer needs to modify in order to create a feasible vehicle. They constitute the building blocks of the final system.

Given that underwater robot systems are object of extensive scientific research since decades, a state of the art of these sub-systems is needed. This is important in order to have a clearer view of the new ideas and features of underwater robots.

In this state of the art, the design and characteristics of the hull will be discussed. Propulsive characteristics of these vehicles, such as actuated DOF and propulsive technologies will be reviewed. Lastly, the more common control strategies will be analyzed.

After reviewing the main design parameters of AUV, this section will focus on the study of design paradigms. Indeed, design paradigms explain the steps necessary to design a system, starting from the idea until the complete definition of said system. Di↵erent design methods will be reviewed, ranging from classical experience-based and ad-hoc ones to the more globally applicable ones.

Hull design

When designing an AUV, one of the most important components is its hull (sometimes called shell or external structure). This component not only determines how the robot will look like, but also will have a deep impact in the overall performances of the resulting system. As such, the design of the hull can not be taken lightly.

The characteristics of the hull depend on the application of the AUV, however, when designing a hull some general aspects need to be considered: External conditions: working pressure and temperature, impacts etc.

Size requirements.

Accessibility to internal components.

Practicality and versatility to add new components.

Operational conditions (speed, maneuverability or thruster needs)

As pointed in the list the hull must be able to resist the hydrostatic pressure of the water at working conditions. Additionally, the hull needs to minimize the drag forces of the water. These two characteristics depend on the geometry of the hull, which in turn will also a↵ect the AUV maneuverability and power consumption. Given that pressure resistance and drag reduction play such an important role in AUVs performance, the definition of the shape of the hull is almost an unavoidable step in the design process of these vehicles [START_REF] Dunbabin | A hybrid AUV design for shallow water reef navigation[END_REF][START_REF] Kumar | A synergetic approach to the conceptual design of Autonomous Underwater Vehicle[END_REF].

Several shapes are used in order to create AUVs [START_REF] Lin | Development of a spherical underwater robot equipped with multiple vectored water-jet-based thrusters[END_REF][START_REF] Allen | REMUS: a small, low cost AUV; system description, field trials and performance results[END_REF][START_REF] N.-H. Tran | Development of a new underwater disk robot[END_REF]. From a pressure point of view, an spherically shaped AUV would be suitable, however, this shape at high speeds can lead to instability due to hydrodynamic e↵ects [START_REF] Paster | Importance of Hydrodynamic Considerations for Underwater Vehicle Design[END_REF]. In the other hand, cylindrical hulls have a series of interesting characteristics such as good pressure resistance and low longitudial drag [START_REF] Wang | A Low-Cost unmanned underwater vehicle prototype for shallow water tasks[END_REF]. Additionally, due to its longitudinal shape, the cylinder is more compatible with the shape of the inner components of an AUV (instruments, batteries, etc). A drawbacks of this shape are the cavitation e↵ect [START_REF] Paster | Importance of Hydrodynamic Considerations for Underwater Vehicle Design[END_REF] and instability of the robot [START_REF] Ross | A conceptual design of an underwater vehicle[END_REF].

Evidently, simple geometrical shapes are only a first approach, since usually these are based on previous experiences and studies. More sophisticated methods exist, in which the determination of the better suited hull for a given application is treated as an optimization problem. Indeed, optimization techniques are also used in order to find shapes to minimize the drag and improve pressure resistance [START_REF] Alvarez | Hull hydrodynamic optimization of autonomous underwater vehicles operating at snorkeling depth[END_REF]. Some studies use multi-objective optimization approaches in order to find suitable shapes from a hydrodynamic point of view and taking into account design considerations such as component placement [START_REF] Alam | Design and construction of an autonomous underwater vehicle[END_REF] and cost [START_REF] Martz | Preliminary Design of an Autonomous Underwater Vehicle using a Multiple-Objective Genetic Optimizer Vehicle using a Multiple-Objective Genetic Optimizer[END_REF].

Given that the determination of the drag forces relies heavily on hydrodynamic considerations, many studies are also carried out in order to characterize the hydrodynamic properties of a robot [START_REF] Jagadeesh | Experimental investigation of hydrodynamic force coe cients over AUV hull form[END_REF][START_REF] Perrault | Sensitivity of AUV added mass coe cients to variations in hull and control plane geometry[END_REF]. These studies usually involve the use of finite element methods using specialized software such as Fluent [START_REF] Phillips | The use of computational fluid dynamics to aid cost-e↵ective hydrodynamic design of autonomous underwater vehicles[END_REF][START_REF] Sarkar | A Study of Autonomous Underwater Vehicle Hull Forms Using Computational Fluid Dynamics[END_REF]. Hydrodynamic studies prove to be more useful in the design stage of the robot. However, even when used as an evaluation tool, they provide important information for the AUV user.

Propulsive topologies

The degree of actuation, the amount of degrees of freedom actuated in the AUV, defines what kind of movements can be generated by the robot propulsive system (propulsive topology). Evidently, the more an underwater robot is actuated, the more complex tasks it will be able of perform.

At the design stage, the designer needs to imagine the type of tasks that the AUV will perform in order to determine the needed degree of actuation of the vehicle. This task, simple at first sight, is decisive not only for the final capabilities of the robot but also for its overall performance. Indeed, a poorly chosen propulsive configuration can lead to an AUV incapable of performing certain tasks or, at the least, to an under-performant vehicle.

To make sure an AUV is maneuverable enough to perform a great amount of tasks, an immediate approach would be actuate all six degrees of freedom of the Cartesian space, making it fully actuated. However, as stated in the introduction of this thesis, another desired characteristic of an AUV is a high degree of autonomy. An AUV actuated in all of its degrees of freedom will certainly need many actuators, which would make the vehicle power-hungry. This could cause a rapid consumption of the, necessarily limited, energetic resources of the robot.

In the process of creating an AUV, at some point the designer must face this dichotomy between actuation capabilities and autonomy (power consumption). This is a key point in the development of the robot, since the solution to this dilemma will be fundamental for the rest of the process.

Several kind of topologies can be found in the literature. This shows the importance of this design domain, as well as the lack of a general solution capable of satisfying most application cases. We can divide these robots in two groups: fully actuated and underactuated robots.

Fully actuated robots

This type of underwater robots have six or more actuators actuating the six degrees of freedom of the robot. This property allows these robots to perform a great variety of tasks, since with their propulsive resources they can move in the space with complete freedom (or holonomy). This freedom comes, however, at the cost of consuming great amounts of energy.

Despite their outstanding maneuverability, there are relatively few fully actuated AUV. This could be because of their power consumption or due to the fact that their potential agility is not yet matched with reliable control and navigation systems. Another reason for the reduced number of fully actuated AUVs can be the lack of appropriate missions. Indeed, for a great number of tasks nowadays there is not a valid reason to actively control all of the degrees of freedom of an AUV. This is due to the fact that AUV operations are mostly meant to be planar and at a certain depth, without many changes in orientation.

The importance of this type of vehicles; however, can not be neglected. A testimony of this, are the research e↵orts made in order to correctly control this AUV category. Some of these works mostly take a general approach at the control of these vehicles, aiming their developments to a conceptual level and not focusing on the robot particularities nor on a direct application [START_REF] Holden | Robust Globally Exponentially Stabilizing Control Law for Fully Actuated 6-Dof Auvs[END_REF][START_REF] Herman | Decoupled PD set-point controller for underwater vehicles[END_REF][START_REF] Fjellstad | Position and attitude tracking of AUV's: a quaternion feedback approach[END_REF], while others tackle the control of an specific vehicle [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF].

Industrial AUV tend to focus on survey-style tasks [START_REF] Whitcomb | Underwater robotics: out of the research laboratory and into the field[END_REF][START_REF] Wernli | AUVs-a technology whose time has come[END_REF][START_REF] Sahu | The State of Art of Autonomous Underwater Vehicles in Current and Future Decades[END_REF], in which maneuverability is not as important as autonomy and velocity. In such an scenario, fully actuated AUVs are not yet su ciently attractive. However, for academic proposes, fully actuated AUVs are very appealing. Indeed, due to their maneuverability, these vehicles can be used as a test bench in order to develop new control and localization methods [START_REF] Phillips | Delphin2: An over actuated autonomous underwater vehicle for manoeuvring research[END_REF][START_REF] Steenson | Maneuvering of an over-actuated autonomous underwater vehicle using both through-body tunnel thrusters and control surfaces[END_REF][START_REF] Ribas | Girona 500 AUV: From survey to intervention[END_REF]. Evidently, given the maneuverability of these robots and thanks to new advances in control, these underwater vehicles are receiving more attention from companies willing to invest in this kind of technology [START_REF] Billings | SyPRID sampler: A large-volume, high-resolution, autonomous, deep-ocean precision plankton sampling system[END_REF].

Under actuated robots

The second type of robots reviewed in this section are called underactuated. The main characteristic of thee AUV is that they are not able to fully control all of their six degrees of freedom.

The amount of underactuated AUVs found in the literature is greater than the amount of their fully actuated counterparts. This could be due to the reduced power consumption (less actuators means less consumed energy) or to the fact that most of the tasks for these robots only need the control over a few degrees of freedom.

Many examples of underactuated AUVs are available in the literature. Historically, the most common type were the torpedo-shaped underwater robots [START_REF] Alam | A brief taxonomy of autonomous underwater vehicle design literature[END_REF]. These vehicles, designed to travel great distances in order to perform survey-style missions, were the first AUVs to find their way out of research facilities and get adopted to commercial use [START_REF] Vestgard | The HUGIN 3000 Survey AUV[END_REF][START_REF] Marthiniussen | HUGIN-AUV concept and operational experiences to date[END_REF]. The range of applications of torpedo-shaped AUVs is quite large, they are used to collect data [START_REF] Cruz | The MARES AUV, a Modular Autonomous Robot for Environment Sampling[END_REF], to map the sea floor [START_REF] Dupré | High-resolution mapping of large gas emitting mud volcanoes on the Egyptian continental margin (Nile Deep Sea Fan) by AUV surveys[END_REF] and to inspect pipelines [START_REF] Fernandes | Pipeline inspection with AUV[END_REF]. Motivated by the need of autonomy and to travel great distances, a type of torpedo-shaped AUV called glider has been developed in the last decades [START_REF] Alvarez | Fòlaga: A low-cost autonomous underwater vehicle combining glider and AUV capabilities[END_REF][START_REF] Bachmayer | Underwater gliders: recent developments and future applications[END_REF]. The main advantages of these vehicles are the long range mission capabilities with low energy consumption.

After the first wave of torpedo-shaped AUVs and thanks to advancements in control, localization and path planing, AUVs applications have mutated to other areas of interest. Along with the change of mission, the structure of these AUVs have mutated to adapt to new missions. Nowadays, we can find (mostly underactuated) AUVs acting as diving companions [START_REF] Stilinovic | AUV for diver assistance and safety -Design and implementation[END_REF], cleaning ship hulls [START_REF] Souto | Lappa: A new type of robot for underwater non-magnetic and complex hull cleaning[END_REF] and reaching their application scope to intervention tasks [START_REF] Ridao | Intervention AUVs: The next challenge[END_REF]. Even if they seem complex, these tasks do not demand the control of all degrees of freedom of the robot.

Control over this type of vehicle is more challenging than over fully actuated robots. Indeed, for underactuated AUVs, not every trajectory is reachable, due to their propulsive limitations. Great e↵orts have been made in order to overcome this drawback, in the literature we can find advanced and creative control techniques [START_REF] Bi | Position-tracking control of underactuated autonomous underwater vehicles in the presence of unknown ocean currents[END_REF][START_REF] Do | Global output feedback universal controller for stabilization and tracking of underactuated ODIN-an underwater vehicle[END_REF][START_REF] Refsnes | Control of slender body underactuated AUVs with current estimation[END_REF][START_REF] Chyba | A First Extension of Geometric Control Theory to Underwater Vehicles[END_REF] trying to solve this problem.

Propulsion means

Equally important as the propulsive technology, is the way in which the propulsive forces are created. In this section, di↵erent propulsive means will be discussed, ranging from classic technologies, such as control and control surface, to the innovative biomimetic approach.

Fixed propulsion

The first type of propulsion technology analyzed in this section is the fixed one. These actuators are able to generate the propulsive force along a fixed direction with regard to the robot body. Usually, in order to properly control the degrees of freedom required by a mission, many fixed actuators are needed.

The number, orientation and position of these actuators on the hull of the AUV depend on the type of mission performed by the robot. In virtue of this, no general rules exist to define said design parameters. This step of the design process relies heavily on the previous experience of the designer.

Sub-systems design 50

Several ways of creating a fixed propulsive force exist [START_REF] Carlton | Marine propellers and propulsion[END_REF]. The two most common being thrusters and water-jet actuators.

Thrusters are nowadays the most used technology, their relatively low cost and the fact that they have been developed for decades, give these actuators great advantages in terms of technological maturity. Given the popularity of these actuators, we can find them mounted o AUVs of very diverse types [START_REF] Tipsuwan | Design and implementation of an AUV for petroleum pipeline inspection[END_REF][START_REF] Marouchos | A shallow water AUV for benthic and water column observations[END_REF][START_REF] Pyo | Development of hovering type AUV "cyclops" and its performance evaluation using image mosaicing[END_REF].

Also due to their popularity, several mathematical models explaining the behavior of these devices exist [START_REF] Healey | Toward an improved understanding of thruster dynamics for underwater vehicles[END_REF][START_REF] Palmer | Modelling Tunnel Thrusters for Autonomous Underwater Vehicles[END_REF][START_REF] Whitcomb | Comparative experiments in the dynamics and model-based control of marine thrusters[END_REF], which encourages their use even more. A sign of popularity of these actuators are the diverse studies we can find in the literature. These go from researching the hydrodynamic interaction between the thruster and the hull [START_REF] Saunders | The e↵ect of forward vehicle velocity on through-body AUV tunnel thruster performance[END_REF] to the miniaturization of this technology to be used in small AUVs [START_REF] Sharkh | Structurally integrated brushless PM motor for miniature propeller thrusters[END_REF].

The second type of fixed propulsive technology analyzed here is the jetbased propulsion. Typically, these actuators draw water from an inlet into a pump in charge of adding energy to the fluid. The water then passes through a nozzle, which in turn, transforms the pressure of the liquid in kinetic energy [START_REF] Carlton | Marine propellers and propulsion[END_REF][START_REF] Yang | Nozzle optimization for water jet propulsion with a positive displacement pump[END_REF], creating a net thrust force used to control the robot.

Jet propulsion o↵ers several advantages over typical thrusters [START_REF] Alvarez | Fòlaga: A low-cost autonomous underwater vehicle combining glider and AUV capabilities[END_REF][START_REF] Carlton | Marine propellers and propulsion[END_REF], some of these are: Mechanical design (absence of rotating parts and transmission mechanisms) Cost Robustness Safety (less likely to cause harm at low speed than thrusters) However, with regard to traditional thrusters, water-jet actuators are less e cient.

Even if this technology is not as widespread as thruster technology, a non negligible amount of research is devoted to model and improve the characteristics of this type of actuators [START_REF] Yang | Nozzle optimization for water jet propulsion with a positive displacement pump[END_REF][START_REF] Korde | Study of a jet-propulsion method for an underwater vehicle[END_REF][START_REF] Thomas | Synthetic Jet Propulsion for Small Underwater Vehicles[END_REF][START_REF] Jian | Numerical investigation into e↵ects on momentum thrust by nozzle's geometric parameters in water jet propulsion system of autonomous underwater vehicles[END_REF]. This will probably lead into e ciency improvements and eventually a bigger adoption of this technology.

Vectorial propulsion

Vectorial propulsion is a technology capable of creating an orientable propulsive force. A vectorial force actuators is then a device in which we have to control no only the generated thrust but also the orientation of said force.

Vectorial propulsion o↵ers interesting possibilities. The first one is the generation of thrust over directions that can change during the AUV operation. Using the reorientation we have access to more degrees of freedom per thruster than a classical fixed propulsive arrangement. If used correctly, vectorial propulsion can provide an underactuated AUV similar capabilities than a fully actuated one. This means giving the possibility to an underactuated vehicle to follow trajectories that otherwise would have been unreachable [START_REF] Vega | Evaluation of AUV fixed and vectorial propulsion systems with dynamic simulation and non-linear control[END_REF].

Overall AUV weight reduction is a second advantage of this technology. Indeed, given that one of these actuators can be in charge or controlling di↵erent degrees of freedom, a reduced number of devices are needed to control the movement of the AUV. A reduced number of actuators results in a reduced AUV weight.

Vectorial propulsion is, however, not exempt of drawbacks and limitations. From a fundamental point of view, vectorial propulsion generate new challenges in control and trajectory planning of AUVs, such as the increase of nonlinearities in the propulsive model [START_REF] Jin | Hovering underwater robotic platform with four tilting thrusters[END_REF] and coupling between its actuated degrees of freedom [START_REF] Page | Simulation and control of an autonomous underwater vehicle equipped with a vectored thruster[END_REF]. The versatility of these actuators, when not properly assessed, can be detrimental to the controllability of underwater robots.

From a practical point of view, the biggest limitation is the way of creating the reorientation. Several approaches exist, using di↵erent technologies such as water-jets [START_REF] Xin | A vectored water jet propulsion method for autonomous underwater vehicles[END_REF][START_REF] Shi | Development of an amphibious turtle-inspired spherical mother robot[END_REF], creative mechanism [START_REF] Cavallo | Conceptual Design of an AUV Equipped with a Three Degrees of Freedom Vectored Thruster[END_REF], servomotors assemblages [START_REF] Zhang | The general design of a seafloor surveying AUV system[END_REF] and magnetic couplings [START_REF] Chocron | A Validated Feasibility Prototype for AUV Reconfigurable Magnetic Coupling Thruster[END_REF]. However, most of the current solutions are not yet able to match the simplicity of the fixed propulsion approach.

As for water-jet propulsion, it does not mean that development of these actuators has stalled. Improvements and studies about their design and performance are conducted [START_REF] Ackermann | Hydrodynamic testing of a Vectored-Thruster Propelled UUV[END_REF], making this a promising technology for the years to come.

Control surfaces

Historically, the first applications of AUV involved performing survey-style tasks. The classic AUV configuration for these missions was a torpedo-shaped hull, a propeller in the rear of the structure and control surfaces [START_REF] Hegrenaes | Comparison of Mathematical Models for the HUGIN 4500 AUV Based on Experimental Data[END_REF][START_REF] Bellingham | A second generation survey {AUV}[END_REF][START_REF] Bovio | Autonomous underwater vehicles for scientific and naval operations[END_REF].

In this type of propulsion, the propeller and control surfaces act together in order to propel and steer the robot. The propeller, which is a device consisting of several rotating blades, accelerates the water creating a propulsive force. The control surfaces are in charge of controlling the thrust generated by the propeller, they are airfoil shaped devices capable of generating a lift when positioned at an angle with regard to the flow [START_REF] Palmer | Analysis of the Propulsion and Manoeuvring Characteristics of Survey-Style AUVs and the Development of a Multi-Purpose AUV[END_REF]. The lift depend on the shape of the control surface, its angle and evidently the velocity of the water. This last element is the link between the control surface and the propeller: in order to generate lift, the robot needs to have a non zero velocity.

The propeller and control surface solution was used on ships before their application to AUVs [START_REF] Carlton | Marine propellers and propulsion[END_REF], which means that the technology was mature enough when it was implemented on underwater robots. This made the application of this technology in survey-type robots easier, given their e ciency and proven e cacy in long range and high speed missions.

Given the success and popularity of survey style AUVs, the propeller and control configuration was studied extensively [START_REF] D'epagnier | AUV propellers: Optimal design and improving existing propellers for greater e ciency[END_REF][START_REF] Phillips | Comparisons of CFD simulations and in-service data for the self propelled performance of an Autonomous Underwater Vehicle[END_REF][START_REF] Coe | Asymmetrical wake and propulsor e↵ects on control surface e↵ectiveness on AUVs[END_REF]. Aspects as blade shape optimization [START_REF] D'epagnier | An Open Source Parametric Propeller Design Tool[END_REF], interaction between propeller and hull [START_REF] Hayati | A study on the behind-hull performance of marine propellers astern autonomous underwater vehicles at diverse angles of attack[END_REF] as well as the control surface optimization [START_REF] Dantas | Numerical analysis of control surface e↵ects on AUV manoeuvrability[END_REF] were thoroughly analyzed.

When AUVs missions started to include middle and short range operations, the limitations of this technology arose. Indeed, given that the steering of the vehicle is only possible when the velocity of the water (with regard with the robot) was high enough, operations with low velocities became ine cient with this technology.

Nowadays, this technology is used almost exclusively in long range AUVs [START_REF] Furlong | Autosub Long Range: A long range deep diving AUV for ocean monitoring[END_REF] and in underwater vehicles with both long and short range applications [START_REF] Palmer | Analysis of the Propulsion and Manoeuvring Characteristics of Survey-Style AUVs and the Development of a Multi-Purpose AUV[END_REF].

Biomimetics

The biomimetic approach proposes to base the AUV development in solutions found in the nature. This means adopting shapes, propulsion systems and locomotion control methods used by animals.

The basic idea behind this design approach is that after eons of evolution, nature has found e cient and reliable locomotion solutions. Biomimetic relies on the fact that the work of creating, testing and evolving, in this case, propulsion systems, has been done already in a natural way [START_REF] Chiu | Dynamic characteristic of a biomimetic underwater vehicle[END_REF].

In nature we can find fishes and other aquatic beings which are highly maneuverable, power-e cient and capable of performing demanding tasks such as station-keeping in presence of perturbations [START_REF] Colgate | Mechanics and control of swimming: A review[END_REF]. Clearly, the understanding of these systems can be used to inspire artificial human-made underwater systems.

Biomimetic design, as a method for underwater vehicles, covers robot shape, propulsion system and control (locomotion behavior control). In virtue of this, biomimetics can be included in any other section of this chapter. However, given that the final goal for biomimetic design in AUVs is to emulate animal locomotion methods, it is included in this section.

Several examples of biomimetic AUVs exist in the literature, there are robots copying the locomotion methods of squids [START_REF] Shaari | Conceptual design and preliminary analysis on bio-inspired squid micro AUV[END_REF], eels [START_REF] Khalil | Dynamic Modeling and Simulation of a 3-D Serial Eel-Like Robot[END_REF], turtles [START_REF] Kim | A turtle-like swimming robot using a smart soft composite (SSC) structure[END_REF], dolphins [START_REF] Yu | Mechanical design and motion control of a biomimetic robotic dolphin[END_REF] and fish [START_REF] Yu | Development of a biomimetic robotic fish and its control algorithm[END_REF]. Even if the animals inspiring the designs are diverse, most of the biomimetic robots nowadays use (in some way or another) fin propulsion as a base [START_REF] Willy | Development and initial experiment of modular undulating fin for untethered biorobotic AUVs[END_REF][START_REF] Mazlan | A Fully Actuated Tail Propulsion System for a Biomimetic Autonomous Underwater Vehicle[END_REF]. This technology has generated great interest in the scientific community, and as such, extensive analysis about fins hydrodynamics [START_REF] Triantafyllou | Review of experimental work in biomimetic foils[END_REF] and real prototypes have been carried out [START_REF] Krishnamurthy | An electric ray inspired biomimetic autonomous underwater vehicle[END_REF][START_REF] Chemori | Depth control of the biomimetic U-CAT turtle-like AUV with experiments in real operating conditions[END_REF]. Another proof of the popularity of biomimetics is the diverse methods to achieve animal-like movement. Indeed, in the literature we can find complex and creative mechanisms [START_REF] Khalil | Dynamic Modeling and Simulation of a 3-D Serial Eel-Like Robot[END_REF][START_REF] Yu | Mechanical design and motion control of a biomimetic robotic dolphin[END_REF] as well as solutions using smart materials [START_REF] Chu | Review of biomimetic underwater robots using smart actuators[END_REF]. These materials have special characteristics that, when applied correctly, allow biomimetic AUVs to perform complex movements. Evidently, biomimetic locomotion also supposes the use of adapted control techniques in order to master the movement of the robot, we can find several examples of these control methods in the literature [START_REF] Zhang | Development and depth control of biomimetic robotic fish[END_REF][START_REF] Guo | Guidance and control of a biomimetic autonomous underwater vehicle using body-fin propulsion[END_REF][START_REF] Zhou | The Posture Control and 3-D Locomotion Implementation of Biomimetic Robot Fish[END_REF].

Control techniques

Throughout the history of AUVs, the increasingly complex tasks have pushed the limits of the technology of these vehicles. Something similar has happened with the control methods. Indeed, the mission of AUVs have changed dramatically in the last decades, going from survey-style high speed tasks to low-speed high precision ones. Certainly, in order to perform these new tasks, designers had to make use of more e cient technology such as more powerful batteries, more responsive propulsion methods and high-end sensors. However, equally (or even more) important than technology are the control methods used to perform said missions.

In the literature we can find several types of controllers used on AUVs. From PID [START_REF] Williams | A decoupled, distributed AUV control architecture[END_REF] and H 1 [START_REF] Nag | A robust H-infinity based depth control of an autonomous underwater vehicle[END_REF] approaches to sliding mode [START_REF] Elmokadem | Trajectory tracking sliding mode control of underactuated AUVs[END_REF] and neural network based techniques [START_REF] Bian | Adaptive neural network control system of path following for AUVs[END_REF]. Most of the found techniques have been extensively tried in simulations but only few have been transferred and successfully tested on real devices [START_REF] Watson | Depth Control for Micro-Autonomous Underwater Vehicles (uAUVs): Simulation and Experimentation[END_REF]. This could be due to the lack of adapted hardware.

Whether the missions are survey-style or with a focus on hovering and maneuverability, most of the control techniques used for them are some variation of PID, sliding mode or adaptive control methods [START_REF] Watson | Depth Control for Micro-Autonomous Underwater Vehicles (uAUVs): Simulation and Experimentation[END_REF]. Given that these three techniques are the most used, the focus on this section will be put on them. These techniques will also be categorized in two groups: linear and non-linear.

Linear

Despite its simplicity, PID [START_REF] Bruno | Springer Handbook of Robotics[END_REF] (proportional, integral and derivative) control remains even nowadays one of the most implemented methods in underwater robotics [START_REF] Watson | Depth Control for Micro-Autonomous Underwater Vehicles (uAUVs): Simulation and Experimentation[END_REF].

Several factors favor the adoption of this technique. The main one is its simplicity in terms of implementation and configuration. Indeed, even if the gains K p , K i and K d can be determined based on information of the system, they can also be configured manually with good performances [START_REF] Zhao | Experimental study on advanced underwater robot control[END_REF].

Another non negligible reason for using this technique is the available information and examples in the literature. Indeed, we can find examples of PID implementation in AUVs from 1994 such as the N-DRE robot [START_REF] Jalving | The NDRE-AUV flight control system[END_REF] performing survey motions and in articles from 22 years later [START_REF] Sarhadi | Model reference adaptive PID control with anti-windup compensator for an autonomous underwater vehicle[END_REF]. This shows the versatility of the technique and, at the same time, the need for better and more advanced approaches in order to avoid the limitations of PID. Even if PID is easy to implement and it has shown good performances in AUVs, it is still a linear method trying to control a highly nonlinear system. Performances are expected to decay when used in variable speed scenarios (vehicle dynamics are nonlinear with respect to its velocity [START_REF] Lea | A comparative study of control techniques for an underwater flight vehicle[END_REF]).

PID is usually used for linear time invariant single input single output (SISO)systems. In the case of AUVs, the degrees of freedom to control are decoupled in order to apply the PID controller [START_REF] Williams | A decoupled, distributed AUV control architecture[END_REF]. The correct choice of the gains have received much attention as well. We can find implementations of PID with gain selection based on the model of the AUV [START_REF] Petrich | Identification of a simplified AUV pitch axis model for control design: Theory and experiments[END_REF] or even using machine learning approaches such as neural networks [START_REF] Dong | A neural network-based self-tuning PID controller of an autonomous underwater vehicle[END_REF] and genetic algorithms [START_REF] Chen | Research of GA-based PID for AUV motion control[END_REF]. The selection of the best gains, given a robot and mission, helps to improve AUV performance, however, once the PID technique has reached its limits, it is better to use a more advanced nonlinear method.

Nonlinear

Sliding mode control and adaptive control are two popular nonlinear methods used in AUVs. In the literature we can find several applications of these controllers with good performances [START_REF] Yoerger | Demonstration of closed-loop trajectory control of an underwater vehicle[END_REF][START_REF] Antonelli | Adaptive control of an autonomous underwater vehicle: experimental results on ODIN[END_REF].

Sliding mode is a method in which, with regard to PID, o↵ers robustness and the possibility to better deal with disturbances and non modeled dynamics [START_REF] Watson | Depth Control for Micro-Autonomous Underwater Vehicles (uAUVs): Simulation and Experimentation[END_REF]. Sliding mode gets the desired systems response even in the presence of modeling error and disturbances by sliding through them in order to track the desired trajectory. Indeed, in sliding mode, the desired trajectory is known as the sliding surface [START_REF] Lea | A comparative study of control techniques for an underwater flight vehicle[END_REF]. The simplest way of implanting this control technique is to have one action to apply when the system response is

Design methods

55

above the sliding surface and a di↵erent one when it is below it. Sliding mode has a good response and allows to rapidly converge to the desired trajectory, however it has a tendency to create chattering in the controller action. This e↵ect can be reduced of removed with appropriate techniques [START_REF] Lea | A comparative study of control techniques for an underwater flight vehicle[END_REF].

Another very popular approach is adaptive control [START_REF] Watson | Depth Control for Micro-Autonomous Underwater Vehicles (uAUVs): Simulation and Experimentation[END_REF]. It is a type of controller that will adapt taking into account the AUV parameters, even if they are uncertain. Adaptive methods are clearly adapted to AUVs, given the nonlinear dynamics of these vehicles and their hydrodynamics, which are not always properly identified and that may vary with the velocity.

This type of controller are very well established, in the literature we can find several examples of its application to AUVs [START_REF] Do | Robust and adaptive path following for underactuated autonomous underwater vehicles[END_REF][START_REF] Sahu | Adaptive tracking control of an autonomous underwater vehicle[END_REF][START_REF] Rezazadegan | A novel approach to 6-DOF adaptive trajectory tracking control of an AUV in the presence of parameter uncertainties[END_REF]. These controllers usually include Model Reference Adaptive Control and Model Identification Adaptive Control [START_REF] Valladarez | Robust Adaptive Control of Underwater Vehicles for Precision Operations[END_REF]. The first type uses a reference model which defines the desired performance of the system. the controller sends a command signal, containing variable parameters, to the system. The parameters are changed in order to obtain asymptotic convergence of the real system towards the reference one. The second approach, also called self-tuning control, performs on-line system identification. The parameters of the systems are first estimated and then, based on the parameter estimation, the controller is designed.

Design methods

To finish the state of the art, di↵erent AUV design approaches will be discussed. The AUV being a complex mechanism with diverse subsystems from very di↵erent domains (hydrodynamics, control, localization, etc.), needs to be designed attending several constraints and specifications. Some of these are counter-productive between them. For instance, the need of a large interior volume to store the payload can result in an AUV with a mediocre hydrodynamic behavior due to drag forces.

Naturally, given the need to reconcile the diverse aspects of AUV design, di↵erent techniques and protocols have been used to obtain robots capable of attending all needed characteristics.

The first type of design method used to build AUVs has been sheer experience and intuition. Engineers with previous experience in design of robots and aquatic devices took (and take still nowadays) the daunting task of adjusting the several needed AUV characteristics. For some AUVs, methods, ideas and techniques derived from ship design were borrowed.

The great amount of heterogeneous design parameters and the di culty of creating e cient AUVs based solely on experience, made optimization based design appealing.

Early optimization methods involved analyzing the risk of failure of the AUVs components and using a computerized evaluation tool to evaluate the need of redundant devices [START_REF] Babcock | Fault-tolerant design optimization: application to an autonomous underwater vehicle navigation system[END_REF]. With advancements in computing power, CFD (Computational Fluid Mechanics) techniques were used to optimize the shape of the AUV, in order to obtain vehicles with low drag and capable of operating at high pressures [START_REF] Phillips | The use of computational fluid dynamics to aid cost-e↵ective hydrodynamic design of autonomous underwater vehicles[END_REF]. Also for reducing drag, other optimization approaches have been taken, such as pattern search [START_REF] Kato | Optimization of configuration of autonomous underwater vehicle for inspection of underwater cables[END_REF] and genetic algorithms [START_REF] Alam | A new robust design optimization approach for unmanned underwater vehicle design[END_REF][START_REF] Vasudev | A CAGD+CFD integrated optimization model for design of AUVs[END_REF].

In order to take into account the di↵erent design parameters intervening in the AUV, multidisciplinary design optimization [START_REF] Sobieszczanski-Sobieski | Multidisciplinary Design Optimization: An Emerging New Engineering Discipline[END_REF] techniques are also used. These methods use individual analysis for each subsystem and then aggregate them using a system-level coordination procedure [START_REF] Mcallister | Multidisciplinary Design Optimization Testbed Based on Autonomous Underwater Vehicle Design[END_REF]. Similarly, multi-objective optimization techniques using genetic algorithms are used with the goal of optimize design parameters in order to obtain better e↵ectiveness, and reduce cost and risk [START_REF] Martz | Multi-objective optimization of an autonomous underwater vehicle[END_REF][START_REF] Xia | Multi-objective optimization for AUV conceptual design based on NSGA-II[END_REF].

Conclusion

From this review of underwater robot design, we can see how vast is the spectrum of possibilities in order to optimize the AUVs sub-system. Indeed, given the relatively young age of AUV technology, most of these design are starting to gain maturity, o↵ering exciting possibilities.

The great amount of options, however, implies that we have to carefully choose the set of parameters to use in the optimization of the propulsive capabilities of AUVs. Each chosen set of parameters could unveil possibilities unlikely to find otherwise. For instance, the study of biomimetic design takes us to the study of the fundamentals of sea creatures locomotion, something that we probably would not do if we study the classical AUV approaches.

In this work, the design of the following sub-systems have been studied:

Fixed and vectorial thruster technology: The former is an extensively used and established technology. The latter is a promising technology, capable of extending the propulsive capabilities of the AUV.

Propulsive topology: Given its deep influence in the AUV capabilities to perform complex tasks. Propulsive topology includes the type of actuation (fully or underactuated), the number of thrusters and their arrangement on the robot.

Control technique: For the sake of feasibility, a single nonlinear control technique will be used and its parameters are optimized. This is motivated by its adaptation to dynamic tasks, in which linear controllers may have a mediocre performance. Our study consist in adapting this control to di↵erent propulsion systems.

Our strategy is to use an evolutionary algorithm to optimize the design of these sub-systems. This choice is based on the good results of this technique and its capabilities of optimizing systems with heterogeneous parameters. For evaluation of robot designs, the choice have been made to rely on dynamic simulation. This can be justified by the complexity to asses the robot performance with regard to the propulsion and control systems. The simulation will show the behavior of the robot on its task without considering its theoretical capabilities, which are hardly assessable.

Chapter 4

Modeling and simulation

Autonomous underwater vehicles modeling

Our study of underwater robots will begin with their modeling, which is the fundamental stage in order to understand, control and optimize any system. Underwater robots need several models to be completely described, the main ones represent the behavior of these vehicles from a kinematic and dynamic point of view. Additionally, there are models describing the di↵erent sub-systems of the robot, such as the propulsive topology or technology. Said models will be described in this chapter. The first ones will be taken from [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF], including the calculation of hydrodynamic coe cients, since their accuracy is enough for our purposes.

Also the development of a dynamic simulation, the tool we will use to study the behavior of the underwater robot as a whole, will be discussed.

Kinematics

Here, the AUV kinematic equations are presented. In order to develop them, we make the following assumptions:

The AUV is submerged far from the bottom, walls and water surface in a homogeneous fluid

Underwater currents are neglected

The AUV is a rigid body of constant mass Two orthogonal coordinate systems are used: R The vectors describing the motion of the AUV in 6 DOF are:

0 (O 0 , x 0 y 0 , z 0 ) is the earth-fixed frame and R b (O b , x b , y b , z b ) is AUV body-fixed. In
⌘ =  ⌘ 1 ⌘ 2 ⌘ 1 = 2 4 x y z 3 5 ⌘ 2 = 2 4 ✓ 3 5 (4.1) ⌫ =  ⌫ 1 ⌫ 2 ⌫ 1 = 2 4 u v w 3 5 ⌫ 2 = 2 4 p q r 3 5 ⌧ =  ⌧ 1 ⌧ 2 ⌧ 1 = 2 4 X Y Z 3 5 ⌧ 2 = 2 4 K M N 3 5
Here ⌘ is the vector of position and orientation in R 0 . The orientation ⌘ 2 is defined using an Euler ZYX ( , ✓, ) convention as described in [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]. ⌫ is the linear and angular absolute velocity vector in R b . ⌧ is the external forces and moments vector in the body-fixed frame, which accounts for propulsion forces applied on the AUV. Precisely, this vector will allow to model thrust forces from di↵erent propulsion architectures.

To change the AUV velocity vector from one to another coordinate system we use a velocity transformation matrix as given in [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]:

J(⌘ 2 ) =  J 1 (⌘ 2 ) 0 3⇥3 0 3⇥3 J 2 (⌘ 2 ) (4.2)
Where, Using this transformation matrix, we can obtain the AUV absolute velocity vector expressed in R 0 from its expression in R b [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]:

J 1 (⌘ 2 ) =
⌘ = d⌘ dt R 0 = J(⌘ 2 ) ⌫ (4.4)

Dynamics

The nonlinear dynamic equations of an underwater robot, given in the R b frame, can be formulated as [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF]:

M ⌫ + C ⌫ + D ⌫ + G = ⌧ (4.5)
where M 2 R 6⇥6 , C 2 R 6⇥6 and D 2 R 6⇥6 are the matrices of mass, Coriolis and centripetal terms, and damping respectively (including added mass terms). G is the vector of gravitational forces and moments. Lastly, ⌧ is the wrench of external forces and moments.

The wrench ⌧ , accounts for the propulsive forces generated by the thrusters. It is calculated as follows:

⌧ = Bu p (4.6)
where B is the thrust control matrix (TCM), which depends on the propulsive architecture (number, position and orientation) of the actuators. u p is the vector of the actuators forces (i.e., the control input of thrusters). These matrices are constructed using rigid body and hydrodynamic considerations. The rigid body dynamic part is based on the fact that the underwater vehicle is nothing more than a solid, so the well known rigid body dynamics applies. Given that these kind of vehicles operate solely under water, we need to add a hydrodynamic component or layer to the dynamic model in order to completely describe the robot. These hydrodynamic considerations are explained next.

Hydrodynamics

The hydrodynamic matrices described in this section, account each one for a specific dynamic e↵ect of the water over the robot. Said e↵ects are added mass, drag forces and gravitational forces and moments, all of which are described as follows.

Added mass

During its motion, underwater vehicles displace the water in its surroundings. Since the AUV applies a force and a moment on the neighboring fluid, reaction forces are applied to the AUV [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]. We take into account this reactive force with the concept of added mass. Added mass is not a finite amount of fluid to add to the AUV mass but a function of the robot geometry [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF] and motion velocities.

The global mass matrix (M) in the general nonlinear dynamic model (Eq. 4.5) accounts not only for the mass and inertia of the underwater robot but also for the added mass contribution, namely:

M = M b + M a (4.7)
where M b 2 R 6⇥6 is the mass matrix of the robot rigid body:

M b =  mI 3⇥3 mS( b P G ) mS( b P G ) |
| : Inertia matrix of AUV in R b S(X) : cross pre-product matrix of X S([pqr] T ) = 2 4 0 r q r 0 p q p 0 3 5
and M a 2 R 6⇥6 is the added mass contribution, which can be defined in an abbreviated form [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]:

M a =  A 11 A 12 A 21 A 22
Where A 11 ,A 12 ,A 21 and A 22 2 R 3⇥3 represent the added mass terms. This matrix can be simplified for certain conditions and AUV structures. For a robot completely submerged in the water, with a three plane of symmetry structure and working at low speed, we can neglect the contribution of the non-diagonal terms in M a . Added mass also contributes with Coriolis and centripetal terms. In the general non linear dynamic equation (eq. 4.5), the Coriolis and centripetal terms are included in the C matrix:

C = C b + C a (4.8)
where C b 2 R 6⇥6 is the Coriolis and centripetal matrix of the rigid body:

C b =  mS(⌫ 2 ) mS(⌫ 2 )S( b P G ) mS( b P G )S(⌫ 2 ) S(|⌫ 2 )
and C a 2 R 6⇥6 is the contribution due to the added mass:

C a =  0 3⇥3 S(A 11 ⌫ 1 + A 12 ⌫ 2 ) S(A 11 ⌫ 1 + A 12 ⌫ 2 ) S(A 21 ⌫ 1 + A 22 ⌫ 2 )

Damping forces

Matrix D 2 R 6⇥6 in the dynamic equation accounts for dissipative e↵ects (drag forces due to shape and friction). As for the added mass matrix, we can make simplifications for three plane of symmetry structures, which leads to neglect the contribution of the non-diagonal terms. Giving the nature of dissipative e↵ects, this matrix is positive.

D(⌫) > 0 ( 4 . 9 )

Gravitational forces

These are gravitational and buoyancy forces, which act respectively through the center of gravity b P G and the center of buoyancy b P B . Restoring force and moment can be calculated in R b as follows:

G =  b f G (⌘ 2 ) + b f B (⌘ 2 ) b P G ⇥ b f G (⌘ 2 ) + b P B ⇥ b f B (⌘ 2 ) (4.10) with 8 > > > > > > > < > > > > > > > : b f G (⌘ 2 ) = J 1 1 (⌘ 2 ) 2 4 0 0 W 3 5 the weight of the robot b f B (⌘ 2 ) = J 1 1 (⌘ 2 ) 2
W = m g : istherobotweight B = ⇢ g r :
is the buoyancy force g = 9.81 m/s 2 : is earth gravity acceleration ⇢ = 998 kg/m 3 : w a t e rd e n s i t y r : displaced volume of water

Propulsion modeling

The next step in the modeling of the underwater robot is to describe its propulsion. We can define two modeling levels for propulsion, the first and more global one, is the one that mathematically describe the way in which the thrusters are positioned and oriented in the robot. The second level, more specific, determines the technology used in each thruster. In this section we will discuss first the Thrust configuration model and then we will present models for two types of propulsion technologies: fixed and vectorial propulsion.

Thrust configuration

From Eq. 4.6 we see that ⌧ , is calculated by multiplying B and u p . u p is a vector that contains the forces generated by the thrusters. For a robot of n thrusters, this vector would be: where u i is the force generated by the i th thruster. The B matrix represents the organization of the thrusters on the underwater robot. It has a column per thruster and 6 lines (one per degree of freedom in ⌧ ). In each column, the three top elements represent the force created by the thruster, whereas the bottom three elements represent the created moment, which is a function of the thruster position.

u p = 2
Given that the lines of this matrix represent the contribution of all thrusters to create ⌧ , for di↵erent propulsive arrangements (propulsive topologies) we will have di↵erent B matrices. In figure 4.2, we see the RSM robot with a fixed thruster topology and its corresponding B matrix. In this figure (4.2), the values of P account for the position of thrusters 1 to 4 in the R B frame.

Propulsion modeling 66

Similarly, Fig. 4.3 shows the RSM robot with a vectorial propulsive topology. This type of propulsive topology uses one thruster capable of changing its direction, thus creating a variable force vector. In figure 4.3, P also accounts for the position of the only thruster of the topology, ✓ 1 and 1 are the two reconfiguration angles and s(•) and c(•) designate sin and cos respectively. The reconfiguration angles are the successive angles (using an Euler ZYX convention) defining the orientation of the thruster axis. In the first three lines of the thrust configuration matrix we see the components on R b of the thrust vector, whereas in the last three lines we see the moment these components create. We define u v as the Cartesian space vector of the thrust.

Defining the three components of u v on R b as u x , u y and u z , we can recalculate the configuration of the thrust vector as follows:

u v = [u x u y u z ] u p = ||u v || = q u 2 x + u 2 y + u 2 z ✓ 1 = arcsin( u z u p ) 1 = arctan( u y u x ) O b G x b y b z b 1 ✓ 1 u p Pitch Surge Yaw B = 2 6 6 6 6 6 6 4 c✓ 1 c 1 c✓ 1 s 1 s✓ 1 s✓ 1 P 1y c✓ 1 s 1 P 1z c✓ 1 c 1 P 1z + s✓ 1 P 1x c✓ 1 s 1 P 1x c✓ 1 c 1 P 1y 3 7 7 7 7 7 7 5
s s s s 0 0 0 0 s s s s 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 l 1 s l 1 s l 1 s l 1 s 0 0 0 0 l 1 s l 1 s l 1 s l 1 s l 2 l 2 l 2 l 2 0 0 0 0 3

Fixed propulsion modeling

A fixed thruster is a type of thruster that, once it has been installed on the robot structure, it can not change its configuration (orientation). These type of thrusters are the most widely used in underwater robotics, which means that this technology is in its maturity. As such, several models exist to describe the behavior of these actuators, here we will use the most broadly known [START_REF] Koh | A study of the control of an underactuated underwater robotic vehicle[END_REF][START_REF] Koh | A Control Module Scheme for an Underactuated Underwater Robotic Vehicle[END_REF].

To develop the model of this type of thruster, we will take as a reference the actuators used in the RSM robot, the Seabotix BTD150 1 (Fig. 4.5), a ducted oil-filled direct-drive DC motor thruster.

Steady-state model

The hydrodynamic thruster model can be written as follows [START_REF] Koh | A study of the control of an underactuated underwater robotic vehicle[END_REF][START_REF] Koh | A Control Module Scheme for an Underactuated Underwater Robotic Vehicle[END_REF]:

u = K T 0 ! + K T ! |!| (4.14)
where u is the thrust force and ! is the rotational velocity of the propeller shaft. K T 0 and K T are lump parameters of various constants that need to be determined.

The relation between the voltage V and he thrust force u is given by the following motor electromechanical model:

⇢ V = R I + L İ +  ! u = K M I (4.15)
Where R is the wiring resistance, L the inductance, I the current,  is the back-EMF constant of the motor and K M is the specific torque constant related to thrust force.

Considering only the steady-state components of the model ( İ = 0 and ! = 0), Eq. 4.14 and Eq. 4.15 can be reformulated as:

⇢ V = R I +  ! u = K T !|!| (4.16)
Combining these equations (4.15 and 4.16) we can derive the thruster steady-state model:

V = R K M u +  r u K T (4.17)
Eq. 4.17 will be used to calculate the open-loop control input of the thrusters, for a desired thrust u.

Dynamic model

The thrusters DC brushed motor can be mechanically modeled as follows:

J m ! + f + L = I (4.18)
where J m is the motor shaft inertia, f is the resistive torque and L is the load torque.  and , the torque constant, are considered equal if expressed in SI units.

The resistive torque can be calculated as:

f = k fv ! + k fs ! |!| (4.19)
with k fs and k fv the dry and viscous friction coe cients, respectively. The load torque can be calculated as [START_REF] Whitcomb | Comparative experiments in the dynamics and model-based control of marine thrusters[END_REF]:

L = K L !|!| (4.20)
where K L is a proportionality constant. Using Eq. 4.15 and 4.18 we get an electro-mechanical model of the thruster. The state-space system equations are:

 ! İ =  k fv Jm Jm  L R L  ! I +  0 1 L V +  K L !|!| k fs ! |!| 0 (4.21)
This last set of equations are important since they allow to calculate the propeller angular speed !, and thus the generated dynamical thrust u for the dynamic simulation. To be able to apply the proposed models, a further step is needed, the thruster parameter identification.

Parameter identification

Electromechanical parameters of the brushed DC motor are identified by measuring motor voltage, current, and propeller angular speed. These measurements took place outside the water, in order to neglect the influence of the unknown resistive torque and to allow speed measurement. The identified parameters are as follows: R = 2.2⌦, L = 1.5 mH, J m = 0.000562kgm 2 , =  = 0.036Nm/A, k fv = 0.00012Nms, and k fs = 0.00135Nm. Hydromechanic parameters are identified using an ATI Nano 17 multiaxial submarine force sensor [149]. The test rig shown in Fig. 4.6 allows performing static or dynamic force measurements. The identified parameters are as follows: K M = 3.46N/A, K T = 0.00015Ns 2 , and K L = 0.00135Nms 2 . Figure 4.7 shows that the model describes with accuracy the thruster real behavior (maximum error of 8.6% on the higher extremity). For higher thrust forces, the model seems to over-estimate the needed voltage value. This could be explained by perturbations in the water surrounding the thruster due to limited (1300 l) basin dimensions.

Vectorial propulsion modeling

A vectorial thruster is a type of thruster capable of changing the direction of its thrust force. In order to model this type of actuator, we will base our Force sensor Thruster Sliding zone equations in the Flat reconfigurable magnetic coupling thruster (F-RMCT) [START_REF] Vega | A flat design and a validated model for an auv reconfigurable magnetic coupling thruster[END_REF]. Figure 4.8 shows a diagram of the F-RMCT. This system consists of an electric motor attached to an axis. An axis attached to the propeller provides the propulsive force. The propeller axis is orientable with regard to the motor axis thanks to the axis support (fork), which is the link between the frame of the system and the propeller axis. The torque generated by the motor is transmitted to the propeller axis via a magnetic coupling.

The magnetic coupling is made by two identical rotors (Fig. 4.9). Each rotor consists of a circular polar part and four magnets with axial magne- 3 are the frames attached to the motor shaft, the fork and the propeller shaft respectively. ✓ m = (x 0 ,x 1 ) is the motor rotor angle, the rotation angle of the x 1 axis attached to the motor with respect to the reference axis x0 .

✓ h = (ỹ 3 ,ỹ 2 )
is the rotation of the propeller axis, that is, the rotation angle of the y 3 axis attached to the propeller with respect to the reference axis ỹ0 = ỹ2 . ↵ is the reconfiguration angle (angle between z 0 and z 3 ).

Propeller rotor

Bearing

Bearing

Motor rotor

✓ m ! m ⌧ 1 z 1 = z 0 y 1 y 0 z 0 z 2 y 2 = y 0 ⌧ 2 z 3 = z 2 y 3 accz ✓ h ! h ⌧ 3

Mechanical model

To model the mechanism, the recursive Newton-Euler algorithm will be used [START_REF] Bruno | Springer Handbook of Robotics[END_REF]. Thanks to this algorithm, we calculate all the kinematic and dynamic equations. ⌧ 1 , ⌧ 2 , ⌧ 3 are the joint (external) torques between each solid (Fig. 4.10).

The torque transmitted by the motor shaft to the magnetic coupling is:

M( Fmag ) • z1 = accz1
As well for the transmitted torque to the propeller:

M( Fmag ) • z3 = accz3
with Fmag the magnetic force generated by the magnets of the rotors.

There is a planar symmetry between the two rotors, since all the rotation axes pass through the center point O (Fig. 4.10). This plan is defined by O, ỹ0 and x⇤ 0 (median between x1 and x3 ). Thanks to said symmetry we can establish:

M( Fmag ) • z1 = M( Fmag ) • z3 accz1 = accz3 = accz
Even though accz varies according to ↵, ✓ m and ✓ h , its projections on both axis z1 and z3 are equal. ( accz will be used for both equations). Rest is the restoring moment created by the magnetic coupling along ỹ2 when the rotors are not parallel (↵ 6 = 0):

~ Rest (✓ m , ✓ h , ↵) • ỹ2 = Resty (4.22) I
1 ,I 2 and I 3 , are the motor, fork and propeller axes inertia matrices respectively [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]:

I 1 = 2 4 I xx1 I xy1 I xz1 I yx1 I yy1 I yz1 I zx1 I zy1 I zz1 3 5 I 2 = 2 4 I xx2 I xy2 I xz2 I yx2 I yy2 I yz2 I zx2 I zy2 I zz2 3 5
I 3 = 2 4 I xx3 I xy3 I xz3 I yx3 I yy3 I yz3 I zx3 I zy3 I zz3 3 5 (4.23)
The dynamic equations (without friction) developed with the Newton-Euler algorithm are the following, as presented in [START_REF] Chocron | A Validated Feasibility Prototype for AUV Reconfigurable Magnetic Coupling Thruster[END_REF] for a similar RMCT kinematics:

Motor axis in R 1 ⌧ 1 = I zz1 ✓m + Accz (4.24)
With ⌧ 1 the torque generated by the motor.

Fork axis in R 2 ⌧ 2 = ↵(I yy2 + I xx3 cos 2 ✓ h I xx3 + cos 2 ✓ h I yy3 + m 2 ↵z 2 G2 + m 3 z 2 G3 )+ 2 ↵ ✓h cos ✓ h sin ✓ h (I xx3 I yy3 ) + Resty (4.25) With ⌧
2 the torque generated by the servomotor and applied to the axis support mechanism (fork).

Resty is the restoring moment created by the magnetic coupling. z G2 and z G3 are the position of the center of gravity of the axis support and the propeller axis, respectively.

Propeller axis in

R 3 ⌧ 3 = ✓h I zz3 + ↵2 sin ✓ h cos ✓ h (I yy3 I xx3 ) Accz (4.26) With ⌧
3 the joint torque. No load torque is applied since the propeller is removed in our set up. Additionally, the experiments are made in the air, so the hydrodynamic e↵ects responsible for this load are not present. An hydrodynamic model should be applied to compute ⌧ 3 for an underwater propeller model.

Friction

Until now the model did not include the friction in the system. We call m , f and h the frictions torques of the motor, fork and propeller axes respectively. These terms are defined as follows:

m = sign( ✓m ) ms + ✓m mf f = sign( ↵) fs + ↵ ff h = sign( ✓h ) hs + ✓h hf 1 + sign( ✓h ) ✓2 h hf 2 (4.27)
where ms , fs , and hs are dry friction coe cients and mf , ff , and hf are viscous friction coe cients.

hf 2 accounts for hydrodynamic e↵ects, even if these e↵ects are not expected to appear here, it has been included in the model as a placeholder for future experimentation. We can write the complete joint torque equations including the friction terms in the following way:

⌧ m = ⌧ 1 + m (4.28) ⌧ f = ⌧ 2 + f (4.29) ⌧ h = ⌧ 3 + h (4.30)
These torques contain the dynamic behavior of the subsystems, calculated thanks to the Newton-Euler recursive method, and additionally the friction e↵ects.

Magnetic model

Propeller dynamic model

For our prototype we will consider ⌧ h = 0 since there is no driving torque other than accz . Then from (4.26) and (4.30)

Accz can be deduced:

Accz = I zz3 ✓h + sign( ✓h ) hs + ✓h hf 1 + sign( ✓h ) ✓2 h hf 2 (4.31)
which allows us to rewrite (4.28) as:

⌧ m = I zz1 ✓m + sign( ✓m ) ms + ✓m mf + Accz (4.32)
This reduced model is developed to be used in the identification of the dynamic parameters of the system, these parameters are independent of the load ⌧ 3 and of ↵.

Magnetic coupling torque model

We use the reference angles (✓ m and ✓ h ) to establish the magnetic angle ✓. We can define it with the following equation (from Fig. 4.12),

✓ = ✓ m ✓ h (4.33)
as the di↵erence between the angular position of the motor axis and the angular position of the propeller axis. This angle will determine the torque transmitted by the magnetic coupling. Indeed, the torque is created by the attraction force of the magnets, which is a function of ✓ since it regulates the distance between magnets.

Coupling torque accz interpolation

To model the torque transmitted by the magnetic coupling we need to know the variation of the torque with respect to the reconfiguration angle ↵ and the magnetic angle ✓. The magnetic coupling behavior can be modeled analytically doing some simplifications [START_REF] Akoun | 3D analytical calculation of the forces exerted between two cuboidal magnets[END_REF][START_REF] Chocron | Reconfigurable magnetic-coupling thrusters for agile AUVs[END_REF] but to account for its full complexity we use FEM computations [START_REF] Coulomb | Flux3D, a finite element package for magnetic computation[END_REF].

Using two experimental curves (Fig. 4.11) provided by TE2M3 (Flux3D) we can "build" an interpolating function that will describe the variation of the torque with ↵ and ✓. The variation of accz in neutral configuration (↵ = 0) follows the magnetic forces behavior (Fig. 4.12): when ✓ = 0 two magnets of opposite polarity are aligned, creating mutual attractive forces along z 1 and no magnetic torque is created on this axis. When ✓ increases, a magnetic force arises because of magnetic attraction. Halfway between two opposite polarity poles (✓ = 45 ) the force is maximum, then decreases to zero when same polarity poles are aligned (✓ = 90 ). In our application case, ✓ only varies from -45 to 45 . As it was shown in [START_REF] Chocron | Reconfigurable magnetic-coupling thrusters for agile AUVs[END_REF], the overall coupling torque dwindles exponentially with regard to coupling rotors distance along the z 1 axis and conversely. Studying each curve individually, we obtain two interpolating functions (with separated variables ✓ and ↵):

Accz (✓, ↵ = 0 ) = 0.3256 sin 2✓ = g(✓) ( 4 . 3 4 )
and

Accz (✓ = 45 , ↵) = 1 cos(0.876↵) 0.6736 = h(↵) (4.35)
Combining these two functions in an extrapolating formula:

accz (✓, ↵) = 1.75 sign(✓) p g(✓) 2 h(↵) 2 (4.36)
we get one bi-variable function that allows to extrapolate the value of the torque for the di↵erent positions of the ↵ and ✓ angles. Figure 4.13 shows the surface generated by the interpolating bi-variable function (interpolating error < 3%), including the two interpolated curves.

Electro-mechanical model

In order to complete the model of the prototype, the motor electrodynamics are needed. The equation describing the torque generated by the motor is the following [START_REF] Chocron | A Validated Feasibility Prototype for AUV Reconfigurable Magnetic Coupling Thruster[END_REF]: With these equations and using the previously developed dynamic model, we can write the full state-space system equations:

⌧m = L U m 2 L ! m R L ⌧ m (4.
8 > > > > > > > > > > > > < > > > > > > > > > > > > : ✓m = ! m ✓h = ! h ⌧m = L U m 2 L ! m R L ⌧ m !m = 1 I z1 (⌧ m Accz F m ) !h = 1 I z3 ( Accz F h ) (4.38)
4.2. Propulsion modeling 79

Experimental validation

Using the complete system model (with ↵ = 0) as well as the magnetic coupling curve interpolation and identified dynamic parameters values [START_REF] Vega | A flat design and a validated model for an auv reconfigurable magnetic coupling thruster[END_REF], we can model the prototype and simulate it. The model will be compared with experimental results in order to be validated. This simulation will be carried out in open-loop and the results will be compared to the experimental data, obtained using the real prototype Fig. 4.14. This will allow to validate the models and the simulation.

In the prototype, the acquisition interface controls the motor and measures ✓ m with its encoder. ✓ h is measured with an encoder mounted on the propeller rotor shaft. The reconfiguration angle ↵ can be controlled by the servomotor.

Results

Figure 4.15 shows the comparison between simulated and experimental angular speed of motor axis.

Making a zoom on the figure (transient and steady-state areas) we can observe oscillations in the speed, which is caused by the spring-mass behavior of the magnetic coupling and the motor frequency (due to mechanical defects).

We see that the simulation is capable of reproducing this oscillatory behavior in the transient zone (corresponding to the natural frequency of the magnetic coupling). In the steady-state zone we see that the oscillations do not appear in the simulation, this is because the mechanical defects are not simulated. In this area, however, there is a small error (< 2%). Motor speed (rpm) Figure 4.16 shows the evolution of the magnetic angle ✓, thus, the propeller axis behavior. The dynamics of this magnetic angle is well described by the simulation, since we see a good correlation between simulated and experimental magnetic angles (error ' 10% ). We can see as well, that the simulation also reproduces correctly the spring-inertia system oscillation at natural frequency. Also in Fig. 4.17, it is possible to observe that the simulated motor torque describes the behavior of the experimental one during both the acceleration and steady-state phases (error < 8%). These errors can be explained by the quantization error of the incremental encoders (10 2 rad) and the small amplitude of the magnetic angle ✓, which is used to calculate accz . Another factor to take into account are the perturbations generated by the motor as well as the ones due to friction.

t(s)

Periodic disturbances

The frequencies of the system are analyzed in Fig. 4.18 using a Fourier transform based on the motor angular speed, this frequency is the same for the motor and propeller rotor. In this figure we can see two main frequencies: One frequency (' 19Hz) is generated by the rotation of the motor which means that the mechanism is not perfectly aligned. This frequency can also be calculated as:

f mot = ! m 2⇡ = 19.1Hz (4.39)
where ! m = 119.8 rad/s Since this e↵ect is due to imperfections in the system assembly, it can not appear in the simulation unless we need to estimate this e↵ect. The second frequency is due to the natural frequency of the magnetic coupling (15.1Hz from Fig. 4.18). This frequency appears in the simulations since it depends on the mass-spring features of the magnetic coupling. It can be calculated using the following equation:

f mag = 1 2⇡ r K ✓ I zz3 (1 + ↵ 2 ) = 15.14 Hz (4.40)
With K ✓ = 6.54 ⇥ 10 1 N m/rad, the magnetic coupling sti↵ness, which was calculated experimentally as the quotient of the transmitted torque and the magnetic angle ✓.

K ✓ = Accz ✓ ↵ 2 = I zz3 I zz1
where I zz1 = 1.48 ⇥ 10 4 and I zz3 = 1.41 ⇥ 10 4 as identified in [START_REF] Vega | A flat design and a validated model for an auv reconfigurable magnetic coupling thruster[END_REF]. The fact that we find the same frequencies shows that not only the identified inertias are correct but also that the magnetic coupling dynamic model is validated.

Simulation

In order to apply these models and to analyze the behavior of the underwater robot as a whole, a simulator has been developed. This simulator, called EAUVIVE 4 , includes the robot models along with its propulsion system. The simulation has been written in several programming languages, such as MATLAB, Scilab and C++, and it is expandable, meaning that a control technique can be added without much e↵ort.

The EAUVIVE simulator is programmed to represent the behavior of the RSM robot (Fig. 4. [START_REF] Jacobi | Underwater pipeline and cable inspection using autonomous underwater vehicles[END_REF]), the dynamic and hydrodynamic parameters will be based in its structure and characteristics. Furthermore, two propulsive topologies will be implemented in order to compare the di↵erent propulsive topologies under di↵erent working conditions. The simulation results will also allow to perform a preliminary analysis of the propulsive systems. In our simulations and analyzes an AUV with cylindrical hull will be used, which is meant to approximate the shape of the RSM robot. This will allow to calculate the added mass and damping terms using the simplifications proposed in the literature [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF][START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]. The dimensions shown in Fig. In what concerns the added mass e↵ects, we can make some simplifications [START_REF] Fossen | Guidance and Control of Ocean Vehicles[END_REF]. For a three plane of symmetry AUV we can neglect the contribution of the non-diagonal elements of the added mass matrix. Consequently, only the diagonal elements are taken into account.

M a = diag{X u, Y v, Z ẇ, K ṗ, M q, N ṙ} (4.41)
For the cylindrical model of the RSM robot:

X u = 0.1m Y v = ⇡⇢r 2 L Z ẇ = ⇡⇢r 2 L K ṗ = 0 M q = 1 12 ⇡r 2 L 3 N ṙ = 1 12 ⇡⇢L 3
In the case of K ṗ, we can consider that no water is moved for roll motion. For the same type of vehicle, the general form of the added mass contribution to the Coriolis and centripetal e↵ects matrix can be simplified as follows:

C a = 2 6 6 6 6 6 6 4
0 0 0 0 Z ẇw Y vv 0 0 0 Z ẇw 0 X uu 0 0 0 Y vv X uu 0 0 Z ẇw Y vv 0 N ṙr M qq Z ẇw 0 X uu N ṙr 0 K ṗp Y vv X uu 0 M qq K ṗp 0 3 7 7 7 7 7 7 5
(4.42)
Likewise, the cylindrical geometry of the AUV allows to simplify the damping matrix. Only the linear and quadratic diagonal terms are considered [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF].

D v = diag{X u , Y v , Z w , K p , M q , Nr}+ ( 4 . 4 3 ) diag{X u|u| |u|, Y v|v| |v|, Z w|w| |w|, K p|p| |p|, M q|q| |q|, N
r|r| |r|} Furthermore, another simplification can be made if we consider that the AUV speed is high enough to neglect linear terms with respect to the quadratic ones [START_REF] Ferreira | Hydrodynamic modeling and motion limits of AUV MARES[END_REF] (and while the robot speed is very low, none of these effect are significant anyway.). In that case, only quadratic terms are included in the damping matrix, using formulas adapted from [START_REF] Prestero | Verification of a six-degree of freedom simulation model for the REMUS autonomous underwater vehicle[END_REF][START_REF] Prestero | Development of a six-degree of freedom simulation model for the REMUS autonomous underwater vehicle[END_REF]:

X u|u| = 1 2 ⇢ c d A f Y v|v| = Z w|w| = ⇢ c dc r L M q|q| = N r|r| = ⇢ c dc r L 4 4 K p|p| = 0 Where c
d is the axial drag coe cient, which is a function of the Reynolds number [START_REF] Antonelli | Underwater Robots: Motion and Force Control of Vehicle-Manipulator Systems[END_REF]; A f is the vehicle frontal area; c dc is the cross flow drag coe cient. In our case we are analyzing a finless structure, thus rolling drag coefficient, K p|p| is zero. An exception should be made for this term since it is null. Then [START_REF] Guyon | Hydrodynamique Physique. InterEditions[END_REF]:

K p|p| = 2 ⇡ µ R 2 L = 3.77 ⇥ 10 5 N m/rad/s (4.44)
with µ = 0.001 P a s, the dynamic viscosity of the water (20 C).

Considering the very small value of this torque, it can therefore be neglected in our simulations (with regard to the other e↵ects). However, given that our robot has a square superstructure holding the tube, we set an experimentally estimated coe cient K p|p| = 0.38 N m/rad/s. Regarding restoring forces and moments vector, G, its calculation is straightforward if the mass, volume, center of gravity and buoyancy are known.

A list of the added mass and hydrodynamic damping terms (based in Eq. 4.41 and Eq. 4.43) is shown on Table 4 The simulator needs to know now the propulsive topology of the robot. Here we are going to present two di↵erent propulsions and apply them to the structure of the RSM robot. The first one is the widely used fixed propulsion system and the second one is the, relatively recent, vectorial propulsion system. Additionally, the advantages and drawbacks of these systems will be discussed.

Fixed propulsion

Robots with this type of propulsion are powered by several thrusters placed along di↵erent axis in order to combine their thrust and provide six (or less) actuated DOF to the robot. Various architectures within this group can be found, each one with advantages and drawbacks. they share the same principle, which is multi-directional propulsion based on thrust combination.

In this work a four thruster configuration is tested (corresponding to our RSM robot). As shown in Fig. 4.21, two horizontal thrusters are placed at the rear of the AUV and two vertical thrusters are centered symmetrically on the sides of the robot. This configuration provides actuation over the following DOF: Roll and Pitch motion are mechanically stabilized thanks to the relative position of the buoyancy and gravity centers.

The sway is not controlled and not stabilized, thus free motion on y b -axis (drift) is expected to occur.

The fact that more thrusters should be added to the architecture in order to obtain controlled pitch and sway motions, shows a disadvantage of this type of propulsive strategy (lack of control in cartesian space). To control the 6 DOF at least 6 thrusters must be installed in the underwater vehicle, which means a large power consumption, an increased weight and a higher cost. Another important drawback is that in order to turn, the AUV propellers (and motors) must accelerate/decelerate. This implies a lag time between the moment the force is needed and the instant it is generated.

The position of each thruster is given, with regard to R b , by the following vectors (in meters): for the input vector:

u p = 2 6 6 4 u 1 u 2 u 3 u 4 3 7 7 5
Where u 1 , u 2 , u 3 and u 4 are the thruster propulsion forces. The actuation of these DOF is achieved using only one propeller, which is an interesting feature of this propulsive strategy, because it minimizes on board devices.

Vectorial Propulsion

The remaining DOF can not be actuated separately because whether they are coupled or simply not actuated:

Heave (coupled with pitch) Sway (coupled with yaw)

Roll (not actuated)

The limitations of this propulsive strategy must be taken into account in its evaluation. For instance, the angle range depends on the technology carrying out the propulsion and steering task. Previous works [START_REF] Chocron | A Validated Feasibility Prototype for AUV Reconfigurable Magnetic Coupling Thruster[END_REF] indicates that a 30 range is feasible using magnetic coupling technology. 45 could be achieved without too much e↵orts, (even up to 60 ) but in theory nothing but practical implementation prevents from reaching 90 or even more).

The vectorial thruster is placed at the rear of the AUV along the x b -axis as shown in Fig. 4.22. Since the thrust force can be reoriented, vectorial propulsion is obtained. This means very complex 3D movements can be achieved by controlling this vector. Another important advantage of this technology is that we can change the direction of the thrust without inverting the rotation of the propeller. Therefore, losses (in time and energy) caused by acceleration and deceleration are avoided. Nevertheless, a rapid change in the direction of the rotating propeller will create a perturbation in the thrust vector (conservation of angular momentum). Said perturbation has to be rejected by the controller in order to ensure the performance of the propulsion system. This means that the complexity of the controller will increase, making the design of the underwater vehicle more challenging.

The position of the vectored thruster with regard to R b is given by (in meters): The configuration matrix of this propulsive strategy is then: for the input vector: For the sake of the analysis, we will use the simulator in a set of maneuvers. These maneuvers are established in order to have a performance evaluation of the presented propulsion systems. Proposed maneuvers aim to replicate the most common locomotion tasks performed by AUVs during its deployment [START_REF] Issac | Manoeuvring trials with the MUN explorer AUV: data analysis and observations[END_REF][START_REF] Issac | Manoeuvring Experiments Using the MUN Explorer AUV[END_REF]. Since this is a preliminary work, only speed will be the objective criterion for performance of the propulsive strategies.

B = 2
u p = ⇥ u 1 ⇤ ; u v = [u x u y u y ] T ; u 1 = ||u v ||

Normalization of the propulsion:

Since the propellers are not the same in both architectures, a maximum overall total thrust of 20 N is assigned to each propulsive strategy. In the case of the vectorial propulsion, the two servomotors controlling the propeller configuration have been assigned 1 N equivalent each. This value has been estimated using considerations based on the power consumption of the servomotor used in RMCT (Futaba S3010) 5 and RSM thruster devices (Seabotix BTD 150)6 .

Tasks and trajectories

Basic tasks

Each task being driven by open-loop controller, the control law have been designed and tuned by hand with trial and error method (respecting given limitations).

Top Speed:

Top speed is determined for forward motion (along the x 0 -axis). The proposed hull has positive buoyancy, this means that a part of the power consumption in both systems is spent for keeping the AUV at the same depth during the task (depth regulation).

For the fixed propeller architecture, surge force is given by the two rear thrusters, both working at 9.425 N. Depth regulation is obtained by applying a downward thrust force of 0.575 N on each vertical thruster. Top speed is then 1.22 m/s.

In the case of the vectorial propulsion strategy, forward motion and depth regulation are achieved by orientating the thrust vector on pitch axis (✓ 1 = -7 ). Since the thrust force is 18 N (20 N minus 2 N for servomotors), the resultant speed is slightly below to the previous configuration: 1.19 m/s.

Dive Speed:

This simple task shows diving capabilities of the AUV equipped with the proposed propulsive strategies. Each type of propulsion requires a di↵erent method to achieve downward motion. This particular maneuver is focused only in finding the maximum dive speed without taking into account nor moderating any motions in the horizontal plane.

For the fixed strategy, the vertical thrusters pull the vehicle downwards with a thrust force of 10 N each. In this mission, the drag forces along z b are higher. This is why the dive speed is 0.515 m/s, lower than forward speed.

For the vectorial propulsion strategy, the descent motion is achieved by pitching the vectorial thruster ( v = -30 ), allowing the AUV to rotate downwards. Nevertheless, due to the restoring moment of the body, a pure vertical descent is not possible and it is always coupled with a forward displacement (on x 0 -axis) as shown in Fig. 4.24. In this conditions, the dive speed is 0.641 m/s, which is significantly better than the one achieved by the fixed propulsion system.

Circular Speed:

Turning capability is an appropriate way to determine the maneuverability of an AUV. This task aims to determine the highest tangential speed achievable by the AUV while following a 5 L radius circular trajectory.

For the case of the fixed propulsion strategy, vertical thrusters have to be active to counteract buoyancy forces. Vertical thrusters are set to 0.3 N each while horizontal thrusters are set to 18,375 N and 1.025 N.

The speed achieved with this strategy is 0.992 m/s. Figure 4.25 shows the circular trajectory for both strategies.

In vectorial propulsion, a vertical component of the thrust vector must be applied in order to cancel buoyancy forces (✓ 1 = -5.2 and 1 = 26.5 ). The achieved tangential velocity of the AUV with vectorial propulsion is 0.996 m/s, which is slightly better than the fixed thruster system.

Mission-oriented tasks

1. Diving in a confined space:

The motion will be limited by a maximum displacement in the horizontal plane (descent into a well), this allows to evaluate the propulsion strategy in a realistic mission.

Available diameter to perform the maneuver will be limited to 5 L (Fig.

4.26).

Since the fixed propeller configuration has two vertical thrusters placed near the center of gravity, this task is straightforwardly performed. In fact, the AUV descends along a vertical line (as for dive speed task).

The dive speed of the AUV is 0.515 m/s.

Because of coupled forward displacement seen in the diving task, the vectorial propulsion needs to follow a spiral trajectory as shown in Fig. Due to a better orientation of the robot, drag forces are lower than in the case of the previously discussed propulsive strategy. This advantage has a positive e↵ect on the AUV dive speed, which is 0.555 m/s. This strategy gets better results despite of the higher traveled distance involved by the spiral trajectory.

Horizontal slalom:

A more dynamic insight of the agility of an AUV is given by its performance in a slalom trajectory around gates. For this mission, a tra- The vectorial thruster configuration is: It can be noticed that the vectorial propulsion exhibits better performances for the two missions that require a depth variation (dive speed and vertical slalom). This superiority over the fixed propulsion is due to the fact that the vectorial one uses its full power in all directions while the other needs to share its power between di↵erent directions.The vectorial strategy improves the isotropy of the propulsion system.

u 1 = 18 ✓ 1 = 5
One must notice than the dynamics of thruster has not been taken into account (accelerations/deceleration and gyroscopic e↵ects), nor the power consumption. If it had, then the vectorial propulsion would have clearly be favored because of the energy and time required to achieve the variations of thrust forces.

Conclusion

In this chapter, the dynamic model of an AUV including the hydrodynamic e↵ects has been studied. This model has been adapted to the RSM robot, a prototype used as a testbed and reference in IRDL laboratory.

The models of two propulsive technologies have been presented as well. The first model describes the behavior of a fixed thruster, the Seabotix BTD150, a popular o↵ the shelf thruster. The second model describes a magnetic coupling vectorial thruster, which is based on RMCT prototype developed in IRDL laboratory. This prototype allows to test an enabling technology for the concept of vectorial thruster.

Finally, an AUV simulator has been developed and a brief comparison between fixed and vectorial propulsive topologies have been carried out. The simulator will allow to evaluate and study the behavior of the AUV.

Chapter 5

Control and estimation

After having modeled the robot, the next steps in the study of the underwater vehicle are the control technique and estimation methods used on it. These are the key elements to simulate the behavior of the robot.

Given that we have a very precise model of the robot, it seems logical to make intensive use of it. The chosen method is the computed torque (or feedback linearization), a nonlinear control method that explicitly uses the kinematic and dynamic model of the robot. Using the limits of this control method as a starting point, the controllability of underwater robots will be discussed as well.

An extended Kalman filter will be used in order to estimate the signals needed for the controller. The implementation of the control and estimation methods will be done using the ROS (Robotic Operative System) framework.

Torque computation

Principle

This control method is broadly used to design feedback controllers for AUVs [START_REF] Millán | Formation Control of Autonomous Underwater Vehicles Subject to Communication Delays[END_REF][START_REF] Yang | Robust geometric formation control of multiple autonomous underwater vehicles with time delays[END_REF]. The method straightforwardly uses the kinematic and dynamic models of the robot. This characteristic o↵ers a clear view of the internal workings of the controller, which will allows us to draw conclusions about controllability and learn about the robot in general. The idea behind the computed torque method is to algebraically transform nonlinear systems into (fully or partly) linear ones, so that linear control techniques can be applied (Fig. 5.1).

This control di↵ers from conventional linearization method as lineariza- tion is achieved by exact state transformation and feedback, rather than by dynamic linear approximations. Computed torque control is based on the idea of controlling a system by generating a control input that cancels out the nonlinearity of the dynamic model and then applies a correction to the therefore linearized system.

The control method used here consists in a kinematic and a dynamic control level (Fig 5 .2). The kinematic level generates the AUV reference velocity ⌫ ad which will make an arbitrary point e of the robot follow a desired trajectory ⌘ ed . In order to calculate this speed, it uses the information of the velocity of the desired trajectory ⌘ed and a correction term proportional to the error in position and orientation.

The dynamic level computes the needed wrench to be applied to the AUV (linearization) such that it follows ⌫ ad . It also adds a correction term proportional to the velocity error, K p . This method is quite e cient as long as the propulsive architecture is able to generate the calculated wrench ⌧ a and the model is very precise.

Kinematic level

The kinematic level is in charge of the calculation of the correct robot velocity ⌫ in order to make the point e converge toward the reference trajectory ⌘ ed . To develop the corresponding control law, we start by determining the velocity of the tracking point e.

⇢ ⌫ 1e = ⌫ 1 + ⌫ 2 ⇥ re ⌫ 2e = ⌫ 2 in R b (5.1) ⇢ ⌘1e = J 1 (⌘ 2 ) ⌫ 1e ⌘2e = J 2 (⌘ 2 ) ⌫ 2 in R 0 (5.2)
Where the position vector of e in R b is:

re = [✏ x , ✏ y , ✏ z ] T (5.3)
Indeed, in Eq. 5.1 we calculate the velocity of e using rigid body kinematics.

We can re-write Eq. 5.1 in the following way: From the previous equation we can see that matrix T is the link between the robot velocity and velocity of the tracking point.

⌫ e =  ⌫ 1 + ⌫ 2 ⇥ re ⌫ 2 = 2 6 6 6 6 6 6 4 1 0 0 0 ✏ z ✏ y 0 1 0 ✏ z 0 ✏ x 0 0 1 ✏ y ✏ x 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 3
Taking into account Eq. 5.4, we can turn Eq. 5.2 into:

⌘e = J(⌘ 2 ) ⌫ e = J(⌘ 2 ) T ⌫ (5.5)
allowing us to determine the relation between the point e velocity ⌘e and the robot velocity ⌫:

⌫ = T 1 J(⌘ 2 ) 1 ⌘e (5.6)
Based on this relation, and using the desired trajectory ⌘ ed and its derivative ⌘ed , we can develop the following kinematic control law [START_REF] Alonge | Trajectory tracking of underactuated underwater vehicles[END_REF]:

⌫ ad = T 1 {J 1 [ ⌘ed + ⇤ e kin ]} (5.7)
With ⇤ > 0 the gain matrix of the proportional kinematic controller (diagonal) and e kin = ⌘ ed ⌘ e the kinematic (position + orientation) error. When the kinematic error e kin is zero, we see that Eq. 5.7 turns into Eq. 5.6. Indeed, when the controller manages to cancel the error, the feedforward control alone drives the robot in order to continue in the tracked trajectory.

Additionally, if we replace ⌫ in Eq. 5.5 for the expression of ⌫ ad from Eq. 5.7 we obtain the following dynamic error equation:

ėkin + ⇤e kin = 0 (5.8)
which shows that the kinematic control law makes the robot converge exponentially toward the desired trajectory.

Dynamic level

Obviously, the desired velocity of the robot ⌫ ad can not be correctly achieved with only kinematic control. Indeed, the robot needs to fight against the dynamic e↵ects acting on itself in order to precisely generate this velocity. As seen in the previous chapter, these dynamic e↵ects are a consequence of the rigid body dynamics and caused by the water surrounding the vehicle.

The dynamic layer of the controller takes in charge the compensation of all the dynamic e↵ects on the robot and the generation of the needed torque ⌧ a that will make the AUV to follow ⌫ ad , that in its turn, will make the point e follow the desired trajectory.

Based on the dynamic model of the robot described in Section 4.1.2:

⌧ = M ⌫ + C(⌫)⌫ + D(⌫)⌫ + G (5.9)
the following dynamic control law is created (in R b ) [START_REF] Alonge | Trajectory tracking of underactuated underwater vehicles[END_REF]:

⌧ a = M[ ⌫ad + K p e dyn ] + C(⌫)⌫ + D(⌫)⌫ + G (5.10)
with e dyn = ⌫ ad ⌫, the dynamic error. From the previous equation we see how all the terms of the dynamic model of the robot are present, plus a proportional (K p > 0) term for error correction. If applied, the calculated torque ⌧ a will compensate the hydrodynamic e↵ects on the robot and steer the velocity ⌫ towards the desired velocity ⌫

ad . If we replace ⌧ from Eq. 5.9 by its expression from Eq. 5.10 we obtain the following equation:

ėdyn + K p e dyn = 0 (5.11)
which shows that the non-linearities compensation makes the AUV converge exponentially toward the desired robot velocity ⌫ ad . Given that both e kin and e dyn converge exponentially, the controller as a whole (kinematic and dynamic) is able of make an arbitrary point of the AUV to track a bounded space trajectory.

Thrust allocation

Torque computation method is capable of calculating the needed ⌧ a to apply on the robot in order to make the tracking point follow a desired trajectory. However, it has no information about how to create said wrench. In order to calculate the force on each thruster to generate ⌧ a we use the thrust allocation method [START_REF] Fossen | A Survey of Control Allocation Methods for Ships and Underwater Vehicles[END_REF].

The thrust allocation method solves the following equation:

⌧ a = B u p
where B is the thrust configuration matrix, as seen in Chapter 3. u p is the thrust forces vector, it contains the force generated by each thruster of the robot.

Given ⌧ a , we can calculate the needed force on each thruster calculating:

u p = B 1 ⌧ a (5.12)
Evidently, this equation is only valid if B is a square matrix. When this matrix is not square, its pseudo-inverse [START_REF] Bruno | Springer Handbook of Robotics[END_REF] is used:

u p = (B T B) 1 B T ⌧ a for m n (5.13) u p = B T (BB T ) 1 ⌧ a for m  n (5.14)
Where m and n are the number of lines and columns of B, respectively.

Space reduction

The given equations are specifically valid for fully (or over) actuated robots. Indeed, in the creation of the torque ⌧ a , the dynamic control assumes that all the degrees of freedom in Cartesian space are actuated, which is not true for underactuated robots. A way of adapting this control method to any kind of vehicle is needed, otherwise its application will be restricted to holonomous robots only. The problem we are trying to solve here is, summing up, how to use this technique with underactuated robots.

The approach taken here will be a practical one: the robot will only try to follow the degrees of freedom of ⌘ ed attainable by the robot given its propulsion capabilities.

An underactuated robot (incapable of creating all DOF of ⌧ a independently) will only be able to follow a restricted number of trajectories. Indeed, an underactuated ⌧ a will result in an underactuated ⌫ (it will not be able to control all its DOF independently), which in turn will not be able to generate all DOF of ⌘e in R 0 (Eq. 5.5). The reduced actuation space reduces the reachable space of the robot, making it not controllable on all trajectories.

Evidently, this space reduction implies as well a modification on the controller equations. The matrices need to be reduced according to the actuated space and reachable space reduction. Additionally, a drift and disturbance vector have to be added to both controller laws. These vectors take into account the contribution of the non actuated DOF over the actuated ones. The first one accounts for the coupling elements in matrix T, while the second one accounts for the e↵orts on the actuated space created by the non actuated DOF of ⌫. Indeed, the product (C(⌫) + D(⌫)) ⌫ in the dynamic model will allow the non actuated terms of ⌫ to create e↵orts on the actuated DOF of ⌧ a , thanks to the coupling terms of these matrices. This means that even if these DOF are not controllable, it is possible to control their coupling e↵ects in the actuated space of the robot.

To illustrate these space reductions, we will apply the computed torque technique to both studied underactuated robots: the fixed-thrusters and the vectorial-thruster RSM robot. We will make these two robots to follow a common trajectory, which will allow to compare the set up of the reduced space and analyze their characteristics.

Evaluation trajectory

The "dive in a confined space" trajectory, shown in section 4.3.2.2, will be used. It allows to evaluate the pertinence of the controller, the application to under actuated propulsive topologies and, additionally, the propulsion strategy performance in a particular mission.

To follow this trajectory, the vehicle starts moving horizontally and then dives following a vertical line. The control technique will make the AUV follow only the position of the trajectory, leaving the orientation of the vehicle uncontrolled (three DOF for task space to match the three DOF actuation space of vectored propulsion).

Both propulsive architectures will follow the same trajectory using the same control technique. However, the way of following the desired trajectory will be di↵erent for each architecture. Additionally, in order to compare the performance of the two propulsive systems, the energy consumption will be measured. This will give us a general idea of the e ciency of each strategy.

In order to follow this common trajectory, the command laws must adapt to the di↵erent propulsive topology. In the next sections we will see how.

Kinematic control law reduction

The reduced kinematic control law is described by the following equation:

⌫ ad = T 1 {J r 1 T (⌘ 2 )[ ⌘ed + ⇤(⌘ ed ⌘ e )] [v nc ] T } (5.15)
where [v nc ] T are the drift terms (non actuated linear motions) in R b and T is the kinematic transformation matrix that brings the speed from R b to the tracking point e.

The matrices are reduced stripping out the lines corresponding to the unused degrees of freedom of ⌘ ed and the columns corresponding to the non actuated elements of ⌧ in R b . The non actuated elements of ⌧ are determined by the B matrices of both propulsive topologies, which will determine what elements of ⌫ ad they are capable of generating. With this information and using Eq. 5.5, we can determine the reachable space ⌘ ed . In our first example (Fig. 5.3) the robot can generate surge, heave, roll and yaw. With these four degrees of freedom and with the position of e: re = [0.3, 0.0, 0.1] T (5.16) it is capable to follow the position of ⌘ ed . Additionally, it can follow the orientation , which will be used in our calculations as a way of keeping a squared T matrix.

⌫ ad = [u w p r] T v nc = [0 v 0 0] T ⌘ ed = [x ed y ed z ed ed ] T T = 2 6 6 4
1 0 0 ✏ y 0 0 ✏ z ✏ x 0 1 ✏ y 0 0 0 1 0 3 7 7 5 ⇤ = 10 ⇤ I 4⇥4 Vectorial propulsion ⌫ ad = [u q r] T v nc = [0 v w] T ⌘ ed = [x ed y ed z ed ] T T = 2 4 1 ✏ z ✏ y 0 0 ✏ x 0 ✏ x 0 3 5 ⇤ = 10 ⇤ I 3⇥3 5.1.

Dynamic control law reduction

Similarly, the dynamic control law is reduced using the following equation:

⌧ a = M r [ ⌫ ad + K p e] + C r (⌫)⌫ + D r (⌫)⌫ + G r + d(⌫) (5.17)
Where M r , C r , D r , G r are the reduced dynamics matrices and d(⌫) is the disturbance vector. For the dynamic control law, the matrix reduction is made only taking into account the reduced actuated space. Indeed, in Eq. 5.17, the reduction in the propulsive capabilities of ⌧ a only a↵ects the generated DOF of ⌫. The reduction is made then stripping out the lines and columns corresponding to the non actuated DOF of ⌧ a . For the fixed propulsion the matrices are :

M r = 2 6 6 4 m + X u 0 0 0 0 m + Z ẇ 0 0 0 0 I bx + K ṗ 0 0 0 0 I bz + N ṙ 3 7 7 5
with I bx , and I bz the diagonal components of the inertia matrix.

K p = I 4⇥4 G r = J r 1 (⌘ 2 )[0 mg 0 ⇢gr] T ⌧ a = [X Z K N] T
And for the vectorized propulsion :

K p = 1 3⇥3 G r = J r 1 (⌘ 2 )[0 0 ⇢gr] T ⌧ a = [X M N] T

Thrust allocation reduction

The next step in controlling the vehicle is to generate ⌧ a with the thrusters. To do so, the AUV thrusters must produce an adequate thrust to comply with:

⌧ a = Bu p (5.18)
To calculate the needed propulsion forces in each thruster, equation (5.18) must be inverted. We need to reduce the B matrix for each propulsive system to their respective actuated space. The reduction of the thrust configuration matrix B r is obtained, as for the dynamic control law matrices, by stripping out the lines of B corresponding to the non actuated elements of ⌧ . The amount of columns of this matrix will be determined by the quantity of thrusters used in the propulsive topology and therefore will not be reduced.

In this case, given that the B r matrices are square thanks to the reduction, there is no need to use the pseudo-inverse.

For the fixed propulsion system, B r is:

u p = B 1 r ⌧ a = [u 1 , u 2 , u 3 , u 4 ] T (5.19)
For the vectorial propulsion, we can rearrange the B matrix (Fig. 4.3) and turn it into a matrix. With this change, in the equation 5.18, u p contains the components of the thrust vector in R b (and not the module u 1 ). This is useful in our calculations since it turns B from a vectorial to a matrix expression, more adapted to calculate u p using the inverse :

Torque computation 114

In order to evaluate the performance of the studied propulsive strategy we will use the convergence of the vehicle towards the desired trajectory and the energetic e ciency.

Results

To evaluate the convergence, the quadratic tracking error norm is analyzed:

||e pos || = p (x e x) 2 + (y e y) 2 + (z e z) 2 (5.21)
where x e , y e and z e are the position coordinates of ⌘ ed . Fig. 5.8 shows this error for the fixed and vectorial propulsive systems. The error for the fixed thruster system converges rapidly towards zero. The vectorial thruster AUV error takes longer to converge due to the sharp turn of the desired trajectory, which forces the AUV to change its orientation, before converging again.

To evaluate the energetic e ciency of the systems we calculate the electrical instantaneous power for each thruster: where P is the instantaneous power (watt). V is the thruster voltage (in V) and A is the motor current (in A), which were obtained with the steady-state thruster model [START_REF] Vega | AUV Propulsion Systems Modeling Analysis[END_REF]:

V = R K M u +  sign(u) s |u| K T and I = u K M
The total power is obtained by adding each thruster power (Fig. 5.12). The energy consumption is calculated by integrating over time. For the fixed propulsion system the consumed energy is 2398 J and for the vectorial system 922 J. This comparison indicates that the vectorial thruster was 2.6 times more energy e cient for this mission. This is because the vectorial propulsion robot flips down in order to comply with the task, allowing the use of a single thruster instead of four. Indeed, diving head down generates less hydrodynamic drag, which makes the vectorial propulsion more e cient for this kind of trajectories, even if it generates more transient errors (Fig.

5.8).

The used control technique has been successfully adapted to two di↵erent propulsive technologies in an automatic way, which shows the flexibility of the method and its applicability to a great number of robots. These features are particularly interesting in the optimization of the capabilities of underwater robots, since they allow to analyze their performance using a common benchmark.

Controllability

The computed torque method o↵ers good adaptation capabilities, however, it does not mean that it can be applied to every robot to follow any trajectory. Indeed, the space reduction, which is the key to the the adaptation of the method to di↵erent types of robot, is also a limiting element of the method.

In the application of the control method, two matrices play a key role in the success of the controller: the T and B matrices. The controller will be able to follow the desired trajectory depending on the shape and conditioning of these matrices.

T matrix

The T matrix, which intervenes in the kinematic control law, determines which velocities will be created in the tracking point e. The velocities of this point, are a function of the robot velocity at the origin of R b , and depend on the rigid body kinematics : The matrix T expresses then the rigid body kinematics of the robot. From its shape we can clearly see how the linear velocities on e (in R b ) are created by the linear and angular velocities of the robot on R b . This information is used by the kinematic control, through the inverse of T (Eq. 5.7), to define which degrees of freedom of R b will be needed to follow a given trajectory. In a fully actuated robot, all the degrees of freedom in R b (and so, in R 0 ) are actuated. Therefore, no reduction of the matrix T is needed and all possible velocities of e can be created. Mathematically, it means that for any value of ✏

⌫ e = 2
x , ✏ y and ✏ z , T will be invertible. However, when we use the same control method on an underactuated robot, things are di↵erent.

In an underactuated case, we will reduce the columns of the T matrix stripping out the ones corresponding to the non-actuated velocities in R b . The lines of the T matrix will be reduced as well, taking into account that in order to calculate the inverse we need to obtain a square matrix. The deleted lines of T will be those corresponding to the unreachable and undesired velocities in e.

The reduced T matrix, even if it is square, will not always be invertible. The invertibility of the matrix will depend, in this case, greatly of the position of e. We can use the reduced T matrix of the fixed-RSM robot to exemplify this: Here, the actuated degrees of freedom are u, w, p and r, whereas the wanted and reachable degrees of freedom are u e , v e , w e and p e . These degrees of freedom are those of the desired trajectory projected in R b . From the reduced matrix we see that its invertibility will depend on the position of e. Indeed, if the values of ✏

x and ✏ z are zero, the inversion of T is no longer possible, making the control unfeasible.

The fact that matrix T is invertible, does not mean, however, that the control will be successful. For some configurations, even if the coordinates of e are non-zero, the controller is still not able to converge toward the desired trajectory. We obtain this behavior when elements of ⌘e (Eq. 5.5) are generated only thanks to the laws of solid kinematics. In our example, it is the case of the second line of the reduced T matrix, where angular velocities p (roll ) and r (yaw ) are used to create linear velocity v e (sway) in R b . In R 0 , this will make e describe an arc of circle, which can be used to follow a linear trajectory only for a brief period of time, after which the linear velocity in R b is no longer useful in R 0 . It means that the linear velocities created thanks to a rotational velocity may be only helpful to create small and brief corrections in the trajectory of e.

To summarize, the reduction of the lines of T (given that the columns are determined by the actuated space) to define the reachable space is ruled by two factors. The first one is the invertibility of this matrix, it has to be squared and with lines and columns linearly independent, which depends on the position of e. Secondly, the creation of linear velocities by the rotation motions (p, q and r) is limited. This means that the DOF of the operational space corresponding to these linear motions have to have a reduced variation.

Several possibilities to determine the controllability of AUVs on trajectories have been considered throughout this work. The kinematic compliance of the AUV with the trajectory can be checked by anticipation method. This method consists of placing successively on each trajectory position/orientation and testing the compatibility between task and actuated space (from Eq. 5.5). This method has been tried with some success but has not reached its conclusion to be mentioned here.

B matrix

The B matrix is also a critic factor in the success of the controller. It is in charge of determining how the ⌧ a control wrench will be created. Obviously, for a given ⌧ a that the robot is not capable to generate, the controller will not be able to make e converge toward the desired trajectory. The thrust allocation method is the stage to the control wrench generation. This means that even if the controller correctly calculates ⌧ a , an incorrect thrust allocation can create a failing control.

As seen in Section 5.1.4, the thrust allocation method uses the inverse (or pseudo-inverse) of the B matrix in order to calculate the force that each thruster must generate. This establishes the first constraint of this matrix: it must be invertible. A non invertible matrix means that the robot is not capable of creating, with its propulsive topology, the demanded wrench ⌧ a .

The B matrix, when multiplied by the u p vector, must generate the elements of ⌧ a needed to follow the trajectory. If the product B u p fails to do so, the controller will not be able to achieve its mission. As explained before, this matrix represents the propulsive configuration of the robot, each column corresponds to the contribution of a thruster to the creation of ⌧ a . The number of columns of this matrix represents then, the number of thrusters.

Each thruster has its own coordinate frame, the convention used to define the orientation of this frame with regard to R b is the same as the one used to define the orientation of R b with regard to R 0 (Eq. 5.25). This Euler ZYX convention uses three successive rotations: i around zb , ✓ i around ỹ 0 b and i around x 00 b . The position of each thruster in R b is given by a vector Pi = [P ix , P iy , P iz ] T . With these elements we can determine the homogeneous transformation matrix :

H i = 2 6 6 4
c✓ i c i s i c i + c i s✓ i s i s i s i + c i c i s✓ i P ix c✓ i s i c i c i + s✓ i s✓ i s i c i s i + s✓ i s i c i P iy s✓ i c✓ i s i c✓ i c i P iz 0 0 0 1 3 7 7 5
(5.25) Where c(•) and s(•) represent trigonometric functions cos and sin respectively.

The force of each thruster follows, by convention, the x axis of its frame. This means that when using the rotation matrix (Eq. 5.25) to calculate the components of this force in R b , only the first column of the rotation matrix is used. The orientation of the thrust vector is then independent of i . Taking this into account, each thruster is represented in B, as follows: From the above equation, we see that if for some reason one of the lines of the thrusters contributions are zero, the propulsion system will not be able to actuate the corresponding degree of freedom. Such a situation may arise when the orientation of the thruster is perpendicular to the degree of freedom in question or when the moment arm is inexistent.

Clearly, the fact that one thruster can generate components in all six degrees of freedom does not mean it can e↵ectively control them. Indeed, more important than generating forces in a degree of freedom is the capability of independently controlling it. In order to generate independently several elements of ⌧ a we need to add several thrusters (columns) as well. These thrusters must be carefully positioned and orientated to avoid creating unwanted redundancies and to obtain an e cient contribution to the creation of ⌧ a .

As seen from the creation of T and B, the initialization of these matrices could be a complicated task. From T, the positioning of the tracking point e determines the correct calculation of the kinematic law. From B, the quantity, positioning and orientation of the thrusters will dictate if the dynamic control law is applicable or not. This is due to the fact that, after the space reduction, the (pseudo) inverse of B r must exist. If it does, then u p can be calculated to generate ⌧ a , otherwise the robot is not capable of generating ⌫ ad and therefore can not follow ⌘ ed . Additionally, even for viable matrices, it is a hard task to clearly determine which configuration will be the more e cient to follow the desired trajectory. Indeed, in order to correctly set up a robot, we need to know where to place e, how many thrusters we need to use, where to position them and how to orientate then. Given the immense number of possibilities, finding the optimal configuration of a robot (for a given task) is a daunting task (likely to be the Non-Polynomial complete kind of problems). The exhaustive research of all the possibilities not being practical, a methodological cost-e↵ective approach is needed.

Kalman filter

Once the control method has been established, we need to find a way to properly feed it with the information it needs to operate. Indeed, in order to work, the computer torque method needs to know the values of positions and velocities ⌘ 1 , ⌘ 2 , ⌫ 1 and ⌫ 2 . This information is, however, not always directly available.

The RSM robot, for instance, is equipped with a depth sensor and an inertial measurement unit (IMU). These two sensors provide the following data: ⌫1 , ⌫ 2 and ⌘ 2 (but not ⌘ 1 and ⌫ 1 ), which is not su cient to the controller. Since the control method needs the complete state of the robot to properly work, the remaining data needs to be at least estimated. The chosen method of estimation is the widely used Kalman filtering.

Principle

A Kalman filter is a recursive algorithm that, using measurements over time and a dynamic model, generates an optimal estimation, from a statistical point of view, of unknown variables. The application of the Kalman filter assumes that both the system and the measurements are a↵ected by Gaussian noise and that the state representation of the system is linear [START_REF] Bruno | Springer Handbook of Robotics[END_REF]. Our problem being non-linear, we have to use an algorithm adapted to our situation. Said algorithm is the Extended Kalman Filter (EKF) [START_REF] Bruno | Springer Handbook of Robotics[END_REF].

Extended Kalman filter

The extended Kalman filter is a version of the Kalman filter which extends its application to systems in which the state model and/or the observation model are non-linear.

In order to use this filter to estimate the state vector, the state model is described in state-space notation by a non-linear vector:

ẋ(t) = f [x(t), u(t), v(t), t] ( 5 . 2 7 )
Where f [•, •, •, •] is a non-linear mapping of state and control input into state transition. x(t) is the state vector, u(t) is the control input, v(t) is a variable describing the uncertainty in the evolution of the state caused by non modeled phenomena (Gaussian noise) and t is the time.

Similarly, the observation model is described in state-space notation as follows:

z(t) = h[x(t), u(t), w(t), t]
Where h[•, •, •, •] is also a non-linear mapping of state and control input to observations and w(t) is a variable describing uncertainty in the observation caused by sensor limitations (Gaussian noise).

This filter is, however, mostly used in discrete-time, which requires a discrete-time version of the models:

x(k) = f [x(k 1), u(k), v(k), k] ( 5 . 2 8 ) z(k) = h[x(k), w(k)] (5.29)
Where k is the instant of calculation. The estimation of the state made by the EKF proceeds in two stages:

Prediction. In which a prediction x(k|k 1) of the state at the instant k and its covariance P (k|k 1) are calculated. These predictions are based on all the information until the time k 1 and are calculated in the following way:

x(k|k 1) = f [x(k 1|k 1), u(k)] P (k|k 1) = rf x (k 1)P (k 1|k 1)r T f x (k 1) + Q(k 1)
where x(k 1|k 1) and P (k 1|k 1) are an estimate of the state x(k 1) and covariance P (k 1) at the time k 1 based on all the observations made up to and including k 1. Q(k 1) is a known covariance and rf

x is the Jacobian of f . Update. In which an observation z(k) is made at the time k and the updated estimate x(k|k) of the state x(k) along with the updated estimate covariance P (k|k) is calculated as follows:

x(k|k) = x(k|k 1) + W (k){z(k) h[x(k|k 1)]} P (k|k) = P (k|k 1) W (k)S(k)W T where W (k) = P (k|k 1)r T h

x (k)S 1 (k) and

S(k) = R(k) + rh x (k)P (k|k 1)r T h x (k)
with rh x the Jacobian of h and R the known covariance of the measurement noise.

Application

To apply this estimation method to our robot, we take into account that Eq. 5.29 can also be written as:

5.3. Kalman filter 123 x(k) = f [x(k 1), u(k), k] + v k z(k) = h[x(k)] + w k where f [•, •, •],
is the discretized model of the underwater robot. v k and w k are the process noise and the measurement noise (both Gaussian) and z(k) is the measurement a↵ected by the noise w k . For our robot, the discretized model can be calculated as:

f [x(k 1), u(k), k] = ⌫ k 1 + T e {M 1 [⌧ k 1 (C + D) ⌫ k 1 G]} (5.30)
where T e is the sample time, and k 1 indicates the instant of time prior to the calculation instant k. Matrices C and D are a function of ⌫ k 1 , but for the sake of clarity in the expression, this has not been written.

The observation model z(k) has the elements given by the IMU, and depth sensor. Given that the IMU measures ⌘ 2 , ⌫ 2 and ⌫1 , we can integrate this last vector in order to obtain ⌫ 1 :

⌫ 1 = ⌫ 1 (k 1) + T e ⌫1 (k 1) (5.31)
The observation model will be then: The Jacobians used in the calculation of the prediction and update stage are calculated using a complex step di↵erentiation method, as described in [START_REF] Nakhaeinejad | Observability analysis for model-based fault detection and sensor selection in induction motors[END_REF][START_REF] Cao | Complex step Jacobian[END_REF].

z(k) = 2
In order to test the kalman filter in our robot, we will ask the controller to follow a spiral trajectory: 8 <

:

x e (k) = 0.5 cos(v spiral • k) y e (k) = 0.5 cos(v spiral • k) z e (k) = 1 + v spiral • k (5.33)

Validation 124

Where v spiral = 0.5 m/s is a constant speed, used as a parameter to calculate the reference trajectory. x e (k), y e (k) and z e (k) are the coordinates of the spiral in R 0 at the instant k. The RSM robot, equipped with the fixed thruster topology will be used. After applying the corresponding space reduction to the control laws, the controller will use the values of x(k|k) to determine the thrust vector u p . Figure 5.10 shows the results of the estimation. In this figure, we can see the components of the state ⌫ 1 , ⌫ 2 , ⌘ 1 and ⌘ 2 as well as their estimated counterparts, designated with the symbol (•). We can see how during the time of the mission, the estimated values match the ones of the state. This allows the controller to converge towards the desired trajectory (Fig. 5.11) based solely in the estimated state, which validates the e cacy of the estimation method as well as its pairing with the controller.

Validation

Once we have determined the techniques to control and estimate the degrees of freedom of the robot, we need to verify if they work properly on the vehicle. Indeed, even if the techniques work in simulations using higher level programming languages such as MATLAB, we need to test it on the real hardware of the robot. This will allow us to validate the feasibility of these techniques in more realistic conditions.

ROS programming

The system used to program the control and estimations techniques is ROS (Robot Operating System) [START_REF] Quigley | ROS: An Open-Source Robot Operating System[END_REF]. ROS consists of a series of software frameworks that facilitate the creation of software for robots. This system provides capabilities typical of operating systems such as software abstraction, libraries, package managing and device drivers.

Programming using the ROS framework can be done through C++ and Python languages. This is a great advantage, since C++ is a language renowned for its e ciency, which is convenient for the not so powerful hardware of our robot.

The programs created within the ROS framework, as well as the data flux are grouped in the two following categories: Nodes: these are the software written by the user. These programs typically take data from the robot sensors (or other nodes), process it and produce new useful data.

Topics: they transport the information created by nodes. The nodes asynchronously publish (write) and retrieve data from these entities.

Control architecture

The control architecture programmed using ROS is the one shown in The data created by Localization and Path planner are fed to a node called Submarine Controller, which is in charge of calculating the force on each thruster in order to follow the desired trajectory (applying the torque computation method of section 5.1). This node contains both the computer torque controller and thrust allocation methods.

Finally, the calculated forces on each thruster are taken by the Submarine node. Which applies the forces to the simulation or on the real robot.

The last node, called UWSim is there only to provide a 3D visualization of the robot, therefore, it does not intervene in other processes of the robot.

Software-in-the-loop

Before applying the control method, a series of steps need to be taken. These steps, called "-in-the-loop" methods, are necessary to test and assure the viability of the control technique before using it in the real vehicle.

The preliminary method we obtained with Matlab simulation in the previous sections is sometimes called "Model in the Loop (MIL)" but it is not a true test loop since it uses high-level language programs, not representative of what happens in embedded systems. Indeed, in the process of adapting the control method from a high level language as Matlab to the real robot there might be errors. These errors, due to specificities of the programming language or the hardware need to be addressed in a systematic way.

The first of these methods, called "software-in-the-loop" (SIL) allows to test and debug the code written for the microprocessor of the robot. It uses a simulator of the real vehicle and the controller written in the target language, both running on the development (not embedded) computer (Fig. 5.14).

Development computer

Controller code SIL Simulator Using this method, we program the control algorithm on the development computer exactly as it will be programmed on the robot hardware. This is useful to emulate the working conditions of the robot in the computer, in order to prevent missing dependencies.

The software-in-the-loop method allows to test the controller code in order to find and repair errors in the algorithm or in the method itself. Additionally, it is possible to test the controller for critic scenarios.

Processor-in-the-loop

In the processor-in-the-loop method, the controller algorithm is compiled to be executed in the processor of the robot. The simulation, as in the previous method, still runs on the development computer. The fact that ROS can be installed in di↵erent platforms with virtually no operating di↵erences allows to easily compile the SI-validated source code in the processor.

The control algorithm, using this method, can interact with the rest of the system using the input and outputs of the microprocessor. The rest of the system (as its low-level electronics), is simulated in the development computer. The inputs and outputs of the this computer are adapted in order to make the microprocessor act as if it was working with the real robot.

This method allows to detect errors related to the microprocessor operational conditions (compilation, optimization, available memory, calculation power, frequency, latencies, etc).

Processor PIL Simulation

Inputs (TCP/IP,série)

Inputs Outputs

Outputs (TCP/IP, série) Both SIL and PIL techniques have been used to validate the robot controller. In figure 5.16 we can see a simulation using UWSim [START_REF] Prats | An open source tool for simulation and supervision of underwater intervention missions[END_REF] as a graphic output in which we test these two methods. For the SIL method the controller code and the simulator (both written in C++) run on the development computer. In the PIL method the simulation runs in the development computer while the controller runs in the RSM robot CPU board. Despite the di↵erences in computing power and frequency (development computer far more powerful than the RSM robot CPU), both SIL and PIL simulations exhibit a similar behavior. This comparison between the two techniques validates the implantation of the code on the RSM robot embedded high level electronics. An "-in-the-loop" method has not yet been applied, the hardware-in-theloop or HIL (ongoing collaboration work with partners of UNICAMP, state of Sao Paulo, Brazil). This technique also uses the low level electronics of the robot and allows to test entirely the acquisition and control lines. However, it needs a real time computer simulation in order to test the operations of the system. This type of simulation is done by special hardware with real-time capabilities (dSpace its used by our partners in Brazil).

SIL PIL

Conclusion

In this chapter a nonlinear control method was introduced and a way of adapting it to di↵erent topologies was developed. Additionally, considerations about the applicability of this method (controllability over the trajectory) depending on the robot configuration were given.

A comparison between two di↵erent topologies using the control method was presented. In this comparison we observe how the same task can be performed with a di↵erent strategy depending on the propulsive topology. It also allows us to see how, depending on the chosen strategy, the performance in terms of convergence toward the desired trajectory and energy consumption can vary. This comparison confirms the importance of the propulsive topology for the performance of the robot. How to choose the propulsive topology in order to maximize the performance? is then the question raised by this work. The selected method is presented in the next chapter.

The Kalman filter estimation method and its implementation in the simulation of the RSM robot has been presented and discussed. Additionally, the controller has been programmed in C++ for its implantation on the real robot CPU. The target-compiled code has been validated using "-in-theloop" techniques.

While not yet integrated in the optimization of the AUV propulsion, these are important steps in the development of the RSM robot as an experimental platform.

Chapter 6

Genetic optimization 6.1 Introduction

The models, control technique and concepts presented in the previous chapters show the many parameters and sub-systems that a designer needs to address to successfully create an underwater robot propulsion system. Parameters and sub-systems as the gains of a controller and the propulsive topology of the robot are essential to create a functional robot. Moreover, even for a functional underwater robot, a slight change on these design elements can cause great variations of the robot overall performance as it can be seen even in simulation.

When designing a robot to perform precise missions, said sub-systems and parameters must be taken into account in order to create a robot adapted to the user needs. The designer, faced with a blank sheet of paper at the beginning of the project, needs to imagine the missions the robot will perform and come up with an appropriate system. This system will be a carefully chosen combination of the design elements previously discussed.

Given the large amount of design elements, and their heterogeneity, finding a suitable configuration is a challenging task. If additionally, we are looking for a highly performing configuration, the design process becomes extraordinarily complex and no known systematic method exists.

To overcome such a complexity, the designer can choose from the following strategies: Use a descriptive approach, which is the classical "human" approach. The designer uses previous information and novel ideas in order to solve the problem. The ideas are transformed iteratively in the mind of the designer until a satisfactory solution is created. Since this process occurs in a semi-empirical way, the final design is as good as the experience and capacity of the designer. Use a digital approach, which consists on giving to a computer the tasks of creating a system or analyzing a previously designed one. This approach provides several advantages. It can be used to automatically find the design elements of a system that optimizes a certain characteristic. Computer aided design (CAD) techniques, take precise instructions about the features to optimize and, using an iterative process, find the most fitted solution(s).

Taking into account the number of parameters and sub-systems to determine before properly designing a robot propulsion, it is clear that such a di cult task would greatly benefit from a computer-based optimization design method. Namely, the design problem discussed in this research work, can be formulated as a global optimization problem.

Global optimization problem

The goal of this kind of problem is given in the following general definition:

Definition 1. Global minimum Given a function f : M ✓ IR n ! IR, M 6 = ;, for x⇤ 2 M the value f ⇤ := f (x ⇤ ) > 1 is called a global minimum, i↵ 8x 2 M : f (x ⇤ )  f (x) ( 6 . 1 )
Then, x⇤ is a global minimum point, f is called objective function, and the set M is called the feasible region. The problem of determining a global minimum point is called global optimization problem.

In the case of the design of a robot, the global minimum would correspond to the best set of parameters that minimizes (or maximizes) the objective function f . It would correspond to the best robot, based on these parameters.

Generally, the objective function has several minima of di↵erent values. The optimization can be attracted to follow one of these minima, called local minima, even if its value is mediocre compared to other local minima or to the global minima. We can define mathematically these local minima as:

Definition 2. Local minimum For x 2 M te value f := f ( x) is called a local minima, i↵ 9" 2 IR +⇤ : 8x 2 M : ||x x|| < " =) f  f (x) ( 6 . 2 )
A local minima would correspond to a version of the robot which is locally better than its neighboring robots, but not the best of all search space M ..

Di↵erent types of methods

There are several classifications of the di↵erent global optimization methods.

Here, the classification given by Bäck [START_REF] Bäek | Evolutionary algorithms in theory and practice : evolution strategies, evolutionary programming, genetic algorithms[END_REF] will be used. Indeed, we will separate these methods in two large groups:

Volume oriented: These methods are based on an exhaustive search throughout the entire feasible configurations. This, of course, requires a finite search space. Examples of methods using this paradigm are Monte-Carlo strategies and cluster algorithms Path oriented: These methods follow a path in the feasible space, starting from a point that can be placed whether randomly or using previous knowledge. Path oriented methods can be divided into two sub-groups:

-Prediction methods: these use an explicit model of the objective function to predict the best path to follow. Tunneling methods and gradient descent are examples of these type of approach.

-Exploration methods: these try di↵erent paths and discard the ones that are not useful or successful. Examples of this approach are pattern search, rotating coordinates method and, to a great extent (they have traits corresponding to volume oriented and prediction methods), evolutionary algorithms.

For this work, the evolutionary approach will be used to solve the global optimization problem. This choice is based on the many successful applications of evolutionary algorithms to system design [START_REF] Yildiz | Comparison of evolutionary-based optimization algorithms for structural design optimization[END_REF][START_REF] Chocron | Evolutionary algorithms in kinematic design of robotic systems[END_REF][START_REF] Bataller | Evolutionary synthesis of mechanisms applied to the design of an exoskeleton for finger rehabilitation[END_REF][START_REF] Chocron | Conception Evolutionnaire de Systemes Robotiques[END_REF].

Evolutionary algorithms

Evolutionary algorithms are computational techniques based on the model of natural evolution formulated by Darwin [START_REF] Darwin | On the origin of species by means of natural selection, or the preservation of favoured races in the struggle for life[END_REF]. They model the evolution process of a population of individuals using simplified processes of genetic mechanisms as described by Mendel.

Evolutionary algorithms manipulate the genotype of a population of individuals using genetic operators, this population undergoes a fitness-based selection process, in which the fitness of each individual depends on its adaptation to its "environment". With the proper definition of "genotype", "fitness" and "environment" we can apply these optimization algorithms to a myriad of problems, including robot design optimization [START_REF] Chocron | Conception Evolutionnaire de Systemes Robotiques[END_REF].

From a mathematical point of view, an evolutionary algorithm can be defined as follows [START_REF] Bäek | Evolutionary algorithms in theory and practice : evolution strategies, evolutionary programming, genetic algorithms[END_REF]: Definition 3. An Evolutionary algorithm (EA) is defined as an 8-tuple EA = (I, , ⌦, , s, ◆, µ, ) ( 6 . 3 ) where I = A x ⇥ A s is the space of individuals, and A x , A s denote arbitrary sets; : I ! IR denotes a fitness function assigning real values to individuals.

⌦ = {! ⇥ 1 , ..., ! ⇥z |! ⇥ i : I ! I } [ {! ⇥ 0 : I } (6.4)
is a set of probabilistic genetic operators ! Here {i 1 , ..., i j } ✓ {1, ..., z}, and Q 2 {;, P } Several algorithms use the paradigms of evolutionary optimization, we name here a few: Genetic algorithms: The most used technique within the evolutionary algorithms. Typically, the individuals are coded using binary encoding and they use crossover and mutation as operators [START_REF] Goldberg | Genetic algorithms in search, optimization, and machine learning[END_REF].

Evolution strategies: It was born to solve hydrodynamic problems such as shape optimization and drag reduction [START_REF] Lichtfuss | Evolution eines rohrkrümmers[END_REF][START_REF] Rechenberg | Cybernetic solution path of an experimental problem[END_REF]. In this technique the individuals are coded as vectors of real numbers. It uses primarily mutation, which can be self-adapting, depending on the objective function. Genetic operators manipulate random variables and are based on probabilistic formalism.

Evolutionary programing: This technique evolves a population of computer programs to solve an algorithmic problem. The solutions to the optimization problems given by this technique are, then, computer programs [START_REF] Fogel | System Identification trough Simulated Evolution: A Machine Learning Approach[END_REF].

Taking into account their ease of use, the simplicity of their implementation and their popularity (which gives many examples of applicability), the genetic algorithm method will be used from now on to solve the optimization problems in this work. Indeed, task-based propulsive solutions will be created writing the design of an AUV as genetic algorithm.

Genetic algorithms 6.2.1 Principle

Being a type of evolutionary algorithm, genetic algorithms (GA) are also based on the evolution theory of Darwing. Genetic algorithms use individuals, genes, populations, a fitness function and operators such as selection, crossover and mutation [START_REF] Goldberg | Genetic algorithms in search, optimization, and machine learning[END_REF].

On a typical genetic algorithm application, the method follows these steps:

1. A population of individuals is created. This population can be created randomly or using previous information.

2. The individuals of the population are evaluated and given a fitness according to their performance based on the objective function.

3. Using the fitness of each individual as information. Genetic operators are applied to create new individuals:

(a) Selection: The best individuals (best fitnesses) are selected from the population. This selection can be deterministic or stochastic.

(b) Crossover: Two individuals (parents) mix their genes in order to create two new individuals (children).

Components

Population initialization

The first step using a genetic algorithms is the creation of an original population. This population will contain the first individuals, that later on, will be evaluated and a↵ected by genetic operators. The µ individuals of a population are typically coded using k binary genes. The creation of these binary genes is made, most of the time, randomly. Indeed, a binary random variable is sampled k•µ times in order to create every single gene of all the individuals of the population. The process is equivalent to a coin toss. The result is the start population P (0) = {ã 1 (0), ...,ã µ (0)}. Other techniques of population initialization exist. Some of them place individuals in zones of the population were the optimal solution is likely to be found. This type of strategy requires previous knowledge about the optimization problem and may lead to local optimization if mishandled.

Evaluation

Once created, the individuals of the population are evaluated. In order to do this, each individual must be decoded from binary to decimal base first.

The decoding is made taking the integer value from 0 to 2 k 1 of each individual and then mapping it to a real interval [u i , v i ]. An example of this conversion is given here:

⌥ i : IB kx ! [u i , v i ]⌥ i (a i1 , ..., a ikx ) = u i + v i u i 2 kx 1 kx 1 X j=0 a 1(kx j) 2 j ! (6.8)
The decoded individuals are then, one by one, evaluated using an objective function f (⌥(x)) based on the characteristics to enhance/decrease. This objective function is scaled to the domain of the positive real numbers, since the selection operator needs positive fitness to work. This is done with a scaling function :

: IR ⇥ ⇥ ! IR + (6.9)
There are several scaling methods [START_REF] Goldberg | Genetic algorithms in search, optimization, and machine learning[END_REF] (linear, logarithmic, exponential, etc). The choice of the right method depends on the application.

The scaling function gives to each individual in the population a fitness F, which describes their adaptation to the environment and it is useful to apply the operators e↵ectively .

Selection

Selection is the genetic mechanism from which the best individuals of the population are saved from extinction.

The selection is based on the survival of the fittest rule of Darwin. In this type of selection, called proportional selection, each individual has a selection probability (also called survival probability) proportional to its relative fitness. It means that the better fitted an individuals is, with regards to the rest of the population, the bigger the chances of its survival are.

Mathematically we can determine this probability for the individual ãi (t) 2 P (t) = {ã 1 (t), ...,ã µ (t)} as:

p s (ã i (t)) = F (ã i ) µ P j=1 F (ã j (t) (6.10)
Evidently this calculation only works if the values of the individual fitness are positive.

Using the above defined probability and the number µ of individuals in the population, we can calculate the expected number of occurrences of individuals ãi 2 P (t) in the population after the selection:

⌘(ã i (t) = µ p s (ã i (t)) (6.11)
The proportional selection mechanism is materialized by a method called the "roulette wheel". In this digital roulette we assign to each individual a slice of a size proportional to its relative fitness. Then a random number is generated and the individual whose segment spans the random number is selected (Fig. 6.1). This process is repeated for each individual of the population.

Crossover

The crossover, considered as the most important operator [START_REF] Bäek | Evolutionary algorithms in theory and practice : evolution strategies, evolutionary programming, genetic algorithms[END_REF], is the operator by which new individuals on a population are created from parent individuals of the previous population. Indeed, new individuals can be yield from useful elements of di↵erent parents. These new individuals have the combination of the characteristics of their ancestors.

The crossover operator selects two parents from the population and recombines their genes (binary data) to produce two new individuals. A pair of individuals has a probability p c of being crossed. The value of this probability depends on the application. In the literature we can find authors proposing p c values ranging from 0.5 to 0.95. Another topic of discussion is the crossover technique, that is, the way in which the elements from the parents are combined to form their children.

Several techniques exist [START_REF] Bäek | Evolutionary algorithms in theory and practice : evolution strategies, evolutionary programming, genetic algorithms[END_REF][START_REF] Srinivas | Genetic Algorithms: A Survey[END_REF]. In figure 6.1 we can see the most basic (and popularly used) technique: the single point crossover.

The single point crossover method, proposed by [START_REF] Holland | Adaptation in Natural and Artificial Systems: An introductory analysis with applications to biology, control, and artificial intelligence[END_REF], uses a crossover position 2 {1, ...k 1} which is selected randomly. The two resulting children are then created exchanging the bits to the right of between the parents. From two individuals s and ṽ the resulting children are:

s0 = (s 1 , ..., s 1 , s , v +1 , ..., v k ) ( 6 . 1 2 ) ṽ0 = (v 1 , ..., v 1 , v , s +1 , ..., s k ) ( 6 . 1 3 )

Mutation

The mutation operator, just like in nature, changes the genes of the individuals. In genetic algorithms, this operator will invert the bits (genes) of the individual. The probability of a bit from an individual to be mutated is given by a probability p m . Several p m values are proposed depending of the author(e.g.p m = 0.001 for [START_REF] De | An analysis of the behaviour of a class of genetic algorithms[END_REF], p m = 0.01 for [START_REF] Grefenstette | Optimization of Control Parameters for Genetic Algorithms[END_REF]). In this work we will use a rule in which we will calculate p m in order to have 50% of mutants expected per generation.

Mathematically, the individual after mutation is calculated in the following way:

a 0 i = ⇢ a i , if i > p m 1 a i , if i  p m (6.14)
where 2 [0, 1], as in the crossover operator, is a uniform random variable which value is recreated for each bit.

Replacement

After applying selection, crossover, and mutation to the individuals of a population P 0 , we obtain a new population P 1 . This new generation will replace completely the old generation. The new individuals will take the place of the old individuals, which will be extinct. New generations will be created using this operation iteratively until the termination criteria is reached.

The termination criteria depends on the application. It can be a simple maximum number of generations or it can be associated to a specific fitness value for the best individual or average fitness of the entire population.

Application example 6.2.3.1 Rastringin function

Before applying the genetic algorithm to our particular problem, we need to verify its e cacy. This verification is necessary from a theoretical and practical point of view. Theoretically, it will allow us to confirm the pertinence of these type of algorithm and will improve our grasp over the method. From a practical point of view, it will allow us to understand the logic behind our code.

These type of verification are typically done using a known multimodal multidimensional function, known as the test function. These test functions have the property of having a great number of local minima and a known global maxima, which makes them a challenging problem, perfect to test the genetic algorithm.

Among the several functions found in the literature [START_REF] Molga | Test functions for optimization needs[END_REF], in this work we will use the Rastringin function. This function is multidimensional and highly multimodal, with a large amount of local minima surrounding the global maxima. Mathematically we can define this function as follows:

f (x) = 10 n + n X i=1 [x 2 i 10 cos(2 ⇡ x i )] (6.15)
The limits of this function are restricted to the hypercube 5.12 x i  5.12 , i = 1, ..., n. The global minima of this function is f (x) = 0, which is the result of x i = 0 , i = 1, ..., n. In Fig. 6.2 we can see a plot for the Rastringin function with n = 2. For our test,we will use a Rastringin function with n = 20. The configuration of the genetic algorithm is given next.

Parameters

In order to use the genetic algorithm, first we have to configure it correctly. The configuration of the algorithm implies the definition of the following parameters: The determination of these parameters depends on the application and a general method for their determination can not be stated.

For this particular problem, the chosen crossover probability will be the one proposed by [START_REF] Goldberg | Genetic algorithms in search, optimization, and machine learning[END_REF], which is pm = 50%.

The evolution is very sensible to the mutation e↵ect, since a large mutation probability would prevent the algorithm from finding suitable solutions. For instance, a probability pm = 50% would be equivalent to a random walk.

In order to define the mutation probability, we will use the method used in [START_REF] Chocron | Evolutionary algorithms in kinematic design of robotic systems[END_REF]. Using these method, the mutation probability is inversely proportional to the number of bits of a chromosome (gene arrangement). If we want at least 50% of the total population in average to mutate, then the mutation probability is given by:

pm = 1 2 n k (6.16)
with n the number of variables to optimize and k the number of bits coding these variables.

The number of individuals per generation (µ) in a population must be su ciently large so the selection operator can pick from a great variety of individuals. Just like in nature, selection is more e cient if it has several type of individuals to chose from. This can lead to make the algorithm be able to "explore" more solutions and "discover" areas of the feasible landscape M that otherwise wold have been hidden.

A way of choosing the value µ can be based on the fact that it should allow the possibility of having the full range of values attainable by the fitness function F :

⌦(F (M )) = k min = 1 + 1 F e (6.17)
with F e the smallest possible variation on the fitness function, i.e. the variation on the fitness function given by a change of the last significant bit in a variable.

To determine the number of generations g we need to take into account that it has to be su ciently large so the evolution has enough time to find suitable solutions and to improve the fitness of the population. We can chose the number of generations in order to give time to the mutation of modifying the complete chromosome of an individual. Given that the expected number of mutations per generation over an individual is 0.5, the minimum number of necessary generations is :

g min = 2 n k (6.18)
Lastly, we can use the previous parameters to check the number of total evaluations on our genetic algorithm with regard to the cardinality of the optimization problem. Indeed, we can evaluate the result of the following equation:

µ g ⌦(M ) (6.19)
with M the set of solution candidates and ⌦(M ) the cardinal of the set M . The smaller the result of this equation, the bigger the di↵erence between the evaluations made by the GA and the number of possible solutions of the optimization problem.

For our test, we will use n = 20 (number of variables) and k = 14 (bit for the encoding of each variable). This allows us to create the table 6.1. Using the genetic algorithm with the given configuration we find the following results. In Fig. 6.3 we can see the evolution of both the best and average fitness for the population. It is clear how the average fitness curve increases along the best fitness curve. This shows how the genetic algorithm takes the information from the parents in order to create better and more fitted children as the generations go by. The gap between the two curves, created by the di↵erence in grow rate, is an evidence of the variety of solutions the algorithm maintains during the evolution. Even if some of these solutions are not as good as the best one, they may contain useful information that, thanks to the crossover operator, can lead to improve the best fitness later on. This gap, mostly maintained by the mutation taking place on the individuals of the population, is very healthy for the evolution. Indeed, in its absence, the population converges to µ copies of a single individual. At this point, fitness improvement would become rather di cult and unlikely, since it is only driven by mutation. Figure 6.4 shows the evolution of the parameters of the best individual. We can see how in the beginning the best solution has parameter values far from zero and how, as the evolution progresses, the values of the variables decrease as new areas of M are explored. The process continues, passing through parameters corresponding to better local minima, until the global minima configuration is found. At this point no further improvement is possible, but the genetic algorithm continues its research until the stop condition is attained.

We can also evaluate the e ciency of the GA by calculating :

µ g ⌦(M ) = 3.7186 ⇥ 10 19 (6.20)
which means that the number of evaluations made by the algorithm was negligible when compared with the possibilities of the research space M .

Adaptation to AUV propulsion design

An underwater robot, regardless of its category, is a complex system a↵ected by various and heterogeneous parameters. Indeed, a small change in these parameters can greatly influence the overall performance of the robot. They can even be the di↵erence between a working and a defective robot. A non exhaustive list of some of these important design parameters was given in section 3.1 Considering this, the use of a genetic algorithms to find appropriate parameters to create a suitable robot for a given task seems reasonable.

In this section the adaptation of genetic algorithms to our specific underwater robot optimization problem will be discussed. Descriptions about the configuration of the evolution (probabilities, number of generations, number of individuals, etc) and of the design parameters (type, encoding, initialization, etc) will be given.

Generation

Variable value

v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 v 16 v 17 v 18 v 19 v 20

Propulsion parameters

Propulsion parameters have a deep influence on the operation of underwater robots. The three propulsion parameters listed above will determine the controllability of the underwater vehicle. Indeed, as seen in section 5.2, each new propeller will contribute to the robot controllability with a propulsive wrench. The wrench contribution depends on the position and orientation of the thruster, since these parameters will dictate what DOF will be actuated by the thruster. For each additional thruster we use on the robot, we will either expand its propulsive capabilities (controllability) or simply add a redundancy on its DOF. For a robot with few thrusters, each new thruster can easily improve the robot controllability. However, for a robot with many thrusters each new thruster will have a decreasing contribution on the controllability.

To follow a given trajectory, the necessary DOF can be determined using kinematic considerations. In our genetic algorithm, this will be used to know the minimum propulsive capabilities needed by a robot. This pre-analysis provides an answer to What the robot needs in terms of DOF, while the genetic algorithm is in charge of finding How to provide them.

The propulsion parameters also have an influence over the energetic performance of the robot. The larger the number of thrusters, the heavier, cumbersome and costly the robot will be. In our genetic algorithm, each additional thruster penalizes the objective function, in order to account for this e↵ect.

Likewise, if the thrusters of the robot are badly placed and oriented, the creation of the propulsive wrench will not be optimal, or worse ine cient, even with an appropriate number of thrusters. A defective propulsion topology needs to generate a greater propulsive wrench in order to follow a defined trajectory. Since our simulation saturates the force on the thrusters (by using the electrodynamical thruster model with bounded voltage), a poorly configured robot could not be as e↵ective to follow said trajectory than a properly configured one. This will translate on bigger tracking errors (and energy consumption) throughout the evaluation.

Controller parameters

Controller parameters also play an important role on the performance of the robot. These parameters have to be precisely tuned in order to make the robot follow the desired trajectory e ciently.

The first parameter, the tracking point e, intervenes in the kinematic part of the controller. It determines the rank of the T matrix, which represents the rigid body relation between the velocity of the tracking point ⌫ e and the velocity on the mobile frame origin ⌫. The T matrix has to be inverted in order to calculate the necessary velocity of the robot in order to follow the desired trajectory. This means that the position of the tracking point has to guarantee the invertibility of the T matrix after the space reduction. Additionally, since ultimately it is the tracking point that follows the desired trajectory, its position will determine as well the convergence seed. Indeed, a tracking point far from the origin of the mobile frame will need less thrust power to correct its trajectory. This is due to the fact that small changes on the robot angular velocity result in big changes on the tracking point linear velocities. The position of this point relatively to the robot may be dictated as well by the task itself.

Lastly, the gain parameters of both the kinematic and dynamic control layers will also influence the robot ability to follow the desired trajectory. A fine tuning of these values is necessary to obtain a rapid and e cient convergence to the reference trajectory. On one hand, both gains need to be su ciently large to guarantee a rapid convergence to the followed path. However, on the other hand, the kinematic gain also needs to be small enough to create a feasible reference velocity for the dynamic control layer (because of acceleration limitations). Moreover, the dynamic gain need to be small enough to avoid creating chattering on the propellers during the dynamic controller correction.

Representation of solutions

To properly implement the genetic algorithm, we need to precisely define the design parameters. These parameters are the building blocks used by the genetic algorithm to find adequate solutions to our problem, and they will become the solution at the end of the evolution process.

The parameters being of di↵erent nature (we have parameters of position, orientation and others representing controller gains), we need to determine each one on its own domain.

Number of thrusters

The topology of the underwater robot must be optimized, this means that the number of thrusters is variable in the search. To account for this characteristic we will use an activation bit. The activation bit will be in charge of activating or deactivating a thruster, i.e. including or excluding the thruster from the topology.

Thruster position

The thruster position parameter is in reality a position vector, composed of three coordinates expressed in the robot frame: P i x , P i y , P i z (with i the number of the thruster).

Since the robot has a fixed shape and size, these three coordinates have di↵erent limits: P i x can take values from [ L, L] and P i y and P i z take values from [ r c , r c ]. The volume described by these three coordinates is a cuboid, this corresponds with the real RSM Robot (Fig. 6.5) with its metallic frame.

To avoid this heterogeneity we can make these parameters dimensionless:

Pi = (x p i , ỹp i , zp i ) 2 IR 3 [ 1,1] xp i = 2 P i x L ỹp i = 2 P i y r c zp i = 2 P i z r c (6.21)
with L and r c the length and radius respectively. Each one of these coordinates will be represented by a binary word of 5 bits. This representation will allow to identify 32 points on each axis of the robot, as shown on Fig. 6.6, which allows to have a resolution of 3.23% of the 6.3. Adaptation to AUV propulsion design 149 total length. The choice of the discretization is a trade-o↵ between accuracy and calculation time. Indeed, a small resolution gives a good precision but also increases the search space M , increasing the time necessary to solve the problem. 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0

P 1x = 0.3 P 1y = 0.1 P 1z = 0.0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 P 3x = 0.0 P 3y = 0.1 P 3z = 0.0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 P 2x = 0.3 P 2y = 0.1 P 2z = 0.0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 P 4x = 0.0 P 4y = 0.1 P 4z = 0.0

Thruster orientation

Thruster orientation is a design parameter that contains two sub-parameters: pitch angle ✓ i and yaw angle i which were defined in section 5.2.2. These angles can vary within a [-⇡/2, ⇡/2] interval. The variation interval have been shortened since we consider the thruster capable of generating the same forces forward and backwards.

As we did with the position of the thruster, we can make these subparameters dimensionless:

6.3. Adaptation to AUV propulsion design 150 Õi = ( ✓ i , ˜ i ) 2 IR 2 [ 1,1] ✓ i = ✓ i ⇡/2 ˜ i = i ⇡/2 (6.22)
The encoding of these sub-parameters are made using 7 bits, which allows us to identify 128 possible orientations for each angle, as shown in Fig. 6.7. The encoding, with a resolution of 0.79% of the range, is also a trade-o↵ between accuracy and time of calculation.

1 1 1 1 1 1 0 1 1 1 1 1 1 0 ✓ 1 = 0.0 1 = 0.0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 ✓ 3 = ⇡/2 3 = 0.0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ✓ 2 = 0.0 2 = ⇡/2 1 1 1 1 0 1 0 1 1 1 1 1 1 0 ✓ 4 = ⇡/4 4 = 0.0

Control gains

The control method uses two gains, ⇤ for kinematic layer and K p for the dynamic one. For the implementation of the GA we have decided to limit the values of these two sub-parameters to an interval [0, 63.75]. This choice was made based on previous knowledge about the values of and K p , and because it is practical to encode each parameter with 8-bits, which allow us to discretize the variation range in segments of 0.25.

Adaptation to AUV propulsion design 151

The definition of these two sub-parameters is the following:

G = (⇤, K p ) 2 IR [0,63 .75]
(6.23)

Tracking point position

Just as the thruster position, this tracking point position parameter contains three coordinates expressed in the robot frame (with the same boundaries): P ex , P ey and P ez . The tracking point is the point that the controller will steer to follow the desired trajectory. Typically, it must be located within the boundaries of the robot (cylinder plus its metallic frame), because it should correspond to the position of one of the robot equipments (IMU, SONAR, sensors or camera). In our application, as we did for the thruster position parameters, we will make these sub-parameters dimensionless.

To encode these sub-parameters we will use 5-bits, which will allow us to obtain good precision (resolution of 32.3% on each axis) on the location of the tracking point.

Mathematically, this design parameters is defined as: Pe = (x e , ỹe , ze ) 2 IR 3 Table 6.2 sums-up the design parameters and their configuration.

Optimization problem

As it was introduced earlier, our optimization problem "create a suitable robot propulsion system capable of performing a given mission" is not very well defined. Evidently, a mathematical and concise definition of our problem will allow us to correctly design and implement the genetic algorithm.

The controller calculates the force to generate on the thrusters of a specific robot in order to make it follow a desired trajectory. We can also consider that a high level mission is a succession of properly tunned trajectories chained one after the other. Taking into account these two statements we can conclude that our controller, by making the robot follow the desired trajectory, also makes the robot comply with a given complex mission.

The optimal robot for the optimization problem must be one that follows precisely the desired trajectory given to the controller. This means that the distance from the tracking point to the desired trajectory must reach to zero and stay like that. We can rephrase the last statement saying that the integral of the trajectory error must be as close to zero as possible. Our optimization problem is then, the minimization of an objective function defined as the integral of the kinematic error ✏ kin of the controller. This can be put mathematically as follows:

Find x ? 2 IR| 5n+5 [ 1,1] : (8 x 2 IR| 5n+5 [ 1,1] , g(x ? )  g(x) (6.25)
with:

x ? The most suitable individual formed by 5n + 5 parameters. Its is searched in a discrete subspace of

IR| 5n+5 [ 1,1] g(x)
The objective function to minimize, defined as the integral of the kinematic error of the controller over the time of the mission.

As seen in the previous equation, the number of parameters forming an individual can change. Each propeller has 5 parameters : 3 position coordinates(x pi , y pi , z pi ) and 2 orientations (✓ pi , pi ), all of these defined with regard to the robot frame. Given that in the general optimization problem we want to find not only the best position and orientation for the thrusters but also an adequate propulsive topology, the number of thrusters, n, is a variable.

Since the robot has only one main controller, we have 5 parameters to optimize. The parameters of the controller are: 2 gains (for the kinematic and dynamic control layers) and 3 position coordinates (x e , y e , z e ), for the position of the tracking point e.

Evaluation

Once the optimization problem and the design parameters have been defined, we need to establish how the genetic algorithm will determine whether an individual is fitted or not. This is done through an evaluation phase, in which the performance of an individual is determined by an objective function. The result of the objective function will be then scaled to obtain a fitness function, that will be used by the selection operator of the genetic algorithm.

The evaluation phase is done typically using a dynamic simulation of the real system using a numerical model. This cost e↵ective method allows a great quantity of evaluations in a relatively short period of time. Additionally, it allows to evaluate solutions that might be harmful for the robot in the real world. This type of evaluation method has, however, a very important draw back: the reality gap, an issue by which the solutions found using the GA are not e ciently transfered to the real system [START_REF] Koos | The transferability approach: Crossing the reality gap in evolutionary robotics[END_REF]. This reality gap is often created by inaccuracies in the model, which the GA can use to obtain cheated higher fitness.

In the literature we find several attempts to cross the reality gap, here we name a few:

Simulation based

Since one of the main reasons of the existence of the reality gap are the inaccuracies of the simulations, a straightforward way of solving this problem would be creating more precise simulations. However, the more accurate the simulation is, the more computation-intensive it gets, which increases the time needed to find proper solutions. Additionally, model accuracy improvement has a limit, specially for systems involving fluid dynamics.

Other simulation-based methods propose to prioritize the evolution of solutions presenting a robust behavior. This can be done by means of a reduced simulation taking into account only the meaningful phenomena and dismissing the complex behavior of the real system [START_REF] Jakobi | Minimal simulations for evolutionary robotics[END_REF]. As a consequence of this, the genetic algorithm is not able to exploit the inaccuracies of the system, since they are hidden. Robustness is also obtained by evaluating solutions on di↵erent simulation environments and initial conditions [START_REF] Thompson | Explorations in design space: Unconventional electronics design through artificial evolution[END_REF] or by using adaptive mechanisms, such as neural network controllers [START_REF] Floreano | Evolution of plastic control networks[END_REF].

However, despite the drawbacks linked to the inaccuracies, the used models generally describe the studied system in a proper way. Most models contain both accurate and inaccurate parts, the task of the GA user is to interpret whether the outcome of these models is appropriate or not.

In our application of genetic algorithms, we will use simulation as a evaluation mean. Our simulator EAUVIVE, far from being perfect (lacking of fluid dynamics and experimental validation of added mass terms), o↵ers an acceptable degree of accuracy considering our goal: finding clues that could aid to the design of underwater robots.

Reality based

Needless to say, the simplest way of avoiding the reality gap problem is not having it. The reality-based approaches are based on this premise, as they consist on using the real system to evaluate the solutions. Evidently, a direct application of this approach is very time consuming since each evaluation is done in real time on the robot [START_REF] Floreano | Evolution of plastic control networks[END_REF][START_REF] Hornby | Evolving robust gaits with AIBO[END_REF][START_REF] Zykov | Evolving dynamic gaits on a physical robot[END_REF].

Other methods based on this approach have been tested. Namely a two step method, in which simulation is used first to determine a set of well-fitted solutions and then the evolution is completed on the real system [START_REF] Pollack | Evolutionary Techniques in Physical Robotics[END_REF][START_REF] Nolfi | How to evolve autonomous robots: Di↵erent approaches in evolutionary robotics[END_REF].

Since these approaches are based on the use of simulation to narrow down the research, they are subject to the same considerations of the simulationbased methods.

Robot-in-the-loop based

This approach also uses a co-evolutionary process, in which the algorithm evolves both the simulator and the controllers. Using this method, observed real data has to be correctly described by the simulator, then the best controller used on these simulators is implanted on the real system. This generates a new set of observed real data, which is what the simulator will try to describe on the next iteration [START_REF] Bongard | Once more unto the breach: Co-evolving a robot and its simulator[END_REF][START_REF] Bongard | Resilient Machines Through Continuous Self-Modeling[END_REF]. Similar methods [START_REF] Zagal | Combining simulation and reality in evolutionary robotics[END_REF] based on co-evolution try to reduce the fitness variation between the simulation and the reality.

These methods are based under the assumption that a simulator can be su ciently improved to allow a perfect transfer between simulation and reality.

Other methods based on the robot-in-the-loop approach use a transferability function [START_REF] Koos | The transferability approach: Crossing the reality gap in evolutionary robotics[END_REF]. This method, based on fixed non-evolving simulations, makes the evolution aware of the limits of the model. It uses transferability measures that compares the simulated behavior with the real one and calculate its closeness. The transferability measures, as they are not possible to calculate explicitly for the complete research space, is interpolated from a few selected solutions. With this method the fitness and the transferability objective are optimized.

Global optimization of underwater robots

In this section, the results of the application of the genetic algorithm to the underwater robot optimization problem are given. The results are ordered increasing the complexity of the problem. This allows us to better understand the complexity of the algorithm itself and to learn from the intermediate solutions we find.

Separate optimization of sub-problems

Before applying the genetic algorithm to the general optimization problem (find the underwater robot parameters that minimize the controller error), we will use it to solve a series of sub-problems. This will teach us important lessons about the design parameters relative importance in the design of the robot and about the configuration of the genetic algorithm (number of individuals, generations, encoding, etc).

For these sub-problems, the RSM robot will follow a straightforward task: a circle. The circle (in meters) is defined as follows:

8 < :

x = 15 + 2 cos(v circle • t) y = 15 + 2 cos(v circle • t) z = 3 (6.26)
with v circle = 0.3 m/s a constant speed used to calculate, using the time t, the turning ratio.

The controller of the robot will be asked to control the position in space of the tracking point (x e , y e , z e ) and to keep the roll angle = 0. The fitness calculation for the sub-problems studied here will be done using the following equation:

F (x) = 100 1 + g(x) (6.27)
Where g(x) is the objective function calculated as the addition of the normalized integral of the kinematic error e kin (position) and the normalized energy consumption : able. In our work, the determination of µ, the size of the population, is based on trial and error.

g(x) =

Results

The evolution of the best and average fitness is given in Fig. 6.8, it shows the rapid increase of the maximal fitness from a fairly good value found in the first generation (lucky start). The size of the population was su ciently large to provide a good dispersion of individuals over the researchable space E. We can see as well how in the end of the evolution the fitness reached 21.60, which is 2.5 times bigger than the fitness for the standard RSM Robot. This puts in evidence the ability of the genetic algorithm to find suitable solutions for underwater robots controller design by use of dynamic simulation. The average fitness follows the maximum fitness curve. The average fitness presents some variations due to the mutation operator, which creates unpredictably individuals of assorted fitness levels (the search is still at work till the end). Figure 6.9 shows the searched parameters of the best individual for each generation. In the first generations, the algorithm finds the fittest individuals when it increases the value of the kinematic gains up to 3.5. Afterwards, it finds even fitter individuals decreasing the value of ⇤. Finally, it finds a set of values (⇤ = 1.5 and K p = 0.25) that generates an individual with a fitness unbeatable by the rest of the individuals of the evolution. For clarity, the best individual found by this optimization is given in Table 6.5. We can observe how the value of the dynamic gain K p for the best found individual is small, making the dynamic control loop less sensitive to the error in the desired robot velocity ⌫ ad . This can be explained by the fact that the dynamic controller ignores the dynamic of the thrusters. In consequence, it calculates a vector of forces ũp that, later on, is not generated instantly by the thrusters. The delay in the establishment of the forces, introduced by the thrusters dynamics, leads to an overshoot of the dynamic controller.

Evidently, in order to fight this overshoot, the controller must create a control force ũp of opposite direction, which in turn, overshoots again around the desired robot velocity. The solution found by the genetic algorithm is to give to the controller a less sensitive K p , which masks the delay created by the thrusters dynamics and reduces the overshoot. A smaller overshoot reduces the error in position and reduces the energy consumption on the thrusters (less acceleration/deceleration cycles), which explains the good fitness of this individual.

In this sub-problem we see how the GA is capable of adapting to a defect in the controller model. The thrusters dynamic, not modeled in the controller, is seen as a perturbation by the GA. In order to reject this per- turbation, the algorithm adapts the solution, making it less susceptible to this e↵ect.

Optimization of point e position

In this separate subproblem optimization, the same circle task (Eq. 6.26) with the standard RSM robot (Table 6.3) will be used to optimize the position of the tracking point e.

Even if the position of the e point can have an impact in the calculation of the fitness function, its position is often fixed by the type of tasks we are trying to accomplish. For instance, in the case of a mission in which the robot must use a video camera to record, we would put the point e on the camera, in order to control and stabilize its position. However, as long as the point e is a virtual one, it could be used to improve the convergence of the robot to the desired task. In particular, it could be useful to help the robot to converge faster to a new trajectory after finishing a previous one. Indeed, changing the position of the point e, we can induce the robot to take di↵erent paths between trajectories. The dynamic positioning of the point e would be, in that case, a trajectory planning problem that is not addressed in this work.

Given that the point e can play di↵erent roles (it can be positioned arbitrarily for a specific task or used as a mean for the convergence). The goal of the evolution of this point can be defined di↵erently depending on the case. Here, even if the position of the point e is evolved in order to minimize the kinematic error, the underlying goal of this optimization is to learn about our system. The configuration of this evolutions is given in Table 6.6. In figure 6.10 we can see the evolution of the maximum and average fitness curves. The final robot is about 1.25 times fitter than the standard version of the RSM Robot. This shows the e↵ect of the positioning of this point in the performance of the robot. The increment of the performance thanks to the change in the point e position is, however, less important than the increase of performance thanks to the choice of the controller gains.

The evolution of the coordinates of e, x e ,y e and z e , are shown in figure 6.11. For the last generation, which contains the best configuration found throughout the evolution, the coordinates of e are the following:

r e = [0.1548, 0.0194, 0.1] T (6.29)
The point e is placed halfway forward and slightly on the right (Fig. 6.12). The forwardly position can be explained in terms of stability. Indeed, a point placed further on the x b axis would be a↵ected by stronger lateral forces (along y b axis) created by the horizontal thrusters action. The controller, not being aware of the thruster dynamics, must control the position of the point e correcting the overshoot created by the dynamic behavior of these actuators. The overshoot increases with the distance along x b of the point r e . Conversely, the closer the point e is to the origin of R b , the larger is the thrust necessary to control it (shorter lever arm). The halfway forward positioning is then a trade-o↵ between these two e↵ects.

The small o↵set along y b could be explained by the fact that the circle does not change of direction. Given that to follow the circle the robot must The position of the point e along the z b axis can be explained similarly to the position along the x b axis: in order to control the point, the vertical thrusters benefit from a lever arm, allowing them to perform small corrections on v e (as explained in section 5.2.2). It decreases the power consumption since less forces are necessary to create the movement. Evidently, as discussed before, a great lever arm can be counter-productive, but the small diameter of the robot (0.1 m) prevents this to happen.

Optimization of thrusters position

For this separate optimization, the parameters of the standard RSM robot will be taken and only the position of its four thrusters will be optimized. This means that x will be composed only of the elements of P = (x pi , ỹpi , zpi ) 2 IR 3 [ 1,1] . The parameters of the evolution have been recalculated and are displayed on Table 6.7. Here, the population has been increased to account for the increase of the number of parameters to find (3 coordinate values per thruster). Again, this value has been selected based on trial and error. Results In figure 6.13 we can see how the sole optimization of the thrusters position increases the fitness of the robot. The final fitness is 1.27 times bigger than the fitness of the standard robot, however, best final fitness is not as high as the one found with the optimization of the controller gains. The figure also shows how, out of luck, the algorithm found an individual with a fitness of 11.5 within the first generation. We observe as well how the curves rapidly stabilize, which means that the optimization was very e cient and the number of generation too large. For its part, the gap between the best and average fitness curves shows that we have a good research in terms of exploration/utilization of the individuals information.

Figure 6.14 shows the position of the thruster for the best fitted individual found by the AG. Next to each truster we can see a curve showing the "way" followed by the thruster before finding its last position. As we can see, most of the thrusters had to endure several changes of position throughout the optimization, specially along the x b axis. Since the rest of the parameters are the same as the standard RSM robot, the AG had to find a suitable solution for the tracking point instability caused by the unoptimized parameters of the controller. The solution found by the algorithm was to place three thrusters next to the tracking point.

The forces generated by three thrusters placed in the front of the robot are more e↵ective controlling the tracking point. In part, this is due to the fact that they are now closer to e, which reduces the e↵ect of the overshoot created by the controller-ignored dynamics of the thrusters. Additionally, the position of the thrusters provide a lever arm from which the controller benefits, controlling e with reduced power consumption (larger forces). A last thruster is placed in the rear of the robot, it enhances the stability of the robot throughout the mission thanks to its pitch action.

Fixed thrusters orientation

In this separate optimization, the GA will only be able to modify the orientation (✓ i and i ) of each thruster. It will keep the rest of the parameters of the standard RSM robot, in order to follow the circle trajectory. Mathematically, the genotype x will be composed only by elements of Õi = ( ✓i

, ˜ i ) 2 IR 2 [ 1,1]
. The parameters of the evolution are given in Table 6.8. For this optimization, the size of the population is still 40 but the number of generations has been increased. The increase was motivated by improvements on the fitness value occurring even in the last generations of the evolution (on trial optimizations). The average and best fitness for each generation are shown in Figure 6.15. As in the previous optimization, during the first generation the algorithm already found a good fitness [START_REF] Lynn | Performing ship hull inspections using a remotely operated vehicle[END_REF]. Then it rapidly improved the fitness of the best individual until it reaches 20, after that point the performance increase was slower. We can see how the end fitness is about 1.28 times bigger than the standard RSM robot. Considering that this fitness is achieved only by changing the orientation of the thrusters. We can conclude that, for a given task, using a canonical orientation of the thrusters (i.e. along the axis of the robot) can be detrimental for the performance of the underwater robot.

In figure 6.16 we can see the thrusters orientation for the best fitted individual found by the AG. Next to each thruster we can see the evolution of the orientations throughout the generations. In order to find the most suitable individual, the algorithm has spend the first 20 generations intensely changing the configuration of the best individual, increasing greatly the fitness in each iteration. After that point, the fitness improvements were due to small changes applied to the configuration found previously.

For this optimization, explaining the final individuals is a harder task. The thrusters have to improve the control over the point e and reduce the power consumption only by changing their orientation. We can see in figure 6.16 that the rear thrusters have opposed orientations around the x b axis. When the robot turns, this configuration will add up the components on y b of these thrusters force (forces on opposite directions). The same components on y b will be canceled out when the robot performs a surge movement. The end result is an additional component of force on the y b axis during the mission. The orientation of the fourth thruster (almost perpendicular to the body) suggest that its main purpose is to create a force along the y b axis. This thruster will compensate the forces on y b created by the rear thrusters arrangement, improving the control of the point e over the y b axis. Lastly, thruster number three will compensate the moment over the x b axis introduced by the other thrusters and will generate the necessary forces to keep the robot at the desired depth.

Global vs. sequential optimization

Clearly, for a given mission, the optimization of the underwater robot should be applied to all of the design parameters and not individually. What needs to be determined is the way of doing it, given that we can identify two approaches. The first is to optimize groups of parameters sequentially, i.e. using the best parameters found in a previous optimization to configure the optimization of the next set of parameters. This allows us to incrementally generate better individuals at the end of each sequential evolution.

The second alternative is to perform the evolution globally (i.e. simultaneously). Using this method, all the parameters are evolved at the same time. Given that the research space is larger than in the sequential optimization, a greater number of individuals per generation must be used in order to obtain a good distribution over M . This will lead to a harder and longer optimization, but with the guarantee to have a genuinely global search (avoiding local minima)

Sequential optimization

The first tried approach will be the sequential optimization. For this method we will will rely on previous optimizations analyses. Consequently, we begin by the optimization of thrusters position. After that, with the found positions, we will optimize the orientation of the thrusters. Finally, for the given propulsion topology, we will optimize the control gains and tracking point position. The configuration parameters of the evolutions are given in Table 6.9. Figure 6.17 shows the fitness evolution of the three sequential optimiza- tions. The first plot, the one of the thrusters position optimization, corresponds to the one already discussed in section 6.13. The central plot, shows the evolution of the orientation of the thrusters using the optimized positions found in the first evolution. The last plot shows the evolution of the control parameters (controller gains and tracking point position). This last evolution has been done using the found thrusters positions and orientation. Looking at these curves we can note how the standard configuration of the RSM robot, albeit e↵ective, is not at all optimized for the task we are trying to perform. It is clear that by following canonical design procedures, depending on the task, we could be wasting most of the potential of the robot. Figure 6.18 shows the simulation of the found propulsive solution while it performs the desired task. Additionally we can see the evolution of the kinematic error e kin , which slowly converges towards the trajectory.

Generation

Control parameters

Best Fitness Average fitness 32.17 The resulting robot can be seen on figure 6.19. After accepting the curious arrangement of the solution found by the AG, we can see how the solution partly neglects the surge movement. Indeed, we see how only thruster one is in charge or driving the robot forward while thruster three is there only to provide yaw. Thruster two generates a component of force along x b but its main action is to generate heave and roll motions along with thruster four.

The controller parameters have also changed, the gains of the controller are ⇤ = 1.5 and K p = 1.0. The controller can be more demanding in its reactions, it can allow itself to react rapidly to errors. This is due to the improved stability brought by the point e, since the position and orientation of the thrusters have been optimized to reduce the overshoot generated by thrusters dynamics. Point e presents an interesting location as well, by positioning itself on the lower left edge of the robot it can benefit by the improved stability of that position (closer to the thrusters). Additionally, that point is somehow aligned with the direction of the force created by thruster one, which generates a surge motion on e.

Figure 6.20 shows the forces on the thruster and the total consumed propulsive power throughout the task. As we can see the thrusters one and two (horizontal) are the ones doing most of the work driving the robot forward, the other two thrusters are only in charge of stabilizing the robot. The consumed power shows a peak in the first instants of the simulation, which is caused by the controller suddenly asking the thrusters to give maximum force in order to accelerate toward the task. The high value of the peak is due to the integration step of the simulation, which is adapted to the dynamics of the AUV rather than the dynamics of the thrusters (faster). The high peak is present only in one step of the simulation (10ms) and does not a↵ect significantly the integration of the consumed power (i.e. energy). After the peak, the power decreases rapidly until it stabilizes when the robot reaches the proximity of the desired trajectory.

Global optimization

The second approach to evolve the design parameters of the robots is the global one. The evolution will optimize all the parameters at the same time: for each one of the four thrusters it will search the optimal position and orientation and it will, at the same time, look for the best controller gains and tracking point position. In order to keep the comparison between the two methods fair, we chose to give the same number of evaluations to both approaches (to assign the same CPU and time resources). Taking into account this, we have configured the evolution as shown in Table 6.10. The fitness evolution can be seen in figure 6.21, from which we can observe two interesting characteristics. The first one concerns the final value of the maximum fitness, which is higher than with the sequential approach. The second is the speed of the fitness curve. Indeed, given that the algorithm is able to evolve all the parameters at the same time, it is capable of finding better individuals faster than the previous approach, making the research process more e cient. These two points make the global evolutionary research objectively better and preferable than the sequential evolution.

The simulation and kinematic error e king are given in figure 6.22. The end result of the evolution is shown in figure 6. [START_REF] Stansfield | Deep-sea, high-resolution, hydrography and current measurements using an autonomous underwater vehicle: The overflow from the Strait of Sicily[END_REF]. The first that we notice when we see the robot is its resemblance with the resulting robot of the sequential evolution. We see how the thrusters have tendency to gather around the tracking point e. As discussed before, this masks the thrusters dynamic e↵ects while providing enough lever arm to easily control the position of e.

If we analyze the positions and orientations of the four thrusters, we can see that their contributions to the robot wrench are strongly coupled. Thrusters one, two and three are mainly in charge of yaw and surge generation, they have also influence in the generation of roll due to their angles (components of force along y b ). Thruster number one, being so close to the center of the robot, generates mostly roll and forces along y b and x b . Thruster four, for its part, is the only one with a strong vertical orientation, this is the thruster taking in charge the depth control of the vehicle. The point e has been placed in front, over the lower left corner of the vehicle, a similar position that the one found with the sequential method. Finally, the controller gains have been modified as well, now the kinematic gain is higher (⇤ = 2.76), allowing the kinematic controller to be more demanding thanks to improved propulsion. However, the value of the dynamic gain remains rather low (K p = 0.75), in order to mitigate the unknown (for the dynamic Figure 6.24 shows thrusters force and the total propulsive power consumption of the robot. We can see how thrusters one and three are the most used thrusters thanks to their ability to generate surge and yaw. The other two thrusters are in charge of stabilizing the robot and controlling its depth, judging by their produced force, these actions are not demanding. As for the sequential optimization, the total propulsive power peaks in the first step of simulation and then decreases until it stabilizes when the robot is in the vicinity of the desired trajectory.

Topology optimization

Comparing the results of the sequential and global optimization approaches we can see that the former is outperformed by the latter. Global optimization not only found a better solution (fitness 35 vs 32.5) but also matched the fitness of the sequential method in a third of the generations. Taking into account these two facts, it seems clear that the global approach should be used to carry on the next stage in our study. In this stage of the optimization of underwater robots design, we will address the problem of determining the complete topology of the underwater vehicle in order to perform a given complete robotic mission. The optimization of the number of thrusters (up to twelve thrusters), position and orientation as well as the controller design parameters will be undertaken.

Unlike the previous mission, in which we asked the robot to follow a circle, we will now use a mission with a more realistic goal. The mission in question will be the inspection of a marine current turbine. The reason to chose such a mission is based on the fact that these devices, in addition to their installation costs, are very expensive in terms of maintenance. These turbines, as with any other structure installed in the sea, are exposed to aggressive degradation factors such as corrosion and biofouling (among others). In order to verify the turbine condition, a team of divers check for signs of deterioration, which increases the e↵ort and cost of maintenance. Based on the current trends for this type of operation, the use of underwater robots seems appropriate and inevitable.

Evidently, given the complexity of a mission of these characteristics, a good autonomy is needed. As discussed before, autonomy comes as a compromise between energy consumption and trajectory control.

The water turbine inspection mission (Fig. 6.25) can be divided in three phases:

Scanning of the seabed for the turbine: After activating this phase, the robot follows a survey trajectory in order to find the position of the water turbine by scanning the seabed. The underwater vehicle can use multi-beam sonar information to scan the seabed, from near surface depth, until it detects the wanted target.

Diving toward the turbine: Once the robot has found its target, it starts a diving phase. In this phase the robot will try to approach (but not too close) the turbine as fast as possible, trying to minimize the energy consumption at the same time.

Tomography (inspection) of the water turbine: When the robot reaches its target, it starts the inspection of the energy generator. This phase is usually executed using a camera to record images of the turbine from all azimuths. In order to correctly capture images, the robot needs to encircle the device ensuring that it keep a constant distance from the target and its x b axis always points the center of the circle. We will apply our optimization algorithm to each one of these three phases in order to determine a suitable topology and controller.

For the following optimizations, we will calculate the fitness using a topology factor, K t :

F (x) = 100 1 + g(x)/K t (6.30)
This factor accounts for the number of thrusters in the topology, and can be calculated as follows:

⇢ K t = 1 for N t  3 K t = 1.2252 0.0813 N t for N t > 3 (6.31)
with N t the number of thrusters in the topology. Assuming that in order to follow a trajectory in the space we need at least three actuators, we have decided to penalize the inclusion of thrusters only beyond the third one. The evolution parameters for the three phases described here are shown in Table 6.11 Given that for these tasks the position of e is desirable to be in the front of the vehicle and along the x b axis (it corresponds to the positioning of the eventual instruments and the advance direction), the position of this tracking point will be limited to the positive section of x b .

Optimization for scanning of the seabed

In this part of the inspection mission, the robot goes from idle (or from a di↵erent mission) to scanning the seabed in order to find the water turbine. The scan phase, also called survey mission, consists on exhaustively sweeping an area until the robot is capable of determining were the target is located. To perform such a task, the robot needs to control its position in space (surge, sway and heave). In addition, the detection process could benefit from a stabilized roll motion, so this degree of freedom will be also required (although not included in the fitness calculation). Finally, since this task usually involves going across great distances, the robot must consume the least amount of energy possible. Figure 6.26 shows the fitness evolution. We can see how, unlike the previous optimizations, the algorithm takes longer to converge. The ascension phase of the curve is fast in the beginning but it decelerates rapidly as well. After one hundred generations the genetic algorithm keeps looking for suitable solutions but with a small pay-o↵ per generation, however, this small increments add up and represent around 10% of the total fitness. This behavior is expected since the genetic algorithm is trying to evolve far more complex individuals than before. A snapshot of the simulation and the curve describing the position error are shown in figure 6.27. We can observe how despite the di culty of the task, the robot maintains an error inferior to 10cm throughout the task.

The solution to the optimization problem found by the algorithm is shown in Fig. 6.28. In order to perform this mission, the robot actuates four degrees of freedom in R b : surge, heave, roll and yaw using only 3 thrusters (actuating space is 3-DOF). From the figure, we can observe the contribution of the three thrusters to the actuated space.

In order to correctly perform this task, the robot must be agile in the x y plane. The topology achieves this using thrusters two and three to produce surge and yaw, with these two thrust axes it can advance and correct some light lateral deviations. Given that the main movement of the robot is defined as a forward motion (along x b ) with eventual turning motions, these two thrusters are enough to control the robot in x and y. Thruster one also contains a component of its force in the horizontal plane, which is used to increase the control on the lateral displacement.

The task requires as well a control over the depth of the vehicle. This is why all three thrusters have components over z b . Given the small buoyancy of the vehicle (0.5% of the weight), a small control e↵ort is needed to keep the robot at a certain depth. Said control e↵ort is created by a linear combination of the vertical components of the thrusters. The vertical components of thrusters three and two are also used to correct the roll motion. This degree of freedom is mechanically stabilized thanks to the position of the center of gravity and buoyancy, reducing the need of a intensive control e↵ort.

In what concerns the controller solution, the point e is located on the front of the robot, since advancing is the predominant motion of the mission. The distance to the thrusters gives a chance to control the tracking point thanks to the lever arm, which is long enough to favor control and to reduce the overshoot. The values of the gains are ⇤ = 4.01 and K p = 0.75, the intricate The evolution of forces and propulsive power consumption are given in figure 6.29. Given that the robot has only three thrusters, all of them participate actively in the control of the vehicle. This is specially clear during the turning phases of the task (t = 2 and t = 9). Indeed, in order to comply with the change in the trajectory, the robot uses all its available means. Despite the active use of the thrusters we can see how the controller manages to follow the desired trajectory with small thrust forces.

Optimization for diving toward water turbine

After finding the location of the water turbine, the robot needs to reach it to start the inspection. To do so, it will start a diving phase, in which the main goal is to get closer to the target (at a given relative position, let say 1m before it).

The diving task consists simply on following a descending straight line. All the resources of the robot are devoted to correctly follow this trajectory. The task relies on the control of three degrees of freedom: surge, sway and heave. Knowing that the drag forces are greater while diving horizontally, we will also ask the controller to keep a pitch angle equal to the diving angle, since this could improve the overall performance of the robot. However, since we want to give the GA the liberty of choosing the diving method, this factor will be controlled but not included in the performance and fitness calculation. Lastly, the power consumption will also be included in the performance calculation.

In Fig. 6.30 we can see the evolution of fitness along the generations. As in the previous phase, the fitness convergence takes longer, around 100 generations to begin to stabilize. After that point, the increments are even smaller per generation, giving place to a long plateaus. The found topology is shown in Fig. 6.32 where we can see how the thrusters are located in the front and center of the robot. Given that the success of the mission depends on following the position of the straight line, the genetic algorithm only care about the x, y and z position. The found solution is one that neglects the creation of pitch. Even if a pitch angle dive reduces the hydrodynamic forces over the robot, the control found by the algorithm still manages to follow the trajectory with a reduced power consumption.

Based on the geometry of the tasks, the two most important degrees of freedom to control are surge and heave. We can see how the first degree of freedom is controlled mainly by thruster three. Thruster two can generate a component of force on x b but its main contribution is the correction over y b thanks to the generation of yaw.

Finally, thruster number one is only there to control heave. Its position creates a small moment arm to generate roll, but its vertical orientation shows that its main contribution to the topology is the control over the vertical displacement.

The e point is placed in the front of the robot, showing the preponderant direction of motion. From this position it benefits of the yaw created by thruster number two and three in the front. Lastly, the gain values are ⇤ = 2.0 and K p = 0.50, making the robot react rapidly to errors in position, but loosely compensating the dynamic e↵ects over the robot. Figure 6.33 shows the thrusters force and the power consumed by the propulsion system throughout the task. Not surprisingly, thruster one (vertical) is the one generating most of the force. Thruster three produces the forward motion and thruster two is in charge of lateral corrections, specially in the beginning of the simulation, before the robot reaches the trajectory.

Optimization for tomography of water turbine

In the last stage of the mission, the robot arrives to the water turbine. At this point it begins the phase of inspection of the energy generator. In order to detect signs of deterioration, it needs to turn around the turbine making sure that the camera is constantly pointing toward the center of the circle (target position) and its distance from the target is constant.

For this specific phase, not only the position of the robot is important, but also its yaw orientation . If the robot does not head toward the turbine, the inspection could be unfruitful. This is why we have added a term related to the yaw orientation of the robot in the fitness function. Now, the performance of the robot will be calculated taking into account the position and yaw angle error of the robot. Mathematically, it means that the objective function now will add a term with the normalized integration of the yaw angle:

g(x) = R t 0 e k dt N e kin + R t 0 e dt N + R t 0 P dt N energ (6.32)
Where e is the yaw error and N the normalizing factor. This factor is calculated as the integral of the yaw error for a static robot (starting position). Figure 6.34 shows the evolution of the fitness value. We can see that despite the new added constraint (yaw angle error), the algorithm e↵ectively finds a suitable individual for this task. However, it is also true that this time the ascending phase of the best fitness curve has been enlarged, with smaller increments per generation. The found solution is shown in figure 6.36, after a brief inspection we can observe that the topology is somehow not surprising. In order to perform this mission, the degrees of freedom needed to control the position and orientation of the e point are surge, sway, heave and yaw. From the figure we can see how these four motions are created by the thrusters.

From the position and orientation of thrusters one, three and four we can see that the motions to control are the lateral ones, sway and yaw. Indeed, all of these three thrusters have a component of the force over y b , which allows to create sway. Thrusters number three and four are also able to create yaw, thanks to their moment arm.

Thruster number three also participates in the creation of surge, since this degree of freedom only requires small corrections in this task, only a component of the force over x b is enough to control it. Thruster two is in charge mainly of creating heave, as with surge, the necessary corrections are small which makes one thruster enough to control it. This thruster also participates in the creation of surge.

The position of the point e confirms the importance of yaw in this phase of the mission. Indeed, the fact that it is positioned close to the center, shows how yaw motion is one of the dominant degrees of freedom of this task. The closeness to the center of the coordinate frame is used by the controller to create a pure yaw motion without spurious coupled thrusts.

Finally, the controller gains are ⇤ = 0.25 and K p = 16.06, which makes the robot to slowly converge to the desired trajectory but with a heavy compensation of the dynamic e↵ects (arisen by presence of yaw rotation). Figure 6.37 shows the propulsive forces and consumed power throughout the task. The robot having a very exigent dynamic controller, demands full force from the thrusters in the transient zone (before reaching the task), this creates peaks in a similar way as in the beginning of the simulation. As discussed before, these high peaks have a very short duration and have little e↵ect over the dynamic of the robot and the integration of the consumed power. Given that the robot mostly uses surge and yaw in order to perform this task, it is not surprising that thrusters number one and four are the ones generating most of the force. Indeed, the actions of these thrust have a direct impact in the concerned degreed of freedom (thruster one on sway and thruster four on yaw ). The other two thrusters are in charge of small corrections and therefore do not generate great forces.

Dynamic configuration

The global optimization method allows us to obtain promising results in terms of performance. We can find a suitable robot for a given task, which is our main goal. However, giving the GA the complete liberty of searching the best configuration for each single task could generate impractical solutions (the same robot must perform several task in the same mission). Predicting and optimizing all possible tasks appear to be impossible. The other option is to reconfigure dynamically the robot, which means it will change its propulsion configuration during the mission, while it is under the sea.

Nowadays, propulsion technology is not capable of providing full reconfiguration capabilities. Reconfiguration of the orientation of the thrust seems to be giving its first steps out of infancy as seen in section 3.1.3.2, but dynamic (during mission) reconfiguration of the position of the thrusters has not yet received interest.

Taking into account these restrictions, it seems interesting to test the algorithm in a more realistic scenario. To do this, we will try to find suitable solutions for the same inspection mission but without moving thrusters (positions are fixed) or changing their number (we keep RSM parameters, i.e. 4 fixed thrusters). Only the thrusters orientations and control parameters will be optimized. This solution is realistic because it can be implemented using vectorial thrusters such as the RMCT studied in section 4.2.3. We will continue using the topology factor, in order to compare the fitness of the dynamic configuration to the one of the global optimization. For these optimizations the evolution parameters are shown in Table 6.12.

Seabed inspection

This time, the achievement of the optimization will be greatly limited since the GA will only be able to change the orientation of the four thrusters and the control parameters. However, despite the constraints, the algorithms finds a solution comparable in performance with the global one. The final fitness value is 35.52, as seen in Fig. 6.38. This reduction could be due, evidently, to the fact that less parameters can be changed, but also due to the fact that the number of thrusters is set to four, changing the topology factor to 0.9. Figure 6.40 shows the configuration of the robot. We can see that thrusters one, two and four are able to create yaw. Which is important to be able to steer the vehicle during the turning phases. We see as well how surge is now created by thrusters two and four. Even if they are on the same side, the yaw perturbation gets compensated by the orientation of thruster two. Additionally, thruster three gets to act over y b in order to strengthen the lateral trajectory control.

All four thrusters have a component over z b , allowing them to intervene in the control of heave and roll. The lack of dedicated thrusters in order to fulfill this duty is due to the small control e↵ort needed to correct these two degrees of freedom for this robot.

The position of e is not surprising. The main movement of the robot is to advance, so it is expected to be located in the front of the robot. Allowing to profit from the moment arm from its position to the one of the thrusters.

As with the global controller gains, this time the GA has found a somehow loose kinematic gain (⇤ = 1) and a tighter control over the the dynamic e↵ects on the robot (K p = 1.5). Figure 6.41 shows that, as in the global optimization for this task, all thrusters have a very active participation in the control of the vehicle. Indeed, we can see how the thrust forces are constantly variating, specially during the turning phase, which creates a noticeable increment in the the consumed power.

Diving toward water turbine

In this transition phase, the vehicle needs to dive preferably with a pitch angle in order to reduce drag forces. This is a type of mission that the RSM robot was not originally designed for. In the global optimization application we have seen that the found configuration involved not controlling the pitch angle and just focusing in following the position of the trajectory. For this optimization we give again the possibility to the algorithm to find creative ways of performing the mission. Figure 6.42 shows the fitness of the optimization. Despite the added difficulty of the problem (recreating the same movements than before but with less parameters to modify), we see that the algorithm does not take longer until it begins to consistently improve the individuals of the population. From the kinematic error evolution we can note how the task is straightforwardly executed with minimal variations in the error after the desired trajectory is reached. Additionally, we can also observe that this time the GA has found a solution using pitch during the diving.

In figure 6.44 we see the solution found by the GA. The four degrees of freedom needed to perform this task are surge, heave, pitch and yaw. From the figure we can deduce how the motions are created.

The surge and yaw motions are created mainly by thrusters one and four. These thrusters take in charge the advancement and lateral correction of the trajectory of e. For their part, thrusters two and three are in charge of the remaining degrees of freedom: heave and pitch, following a similar arrangement as the other two actuators. The inverted configuration of the thrusters gives stability while correctly controlling the degrees of freedom.

The point e is positioned in the front of the robot, this gives thrusters one and four a better moment arm to create yaw. This position also helps thrusters two and three create pitch. Controller gains are ⇤ = 0.5 and Thrust forces during the simulation and the evolution of the consumed power are shown in Figure 6. [START_REF] Holden | Robust Globally Exponentially Stabilizing Control Law for Fully Actuated 6-Dof Auvs[END_REF]. We can see how the creation of pitch by thruster number two and heave by thruster number three are very demanding in terms of force. Indeed, in order to create pitch, thruster number two needs to fight against the restoring forces, while thruster three needs to create the diving force. Thrusters one and four are used to give small lateral corrections on the trajectory.

Tomography

For the last part of the mission, the RSM robot needs to adapt its thrusters to perform a task that, as seen in the global evolution section, involves mostly sway and yaw.

Figure 6.46 shows the fitness throughout the evolution. We can see how the GA smoothly converged to a solution despite the di culty of the problem. In fact, if we compare with the result of the global optimization for the same task, the fitness in this case is slightly superior. This is due to the search space reduction, now the genetic algorithm does not loose time evaluating unuseful topologies. In the global optimization, the GA had to first find promising topologies and then optimize their configuration. The fact that the global approach found a four thrusters topology shows how, by reducing the problem to the RSM robot configuration, we have spared the GA of great part of the search e↵ort (less time used for exploration and more exploitation). Figure 6.47 shows a snapshot of the simulation and the evolution of the kinematic error. As for the global optimization of this task, the robot converges slowly but with a steady pace. Once the AUV has reached the desired trajectory, the kinematic and yaw errors remain small (e kin < 0.1m and e < 1.4 ).

The configuration found by the GA is shown in Fig. 6.48. As stated in the application of the global optimization, the necessary degrees of freedom to control in order to perform this trajectory are surge, sway, heave and yaw.

In the figure we see how all thrusters have a force component over the y b axis, which is understandable since it is the main direction of the motion. Thrusters one and two are, like in the RSM robot, in charge of the yaw movements. However, we see that only thruster two contributes to the surge motion while thruster one generates heave and pitch. For its part, thruster three generates mainly a lateral force, controlling sway. Lastly, heave is generated by a composition of the forces over the z b from thrusters one and four.

The main movements being sway and yaw, so the position of e was to be expected. The position of the tracking point, close to the R b origin, favors the control over yaw. It gives the thrusters in charge of this degree of freedom a long enough lever arm, which is also short enough to limit the overshoot due to propeller dynamics. The GA chose again a small kinematic gain (⇤ = 0.25) making the robot slowly converge to the task, however, it rapidly compensates the dynamic e↵ects on the robot thanks to its dynamic gain value (K p = 9.28).

Figure 6.49 shows thruster forces and power consumption throughout the task. As for the global optimization of this task, the strong dynamic compensation of the controller demands full force from the thrusters, generating in the force peaks of short duration. Once the robot has reached the desired trajectory, we see how thruster number three generates the higher force in order to move the AUV laterally. Thruster number two is the second biggest force contributor, taking in charge the creation of yaw. Thrusters one and four have a small contribution, they are mostly in charge of controlling depth.

Conclusion

Analyzing the results of the dynamic configuration and global optimizations (Table 6.13), we can see how the global approach tends to have better results. For the seabed scanning, the fitness of the best individual found by the global approach was 1.35 times better than the one found by the dynamic configuration optimization. We obtain a similar outcome analyzing the two approaches for the diving task, the global optimization best individual is 1.38 times fitter than the one found by the dynamic configuration. However, for the tomography task, the dynamic configuration finds a better suited robot than its global counterpart (1.05 times fitter), probably due to the reduced search space and to a starting topology (RSM robot) well suited for the task. Solely based on the fitness of the best individual, it is clear that global optimization is to be preferred. However from a technological point of view, dynamic configuration seems to be more promising. Indeed, even if the performances of this approach are not as good as the global ones, the fact that they are technically feasible makes the dynamic configuration more useful.

In section 6.5 the RSM robot propulsion system, with predefined thruster number and positions, was optimized to follow three di↵erent tasks included in a robotic mission. The three optimized configurations maximize the performance of the robot in each task. A version of the RSM robot capable of dynamically changing its propulsive configuration (vectorial thrusters) would be able to achieve the three tasks in a row (i.e. the mission) with the best performance. Given the current state of thrust configuration technology, this idea seems applicable in the medium-term.

The advantages of dynamic configuration are clear, it can make underactuated AUVs capable of performing complex and demanding tasks in an optimal way, enhancing the propulsive capabilities of these vehicles. Indeed, AUVs with dynamically reconfigurable thrusters, using propulsion configurations determined by this method, would be able to perform tasks with good trajectory tracking convergence and reduced power consumption. This would result in improving AUVs capabilities and therefore expanding their autonomy.

Chapter 7

Conclusions and perspectives

The design of autonomous underwater vehicles supposes the definition of a myriad of design parameters. Said parameters must be selected and properly configured in order to obtain enhanced performance and autonomy. A way of achieving autonomy in an AUV is increasing its propulsive capabilities, adapting the robot to the tasks it is expected to perform.

Nowadays, AUVs are exposed to increasingly demanding tasks and missions. Far from the survey-style missions that made these vehicles popular, the new missions demand the AUVs to have greater autonomy and e ciency.

Most of AUV design methods rely heavily on designers experience and rules of thumb, taking well known designs and adopting classical approaches. While capable of performing di cult tasks, these robots are not optimized to perform these missions causing a decrease in their overall performance and autonomy. Also their e ciency is not as high as it could be (using too many thrusters).

This work proposes a way of improving the design of AUVs through the optimization of its propulsive configuration, increasing their performances and therefore enhancing their autonomy. Indeed, mission-adapted propulsive configurations allow the AUV to perform otherwise di cult tasks, making them less depending of human intervention.

The optimization technique used in this work uses an AUV simulator in order to evaluate the candidate solutions. This simulator, contains the hydrodynamical model of the robot, which includes rigid body dynamics and hydrodynamic e↵ects such as added mass and damping.

The EAUVIVE simulator also includes the electrodynamic model of a real thruster, which parameters have been identified and validated using a test rig. A vectorial thruster has been studied as well, in order to study its feasibility. This vectorial thruster o↵ers the possibility of changing the direction of the thrust thanks to a magnetic coupling. The dynamic model 200 of this device was developed and validated.

In order to correctly simulate the behavior of the robot, we use a modelbased nonlinear controller called torque computation. This controller uses the kinematic and hydrodynamic model of the AUV in order to compensate the hydrodynamic e↵ects and steer the vehicle toward a desired trajectory. This control technique generates the needed wrench in order to follow the desired trajectory. An additional stage, called thrust allocation, was added in order to determine the needed forces from each thruster of the robot.

Given that the genetic algorithm evaluates di↵erent propulsive topologies during its optimization work, a way of adapting the control technique to di↵erent propulsive topologies was presented. Additionally, some considerations about the conditions to successfully apply this control adaptation method were discussed.

The extended Kalman filter estimation method and its implantation (along with the control method) into the robot control architecture was discussed. This is not yet used by the genetic algorithm optimization, but it is an unavoidable step in future robotic platform developments.

Lastly, using the aforementioned elements, the genetic algorithm was developed. It allows to, given a robot structure and a defined task, to find an optimal propulsive topology and control parameters. The found solution will be adapted for the demanded task, creating a robot with a good performance but task-specific. Given that in the real world most of the solutions found thanks to this method are di cult to apply, an alternative approach was presented. This approach, called dynamic configuration, proposes to apply the optimization method to a robot in which the position of its thrusters are predefined. Restricting the GA possibilities of research by imposing some of the design parameters can result in less e cient topologies. However, as a compensation for the performance loss, the found solutions are technically viable. Applying the dynamic configuration method with the same constrained parameters but for di↵erent tasks, allows the AUV designer to calculate the optimal topology configuration for each task. With this information, and taking into account the advances in reconfigurable thruster technology, the creation of a dynamically reconfigurable robot is possible in a near future. A robot designed using this technique could be optimally adapted to a mission including any number of di↵erent tasks.

Future work should focus on the improvement of the genetic algorithm. This can be done increasing its e ciency using more advanced techniques or by narrowing down the search space based on previous experience. This could allow to expand the number of design parameters without increasing the calculation time.

The expanded set of design parameters could include a di↵erent type of controller technique (for instance PID, sliding mode, adaptive methods, etc). Indeed, giving the possibility to the GA of choosing the type of control used in the robot could lead to a improvement of the AUV design. The correction terms in the used computed torque control technique could be improved as well, making it use not only the proportional correction but also the integral and derivative ones.

The genetic algorithm would benefit as well by using improved models in the control technique (for instance including the thruster dynamics in computed torque method). Indeed, a more precise definition of the hydrodynamic terms in the AUV model and a fully dynamic model of the thrusters would help to reduce the reality gap, making the solutions found by the optimization easier to apply in the real world.

Lastly, real experimentations using the RSM robot with the found propulsive topologies should be carried out, in order to validate and tune the solutions found by the artificial evolution.

1. 1 1

 11 Résultats obtenus avec reconf. dyn et opt. globale. . . . . . . 4.1 RSM characteristics. . . . . . . . . . . . . . . . . . . . . . . . 4.2 Added mass and hydrodynamic terms. . . . . . . . . . . . . . 4.3 Summary of results . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Evolutionary parameters for Rastringin optimization test. . . . 6.2 Configuration of design parameters. . . . . . . . . . . . . . . . 6.3 Standard configuration for the RSM robot. . . . . . . . . . . . 6.4 Evolutionary parameters for control only sub-problem. . . . . 6.5 Controller configuration parameters for the evolution best individual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 Evolutionary parameters for e position sub-problem. . . . . . . 6.7 Evolutionary parameters for thruster position sub-problem. . . 6.8 Evolutionary parameters for thruster orientation sub-problem. 6.9 Evolutionary parameters for sequential optimization. . . . . . 6.10 Evolutionary parameters for global optimization. . . . . . . . . 6.11 Evolutionary parameters for topology research. . . . . . . . . . 6.12 Evolutionary parameters for dynamic configuration. . . . . . . 6.13 Results obtained with dyn. conf and global opt. . . . . . . . . Véhicules sous-marins non habités

Figure 1 . 1 :

 11 Figure 1.1: Prototype du PMCR.

Figure 1 . 2 :

 12 Figure 1.2: Principe de la méthode de commande utilisée.

Figure 1 . 3 :

 13 Figure 1.3: Commande par bouclage linéarisant.

Figure 1 . 4 :

 14 Figure 1.4: Algorithme génétique

Paramètres de la propulsion --i-

 propulsion Nombre de propulseurs : n -Position du propulseur : P ix , P iy , P iz Orientation du propulseur : ✓ i , Paramètres de la méthode de commande -Gains (cinématique et dynamique) : ⇤, K p Point traqué : P ex , P ey , P ez 1.4.

Figure 1 . 5 :

 15 Figure 1.5: Trajectoires des di↵érentes phases de la mission.

Fig 4 . 1 Figure 4 . 1 :

 4141 Figure 4.1: Earh-fixed and body-fixed frames.

  of AUV CoG in R b

Figure 4 . 2 :

 42 Figure 4.2: RSM fixed propulsive topology.

Figure 4 . 3 :

 43 Figure 4.3: RSM vectorial propulsive topology.

Figure 4 . 4 :

 44 Figure 4.4: Odin propulsive topology.

Figure 4 . 5 :

 45 Figure 4.5: Seabotix BTD 150 thruster.

Figure 4 . 6 :Figure 4 . 7 :

 4647 Figure 4.6: Force measuring test rig.

Figure 4 . 8 :Figure 4 . 9 :

 4849 Figure 4.8: RMCT prototype.

Figure 4 .

 4 Figure 4.10 shows the kinematic diagram of the F-RMCT. R 1 ,R 2 and R3 are the frames attached to the motor shaft, the fork and the propeller shaft respectively. ✓ m = (x 0 ,x 1 ) is the motor rotor angle, the rotation angle of the x 1 axis attached to the motor with respect to the reference axis x0 .✓ h = (ỹ 3 ,ỹ 2 )is the rotation of the propeller axis, that is, the rotation angle of the y 3 axis attached to the propeller with respect to the reference axis ỹ0 = ỹ2 . ↵ is the reconfiguration angle (angle between z 0 and z 3 ).

Figure 4 . 10 :

 410 Figure 4.10: Flat RMCT kinematic diagram (shown in the neutral configuration, ↵ = 0).

Figure 4 . 11 :

 411 Figure 4.11: Interpolation curves for the magnetic coupling torque.

Figure 4 . 12 :

 412 Figure 4.12: Magnetic coupling torque according to ✓ and polarity (↵ = 0).

  Figure 4.13: Extrapolating surface with experimental results (red for ↵ = 0 and green for ✓ = 45 ).

Figure 4 .

 4 Figure 4.14: Flat RMCT prototype.

Figure 4 . 15 :

 415 Figure 4.15: Simulation and experimental motor axis speeds. Input voltage of 6V.

Figure 4 . 16 :

 416 Figure 4.16: Evolution of simulated and experimental magnetic angle ✓. Input voltage of 6V.

Figure 4 . 17 :

 417 Figure 4.17: Simulation and experimental values of motor and magnetic coupling torque. Input voltage of 6V.

Figure 4 . 18 :

 418 Figure 4.18: Frequency analysis of the rotor axis angular speed using Fourier Transform.

Figure 4 .

 4 Figure 4.19: RSM robot tested in Ifremer bassin (sea water, 20 m).

  4.3.1 The RSM robot model 4.3.1.1 Hydrodynamic model

Figure 4 . 20 :

 420 Figure 4.20: Simplified representation of the RSM AUV.

Figure 4 . 21 :

 421 Figure 4.21: RSM fixed propeller architecture.

3 5

 3 The TCM can then, taking into account the alignments, be calculated as:

4. 3 .Figure 4 .

 34 Figure 4.22: RSM Vectorial Propulsion.

Where 1 and ✓ 1

 1 are the configuration angles (RPY convention, with simultaneous rotations around the fixed axes y b -axis and z b -axis, respectively). These angles are necessary to define u v , the Cartesian thrust vector in R b as shown in Fig. 4.22.

4. 3 . 2

 32 EAUVIVE simulator 4.3.2.1 Numeric resolution Mathematical models provided in the previous sections are integrated in the EAUVIVE numerical simulation code (Fig. 4.23), developed in the IRDL lab.This simulator (developed in Scilab, Matlab and C++), allows evaluating AUV behavior from the point of view of 3D solid -and hydrodynamics. In its simulation, EAUVIVE integrates the models of the robot, a control module (open loop for the following tests) and a graphical 3D visualization of the robot. Additionally, the simulator allows to add a closed loop controller, in that case, EAUVIVE includes also a desired trajectory to be followed by the AUV and a control algorithm.

Figure 4 .

 4 Figure 4.23: EAUVIVE Simulator (Scilab Version)

Figure 4 . 24 :

 424 Figure 4.24: Displacements in dive tasks.

Figure 4 . 25 :

 425 Figure 4.25: Circular trajectory.

Figure 4 . 26 :

 426 Figure 4.26: Diving in confined space.

Figure 4 . 27 :

 427 Figure 4.27: Spiral trajectory in confined dive motion.

4. 3 .

 3 Simulation 97 jectory based on the robot length is proposed. The amplitude of the slalom is 3.33 L and the longitudinal distance between two gates is 9 L (Fig.4.28). The average speed along the x 0 -axis is computed to evaluate the performance of the AUV to complete the slalom mission.

Figure 4 . 28 :

 428 Figure 4.28: Slalom trajectory (horizontal or vertical).

101 5Figure 5 . 1 :

 10151 Figure 5.1: Computed torque control method principle.

Figure 5 . 2 :

 52 Figure 5.2: Computed torque control layers.

Figure 5 . 3 :Figure 5 . 4 :

 5354 Figure 5.3: RSM robot with fixed propulsion topology.

c

  c✓ c s s✓ c s s s + c c s✓ 0 c✓s c c + s s s✓ c s s✓ c s 0

  and I bz the diagonal components of the inertia matrix and the component on z b of distance between the center of gravity and the center of buoyancy (placed in O b in our robot).

Figure 5 . 5 :

 55 Figure 5.5: Trajectory followed by the AUV for fixed and vectorial propulsion.

Figure 5 . 6 :

 56 Figure 5.6: Control input for the fixed propulsion strategy (FP).

Figure 5 . 7 :

 57 Figure 5.7: Control input for the vectorial propulsion strategy (VP).

Figure 5 . 8 :

 58 Figure 5.8: Position error quadratic norm.

Figure 5 . 9 :

 59 Figure 5.9: Total power consumption for fixed and vectorial propulsions.

Figure 5 . 10 :

 510 Figure 5.10: Extended Kalman filter estimation. Solid lines represent the real states and dotted ones represent the estimation.

Figure 5 . 11 :

 511 Figure 5.11: Test trajectory for EKF (refence trajectory: magenta, actual trajectory: blue).

Figure 5 . 12 :

 512 Figure 5.12: ROS minimal structure example.

Fig. 5 .

 5 [START_REF] Refsnes | Design of control system of torpedo shaped ROV with experimental results[END_REF]. It consist on several nodes (represented by an ellipse) which are in 5.4. Validation 127 charge of manipulating data. On the left we can see two nodes called Submarine, these nodes are interchangeable and represent a simulation of the underwater vehicle or the real robot. In each case, the data created by these nodes are the ones of an (IMU) and a depth sensor: u, v, ẇ, p, q, r, , ✓, and z.The IMU data and the depth of the robot are used by a node called Submarine Localization, in charge of using the Kalman filter in order to estimate ⌘ 1 , ⌘ 2 , ⌫ 1 and ⌫ 2 . A node called Path planner Controller, calculates the reference trajectory to follow. It determines in each moment where the robot should be.

Figure 5 . 13 :

 513 Figure 5.13: Control architecture in ROS of the RSM Robot.

Figure 5 . 14 :

 514 Figure 5.14: Software-in-the-loop schematic representation.

Figure 5 . 15 :

 515 Figure 5.15: Processor-in-the-loop schematic representation.

Figure 5 . 16 :

 516 Figure 5.16: Simulations using SIL and PIL techniques.

⇥i

  , each of which is controlled by specific parameters summarized in the sets ⇥ i ⇢ IR. s ⇥s : (I [ I µ+ ) ! I µ (6.5) denotes the selection operator, which may change the number of individuals from or + µ to µ, where µ, 2 IN and µ = is permitted. An additional set ⇥ s of parameters may be used by the selection operator. µ is the number of parent individuals, while denotes the number of o↵spring individuals. Finally, ◆ : I µ ! {true, false} is a termination criterion for the EA, and the generation transition function : I µ ! I µ describes te complete process of transforming a population P into a subsequent one by applying genetic operators and selection:

  (c) Mutation: A change of value of the genes (alleles) of the individuals is applied. The change (from 0 to 1 or conversely) is decided by stochastic methods (each gene has a tiny probability of being mutated) (d) Population replacement: The new generation created by the previous operators replaces completely the old generation.

4 .Figure 6 . 1 :

 461 Figure 6.1: Genetic Algorithm.

  pc: crossover probability pm: mutation probability µ : number of individuals per generation g : number of maximum generations

Figure 6 . 2 :

 62 Figure 6.2: Rasringin function with n = 2 (2D).

6. 3 .Figure 6 . 3 :

 363 Figure 6.3: Best and average fitness evolution for Rastringin optimization problem.

6. 3 .

 3 Adaptation to AUV propulsion design

Figure 6 . 4 : 6 . 3 . 1 ---

 64631 Figure 6.4: Evolution of the n variables of the Rastingin optimization problem.

6. 3 .

 3 Adaptation to AUV propulsion design 146 6.3.1.

Figure 6 . 5 :

 65 Figure 6.5: Structure of RSM robot (IRDL-ENIB, Brest Ifrement bassin).

Figure 6 . 6 :

 66 Figure 6.6: Thrusters position encoding (example of RSM robot).

Figure 6 . 7 :

 67 Figure 6.7: Thruster orientation encoding.

Figure 6 . 8 :

 68 Figure 6.8: Maximum and average fitness of population for the optimized controller research.

Figure 6 . 9 :

 69 Figure 6.9: Evolution of parameters of the best individual of each generation.

Figure 6 . 10 :

 610 Figure 6.10: Maximum and average fitness of population for the optimized position of the point e.

Figure 6 . 11 :

 611 Figure 6.11: Evolution of the coordinates of e.

Figure 6 . 12 :

 612 Figure 6.12: Position of e on the robot.

Figure 6 . 13 :

 613 Figure 6.13: Evolution of the position of the thrusters of the RSM robot.

Figure 6 . 14 :

 614 Figure 6.14: Position of thrusters on the robot.

Figure 6 . 15 :

 615 Figure 6.15: Best and average fitness for the optimization of RSM robot thrusters orientation.

Figure 6 . 16 :

 616 Figure 6.16: Orientation of thrusters on the RSM robot.

Figure 6 . 17 :

 617 Figure 6.17: Optimization of the RSM robot parameters using sequential evolution.

Figure 6 . 18 :

 618 Figure 6.18: EAUVIVE simulation and error evolution for circle task (sequential optimization).

Figure 6 . 19 :

 619 Figure 6.19: Resulting robot for the sequential optimization.

Figure 6 . 20 :

 620 Figure 6.20: Forces and power consumption during the circle mission (sequential opt.).

Figure 6 . 21 :

 621 Figure 6.21: Fitness evolution for the global optimization of the RSM robot.

Figure 6 . 22 :

 622 Figure 6.22: EAUVIVE simulation and kinematic error evolution for circle task (global opt.).

6. 4 .

 4 Global optimization of underwater robots 174

Figure 6 . 23 :

 623 Figure 6.23: Final configuration of the RSM robot after global optimization.

Figure 6 . 24 :

 624 Figure 6.24: Forces and power consumption during the circle mission (global opt.).

Figure 6 . 25 :

 625 Figure 6.25: Trajectory for water turbine inspection.

Figure 6 . 26 :

 626 Figure 6.26: Global optimization fitness for seabed scanning phase.

Figure 6 . 27 :

 627 Figure 6.27: EAUVIVE simulation and kinematic error evolution for seabed scanning.

Figure 6 . 28 :

 628 Figure 6.28: Final propulsion system for seabed scanning robot.

Figure 6 . 29 :

 629 Figure 6.29: Forces and power consumption during the seabed scanning task.

Figure 6 . 30 :

 630 Figure 6.30: Diving phase global fitness evolution.

Figure 6 .

 6 Figure 6.31 shows the simulation of the task and the evolution of the kinematic error. In this figure we see how the robot follows the trajectory diving horizontally (not using pitch). Indeed, the GA found that with this diving strategy it can maintain a kinematic error inferior to 10cm.

Figure 6 . 31 :

 631 Figure 6.31: EAUVIVE simulation and kinematic error evolution for diving phase.

6. 4 .

 4 Global optimization of underwater robots 183

Figure 6 . 32 :

 632 Figure 6.32: Final configuration for diving phase after global optimization.

Figure 6 . 33 :

 633 Figure 6.33: Forces and power consumption during the diving task.

Figure 6 . 34 :

 634 Figure 6.34: Fitness evolution for tomography phase.

Figure 6 .

 6 Figure 6.35 shows the simulation of the task and the evolution of the kinematic and yaw error. We can note the slow but steady convergence of the position during the first stage of the simulation, which stabilizes with an error inferior to 10cm. The yaw exhibits a faster convergence, and stabilizes with an error inferior to 0.1 rad (0.57 ).

Figure 6 . 35 :

 635 Figure 6.35: EAUVIVE simulation and kinematic error evolution for tomography phase.

Figure 6 . 36 :

 636 Figure 6.36: Final configuration for tomography task.

Figure 6 . 37 :

 637 Figure 6.37: Forces and power consumption during the tomography task.

Figure 6 . 38 :

 638 Figure 6.38: RSM robot fitness for seabed inspection (dynamic conf.).

Figure 6 .Figure 6 . 39 :

 6639 Figure 6.39 shows the simulation and the evolution of the kinematic error. The complexity of the tasks is observed in the evolution of the error. Indeed,

Figure 6 .

 6 Figure 6.40: RSM robot for seabed inspection (dynamic conf.).

Figure 6 . 41 :

 641 Figure 6.41: Forces and power consumption during the seabed scanning phase (dyn. conf.).

Figure 6 . 42 :

 642 Figure 6.42: RSM robot fitness for the diving phase (dynamic conf.).

Figure 6 . 43 :

 643 Figure 6.43: EAUVIVE simulation and kinematic error evolution for diving phase (Dyn. conf.).

Figure 6 . 44 :

 644 Figure 6.44: Final robot for diving phase (dynamic conf.).

K p = 2 .

 2 [START_REF] Whitcomb | Comparative experiments in the dynamics and model-based control of marine thrusters[END_REF], this means that the kinematic controller slowly reacts to the error but makes the dynamic controller rapidly compensate the dynamic e↵ects.

Figure 6 . 45 :

 645 Figure 6.45: Forces and power consumption during diving phase (dyn. conf.).

Figure 6 . 46 :Figure 6 . 47 :

 646647 Figure 6.46: Fitness evolution for tomography phase (dynamic conf.).

Figure 6 . 48 :

 648 Figure 6.48: Final robot configuration for the tomography phase (dynamic conf.).

Figure 6 . 49 :

 649 Figure 6.49: Forces and power consumption during tomography(dyn. conf.).

  , O. Chocron, and M. Benbouzid, "AUV Propulsion Systems Modeling Analysis," Int. Rev. Model. Simulations (IREMOS) , vol. 7, no. 5, pp. 827-837, 2014. .39 EAUVIVE simulation and kinematic error evolution for seabed scanning phase (Dyn. conf.). . . . . . . . . . . . . . . . . . . . 6.40 RSM robot for seabed inspection (dynamic conf.). . . . . . . . 6.41 Forces and power consumption during the seabed scanning phase (dyn. conf.). . . . . . . . . . . . . . . . . . . . . . . . . 6.42 RSM robot fitness for the diving phase (dynamic conf.). . . . . 6.43 EAUVIVE simulation and kinematic error evolution for diving phase (Dyn. conf.). . . . . . . . . . . . . . . . . . . . . . . . . 6.44 Final robot for diving phase (dynamic conf.). . . . . . . . . . . 6.45 Forces and power consumption during diving phase (dyn. conf.).194 6.46 Fitness evolution for tomography phase (dynamic conf.). . . . 6.47 EAUVIVE simulation and kinematic error evolution for tomography phase (Dyn. conf.). . . . . . . . . . . . . . . . . . . 6.48 Final robot configuration for the tomography phase (dynamic conf.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.49 Forces and power consumption during tomography(dyn. conf.).

-E. P. Vega, O. Chocron, J. V.

Ferreira

, M. Benbouzid, and P. S. Meirelles, "Evaluation of AUV fixed and vectorial propulsion systems with dynamic simulation and non-linear control," in IECON 2015 -41st Annu. Conf. IEEE Ind. Electron. Soc. IEEE, nov 2015, pp. 944-949. -E. P. Vega, O. Chocron, and M. Benbouzid, "A Flat Design and Validated Model for AUV Reconfigurable Magnetic Coupling Thruster", IEEE/ASME Trans. Mechatronics, vol. 21, no. 6, pp. 2892-2901, Dec 2016. 6

Table 1 .

 1 1: Résultats obtenus avec reconf. dyn et opt. globale.

	Approche	Tâche	Meilleure fitness
		Scan du fond marin	47.97
	Opt. Globale	Plongée	50.2
		Tomographie	32.45
		Scan du fond marin	35.52
	Reconf. dyn	Plongée	36.4
		Tomographie	34.17

Table 4 .

 4 1: RSM characteristics. These values will be useful later, to calculate di↵erent parameters and coe cients to run the simulation.

	Category	Symbol Name and unit			Value
		R		Circular section radius [m]			0.1
		L		Length [m]			0.6
		m		Mass [kg]			18.71
		W		Weight [N]			183.6
	Rigid Body	B b P	B	Buoyancy force [N] Pos. buoyancy center [m]			184.5 [0 0 0] T
		b P	G	Pos. gravity center [m]	2	[0 0 0.0125] T 0.097 0 0	3
		J		Inertia matrix [kg m 2 ]	4	0	0.611	0	5
						0	0	0.608

. 2 Table 4 .

 24

	2: Added mass and hydrodynamic terms.
		RSM Robot
		X	u	-1.872 kg
		Y		v	-1.881 kg
	Added Mass	Z K	ẇ ṗ	-1.881 kg 0.0 kg.m 2
		M	q	-0.057 kg.m 2
		N		ṙ	-0.057 kg.m 2
		X	u|u|	-12.541 kg/m
		Y	v|v|	-71.856 kg/m
	Hydrodynamic	Z	w|w|	-71.856 kg/m
	Damping	K	p|p|	0.0	kg.m 2 /rad 2
		M	q|q|	-3.88	kg.m 2 /rad 2
		N	r|r|	-3.88	kg.m 2 /rad 2
	4.3.1.2 Propulsion system model

Table 4 .

 4

		3: Summary of results
		RSM Robot
	Task	Fixed Propulsion Vectorial Propulsion
	Forward speed	1.22 m/s	1.19 m/s
	Dive Speed	0.515 m/s	0.641 m/s
	Circular Speed	0.992 m/s	0.996 m/s
	Diving in a confined space 0.515 m/s	0.555 m/s
	Horizontal slalom	1.066 m/s	1.048 m/s
	Vertical slalom	0.692 m/s	1.019 m/s
	significant advantage to the vectorial propulsion approach and shows the
	potential superiority of this technology.

Table 6 .

 6 1: Evolutionary parameters for Rastringin optimization test.

	Parameter	Symbol Numerical value
	Crossover probability	pc	0.5
	Mutation probability Population size	pm µ	1.786 ⇥ 10 3 1290
	Number of generations	g	560
	Number of parameters	n	20
	Enconding bits per parameter	k	14
	6.2.3.3 Results

Table 6 .

 6 2: Configuration of design parameters.

	Name			Symbol Enc. bits	Range	Resolution
	Activation bit	a	1	[0, 1]	-
	Thruster pos.(x)	P	ix	5	[-0.3 m,0.3 m]	0.019 m
	Thruster pos.(y)	P	iy	5	[-0.1 m,0.1 m]	0.006 m
	Thruster pos.(z)	P	iz	5	[-0.1 m,0.1 m]	0.006 m
	Thruster or. (ỹ	b )	✓	i	7	[ ⇡/2, ⇡/2]	0.025 rad
	Thruster or.(z	b )					i	7	[ ⇡/2, ⇡/2]	0.025 rad
	Kin. gain			⇤	8	[0, 63,75]	0.25
	Dyn. gain			K	p	8	[0, 63,75]	0.25

Table 6 .

 6 4: Evolutionary parameters for control only sub-problem.

	Parameter	Symbol Numerical value
	Population size	µ	20
	Number of generations	g	35
	Number of parameters	n	p	2
	Number of coding bits	k	8
	Size of genotype Crossover probability	s pc gen	2 ⇤ 8 = 16 0.5
	Mutation probability	pm	31.25 ⇥ 10 3

Table 6 .

 6

	5: Controller configuration parameters for the evolution best indi-
	vidual
	Parameter	Symbol Numerical value
	Kinematic gain			1.506
	Dynamic gain	K	p	0.25

Table 6 .

 6 6: Evolutionary parameters for e position sub-problem.

	Parameter	Symbol Numerical value
	Population size	µ		20
	Number of generations	g		30
	Number of parameters	n	p	3 (x	e , y	e , z	e )
	Number of coding bits	k		5
	Size of genotype Crossover probability	s pc gen	3 ⇤ 5 = 15 0.5
	Mutation probability	pm	32 ⇥ 10 3

Table 6 .

 6 7: Evolutionary parameters for thruster position sub-problem.

	Parameter	Symbol	Numerical value
	Population size	µ	40
	Number of generations	g	120
	Number of parameters Number of coding bits	n k p	4 ⇤ 3 = 12 (P 5	ix , P iy , P iz )
	Size of genotype Crossover probability	s pc gen	4 ⇤ 3 ⇤ 5 = 60 0.5
	Mutation probability	pm	8.35 ⇥ 10 3

Table 6 .

 6 8: Evolutionary parameters for thruster orientation sub-problem.

	Parameter	Symbol Numerical value
	Population size	µ	40
	Number of generations	g	160
	Number of parameters Number of coding bits	n k p	4 ⇤ 2 = 8 (✓ 7	i ,	i )
	Size of genotype Crossover probability	s pc gen	4 ⇤ 2 ⇤ 7 = 56 0.5
	Mutation probability	pm	8.93 ⇥ 10 3

Table 6 .

 6 9: Evolutionary parameters for sequential optimization.

		Parameter	Symbol Num. value
		Population size			µ	40
	Position	Number of generations Number of parameters		g n p	120 12
		Number of coding bits			k	5
		Size of genotype	s	gen	60
		Crossover probability		pc	0.5
		Mutation probability Crossover probability	pm pc	8.35 ⇥ 10 3 0.5
		Population size			µ	40
	Orientation	Number of generations Number of parameters		g n p	160 8
		Number of coding bits			k	7
		Size of genotype	s	gen	56
		Crossover probability		pc	0.5
		Mutation probability Crossover probability	pm pc	8.93 ⇥ 10 3 0.5
		Population size			µ	40
	Controller	Number of generations Number of parameters		g n p	65 5
		Number of coding bits (gains)	k	gains	8
		Number of coding bits (e)		k	e	5
		Size of genotype	s	gen	31
		Crossover probability		pc	0.5
		Mutation probability	pm	16.1 ⇥ 10 3

Table 6 .

 6 10: Evolutionary parameters for global optimization.

	Parameter	Symbol Numerical value
	Population size			µ	60
	Number of generations				g	230
	Number of parameters		n	p	25
	Number of coding bits (thrust. or.)	k	pos	5
	Number of coding bits (thrust. pos.)	k	or	7
	Number of coding bits (gains)	k	gains	8
	Number of coding bits (e. pos.)		k	e	5
	Size of genotype	s	gen	147
	Crossover probability		pc	0.5
	Mutation probability	pm	3.4 ⇥ 10 3

Table 6 .

 6 11: Evolutionary parameters for topology research.

	Parameter	Symbol Numerical value
	Population size			µ	50
	Number of generations				g	max 600
	Number of parameters		n	p	77
	Number of coding bits (thrust. or.)	k	pos	5
	Number of coding bits (thrust. pos.)	k	or	7
	Number of coding bits (gains)	k	gains	8
	Number of coding bits (e. pos.)		k	e	5
	Size of genotype	s	gen	391
	Crossover probability		pc	0.5
	Mutation probability	pm	1.27 ⇥ 10 3

Table 6 .

 6 12: Evolutionary parameters for dynamic configuration.

	Parameter	Symbol Numerical value
	Population size			µ	40
	Number of generations				g	max 500
	Number of parameters		n	p	25
	Number of coding bits (thrust. or.)	k	pos	5
	Number of coding bits (thrust. pos.)	k	or	7
	Number of coding bits (gains)	k	gains	8
	Number of coding bits (e. pos.)		k	e	5
	Size of genotype	s	gen	147
	Crossover probability		pc	0.5
	Mutation probability	pm	5.74 ⇥ 10 3

Table 6 .

 6 13: Results obtained with dyn. conf and global opt.

	Approach	Task	Best fitness
		Scanning of seabed	47.97
	Global opt.	Diving toward turbine	50.2
		Tomography of turbine	32.45
		Crossover probability	35.52
	Dyn. configuration	Scanning of seabed	36.4
		Diving toward turbine	34.17

Institut de Recherche Dupuy de Lôme CNRS FRE 3744, Brest-Lorient, France

http://www.seabotix.com/products/auv thrusters.htm

ENIB AUV In Virtuo Experiment (IRDL-ENIB)

Technique et Matériel Magnetique. Company based in Brest, France

Technique et Matériel Magnetique. Company based in Brest, France

4.2. Propulsion modeling

www.futaba-rc.com/servos/analog.html

www.seabotix.com/products/auv thrusters.htm

= 12.75 cos(0.72 t) the AUV equipped with vectorial propulsion achieves a speed of 1.048 m/s, slower but close to the fixed strategy.

P = V I (5.22)

Acknowledgments

Vertical slalom:

This slalom is similar to the previous one but must be performed in the vertical plane. An additional di culty for the AUV is that it has to cope with its positive buoyancy. Again, the objective of the task is to evaluate the average speed along the x 0 -axis. For the fixed propulsion system, the following open loop control law has been used:

3 = 0.5 + 6.5 cos(0.4 t) u 4 = 0.5 + 6.5 cos(0.4 t) The evaluated speed is 0.692 m/s.

The vectorial system open loop control is is:

1 = 1.6 + 30 cos(0.7 t) 1 = 0 Despite the presence of a restoring moment, the vectored architecture succeed to follow the proposed path, achieving a speed of 1.019 m/s, which is significantly better.

Results

Table 4.3 summarizes the results for the two propulsive strategies analyzed in the previous section. As can be seen, some of them give advantage to fixed propulsion (rather small) and some others to its vectorial counterpart (more significant).

In forward speed and in horizontal slalom tasks, the fixed strategy is slightly better, which can be explained by the use of non thrusting actuators (servomotors) for the vectorial one.

Vectorial propulsion has a better performance in diving tasks. This is explained by the fact that vectorial propulsion can orientate the robot body in order to have weaker drag forces during the progression. This gives a

5.1.6 Numerical validation

Mission simulation

A simulation for each propulsive strategy has been carried out. Since the fixed thruster configuration has its center of gravity between vertical thrusters, this task is straightforwardly performed. Consequently, the AUV dives along the vertical line, keeping a zero pitch angle (black dotted line if Fig. 5.5). Because of its actuation, the AUV equipped with vectorial propulsion needs to orient itself vertically (blue dotted line in Fig. 5.5). In order to perform such a motion, the computed torque method controls the pitch angle of the propeller ✓ 1 . Fig. 5.5 shows the paths followed by the AUVs equipped with fixed and vectorial propulsion. We can see how the vectorial AUV diverts from the desired trajectory since it must rotate. After the abrupt change of direction the AUV equipped with the vectorial propulsion manages to recover the vertical trajectory and ends up converging towards it.

Figures 5.6 and 5.7 show the control inputs for the fixed and the vectorial systems respectively. We can observe that the fixed control inputs stabilize for horizontal and vertical thrusters rather quickly. Meanwhile, the vectorial system thruster pitch (✓ 1 ) varies greatly during the diving. This can be explained by the fact that the thruster is behind the tracking point and the AUV center, which causes the control of the vehicle to be complicated.

with N ekin and N energ the normalizing factors corresponding to the kinematic error integral and the energy consumption, respectively. The first factor is calculated as the integral of the kinematic error for a static robot (not using at all its thrusters), its numerical value is 19 m s. The second factor is the energy consumed by the robot when all the four thrusters are saturated for the duration of the task, the numeric value is 4728 J.

For each subproblem, a predefined configuration of the RSM robot will be taken. The evolution will only act on one parameter concerned by the subproblem, leaving the rest with the standard configuration. Said standard configuration is shown in table 6.3 and it has a calculated fitness of 15.66.

Optimization of control gains

The first sub-problem to address concerns the definition of the most suited controller gains. In this case, x will contain only the elements of G = (⇤, K p ) 2 [0, 63.75]. Given the reduced nature of the problem, the GA optimization parameters need to be adapted. Taking into account the given procedure to select these parameters (Section 6.2.3), we obtain the values of Table 6. 4 The population size parameter, as for the crossover and mutation operator, depends on the application. Unlike the Rastringin example, here F e gives little information due to the fact that it corresponds to the numerical precision of the computer. In the literature we find several propositions for the population size, however a general rule for its determination is not avail-

Task-based Design and Optimization of Reconfigurable Propulsion Systems for Autonomous Underwater Vehicles

Abstract

In this PhD thesis, the optimization of the propulsion and control of AUVs is developed. The hydrodynamic model of the AUVs is examined. Additionally, AUV propulsion topologies are studied and models for fixed and vectorial technology are developed. The fixed technology model is based on an off the shelf device, while the modeled vectorial propulsive system is based on a magnetic coupling thruster prototype developed in IRDL (Institut de Recherche Dupuy de Lôme) at ENI Brest. A control method using the hydrodynamic model is studied, its adaptation to two AUV topologies is presented and considerations about its applicability will be discussed. The optimization is used to find suitable propulsive topologies and control parameters in order to execute given robotic tasks, speeding up the convergence and minimizing the energy consumption. This is done using a genetic algorithm, which is a stochastic optimization method used for task-based design. The results of the optimization can be used as a preliminary stage in the design process of an AUV, giving ideas for enhanced propulsive configurations. The optimization technique is also applied to an IRDL existing robot, modifying only some of the propulsive topology parameters in order to readily adapt it to different tasks, making the AUV dynamically reconfigurable.