Robot Workbench/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(70 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages/>
[[Image:KukaKR16FreeCAD.jpg|right|400px]]


{{Docnav/de
The robot workbench is a tool to simulate industrial grade [[6-Axis Robot]]s, like e.g. [http://kuka.com/ Kuka].
|[[Reverse Engineering Workbench/de|Arbeitsbereich Reverse Engineering]]
You can do following tasks:
|[[Sketcher_Workbench/de|Sketcher Arbeitsbereich]]
* set up a simulation environment with a robot and work pieces
|IconL=Workbench_Reverse_Engineering.svg
* create and fill up trajectories
|IconR=Workbench_Sketcher.svg
* decompose features of an CAD part to a trajectory
}}
* simulate the robot movement and reachability
* export the trajectory to a robot program file


{{VeryImportantMessage|Der Roboter Arbeitsbereich ist nicht gewartet. Wenn du Erfahrung mit dem Thema hast und daran interessiert bist, es zu pflegen, gib bitte deine Absicht im Entwicklerbereich des [https://forum.freecadweb.org/index.php FreeCAD Forums] an.
An examples you can find here:
[http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/ Example files] or try
the [[Robot tutorial]].


Der Grund dafür, dass sich dieser Arbeitsbereich noch im Master Quellcode befindet, liegt darin, dass dieser Arbeitsbereich in C++ programmiert ist. Wenn dieser Arbeitsbereich in Python programmiert werden könnte, dann könnte sie zu einem[[external_workbenches/de|externen Arbeitsbereich]] gemacht und in ein separates Repositorium verschoben werden.
== Tools ==
}}
Here the principal commands you can use to create a robot set-up.


=== Robots ===
== Einführung ==
The tools to create and manage the 6-Axis robots


[[Image:Workbench_Robot.svg|thumb|128px|Roboter Arbeitsbereichssymbol]]
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot|Create a robot]]: Insert a new robot into the scene
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate|Simulate a trajectory]]: Opens the simulation dialog and let you simulate
* [[Image:Robot_Export.png|30px]] [[Robot_Export|Export a trajectory]]: Export a robot program file
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos|Set home positon]]: Set the home position of an robot
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos|Restore home positon]]: move the robot to its home position


Die [[Image:Workbench_Robot.svg|24px]] [[Robot_Workbench/de|Roboter Arbeitsbereich]] ist ein Werkzeug zur Simulation eines Standard [[Robot_6-Axis/de|6-Achsen Industrieroboters]], wie [http://kuka.com/ Kuka].
=== Trajectories ===
Tools to creat and manipulate trajectories. There are two kinds, the parametric and non parametric ones.


Du kannst die folgenden Aufgaben erledigen:
==== non parametric ====
* Richten eine Simulationsumgebung mit einem Roboter und Werkstücken ein.
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Insert a new robot into the scene
* Erstellen und Auffüllen von Bewegungstrajektorien.
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default
* Zerlege die Merkmale eines CAD-Bauteils in eine Trajektorie.
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: set the defaults for way-point creation
* Simuliere die Roboterbewegung und das Erreichen der Distanz.
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory
* Exportiere die Trajektorie in eine Roboterprogrammdatei.
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Insert a waypoint]]: Insert a way-point from the current mouse position into a trajectory


Um loszulegen, versuche es mit dem [[Robot_tutorial/de|Roboter Tutorium]], und sieh Dir die Programmierschnittstelle in der Beispieldatei [https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py] an.
==== parametric ====
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac|Create a trajectory out of edges]]: Insert a new object which decompose edges to a trajectory
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Let you override one or more properties of a trajectory
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: create a compound out of some single trajectories


{{TOCright}}
== Scripting ==
[[Image:Robot_Workbench_example.jpg|500px]]
This section is generated out of: http://sourceforge.net/p/free-cad/code/ci/master/tree/src/Mod/Robot/RobotExample.py
You can use this file directly if you want.


== Werkzeuge ==
Example how to use the basic robot class Robot6Axis which represents a 6-axis
Hier die wichtigsten Befehle, mit denen eine Roboteranordnung erstellt werden kann.
industrial robot. The Robot module is dependent on Part but not on other modules.
It works mostly with the basic types Placement, Vector and Matrix. So we need
only:
from Robot import *
from Part import *
from FreeCAD import *
=== Basic robot stuff ===
create the robot. If you do not specify another kinematic it becomes a Puma 560
rob = Robot6Axis()
print rob
accessing the axis and the Tcp. Axes go from 1-6 and are in degree:
Start = rob.Tcp
print Start
print rob.Axis1
move the first axis of the robot:
rob.Axis1 = 5.0
the Tcp has changed (forward kinematic)
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 ===


=== Roboter ===
Working with the robot document objects:
Die Werkzeuge zur Erstellung und Verwaltung der 6-Achsen-Roboter
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))


* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot/de|Einen Roboter erstellen]]: Einen neuen Roboter in die Szene einfügen
== Tutorials ==
* [[Image:Robot_Simulate.svg|30px]] [[Robot_Simulate/de|Eine Bewegungsbahn simulieren]]: Öffnet den Simulationsdialog und lässt dich Folgendes simulieren
* [[6-Axis_Robot|6-Axis_Robot]]
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/de|Eine Bewegungsbahn exportieren]]: Exportieren einer Roboterprogrammdatei
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]]
* [[Image:Robot_SetHomePos.svg|30px]] [[Robot_SetHomePos/de|Ausgangsposition festlegen]]: Festlegen der Ausgangsposition eines Roboters
{{docnav|Arch Module|Macros}}
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos/de|Ausgangsposition wiederherstellen]]: Bewege den Roboter in seine Ausgangsposition
[[Category:User Documentation]]


=== Trajektorien ===
Werkzeuge zum Erstellen und Bearbeiten von Trajektorien. Es gibt zwei Arten, die parametrische und die nicht parametrische.


==== Nicht parametrische Trajektorien ====
<languages/>
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/de|Eine Trajektorie erstellen]]: Fügt ein neues leeres Trajektorienobjekt in die Szene ein
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation/de|Lege die Standardausrichtung fest]]: Lege die Orientierung fest - Wegpunkte werden standardmäßig erstellt
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues/de|Setze den Standard Geschwindigkeitsparameter]]: Lege die Standardwerte für die Weg-punkt Erstellung fest
* [[Image:Robot_InsertWaypoint.svg|30px]] [[Robot_InsertWaypoint/de|Einen Wegpunkt einfügen]]: Einfügen eines Wegpunktes von der aktuellen Roboterposition in eine Trajektorie
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre/de|Einen vorgewählten Wegpunkt einfügen]]: Einfügen eines Wegpunktes von der aktuellen Mausposition in eine Trajektorie

==== Parametrische Trajektorien ====
* [[Image:Robot_Edge2Trac.svg|30px]] [[Robot_Edge2Trac/de|Erstellen einer Trajektorie aus Kanten]]: Einfügen eines neuen Objekts, das Kanten zu einer Trajektorie zerlegt
* [[Image:Robot_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp/de|Ankleiden einer Trajektorie]]: Erlaubt dir, eine oder mehrere Eigenschaften einer Trajektorie außer Kraft zu setzen
* [[Image:Robot_TrajectoryCompound.svg|30px]] [[Robot_TrajectoryCompound/de|Trajektorienverbund]]: Erzeugen eines Verbunds aus einigen Einzeltrajektorien

== Skripten ==

Siehe das [[Robot_API_example/de|Roboter API Beispiel]] für eine Beschreibung der Funktionen, die zur Modellierung der Roboterverschiebungen verwendet werden.

== Tutorien ==
* [[Robot 6-Axis/de|6-Achsen Roboter]]
* [[VRML Preparation for Robot Simulation/de|VRML Vorbereitung für Robotersimulation]]


{{Docnav/de
|[[Reverse Engineering Workbench/de|Arbeitsbereich Reverse Engineering]]
|[[Sketcher_Workbench/de|Skizzierer Arbeitsbereich]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Sketcher.svg
}}

{{Robot Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 13:43, 29 November 2021

Der Roboter Arbeitsbereich ist nicht gewartet. Wenn du Erfahrung mit dem Thema hast und daran interessiert bist, es zu pflegen, gib bitte deine Absicht im Entwicklerbereich des FreeCAD Forums an.

Der Grund dafür, dass sich dieser Arbeitsbereich noch im Master Quellcode befindet, liegt darin, dass dieser Arbeitsbereich in C++ programmiert ist. Wenn dieser Arbeitsbereich in Python programmiert werden könnte, dann könnte sie zu einemexternen Arbeitsbereich gemacht und in ein separates Repositorium verschoben werden.

Einführung

Roboter Arbeitsbereichssymbol

Die Roboter Arbeitsbereich ist ein Werkzeug zur Simulation eines Standard 6-Achsen Industrieroboters, wie Kuka.

Du kannst die folgenden Aufgaben erledigen:

  • Richten eine Simulationsumgebung mit einem Roboter und Werkstücken ein.
  • Erstellen und Auffüllen von Bewegungstrajektorien.
  • Zerlege die Merkmale eines CAD-Bauteils in eine Trajektorie.
  • Simuliere die Roboterbewegung und das Erreichen der Distanz.
  • Exportiere die Trajektorie in eine Roboterprogrammdatei.

Um loszulegen, versuche es mit dem Roboter Tutorium, und sieh Dir die Programmierschnittstelle in der Beispieldatei RobotExample.py an.

Werkzeuge

Hier die wichtigsten Befehle, mit denen eine Roboteranordnung erstellt werden kann.

Roboter

Die Werkzeuge zur Erstellung und Verwaltung der 6-Achsen-Roboter

Trajektorien

Werkzeuge zum Erstellen und Bearbeiten von Trajektorien. Es gibt zwei Arten, die parametrische und die nicht parametrische.

Nicht parametrische Trajektorien

Parametrische Trajektorien

Skripten

Siehe das Roboter API Beispiel für eine Beschreibung der Funktionen, die zur Modellierung der Roboterverschiebungen verwendet werden.

Tutorien