Un drone est un système conçu pour effectuer des tâches dans le monde physique sans qu’un opérateur humain ne soit physiquement à bord.
Il peut être télécommandé, partiellement autonome ou entièrement autonome, selon son niveau de sophistication technologique.
Contrairement à la perception courante qui limite les drones aux seuls appareils volants, le terme englobe une vaste classe de systèmes
robotiques capables d’opérer dans les airs, au sol, à la surface de l’eau, sous l’eau, ou même dans l’espace extra-atmosphérique.
Ce qui caractérise fondamentalement un drone est sa capacité à percevoir son environnement, à se déplacer dans le but d'accomplir une mission.
Les drones sont utilisés dans un large éventail de domaines civils, industriels, scientifiques et gouvernementaux.
Un drone fonctionne grâce à l’intégration de plusieurs sous-systèmes fondamentaux qui opèrent ensemble comme un tout unifié.
Les capteurs fournissent au drone des informations sur son état interne et sur son environnement externe.
Il peut s’agir de caméras, de centrales inertielles, de récepteurs de navigation par satellite, de radars, de lidars, de sonars
selon le domaine d’exploitation.
Un ordinateur embarqué traite les données issues des capteurs et exécute les algorithmes de commande et la logique de prise de décision.
Ce cours est le résultat d'une fusion de 2 autres cours : Arduino et BCA (Boucle Capteur-Actionneur) qui se tenaient avant 2026.
Il comprend 31 heures et s'adresse aux 1A de l'ENSTA (Brest), commence en février 2026 et s'intègrera par la suite à la formation FIDS.
A la fin du cours, l'étudiant sera capable de concevoir, fabriquer, programmer et rendre autonome un robot mobile.
Le robot choisi est un DD-Boat (bateau de 80cm), utilisé par les 2A de la spécialité Robotique sur le lac de Guerlédan depuis plus de 10 ans.
Afin de pouvoir paralléliser les TDs et les expérimentations, la partie expérimentale pourra se faire, sans obligation, le soir (17h45-19h) ou le jeudi après midi,
dans des salles de TD (E007) ou bien dans le bassin de l'ENSTA.
En cas de problème avec le bassin ou d'indisponibilité des étudiants, nous aurons recours aux simulations.
Un des objectifs de ce cours est de savoir passer librement et dans les deux sens d'un niveau d'abstraction élevée (théorie) à l'expérimentation.
Dans ce cours, les différents points abordés seront :
- Les capteurs (erreurs + calibration) avec le GNSS, les magnétomètres, les accéléromètres
- Les actionneurs, avec plus d'attention sur les propulseurs
- Systèmes embarqués
- Modélisation des véhicules sous la forme d'équations d'état
- Régulation des robots mobiles (suivi de lignes, rejoindre un waypoint)
- Simulation des systèmes dynamiques (Python)
- Communication (wifi, ssh)
- Implémentation des lois de commande et de filtrage sur drone réel en Python
- Tests et calibration sur DD-Boats hors de l'eau
- Challenge en bassin (DD-Regatta)
Détails pratiques
- Nous avons 16 DD-boats disponibles et fonctionnels.
- Vous ne pouvez pas modifier la partie mécanique ou électronique d'un DD-Boat.
- Il est interdit de changer les mots de passe dans le DD-Boats.
- La DD-Regatta se fera dans le grand bassin, une heure max par équipe.
- Chaque équipe d'étudiants sera composée de cinq personnes.
- Il y un représentant étudiant pour chaque équipe.
- Le petit bassin (10 m^2) pourra être utilisé pour les tests.
- Le comité "Bassin" est composé de F. Le Bars, F. Ruffier, O. Ménage, P.A. Blanc.
- Il est indispensable de demander au comité bassin pour la logistique autour du bassin (ouverture, déplacement de la passerelle, entreposer du matériel, ...)
- La partie en bassin correspond à ce que l'on appelait 'Advance' en BCA et n'est pas strictement obligatoire, mais avec une inscitation forte.
- Une alternative en simulation est possible pour ceux qui ne peuvent pas faire l'épreuve en bassin.
- Les chatbots peuvent être utilisés dans le cadre de cette matière, sauf pendant les cours en amphi et en examen.
Fichiers
Cours et énoncés des exercices.
Programmes de démarrage en Python (starter programs). Vous pouvez les utiliser pour commencer vos exercices.
Librairie à utiliser ddboatlib.py.
Le séquencement détaillé, en cours de construction, est donné ci-dessous.
Cours du soir
Certains étudiants en robotique 2A se proposent de vous aider le soir ou le jeudi après midi.
Ils peuvent vous aider sur les TD, ou sur la pratique des DD-Boats.
Pour vous inscrire :
Jalons
Un ensemble de jalons sont demandés par groupe.
Valider ces jalons vous donne des points qui constituent votre note finale (/20).
♦ Jalon 1. Simulateur (/2)
Vous devez montrer votre simulateur (voir chapitre 2 du cours) à un encadrant et justifier vos choix.
Téléopérer le DD-Boat au clavier dans le bassin robotique.
Les données magnétiques et les sorties GPS (lat-long) doivent être générées.
♦ Jalon 2. Trace GPS (/2)
Prenez un DD-boat et allez faire un tour dans l'école autour du terrain de foot. Enregistrez votre parcours et tracez votre trajectoire sur Google Earth.
Montrer à un encadrant.
♦ Jalon 3. Calibration des magnétomètres (/2)
Comme expliqué au chapitre paragraphe 3.5, calibrez votre magnétomètre. Montrez l'ellipsoide des mesures effectuées et la correction correspondante.
Montrez que vous arrivez à obtenir le cap du DD-Boat en affichant sur votre PC sur un cercle trigonométrique le cap estimé par votre DD-Boat. Pour cela, il vous faudra
utiliser des sockets pour communiquer entre le programme Python de votre DD-Boat et le programme d'affichage sur votre PC.
♦ Jalon 4. Commande (/2) .
Implémenter une loi de commande sur votre DD-Boat vous permet de rejoindre à pied un point A (le centre du terrain de foot par exemple)
ou faire suivre une ligne.
Voici le principe :
Sur le terrain, l'évaluateur suit les indications données par votre DD-Boat en regardant uniquement ses propulseurs :
Si le propulseur gauche tourne (le droit reste immobile), alors, dévier vers la droite
Si le propulseur droit tourne (le gauche reste immobile), alors, dévier vers la gauche
Si les 2 propulseurs tournent, c'est que le point A est dépassé
Si vous realisez tous ces jalons devant vos encadrants et que vous êtes capables de justifier correctement votre travail,
vous avez une note supérieure à 8/20.
Vous pourrez alors faire vos premières expérimentations en bassin.
Les 12 points restants dépendent de vos performances lors de la DD-Regatta (6 points) et de l'examen sur table (6 points).
Notes
Il n'y aura une seule note. Cette note prendra en compte les jalons, la DD-Regatta et l'examen sur table (QCM).
Challenge
Le tableau qui suit est visible de tous (uniquement pendant la période du challenge).
Il est modifiable uniquement par vos encadrants (Natacha et Luc).
QCM
L'examen sur table se tiendra le lundi 1er juin de 11h20 à 12h15 en salle d'examen.
Il s'agit d'un QCM avec un et une seule bonne réponse.
Vous pouvez venir avec une feuille recto-verso A4 contenant des notes de cours.
Il vous faudra un stylo noir (pas de crayon de papier), et du blanco.
La calculatrice, le téléphone, ou tout autre appareil électronique sont interdits.
Votre trousse doit rester dans vos sacs.
Le jours de l'examen, trois feuilles vous seront données :
Deux pour l'énoncé et une feuille de réponse qu'il faudra rendre aux encadrants avant de sortir.
L'image ci-dessous illustre le type de feuille à rendre.
Il ne faudra remplir cette feuille qu'au tout dernier moment, une fois que vous n'avez plus d'hésitations sur vos réponses.
Une fois l'examen terminé, vous devez ranger vos affaires et sortir par la porte sud (côté tableau).
Vous donnerez votre feuille avec les réponses à un encadrant qui sera placé près du tableau.
Virtual Regatta
Avant les tests réels en bassin, vous pouvez tester vos algorithmes de régulation en participant à la virtual regatta.
La virtual regatta est inspirée du jeu de simulation de voile en ligne
Cette virtual regatta est facultative.
Vous pourrez vous entraîner à la virtual regatta lors des cours du soir et pendant les cours en amphi 3.
La virtual regatta est programmée par Toméo Bourin (un de vos encadrants) à l'aide d'Unity.
Unity est un moteur de jeu qui intègre un moteur physique (gravité, collisions, forces) et le moteur graphique (affichage 3D).
Le monde créé par Toméo est le bassin robotique peuplé de DD-Boats uniquement.
Le principe est le suivant.
Vous êtes client et votre programme (un régulateur) envoie au serveur (ordinateur encadrant projeté sur l'écran : voir photo 1 de la galerie, ci-dessous)
les commandes propulseurs (u1, u2 in [-5,5]).
Le serveur intègre la physique et vous renvoie la position GPS (latlong) de votre DD-Boat ainsi et le champ magnétique mesuré par le magnétomètre.
Télécharger le client et le serveur ici :
DD-Regatta
La DD-Regatta se passe au bassin principalement le lundi 18 mai et le jeudi 21 mai. La notation se fait par équipe.
Les détails de l'organisation, ainsi que le planning de la compétition se trouvent ci-dessous :