WorldSkills2012 : Différence entre versions

De Wiki d'activités IMA
(Semaine 6)
(Résultat)
 
(132 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
<include nopre noesc src="/home/pedago/pimasc/include/video-WorldSkills2012-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;">
 
== Présentation ==
 
== Présentation ==
 +
[[Fichier:WorldSkills2013.jpg|thumb|right|Logo des WorldSkills 2013]]
 
Le but de ce projet est de se préparer pour les WorldSkills 2013 dans le métier de Robotique Mobile.  
 
Le but de ce projet est de se préparer pour les WorldSkills 2013 dans le métier de Robotique Mobile.  
  
===WorlSkills===
+
===WorldSkills Competition===
WorldSkills une compétition qui à lieu à Leipzig en Allemagne du 2 au 7 Juillet. Cette compétition est connue en France sous le nom d'Olympiades des Métiers, la final nationale de la 42ème édition ayant eu lieu du 22 au 24 Novembre 2012 à Clermont-Ferrand. Cette année, un millier de jeunes concurrants du monde entiers vont s'affronter dans plus de 50 métiers à Leipzig en Allemagne. Pour plus d'information voici les liens vers les pages de [http://www.worldskills-france.org/ WorldSkills France] et [http://www.worldskills.org/ WorldSkills International].
+
WorldSkills une compétition qui à lieu à Leipzig en Allemagne du 2 au 7 Juillet 2013. Cette compétition est connue en France sous le nom d'Olympiades des Métiers, la final nationale de la 42ème édition ayant eu lieu du 22 au 24 Novembre 2012 à Clermont-Ferrand. Cette année, un millier de jeunes concurrants du monde entiers vont s'affronter dans plus de 50 métiers à Leipzig en Allemagne. Pour plus d'information voici les liens vers les pages de [http://www.worldskills-france.org/ WorldSkills France] et [http://www.worldskills.org/ WorldSkills International].
  
 
===Robotique Mobile===
 
===Robotique Mobile===
 
Le compétition dans le métier de robotique mobile consiste à l'utilisation d'un robot nommé <b>Robotino</b> et fabriqué par l'entreprise [http://www.festo.com/cms/fr_fr/index.htm FESTO]. Elle se déroule en plusieurs épreuves.
 
Le compétition dans le métier de robotique mobile consiste à l'utilisation d'un robot nommé <b>Robotino</b> et fabriqué par l'entreprise [http://www.festo.com/cms/fr_fr/index.htm FESTO]. Elle se déroule en plusieurs épreuves.
  
En effet, nous devons programmer le robot pour qu'il effectue un parcours précis, aller chercher des pièces en évitant les obstacles et les pauser ailleurs avec des parcours différents pour chaque épreuve. Pour les Worldskills, il faut généralement pour l'une des épreuves réaliser une extension au robot qui permet de manipuler les pièces.
+
En effet, nous devons programmer le robot pour qu'il effectue un parcours précis, aller chercher des pièces en évitant les obstacles et les poser ailleurs avec des parcours différents pour chaque épreuve. Pour les Worldskills, il faut généralement pour l'une des épreuves réaliser une extension au robot qui permet de manipuler les pièces.
  
 
===Objectif: WorldSkills 2013 ===
 
===Objectif: WorldSkills 2013 ===
Ligne 17 : Ligne 21 :
 
Le principe de cette épreuve est d'aller chercher les enfants dans les arbres pour les emmener à l'école.
 
Le principe de cette épreuve est d'aller chercher les enfants dans les arbres pour les emmener à l'école.
  
Les enfants seront représenter par des figurines de types Fisher Prices. Les arbres sont représentés par des plots de différentes hauteurs et l'école par une zone de couleur sur la piste. Les enfants seront mis sur une palette dans certains arbres. Il faudra aller chercher toutes les palettes et les emmener à l'école sans faire tomber les enfants qui sont dessus. L'école est également le point de départ du robot.
+
Les enfants seront représentés par des figurines de types Fisher Prices. Les arbres sont représentés par des plots de différentes hauteurs et l'école par une zone de couleur sur la piste. Les enfants seront mis sur une palette dans certains arbres. Il faudra aller chercher toutes les palettes et les emmener à l'école sans faire tomber les enfants qui sont dessus. L'école est également le point de départ du robot.
 +
 
 +
<gallery>
 +
Fichier:LostInTheBlackForest_Piste.jpg|La piste de l'épreuve '''Lost In The Black Forest
 +
Fichier:LostInTheBlackForest_Final.jpg|Les enfants sont tous arrivés à l'école
 +
</gallery>
 +
 
 +
Voici le sujet complet de l'épreuve: [[Média:LostInTheBlackForest.pdf]]
 +
 
  
 
* <b>Made in Germany</b>
 
* <b>Made in Germany</b>
 +
Le principe de cette épreuve est d'assembler un bonhomme.
  
Le principe de cette épreuve est d'assembler un bonhomme.
+
Des pièces de différentes formes (main, pied, tête) seront disposées sur la piste, sur un présentoir. Il faudra aller chercher ces pièces et les assembler entre elles à un endroit précis sur la piste.
 +
 
 +
<gallery>
 +
Fichier:MadeInGermany_Piste.jpg|La piste de l'épreuve '''Made In Germany
 +
Fichier:MadeInGermanyAssemble.jpg|Les pièces une fois assemblées
 +
</gallery>
  
Des pièces de différentes forme (main, pied, tête) seront disposées sur la piste, sur un présentoir. Il faudra aller chercher ces pièces et les assembler entre elles à un endroit précis sur la piste.
+
Voici le sujet complet de l'épreuve: [[Média:MadeInGermany.pdf]]
  
 
==Préparation du projet==
 
==Préparation du projet==
===Matériel prêter par FESTO pour la compétition===
+
===Matériel prêté par FESTO pour la compétition===
 
* Un Robotino
 
* Un Robotino
 
* Une extension lève-palette
 
* Une extension lève-palette
 
* Un hub usb pour pouvoir connecter plusieurs périphériques usb sur le Robotino
 
* Un hub usb pour pouvoir connecter plusieurs périphériques usb sur le Robotino
 +
 +
===Matériel prêté par WorldSkills France===
 +
* 3 ordinateurs portables
 +
 
===Matériel à acheter ou fabriquer===
 
===Matériel à acheter ou fabriquer===
 
* Plots et palette pour '''Lost in the black forest ''' (fabriqués avec des matériaux de récupération)
 
* Plots et palette pour '''Lost in the black forest ''' (fabriqués avec des matériaux de récupération)
 
* Pièces de l'épreuve '''Made in Germany''' (frabriquées avec des matériaux de récupération)
 
* Pièces de l'épreuve '''Made in Germany''' (frabriquées avec des matériaux de récupération)
 
* Extension au Robotino pour prendre les pièces de l'épreuves '''Made in Germany'''
 
* Extension au Robotino pour prendre les pièces de l'épreuves '''Made in Germany'''
 +
* 2 fois 2*4m de lino blanc pour réaliser les pistes des épreuves
 +
* 2 moteurs pour commander l'extension
  
 
==Avancement du projet==
 
==Avancement du projet==
Ligne 66 : Ligne 90 :
  
 
Continuer la réflexion sur les solutions techniques pour réaliser l'extension.
 
Continuer la réflexion sur les solutions techniques pour réaliser l'extension.
 +
  
 
'''Séance 4: 14/02/2013'''
 
'''Séance 4: 14/02/2013'''
Ligne 71 : Ligne 96 :
 
Depuis la dernière séance, nous avons reçu du matériel venant de FESTO. Nous avons reçu un lève-palette et un hub usb pour le robotino. Nous avons donc passé la séance à monter et câbler ce matériel sur le robot.
 
Depuis la dernière séance, nous avons reçu du matériel venant de FESTO. Nous avons reçu un lève-palette et un hub usb pour le robotino. Nous avons donc passé la séance à monter et câbler ce matériel sur le robot.
  
Voici comment nous avons connecté les capteurs sur les entrées sorties du robot:
+
Voici comment nous avons connecté les capteurs sur les entrées et sorties du robot (analogiques ou digitales):
[[Fichier:CablageCateurs.jpg|500px|center|thumb|câblage des capteurs]]
+
[[Fichier:CablageCapteurs.jpg|upright=3|thumb|center|Câblage des capteurs sur le robot]]
 +
 
 +
[[Fichier:Odometre.jpg|upright=2|right|thumb|L'odomètre sous RobotinoView]]
 +
Nous avons également fait des essais d'asservissement en position du lève-palette.
  
  
Nous avons également fait des essais d'asservissement en position du lève-palette.
+
De plus, à cause des problèmes rencontrés avec la NorthStar nous avons décidé de ne pas l'utiliser et d'utiliser l'odomètre déjà présent sur le robot pour les déplacements et nous ne disposerons pas de la NorthStar pour la compétition.
 +
 
 +
L'odomètre nous permet de connaitre le position du robot. En fait, le robot est doté de roues codeuses qui lui permettent à l'aide de l'odomètre de toujours connaître la position du robot.  
  
De plus, à cause des problèmes rencontrés avec la NorthStar nous avons décidé de ne pas l'utiliser et d'utiliser l'odomètre déjà présent sur le robot pour les déplacements.
+
Cependant, pour l'utiliser il faut être très précis lors de son initialisation, surtout au niveau de l'angle, une petite erreur au départ entraîne de gros écarts en bout de piste.
  
 
===Semaine 9===
 
===Semaine 9===
 
'''Séance 5: 25/02/2013'''
 
'''Séance 5: 25/02/2013'''
  
Depuis la dernière séance l'asservissement du lève-palette en hauteur à été avec un correcteur PD.
+
Depuis la dernière séance l'asservissement du lève-palette en hauteur à été fait avec un correcteur PD.
  
 
Durant cette séance nous avons réfléchi aux solutions techniques pour réaliser le bras permettant de prendre les pièces.
 
Durant cette séance nous avons réfléchi aux solutions techniques pour réaliser le bras permettant de prendre les pièces.
 
Pour prendre les pièces le bras doit avoir un mouvement verticale, pour se positionner à la hauteur de la pièce et un mouvement horizontale avec une pince pour la prendre par l'avant. Les autres mouvements pour se placer en face de la pièce seront fait par le Robotino.
 
Pour prendre les pièces le bras doit avoir un mouvement verticale, pour se positionner à la hauteur de la pièce et un mouvement horizontale avec une pince pour la prendre par l'avant. Les autres mouvements pour se placer en face de la pièce seront fait par le Robotino.
  
Nous avons également pris rendez-vous avec un professeur de Mécanique M.Dienne pour le Mercredi 27/02 à 14h.
+
Nous avons également pris rendez-vous avec un professeur de Mécanique M. Dienne pour le Mercredi 27/02 à 14h.
 +
 
  
 
'''Séance 6: 27/02/2013'''
 
'''Séance 6: 27/02/2013'''
Ligne 95 : Ligne 126 :
  
 
Cependant, en effectuant les mesures pour le cahier des charges, nous avons réaliser que la course de l'axe verticale est trop courte pour aller chercher certaines pièces. Il manque 5cm.
 
Cependant, en effectuant les mesures pour le cahier des charges, nous avons réaliser que la course de l'axe verticale est trop courte pour aller chercher certaines pièces. Il manque 5cm.
Nous avons chercher d'autres solutions sans l'axe verticale. Nous avons pensez utiliser ressemblant à une grue avec un axe verticale beaucoup plus grand et prendre les pièces par le haut dans le sens de l'épaisseur (la taille la plus petite). En prenant les pièces par le haut il est nécessaire d'avoir un axe beaucoup plus grand que prévu car nous ne pourrons pas empiler les pièces pour les déplacer. Nous sommes donc à la recherche de pince déjà faite.
+
Nous avons chercher d'autres solutions sans l'axe verticale. Nous avons pensez utiliser un système ressemblant à une grue avec un axe verticale beaucoup plus grand et prendre les pièces par le haut dans le sens de l'épaisseur (la taille la plus petite). En prenant les pièces par le haut il est nécessaire d'avoir un axe beaucoup plus grand que prévu car nous ne pourrons pas empiler les pièces pour les déplacer. Nous sommes donc à la recherche de pince déjà faite.
 +
 
  
 
'''Séance 7: 28/02/2013'''
 
'''Séance 7: 28/02/2013'''
Ligne 102 : Ligne 134 :
  
 
De plus, n'ayant pas trouver de solutions à moindre coût pour réaliser les pièces de '''Made in Germany
 
De plus, n'ayant pas trouver de solutions à moindre coût pour réaliser les pièces de '''Made in Germany
nous avons commencez a réaliser ces pièces en cartons en dehors des séances de projet.
+
nous avons commencé a réaliser ces pièces en cartons en dehors des séances de projet.
  
 
===Semaine 10===
 
===Semaine 10===
'''Séance 8: 04/05/2013'''
+
'''Séance 8: 04/03/2013'''
  
 
Nous avons à nouveau rencontré le professeur de mécanique afin de réfléchir à une solution sans l'axe verticale disponible sur le robot. Finalement le système de pince restera celui prévu avec un système de vis à bille. L'axe verticale sera également réalisé avec un système de vis à bille.
 
Nous avons à nouveau rencontré le professeur de mécanique afin de réfléchir à une solution sans l'axe verticale disponible sur le robot. Finalement le système de pince restera celui prévu avec un système de vis à bille. L'axe verticale sera également réalisé avec un système de vis à bille.
  
'''Séance 9: 06/05/2013'''
+
 
 +
'''Séance 9: 06/03/2013'''
  
 
Durant cette séance, nous avons mesuré et fait le schéma de l'espace disponible sur le robot pour placer l'extension, cette partie est nécessaire à la réalisation mécanique.
 
Durant cette séance, nous avons mesuré et fait le schéma de l'espace disponible sur le robot pour placer l'extension, cette partie est nécessaire à la réalisation mécanique.
  
[[Fichier:SchemaBas.jpg|200px|thumb|center|Schéma de la partie basse]]  [[Fichier:SchemaArriere.jpg|300px|thumb|center|Schéma de la partie arrière]]
+
<gallery >
 +
Fichier:SchemaBas.jpg|Schéma de la partie basse
 +
Fichier:SchemaArriere.jpg|Schéma de la partie arrière
 +
</gallery>
 +
 
  
Nous avons également essayer d'asservir le lève palette de la caméra. En effet, pour l'épreuve '''Lost in the black forest'''
+
Nous avons également asservi le lève palette à l'aide de la caméra. En effet, pour l'épreuve '''Lost in the black forest'''
les palettes seront disposées à des hauteurs différentes, il faut donc pouvoir adapter à la hauteur du lève-palette. La palette étant de couleur rouge ou bleu et les supports de couleur noir, il est possible de détecter à l'aide de la caméra la palette. En mettant la caméra sur le lève-palette, lorsque le lève-palette est prêt à prendre la palette, la distance entre la caméra et la palette est identique.
+
les palettes seront disposées à des hauteurs différentes, il faut donc pouvoir s'adapter à la hauteur. La palette étant de couleur rouge ou bleu et les supports de couleur noir, il est possible de détecter les palettes à l'aide de la caméra. En mettant la caméra sur le lève-palette, la distance entre la caméra et la palette est identique quelque soit la hauteur lorsque le lève-palette est prêt à prendre la palette.
  
'''Séance 10: 07/05/2013'''
 
  
Nous avons effectué une recherche bibliographique des systèmes de vis à bille durant cette séance.
+
'''Séance 10: 07/03/2013'''
 +
 
 +
Nous avons effectué une recherche bibliographique des systèmes de vis à bille durant cette séance, pour la réalisation de la partie mécanique.
 +
 
 +
[[Fichier:piste.jpg|thumb|Nous avons realisé une piste d'entrainement pour le premier parcourt]]
  
 
===Semaine 11===
 
===Semaine 11===
 +
'''Séance 11: 11/03/2013'''
  
'''Séance 11: 11/05/2013'''  
+
Nous avons réalisé la piste pour l'épreuve '''Lost in the Black Forest'''
 +
durant cette séance.
 +
Chaque petit carré de scotch noir est en réalité un plot. Nous en disposons seulement de 5 pour le moment un par taille possible pour 48 positions sur la piste. Les lignes noirs devant les plots sont là pour guider le robot à bien se positionner devant (elle seront également là le jour de la compétition).
  
'''Séance 12: 13/05/2013'''
 
  
Dans le cadre de la préparation à la compétition, nous allons participer à la finale national des Pays-Bas durant cette semaine. Les Master Skills de Rotterdam se déroule du 15 au 17 Mars 2013.
+
'''Séance 12: 13/03/2013'''
 +
[[Fichier:CapteurDeDistance.jpg|thumb|left|Capteurs de distance présent sur le Robotino]]
  
A cause de la tempête de neige qui à sévit sur le nord de l'europe, nous n'avons pas pu partir.
+
Dans le cadre de la préparation à la compétition, nous devions participer à la finale national des Pays-Bas durant cette semaine. Les Master Skills de Rotterdam se déroulant du 15 au 17 Mars 2013.
 +
Cependant, à cause de la tempête de neige qui a sévit sur le nord de l'europe, nous n'avons pas pu partir. Cela ne remet pas en cause notre participation aux '''Worldskills'''.
 +
 
 +
 
 +
Durant cette séance nous avons travaillé sur l'initialisation du Robotino. En effet, pour diriger le robot dans l'espace nous dispons d'un Odomètre. Cependant, la position du robot à l'initialisation doit être précise et surtout toujours la même. Pour faire cette initialisation, nous avons choisi d'utiliser les capteurs afin de se positionner dans un angle de la piste.
 +
 
 +
Nous avons donc choisi d'utiliser les capteurs 5 et 6 afin de se positionner perpandiculèrement au mur arrière et le capteur 3 pour se mettre à une distance connu du mur gauche. En effet, lorsque la valeur des deux capteurs 5 et 6 est identique le robot est bien perpandiculaire au mur. De plus, nous avons utilisé un correcteur PI afin d'être plus précis.
  
 
===Semaine 12===
 
===Semaine 12===
 +
'''Séance 13: 18/03/2013'''
 +
 +
Nous avons travaillé sur le correcteur PI que nous avions réalisé la semaine précedente. De plus, nous avons remarqué qu'il est possible de créer nos propre blocs en C++ pour RobotinoView. Nous pourrions ainsi faire un correcteur plus simplement.
 +
 +
 +
'''Séance 14: 20/03/2013'''
 +
 +
Nous avons travaillé à la réalisation de blocs de fonction pour RobotinoView. Nous avons rencontré beaucoup de difficultés à installer les API OpenRobotino sur Windows et les compiler. Après un problème sur la session windows d'un ordi personnel, nous avons également essayé sur Linux. Cela s'est avéré sans succès.
 +
 +
 +
 +
De plus, nous avons réfléchi au moyen de parcourir toute la piste pour récupérer les palettes, sachant qu'on dispose de 9 palettes sur les 48 plots de la piste et que la hauteur de ces plots varie. Pour cela, nous avons choisi d'établir un parcours que fera le robot pour passer devant tous les plots un par un.
 +
L'objectif étant que lorsque le robot repère une palette, il l'a prenne et l'emmène dans la zone de départ puis retourne au parcours des plots sans passer par ceux qu'il a déjà vu. Ainsi le robot passera une seul fois devant chaque plot. Un deuxième parcours de la piste en fin d'épreuve pourra être prévu si toutes les palettes non pas été trouvée.
 +
 +
Pour se faire nous avons choisi de diviser la piste en différentes zones, chaque zone est identifiée par un point centrale par lequel le robot pourra passer sans taper dans les plots. Toutes les positions des plots, ou plutôt la position du robot pour être placer juste devant seront noté dans un fichier excel pour pouvoir les retrouver facilement avec leur zone. Ainsi, en fonction de la zone dans laquelle se trouve le robot nous saurons par quels points passer pour aller dans la zone de départ et comment revenir ensuite.
 +
 +
[[Fichier:MadeInTheBlackForestZone.jpg|upright=3|center|thumb|Voici les différentes zones sur le plan de la piste]]
 +
 +
 +
'''Séance 15: 21/03/2013'''
 +
 +
Nous avons continué à travailler sur les blocs de fonction et sur la localisation des blocs pour les déplacements du robots.
 +
 +
===Semaine 13===
 +
Durant cette semaine, l'organisation française des Olympiades des métiers organise une semaine de préparation physique et mentale à l'INSEP de Vincennes. Elle se déroule du 25 au 29 Mars 2013.
 +
 +
===Semaine 14===
 +
'''Séance 16: 03/04/2013
 +
 +
Nous continuons nos recherches sur la création de bloc pour RobotinoView. Il semblerait que nous devrions disposer avec l'API RobotinoView d'un logiciel permettant de créer des blocs appelé '''Function Block Manager
 +
, mais nous ne l'avons pas. L'API dont nous disposons serait-elle incomplète?
 +
 +
 +
Nous avons travaillé sur l'initialisation du robot, nous avons finalement choisi d'avancer jusqu'à la ligne de la zone de départ, de suivre le ligne jusqu'au mur droit et de s'orienter par rapport au mur droit. De cette manière la position en x et y du robot est plus précise.
 +
 +
 +
'''Séance 17: 04/04/2013
 +
 +
Nous travaillons à vérifier les méthodes d'asservissement utilisées avec les correcteurs P, PI, PD et PID. Certains ne fonctionnent pas correctement.
 +
 +
===Semaine 15===
 +
'''Séance 18: 08/04/2013
 +
 +
En plus, de ne pas avoir l'application '''Function Block Manager'''
 +
, il nous manque des librairies pour pouvoir compiler correctement les fichiers de test fourni.
 +
 +
Les tests des fonctions utilisées pour asservir le robot ont montré que la manière dont est calculé l'intégrale est fausse. Il a fallut durant cette séance trouver une autre méthode de calcul d'une intégrale de façon discrète.
 +
 +
'''A faire lors des prochaines séances:
 +
 +
Trouver la version complète de l'API RobotinoView
 +
 +
 +
'''Séance 19: 10/04/2013
 +
 +
Après plusieurs semaines de recherche sur la possibilité de créer des blocs pour le logiciel RobotinoView, nous avons enfin trouver la version complète de l'API RobotinoView nécessaire. Ce n'est pas celle proposé sur le [http://wiki.openrobotino.org/index.php?title=Main_Page RobotinoWiki]. Le lien correct est [http://doc.openrobotino.org/download/RobotinoView/robview2_api_current.php ici].
 +
 +
Nous avons mis en place la nouvelle méthode de calcul d'intégrale pour le correcteur PI, tout n'est pas optimale. Il faut encore changer quelques paramètres au niveau du dérivateur.
 +
 +
 +
'''Séance 20: 11/04/2013
 +
 +
Nous avons continué les tests d'asservissement du robot. Il semble fonctionner. Cependant, la création d'un bloc fesant le fonction de régulateur nous permettrait d'avoir un calcul d'intégrale plus précis.
 +
 +
===Semaine 17===
 +
Nous avons profité de cette deuxième semaine de vacances pour travailler sur le projet.
 +
 +
Nous avons:
 +
*réalisé une partie du parcours pour l'épreuve <b>Lost In The Black Forest</b>
 +
**passage devant chaque plot
 +
**détection des palettes (à l'aide de la caméra)
 +
**récupération et acheminement de la palette dans la zone de départ
 +
**retour au passage devant les plots restant pour détecter les autres palettes
 +
 +
*filmé les séquences nécessaire au montage de la vidéo.
 +
*travaillé sur le rapport et la présentation oral du projet.
 +
 +
De plus, nous avons appris que lors de la compétition certes nous disposerons de nos ordinateurs personnels pour éviter les problèmes de langue et de clavier mais devrons les formater juste avant la compétition et avoir dessus seulement RobotinoView. Il sera donc imposible d'utiliser des blocs de fonctions écrit par nous même en C++.
 +
 +
La préparation de l'épreuve <b>Made In Germany </b> n'avance pas beaucoup. En effet, nous travaillons en collaboration avec les professeurs du département mécanique et depuis un mois, entre les vacances et les déplacements de chacun, nous ne sommes jamais disponible en même temps.
 +
 +
===Semaine 18===
 +
Durant cette semaine, WorldSkills France organise une deuxième semaine de préparation physique et mentale à l'INSEP de Vincennes. Elle se déroule du 29 Avril au 5 Mai 2013.
 +
 +
Nous avons profité de cette semaine pour discuter avec les personnes en charge de la logistique. Ainsi, trois ordinateurs portables nous sont prêtés pour la compétition. Nous n'aurons pas à formater nos ordinateurs personnels.
 +
 +
===Semaine 19===
 +
 +
Nous avons durant cette semaine réalisé la piste de l'épreuve <b>Made In Germany</b>.
 +
 +
[[Fichier:Piste2.jpg|thumb|center|Piste de l'épreuve Made In Germany]]
 +
 +
 +
'''Présentation oral du projet le mardi 07/05/2013
  
 
===Reste à faire ===
 
===Reste à faire ===
 
* Finir les pièces de '''Made in Germany
 
* Finir les pièces de '''Made in Germany
 
* Trouver la solution finale pour l'extension.
 
* Réaliser les pistes des deux épreuves.
 
* Programmer le robots pour faire les déplacements requis.
 
 
* Réaliser l'extension
 
* Réaliser l'extension
 
* Tester l'extension
 
* Tester l'extension
Ligne 145 : Ligne 284 :
 
==Problèmes rencontrés==
 
==Problèmes rencontrés==
  
La réalisation d'un prototype des pièces à déplacer, nous a posé problème. En effet, certaines sont trop grande pour faite en impression 3D. Elles sont longues et cher à réaliser en aluminium.
+
*La réalisation d'un prototype des pièces à déplacer, nous a posé problème. En effet, certaines sont trop grandes pour être faite en impression 3D. Elles sont longues et chères à réaliser en aluminium. Nous avons finalement décidé de les faire en cartons.
 +
*La création de l'extension nous a également posé problème car nous pensions utiliser l'axe vertical du lève-palette mais ça course est trop petite. Il faut donc fabriquer aussi cette partie.
 +
*Trouver la bonne API RobotinoView complète permettant de créer nos propres blocs de fonctions sur RobotinoView nous a pris beaucoup de temps et cela ne pourra finalement pas être utilisé lors de la compétition.
 +
*Le calcul d'intégrale que nous faisions sur RobotinoView n'était pas précis et engendrait des erreurs sur l'asservissement. Nous utiliserons principalement un régulateur proportionnel.
 +
*L'initialisation de l'odomètre du robot est difficile à faire précisément à l'aide les capteurs, ce qui engendre des erreurs sur tous les déplacements. Il faut trouver le bon équilibre entre l'asservissement du robot et la précision voulu au niveau des capteurs pour ne pas osciller.
 +
 
 +
==Bilan==
 +
Nous avons durant ce projet, préparé la <b>WorldSkills competition</b>.
 +
 
 +
Pour cela, nous avons réalisé une copie des pistes de chaque épreuve et réaliser des prototypes en cartons des éléments à transporter. Nous avons mis au point les stratégies pour réaliser chaque épreuve. Et nous avons mis en place la stratégie trouvée pour réaliser l'épreuve <b>Lost In The Black Forest</b>. Pour l'épreuve <b>Made In Germany</b>, il reste à réaliser l'extension.
 +
 
 +
==Rapport==
 +
[[Média:Rapport_WorldSkills2012.pdf]]
 +
 
 +
==Résultats==
 +
Nous avons finalement fini 16ème sur 19 avec 464 points sur 500. Le podium est composé des équipes de la Corée du Sud, de l'Iran et du Japon.
  
La création de l'extension nous a également posé problème car nous pensions utiliser l'axe vertical du lève-palette mais ça course est trop petite.
+
Les résultats détaillés sont disponible ici: [[Média:Resultat_WorldSkills2012.pdf]]

Version actuelle datée du 28 janvier 2014 à 11:10


Présentation

Logo des WorldSkills 2013

Le but de ce projet est de se préparer pour les WorldSkills 2013 dans le métier de Robotique Mobile.

WorldSkills Competition

WorldSkills une compétition qui à lieu à Leipzig en Allemagne du 2 au 7 Juillet 2013. Cette compétition est connue en France sous le nom d'Olympiades des Métiers, la final nationale de la 42ème édition ayant eu lieu du 22 au 24 Novembre 2012 à Clermont-Ferrand. Cette année, un millier de jeunes concurrants du monde entiers vont s'affronter dans plus de 50 métiers à Leipzig en Allemagne. Pour plus d'information voici les liens vers les pages de WorldSkills France et WorldSkills International.

Robotique Mobile

Le compétition dans le métier de robotique mobile consiste à l'utilisation d'un robot nommé Robotino et fabriqué par l'entreprise FESTO. Elle se déroule en plusieurs épreuves.

En effet, nous devons programmer le robot pour qu'il effectue un parcours précis, aller chercher des pièces en évitant les obstacles et les poser ailleurs avec des parcours différents pour chaque épreuve. Pour les Worldskills, il faut généralement pour l'une des épreuves réaliser une extension au robot qui permet de manipuler les pièces.

Objectif: WorldSkills 2013

La compétition se déroule en deux épreuves:

  • Lost in the black forest

Le principe de cette épreuve est d'aller chercher les enfants dans les arbres pour les emmener à l'école.

Les enfants seront représentés par des figurines de types Fisher Prices. Les arbres sont représentés par des plots de différentes hauteurs et l'école par une zone de couleur sur la piste. Les enfants seront mis sur une palette dans certains arbres. Il faudra aller chercher toutes les palettes et les emmener à l'école sans faire tomber les enfants qui sont dessus. L'école est également le point de départ du robot.

Voici le sujet complet de l'épreuve: Média:LostInTheBlackForest.pdf


  • Made in Germany

Le principe de cette épreuve est d'assembler un bonhomme.

Des pièces de différentes formes (main, pied, tête) seront disposées sur la piste, sur un présentoir. Il faudra aller chercher ces pièces et les assembler entre elles à un endroit précis sur la piste.

Voici le sujet complet de l'épreuve: Média:MadeInGermany.pdf

Préparation du projet

Matériel prêté par FESTO pour la compétition

  • Un Robotino
  • Une extension lève-palette
  • Un hub usb pour pouvoir connecter plusieurs périphériques usb sur le Robotino

Matériel prêté par WorldSkills France

  • 3 ordinateurs portables

Matériel à acheter ou fabriquer

  • Plots et palette pour Lost in the black forest (fabriqués avec des matériaux de récupération)
  • Pièces de l'épreuve Made in Germany (frabriquées avec des matériaux de récupération)
  • Extension au Robotino pour prendre les pièces de l'épreuves Made in Germany
  • 2 fois 2*4m de lino blanc pour réaliser les pistes des épreuves
  • 2 moteurs pour commander l'extension

Avancement du projet

Semaine 6

Séance 1: 04/02/2013

Durant cette séance nous avons identifier le matériel nécessaire et les réalisations à effectuer pour la réalisations du projet. Nous avons identifier les besoins suivants:

Lost in the black forest

  • Utilisation du lève-palette pour aller chercher les enfants.
  • Pour s'entraîner: fabrication des plots et lève-palette.

Made in Germany

  • Fabrication d'une extension pour manipuler les pièces et les assembler.
  • Fabrication des pièces pour tester la réalisation finale.


Séance 2: 07/02/2013

Durant cette séance, nous sommes allez voir les professeurs du département mécanique pour avoir des conseils sur les matériaux à utiliser pour réaliser les pièces manquantes et sur la manière de les faire.

Semaine 7

Séance 3: 11/02/2013

Lors de cette séance nous avons testé l’extension du Robotino NorthStar. Nous avons eu quelques problèmes d'initialisation et de précision. En effet, pour un déplacement de 3m, la NorthStar indique un déplacement de 1m.

A faire lors de la prochaine séance:

Rechercher sur internet plus informations sur la NorthStar. Il est indiqué dans la doc technique une précision de 5cm pour un déplacement de 1m.

Continuer la réflexion sur les solutions techniques pour réaliser l'extension.


Séance 4: 14/02/2013

Depuis la dernière séance, nous avons reçu du matériel venant de FESTO. Nous avons reçu un lève-palette et un hub usb pour le robotino. Nous avons donc passé la séance à monter et câbler ce matériel sur le robot.

Voici comment nous avons connecté les capteurs sur les entrées et sorties du robot (analogiques ou digitales):

Câblage des capteurs sur le robot
L'odomètre sous RobotinoView

Nous avons également fait des essais d'asservissement en position du lève-palette.


De plus, à cause des problèmes rencontrés avec la NorthStar nous avons décidé de ne pas l'utiliser et d'utiliser l'odomètre déjà présent sur le robot pour les déplacements et nous ne disposerons pas de la NorthStar pour la compétition.

L'odomètre nous permet de connaitre le position du robot. En fait, le robot est doté de roues codeuses qui lui permettent à l'aide de l'odomètre de toujours connaître la position du robot.

Cependant, pour l'utiliser il faut être très précis lors de son initialisation, surtout au niveau de l'angle, une petite erreur au départ entraîne de gros écarts en bout de piste.

Semaine 9

Séance 5: 25/02/2013

Depuis la dernière séance l'asservissement du lève-palette en hauteur à été fait avec un correcteur PD.

Durant cette séance nous avons réfléchi aux solutions techniques pour réaliser le bras permettant de prendre les pièces. Pour prendre les pièces le bras doit avoir un mouvement verticale, pour se positionner à la hauteur de la pièce et un mouvement horizontale avec une pince pour la prendre par l'avant. Les autres mouvements pour se placer en face de la pièce seront fait par le Robotino.

Nous avons également pris rendez-vous avec un professeur de Mécanique M. Dienne pour le Mercredi 27/02 à 14h.


Séance 6: 27/02/2013

Nous avons vu M. Dienne pour discuter des solutions techniques pour la réalisation de l'extension. Nous pensons utiliser l'axe vertical du lève-palette pour faire le mouvement verticale nécessaire et adapter une pince dessus pour prendre les pièces par l'avant.

Cependant, en effectuant les mesures pour le cahier des charges, nous avons réaliser que la course de l'axe verticale est trop courte pour aller chercher certaines pièces. Il manque 5cm. Nous avons chercher d'autres solutions sans l'axe verticale. Nous avons pensez utiliser un système ressemblant à une grue avec un axe verticale beaucoup plus grand et prendre les pièces par le haut dans le sens de l'épaisseur (la taille la plus petite). En prenant les pièces par le haut il est nécessaire d'avoir un axe beaucoup plus grand que prévu car nous ne pourrons pas empiler les pièces pour les déplacer. Nous sommes donc à la recherche de pince déjà faite.


Séance 7: 28/02/2013

Nous avons chercher des systèmes de pince pouvant prendre des pièces de 15 à 150 mm.

De plus, n'ayant pas trouver de solutions à moindre coût pour réaliser les pièces de Made in Germany nous avons commencé a réaliser ces pièces en cartons en dehors des séances de projet.

Semaine 10

Séance 8: 04/03/2013

Nous avons à nouveau rencontré le professeur de mécanique afin de réfléchir à une solution sans l'axe verticale disponible sur le robot. Finalement le système de pince restera celui prévu avec un système de vis à bille. L'axe verticale sera également réalisé avec un système de vis à bille.


Séance 9: 06/03/2013

Durant cette séance, nous avons mesuré et fait le schéma de l'espace disponible sur le robot pour placer l'extension, cette partie est nécessaire à la réalisation mécanique.


Nous avons également asservi le lève palette à l'aide de la caméra. En effet, pour l'épreuve Lost in the black forest les palettes seront disposées à des hauteurs différentes, il faut donc pouvoir s'adapter à la hauteur. La palette étant de couleur rouge ou bleu et les supports de couleur noir, il est possible de détecter les palettes à l'aide de la caméra. En mettant la caméra sur le lève-palette, la distance entre la caméra et la palette est identique quelque soit la hauteur lorsque le lève-palette est prêt à prendre la palette.


Séance 10: 07/03/2013

Nous avons effectué une recherche bibliographique des systèmes de vis à bille durant cette séance, pour la réalisation de la partie mécanique.

Nous avons realisé une piste d'entrainement pour le premier parcourt

Semaine 11

Séance 11: 11/03/2013

Nous avons réalisé la piste pour l'épreuve Lost in the Black Forest durant cette séance. Chaque petit carré de scotch noir est en réalité un plot. Nous en disposons seulement de 5 pour le moment un par taille possible pour 48 positions sur la piste. Les lignes noirs devant les plots sont là pour guider le robot à bien se positionner devant (elle seront également là le jour de la compétition).


Séance 12: 13/03/2013

Capteurs de distance présent sur le Robotino

Dans le cadre de la préparation à la compétition, nous devions participer à la finale national des Pays-Bas durant cette semaine. Les Master Skills de Rotterdam se déroulant du 15 au 17 Mars 2013. Cependant, à cause de la tempête de neige qui a sévit sur le nord de l'europe, nous n'avons pas pu partir. Cela ne remet pas en cause notre participation aux Worldskills.


Durant cette séance nous avons travaillé sur l'initialisation du Robotino. En effet, pour diriger le robot dans l'espace nous dispons d'un Odomètre. Cependant, la position du robot à l'initialisation doit être précise et surtout toujours la même. Pour faire cette initialisation, nous avons choisi d'utiliser les capteurs afin de se positionner dans un angle de la piste.

Nous avons donc choisi d'utiliser les capteurs 5 et 6 afin de se positionner perpandiculèrement au mur arrière et le capteur 3 pour se mettre à une distance connu du mur gauche. En effet, lorsque la valeur des deux capteurs 5 et 6 est identique le robot est bien perpandiculaire au mur. De plus, nous avons utilisé un correcteur PI afin d'être plus précis.

Semaine 12

Séance 13: 18/03/2013

Nous avons travaillé sur le correcteur PI que nous avions réalisé la semaine précedente. De plus, nous avons remarqué qu'il est possible de créer nos propre blocs en C++ pour RobotinoView. Nous pourrions ainsi faire un correcteur plus simplement.


Séance 14: 20/03/2013

Nous avons travaillé à la réalisation de blocs de fonction pour RobotinoView. Nous avons rencontré beaucoup de difficultés à installer les API OpenRobotino sur Windows et les compiler. Après un problème sur la session windows d'un ordi personnel, nous avons également essayé sur Linux. Cela s'est avéré sans succès.


De plus, nous avons réfléchi au moyen de parcourir toute la piste pour récupérer les palettes, sachant qu'on dispose de 9 palettes sur les 48 plots de la piste et que la hauteur de ces plots varie. Pour cela, nous avons choisi d'établir un parcours que fera le robot pour passer devant tous les plots un par un. L'objectif étant que lorsque le robot repère une palette, il l'a prenne et l'emmène dans la zone de départ puis retourne au parcours des plots sans passer par ceux qu'il a déjà vu. Ainsi le robot passera une seul fois devant chaque plot. Un deuxième parcours de la piste en fin d'épreuve pourra être prévu si toutes les palettes non pas été trouvée.

Pour se faire nous avons choisi de diviser la piste en différentes zones, chaque zone est identifiée par un point centrale par lequel le robot pourra passer sans taper dans les plots. Toutes les positions des plots, ou plutôt la position du robot pour être placer juste devant seront noté dans un fichier excel pour pouvoir les retrouver facilement avec leur zone. Ainsi, en fonction de la zone dans laquelle se trouve le robot nous saurons par quels points passer pour aller dans la zone de départ et comment revenir ensuite.

Voici les différentes zones sur le plan de la piste


Séance 15: 21/03/2013

Nous avons continué à travailler sur les blocs de fonction et sur la localisation des blocs pour les déplacements du robots.

Semaine 13

Durant cette semaine, l'organisation française des Olympiades des métiers organise une semaine de préparation physique et mentale à l'INSEP de Vincennes. Elle se déroule du 25 au 29 Mars 2013.

Semaine 14

Séance 16: 03/04/2013

Nous continuons nos recherches sur la création de bloc pour RobotinoView. Il semblerait que nous devrions disposer avec l'API RobotinoView d'un logiciel permettant de créer des blocs appelé Function Block Manager , mais nous ne l'avons pas. L'API dont nous disposons serait-elle incomplète?


Nous avons travaillé sur l'initialisation du robot, nous avons finalement choisi d'avancer jusqu'à la ligne de la zone de départ, de suivre le ligne jusqu'au mur droit et de s'orienter par rapport au mur droit. De cette manière la position en x et y du robot est plus précise.


Séance 17: 04/04/2013

Nous travaillons à vérifier les méthodes d'asservissement utilisées avec les correcteurs P, PI, PD et PID. Certains ne fonctionnent pas correctement.

Semaine 15

Séance 18: 08/04/2013

En plus, de ne pas avoir l'application Function Block Manager , il nous manque des librairies pour pouvoir compiler correctement les fichiers de test fourni.

Les tests des fonctions utilisées pour asservir le robot ont montré que la manière dont est calculé l'intégrale est fausse. Il a fallut durant cette séance trouver une autre méthode de calcul d'une intégrale de façon discrète.

A faire lors des prochaines séances:

Trouver la version complète de l'API RobotinoView


Séance 19: 10/04/2013

Après plusieurs semaines de recherche sur la possibilité de créer des blocs pour le logiciel RobotinoView, nous avons enfin trouver la version complète de l'API RobotinoView nécessaire. Ce n'est pas celle proposé sur le RobotinoWiki. Le lien correct est ici.

Nous avons mis en place la nouvelle méthode de calcul d'intégrale pour le correcteur PI, tout n'est pas optimale. Il faut encore changer quelques paramètres au niveau du dérivateur.


Séance 20: 11/04/2013

Nous avons continué les tests d'asservissement du robot. Il semble fonctionner. Cependant, la création d'un bloc fesant le fonction de régulateur nous permettrait d'avoir un calcul d'intégrale plus précis.

Semaine 17

Nous avons profité de cette deuxième semaine de vacances pour travailler sur le projet.

Nous avons:

  • réalisé une partie du parcours pour l'épreuve Lost In The Black Forest
    • passage devant chaque plot
    • détection des palettes (à l'aide de la caméra)
    • récupération et acheminement de la palette dans la zone de départ
    • retour au passage devant les plots restant pour détecter les autres palettes
  • filmé les séquences nécessaire au montage de la vidéo.
  • travaillé sur le rapport et la présentation oral du projet.

De plus, nous avons appris que lors de la compétition certes nous disposerons de nos ordinateurs personnels pour éviter les problèmes de langue et de clavier mais devrons les formater juste avant la compétition et avoir dessus seulement RobotinoView. Il sera donc imposible d'utiliser des blocs de fonctions écrit par nous même en C++.

La préparation de l'épreuve Made In Germany n'avance pas beaucoup. En effet, nous travaillons en collaboration avec les professeurs du département mécanique et depuis un mois, entre les vacances et les déplacements de chacun, nous ne sommes jamais disponible en même temps.

Semaine 18

Durant cette semaine, WorldSkills France organise une deuxième semaine de préparation physique et mentale à l'INSEP de Vincennes. Elle se déroule du 29 Avril au 5 Mai 2013.

Nous avons profité de cette semaine pour discuter avec les personnes en charge de la logistique. Ainsi, trois ordinateurs portables nous sont prêtés pour la compétition. Nous n'aurons pas à formater nos ordinateurs personnels.

Semaine 19

Nous avons durant cette semaine réalisé la piste de l'épreuve Made In Germany.

Piste de l'épreuve Made In Germany


Présentation oral du projet le mardi 07/05/2013

Reste à faire

  • Finir les pièces de Made in Germany
  • Réaliser l'extension
  • Tester l'extension

Problèmes rencontrés

  • La réalisation d'un prototype des pièces à déplacer, nous a posé problème. En effet, certaines sont trop grandes pour être faite en impression 3D. Elles sont longues et chères à réaliser en aluminium. Nous avons finalement décidé de les faire en cartons.
  • La création de l'extension nous a également posé problème car nous pensions utiliser l'axe vertical du lève-palette mais ça course est trop petite. Il faut donc fabriquer aussi cette partie.
  • Trouver la bonne API RobotinoView complète permettant de créer nos propres blocs de fonctions sur RobotinoView nous a pris beaucoup de temps et cela ne pourra finalement pas être utilisé lors de la compétition.
  • Le calcul d'intégrale que nous faisions sur RobotinoView n'était pas précis et engendrait des erreurs sur l'asservissement. Nous utiliserons principalement un régulateur proportionnel.
  • L'initialisation de l'odomètre du robot est difficile à faire précisément à l'aide les capteurs, ce qui engendre des erreurs sur tous les déplacements. Il faut trouver le bon équilibre entre l'asservissement du robot et la précision voulu au niveau des capteurs pour ne pas osciller.

Bilan

Nous avons durant ce projet, préparé la WorldSkills competition.

Pour cela, nous avons réalisé une copie des pistes de chaque épreuve et réaliser des prototypes en cartons des éléments à transporter. Nous avons mis au point les stratégies pour réaliser chaque épreuve. Et nous avons mis en place la stratégie trouvée pour réaliser l'épreuve Lost In The Black Forest. Pour l'épreuve Made In Germany, il reste à réaliser l'extension.

Rapport

Média:Rapport_WorldSkills2012.pdf

Résultats

Nous avons finalement fini 16ème sur 19 avec 464 points sur 500. Le podium est composé des équipes de la Corée du Sud, de l'Iran et du Japon.

Les résultats détaillés sont disponible ici: Média:Resultat_WorldSkills2012.pdf