Robot Workbench/fr: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
(41 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
[[Image:KukaKR16FreeCAD.jpg|right|400px]] |
|||
{{Docnav/fr |
|||
|[[Reverse Engineering Workbench/fr|Atelier inverser l’ingénierie]] |
|||
|[[Ship Workbench/fr|Atelier navire]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Ship.svg |
|||
}} |
|||
<div class="mw-translate-fuzzy"> |
|||
{{Caption|align=center|Icone de l'atelier FreeCAD Robot}} |
|||
{{VeryImportantMessage|L'atelier FreeCAD Robot n'est plus maintenu. SVP, signalez dans le forum FreeCAD si vous êtes intéressés à maintenir cet atelier.}} |
|||
</div> |
|||
== Introduction == |
|||
[[Image:Workbench_Robot.svg|thumb|128px|Robot workbench icon]] |
|||
L'atelier de simulation de robot [[Image:Workbench_Robot.svg|24px]] permet de simuler les [[Robot 6-Axis/fr|robots à 6 axes]] industriels, comme par exemple [http://kuka.com/ Kuka]. |
|||
L'atelier de simulation de robot permet de simuler les [[Robot 6-Axis/fr|robots à 6 axes]] industriels, comme par exemple [http://kuka.com/ Kuka]. |
|||
Vous pouvez accomplir les tâches suivantes : |
Vous pouvez accomplir les tâches suivantes : |
||
* mettre en place un environnement de simulation avec un robot et des pièces de travail |
* mettre en place un environnement de simulation avec un robot et des pièces de travail |
||
Line 9: | Line 25: | ||
* exporter la trajectoire vers un fichier programme de robot |
* exporter la trajectoire vers un fichier programme de robot |
||
Pour commencer, essayez le [[Robot tutorial]] et voyez l'interface de programmation dans le fichier d'exemple [https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/RobotExample.py. RobotExample.py] . |
|||
Vous pouvez trouver des exemples ici : |
|||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py fichiers d'exemple] ou essayez |
|||
{{TOCright}} |
|||
le [[Robot tutorial/fr|tutoriel Robot]]. |
|||
[[Image:Robot_Workbench_example.jpg|500px]] |
|||
== Outils == |
== Outils == |
||
Line 19: | Line 36: | ||
Les outils pour créer et gérer les robots à 6 axes |
Les outils pour créer et gérer les robots à 6 axes |
||
<div class="mw-translate-fuzzy"> |
|||
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/fr|Créer un robot]]: Insère un nouveau robot dans la scène |
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/fr|Créer un robot]]: Insère un nouveau robot dans la scène |
||
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/fr|Simuler une trajectoire]]: Ouvre le dialogue de simulation afin de régler une simulation |
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/fr|Simuler une trajectoire]]: Ouvre le dialogue de simulation afin de régler une simulation |
||
Line 24: | Line 42: | ||
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/fr|Définir la positon de départ]]: Définit la position de départ d'un robot |
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/fr|Définir la positon de départ]]: Définit la position de départ d'un robot |
||
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/fr|Restaurer la positon de départ]]: Retourne le robot à sa positon de départ |
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/fr|Restaurer la positon de départ]]: Retourne le robot à sa positon de départ |
||
</div> |
|||
=== Trajectoires === |
=== Trajectoires === |
||
Les outils pour créer et manipuler les trajectoires. Il y en a deux sortes, paramétriques et non-paramétriques. |
Les outils pour créer et manipuler les trajectoires. Il y en a deux sortes, paramétriques et non-paramétriques. |
||
<div class="mw-translate-fuzzy"> |
|||
==== non parametric trajectories ==== |
|||
==== Trajectoire non-paramétriques ==== |
|||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Inserts a new empty trajectory-object into the scene |
|||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/fr|Créer une trajectoire]]: Créé une nouvelle trajectoire vide |
|||
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default |
|||
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/fr|Définir l'orientation par défaut]]: Règle l'orientation par défaut des points de passage |
|||
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: Set the default values for way-point creation |
|||
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues/fr|Définir les paramètres de vitesse par défaut]]: Règle les valeurs par défaut pour la création de points de passage |
|||
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory |
|||
* [[Image: |
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/fr|Insérer dans la trajectoire]]: Insère un point de passage de la position actuelle du robot dans la trajectoire |
||
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/fr|Insérer dans la trajectoire]]: Insère un point de passage de la position actuelle du pointeur de la souris dans la trajectoire |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
==== Paramétriques ==== |
|||
==== Trajectoire paramétriques ==== |
|||
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/fr|Générer une trajectoire à partir d'un ensemble d'arêtes]]: Insère un nouvel objet qui dont les arêtes formeront une trajectoire |
|||
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/fr|Générer une trajectoire à partir d'un ensemble d'arêtes]]: Insère un nouvel objet dont les arêtes formeront une trajectoire |
|||
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/fr|Habiller une trajectoire]]: Créé un habillage qui supplante certaines propriétés d'une trajectoire |
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/fr|Habiller une trajectoire]]: Créé un habillage qui supplante certaines propriétés d'une trajectoire |
||
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/fr|Grouper et connecter des trajectoires]]: |
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/fr|Grouper et connecter des trajectoires]]: Crée un composé (compound) et connecte un ensemble de trajectoires |
||
</div> |
|||
== |
==Script== |
||
Voir [[Robot API example/fr|Robot API exemple]] pour une description des fonctions utilisées pour modéliser les déplacements du robot. |
|||
Cette section est générée à partir de : https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
|||
Vous pouvez utiliser ce fichier directement si vous le désirez. |
|||
Voici un exemple montrant comment utiliser la classe de robot de base Robot6Axis qui représente un robot industriel à 6 axes. L'atelier Robot dépend de l'atelier [[Part Module/fr|Pièce]], mais pas des autres modules. Il fonctionne principalement avec les types de base Placement, Vecteur et Matrice. Nous n'avons donc besoin que de : |
|||
{{Code|code= |
|||
from Robot import * |
|||
from Part import * |
|||
from FreeCAD import * |
|||
}} |
|||
=== Éléments de base robot === |
|||
Créer le robot. Si vous ne spécifiez pas une autre cinématique, il devient un Puma 560 |
|||
{{Code|code= |
|||
rob = Robot6Axis() |
|||
print rob |
|||
}} |
|||
Accès à l'axe et au Tcp. Les axes vont de 1-6 et sont exprimés en degrés : |
|||
{{Code|code= |
|||
Start = rob.Tcp |
|||
print Start |
|||
print rob.Axis1 |
|||
}} |
|||
Déplacer le premier axe du robot: |
|||
{{Code|code= |
|||
rob.Axis1 = 5.0 |
|||
}} |
|||
Le Tcp a changé (cinématique avant) |
|||
{{Code|code= |
|||
print rob.Tcp |
|||
}} |
|||
Déplacer le robot à sa position de départ (cinématique inverse): |
|||
{{Code|code= |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
}} |
|||
De même avec l'axe 2: |
|||
{{Code|code= |
|||
rob.Axis2 = 5.0 |
|||
print rob.Tcp |
|||
rob.Tcp = Start |
|||
print rob.Axis2 |
|||
}} |
|||
Points de passage : |
|||
{{Code|code= |
|||
w = Waypoint(Placement(),name="Pt",type="LIN") |
|||
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool |
|||
}} |
|||
En générer davantage. La trajectoire trouve toujours automatiquement un nom unique pour les points de passage |
|||
{{Code|code= |
|||
l = [w] |
|||
for i in range(5): |
|||
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
Créer une trajectoire |
|||
{{Code|code= |
|||
t = Trajectory(l) |
|||
print t |
|||
for i in range(7): |
|||
t.insertWaypoints(Waypoint(Placement(Vector(0,0,i*100+500),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
Afficher une liste de tous les points de passage : |
|||
{{Code|code= |
|||
print t.Waypoints |
|||
del rob,Start,t,l,w |
|||
}} |
|||
=== Travailler avec les objets du document === |
|||
Travailler avec les objets du document robot : d'abord créer un robot dans le document courant |
|||
{{Code|code= |
|||
if(App.activeDocument() == None):App.newDocument() |
|||
App.activeDocument().addObject("Robot::RobotObject","Robot") |
|||
}} |
|||
Définir la représentation visuelle et la définition cinématique (voir [[Robot 6-Axis/fr|robot à 6 axes]] et [[VRML Preparation for Robot Simulation/fr|Préparation VRML pour simulation de robot]] pour plus de détails) |
|||
{{Code|code= |
|||
App.activeDocument().Robot.RobotVrmlFile = App.getResourceDir()+"Mod/Robot/Lib/Kuka/kr500_1.wrl" |
|||
App.activeDocument().Robot.RobotKinematicFile = App.getResourceDir()+"Mod/Robot/Lib/Kuka/kr500_1.csv" |
|||
}} |
|||
La positon de départ des axes (seulement celles qui diffèrent de 0) |
|||
{{Code|code= |
|||
App.activeDocument().Robot.Axis2 = -90 |
|||
App.activeDocument().Robot.Axis3 = 90 |
|||
}} |
|||
Récupérer la position Tcp |
|||
{{Code|code= |
|||
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp |
|||
}} |
|||
Déplacer le robot |
|||
{{Code|code= |
|||
pos.move(App.Vector(-10,0,0)) |
|||
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos |
|||
}} |
|||
Créer un objet de trajectoire vide dans le document courant |
|||
{{Code|code= |
|||
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") |
|||
}} |
|||
Obtenir la trajectoire |
|||
{{Code|code= |
|||
t = App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
Ajouter la position TCP actuelle du robot à la trajectoire |
|||
{{Code|code= |
|||
StartTcp = App.activeDocument().Robot.Tcp |
|||
t.insertWaypoints(StartTcp) |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
Insérer quelques points de passage supplémentaires et le point de départ à nouveau à la fin : |
|||
{{Code|code= |
|||
for i in range(7): |
|||
t.insertWaypoints(Waypoint(Placement(Vector(0,1000,i*100+500),Vector(1,0,0),i),"LIN","Pt")) |
|||
t.insertWaypoints(StartTcp) # end point of the trajectory |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
=== Simulation === |
|||
À compléter... |
|||
=== Exporter la trajectoire === |
|||
La trajectoire est exportée par Python. Cela veut dire que pour chaque type de contrôle cabinet, il y a un module post-processeur Python. Voici en détail la description du post-processeur Kuka : |
|||
{{Code|code= |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
}} |
|||
Et c'est ainsi que ça se fait : |
|||
{{Code|code= |
|||
for w in App.activeDocument().Trajectory.Trajectory.Waypoints: |
|||
(A,B,C) = (w.Pos.Rotation.toEuler()) |
|||
print ("LIN {X %.3f,Y %.3f,Z %.3f,A %.3f,B %.3f,C %.3f} ; %s"%(w.Pos.Base.x,w.Pos.Base.y,w.Pos.Base.z,A,B,C,w.Name)) |
|||
}} |
|||
== Tutorials == |
== Tutorials == |
||
* [[Robot 6-Axis/fr|Robot 6-Axis]] |
* [[Robot 6-Axis/fr|Robot 6-Axis]] |
||
* [[VRML Preparation for Robot Simulation/fr|VRML Preparation for Robot Simulation]] |
* [[VRML Preparation for Robot Simulation/fr|VRML Preparation for Robot Simulation]] |
||
{{Docnav/fr |
|||
|[[Reverse Engineering Workbench/fr|Atelier inverser l’ingénierie]] |
|||
|[[Ship Workbench/fr|Atelier navire]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Ship.svg |
|||
}} |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
{{docnav|FEM Module|Standard Menu}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
[[Category: |
[[Category:Workbenches{{#translation:}}]] |
||
<languages/> |
Revision as of 21:12, 28 March 2020
Icone de l'atelier FreeCAD Robot
L'atelier FreeCAD Robot n'est plus maintenu. SVP, signalez dans le forum FreeCAD si vous êtes intéressés à maintenir cet atelier.
Introduction
L'atelier de simulation de robot permet de simuler les robots à 6 axes industriels, comme par exemple Kuka.
Vous pouvez accomplir les tâches suivantes :
- mettre en place un environnement de simulation avec un robot et des pièces de travail
- créer et remplir des trajectoires
- décomposer les fonctions d'une pièce CAO en une trajectoire
- simuler le mouvement et l'accessibilité d'un robot
- exporter la trajectoire vers un fichier programme de robot
Pour commencer, essayez le Robot tutorial et voyez l'interface de programmation dans le fichier d'exemple RobotExample.py .
Outils
Voici les principales commandes dont vous pouvez vous servir pour créer une configuration de robot.
Robots
Les outils pour créer et gérer les robots à 6 axes
- Créer un robot: Insère un nouveau robot dans la scène
- Simuler une trajectoire: Ouvre le dialogue de simulation afin de régler une simulation
- Exporter une trajectoire: Exporte la trajectoire dans un fichier programme robot
- Définir la positon de départ: Définit la position de départ d'un robot
- Restaurer la positon de départ: Retourne le robot à sa positon de départ
Trajectoires
Les outils pour créer et manipuler les trajectoires. Il y en a deux sortes, paramétriques et non-paramétriques.
Trajectoire non-paramétriques
- Créer une trajectoire: Créé une nouvelle trajectoire vide
- Définir l'orientation par défaut: Règle l'orientation par défaut des points de passage
- Définir les paramètres de vitesse par défaut: Règle les valeurs par défaut pour la création de points de passage
- Insérer dans la trajectoire: Insère un point de passage de la position actuelle du robot dans la trajectoire
- Insérer dans la trajectoire: Insère un point de passage de la position actuelle du pointeur de la souris dans la trajectoire
Trajectoire paramétriques
- Générer une trajectoire à partir d'un ensemble d'arêtes: Insère un nouvel objet dont les arêtes formeront une trajectoire
- Habiller une trajectoire: Créé un habillage qui supplante certaines propriétés d'une trajectoire
- Grouper et connecter des trajectoires: Crée un composé (compound) et connecte un ensemble de trajectoires
Script
Voir Robot API exemple pour une description des fonctions utilisées pour modéliser les déplacements du robot.
Tutorials
Robot
- Robots : Créer un robot, Simuler une trajectoire, Exporter une trajectoire, Définir la positon de départ, Restaurer la positon de départ
- Trajectoires non paramétriques : Créer une trajectoire, Définir l'orientation par défaut, Définir les paramètres de vitesse par défaut, Insérer dans la trajectoire, Insérer dans la trajectoire (souris)
- Trajectoires paramétriques : Générer une trajectoire à partir d'un ensemble d'arêtes, Habiller une trajectoire, Grouper et connecter des trajectoires
Hub utilisateurs
- Démarrer avec FreeCAD
- Installation : Téléchargements, Windows, Linux, Mac, Logiciels supplémentaires, Docker, AppImage, Ubuntu Snap
- Bases : À propos de FreeCAD, Interface, Navigation par la souris, Méthodes de sélection, Objet name, Préférences, Ateliers, Structure du document, Propriétés, Contribuer à FreeCAD, Faire un don
- Aide : Tutoriels, Tutoriels vidéo
- Ateliers : Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test, Web