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.