Sujets en robotique





Boomerang autonome

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.