Document Rapport Version Version 1.0 Date 25/03/2008 Auteur Ahmed RADOUA M1 SET Gestion d une flotte de robots Configuration et ordre de missions INSSET UPJV 1 ième année de MASTER Spécialité : (Année 2007-2008) Ahmed RADOUA RAPPORT DE PROJET Responsable d encadrement Mr. SENLIS Jacky INSSET 48 rue Raspail 02100 SAINT-QUENTIN Tél : 03.23.62.89.59 Fax : 03.23.62.49.35 www.insset.u-picardie.fr set@insset.u-picardie.fr
Sommaire Introduction... 3 1. Cahier des charges :... 4 2. Analyse de projet :... 5 2.1. Diagramme de Cas d utilisation :... 5 2.2. Diagramme de classe :... 6 3. Conception :... 8 3.1. Les outils de développement :... 8 3.2. Conception de la base de données :... 8 3.3. Modèle Relationnel de base de données :... 9 3.4. Intégration du MySQL à C++Builder :... 9 3.5. Algorithme d accès à la base de données MySQL :... 10 3.6. Conception de l interface :... 11 4. Réalisation :... 11 4.1. Modification apportée :... 11 4.2. Les Améliorations envisagé :... 12 5. Validation :... 13 Résumé :... 14 Conclusion... 15 Page 2 / 15
Introduction Le robot PROMOCO, est une plate forme évolutive présenté sous forme d un robot mobile, autonome et communique avec un ordinateur via une liaison série ou sans fil. Cette autonomie est réalisée grâce à plusieurs cartes électroniques qui le composent. Le but général de projet Gestion d une flotte de robot, est d importer les méthodes de la supervision, or dans l'industrie, la supervision est une technique de suivi et de pilotage informatique de procédés de fabrication automatisés, elle concerne l'acquisition de données et la modification manuelle ou automatique des paramètres de commande des processus. Page 3 / 15
1. Cahier des charges : L objectif de ce projet cette année est de configurer les robots sur une base de données à partir d une IHM présente sur un ordinateur et ainsi d exécuter des missions en transmettant l ordre au PC embarqué présent sur chaque robot via la liaison série ou sans fils. Ma mission consiste à réaliser une base de données qui stockera toute les informations sur les robots ainsi que leurs configurations, puis développer l interface qui interrogera la base de données pour permettre la création des ordres et des missions à exécuter par les robots. Figure1 : Schéma Fonctionnelle Page 4 / 15
2. Analyse de projet : Nous avons procéder dans l analyse de projet Gestion d une flotte de robots, à une modélisation UML, il nous à était très utile dans la compréhension du système et surtout la structuration de des besoins ainsi que nous travaux. Les points forts d'uml : UML est un langage formel et normalisé o Gain de précision o Gage de stabilité o Encourage l'utilisation d'outils UML est un support de communication performant o Il cadre l'analyse. o Il facilite la compréhension de représentations abstraites complexes. o Son caractère polyvalent et sa souplesse en font un langage universel. 2.1. Diagramme de Cas d utilisation : Les use cases permettent de structurer les besoins des utilisateurs et les objectifs correspondants du système. Ils centrent l'expression des exigences du système sur ses utilisateurs : ils partent du principe que les objectifs du système sont tous motivés. Figure 2 : Use Case n 1 Page 5 / 15
Comme nous constatons dans la figure 2, le système interagi avec quatre acteurs, il va exercer ces ordres de mission sur le Robot, l Utilisateur se sert des fonctionnalités proposé et l Administrateur, c est celui qui va paramétrer et surveiller le bon fonctionnement du système, par contre, la base de données peut être considérer comme un acteur s elle est externe au système à réaliser. Les fonctionnalités du système : o Configurer la base de données : Configure les robots : Insérer ou enlever des cartes Configure les cartes : Insérer ou enlever des fonctions Configure les fonctions : Ajouter ou supprimer des fonctions de la base de données, avec leurs arguments. o Consulter la configuration des robots : l utilisateur peut voir les composent de chaque robot. o Envoie des ordres de mission : l utilisateur a la possibilité de générer des missions. o Visualise les Plan : on va pouvoir supprimer, ajouter ou traiter un plan Il y a d autres fonctionnalités qui seront intégrable au projet, parmi elle le Suivi de missions : Gérer les missions o Déplacements o Actions o Décisions Suivre visuellement les trajectoires du ou des robots Arrêter une mission (au niveau logiciel) Faire un historique des missions o Enregistrer les trames envoyées ou reçues o Enregistrer les mesures Remarque : La relation <<include>> : c est une relation d utilisation, par exemple l envoie des missions utilise la connexion wifi et la connexion ZigBee. La relation <<extend>> : relation d extension, c est à dire le cas d utilisation source, précise le cas d utilisation destinataire. 2.2. Diagramme de classe : La situation de ma partie, se centralise par rapport au diagramme de classe général essentiellement sur la classe CMySQL qui est la classe héritière de la classe CBaseDeDonnees permettant la lecture et l écriture dans une base de données MySql. Page 6 / 15
Page 7 / 15
3. Conception : 3.1. Les outils de développement : On a installée les logiciels utiliser dans le projet, voir BOUML qui est une suite d'outils UML 2 libres, C++Builder, qui est un outil RAD, c est à dire tourné vers le développement rapide d applications (Rapid Application Development) sous Windows. Aussi MySQL est un serveur de bases de données relationnelles SQL libre, son point fort est le fonctionnement sur beaucoup de plates-formes différentes comme Linus, Mac OS X et Windows, et j ai installé aussi EasyPHP qui contient l administrateur SQL PhpMyAdmin, qui est tous simplement une interface de gestion de base de données. 3.2. Conception de la base de données : Au début, j ai entamé la réalisation de la base de données, pour cela j ai commencé par la collection des informations concernant les robots, les cartes, leurs fonctions ainsi que leurs arguments. Les tableaux ci-dessous, montrent l organisation des tables dans la base de données, et aussi les exemples concrets d information collectée, présentent sur les robots. ROBOT CARTE FONCTION ARGUMENT Page 8 / 15
3.3. Modèle Relationnel de base de données : Figure : Modèle Relationnel Comme vous pouvez le constater, le modèle relationnel nous montre, les relations entre nous principaux tables, c'est-à-dire entre Robot-Carte, Carte-Fonction, Fonction-Argument et entre Argument-Type. Apres avoir finalisé l analyse, on a passé a l étape de codage et de développement des déférente partie de projet 3.4. Intégration du MySQL à C++Builder : Pour exploiter la connexion à la base de MySQL, j ai suivi les étapes suivantes : Il faut établir la liaison entre C++ Builder et MySQL : o Création d'un nouveau projet : La première chose est de créer un nouveau projet et de l'enregistrer dans un répertoire. Il faut ensuite recopier la DLL libmysql.dll dans ce répertoire. Ensuite, il faut encore recopier le répertoire Include de MySQL dans le répertoire de projet. o Création de la libraire d'importation : Il faut ensuite créer la librairie libmysql.lib par la commande suivante, exécutée dans une console : implib libmysql.lib libmysql.dll Page 9 / 15
La libraire ainsi créée doit être ajoutée au projet : Ajouter la bibliothèque au projet : Puis vous choisissez comme «Fichier de type» : «Fichier bibliothèque (*.lib)» o Mise à jour du projet : Dans les unités utilisant les fonctions de l'api MySQL, Ajouter les 3 lignes de code suivantes: #define WIN #include "Include/mysql.h" #include<string.h> 3.5. Algorithme d accès à la base de données MySQL : Initialisé la connexion à MySQL : (mysql_init(null)) Il est nécessaire d initialiser l accès à la DLL. Se connecter à la base de données : (mysql_real_connect( )) On ouvre la connexion, et on mit à jour la structure mysql. Pour cela on doit avoir besoin des informations suivantes : Le handle de connexion : c'est-à-dire une variable de type MYSQL L adresse du serveur où mysql est installé Le nom d'utilisateur Le mot de passe Le nom de la base de données Le n de port (0 indique que l'on utilise le port par défaut) Le nom du pipe ou le socket qui sera utilisé (habituellement NULL) Des status permettant de configurer la connexion (habituellement 0) Page 10 / 15
Les différents traitements : Liter les différentes tables de la base de données : (mysql_list_tables( )) Accéder aux différent données de la table ou exécuter des requêtes : (mysql_query( )) Lister la structure d une table : (mysql_num_fields( )) Fermer la connexion : (mysql_close(handle)) 3.6. Conception de l interface : L interface homme machine (IHM) du projet Gestion d une flotte de robot ce compose de plusieurs menus, chaque menu correspond à une fenêtre (ou boite de dialogue). Cette solution permet d intégrer facilement d autre boite de dialogue qui va permettre une meilleure évolution de l interface. 4. Réalisation : 4.1. Modification apportée : Après le départ de responsable M2, SISSI Audrey, j avais pour tache d ajouter la possibilité à l utilisateur de modifier des champs saisie antérieurement, d éditer les configurations des robots saisie préalablement ainsi d améliorer la convivialité de l interface. Cette boite de dialogue permet d éditer les champs saisie par l utilisateur, pour lui permettre de la correction de ses erreurs. Le même principe pour les boites de dialogue «Modifier Carte» et «Modifier Fonction». Pour la partie édition de configuration des robots, je visualise les informations sur le Robot (Nom et Adresse IP), les cartes électroniques qui le composent et les prototypes (Nom, Description et Arguments) des fonctions qui possèdent chaque carte. Voir boite de dialogue «Résumé de configuration. Page 11 / 15
Résumé de la configuration d un Robot 4.2. Les Améliorations envisagé : a) Base de données : Ajouter une colonne dans la table FONCTION, pour le stockage des syntaxes au lieu d utiliser IdFonction dans l envoie des ordres aux robots. Exemple de disfonctionnement : La carte moteurs contient la fonction S pour avant/arrière en Mode Jystick, et que dans les tests des moteurs, nous avants aussi S qui permet de changer le sens de rotation. Alors que IdFonction ne permet pas la répétition. La table envisagée : IdFonction NomFonction Syntaxe Description b) IHM : Ajouter la possibilité d ajouter une fonction sans arguments. Exemple : Z pour demander l azimuth du robot, dans la carte boussole. Page 12 / 15
5. Validation : L interface finale se présente comme ci-dessous : Le projet est encours de finalisation, on vielle que les parties restent soit réaliser et qu ils soient opérationnelles. Page 13 / 15
Résumé : Le robot PROMOCO, est une plate forme évolutive présenté sous forme d un robot mobile, autonome et communique avec un ordinateur via une liaison série ou sans fil. Cette autonomie est réalisée grâce à plusieurs cartes électroniques qui le composent. PROMOCO est aussi un projet intégrant plusieurs robots intelligents capables d évoluer sur une surface plane, d y exécuter des missions et d interagir les uns avec les autres ou avec le superviseur. Globalement, les différentes parties demandées dans le cahier des charges ont abouties, il reste l introduction du PC Embarqué qui va automatiser la supervision et qui va lui permettre plus d autonomie. Page 14 / 15
Conclusion Nous avons, mon équipe et moi-même, réalisé à peu prés 90 % des objectifs citer dans le cahier des charges, l interface de configuration fonctionne, il reste la planification des ordres et des missions. J ai trouvé des difficultés dans l application des principes de la programmation orienté objet, mais avec le soutien de mes deux collègue, SISSI Audrey et DROMAS Cyrille, j ai su comment les dépasser. Ce projet et le travail en équipe m a permet de savoir que chaque membre de l équipe est une ressource d apprentissage et de motivation. En tant que membre, j ai apprit que la qualité de mon travail et de mon projet final dépend de la qualité du travail réalisé par chacun de nous. Page 15 / 15