IMA3/IMA4 2018/2020 P21 : Différence entre versions
(→Calendrier prévisionnel) |
(→Analyse du second concurrent) |
||
Ligne 92 : | Ligne 92 : | ||
Modèles : ''' Pixhawk 4 et Pixhawk mini ''' | Modèles : ''' Pixhawk 4 et Pixhawk mini ''' | ||
[[Fichier:pixhawk4.jpg|120px|right]] | [[Fichier:pixhawk4.jpg|120px|right]] | ||
+ | |||
Pixhawk est un projet open source visant à developper un contrôleur de vol libre et indépendant. De nombreux projet aussi bien dans la recherche que dans le monde professionnel se servent d'une carte de vol Pixhwak. Cette carte, très réputée, est notamment compatible avec les projets open source PX4 (Dronecode) et Ardupilot. Dronecode et Ardupilot proposent des outils libres pour simuler, contrôler et analyser son drone tout au long de ses déplacements. Dans un projet comme le notre, Dronecode semble être adapté tant les ressources et la documentation qu'ils proposent sont fournis. | Pixhawk est un projet open source visant à developper un contrôleur de vol libre et indépendant. De nombreux projet aussi bien dans la recherche que dans le monde professionnel se servent d'une carte de vol Pixhwak. Cette carte, très réputée, est notamment compatible avec les projets open source PX4 (Dronecode) et Ardupilot. Dronecode et Ardupilot proposent des outils libres pour simuler, contrôler et analyser son drone tout au long de ses déplacements. Dans un projet comme le notre, Dronecode semble être adapté tant les ressources et la documentation qu'ils proposent sont fournis. | ||
+ | |||
Cependant, bien que nous avons effectuer de nombreuses recherches sur Dronecode, que nous avions conclu qu'il fallait une carte Pixhawk, nous avons finalement abandonné cette piste. | Cependant, bien que nous avons effectuer de nombreuses recherches sur Dronecode, que nous avions conclu qu'il fallait une carte Pixhawk, nous avons finalement abandonné cette piste. | ||
+ | |||
En effet, de notre point de vue, il nous aurait fallu un groupe supplémentaire qui aurait assembler notre drone, pendant que l'autre se penche sur la partie automatique. Un drone embarquant une carte Pixhawk avec PX4 installé dessus nécessite une équipe focalisée sur le hardware. En effet, en plus de la carte, il faut commander le châssis, les moteurs, les antennes, la télécommande, la baterrie, les chargeurs... etc. Nous avons préféré partir sur un drone 'ready to fly', c'est-à-dire déja assemblé et en état de marche. | En effet, de notre point de vue, il nous aurait fallu un groupe supplémentaire qui aurait assembler notre drone, pendant que l'autre se penche sur la partie automatique. Un drone embarquant une carte Pixhawk avec PX4 installé dessus nécessite une équipe focalisée sur le hardware. En effet, en plus de la carte, il faut commander le châssis, les moteurs, les antennes, la télécommande, la baterrie, les chargeurs... etc. Nous avons préféré partir sur un drone 'ready to fly', c'est-à-dire déja assemblé et en état de marche. |
Version du 7 avril 2019 à 18:18
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.
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 |
---|
|
A noter que l'ensemble de l'architecture matérielle et logicielle (hardware/software) est accessible sur le wiki (hardware) et sur le git (software) indiqués dans la bibliographie.
Analyse du premier concurrent
Constructeur : DJI et Ryze
Modèle : Tello Drone EDU
Initialement conçu pour l'enseignemnt, le Tello Drone a de nombreux atouts. Pour seulement 100 euros, nous avons un drone compact, résistant (protection des hélices), et programmable. Il est compatible avec Scratch, Python et Swift. Pour une utilisation avancé, on peut même embarquer ROS et utiliser le SDK. Il dispose aussi de petites balises pour se repérer dans l'espace et être contrôler en essaim.
Cependant, nous ne pouvons pas nous en servir dans notre projet, car ni le hardware, ni le software ne sont ouvert. Nous ne pouvons donc pas modéliser efficacement les moteurs, ni même faire une étude approfondie au niveau hardware. En fait, il s'agit plutôt d'un drone de programmation du fait de sa compatibilité avec plusieurs langages de programmation, on ne peut pas s'en servir dans un projet à dominante 'automatique'.
Analyse du second concurrent
Constructeur : Pixhawk
Modèles : Pixhawk 4 et Pixhawk mini
Pixhawk est un projet open source visant à developper un contrôleur de vol libre et indépendant. De nombreux projet aussi bien dans la recherche que dans le monde professionnel se servent d'une carte de vol Pixhwak. Cette carte, très réputée, est notamment compatible avec les projets open source PX4 (Dronecode) et Ardupilot. Dronecode et Ardupilot proposent des outils libres pour simuler, contrôler et analyser son drone tout au long de ses déplacements. Dans un projet comme le notre, Dronecode semble être adapté tant les ressources et la documentation qu'ils proposent sont fournis.
Cependant, bien que nous avons effectuer de nombreuses recherches sur Dronecode, que nous avions conclu qu'il fallait une carte Pixhawk, nous avons finalement abandonné cette piste.
En effet, de notre point de vue, il nous aurait fallu un groupe supplémentaire qui aurait assembler notre drone, pendant que l'autre se penche sur la partie automatique. Un drone embarquant une carte Pixhawk avec PX4 installé dessus nécessite une équipe focalisée sur le hardware. En effet, en plus de la carte, il faut commander le châssis, les moteurs, les antennes, la télécommande, la baterrie, les chargeurs... etc. Nous avons préféré partir sur un drone 'ready to fly', c'est-à-dire déja assemblé et en état de marche.
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, 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évelopper une suite d’algorithme de contrôle automatisé de notre drone. Pour ce faire, nous allons étudié le fonctionnement d’un drone à quatre hélices. Tout d’abord, nous allons isoler puis modéliser un moteur brushless. Ensuite nous allons modéliser les quatre moteur, ensemble. Enfin, sur un banc de test, nous allons envoyer nos commandes sur les quatre moteurs afin de réaliser 4 mouvements élémentaires d’un drone 4 hélices.
Bibliographie et webographie
https://www.gotronic.fr/art-quadricopter-crazyflie-2-0-110990440-23791.htm
https://wiki.bitcraze.io/projects:crazyflie2:index
Préparation du projet
A ce stade, nous avons définis notre projet en plusieurs axes :
- se documenter sur le fonctionnement d’un drone 4 hélices, appelé aussi quadrotor ou quadcopter
- modélisation d’un moteur brushless
- modélisation des quatre moteurs
- envoie des commandes sur les moteurs sur un banc de test
Cahier des charges du groupe
Tout d’abord notre drone doit être capable de décoller, d’atterrir et de maintenir une position fixe. Il doit être capable de réguler la vitesse de ses moteurs pour se maintenir en altitude, en fonction des contraintes extérieurs (comme le vent) qui lui seront imposé. Dans un second temps, il doit pouvoir se déplacer dans l’espace en se repérant via des balise radio. De la même manière, il devra pouvoir exécuter ses déplacement en ayant une précision (à définir) et une marge de résistance aux contraintes physiques (à préciser). Par exemple, il devra être capable de se stabiliser et effectuer son vol autonome, avec une précision de 10 centimètre, et un vent limite de 30km/h.
Choix techniques : matériel et logiciel
Afin de mener à bien notre projet, nous avons besoin de :
- Quadricopter Crazyflie 2.0 : 2
- Adaptateur debug pour Crazyflie : 2
- Moteur pour Crazyflie 2.0 : 4
- Jeu d'hélices pour Crazyflie : 1
- Jeu de 4 supports moteurs : 1
- Module Crazyradio PA 114990112 : 2
- Loco positioning deck : 2
- Flow deck v2 : 2
- 240mAh LiPo battery including 500mA USB charger : 2
- SD-card deck : 2
- Loco positioning node : 4
Au niveau logiciel, nous avons besoin de :
à préciser
Liste des tâches à effectuer
Calendrier prévisionnel
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.
à préciser
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.