Gestion des balles Constitution générale

Transcription

Gestion des balles Constitution générale
Nationalité : Française
Membres :
● Christophe Le Lann
● Xavier Mehrenberger
● Arnaud Bernard
●
●
●
Nicolas Colombe
Guillaume Delacourt
Thomas Jost
Comet
club de robotique de Supelec campus de Metz
Gestion des balles
Constitution générale
Le ramassage de balle s'effectue à l'aide de deux
éléments :
● Un rouleau horizontal couvrant toute la largeur avant
du robot, disposant d'ailettes flexibles pour happer les
balles libres sur la table. Les ailettes flexibles sont
disposées en V de manière à amener les balles au
centre quelle que soit la position d'arrivée sur le robot.
● Deux
bras de préhension actionnés chacun par un
servomoteur, qui permettent de prendre les balles dans
les distributeurs verticaux. L'originalité tient dans leur
construction : ils sont réalisés à l'aide de mètres ruban,
ce qui non seulement les empêche de casser en cas de
choc malencontreux, mais en plus permet d'avoir une
force de pliage différente des deux côtés, ce qui permet
d'un simple mouvement droite-gauche de libérer une
balle (action sans plier) et de repasser de l'autre côté
de la balle tombée (action avec pliage) pour la libérer
sans bouger le robot.
La structure rigide (le squelette) du robot est réalisée à l'aide de profilés Bosch-Rexroth
permettant une modularité maximale. Le reste du châssis (habillage) est réalisé à l'aide
de parois de plexiglass 5mm, sauf la base qui est réalisée en plexiglass de 8mm (usinée
par un vieux jedi de la coupe tapi dans l'ombre, merci à Gaël pour ses coups de main).
Une fois une balle entrée, elle arrive au niveau du
barillet. Là, un capteur détecte à la fois sa présence et sa
couleur, et en informe la carte de gestion des balles qui
va alors la stocker.
Il n'y a pas de vrai asservissement de mis en place
étant donné qu'il n'y a aucune boucle fermée (pas
de vrai retour d'information de position). Les
moteurs pas à pas nous permettent d'estimer
notre position avec une précision relativement
satisfaisante (une déviation mesurée d'environ
5cm pour un déplacement d'environ 10m, ce qui
peut s'expliquer par tout un tas de facteurs :
empattement mal mesuré entraînement des
rotations imprécises, légers dérapages, etc...). Un
recalage sur bordure (à l'aide de deux capteurs de
contact situés à l'avant) est possible si besoin.
Le déplacement du robot se fait à l'aide de deux
moteurs pas à pas bipolaires alimentés en 24V
(deux batteries au plomb 12V 2,8Ah) avec une
régulation de courant (L297+L298) réglée sur
1,8A max par phase (cette consommation est
largement diminuée pendant un déplacement).
capables de fournir jusqu'à 2Nm de couple. Ces
moteurs, couplés à des roues de roller de 80mm
de diamètre, nous permettent d'atteindre des
vitesses et accélération tout à fait convenables.
Le mouvement du barillet est réalisé à l'aide d'un moteur
à courant continu asservi en position par un PID simple
géré par un AtMega32 (pas de gestion de mouvement à
profil de vitesse trapézoïdal).
Pour en sortir, un bras actionné par servomoteur pousse
sur la balle lorsqu'elle est en position haute, vers l'entrée
du canon d'éjection.
Ce canon d'éjection est constitué d'un carter guidant la
balle et de deux roues en mousse couplées à des disques
d'inertie (pour ne pas trop ralentir au passage de la balle)
montés sur des moteurs asservis en vitesse (PID simple)
dans un AtMega32.
Selon la couleur de la balle, plusieurs actions pourront être menées :
● Pour une balle de notre couleur, le tir visera les conteneurs réfrigérés
● Pour une balle de la couleur adverse, nous pourrons soit ne pas la stocker dans le barillet et
reculer immédiatement pour ne pas la prendre dans le robot, soit effectuer immédiatement
un tir à faible vitesse pour la dégager en environ trois à quatre secondes.
● Pour une balle blanche, nous tenterons probablement de la "tirer" dans le conteneur standard
depuis une faible distance, sans grand espoir de réussite (nous nous concentrons avant tout
sur les conteneurs réfrigérés).
L'électronique est compartimentée en deux grandes sections : la gestion des
déplacements et de la stratégie, et la gestion des balles. Ces deux grandes sections
communiquent des informations simples (« balle blanche attrapée et stockée en position
2 », « tirer la balle 3 à 2,7m », ...) par le biais d'une liaison série.
L'ensemble de l'"intelligence" du robot est réalisée avec des micro-contrôleurs AVR
d'Atmel programmés en C sous Linux.
● Une carte (la carte principale) gère les déplacements du robot : elle communique avec
les cartes de gestion des moteurs et gère les différents capteurs (télémètres, capteurs
de contact). Elle implémente aussi le recalage sur bordure lorsqu'elle juge que c'est
nécessaire (données étonnantes des télémètres, etc...).
● Une carte de gestion des balles s'occupe du tir balistique (asservissement de la vitesse
d'éjection). Elle communique avec une carte barillet qui s'occupe de l'asservissement
de la position du barillet. Elle gère aussi les différents servomoteurs qui manipulent les
balles dans le robot (poussée du barillet vers le canon de tir, "doigts" de préhension
des balles dans le conteneur vertical).
● Une carte d'interface affiche le temps restant avant la fin du match, l'état des batteries
et la consommation actuelle des moteurs.
● Un récepteur de balise détecte la position angulaire de l'adversaire lorsqu'il se situe
dans un périmètre proche du robot (<~1m), pour éviter de lui foncer dessus ou encore
de tirer lorsqu'il est dans le champ de tir.
Nationality : French
Members :
● Christophe Le Lann
● Xavier Mehrenberger
● Arnaud Bernard
●
●
●
Nicolas Colombe
Guillaume Delacourt
Thomas Jost
Comet
Supelec's robotic club
Dealing with balls
General construction
We use two mechanical elements to collect the balls:
● A
horizontal roller, covering the whole front of the
robot. Several flexible plastic wings are glued to it, and
grab the free balls that are on the table, and guide
them inside the robot. These wing are laid out in a 'V'
shape, so that the balls are brought to the center of the
robot, whatever the position of arrival of the balls on
the robot.
● Two servo-motor-powered arms allow the robot to grab
the balls that are in the vertical containers. The fabric
we used is original: we cut about 13cm from a selfretracting pocket tape measure. This prevents the arms
from breaking in the event of a collision, but also allows
us to have a different bending force, depending on the
direction of rotation. In one direction, the measure tape
doesn't bend easily, and we use that to grab balls from
a vertical container, while in the other direction, the
measure tape bends, and we use that to replace the
arm behind the ball without moving the robot.
The rigid structure (skeleton) of the robot is made using Bosch Rexroth strut profiles,
which are very modular. In between these strut profiles, we used plexiglass walls (5 mm
thick). The base is made of 8mm-thick plexiglass - thanks to Gaël (Eurobot Jedi Master)
for helping us.
Once the ball is inside the robot, it enters the barrel.
There, a sensor detects both its presence and its color
simultaneously, and sends a message to the balls
management electronic board, which will manage its
storage.
There is no true control, since there is no feedback
of position. The stepper motors enable us to
estimate our position with a satisfactory precision:
we measured a deviation of approximately 5 cm
for a displacement of approximately 10m, for
which a lot of elements are accountable: errors in
measuring the footing, slight skids... We can bump
on the border and use the two contact sensors
that are installed at the front of the robot to get
correct information about our position.
The robot moves thanks to two bipolar stepper
motors, under a voltage of 24V (using two 12V
2.8Ah lead-acid batteries). The current is
regulated (L297 & L298) to 1.8A maximum per
phase (the motors use less when the robot is
actually moving). These motors are able to yield a
2Nm torque. They are coupled to two in-line roller
skate wheels of 80 mm of diameter. The resulting
speeds and accelerations are suitable.
The barrel moves thanks to a DC motor, controlled in
position by a simple PID controller managed by an
AtMega32 micro-controller.
A servo-motor-powered arm pushes the ball out of the
top of the barrel, toward the entrance of the ejection
cannon.
This ejection cannon is made of a casing which guides
the balls, and of two foam wheels coupled to flywheels
(to prevent the wheels from slowing down when the ball
is being shot), assembled on motors controlled by a
simple PID controller, managed by an AtMega32 microcontroller.
Depending on the color of the ball, the robot can choose between several actions:
● if it's a ball whose color is the same as the robot's chosen color, the robot will shoot toward its
refrigerated container.
● if it's a white ball, we will probably try and shoot it into the standard container from a near
distance, without much hope of succeeding (we will concentrate on the refrigerated
containers).
● if it's a colored ball whose color is different from the robot's chosen color, we will either go
backwards to reject the ball, or shoot it immediately at a slow velocity - it would take about
three to four seconds.
There are several electronic boards to control the robot's actions, divided into two
categories: management of displacements and strategy, and management of the balls.
Simple messages are sent between these two categories: "white ball stored at position
2", "throw ball #3 at 2.7 meters" etc..., using serial communications.
The whole "intelligence" of the robot stands in AVR micro-controllers (manufactured by
Atmel), which we program in C under Linux.
● A board (the main board) handles the displacements of the robot: it communicates
with the two motors management boards, and gets informations from several sensors,
such as rangefinders and contact sensors. It can also decide to bump on a border to
get precise information about the current position.
● Another board manages the balls: it controls the motors of the ejection cannon (control
of the motors' speed). It is able to communicate with the board which manages the
barrel (that one controls its position), and it also manages several servo-motors (the
arms that grab balls, and the arm that pushes balls out of the barrel).
● An interface board displays the remaining time before the end of the match, the
batteries' voltage and the current electricity consumption.
● A receiver board detects the angular position of the adversary when it is close to our
robot (<~1m), to avoid bumping it, or throwing a ball toward it.

Documents pareils