2022_Projet_IOT-Camera_connectée

Caméra connectée permettant à un drone de se repérer dans l'espace. Elle permet aussi à l'utilisateur de visualiser son environnement grâce à une interface visuelle.

Slides & Videos

Members

NameContribution
Mehdi RAIS ALI- Protocole UDP
- Thread
- Documentation features detector
Tai Romain VO PHUOC- Documentation odométrie visuelle
- Lecture des images en Python
Vithiya THIRUCHELVANATHAN- Recherches pour l'état de l'art
- Documentation openCV

State of the Art

Business Aspect

Mise au point du projet dans la vie réelle

Comme solution pour se localiser dans une pièce inconnue, le marché a déjà un algorithme existant et très performant : le LiDAR. Celui-ci fonctionne avec un laser à impulsion, un scanner et un gps. Un système LiDAR mesure le temps nécessaire à la lumière émise pour atteindre le sol et revenir. Ce temps est utilisé pour calculer la distance parcourue. Elle est ensuite convertie en altitude. Ces mesures sont effectuées à l’aide des composants clés d’un système LiDAR comprenant un GPS qui identifie l’emplacement X,Y,Z de l’énergie lumineuse et une unité de mesure interne (IMU) qui fournit l’orientation du drone dans la pièce.

Taille du marché de notre projet

En terme financier, les composants comprenant l’algorithme du LiDAR varie entre 75€ et 9000€ sur Robotshop. La taille du marché de ce type de processus est très vaste, il est le plus utilisé en France avec l’Avion Jaune et GeoPhoenix, en Asie-Pacifique, mais aussi Suisse avec Helimap. Les principaux fabricants sont Optech (Canada), Leica (Suisse), IGI (Allemagne), etc.

Technical Aspect

Contraintes réglementaires

Ce projet a quelques contraintes réglementaires. En effet, nous ne devons pas mettre à disposition les images/vidéos prises par la caméra à des fins personnels. De plus, il est important d’avoir l’accord des personnes filmées au préalable.

Avantages et inconvénients

Ce projet a de nombreux avantages, il permet la localisation d’un déplacement, la visualisation de son environnement. En le combinant à un IMU, nous avons une excellente précision en terme de position. Cependant, comme nous voulons combiner ce système à un drone, il sera assez lourd à cause de Raspberry Pi 3. C’est pourquoi, il faudrait essayer d’adapter le système sur une Raspberry Pi 0 qui est moins lourde et donc alourdira moins le drone.

Project Description

Problem Definition
Notre projet consiste à réaliser une caméra permettant à notre drone de pouvoir se localiser dans une pièce. En effet, nous faisons ce projet afin d’en compléter un autre que nous avons en parallèle qui est de concevoir un drone. L’utilisation du capteur gyroscopique et de l’accéléromètre n’est pas suffisante à la stabilisation aérienne de notre drone, c’est pourquoi nous avons décidé de réaliser ce projet. La caméra sera connecté à une Raspberry Pi 3, celle-ci permettra de contrôler la caméra et d’avoir accès aux données de positionnement envoyées par la caméra et à l’interface visuelle de la caméra ainsi qu’un graphique en temps réel permettant de visualiser son avancé. Ceci permettra de faire une fusion de capteur entre un IMU et les données de la caméra. La fusion de capteur consiste à réunir les données de plusieurs capteurs, dans notre cas, gyroscope et accéléromètre avec la caméra, afin d’obtenir des mesures plus précises quant à la position du drone.
Challenges & Motivation
Dans le cadre de notre projet tutoré, nous devons concevoir un drone, ce qui nous a mené à vouloir réaliser une caméra connectée afin de nous aider à pouvoir le localiser dans l'espace et voir son environnement.
Real and Complete Usecases

L’objectif de notre objet est de réaliser une caméra nous permettant de déterminer la position d’un drone dans un environnement qui lui est inconnu en utilisant une caméra. Celle-ci en plus, donne la possibilité à l’utilisateur de voir ce que filme la caméra grâce à une interface visuelle qui sera accessible sur un ordinateur.    

Technical Description

L’objectif de notre projet est d’estimer la position d’une camera à l’aide d’une caméra seule. Pour cela, nous allons utiliser des algorithmes de vision par ordinateur. Cependant, ces algorithmes demandent beaucoup de ressources matériels, c’est la raison pour laquelle nous ne réalisons pas les calculs directement sur la raspberry. Nous passons par un pc externe. Nous communiquons les informations grâce au protocole UDP. Nous commençons par diminuer la taille des images puis nous les envoyons à 5 FPS. Ensuite, nous avons écris un script python permettant de lancer 2 threads, le premier reçoit les images et les mets dans une file. Le second lit les images de la file et réalise les calculs. L’algorithme d’estimation de la pose se décompose en 2 parties, une première partie cherche des points d’intérêts, se sont en général des sommets d’objets, c’est a dire des endroits ou il y a un fort contraste). Ensuite, l’algorithme a pour objectif de trouver des points d’intérêts identiques dans les 2 images. À l’aide du déplacement de ces points d’intérêts (comptés en pixels), l’algorithme calcule son déplacement. Cette technique se base sur la géométrie épipolaire. Étant donné qu’en 3D, les points d’intérêts ne bougent pas et que c’est la caméra qui se déplace, il y a certaines contraintes dans le problème. En particulier, on note l’existence d’une matrice, appelée matrice essentielle qui permet de remonter au déplacement de la caméra entre les images i et i-1. Après avoir déterminé cette matrice a l’aide de 5 points (minimum pour la calculer), on peut retrouver les matrices de rotation et de translation (à un facteur d’échelle près). Ensuite, on utilise ces matrices pour calculer notre position absolue.

Hardware

Materials
ImageNamePart NumberPriceCountLink
Raspberry Pi 3140,98 € (sur Kubii.fr)1🛒
Raspberry Pi Module Cam135,31€1🛒
Schematic

Software

External Services