194 lines
18 KiB
HTML
194 lines
18 KiB
HTML
<html><head><title>Robot Workbench/fr</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Robot Workbench/fr</h1></div>
|
|
|
|
<div id="mw-content-text" lang="fr" dir="ltr" class="mw-content-ltr"><hr/><div class="mw-parser-output"></div>
|
|
<div class="floatright"><a href="https://www.freecadweb.org/wiki/index.php?title=File:KukaKR16FreeCAD.jpg" class="image"><img alt="KukaKR16FreeCAD.jpg" src="400px-KukaKR16FreeCAD.jpg" width="400" height="276" srcset="/wiki/images/thumb/c/c5/KukaKR16FreeCAD.jpg/600px-KukaKR16FreeCAD.jpg 1.5x, /wiki/images/thumb/c/c5/KukaKR16FreeCAD.jpg/800px-KukaKR16FreeCAD.jpg 2x" /></a></div>
|
|
<p>L'atelier de simulation de robot permet de simuler les <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_6-Axis/fr" title="Robot 6-Axis/fr">robots à 6 axes</a> industriels, comme par exemple <a rel="nofollow" class="external text" href="http://kuka.com/">Kuka</a>.
|
|
Vous pouvez accomplir les tâches suivantes :
|
|
</p>
|
|
<ul><li> mettre en place un environnement de simulation avec un robot et des pièces de travail</li>
|
|
<li> créer et remplir des trajectoires</li>
|
|
<li> décomposer les fonctions d'une pièce CAO en une trajectoire</li>
|
|
<li> simuler le mouvement et l'accessibilité d'un robot</li>
|
|
<li> exporter la trajectoire vers un fichier programme de robot</li></ul>
|
|
<p>Vous pouvez trouver des exemples ici :
|
|
<a rel="nofollow" class="external text" href="https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py">fichiers d'exemple</a> ou essayez
|
|
le <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_tutorial/fr" title="Robot tutorial/fr">tutoriel Robot</a>.
|
|
</p>
|
|
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
|
|
<ul>
|
|
<li class="toclevel-1 tocsection-1"><a href="#Outils"><span class="tocnumber">1</span> <span class="toctext">Outils</span></a>
|
|
<ul>
|
|
<li class="toclevel-2 tocsection-2"><a href="#Robots"><span class="tocnumber">1.1</span> <span class="toctext">Robots</span></a></li>
|
|
<li class="toclevel-2 tocsection-3"><a href="#Trajectoires"><span class="tocnumber">1.2</span> <span class="toctext">Trajectoires</span></a>
|
|
<ul>
|
|
<li class="toclevel-3 tocsection-4"><a href="#Trajectoire_non-param.C3.A9triques"><span class="tocnumber">1.2.1</span> <span class="toctext">Trajectoire non-paramétriques</span></a></li>
|
|
<li class="toclevel-3 tocsection-5"><a href="#Trajectoire_param.C3.A9triques"><span class="tocnumber">1.2.2</span> <span class="toctext">Trajectoire paramétriques</span></a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="toclevel-1 tocsection-6"><a href="#Script"><span class="tocnumber">2</span> <span class="toctext">Script</span></a>
|
|
<ul>
|
|
<li class="toclevel-2 tocsection-7"><a href="#.C3.89l.C3.A9ments_de_base_robot"><span class="tocnumber">2.1</span> <span class="toctext">Éléments de base robot</span></a></li>
|
|
<li class="toclevel-2 tocsection-8"><a href="#Travailler_avec_les_objets_du_document"><span class="tocnumber">2.2</span> <span class="toctext">Travailler avec les objets du document</span></a></li>
|
|
<li class="toclevel-2 tocsection-9"><a href="#Simulation"><span class="tocnumber">2.3</span> <span class="toctext">Simulation</span></a></li>
|
|
<li class="toclevel-2 tocsection-10"><a href="#Exporter_la_trajectoire"><span class="tocnumber">2.4</span> <span class="toctext">Exporter la trajectoire</span></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toclevel-1 tocsection-11"><a href="#Tutorials"><span class="tocnumber">3</span> <span class="toctext">Tutorials</span></a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<h2><span class="mw-headline" id="Outils">Outils</span></h2>
|
|
<p>Voici les principales commandes dont vous pouvez vous servir pour créer une configuration de robot.
|
|
</p>
|
|
<h3><span class="mw-headline" id="Robots">Robots</span></h3>
|
|
<p>Les outils pour créer et gérer les robots à 6 axes
|
|
</p>
|
|
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_CreateRobot.png" class="image"><img alt="Robot CreateRobot.png" src="30px-Robot_CreateRobot.png" width="30" height="30" srcset="/wiki/images/thumb/8/8e/Robot_CreateRobot.png/45px-Robot_CreateRobot.png 1.5x, /wiki/images/thumb/8/8e/Robot_CreateRobot.png/60px-Robot_CreateRobot.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_CreateRobot/fr" title="Robot CreateRobot/fr">Créer un robot</a>: Insère un nouveau robot dans la scène</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_Simulate.png" class="image"><img alt="Robot Simulate.png" src="30px-Robot_Simulate.png" width="30" height="30" srcset="/wiki/images/thumb/4/42/Robot_Simulate.png/45px-Robot_Simulate.png 1.5x, /wiki/images/thumb/4/42/Robot_Simulate.png/60px-Robot_Simulate.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_Simulate/fr" title="Robot Simulate/fr">Simuler une trajectoire</a>: Ouvre le dialogue de simulation afin de régler une simulation</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_Export.png" class="image"><img alt="Robot Export.png" src="30px-Robot_Export.png" width="30" height="30" srcset="/wiki/images/thumb/8/8e/Robot_Export.png/45px-Robot_Export.png 1.5x, /wiki/images/thumb/8/8e/Robot_Export.png/60px-Robot_Export.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_Export/fr" title="Robot Export/fr">Exporter une trajectoire</a>: Exporte la trajectoire dans un fichier programme robot</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_SetHomePos.png" class="image"><img alt="Robot SetHomePos.png" src="30px-Robot_SetHomePos.png" width="30" height="30" srcset="/wiki/images/thumb/3/3c/Robot_SetHomePos.png/45px-Robot_SetHomePos.png 1.5x, /wiki/images/thumb/3/3c/Robot_SetHomePos.png/60px-Robot_SetHomePos.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_SetHomePos/fr" title="Robot SetHomePos/fr">Définir la positon de départ</a>: Définit la position de départ d'un robot</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_RestoreHomePos.png" class="image"><img alt="Robot RestoreHomePos.png" src="30px-Robot_RestoreHomePos.png" width="30" height="30" srcset="/wiki/images/thumb/9/95/Robot_RestoreHomePos.png/45px-Robot_RestoreHomePos.png 1.5x, /wiki/images/thumb/9/95/Robot_RestoreHomePos.png/60px-Robot_RestoreHomePos.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_RestoreHomePos/fr" title="Robot RestoreHomePos/fr">Restaurer la positon de départ</a>: Retourne le robot à sa positon de départ</li></ul>
|
|
<h3><span class="mw-headline" id="Trajectoires">Trajectoires</span></h3>
|
|
<p>Les outils pour créer et manipuler les trajectoires. Il y en a deux sortes, paramétriques et non-paramétriques.
|
|
</p>
|
|
<h4><span class="mw-headline" id="Trajectoire_non-param.C3.A9triques">Trajectoire non-paramétriques</span></h4>
|
|
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_CreateTrajectory.png" class="image"><img alt="Robot CreateTrajectory.png" src="30px-Robot_CreateTrajectory.png" width="30" height="30" srcset="/wiki/images/thumb/9/90/Robot_CreateTrajectory.png/45px-Robot_CreateTrajectory.png 1.5x, /wiki/images/thumb/9/90/Robot_CreateTrajectory.png/60px-Robot_CreateTrajectory.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_CreateTrajectory/fr" title="Robot CreateTrajectory/fr">Créer une trajectoire</a>: Créé une nouvelle trajectoire vide</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_SetDefaultOrientation.png" class="image"><img alt="Robot SetDefaultOrientation.png" src="30px-Robot_SetDefaultOrientation.png" width="30" height="30" srcset="/wiki/images/thumb/e/e0/Robot_SetDefaultOrientation.png/45px-Robot_SetDefaultOrientation.png 1.5x, /wiki/images/thumb/e/e0/Robot_SetDefaultOrientation.png/60px-Robot_SetDefaultOrientation.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_SetDefaultOrientation/fr" title="Robot SetDefaultOrientation/fr">Définir l'orientation par défaut</a>: Règle l'orientation par défaut des points de passage</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_SetDefaultValues.png" class="image"><img alt="Robot SetDefaultValues.png" src="30px-Robot_SetDefaultValues.png" width="30" height="30" srcset="/wiki/images/thumb/f/fc/Robot_SetDefaultValues.png/45px-Robot_SetDefaultValues.png 1.5x, /wiki/images/thumb/f/fc/Robot_SetDefaultValues.png/60px-Robot_SetDefaultValues.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_SetDefaultValues/fr" title="Robot SetDefaultValues/fr">Définir les paramètres de vitesse par défaut</a>: Règle les valeurs par défaut pour la création de points de passage</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_InsertWaypoint.png" class="image"><img alt="Robot InsertWaypoint.png" src="30px-Robot_InsertWaypoint.png" width="30" height="30" srcset="/wiki/images/thumb/7/74/Robot_InsertWaypoint.png/45px-Robot_InsertWaypoint.png 1.5x, /wiki/images/thumb/7/74/Robot_InsertWaypoint.png/60px-Robot_InsertWaypoint.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_InsertWaypoint/fr" title="Robot InsertWaypoint/fr">Insérer dans la trajectoire</a>: Insère un point de passage de la position actuelle du robot dans la trajectoire</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_InsertWaypointPre.png" class="image"><img alt="Robot InsertWaypointPre.png" src="30px-Robot_InsertWaypointPre.png" width="30" height="30" srcset="/wiki/images/thumb/8/8f/Robot_InsertWaypointPre.png/45px-Robot_InsertWaypointPre.png 1.5x, /wiki/images/thumb/8/8f/Robot_InsertWaypointPre.png/60px-Robot_InsertWaypointPre.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_InsertWaypointPre/fr" title="Robot InsertWaypointPre/fr">Insérer dans la trajectoire</a>: Insère un point de passage de la position actuelle du pointeur de la souris dans la trajectoire</li></ul>
|
|
<h4><span class="mw-headline" id="Trajectoire_param.C3.A9triques">Trajectoire paramétriques</span></h4>
|
|
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_Edge2Trac.png" class="image"><img alt="Robot Edge2Trac.png" src="30px-Robot_Edge2Trac.png" width="30" height="30" srcset="/wiki/images/thumb/a/a7/Robot_Edge2Trac.png/45px-Robot_Edge2Trac.png 1.5x, /wiki/images/thumb/a/a7/Robot_Edge2Trac.png/60px-Robot_Edge2Trac.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_Edge2Trac/fr" title="Robot Edge2Trac/fr">Générer une trajectoire à partir d'un ensemble d'arêtes</a>: Insère un nouvel objet dont les arêtes formeront une trajectoire</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_TrajectoryDressUp.png" class="image"><img alt="Robot TrajectoryDressUp.png" src="30px-Robot_TrajectoryDressUp.png" width="30" height="30" srcset="/wiki/images/thumb/2/28/Robot_TrajectoryDressUp.png/45px-Robot_TrajectoryDressUp.png 1.5x, /wiki/images/thumb/2/28/Robot_TrajectoryDressUp.png/60px-Robot_TrajectoryDressUp.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_TrajectoryDressUp/fr" title="Robot TrajectoryDressUp/fr">Habiller une trajectoire</a>: Créé un habillage qui supplante certaines propriétés d'une trajectoire</li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Robot_TrajectoryCompound.png" class="image"><img alt="Robot TrajectoryCompound.png" src="30px-Robot_TrajectoryCompound.png" width="30" height="30" srcset="/wiki/images/thumb/f/fb/Robot_TrajectoryCompound.png/45px-Robot_TrajectoryCompound.png 1.5x, /wiki/images/thumb/f/fb/Robot_TrajectoryCompound.png/60px-Robot_TrajectoryCompound.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_TrajectoryCompound/fr" title="Robot TrajectoryCompound/fr">Grouper et connecter des trajectoires</a>: Crée un composé (compound) et connecte un ensemble de trajectoires</li></ul>
|
|
<h2><span class="mw-headline" id="Script">Script</span></h2>
|
|
<p>Cette section est générée à partir de : <a rel="nofollow" class="external free" href="https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py">https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py</a>
|
|
Vous pouvez utiliser ce fichier directement si vous le désirez.
|
|
</p><p>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 <a href="https://www.freecadweb.org/wiki/index.php?title=Part_Module/fr" title="Part Module/fr">Pièce</a>, mais pas des autres modules. Il fonctionne principalement avec les types de base Placement, Vecteur et Matrice. Nous n'avons donc besoin que de :
|
|
</p>
|
|
<pre>from Robot import *
|
|
from Part import *
|
|
from FreeCAD import * </pre>
|
|
<h3><span class="mw-headline" id=".C3.89l.C3.A9ments_de_base_robot">Éléments de base robot</span></h3>
|
|
<p>Créer le robot. Si vous ne spécifiez pas une autre cinématique, il devient un Puma 560
|
|
</p>
|
|
<pre>rob = Robot6Axis()
|
|
print rob </pre>
|
|
<p>Accès à l'axe et au Tcp. Les axes vont de 1-6 et sont exprimés en degrés :
|
|
</p>
|
|
<pre>Start = rob.Tcp
|
|
print Start
|
|
print rob.Axis1 </pre>
|
|
<p>Déplacer le premier axe du robot:
|
|
</p>
|
|
<pre>rob.Axis1 = 5.0 </pre>
|
|
<p>Le Tcp a changé (cinématique avant)
|
|
</p>
|
|
<pre>print rob.Tcp </pre>
|
|
<p>Déplacer le robot à sa position de départ (cinématique inverse):
|
|
</p>
|
|
<pre>rob.Tcp = Start
|
|
print rob.Axis1 </pre>
|
|
<p>De même avec l'axe 2:
|
|
</p>
|
|
<pre>rob.Axis2 = 5.0
|
|
print rob.Tcp
|
|
rob.Tcp = Start
|
|
print rob.Axis2 </pre>
|
|
<p>Points de passage :
|
|
</p>
|
|
<pre>w = Waypoint(Placement(),name="Pt",type="LIN")
|
|
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool </pre>
|
|
<p>En générer davantage. La trajectoire trouve toujours automatiquement un nom unique pour les points de passage
|
|
</p>
|
|
<pre>l = [w]
|
|
for i in range(5):
|
|
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt")) </pre>
|
|
<p>Créer une trajectoire
|
|
</p>
|
|
<pre>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")) </pre>
|
|
<p>Afficher une liste de tous les points de passage :
|
|
</p>
|
|
<pre>print t.Waypoints
|
|
|
|
del rob,Start,t,l,w </pre>
|
|
<h3><span class="mw-headline" id="Travailler_avec_les_objets_du_document">Travailler avec les objets du document</span></h3>
|
|
<p>Travailler avec les objets du document robot : d'abord créer un robot dans le document courant
|
|
</p>
|
|
<pre>if(App.activeDocument() == None):App.newDocument()
|
|
|
|
App.activeDocument().addObject("Robot::RobotObject","Robot") </pre>
|
|
<p>Définir la représentation visuelle et la définition cinématique (voir <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_6-Axis/fr" title="Robot 6-Axis/fr">robot à 6 axes</a> et <a href="https://www.freecadweb.org/wiki/index.php?title=VRML_Preparation_for_Robot_Simulation/fr" title="VRML Preparation for Robot Simulation/fr">Préparation VRML pour simulation de robot</a> pour plus de détails)
|
|
</p>
|
|
<pre>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" </pre>
|
|
<p>La positon de départ des axes (seulement celles qui diffèrent de 0)
|
|
</p>
|
|
<pre>App.activeDocument().Robot.Axis2 = -90
|
|
App.activeDocument().Robot.Axis3 = 90 </pre>
|
|
<p>Récupérer la position Tcp
|
|
</p>
|
|
<pre>pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp </pre>
|
|
<p>Déplacer le robot
|
|
</p>
|
|
<pre>pos.move(App.Vector(-10,0,0))
|
|
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos </pre>
|
|
<p>Créer un objet de trajectoire vide dans le document courant
|
|
</p>
|
|
<pre>App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") </pre>
|
|
<p>Obtenir la trajectoire
|
|
</p>
|
|
<pre>t = App.activeDocument().Trajectory.Trajectory </pre>
|
|
<p>Ajouter la position TCP actuelle du robot à la trajectoire
|
|
</p>
|
|
<pre>StartTcp = App.activeDocument().Robot.Tcp
|
|
t.insertWaypoints(StartTcp)
|
|
App.activeDocument().Trajectory.Trajectory = t
|
|
print App.activeDocument().Trajectory.Trajectory </pre>
|
|
<p>Insérer quelques points de passage supplémentaires et le point de départ à nouveau à la fin :
|
|
</p>
|
|
<pre>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 </pre>
|
|
<h3><span class="mw-headline" id="Simulation">Simulation</span></h3>
|
|
<p>À compléter...
|
|
</p>
|
|
<h3><span class="mw-headline" id="Exporter_la_trajectoire">Exporter la trajectoire</span></h3>
|
|
<p>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 :
|
|
</p>
|
|
<pre>from KukaExporter import ExportCompactSub
|
|
|
|
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') </pre>
|
|
<p>Et c'est ainsi que ça se fait :
|
|
</p>
|
|
<pre>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)) </pre>
|
|
<h2><span class="mw-headline" id="Tutorials">Tutorials</span></h2>
|
|
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=Robot_6-Axis/fr" title="Robot 6-Axis/fr">Robot 6-Axis</a> </li>
|
|
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=VRML_Preparation_for_Robot_Simulation/fr" title="VRML Preparation for Robot Simulation/fr">VRML Preparation for Robot Simulation</a></li></ul>
|
|
<p><br />
|
|
</p>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div><div class="printfooter">
|
|
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Robot_Workbench/fr&oldid=290093">http://www.freecadweb.org/wiki/index.php?title=Robot_Workbench/fr&oldid=290093</a>"</div>
|
|
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
<div id="mw-navigation">
|
|
<h2>Navigation menu</h2>
|
|
|
|
</body></html> |