- Robot Maker
- → Contenu de mopi
Contenu de mopi
Il y a 18 élément(s) pour mopi (recherche limitée depuis 14-juin 13)
Par type de contenu
Voir pour ce membre
#35390 robot prevision
Posté par mopi sur 28 octobre 2011 - 09:57 dans Intelligence artificielle
Je suis un étudiant qui possède peu de connaissance en robotique, j'ai seulement réalisé le robot roby mais je suis loin de maitriser le code.
Dans le cadre des TIPE dont le sujet est "prévision"(aléa,déterminisme,indédermination,risque,systèmes évolutifs,validation-écart)on voulait faire un robot détecteur d'obstacle mais ce sujet a été refusé pour cause de vision et non de prévision.
On a donc modifié le projet avec un robot qui évite les obstacles, en choisissant la direction en fonction de son historique. Il devient un système à apprentissage qui choisira la direction d'évitement (à droite ou à gauche) en fonction de ce qu'il a déjà rencontré. Connu en robotique sous le nom de réseaux de neurones et algorithme génétique d'apprentissage.
On ne sait pas encore si on fera un robot ou si on fera seulement une étude théorique car cela semble complexe mais très intéressant.
Pensez vous qu'un robot est réalisable?
Avez vous des conseils à me donner ou des liens vers des sites qui expliquent de zero comment cela fonctionne?
merci beaucoup
cordialement
mopi
#36146 robot prevision
Posté par mopi sur 19 novembre 2011 - 06:17 dans Intelligence artificielle
Quelques liens?
merci beaucoup
#35518 robot prevision
Posté par mopi sur 02 novembre 2011 - 08:00 dans Intelligence artificielle
En fait Luj, tu l'avais conseillé à moi même ce sujet^^ et il a été validé donc merci.
Pour la base roulante j'avais déjà fais le robot roby (le tuto) donc j'en avais fabriqué 1 et il marchais plutôt bien.
Seulement je pense quand même acheter une base roulante toute faite parce que la mienne est moyenne. Laquelle me conseillez vous s'il vous plait?
http://www.robotshop.com/robot-chassis-kit-pololu-bleu-solide-3.html
http://www.robotshop.com/chassis-robotique-debutant-v2-dagu-2.html
Je pense que c'est des moteurs CC du coup il va falloir que j'achète sa non?
http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertMoteurCCControlerSensVitesseRotation
Est ce plus dur à piloter les moteurs à CC que des servomoteurs?
Enfin pour mon sujet je ne comprend pas vraiment si le robot a par exemple 6 capteurs de contact et qu'il va dans une première partie devoir se prendre des murs pour comprendre?
Faut t-il aussi ajouter des capteurs infra rouge?
Je ne comprends pas trop ce que le robot va apprendre?
Étant donné que je n'ai pas vraiment le droit de faire un programme qui utilise des capteurs infra rouge directement sinon ce serait de la vision et non de la prévision?
Merci beaucoup
cdt
mopi
#36166 robot prevision
Posté par mopi sur 20 novembre 2011 - 10:59 dans Intelligence artificielle
Disons que je suis très motivé seulement on a beaucoup de travail à côté mais je pense pouvoir gérer çà.
Si ça ne te dérange pas je te tiendrais au courant de mon avancé et j'aurais certainement de nombreuses questions pour toi. Mais promis j'essayerais de me débrouiller un maximum tout seul.
Pourquoi ne pas faire un tuto sur mon expérience de gros gros débutant une fois mon TIPE finit!! Je verrais.
Merci encore
A bientôt pour de nouvelles questions
cordialement
mopi
#36164 robot prevision
Posté par mopi sur 20 novembre 2011 - 05:50 dans Intelligence artificielle
Merci pour t'as réponse Black Templar sa m'a permit de me lancer dans des achats compulsifs^^
J'ai donc acheter la carte romeo j'espère que je n'ai pas fait d'erreur car si j'ai bien compris celel que tu me conseillais était pour controler 1 moteur CC alors que la romeo peut en contrôler 2 c'est bien sa? La voilà:
http://www.robotshop.com/microcontroleur-romeo-tout-dfrobot-atmega-328-2.html
Bon sinon j'ai acheté ce châssis de développement pour plus de facilité:
http://www.robotshop.com/productinfo.aspx?pc=RB-Dfr-16&lang=fr-CA
Et ces encodeurs pour les roues codeuses qui s'adaptent sur les roues du châssis précédent:
http://www.robotshop.com/encodeurs-simple-2pk-robots-3pa-ou-4wd-dfrobot-2.html
J'ai aussi acheté 2 capteurs de contact, 2 capteurs ultrasons, une tourelle avec 2 servos moteurs et un écran lcd pour afficher des petits messages.
Qu'en penses tu? j'ai 1 mois pour mettre tout cela au point théoriquement en dehors de mes cours et j'aurais 2 mois après pour faire le robot...
Tu penses que c'est réalisable?
Et pour la carte romeo, c'est une carte que je met en plus de ma carte arduino uno ou elle l'a remplace carrément?
Et pour les encodeurs est ce qu'il faut autre chose pour pouvoir savoir ou se trouve le robot ou les 2 encodeurs suffisent?
Merci beaucoup, je pense que je vais pouvoir découvrir le monde de la robotique grâce à tes conseils
cordialement
mopi
#32318 roby capteur sharp
Posté par mopi sur 16 juillet 2011 - 01:39 dans Programmation
pas besoin d'utiliser processing.
utilise le programme suivant:const int Voie_0=0; int mesure_brute=0; void setup() { Serial.begin(115200); } void loop(){ mesure_brute=analogRead(Voie_0); Serial.println(mesure_brute); delay(100); }
et ouvre le serial monitor (le bouton le + à doite du logiciel arduino), règles sur 115200
branches ton sharp sur la voie A0 (en l'alimentant comme il faut évidemment)
J'ai brancher mon sharp sur gnd 5v et A0
après je compile et envoie le code dans mon arduino
puis j'ouvre le serial monitor et voilà ce que j'obtiens:
ýþþÿýúúýÿýúÿþúÿýÿýþøþýüúúýüüúýÿýýúýÿþûøøüÿúýüüûÿþþþüýüüüüþÿÿýüÿýÿøúúúû
Voilà je n'y arrive pas le seul point positif c'est que lorsque je met 1 doigt devant le capteur il apparait un ø
Pouvez vous m'expliquer plus en détail s'il vous plaît?
merci beaucoup
#32309 roby capteur sharp
Posté par mopi sur 15 juillet 2011 - 08:20 dans Programmation
Voilà, cela fait bientôt 2 semaines que je tente de réaliser le robot roby mais je n'arrive pas à résoudre un problème.
Je suis arrivé jusqu'aux capteurs UPPD ils marchent parfaitement.
Mais la dernière étape qui consiste à utiliser un capteur IR sharp je n'y arrive pas je ne sais pas si c'est mon programme qui ne va pas ou si c'est que le capteur ne fonctionne pas (est ce que lorsque j'ai soudé les 3 fils j'ai grillé le capteur?)
voilà le bout de programme qui ne fonctionne pas (le robot recul et part à droite indéfiniment) comme s'il détectait un obstacle constemment et j'ai éssayé de changer la valeur 180 en 250 (il recule et va a droite 2 fois puis va tout le temps tout droit) et en 400 (il va tout le temps tout droit) :
void sharp()
{
int v = analogRead(4);
if (v >= 180) // si on est à moins de 10 cm d'un obstacle
{
move(ARRIERE); //on recule
delay(300);
move(DROITE); //puis on part sur la droite
delay(900);
}
else if (v >= 100) //sinon si on est à moins de 30 cm d'un obstacle
{
handleS(SERVOG, VMAX);
handleS(SERVOD, 0); // on ralentit simplement la roue droite pour engager un virage en douceur
delay(1500);
}
}
si quelqu'un voit d'ou peut provenir le problème je l'en remerci
#32310 roby capteur sharp
Posté par mopi sur 15 juillet 2011 - 08:22 dans Programmation
Bonjour,
Voilà, cela fait bientôt 2 semaines que je tente de réaliser le robot roby mais je n'arrive pas à résoudre un problème.
Je suis arrivé jusqu'aux capteurs UPPD ils marchent parfaitement.
Mais la dernière étape qui consiste à utiliser un capteur IR sharp je n'y arrive pas je ne sais pas si c'est mon programme qui ne va pas ou si c'est que le capteur ne fonctionne pas (est ce que lorsque j'ai soudé les 3 fils j'ai grillé le capteur?)
voilà le bout de programme qui ne fonctionne pas (le robot recul et part à droite indéfiniment) comme s'il détectait un obstacle constemment et j'ai éssayé de changer la valeur 180 en 250 (il recule et va a droite 2 fois puis va tout le temps tout droit) et en 400 (il va tout le temps tout droit) :
void sharp()
{
int v = analogRead(4);
if (v >= 180) // si on est à moins de 10 cm d'un obstacle
{
move(ARRIERE); //on recule
delay(300);
move(DROITE); //puis on part sur la droite
delay(900);
}
else if (v >= 100) //sinon si on est à moins de 30 cm d'un obstacle
{
handleS(SERVOG, VMAX);
handleS(SERVOD, 0); // on ralentit simplement la roue droite pour engager un virage en douceur
delay(1500);
}
}
si quelqu'un voit d'ou peut provenir le problème je l'en remerci
Ah oui et aussi les capteur uppd ne fonctionne plus quand je rajoute ce programme
#32313 roby capteur sharp
Posté par mopi sur 15 juillet 2011 - 09:34 dans Programmation
Comment faire pour visualiser les valeurs en processing peux tu me détailler comment procéder ou alors me donner un liens ou ils l'expliquent.
merci
#32320 roby capteur sharp
Posté par mopi sur 16 juillet 2011 - 04:11 dans Programmation
il faut régler la vitesse du serial monitor égale à celle du sketch (en bas à droite du serial monitor) : ici on a 115200 (l'instruction serial.begin(115200); )
ainsi tu devrai recevoir des valeurs entre 0 et 1023, avec un passage à la ligne entre chaque.
ok merci ton programme a parfaitement marché même si mon erreur ne venait pas d'un capteur défectueux, je n'étais pas connecté sur une entrée analogique et c'est ton A0 qui m'a éclairé. merci
Par contre, j'ai essayé de faire quelques tests avec ton programme et je trouve des valeurs différentes du tuto roby pour des distances de 10 cm ou autre est ce normal étant donné que c'est le même capteur?
De plus, mon robot détecte les objet 1 fois sur 2 et des fois au dernier moment voir même après avoir tapé un mur...est ce du à la qualité des capteurs?
Enfin, j'aimerai savoir comment tu as eu l'idée de tester ce programme ? as tu un livre ou une méthode à suivre pour débutant ?
merci pour ton aide
#38114 code robot autonome
Posté par mopi sur 16 janvier 2012 - 02:08 dans Programmation
J'ai 2 capteurs ultrasons 1 à drotie l'autre à gauche du robot et je veux qu'il se balade dans une pièce donc il avance tout le temps sauf si il y a 1 obstacle qui se présente à gauche ou à droite ou dans ce cas là il tourne à droite ou à gauche.
Mais là je ne sais pas pourquoi mon robot tourne sur lui même comme si il y avait tout le temps un obstacle à gauche.
Pourtant les valeurs distance droite et distance gauche valent bien toujours plus de 150cm (j'ai mis mon robot au milieu de mon appartement.)
Merci pour ton aide.
PS: C'est marrant que ce soit toi qui me réponde depuis le début je m'inspire de ton robot j'ai la même base et j'ai acheté la télécommande IR que je vais programmé un peu comme toi dès que je règle le problème des capteurs ultrasons donc merci^^
#38102 code robot autonome
Posté par mopi sur 16 janvier 2012 - 11:46 dans Programmation
Merci pour ta réponse.
En fait le serial monitor je m'en sert seulement pour vérifier si les capteurs ultrasons renvoyaient bien les bonnes valeurs. Et ils renvoient bien une distance (il récupère 1 durée que je divise pour obtenir une distance comme c'est expliqué dans le datasheet des capteurs.)
Je pense vraiment que c'est dans mon "if" qu'il y a 1 problème?
Merci
#38068 code robot autonome
Posté par mopi sur 15 janvier 2012 - 09:33 dans Programmation
Je suis en train de réaliser un robot à apprentissage automatique basé sur la régression linéaire (Le robot n'est à la base pas programmé pour se déplacer dans une pièce mais après l'avoir guidé avec une télécommande il comprend les tensions qu'il doit envoyé dans ses moteurs en fonction des valeurs retournées par ses capteurs.)
Bref, tout d'abord, il faut que je sache programmé le robot de façon à ce qu'il se déplace dans une pièce tout seul (comme roby) pour après passer à la partie intelligence artificielle.
Mais voilà je bloque. Je sais que mes fonctions avancer,reculer,droite,gauche sont juste (j'ai fait un programme ou le robot effectue les déplacements que je lui demande). Je sais aussi que les capteurs ultrasons sont programmés correctement puisque qu'avec le serial monitor j'ai vérifié que les valeurs retournées étaient justes.
C'est dans ma fonction "if" que j'ai des doutes...et j'ai peur aussi que je me trompe quand j'essaye de retourner les valeurs des capteurs obtenues dans les différentes fonctions. Pourtant j'ai vérifié qu'elles sont bien supérieurs à la valeur que je test mais le robot tourne sur lui même à droite.
Voilà le code si quelqu'un pouvait m'aider.
Merci beaucoup
/*--------------------------------------------------------*/
/** Déclaration des prototypes des fonctions **/
/*--------------------------------------------------------*/
// Capteurs US
void requete();
int mesure_distance(char capteur);
int mesure_reponse(char capteur);
void affichage();
//Déplacement
void avancer(char a,char ;
void reculer(char c,char d);
void droite(char e,char f);
void gauche(char g,char h);
/*--------------------------------------------------------*/
/** Déclaration des constantes et variables blobales **/
/*--------------------------------------------------------*/
//capteurs US
const int capteurdroit=7;
const int capteurgauche=8;
long duree;
int distance_cm;
int distancedroite, distancegauche;
//Moteurs
const int E1 = 5; // contrôle la vitesse du moteur 1 (gauche)
const int E2 = 6; // contrôle la vitesse du moteur 2 (droite)
const int M1 = 4; //contrôle la direction (avancer ou reculer) du moteur 1 (gauche)
const int M2 = 7; //contrôle la direction (avancer ou reculer) du moteur 2 (gauche)
/*--------------------------------------------------------*/
/** Début du programme - Setup **/
/*--------------------------------------------------------*/
void setup() {
Serial.begin(9600);
//direction robot
pinMode(M1, OUTPUT); //met la pin du moteur 1 en sortie
pinMode(M2, OUTPUT); //met la pin du moteur 2 en sortie
pinMode(E1, OUTPUT); //met la pin de E1 en sortie
pinMode(E2, OUTPUT); //met la pin de E2 en sortie
//direction robot
}
/*--------------------------------------------------------*/
/** Boucle principale du programme **/
/*--------------------------------------------------------*/
void loop()
{
distancedroite=mesure_distance(capteurdroit); //recupere l'info de distance de l'obstacle du capteur droit
//Serial.println("capteur droit:");
//affichage(); //affiche cette distance
distancegauche=mesure_distance(capteurgauche); //recupere l'info de distance de l'obstacle du capteur droit
//Serial.println("capteur gauche:");
//affichage(); //affiche cette distance
if (distancegauche<20) //si un obstacle se presente à gauche
{
droite (100,100); //on tourne à droite
delay(400); //pendant 0,4 secondes
}
else if (distancedroite<20) //si un obstacle se presente à droite
{
gauche (100,100); //on tourne à gauche
delay(400); //pednant 0,4 secondes
}
else
{
avancer (130,130); //sinon on avance tout le temps
}
//delay(1000); //attend pour un affichage plus clair
}
/*--------------------------------------------------------*/
/** Fonctions relatives aux capteurs US **/
/*--------------------------------------------------------*/
int mesure_distance(char capteur)
{
requete(capteur); //envoie la demande au capteur
mesure_reponse(capteur); //recupere la distance mesurée
return distance_cm;
}
void requete(char capteur)
{
pinMode(capteur,OUTPUT);
digitalWrite(capteur, LOW);
delayMicroseconds(2); //delai d'attente au départ, au niveau 0
digitalWrite(capteur, HIGH);
delayMicroseconds(15); // delai de 15 uS, imposant un niveau '1' au capteur
digitalWrite(capteur, LOW);
}
int mesure_reponse(char capteur)
{
pinMode(capteur,INPUT);
duree=pulseIn(capteur,HIGH); // attend l'impulsion du capteur, et retourne sa durée en microseconde
//if(duree>30000) //test de la condition d'abscence d'obstacle
// duree=0;
distance_cm=duree/58;
return distance_cm;
}
void affichage()
{
// if(duree==0) // Si on a détécté precedemment qu'il n'y a pas d'obstacle, on l'affiche
// Serial.println("Pas d'obstacle!!!!!");
// else // Si non, on affiche la distance
// {
Serial.print(duree);
Serial.println("uS");
Serial.print(distance_cm);
Serial.println("cm");
// }
}
/*--------------------------------------------------------*/
/** Fonctions relatives aux moteurs **/
/*--------------------------------------------------------*/
void avancer(char a,char //avancer
{
analogWrite (E1,a); //PWM Speed Control a permet de changer la vitesse du moteur 1
digitalWrite(M1,HIGH); //M1 avance
analogWrite (E2,;
digitalWrite(M2,HIGH); //M2 avance
}
void reculer(char c,char d) //reculer
{
analogWrite (E1,c); //PWM Speed Control
digitalWrite(M1,LOW); //M1 recule
analogWrite (E2,d);
digitalWrite(M2,LOW); //M2 recule
}
void droite(char e,char f) //tourner à droite
{
analogWrite (E1,e); //PWM Speed Control
digitalWrite(M1,HIGH);
analogWrite (E2,f);
digitalWrite(M2,LOW);
}
void gauche(char g,char h) //tourner à gauche
{
analogWrite (E1,g); //PWM Speed Control
digitalWrite(M1,LOW);
analogWrite (E2,h);
digitalWrite(M2,HIGH);
}
#35229 robot prevision tipe
Posté par mopi sur 23 octobre 2011 - 11:04 dans Aide pour projets scolaire
Yves, Black Templar a bien répondu a ta question si tu as des idées maintenant je suis preneur
Merci pour ta réponse Black Templar je vais regarder sur le net tous les thèmes que tu me proposes car je n'en connais pas un seul :S
Merci beaucoup
cdt
mopi
#35222 robot prevision tipe
Posté par mopi sur 23 octobre 2011 - 03:49 dans Aide pour projets scolaire
Dans le cadre des Tipe, j'aimerai réaliser un robot. Le sujet est Prévision(aléa,déterminisme,indétermination,risque,systèmes évolutifs,validation-écart).
Mon premier projet a été refusé je voulais faire un robot qui évite les obstacles et les trous et pour le fun faire une matrice a LED sur son dos qui écrit les mots "obstacles" ou "trous".
Seulement les responsable ont jugés que ce n'était pas de la prévision mais de la vision!!!Donc je dois changer de sujet mais je n'ai pas d'autre idée j'aimerai rester dans le domaine de la robotique.
Imaginons que je fasse un robot qui doit aller d'un point A à un point B. au milieu du parcours je le dévie légèrement de sa trajectoire et le but du robot est de recalculer le trajet pour aller au point B il doit donc corriger sa trajectoire..pensez vous que c'est dans le thème prévision et que c'est réalisable?
Avez vous d'autres idées s'il vous plait?
merci
cdt
mopi
#35236 robot prevision tipe
Posté par mopi sur 24 octobre 2011 - 09:22 dans Aide pour projets scolaire
Bonsoir,
Certes le filtre de Kalman est super (et devrait être au niveau d'un bon élève de maths spé, fainéant s'abstenir). Au vu de mon expérience dans l'encadrement de TIPE, je conseillerais de choisir une bonne mise en application concrète reposant sur la conception d'un système plutôt que l'implémentation d'un filtre connu..
Ma proposition est de faire un robot qui évite les obstacles, en choisissant la direction en fonction de son historique. Tu en fais un système à apprentissage qui choisira la direction d'évitement (à droite ou à gauche) en fonction de ce qu'il a déjà rencontré. Il y a plein de façons de modéliser le problème et de choisir un algorithme, à toi de trouver le tien, ça aura plus de valeur pour ton TIPE.
Bonjour,
Alors pour information je suis en prepa intégrée et on est loin loin loin d'avoir le niveau d'élève de math spé.
Je ne connais rien sur le filtre de Kalman mais pourquoi pas essayer?
Enfin pour le côté "système à apprentissage" du robot, pensez vous que c'est réalisable pour un débutant parce que j'ai fait le robot roby et j'en ai bavé pour y arriver pourtant tout est bien expliqué.
merci
cdt
mopi
#33796 Réalisation du robot Roby - carte arduino commande moteur
Posté par mopi sur 02 septembre 2011 - 06:34 dans Mécanique
Etant un gros débutant j'avais finalement acheté 2 servomoteurs pour pouvoir suivre le tuto...
Seulement maintenant que je commence à comprndre comment sa marche avec des servo j'aimerais bien y arriver aussi avec des moteurs cc.
Je n'ai aucune idée du rôle du L293 mais j'ai une question
si je branche mon moteur cc sur mon arduino en 6V il tourne dans un sens, maintenant si j'inverse les fils il tourne dans l'autre sens.
Alors pourquoi ne pas brancher 2 fils sur la borne + du moteur et 2 autres sur la borne - ainsi chaque borne du moteur est aussi bien reliée au +6v qu'à la masse...il ne reste plus qu'après à décider si on décide de l'alimenter dans un sens ou dans l'autre pour reculer ou avancer??? pourquoi à ton besoin du L293?
merci beaucoup
#32013 Réalisation du robot Roby - carte arduino commande moteur
Posté par mopi sur 30 juin 2011 - 03:36 dans Mécanique
Je suis débutant et je voulais me lancer dans la réalisation du robot roby
J'ai récupéré toutes les pièces sur des vieilles voitures télécommandées.
Pour ce qui est des moteurs, je les ai récupéré sur un modèle d'une voiture qui avait 2 moteurs indépendant puisque la direction de cette voiture se faisait non pas par 2 roues avant directionnelles mais 2 roues arrières indépendantes. Voici le modèle http://img.2ememain.be/f/normal/81457264_1-voiture-telecommandee-ricochet.jpg
Les moteurs sont des Mabuchi 370
Mais voilà j'ai rencontré un problème que je n'arrive pas à résoudre depuis 1 semaine.
Les moteurs ne possèdent que 2 fils et non pas 3 comme sur le tuto de roby (site robotix)
Je ne sais donc pas comment faire mes branchements sur ma carte arduino pour pouvoir les piloter avec seulement 2 fils.
Quand je les branche je peux les faire tourner en même temps c'est tout mais je ne peux pas les arrêter autrement qu'en appuyant sur l'interrupteur.
Est ce qu'il faut absolument acheter des servomoteurs avec un 3ème fil de commande ou est ce qu'avec ces moteurs à 2 fils c'est possible?si oui est ce que le code proposé dans le tuto va changé?
merci beaucoup
- Robot Maker
- → Contenu de mopi
- Privacy Policy