Autorisation d’exploiter des drones à proximité d’un rassemblement

Drone Matrice 210 

Onboard SDK

Vue d’ensemble Le Onboard SDK (OSDK) permet d’étendre les capacités du drone. Il s’agit d’une librairie open source qui permet aux systèmes embarqués de communiquer avec les contrôleurs de vols et les drones de DJI via une interface série. Le OSDK donne accès à des informations de télémétrie, de contrôle de vol et à d’autres fonctionnalités permettant à un développeur de relier un ordinateur de bord au drone afin de le piloter. Il est principalement utilisé lorsque des calculs doivent être faits sur le drone suite à l’acquisition d’un capteur embarqué, par exemple. La version utilisée lors de ce travail de bachelor est un fork 10 issu de la version 3.6 proposée par DJI sur leur Github 11. Cette version contient deux bugfixes de la librairie officielle. Le OSDK inclut : — Une librairie open source en C++ pour piloter le drone via l’interface série — Des codes exemples et des tutoriels — Une documentation d’API La plupart des fonctionnalités des produits DJI sont accessibles via le OSDK. Les développeurs peuvent automatiser le vol, contrôler la caméra et la gimbal, récupérer l’état de différents composants, … Contrôle de vol Il est possible de piloter le drone de plusieurs façons : — Position Control – Contrôler la position du drone — Velocity Control – Contrôler la vélocité du drone — Attitude Control – Contrôler l’attitude du drone — Angular Rate Control – Contrôler le taux d’attitude du drone — Mission – Des itinéraires prédéfinis peuvent être suivis. Ces différents contrôles sont présentés plus en détail dans le chapitre 11.10.2. Contrôle de la caméra et de la gimbal Le Onboard SDK permet d’interagir avec la caméra et la gimbal du drone. — Caméra – Prise de vidéos et de photos — Gimbal – Contrôle de la position et de la vélocité de la gimbal Synchronisation hardware Il est possible de programmer un signal de synchronisation hardware sur les contrôleurs de vol et les drones DJI. Cette option propose les fonctionnalités suivantes : — Harware Pulsed Signal – Génère une impulsion sur le port d’extension qui peut être utilisée par l’ordinateur de bord ou par des capteurs externes. — Software Data Packet – Synchronise les données de l’IMU et les timestamps en fonction de l’impulsion hardware. Contrôle MFIO Le OSDK permet de configurer les pins des Multi-Function IO du port d’extension du drone. Les fonctionnalités disponibles sont les suivantes : — Sortie PWM — Convertisseur analogique-digital — GPIO Télémétrie De nombreuses informations sur les capteurs et le statut du drone peuvent être récupérées jusqu’à une fréquence de 200Hz. 10. Fork du DJI Onboard SDK : https://github.com/jonathanmichel/Onboard-SDK/tree/dev 11. Github DJI Onboard SDK : https://github.com/dji-sdk/Onboard-SDK 18 Jonathan Michel TB – Système embarqué pour Matrice 210 Données des capteurs — GPS — RTK — Boussole — Baromètre Statut du drone — Vélocité — Altitude — Position de la gimbal — Niveau de batterie — Quaternions — Accélération linéaire — Vitesse angulaire Plus d’informations sur le fonctionnement de la télémétrie sont disponibles au chapitre 11.9. Caméra stéréo Les développeurs peuvent accéder aux données de la caméra frontale et de celle en dessous du drone. — Niveau de gris de la caméra frontale en résolution VGA ou QVGA — Carte de disparité de la caméra frontale — Niveau de gris de la caméra inférieure en qualité QVGA 7.2 Plateformes 7.2.1 Possibilités Le OSDK est disponible sur plusieurs plateformes de développement : Figure 16: DJI Onboard SDK – Plateformes de développement 12 Linux L’avantage d’une solution sous Linux est de pouvoir utiliser les fonctionnalités d’un OS (multithreading, queues, …) et d’assurer une meilleure portabilité pour les projets futurs au sein de la HEI si ceux-ci nécessitent une puissance de calcul supplémentaire. Linux est disponible sur un grand nombre de périphériques. Intel propose différentes cartes de développement, parmi lesquelles la Intel Edison par exemple. Cette dernière a déjà été utilisée au sein de l’école mais n’est plus produite actuellement. Il existe également la carte Aero ou encore la Jetson TX2 de Nvidia plutôt utilisée pour des applications dans l’IA. Finalement un Raspberry Pi peut être envisagé, malgré une utilisation habituellement dans des projets de domotique plutôt qu’en embarqué. Il faut être attentif qu’avec ces solutions il n’est pas possible de mettre en place une solution temps réel, bien qu’il soit concevable de s’en rapprocher en appliquant une patch comme PREEMPT-RT. 12. Source : https://developer.dji.com/onboard-sdk/ 19 Jonathan Michel TB – Système embarqué pour Matrice 210 ROS ROS (Robot Operating System) est une solution modulaire permettant de mettre en place des projets de robotique. Elle est très utilisée en automatisme, ses points forts étant l’existence de nombreux modules prêts à l’emploi permettant de mettre en place facilement ce type de projet. Il s’agit d’une solution tournant sur Ubuntu. Elle semble inconnue au sein de l’institut de la HEI. Qt Le principal avantage lors de l’utilisation de la librairie Qt est d’assurer une portabilité par simple recompilation du code source sur la plateforme cible. Elle est parfaitement adaptée pour le développement d’interfaces graphiques ou d’une architecture complexe pour une application fonctionnant sur le mécanisme des signaux-slots par exemple. Elle met à disposition de nombreux composants, ce qui la rend très pratique à utiliser mais également un peu lourde pour de l’embarqué. STM32 STM32 est la plateforme la plus bas niveau des quatre ci-dessus, elle permet un contrôle total du comportement du système, ce qui est une bonne chose pour la sécurité. La puissance de calcul sur un STM32 est plus faible que sur une carte Jetson TX2 par exemple, mais les tâches à effectuer ne demandent pas forcément une puissance particulière. Il s’agit d’implémenter une communication UART, de traiter des données et d’exécuter des machines d’état. Un STM32 peut tout à fait être adapté. 7.2.2 Choix Dans un premier lieu il a été choisi de développer sur STM32 avec une carte NucleoL476RG. Une solution sur Raspberry Pi a ensuite été mise en place. Plus d’informations sur les raisons qui ont influencé ce choix sont disponibles au chapitre 11. 7.3 Déploiement Le diagramme de la figure 17 illustre comment le Onboard SDK interagit avec l’application utilisateur et le drone

Mobile SDK

Vue d’ensemble Le Mobile SDK (MSDK) est un kit de développement software qui permet aux développeurs d’accéder aux drones de DJI . Le MSDK simplifie le développement en gérant les fonctionnalités de bas niveau tel que la gestion de la batterie, la transmission de signal et la communication avec le drone. Le MSDK inclut : — Une librairie/framework qui donne accès aux produits DJI — Des codes exemples et des tutoriels — Une documentation d’API La plupart des fonctionnalités des produits DJI sont accessibles via le MSDK. Les développeurs peuvent automatiser le vol, contrôler la caméra et la gimbal, télécharger les médias stockés sur le drone, récupérer le flux vidéo en temps réel ainsi que les valeurs des capteurs, … Contrôle de vol Il est possible de piloter le drone de trois façons : — Manuellement – Le pilote commande le drone avec la télécommande pendant que le MSDK récupère les informations vidéo et les valeurs des capteurs. — Joystick virtuel – Le MSDK permet de générer virtuellement les commandes d’un joystick afin d’émuler un pilote. — Missions – Des itinéraires prédéfinis peuvent être suivis. Caméra La caméra et la gimbal sont programmables. Il est possible d’interagir sur plusieurs paramètres : — Mode de caméra – Photo ou vidéo — Exposition – Obturateur, ISO, compensation de l’ouverture et de l’exposition — Paramètres de l’image – Ratio d’image, contraste, teinte, netteté, saturation et filtres — Paramètres de vidéos – Résolution et fréquence d’image — Direction – Positionnement de la gimbal Live vidéo Il est possible de récupérer le flux vidéo de la caméra principale du drone, même quand la caméra enregistre des photos et vidéos sur le stockage du drone. Données des capteurs Les données de plusieurs capteurs peuvent être récupérées via le MSDK. On peut par exemple récupérer la position GPS, les données de la boussole et du baromètre, la vélocité et l’altitude du drone à une fréquence maximum de 10Hz. Télécommande, batterie et liaison Wireless Les informations relatives à la télécommande, au niveau de batterie et à la connexion Wireless peuvent être récupérées. 13. Source : https://developer.dji.com/onboard-sdk/documentation/introduction/ onboard-sdk-introduction.html 21 Jonathan Michel TB – Système embarqué pour Matrice 210 8.2 Plateformes Le MSDK est disponible sur iOS dès la version 9.0 et sur Android dès la version 5.0.0. Figure 18: DJI Mobile SDK – Plateformes de développement 14 Dans le cadre de ce travail de bachelor, l’application sera développée sur Android sur le moniteur tactile Crystal Sky présenté au chapitre 6.3. 8.3 Déploiement Le diagramme de la figure 19 illustre comment le Mobile SDK interagit avec l’application utilisateur et le drone. Figure 19: DJI Mobile SDK – Plateformes de développement 15 14. Source : https://developer.dji.com/mobile-sdk/ 15. Source :

https://developer.dji.com/mobile-sdk/documentation/introduction/mobile_ sdk_introduction.html

22 Jonathan Michel TB – Système embarqué pour Matrice 210 8.4 User eXperience SDK La plupart des applications dédiées au contrôle d’un produit DJI utilisent des fonctionnalités de base communes comme : — Afficher une vue en live du retour vidéo — Afficher l’état du drone – niveau de batterie, puissance du signal, position, … — Proposer des panneaux de configuration pour les paramètres du drone — Mettre à disposition des interfaces pour les fonctionnalités automatiques de base – décollage, atterrissage, return to home (RTH), … Lors de la création d’une application, un développeur doit mettre en place ces fonctionnalités avant d’en ajouter des personnalisées. Pour ce faire, DJI met à disposition un UX (User eXperience) SDK (UXSDK) qui fournit les éléments graphiques de ces principales fonctionnalités. Il permet de créer une vue similaire à celle présentée à la Figure 20. Figure 20: DJI User eXperience SDK 16 Les éléments sont regroupés en trois catégories principales : Widgets, Collections et Panels. Ils peuvent être simplement ajoutés à l’application sans se soucier de leur fonctionnement car ils sont liés au MSDK et se mettent à jour automatiquement. 16. Source :

https://developer.dji.com/mobile-sdk/documentation/introduction/ux_sdk_ introduction.html

23 Jonathan Michel TB – Système embarqué pour Matrice 210 Widget Les widgets sont les éléments de base du UXSDK. Ils représentent typiquement un état ou permettent d’exécuter une action, comme un indicateur de batterie ou le bouton de décollage automatique. Figure 21: DJI User eXperience SDK – Widgets 17 Collections Une collection regroupe plusieurs widgets d’un même type organisés dans un ordre prédéfinis. Il peut s’agir par exemple d’une barre de statut. Les collections sont uniquement disponibles sur iOS. Figure 22: DJI User eXperience SDK – Collection 18 Panels Les panels sont les éléments les plus complexes. Ils contiennent plusieurs informations ou paramètres. C’est le cas par exemple du menu des paramètres de la caméra ou de la checklist de vol.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

I Introduction
1 Préambule
2 Objectifs
2.1 Système embarqué
2.2 Communication Mobile-Onboard
2.3 Application au sol
2.4 Démonstrateur
3 Planification 
4 Structure du rapport 
II Analyse du contexte 
5 Législation 
5.1 Demande de vol spécial
5.2 Autorisation d’exploiter des drones à proximité d’un rassemblement
5.3 Swiss U-Space
6 Drone Matrice 210 
6.1 Drone .
6.2 Télécommande Cendence
6.3 Moniteur Crystal Sky
6.4 Logiciels et applications
6.4.1 DJI Assistant 2
6.4.2 DJI Go 4 App
6.4.3 DJI Pilot
6.4.4 DJI Bridge
7 Onboard SDK 
7.1 Vue d’ensemble
7.2 Plateformes
7.2.1 Possibilités
7.2.2 Choix
7.3 Déploiement
8 Mobile SDK 
8.1 Vue d’ensemble
8.2 Plateformes
8.3 Déploiement
8.4 User eXperience SDK
9 Comparaison entre les deux SDK
10 Mobile-Onboard Communication Jonathan Michel TB – Système embarqué pour Matrice
III Développement réalisé
11 Système embarqué
11.1 Tests sur STM32
11.2 Solution sur Raspberry Pi
11.3 Configuration de debug
11.4 Montage sur le drone
11.5 Architecture logicielle
11.6 Contrôleur de vol
11.6.1 Control Authority
11.6.2 Activation du Onboard SDK
11.7 Communication
11.8 Actions
11.9 Télémétrie 
11.9.1 Broadcast
11.9.2 Subscription
11.10Missions
11.10.1 Systèmes de coordonnées
11.10.2 Pilotage
11.11Positionnement GPS
11.11.1 Système géodésique
11.11.2 Calculs de position
12 Capteur DVA embarqué
12.1 Technologie DVA
12.2 Antenne DVA .
12.3 Traitement de signal
13 Application Android 
13.1 Architecture logicielle
13.2 Dashboard fragment
13.3 Pilot fragment . .
13.4 Mission fragment .
13.5 Mobile fragment
IV Tests et résultats 
14 Tests unitaires 
15 Mobile-Onboard Communication 
15.1 Débit
15.2 Transfert .
16 Test du capteur embarqué 
17 Tests GPS 
18 Tests sur simulateur 
19 Tests en extérieur
20 Améliorations futures Jonathan Michel TB – Système embarqué pour Matrice 
V Conclusion 
21 Remerciements 
VI Annexes
A Glossaire
B Liste de figures
C Sources
D Documents

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *