From 7ae080f6de60616c91d9f3dbb00bdbea7d9cd1c4 Mon Sep 17 00:00:00 2001 From: Anton Tetov <anton@tetov.se> Date: Thu, 11 Nov 2021 19:50:02 +0100 Subject: [PATCH] update --- abb_egm_client/egm_client.py | 9 ++++++--- environment.yml | 1 + examples/send_configuration.py | 15 ++++++++++----- pyproject.toml | 8 ++++---- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/abb_egm_client/egm_client.py b/abb_egm_client/egm_client.py index 1dc36ff..e8a0878 100644 --- a/abb_egm_client/egm_client.py +++ b/abb_egm_client/egm_client.py @@ -1,11 +1,13 @@ import socket import logging -from typing import Any, Sequence, Tuple +from typing import Any, Tuple from abb_egm_client.atomic_counter import AtomicCounter from abb_egm_client.egm_pb2 import EgmRobot, EgmSensor, EgmHeader +import numpy as np +import numpy.typing as npt log = logging.getLogger(__name__) @@ -109,7 +111,7 @@ class EGMClient: return msg - def send_planned_configuration(self, configuration: Sequence[float]) -> None: + def send_planned_configuration(self, configuration: npt.ArrayLike[float]) -> None: """Send target configuration to robot controller. configuration @@ -118,7 +120,8 @@ class EGMClient: """ msg = self._create_sensor_msg() - msg.planned.joints.joints.extend(configuration) + conf_as_list = np.asarray(configuration).tolist() + msg.planned.joints.joints.extend(conf_as_list) self.send_msg(msg) diff --git a/environment.yml b/environment.yml index b776b14..0d84b95 100644 --- a/environment.yml +++ b/environment.yml @@ -4,3 +4,4 @@ channels: dependencies: - python >=3.7, <3.10 - protobuf + - numpy diff --git a/examples/send_configuration.py b/examples/send_configuration.py index 1feddc0..73a405f 100644 --- a/examples/send_configuration.py +++ b/examples/send_configuration.py @@ -3,6 +3,8 @@ import sys from typing import Sequence import time +import numpy as np +import numpy.typing as npt try: from abb_egm_client import EGMClient @@ -28,13 +30,14 @@ def send_configuration(target_conf: Sequence[float], joint_vel=1.0) -> None: egm_client = EGMClient(port=UDP_PORT) pb_robot_msg = egm_client.receive_msg() - start_conf = pb_robot_msg.feedBack.joints.joints + start_conf: Sequence[float] = pb_robot_msg.feedBack.joints.joints - deltas = [ - target_pos - start_pos for start_pos, target_pos in zip(start_conf, target_conf) - ] + start_conf_arr = np.array(start_conf) + target_conf_arr = np.array(target_conf) - max_delta = max([abs(d) for d in deltas]) + deltas: npt.ArrayLike[float] = target_conf_arr - start_conf_arr + + max_delta: float = np.fabs(deltas).max() num_msgs = round(max_delta / joint_vel * rate) @@ -43,6 +46,8 @@ def send_configuration(target_conf: Sequence[float], joint_vel=1.0) -> None: cur_configuration: Sequence[float] = pb_robot_msg.feedBack.joints.joints print(f"Current configuration {cur_configuration}") + + new_conf = start_conf_arr conf = [] for start_pos, delta in zip(start_conf, deltas): diff --git a/pyproject.toml b/pyproject.toml index a8df0f8..4d7a504 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,9 @@ [build-system] -requires = [ - "setuptools >= 40.9.0", - "wheel", -] +requires = ["setuptools >= 40.9.0", "wheel"] build-backend = "setuptools.build_meta" [tool.isort] profile = "black" + +[tool.mypy] +plugins = "numpy.typing.mypy_plugin" -- GitLab