Robot Workbench/sv: Difference between revisions
Renatorivo (talk | contribs) (Created page with "Category:User Documentation/sv") |
(Updating to match new version of source page) |
||
Line 134: | Line 134: | ||
App.activeDocument().Trajectory.Trajectory = t |
App.activeDocument().Trajectory.Trajectory = t |
||
print App.activeDocument().Trajectory.Trajectory |
print App.activeDocument().Trajectory.Trajectory |
||
=== Simulation === |
=== Simulation === |
||
ska göras..... |
ska göras..... |
Revision as of 11:55, 14 August 2014
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 6-Axis Robot 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
Du kan hitta ett exempel här: http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/
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 let you simulate
- Export a trajectory: Export a robot program file
- Set home positon: Set the home position of an robot
- Restore home positon: move the robot to its home position
Trajectories
Tools to creat and manipulate trajectories. There are two kinds, the parametric and non parametric ones.
non parametric
- Create a trajectory: Insert a new robot into the scene
- Set the default orientation: Set the orientation way-points gets created by default
- Set the default speed parameter: set the defaults for way-point creation
- Insert a waypoint: Insert a way-point from the current robot position into a trajectory
- Insert a waypoint: Insert a way-point from the current mouse position into a trajectory
parametric
- Create a trajectory out of edges: Insert a new object which decompose edges to a trajectory
- Dress-up a trajectory: Let 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: http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Robot/RobotExample.py?view=markup Du kan använda den filen direkt, om du vill.
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
samma med axel 2:
rob.Axis2 = 5.0 print rob.Tcp rob.Tcp = Start print rob.Axis2
Banpunkter:
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
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
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:
print t.Waypoints del rob,Start,t,l,w
arbeta med dokumentet
Arbeta med robotdokument objekten: skapa först en robot i det aktiva dokumentet
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)
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)
App.activeDocument().Robot.Axis2 = -90 App.activeDocument().Robot.Axis3 = 90
hämta Tcp positionen
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
flytta roboten
pos.move(App.Vector(-10,0,0)) FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos
skapa ett tomt banobjekt i det aktiva dokumentet
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
hämta banan
t = App.activeDocument().Trajectory.Trajectory
lägg till robotens aktuella TCP position till banan
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:
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
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:
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