Atelierul Robotică
Atelierul robotică este un instrument 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.
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
- Creați un robot: Introduceți un nou robot în scenă
- Simulate a trajectory: Deschide dialogul de simulare și vă permite să simulați
- Export a trajectory: Exportați un fișier conținând programul robotului
- Set home positon: Stabiliți poziția 0 a robotului
- Restore home positon: Mutați robotul în poziția zero
Traiectorii
Instrumente pentru crearea și manipularea traiectoriilor. Există două tipuri, cele parametrice și cele neparametrice.
traiectoriile non parametrice
- Creați o traiectorie: Introduceți o traiectorie goală în scenă
- Stabiliți orientarea implicită: Definiți orientarea implicită a punctelor de trecere
- /Definiți parametrul implicit al vitezei: Stabiliți valorile implicite pentru crearea punctelor de trecere
- Inserați un punct de trecere: Inserați un punct de trecere de la poziția curentă a robotului într-o traiectorie
- Inserați un punct de trecere: Inserați un punct de trecere de la poziția curentă a mouse-ului într-o traiectorie
traiectorii parametrice
- Generează o traiectorie dintr-un set de muchii: Include un obiect nou ale cărui muchii vor forma o traiectorie
- Traiectorie suplimentară(Dress-up): Creați o traiectorie suplimentară care va suprascrie anumite proprietăți ale traiectoriei inițiale
- Gruparea și conectarea traiectoriilor: Conectează un set de traiectorii și creează o traiectorie mai complexă
Script
Această secțiune este generată prin: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Puteți folosi acest fișier direct dacă doriți.
Acesta este un 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 se mișcă în grade:
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
generați mai mult. Traiectoria întotdeauna găsește automat un nume unic pentru punctele de trecere
l = [w]
for i in range(5):
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt"))
creați o traiectorie
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"))
uite o listă a tuturor punctelor de trecere:
print t.Waypoints
del rob,Start,t,l,w
Lucrul cu obiectele documentului
Pentru a lucra cu obiectele documentului robot: creați mai întâi un robot în documentul activ
if(App.activeDocument() == None):App.newDocument()
App.activeDocument().addObject("Robot::RobotObject","Robot")
Definiți reprezentarea vizuală și definiția cinematică (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"
poziția inițială a Axei (numai dacă diferă de 0)
App.activeDocument().Robot.Axis2 = -90
App.activeDocument().Robot.Axis3 = 90
extrageți poziția Tcp
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
motați robotul
pos.move(App.Vector(-10,0,0))
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos
creați o traiectorie vidă în documentul activ
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
obțineți Traiectoria
t = App.activeDocument().Trajectory.Trajectory
adăugați poziția TCP reală a robotului în traiectorie
StartTcp = App.activeDocument().Robot.Tcp
t.insertWaypoints(StartTcp)
App.activeDocument().Trajectory.Trajectory = t
print App.activeDocument().Trajectory.Trajectory
introduceți mai multe puncte de traseu și punctul de pornire la sfârșitul din nou:
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
Simularea
Care trebuie dăcută.....
Exportând traiectorie
Traiectoria este exportată by Python. Asta înseamnă că pentru fiecare tip de dulap de comandă există un postprocesor Modul Python. Aici este detaliat post-procesorul Kuka descris
from KukaExporter import ExportCompactSub
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src')
și asta este felul cum se face:
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