Un boomerang lancé par un humain peut parcourir une distance de 420m, bien supérieure à tout autre objet lancé qui
ne pourra pas dépasser les 100m. Le but de projet est de rendre un boomerang autonome afin qu'il soit capable de maintenir un cap
et donc qu'il ne revienne pas vers le lanceur.
Il faudra :
- Modéliser le boomerang afin de le simuler. Pour cela, on pourra s'influencer de l'article:
https://www.researchgate.net/publication/268562522_Boomerang_Flight_Dynamics
- Positionner les actionneurs afin d'influencer sa trajectoire
- Etablir les lois de commande adaptées.
Nivellement d'un terrain
On imagine un environnement fait de sable ou de terre.
Avec un robot à roues muni d'une mini-pelle, on veut égaliser la surface du terrain, en la rendant plane et horizontale.
Le robot possède comme capteur un GPS, une boussole et lidar.
Remonter la houle
On considère un flotteur autonome qui possède comme unique actionneur un piston ballast qui lui permet changer de changer sa flottabilité.
Il peut ainsi flotter ou couler. En jouant sur le mouvement de houle, on va chercher à choisir la bonne profondeur afin de remonter ou descendre la houle.
Le robot roue
L'objectif est de concevoir et réaliser un robot constitué d'une roue de vélo
et de l'utiliser comme comme un robot dans un terrain accidenté.
Les actionneurs de ce robot seront des servo-moteurs capable de faire un transfert de
masse afin de propulser la roue, mais aussi la diriger. Les capteurs seront le GPS,
un centrale d'attitude et une caméra.
L'intérêt d'un tel robot est sa nouveauté (rien de tel existe), son coût (pas cher),
son stockage (tient facilement dans un sac), sa robustesse, sa capacité à franchir
un obstacle (bordure de trottoir par exemple), ...
Il vous faudra réaliser les tâches suivantes
1) Trouver les équations d'état du robot roue.
2) Simuler ce système avec graphisme OpenGL et QT-C++.
3) Proposer une loi de commande par transfert de masse pour propulser
et diriger le robot.
4) Réaliser le robot à partir d'une roue de vélo, d'un smartphone/ardupilot,
et des servo-moteurs.
5) Implémenter la loi de commande et tester sur une mission de type suivi de chemin.
Tour d'une île par un robot sous-marin
L'objectif est de concevoir une loi de commande référencée capteur qui permette
à un robot sous-marin d'effectuer le tour d'une île. Les capteurs utilisés
seront une boussole et un sonar sectoriel. Ce dernier
tourne autour du robot et renvoie les distances aux obstacles les plus proches
suivant le direction pointée
par le sonar. Le robot n'est pas capable de se localiser et ne connaît pas l'île
qu'il doit entourer. Le projet se décomposera comme suit.
(1) Concevoir un simulateur 3D faisant évoluer un robot dans un environnement sous-marin.
Le robot sera décrit par des équations d'état et le fond sera généré aléatoirement.
Les données de distance recueillies par le sonar devront être générées par le simulateur.
(2) Concevoir la loi de commande et valider sur le simulateur avec différents sénarios.
(3) Implémenter cette loi de commande sur un robot sous-marin.
(4) Valider en piscine puis en mer autour de l''île des morts en rade de Brest.
Jeu des Buggys
Une équipe de robots mobiles doit participer à des jeux collectifs de plein-air
contre des joueurs humains. L'idée serait de valider ce concept à travers
une démonstration simple, mais convaincante, utilisant une stratégie collective.
On considère une équipe de plusieurs robots à roues (de type buggy) munis chacun
d'un smartphone. Cette équipe doit participer à un jeu dont les règles
doivent être inventées, mais peuvent ressembler à celle énoncées ci-dessous.
1) Le jeu se passe sur un terrain de foot, avec 10 joueurs (humains) habillés
en rouge et 10 robots.
2) Ni les robots ni les joueurs ne peuvent sortir du terrain.
3) Les robots partent du centre du terrain.
4) Les robots cherchent à toucher les joueurs. Dès qu'un joueur est touché,
il est éliminé et sort du terrain.
Les robots de même avec leur électronique (moteurs, cartes de puissance, smartphones)
seront mis à disposition. Pour l'intelligence du robot, un algorithme distribué
à base de graphe devra être implémenté. Pour cela, le terrain sera décomposé
en carrés de 5 mètres de coté. Chaque carré correspond à un nœud du graphe.
Robot asservi sur une séquence vidéo
Ce projet est une composante importante du concours de robotique
sous-marine SAUCE. Connaissant une séquence vidéo de
référence prise par ce même robot lors d'une phase télé-opérée,
la mission du robot est de refaire le même parcours en toute autonomie en se
basant uniquement sur la séquence vidéo de référence. Pour ce projet, le robot
devra (1) trouver dans la vidéo de référence, l'image la plus proche
de ce qu'il voit, (2) déduire sa position relativement à sa position de
référence et (3) actionner les moteurs de façon à accomplir sa mission
tout en se recalant par rapport à sa trajectoire de référence.
Cartographie 3D en environnement urbain
Le but du projet est de reconstruire une
cartographie 3D d'un environnement urbain à partir d'une séquence vidéo. On
dispose d'une séquence vidéo prise par un robot. On connaît pour chaque image
de la séquence la position et l'orientation de la caméra avec une précision
assez grossière. Le projet peut se décomposer en deux parties.
D'une part , il faut concevoir un logiciel capable
d'aider à la mise en correspondance en les points d'images consécutives.
Ensuite, il s'agit d'estimer la position absolue tridimensionnelle de tous
les points reconnus. On génère alors un fichier texte contenant un
ensemble d'objets de formes géométriques simples (polygones) ainsi que les
positions de leurs sommets.
D'autre part, à partir du fichier texte généré dans la première partie, il faut
redessiner une vue tridimensionnelle des objets cartographiés. Cette
partie sera programmée en C++ à l'aide d'une bibliothèque graphique de type OpenGL.
Big map
Dans ce projet, on cherche à reconstruire une carte temporelle d'une région ou d'une ville uniquement à partir
de photos d'archives postées par des volontaires sur un site dédié.
Pour cela, on définit un amer comme un point (x,y,z,tmin,tmax) ou (x,y,z) peut correspondre aux coordonnées
des points remarquables (à partir de maisons, ponts, bâtiments, route, etc.), et [tmin, tmax] l'intervalle temporelle correspondant
à l'existence de chacun de ces points.
L'objectif est de mettre en cohérence ces photos de façon automatique afin de les géolocaliser et de reconstruire une carte temporelle,
avec l'aide de quelques photos récentes déjà géolocalisées.
On pourra appliquer la méthode à partir de quelques photos prise à l'ENSTA-Bretagne sur différentes époques.
Conception et réalisation d'un voilier virtuel
Le but de ce projet est de concevoir un voilier
virtuel avec retour d'effort. Pendant que l'ordinateur simule un voilier avec
un graphisme réaliste l'utilisateur pilote le voilier à l'aide d'une barre et
d'une écoute. L'utilisateur doit ressentir la force de l'eau sur la barre et
celle du vent sur la voile. Le projet se décompose en quatre étapes.
1) réalisation d'une simulation avec un graphisme réaliste
réalisé avec OpenGl
2) réalisation d'une commande de moteurs à courant continu
à partir d'un PC, en C++. Ces moteurs devront commander la barre et
l'enroulement de l'écoute.
3) Intégration de l'ensemble afin de réaliser la maquette
de réalité virtuelle.
Conception d'un robot sauteur
Le but de ce projet est de concevoir un robot inertiel qui effectue une sorte
de marche/course. Nous raisonnerons en 2D. Le robot est équipé d'une seule jambe
(une simple tige en bois) et en haut de cette jambe, se trouve un volant d'inertie
actionné (il s'agit du seul actionneur qui possède le robot).
Le robot possède trois modes : le mode contact, le mode glissement et le mode vol.
Pendant le mode contact, le pied (point bas de la jambe) est immobile et se trouve sur le sol.
En mode glissement, le pied touche le sol, mais n'est plus fixe. En mode vol, ce pied
ne touche plus le sol.
Le projet se décompose en quatre étapes.
1) Modéliser le système sous la forme d'un système hybride avec des équations
d'état pour chacun des modes
2) Simuler le système en Python.
3) Trouver une loi de commande qui permette au robot de se tenir en position fixe.
4) Trouver une loi de commande qui permette au robot de courir.
Pour la course, on peut imaginer que la jambe se stabilise avec un angle non nul, ce qui permet
au volant d'inertie de prendre de la vitesse. Ensuite, le volant ce bloque afin de faire décoller le robot
par conservation du moment cinétique.
Conception d'un robot rouleur acrobate semi-autonome
Le but de ce projet est de reprendre la conception du 'Rolling Spyder' de Parrot
et de le rendre semi autonome afin qu'il ne décolle jamais, mais soit capable de rouler
dans toutes les situations, typiquement sur les murs, sur les toits ou sur les plafonds.
L'intérêt d'un tel système serait par exemple d'aller vérifier la qualité des ardoises d'un toit
sans avoir à utiliser un drone volant, ce qui est souvent interdit. La téléopération
doit rester, mais doit être rendue facile pour le pilote.
Le projet se décompose en quatre étapes.
1) Modéliser le système sous la forme avec des équations d'état
2) Simuler le système en Python.
3) Trouver un régulateur qui transforme le système en un système de type voiture de Dubins.
4) Implémenter votre régulateur sur un système réel (par exemple sur le Rolling Spyder).
Correction de trajectoire téléopéré d'un ballon de foot
Les enjeux financiers dans le football sont de plus en plus importants et il convient d'étudier des solutions
alternatives pour influencer la qualité du jeu de l'équipe de France à un coût raisonnable.
La trajectoire d'un ballon peut être influencée par sa rotation (effet Magnus). En courbant la trajectoire, cet effet
permet de tromper le gardien mais aussi de cadrer sa frappe en contournant un mur.
Or cette rotation peut être influencée par un petit disque d'inertie d'une dizaine de grammes (disque constitué des batteries)
et placé à l'intérieur du ballon, qui lui pèse 450g. La mise en rotation se fait par un moteur électrique cc commandé par deux
boucles de contrôle.
(a) La boucle interne influence la trajectoire, à droite ou à gauche, suivant la consigne d'orientation demandée, en utilisant
les données du gyroscope MEMS situé également à l'intérieur du ballon.
(b) La deuxième boucle externe procède d'un calcul fait à distance. Le résultat du calcul correspond à la consigne d'orientation (du type plus à droite ou plus à gauche)
et est envoyé à boucle interne par onde HF.
Cette boucle externe utilise une caméra située dans les tribunes afin d'en déduire l'état du ballon (position et vitesse), relativement
au cadre.
Le projet se décompose en sept étapes.
1) Concevoir le mécanisme gyroscopique situé à l'intérieur du ballon.
2) Trouver les équations d'état du ballon en mouvement équipé du disque.
3) Calculer l'influence que l'on peut avoir sur la trajectoire du ballon.
4) Concevoir les lois de commande pour les boucles internes et externes.
5) Réaliser un prototype convaincant.
6) Et bien sûr être le douzième joueur, celui qui va faire gagner l'équipe de France en 2018.
7) Réaliser une vidéo scientifique de présentation du projet influencée de
cette vidéo.
'Reverse pumping' d'un aile volante pour propulser un bateau
Le 'reverse pumping' est une méthode qui permet de faire voler une aile volante reliée au sol par câbles.
L'énergie nécessaire vient du câble que l'on enroule au bon moment de façon à faire prendre de l'énergie
cinétique et potentielle à l'aile. On produit ainsi un cycle qui permet de maintenir l'aile à
la manière d'un cerf volant, sauf qu'ici, l'aile est munie d'ailerons qui permettent de l'orienter et
que l'on suppose un vent nul.
Dans ce projet, on cherche à utiliser le principe du 'reverse pumping' pour
propulser un bateau (par exemple suite à une panne ou à des algues qui
empêchent le propulseur de fonctionner correctement). Les câbles fixés au bateau créent la force de
traction nécessaire lorsque ces derniers s'enroulent.
Tracter un bateau par un avion
On se place dans une situation où un bateau en détresse a besoin de se faire remorquer
en toute urgence pour éviter un naufrage. Envoyer un bateau remorqueur peut prendre plusieurs
jours, et on cherche à trouver une solution par un avion remorqueur qui, beaucoup
plus rapide, pourra se rendre sur zone en quelques heures.
Pour avoir un portance acceptable, un avion doit avancer à une vitesse de l'ordre de 200km/h.
On cherche ici à trouver les lois de commande qui permettent à un avion de tracter un bateau
qui lui navigue à une vitesse très faible.
Embarquement en vol à bord d'un avion
Un avion doit embarquer à son bord et en plein vol, un colis se trouvant
sur au sol ou sur un bateau. L'avion est équipé d'un câble (environ 50 mètres)
avec un point d'accroche pour le colis. Afin de pouvoir fixer le colis,
il est important que le point d'accroche reste fixe pendant environ 10 secondes à proximité du colis.
Pour rendre cela possible, il faudrait que le câble oscille à la manière d'un pendule de façon
à poser son accroche en avance. Il faudra aussi calculer la trajectoire de l'avion afin de
maintenir le câble tendu.
Imaginer également une solution avec deux avions tournant suivant un cercle dont le centre
est le point d'accroche.
Vélo fan
Rendre un vélo autonome avec un calculateur embarqué, un GPS, un centrale de type MEMS et des propulseurs de quadrirotors
posés sur chacune des poignées du guidon. L'objectif de ce projet est de faire évoluer un vélo en toute autonomie d'une configuration
initiale à une configuration finale. La propulsion et l'équilibre du vélo sont assuré par propulseurs uniquement.
Car on the ball
Le but de ce projet est de faire la loi de commande pour le problème du 'Car On The Ball', comme indiqué sur la photo.
Le buggy doit rester en équilibre sur la sphère et faire avancer la sphère suivant la direction désirée.
Aquaskipper
Rendre un Aquaskipper autonome avec un calculateur embarqué, un GPS, un centrale de type MEMS et un vérin électrique qui assure la propulsion.
L'objectif de ce projet est de faire évoluer le robot de façon autonome d'une configuration
initiale à une configuration finale. L'intérêt de prendre un aquaskipper comme base est de pouvoir se déplacer sur l'eau à une vitesse de de 20km/h
et avec une puissance de l'ordre 100W.
Solowheel
Rendre une solowheel autonome avec un calculateur embarqué, un GPS, un centrale de type MEMS.
Le robot pourra emporter une charge de 50 kg posée dans un bac porté par la roue.