Robot Workbench/ro: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 36: Line 36:


==== traiectorii parametrice ====
==== traiectorii parametrice ====
* [[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.png|30px]] [[Robot_Edge2Trac|Creați o traiectorie dincolo de margini]]: Inserați un nou obiect care descompune marginile într-o traiectorie
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Lets you override one or more properties of a trajectory
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Traiectorie suplimetnră(Dress-up)]]: Lets you override una sau mai multe proprietăți ale traiectoriei
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: Create a compound out of some single trajectories
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Traiectorie compusă]]: Creați o traiectorie complexă de la o singură traiectorie


== Scripting ==
== Scripting ==

Revision as of 05:36, 9 August 2018

Atelierul robotică este o unealtă pentru a simula un robot industrial cu 6 axe de libertate Robot 6-Axis, cum ar fi de ex. Kuka. Puteți efectua următoarele activități:

  • configurați un mediu de simulare cu un robot și piese de lucru
  • creați și urmați traiectoriile
  • descompune caracteristicile unei piese CAD într-o traiectorie
  • Simulați mișcarea și accesibilitatea robotului
  • exportați traiectoria într-un fișier de program de robot

Puteți găsi un exemplu aici: Example files sau încercați Robot tutorial.

Scule și Instrumente

Aici sunt comenzile principale pe care le puteți utiliza pentru a seta un robot.

Roboți

Instrumentele pentru crearea și gestionarea roboților cu 6 axe

Traiectorii

Instrumente pentru crearea și manipularea traiectoriilor. Există două tipuri, cele parametrice și cele neparametrice.

traiectoriile non parametrice

traiectorii parametrice

Scripting

This section is generated out of: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py You can use this file directly if you want.

Exemplu de utilizare a clasei de roboți de bază Robot6Axis care reprezintă un robot industrial cu 6 axe. Modulul Robot depinde de Atelierul Piese, dar nu și de alte module. Funcționează mai ales cu tipurile de bază Plasament, Vector și Matrix. Deci avem nevoie numai:

from Robot import *
from Part import *
from FreeCAD import *

Chestii de bază în robotică

creați robotul. Dacă nu specificați altă cinematică, acesta devine un Puma 560

rob = Robot6Axis()
print rob

accesând axa și Tcp. Axele merg de la 1-6 și sunt în grad:

Start = rob.Tcp
print Start
print rob.Axis1

mișcați prima axă a robotului:

rob.Axis1 = 5.0

TCP sa schimbat (urmariți cinematica mecanismului)

print rob.Tcp

mișcați robotul înapoi în poziția inițială (kinematic invers):

rob.Tcp = Start
print rob.Axis1

la fel cu axa 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 objects

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 Robot 6-Axis 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))

Tutoriale


Arch Module/ro
Macros/ro