diff --git a/RobotLib.py b/RobotLib.py index db5b5d8..c0854a2 100644 --- a/RobotLib.py +++ b/RobotLib.py @@ -129,7 +129,9 @@ class Robot: return None, 0 def get_entry(self, x, y): - wanted = self.Entry(x, y, 0, 0, 0, 0) + wanted = self.Entry(x, y, 0, Robot.Servo(0, Robot.Servo.Geometry(0, 0, 0)), + Robot.Servo(0, Robot.Servo.Geometry(0, 0, 0)), + Robot.Servo(0, Robot.Servo.Geometry(0, 0, 0))) _return, i = self._is_contained(wanted) return _return @@ -153,7 +155,7 @@ class Robot: for entry in entries: coordinates = entry.split(":")[0] servos = entry.split(":")[1] - new = self.Entry(float(coordinates[0]), float(coordinates[1]), float(servos[0]), float(servos[1]), + new = self.Entry(float(coordinates[0]), float(coordinates[1]), -1, float(servos[0]), float(servos[1]), float(servos[2])) self.database.append(new) diff --git a/databaseCreator.py b/databaseCreator.py index ccf2ab2..518a3a6 100644 --- a/databaseCreator.py +++ b/databaseCreator.py @@ -1,24 +1,23 @@ import math import csv - geometry = { - "servo0min": 0.5, - "servo0max": 2.5, - "servo0mid": 1.85, - "servo1min": 2.3, - "servo1max": 0.55, - "servo1mid": 1.4, - "servo2min": 0.55, - "servo2max": 2.5, - "servo2mid": 1.55, - "servo3min": 2.25, - "servo3max": 0.7, - "servo3mid": 2.25, - "servo4min": 0.5, - "servo4max": 2.5, - "servo4mid": 1.5 - } + "servo0min": 0.5, + "servo0max": 2.5, + "servo0mid": 1.85, + "servo1min": 2.3, + "servo1max": 0.55, + "servo1mid": 1.4, + "servo2min": 0.55, + "servo2max": 2.5, + "servo2mid": 1.55, + "servo3min": 2.25, + "servo3max": 0.7, + "servo3mid": 2.25, + "servo4min": 0.5, + "servo4max": 2.5, + "servo4mid": 1.5 +} arms = { 0: 0.84, 1: 10.26, @@ -83,7 +82,7 @@ def get_ms(servo, angle): val_min = geometry[minimum] val_max = geometry[maximum] val_mid = geometry[middle] - change = 1/90 + change = 1 / 90 if val_min > val_max: change *= -1 ms = (angle * change + val_mid) @@ -132,12 +131,12 @@ if eff < replace """ db = {} for steps in range(1, 0, -0.2): - for servo1 in range(pos[1][0], pos[1][1], steps): - for servo2 in range(pos[2][0], pos[2][1], steps): - for servo3 in range(pos[3][0], pos[3][1], steps): - for servo4 in range(pos[4][0], pos[4][1], steps): - coordinate = [] - coordinate.append(get_pos([servo1, servo2, servo3, servo4])) - #coordinate.append(get_efficency([servo0, servo1, servo2, servo3, servo4])) - if coordinate in db: - if db[coordinate][] + for servo1 in range(pos[1][0], pos[1][1], steps): + for servo2 in range(pos[2][0], pos[2][1], steps): + for servo3 in range(pos[3][0], pos[3][1], steps): + for servo4 in range(pos[4][0], pos[4][1], steps): + coordinate = [] + coordinate.append(get_pos([servo1, servo2, servo3, servo4])) + # coordinate.append(get_efficency([servo0, servo1, servo2, servo3, servo4])) + if coordinate in db: + if db[coordinate][] diff --git a/terminalControl.py b/terminalControl.py index 62b5f1f..1b6810e 100644 --- a/terminalControl.py +++ b/terminalControl.py @@ -223,9 +223,9 @@ class argvReader: :param filepath: filepath of the file to which the position should be written to :return: The angles of servo0 to servo3 seperated by a ',' """ - with open(filepath, 'w') as file: + with open(filepath, 'w') as _file: string = "{},{},{},{}".format(servo0actual, joy_it.servo1.deg, joy_it.servo2.deg, joy_it.servo3.deg) - file.write(string) + _file.write(string) def deserialize(self, filepath): """ @@ -235,8 +235,8 @@ class argvReader: """ global servo0actual try: - with open(filepath, 'r') as file: - string = file.readline() + with open(filepath, 'r') as _file: + string = _file.readline() string = string.split(",") servo0actual = float(string[0]) joy_it.servo1.set_angle(float(string[1]))