Abonnez-vous à DeepL Pro pour traduire des fichiers plus volumineux. Visitez po

Abonnez-vous à DeepL Pro pour traduire des fichiers plus volumineux. Visitez pour en savoir plus. Guide pratique : Blockset Simulink2.0 pour ArduPilot Fran¸cois Hugon Robert F. Hartley Brian DeRosa Gulfstream Aerospace Corporation Embry-Riddle Aeronautical University Savannah, Géorgie Christopher Carvalho Embry-Riddle Aeronautical University Daytona Beach, Floride Novembre 2,2012 Remerciements Merci à nos épouses et à nos proches - Sara, Laura, Bailey et Lauren - qui ont supporté patiemment les longues nuits, les corvées négligées et qui ont été nos plus grands soutiens pour réussir cette aventure. Merci à Brian DeRosa de nous avoir permis de prendre possession de sa maison et de transformer sa table de salle à manger en hangar. Merci à George Hicks, pilote radio-commandé de renommée mondiale, pour avoir été notre pilote de sécurité, pour avoir été une grande source de conseils et d'astuces pour les avions radio-commandés, pour avoir toujours eu les pièces dont nous avions besoin, y compris des cellules entières, et pour avoir toujours été prêt à voler sans préavis. Merci à Richard Ruff de Mathworks pour son expertise technique et ses conseils lors du développement de l'APM2 Blockset. Résumé Dans le cadre du développement d'un nouveau cours de troisième cycle sur le guidage, la navigation et le contrôle à l'Embry-Riddle Aeronautical University, un blockset Simulink a été développé pour permettre aux étudiants de travailler uniquement dans Matlab/Simulink pour le développementdu code GNC. Ce code peut être téléchargé directement sur l'ArduPilot. 2.0 un ensemble intégré de capteurs et de traitement permettant aux étudiants de développerfacilement desvéhicules aériens sans pilote. Le blockset est utile dans la mesure où il élimine la nécessité d'avoir un programmeur compétent et un ingénieur électricien compétent pour intégrer le matériel et le logiciel à la cellule. Ce guide a pour but de décrire la fonctionnalité du blockset, de fournir des recommandations sur la façon d'implémenter les conceptions de contrôle, et des étapes sur la façon d'intégrer le code sur l'ArduPilot directement à partir de Simulink. Le blockset n'en est qu'au début de son développement et peut encore être amélioré ; il est prévu que les futurs étudiants ou la communauté universitaire dans son ensemble fassent progresser les capacités à l'avenir. 1 Contenu 1 Introduction 7 2 Configuration et utilisation 8 2.1 Matlab...................................................................................................8 2.2 Paramètres de configuration Simulink..................................................8 2.3 Matériel Run On Target........................................................................9 2.4 Répertoire des noyaux cibles Arduino..................................................9 2.5 Fichier IOWrappers.cpp............................................................................9 2.6 Chemin Simulink..................................................................................9 2.7 S-Function Build...................................................................................9 2.8 Téléchargement d'un modèle...................................................................10 3 2.0Blocs de la bibliothèque ArduPilot Mega 11 3.1 Blocs de capteurs.....................................................................................11 3.1.1 Unité de mesure inertielle.......................................................11 3.1.2 Capteur de pression barométrique...........................................12 3.1.3 Magnétomètre..............................................................................14 3.1.4 GPS..........................................................................................15 3.1.5 Sonde de Pitot.........................................................................19 3.2 Entrée récepteur / Sortie servo...................................................20 3.2.1 RC Read..................................................................................20 3.2.2 Écriture RC..............................................................................21 3.3 Timing.....................................................................................................22 3.3.1 Horloge........................................................................................22 3.3.2 Moniteur en temps réel...........................................................22 3.4 Sortie de données............................................................................23 3.4.1 Télémétrie...................................................................................23 3.4.2 Sortie USB...............................................................................25 3.4.3 Puce de mémoire flash................................................................25 3.4.4 Téléchargement des données.......................................................26 3.5 Autres blocs divers..................................................................................27 3.5.1 Entrée discrète.........................................................................27 3.5.2 Sortie discrète..........................................................................29 3.5.3 LED Bleu.....................................................................................29 2 3.5.4 LED jaune...................................................................................29 3.5.5 LED rouge...................................................................................29 3.5.6 Entrée analogique........................................................................30 3.5.7 Sortie analogique.....................................................................30 3.5.8 Lecture en série...........................................................................30 3.5.9 Conversion d'un flotteur en uint8............................................30 4 Exemples 32 4.1 Exemple de base......................................................................................32 4.2 Exemple d'IMU et de sortie de données.............................................33 4.3 Exemple de capteurs................................................................................33 4.4 Téléchargement d'un modèle...................................................................35 4.5 Les prochaines étapes.........................................................................35 5 Architecture du jeu de blocs Simulink 36 5.1 Base de code C/C++ d'APM...............................................................36 5.2 Niveau S-Fonction2.................................................................................39 5.3 Compilateur du langage cible..................................................................39 6 Travaux futurs 42 6.1 Travaux futurs.....................................................................................42 7 Soutien 44 3 Liste des figures 3.1 Bloc et masque IMU................................................................................12 3.2 Bloc de pression barométrique............................................................14 3.3 Bloc et masque magnétométriques.....................................................16 3.4 Bloc et masque GPS............................................................................17 3.5 Bloc de capteurs de pression différentielle..............................................19 3.6 RC Bloc de lecture et masque.............................................................20 3.7 RC Bloc et masque d'écriture..............................................................21 3.8 Bloc d'horloge et masque.........................................................................22 3.9 Bloc et masque du moniteur en temps réel.........................................23 3.10 Bloc et masque de l'impression série des flottants.............................24 3.11 Bloc et masque de mémoire flash............................................................26 3.12 Menu d'interaction avec la mémoire flash - sans données.................27 3.13 Menu d'interaction avec la mémoire flash - avec données.................28 4.1 Modèle Simulink de base utilisant des blocs RC....................................32 4.2 Sortie des mesures IMU sur le port série............................................33 4.3 Modèle Simulink utilisant tous les blocs de capteurs, de synchronisation et de mémoire flash. 34 5.1 Simulink2.0 ArduPilotMega.........................................................................................37 4 Liste des tableaux 2.1Dossiersà ajouter au chemin de Matlab....................................10 3.1 Bloc IMU 6-DOF, entrées.......................................................................13 3.2 Bloc IMU 6-DOF, Sorties.......................................................................13 3.3 Bloc du capteur barométrique, entrées...............................................14 3.4 Bloc du capteur barométrique, sorties................................................14 3.5 Bloc magnétomètre, entrées................................................................16 3.6 Bloc magnétomètre, sorties.................................................................17 3.7 Bloc GPS, Entrées...............................................................................18 3.8 Bloc GPS, Sorties................................................................................18 3.9 Bloc de la sonde de Pitot, entrée........................................................19 3.10 Bloc de la sonde de Pitot, sortie.........................................................19 3.11 Bloc de lecture RC, entrées.....................................................................20 3.12 Bloc de lecture RC, sorties.................................................................21 3.13 Bloc d'écriture RC, entrées......................................................................21 3.14 Bloc d'écriture RC, sorties..............................................................22 3.15 Bloc d'horloge, sortie..........................................................................23 3.16 Bloc moniteur en temps réel, sortie....................................................23 3.17 Bloc d'impression série des flottants, entrée......................................25 3.18 Bloc d'écriture en série, entrée................................................................25 3.19 Écriture d'un bloc de tableau flottant, entrée......................................26 3.20 Écriture d'un bloc de tableau flottant, sortie.......................................26 3.21 Bloc d'entrées discrètes, sortie............................................................28 3.22 Bloc de sorties discrètes, entrée..........................................................29 3.23 Bloc LED bleu, entrée.............................................................................29 3.24 Bloc jaune LED, entrée...........................................................................29 3.25 Bloc de LED rouge, entrée......................................................................29 3.26 Bloc d'entrée analogique, sortie..........................................................30 3.27 Bloc de sortie analogique, entrée........................................................30 3.28 Bloc de lecture en série, sortie............................................................30 3.29 Bloc de conversion de flottant en UINT8, entrée...............................31 3.30 Bloc de conversion de flottant en UINT8, sortie................................31 5 Nomenclature bx Intensité du champ magnétique sur l'axe x du corps by Intensité du champ magnétique sur l'axe y du corps bz Intensité du champ magnétique sur l'axe z du corps n xAccélération sur l'axe x du corps ny Accélération le long de l'axe y du corps n zAccélération le long de l'axe z du corps pRoll Rate, deg/sec q Taux de tangage, deg/sec r Vitesse de lacet, deg/sec A/DAnalogiqueà numérique APM1 ArduPilot Mega APM21.0 ArduPilot Mega CGCentre2.0 de gravité ERAU Embry-Riddle Aeronautical University GACGulfstreamAerospace Corporation GPSSystème de positionnement mondial 2 ICInter -Circuit intégré I/OInput/Output IDEIntegratedDevelopment Environment (environnement de 6 développementintégré) IMUInertialMeasurement Unit (unité de mesure inertielle LEDDiode électroluminescente 7 MbMegabyte MEMS Système micro-électro-mécanique MHzMegahertz MIMO entrées multiples sorties multiples msmilliseconds NVM Mémoire non volatile PWM Modulation de largeur d'impulsion QFNQuadFlat No- Leads RCRemoteControl ROTH Run On Target Hardware SISOSingleInput Single Output SPISerialPeripheral Interface TMTelemetry UAVUnmanned Aerial Vehicle UINTEntier non signé USBBus sériel universel Temps universel coordonné (UTCCoordinatedUniversal Time), également connu sous le nom de "temps zoulou". 8 Chapitre 1 Introduction L'ArduPilot 2.0 est un produit prêt à l'emploi qui intègre une suite de capteurs avec un processeur Atmega 2560 pour une utilisation en tant que pilote automatique. Ce document décrit comment utiliser le blockset Simulink qui a été développé pour ce produit, et décrit comment un modèle Simulink unique peut être développé et intégré directement à l'ArduPilot 2.0. Ce modèle comprendra le code nécessaire à la lecture des capteurs, à la lecture des signaux PWM de l'émetteur RC, à la sortie des signaux PWM pour contrôler les servos et un moteur, à la sortie des données vers un système de télémétrie et à l'enregistrement des données sur une puce mémoire flash. 9 Chapitre 2 Configuration et utilisation 2.1 Matlab Pour que les modèles Simulink puissent être intégrés au matériel cible, l'utilisateur doit avoir accès à une version 2012a ou plus récente de Matlab. À partir de la version 2012a, Mathworks a inclus une fonction Run On Target Hardware (ROTH) qui remplit essentiellement la même fonction que le codeur embarqué, mais le code compilé réel n'est pas visible par l'utilisateur. ROTH est inclus dans la licence standard de Simulink, mais il convient de noter, cependant, que ROTH ne fonctionne actuellement que sous Windows. Mathworks a indiqué qu'il fonctionnera éventuellement sous Linux ou sur un Mac, mais au moment de la publication de ce document, cette capacité n'a pas été mise en œuvre. Un compilateur supporté doit également être installé. Le document d'aide de Matlab donne des indications sur les compilateurs pris en charge et sur la manière de les faire reconnajtre par Matlab [6]. 2.2 Paramètres de configuration Simulink Le modèle réel qui est intégré dans l'ArduPilot doit avoir certains paramètres de configuration définis. Le modèle doit avoir les paramètres suivants : • Type : Étape fixe - Pas de temps : Il s'agit du temps de trame de votre carte, qui doit donc être déterminé de manière à ce que la carte fonctionne en temps réel. Utilisez les blocs de timing, comme décrit dans la section 3.3pour vous aider à déterminer le temps de calcul de votre code. • Solveur : Discret (pas d'états continus) • Implémentation matérielle -> Fournisseur du dispositif : Atmel 1 2.3 Matériel Run On Target La première fois que ROTH est utilisé, le logiciel cible réel doit être installé. Comme il s'agit d'un ArduPilot, avec une puce Arduino Mega 2560, l'utilisateur doit installer le matériel cible Arduino. Pour ce faire, à partir de Simulink, sélectionnez le menu Tools, puis Run On Target Hardware, et enfin Install Target. Sélectionnez Arduino. Simulink installera la cible dans l'emplacement suivant : C:/MATLAB- /Targets/R2012b. 2.4 Répertoire des noyaux cibles Arduino L'IDE Arduino est inclus uploads/Litterature/ aaaa 1 .pdf

  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager