1- La commande du robot 2- Les algorithmes implémentés au robot

Plan
1- La commande du robot
2- Les algorithmes implémentés au robot
2.1 Algorithme1 : calcul de l’angle et de la distance d’erreur
2.2 - Algorithme2 : utilisation du repère de Frenet
3- Comment utiliser et envoyer ces algorithmes au robot ?
3.1- La connexion par wifi au robot en mode ad-hoc
3.2- La Compilation des algorithmes en utilisant le cross-compiler
1- La commande du robot
Pour commander le robot, nous disposons d’un buffer de 2 octets :
- un octet pour les roues gauches, buffso_rcv [0]; //Commande de la partie gauche du robot
- un octet pour les roues droites. buffso_rcv [1]; //Commande de la partie droite du robot
Figure 1 : buffer de commande du robot
On peut en déduire que pour contrôler le robot on a :
Bit7 : Permet d’activer le PID des roues.
Bit6 : sens des roues (`1’ : avance,`0’ : arrière ).
Bit5 à Bit0 : vitesse des roues (0 à 60 : en mode libre, 0 à 40 : en mode PID)
On active le mode PID pour le contrôle de la vitesse pendant le trajet, donc on met 1 dans le bit7.
On observe que quand la vitesse des roues passe à plus de 10tick/41ms et quand elles roulent
d’arrière en avant et vise versa, le robot se plante.
2 - Les algorithmes implémentés au robot
Pour commander le robot on a implanté deux algorithmes:
2.1 Algorithme 1 : calculer l’angle et la distance d’erreur
Calculer l’équation de la droite en utilisant la thode du moindre carrée.
Détecter le sens de rotation du robot (gauche, droite)
Calculer l’angle θr qui est l’angle entre la droite d et l’axe X.
Calculer θe et D, tel que θe =90- θr et D la distance entre or et P.
On calcule la commande suivante :
C= A*θe + B*D ; où A et B est de valeur empirique on les a choisi pendant l’essai pour
stabiliser le mouvement du robot, afin de lui permettre de suivre la ligne blanche.
Si la valeur C est supérieure à 10, le virage effectué par le robot est grand donc la
vitesse de l’une de deux roues est plus importante que l’autre et le sens de rotation
des deux roues est opposé.
Si la valeur C est inferieure à 10, le virage effectué par le robot est petit donc la
vitesse de l’une de deux roues est plus importante que l’autre.
Si la valeur C est égale à 0, le robot avance tout droit donc la vitesse des deux
roues est égale.
Envoyer la commande aux 2 roues.
2.2 Algorithme 2 : Utilisation de la méthode de Frenet
Calculer l’équation de la droite en utilisant la thode du moindre carrée.
Détecter le sens de rotation du robot (gauche, droite)
Calculer l’angle θr qui est l’angle entre la droite d et l’axe X.
Calculer θe et D, tel que θe =90- θr et d la distance minimum entre P et la droite D.
La loi de commande a trouvé est :
Choisir une vitesse linéaire constante de robot (V)
Calculer φd et φg
φg = (V-L*w)/r r : est le rayon du chaque roue
φd = (V+L*w)/r
Choisir k(d, θe) en empirique pour stabiliser le mouvement du robot et suivre la ligne
blanche.
3-Comment utiliser et envoyer ces algorithmes au robot ?
3.1- La connexion par wifi au robot en mode ad-hoc
Changer la configuration de l’ordinateur :
Changer le fichier etc/network/interfaces
Ouvrir le fichier par la commande suivante :
Copier les donnes suivantes dans le fichier interfaces et on le sauvegarde:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.4
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.0.255
auto eth1
iface eth1 inet static
wireless-mode ad-hoc
wireless-channel 4
wireless-essid wifibot
address 192.168.1.112
netmask 255.255.255.0
gateway 192.168.1.113
Configuration de la partie Ethernet
Configuration de la partie Wifi et en
l’activant en mode ad-hoc
1 / 7 100%

1- La commande du robot 2- Les algorithmes implémentés au robot

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !