Spécification des Requis du Système

Transcription

Spécification des Requis du Système
INF6300 – Ingénierie du logiciel avec Ada «Robots Traceurs d’un SCAO» Spécification des Requis du Système (SRS) Version 1.2 Professeur : Noureddine Kerzazi Chargé des laboratoires : Noureddine Kerzazi
Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 Historique des Révisions Date Version Description Auteurs 12/Jan/08 1.0 Version de travail Noureddine Kerzazi 15/Jan/08 1.1 Version de travail Noureddine Kerzazi . LISTE DE DIFFUSION Entité Poly Destinataires Nb ex. Professeur Noureddine Kerzazi Chargé des Labs Noureddine Kerzazi Groupe Étudiants du cours INF6300 École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi 1 1 Pour approb. comment. Action info X X X X X X
Page 2 / 2 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 Table of Contents 1. Introduction 1.1 But 1.2 Portée 1.3 Définitions, acronymes et abréviations 1.4 Références 1.5 Vue d’ensemble du document 5 5 5 5 6 6 2. Description globale 2.1 Perspective du produit 2.1.1 Interfaces système 2.1.2 Interfaces utilisateur 2.1.3 Interfaces matérielles 2.1.4 Software Interfaces 2.1.5 Opération 2.2 Vue d'ensemble des fonctions du produit 2.2.1 Interface usager 2.2.2 Lecture et sauvegarde d’une simulation 2.2.3 Module de simulation 2.2.4 Rendu graphique 2.3 Caractéristiques du système 2.4 Hypothèses et dépendances 7 7 7 7 8 8 9 9 9 9 9 9 10 11 3. Spécification des exigences 3.1 Fonctionnalités 3.1.1 Exigences fonctionnelles liées à l’interface utilisateur 3.1.2 Exigences des liens entre les interfaces utilisateurs et les autres éléments 3.1.2.1 Fichier de simulation 3.1.2.2 Robots 3.1.2.3 Mémoire du simulateur 3.1.3 Exigences spécifiques pour le module de simulation 3.1.4 Exigences des liens entre le module de simulation et les autres éléments 3.1.4.1 Robots 3.1.4.2 Mémoire du simulateur 3.1.4.3 Contraintes 3.1.5 Exigences spécifiques pour le rendu graphique 3.1.6 Exigences des liens entre le module RG et les autres éléments 3.1.6.1 Robots 3.1.6.2 Mémoire du simulateur 3.1.6.3 Contraintes 3.1.7 Exigences spécifiques pour la lecture et sauvegarde d’une simulation 3.1.8 Exigences des liens entre le module L/S SIM et les autres éléments 3.1.8.1 Fichier de simulation 3.1.8.2 Robots 3.1.8.3 Mémoire du simulateur 11 11 11 12 12 13 13 13 14 14 14 14 14 15 15 15 15 16 16 16 17 17
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 3 / 3 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 3.1.8.4 Exemple 3.2 Exigences supplémentaires 17 18 4. Quelques exigences liées au design 19 5. Classification des exigences 5.1 Bien livrable #1 5.1.1 Objectifs 5.1.2 Travail à effectuer 5.2 Bien livrable #2 5.2.1 Objectifs 5.2.2 Travail à effectuer 5.3 Bien livrable #3 5.3.1 Objectifs 5.3.2 Travail à effectuer 5.4 Bien livrable #4 5.4.1 Objectifs 5.4.2 Travail à effectuer 5.5 Bien livrable #5 5.5.1 Objectifs 5.5.2 Travail à effectuer 20 20 20 20 21 21 21 22 22 22 23 23 23 23 23 23 6. Annexes 6.1 Annexe A: Glossaire 6.2 Annexe B: Description des documents de design 6.3 Annexe C: Barèmes d'évaluation 6.3.1 Les rapports d'étape 6.3.2 Correction du projet final 24 24 25 25 25 25 LISTE DES FIGURES Figure 1 : Description de l’environnement de travail du RTSCAO............................................................ 7 Figure 2 : Design général du RTSCAO ..................................................................................................... 19 Figure 3 : Les axes de liberté du robot. .................................................................................................. 24 LISTE DES TABLEAUX Tableau 1 : Caractéristiques numériques du système. ............................................................................ 10 Tableau 2 : Exemple Instructions supportées par l'interpréteur G‐Code. ................................................. 17 Tableau 3 : Exemple Modificateurs appliqués aux instructions G‐Code................................................... 18
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 4 / 4 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 Spécification des Requis Système 1. Introduction 1.1 But Le présent document décrit les exigences fonctionnelles et non‐fonctionnelles du projet «Robots Traceurs d’un SCAO» (RTSCAO). Ce SRS s’adresse aux étudiants du cours INF6300 1 ainsi que M. Louis Granger 2 et M. Noureddine Kerzazi 3 . Il décrit en détails le comportement attendu du système à développer. Il sera la référence pour tous les groupes. Aussi, le glossaire situé à la fin de ce document permettra d’adopter un vocabulaire uniforme pour tout le projet. 1.2 Portée La spécification des exigences porte sur le projet nommé «RTSCAO». Ce dernier est un système qui contrôle un ensemble de robots traceurs sur des feuilles métalliques. Il utilise les données extraites d’un système de Conception Assisté par Ordinateur (CAO) pour commander, en temps réel, des bras automatiques. Ces bras tracent au laser dans des feuilles métalliques. Chaque robot est composé de 6 axes de liberté qui bougent indépendamment pour plus de flexibilité. La manipulation est automatisée avec un mécanisme de lecture des instructions par un contrôleur numérique (CN) à partir d’un fichier d’instruction (G‐Code). 1.3 Définitions, acronymes et abréviations Les définitions, acronymes et abréviations sont décrits dans le glossaire du projet, qui se trouve en «annexe A» de ce document. 1 2 INF6300 ­ Ingénierie du logiciel avec Ada (École Polytechnique de Montréal). Louis Granger : Coordonateur du cours INF6300. 3 Noureddine Kerzazi : Chargé de cours et de laboratoires.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 5 / 5 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 1.4 Références [1] Programming in Ada 2005 par John Barnes, Addison Wesley. [2] Site Web du cours INF6300. [3] OpenGL Programming Guide: The official guide to learning OpenGL v1.4. [4] Complete G‐Code Listing. http://prl.stanford.edu/documents/obsolete/completeG.html 1.5 Vue d’ensemble du document Le reste de ce document présente, d’abord une description globale du produit à concevoir, c’est‐à‐dire les différentes interfaces, fonctions, caractéristiques et contraintes du système. Ensuite, il décline les axes suivants : · La liste exhaustive de toutes les exigences fonctionnelles du système classées en cinq paliers en corrélation avec les cinq livrables exigés ; · Les exigences non‐fonctionnelles telles que le respect des règles de programmation, la simplicité du design, la documentation, etc.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 6 / 6 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 2. Description globale La figure suivante donne une idée globale de ce qui attendu de ce projet. Figure 1 : Description de l’environnement de travail du RTSCAO. 2.1 Perspective du produit 2.1.1 Interfaces système Le système «RTSCAO» doit être multitâche et en temps réel. Le système doit accéder à quelques bibliothèques système, notamment l’horloge. Aussi, pour le dernier livrable, le système doit s’interfacer avec une librairie C pour envoyer les données à une interface OpenGL pour simuler le déplacement des robots. L’interface OpenGl sera fournie aux étudiants avec les paramètres nécessaires à la compilation et les liens. 2.1.2 Interfaces utilisateur Le système «RTSCAO» utilise une interface de type ANSI. L’interface est globalement divisée en deux parties, les commandes et les données contrôlées.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 7 / 7 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 La section “commande” permet à l’usager de commander les actions au simulateur. Elle permet d’entrer les coordonnées de déplacement et les modes de fonctionnement des Traceurs (Robots). Elle offre également à l’usager la possibilité d’exécuter ou de sauvegarder le déroulement d’une simulation dans un fichier de simulation. La section “donnée” affiche l’état réel des traceurs (exécution, arrêt, pause, …), les positions de chaque axe pour chaque traceur et d’autres données comme les vitesses de déplacement. Selon les commandes envoyées à l’aide de l’interface “commande”, l’interface “donnée” affiche les coordonnées des traceurs. Lorsqu’une simulation est chargée ou sauvegardée, le temps d’exécution est affiché. 2.1.3 Interfaces matérielles Le système est utilisé uniquement en mode commande. Seuls les raccourcis clavier sont nécessaires. 2.1.4 Software Interfaces «RTSCAO» est un système indépendant et ne fait pas partie d’un système intégré. Il se présente sous forme d’un exécutable. Toutes les spécifications décrites dans le présent document doivent être réalisées par le système. L’application peut être exécutée sur le système d’exploitation Windows ou Linux. Il n’y a aucune restriction. Cependant les modalités de compilation doivent être clairement spécifiées. La procédure de lancement du programme doit, obligatoirement, être nommée «main.adp».
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 8 / 8 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 2.1.5 Opération L’utilisateur du logiciel n’a pas besoin de formation en robotique pour le manipuler. Le logiciel doit être manipulable avec aisance par les utilisateurs. Des messages doivent être affichés pour indiquer l’état du système et les opérations en cours. Une fenêtre d’aide doit être prévue dans l’interface utilisateur. 2.2 Vue d'ensemble des fonctions du produit Le système «RTSCAO» réalise, globalement, quatre fonctions principales : · Interface usager; · Lecture et sauvegarde d’une simulation. · Module de simulation; · Rendu graphique; 2.2.1 Interface usager Cette fonction permet à l’usager de commander et de contrôler le système ainsi que les robots. Il s’agit de l’interface entre l’opérateur et l’application. 2.2.2 Lecture et sauvegarde d’une simulation Cette fonction permet à l’usager de lire un format de fichier de simulation (.SIM) et d’exécuter une simulation sauvegardée préalablement. Elle permet également la sauvegarde même d’une simulation lors de l’utilisation même du simulateur. 2.2.3 Module de simulation Cette fonction réalise les calculs mathématiques nécessaires à la détermination de la dynamique et la cinématique des robots. 2.2.4 Rendu graphique Cette fonction permet à l’usager de visualiser les robots traceurs dans un environnement virtuel 3D.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 9 / 9 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 2.3 Caractéristiques du système Le système est composé principalement de 3 composantes physiques : · Robot mobile : Le robot est un engin mobile composé de 4 roues. Son objectif est de tracer des motifs dans une feuille métallique. Le système à développer doit gérer au minimum 3 robots qui tracent simultanément (dans une même feuille métallique ou sur plusieurs). · Base fixe : La base fixe sert d’intermédiaire entre les robots mobiles et la console d’opération. En raison de sa puissance limitée, la base fixe offre un champ d’action limité pour les robots mobiles. · Console d’opération : Cette console permet à un opérateur de commander et de contrôler les robots mobiles à distance. La table suivante présente les différentes valeurs numériques qui caractérisent le système RTSCAO. Caractéristique Description Valeurs Robot 1 Valeurs Robot 2 Valeurs Robot 3 MasseSondeVide Masse de la sonde exempte 1 kg 5 kg 2.5 kg d’échantillon DistanceMax Distance maximale entre la sonde 20 m 10 m 15 m et la plateforme fixe. EchantillonMax Masse maximale d’échantillons 10 kg 50 kg 20 kg que la sonde peut déplacer TorqueMax Force appliquée pour effectuer 0.1 N 0.2 N 0.15 N un déplacement (translation) VitesseTranslationMax Vitesse de translation maximale 2 m/s 0.5 m/s 1 m/s VitesseRotationMax Vitesse angulaire maximale Pi/20 rad/s Pi/30 rad/s Pi/25 rad/s TempsPropagation Temps de propagation d’un signal entre la console et la base fixe. Variable Tableau 1 : Caractéristiques numériques du système. (*) On considère les moments d’inertie négligeables, c’est pourquoi la vitesse angulaire maximale est atteinte instantanément.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 10 / 10 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 2.4 Hypothèses et dépendances Le simulateur sera entièrement réalisé en Ada. Ceci afin de permettre une plus grande portabilité. Il doit s’exécuter sur un des systèmes d’exploitation Windows ou Linux Fedora. 3. Spécification des exigences 3.1 Fonctionnalités 3.1.1 Exigences fonctionnelles liées à l’interface utilisateur L’interface utilisateur doit fournir les fonctionnalités suivantes : 1. Contrôler et commander 3 robots traceurs simultanément; 2. Visualiser la position en temps réel des robots; 3. Visualiser l’orientation en temps réel des robots; 4. Visualiser la commande entrée pour les robots; 5. Entrer la commande du robot et les paramètres de la commande (avancer, reculer, tourner, arrêter); 6. Afficher la quantité manipulée pour chacun des robots; 7. Indiquer si les robots sont mobiles ou immobiles; 8. Indiquer si les robots sont dans un état de collision; 9. Afficher la vitesse des robots en temps réel (position + orientation); 10. Afficher le nom de fichier de simulation actif; 11. Entrer le nom de fichier de simulation; 12. Valider le format du fichier de simulation; 13. Commander l’exécution du fichier de simulation actif; 14. Commander la sauvegarde de la simulation en cours dans le fichier de simulation actif; 15. Afficher l’état de la sortie graphique (rendu graphique actif ou inactif); 16. Commander l’état de la sortie graphique (activation ou désactivation du rendu graphique); 17. Afficher l’heure (HH:MM:SS) et la date courante (jour/ nom_mois / année);
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 11 / 11 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 18. Afficher le temps en seconde depuis le début de la sauvegarde ou de la lecture d’une simulation; 19. Entrer les paramètres de l’environnement de communication (temps de propagation, % d’obstacles, distribution des obstacles); 20. Sortir du programme. 3.1.2 Exigences des liens entre les interfaces utilisateurs et les autres éléments L’interface utilisateur comporte trois interfaces externes avec les éléments: 1. Fichier de simulation (.SIM); 2. Robots; 3. Mémoire du simulateur. 3.1.2.1 Fichier de simulation L’interface utilisateur permet à l’utilisateur d’exécuter une simulation préalablement sauvegardée dans un fichier de simulation (.SIM). Pour ce faire, l’utilisateur doit entrer le nom du fichier de simulation. L’interface doit valider le format du fichier de simulation. Le fichier de simulation est formé de plusieurs points de simulation qui devront être atteints séquentiellement lors de l’exécution de la simulation. Un point de simulation est une action ordonnée au robot de la part de l’opérateur. Le format du fichier peut être en XML ou texte, le concepteur du système doit établir ce format.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 12 / 12 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 3.1.2.2 Robots L’interface utilisateur transmet les commandes en communiquant avec la section commande des objets robots. Par exemple, les valeurs commandées des robots, l’ordre de déplacement, la commande d’arrêt du simulateur etc. L’interface usager lit les valeurs des attributs des robots en communiquant avec la section état des objets robots. Par exemple, les positions et les orientations courantes des robots, les vitesses de déplacement, l’état de mobilité et d’immobilité des robots etc. Finalement, l’interface utilisateur peut écrire des commandes dans la section commande des objets robots. 3.1.2.3 Mémoire du simulateur L’interface utilisateur communique avec la mémoire du système pour commander et contrôler les éléments autres que les robots. Par exemple, l’entrée du nom de fichier de simulation actif, l’activation ou la désactivation du rendu graphique, l’ajustement des paramètres de communication etc. 3.1.3 Exigences spécifiques pour le module de simulation Le module de simulation gère la dynamique, la cinématique et la détection des collisions. Il doit permettre : 1. Calculer et la vitesse de translation en tenant compte de la force des moteurs du robot; 2. Vérifier l’atteinte de la vitesse maximale (translation); 3. Calculer la position et l’orientation des robots selon la position de la base fixe; 4. Arrêter les calculs de déplacement lorsqu’un robot est en mode «Arrêt»; 5. Indiquer l’état de mobilité des robots; 6. Indiquer l’atteinte d’un point de simulation; 7. Déterminer si un robot mobile est en collision; 9. Vérifier que les robots mobiles restent dans leurs champs d’action respectifs; 10. Gérer les obstacles sur la feuille métallique (retrait et ajout de motifs).
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 13 / 13 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 3.1.4 Exigences des liens entre le module de simulation et les autres éléments Le module de simulation possède 2 interfaces externes: 1. Robots; 2. Mémoire du simulateur; 3.1.4.1 Robots Le calcul de la cinématique utilise la section commande des objets robot afin de lire les commandes que lui transmet l’interface utilisateur. Par exemple, la valeur commandée en position, un ordre d’arrêt complet d’un robot ou l’ordre de prise d’un motif dans la feuille métallique. Le calcul de la cinématique possède seulement un accès en lecture à la section commande des robots. Le calcul de la cinématique utilise la section état des objets robot afin d’actualiser leurs états. Par exemple, la position et l’orientation actuelle d’un robot, l’état de mobilité des robots etc. Le calcul de la cinématique est la seule tâche à posséder un accès en écriture sur les attributs des robots. La classe robot contient les fonctions associées à la cinématique même d’un robot. 3.1.4.2 Mémoire du simulateur Le module gère et utilise la mémoire du simulateur pour déterminer les attributs des obstacles sur la feuille. 3.1.4.3 Contraintes 1. Le module de la simulation doit être considéré comme une tâche indépendante. 2. La fréquence d’exécution ne doit pas dépassé 20 Hz. 3. La tâche est plus prioritaire que les autres. 3.1.5 Exigences spécifiques pour le rendu graphique
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 14 / 14 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 Le rendu graphique (RG) permet d’afficher en 3D la base fixe, les robots mobiles et la feuille métallique. Il s’agit d’un processus de moindre priorité. Le rendu graphique doit permettre de: 1. Modéliser et de visualiser les robots dans un environnement 3D; 2. Afficher les obstacles (échantillons) avec l’aide de cylindre; 3. Afficher un modèle graphique de la base fixe; 3.1.6 Exigences des liens entre le module RG et les autres éléments Le rendu graphique possède 2 interfaces externes : 1. Robots; 2. Mémoire du simulateur. 3.1.6.1 Robots Le rendu graphique lit la position et l’orientation des robots afin de les afficher dans le monde virtuel. Ces positions et ces orientations correspondent aux données calculées par le module de la cinématique. 3.1.6.2 Mémoire du simulateur Le rendu graphique utilise la mémoire du simulateur pour lire l’état d’activation et de désactivation du rendu graphique. Il l’utilise également pour connaître la répartition des motifs sur la feuille métallique gérés par le module de simulation. 3.1.6.3 Contraintes 1. Le rendu graphique doit être portable (utilisation d’une librairie standard comme OpenGL). 2. Le rendu graphique doit être considéré comme une tâche indépendante. 3. Le rendu graphique doit avoir une fréquence de rafraîchissement située entre 15 Hz et 20 Hz.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 15 / 15 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 3.1.7 Exigences spécifiques pour la lecture et sauvegarde d’une simulation La lecture et la sauvegarde (L/S SIM) d’une simulation est le module qui gère l’automatisation des déplacements des robots. Ce module permet la sauvegarde d’une séquence de points de simulation pour un ensemble de robots. Lors de l’exécution d’une simulation préalablement sauvegardée, l’ensemble de points de simulation doit être chargé en mémoire pour éviter toutes fluctuations non désirables pour les systèmes temps réel. La lecture et la sauvegarde d’une simulation doit permettre de : 1. Traiter le mode de fonctionnement de simulation en cours; 2. Lire une commande et la valeur du paramètre dans le fichier de simulation actif; 3. Enregistrer une commande et la valeur de son paramètre dans le fichier de simulation actif; 4. Vérifier qu’une commande a été exécutée lors d’une simulation manuelle ou automatique. 3.1.8 Exigences des liens entre le module L/S SIM et les autres éléments La lecture et la sauvegarde d’une simulation possède 3 interfaces externes : 1. Fichier de simulation (.SIM); 2. Robots; 3. Mémoire du simulateur. 3.1.8.1 Fichier de simulation Le fichier de simulation contient un ensemble de commandes qui devront être lus séquentiellement. Le format du fichier de simulation doit être fixe soit en format XML ou ASCII. Le format du fichier doit être établit par le concepteur du simulateur.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 16 / 16 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 3.1.8.2 Robots Le module lit l’état des robots pour réaliser la sauvegarde de points de simulation pour un robot particulier. Dans le cas de la sauvegarde, les points de simulation correspondent aux valeurs commandées d’un robot. Le module écrit dans la section commande lorsque le mode d’opération du simulateur est automatique. Lors de l’atteinte d’un point de simulation pour un robot donné, le module transmet un nouveau point de simulation au robot en communiquant avec sa section de commande. 3.1.8.3 Mémoire du simulateur La lecture et la sauvegarde d’une simulation utilise la mémoire du simulateur afin de vérifier le mode en cours de la simulation. En fait, il détermine s’il y a un ordre de sauvegarde ou de lecture de points de simulation. La lecture et la sauvegarde d’une simulation utilise la mémoire des commandes afin de vérifier le mode en cours de la simulation. Concrètement, il détermine s’il y a un ordre de sauvegarde ou de lecture de points de simulation. 3.1.8.4 Exemple L'interpréteur devra correctement interpréter un sous‐ensemble des commandes G‐Code de façon à pouvoir effectuer des motions complexes d'un ou plusieurs axes simultanément. Ci‐ dessous énumérées dans le tableau [2], à titre d’exemple, quelques instructions. Aussi des instructions, dans le tableau [3], pour les modificateurs. Opcode G0 G1 G4 G90 G91 M2 . Description Motion de positionnement Motion avec interpolation linéaire Pause (la durée est spécifiée en secondes) Sélection du mode de coordonnées absolues Sélection du mode de coordonnées relatives Arrêt du programme Tableau 2 : Exemple Instructions supportées par l'interpréteur G‐Code.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 17 / 17 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Modificateur G9 E F F . Version: 1.2 Date: 15 / Jan / 08 Description Force un arrêt complet du robot (G0 et G1) Spécifie la vélocité composée d'axes rotatifs (G1) Spécifie la vélocité composée d'axes linéaires (G1) Spécifie la durée d'une pause en secondes (G4) Tableau 3 : Exemple Modificateurs appliqués aux instructions G‐Code. 3.2 Exigences supplémentaires 1. L’interface usager doit être composée d’une seule page (textuelle). 2. L’interface usager ne doit pas permettre l’entrée de nouvelles valeurs pour un robot qui est en mouvement. Le robot doit être arrêté préalablement. 3. Lorsqu’on commande l’exécution d’un fichier de simulation, l’exécution se réalise à partir du début du fichier de simulation. L’interface utilisateur doit permettre à l’usager d’arrêter temporairement la simulation (Pause) et de la poursuivre par la suite. L’usager doit également avoir la possibilité de recommencer la simulation à partir du début. 4. Lorsque l’utilisateur entre un nom de fichier de simulation, l’interface usager doit vérifier s’il y a sauvegarde d’une simulation en cours. Dans ce cas, l’interface usager demande à l’utilisateur s’il accepte de terminer la sauvegarde et charger le nouveau fichier de simulation. 5. La position du robot est exprimée en mètre dans le référentiel de la base fixe (x,y). 6. L’orientation du robot est exprimée en radians. 7. Les vitesses doivent être représentées en mètres/seconde ou radians/seconde selon le cas. 8. L’interface utilisateur doit être considérée comme une tâche (tâche Ada) indépendante.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 18 / 18 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 9. La fréquence de rafraîchissement de l’interface utilisateur doit être de 20 Hz 4 . 4. Quelques exigences liées au design Le design général du système peut se présenter sous la forme suivante : Figure 2 : Design général du RTSCAO Tel que présenté dans la Figure 2, les objets robot sont des instances de la classe robot. Cette approche rendra l’implémentation plus simple et plus efficace au niveau de la maintenance. La classe contient les éléments suivants: 4 20 Hz pour ne pas surcharger inutilement de messages les tâches d'affichage texte ainsi que l'engin d'affichage graphique OpenGL.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 19 / 19 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 · État : Cette section contient la position, l’orientation, la quantité d’échantillons manipulée, l’état de mobilité etc. En fait, cette section indique l’état des robots. Les attributs ne peuvent pas être lus directement. L’utilisation de méthode est obligatoire. · Commande Cette section contient la valeur commandée en position et orientation, l’état de mobilité et la quantité d’échantillons à prendre ou laisser. Elle permet la transmission de commandes au robot. Les commandes ne peuvent pas être transmises directement. L’utilisation des méthodes est obligatoire. · Méthodes Les méthodes servent à interroger et à modifier les attributs des robots. Parmi les méthodes il y a entre autre les fonctions de cinématique des robots (et de dynamique s’il y a lieu). 5. Classification des exigences Cette section présente la division du travail à réaliser dans le cadre du cours INF6300 Ingénierie du logiciel avec Ada. 5.1 Bien livrable #1 5.1.1 Objectifs
Se familiariser avec le projet à réaliser; Se familiariser avec le langage Ada et l’environnement de développement; Écrire un programme simple utilisant les fonctions d'E/S; Se familiariser avec les déclarations de types et opérateurs (+, *, /, <, etc.); Se familiariser avec les fonctions d'un terminal ANSI; Être en mesure d’implémenter l'écran d'affichage texte; · Être en mesure de concevoir des fonctions permettant d'afficher des valeurs numériques formatées. · · · · · · 5.1.2 Travail à effectuer
· Créer une page texte en couleur pour l'interface usager selon les spécifications du présent document;
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 20 / 20
Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 · Définir la classe robot ainsi que les méthodes qui permettront d'accéder aux informations de chaque robot; · Concevoir les types vitesse, position et le sous‐type distance ainsi que la redirection des opérateurs arithmétiques pour manipuler ces valeurs; · Lire des commandes du menu au clavier; · Expliquer le fonctionnement du simulateur dans le rapport d'étape. La tâche d'affichage qui s’occupe de l’actualisation de l'heure sera faite plus tard dans le projet mais la procédure qui affiche l'heure dans le format approprié devra être complétée dans le cadre de ce travail. Il ne restera plus qu'à appeler cette procédure périodiquement pour que l'affichage de l'heure soit réalisé. 5.2 Bien livrable #2 5.2.1 Objectifs
Maîtriser les fonctions d'accès aux fichiers; Se familiariser avec la manipulation des chaînes de caractères; Comprendre les mécanismes d'exceptions de Ada; Apprendre comment libérer la mémoire occupée par un objet alloué dynamiquement; · Comprendre les types génériques; · Comprendre les types protégés. · Créer une librairie pour les listes doublement chaînées circulaires. · · · · 5.2.2 Travail à effectuer
· Définir un format de fichier de simulation (.SIM); · Lecture de points de simulation dans un fichier de simulation et sauvegarde dans une liste doublement chaînée circulaire; · Sauvegarde de points de simulation dans un fichier de simulation (.SIM); · Valider le format d’un fichier de simulation (.SIM); · Créer un paquetage générique de file (FIFO) basée sur un type protégé (protected type). Il sera ainsi possible de spécifier au moment d'instancier la file quel type d'élément y sera stocké ainsi que la longueur maximale de la file. La procédure «LireElement» pourra ainsi bloquer une tâche qui essaie de lire un élément lorsque la liste est vide. Lorsque la liste n'est pas vide, la procédure «LireElement» devra libérer la mémoire occupée par l'élément retiré une fois la copie de ce dernier complétée. De même, la procédure, «EcrireElement» bloquera la tâche appelante quand la file est pleine. Enfin, la fonction «GetQueueLength» retournera le nombre d'éléments qui se trouvent dans la file.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 21 / 21
Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 · Créer un paquetage générique de liste simplement chaînée basée sur un type protégé. Il sera ainsi possible de spécifier au moment d'instancier la liste quel type d'élément y sera stocké ainsi que la longueur maximale de la liste. La liste contiendra un pointeur sur l'élément courant qui pourra être retourné grâce à l'appel de «LireElement» qui bloque si la liste est vide. La procédure «EcrireElement» permet d'ajouter un élément à la fin de la liste jusqu'à un nombre maximal prédéfini. Le paquetage devra définir des exceptions pour gérer les cas suivants: o La liste est pleine et l'on essaie d'ajouter un autre élément; o La liste est vide et l'on essaie de déplacer le pointeur d'élément courant; o La liste est non‐vide mais on a atteint la fin de la liste en tentant de déplacer le pointeur d'élément courant; · Créer un paquetage qui implémente un sémaphore binaire avec les procédures «Wait» et «Signal»; · L’interpréteur G‐Code devra être implémenté selon les spécifications contenues dans le présent document. 5.3 Bien livrable #3 Le travail dirigé est basé sur l’implantation des fonctionnalités rendu graphique et calcul de la cinématique 5.3.1 Objectifs
· Comprendre la notion de générique en Ada; · Actualiser et réviser la librairie de liste doublement chaînée circulaire afin qu’elle soit générique; · Créer le module de simulation; · Calcul de la cinématique. 5.3.2 Travail à effectuer
· Actualiser et réviser la librairie de liste doublement chaînée circulaire afin qu’elle soit générique; · Créer le module de simulation; Lors de l’implantation, les modules doivent correspondre à des paquetages. Les deux fonctionnalités doivent être aussi testées séparément.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 22 / 22
Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 5.4 Bien livrable #4 5.4.1 Objectifs
· Comprendre les mécanismes de base des tâches en Ada. · Comprendre les mécanismes avancés de synchronisation des tâches en Ada; · utiliser les sémaphores (types protégés); 5.4.2 Travail à effectuer
· Implémenter les tâches de contrôle numérique avec une fréquence de rafraîchissement maximale de 20 Hz, selon les spécifications de ce document. · Créer un module principal qui crée les tâches nécessaires au fonctionnement du · simulateur; · Vérifier les processus qui tentent d’utiliser les ressources simultanément (exclusion mutuelle); · Intégrer toutes les fonctionnalités en un seul exécutable avec l’utilisation des tâches; · Implanter l’affichage de l’heure courante dans l’interface usager (tâche séparée); Ce travail demande beaucoup de minutie et de méthode. Les tâches sont les éléments les plus difficiles à vérifier en programmation. 5.3.4.2 Travail à effectuer 5.5 Bien livrable #5 5.5.1 Objectifs
· Se familiariser avec les mécanismes d'appel de fonctions écrites dans un langage autre qu'Ada notamment en C; · utiliser la notion d’héritage avec les type tagged; · Comprendre le mécanisme de finalisation en Ada. 5.5.2 Travail à effectuer
· Interfacer les robots avec l'engin d'affichage graphique OpenGL; · Modifier les modules qui font de l'allocation dynamique pour intégrer le mécanisme de finalisation; · Terminer l'intégration du logiciel et tester; · Valider les fonctionnalités du système.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 23 / 23 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 6. Annexes 6.1 Annexe A: Glossaire Acronyme SCAO Système Expert (SE) Feuille CN G‐Code ASCII Feedrate GNAT SRS JGRASP Vélocité opcode Sémaphore Signification : Système de conception assistée par ordinateur. Est un système informatique qui utilise des règles définies par des experts dans le but de prendre des décisions automatisées. : Feuille métallique Contrôleur numérique : Langage de programmation utilisé en contrôle numérique basé sur l'utilisation de registres. : American Standard Code for Information Interchange. : Terme anglais utilisé en contrôle numérique pour désigner la vélocité (linéaire ou angulaire). : Compilateur libre Ada2005 développé par GNU. : Spécifications des Requis du Système. : Environnement de développement retenu pour la réalisation de ce projet. : Vitesse exprimée en cm/s ou rad/s. : Une instruction G‐Code : Variable protégée (ou un type de donnée abstrait). Ce mécanisme est utilisé couramment pour restreindre l'accès à des ressources partagées. . Figure 3 : Les axes de liberté du robot.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 24 / 24 Robots Traceurs d’un SCAO Spécifications des Requis Système SRS_ADA_Pr08 Version: 1.2 Date: 15 / Jan / 08 6.2 Annexe B: Description des documents de design Pour chacun des travaux dirigés, toutes les équipes doivent remettre un rapport présentant l'état du projet. Ce document doit contenir: · une introduction qui expose l'énoncé du problème; · une section design générale qui présente les structures des données utilisées et les diagrammes de design; · des commentaires sur les problèmes survenus lors du design et de l'implantation; · une conclusion traitant des travaux à venir; · listing du code formaté et commenté. Il n'est pas nécessaire de fournir un design détaillé si on considère que le code Ada généré sert de design détaillé. Les rapports d'étape font de 4 à 10 pages, interligne 1/ ½ (sans le listing du code). Le rapport final contiendra vraisemblablement plus de 10 pages. 6.3 Annexe C: Barèmes d'évaluation 6.3.1 Les rapports d'étape La correction des rapports (Un rapport doit être remis deux semaines après le début d'un travail pratique.) est basée sur les points suivants: Choix des solutions de design; Profondeur dans l'analyse des choix de design; Présentation générale et orthographe; Qualité du code (indentation, entêtes de module, entêtes de fonctions, commentaires pertinents, standard de codage, utilisation judicieuse de types, constantes et paquetages en évitant les variables globales). · Une présentation PowerPoint sera tenue pour toutes les équipes au cours du travail dirigé # 4. · · · · 6.3.2 Correction du projet final La correction du projet final est réalisée à la fin de l'intégration de chacun des modules. Elle est basée principalement sur le respect des fonctionnalités définies dans le présent document. Cependant, une pondération peut être accordée au respect de chacun des travaux dirigés. Chaque groupe doit compiler et présenter son projet au chargé des laboratoires.
École polytechnique de Montréal.
Ó INF6300 ­­» N.Kerzazi Page 25 / 25