If you can't read please download the document
Upload
dadi
View
216
Download
2
Embed Size (px)
DESCRIPTION
this the graduation thesis for Trash collector with NXT
Citation preview
Chapitre II
Page 10
CHAPITRE 2 Programmation du robot collecteur de poubelle
II.1 Description du logiciel [5]
trouve dans le menu principal du NXT. Le logiciel Mindstorms est l'environnement du
dveloppement parfait pour commander le robot.
II.1.1- iel
Fig.II.1 Interface du logiciel
La palette
travail.
La zone de travail est le lieu de conception de votre programme.
Le panneau de configuration prsente les paramtres que vous pouvez ajuster
lorsque vous slectionnez un bloc dans la zone de travail
Le contrleur permet de compiler le programme et de le transfrer au robot (par
connexion USB ou par Bluetooth).
Le Robot Center est le lieu o sont contenus les tutoriels vous permettant de
de Lego Mindstorms NXT (Les vhicules, les bras robotiss). Ces tutoriels se
comportent comme des vidos vous permettant de raliser vos premiers programmes
pas pas de manire trs didactique. Un second onglet est disponible dans cet espace
en li .
Chapitre II
Page 11
II.1.2 Principes de programmation Mindstorms
-
connaitre la programmation pour raliser des programmes volus
environnement NXT-
environnement.
Par dfaut, la zone de travail prsente uniquement un point de dpart. A partir de ce point
ocs de la palette NXT-G. Les blocs NXT-G
Fig.II.2 : La zone de travail
Les blocs NXT-G qui ne sont pas relis un axe de squence ne sont pas pris en compte
par le programme. Il est possible de faire en sorte que plusieurs squences de programmes
crs partir du point de dpart comme le prsente la figure suivante.
Fig.II .3 : Les blocs NXT-G
II.1.3-Les blocs de programmation utilise
-G.
1. Les blocs courants
2.
3. Les blocs de capteurs
4. Les blocs de flux
5. Les blocs de donnes
6. Les blocs avancs
7. Les blocs personnaliss
Chapitre II
Page 12
Bloc dplac :
Ce bloc contrle les moteurs du robot et synchronise ses
mouvements. Ce bloc permet de forcer le robot avancer ou reculer
en ligne droite ou tourner en suivant une courbe.
La description des paramtres dans le panneau de configuration :
Fig.II.4 : Panneau de configuration du bloc Dplacer
Port : Ces boutons nous permettent de slectionner les ports sur lesquels sont connects nos
moteurs.
Direction : C'est grce ces boutons que nous pouvons indiquer le sens de rotation de nos
moteurs l'aide des flches pour avancer et reculer ou au contraire de stopper les moteurs
grce au panneau stop.
Diriger : Cette option en forme de rglette nous permet de faire tourner les moteurs avec des
vitesses diffrentes, ce qui permet de faire tourner notre robot. Plus on place le curseur vers
un des moteurs, plus celui-ci voit sa vitesse rduite et le robot tourne donc du ct o se
trouve ce moteur.
Alimentation : Le rglage d'alimentation des moteurs nous permet d'indiquer quelle vitesse
les moteurs doivent tourner.
Dure : Cette option permet d'indiquer la dure de fonctionnement des moteurs que ce soit de
manire illimit, pendant quelques secondes ou pour un certain nombre de degrs ou de
rotations.
Action suivante : Cela permet d'indiquer si nous voulons freiner les moteurs une fois
accomplie leurs dure de fonctionnement ou si nous dsirons les laisser continuer en roue
libre sans les freiner jusqu' ce qu'ils s'arrtent eux mme.
Voil donc pour la description de ce bloc des plus utiles.
Bloc enregistrer / lire :
Ce bloc permet d'enregistrer un mouvement physique effectu par
le robot puis de reproduire le mouvement enregistr ailleurs dans
le programme.
Chapitre II
Page 13
Le bloc Afficher :
Avec le bloc "Afficher", comme son nom l'indique, on peut afficher
des images, des textes ou encore des dessins sur l'cran LCD de la
brique NXT.
L'afficheur LCD une taille de 100 pixels de largeur sur 64 pixels de hauteur. Un pixel tant
un des petits carrs de l'cran.
Une fois un bloc "Afficher" excut, le NXT garde l'affichage sur l'cran LCD tant qu'un
autre bloc "Afficher" n'est pas utilis pour effacer l'cran ou que la fin du programme
survienne.
Le bloc Attendre :
Ce bloc force le robot examiner son environnement
programme. Par exemple, on peut utiliser le bloc attendre pour forcer
le robot attendre une couleur, un toucher ou un dlai prcis avant de
Le bloc Boucle :
Ce bloc NXT-G permet de raliser une boucle dans notre
programme, nous permettant ainsi de raliser un mme ensemble
remplies.
Ce bloc peut travailler dans plusieurs modes diffrents, les modes Pour
toujours, Compteur, Temps, Logique et enfin Capteur.
Le bloc Commutation :
Le bloc "Commutation" permet dans son utilisation
simplifie, d'effectuer un choix entre deux squences de
code en fonction de la valeur renvoye par un capteur ou
valeur.
Bloc Moteur
Il est trs similaire au bloc "Dplacer", car il concerne galement la mise en
fonctionnement et le contrle des moteurs. Toutefois, la diffrence principale
entre ces deux blocs est que le bloc "Moteur" ne peut commander qu'un seul
moteur la fois alors que le bloc "Dplacer" permet d'en commander jusqu'
trois en mme temps.
Chapitre II
Page 14
Bloc envoyer message
Pour qu'il soit possible d'envoyer ou de recevoir des messages sans fil.
Bloc lampe de couleur :
Utilisez ce bloc pour allumer la lumire rouge, verte ou bleue du capteur de
couleur. Par exemple, on peut allumer la lumire rouge du robot en guise de
Les blocs de capteurs
Bloc capteur de couleur
Ce bloc permet au capteur de couleur
ainsi ragir diffremment, selon la couleur dtecte.
Bloc Capteur de rotation :
Ce bloc NXT-
effectu par un servomoteur.
Bloc "Capteur sonar ultrasons" :
Ce bloc NXT-
d'obstacle) et ainsi dterminer les obstacles et leur distance du robot.
Bloc "Capteur photosensible" :
Ce bloc NXT- le capteur photosensible et ainsi
dterminer la quantit de lumire reue par le capteur.
Bloc "Capteur sonore" :
Ce bloc NXT-
Bloc "Capteur de contact" :
Ce bloc NXT-G per
si le capteur a t press ou au contraire relch.
Chapitre II
Page 15
Bloc "Rception de message Bluetooth" :
Ce bloc NXT-G vous permet de traiter un message reu par communication
Bluetooth. En utilisant la technologie de communication sans fil Bluetooth,
votre robot peut communiquer ave
Mindstorms NXT.
Bloc "Timer" :
Ce bloc NXT-G permet de grer un chronomtre.
Les blocs de donne :
Le bloc Math :
soustraction, multiplication et division. Le bloc peut galement calculer
des valeurs absolues et des racines carres.
Le bloc Alatoire :
Ce bloc gnre un nombre alatoire, c'est dire un nombre au hasard. On
peut utiliser des nombres alatoires pour gnrer un comportement
imprvisible sur notre robot.
Le bloc Comparer :
Ce bloc peut dterminer si un nombre est suprieur, infrieur ou gal
un autre nombre.
Les nombres en entre peuvent tre taps ou fournis de manire
dynamique par des fils de donnes.
Le bloc Plage :
Ce bloc peut dterminer si un nombre se trouve dans une plage de
nombres ou en dehors. Les nombres en entre peuvent tre taps,
dfinis l'aide des glissires ou fournis de manire dynamique par des
fils de donnes. Le signal logique en sortie, Vrai ou Faux , est
transmis par un fil de donnes.
Chapitre II
Page 16
Le bloc Logique :
Ce bloc applique une opration logique ses entres et envoie la rponse
vrai/faux via un fil de donnes. Les entres, qui doivent galement tre
de type vrai ou faux , peuvent tre dfinies l'aide des cases
d'option ou tre fournies de manire dynamique par des fils de donnes.
Bloc "Variable" :
Ce bloc NXT-G, trs utile, vous permet de crer et manipuler des variables
dans votre programme.
Bloc constant :
Un bloc constant peut tre considr comme un endroit o stocker une valeur
dans la mmoire intgre du NXT.
II -2- Position des problmes
Dans cette partie nous allons voir comment le robot collecteur de poubelle va excuter les
tches qui lui seront
prcise et comment il va ragir son environnement.
II -3- Missions ralises
Notre robot est programm pour qu'il suit une ligne et collecter les poubelles sur cette ligne.
Le robot va suivre cette ligne en utilisant un capteur de couleur et il va dtecter les
poubelles par le capteur d'ultrasons en mesurant la distance de poubelle.
Quand le robot collecte la poubelle, il va faire une rotation de 180 et il va suivre la mm
Le robot doit faire le mme travail jusqu' ou il ni pas de poubelle sur cette ligne. La zone
de dpart ce sera la zone de dcharge.
II.3.1 Dplacement
distance ni de dure.
Chapitre II
Page 17
3.1.1 Etude thorique : [6]
1.1.1 Actionneurs et capteurs
Chaque moteur peut tre actionn une certaine puissance, dfinie en pourcentage de la
puissance maximale, correspondant une vitesse de rotation (non prcise). Par ailleurs, un
capteur (circuit intgrateur nomm Rotation sensor ) surveille en permanence, pour chaque
partir de l position initiale du mouvement.
peut physiquement pas tre instantane (mme si on parvenait passer subitement de la
vitesse zro la vitesse maximale, cela entranerait un glissement au niveau des roues donc
une perte de prcision). Pareillement, le freinage ne peut pas tre instantan.
1.1.2 Gomtrie et notations
Nous admettons (cela est assez vident et a t constat lors des dfis prcdents) que le
robot dcrit un arc de cercle lorsque les deux moteurs sont activs des puissances
diffrentes. La roue gauche, correspondant au moteur activ la plus grande puissance, dcrit
un cercle de rayon R2 et la roue droite dcrit u
constant, est e = . Les roues sont toutes deux de rayon r, la roue gauche tourne sur elle-
grce aux capteurs angulaires. Enfin, si le moteur de la roue gauche a une puissance p2 et
le rapport des puissances. En somme,
R1, R2.
la distance que la roue C, ayant le plus de puissance, doit parcourir en cm
R2
rotation du robot en cm
la distance que la roue A, ayant le moins de puissance, doit parcourir en cm
R1
la rotation du robot en cm
e
la distance sparant les deux roues du robot. Dans notre cas, e = 12,7 cm
degrs.
R
le rayon de la roue. Dans notre cas, r = 2,16
1.1.3 Un peu de physique
Nous allons supposer que la liaison entre les roues et le sol se fait sans glissement ; cela
impose que si le sol soit lgrement rugueux ou en tous cas pas trop lisse, et que les
acclrations communiques aux roues ne soient pas trop fortes (comme pour les vraies
parcourue par le point de contact d
Chapitre II
Page 18
Nous supposerons aussi que la puissance applique aux moteurs est toujours proportionnelle
la vitesse angulaire de ceux-ci, ce qui suppose
pas gnante (aller trop vite signifie perdre de la prcision). On aura donc une relation de
proportionnalit entre les vitesses angulaires :
Ou encore
Le dbut c'est la zone de dpart aussi c'est la zone de dcharge. Le robot doit avancer puis
faire une rotation de 180 et retourner vers la zone de dcharge.
1.1.4 Un peu de calcul
La relation gomtrique e= amne ( ) ) soit / r.
:
Fig.II.5
Puis une rotation de 180 et continuent d'avancer.
3.1.3 Conclusions :
trs difficile faire mais un peu de calcule est ncessaire pour faire les choses prcisment.
Dbut
Fin
Marche avant
Rotation de 180
Marche avant
Chapitre II
Page 19
II.3.2 Dtection de poubelle
Dans cette pa
mettre un signal sonore .Il va collecter la poubelle et faire demi-t
dcharge.
:
non oui
Fig.II.6 dtection de poubelle
reconnatre des objets Quand le capteur de dtecte un
signal sonore de dtection.
3.2.2 Conclusion :
robot peut communiquer avec son environnement. Ce dernier permet au robot de ragir et
mesurer la distance.
II.3.3 Collecter la poubelle
Dans cette tache le robot doit dtecte une poubelle, il va la collecter puis faire un demi-tour
pour la dcharge.
:
non oui
Fig.II.7
Dbut
Dtecter poubelle
Stop
fin
Dbut
Dtecter
poubelle Collecter poubelle
Fin
Chapitre II
Page 20
Notre robot contient un bras robotis pour collecter les poubelles dtect. On a construit le
bras robotis le moteur tourne vers avant, il permet au pince de se fermer et le bras de monter
en haut, si le moteur tourne vers a
3.3.2 Conclusion :
Le bras robotis est essentiel dans notre robot, grce a un moteur programm et un systme
mcanique, on a dvelopp un bras pour collecter les poubelles mais cette tache ncessite une
certains prcision.
II.3.4 Suivre une ligne
Dans cette mission on devra raliser un programme qui permettra au robot de suivre une
ligne noir sur un fond blanc, il doit assurer tous les mouvements possibles du parcours.
dplacement sur la planche de teste.
3.4.1-La mthode adopte : [7]
On peut raliser le programme du suiveur de ligne avec plusieurs mthodes, dans notre cas
car elle est la plus performante et elle permet
moteurs en bon tat.
Grce au capteur photosensible on va lire la valeur de luminosit de la couleur noir et blanc,
n=16 pour la couleur noir, n=50 pour la couleur blanche.
La figure ci- n :
Fig.II.8 : Mthode par la logique floue
plus, pour commander la puissance des deux moteurs via les quations mathmatique des
Avant cela, il faut dfinir les constantes et les variables utiles au programme.
s besoin
Chapitre II
Page 21
Pmax : puissance maximale. Pmin : puissance minimale.
N : le noir n=16. B : le blanc n=50.
Pa(n) : puissance du moteur C en fonction de n.
Pc(n) : puissance du moteur B en fonction de n.
Aa, Ba : coefficients de Pa(n).
Ac, Bc : coefficients de Pc(n).
Fig.II.9 : Dfinition des constants Fig.II.10 : Dfinition des variables
Pour commander la puissance des deux moteurs, on utilise une droite croissante Pc(n) et
une autre dcroissante Pa(n) [16 ; 50], donc on calcul la tangente Ac
Bc pour la droite croissante et Aa, Ba
3.4.2 Les quations des puissances et les coefficients :
Pa(n)= Aa*n + Ba Pc(n)= Ac*n + Bc
Aa= (Pmax Pmin)/ (N B) Ba= (N*Pmin B*Pmax)/ (N B)
Ac= - Aa Bc= (N*Pmax B*Pmin)/ (N B)
Voici ci- :
Fig.II.11 : Le principe de dplacement du robot
Chapitre II
Page 22
Le programme qui calcule les coefficients : Pour Aa :
Fig.II.12 : Programme qui calcul Aa
Pour Ac :
Fig.II.13 : Programme qui calcul Ac
Pour Ba :
Fig.II.14 : Programme qui calcul Ba
Pour Bc :
Fig.II.15 : Programme qui calcul Bc
Chapitre II
Page 23
Fig.II.16
squentiellement, mais toutes les lignes sont excutes en mme temps de faon concurrente).
Une deuxime rcupre, en continu, la valeur de la luminosit n.
Les deux dernires sont charges de calculer, en boucle, les puissances, au moyen des
Pa(n) et Pc(n), et de les appliquer sur le moteur adquat.
commencer raliser les boucles, afi
Dbut
Calcule Aa
Calcule Ac
Calcule Ba
Calcule Bc
Calcule puissance Pc Lire la valeur luminosit Calculer puissance Pa
Fin
Chapitre II
Page 24
3.4.3 Conclusion :
surveillance, Grace au programme du suiveur de ligne, on a donn notre robot la possibilit
de suivre un itinraire en toute autonomie. Traitement du suivi de ligne, en vitant de refaire
des calculs identiques.
II.3.5 Suivre une ligne et collecter une poubelle
Dans les tches prcdente on a ralis un programme permettant au robot de collecter les
our lui
donner plus de mobilit.
On a ajout notre programme de suiveur de ligne le programme de collection de poubelle,
qui permettra au robot non seulement de suivre une ligne noire mais aussi de faire la
collection de poubelle.
Dans les tches prcdentes on a ralis un programme permettant au robot de collecter les
poubelles avec le suiveur de ligne pour lui donner plus de mobilit.
non oui
Fig.II.17 et collection de poubelle
permettra de faire la collection de poubelle.
Dbut
Suivre une ligne
Dtecter
poubelle Collecter poubelle
Fin
Rotation de 180
Marche avant
Chapitre II
Page 25
poubelle.
3.5.2-Conclusion :
fondamentales pour un robot collecteur de poubelle pour fonctionner correctement.
II.3.6 Dcharger la poubelle
Aprs la tche de collection de poubelle, nous avons programm le robot collecteur de
poubelle dcharger les poubelles dans la zone de dcharge (fin).
la dcharge la poubelle
Fig.II.18
vre. La poubelle va
tre pose dans la zone de dcharge.
3.6.2 Conclusion
Le bras robotis est essentiel dans notre robot, on a dvelopp un bras pour dcharger les
poubelles mais cette tache ncessite une certains prcision.
Dbut
Collecter poubelle
Fin
Dcharger poubelle
Dtecter un couleur bleu
Chapitre II
Page 26
II.4. Organigramme finale
non oui
Fig.II.19
Dbut
Marche avant
Suivre une ligne
Dtecter poubelle Stop
Collecte poubelle
Rotation de 180
Marche avant
Fin
Dcharger poubelle
Dtecter une couleur bleu
Dtecter un couleur rouge
Rotation de 180
Suivre une ligne
Dtecter un couleur bleu
Stop
Chapitre II
Page 27
II.5 Le parcours
Fig.II.20 Le parcours
II.6. Conclusion
Dans ce chapitre, nous avons commenc la partie programmation. Nous avons ralis le
programme qui excute plusieurs tches, cause de ce programme notre robot est capable de
suivre une ligne et collecter les poubelles.