!! Demenagement du site !! => http://smartrobotics.org/blog

A la suite de la coupe de France de robotique 2012, j’ai décidé de faire peau neuve au site internet et de changer d’adresse.

.

.

.

Voici donc la nouvelle adresse :  http://smartrobotics.org/blog

.

.

.

.

Implementation of ROS libraries on STM32F4

Les travaux sur le STM32F4 progressent !
Aprés avoir fait fonctionner un USART (les autres fonctionnent de la même manière mais je n’en ai pas besoin pour l’instant), ainsi que 2 decodeurs de signaux en quadrature (sur 32bits), je me suis attaqué aux interruptions.
Tout d’abord, une interruption timer pour pouvoir calculer l’odométrie régulierement et faire l’asservissement.
Ensuite, une des interruptions de l’USART pour la reception des datas. Lorsqu’une data arrive sur l’uart, une interruption est déclenchée. Je mets alors la data dans un buffer circulaire pour pouvoir l’utiliser plus tard. Ceci permet de ne pas avoir de “lecture bloquante”.

Une fois tout ceci fonctionnel, je me suis attaqué à implémenter les libraries ROS sur le STM32F4.
Le code est totalement en C++, et est donc compilable sur l’architecture.
Il faut juste re implémenter les quelques fonctions de communication. J’ai donc utilisé l’USART2 pour communiquer les messages spécifiques avec le pc, et maintenant tout ceci fonctionne.

Voici une démonstration ou le STM32 calcul la position du robot avec une entrée de codeur, et envoie un message ROS au pc, qui l’affiche :

L’implémentation sur la carte avance :
Faire marcher un UART / DONE
Faire fonctionner 2 entrée de codeur en quadrature / DONE
Faire fonctionner une interruption de timer / DONE
Implémenter la librairie de communication avec ROS / DONE
– Utiliser les interruptions de l’UART / STARTED
– Implémenter l’asservissement / STARTED
– Faire fonctionner une interruption externe / TODO
– Faire fonctionner l’USB en mode port série / TODO

Arrivée des cartes STM32F4 !

Aprés avoir utilisé des microcontroleurs Atmel pendant plusieurs années, j’ai décidé de passer aux STM32F4. (convaincu par les bons conseils de l’APBTeam ! )

J’ai donc commandé 2 cartes d’évaluation (au cas ou) pour effectuer des tests.

Voici les caracteristiques principales qui m’interessent :

– Core: ARM 32-bit Cortex™-M4 CPU with FPU, Adaptive real-time accelerator (ART Accelerator™) allowing 0-wait state execution from Flash memory, frequency up to 168 MHz, memory protection unit, 210 DMIPS/1.25 DMIPS/MHz (Dhrystone 2.1), and DSP instructions
– Up to 17 timers: up to twelve 16-bit and two 32-bit timers up to 168 MHz, each with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input
– Up to 15 communication interfaces
– USB 2.0 full-speed device/host/OTG controller with on-chip PHY

STM32F4 portée par L'Indomptable

STM32F4 portée par L’Indomptable

Le but de cette carte va donc etre de faire l’asservissement du robot (grâce aux compteurs interne, alors que c’était fait en software sur l’Atmel) ainsi que l’utilisation des I/O pour s’interfacer facilement avec des relais/capteurs. Etant donné son grand nombre d’entrée pour codeur en quadrature, je pourrais meme asservir d’autres moteurs (pas de propulsion) grâce à cette carte.

Les étapes à effectuer sont :
Faire marcher un UART / FAIT
Faire fonctionner 2 entrée de codeur en quadrature / FAIT
Faire fonctionner une interruption de timer / FAIT
– Utiliser les interruptions de l’UART
– Faire fonctionner une interruption externe / TODO
– Faire fonctionner l’USB en mode port série / TODO
– Implémenter la librairie de communication avec ROS / TODO
– Implémenter l’asservissement / TODO

Pour l’instant, la carte commence à être prise en main et à montrer ses possibilités. Je pense que c’était un bon choix et remercie ceux qui m’en ont parlé !

A bientot pour peut-etre une vidéo du robot asservit par le STM32 !

Les résultats sur wikipedia.

Je viens de voir qu’il y avait une page wikipédia sur la coupe de France de robotique. Et quelle surprise en voyant qu’il y a le classement ! On peut donc y voir l’équipe S.M.A.R.T. 9ème en 2011 et 2012. Maintenant, il faut reussir à aller encore plus loin !! (tout en gardant l’objectif d’un robot qui sort de l’ordinaire)

Source : http://fr.wikipedia.org/wiki/Coupe_de_France_de_robotique

Vidéos du robot.

Voici quelques vidéos du robot de cette année :

Coupe Ile de France :

Defaite contre les champions de Belgique (Plastivore) :

Defaite contre les champions d’Europe (RCVA) :

Victoire contre Sussus Invaders :

Victoire contre Isty 2000 :

Coupe de France :

Defaite contre RCVA :

Victoire contre ENAC :

Resultat de la coupe Ile de France.

La coupe de robotique d’Ile de France a eut lieu ce week-end (basée sur les mêmes regles que Eurobot). 14 équipes étaient présentes dont les champions d’Europe et France (RCVA) et les champions de Belgique (Plastivore). Autant dire qu’il y avait du niveau!

Le robot ne s’est pas trop mal débrouillé et a finalement reussi a se placer en 5eme place en se faisant éliminer en quart de final par Plastivore.

Videos du robot à la coupe 2012

Voici 2 vidéos de nos robot (du coté rouge)

2eme match des phases qualificatives :

Match de 8eme de final contre RCVA :

S.M.A.R.T. passe sur TF1.

Quelle belle surprise en revenant de la coupe de voir des messages de personnes qui m’ont vu passer au 20H de TF1 le dimanche !

Smart_TF1

Smart_TF1

La vidéo sur le site de TF1

Merci aux partenaires !

La coupe de France est enfin finie et ne s’est pas trop mal déroulée, je tiens donc à remercier les partenaires qui m’ont soutenu !

 

– Arobose, pour son soutient financier et ses encouragements réguliers.

– KNF pour ses pompes à vide de petite taille et de trés bonne qualité qui ont permi au robot de pouvoir récuperer les CD avec ses bras.

– Vicatronics pour ses codeurs incrémentaux qui ont permis aux 2 robots de se positionner trés précisement sur la table.

– Radiospares, qui soutient tous les participants à la coupe en nous permettant d’acheter des composants à prix réduit.

Coupe de France de robotique 2012 : Le résultat !

Ca y est, la coupe de France de robotique est finie !

Aprés 2H30 de route (et un embouteillage de 30minutes juste avant l’arrivée), nous sommes arrivés dans le froid de la Ferté-Bernard.

Tout à bien commencé avec une homologation du gros robot du premier coup, nous avons continué a travailler sur le petit robot secondaire !

Objectif du petit : Prendre la carte au trésor !
Pour ce faire, nous avons décidé d’utiliser un rouleau en mousse avec quelques petits piques qui ressortent pour accrocher la carte.

Aprés une aprem, une soirée et la matinnée a bosser dessus, nous avions un petit robot “correct” : asservit, avec une detection par ultrason, et avec un rouleau qui marche de temps en temps.

On passe l’homologation juste en dernier avant la fin pour pouvoir faire le premier round. Le robot detecte plutot bien le “robot adverse” et s’homologue du coup.

Ensuite, les matchs de qualification commencent !

Le premier match est une calamité : a force de faire des tests, les batteries n’étaient plus chargées et le robot s’arrete au bout de 10 secondes sans mettre un seul point… Nous nous retrouvons 77eme au classement.

Le 2eme match est un peu mieux, nous gagnons avec 35 points et le petit robot a même reussi à prendre la carte ! (une premiere pour nous, même en test ca ne marchait pas)
Nous remontons donc à la 29eme place !

Le 3eme match n’est pas trop mal, et nous gagnons avec 28 points (pas de carte). Ce qui nous fait monter à la 20eme place. Les phases finales se rapprochent !

Pour le 4eme match, les choses se compliquent, un CD reste coincé lorsque le robot pousse une bouteille, ce qui fait qu’il manque 2mm pour qu’elle soit completement enfoncée et l’arbitre la refuse, ce qui fait que nous perdons le match avec 11 points. Nous redescendons à la 31eme place.

Nous nous retrouvons du coup avec 12points de retard sur le 16eme (pour être qualifiés) avec 1 seul match restant !

Le dernier match a été trés serré. Notre robot et le robot adverse ont fait des matchs pas mauvais et le score a été de 22 à 21 pour nous, ce qui nous fait 32 points supplémentaire en comptant les points de victoire !

Et la surprise nous remontons pile poil à la 16eme place ! De quoi se qualifier pour les phases finale !
Par contre, étant dernier des phases finales, nous tombons contre le premier, ce qui veut dire une défaite et une élimination assurée.

Voici le classement des 16 premiers à l’issu des 5 matchs de qualifications :

Equipe Points MJ V D E F
1er RCVA 263 5 5 0 0 0
2nd ClubElek 160 5 3 1 0 1
3ème Space Crackers 155 5 5 0 0 0
4ème Télécom Robotics 153 5 5 0 0 0
5ème Supaero Robotik Club 148 5 5 0 0 0
6ème oLeg 145 5 5 0 0 0
7ème R3EA 142 5 4 1 0 0
8ème WheelsTeam 132 5 3 1 1 0
9ème BH Team 126 5 4 0 0 1
10ème LES DTRAQUES 124 5 4 0 1 0
11ème Robotnik 119 5 4 1 0 0
12ème Alpobot 117 5 3 2 0 0
13ème Reims2 114 5 2 3 0 0
14ème Eirbot 113 5 4 1 0 0
15ème INTech 112 5 4 1 0 0
16ème S.M.A.R.T. 108 5 3 2 0 0

Le match se déroule comme prévu, avec une défaite pour nous 25 à 13. Notre petit robot a tout de même reussi à prendre la carte sans encombres, mais le petit robot a eut un blocage avec un lingot. L’adversaire était vraiment trés bon et c’est sans regrets que nous nous inclinons (ils nous ont même volé des lingots !).

Nous gardons encore une fois un trés bon souvenir de la coupe, et ça s’est plutot bien terminé malgrés un premier match raté.

(Bientot quelques vidéos !)