Robot Workbench/sv: Difference between revisions

From FreeCAD Documentation
(Created page with "flytta tillbaka roboten till startpositionen (bakåtgående kinematik):")
(Updating to match new version of source page)
(46 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
[[Image:KukaKR16FreeCAD.jpg|right|400px]]

{{Docnav
|[[Reverse Engineering Workbench|Reverse Engineering Workbench]]
|[[Sketcher Workbench|Sketcher Workbench]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Sketcher.svg
}}

{{VeryImportantMessage|The Robot Workbench is unmaintained. If you have experience with the topic and are interested in maintaining it, please state your intention in the developer's section of the [https://forum.freecadweb.org/index.php FreeCAD forum].

The reason this workbench is still in the master source code is because this workbench is programmed in C++. If this workbench could be programmed in Python, then it could be made an [[external_workbenches|external workbench]] and it could be moved to a separate repository.
}}

== Introduction ==

[[Image:Workbench_Robot.svg|thumb|128px|Robot workbench icon]]


<div class="mw-translate-fuzzy">
Robot arbetsbänken är ett verktyg för simulering av 6-axliga industrirobotar, som t.ex. [http://kuka.com/ Kuka].
Robot arbetsbänken är ett verktyg för simulering av 6-axliga industrirobotar, som t.ex. [http://kuka.com/ Kuka].
Denna arbetsbänk är ett pågående arbete för att implementera ett off-line programmeringsverktyg för [[6-Axis Robot]] industrirobotar i FreeCAD.
Denna arbetsbänk är ett pågående arbete för att implementera ett off-line programmeringsverktyg för [[Robot_6-Axis/sv|Robot_6-Axis]] industrirobotar i FreeCAD.
You can do following tasks:
You can do following tasks:
* set up a simulation environment with a robot and work pieces
* set up a simulation environment with a robot and work pieces
Line 9: Line 26:
* simulate the robot movement and reachability
* simulate the robot movement and reachability
* export the trajectory to a robot program file
* export the trajectory to a robot program file
</div>


You can do the following tasks:
Du kan hitta ett exempel här: http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/
* Set up a simulation environment with a robot and work pieces.
* Create and fill up movement trajectories.
* Decompose features of a CAD part to a trajectory.
* Simulate the robot movement and reaching distance.
* Export the trajectory to a robot program file.

<div class="mw-translate-fuzzy">
Du kan hitta ett exempel här: [https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Example files] or try the [[Robot tutorial]].
</div>

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


== Tools ==
== Tools ==
Line 18: Line 48:
The tools to create and manage the 6-Axis robots
The tools to create and manage the 6-Axis robots


* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot|Create a robot]]: Insert a new robot into the scene
* [[Image:Robot_CreateRobot.svg|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_Simulate.svg|30px]] [[Robot_Simulate|Simulate a trajectory]]: Opens the simulation dialog and lets you simulate
* [[Image:Robot_Export.png|30px]] [[Robot_Export|Export a trajectory]]: Export a robot program file
* [[Image:Robot_Export.svg|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_SetHomePos.svg|30px]] [[Robot_SetHomePos|Set home position]]: Set the home position of a robot
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos|Restore home positon]]: move the robot to its home position
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos|Restore home position]]: move the robot to its home position


=== Trajectories ===
=== Trajectories ===
Tools to creat and manipulate trajectories. There are two kinds, the parametric and non parametric ones.
Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones.


==== non parametric ====
==== Non parametric trajectories ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Insert a new robot into the scene
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Inserts a new empty trajectory-object into the scene
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: set the defaults for way-point creation
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: Set the default values for way-point creation
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory
* [[Image:Robot_InsertWaypoint.svg|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Insert a waypoint]]: Insert a way-point from the current mouse position into a trajectory
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre|Insert a waypoint preselected]]: Insert a way-point from the current mouse position into a trajectory


==== parametric ====
==== Parametric trajectories ====
* [[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_Edge2Trac.svg|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_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Lets 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
* [[Image:Robot_TrajectoryCompound.svg|30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: Create a compound out of some single trajectories


<div class="mw-translate-fuzzy">
== Skript ==
== Skript ==


Detta avsnitt är genererat från: http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Robot/RobotExample.py?view=markup
Detta avsnitt är genererat från: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py
Du kan använda den filen direkt, om du vill.
Du kan använda den filen direkt, om du vill.
</div>


See the [[Robot API example|Robot API example]] for a description of the functions used to model the robot displacements.
Exempel på hur man använder klassen Robot6Axis, vilken representerar en 6-axlig
industrirobot. Robot modulen beror på Delmodulen, men inte på andra modulen.
Den arbetar mest med enkla typer som Placering, Vektor och Matris. Så vi behöver
bara:
from Robot import *
from Part import *
from FreeCAD import *
=== Grundläggande robotsaker ===
Skapa roboten. Om du inte specificerar någon annan kinematik så blir det en Puma 560
rob = Robot6Axis()
print rob
komma åt axlarna och tcp (verktygets centrumpunkt). Axlarna är 1-6 och värdena uttrycks i grader:
Start = rob.Tcp
print Start
print rob.Axis1
flytta robotens första axel:
rob.Axis1 = 5.0
Tcp har ändrats (framåtgående kinematik)
print rob.Tcp
flytta tillbaka roboten till startpositionen (bakåtgående kinematik):
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 ===


== Tutorials ==
Working with the robot document objects:
* [[Robot_6-Axis/sv|6-Axis_Robot]]
first create a robot in the active document
* [[VRML Preparation for Robot Simulation/sv|VRML Preparation for Robot Simulation]]
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))


== Tutorials ==
* [[6-Axis_Robot|6-Axis_Robot]]
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]]


<div class="mw-translate-fuzzy">
{{docnav|Arch Module|Macros}}
{{docnav/sv|Draft Module/sv|Macros/sv}}
</div>


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

[[Category:Workbenches{{#translation:}}]]

<languages/>

Revision as of 18:14, 9 August 2020

The Robot Workbench is unmaintained. If you have experience with the topic and are interested in maintaining it, please state your intention in the developer's section of the FreeCAD forum.

The reason this workbench is still in the master source code is because this workbench is programmed in C++. If this workbench could be programmed in Python, then it could be made an external workbench and it could be moved to a separate repository.

Introduction

Robot workbench icon

Robot arbetsbänken är ett verktyg för simulering av 6-axliga industrirobotar, som t.ex. Kuka. Denna arbetsbänk är ett pågående arbete för att implementera ett off-line programmeringsverktyg för Robot_6-Axis industrirobotar i FreeCAD. You can do following tasks:

  • set up a simulation environment with a robot and work pieces
  • create and fill up trajectories
  • decompose features of an CAD part to a trajectory
  • simulate the robot movement and reachability
  • export the trajectory to a robot program file

You can do the following tasks:

  • Set up a simulation environment with a robot and work pieces.
  • Create and fill up movement trajectories.
  • Decompose features of a CAD part to a trajectory.
  • Simulate the robot movement and reaching distance.
  • Export the trajectory to a robot program file.

Du kan hitta ett exempel här: Example files or try the Robot tutorial.

Tools

Here the principal commands you can use to create a robot set-up.

Robots

The tools to create and manage the 6-Axis robots

Trajectories

Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones.

Non parametric trajectories

Parametric trajectories

Skript

Detta avsnitt är genererat från: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Du kan använda den filen direkt, om du vill.

See the Robot API example for a description of the functions used to model the robot displacements.

Tutorials


Draft Module/sv
Macros/sv