Aller au contenu


Jbot

Inscrit(e) (le) 18 août 2010
Déconnecté Dernière activité janv. 10 2015 05:42
-----

Sujets que j'ai initiés

[Eurobot 2012] L'indomptable

08 février 2012 - 10:51

Aprés avoir fait pas mal de tests ( http://www.robot-maker.com/forum/topic/4976-arkady-a-multi-purpose-test-bot/ ), on s'est enfin attaqué à la constructions des robots pour la coupe de France 2012.

La base roulante du gros robot est enfin pratiquement finie ! (en tout cas la mécanique)
La base est en aluminium de 3mm avec 2 moteurs DC 12V ainsi que 2 encodeurs 1024cpr.
La fixation pour la rotation des codeurs a été faite en bois, car c'etait plus simple ;) (étant donné qu'on voulait faire une piece ou l'on puisse inserer l'axe de force)
Ce week-end, je commencerais à faire des calibrations pour l'odométrie, un week-end fun en perspective :P

Voyons voir les photos !

Voici tout d'abord le support codeur :
Image IPB

Et voici la base en entier avec les fixations en bois :
Image IPB

Image IPB

---------------


J'ai construit un des deux totem ce week end pour pouvoir tester le bras. Ce fut plus long que prévu ca casto vends du contreplaqué d'épaisseur théorique 18mm mais qui s'avere au final etre du 17mm... Il a donc fallu rajouter des petits morceaux de 1mm par ci par la.

Voici le résultat :
Image IPB

Image IPB

J'ai donc pu effecter quelques premiers tests de prise d'objets. Ce n'est que le début encore, les séquences de mouvement sont améliorable et la zone de stockage du robot n'est pas faite.

http://www.youtube.com/watch?v=0j3W7GjWJ2U

En parallele, j'ai bossé sur l'odométrie. Il reste a calibrer l'asservissement (du fun en perspective ;) ).

Robot aspirateur piloté par joystick

09 novembre 2011 - 09:23

Bonsoir !

Bon, je ne sais pas si c'est vraiment une "réalisation" robotique mais bon ;)

J'ai un robot aspirateur dont j'ai pris certaines pieces (capteur) pour un autre robot. Du coup, il ne marche plus en autonome.
Du coup, pour ne pas le jeter a la poubelle, j'ai décidé de le rendre téléguidé avec un joystick !
Pour cela je le branche a un mini pc portable, je branche mon joystick sans fil au pc portable, et en avant le robot !

Le code est bien évidement fait sous ROS ! (Robot Operating System)

Voici une petite vidéo :


Maintenant j'aurais moins la flemme de passer l'aspirateur chez moi ! Ou pas ...

(Arkady) A multi-purpose test bot

10 juin 2011 - 05:55

Salut !

La coupe de France étant finie, il est temps pour moi de "décapiter" Maximus et de créer un nouveau robot. :D
(Dés que je serais rentré des US biensur)

Je vais donc décrire une premiere partie du hardware que je pense utiliser (le robot est encore à l'étude ^^).

- Tout d'abord biensur, 2 moteurs de propulsion avec des encodeurs attachés (il n'aura pas d'encodeurs séparé).
- Ensuite le lidar du robot XV-11 (pour pouvoir faire du SLAM, c'est à dire construire la carte de son environnement et se reperer dedans).
- Une arduino-mega pour récuperer les valeurs des odometres et des potentiels capteurs bas niveau.
- Un petit pc (surement un atom D525 avec un nvidia ION) pour faire tourner Linux dessus.
- Une kinect, pour pouvoir avoir accés a la fois à une caméra et a une reconstitution 3D de l'environnement (surement pour trouver des objets, suivre des visages ou autre).
- Un bras avec une pince, pour attrapper des trucs :p
- ...

Si vous avez des idées ou commentaires pour faire un robot sympa, je suis preneur ^^ (du moment que ca ne consiste pas à mettre Windaube dessus :p)

"Poor man's lidar" Le lidar du pauvre !

18 janvier 2011 - 07:45

Salut ! Je ne sais pas si ce post à sa place ici mais bon je post au cas ou ca interesse quelqu'un :D

Pour tous ceux qui revent d'avoir un Lidar pour pas cher, voici une solution ;)



Après avoir utilisé pendant un moment des communications "custom" entre l'arduino et le pc (sous ROS), j'ai découvert la bibliothèque fournie par l'université Rutgers. Cette bibliothèque fournit un "pont" pour faire une communication entre ROS et un arduino (n'importe quel Avr en fait).

En effet, grâce à leur bibliothèque, je peux maintenant créer des subscriber et publisher, comme si 2 processus ROS communiquaient simplement entre eux.



J'ai donc implémenté un petit PML ("poor man's lidar" le lidar du pauvre, en français) qui est une version pas chère (et pas performante du coup ;) ) d'un lidar qui coute normalement 1000euros minimum.



Une fois l'électronique montée (un servomoteur, un capteur IR sharp et une arduino), j'ai implémenté le code sur l'arduino avec un communication simple avec ROS.

Je pensais pouvoir utiliser directement le type "LaserScan" mais en fait l'arduino ne gère pas les vecteurs a dimension non-finie donc j'ai du créer mon propre type d'information à communiquer (ici un tableau de 18 flottants) et j'ai ensuite fait un petit programme sur le pc qui transforme ces 18 valeurs en un objet du type "LaserScan" pour être affiché dans l'environnement de simulation 3D.



Il suffit ensuite de lancer ces 3 commandes une fois que l'arduino est branché à l'ordinateur :






Et on obtient ce "magnifique" résultat ! (malheureusement ce n'est qu'un PML donc on arrive a avoir des données que toutes les 800ms en gros... mais les objets sont bien détectés !)



La vidéo c'est ici : http://www.youtube.com/watch?v=ECqEbzWI_94



Merci au site http://www.pirobot.org qui m'a bien aidé :D

[Maximus] Un empileur de pions !

15 décembre 2010 - 04:12

Salut !



Etant donné que je vois que des gens commencent à parler de Maximus sur d'autres threads, je crée ce thread histoire de pas polluer celui des autres ^^

Donc me voila avec un nouveau projet (enfin ça fait deux mois que je travail dessus ;) ) !



Le but de ce robot est de participer à la coupe Eurobot2011 (uniquement la coupe de France etant donné que seuls les 3 premiers participent à la coupe européenne).

Une partie dure 1min30, le robot doit être autonome et capable de déplacer des pions sur les cases de sa couleur ainsi que d'empiler les pions. (le règlement se trouve ici : Règlement ).



J'ai donc commencé par faire la partie déplacement du robot, et c'est pratiquement terminé.



L'électronique de la partie déplacement se compose de 2 "cartes" de contrôle :

- Une carte RoboClaw qui fait un asservissement en vitesse (PID) sur les moteurs

- Un ATmega162 qui fait le calcul de position et l'asservissement en position (PD) du robot

Voici un schéma illustrant l'asservissement (pas très compréhensible pour quelqu'un qui n'aurait jamais fait d'automatique je pense ^^)

Image IPB





J'ai aussi mis en place un module ROS (Robot Operating System) permettant de récupérer les informations du robot et de les afficher sur un environnement graphique, ce qui permet de le débugger plus facilement.



Ce robot finira surement comme robot personnel autonome se baladant dans mon appart, mais ça sera sa 2ème vie ca ^^



Maintenant il faut que je m'attaque à la mécanique et à la préhension des pions.



Mon site web qui sert de fil rouge à ce projet :

Le blog du robot Maximus





Et voici une première vidéo de l'interface graphique et du robot :





J'ai ensuite fait un premier prototype de base mécanique pour le robot qui permet uniquement de prendre des pions et de les déplacer, il ne peut pas encore les empiler.

Image IPB

Je n'ai pas encore eut l'occasion de tester le bon fonctionnement de la chose, il me manque encore des composants et surtout il faut que je code un "cerveau" au robot pour qu'il cherche les pions et les attrape.



Au passage, j'ai implémenté l'asservissement que j'avais fait sur une carte arduinoMega pour permettre la réutilisation facile du code par un peu n'importe qui. Le code est disponible ICI. Il y a eut pas mal de modifications à faire pour que ca marche sur l'arduino mais bon, maintenant ca semble fonctionner (sauf qu'il faut que je change mes constantes de PID étant donné que la fréquence des timers a changé !).



Voici maintenant une petite vidéo du robot en autonome. Ce test est surtout fait pour l'homologation et un début de match. Le but est de prendre un pion est d'aller le mettre directement en zone protégée pour s'assurer 10 points à tous les matchs.





Ensuite une petite vidéo ou le robot est en mode "dés que tu trouve un pion, tu le mets sur une case bleu (y a juste B sur les cases :p)":





J'ai ensuite recu les arduinos que j'avais commandées.

Image IPB



Du coup, j'ai pu créer divers modules séparés (Un module assevissement deja fait, un module A.I., un module LCD pour choisir la couleur de départ). J'ai aussi créé un petit module pour allumer et eteindre le robot et qui possede aussi un arret d'urgence obligatoire pour la coupe.

Au passage j'ai fais une nouvelle version de la mécanique, permettant d'ajouter des étages facilement.

Une petite vidéo du LCD et de l'arret d'urgence :



Etant donné que j'ai grillé la carte de contrôle des moteurs de propulsion, j'ai installé la courroie qui va permettre de faire monter et descendre les pions. C'est beaucoup plus rapide que la technique de la tige filetée que j'avais testé précédemment.



Une petite vidéo

Voici l'ancien test que j'avais fait avec une tige filetée.



Pour guider l'elevateur, je me suis tourné vers les coulisses à bille de tirroir. C’est une solution pas chère et plutot efficace pour faire uniquement un mouvement rectiligne.



J’ai donc commencé a bricoler un peu le robot pour pouvoir lui mettre ses deux glissieres :

Image IPB



Il fallait ensuite un moyen d’attacher la pince à la courroie. J’ai décidé de faire un petit systeme de fixation avec 2 vis qui vont venir pincer la courroie et ainsi fixer le portique à la courroie :

Image IPB



Et voici une première vidéo du fonctionnement. Ce n’est pas encore tout à fait au point mais ça devrait plutot bien marcher en bidouillant un peu :

=> La vidéo <=



Fiouuu, ça a été beaucoup plus long que prévu !

J'ai fais une petite pause robotique, du coup j'ai pris du retard.



Voici les nouvelles :



J'ai fais une nouvelle base mécanique pour les roues et l'ascenseur.

Face Avant :

Image IPB

Face Arrière (il y aura les cartes électronique dessus) :

Image IPB



Cette fois c'est une base tout en métal donc ça sera la dernière version.

L'ascenseur est fait toujours avec les glissières de tiroir. On peut les voir sur cette image :

Image IPB

Il y a de petit micro-rupteur en haut et en bas pour arrêter automatiquement l'ascenseur :

Image IPB



La vidéo de test.



Ensuite, j'ai rajouté des encodeurs séparé des roues motrice pour permettre de se positionner même si les roues motrices dérapent.

Image IPB



Bon, après une petite aprem à installer l'électronique, j'ai pu avancer un peu.

Image IPB

Image IPB



C'est un bon gros tas de cable mais bon c'est ça qu'on aime ! :D



J'avais déjà mis une p'tite image sur les asservissements que je fais sur ce robot mais je vais reprendre ici ;)

Image IPB



Comme on peut le voir, il y a un double asservissement:

- A droite : un PID en vitesse pour chaque moteur qui est fait par la carte RoboClaw

- A gauche : un asservissement polaire PD fait par une arduino



L'asservissement polaire consiste à asservir l'angle et la distance du robot.

En fait on asservit 2 moteurs virtuel, un qui représente la distance ( = (distance_gauche + distance_droite) / 2 ) et un qui représente l'angle ( = distance_droite - distance_gauche).

Aprés ça reste des PID et PD basique donc il faut régler les gains et c'est chiant :p



Lien d'une petite vidéo de test faite ce soir ;)



Bon, pour ce qui est de l'estimation de position c'est pas encore ça, je cherche pourquoi c'est si peu précis :s



Une grande partie de la théorie peut etre trouvé ici : Lien



Voici une petite vidéo de l'estimation de position. ca marche plutot pas mal. Je lui fais faire des rectangle pour voir si il sait toujours ou il est, et il n'y a pas trop de déviation.



La vidéo de démo.



Voila, c'est tout pour le moment, j'updaterais au fur et à mesure que je progresse ;)