added break for databaseCreator
This commit is contained in:
+39
-12
@@ -1,4 +1,5 @@
|
||||
import numpy as npy
|
||||
import sys
|
||||
|
||||
from RobotLib import *
|
||||
|
||||
@@ -7,20 +8,28 @@ class Looper:
|
||||
def __init__(self, Robot):
|
||||
self.stepsize = 1
|
||||
self.robot = Robot
|
||||
self.servo1_start = self.robot.servo1.min
|
||||
self.servo2_start = self.robot.servo2.min
|
||||
self.servo3_start = self.robot.servo3.min
|
||||
|
||||
def run(self):
|
||||
for ang_servo1 in npy.arange(self.robot.servo1.min, self.robot.servo1.max, self.stepsize):
|
||||
self.robot.servo1.set_angle(ang_servo1)
|
||||
for ang_servo2 in npy.arange(self.robot.servo2.min, self.robot.servo2.max, self.stepsize):
|
||||
self.robot.servo2.set_angle(ang_servo2)
|
||||
for ang_servo3 in npy.arange(self.robot.servo3.min, self.robot.servo3.max, self.stepsize):
|
||||
self.robot.servo3.set_angle(ang_servo3)
|
||||
self.robot.calculate()
|
||||
self.robot.data.add_entry(self.robot.Database.Entry(self.robot.x, self.robot.y,
|
||||
self.robot.efficency,
|
||||
self.robot.servo1, self.robot.servo2,
|
||||
self.robot.servo3))
|
||||
print("A database with {} entries has been created.".format(len(self.robot.data.database)))
|
||||
try:
|
||||
for ang_servo1 in npy.arange(self.servo1_start, self.robot.servo1.max, self.stepsize):
|
||||
self.robot.servo1.set_angle(ang_servo1)
|
||||
for ang_servo2 in npy.arange(self.servo2_start, self.robot.servo2.max, self.stepsize):
|
||||
self.robot.servo2.set_angle(ang_servo2)
|
||||
for ang_servo3 in npy.arange(self.servo3_start, self.robot.servo3.max, self.stepsize):
|
||||
self.robot.servo3.set_angle(ang_servo3)
|
||||
self.robot.calculate()
|
||||
self.robot.data.add_entry(self.robot.Database.Entry(self.robot.x, self.robot.y,
|
||||
self.robot.efficency,
|
||||
self.robot.servo1, self.robot.servo2,
|
||||
self.robot.servo3))
|
||||
print("A database with {} entries has been created.".format(len(self.robot.data.database)))
|
||||
except KeyboardInterrupt:
|
||||
self.serialize("database.temp")
|
||||
print("Serialized")
|
||||
sys.exit()
|
||||
|
||||
def export(self):
|
||||
file = open("database.data", 'w')
|
||||
@@ -29,6 +38,23 @@ class Looper:
|
||||
file.close()
|
||||
print("Exported")
|
||||
|
||||
def serialize(self, filepath):
|
||||
with open(filepath, 'w') as file:
|
||||
line = "{},{},{}\n".format(self.robot.servo1.deg, self.robot.servo2.deg, self.robot.servo3.deg)
|
||||
file.write(line)
|
||||
file.write(self.robot.data.serialize())
|
||||
file.flush()
|
||||
|
||||
def deserialize(self, filepath):
|
||||
with open(filepath, 'r') as file:
|
||||
line = file.readline()
|
||||
line = line.split(',')
|
||||
self.servo1_start = float(line[0])
|
||||
self.servo2_start = float(line[1])
|
||||
self.servo3_start = float(line[2])
|
||||
lines = file.read()
|
||||
self.robot.data.deserialize(lines)
|
||||
|
||||
|
||||
test = Robot(Robot.Servo(1, Robot.Servo.Geometry(0.55, 2.3, 1.4)),
|
||||
Robot.Servo(2, Robot.Servo.Geometry(2.5, 0.55, 1.55)),
|
||||
@@ -38,6 +64,7 @@ test.init_depending(Robot.Arm(test.servo1, 10.26, 0.84), Robot.Arm(test.servo2,
|
||||
None, [test.servo1], [test.servo1, test.servo2])
|
||||
|
||||
looper = Looper(test)
|
||||
# looper.deserialize('database.temp')
|
||||
looper.run()
|
||||
looper.export()
|
||||
print("finished")
|
||||
|
||||
Reference in New Issue
Block a user