Robot Workbench/fr: Difference between revisions

From FreeCAD Documentation
mNo edit summary
(Updating to match new version of source page)
(39 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 ===
Line 29: Line 48:


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
==== 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
* [[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_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/fr|Définir l'orientation par défaut]]: Règle l'orientation par défaut des points de passage
Line 38: Line 57:


<div class="mw-translate-fuzzy">
<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]]: Groupe 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>


== Scripting ==
==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:}}}}
<div class="mw-translate-fuzzy">
{{Userdocnavi{{#translation:}}}}
{{docnav/fr|[[Raytracing_Module/fr|Raytracing Module]]|[[Sketcher_Workbench/fr|Sketcher Workbench]]}}
[[Category:Workbenches{{#translation:}}]]
</div>

[[Category:User Documentation/fr]]


<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

Robot workbench icon

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

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

Voir Robot API exemple pour une description des fonctions utilisées pour modéliser les déplacements du robot.

Tutorials