Etape 5: Contrôle des bras du Robot
4.1 human-computer interaction
Étant donné que ESPduino est déjà incorporé la fonction Telnet, nous pouvons réaliser l’interaction homme-machine, vérifier l’état de fonctionnement, position actuelle, la vitesse du courant et ainsi de suite, par Telnet. Dans le même temps, nous pouvons définir le modèle de mouvement pour le single ou multi-axes et l’emplacement de mouvement.
Quand ESPduino se connecte au routeur sans fil, le PC peut se connecter l’adresse IP de ESPduino par Telnet outils (par exemple, SecureCRT). Le port de connexion est de 23, qui est illustré à la Figure 6.
Par Telnet, nous pouvons contrôler le bras robot de
les commandes suivantes, qui sont définis comme suit.
« h »: Imprimez des informations d’aide ;
« z »: laissez les axes de bras de robot retour à zéro emplacement (p. ex., l’emplacement par défaut initial défini dans les sections ci-dessus), qui sont définies lorsque nous mettons en place la matrice D-H. Puis après mise sous tension, l’emplacement de l’objection de conscience est 0 pour chaque axe, comme illustré à la Figure 7.
« p »: l’état actuel du robot d’impression
bras, comme le montre l’image suivante. Les informations incluent État, vitesse de réglage, angle actuel pour chaque axe, l’angle de l’objet et matrice de la position courante pour l’actionneur de la fin.
« d »: vérifier ou définir la vitesse du courant, dont la catégorie de vitesse correspond à 1 ~ 10, où « 1 » est la plus faible vitesse, et « 10 » est la vitesse plus rapide.
« c »: garder la position actuelle de l’actionneur de la fin et laissez actionneur déplacer ainsi que l’axe x, axe y et z en coordonnées cartésiennes, respectivement. L’unite est mm.
« t »: garder la position actuelle de l’actionneur et puis faire actionneur avancer avec l’axe x, axe y et z dans les coordonnées de l’outil, respectivement. L’unite est mm.
« s »: mouvement de l’axe unique. Au début, chaque axe est à zéro l’emplacement et l’angle est définie comme 0, le champ d’application est-90 degré ~ 90 degrés. Le positif et le négatif est décidée par la règle de la main droite.
« w »: accédez à l’emplacement conçu.
« g »: contrôler la pince (patte). Par exemple, g:45 est destiné à laisser la patte à ouvrir l’angle de 45 degrés par contrôle le servo.
Comme pour la LED 3-couleurs intelligentes, DoArm le code source peut être fourni configuration web et OTA mise à jour de fonction, comme illustré à la Figure 7.
4.2 étiquette et initialisation
Lorsque vous vous connectez le câble de rallonge de servo pour le jury conduit au hasard, tout d’abord, il faut laisser à chacun des axes du robot bras est correspondant à la chaîne sur le jury entraîné, respectivement. Puis, confirmez l’excursion pour l’emplacement de zéro ; Enfin, confirmer la portée autorisée de terrassement.
(1) confirmer le numéro du canal sur le jury entraîné pour chaque bras robotisé
Lorsque vous connectez le câble de rallonge de servo pour le jury conduit, il est très difficile de différencier le nombre correspondant au nombre de canaux au Conseil d’administration. Par conséquent, nous il suffit d’insérer le câble de rallonge de servo pour le Conseil d’administration au hasard, comme illustré à la Figure 8.
Figure 8 câble de rallonge de Servo sur le jury conduit
Dans le code source, laisser la fonction initParseData() définie partialité [6] {0,0,0,0,0,0} et le champ d’application mobile pour chaque axe est de-90 ° ~ 90 °.
partialité se déplaçant à distance pour chaque axe
flotteur de partialité [6] = {0, 0, 0, 0, 0, 0} ;
arm.setServoBias (biais, 6) ;
portée pour chaque axe de déplacement
arm.setServoRange (-90, 90, -90, 90, -90, 90, -90, 90, -90, 90, -90, 90,) ;
arm.setChannel() soit la voie d’accès réel. Comme illustré à la Figure 8, la voie d’accès est 1,3,4,9,11,13, respectivement, puis laissez
arm.setChannel (1, 3, 4, 9, 11, 13) ;
Compilez le code et télécharger ESPduino, ouvrez l’interface homme-ordinateur à l’aide de Telnet, utilisez la commande "Start-up, y" pour confirmer la relation correspondante pour chaque axe. Par exemple,
En utilisant "s: 1, 10", laissez axe 5 déplacer, puis canal "1", écrit dans le 5ème axe ;
En utilisant « s:2, 10 », laisse déplacer axe 6, puis canal "3", écrit dans l’axe 6 ;
En utilisant "3, 10", laissez le déplacement axe 4, puis canal "4", écrit dans le 4ème axe ;
En utilisant « s:4, 10 », laissez axe 2 déménagement, puis canal "9", écrit dans le 2ème axe ;
En utilisant « s:5, 10 », permettre de déplacer l’axe 1 et puis canal "11" écrit dans le 1er axe ;
En utilisant "s: 6, 10", laisse déplacer l’axe 3, puis canal "13", écrit dans l’axe 3 ;
Ensuite, nous pouvons obtenir la relation correspondante droite finale entre l’axe du bras de robot et le canal sur la Commission conduite, comme le montre la fonction suivante.
arm.setChannel (11, 9, 13, 4, 1, 3) ;
la pince étant seul, laisser insérer un canal inactif et réglez-le en
bras. setGripperChannel () 。
définir le nombre de canaux de la pince
arm.setGripperChannel(14) ;
(2) confirment l’excursion (pour l’emplacement du zéro de l’axe de chaque)
Après confirmer que la relation correspondante entre l’axe et le canal, le code source est nécessaire pour re-mise à jour et télécharger dans le ESPduino s’exécute de nouveau. En utilisant la commande Telnet, nous pouvons confirmer la partialité de l’excursion pour chaque axe.
Tout d’abord, le jeu de la vitesse comme le grade le plus bas, la commande est d:1, 1
Figure 9 définir le grade le plus bas de vitesse
Puis, en utilisant "Start-up, y" laisser mono-axe pour déplacer l’emplacement de zéro. En général, le zéro emplacement (emplacement moyen) est o. Using "Start-up, y" pour confirmer si l’axe est situé à zéro emplacement. Si ne pas, puis utilisez la commande « s » pour laisser cet axe à zéro emplacement. Par exemple, « s: 1, 65 » est dénoté que cet axe doit passer de 65 degrés pour obtenir l’emplacement de zéro. Dans ce cas, la commande est listée comme suit.
excursion pour emplacement moyen
flotteur de partialité [6] = {65, 5, -8, 5, 0, 0} ;
arm.setServoBias (biais, 6) ;
Puis après la compilation, le bras du robot sera rétablie à zéro l’emplacement automatiquement, comme illustré à la Figure 10.
Figure 10 DoArm à l’état initial
(3) confirment l’étendue mobile pour chaque axe
Après la confirmation pour zéro emplacement, nous pouvons confirmer la portée mobile pour chaque axe en utilisant "Start-up, y" avec Telnet l’interaction homme-machine. En raison des restrictions, la portée d’angle pour servo a la valeur standard-90 ° ~ 90 °. Dans ce cas, le champ d’application mobile est la suivante. Notez que, si la portée du mouvement est dépassée, alors le servo serait arrêté.
déplacement de portée pour chaque axe dans ce cas
arm.setServoRange (-90, 30, -30, 60, -40, 35, -90, 90, -50, 90, -80, 80) ;
(4) contrôle pour pince
Le contrôle de pince est distinct pour les 6 autres axes, donc nous pouvons utiliser la commande "g:x" pour contrôler la pince, comme illustré à la Figure 11.
(a) position pour pince à 0 degré
(b) position pour pince à 20 degré
(c) position pour pince à 45 degrés
Figure 11 contrôle pour pince
contrôle de 4,3 mono-axe
Dans l’interface Telnet, nous pouvons utiliser "Start-up, y" commande pour contrôler l’axe unique, où x représente l’axe de mouvement conçu, portée est 1 ~ 6 ; y désigne l’angle absolu, la portée est celle permise par chaque axe avec le type float. Après chaque action, l’état actuel des bras du robot peut être affichée automatiquement.
Figure 12 la sortie pour le mouvement de l’axe unique
4.4 conjointement de contrôle
Conjointement le contrôle désigne que les 6 axes de mouvement en même temps. Il dispose de 3 modes: 1. continue le mouvement de point fixe ; 2. mouvement du déclencheur de fin dans les coordonnées cartésiennes ; 3. mouvement du déclencheur de fin dans les coordonnées de l’outil.
(1) continue le mouvement de point fixe
Nous fournissons les méthodes arm.setWaitPosition () et arm.gotoWaitPosition(), qui occupe l’emplacement fixe et passer à cet endroit, respectivement. Dans notre code source, nous fournissons le code source pour 9 contrôlent conjointement. DoArm peut être déplacé par "w:x", où "x" est 0 ~ 8. En particulier, la commande "w:9" peut commencer 9 mouvements de continuer. Cette vidéo peut être vu à :
http://v.youku.com/v_show/id_XMTQ5ODk0NzEyMA==.html?from=Y1.7-1.2
(2) mouvement de fin actionneur en coordonnées cartésiennes
La cinématique inverse fonction calcReverseKinematics() peut être fourni pour calculer la position conçue et la position de changement d’axe de l’actionneur de fin du bras robot. En particulier, Telnet interaction fournit la commande le long avec x, y, axe de z en coordonnées cartésiennes ; par exemple, « c:x, y, z", où x, y, z désigne l’augmentation le long avec x, y, axe z avec unir mm et type de flotteur.
Par exemple, si laisser finir l’actionneur se déplacer de 20mm avec axe z, la commande est "c: 0, 0, 20", avant de revenir "c: 0, 0, -20". Le bras du robot serait déplacer 20mm en position verticale et puis se déplacer de 20mm dans le sens inverse. Enfin, le bras reviendrait à l’emplacement d’origine. A cette époque, l’emplacement est égal à zéro. Quand a reçu la commande "c: 0, 0, 20", l’emplacement est (0.000,2.358,-11.361,0.000,9.003,0.000) ; Après cela, si exécuter la commande « c: 0, 0, -20 », l’emplacement est (0,000,-0.000, 0,000, 0,000,-0.000, 0,000), comme illustré à la Figure 13.
Figure 13 mouvement en coordonnées cartésiennes
(3) mouvement du déclencheur de fin dans les coordonnées de l’outil
Similaire au mouvement en coordonnées cartésiennes, la différence est que l’actionneur se déplace dans les coordonnées de l’outil (correspondant à la O6). La commande est « t, y, z », où x, y, z sont les increasements avec x, y, axe z avec unissent mm et type de flotteur.
Par exemple, laisser l’actionneur de fin se déplacer de 20mm à l’état initial avec axe X. La commande est "t:20, 0, 0", et retour à l’emplacement d’origine est "t:-20,0,0". Ensuite, l’actionneur de fin serait d’abord déplacer 20mm avec axe x et puis revenir 20mm en sens inverse. Nous pouvons analyser les résultats dans l’interface Telnet. Depuis l’emplacement initial 0,000, quand a reçu la commande "t:20, 0, 0", l’emplacement est (0.000,2.358,-11.361,0.000,9.003,0.000) ; Après cela, si exécuter la commande « t:-20,0,0 », l’emplacement est (0,000,-0.000, 0,000, 0,000,-0.000, 0,000).
Figure 14 mouvement dans l’outil coordonne