Robot Workbench/fr: Difference between revisions
Renatorivo (talk | contribs) (Created page with "Déplacer le robot à sa position de départ (cinématique inverse):") |
No edit summary |
||
(103 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
[[Image:KukaKR16FreeCAD.jpg|right|400px]] |
|||
{{Docnav/fr |
|||
|[[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]. |
|||
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]. |
|||
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 : |
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 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 |
|||
{{TOCright}} |
|||
le [[Robot tutorial/fr|tutoriel Robot]]. |
|||
[[Image:Robot_Workbench_example.jpg|500px]] |
|||
== Outils == |
== Outils == |
||
Line 19: | Line 37: | ||
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. |
* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot/fr|Créer un robot]]: Insère un nouveau robot dans la scène |
||
* [[Image:Robot_Simulate. |
* [[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. |
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/fr|Exporter une trajectoire]]: Exporte la trajectoire dans un fichier programme robot |
||
* [[Image:Robot_SetHomePos. |
* [[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. |
* [[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. |
||
==== |
==== Trajectoire non-paramétriques ==== |
||
* [[Image:Robot_CreateTrajectory. |
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/fr|Créer une trajectoire]]: Créé une nouvelle trajectoire vide |
||
* [[Image:Robot_SetDefaultOrientation. |
* [[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_SetDefaultValues. |
* [[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_InsertWaypoint. |
* [[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. |
* [[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 ==== |
||
* [[Image:Robot_Edge2Trac. |
* [[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. |
* [[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. |
* [[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== |
||
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 : 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. |
|||
== Tutoriels == |
|||
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 : |
|||
* [[Robot 6-Axis/fr|Robot 6-Axis]] |
|||
from Robot import * |
|||
* [[VRML Preparation for Robot Simulation/fr|VRML Préparation pour Simulation d'un Robot]] |
|||
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 |
|||
Déplacer le robot à sa position de départ (cinématique inverse): |
|||
print rob.Tcp |
|||
move the robot back to start position (reverse kinematic): |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
the same with axis 2: |
|||
rob.Axis2 = 5.0 |
|||
print rob.Tcp |
|||
rob.Tcp = Start |
|||
print rob.Axis2 |
|||
Waypoints: |
|||
w = Waypoint(Placement(),name="Pt",type="LIN") |
|||
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool |
|||
generate more. The trajectory always finds automatically a unique name for the waypoints |
|||
l = [w] |
|||
for i in range(5): |
|||
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt")) |
|||
create a trajectory |
|||
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")) |
|||
see a list of all waypoints: |
|||
print t.Waypoints |
|||
del rob,Start,t,l,w |
|||
=== working with the document === |
|||
Working with the robot document objects: |
|||
first create a robot in the active document |
|||
if(App.activeDocument() == None):App.newDocument() |
|||
App.activeDocument().addObject("Robot::RobotObject","Robot") |
|||
Define the visual representation and the kinematic definition (see [[6-Axis Robot]] and [[VRML Preparation for Robot Simulation]] for details about that) |
|||
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" |
|||
start positon of the Axis (only that which differ from 0) |
|||
App.activeDocument().Robot.Axis2 = -90 |
|||
App.activeDocument().Robot.Axis3 = 90 |
|||
retrieve the Tcp position |
|||
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp |
|||
move the robot |
|||
pos.move(App.Vector(-10,0,0)) |
|||
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos |
|||
create an empty Trajectory object in the active document |
|||
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") |
|||
get the Trajectory |
|||
t = App.activeDocument().Trajectory.Trajectory |
|||
add the actual TCP position of the robot to the trajectory |
|||
StartTcp = App.activeDocument().Robot.Tcp |
|||
t.insertWaypoints(StartTcp) |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
insert some more Waypoints and the start point at the end again: |
|||
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 === |
|||
To be done..... |
|||
=== Exporting the trajectory === |
|||
The trajectory is exported by Python. That means for every control cabinet type there is a post-processor |
|||
Python module. Here is in detail the Kuka post-processor described |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
and that's kind of how it's done: |
|||
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 |
|||
== Tutorials == |
|||
|[[Reverse_Engineering_Workbench/fr|Atelier Reverse Engineering]] |
|||
* [[6-Axis_Robot|6-Axis_Robot]] |
|||
|[[Sketcher_Workbench/fr|Atelier Sketcher]] |
|||
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
{{docnav|Arch Module|Macros}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
[[Category: |
[[Category:Workbenches{{#translation:}}]] |
||
<languages/> |
Latest revision as of 14:44, 1 January 2022
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
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
- 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.
Tutoriels
- 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
- 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, Surface, TechDraw, Test