axis refactor

This commit is contained in:
aarizona 2024-11-22 09:44:47 +03:00
parent 2c00a21415
commit 695ae8ed1d
4 changed files with 1382 additions and 30 deletions

1345
app.log

File diff suppressed because it is too large Load Diff

View File

@ -113,11 +113,11 @@ class MyApp:
@check_robot_app @check_robot_app
def get_world_coordinates(self): def get_world_coordinates(self):
return self.robot_app.get_world_coordinates() return self.robot_app.world_coordinates
@check_robot_app @check_robot_app
def get_axis_coordinates(self): def get_axis_coordinates(self):
return self.robot_app.get_axis_coordinates() return self.robot_app.axis_coordinates
@check_robot_app @check_robot_app
def get_command_count(self): def get_command_count(self):

View File

@ -17,8 +17,10 @@ from robot.func import *
from robot.prepare_data import PrepareRobotData from robot.prepare_data import PrepareRobotData
from robot.urdf_manager import UrdfManager from robot.urdf_manager import UrdfManager
from robot.socket_manager import SocketManager from robot.socket_manager import SocketManager
# os.environ["LIBGL_ALWAYS_SOFTWARE"] = "1" # os.environ["LIBGL_ALWAYS_SOFTWARE"] = "1"
class SocketRobotArm: class SocketRobotArm:
global_speed = 10 global_speed = 10
physical_speed = 10 physical_speed = 10
@ -31,8 +33,8 @@ class SocketRobotArm:
pass_size = 4 pass_size = 4
connected_status = Literal["connected", "not_connected", "error"] connected_status = Literal["connected", "not_connected", "error"]
axis_coordinates = [] _axis_coordinates = []
world_coordinates = [] _world_coordinates = []
remote_command_count = [] remote_command_count = []
command_type = "base" command_type = "base"
@ -90,10 +92,10 @@ class SocketRobotArm:
def upd_model_func(self): def upd_model_func(self):
# logger.info("UPDATE MODEL FUNC")\ # logger.info("UPDATE MODEL FUNC")\
self.get_axis() self.get_coordinates("axis")
self.set_text(text=f"Координаты осей {self.axis_coordinates}") self.set_text(text=f"Координаты осей {self.axis_coordinates}")
self.get_world() self.get_coordinates("world")
self.set_text(text=f"Мировые координаты {self.world_coordinates}") self.set_text(text=f"Мировые координаты {self.world_coordinates}")
num_joints = p.getNumJoints(self.urdf_manager.body_id) num_joints = p.getNumJoints(self.urdf_manager.body_id)
@ -174,29 +176,33 @@ class SocketRobotArm:
def send_data(self, data): def send_data(self, data):
return self.socket_manager.send_data(data) return self.socket_manager.send_data(data)
def get_axis(self): def get_coordinates(self, coord_type: Literal["axis", "world"] = "axis"):
axis_coord_raw = self.send_data( request = make_query_data([f"{coord_type}-{i}" for i in range(6)])
make_query_data( result = self.send_data(request)
["axis-0", "axis-1", "axis-2", "axis-3", "axis-4", "axis-5"] if not result:
) return
) data = [
self.axis_coordinates = [float(i) for i in axis_coord_raw] float(i)
print("start_axis_coordinates", self.axis_coordinates) for i in result
]
if coord_type == "axis":
self._axis_coordinates = data
elif coord_type == "world":
self._world_coordinates = data
def get_axis_coordinates(self): @property
return self.axis_coordinates def axis_coordinates(self):
if not self._axis_coordinates:
return [0,0,0,0,0,0]
# self.get_coordinates("axis")
return self._axis_coordinates
def get_world(self): @property
world_coord_raw = self.send_data( def world_coordinates(self):
make_query_data( if not self._world_coordinates:
["world-0", "world-1", "world-2", "world-3", "world-4", "world-5"] return [0,0,0,0,0,0]
) # self.get_coordinates("world")
) return self._world_coordinates
self.world_coordinates = [float(i) for i in world_coord_raw]
print("start_world_coordinates", self.world_coordinates)
def get_world_coordinates(self):
return self.world_coordinates
def _get_command_count(self): def _get_command_count(self):
res = self.send_data(make_query_data(["RemoteCmdLen"])) res = self.send_data(make_query_data(["RemoteCmdLen"]))

View File

@ -98,10 +98,9 @@ def handle_client(conn, addr):
req = json.loads(data) req = json.loads(data)
print(req) print(req)
res = {"queryData": ["ok"]} res = {"queryData": ["ok"]}
global coordinates_index
if "queryAddr" in req and "axis-0" in req["queryAddr"]: if "queryAddr" in req and "axis-0" in req["queryAddr"]:
global coordinates_index
print(f"----{coordinates_index}----") print(f"----{coordinates_index}----")
c = c_angles[coordinates_index]
limit = len(c_angles) - 1 limit = len(c_angles) - 1
# limit = 2 # limit = 2
if coordinates_index < limit: if coordinates_index < limit:
@ -109,6 +108,8 @@ def handle_client(conn, addr):
else: else:
coordinates_index = 0 coordinates_index = 0
c = c_angles[coordinates_index]
if "queryAddr" in req and "axis-0" in req["queryAddr"]: if "queryAddr" in req and "axis-0" in req["queryAddr"]:
res["queryData"] = c["axis"] res["queryData"] = c["axis"]