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
def get_world_coordinates(self):
return self.robot_app.get_world_coordinates()
return self.robot_app.world_coordinates
@check_robot_app
def get_axis_coordinates(self):
return self.robot_app.get_axis_coordinates()
return self.robot_app.axis_coordinates
@check_robot_app
def get_command_count(self):

View File

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

View File

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