rainbow-rb-sdk 0.0.9.dev28__tar.gz → 0.0.9.dev31__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/PKG-INFO +6 -6
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/pyproject.toml +6 -6
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/base.py +24 -20
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_move.py +178 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/PKG-INFO +6 -6
- rainbow_rb_sdk-0.0.9.dev31/src/rainbow_rb_sdk.egg-info/requires.txt +6 -0
- rainbow_rb_sdk-0.0.9.dev28/src/rainbow_rb_sdk.egg-info/requires.txt +0 -6
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/README.md +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/setup.cfg +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_accessory.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_capability.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_control.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_file.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_localization.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_map.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_move.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_program.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_setting.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_status.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/schema/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/base_sdk/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/base_sdk/base_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_config.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_get_data.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_io.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_maintenance.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_point.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_program.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_service.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/manipulate_state.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/schema/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/schema/manipulate_config_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/schema/manipulate_io_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/schema/manipulate_move_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/manipulate_sdk/schema/manipulate_program_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/client_modules.pyi +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/program.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/program_interface.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/test_binding.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/base.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/client.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/config.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/control.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/exceptions.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/state.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/__init__.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/amr_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/base_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/manipulate_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/program_schema.py +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/SOURCES.txt +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/dependency_links.txt +0 -0
- {rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/top_level.txt +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rainbow-rb-sdk
|
|
3
|
-
Version: 0.0.9.
|
|
3
|
+
Version: 0.0.9.dev31
|
|
4
4
|
Summary: Rainbow Robotics 통합 Python SDK — AMR, 매니퓰레이터, RB-Y1 휴머노이드와 Rainbow Robot Service(common) 연동
|
|
5
5
|
Author-email: Derek <dfd1123@rainbow-robotics.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
|
-
Requires-Dist: rainbow-rb-utils==0.0.9.
|
|
9
|
-
Requires-Dist: rainbow-rb-zenoh==0.0.9.
|
|
10
|
-
Requires-Dist: rainbow-rb-flat-buffers==0.0.9.
|
|
11
|
-
Requires-Dist: rainbow-rb-schemas==0.0.9.
|
|
12
|
-
Requires-Dist: rainbow-rb-log==0.0.9.
|
|
8
|
+
Requires-Dist: rainbow-rb-utils==0.0.9.dev31
|
|
9
|
+
Requires-Dist: rainbow-rb-zenoh==0.0.9.dev31
|
|
10
|
+
Requires-Dist: rainbow-rb-flat-buffers==0.0.9.dev31
|
|
11
|
+
Requires-Dist: rainbow-rb-schemas==0.0.9.dev31
|
|
12
|
+
Requires-Dist: rainbow-rb-log==0.0.9.dev31
|
|
13
13
|
Requires-Dist: rby1-sdk>=0.9.1
|
|
14
14
|
|
|
15
15
|
# rb_sdk
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rainbow-rb-sdk"
|
|
7
|
-
version = "0.0.9.
|
|
7
|
+
version = "0.0.9.dev31"
|
|
8
8
|
requires-python = ">=3.11"
|
|
9
9
|
description = "Rainbow Robotics 통합 Python SDK — AMR, 매니퓰레이터, RB-Y1 휴머노이드와 Rainbow Robot Service(common) 연동"
|
|
10
10
|
authors = [
|
|
@@ -13,11 +13,11 @@ authors = [
|
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
|
|
15
15
|
dependencies = [
|
|
16
|
-
"rainbow-rb-utils==0.0.9.
|
|
17
|
-
"rainbow-rb-zenoh==0.0.9.
|
|
18
|
-
"rainbow-rb-flat-buffers==0.0.9.
|
|
19
|
-
"rainbow-rb-schemas==0.0.9.
|
|
20
|
-
"rainbow-rb-log==0.0.9.
|
|
16
|
+
"rainbow-rb-utils==0.0.9.dev31",
|
|
17
|
+
"rainbow-rb-zenoh==0.0.9.dev31",
|
|
18
|
+
"rainbow-rb-flat-buffers==0.0.9.dev31",
|
|
19
|
+
"rainbow-rb-schemas==0.0.9.dev31",
|
|
20
|
+
"rainbow-rb-log==0.0.9.dev31",
|
|
21
21
|
"rby1-sdk>=0.9.1",
|
|
22
22
|
]
|
|
23
23
|
|
|
@@ -307,7 +307,8 @@ class RBBaseSDK:
|
|
|
307
307
|
self._peer_id: str | None = None
|
|
308
308
|
self._peer_common_url: str | None = None
|
|
309
309
|
self._peer_token: str | None = None
|
|
310
|
-
self._heartbeat_task:
|
|
310
|
+
self._heartbeat_task: threading.Thread | None = None
|
|
311
|
+
self._heartbeat_stop: threading.Event = threading.Event()
|
|
311
312
|
|
|
312
313
|
self._initialized = True
|
|
313
314
|
|
|
@@ -680,9 +681,16 @@ class RBBaseSDK:
|
|
|
680
681
|
self._peer_token = token
|
|
681
682
|
|
|
682
683
|
interval = heartbeat if heartbeat is not None else max(1.0, ttl / 2)
|
|
683
|
-
self.
|
|
684
|
-
|
|
684
|
+
self._heartbeat_stop = threading.Event()
|
|
685
|
+
hb_thread = threading.Thread(
|
|
686
|
+
target=self._heartbeat_loop,
|
|
687
|
+
args=(peer_id,),
|
|
688
|
+
kwargs={"ttl": ttl, "interval": interval},
|
|
689
|
+
daemon=True,
|
|
690
|
+
name=f"sdk-heartbeat-{peer_id[:8]}",
|
|
685
691
|
)
|
|
692
|
+
hb_thread.start()
|
|
693
|
+
self._heartbeat_task = hb_thread
|
|
686
694
|
|
|
687
695
|
try:
|
|
688
696
|
await self._wait_for_zenoh_echo(
|
|
@@ -693,10 +701,7 @@ class RBBaseSDK:
|
|
|
693
701
|
interval=mesh_probe_interval,
|
|
694
702
|
)
|
|
695
703
|
except BaseException:
|
|
696
|
-
|
|
697
|
-
self._heartbeat_task.cancel()
|
|
698
|
-
with contextlib.suppress(asyncio.CancelledError):
|
|
699
|
-
await self._heartbeat_task
|
|
704
|
+
self._heartbeat_stop.set()
|
|
700
705
|
self._heartbeat_task = None
|
|
701
706
|
self._peer_id = None
|
|
702
707
|
self._peer_common_url = None
|
|
@@ -720,11 +725,11 @@ class RBBaseSDK:
|
|
|
720
725
|
if peer_id is None:
|
|
721
726
|
return False
|
|
722
727
|
|
|
723
|
-
# heartbeat
|
|
724
|
-
if self
|
|
725
|
-
self.
|
|
726
|
-
|
|
727
|
-
|
|
728
|
+
# heartbeat 스레드 중단
|
|
729
|
+
if hasattr(self, "_heartbeat_stop"):
|
|
730
|
+
self._heartbeat_stop.set()
|
|
731
|
+
if self._heartbeat_task and self._heartbeat_task.is_alive():
|
|
732
|
+
self._heartbeat_task.join(timeout=2.0)
|
|
728
733
|
self._heartbeat_task = None
|
|
729
734
|
|
|
730
735
|
url = self._peer_common_url
|
|
@@ -757,16 +762,15 @@ class RBBaseSDK:
|
|
|
757
762
|
|
|
758
763
|
return True
|
|
759
764
|
|
|
760
|
-
|
|
761
|
-
"""
|
|
762
|
-
|
|
763
|
-
|
|
765
|
+
def _heartbeat_loop(self, peer_id: str, *, ttl: int, interval: float) -> None:
|
|
766
|
+
"""별도 스레드에서 heartbeat를 전송한다. asyncio 이벤트 루프와 무관하게 동작."""
|
|
767
|
+
stop: threading.Event = getattr(self, "_heartbeat_stop", threading.Event())
|
|
768
|
+
while not stop.wait(timeout=interval):
|
|
764
769
|
if self._peer_common_url is None or self._peer_token is None:
|
|
765
770
|
break
|
|
766
771
|
headers = {"Authorization": f"Bearer {self._peer_token}"}
|
|
767
772
|
try:
|
|
768
|
-
resp_data =
|
|
769
|
-
self._http_json,
|
|
773
|
+
resp_data = self._http_json(
|
|
770
774
|
"POST",
|
|
771
775
|
f"{self._peer_common_url}/zenoh/peer/{peer_id}/heartbeat",
|
|
772
776
|
{"ttl": ttl},
|
|
@@ -775,8 +779,8 @@ class RBBaseSDK:
|
|
|
775
779
|
)
|
|
776
780
|
if not resp_data.get("ok"):
|
|
777
781
|
print(f"[SDK] heartbeat rejected for peer {peer_id}, closing session", flush=True)
|
|
778
|
-
self._heartbeat_task = None # 자기 자신이므로
|
|
779
|
-
|
|
782
|
+
self._heartbeat_task = None # 자기 자신이므로 join 스킵
|
|
783
|
+
self._run_coro_blocking(self.disconnect(), timeout=5)
|
|
780
784
|
return
|
|
781
785
|
except Exception as e:
|
|
782
786
|
print(f"[SDK] heartbeat error for peer {peer_id}: {e}", flush=True)
|
|
@@ -25,6 +25,7 @@ from rainbow.rb_flat_buffers.IPC.Request_Move_SmoothJogL import Request_Move_Smo
|
|
|
25
25
|
from rainbow.rb_flat_buffers.IPC.Request_Move_SmoothJogStop import Request_Move_SmoothJogStopT
|
|
26
26
|
from rainbow.rb_flat_buffers.IPC.Request_Move_TickJogJ import Request_Move_TickJogJT
|
|
27
27
|
from rainbow.rb_flat_buffers.IPC.Request_Move_TickJogL import Request_Move_TickJogLT
|
|
28
|
+
from rainbow.rb_flat_buffers.IPC.Request_Move_Wait import Request_Move_WaitT
|
|
28
29
|
from rainbow.rb_flat_buffers.IPC.Request_Move_XB_ADD import Request_Move_XB_ADDT
|
|
29
30
|
from rainbow.rb_flat_buffers.IPC.Request_Move_XB_CLR import Request_Move_XB_CLRT
|
|
30
31
|
from rainbow.rb_flat_buffers.IPC.Request_Move_XB_RUN import Request_Move_XB_RUNT
|
|
@@ -54,10 +55,13 @@ from rainbow.rb_flat_buffers.IPC.Request_Wrapper_ArcSensing_On import Request_Wr
|
|
|
54
55
|
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_Conveyor_Off import Request_Wrapper_Conveyor_OffT
|
|
55
56
|
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_Conveyor_On import Request_Wrapper_Conveyor_OnT
|
|
56
57
|
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_Conveyor_Speed import Request_Wrapper_Conveyor_SpeedT
|
|
58
|
+
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_ServoL_Off import Request_Wrapper_ServoL_OffT
|
|
59
|
+
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_ServoL_On import Request_Wrapper_ServoL_OnT
|
|
57
60
|
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_TcpWeave_Off import Request_Wrapper_TcpWeave_OffT
|
|
58
61
|
from rainbow.rb_flat_buffers.IPC.Request_Wrapper_TcpWeave_On import Request_Wrapper_TcpWeave_OnT
|
|
59
62
|
from rainbow.rb_flat_buffers.IPC.Response_Functions import Response_FunctionsT
|
|
60
63
|
from rainbow.rb_flat_buffers.IPC.State_Core import State_Core
|
|
64
|
+
from rainbow.rb_schemas.fbs_models.manipulate.v1.common_struct_models import MoveInput_TargetPD
|
|
61
65
|
from rainbow.rb_schemas.sdk import FlowManagerArgs
|
|
62
66
|
from rainbow.rb_utils.flow_manager import eval_value
|
|
63
67
|
from rainbow.rb_utils.manipulate import validate_single_return_value
|
|
@@ -2634,3 +2638,177 @@ class RBManipulateMoveSDK(RBBaseSDK):
|
|
|
2634
2638
|
|
|
2635
2639
|
if flow_manager_args is not None:
|
|
2636
2640
|
flow_manager_args.done()
|
|
2641
|
+
|
|
2642
|
+
def call_wrapper_servo_l_on(
|
|
2643
|
+
self,
|
|
2644
|
+
robot_model: str,
|
|
2645
|
+
target: MoveInput_TargetPD,
|
|
2646
|
+
time_gap: float,
|
|
2647
|
+
filter: float,
|
|
2648
|
+
flow_manager_args: FlowManagerArgs | None = None,
|
|
2649
|
+
) -> Response_FunctionsT:
|
|
2650
|
+
"""
|
|
2651
|
+
[Wrapper ServoL On 호출 함수]
|
|
2652
|
+
Args:
|
|
2653
|
+
robot_model: 로봇 모델명
|
|
2654
|
+
target: 목표 위치 및 프레임 정보
|
|
2655
|
+
time_gap: 타임갭 값 (초)
|
|
2656
|
+
filter: 필터 값 (0~1 사이)
|
|
2657
|
+
flow_manager_args: RB PFM을 쓸때 전달된 Flow Manager 인자 (done 콜백 등)
|
|
2658
|
+
"""
|
|
2659
|
+
req = Request_Wrapper_ServoL_OnT()
|
|
2660
|
+
req.target = MoveInput_TargetT()
|
|
2661
|
+
req.target.tarValues = target.get("tar_values")
|
|
2662
|
+
req.target.tarFrame = target.get("tar_frame", 0)
|
|
2663
|
+
req.target.tarUnit = target.get("tar_unit", 0)
|
|
2664
|
+
req.filter = filter
|
|
2665
|
+
req.timeGap = time_gap
|
|
2666
|
+
|
|
2667
|
+
res = self.zenoh_client.query_one(
|
|
2668
|
+
f"{robot_model}/call_wrapper_servo_l_on",
|
|
2669
|
+
flatbuffer_req_obj=req,
|
|
2670
|
+
flatbuffer_res_T_class=Response_FunctionsT,
|
|
2671
|
+
flatbuffer_buf_size=8,
|
|
2672
|
+
timeout=15,
|
|
2673
|
+
)
|
|
2674
|
+
|
|
2675
|
+
if res["obj_payload"] is None:
|
|
2676
|
+
raise RuntimeError("Wrapper ServoL On: obj_payload is None")
|
|
2677
|
+
|
|
2678
|
+
self.manipulate_return_value(
|
|
2679
|
+
"call_wrapper_servo_l_on", res["obj_payload"], flow_manager_args
|
|
2680
|
+
)
|
|
2681
|
+
|
|
2682
|
+
if flow_manager_args is not None:
|
|
2683
|
+
flow_manager_args.done()
|
|
2684
|
+
|
|
2685
|
+
return res["obj_payload"]
|
|
2686
|
+
|
|
2687
|
+
def call_wrapper_servo_l_off(
|
|
2688
|
+
self,
|
|
2689
|
+
robot_model: str,
|
|
2690
|
+
flow_manager_args: FlowManagerArgs | None = None,
|
|
2691
|
+
) -> Response_FunctionsT:
|
|
2692
|
+
"""
|
|
2693
|
+
[Wrapper ServoL Off 호출 함수]
|
|
2694
|
+
Args:
|
|
2695
|
+
robot_model: 로봇 모델명
|
|
2696
|
+
flow_manager_args: RB PFM을 쓸때 전달된 Flow Manager 인자 (done 콜백 등)
|
|
2697
|
+
"""
|
|
2698
|
+
req = Request_Wrapper_ServoL_OffT()
|
|
2699
|
+
|
|
2700
|
+
res = self.zenoh_client.query_one(
|
|
2701
|
+
f"{robot_model}/call_wrapper_servo_l_off",
|
|
2702
|
+
flatbuffer_req_obj=req,
|
|
2703
|
+
flatbuffer_res_T_class=Response_FunctionsT,
|
|
2704
|
+
flatbuffer_buf_size=8,
|
|
2705
|
+
timeout=15,
|
|
2706
|
+
)
|
|
2707
|
+
|
|
2708
|
+
if res["obj_payload"] is None:
|
|
2709
|
+
raise RuntimeError("Wrapper ServoL Off: obj_payload is None")
|
|
2710
|
+
|
|
2711
|
+
self.manipulate_return_value(
|
|
2712
|
+
"call_wrapper_servo_l_off", res["obj_payload"], flow_manager_args
|
|
2713
|
+
)
|
|
2714
|
+
|
|
2715
|
+
if flow_manager_args is not None:
|
|
2716
|
+
flow_manager_args.done()
|
|
2717
|
+
|
|
2718
|
+
return res["obj_payload"]
|
|
2719
|
+
|
|
2720
|
+
def pub_wrapper_servo_l_on(
|
|
2721
|
+
self,
|
|
2722
|
+
robot_model: str,
|
|
2723
|
+
target: MoveInput_TargetPD,
|
|
2724
|
+
time_gap: float,
|
|
2725
|
+
filter: float,
|
|
2726
|
+
flow_manager_args: FlowManagerArgs | None = None,
|
|
2727
|
+
):
|
|
2728
|
+
"""
|
|
2729
|
+
[Wrapper ServoL On Publish 함수]
|
|
2730
|
+
Args:
|
|
2731
|
+
robot_model: 로봇 모델명
|
|
2732
|
+
target: 목표 위치 및 프레임 정보
|
|
2733
|
+
time_gap: 타임갭 값 (초)
|
|
2734
|
+
filter: 필터 값 (0~1 사이)
|
|
2735
|
+
flow_manager_args: RB PFM을 쓸때 전달된 Flow Manager 인자 (done 콜백 등)
|
|
2736
|
+
"""
|
|
2737
|
+
req = Request_Wrapper_ServoL_OnT()
|
|
2738
|
+
req.target = MoveInput_TargetT()
|
|
2739
|
+
req.target.tarValues = target.get("tar_values")
|
|
2740
|
+
req.target.tarFrame = target.get("tar_frame", 0)
|
|
2741
|
+
req.target.tarUnit = target.get("tar_unit", 0)
|
|
2742
|
+
req.filter = filter
|
|
2743
|
+
req.timeGap = time_gap
|
|
2744
|
+
|
|
2745
|
+
self.zenoh_client.publish(
|
|
2746
|
+
f"{robot_model}/pub_wrapper_servo_l_on",
|
|
2747
|
+
flatbuffer_req_obj=req,
|
|
2748
|
+
flatbuffer_buf_size=80,
|
|
2749
|
+
congestion_control=CongestionControl.DROP,
|
|
2750
|
+
priority=Priority.REAL_TIME,
|
|
2751
|
+
express=True,
|
|
2752
|
+
)
|
|
2753
|
+
|
|
2754
|
+
if flow_manager_args is not None:
|
|
2755
|
+
flow_manager_args.done()
|
|
2756
|
+
|
|
2757
|
+
def pub_wrapper_servo_l_off(
|
|
2758
|
+
self,
|
|
2759
|
+
robot_model: str,
|
|
2760
|
+
flow_manager_args: FlowManagerArgs | None = None,
|
|
2761
|
+
):
|
|
2762
|
+
"""
|
|
2763
|
+
[Wrapper ServoL Off Publish 함수]
|
|
2764
|
+
Args:
|
|
2765
|
+
robot_model: 로봇 모델명
|
|
2766
|
+
flow_manager_args: RB PFM을 쓸때 전달된 Flow Manager 인자 (done 콜백 등)
|
|
2767
|
+
"""
|
|
2768
|
+
req = Request_Wrapper_ServoL_OffT()
|
|
2769
|
+
|
|
2770
|
+
self.zenoh_client.publish(
|
|
2771
|
+
f"{robot_model}/pub_wrapper_servo_l_off",
|
|
2772
|
+
flatbuffer_req_obj=req,
|
|
2773
|
+
flatbuffer_buf_size=80,
|
|
2774
|
+
congestion_control=CongestionControl.DROP,
|
|
2775
|
+
priority=Priority.REAL_TIME,
|
|
2776
|
+
express=True,
|
|
2777
|
+
)
|
|
2778
|
+
|
|
2779
|
+
if flow_manager_args is not None:
|
|
2780
|
+
flow_manager_args.done()
|
|
2781
|
+
|
|
2782
|
+
def call_move_wait(
|
|
2783
|
+
self,
|
|
2784
|
+
robot_model: str,
|
|
2785
|
+
timeout_sec: float,
|
|
2786
|
+
flow_manager_args: FlowManagerArgs | None = None,
|
|
2787
|
+
) -> Response_FunctionsT:
|
|
2788
|
+
"""
|
|
2789
|
+
[Move Wait 호출 함수]
|
|
2790
|
+
Args:
|
|
2791
|
+
robot_model: 로봇 모델명
|
|
2792
|
+
timeout_sec: 타임아웃 시간 (초) : -1 는 무한대기
|
|
2793
|
+
flow_manager_args: RB PFM을 쓸때 전달된 Flow Manager 인자 (done 콜백 등)
|
|
2794
|
+
"""
|
|
2795
|
+
req = Request_Move_WaitT()
|
|
2796
|
+
req.timeoutSec = timeout_sec
|
|
2797
|
+
|
|
2798
|
+
res = self.zenoh_client.query_one(
|
|
2799
|
+
f"{robot_model}/call_move_wait",
|
|
2800
|
+
flatbuffer_req_obj=req,
|
|
2801
|
+
flatbuffer_res_T_class=Response_FunctionsT,
|
|
2802
|
+
flatbuffer_buf_size=8,
|
|
2803
|
+
timeout=timeout_sec + 3 if timeout_sec > 0 else None,
|
|
2804
|
+
)
|
|
2805
|
+
|
|
2806
|
+
if res["obj_payload"] is None:
|
|
2807
|
+
raise RuntimeError("Move Wait: obj_payload is None")
|
|
2808
|
+
|
|
2809
|
+
self.manipulate_return_value("call_move_wait", res["obj_payload"], flow_manager_args)
|
|
2810
|
+
|
|
2811
|
+
if flow_manager_args is not None:
|
|
2812
|
+
flow_manager_args.done()
|
|
2813
|
+
|
|
2814
|
+
return res["obj_payload"]
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/PKG-INFO
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rainbow-rb-sdk
|
|
3
|
-
Version: 0.0.9.
|
|
3
|
+
Version: 0.0.9.dev31
|
|
4
4
|
Summary: Rainbow Robotics 통합 Python SDK — AMR, 매니퓰레이터, RB-Y1 휴머노이드와 Rainbow Robot Service(common) 연동
|
|
5
5
|
Author-email: Derek <dfd1123@rainbow-robotics.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
|
-
Requires-Dist: rainbow-rb-utils==0.0.9.
|
|
9
|
-
Requires-Dist: rainbow-rb-zenoh==0.0.9.
|
|
10
|
-
Requires-Dist: rainbow-rb-flat-buffers==0.0.9.
|
|
11
|
-
Requires-Dist: rainbow-rb-schemas==0.0.9.
|
|
12
|
-
Requires-Dist: rainbow-rb-log==0.0.9.
|
|
8
|
+
Requires-Dist: rainbow-rb-utils==0.0.9.dev31
|
|
9
|
+
Requires-Dist: rainbow-rb-zenoh==0.0.9.dev31
|
|
10
|
+
Requires-Dist: rainbow-rb-flat-buffers==0.0.9.dev31
|
|
11
|
+
Requires-Dist: rainbow-rb-schemas==0.0.9.dev31
|
|
12
|
+
Requires-Dist: rainbow-rb-log==0.0.9.dev31
|
|
13
13
|
Requires-Dist: rby1-sdk>=0.9.1
|
|
14
14
|
|
|
15
15
|
# rb_sdk
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_control.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_file.py
RENAMED
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_map.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_move.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_program.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_setting.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/amr_sdk/amr_status.py
RENAMED
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/base_sdk/__init__.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/base_sdk/base_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/program_sdk/program.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/__init__.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/base.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/client.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/config.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/control.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/exceptions.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/rby1_sdk/state.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/__init__.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/amr_schema.py
RENAMED
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow/rb_sdk/schema/base_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{rainbow_rb_sdk-0.0.9.dev28 → rainbow_rb_sdk-0.0.9.dev31}/src/rainbow_rb_sdk.egg-info/top_level.txt
RENAMED
|
File without changes
|