Robot Workbench/sv: Difference between revisions
(Updating to match new version of source page) |
No edit summary |
||
(20 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 [[ |
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: |
|||
* 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]]. |
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. |
* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot|Create a robot]]: Insert a new robot into the scene |
||
* [[Image:Robot_Simulate. |
* [[Image:Robot_Simulate.svg|30px]] [[Robot_Simulate|Simulate a trajectory]]: Opens the simulation dialog and lets you simulate |
||
* [[Image:Robot_Export. |
* [[Image:Robot_Export.svg|30px]] [[Robot_Export|Export a trajectory]]: Export a robot program file |
||
* [[Image:Robot_SetHomePos. |
* [[Image:Robot_SetHomePos.svg|30px]] [[Robot_SetHomePos|Set home position]]: Set the home position of a robot |
||
* [[Image:Robot_RestoreHomePos. |
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos|Restore home position]]: move the robot to its home position |
||
=== Trajectories === |
=== Trajectories === |
||
Tools to |
Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones. |
||
==== |
==== Non parametric trajectories ==== |
||
* [[Image:Robot_CreateTrajectory. |
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Inserts a new empty trajectory-object into the scene |
||
* [[Image:Robot_SetDefaultOrientation. |
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default |
||
* [[Image:Robot_SetDefaultValues. |
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: Set the default values for way-point creation |
||
* [[Image:Robot_InsertWaypoint. |
* [[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. |
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre|Insert a waypoint preselected]]: Insert a way-point from the current mouse position into a trajectory |
||
==== |
==== Parametric trajectories ==== |
||
* [[Image:Robot_Edge2Trac. |
* [[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. |
* [[Image:Robot_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Lets you override one or more properties of a trajectory |
||
* [[Image:Robot_TrajectoryCompound. |
* [[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: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
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: |
|||
{{Code|code= |
|||
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 |
|||
{{Code|code= |
|||
rob = Robot6Axis() |
|||
print rob |
|||
}} |
|||
komma åt axlarna och tcp (verktygets centrumpunkt). Axlarna är 1-6 och värdena uttrycks i grader: |
|||
{{Code|code= |
|||
Start = rob.Tcp |
|||
print Start |
|||
print rob.Axis1 |
|||
}} |
|||
flytta robotens första axel: |
|||
{{Code|code= |
|||
rob.Axis1 = 5.0 |
|||
}} |
|||
Tcp har ändrats (framåtgående kinematik) |
|||
{{Code|code= |
|||
print rob.Tcp |
|||
}} |
|||
flytta tillbaka roboten till startpositionen (bakåtgående kinematik): |
|||
{{Code|code= |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
}} |
|||
samma med axel 2: |
|||
{{Code|code= |
|||
rob.Axis2 = 5.0 |
|||
print rob.Tcp |
|||
rob.Tcp = Start |
|||
print rob.Axis2 |
|||
}} |
|||
Banpunkter: |
|||
{{Code|code= |
|||
w = Waypoint(Placement(),name="Pt",type="LIN") |
|||
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool |
|||
}} |
|||
generera mer. Banan hittar alltid automatiskt på ett unikt namn för banpunkterna |
|||
{{Code|code= |
|||
l = [w] |
|||
for i in range(5): |
|||
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
Skapa en bana |
|||
{{Code|code= |
|||
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")) |
|||
}} |
|||
se en lista på alla banpunkter: |
|||
{{Code|code= |
|||
print t.Waypoints |
|||
del rob,Start,t,l,w |
|||
}} |
|||
=== Working with the document objects === |
|||
Arbeta med robotdokument objekten: |
|||
skapa först en robot i det aktiva dokumentet |
|||
{{Code|code= |
|||
if(App.activeDocument() == None):App.newDocument() |
|||
App.activeDocument().addObject("Robot::RobotObject","Robot") |
|||
}} |
|||
Definiera den visuella representationen och den kinematiska definitionen (se [[6-Axis Robot/sv]] för detaljer om det) |
|||
{{Code|code= |
|||
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" |
|||
}} |
|||
Axelns startpositon (endast om det skiljer sig från 0) |
|||
{{Code|code= |
|||
App.activeDocument().Robot.Axis2 = -90 |
|||
App.activeDocument().Robot.Axis3 = 90 |
|||
}} |
|||
hämta Tcp positionen |
|||
{{Code|code= |
|||
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp |
|||
}} |
|||
flytta roboten |
|||
{{Code|code= |
|||
pos.move(App.Vector(-10,0,0)) |
|||
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos |
|||
}} |
|||
skapa ett tomt banobjekt i det aktiva dokumentet |
|||
{{Code|code= |
|||
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") |
|||
}} |
|||
hämta banan |
|||
{{Code|code= |
|||
t = App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
lägg till robotens aktuella TCP position till banan |
|||
{{Code|code= |
|||
StartTcp = App.activeDocument().Robot.Tcp |
|||
t.insertWaypoints(StartTcp) |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
sätt in några fler banpunkter och startpunkten i slutet igen: |
|||
{{Code|code= |
|||
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 === |
|||
ska göras..... |
|||
=== Exportera banan === |
|||
Banan exporteras av Python. Det innebär att för varje robotkontroll typ så finns det en post-processor |
|||
Python modul. Här är Kuka post-processorn beskriven i detalj |
|||
{{Code|code= |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
}} |
|||
och det är ungefär så här det görs: |
|||
{{Code|code= |
|||
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 == |
== Tutorials == |
||
* [[ |
* [[Robot_6-Axis/sv|6-Axis_Robot]] |
||
* [[VRML Preparation for Robot Simulation/sv|VRML Preparation for Robot Simulation]] |
* [[VRML Preparation for Robot Simulation/sv|VRML Preparation for Robot Simulation]] |
||
{{docnav/sv|Draft Module/sv|Macros/sv}} |
|||
<div class="mw-translate-fuzzy"> |
|||
[[Category:User Documentation/sv]] |
|||
{{docnav/sv|Draft Workbench/sv|Macros/sv}} |
|||
</div> |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
<languages/> |
|||
[[Category:Workbenches{{#translation:}}]] |
Latest revision as of 21:52, 29 August 2021
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 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
- Create a robot: Insert a new robot into the scene
- Simulate a trajectory: Opens the simulation dialog and lets you simulate
- Export a trajectory: Export a robot program file
- Set home position: Set the home position of a robot
- Restore home position: move the robot to its home position
Trajectories
Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones.
Non parametric trajectories
- Create a trajectory: Inserts a new empty trajectory-object into the scene
- Set the default orientation: Set the orientation way-points gets created by default
- Set the default speed parameter: Set the default values for way-point creation
- Insert a waypoint: Insert a way-point from the current robot position into a trajectory
- Insert a waypoint preselected: Insert a way-point from the current mouse position into a trajectory
Parametric trajectories
- Create a trajectory out of edges: Insert a new object which decompose edges to a trajectory
- Dress-up a trajectory: Lets you override one or more properties of a trajectory
- Trajectory compound: Create a compound out of some single 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
- Trajectories, non parametric: Create a trajectory, Set default orientation, Set default values, Insert waypoint, Insert waypoint (mouse)
- Trajectories, parametric: Create a trajectory from edges, Dress-up trajectory, Trajectory compound
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub