Projet

Général

Profil

Rapport d'avant-projet » Historique » Version 8

Anonyme, 13/10/2017 09:07

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. 
196 8 Anonyme
197
h2. 3.3. Choix des objets 
198
199
Pour ce qui est du choix des objets, nous avons fait des recherches sur la capacité du robot à prendre des objets.
200
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,
201
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.
202
Pour ce qui est de la reconnaissance des objets nous avons pensé à des QR codes,
203
grâce à eux le robot sera capable de reconnaitre et donc de différencier les objets mais aussi de les situer dans l’espace.
204
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.
205
206
!Image1.jpg!
207
208
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.
209
210
211
h1. 4. Les résultats
212
213
Pour ce qui est des résultats nous avons fait le choix de prendre comme outil de développement ROS.
214
En effet, après une étude des autres outils nous avons pu faire un bilan voir figures 5,6 et 7, 
215
et faire le point avec toutes les études réalisées autour de ces outils. Nous avons ainsi pu conclure 
216
que l’outil ROS était celui qui pouvait répondre à toutes nos attentes et qui permet de contrôler tous les actionneurs et
217
récepteurs que l’on a besoin pour mener à bien notre projet.
218
219
!pep1.png!
220
221
!pep2.png!
222
223
!pep3.png!