P18 Localisation of quadrotors
Sommaire
Cahier des charges
Présentation générale du projet
Contexte
Dans un monde de plus en plus connecté, de nombreux drones sont déployés pour diverses applications comme l'espionnage, la surveillance, la cartographie de lieux et la livraison de colis. Les technologies nécessaires pour contrôler ces drones sont des sujets de recherche actuels.
Le contrôle de ceux-ci passe tout d'abord par la maîtrise de leur position dans l'espace. Le développement des applications liées à l'utilisation de drones nécessite un travail important sur la localisation spatiale d'objets connectés.
De plus, dans un souci d'utilisation, il est essentiel de développer des interfaces logicielles permettant d'exploiter ces données.
Objectif du projet
L'objectif de ce projet est de développer une interface logicielle permettant de traiter en temps réel les informations de localisation d'un drone et de balises, dans le but de définir leur localisation dans l'espace, en intérieur.
Description du projet
Pour réaliser le contrôle de drones, la première étape importante est de donner ses informations de position. Le but du projet est de développer une interface logicielle permettant de localiser le drone en temps réel en intérieur. Le drone se déplace dans un environnement dans lequel ont été installées de multiples balises. Il est équipé d'une carte, lui permettant de recevoir les distances relatives entre lui-même et les balises, sur laquelle différents algorithmes vont être implémentés pour effectuer la localisation en temps réel. Le projet requiert des compétences en développement hardware (Crazyflie 2.0, voir https://wiki.bitcraze.io/) et software (langage C/C++/Python/Javascript/HTML...).
Il se divise en 4 étapes principales, qui sont:
- 1) Choisir les technologies utilisées
- 2) Choisir l'architecture (OS / APIs)
- 3) Développer les différentes parties du projet
- 4) Intégrer et connecter les différentes parties du projet
La localisation étant en intérieur, le protocole GPS n'est donc pas assez précis pour les applications ciblées. La mise en place d'un tel dispositif permettrait grâce à l'utilisation d'un algorithme d'estimer avec une bonne précision les positions en intérieur d'une balise centrale (appelée Tag) et de balises (appelées Anchor). Le Tag scanne en temps réel la distance relative aux différentes balises, et il nous est retourné la position des balises et du Tag grâce à l'algorithme de localisation.
Le projet se compose de 3 parties:
- Collect & parse: collecter les données envoyées par les balises en communiquant avec un serveur et récupérer les données adéquates par un tri
- Localise: déterminer la matrice de position des balises et du Tag en traitant les données récupérées
- Display: développer l'interface homme machine pour afficher, étudier et utiliser les données traitées
Nous travaillerons dans un premier temps dans une optique temps différé avant de travailler en temps réel. Cela nous permettra d'acquérir des données utiles et réutilisables en aval.
A l'aboutissement du projet, nous devrions être capable via l'interface homme machine développée d'afficher précisément la position spatiale des balises ainsi que du Tag, grâce àl'utilisation d'un algorithme de localisation et des données récupérées, et d'afficher d'autres données relatives au déplacement du Tag ou des balises dans l'espace.
Si le temps le permet, nous pourrons aussi être amenés à adapter et utiliser l'interface développée pour l'utilisation d'un drone.
Sujet originel
To achieve the control of quadrotors, the first important task to give its position information. This project is to develop a software(GUI) to localize the quadrotors in real-time. The quadrotor is flying in an environment where several transmitters have been installed. The quadrotor is equipped with a deck to receive the relative distances between the deck and all transmitters, based on which different algorithms will be implemented to realize the real-time localization. The candidates need to have both experiences on hardware (Crazyflie 2.0, see https://wiki.bitcraze.io/) and software development (C/C , Python…).
Calendrier
Avant le 29/09/17 - Élaboration du Cahier des charges, de la liste des tâches et du calendrier prévisionnel
Avant fin Octobre - Serveur de collecte et début du développement de l'interface logicielle
Avant fin Décembre - Interface logicielle
A la fin du PFE - Intégration finale des différentes parties (Serveur de collecte des données & Serveur de localisation & Interface logicielle)
Répartition du volume de travail (***h):
- Recherche sur les technologies à utiliser (**h)
- Développement du serveur de collecte de données (**h)
- Réalisation de l'interface logicielle (Web//Logiciel/Application) (**h)
- Intégration des différentes parties (**h)
- Test et débuguage (**h)
Choix techniques : matériel et logiciel
Afin de développer ce dispositif, nous allons utiliser une Raspberry Pi 3 associée à une carte réceptrice, qui communique avec 4 balises composées chacune d'un microcontrôleur et d'une carte émettrice radio (UWB5C) et alimentées par batteries. La carte réceptrice joue le rôle du drone à localiser et communiquera les données émises par les balises vers l'ordinateur via Bluetooth.
Calendrier prévisionnel
Liste des tâches à effectuer
A modifier
- Documentation sur le réseau LoRa
- moyen de transmission
- format de modulation
- trame des paquets
- Réalisation du premier montage brouillant toute la plage
- contrôler l'émetteur RF du cc430
- programmer un bruitage sur la plage 863-870MHz
- test et optimisation
- Ajout d'un récepteur LoRa pour détecter et brouiller une seule communication
- contrôler le récepteur LoRa avec le cc430 par protocole spi
- détecter une communication LoRa à une fréquence donnée
- contrôler l'émetteur RF afin de brouiller cette communication de manière brutale
- brouiller cette communication en tentant de changer les données du paquet
- test et optimisation
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Après les vacances | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cahier des charges / Wiki | 2h | 1h | 1h | 0,5h | 0,5h | 0,5h | 0,5h | 0,5h | 0,5h | 0,5h | 7,5h | ||
Documentation sur le réseau LoRa | 2h | 4h | 1,5h | 4h | 11,5h | ||||||||
Documentation sur le matériel | 1h | 3h | 2h | 3h | 1h | 1h | 1h | 12h | |||||
Recherche de solution pour la fonction 1 | 2h | 1,5h | 2h | 2h | 7,5h | ||||||||
Recherche de solution pour la fonction 2 | 2h | 1h | 2h | 2h | 7h | ||||||||
Initialisation des registres | 3h | 3h | 2,5h | 8,5h | |||||||||
Code 1ère fonction | 1,5h | 3h | 3h | 4h | 11,5h | ||||||||
Code 2ème fonction | 3h | 2h | 2h | 1h | 8h | ||||||||
Optimisation/Correction fonction 1 | 1h | 2h | 2h | 2h | 7h | ||||||||
Optimisation/Correction fonction 2 | 2h | 4h | 6h | ||||||||||
Tests et mesures | 1h | 2h | 3h | 2h | 3h | 5h | 16h | ||||||
Modification de la carte | 3h | 3h |