diff --git a/DataTypes.py b/DataTypes.py index 1ae6f35..061cafa 100644 --- a/DataTypes.py +++ b/DataTypes.py @@ -19,6 +19,8 @@ class PosArray: def __getitem__(self, key): return self.data[key] def __iter__(self): return iter(self.data) def __repr__(self): return f"PosArray(\n{self.data}\n)" + def copy(self): + return PosArray(self.data.copy()) @dataclass @@ -37,6 +39,8 @@ class DegArray: def __getitem__(self, key): return self.data[key] def __iter__(self): return iter(self.data) def __repr__(self): return f"PosArray(\n{self.data}\n)" + def copy(self): + return DegArray(self.data.copy()) @dataclass class RadArray: @@ -53,6 +57,8 @@ class RadArray: def __getitem__(self, key): return self.data[key] def __iter__(self): return iter(self.data) def __repr__(self): return f"PosArray(\n{self.data}\n)" + def copy(self): + return RadArray(self.data.copy()) @dataclass class RobotCommand: diff --git a/RobotState/idle.py b/RobotState/idle.py index f3bc752..b0c6ffa 100644 --- a/RobotState/idle.py +++ b/RobotState/idle.py @@ -1,4 +1,4 @@ -import RobotState +from RobotState.RobotState import RobotState class IdleState(RobotState): def update(self, ctx, intent, dt): diff --git a/RobotState/walking.py b/RobotState/walking.py index 1c52411..b1dc8b0 100644 --- a/RobotState/walking.py +++ b/RobotState/walking.py @@ -4,7 +4,7 @@ import numpy as np import config as cfg import kinematics as kin import DataTypes as dt -import RobotState +from RobotState.RobotState import RobotState class WalkingState(RobotState): diff --git a/main.py b/main.py index b3cd014..a9d3316 100644 --- a/main.py +++ b/main.py @@ -15,6 +15,7 @@ import DataTypes as dt def main(): intent = ControlIntent() + lock = threading.Lock() ctx = RobotContext() ctx.center_points = dt.PosArray([ @@ -29,7 +30,7 @@ def main(): controller_thread = threading.Thread( target=controller_loop, - args=(intent,), + args=(intent, lock), daemon=True ) controller_thread.start()