hex-zmq-servers 0.3.1__tar.gz → 0.3.2__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.
Files changed (106) hide show
  1. {hex_zmq_servers-0.3.1/hex_zmq_servers.egg-info → hex_zmq_servers-0.3.2}/PKG-INFO +3 -3
  2. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/berxel/cam_berxel.py +2 -2
  3. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/robot.xml +3 -3
  4. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/mujoco_base.py +0 -23
  5. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_y6/empty.urdf +4 -4
  6. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100.urdf +4 -4
  7. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_handle.urdf +4 -4
  8. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_p050.urdf +4 -4
  9. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_y6/gp100_p050_handle.urdf +4 -4
  10. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/zmq_base.py +24 -8
  11. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2/hex_zmq_servers.egg-info}/PKG-INFO +3 -3
  12. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers.egg-info/requires.txt +2 -2
  13. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/pyproject.toml +3 -3
  14. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/LICENSE +0 -0
  15. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/MANIFEST.in +0 -0
  16. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/README.md +0 -0
  17. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/__init__.py +0 -0
  18. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/__init__.py +0 -0
  19. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/berxel/__init__.py +0 -0
  20. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/berxel/cam_berxel_cli.py +0 -0
  21. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/berxel/cam_berxel_srv.py +0 -0
  22. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/cam_base.py +0 -0
  23. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/dummy/__init__.py +0 -0
  24. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/dummy/cam_dummy.py +0 -0
  25. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/dummy/cam_dummy_cli.py +0 -0
  26. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/cam/dummy/cam_dummy_srv.py +0 -0
  27. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/cam_berxel.json +0 -0
  28. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/cam_dummy.json +0 -0
  29. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/mujoco_archer_y6.json +0 -0
  30. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/mujoco_e3_desktop.json +0 -0
  31. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/robot_dummy.json +0 -0
  32. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/robot_gello.json +0 -0
  33. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/robot_hexarm.json +0 -0
  34. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/config/zmq_dummy.json +0 -0
  35. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/device_base.py +0 -0
  36. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/hex_launch.py +0 -0
  37. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/__init__.py +0 -0
  38. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/__init__.py +0 -0
  39. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/arm_base_link.STL +0 -0
  40. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/arm_link_1.STL +0 -0
  41. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/arm_link_2.STL +0 -0
  42. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/arm_link_3.STL +0 -0
  43. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/arm_link_4.STL +0 -0
  44. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/arm_link_5.STL +0 -0
  45. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/assets.xml +0 -0
  46. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/camera_link.STL +0 -0
  47. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_base_link.STL +0 -0
  48. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_left_helper_link.STL +0 -0
  49. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_left_link_1.STL +0 -0
  50. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_left_link_2.STL +0 -0
  51. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_right_helper_link.STL +0 -0
  52. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_right_link_1.STL +0 -0
  53. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/gripper_right_link_2.STL +0 -0
  54. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/assets/table_link.STL +0 -0
  55. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/scene.xml +0 -0
  56. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/model/setting.xml +0 -0
  57. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/mujoco_archer_y6.py +0 -0
  58. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/mujoco_archer_y6_cli.py +0 -0
  59. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/archer_y6/mujoco_archer_y6_srv.py +0 -0
  60. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/__init__.py +0 -0
  61. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/arm_base_link.STL +0 -0
  62. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/arm_link_1.STL +0 -0
  63. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/arm_link_2.STL +0 -0
  64. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/arm_link_3.STL +0 -0
  65. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/arm_link_4.STL +0 -0
  66. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/arm_link_5.STL +0 -0
  67. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/assets.xml +0 -0
  68. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/camera_link.STL +0 -0
  69. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/e3_desktop_base_link.STL +0 -0
  70. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_base_link.STL +0 -0
  71. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_left_helper_link.STL +0 -0
  72. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_left_link_1.STL +0 -0
  73. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_left_link_2.STL +0 -0
  74. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_right_helper_link.STL +0 -0
  75. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_right_link_1.STL +0 -0
  76. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/gripper_right_link_2.STL +0 -0
  77. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/assets/table_link.STL +0 -0
  78. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/robot.xml +0 -0
  79. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/scene.xml +0 -0
  80. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/model/setting.xml +0 -0
  81. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/mujoco_e3_desktop.py +0 -0
  82. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/mujoco_e3_desktop_cli.py +0 -0
  83. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/mujoco/e3_desktop/mujoco_e3_desktop_srv.py +0 -0
  84. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/__init__.py +0 -0
  85. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/dummy/__init__.py +0 -0
  86. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/dummy/robot_dummy.py +0 -0
  87. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/dummy/robot_dummy_cli.py +0 -0
  88. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/dummy/robot_dummy_srv.py +0 -0
  89. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/gello/__init__.py +0 -0
  90. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/gello/robot_gello.py +0 -0
  91. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/gello/robot_gello_cli.py +0 -0
  92. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/gello/robot_gello_srv.py +0 -0
  93. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/__init__.py +0 -0
  94. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/robot_hexarm.py +0 -0
  95. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/robot_hexarm_cli.py +0 -0
  96. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/robot_hexarm_srv.py +0 -0
  97. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_l6y/empty.urdf +0 -0
  98. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100.urdf +0 -0
  99. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100_handle.urdf +0 -0
  100. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100_p050.urdf +0 -0
  101. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/hexarm/urdf/archer_l6y/gp100_p050_handle.urdf +0 -0
  102. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers/robot/robot_base.py +0 -0
  103. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers.egg-info/SOURCES.txt +0 -0
  104. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers.egg-info/dependency_links.txt +0 -0
  105. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/hex_zmq_servers.egg-info/top_level.txt +0 -0
  106. {hex_zmq_servers-0.3.1 → hex_zmq_servers-0.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hex_zmq_servers
3
- Version: 0.3.1
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>
@@ -27,13 +27,13 @@ Requires-Dist: hex_device<1.4.0,>=1.3.1
27
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
@@ -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.1
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>
@@ -27,13 +27,13 @@ Requires-Dist: hex_device<1.4.0,>=1.3.1
27
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
@@ -4,12 +4,12 @@ hex_robo_utils<0.3.0,>=0.2.0
4
4
  dynamixel-sdk==3.8.4
5
5
 
6
6
  [all]
7
- berxel_py_wrapper>=2.0
7
+ berxel_py_wrapper>=2.0.182
8
8
  mujoco>=3.3.3
9
9
  opencv-python>=4.2
10
10
 
11
11
  [camera]
12
- berxel_py_wrapper>=2.0
12
+ berxel_py_wrapper>=2.0.182
13
13
  opencv-python>=4.2
14
14
 
15
15
  [mujoco]
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "hex_zmq_servers"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "HEXFELLOW ZMQ Servers"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -34,9 +34,9 @@ classifiers = [
34
34
  ]
35
35
 
36
36
  [project.optional-dependencies]
37
- camera = ["berxel_py_wrapper>=2.0", "opencv-python>=4.2"]
37
+ camera = ["berxel_py_wrapper>=2.0.182", "opencv-python>=4.2"]
38
38
  mujoco = ["mujoco>=3.3.3", "opencv-python>=4.2"]
39
- all = ["berxel_py_wrapper>=2.0", "mujoco>=3.3.3", "opencv-python>=4.2"]
39
+ all = ["berxel_py_wrapper>=2.0.182", "mujoco>=3.3.3", "opencv-python>=4.2"]
40
40
 
41
41
  [project.urls]
42
42
  Homepage = "https://github.com/hexfellow/hex_zmq_servers"
File without changes