Université Paris 7 – Master 2 Ingénierie Informatique -
Parcours Logiciels Critiques – Contrôle et Ordonnancement
Projet : LEGO
- version 2008
Objectifs :
- En
appliquant la méthode de conception basée sur le modèle développer un
contrôleur digital embarqué pour un système automatique construit de briques
LEGO MINDSTORMS™ NXT
- Décrire et
justifier une méthodologie pratique qui servirait aux futures promotions
pour construire des systèmes plus complexes
Etapes de travail pratique :
- Concevoir et
construire un système de briques Lego. Le système doit être simple, contenir
un actionneur (p. ex. moteur) et un capteur (p.ex. rotatif, ou de distance),
et admettre une modélisation mathématique facile. Voir par exemple IEEE
Control Systems Magazine, Oct. 2004 p. 61-64.
- Faire un
modèle mathématique continu, linéaire de préférence. Le représenter en
Scicos
- Identifier
ses paramètres en se basant sur une expérimentation avec le système.
- Concevoir un
contrôleur par rétroaction qui fait le système suivre un signal de
référence. Tester sur Scicos.
- Faire une
version discrète du contrôleur. Tester sur Scicos
- Générer le
code
- Le déployer
sur le système
- Tester avec
les signaux de référence et perturbations divers.
Quelques points subtils et indications
Commencez par
une recherche sur le web. N’oubliez pas de citer vos sources !
Faites attention
dans votre travail (et le rapport) aux points suivants :
- Technique
pratique de construction en Lego
- Choix de
capteurs (rotationnel, moteur ou potentiomètre utilisé comme capteur,
ultrason, capteur de lumière utilisé pour mesurer la position ou l’angle).
- Choix
d’actuateur (moteur, moteur couplé avec un frein etc..)
- Technique
de modélisation mathématique sur papier et en SCICOS
- Technique
d’identification des paramètres (y compris l’expérimentation avec le
système)
- Choix de
langage, compilateur, OS et autres outils logiciels pour LEGO (considérez
NBC/NXC, NXJ/Lejos, et autres logiciels libres)
-
Expérimentation des tâches simples avec le logiciel choisi (faire tourner le
moteur pendant 5 sec, lire la position etc).
- choix
d’architecture (en particulier code embarqué vs contrôle par le PC)
- technique de
génération de code (Scicos ou Scicos+RTAI ou à la main)
- adaptation
de code
- son
déploiement sur le système.
- Choix de
signaux d’entrée (constant, échelon, oscillations rectangulaires, sinusoïde,
aussi bien que le signal manipulé par l'utilisateur)
- Mesure et
visualisation sur PC du comportement du système réel
Pour la soutenance expliquez bien vos
choix et faites une jolie démonstration (sur machine et sur LEGO).
Un petit document avec d'autres conseils
est ici. conseils2.pdf
Quelques liens utiles
http--ieeexplore.ieee.org-iel5-37-29513-01337857.pdf (un
article très intéressant, si le lien ne marche pas cliquez
ici)
http--www.cs.aaue.dk-contribution-semesters-spring2006-DE6-proposals-CarControl_DE6_S2006.pdf
(un petit document avec 2 jolies photos)
Inverted Pendulum Balancing Robot Très impressionnant
inverted pole Un projet assez similaire avec des liens intéressants
NXT® motor internals Un modèle mathématique quantitatif du
moteur de Lego NXT - à utiliser
Some
Lego-based Control Experiments Plein de liens