Auführung der Rotationen
Wurde ein Programm erfolgreich erstellt und auf eventuelle Kollisionen überprüft, reicht ein einfacher Aufruf von core.manipulator.SimulationProgram.SimulationProgram.execute()
, um das Programm auszuführen.
Dabei ist es immer wichtig zu erwähnen, dass die Kollisionserkennung gemäß den RoboDK Einstellungen nicht kontinuierlich ausgeführt wird. Stattdessen wird die Position des Roboters während der Bewegung entlang des Pfades lediglich alle auf Kollisionen überprüft. Im Normalfall findet dieser Test mit statt, was im Zweifelsfall jedoch immer noch Kollisionen verpassen kann.
Darum ist es wichtig, auch bei erfolgreich generierten Programmen darauf zu achten, dass der Roboter nicht kollidiert.
Abspeichern von Lösungen¶
Da das generieren von Pfaden oft mehrere Minuten dauert, wurden alle relevanten Teile unseres Codes pickable
gemacht.
Das heißt, dass zum Beispiel CubeState
s oder auch ganze SimulationProgram
s in einer Datei zur späteren Verwendung abgelegt werden können.
Dafür reichen bereits ein paar Zeilen Code:
import pickle
SIMULATION_PROGRAM_PICKLE_FILEPATH = 'my_file.pickle'
#
# Generate SimulationProgram
#
with open(SIMULATION_PROGRAM_PICKLE_FILEPATH, 'wb') as file:
pickle.dump(simulation_program, file)