hex-zmq-servers 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl

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.
@@ -78,8 +78,15 @@ __all__ = [
78
78
  "HexRobotHexarmServer",
79
79
  ]
80
80
 
81
+ # Check optional dependencies availability
82
+ from importlib.util import find_spec
83
+
84
+ _HAS_OPENCV = find_spec("cv2") is not None
85
+ _HAS_BERXEL = find_spec("berxel_py_wrapper") is not None
86
+ _HAS_MUJOCO = find_spec("mujoco") is not None
87
+
81
88
  # Optional: camera
82
- try:
89
+ if _HAS_OPENCV and _HAS_BERXEL:
83
90
  from .cam import HexCamBase, HexCamClientBase, HexCamServerBase
84
91
  from .cam import HexCamDummy, HexCamDummyClient, HexCamDummyServer
85
92
  from .cam import HexCamBerxel, HexCamBerxelClient, HexCamBerxelServer
@@ -107,13 +114,9 @@ try:
107
114
  "HexCamBerxelClient",
108
115
  "HexCamBerxelServer",
109
116
  ])
110
- except ImportError:
111
- # berxel_py_wrapper not installed
112
- # Install with: pip install hex_zmq_servers[berxel] or pip install hex_zmq_servers[all]
113
- pass
114
117
 
115
118
  # Optional: mujoco
116
- try:
119
+ if _HAS_OPENCV and _HAS_MUJOCO:
117
120
  from .mujoco import HexMujocoBase, HexMujocoClientBase, HexMujocoServerBase
118
121
  from .mujoco import HexMujocoArcherY6, HexMujocoArcherY6Client, HexMujocoArcherY6Server
119
122
  from .mujoco import HexMujocoE3Desktop, HexMujocoE3DesktopClient, HexMujocoE3DesktopServer
@@ -141,9 +144,5 @@ try:
141
144
  "HexMujocoE3DesktopClient",
142
145
  "HexMujocoE3DesktopServer",
143
146
  ])
144
- except ImportError:
145
- # mujoco not installed
146
- # Install with: pip install hex_zmq_servers[mujoco] or pip install hex_zmq_servers[all]
147
- pass
148
147
 
149
148
  # print("#### Thanks for using hex_zmq_servers :D ####")
@@ -178,7 +178,7 @@ class HexCamBerxel(HexCamBase):
178
178
  device_idx = idx
179
179
  break
180
180
  if device_idx == -1:
181
- print("can not find device with serial number")
181
+ print(f"can not find device with serial number: {serial_number}")
182
182
  print("available device serial numbers:")
183
183
  for device in device_list:
184
184
  print(f"{device.serialNumber}")
@@ -253,7 +253,7 @@ class HexCamBerxel(HexCamBase):
253
253
  if self.__device is None:
254
254
  return
255
255
 
256
- ret = self.__context.clsoeDevice(self.__device)
256
+ ret = self.__context.closeDevice(self.__device)
257
257
  if ret == 0:
258
258
  print("clsoe device succeed")
259
259
  else:
@@ -28,14 +28,14 @@
28
28
  <geom type="mesh" rgba="0.792157 0.792157 0.792157 1" mesh="arm_link_4"/>
29
29
 
30
30
  # link 5
31
- <body name="link_5" pos="-0.0553006 0 0.07025">
31
+ <body name="link_5" pos="-0.0553 0 0.070">
32
32
  <inertial pos="0.0292 0.0001 -0.0107" quat="0.707107 0 0 0.707107" mass="0.3984" diaginertia="0.0003 0.0002 0.0002"/>
33
33
  <joint name="joint_5" pos="0 0 0" axis="-1 0 0" range="-1.57 1.57" limited="true" armature="0.1" damping="3.0" frictionloss="1.0"/>
34
34
  <geom type="mesh" rgba="0.898039 0.917647 0.929412 1" mesh="arm_link_5"/>
35
35
 
36
36
  # gripper base link
37
- <body name="gripper_base_link" pos="0.0578 0 0.02895" quat="0.707107 0.0 -0.707107 0.0">
38
- <inertial pos="-0.0139 0.0001 0.0578" quat="0.567843 0.421372 0.421372 0.567843" mass="0.7651" diaginertia="0.0021 0.00143028 0.00106972"/>
37
+ <body name="gripper_base_link" pos="0.0553 0 0.029" quat="0.707107 0.0 -0.707107 0.0">
38
+ <inertial pos="-0.0139 0.0001 0.0553" quat="0.567843 0.421372 0.421372 0.567843" mass="0.7651" diaginertia="0.0021 0.00143028 0.00106972"/>
39
39
  <joint name="joint_6" pos="0 0 0" axis="1 0 0" range="-1.57 1.57" limited="true" armature="0.1" damping="3.0" frictionloss="1.0"/>
40
40
  <geom type="mesh" rgba="1 1 1 1" mesh="gripper_base_link"/>
41
41
  <geom pos="0.04 0 0.12" quat="0.6830127 0.6830127 0.1830127 -0.1830127" type="mesh" rgba="0.1 0.1 0.1 1" mesh="camera_link" />
@@ -156,34 +156,11 @@ class HexMujocoClientBase(HexZMQClientBase):
156
156
  print(f"\033[91m{req_cmd} failed: {e}\033[0m")
157
157
  return None, None
158
158
 
159
- def get_obj_pose(self):
160
- hdr, obj_pose = self.request({
161
- "cmd":
162
- "get_obj_pose",
163
- "args": (1 + self._obj_pose_seq) % self._max_seq_num,
164
- })
165
- try:
166
- cmd = hdr["cmd"]
167
- if cmd == "get_obj_pose_ok":
168
- self._obj_pose_seq = hdr["args"]
169
- return hdr, obj_pose
170
- else:
171
- return None, None
172
- except KeyError:
173
- print(f"\033[91m{hdr['cmd']} requires `cmd`\033[0m")
174
- return None, None
175
- except Exception as e:
176
- print(f"\033[91mget_obj_pose failed: {e}\033[0m")
177
- return None, None
178
-
179
159
  def set_cmds(
180
160
  self,
181
161
  cmds: np.ndarray,
182
- robot_name: str | None = None,
183
162
  ) -> bool:
184
163
  req_cmd = "set_cmds"
185
- if robot_name is not None:
186
- req_cmd += f"_{robot_name}"
187
164
  hdr, _ = self.request(
188
165
  {
189
166
  "cmd": req_cmd,
@@ -77,7 +77,7 @@
77
77
  </collision>
78
78
  </link>
79
79
  <joint name="joint_2" type="revolute">
80
- <origin xyz="0.0199999999999999 0 0.0450000000000004" rpy="0 0 0" />
80
+ <origin xyz="0.02 0 0.045" rpy="0 0 0" />
81
81
  <parent link="link_1" />
82
82
  <child link="link_2" />
83
83
  <axis xyz="0 1 0" />
@@ -137,7 +137,7 @@
137
137
  </collision>
138
138
  </link>
139
139
  <joint name="joint_4" type="revolute">
140
- <origin xyz="-0.0599999999999998 0 0.245" rpy="0 0 0" />
140
+ <origin xyz="-0.06 0 0.245" rpy="0 0 0" />
141
141
  <parent link="link_3" />
142
142
  <child link="link_4" />
143
143
  <axis xyz="0 1 0" />
@@ -167,7 +167,7 @@
167
167
  </collision>
168
168
  </link>
169
169
  <joint name="joint_5" type="revolute">
170
- <origin xyz="-0.0553005693392305 0 0.0702500000000025" rpy="0 0 0" />
170
+ <origin xyz="-0.0553 0 0.070" rpy="0 0 0" />
171
171
  <parent link="link_4" />
172
172
  <child link="link_5" />
173
173
  <axis xyz="-1 0 0" />
@@ -197,7 +197,7 @@
197
197
  </collision>
198
198
  </link>
199
199
  <joint name="joint_6" type="revolute">
200
- <origin xyz="0.0578000000000073 0 0.0289500000000001" rpy="0 0 0" />
200
+ <origin xyz="0.0553 0 0.029" rpy="0 0 0" />
201
201
  <parent link="link_5" />
202
202
  <child link="link_6" />
203
203
  <axis xyz="0 0 1" />
@@ -77,7 +77,7 @@
77
77
  </collision>
78
78
  </link>
79
79
  <joint name="joint_2" type="revolute">
80
- <origin xyz="0.0199999999999999 0 0.0450000000000004" rpy="0 0 0" />
80
+ <origin xyz="0.02 0 0.045" rpy="0 0 0" />
81
81
  <parent link="link_1" />
82
82
  <child link="link_2" />
83
83
  <axis xyz="0 1 0" />
@@ -137,7 +137,7 @@
137
137
  </collision>
138
138
  </link>
139
139
  <joint name="joint_4" type="revolute">
140
- <origin xyz="-0.0599999999999998 0 0.245" rpy="0 0 0" />
140
+ <origin xyz="-0.06 0 0.245" rpy="0 0 0" />
141
141
  <parent link="link_3" />
142
142
  <child link="link_4" />
143
143
  <axis xyz="0 1 0" />
@@ -167,7 +167,7 @@
167
167
  </collision>
168
168
  </link>
169
169
  <joint name="joint_5" type="revolute">
170
- <origin xyz="-0.0553005693392305 0 0.0702500000000025" rpy="0 0 0" />
170
+ <origin xyz="-0.0553 0 0.070" rpy="0 0 0" />
171
171
  <parent link="link_4" />
172
172
  <child link="link_5" />
173
173
  <axis xyz="-1 0 0" />
@@ -197,7 +197,7 @@
197
197
  </collision>
198
198
  </link>
199
199
  <joint name="joint_6" type="revolute">
200
- <origin xyz="0.0578000000000073 0 0.0289500000000001" rpy="0 0 0" />
200
+ <origin xyz="0.0553 0 0.029" rpy="0 0 0" />
201
201
  <parent link="link_5" />
202
202
  <child link="link_6" />
203
203
  <axis xyz="0 0 1" />
@@ -77,7 +77,7 @@
77
77
  </collision>
78
78
  </link>
79
79
  <joint name="joint_2" type="revolute">
80
- <origin xyz="0.0199999999999999 0 0.0450000000000004" rpy="0 0 0" />
80
+ <origin xyz="0.02 0 0.045" rpy="0 0 0" />
81
81
  <parent link="link_1" />
82
82
  <child link="link_2" />
83
83
  <axis xyz="0 1 0" />
@@ -137,7 +137,7 @@
137
137
  </collision>
138
138
  </link>
139
139
  <joint name="joint_4" type="revolute">
140
- <origin xyz="-0.0599999999999998 0 0.245" rpy="0 0 0" />
140
+ <origin xyz="-0.06 0 0.245" rpy="0 0 0" />
141
141
  <parent link="link_3" />
142
142
  <child link="link_4" />
143
143
  <axis xyz="0 1 0" />
@@ -167,7 +167,7 @@
167
167
  </collision>
168
168
  </link>
169
169
  <joint name="joint_5" type="revolute">
170
- <origin xyz="-0.0553005693392305 0 0.0702500000000025" rpy="0 0 0" />
170
+ <origin xyz="-0.0553 0 0.070" rpy="0 0 0" />
171
171
  <parent link="link_4" />
172
172
  <child link="link_5" />
173
173
  <axis xyz="-1 0 0" />
@@ -197,7 +197,7 @@
197
197
  </collision>
198
198
  </link>
199
199
  <joint name="joint_6" type="revolute">
200
- <origin xyz="0.0578000000000073 0 0.0289500000000001" rpy="0 0 0" />
200
+ <origin xyz="0.0553 0 0.029" rpy="0 0 0" />
201
201
  <parent link="link_5" />
202
202
  <child link="link_6" />
203
203
  <axis xyz="0 0 1" />
@@ -77,7 +77,7 @@
77
77
  </collision>
78
78
  </link>
79
79
  <joint name="joint_2" type="revolute">
80
- <origin xyz="0.0199999999999999 0 0.0450000000000004" rpy="0 0 0" />
80
+ <origin xyz="0.02 0 0.045" rpy="0 0 0" />
81
81
  <parent link="link_1" />
82
82
  <child link="link_2" />
83
83
  <axis xyz="0 1 0" />
@@ -137,7 +137,7 @@
137
137
  </collision>
138
138
  </link>
139
139
  <joint name="joint_4" type="revolute">
140
- <origin xyz="-0.0599999999999998 0 0.245" rpy="0 0 0" />
140
+ <origin xyz="-0.06 0 0.245" rpy="0 0 0" />
141
141
  <parent link="link_3" />
142
142
  <child link="link_4" />
143
143
  <axis xyz="0 1 0" />
@@ -167,7 +167,7 @@
167
167
  </collision>
168
168
  </link>
169
169
  <joint name="joint_5" type="revolute">
170
- <origin xyz="-0.0553005693392305 0 0.0702500000000025" rpy="0 0 0" />
170
+ <origin xyz="-0.0553 0 0.070" rpy="0 0 0" />
171
171
  <parent link="link_4" />
172
172
  <child link="link_5" />
173
173
  <axis xyz="-1 0 0" />
@@ -197,7 +197,7 @@
197
197
  </collision>
198
198
  </link>
199
199
  <joint name="joint_6" type="revolute">
200
- <origin xyz="0.0578000000000073 0 0.0289500000000001" rpy="0 0 0" />
200
+ <origin xyz="0.0553 0 0.029" rpy="0 0 0" />
201
201
  <parent link="link_5" />
202
202
  <child link="link_6" />
203
203
  <axis xyz="0 0 1" />
@@ -77,7 +77,7 @@
77
77
  </collision>
78
78
  </link>
79
79
  <joint name="joint_2" type="revolute">
80
- <origin xyz="0.0199999999999999 0 0.0450000000000004" rpy="0 0 0" />
80
+ <origin xyz="0.02 0 0.045" rpy="0 0 0" />
81
81
  <parent link="link_1" />
82
82
  <child link="link_2" />
83
83
  <axis xyz="0 1 0" />
@@ -137,7 +137,7 @@
137
137
  </collision>
138
138
  </link>
139
139
  <joint name="joint_4" type="revolute">
140
- <origin xyz="-0.0599999999999998 0 0.245" rpy="0 0 0" />
140
+ <origin xyz="-0.06 0 0.245" rpy="0 0 0" />
141
141
  <parent link="link_3" />
142
142
  <child link="link_4" />
143
143
  <axis xyz="0 1 0" />
@@ -167,7 +167,7 @@
167
167
  </collision>
168
168
  </link>
169
169
  <joint name="joint_5" type="revolute">
170
- <origin xyz="-0.0553005693392305 0 0.0702500000000025" rpy="0 0 0" />
170
+ <origin xyz="-0.0553 0 0.070" rpy="0 0 0" />
171
171
  <parent link="link_4" />
172
172
  <child link="link_5" />
173
173
  <axis xyz="-1 0 0" />
@@ -197,7 +197,7 @@
197
197
  </collision>
198
198
  </link>
199
199
  <joint name="joint_6" type="revolute">
200
- <origin xyz="0.0578000000000073 0 0.0289500000000001" rpy="0 0 0" />
200
+ <origin xyz="0.0553 0 0.029" rpy="0 0 0" />
201
201
  <parent link="link_5" />
202
202
  <child link="link_6" />
203
203
  <axis xyz="0 0 1" />
@@ -41,11 +41,14 @@ def hex_zmq_ts_delta_ms(curr_ts, hdr_ts) -> float:
41
41
 
42
42
  class HexRate:
43
43
 
44
- def __init__(self, hz: float):
44
+ def __init__(self, hz: float, spin_threshold_ns: int = 1_000_000):
45
45
  if hz <= 0:
46
46
  raise ValueError("hz must be greater than 0")
47
+ if spin_threshold_ns < 0:
48
+ raise ValueError("spin_threshold_ns must be non-negative")
47
49
  self.__period_ns = int(1_000_000_000 / hz)
48
50
  self.__next_ns = self.__now_ns() + self.__period_ns
51
+ self.__spin_threshold_ns = spin_threshold_ns
49
52
 
50
53
  @staticmethod
51
54
  def __now_ns() -> int:
@@ -55,14 +58,27 @@ class HexRate:
55
58
  self.__next_ns = self.__now_ns() + self.__period_ns
56
59
 
57
60
  def sleep(self):
58
- start_ns = self.__now_ns()
59
- remain_ns = self.__next_ns - start_ns
60
- if remain_ns > 0:
61
- time.sleep(remain_ns / 1_000_000_000.0)
62
- self.__next_ns += self.__period_ns
63
- else:
64
- needed_period = (start_ns - self.__next_ns) // self.__period_ns + 1
61
+ target_ns = self.__next_ns
62
+ now_ns = self.__now_ns()
63
+ remain_ns = target_ns - now_ns
64
+ if remain_ns <= 0:
65
+ needed_period = (now_ns - target_ns) // self.__period_ns + 1
65
66
  self.__next_ns += needed_period * self.__period_ns
67
+ return
68
+
69
+ spin_threshold = min(self.__spin_threshold_ns, self.__period_ns)
70
+ coarse_sleep_ns = remain_ns - spin_threshold
71
+ if coarse_sleep_ns > 0:
72
+ time.sleep(coarse_sleep_ns / 1_000_000_000.0)
73
+
74
+ while True:
75
+ now_ns = self.__now_ns()
76
+ if now_ns >= target_ns:
77
+ break
78
+ if target_ns - now_ns > 50_000:
79
+ time.sleep(0)
80
+
81
+ self.__next_ns += self.__period_ns
66
82
 
67
83
 
68
84
  ################################################################
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hex_zmq_servers
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: HEXFELLOW ZMQ Servers
5
5
  Author-email: Dong Zhaorui <joray.dong@hexfellow.com>
6
6
  Maintainer-email: jecjune <zejun.chen@hexfellow.com>, Dong Zhaorui <joray.dong@hexfellow.com>
@@ -24,16 +24,16 @@ Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
25
  Requires-Dist: pyzmq>=27.0.1
26
26
  Requires-Dist: hex_device<1.4.0,>=1.3.1
27
- Requires-Dist: hex_robo_utils<0.2.0,>=0.1.20
27
+ Requires-Dist: hex_robo_utils<0.3.0,>=0.2.0
28
28
  Requires-Dist: dynamixel-sdk==3.8.4
29
29
  Provides-Extra: camera
30
- Requires-Dist: berxel_py_wrapper>=2.0; extra == "camera"
30
+ Requires-Dist: berxel_py_wrapper>=2.0.182; extra == "camera"
31
31
  Requires-Dist: opencv-python>=4.2; extra == "camera"
32
32
  Provides-Extra: mujoco
33
33
  Requires-Dist: mujoco>=3.3.3; extra == "mujoco"
34
34
  Requires-Dist: opencv-python>=4.2; extra == "mujoco"
35
35
  Provides-Extra: all
36
- Requires-Dist: berxel_py_wrapper>=2.0; extra == "all"
36
+ Requires-Dist: berxel_py_wrapper>=2.0.182; extra == "all"
37
37
  Requires-Dist: mujoco>=3.3.3; extra == "all"
38
38
  Requires-Dist: opencv-python>=4.2; extra == "all"
39
39
  Dynamic: license-file
@@ -1,11 +1,11 @@
1
- hex_zmq_servers/__init__.py,sha256=gltsObhcd80K_lX7JwIdOfWcUaPP3YXd5uyOdNT9xM4,4727
1
+ hex_zmq_servers/__init__.py,sha256=1tHkUyB8TBlnCb54C9jroTYAaIkPmn8ZeHB_v6HQEb0,4702
2
2
  hex_zmq_servers/device_base.py,sha256=NGVQvLZFw3l2ZC55tHuKHLVXppEoYHt1eK_q-zm5eGA,1182
3
3
  hex_zmq_servers/hex_launch.py,sha256=opS_WwntAzV3UjOCVBo7FaLVW_dP3jlO40q-gFSBy68,17543
4
- hex_zmq_servers/zmq_base.py,sha256=Uwv0TDjGGJ3SplGV8BTtC2AQDxPpK47C8QYSlDFNua0,13785
4
+ hex_zmq_servers/zmq_base.py,sha256=BO1uoldQ9g5zo7S5ZgUF2tSs8SKx1X6aWJg_moeav3k,14356
5
5
  hex_zmq_servers/cam/__init__.py,sha256=qKKr4UVy7qdCxRP_q_9ZO6MYrLn5WokofTUDMwYAitI,761
6
6
  hex_zmq_servers/cam/cam_base.py,sha256=QtiuaXRrg1bhFDgwnKAaVVWxhvRpulNc_4rB3i_696Q,4110
7
7
  hex_zmq_servers/cam/berxel/__init__.py,sha256=3fK06RWAS_q8a_3z-RxFTv32e99og-4dMZTxH08TOcY,508
8
- hex_zmq_servers/cam/berxel/cam_berxel.py,sha256=efqSP13zkfE18UAdSRazrFFg_x9xoS54kUptnC_RvOI,9015
8
+ hex_zmq_servers/cam/berxel/cam_berxel.py,sha256=emy6lFcJOPsKp0hW0GGuXV6wOx0GT0Ihyn3d9CQu3pw,9033
9
9
  hex_zmq_servers/cam/berxel/cam_berxel_cli.py,sha256=oWRiKJIbVBF8e3cKROlTUj4l11IPBWa4mg6oMiwE7aw,778
10
10
  hex_zmq_servers/cam/berxel/cam_berxel_srv.py,sha256=8QPhPpRsYnbbIFTQAT3sZA1nRTq1XpKg-GmD6ERUu9w,2311
11
11
  hex_zmq_servers/cam/dummy/__init__.py,sha256=EziQ8H8d9Vm1AYw4YryIumTXpx-lwEnlfzTl7VAnKHM,499
@@ -21,12 +21,12 @@ hex_zmq_servers/config/robot_gello.json,sha256=pXPAng92M_-dhnLbh1R_LXKeskSapSnoJ
21
21
  hex_zmq_servers/config/robot_hexarm.json,sha256=4D4D3auDl3h-Mw8U1jN8U1ZbnVUt5kBXpPSbBgxDM9M,689
22
22
  hex_zmq_servers/config/zmq_dummy.json,sha256=T6vCG9__Gos9M5seK7w43xbqttAI6P1iyjcB_W0AOu8,191
23
23
  hex_zmq_servers/mujoco/__init__.py,sha256=OKG7aJ2BACpob_DuAvikLiRo4M_3DO9Ffapwen87k_0,870
24
- hex_zmq_servers/mujoco/mujoco_base.py,sha256=Wv54HGTCaBt71Sn-NKww25fWTaYqb4ceQiE2qNOdSiw,11053
24
+ hex_zmq_servers/mujoco/mujoco_base.py,sha256=WHPbnrwfpfHMYBUiRH9sgrm21CnD2ERwerVkUwa47jQ,10283
25
25
  hex_zmq_servers/mujoco/archer_y6/__init__.py,sha256=v1vApZ-qBLEcqFjDN0eff5kvkzO3s8QHBO4AitBODfc,559
26
26
  hex_zmq_servers/mujoco/archer_y6/mujoco_archer_y6.py,sha256=bH3Znu8twvu6fHMrYEpmqiPeC5HX1yGIR7afXzjU4uU,10521
27
27
  hex_zmq_servers/mujoco/archer_y6/mujoco_archer_y6_cli.py,sha256=9FmNspbtepcJxAlQHOgJ66910EMx6wMfUTSWXn2nbT8,675
28
28
  hex_zmq_servers/mujoco/archer_y6/mujoco_archer_y6_srv.py,sha256=djEJPKdMiiRwmFcsfZNMNq0x7GJFKjWCQU2QnoZcQmg,4905
29
- hex_zmq_servers/mujoco/archer_y6/model/robot.xml,sha256=OsJEBhZdW9TlCXGHg1jeWQWeyoDaDsfMEb5zXFgBNEA,8170
29
+ hex_zmq_servers/mujoco/archer_y6/model/robot.xml,sha256=fYBmuOGVVXJE7CLVzOZHUz-NaocjvcZdEtIkZ7Nbbv8,8163
30
30
  hex_zmq_servers/mujoco/archer_y6/model/scene.xml,sha256=X3BQtpHmZhjus-4iclolqKAQCeJjpPuG2KGnj0uOaBg,2122
31
31
  hex_zmq_servers/mujoco/archer_y6/model/setting.xml,sha256=4jhxau8xeYtnnMmvy6B79B8-w2HbK_PTGDHyIelDEQs,1997
32
32
  hex_zmq_servers/mujoco/archer_y6/model/assets/arm_base_link.STL,sha256=JUr1vVN2qyB05yAJHwEKXQ1zpZ4m7_Cw-LbVaC9_gEE,413584
@@ -88,13 +88,13 @@ hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100.urdf,sha256=YJ_S1Hfwg_PV1nr5Q
88
88
  hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100_handle.urdf,sha256=64nvgSwuST2e3Aqy7mSwuvEpOKe8I7FntLZ4r-tsR_w,7845
89
89
  hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100_p050.urdf,sha256=8oa54XGoKRCQR-pMukxepXIt5gjNUCY62qHytyrfB1s,7846
90
90
  hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100_p050_handle.urdf,sha256=XiooWr-20y2Wgn4TvYRbgM6tHyrSipYY99WU_5LwUw4,7843
91
- hex_zmq_servers/robot/hexarm/urdf/archer_y6/empty.urdf,sha256=ycAb_vujrf6SN7kBeNq1V0vP-JYy32qPhQACmEQhizQ,7527
92
- hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100.urdf,sha256=4r5t5tPRD14S9G-6WXMh8wU-Qsmwxd6fdUiAr-Qy7iE,7544
93
- hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_handle.urdf,sha256=LfoLHfcEEFj1h4QwrfMztVd2UeWKs8lmVp6gjinpvQU,7549
94
- hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_p050.urdf,sha256=W2eJOrE_n2jOaSvsWCoTvd3dWzac_OzcxhkD-Ko2ENM,7550
95
- hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_p050_handle.urdf,sha256=NYhfYF61vZl_EG4YPSgTXyDmDz6-Ne-ogjQO8m23znc,7547
96
- hex_zmq_servers-0.3.0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
97
- hex_zmq_servers-0.3.0.dist-info/METADATA,sha256=kO6ZpfvfyiPjQfC57-Wb1a0cR5e6iyrrOBQqqVap2rg,4719
98
- hex_zmq_servers-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
99
- hex_zmq_servers-0.3.0.dist-info/top_level.txt,sha256=lPH1DfgMrQOe0Grh8zSZopf6LmnLvb_aStVmZ41PyAg,16
100
- hex_zmq_servers-0.3.0.dist-info/RECORD,,
91
+ hex_zmq_servers/robot/hexarm/urdf/archer_y6/empty.urdf,sha256=jenauQL6162hdPnFDZfhXqa0wQshG-vqri0uiV7pk-E,7436
92
+ hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100.urdf,sha256=i8vpARxlQpYskLmTZ7R0zfi971VwKKlDLu2LQTfchhg,7453
93
+ hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_handle.urdf,sha256=Tpii1Wk26jRtMqLWI2knrqBTIh7hCjpgGySlrBgdvpA,7458
94
+ hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_p050.urdf,sha256=6Zzc_PXDwtxw9xQEXQOH0hu_moaiQzeMC22hUqAQS9s,7459
95
+ hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_p050_handle.urdf,sha256=HNa7wweNYUj8YtSUfx87ASeNEIPIjB-gZ4O7RyHng6g,7456
96
+ hex_zmq_servers-0.3.2.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
97
+ hex_zmq_servers-0.3.2.dist-info/METADATA,sha256=PmrtXTqSwahoQoeRRvEZw5WXzEVE3IiFXlldoIlenPg,4726
98
+ hex_zmq_servers-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
99
+ hex_zmq_servers-0.3.2.dist-info/top_level.txt,sha256=lPH1DfgMrQOe0Grh8zSZopf6LmnLvb_aStVmZ41PyAg,16
100
+ hex_zmq_servers-0.3.2.dist-info/RECORD,,