Projet

Général

Profil

Rapport d'avant-projet » Historique » Version 1

Anonyme, 31/03/2021 12:32

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
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
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
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
h2. 2.1. Objectif du client
109
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
pièce et demander à Pepper de les trouver et de les ranger à des endroits précis
121
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
131
!https://forge.clermont-universite.fr/attachments/download/9661/Pep.png!
132
133
h2. 2.3. Cahier des charges
134
135
L’objectif premier de ce projet est de créer un démonstrateur avec le robot Pepper.
136
La démonstration consistera à disposer différents objets (10 objets) dans une pièce 
137
et de demander à Pepper de les trouver pour les ranger à des endroits précis.
138
Le robot devra être capable de contourner des obstacles s’ils sont sur son chemin.
139
140
!https://forge.clermont-universite.fr/attachments/download/9652/pep2.jpg!
141
142
Nous devrons fournir une démonstration fonctionnelle, ainsi que le code documenté 
143
facilement compréhensible par un étudiant en Génie Electrique de 4ème année. 
144
Le robot devra ranger automatiquement les 10 objets qui seront dans la zone Pepper (4m²)
145
en 5 minutes à la fin du projet soit à la fin du mois décembre.
146
Après quelques recherches, nous avons remarqué que ce robot pourrait avoir quelques difficultés 
147
quant à prendre des objets. En effet, celui-ci ne peut pas prendre un objet qui se situe au sol 
148
ou encore qui serait trop haut. Nous avons donc décidé que les objets se situeront à hauteur de table.
149
Nous avons aussi remarqué que le robot a une limite très faible concernant les objets qu’il peut prendre dans ses mains.
150
Nous avons donc décidé que les objets ne devront pas dépasser les 400 grammes.
151
Nous avons néanmoins quelques exigences du client comme celle de faire tous les tests en simulation au préalable. 
152
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).
153
Nous devons aussi filmer tous les tests sur le robot réel, en effet ces contraintes nous permettent
154
de pouvoir avoir des preuves si jamais il y a des dysfonctionnements avec le robot ou si on réalise une mauvaise manipulation. 
155
Tout cela a pour but d’éviter d’endommager le robot et de pouvoir le réparer si jamais cela arrive.
156
157
158
h1. 3. Déroulement du projet
159
160
Pour que le robot puisse ranger ses affaires, nous avons décidé de séparer notre projet en trois grandes parties (annexe 1).
161
Tout d'abord, on doit être capable d'utiliser les différents capteurs et actionneurs du robot. 
162
Pour cela nous devons faire un choix quant à l’outil de développement que nous allons utiliser. 
163
Il y a trois outils permettant de réaliser le contrôle de ceux-ci, Chorégraphe, SDK (C++ ou Python) et ROS.
164
 On doit faire un choix entre ces trois outils, choisir lequel est le plus efficace.
165
Ensuite, une fois l’outil de développement choisi on pourra l’utiliser afin de réaliser des programmes 
166
informatiques qui permettront de commander les actionneurs et les capteurs du robot.
167
Enfin, la troisième partie consiste à choisir une méthode ou des objets spécifiques pour que le robot les reconnaisse et les localise.
168
169
h2. 3.1. Choix de l'outils de développement 
170
171
Dans un premier temps, nous avons étudié les différents outils de développement que nous pouvions utiliser.
172
Avec l’aide de notre tuteur industriel nous avons donc pris en main les outils de développement. 
173
Nous avons commencé par prendre en main simultanément ROS et Chorégraphe. Nous avons donc appris à utiliser ces outils,
174
nous avons créé des fonctions avec ces outils, comparer les temps utilisés avec chaque outil, 
175
et aussi trouver la limite de ces outils, voir si ces outils nous permettent de réaliser toutes les fonctions dont on aura besoin. 
176
Nous n’avons malheureusement pas réussi à utiliser le SDK (C++, PYTHON). 
177
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 
178
or il manque beaucoup d’information sur cet outil pour qu’on puisse l’utiliser correctement. 
179
C’est pour cela que l’on peut constater un retard dans notre Gantt prévisionnel (annexe 2),
180
nous ne pensions pas perdre autant de temps sur la prise en main de cet outil.
181
182
h2. 3.2. Élaboration des fonctions
183
184
Ensuite, une fois la prise en main des outils ROS et Chorégraphe nous avons pu commencer à réaliser quelques fonctions
185
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.
186
Ainsi nous avons réalisé une application à l’aide de chorégraphe pour les journées portes ouvertes,
187
cette application consiste à faire de la reconnaissance faciale, nous l’avons mis en place lors de la journée 
188
des portes ouvertes et cette application a permis de représenter le département du Génie Electrique. 
189
Mettre en place cette application nous a aussi permis de contrôler le robot grâce à cet outil. 
190
Lorsque nous avons commencé à utiliser ROS pour faire déplacer le robot grâce à ses roues, 
191
nous avons eu quelques problèmes techniques qui ne n’étaient pas de notre ressort.
192
En effet le constructeur de ce robot indique qu’il est possible de le contrôler grâce à ROS 
193
or une erreur est survenue à chaque test réalisé pour le déplacement. Le robot se bloquait et ne voulait plus se déplacer. 
194
Cette erreur nous a bloqué et nous a fait perdre beaucoup de temps alors que celle-ci n’était pas de notre ressort.
195
Nous avons finalement réussi à contourner l’erreur en contrôlant la tête du robot en lui donnant une position fixe,
196
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,
197
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. 
198
199
h2. 3.3. Choix des objets 
200
201
Pour ce qui est du choix des objets, nous avons fait des recherches sur la capacité du robot à prendre des objets.
202
Nous savons qu’il ne peut pas se baisser et prendre un objet situé au sol ou même en hauteur. Il est aussi limité par la masse de l’objet,
203
celle-ci ne doit pas dépasser 400 grammes. Nous avons donc fait des choix sur sa masse et son volume, il doit pouvoir être tenue dans sa main.
204
Pour ce qui est de la reconnaissance des objets nous avons pensé à des QR codes,
205
grâce à eux le robot sera capable de reconnaitre et donc de différencier les objets mais aussi de les situer dans l’espace.
206
On peut voir figure 4 un exemple de QR code que l’on pourrait utiliser et coller sur un objet afin que le robot le reconnaisse en utilisant ArUco.
207
208
!https://forge.clermont-universite.fr/attachments/download/9656/Image1.jpg!
209
210
Les objets peuvent aussi être choisis en fonction de leur forme, comme par exemple des sphères, des carrés ou encore des cylindres. Mais ils peuvent aussi être choisis par leurs couleurs.
211
212
213
h1. 4. Les résultats
214
215
Pour ce qui est des résultats nous avons fait le choix de prendre comme outil de développement ROS.
216
En effet, après une étude des autres outils nous avons pu faire un bilan voir figures 5,6 et 7, 
217
et faire le point avec toutes les études réalisées autour de ces outils. Nous avons ainsi pu conclure 
218
que l’outil ROS était celui qui pouvait répondre à toutes nos attentes et qui permet de contrôler tous les actionneurs et
219
récepteurs que l’on a besoin pour mener à bien notre projet.
220
221
!https://forge.clermont-universite.fr/attachments/download/9657/pep1.png!
222
223
!https://forge.clermont-universite.fr/attachments/download/9658/pep2.png!
224
225
!https://forge.clermont-universite.fr/attachments/download/9659/pep3.png!
226
227
Pour ce qui est du choix des objets, nous avons décidé de coller des QR codes afin que le robot puisse les différencier
228
mais aussi les localiser dans l’espace ainsi lorsque nous allons réaliser le programme pour que le robot prenne un objet. 
229
Cette tâche sera plus facile à mettre en place si le robot connait la position de l’objet.
230
Nous avons réalisé quelques programmes afin de pouvoir contrôler les membres du robot avec les deux outils utilisés, 
231
nous avons réalisé plusieurs tâches que nous avons détaillées dans un tableau voir figure 8 dans lequel on peut voir le temps estimé 
232
et le temps réel passé sur ces tâches. Les plus grands écarts de temps sont pour le temps passé sur la reconnaissance faciale car
233
nous pensions tout d’abord réaliser une simple tâche, alors que nous avons dû la modifier, 
234
la perfectionner pour que cela devienne une application utilisable lors de la journée portes ouvertes. 
235
Cette application a bien été terminée à temps car nous l’avons utilisée lors de la journée des portes ouvertes. 
236
Le deuxième écart est la tâche concernant le déplacement du robot soit la commande de la base du robot, 
237
comme dit précédemment nous avons rencontré une erreur qui nous a fait perdre énormément de temps.
238
239
240
!https://forge.clermont-universite.fr/attachments/download/9660/pep4.jpg!
241
242
h1. 5. Conclusion
243
244
245
Pour conclure, au niveau technique nous avons réussi à réaliser les missions que nous nous sommes confiées
246
même si nous avons pris du retard sur quelques tâches. Nous savons qu’il nous reste encore beaucoup de travail pour mener à bien notre projet.
247
Notre objectif pour la rentrée est de pouvoir réaliser les tâches que nous avons prévu sur le Gantt soit la locomotion autonome,
248
la reconnaissance d’objet et la saisie d’objet. Pour cela nous devrons travailler sur ArUco pour la reconnaissance d’objet à l’aide des QR codes.
249
Nous devrons donc utiliser comme outil de développement ROS pour réaliser tous les programmes et faire ranger à Pepper ses affaires.
250
251
h1. 6. Bilan personnel 
252
253
Ce projet nous a permis d’étudier des outils de programmation différents, nous nous sommes donc auto-formées sur ces outils, 
254
nous avons aussi appris à faire des choix. Nous avons appris à rédiger des rapports, ainsi qu’à présenter notre travail.
255
Nous avons aussi dû travailler en équipe et s’organiser pour pouvoir être à jour et ne pas prendre de retard.
256
Nous avons aussi estimé le temps des tâches à effectuer sachant que ceci est pour nous la chose la plus difficile car c’est une première pour nous.
257
Mais nous n’avons pas fini d’apprendre car notre choix pour l’outil de développement étant effectué,
258
nous devrons concevoir les différentes fonctions que devra réaliser le robot, les programmes de ces fonctions devront être commentés 
259
de façons à ce que le programme soit facilement compréhensible par des étudiants de 4eme année. 
260
Il nous faudra donc être très précis quant à la rédaction de ceux-ci. 
261
262
263
"pep2.jpg":https://forge.clermont-universite.fr/attachments/download/9652/pep2.jpg 
264
265
"Image1.jpg":https://forge.clermont-universite.fr/attachments/download/9656/Image1.jpg 
266
267
"pep1.png":https://forge.clermont-universite.fr/attachments/download/9657/pep1.png 
268
269
"pep2.png":https://forge.clermont-universite.fr/attachments/download/9658/pep2.png 
270
271
"pep3.png":https://forge.clermont-universite.fr/attachments/download/9659/pep3.png 
272
273
"pep4.jpg":https://forge.clermont-universite.fr/attachments/download/9660/pep4.jpg 
274
275
"Pep.png":https://forge.clermont-universite.fr/attachments/download/9661/Pep.png