Un mémo pour créer un robot à liaison parallèle, également connu sous le nom de robot delta. Édition douce.
Dans l'édition mécanique, nous avons utilisé des services de CAO 3D et d'impression 3D pour créer le corps principal d'un robot à liaison parallèle composé de trois servomoteurs. Cette fois, j'écrirai sur le logiciel que j'ai créé pour contrôler le servomoteur de Python et le déplacer en tant que robot.
Lors de la commande d'un robot, la procédure d'apprentissage du mouvement au robot, qui est généralement appelée "apprentissage", est exécutée, puis le robot est automatiquement exécuté comme appris. Il existe trois principaux types d'enseignement. Cette fois, j'ai décidé de mettre en œuvre tout cela.
Types d'enseignement | La description |
---|---|
Enseignement en ligne | À l'aide de la télécommande qui contrôle le robot, apprenez le mouvement tout en déplaçant réellement le robot. |
Enseignement hors ligne | Déplacez le robot sur le simulateur pour apprendre le mouvement. |
Enseignement direct | Touchez le robot à mains nues pour apprendre les mouvements directs. |
C'est un diagramme de classes d'un module écrit en Python.
Le rôle de chaque classe.
nom de la classe | rôle |
---|---|
PS4Controller | Une classe qui utilise le module pygame pour acquérir diverses informations de fonctionnement du contrôleur PS4 DualShock4. Les informations sur le stick analogique sont utilisées pour indiquer le mouvement tridimensionnel du robot delta. Le bouton ○ △ □ × permet de changer le mode de visualisation de la zone de dessin du modèle de simulation du robot delta. |
AX12Driver | dynamixel_Une classe qui contrôle le servomoteur Dynamixel AX12 à l'aide du module sdk. En contrôlant le positionnement des trois moteurs de serveur qui composent le robot Delta, le robot Delta fonctionne vers le haut, le bas, la gauche et la droite. |
DeltaModel | Une classe qui fournit une logique de calcul pour la cinétique des robots delta et la cinétique inverse. |
DeltaBase | Une classe abstraite qui fournit les fonctions couramment requises pour contrôler les robots delta. En plus d'initialiser diverses classes, il fournit une fonction pour dessiner en permanence des graphiques 3D de formes de robots à l'aide de matplotlib. |
DeltaTeaching | Une classe abstraite qui fournit les fonctions couramment requises pour l'enseignement des robots Delta. Les informations de position du servomoteur pendant l'opération d'apprentissage sont enregistrées dans la mémoire et sorties dans un fichier à la fin du programme. Le format de sortie est JSON. |
DeltaTeachingOffline | Une classe pour l'enseignement hors ligne des robots Delta. À partir des informations de fonctionnement obtenues à partir du PS4Controller, la vitesse de déplacement dans chaque direction axiale est acquise et la position actuelle du robot est calculée. Convertissez les informations de position en informations d'angle du moteur à l'aide de la fonction de calcul de cinématique inverse de DeltaModel. Une fonction héritée de DeltaBase qui trace l'état du robot mis à jour sur un modèle virtuel sur un graphe 3D. |
DeltaTeachingOnline | Une classe pour l'enseignement en ligne des robots Delta. Le modèle virtuel est contrôlé à l'aide de la fonction héritée de la classe DeltaTeachingOffline, et l'instruction de contrôle de position du servomoteur est donnée au pilote AX12 afin que le modèle virtuel et la machine réelle soient dans le même état. |
DeltaTeachingDirect | Une classe pour l'enseignement direct des robots Delta. Acquiert les informations de position actuelle (angle) du servomoteur à partir de l'AX12Driver et les enregistre. Dans le même temps, la fonction héritée de DeltaBase reflète les mêmes informations dans le modèle virtuel sur le graphe 3D. |
DeltaPlayerOffline | Une classe qui exécute automatiquement les robots delta hors ligne. En entrant les données chronologiques des informations de position du servomoteur enregistrées au moment de divers enseignements, le mouvement appris est reproduit avec un modèle virtuel sur un graphique 3D. |
DeltaPlayerOnline | Une classe qui exécute automatiquement les robots Delta en ligne. Le modèle virtuel est contrôlé à l'aide de la fonction héritée de DeltaPlayerOffline, et l'instruction de contrôle de position du servomoteur est donnée au pilote AX12 afin que le modèle virtuel et la machine réelle soient dans le même état. |
https://github.com/kizitorashiro/deltarobot
C'est le site auquel j'ai fait référence lors de sa mise en œuvre.
article | URL |
---|---|
Cinématique inverse des robots delta | https://tony-mooori.blogspot.com/2016/09/kinematics.html |
Cinématique du robot Delta | http://hypertriangle.com/~alex/delta-robot-tutorial/ |
Cinématique du robot Delta | https://github.com/awesomebytes/delta_robot/blob/master/src/delta_kinematics.py |
PS4 DualShock4 | https://gist.github.com/claymcleod/028386b860b75e4f5472 |
Spécifications du servomoteur Dynamixel | http://support.robotis.com/jp/product/dynamixel/ax_series/dxl_ax_actuator.htm |
Pilote de servomoteur Dynamixel | https://github.com/ROBOTIS-GIT/DynamixelSDK |
Utilisez la manette PS4 comme télécommande pour déplacer le robot Delta. Le modèle virtuel sur le PC et la machine réelle fonctionnent en synchronisation. Le modèle virtuel peut être affiché avec un point de vue différent en passant en mode d'affichage.
En utilisant le contrôleur PS4 comme télécommande, vous pouvez contrôler le modèle virtuel du robot Delta et en même temps enregistrer les informations de position sous forme de données de série chronologique. Après cela, le robot rejoue automatiquement le même mouvement.
Déplacez le robot en le touchant directement avec vos mains. Chaque fois que la position du robot change, ces informations sont enregistrées sous forme de données chronologiques. Après cela, le robot rejoue automatiquement le même mouvement.
Recommended Posts