IMA3/IMA4 2018/2020 P21 : Différence entre versions
(→Présentation générale) |
(→Scénario d'usage du produit ou du concept envisagé) |
||
Ligne 127 : | Ligne 127 : | ||
==Scénario d'usage du produit ou du concept envisagé== | ==Scénario d'usage du produit ou du concept envisagé== | ||
− | + | Notre projet visant à asservir en position un drone de façon autonome, il existe de très nombreux scénario d’usage pouvant s’inscrire dans notre projet. | |
− | + | Par exemple, on pourrait imaginer un agriculteur souhaitant contrôler l’état de ses arbres. On pourrait installer des petites balises sur chacun des tronc, et effectuer un vol autonome afin de filmer chacun de ces arbres. L’agriculteur n’aurait qu’à observer la vidéo, sans avoir à se déplacer dans tout le verger. Notre drone étant asservi en position, il décollera et se maintiendra à une altitude supérieur aux arbres (par exemple 3 mètre) et reliera tout les points indiqués par les balises pour ensuite revenir à son point de départ. | |
− | |||
− | |||
− | |||
− | |||
− | |||
==Réponse à la question difficile== | ==Réponse à la question difficile== |
Version du 7 avril 2019 à 17:26
Sommaire
- 1 Présentation générale
- 2 Analyse du projet
- 3 Préparation du projet
- 4 Réalisation du Projet
Présentation générale
Description
De nos jours, les drones sont présents dans de nombreux domaines : industrie, agriculture, sports, loisirs… etc. Dans les airs ou dans la mer, ils ont tous des buts différents selon leur utilisation.
Nous allons nous concentrer sur les drone de développement. Ils sont utilisés dans la recherche, l’éducation et par les amateurs de robotique. Ils présentent de nombreux enjeux, comme la commande automatique, l’évitement d’obstacles, la détection d’intrus.
L’ouverture à la programmation et à la modification hardware/software peut être un frein dans la mise en place d’une application d’un drone de développement. C’est pourquoi nous allons nous concentrer sur un drone open source au niveau hardware et software.
Plus particulièrement notre projet se servira du drone Quadricopter Crazyflie 2.0.
https://www.gotronic.fr/art-quadricopter-crazyflie-2-0-110990440-23791.htm
Objectifs
Le fil directeur de notre projet est le contrôle d'un drone sous les facettes d'informatique, microélectronqiue et automatique. Au niveau informatique, nous nous concentrerons sur le développement d'algorithmes de déplacement et d'évitement d'obstacle. Pour la partie microélectrique nous nous pencherons sur le fonctionnement des moteurs, des cartes électroniques et des capteurs. Enfin nous nous servirons de l'automatique pour réguler en vitesse et en position de notre drone.
L'objectif final est de développer le drone mis à notre disposition afin qu'il puisse se déplacer d'un point A à un point B tout en évitant les obstacles. Au cours de son déplacement il devra transmettre une vidéo à l'utilisateur.
Dans un premier temps, nous étudierons le fonctionnement générale d'un drone à 4 branches. Ensuite, nous allons étudier les différents protocles de transmission entre le drone et l'ordinateur, ainsi que les modules de programmation mis à notre disposition pour programmer et asservir le Intel Aero Ready to Fly. Puis, du côté pratique nous allons asservir une position statique à notre drone qu'il devra maintenir quelque soit la perturbation (vent, etc). Dans un second temps, nous développerons les fonctions d'évitement d'obstacles. Enfin, nous nous pencherons sur le déplacement 3D du drone afin qu'il puisse suivre une trajectoire GPS fournie par nos soins.
Comme piste d'amélioration, on pourra éventuellement optimiser l'autonomie, la précision GPS, ou bien imprimer en 3D des pièces pour protéger les hélices.
Analyse du projet
Positionnement par rapport à l'existant
Caractéristiques principales du drone Quadricopter Crazyflie 2.0®
Radio:
- amplificateur radio de 20 dBm testé à plus de 1 km (portée à vue) avec le Crazyradio PA
- bluetooth Low Energy compatible iOS et Android
- radio compatible avec Crazyflie et Crazyradio
Microcontrôleurs:
- STM32F405, microcontroleur principal (Cortex-M4, 168 MHz, 192 KB SRAM, 1 MB de mémoire flash)
- nRF51822, gestion alimentation et radio (Cortex-M0, 32 MHz, 16 KB SRAM, 128 KB de mémoire flash)
- EEPROM 2 KB
Connecteur USB:
- chargeur LiPo integré avec trois modes (100 mA, 500 mA, 980 mA)
- utilisation en USB OTG possible
Capteurs:
- gyroscope 3 axes (MPU-9250)
- accéléromètre 3 axes (MPU-9250)
- magnétomètre 3 axes (MPU-9250)
- capteur de pression haute précision (LPS25H)
Chiffres clés |
---|
|
Analyse du premier concurrent
Constructeur : DJI
Constructeur de drone pour différentes utilisations :
- loisir, voyage
- sport, course
- cinéma, photographie
- inspection, surpervision, contrôle d'application industrielle
Premier concurrent analysé : DJI MAVIC2 PRO®
Le mavic 2 est reconnu dans le monde entier pour sa bonne qualité d'image. Petit et maniable, il est utilisé aussi bien par les particuliers que par les professionnels. Sa prise en main facile en fait un drone très répendu par les utilisateurs de drone haut de gamme. Cependant, toutes ces qualités nécessite un contrôle non automatisé (il faut intervenir physiquement sur le drone ou l'API pour qu'il effectue un vol). Il existe des planifiacteurs de vols mais il présente de nombreux inconvénients. Le mavic 2 est compatible avec DJI GS Pro™ et DJI flightHUB™.
DJI flightHUB™ est une solution logicielle très soffistiquée destinée aux professionnels. Cepdendant si on souhaite acquérir une vidéo temp réel sur notre PC, il faut débourser +300/mois. Notre solution propose certes moins de fonctionnalités, mais elle est gratuite et fournit le nécessaire qui satisfera la plupart des utilisations professionnelles courantes (cf scénario d'usage).
DJI GS Pro™ est une application disponible uniquement sur iOS et plus particulièrement sur iPad. Son gros désavantage réside dans le fait qu'elle n'est disponible ni sur PC, ni sur terminaux android. De plus il nous est impossible de régler la vitesse et la hauteur en fonction de différents points, elles ne sont définis que pour le vols dans son intégralité. En outre, la détection d'obstacle et la régulation en vitesse de chaque moteur n'est pas configurable. Nous nous démarquons en développant, sur PC, un plan de vols en influant sur ces paramètres afin d'avoir la trajectoire la plus adéquate possible avec le cahier des charges (cf réponse à la question difficile).
Analyse du second concurrent
Constructeur : Parrot
Constructeur de drone de plusieurs types comme :
- Drone pour l'agriculture (surveillance des cultures, du bétail)
- Drone pour l'architecture et la construction (inspection visuel et thermique, modélisation 3D pour la prise de mesure d'un devis ou relevé de l'existant)
- Drone pour la sécurité public (recherche et sauvetage de personnes, reconnaissance des sites, surveillance des incendies)
- Drone pour les loisirs, le sport, la photographie
Deuxième concurrent analysé : PARROT BEBOP2®
Il s'agit d'un drone compact, de petite taille, très léger (500g). L'autonomie reste la même que la plupart des drones du marché (~20/25min). En milieu professionnel, il est plutôt utiliser pour filmer un chantier ou survoler une installation industrielle.
Cependant pour avoir un bon résultat, il est nécessaire de le contrôler avec la télécommande, ce qui le démarque fortement de notre drone automatisé.
A noter qu'il dispose d'une API configurable pour lui imposer une trajectoire GPS (et donc se passer de la télécommande). Cependant la détection d'obstacle reste non configurable. De plus, l'analyse de la géométrie de l'environnement n'est pas programmable. En outre, la remonté temps-réels des informations de bord ainsi que le traitement d'image nécessite une programmation avancé en dehors de l'API. Enfin la régulation des moteurs et l’asservissent de l'altitude se fait automatiquement par le drone, il est impossible d'intervenir sur ces paramètres.
Pour finir, l'utilisation fermé du Bebop2 nous oblige à rester dans le cadre voulu par Parrot ; il nous est difficile de développer des algorithmes d’analyse de l'environnement et de contrôle automatisé avec le Bebop2.
Scénario d'usage du produit ou du concept envisagé
Notre projet visant à asservir en position un drone de façon autonome, il existe de très nombreux scénario d’usage pouvant s’inscrire dans notre projet. Par exemple, on pourrait imaginer un agriculteur souhaitant contrôler l’état de ses arbres. On pourrait installer des petites balises sur chacun des tronc, et effectuer un vol autonome afin de filmer chacun de ces arbres. L’agriculteur n’aurait qu’à observer la vidéo, sans avoir à se déplacer dans tout le verger. Notre drone étant asservi en position, il décollera et se maintiendra à une altitude supérieur aux arbres (par exemple 3 mètre) et reliera tout les points indiqués par les balises pour ensuite revenir à son point de départ.
Réponse à la question difficile
Le drone étant livré monté, prêt à l'emploi, avec un contrôleur de vol près-programmé, qu'est ce que vous apporter en plus par rapport à ce qui est déjà possible de faire avec ce drone ?
Notre but est de développé une suite d'algorithme de contrôle automatisé de notre drone, en améliorant les fonctionnalités déjà disponibles. L'idée est de pouvoir imposer un comportement le plus adéquat en fonction de l'usage de l'utilisateur. Par exemple imposer d'aller moins vite dans une certaine zone, plus en hauteur dans une autre, etc. Et ensuite d’améliorer les fonctionnalités de base du drone en analysant la géométrie de notre environnement, la profondeur des obstacles, afin de pouvoir les éviter au mieux.
- Tout d’abord en agissant nous-même, directement sur l'asservissement en position et en vitesse de notre drone.
- Ensuite, en développant des programmes d'analyse de l'environnement via la caméra de profondeur Intel RealSense, et en programmant les algorithmes d'évitement d'obstacle et de signalement d'évènement inattendus.
- Pour finir en lui imposant une trajectoire à suivre, et en transmettant des informations de vols en temps-réel. La trajectoire peut se faire par GPS, cependant les modules inclus dans notre drone sont peut précis (l'ordre du mètre). Soit on améliore la précision en ajoutant un module supplémentaire, soit on devra penser à un système de balisage de notre environnement, soit notre cahier des charges tolère une imprécision de 2-3 mètres.
Bibliographie et webographie
https://github.com/intel-aero/meta-intel-aero/wiki/01-About-Intel-Aero
Préparation du projet
A ce stade, nous avons définis notre projet en plusieurs axes :
- se documenter sur le fonctionnement du Intel Aero, et ses protocoles de comminication
- simulation du drone pour développer des alogrithmes de décollage, attérissage, déplacement, le temps d'avoir le drone
- adapter le fruit de notre simulation à notre drone physique (partie à détailler)
A noter que notre peojet se sert des outils de simulation mais cela n'est pas une fin en soi, juste un outils pour tester des algorithmes, l'essentiel de notre projet repose sur le drone physique.
Bibliographie :
https://dev.px4.io/en/simulation/gazebo.html
Cahier des charges du groupe
Choix techniques : matériel et logiciel
Afin de mener à bien notre projet, nous avons besoin de :
- 1 drone Intel Aero Ready to Fly
- batterie LiPo 4s 4000mah xt60(taille max 150x50x32 mm)
- le chargeur de la batterie
- un écran
- un adaptateur micro usb (mâle) - usb (femelle)
- un câble micro hdmi - hdmi (mâle-mâle)
- un câble d'alimentation 12V DC 4A 5.5mm x 2.1mm barrel connector (OD / ID), center-pin positive
- un adaptateur xt60 (femelle) - 1x jack 5.5mm (femelle)
- un pc portable sous linux
- une clée usb, une souris, un clavier
- un hub usb 4 ports auto-alimenté
Au niveau logiciel, nous avons besoin de :
- logiciel de simulation Gazebo
- logiciel de contrôle du drone Qgroundcontrol
Liste des tâches à effectuer
Equipe 1
Calendrier prévisionnel
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.
Equipe 1
Réalisation du Projet
Projet S6
Semaine 4
ROS
Robot Operating System (ROS), est un ensemble d'outils informatiques open source permettant de développer des logiciels pour la robotique. Le principe de base d’un ROS robotique est de faire fonctionner en parallèle un grand nombre d’exécutables qui doivent pouvoir échanger de l’information de manière synchrone ou asynchrone.
Afin de répondre a cette problématique, ROS s’appuie sur plusieurs notions:
les nœuds: Dans ROS, un nœud est une instance d’un exécutable. Un nœud peut correspondre à un capteur, un moteur, un algorithme de traitement, de surveillance… Chaque nœud qui se lance se déclare au Master.
le Master: Le Master est un service de déclaration et d’enregistrement des nœuds qui permet ainsi à des nœuds de se connaître et d’échanger de l’information.
L’échange de l’information s’effectue soit de manière asynchrone via un topic ou de manière synchrone via un service.
Les Topics: Un topic est un système de transport de l’information basé sur le système de l’abonnement / publication (subscribe / publish). Un ou plusieurs nœuds pourront publier de l’information sur un topic et un ou plusieurs nœuds pourront lire l’information sur ce topic. Les nœuds envoient ou reçoivent des messages sur des topics.
Les Services: Le service en revanche répond à celle d’une communication synchrone entre deux nœuds.