Robot Workbench/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>
[[Image:KukaKR16FreeCAD.jpg|right|400px]]
[[Image:Workbench_Robot.svg|64px]]


== Introduction ==

<div class="mw-translate-fuzzy">
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].
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 :
Line 9: Line 12:
* simuler le mouvement et l'accessibilité d'un robot
* simuler le mouvement et l'accessibilité d'un robot
* exporter la trajectoire vers un fichier programme de robot
* exporter la trajectoire vers un fichier programme de robot
</div>


You can do the following tasks:
* Set up a simulation environment with a robot and work pieces.
* Create and fill up movement trajectories.
* Decompose features of a CAD part to a trajectory.
* Simulate the robot movement and reaching distance.
* Export the trajectory to a robot program file.

<div class="mw-translate-fuzzy">
Vous pouvez trouver des exemples ici :
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
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py fichiers d'exemple] ou essayez
le [[Robot tutorial/fr|tutoriel Robot]].
le [[Robot tutorial/fr|tutoriel Robot]].
</div>

{{TOCright}}
[[Image:Robot_Workbench_example.jpg|600px]]


== Outils ==
== Outils ==
Line 20: 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 25: 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">
==== Trajectoire non-paramétriques ====
==== Trajectoire non-paramétriques ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/fr|Créer une trajectoire]]: Créé une nouvelle trajectoire vide
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/fr|Créer une trajectoire]]: Créé une nouvelle trajectoire vide
Line 35: Line 54:
* [[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_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
* [[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">
==== Trajectoire 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 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]]: Crée un composé (compound) et connecte un ensemble de 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>


<div class="mw-translate-fuzzy">
==Script==
==Script==


Cette section est générée à partir de : https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py
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.
Vous pouvez utiliser ce fichier directement si vous le désirez.
</div>


See the [[Robot API example]] for a description of the functions used to model the robot displacements.
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]]


<div class="mw-translate-fuzzy">

{{docnav/fr|[[FEM Module/fr|Module FEM]]|[[Standard Menu/fr|Menu Standard]]}}
{{docnav/fr|[[FEM Module/fr|Module FEM]]|[[Standard Menu/fr|Menu Standard]]}}
</div>

[[Category:User Documentation/fr]]

Revision as of 21:14, 15 January 2019

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

You can do the following tasks:

  • Set up a simulation environment with a robot and work pieces.
  • Create and fill up movement trajectories.
  • Decompose features of a CAD part to a trajectory.
  • Simulate the robot movement and reaching distance.
  • Export the trajectory to a robot program file.

Vous pouvez trouver des exemples ici : fichiers d'exemple ou essayez le tutoriel Robot.

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

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

Trajectoire paramétriques

Script

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.

See the Robot API example for a description of the functions used to model the robot displacements.

Tutorials