Proj-2011-2012-BrasRobotiqueHandicap



Enseignant: Olivier Richard

Etudiants:FALL Yacine (Chef de projet), LU Xiao, NICOLACCINI Mickaël , PRAK Soriya

Début du projet le 16/01/2012

Assemblage du robot

Rencontre avec les membres de l'équipe le 17 et le 18 pour monter le robot

Semaine du 23/01/2012

Configuration et Paramétrage du robot

Après avoir rassemblé les pièces comme indiqué sur le site de lynxmotion.com, nous l'avons configuré pour pouvoir effectuer des tests avec le logiciel fourni. De ce fait, le robot fonctionne et il est possible d'envoyer des commandes.

Semaine du 30/01/2012

La mise en route du bras robotique étant terminée, nous allons commencer le projet.

Le but de notre projet est de développer un bras robotique capable d'exécuter une série de mouvements à partir de marqueurs.Pour ce faire, nous nous répartissons en deux sous-groupes: Multimédia et Système.

Système
Objectif 0 : Mise en place de l'environnement ROS(Robot Operating System) et Découverte du robot (par là, on entend le fonctionnement des servo moteurs et quels sont les commandes qui permettent de les manipuler en ligne de commande...)

Objectif 1 : Manipulation du robot avec les touches du clavier

Objectif 2 : Etablissement de trajectoire et Cinématique inverse

Objectif 3 : Manipulation du bras avec les données "obtenues" avec la reconnaissance

Objectif 0
Mise en place de l'environnement ROS(Robot Operating System) et Découverte du robot (par là, on entend le fonctionnement des servo moteurs et quels sont les commandes qui permettent de les manipuler en ligne de commande...)

ROS

Nous avons mis l'environnement ROS pour la virtualisation du robot et pouvoir faire des tests sans que le robot soit présent physiquement. Cependant après avoir épluché plusieurs tutos et passé environ 6h dessus, nous avons conclu qu'il serait préférable de commencer le projet avec les environnements que nous maitrisons. En effet ROS regroupe un ensemble de packages qu'il faut comprendre et savoir utilisé ce qui n'est certes pas chose impossible mais nécessite un temps d'apprentissage tant soit peu. Dans le emps qui nous est imparti pour réaliser ce projet, il est préférable d'y revenir si le temps nous le permet à la fin pour exploiter les propriétés qui nous sont fournies avec cet environnement.

Fonctionnement des servo Cette partie est assez facile car toutes les informations sont fournis avec le logiciel.

Objectif 1 : Manipulation du robot avec les touches du clavier'''
Pour réaliser cet objectif, nous avons coder en C++ avec Visual express(version open source). Pourquoi Visual? D'abord parce que nous avons rencontrer quelques problèmes pour faire fonctionner nos ports série quand on est sous Linux. En effet, nous n'arrivions pas à écrire sur un port choisi malgré la configuration du port avec la structure termios. Toujours dans un souci d'avoir rapidement un prototype qui tourne, nous avons décidé pour le moment de coder sous windows avec Visual avec la librairie windows.h beaucoup plus facile à manier. Maintenant qu'on arrive à manipuler le robot sans le logiciel fourni, nous migrons le code sous Linux. Notre problème étant que le port est bien ouvert, le buffer chargé mais le robot ne bouge toujours pas. Ce qui nous amène à la conclusion que c'est l'écriture qui pose problème.

Objectif 2 : Etablissement de trajectoire et Cinématique inverse
L'un des problèmes assez complexe de notre projet est la résolution de la cinématique inverse. Pour ce faire, nous avons décidé d'ignorer l'un des servo. Ce qui fait que nous avons maintenant 3 servo à prendre en compte. A première vue, celà parait simple, il s'agit de connaître la position de l'objet et de bouger le bras pour aller le chercher. Mais en réalité ça ne l'est pas. - il est possible d'avoir plusieurs solutions (voir fig) - les équations à résoudre sont non-linéaires (ici 3 inconnues et 2 équations)

Multimédia
Objectif 0 : Apprentissage de C++

Objectif 1 : Utilisation d'OpenCv pour la reconnaissance de forme

Objectif 2 : Apprentissage de l'utilisation des marqueurs pour les objets à manipuler

Objectif 3 : Localisation des objects à manipuler

Objectif 4 : Synthèse

Objectifs communs

 * Fusion des deux parties (Système+Multimédia)
 * Action et mouvement préprogrammés