Formations en Informatique de Lille
Portail pédagogique
Projet Encadré (UE: Projet Encadré)

Objectifs

Les étudiants en formation initiale auront l’occasion de développer un projet interdisciplinaire tout au long du premier semestre.

Programme succinct

Les sujet sont imposés. Il faut choisir parmi les 6 sujets mis à disposition. Les étudiants seront encadrés pendant le développement du projet.

Compétences

Apprendre à gérer un projet en petit groupe.



dernière modification : 28/06/2022 à 10:05:48

Projet Encadré A : Génération de code Android par IDM

Génération de code Android par une approche IDM (Ingénierie Dirigée par les Modèles)

Description

Dans ce projet, vous concevrez une application permettant de générer le code d’une application Android à partir de sa description dans un diagramme.

L’idée est de pouvoir décrire l’application Android dans un diagramme à un haut niveau d’abstraction. Par exemple, on représentera dans le diagramme les Activity Android et les liens permettant de passer d’une Activity à une autre, puis, en cliquant sur un bouton, on générera le code Java de l’application Android.

La représentation de haut niveau, dans un diagramme, s’appelle un « modèle » de l’application. Ce diagramme ne peut être dessiné que en utilisant les briques que vous aurez définies, comme les briques Activity ou Lien. La description des briques utilisables se fait dans ce que l’on appelle un « métamodèle ».

Les modèles et les métamodèles sont au cœur de l’IDM ou MDE / MDSE (Ingénierie Dirigée par les Modèles, ou Model Driven Ingeneering / Model Driven Software Ingeneering). L’IDM offre des outils permettant de décrire facilement un métamodèle, puis de générer l’éditeur graphique permettant de dessiner un modèle. L’IDM offre aussi des outils pour générer le code permettant de manipuler les modèles, de les sauvegarder, les charger, les éditer, les transformer vers d’autres modèles, ou de générer du texte (ou du code) à partir du modèle.

Votre application utilisera les outils de l’IDM, notamment :

  • EMF – Pour spécifier les métamodéles et générer le code de manipulation des modèles
  • Sirius – Pour créer un éditeur graphique des modèles
  • Acceleo – Pour générer du texte à partir d’un modèle

Dans ce projet vous apprendrez :

  • A concevoir une application Android
  • A utiliser les outils IDM
  • A spécifier un métamodèle
  • A générer le code pour manipuler des modèles conformes au métamodèle
  • A spécifier et générer un éditeur graphique pour les modèles conformes au métamodèle
  • A générer du code à partir de modèles conformes au métamodèle

Outils et technologies abordés

  • Java
  • Eclipse
  • AndroidStudio
  • Construction d’application Android
  • EMF
  • Sirius
  • Acceleo
  • Git

Niveaux requis

Vous n’avez pas besoin d’avoir de connaissances préalables dans les outils et technologies abordés (sauf Java). Si un des outils ou une des technologies vous sont déjà familiers, vous pourrez aller plus loin dans le projet.

Bibliographie

Evaluation

L’évaluation s’effectue par plusieurs rendus de projet (prototype + documentations).

Il y a une soutenance de projet :

  • Chaque équipe présente son projet à l’enseignant, soit sur simulateur, soit sur tablette ou téléphone

Les points suivants participent à l’évaluation :

  • L’accomplissement du cahier des charges (toutes les fontionnalités sont-elles implémentées ?)
  • Les fonctionnalités supplémentaires eventuelles
  • Le rapport de projet
  • Le code (commentaires, structuration, lisibilité, respect des conventions de codage …)
  • L’architecture de l’application
  • L’utilisation de GIT (régularité des commits, répartition des commits entre équipiers …)

Il n’y pas d’examen final.

Il n’y a pas d’examen de rattrapage.

Intervenant

Cédric Dumoulin

Liens


dernière modification : 28/06/2022 à 10:05:48

Projet Encadré B : IA au service de la qualité de l’air et assistance ambiante

DESCRIPTION

dernière modification : 28/06/2022 à 10:05:48

Projet Encadré C : Analyse de sentiments sur Twitter

DESCRIPTION

dernière modification : 28/06/2022 à 10:05:48

Projet Encadré D : Réalité augmentée par marqueurs et Interaction

Objectif

L'objectif est de réaliser une application qui incruste des modèles 3D dans une image (qui peut être une image fixe, une vidéo, ou le flux d'une webcam). La position de ces modèles 3D, dans l'image, est déterminée gràce à la reconnaissance de marqueurs (ce sont des "tags" imprimés spécifiques). En interagissant avec ces modèles 3D, on peut alors imaginer des applications qui "augmentent" la "réalité".

Les étapes de développement proposées sont :

  • Reconnaitre les marqueurs dans l'image (un identifiant associé au cadre du marqueur)
  • Extraire la localisation 2D du marqueur dans l'image. On peut en déduire une "pseudo-localisation" 3D (non exacte).
  • Incruster, sur le cadre du marqueur, une autre image ou un modèle 3D
  • Interagir avec les éléments incrustés (par l'intermédiaire de marqueurs ou avec la souris) pour offrir des fonctionnalités
  • L'application finale s'appuiera sur la manipulation de sons

Langage et librairies

  • Le langage utilisé est Javascript (exécution sur navigateur)

Des librairies sont exploitées. Nous présenterons uniquement les notions et fonctionnalités qui nous sont strictement nécessaires pour notre application :

Documents

Notes cours et tps

Evaluation

Moyenne de 3 notes : évaluation du code produit pour chaque "module" principal :

  • Reconnaissance des marqueurs
  • Position 3D et inscrustation 3D
  • Interaction et application (son)

Le projet n'a pas de rattrapage (ni seconde chance, ni seconde session)

Intervenants


dernière modification : 28/06/2022 à 10:05:48

Projet Encadré E : Guidage gestuel de robots

Objectif

L'objectif du projet est de programmer des robots Turtlebot3 pour reconnaître et exécuter une commande gestuelle donné par un humain.

Les robots sont équipés de :

  • Une carte NVidia Jetson Nano, avec un quad-core ARM Cortex-A57, une GPU Maxwell, 4Gb RAM ;
  • Une camera raspberry ;
  • Moteurs ;
  • Différent types de capteurs (Laser, odomètrie, etc.).

Le système d'exploitation disponible sur la carte embarquée est Linux avec le middleware ROS qui fourni des librairies pour interagir avec les capteurs et les actionneurs. Les langages de programmation à utiliser seront principalement C/C++ et Python. Il est toutefois possible d'utiliser d'autres langages.

La reconnaissance de gestes se basera sur des méthodes d'"IA" (analyse d'images, vision par ordinateur, apprentissage automatique) qui seront introduites au début du projet. L'implémentation sera essentiellement faite en Python, à l'aide de bibliothèques standard du domaine (OpenCV, Scikit-learn, Numpy, etc.). L'utilisation d'autres langages et bibliothèques sera également possible.

Compétition

Les étudiants travailleront en équipe. Chaque équipe est composé de 4 étudiants maximum. Les groupes sont en compétition pour mieux réussir dans leur objectif. Ils seront évalués sur :

  1. le temps que les robots passe à accomplir leur tache ;
  2. la precision dans l'exécution de la tache ;

Intervenants

  • Giuseppe Lipari (responsable)
  • Pierre Tirilly (vision)
  • Gerald Dhebormez (ROS)
  • Gauthier De Smet (ROS)

Séances

\# Date What Where  
1 [2022-09-12 lun.] Introduction to ROS + TP M5-A16 Dhebormez + De Smet
2 [2022-09-19 lun.] Vision M5-A16 Tirilly
3 [2022-09-26 lun.] TP ROS M5-A16 Dhebormez + De Smet
4 [2022-10-03 lun.] Vision M5-A16 Tirilly
5 [2022-10-10 lun.] Vision M5-A16 Tirilly
6 [2022-10-17 lun.] TP ROS M5-A16 Dhebormez + De Smet
7 [2022-10-24 lun.] Robots Turtlebots PRETIL Dhebormez + De Smet
  [2022-10-31 lun.] Interruption pedagogique    
8 [2022-11-07 lun.] Robots + Vision PRETIL Tirilly + De Smet
9 [2022-11-14 lun.] " PRETIL  
10 [2022-11-21 lun.] " PRETIL  
11 [2022-11-28 lun.] " PRETIL  
12 [2022-12-05 lun.] " PRETIL  

Soutenance: Lundi 12 decembre 2022.

Guided Project: Commanding robots with gestures

Goal

The objective of this project is to program Turtlebot3 robots to recognize and execute commands given by a human via hand gestures.

The robots are equipped with

  • An NVidia Jetson Nano, card with a quad-core ARM Cortex-A57, a GPU Maxwell, and 4Gb RAM ;
  • A raspberry camera;
  • Engines ;
  • Different types of sensors (Laser, odometry, etc.).

The OS available on the platform is Linux and the ROS middleware, which provides libraries to interact with sensors and actuators. The main programming languages will be C++ and Python.

Hand gestures recognition is based on "AI" methods (image analysis, computer vision, machine learning) that will be introduced at the start of the project. The implementation will be mainly in Python with standand libraries of the application domain, like OpenCV, Numpy, etc. The utilization of other languages and libraries is possible.

Competition

Students will work in teams of 4 people each. The teams will compete to better achieve their objectives. They will be evaluated on :

  1. The time the robot will spend achieving the task ;
  2. The precision in achieving the task ;
  3. The quality of the code and the architecture of their application.

Teachers

  • Giuseppe Lipari (responsable)
  • Pierre Tirilly (vision)
  • Gerald Dhebormez (ROS)
  • Gauthier De Smet (ROS)

Lectures

\# Date What Where  
1 [2022-09-12 lun.] Introduction to ROS + TP M5-A16 Dhebormez + De Smet
2 [2022-09-19 lun.] Vision M5-A16 Tirilly
3 [2022-09-26 lun.] TP ROS M5-A16 Dhebormez + De Smet
4 [2022-10-03 lun.] Vision M5-A16 Tirilly
5 [2022-10-10 lun.] Vision M5-A16 Tirilly
6 [2022-10-17 lun.] TP ROS M5-A16 Dhebormez + De Smet
7 [2022-10-24 lun.] Robots Turtlebots PRETIL Dhebormez + De Smet
  [2022-10-31 lun.] Interruption pedagogique    
8 [2022-11-07 lun.] Robots + Vision PRETIL Tirilly + De Smet
9 [2022-11-14 lun.] " PRETIL  
10 [2022-11-21 lun.] " PRETIL  
11 [2022-11-28 lun.] " PRETIL  
12 [2022-12-05 lun.] " PRETIL  

Exam: Monday 12 december 2022.


dernière modification : 28/06/2022 à 10:05:48

Projet Encadré F : Réseaux de caméras

DESCRIPTION

dernière modification : 28/06/2022 à 10:05:48