P15AB08 ROHGEC Robot Humanoide Génie Electrique Clermont-Ferrand » Historique » Version 5
Anonyme, 01/04/2021 10:20
1 | 2 | Anonyme | p<. !https://forge.clermont-universite.fr/attachments/download/15853/synoptique_20150505160629_20150505160707.jpg! |
---|---|---|---|
2 | |||
3 | --- |
||
4 | |||
5 | p=. *ROHGEC RObot Humanoid Genie Electrique Clermont* |
||
6 | |||
7 | --- |
||
8 | |||
9 | |||
10 | |||
11 | *Projet GE4a-GE5a* : ROHGEC : Robot Humanoide Génie Electrique Clermont-Ferrand |
||
12 | *Entreprise / Client* : Sébastien Lengagne |
||
13 | *Auteurs* : Vincent Ledain / Clément Latour |
||
14 | *Responsable Projet* : Sébastien Lengagne |
||
15 | *Tuteur industriel* : Isabelle Goi / Pascal Fickinger |
||
16 | |||
17 | |||
18 | --- |
||
19 | |||
20 | p=. *Résumé* |
||
21 | |||
22 | --- |
||
23 | |||
24 | Dans le cadre de notre formation d'ingénieur, il nous est demandé de réaliser un projet mettant en pratique les compétences acquises pendant notre cycle d'ingénieur. Notre client, Sébastien Lengagne, enseignant chercheur à Polytech Clermont Ferrand dans le domaine de la génération de mouvements sûrs pour des systèmes complexes tels que les robots humanoïdes, les avatars humains, les robots hexapodes, nous a demandé de développer un robot humanoïde auto équilibré (base type segway) constitué de deux bras articulés, d'une base mobile et d'une caméra. Ce robot sera utiliser pour promouvoir le département génie Electrique lors des portes ouvertes. |
||
25 | |||
26 | --- |
||
27 | |||
28 | p=. *Abstract* |
||
29 | |||
30 | --- |
||
31 | |||
32 | As part of our schooling, we are required to carry out a project applying skills acquired during our engineering studies. Our client is Sébastien Lengagne, teacher researcher at Polytech Clermont Ferrand (his field is the robotic generally, generation of mouvement safe to complex systems such as humanoide robot, human avatar and hexapod robots). He proposed us to make a self balancing robot (type segway) made up two swivel arms and camera. This robot will use to promote the Electrical department during |
||
33 | school open days. |
||
34 | |||
35 | --- |
||
36 | |||
37 | p=. *Introduction* |
||
38 | |||
39 | --- |
||
40 | |||
41 | De nos jour, les robots prennent une place de plus en plus importante, tant dans le domaine industriel que dans la vie de tous les jours. En effet, le robot que nous devons réaliser est une copie (voir amélioration) d'un robot existant, commercialisé et destiné à un jeune publique (enfant). |
||
42 | L'objectif principal de ce projet est de réaliser un système commandé par un Raspberry Pi. Ce dernier sera le cerveau du système, il permettra d'envoyer des requêtes au différents microcontrôleurs constituant le robot. On ajoutera à notre robot une caméra permettant la récupération de données visuelles afin de les afficher sur un écran. |
||
43 | |||
44 | --- |
||
45 | |||
46 | p=. *Cahier des charges* |
||
47 | |||
48 | --- |
||
49 | |||
50 | - Corps du robot animé d'un mouvement de translation (avance, recule, tourner) |
||
51 | - Deux bras articulés |
||
52 | - Une tête articulée avec caméra |
||
53 | - Utilisation d'un raspberry Pi comme organe de commande du système global |
||
54 | - Programmation en langage C et Python |
||
55 | - Transportable (hauteur maximale de 30 cm et poids inférieur à 4 Kg) |
||
56 | - Prix inférieur à 400 € |
||
57 | |||
58 | --- |
||
59 | |||
60 | p=. *Définition des livrables* |
||
61 | |||
62 | --- |
||
63 | |||
64 | Dans un premier il nous est demandé de faire fonctionner chaque partie indépendamment les unes aux autres. C'est à dire: |
||
65 | |||
66 | |||
67 | p((. Commande du mouvement de la base (Avance, Recule, Tourner) |
||
68 | Récupération de l'inclinaison de la base |
||
69 | Commande des deux bras articulés |
||
70 | Récupération de l'orientation de chacun |
||
71 | Utilisation du Raspberry Pi pour commander chacunes des parties (base mobile, bras et tête) |
||
72 | Utilisation d'une caméra, commandé par le Raspberry Pi |
||
73 | Communication USB |
||
74 | |||
75 | |||
76 | |||
77 | Une fois les livrables précédents réalisés, des améliorations peuvent être apportées: |
||
78 | |||
79 | p((. Mise en place d'une stratégie de démonstration du robot |
||
80 | Asservissement de la base afin de réaliser l'auto-équilibrage du robot |
||
81 | Assemblage final du robot |
||
82 | Traitement d'image avec Open CV |
||
83 | |||
84 | --- |
||
85 | |||
86 | p=. *Synoptique* |
||
87 | |||
88 | --- |
||
89 | |||
90 | Le système sera donc composé par plusieurs parties. A savoir deux microcontrôleurs 8bits, 1 pour le commande de la base, 1 pour la commande des bras. Ces deux microcontrôleurs seront tous les deux commandés par un Raspberry Pi via une liaison USB. Ce dernier sera utilisé pour faire du traitement d'image avec l'utilisation d'une PyCam?. |
||
91 | 3 | Anonyme | |
92 | p=. !https://forge.clermont-universite.fr/attachments/download/15854/synop_20160102123425_20160102123442.png! |
||
93 | |||
94 | p=. Figure 1: Synoptique |
||
95 | |||
96 | --- |
||
97 | |||
98 | p=. *Developpement* |
||
99 | |||
100 | --- |
||
101 | |||
102 | p=. *1) Choix des composants |
||
103 | |||
104 | Durant le second semestre de quatrième année, nous avons planifié les tâches à effectuer pour la cinquième année de façon à remplir le cahier des charges dans sa totalité. Pour cela, une étape cruciale a été le choix des composants. |
||
105 | Le Raspberry Pi nous a été imposé par le client, celui-ci commandera le système dans sa globalité et il permettra aussi de faire du traitement d'image à l'aide de la PiCam?. |
||
106 | Concernant les actionneurs, il y en avait plusieurs à choisir. En effet, il en fallait pour la commande en translation de la base et pour les deux bras. Concernant la base cela nous avons opté pour des moteurs à courant continu car il offre un couple et une vitesse élevé (les servomoteurs ne sont pas commandable en vitesse, ne conviennent donc pas pour notre application, les moteurs pas à pas sont trop lent, et les moteur brushless ne sont pas adapté à notre application, on les utilise lorsque nous avons besoin de vitesse élevé (quadricoptère, machine à découpage) et demande une électronique onéreuse). Il nous a fallu ajouter un pont en H en amont des moteurs afin de pouvoir commander dans les deux sens de rotation et de manière indépendantes l'un de l'autre (L298N). |
||
107 | Concernant les actionneurs des bras, notre choix c'est porté sur des servomoteurs, car ce sont des moteurs qui permette d'obtenir des positions précise et offre des couples nécessaires à notre application. |
||
108 | Au niveau des organes de commandes, nous avons choisi d'utiliser deux microcontrôleurs, une pour la commande des bras et un pour la commande de la base. Plusieurs raisons à cela, la première permet un découpage des tâches plus facile en binôme, de plus, s'il y a un problème au niveau de la conception de la carte, nous ne restons pas paralysé par le temps de la fabrication de celle-ci et finalement, d'un point de vu académique, l'utilisation de plusieurs composants (Raspberry Pi et microcontôleur) nous permet d'élargir nos connaissances et d'obtenir un système complet. |
||
109 | Nos choix on été d'utiliser les PIC18F4550/2553 de chez Microchip, des microcontrôleurs 8 bits. Ces microcontrôleurs intègrent toutes les fonctionnalitées nécessaire à notre application (I2C/SPI, USB, MLI, beaucoup de ports I/O disponibles). |
||
110 | Un composant cruciale a du être choisi par la suite. En effet, il est nécessaire de récupérer l'inclinaison du robot (car une fois les premiers livrables fait, nous devons ajouter l'option auto-équilibrage du robot). Pour cela, nous avons opté pour une IMU (Inertial Measurment Unit ou centrale inertielle en français) qui est un composant intégrant au minimum 3 gyromètres et 3 accéléromètres (un pour chaque axe, x, y, z) et parfois 3 magnétomètres (boussole). Ce composant permet de calculer la vitesse angulaire et l'accélération linéaire d'un objet. Le composant est le MPU 9255, fonctionnant en I2C ou en SPI, qui est un composant MEMS, ce qui signifie qu'il est fortement intégré. |
||
111 | |||
112 | |||
113 | p=. *2) Etude des bras* |
||
114 | |||
115 | p(. *a) Carte de commande |
||
116 | |||
117 | La carte de commande des bras a été réalisé par un étudiant de quatrième année pendant les séances de sous traitance. Pour cela il a utilisé le logiciel Proteus, qui est un logiciel de conception de carte électronique. |
||
118 | La carte final est la suivante: |
||
119 | 4 | Anonyme | |
120 | p=. !https://forge.clermont-universite.fr/attachments/download/15855/bras_20151229172002_20151229172038.png! |
||
121 | |||
122 | Nous avons utilisé un régulateurs de tension par servomoteurs afin de fournir le courant nécessaire. En effet, chacun consomme jusqu'à 1A, c'est pourquoi il était indispensable d'utiliser autant de régulateur. Cependant, nous avons réalisé une carte relativement petite, sans utilisé de dissipateur thermique, à tort, c'est pourquoi nous avons préféré utiliser un tracoPower en amont afin de fournir le courant nécessaire car sans ce dernier, les régulateurs chauffés beaucoup, ce qui pourrait entraîner une dégradation prématurée des composants (une alternative aurait été d'utiliser des régulateurs à découpage). |
||
123 | |||
124 | p((. b) Software |
||
125 | |||
126 | Concernant la commande des 8 servomoteurs, constituant nos bras, il a été nécessaire d'utilisé le mécanisme des interruptions et le Timer 0 du PIC. En effet, le PIC utilisé ne possède que deux sorties MLI (Modulation par Largeur d'Impulsion), et celle ci ont une période minimale de 10.8ms, ce qui est trop élevé pour la commande des servomoteurs. En effet, nous devons générer des états haut variant de 0.5 à 2.5ms toutes les 20ms afin de balayer les 180° de déplacement des axes des moteurs. |
||
127 | A l'aide d'un analyseur logique, nous avons relevé les chronogramme correspondant aux 8 MLI générées par le PIC. |
||
128 | 5 | Anonyme | |
129 | p=. !https://forge.clermont-universite.fr/attachments/download/15856/PWM_20151229172002_20151229172057.png! |
||
130 | |||
131 | Comme dit précédemment, nous avons ajouté deux capteurs, un pour chaque bras, permettant de connaitre l'orientation des deux bras. L'étude du MPU 9255 et le calcul des angles est faite à la partie concernant la base du robot. |
||
132 | Concernant la communication utilisé entre le PIC et les capteurs, nous pouvons utilisé le protocole I2C ou la SPI. Les deux ont été essayé, mais ici, seulement la SPI sera montrer. L'avantage que nous avons avec la SPI est la rapidité. En effet, avec l'I2C, la fréquence maximale est de 400kHz, alors que avec la SPI nous pouvons atteindre 1MHz (avec le MPU 9255). De plus, nous avons pu remarqué quelques problèmes avec la communication I2C, parfois, le capteur se déconnecté du PIC. |
||
133 | Avec l'analyseur logique, nous avons relevé un chronogramme qui montre le fonctionnement de la SPI. Dans cet exemple, nous cherchons juste à savoir si le PIC et le MPU 9255 communique bien entre eux, pour ça nous lisons à l'adresse 0x75 du capteur, et si celui ci est bien connecté, et si il est bien configuré en mode SPI, il doit nous renvoyé son adresse qui est 0x73. |