Robot Workbench/fr: Difference between revisions

From FreeCAD Documentation
m (small wording change to conform to actual French menus in FreeCAD)
No edit summary
 
(123 intermediate revisions by 9 users not shown)
Line 1: Line 1:
<languages/>
= Atelier de simulation de robot =


{{Docnav/fr
[[Image:KukaKR16FreeCAD.jpg|right|400px]]
|[[Reverse_Engineering_Workbench/fr|Atelier Reverse Engineering]]
|[[Sketcher_Workbench/fr|Atelier Sketcher]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Sketcher.svg
}}


{{VeryImportantMessage|L'atelier Robot n'est plus maintenu. Si vous avez de l'expérience avec le sujet et que vous souhaitez le maintenir, veuillez indiquer votre intention dans la section développeur du [https://forum.freecadweb.org/index.php forum FreeCAD].
L'atelier de simulation de robot permet de simuler les [[6-Axis Robot/fr|robots à 6 axes]] industriels, comme par exemple [http://kuka.com/ Kuka].

Vous pouvez accomplir les tâches suivantes :
La raison pour laquelle cet atelier se trouve toujours dans le code source principal est que cet atelier est programmé en C++. Si cet atelier pouvait être programmé en Python, alors il pourrait être transformé en [[external_workbenches/fr|atelier externe]] et il pourrait être déplacé vers un référentiel distinct.
}}

== Introduction ==

[[Image:Workbench_Robot.svg|thumb|128px|Icône de l'atelier Robot]]

L'[[Image:Workbench_Robot.svg|24px]] [[Robot_Workbench/fr|atelier Robot]] permet de simuler les [[Robot_6-Axis/fr|robots industriels à 6 axes]], comme par exemple [http://kuka.com/ Kuka].

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
* créer et remplir des trajectoires
* créer et remplir des trajectoires
Line 11: Line 26:
* exporter la trajectoire vers un fichier programme de robot
* exporter la trajectoire vers un fichier programme de robot


Pour commencer, essayez le [[Robot_tutorial/fr|tutoriel Robot]] 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 :
[http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/ fichiers d'exemple] ou essayez
le [[Robot tutorial/fr|tutoriel Robot]].


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


== Outils ==
== Outils ==
Voici les principales commandes dont vous pouvez vous servir pour créer une configuration de robot.
Voici les principales commandes dont vous pouvez vous servir pour créer une configuration de robot.

=== Robots ===
=== Robots ===
Les outils pour créer et gérer les robots à 6 axes
Les outils pour créer et gérer les robots à 6 axes


* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/fr|Créer un robot]]: Insère un nouveau robot dans la scène
* [[Image:Robot_CreateRobot.svg|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.svg|30px]] [[Robot_Simulate/fr|Simuler une trajectoire]]: Ouvre le dialogue de simulation afin de régler une simulation
* [[Image:Robot_Export.png|30px]] [[Robot_Export/fr|Exporter une trajectoire]]: Exporte la trajectoire dans un fichier programme robot
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/fr|Exporter une trajectoire]]: Exporte la trajectoire dans un fichier programme 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_SetHomePos.svg|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.svg|30px]] [[Robot_RestoreHomePos/fr|Restaurer la positon de départ]]: Retourne le robot à sa positon de départ


=== 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.
==== Non-paramétriques ====
* [[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_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/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


==== Paramétriques ====
==== Trajectoire non-paramétriques ====
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac|Créer une trajectoire à partir des arêtes]]: Insère un nouvel objet qui dont les arêtes formeront une trajectoire
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/fr|Créer une trajectoire]]: Créé une nouvelle trajectoire vide
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation/fr|Définir l'orientation par défaut]]: Règle l'orientation par défaut des points de passage
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Habiller une trajectoire]]: Créé un habillage qui supplante certaines propriétés d'une trajectoire
* [[Image:Robot_SetDefaultValues.svg|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_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Grouper et connecter des trajectoires]]: Groupe et connecte un ensemble de trajectoires
* [[Image:Robot_InsertWaypoint.svg|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.svg|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


==== Trajectoire paramétriques ====
== Scripting ==
* [[Image:Robot_Edge2Trac.svg|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.svg|30px]] [[Robot_TrajectoryDressUp/fr|Habiller une trajectoire]]: Créé un habillage qui supplante certaines propriétés d'une trajectoire
* [[Image:Robot_TrajectoryCompound.svg|30px]] [[Robot_TrajectoryCompound/fr|Grouper et connecter des trajectoires]]: Crée un composé (compound) et connecte un ensemble de trajectoires


==Script==
Cette section est générée à partir de : http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Robot/RobotExample.py?view=markup
Vous pouvez utiliser ce fichier directement si vous le désirez.


Voir [[Robot_API_example/fr|Robot API exemple]] pour une description des fonctions utilisées pour modéliser les déplacements du robot.
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 :
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
rob = Robot6Axis()
print rob
Accès à l'axe et au Tcp. Les axes vont de 1-6 et sont exprimés en degrés :
Start = rob.Tcp
print Start
print rob.Axis1
Déplacer le premier axe du robot:
rob.Axis1 = 5.0
Le Tcp a changé (cinématique avant)
print rob.Tcp
Déplacer le robot à sa position de départ (cinématique inverse):
rob.Tcp = Start
print rob.Axis1
De même avec l'axe 2:
rob.Axis2 = 5.0
print rob.Tcp
rob.Tcp = Start
print rob.Axis2
Points de passage :
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
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
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 :
print t.Waypoints
del rob,Start,t,l,w
=== Travailler avec le document ===


== Tutoriels ==
Travailler avec les objets du document robot : d'abord créer un robot dans le document courant
* [[Robot 6-Axis/fr|Robot 6-Axis]]
if(App.activeDocument() == None):App.newDocument()
* [[VRML Preparation for Robot Simulation/fr|VRML Préparation pour Simulation d'un Robot]]
App.activeDocument().addObject("Robot::RobotObject","Robot")
Définir la représentation visuelle et la définition cinématique (voir [[6-Axis Robot/fr|robot à 6 axes]] et [[VRML Preparation for Robot Simulation/fr|Préparation VRML pour simulation de robot]] pour plus de détails)
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)
App.activeDocument().Robot.Axis2 = -90
App.activeDocument().Robot.Axis3 = 90
Récupérer la position Tcp
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
Déplacer le robot
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
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
Obtenir la trajectoire
t = App.activeDocument().Trajectory.Trajectory
Ajouter la position TCP actuelle du robot à la trajectoire
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 :
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 :
from KukaExporter import ExportCompactSub
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src')
Et c'est ainsi que ça se fait :
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))


{{Docnav/fr
{{docnav/fr|Raytracing Module/fr|Sketcher Workbench/fr}}
|[[Reverse_Engineering_Workbench/fr|Atelier Reverse Engineering]]
|[[Sketcher_Workbench/fr|Atelier Sketcher]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Sketcher.svg
}}


{{Robot Tools navi{{#translation:}}}}
{{languages/fr | {{en|Robot Workbench}} {{es|Robot Workbench/es}} {{it|Robot Workbench/it}} {{ru|Robot Workbench/ru}} {{se|Robot Workbench/se}} }}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 14:44, 1 January 2022

L'atelier Robot n'est plus maintenu. Si vous avez de l'expérience avec le sujet et que vous souhaitez le maintenir, veuillez indiquer votre intention dans la section développeur du forum FreeCAD.

La raison pour laquelle cet atelier se trouve toujours dans le code source principal est que cet atelier est programmé en C++. Si cet atelier pouvait être programmé en Python, alors il pourrait être transformé en atelier externe et il pourrait être déplacé vers un référentiel distinct.

Introduction

Icône de l'atelier Robot

L' atelier Robot permet de simuler les robots industriels à 6 axes, 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 tutoriel Robot 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.

Tutoriels