robotic 0.2.9__cp312-cp312-manylinux2014_x86_64.whl → 0.2.9.dev2__cp312-cp312-manylinux2014_x86_64.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.

Potentially problematic release.


This version of robotic might be problematic. Click here for more details.

Files changed (316) hide show
  1. robotic/__init__.py +4 -0
  2. robotic/_robotic.pyi +13 -9
  3. robotic/_robotic.so +0 -0
  4. robotic/cleanMeshes.py +59 -0
  5. robotic/include/rai/Core/array.ipp +3 -1
  6. robotic/include/rai/Core/graph.h +2 -2
  7. robotic/include/rai/Core/util.h +8 -7
  8. robotic/include/rai/Geo/geo.h +3 -2
  9. robotic/include/rai/Geo/mesh.h +1 -3
  10. robotic/include/rai/KOMO/manipTools.h +2 -2
  11. robotic/include/rai/Kin/frame.h +4 -4
  12. robotic/include/rai/Kin/kin.h +4 -3
  13. robotic/include/rai/Kin/kin_physx.h +1 -2
  14. robotic/include/rai/ry/types.h +3 -2
  15. robotic/librai.so +0 -0
  16. robotic/meshTool +0 -0
  17. robotic/mujoco-import.py +10 -0
  18. robotic/rai-robotModels/g1/g1.g +1 -1
  19. robotic/rai-robotModels/g1/g1_29dof_conv.g +77 -0
  20. robotic/rai-robotModels/g1/g1_clean.g +38 -73
  21. robotic/rai-robotModels/g1/meshes/head_link.h5 +0 -0
  22. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.h5 +0 -0
  23. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.h5 +0 -0
  24. robotic/rai-robotModels/g1/meshes/left_elbow_link.h5 +0 -0
  25. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.h5 +0 -0
  26. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.h5 +0 -0
  27. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.h5 +0 -0
  28. robotic/rai-robotModels/g1/meshes/left_knee_link.h5 +0 -0
  29. robotic/rai-robotModels/g1/meshes/left_rubber_hand.h5 +0 -0
  30. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.h5 +0 -0
  31. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.h5 +0 -0
  32. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.h5 +0 -0
  33. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.h5 +0 -0
  34. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.h5 +0 -0
  35. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.h5 +0 -0
  36. robotic/rai-robotModels/g1/meshes/logo_link.h5 +0 -0
  37. robotic/rai-robotModels/g1/meshes/pelvis.h5 +0 -0
  38. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.h5 +0 -0
  39. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.h5 +0 -0
  40. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.h5 +0 -0
  41. robotic/rai-robotModels/g1/meshes/right_elbow_link.h5 +0 -0
  42. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.h5 +0 -0
  43. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.h5 +0 -0
  44. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.h5 +0 -0
  45. robotic/rai-robotModels/g1/meshes/right_knee_link.h5 +0 -0
  46. robotic/rai-robotModels/g1/meshes/right_rubber_hand.h5 +0 -0
  47. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.h5 +0 -0
  48. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.h5 +0 -0
  49. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.h5 +0 -0
  50. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.h5 +0 -0
  51. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.h5 +0 -0
  52. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.h5 +0 -0
  53. robotic/rai-robotModels/g1/meshes/torso_link.h5 +0 -0
  54. robotic/rai-robotModels/g1/meshes/waist_roll_link.h5 +0 -0
  55. robotic/rai-robotModels/g1/meshes/waist_support_link.h5 +0 -0
  56. robotic/rai-robotModels/g1/meshes/waist_yaw_link.h5 +0 -0
  57. robotic/rai-robotModels/panda/meshes/finger.h5 +0 -0
  58. robotic/rai-robotModels/panda/meshes/hand.h5 +0 -0
  59. robotic/rai-robotModels/panda/meshes/link0.h5 +0 -0
  60. robotic/rai-robotModels/panda/meshes/link1.h5 +0 -0
  61. robotic/rai-robotModels/panda/meshes/link2.h5 +0 -0
  62. robotic/rai-robotModels/panda/meshes/link3.h5 +0 -0
  63. robotic/rai-robotModels/panda/meshes/link4.h5 +0 -0
  64. robotic/rai-robotModels/panda/meshes/link5.h5 +0 -0
  65. robotic/rai-robotModels/panda/meshes/link6.h5 +0 -0
  66. robotic/rai-robotModels/panda/meshes/link7.h5 +0 -0
  67. robotic/rai-robotModels/panda/panda.g +1 -1
  68. robotic/rai-robotModels/panda/panda_arm_hand_conv.g +24 -0
  69. robotic/rai-robotModels/panda/panda_clean.g +21 -45
  70. robotic/rai-robotModels/panda/panda_gripper.g +3 -3
  71. robotic/rai-robotModels/pr2/meshes/base.h5 +0 -0
  72. robotic/rai-robotModels/pr2/meshes/base_color.png +0 -0
  73. robotic/rai-robotModels/pr2/meshes/caster.h5 +0 -0
  74. robotic/rai-robotModels/pr2/meshes/elbow_flex.h5 +0 -0
  75. robotic/rai-robotModels/pr2/meshes/elbow_flex_color.png +0 -0
  76. robotic/rai-robotModels/pr2/meshes/forearm.h5 +0 -0
  77. robotic/rai-robotModels/pr2/meshes/forearm_color.png +0 -0
  78. robotic/rai-robotModels/pr2/meshes/forearm_roll.h5 +0 -0
  79. robotic/rai-robotModels/pr2/meshes/gripper_palm.h5 +0 -0
  80. robotic/rai-robotModels/pr2/meshes/gripper_palm_color.png +0 -0
  81. robotic/rai-robotModels/pr2/meshes/head_pan.h5 +0 -0
  82. robotic/rai-robotModels/pr2/meshes/head_pan_color.png +0 -0
  83. robotic/rai-robotModels/pr2/meshes/head_tilt.h5 +0 -0
  84. robotic/rai-robotModels/pr2/meshes/head_tilt_color.png +0 -0
  85. robotic/rai-robotModels/pr2/meshes/l_finger.h5 +0 -0
  86. robotic/rai-robotModels/pr2/meshes/l_finger_color.png +0 -0
  87. robotic/rai-robotModels/pr2/meshes/l_finger_tip.h5 +0 -0
  88. robotic/rai-robotModels/pr2/meshes/l_finger_tip_color.png +0 -0
  89. robotic/rai-robotModels/pr2/meshes/shoulder_lift.h5 +0 -0
  90. robotic/rai-robotModels/pr2/meshes/shoulder_lift_color.png +0 -0
  91. robotic/rai-robotModels/pr2/meshes/shoulder_pan.h5 +0 -0
  92. robotic/rai-robotModels/pr2/meshes/shoulder_pan_color.png +0 -0
  93. robotic/rai-robotModels/pr2/meshes/tilting_hokuyo.h5 +0 -0
  94. robotic/rai-robotModels/pr2/meshes/tilting_hokuyo_color.png +0 -0
  95. robotic/rai-robotModels/pr2/meshes/torso_lift.h5 +0 -0
  96. robotic/rai-robotModels/pr2/meshes/torso_lift_color.png +0 -0
  97. robotic/rai-robotModels/pr2/meshes/upper_arm.h5 +0 -0
  98. robotic/rai-robotModels/pr2/meshes/upper_arm_color.png +0 -0
  99. robotic/rai-robotModels/pr2/meshes/upper_arm_roll.h5 +0 -0
  100. robotic/rai-robotModels/pr2/meshes/upper_arm_roll_color.png +0 -0
  101. robotic/rai-robotModels/pr2/meshes/wheel.h5 +0 -0
  102. robotic/rai-robotModels/pr2/meshes/wheel_color.png +0 -0
  103. robotic/rai-robotModels/pr2/meshes/wrist_color.png +0 -0
  104. robotic/rai-robotModels/pr2/meshes/wrist_flex.h5 +0 -0
  105. robotic/rai-robotModels/pr2/meshes/wrist_roll.h5 +0 -0
  106. robotic/rai-robotModels/pr2/pr2.g +1 -1
  107. robotic/rai-robotModels/pr2/pr2_clean.g +5 -1
  108. robotic/rai-robotModels/pr2/pr2_conv.g +218 -0
  109. robotic/rai-robotModels/ranger/meshes/ranger_mini3.h5 +0 -0
  110. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.h5 +0 -0
  111. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.h5 +0 -0
  112. robotic/rai-robotModels/ranger/ranger.g +5 -5
  113. robotic/rai-robotModels/ranger/ranger_clean.g +5 -5
  114. robotic/rai-robotModels/ranger/ranger_mini_conv.g +14 -0
  115. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_base_link.h5 +0 -0
  116. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_finger.h5 +0 -0
  117. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_knuckle.h5 +0 -0
  118. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_finger.h5 +0 -0
  119. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_knuckle.h5 +0 -0
  120. robotic/rai-robotModels/robotiq/robotiq.g +2 -2
  121. robotic/rai-robotModels/robotiq/robotiq_arg2f_85_model_conv.g +21 -0
  122. robotic/rai-robotModels/robotiq/robotiq_clean.g +16 -16
  123. robotic/rai-robotModels/scenarios/ballFinger.g +2 -2
  124. robotic/rai-robotModels/tests/compound.g +3 -6
  125. robotic/rai-robotModels/ur10/meshes/base.h5 +0 -0
  126. robotic/rai-robotModels/ur10/meshes/forearm.h5 +0 -0
  127. robotic/rai-robotModels/ur10/meshes/shoulder.h5 +0 -0
  128. robotic/rai-robotModels/ur10/meshes/upperarm.h5 +0 -0
  129. robotic/rai-robotModels/ur10/meshes/wrist1.h5 +0 -0
  130. robotic/rai-robotModels/ur10/meshes/wrist2.h5 +0 -0
  131. robotic/rai-robotModels/ur10/meshes/wrist3.h5 +0 -0
  132. robotic/rai-robotModels/ur10/ur10.g +1 -1
  133. robotic/rai-robotModels/ur10/ur10_conv.g +17 -0
  134. robotic/ry-h5info +5 -1
  135. robotic/ry-test +1 -1
  136. robotic/ry-urdfConvert.py +73 -0
  137. robotic/src/config_mujoco.py +237 -0
  138. robotic/src/config_urdf.py +237 -0
  139. robotic/src/mesh_helper.py +395 -0
  140. robotic/src/yaml_helper.py +19 -0
  141. robotic/version.py +1 -1
  142. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-h5info +5 -1
  143. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-test +1 -1
  144. {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/METADATA +3 -2
  145. robotic-0.2.9.dev2.dist-info/RECORD +369 -0
  146. {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/WHEEL +1 -1
  147. robotic/rai-robotModels/baxter/baxter.g +0 -49
  148. robotic/rai-robotModels/baxter/baxter_clean.g +0 -116
  149. robotic/rai-robotModels/baxter/baxter_clean2.g +0 -205
  150. robotic/rai-robotModels/baxter/baxter_clean3.g +0 -223
  151. robotic/rai-robotModels/baxter/baxter_description/meshes/base/PEDESTAL.ply +0 -0
  152. robotic/rai-robotModels/baxter/baxter_description/meshes/base/pedestal_link_collision.ply +0 -0
  153. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H0.ply +0 -0
  154. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H1.ply +0 -0
  155. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_elbow/E1.ply +0 -0
  156. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_forearm/W1.ply +0 -0
  157. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_shoulder/S1.ply +0 -0
  158. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link.ply +0 -0
  159. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link_collision.ply +0 -0
  160. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_elbow/E0.ply +0 -0
  161. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_forearm/W0.ply +0 -0
  162. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_shoulder/S0.ply +0 -0
  163. robotic/rai-robotModels/baxter/baxter_description/meshes/wrist/W2.ply +0 -0
  164. robotic/rai-robotModels/baxter/baxter_new.g +0 -53
  165. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/electric_gripper_base.ply +0 -0
  166. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/extended_narrow.ply +0 -0
  167. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/half_round_tip.ply +0 -0
  168. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/paddle_tip.ply +0 -0
  169. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_base.ply +0 -0
  170. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_w_cup.ply +0 -0
  171. robotic/rai-robotModels/g1/meshes/head_link.ply +0 -0
  172. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.ply +0 -0
  173. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.ply +0 -0
  174. robotic/rai-robotModels/g1/meshes/left_elbow_link.ply +0 -0
  175. robotic/rai-robotModels/g1/meshes/left_hand_index_0_link.ply +0 -0
  176. robotic/rai-robotModels/g1/meshes/left_hand_index_1_link.ply +0 -0
  177. robotic/rai-robotModels/g1/meshes/left_hand_middle_0_link.ply +0 -0
  178. robotic/rai-robotModels/g1/meshes/left_hand_middle_1_link.ply +0 -0
  179. robotic/rai-robotModels/g1/meshes/left_hand_palm_link.ply +0 -0
  180. robotic/rai-robotModels/g1/meshes/left_hand_thumb_0_link.ply +0 -0
  181. robotic/rai-robotModels/g1/meshes/left_hand_thumb_1_link.ply +0 -0
  182. robotic/rai-robotModels/g1/meshes/left_hand_thumb_2_link.ply +0 -0
  183. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.ply +0 -0
  184. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.ply +0 -0
  185. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.ply +0 -0
  186. robotic/rai-robotModels/g1/meshes/left_knee_link.ply +0 -0
  187. robotic/rai-robotModels/g1/meshes/left_rubber_hand.ply +0 -0
  188. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.ply +0 -0
  189. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.ply +0 -0
  190. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.ply +0 -0
  191. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.ply +0 -0
  192. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.ply +0 -0
  193. robotic/rai-robotModels/g1/meshes/left_wrist_roll_rubber_hand.ply +0 -0
  194. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.ply +0 -0
  195. robotic/rai-robotModels/g1/meshes/logo_link.ply +0 -0
  196. robotic/rai-robotModels/g1/meshes/pelvis.ply +0 -0
  197. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.ply +0 -0
  198. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.ply +0 -0
  199. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.ply +0 -0
  200. robotic/rai-robotModels/g1/meshes/right_elbow_link.ply +0 -0
  201. robotic/rai-robotModels/g1/meshes/right_hand_index_0_link.ply +0 -0
  202. robotic/rai-robotModels/g1/meshes/right_hand_index_1_link.ply +0 -0
  203. robotic/rai-robotModels/g1/meshes/right_hand_middle_0_link.ply +0 -0
  204. robotic/rai-robotModels/g1/meshes/right_hand_middle_1_link.ply +0 -0
  205. robotic/rai-robotModels/g1/meshes/right_hand_palm_link.ply +0 -0
  206. robotic/rai-robotModels/g1/meshes/right_hand_thumb_0_link.ply +0 -0
  207. robotic/rai-robotModels/g1/meshes/right_hand_thumb_1_link.ply +0 -0
  208. robotic/rai-robotModels/g1/meshes/right_hand_thumb_2_link.ply +0 -0
  209. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.ply +0 -0
  210. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.ply +0 -0
  211. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.ply +0 -0
  212. robotic/rai-robotModels/g1/meshes/right_knee_link.ply +0 -0
  213. robotic/rai-robotModels/g1/meshes/right_rubber_hand.ply +0 -0
  214. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.ply +0 -0
  215. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.ply +0 -0
  216. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.ply +0 -0
  217. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.ply +0 -0
  218. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.ply +0 -0
  219. robotic/rai-robotModels/g1/meshes/right_wrist_roll_rubber_hand.ply +0 -0
  220. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.ply +0 -0
  221. robotic/rai-robotModels/g1/meshes/torso_constraint_L_link.ply +0 -0
  222. robotic/rai-robotModels/g1/meshes/torso_constraint_L_rod_link.ply +0 -0
  223. robotic/rai-robotModels/g1/meshes/torso_constraint_R_link.ply +0 -0
  224. robotic/rai-robotModels/g1/meshes/torso_constraint_R_rod_link.ply +0 -0
  225. robotic/rai-robotModels/g1/meshes/torso_link.ply +0 -0
  226. robotic/rai-robotModels/g1/meshes/waist_constraint_L.ply +0 -0
  227. robotic/rai-robotModels/g1/meshes/waist_constraint_R.ply +0 -0
  228. robotic/rai-robotModels/g1/meshes/waist_roll_link.ply +0 -0
  229. robotic/rai-robotModels/g1/meshes/waist_support_link.ply +0 -0
  230. robotic/rai-robotModels/g1/meshes/waist_yaw_link.ply +0 -0
  231. robotic/rai-robotModels/panda/franka_description/meshes/collision/finger.stl +0 -0
  232. robotic/rai-robotModels/panda/franka_description/meshes/collision/hand.stl +0 -0
  233. robotic/rai-robotModels/panda/franka_description/meshes/collision/link0.stl +0 -0
  234. robotic/rai-robotModels/panda/franka_description/meshes/collision/link1.stl +0 -0
  235. robotic/rai-robotModels/panda/franka_description/meshes/collision/link2.stl +0 -0
  236. robotic/rai-robotModels/panda/franka_description/meshes/collision/link3.stl +0 -0
  237. robotic/rai-robotModels/panda/franka_description/meshes/collision/link4.stl +0 -0
  238. robotic/rai-robotModels/panda/franka_description/meshes/collision/link5.stl +0 -0
  239. robotic/rai-robotModels/panda/franka_description/meshes/collision/link6.stl +0 -0
  240. robotic/rai-robotModels/panda/franka_description/meshes/collision/link7.stl +0 -0
  241. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO.sh +0 -10
  242. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO2.sh +0 -7
  243. robotic/rai-robotModels/panda/franka_description/meshes/visual/convMeshes.mlx +0 -38
  244. robotic/rai-robotModels/panda/franka_description/meshes/visual/finger.ply +0 -0
  245. robotic/rai-robotModels/panda/franka_description/meshes/visual/hand.ply +0 -0
  246. robotic/rai-robotModels/panda/franka_description/meshes/visual/link0.ply +0 -0
  247. robotic/rai-robotModels/panda/franka_description/meshes/visual/link1.ply +0 -0
  248. robotic/rai-robotModels/panda/franka_description/meshes/visual/link2.ply +0 -0
  249. robotic/rai-robotModels/panda/franka_description/meshes/visual/link3.ply +0 -0
  250. robotic/rai-robotModels/panda/franka_description/meshes/visual/link4.ply +0 -0
  251. robotic/rai-robotModels/panda/franka_description/meshes/visual/link5.ply +0 -0
  252. robotic/rai-robotModels/panda/franka_description/meshes/visual/link6.ply +0 -0
  253. robotic/rai-robotModels/panda/franka_description/meshes/visual/link7.ply +0 -0
  254. robotic/rai-robotModels/panda/franka_description/meshes/visual/script.mlx +0 -28
  255. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base.ply +0 -0
  256. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base_L.ply +0 -0
  257. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster.ply +0 -0
  258. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster_L.ply +0 -0
  259. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/pr2_wheel.ply +0 -0
  260. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/wheel.ply +0 -0
  261. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/forearm.ply +0 -0
  262. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_flex.ply +0 -0
  263. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll.ply +0 -0
  264. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll_L.ply +0 -0
  265. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/gripper_palm.ply +0 -0
  266. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger.ply +0 -0
  267. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger_tip.ply +0 -0
  268. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan.ply +0 -0
  269. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan_L.ply +0 -0
  270. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt.ply +0 -0
  271. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt_L.ply +0 -0
  272. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_lift.ply +0 -0
  273. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_pan.ply +0 -0
  274. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_yaw.ply +0 -0
  275. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll.ply +0 -0
  276. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll_L.ply +0 -0
  277. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/hok_tilt.ply +0 -0
  278. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo.ply +0 -0
  279. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo_L.ply +0 -0
  280. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso.ply +0 -0
  281. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift.ply +0 -0
  282. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift_L.ply +0 -0
  283. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/elbow_flex.ply +0 -0
  284. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll.ply +0 -0
  285. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll_L.ply +0 -0
  286. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/upper_arm.ply +0 -0
  287. robotic/rai-robotModels/ranger/meshes/cleanMeshes.mlx +0 -23
  288. robotic/rai-robotModels/ranger/meshes/cleanMeshes.sh +0 -8
  289. robotic/rai-robotModels/ranger/meshes/ranger_mini3.ply +0 -0
  290. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.ply +0 -0
  291. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.ply +0 -0
  292. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link.ply +0 -0
  293. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link_x.ply +0 -10
  294. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_finger.ply +0 -0
  295. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_knuckle.ply +0 -0
  296. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_finger.ply +0 -0
  297. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_knuckle.ply +0 -0
  298. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_pad.ply +0 -0
  299. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_gripper_coupling.ply +0 -0
  300. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Base.ply +0 -0
  301. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Forearm.ply +0 -0
  302. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Shoulder.ply +0 -0
  303. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/UpperArm.ply +0 -0
  304. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist1.ply +0 -0
  305. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist2.ply +0 -0
  306. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist3.ply +0 -0
  307. robotic-0.2.9.dist-info/RECORD +0 -420
  308. /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
  309. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-bot +0 -0
  310. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-info +0 -0
  311. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-meshTool +0 -0
  312. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-urdf2rai +0 -0
  313. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-urdf2yaml +0 -0
  314. {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-view +0 -0
  315. {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info/licenses}/LICENSE +0 -0
  316. {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/top_level.txt +0 -0
robotic/__init__.py CHANGED
@@ -9,5 +9,9 @@ from .version import __version__
9
9
 
10
10
  from .manipulation import KOMO_ManipulationHelper
11
11
 
12
+ from .src.config_mujoco import MujocoLoader
13
+ from .src.config_urdf import URDFLoader
14
+ from .src.mesh_helper import MeshHelper
15
+
12
16
  import os
13
17
  setRaiPath( os.path.abspath(os.path.dirname(__file__)) + '/rai-robotModels' )
robotic/_robotic.pyi CHANGED
@@ -275,7 +275,7 @@ class Config:
275
275
  """
276
276
  animate with random spline in limits bounding box [T=#spline points]
277
277
  """
278
- def asDict(self) -> dict:
278
+ def asDict(self, parentsInKeys: bool = True) -> dict:
279
279
  """
280
280
  return the configuration description as a dict, e.g. for file export
281
281
  """
@@ -363,6 +363,14 @@ class Config:
363
363
  """
364
364
  def get_viewer(self, window_title: str = None, offscreen: bool = False) -> ...:
365
365
  ...
366
+ def processInertias(self, recomputeInertias: bool = True, transformToDiagInertia: bool = False) -> None:
367
+ """
368
+ collect all inertia at root frame of links, optionally reestimate all inertias based on standard surface density, optionally relocate the link frame to the COM with diagonalized I)
369
+ """
370
+ def processStructure(self, pruneRigidJoints: bool = False, reconnectToLinks: bool = True, pruneNonContactShapes: bool = False, pruneTransparent: bool = False) -> None:
371
+ """
372
+ structurally simplify the Configuration (deleting frames, relinking to minimal tree)
373
+ """
366
374
  def report(self) -> str:
367
375
  """
368
376
  return a string with basic info (#frames, etc)
@@ -391,10 +399,6 @@ class Config:
391
399
  ...
392
400
  def set_viewer(self, arg0: ...) -> None:
393
401
  ...
394
- def simplify(self, pruneNamed: bool, pruneNonContactNonMarker: bool, pruneTransparent: bool) -> None:
395
- """
396
- structurally simplify the Configuration (deleting frames, relinking to minimal tree)
397
- """
398
402
  def view(self, pause: bool = False, message: str = None) -> int:
399
403
  """
400
404
  open a view window for the configuration
@@ -449,7 +453,7 @@ class Config:
449
453
  """
450
454
  write the full configuration in a ply mesh file
451
455
  """
452
- def writeMeshes(self, pathPrefix: ...) -> None:
456
+ def writeMeshes(self, pathPrefix: ..., copyTextures: bool = True, enumerateTextures: bool = False) -> None:
453
457
  """
454
458
  write all object meshes in a directory
455
459
  """
@@ -724,7 +728,7 @@ class Frame:
724
728
  """
725
729
  def asDict(self) -> dict:
726
730
  ...
727
- def computeCompoundInertia(self, clearChildInertias: bool = True) -> Frame:
731
+ def computeCompoundInertia(self) -> Frame:
728
732
  ...
729
733
  def convertDecomposedShapeToChildFrames(self) -> Frame:
730
734
  ...
@@ -784,11 +788,11 @@ class Frame:
784
788
  """
785
789
  def setImplicitSurface(self, data: ..., size: arr, blur: int, resample: float = -1.0) -> Frame:
786
790
  ...
787
- def setJoint(self, jointType: JT, limits: arr = ...) -> Frame:
791
+ def setJoint(self, jointType: JT, limits: arr = ..., scale: float = 1.0, mimic: Frame = None) -> Frame:
788
792
  ...
789
793
  def setJointState(self, arg0: arr) -> Frame:
790
794
  ...
791
- def setMass(self, arg0: float) -> Frame:
795
+ def setMass(self, mass: float, inertiaMatrix: arr = ...) -> Frame:
792
796
  ...
793
797
  def setMesh(self, vertices: arr, triangles: uintA, colors: ... = ..., cvxParts: uintA = ...) -> Frame:
794
798
  """
robotic/_robotic.so CHANGED
Binary file
robotic/cleanMeshes.py ADDED
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env python3
2
+
3
+ import argparse
4
+ import glob
5
+ import os
6
+ from robotic.src.mesh_helper import *
7
+
8
+ parser = argparse.ArgumentParser(
9
+ description='Utility to clean meshes in meshes/')
10
+
11
+ parser.add_argument('-view', help='view mesh', action="store_true")
12
+ parser.add_argument('-meshlab', help='apply meshlab filters', action="store_true", default=False)
13
+
14
+ def main():
15
+ args = parser.parse_args()
16
+
17
+ files = sorted(glob.glob('meshes/*.h5'))
18
+
19
+ for file in files:
20
+ if file[-4]=='-':
21
+ continue
22
+
23
+ M = MeshHelper(file)
24
+ if M.mesh is None:
25
+ continue
26
+
27
+ #-- repair
28
+ print(' before repair:')
29
+ M.report()
30
+ M.repair(mergeTolerance=1e-4)
31
+ # M.texture2vertexColors()
32
+ print(' after repair:')
33
+ print(' watertight:', M.mesh.is_watertight)
34
+ print(' oriented:', M.mesh.is_winding_consistent)
35
+ M.report()
36
+
37
+ #-- export/view
38
+ M.export_h5()
39
+ # M.export_h5(M.filebase+'-.h5')
40
+ if args.view:
41
+ M.view()
42
+
43
+ #-- meshlab processing
44
+ if args.meshlab:
45
+ M.export_ply('z.ply')
46
+ print('<<< meshlab <<<')
47
+ ret = os.system(f'meshlabserver -i z.ply -o {M.filebase}.ply -m vc -s meshlabFilters.mlx')
48
+ print('>>> meshlab >>>')
49
+ if not ret:
50
+ M2 = MeshHelper(f'{M.filebase}.ply')
51
+ # uv = M2.mesh.visual.uv
52
+ # M2.mesh.visual = M.mesh.visual
53
+ # M2.mesh.visual.uv = uv
54
+ # M2.view()
55
+ M2.export_h5(M.filebase+'.h5')
56
+ # os.system(f'rm z.ply {M.filebase}.ply')
57
+
58
+ if __name__ == "__main__":
59
+ main()
@@ -78,7 +78,8 @@ template<class T> Array<T>::Array(Array<T>&& a)
78
78
  M(a.M),
79
79
  special(a.special) {
80
80
  //if(a.jac) jac = std::move(a.jac);
81
- CHECK_EQ(a.d, &a.d0, "");
81
+ // CHECK_EQ(a.d, &a.d0, "NIY for larger tensors");
82
+ if(a.d!=&a.d0) { d=a.d; a.d=&a.d0; }
82
83
  a.p=NULL;
83
84
  a.N=a.nd=a.d0=a.d1=a.d2=0;
84
85
  a.isReference=false;
@@ -105,6 +106,7 @@ template<class T> Array<T>::~Array() {
105
106
  clear();
106
107
  #else //faster (leaves members non-zeroed..)
107
108
  if(special) { delete special; special=NULL; }
109
+ if(d!=&d0) { delete[] d; }
108
110
  if(M) {
109
111
  globalMemoryTotal -= M*sizeT;
110
112
  if(memMove==1) free(p); else delete[] p;
@@ -133,8 +133,8 @@ struct Graph : NodeL {
133
133
  //-- basic node retrieval -- users should use the higher-level wrappers below
134
134
  Node* findNode(const char* key, bool recurseUp=false, bool recurseDown=false) const; ///< returns nullptr if not found
135
135
  NodeL findNodes(const char* key, bool recurseUp=false, bool recurseDown=false) const;
136
- Node* findNodeOfType(const std::type_info& type, const char* key, bool recurseUp=false, bool recurseDown=false) const;
137
- NodeL findNodesOfType(const std::type_info& type, const char* key, bool recurseUp=false, bool recurseDown=false) const;
136
+ Node* findNodeOfType(const std::type_info& type, const char* key=0, bool recurseUp=false, bool recurseDown=false) const;
137
+ NodeL findNodesOfType(const std::type_info& type, const char* key=0, bool recurseUp=false, bool recurseDown=false) const;
138
138
  NodeL findGraphNodesWithTag(const char* tag) const;
139
139
 
140
140
  //
@@ -372,17 +372,17 @@ struct FileToken {
372
372
  std::shared_ptr<std::ifstream> is;
373
373
 
374
374
  FileToken();
375
- FileToken(const char* _filename, bool change_dir=false);
375
+ FileToken(const char* _filename);
376
376
  FileToken(const FileToken& ft);
377
377
  ~FileToken();
378
378
  FileToken& operator()() { return *this; }
379
379
 
380
380
  void decomposeFilename();
381
- void cd_start();
381
+ void cd_base();
382
382
  void cd_file();
383
383
  bool exists();
384
- std::ostream& getOs(bool change_dir=false);
385
- std::istream& getIs(bool change_dir=false);
384
+ std::ostream& getOs();
385
+ std::istream& getIs();
386
386
  operator std::istream& () { return getIs(); }
387
387
  operator std::ostream& () { return getOs(); }
388
388
 
@@ -397,7 +397,7 @@ template<class T> FileToken& operator<<(T& x, FileToken& fil) { fil.getIs() >>x;
397
397
  template<class T> void operator>>(const T& x, FileToken& fil) { fil.getOs() <<x; }
398
398
  inline bool operator==(const FileToken&, const FileToken&) { return false; }
399
399
  }
400
- #define FILE(filename) (rai::FileToken(filename, false)()) //it needs to return a REFERENCE to a local scope object
400
+ #define FILE(filename) (rai::FileToken(filename)()) //it needs to return a REFERENCE to a local scope object
401
401
 
402
402
  //===========================================================================
403
403
  //
@@ -606,10 +606,11 @@ inline bool operator==(Type& t1, Type& t2) { return t1.typeId() == t2.typeId();
606
606
  //
607
607
 
608
608
  template<class T> T fromFile(const char* filename) {
609
- rai::FileToken file(filename, true);
609
+ rai::FileToken file(filename);
610
610
  T x;
611
+ file.cd_file();
611
612
  x.read(file.getIs());
612
- file.cd_start();
613
+ file.cd_base();
613
614
  return x;
614
615
  }
615
616
 
@@ -74,7 +74,7 @@ struct Matrix {
74
74
 
75
75
  Matrix() {}
76
76
  Matrix(int zero) { CHECK_EQ(zero, 0, "this is only for initialization with zero"); setZero(); }
77
- Matrix(const arr& m) { CHECK_EQ(m.N, 9, ""); set(m.p); }
77
+ Matrix(const arr& m) { set(m); }
78
78
  Matrix(const Matrix& m) : m00(m.m00), m01(m.m01), m02(m.m02), m10(m.m10), m11(m.m11), m12(m.m12), m20(m.m20), m21(m.m21), m22(m.m22) {}
79
79
  double* p() { return &m00; }
80
80
  arr getArr() const { return arr(&m00, 9, true).reshape(3, 3); }
@@ -84,6 +84,7 @@ struct Matrix {
84
84
  void setZero();
85
85
  void setRandom(double range=1.);
86
86
  void setId();
87
+ void set(const arr& X);
87
88
  void setDiag(const arr& diag);
88
89
  void setSymmetric(const arr& entries6);
89
90
  void setSkew(const Vector&);
@@ -91,7 +92,7 @@ struct Matrix {
91
92
 
92
93
  double diffZero() const;
93
94
 
94
- bool isDiagonal() const { return !m01 && !m02 && !m10 && !m12 && !m20 && !m21; }
95
+ bool isDiagonal() const;
95
96
  void deleteOffDiagonal() { m01=m02=m10=m12=m20=m21=0.; }
96
97
 
97
98
  void write(std::ostream&) const;
@@ -17,7 +17,7 @@ namespace rai { struct Mesh; }
17
17
  typedef rai::Array<rai::Mesh> MeshA;
18
18
  typedef rai::Array<rai::Mesh*> MeshL;
19
19
  struct ANN;
20
- struct SharedTextureImage{ byteA img; uint glBufferID=UINT32_MAX; };
20
+ struct SharedTextureImage{ byteA img; charA file; uint glBufferID=UINT32_MAX; };
21
21
 
22
22
  namespace rai {
23
23
 
@@ -45,8 +45,6 @@ struct Mesh {
45
45
  rai::Transformation glX; ///< transform (only used for drawing! Otherwise use applyOnPoints) (optional)
46
46
 
47
47
  int version = 0;
48
- long parsing_pos_start;
49
- long parsing_pos_end;
50
48
 
51
49
  uint _support_vertex=0;
52
50
  bool isArrayFormatted=false;
@@ -31,7 +31,7 @@ struct ManipulationHelper {
31
31
  void setup_sequence(rai::Configuration& C, uint K, double homing_scale=1e-2, double velocity_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
32
32
  void setup_motion(rai::Configuration& C, uint K, uint steps_per_phase, double homing_scale=0., double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
33
33
  void setup_pick_and_place_waypoints(rai::Configuration& C, const char* gripper, const char* obj, double homing_scale=1e-2, double velocity_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
34
- void setup_point_to_point_motion(rai::Configuration& C, const arr& q1, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
34
+ void setup_point_to_point_motion(rai::Configuration& C, const arr& q1, uint steps_per_phase, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
35
35
  void setup_point_to_point_rrt(rai::Configuration& C, const arr& q0, const arr& q1, const StringA& explicitCollisionPairs);
36
36
 
37
37
  void add_stable_frame(rai::JointType type, const char* parent, const char* name, const char* initName=0, rai::Frame* initFrame=0, double markerSize=-1.);
@@ -63,7 +63,7 @@ struct ManipulationHelper {
63
63
  arr sample(const char* sampleMethod=0, int verbose=1);
64
64
  void debug(bool listObjectives=true, bool plotOverTime=false);
65
65
 
66
- std::shared_ptr<ManipulationHelper> sub_motion(uint phase, bool fixEnd=true, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=false, const StringA& activeDofs={});
66
+ std::shared_ptr<ManipulationHelper> sub_motion(uint phase, uint steps_per_phase, bool fixEnd=true, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true, const StringA& activeDofs={});
67
67
  std::shared_ptr<rai::RRT_PathFinder> sub_rrt(uint phase, const StringA& explicitCollisionPairs= {}, const StringA& activeDofs={});
68
68
 
69
69
  void play(rai::Configuration& C, double duration=1.);
@@ -146,8 +146,9 @@ struct Frame : NonCopyable {
146
146
 
147
147
  //composed object manipulation
148
148
  Transformation transformToDiagInertia(bool transformOwnMesh=false);
149
- Frame& computeCompoundInertia(bool clearChildInertias=true);
149
+ Frame& computeCompoundInertia();
150
150
  Frame& convertDecomposedShapeToChildFrames();
151
+ bool standardizeInertias(bool recomputeInertias=true, bool _transformToDiagInertia=false);
151
152
 
152
153
  //I/O
153
154
  void read(const Graph& ats);
@@ -175,9 +176,9 @@ struct Frame : NonCopyable {
175
176
  Frame& setTensorShape(const floatA& data, const arr& size);
176
177
  Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur, double resample);
177
178
  Frame& setColor(const arr& color);
178
- Frame& setJoint(rai::JointType jointType, const arr& limits= {});
179
+ Frame& setJoint(rai::JointType jointType, const arr& limits={}, double scale=1., Frame* mimic=0);
179
180
  Frame& setContact(int cont);
180
- Frame& setMass(double mass);
181
+ Frame& setMass(double mass, const arr& inertiaMatrix={});
181
182
  Frame& setAttribute(const char* key, double value);
182
183
  Frame& setJointState(const arr& q); ///< throws error if this frame is not also a joint, and if q.size() != joint->dim
183
184
 
@@ -306,7 +307,6 @@ struct Inertia : NonCopyable {
306
307
  Frame& frame;
307
308
  double mass=0.;
308
309
  Matrix matrix=0;
309
- Enum<BodyType> type;
310
310
  Vector com=0; ///< its center of mass
311
311
 
312
312
  Inertia(Frame& f, rai::Inertia* copyInertia=nullptr);
@@ -181,8 +181,9 @@ struct Configuration {
181
181
  void pruneEmptyShapes();
182
182
  void reconnectShapesToParents();
183
183
  void reconnectLinksToClosestJoints(); ///< re-connect all links to closest joint
184
- void pruneUselessFrames(bool pruneNamed=false, bool pruneNonContactNonMarker=false, bool pruneTransparent=false); ///< delete frames that have no name, joint, and shape
185
- void simplify(bool pruneNamed=false, bool pruneNonContactNonMarker=false, bool pruneTransparent=false); ///< call the three above methods in this order
184
+ void pruneUselessFrames(bool pruneNamed=false, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< delete frames that have no name, joint, and shape
185
+ void processStructure(bool _pruneRigidJoints=false, bool reconnectToLinks=true, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< call the three above methods in this order
186
+ void processInertias(bool recomputeInertias=true, bool transformToDiagInertia=false);
186
187
  void sortFrames();
187
188
  void makeObjectsFree(const StringA& objects, double H_cost=0.);
188
189
  void addTauJoint();
@@ -288,7 +289,7 @@ public:
288
289
  void write(Graph& G) const;
289
290
  void writeURDF(std::ostream& os, const char* robotName="myrobot") const;
290
291
  void writeCollada(const char* filename, const char* format="collada") const;
291
- void writeMeshes(str pathPrefix="meshes/") const;
292
+ void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false, bool enumerateTextures=false) const;
292
293
  void writeMesh(const char* filename="z.ply") const;
293
294
  void read(std::istream& is);
294
295
  Graph getGraph() const;
@@ -25,7 +25,7 @@ struct PhysX_Options {
25
25
  struct PhysXInterface {
26
26
  struct PhysXInterface_self* self=0;
27
27
 
28
- PhysXInterface(const rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
28
+ PhysXInterface(rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
29
29
  ~PhysXInterface();
30
30
 
31
31
  void step(double tau=.01);
@@ -40,7 +40,6 @@ struct PhysXInterface {
40
40
  void addJoint(rai::Joint* j);
41
41
  void removeJoint(rai::Joint* j);
42
42
  void postAddObject(rai::Frame* f);
43
- void setArticulatedBodiesKinematic(const rai::Configuration& C);
44
43
 
45
44
  void view(bool pause=false, const char* txt=nullptr);
46
45
 
@@ -17,8 +17,9 @@
17
17
  #include <pybind11/pybind11.h>
18
18
  #include <pybind11/stl.h>
19
19
  #include <pybind11/numpy.h>
20
+ #include <pybind11/pytypes.h>
20
21
 
21
- pybind11::dict graph2dict(const rai::Graph& G);
22
+ pybind11::dict graph2dict(const rai::Graph& G, const rai::NodeL& parents={}, bool parentsInKeys=true);
22
23
  rai::Graph dict2graph(const pybind11::dict& dict);
23
24
 
24
25
  pybind11::list graph2list(const rai::Graph& G);
@@ -308,7 +309,7 @@ template <> struct type_caster<rai::Graph> {
308
309
  }
309
310
 
310
311
  static handle cast(const rai::Graph& G, return_value_policy, handle) {
311
- return graph2dict(G).release();
312
+ return graph2dict(G, rai::NodeL{}).release();
312
313
  }
313
314
  };
314
315
 
robotic/librai.so CHANGED
Binary file
robotic/meshTool CHANGED
Binary file
@@ -0,0 +1,10 @@
1
+ from config_mujoco import *
2
+ import sysconfig
3
+
4
+ pysite = sysconfig.get_paths()["purelib"]
5
+ file = pysite+"/gymnasium_robotics/envs/assets/kitchen_franka/kitchen_assets/kitchen_env_model.xml"
6
+ # file = '/home/mtoussai/git/MuJoCo2Rai/kitchen_dataset/RUSTIC_ONE_WALL_SMALL.xml'
7
+
8
+ print('=====================', file)
9
+ C = Config_Mujoco(file, visualsOnly=True)
10
+ C.view(True)
@@ -1,5 +1,5 @@
1
1
  ## create standard base frame before including
2
2
 
3
3
  g1_base: { X:[0, 0, .79], multibody: true, multibody_fixedBase: false }
4
- Include: <g1_clean.g>
4
+ Include: <g1_29dof_conv.g>
5
5
  Edit pelvis(g1_base): {}
@@ -0,0 +1,77 @@
1
+ pelvis: { shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/pelvis.h5>, mass: 0.400236, inertia: [0.00159584, -5.92804e-10, -1.2185e-09, 0.0013267, 3.05393e-09, 0.00119011] },
2
+ pelvis_contour_joint(pelvis): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/pelvis_contour_link.h5>, mass: 0.393642, inertia: [0.00120549, -1.39118e-07, -1.37717e-06, 0.00142459, -1.2061e-07, 0.00136524] },
3
+ left_hip_pitch_joint_origin(pelvis): { Q: [0, 0.064452, -0.1027] },
4
+ right_hip_pitch_joint_origin(pelvis): { Q: [0, -0.064452, -0.1027] },
5
+ imu_in_pelvis_joint_origin(pelvis): { Q: [0.04525, 0, -0.08339] },
6
+ waist_yaw_joint(pelvis): { joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/waist_yaw_link.h5>, mass: 0.168083, inertia: [8.83938e-05, -2.82438e-09, -9.9721e-06, 0.000103081, -2.02902e-09, 0.000150067] },
7
+ left_hip_pitch_joint(left_hip_pitch_joint_origin): { joint: hingeY, limits: [-2.5307, 2.8798], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/left_hip_pitch_link.h5>, mass: 0.264573, inertia: [0.000474721, 4.31311e-06, 5.93997e-06, 0.000392354, 4.96908e-05, 0.000375138] },
8
+ right_hip_pitch_joint(right_hip_pitch_joint_origin): { joint: hingeY, limits: [-2.5307, 2.8798], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/right_hip_pitch_link.h5>, mass: 0.264569, inertia: [0.000474711, -4.31398e-06, 5.94077e-06, 0.000392343, -4.96889e-05, 0.000375138] },
9
+ imu_in_pelvis_joint(imu_in_pelvis_joint_origin): { joint: rigid },
10
+ waist_roll_joint_origin(waist_yaw_joint): { Q: [-0.0039635, 0, 0.035] },
11
+ left_hip_roll_joint_origin(left_hip_pitch_joint): { Q: [0, 0.052, -0.030465, 0.996179, 0, -0.0873386, 0] },
12
+ right_hip_roll_joint_origin(right_hip_pitch_joint): { Q: [0, -0.052, -0.030465, 0.996179, 0, -0.0873386, 0] },
13
+ waist_roll_joint(waist_roll_joint_origin): { joint: hingeX, limits: [-0.52, 0.52], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/waist_roll_link.h5>, mass: 0.0221562, inertia: [4.0451e-06, 7.41165e-11, -2.63317e-11, 3.67093e-06, 3.77707e-11, 2.32541e-06] },
14
+ left_hip_roll_joint(left_hip_roll_joint_origin): { joint: hingeX, limits: [-0.5236, 2.9671], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_hip_roll_link.h5>, mass: 0.388504, inertia: [0.00122176, -2.52983e-06, -0.000212212, 0.00118448, -1.72307e-06, 0.00069136] },
15
+ right_hip_roll_joint(right_hip_roll_joint_origin): { joint: hingeX, limits: [-2.9671, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_hip_roll_link.h5>, mass: 0.388501, inertia: [0.00122175, 2.52204e-06, -0.000212212, 0.00118447, 1.73174e-06, 0.000691349] },
16
+ waist_pitch_joint_origin(waist_roll_joint): { Q: [0, 0, 0.019] },
17
+ left_hip_yaw_joint_origin(left_hip_roll_joint): { Q: [0.025001, 0, -0.12412] },
18
+ right_hip_yaw_joint_origin(right_hip_roll_joint): { Q: [0.025001, 0, -0.12412] },
19
+ waist_pitch_joint(waist_pitch_joint_origin): { joint: hingeY, limits: [-0.52, 0.52], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/torso_link.h5>, mass: 3.72833, inertia: [0.0404695, -1.1264e-05, -0.000266539, 0.0333617, -1.24012e-05, 0.0221975] },
20
+ left_hip_yaw_joint(left_hip_yaw_joint_origin): { joint: hingeZ, limits: [-2.7576, 2.7576], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_hip_yaw_link.h5>, mass: 0.681619, inertia: [0.0044275, -0.000108056, -0.00166275, 0.00545319, -0.000187376, 0.001876] },
21
+ right_hip_yaw_joint(right_hip_yaw_joint_origin): { joint: hingeZ, limits: [-2.7576, 2.7576], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_hip_yaw_link.h5>, mass: 0.681613, inertia: [0.00442747, 0.000108056, -0.00166275, 0.00545319, 0.000187351, 0.00187597] },
22
+ logo_joint_origin(waist_pitch_joint): { Q: [0.0039635, 0, -0.054] },
23
+ head_joint_origin(waist_pitch_joint): { Q: [0.0039635, 0, -0.054] },
24
+ waist_support_joint_origin(waist_pitch_joint): { Q: [0.0039635, 0, -0.054] },
25
+ imu_in_torso_joint_origin(waist_pitch_joint): { Q: [-0.03959, -0.00224, 0.13792] },
26
+ d435_joint_origin(waist_pitch_joint): { Q: [0.0576235, 0.01753, 0.41987, 0.91496, 0, 0.403545, 0] },
27
+ mid360_joint_origin(waist_pitch_joint): { Q: [0.0002835, 3e-05, 0.40618, 0.999799, 0, 0.0200699, 0] },
28
+ left_shoulder_pitch_joint_origin(waist_pitch_joint): { Q: [0.0039563, 0.10022, 0.23778, 0.990264, 0.139201, 4.05418e-05, -9.10379e-05] },
29
+ right_shoulder_pitch_joint_origin(waist_pitch_joint): { Q: [0.0039563, -0.10021, 0.23778, 0.990264, -0.139201, 4.05418e-05, 9.10379e-05] },
30
+ left_knee_joint_origin(left_hip_yaw_joint): { Q: [-0.078273, 0.0021489, -0.17734, 0.996179, 0, 0.0873386, 0] },
31
+ right_knee_joint_origin(right_hip_yaw_joint): { Q: [-0.078273, -0.0021489, -0.17734, 0.996179, 0, 0.0873386, 0] },
32
+ logo_joint(logo_joint_origin): { joint: rigid, shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/logo_link.h5>, mass: 0.0575578, inertia: [0.000100919, -1.65034e-06, 1.03204e-06, 0.000279739, 5.60472e-08, 0.000376764] },
33
+ head_joint(head_joint_origin): { joint: rigid, shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/head_link.h5>, mass: 0.493975, inertia: [0.00295612, 1.28062e-08, -0.000167611, 0.00293932, 2.9539e-08, 0.0012706] },
34
+ waist_support_joint(waist_support_joint_origin): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/waist_support_link.h5>, mass: 0.202405, inertia: [0.00046643, -1.24677e-07, -2.44136e-07, 0.000381836, -3.23169e-08, 0.000786744] },
35
+ imu_in_torso_joint(imu_in_torso_joint_origin): { joint: rigid },
36
+ d435_joint(d435_joint_origin): { joint: rigid },
37
+ mid360_joint(mid360_joint_origin): { joint: rigid },
38
+ left_shoulder_pitch_joint(left_shoulder_pitch_joint_origin): { joint: hingeY, limits: [-3.0892, 2.6704], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_shoulder_pitch_link.h5>, mass: 0.126023, inertia: [0.000160485, -1.66228e-07, 3.91865e-07, 0.000151496, 1.75614e-05, 0.000138798] },
39
+ right_shoulder_pitch_joint(right_shoulder_pitch_joint_origin): { joint: hingeY, limits: [-3.0892, 2.6704], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_shoulder_pitch_link.h5>, mass: 0.126023, inertia: [0.000160483, 1.65124e-07, 3.90512e-07, 0.000151492, -1.75623e-05, 0.000138793] },
40
+ left_knee_joint(left_knee_joint_origin): { joint: hingeY, limits: [-0.087267, 2.8798], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_knee_link.h5>, mass: 0.876712, inertia: [0.00648182, 3.3975e-05, -0.000127209, 0.00672925, -0.000358869, 0.00109586] },
41
+ right_knee_joint(right_knee_joint_origin): { joint: hingeY, limits: [-0.087267, 2.8798], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_knee_link.h5>, mass: 0.876714, inertia: [0.00648176, -3.398e-05, -0.000127209, 0.00672918, 0.000358822, 0.00109587] },
42
+ left_shoulder_roll_joint_origin(left_shoulder_pitch_joint): { Q: [0, 0.038, -0.013831, 0.990268, -0.139172, 0, 0] },
43
+ right_shoulder_roll_joint_origin(right_shoulder_pitch_joint): { Q: [0, -0.038, -0.013831, 0.990268, 0.139172, 0, 0] },
44
+ left_ankle_pitch_joint_origin(left_knee_joint): { Q: [0, -9.4445e-05, -0.30001] },
45
+ right_ankle_pitch_joint_origin(right_knee_joint): { Q: [0, 9.4445e-05, -0.30001] },
46
+ left_shoulder_roll_joint(left_shoulder_roll_joint_origin): { joint: hingeX, limits: [-1.5882, 2.2515], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_shoulder_roll_link.h5>, mass: 0.246281, inertia: [0.000394956, 2.09873e-08, -1.93073e-07, 0.000469736, 1.57454e-05, 0.000272781] },
47
+ right_shoulder_roll_joint(right_shoulder_roll_joint_origin): { joint: hingeX, limits: [-2.2515, 1.5882], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_shoulder_roll_link.h5>, mass: 0.246283, inertia: [0.000394966, -1.6719e-08, -1.89014e-07, 0.000469741, -1.57405e-05, 0.000272773] },
48
+ left_ankle_pitch_joint(left_ankle_pitch_joint_origin): { joint: hingeY, limits: [-0.87267, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_ankle_pitch_link.h5>, mass: 0.0197524, inertia: [2.78775e-06, -2.27316e-10, -5.8987e-07, 4.52084e-06, -3.84759e-10, 2.51425e-06] },
49
+ right_ankle_pitch_joint(right_ankle_pitch_joint_origin): { joint: hingeY, limits: [-0.87267, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_ankle_pitch_link.h5>, mass: 0.0197524, inertia: [2.78777e-06, 2.213e-10, -5.89865e-07, 4.52084e-06, 3.98325e-10, 2.51424e-06] },
50
+ left_shoulder_yaw_joint_origin(left_shoulder_roll_joint): { Q: [0, 0.00624, -0.1032] },
51
+ right_shoulder_yaw_joint_origin(right_shoulder_roll_joint): { Q: [0, -0.00624, -0.1032] },
52
+ left_ankle_roll_joint_origin(left_ankle_pitch_joint): { Q: [0, 0, -0.017558] },
53
+ right_ankle_roll_joint_origin(right_ankle_pitch_joint): { Q: [0, 0, -0.017558] },
54
+ left_shoulder_yaw_joint(left_shoulder_yaw_joint_origin): { joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_shoulder_yaw_link.h5>, mass: 0.330191, inertia: [0.00075724, 1.01914e-05, 0.000118153, 0.000781633, -6.07748e-05, 0.000303097] },
55
+ right_shoulder_yaw_joint(right_shoulder_yaw_joint_origin): { joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_shoulder_yaw_link.h5>, mass: 0.330189, inertia: [0.000757238, -1.01934e-05, 0.000118161, 0.000781632, 6.07703e-05, 0.000303094] },
56
+ left_ankle_roll_joint(left_ankle_roll_joint_origin): { joint: hingeX, limits: [-0.2618, 0.2618], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/left_ankle_roll_link.h5>, mass: 0.456098, inertia: [0.000287801, 6.50248e-08, 8.30648e-05, 0.00151895, -1.18792e-07, 0.0016069] },
57
+ right_ankle_roll_joint(right_ankle_roll_joint_origin): { joint: hingeX, limits: [-0.2618, 0.2618], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/right_ankle_roll_link.h5>, mass: 0.45609, inertia: [0.0002878, -9.56202e-08, 8.30614e-05, 0.00151893, 1.13682e-07, 0.00160687] },
58
+ left_elbow_joint_origin(left_shoulder_yaw_joint): { Q: [0.015783, 0, -0.080518] },
59
+ right_elbow_joint_origin(right_shoulder_yaw_joint): { Q: [0.015783, 0, -0.080518] },
60
+ left_elbow_joint(left_elbow_joint_origin): { joint: hingeY, limits: [-1.0472, 2.0944], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_elbow_link.h5>, mass: 0.133212, inertia: [0.000105606, 4.41256e-05, 1.51768e-05, 0.000221879, -4.66813e-06, 0.000221601] },
61
+ right_elbow_joint(right_elbow_joint_origin): { joint: hingeY, limits: [-1.0472, 2.0944], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_elbow_link.h5>, mass: 0.133212, inertia: [0.000105601, -4.41257e-05, 1.5176e-05, 0.000221877, 4.66758e-06, 0.000221596] },
62
+ left_wrist_roll_joint_origin(left_elbow_joint): { Q: [0.1, 0.00188791, -0.01] },
63
+ right_wrist_roll_joint_origin(right_elbow_joint): { Q: [0.1, -0.00188791, -0.01] },
64
+ left_wrist_roll_joint(left_wrist_roll_joint_origin): { joint: hingeX, limits: [-1.97222, 1.97222], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_wrist_roll_link.h5>, mass: 0.0819051, inertia: [5.76855e-05, -6.70778e-07, 1.09252e-09, 4.18275e-05, -1.21848e-09, 6.33789e-05] },
65
+ right_wrist_roll_joint(right_wrist_roll_joint_origin): { joint: hingeX, limits: [-1.97222, 1.97222], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_wrist_roll_link.h5>, mass: 0.0819045, inertia: [5.76834e-05, 6.70746e-07, 8.73074e-10, 4.18274e-05, 8.19224e-10, 6.33769e-05] },
66
+ left_wrist_pitch_joint_origin(left_wrist_roll_joint): { Q: [0.038, 0, 0] },
67
+ right_wrist_pitch_joint_origin(right_wrist_roll_joint): { Q: [0.038, 0, 0] },
68
+ left_wrist_pitch_joint(left_wrist_pitch_joint_origin): { joint: hingeY, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_wrist_pitch_link.h5>, mass: 0.102165, inertia: [6.54114e-05, -1.39886e-06, 1.39875e-06, 0.000133698, 1.78434e-08, 0.000133699] },
69
+ right_wrist_pitch_joint(right_wrist_pitch_joint_origin): { joint: hingeY, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_wrist_pitch_link.h5>, mass: 0.102164, inertia: [6.54077e-05, 1.39993e-06, 1.3996e-06, 0.000133692, -1.67215e-08, 0.000133692] },
70
+ left_wrist_yaw_joint_origin(left_wrist_pitch_joint): { Q: [0.046, 0, 0] },
71
+ right_wrist_yaw_joint_origin(right_wrist_pitch_joint): { Q: [0.046, 0, 0] },
72
+ left_wrist_yaw_joint(left_wrist_yaw_joint_origin): { joint: hingeZ, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_wrist_yaw_link.h5>, mass: 0.0806154, inertia: [5.53182e-05, -1.04206e-06, 7.04147e-07, 6.51217e-05, 2.05369e-08, 4.14947e-05] },
73
+ right_wrist_yaw_joint(right_wrist_yaw_joint_origin): { joint: hingeZ, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_wrist_yaw_link.h5>, mass: 0.0806224, inertia: [5.53259e-05, 1.04209e-06, 7.04755e-07, 6.51361e-05, -2.11753e-08, 4.15045e-05] },
74
+ left_hand_palm_joint_origin(left_wrist_yaw_joint): { Q: [0.0415, 0.003, 0] },
75
+ right_hand_palm_joint_origin(right_wrist_yaw_joint): { Q: [0.0415, -0.003, 0] },
76
+ left_hand_palm_joint(left_hand_palm_joint_origin): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_rubber_hand.h5>, mass: 0.154796, inertia: [0.000129099, 4.62168e-05, 5.26706e-06, 0.000313538, 2.47853e-06, 0.000241113] },
77
+ right_hand_palm_joint(right_hand_palm_joint_origin): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_rubber_hand.h5>, mass: 0.154795, inertia: [0.0001291, -4.62179e-05, 5.26836e-06, 0.000313541, -2.47823e-06, 0.000241117] }