Communication Avec Un Robot Lego Mindstorms
Total Page:16
File Type:pdf, Size:1020Kb
Communication avec un Robot Lego Mindstorms Binome : Encadrants : DANELON Céline Jérôme ERMONT LAFFITTE Julien Frédéric BONIOL Projet Long - DANELON Céline LAFFITTE Julien Remerciements Nous tenons à remercier l’ensemble des personnes qui nous ont aidé dans nos recherches : Pour le protocole µIP : Adam Dunkels. Pour le protocole LNP : Jérôme Ermont et Emmanuel Chaput qui ont grandement facilité notre compréhension du code. Pour les questions concernant les Lego Mindstorms : le forum Freelug et plus particulièrement Khan et Philo. D’une manière générale toutes les personnes qui ont répondu à nos mails : Ecole des Mines de Nantes, Club de Robotique de l’INSA. Frédérique Coudret, pour sa disponibilité et ses conseils concernant l’environnement LINUX. Nos encadrants : Jérôme Ermont et Frédéric Boniol pour leur disponibilité et leurs conseils. 2 Projet Long - DANELON Céline LAFFITTE Julien Sommaire 1. INTRODUCTION............................................................................................................ 5 2. QUE SONT LES ROBOTS LEGO MINDSTORMS ? [LEGO01-02]........................ 5 2.1. HISTORIQUE ................................................................................................................ 5 2.2. ORGANISATION DE LA BRIQUE RCX............................................................................ 5 2.3. COMMUNICATION INFRA ROUGE (IR) SUR LA BRIQUE RCX DE BASE [IR 01] ............. 6 2.3.1. Caractéristiques ................................................................................................. 6 2.3.2. Le protocole........................................................................................................ 6 2.3.2.1. Introduction ................................................................................................ 6 2.3.2.2. Commande ................................................................................................. 7 2.3.2.3. Paquet......................................................................................................... 7 2.3.2.4. RS232 [IR 01] ............................................................................................ 8 2.3.2.5. Transmission .............................................................................................. 9 2.3.3. Les limites d’une communication IR .................................................................. 9 2.4. LA PROGRAMMATION RCX ......................................................................................... 9 3. BRICKOS [BRICK01-02] ............................................................................................. 10 3.1. PRESENTATION.......................................................................................................... 10 3.2. LE NOYAU BRICKOS.................................................................................................. 10 3.3. GESTIONNAIRE DE PROCESSUS .................................................................................. 11 3.4. DESCRIPTEUR DE PROCESSUS .................................................................................... 11 3.5. ETATS ET TRANSITIONS D’UN PROCESSUS.................................................................. 11 3.6. L’ORDONNANCEUR BRICKOS.................................................................................... 12 3.7. GESTION MEMOIRE .................................................................................................... 13 3.8. LES SEMAPHORES ...................................................................................................... 13 3.9. BRCIKOS ET LE TEMPS REEL ..................................................................................... 13 4. LNP : LEGOS NETWORK PROTOCOL [LNP01-03].............................................. 14 4.1. PRESENTATION.......................................................................................................... 14 4.2. LA PILE DE COMMUNICATION .................................................................................... 14 4.2.1. Pré-requis......................................................................................................... 14 4.2.2. Du point de vue de l’ordinateur ....................................................................... 14 4.2.3. Du point de vue du RCX................................................................................... 15 4.2.4. Schémas récapitulatifs...................................................................................... 15 4.2.4.1. Les services LNP...................................................................................... 15 4.2.4.2. Organisation générale............................................................................... 16 4.3. LES MESSAGES LNP .................................................................................................. 16 4.4. CONSTRUCTION DES ADRESSES ................................................................................. 17 4.5. ATTRIBUTION DES ADRESSES..................................................................................... 18 4.6. LA DETECTION DE COLLISION .................................................................................... 18 4.7. LE DEMON LNPD [LNP 01] ...................................................................................... 18 5. µIP [UIP01] .....................................................................................................................19 5.1. CARACTERISTIQUES .................................................................................................. 19 5.2. GESTION MEMOIRE .................................................................................................... 20 5.3. API ........................................................................................................................... 20 3 Projet Long - DANELON Céline LAFFITTE Julien 5.4. IMPLANTATION DE µIP.............................................................................................. 20 5.4.1. La boucle de contrôle principale ..................................................................... 21 5.4.2. Internet Protocol .............................................................................................. 21 5.4.2.1. Fragmentation IP...................................................................................... 21 5.4.2.2. Broadcast et multicast .............................................................................. 22 5.4.3. ICMP : Internet Control Message Protocol..................................................... 22 5.4.4. TCP : Transmission Control Protocol ............................................................. 22 5.4.5. UDP : User Datagram protocol...................................................................... 22 5.5. SERVICES OFFERTS PAR LNP A µIP........................................................................... 22 5.5.1. Pré-requis......................................................................................................... 22 5.5.2. Intégration dans le kernel de BrickOS ............................................................. 23 5.5.3. TCP/IP et le démon LNPd................................................................................ 23 6. CONSEILS D’INSTALLATION [HOWTO 01] ......................................................... 24 6.1. CONSTRUCTION DU CROSS COMPILER........................................................................ 24 6.1.1. Binutils ............................................................................................................. 24 6.1.2. Installation du GCC Cross Compiler............................................................... 24 6.2. BRICKOS................................................................................................................... 25 6.3. POUR TESTER L’INSTALLATION ................................................................................. 26 6.3.1. Télécharger le firmware................................................................................... 26 6.3.2. Lancer le programme de Démo........................................................................ 26 6.4. CHARGEMENT DE µIP................................................................................................ 27 7. RESULTATS OBTENUS.............................................................................................. 27 8. CONCLUSION............................................................................................................... 28 4 Projet Long - DANELON Céline LAFFITTE Julien 1. Introduction Ce projet présente une étude des robots Lego Mindstorms, petits calculateurs très prisés dans les laboratoires de recherche aussi bien pour faire du temps réel que de l’intelligence artificielle. Notre but était d’analyser la capacité de communication des ces robots afin de modéliser un système temps réel de base. La principale difficulté consistait à comprendre comment cette communication était mise en œuvre et à l’intégrer sur le robot. Dans un premier temps, nous nous sommes intéressés à BrickOS, système d’exploitation dédié à la gestion de la communication sur les mindstroms et à l’utilisation maximale de leurs capacités calculatoires. En complément de celui-ci a été développé un protocole spécifique pour la communication infra rouge entre un PC et un ou plusieurs robots, le protocole LNP. Ensuite, nous nous sommes interrogés sur les possibilités de mise en place d’une pile IP réduite. Pour cela nous avons étudié le protocole µIP, ses