Rapport d'avant-projet » Historique » Version 7
Anonyme, 13/10/2017 08:48
1 | 1 | Anonyme | h1. Rapport d'avant-projet |
---|---|---|---|
2 | |||
3 | h1. Résumé |
||
4 | |||
5 | La section Génie Electrique de Polytech Clermont-Ferrand a besoin de projets ludiques à |
||
6 | présenter lors des portes ouvertes de Polytech Clermont-Ferrand. |
||
7 | Cela va permettre d’attirer les étudiants car la section manquent d’élèves. |
||
8 | C’est dans cet objectif que le projet « Pepper range ses affaires » a été envisagé. Le projet va |
||
9 | aussi permettre d’intégrer des travaux pratiques sur le robot Pepper. Le but de ce projet est |
||
10 | de faire bouger le robot Pepper afin qu’il trouve et range des objets placés dans une zone. |
||
11 | Le projet étant de travailler sur un robot, celui-ci regroupe des matières liées à la robotique, |
||
12 | par exemple la programmation en langage C, en Python ou encore du traitement vidéo. |
||
13 | Cette première partie de projet a permis de savoir comment fonctionnait le robot Pepper |
||
14 | ainsi que de se familiariser avec différents outils de programmation afin que l’on trouve le |
||
15 | plus adapté pour mener à bien notre projet. Nous avons aussi cherché des moyens pour que |
||
16 | le robot reconnaisse les objets et puisse les situer dans l’espace afin qu’il puisse les |
||
17 | manipuler. |
||
18 | |||
19 | +Mots clés :+ robot, programmation, détection d'objet, manipulation. |
||
20 | |||
21 | h1. Abstract |
||
22 | |||
23 | The Electrical Engineering section of Polytech Clermont-Ferrand needs a playful project to be |
||
24 | presented at the open doors of Polytech Clermont-Ferrand. This will attract students because the section lacks students. |
||
25 | It is for this purpose that the Pepper ranks its stuffss has been considered. The project will |
||
26 | also integrate practical work on the Pepper robot. The goal of this project is to move a |
||
27 | Pepper robot so that it finds and stores objects placed in an area. |
||
28 | The project is to work on a robot, it is a group of subjects related to robotics. There are, for |
||
29 | example, programming in C, python or video processing. |
||
30 | This first part of the project allowed us to know how the Pepper robot works and to |
||
31 | familiarize ourselves with different programming tools so that we find the most suitable to |
||
32 | carry out our project. We also looked for ways for the robot to recognize the objects and |
||
33 | place them in space so that they can handle them. |
||
34 | |||
35 | +Keywords :+ robot, programming, object detection, handling. |
||
36 | 2 | Anonyme | |
37 | |||
38 | h1. Remerciments |
||
39 | |||
40 | Nous tenons tout d’abord à remercier M. Sébastien Lengagne, ainsi que l’école Polytech Clermont Ferrand, |
||
41 | pour la proposition de ce sujet permettant l’amélioration de l’image de la section Génie |
||
42 | Electrique de Polytech Clermont-Ferrand ainsi que de pouvoir manipuler un tel robot. |
||
43 | M.Lengagne étant notre tuteur Polytech ainsi que notre client, ceci a été un travail difficile mais |
||
44 | il a toujours été présent pour nous aider, que ce soit dans l’apprentissage des différents |
||
45 | outils mais aussi pour ses précieux conseils pendant ces 3 mois d’avant-projet. |
||
46 | Mme. Isabelle Goi, notre tutrice industrielle, nous a également été d’une grande aide afin de |
||
47 | réaliser des revues de projet les meilleures possible. |
||
48 | 3 | Anonyme | |
49 | h1. Tables des matières |
||
50 | |||
51 | 1. Introduction..................................................................................................................................... 1 |
||
52 | 2. Contexte du projet .......................................................................................................................... 2 |
||
53 | 2.1 Objectif du client : ....................................................................................................................... 2 |
||
54 | 2.2 Le robot Pepper :......................................................................................................................... 2 |
||
55 | 2.3 Cahier des charges :..................................................................................................................... 3 |
||
56 | 3. Déroulement du projet................................................................................................................ 4 |
||
57 | 3.1 Choix de l’outil de développement ............................................................................................. 5 |
||
58 | 3.2 Elaboration des fonctions............................................................................................................ 5 |
||
59 | 3.3 Choix des objets .......................................................................................................................... 6 |
||
60 | 4. Les résultats................................................................................................................................. 6 |
||
61 | 5. Conclusion.................................................................................................................................... 8 |
||
62 | 6. Bilan personnel............................................................................................................................ 8 |
||
63 | 4 | Anonyme | |
64 | |||
65 | h1. Lexique |
||
66 | |||
67 | ArUco : Une bibliothèque pour des applications en réalité augmentée (la |
||
68 | superposition de la réalité et d'éléments, comme les sons, les images 2D et 3D). |
||
69 | |||
70 | Chorégraphe : Un logiciel qui contient des programmes de base sous forme de blocs, |
||
71 | chaque bloc est une fonction, on peut aussi créer des nouvelles fonctions en utilisant |
||
72 | le langage Python. |
||
73 | |||
74 | C++ : Un langage de programmation compilé. |
||
75 | |||
76 | Python : Un langage de programmation compilé. |
||
77 | |||
78 | QR code : Quick Response code. |
||
79 | |||
80 | ROS : Un système d'exploitation pour la robotique, on peut programmer en langage |
||
81 | C++ avec ROS. |
||
82 | |||
83 | SDK : Un ensemble d'outils d'aide à la programmation, il a deux versions, C++ SDK et |
||
84 | Python SDK. |
||
85 | |||
86 | |||
87 | |||
88 | |||
89 | h1. Introduction |
||
90 | |||
91 | Qui n'a pas déjà rêvé d’un robot capable de ranger des affaires pour nous, et bien |
||
92 | c’est la mission qu’on nous a confiée. Nous sommes deux étudiantes en 4ème année en |
||
93 | Génie Electrique à Polytech Clermont Ferrand. |
||
94 | Nous devons réaliser un projet sur 1 an, le sujet de notre projet est donc : « Pepper range |
||
95 | ses affaires ». Notre client est M. Lengagne, qui est un enseignant du département Génie |
||
96 | Electrique à Polytech Clermont-Ferrand. |
||
97 | Il nous a confié ce projet dans le but de pouvoir par la suite intégrer des travaux pratiques |
||
98 | sur le robot Pepper dans le cursus des étudiants du département. Ce projet pourra aussi |
||
99 | devenir l’un des projets exposés lors des portes ouvertes afin d’être la vitrine du |
||
100 | département. |
||
101 | Nous devons donc programmer le robot Pepper afin qu’il dispose différents objets (une |
||
102 | dizaine) dans une pièce et qu’il les trouve et les range à des endroits précis. |
||
103 | |||
104 | |||
105 | |||
106 | h1. 2. Contexte du Projet |
||
107 | |||
108 | 5 | Anonyme | h2. 2.1. Objectif du client |
109 | 4 | Anonyme | |
110 | Le client est M. Sébastien Lengagne, un enseignant du département Génie Electrique, il est |
||
111 | donc le représentant du département. Le département Génie Electrique a investi cette |
||
112 | année dans le robot Pepper afin de pouvoir intégrer des travaux pratiques de robotique, |
||
113 | pour les étudiants de 4eme année en Génie Electrique. Ainsi, le robot pourra être |
||
114 | programmé pour réaliser des fonctions afin de présenter le département lors des portes |
||
115 | ouvertes ou de la fête de la science. Le but de notre projet est de programmer le robot avec |
||
116 | différents outils de programmation afin de faire un choix pour savoir quel outil est le plus |
||
117 | simple à utiliser pour les étudiants et qu’il soit performant pour contrôler tous les capteurs |
||
118 | et actionneurs du robot. Pour cela notre projet consiste à faire un démonstrateur avec le |
||
119 | robot Pepper. La démonstration sera de disposer différents objets (une dizaine) dans une |
||
120 | 1 | Anonyme | pièce et demander à Pepper de les trouver et de les ranger à des endroits précis |
121 | 5 | Anonyme | |
122 | |||
123 | h2. 2.2. Le robot Pepper |
||
124 | |||
125 | Le robot Pepper est un robot humanoïde conçu par SoftBank robotics, il possède pas moins |
||
126 | de 20 moteurs voir figure 1, mais aussi 4 microphones, 2 caméras RGB HD, 5 capteurs |
||
127 | tactiles, un écran tactile sur le torse, 1 caméra 3D derrière les yeux, dans les jambes : 2 |
||
128 | sonars, 6 lasers, un capteur gyroscopique, 3 roues omnidirectionnelles. Le robot possède 3 |
||
129 | articulations dans chaque bras. |
||
130 | 6 | Anonyme | |
131 | h2. 2.3. Cahier des charges |
||
132 | |||
133 | L’objectif premier de ce projet est de créer un démonstrateur avec le robot Pepper. |
||
134 | La démonstration consistera à disposer différents objets (10 objets) dans une pièce |
||
135 | et de demander à Pepper de les trouver pour les ranger à des endroits précis. |
||
136 | Le robot devra être capable de contourner des obstacles s’ils sont sur son chemin. |
||
137 | |||
138 | !pep2.jpg! |
||
139 | |||
140 | Nous devrons fournir une démonstration fonctionnelle, ainsi que le code documenté |
||
141 | facilement compréhensible par un étudiant en Génie Electrique de 4ème année. |
||
142 | Le robot devra ranger automatiquement les 10 objets qui seront dans la zone Pepper (4m²) |
||
143 | en 5 minutes à la fin du projet soit à la fin du mois décembre. |
||
144 | Après quelques recherches, nous avons remarqué que ce robot pourrait avoir quelques difficultés |
||
145 | quant à prendre des objets. En effet, celui-ci ne peut pas prendre un objet qui se situe au sol |
||
146 | ou encore qui serait trop haut. Nous avons donc décidé que les objets se situeront à hauteur de table. |
||
147 | Nous avons aussi remarqué que le robot a une limite très faible concernant les objets qu’il peut prendre dans ses mains. |
||
148 | Nous avons donc décidé que les objets ne devront pas dépasser les 400 grammes. |
||
149 | Nous avons néanmoins quelques exigences du client comme celle de faire tous les tests en simulation au préalable. |
||
150 | Mais aussi que tous les tests sur le robot doivent être faits en présence d'un responsable (un professeur du département Génie Electrique). |
||
151 | Nous devons aussi filmer tous les tests sur le robot réel, en effet ces contraintes nous permettent |
||
152 | de pouvoir avoir des preuves si jamais il y a des dysfonctionnements avec le robot ou si on réalise une mauvaise manipulation. |
||
153 | Tout cela a pour but d’éviter d’endommager le robot et de pouvoir le réparer si jamais cela arrive. |
||
154 | 7 | Anonyme | |
155 | |||
156 | h1. 3. Déroulement du projet |
||
157 | |||
158 | Pour que le robot puisse ranger ses affaires, nous avons décidé de séparer notre projet en trois grandes parties (annexe 1). |
||
159 | Tout d'abord, on doit être capable d'utiliser les différents capteurs et actionneurs du robot. |
||
160 | Pour cela nous devons faire un choix quant à l’outil de développement que nous allons utiliser. |
||
161 | Il y a trois outils permettant de réaliser le contrôle de ceux-ci, Chorégraphe, SDK (C++ ou Python) et ROS. |
||
162 | On doit faire un choix entre ces trois outils, choisir lequel est le plus efficace. |
||
163 | Ensuite, une fois l’outil de développement choisi on pourra l’utiliser afin de réaliser des programmes |
||
164 | informatiques qui permettront de commander les actionneurs et les capteurs du robot. |
||
165 | Enfin, la troisième partie consiste à choisir une méthode ou des objets spécifiques pour que le robot les reconnaisse et les localise. |
||
166 | |||
167 | h2. 3.1. Choix de l'outils de développement |
||
168 | |||
169 | Dans un premier temps, nous avons étudié les différents outils de développement que nous pouvions utiliser. |
||
170 | Avec l’aide de notre tuteur industriel nous avons donc pris en main les outils de développement. |
||
171 | Nous avons commencé par prendre en main simultanément ROS et Chorégraphe. Nous avons donc appris à utiliser ces outils, |
||
172 | nous avons créé des fonctions avec ces outils, comparer les temps utilisés avec chaque outil, |
||
173 | et aussi trouver la limite de ces outils, voir si ces outils nous permettent de réaliser toutes les fonctions dont on aura besoin. |
||
174 | Nous n’avons malheureusement pas réussi à utiliser le SDK (C++, PYTHON). |
||
175 | Nous avons passé beaucoup de temps après avoir réalisé l’installation afin de programmer une petite fonction qui est fournie avec le tutoriel |
||
176 | or il manque beaucoup d’information sur cet outil pour qu’on puisse l’utiliser correctement. |
||
177 | C’est pour cela que l’on peut constater un retard dans notre Gantt prévisionnel (annexe 2), |
||
178 | nous ne pensions pas perdre autant de temps sur la prise en main de cet outil. |
||
179 | |||
180 | h2. 3.2. Élaboration des fonctions |
||
181 | |||
182 | Ensuite, une fois la prise en main des outils ROS et Chorégraphe nous avons pu commencer à réaliser quelques fonctions |
||
183 | de base permettant d’utiliser quelques actionneurs du robot. Nous avons pu programmer grâce à ces deux outils pour contrôler les membres du robot. |
||
184 | Ainsi nous avons réalisé une application à l’aide de chorégraphe pour les journées portes ouvertes, |
||
185 | cette application consiste à faire de la reconnaissance faciale, nous l’avons mis en place lors de la journée |
||
186 | des portes ouvertes et cette application a permis de représenter le département du Génie Electrique. |
||
187 | Mettre en place cette application nous a aussi permis de contrôler le robot grâce à cet outil. |
||
188 | Lorsque nous avons commencé à utiliser ROS pour faire déplacer le robot grâce à ses roues, |
||
189 | nous avons eu quelques problèmes techniques qui ne n’étaient pas de notre ressort. |
||
190 | En effet le constructeur de ce robot indique qu’il est possible de le contrôler grâce à ROS |
||
191 | or une erreur est survenue à chaque test réalisé pour le déplacement. Le robot se bloquait et ne voulait plus se déplacer. |
||
192 | Cette erreur nous a bloqué et nous a fait perdre beaucoup de temps alors que celle-ci n’était pas de notre ressort. |
||
193 | Nous avons finalement réussi à contourner l’erreur en contrôlant la tête du robot en lui donnant une position fixe, |
||
194 | ce qui est censé être réaliser automatiquement si celle-ci n’est pas programmée pour réaliser une tâche. Comme inscrit dans le Gantt, |
||
195 | nous avons passé du temps pour résoudre cette erreur et cela a eu une répercussion sur le reste des tâches prévues. |