robotic 0.2.9.dev1__cp39-cp39-manylinux2014_x86_64.whl → 0.3.0__cp39-cp39-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 (341) hide show
  1. robotic/__init__.py +4 -0
  2. robotic/_robotic.pyi +13 -13
  3. robotic/_robotic.so +0 -0
  4. robotic/include/rai/Algo/rungeKutta.h +1 -1
  5. robotic/include/rai/Control/TimingMPC.h +2 -2
  6. robotic/include/rai/Core/array.h +64 -40
  7. robotic/include/rai/Core/array.ipp +247 -81
  8. robotic/include/rai/Core/arrayDouble.h +10 -13
  9. robotic/include/rai/Core/graph.h +22 -2
  10. robotic/include/rai/Core/h5.h +3 -1
  11. robotic/include/rai/Core/util.h +8 -7
  12. robotic/include/rai/Geo/fclInterface.h +3 -1
  13. robotic/include/rai/Geo/geo.h +6 -2
  14. robotic/include/rai/Geo/mesh.h +11 -5
  15. robotic/include/rai/Geo/pairCollision.h +4 -4
  16. robotic/include/rai/Gui/RenderData.h +4 -3
  17. robotic/include/rai/Gui/opengl.h +1 -1
  18. robotic/include/rai/KOMO/komo.h +1 -0
  19. robotic/include/rai/KOMO/manipTools.h +2 -2
  20. robotic/include/rai/Kin/F_forces.h +1 -1
  21. robotic/include/rai/Kin/dof_forceExchange.h +4 -4
  22. robotic/include/rai/Kin/frame.h +6 -5
  23. robotic/include/rai/Kin/kin.h +26 -17
  24. robotic/include/rai/Kin/kin_physx.h +2 -2
  25. robotic/include/rai/Logic/folWorld.h +1 -1
  26. robotic/include/rai/Optim/testProblems_Opt.h +2 -2
  27. robotic/include/rai/Optim/utils.h +2 -2
  28. robotic/include/rai/PathAlgos/ConfigurationProblem.h +3 -2
  29. robotic/include/rai/PathAlgos/RRT_PathFinder.h +1 -1
  30. robotic/include/rai/ry/types.h +3 -2
  31. robotic/librai.so +0 -0
  32. robotic/meshTool +0 -0
  33. robotic/mujoco-import.py +10 -0
  34. robotic/rai-robotModels/g1/g1.g +11 -2
  35. robotic/rai-robotModels/g1/g1_clean.g +38 -73
  36. robotic/rai-robotModels/g1/meshes/head_link.h5 +0 -0
  37. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.h5 +0 -0
  38. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.h5 +0 -0
  39. robotic/rai-robotModels/g1/meshes/left_elbow_link.h5 +0 -0
  40. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.h5 +0 -0
  41. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.h5 +0 -0
  42. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.h5 +0 -0
  43. robotic/rai-robotModels/g1/meshes/left_knee_link.h5 +0 -0
  44. robotic/rai-robotModels/g1/meshes/left_rubber_hand.h5 +0 -0
  45. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.h5 +0 -0
  46. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.h5 +0 -0
  47. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.h5 +0 -0
  48. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.h5 +0 -0
  49. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.h5 +0 -0
  50. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.h5 +0 -0
  51. robotic/rai-robotModels/g1/meshes/logo_link.h5 +0 -0
  52. robotic/rai-robotModels/g1/meshes/pelvis.h5 +0 -0
  53. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.h5 +0 -0
  54. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.h5 +0 -0
  55. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.h5 +0 -0
  56. robotic/rai-robotModels/g1/meshes/right_elbow_link.h5 +0 -0
  57. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.h5 +0 -0
  58. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.h5 +0 -0
  59. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.h5 +0 -0
  60. robotic/rai-robotModels/g1/meshes/right_knee_link.h5 +0 -0
  61. robotic/rai-robotModels/g1/meshes/right_rubber_hand.h5 +0 -0
  62. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.h5 +0 -0
  63. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.h5 +0 -0
  64. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.h5 +0 -0
  65. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.h5 +0 -0
  66. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.h5 +0 -0
  67. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.h5 +0 -0
  68. robotic/rai-robotModels/g1/meshes/torso_link.h5 +0 -0
  69. robotic/rai-robotModels/g1/meshes/waist_roll_link.h5 +0 -0
  70. robotic/rai-robotModels/g1/meshes/waist_support_link.h5 +0 -0
  71. robotic/rai-robotModels/g1/meshes/waist_yaw_link.h5 +0 -0
  72. robotic/rai-robotModels/objects/shelf.g +1 -1
  73. robotic/rai-robotModels/panda/meshes/finger.h5 +0 -0
  74. robotic/rai-robotModels/panda/meshes/hand.h5 +0 -0
  75. robotic/rai-robotModels/panda/meshes/link0.h5 +0 -0
  76. robotic/rai-robotModels/panda/meshes/link1.h5 +0 -0
  77. robotic/rai-robotModels/panda/meshes/link2.h5 +0 -0
  78. robotic/rai-robotModels/panda/meshes/link3.h5 +0 -0
  79. robotic/rai-robotModels/panda/meshes/link4.h5 +0 -0
  80. robotic/rai-robotModels/panda/meshes/link5.h5 +0 -0
  81. robotic/rai-robotModels/panda/meshes/link6.h5 +0 -0
  82. robotic/rai-robotModels/panda/meshes/link7.h5 +0 -0
  83. robotic/rai-robotModels/panda/panda.g +1 -1
  84. robotic/rai-robotModels/panda/panda_arm_hand_conv.g +24 -0
  85. robotic/rai-robotModels/panda/panda_arm_hand_conv.yml +24 -0
  86. robotic/rai-robotModels/panda/panda_clean.g +21 -45
  87. robotic/rai-robotModels/panda/panda_gripper.g +3 -3
  88. robotic/rai-robotModels/pr2/meshes/base.h5 +0 -0
  89. robotic/rai-robotModels/pr2/meshes/base_color.png +0 -0
  90. robotic/rai-robotModels/pr2/meshes/caster.h5 +0 -0
  91. robotic/rai-robotModels/pr2/meshes/elbow_flex.h5 +0 -0
  92. robotic/rai-robotModels/pr2/meshes/elbow_flex_color.png +0 -0
  93. robotic/rai-robotModels/pr2/meshes/forearm.h5 +0 -0
  94. robotic/rai-robotModels/pr2/meshes/forearm_color.png +0 -0
  95. robotic/rai-robotModels/pr2/meshes/forearm_roll.h5 +0 -0
  96. robotic/rai-robotModels/pr2/meshes/gripper_palm.h5 +0 -0
  97. robotic/rai-robotModels/pr2/meshes/gripper_palm_color.png +0 -0
  98. robotic/rai-robotModels/pr2/meshes/head_pan.h5 +0 -0
  99. robotic/rai-robotModels/pr2/meshes/head_pan_color.png +0 -0
  100. robotic/rai-robotModels/pr2/meshes/head_tilt.h5 +0 -0
  101. robotic/rai-robotModels/pr2/meshes/head_tilt_color.png +0 -0
  102. robotic/rai-robotModels/pr2/meshes/l_finger.h5 +0 -0
  103. robotic/rai-robotModels/pr2/meshes/l_finger_color.png +0 -0
  104. robotic/rai-robotModels/pr2/meshes/l_finger_tip.h5 +0 -0
  105. robotic/rai-robotModels/pr2/meshes/l_finger_tip_color.png +0 -0
  106. robotic/rai-robotModels/pr2/meshes/shoulder_lift.h5 +0 -0
  107. robotic/rai-robotModels/pr2/meshes/shoulder_lift_color.png +0 -0
  108. robotic/rai-robotModels/pr2/meshes/shoulder_pan.h5 +0 -0
  109. robotic/rai-robotModels/pr2/meshes/shoulder_pan_color.png +0 -0
  110. robotic/rai-robotModels/pr2/meshes/tilting_hokuyo.h5 +0 -0
  111. robotic/rai-robotModels/pr2/meshes/tilting_hokuyo_color.png +0 -0
  112. robotic/rai-robotModels/pr2/meshes/torso_lift.h5 +0 -0
  113. robotic/rai-robotModels/pr2/meshes/torso_lift_color.png +0 -0
  114. robotic/rai-robotModels/pr2/meshes/upper_arm.h5 +0 -0
  115. robotic/rai-robotModels/pr2/meshes/upper_arm_color.png +0 -0
  116. robotic/rai-robotModels/pr2/meshes/upper_arm_roll.h5 +0 -0
  117. robotic/rai-robotModels/pr2/meshes/upper_arm_roll_color.png +0 -0
  118. robotic/rai-robotModels/pr2/meshes/wheel.h5 +0 -0
  119. robotic/rai-robotModels/pr2/meshes/wheel_color.png +0 -0
  120. robotic/rai-robotModels/pr2/meshes/wrist_color.png +0 -0
  121. robotic/rai-robotModels/pr2/meshes/wrist_flex.h5 +0 -0
  122. robotic/rai-robotModels/pr2/meshes/wrist_roll.h5 +0 -0
  123. robotic/rai-robotModels/pr2/pr2.g +7 -7
  124. robotic/rai-robotModels/pr2/pr2_clean.g +119 -115
  125. robotic/rai-robotModels/pr2/pr2_conv.g +218 -0
  126. robotic/rai-robotModels/pr2/pr2_modifications.g +2 -2
  127. robotic/rai-robotModels/ranger/meshes/ranger_mini3.h5 +0 -0
  128. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.h5 +0 -0
  129. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.h5 +0 -0
  130. robotic/rai-robotModels/ranger/ranger.g +8 -8
  131. robotic/rai-robotModels/ranger/ranger_clean.g +5 -5
  132. robotic/rai-robotModels/ranger/ranger_mini_conv.g +14 -0
  133. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_base_link.h5 +0 -0
  134. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_finger.h5 +0 -0
  135. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_knuckle.h5 +0 -0
  136. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_finger.h5 +0 -0
  137. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_knuckle.h5 +0 -0
  138. robotic/rai-robotModels/robotiq/robotiq.g +2 -2
  139. robotic/rai-robotModels/robotiq/robotiq_clean.g +16 -16
  140. robotic/rai-robotModels/scenarios/ballFinger.g +2 -2
  141. robotic/rai-robotModels/scenarios/panda_fixRobotiq.g +3 -3
  142. robotic/rai-robotModels/tests/arm.g +11 -11
  143. robotic/rai-robotModels/tests/compound.g +3 -6
  144. robotic/rai-robotModels/ur10/meshes/base.h5 +0 -0
  145. robotic/rai-robotModels/ur10/meshes/forearm.h5 +0 -0
  146. robotic/rai-robotModels/ur10/meshes/shoulder.h5 +0 -0
  147. robotic/rai-robotModels/ur10/meshes/upperarm.h5 +0 -0
  148. robotic/rai-robotModels/ur10/meshes/wrist1.h5 +0 -0
  149. robotic/rai-robotModels/ur10/meshes/wrist2.h5 +0 -0
  150. robotic/rai-robotModels/ur10/meshes/wrist3.h5 +0 -0
  151. robotic/rai-robotModels/ur10/ur10.g +2 -2
  152. robotic/rai-robotModels/ur10/ur10_clean.g +8 -8
  153. robotic/rai-robotModels/ur10/ur10_conv.g +17 -0
  154. robotic/ry-h5info +2 -2
  155. robotic/ry-urdfConvert.py +74 -0
  156. robotic/src/cleanMeshes.py +59 -0
  157. robotic/src/config_urdf.py +237 -0
  158. robotic/src/mesh_helper.py +395 -0
  159. robotic/{rai-robotModels/ranger/meshes/cleanMeshes.mlx → src/meshlabFilters.mlx} +0 -3
  160. robotic/src/mujoco_io.py +242 -0
  161. robotic/src/yaml_helper.py +19 -0
  162. robotic/test.py +15 -0
  163. robotic/version.py +1 -1
  164. {robotic-0.2.9.dev1.data → robotic-0.3.0.data}/scripts/ry-h5info +2 -2
  165. robotic-0.3.0.data/scripts/ry-urdfConvert.py +74 -0
  166. {robotic-0.2.9.dev1.dist-info → robotic-0.3.0.dist-info}/METADATA +3 -7
  167. robotic-0.3.0.dist-info/RECORD +367 -0
  168. {robotic-0.2.9.dev1.dist-info → robotic-0.3.0.dist-info}/WHEEL +1 -1
  169. robotic/import.py +0 -0
  170. robotic/rai-robotModels/baxter/baxter.g +0 -49
  171. robotic/rai-robotModels/baxter/baxter_clean.g +0 -116
  172. robotic/rai-robotModels/baxter/baxter_clean2.g +0 -205
  173. robotic/rai-robotModels/baxter/baxter_clean3.g +0 -223
  174. robotic/rai-robotModels/baxter/baxter_description/meshes/base/PEDESTAL.ply +0 -0
  175. robotic/rai-robotModels/baxter/baxter_description/meshes/base/pedestal_link_collision.ply +0 -0
  176. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H0.ply +0 -0
  177. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H1.ply +0 -0
  178. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_elbow/E1.ply +0 -0
  179. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_forearm/W1.ply +0 -0
  180. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_shoulder/S1.ply +0 -0
  181. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link.ply +0 -0
  182. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link_collision.ply +0 -0
  183. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_elbow/E0.ply +0 -0
  184. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_forearm/W0.ply +0 -0
  185. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_shoulder/S0.ply +0 -0
  186. robotic/rai-robotModels/baxter/baxter_description/meshes/wrist/W2.ply +0 -0
  187. robotic/rai-robotModels/baxter/baxter_new.g +0 -53
  188. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/electric_gripper_base.ply +0 -0
  189. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/extended_narrow.ply +0 -0
  190. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/half_round_tip.ply +0 -0
  191. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/paddle_tip.ply +0 -0
  192. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_base.ply +0 -0
  193. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_w_cup.ply +0 -0
  194. robotic/rai-robotModels/g1/meshes/head_link.ply +0 -0
  195. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.ply +0 -0
  196. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.ply +0 -0
  197. robotic/rai-robotModels/g1/meshes/left_elbow_link.ply +0 -0
  198. robotic/rai-robotModels/g1/meshes/left_hand_index_0_link.ply +0 -0
  199. robotic/rai-robotModels/g1/meshes/left_hand_index_1_link.ply +0 -0
  200. robotic/rai-robotModels/g1/meshes/left_hand_middle_0_link.ply +0 -0
  201. robotic/rai-robotModels/g1/meshes/left_hand_middle_1_link.ply +0 -0
  202. robotic/rai-robotModels/g1/meshes/left_hand_palm_link.ply +0 -0
  203. robotic/rai-robotModels/g1/meshes/left_hand_thumb_0_link.ply +0 -0
  204. robotic/rai-robotModels/g1/meshes/left_hand_thumb_1_link.ply +0 -0
  205. robotic/rai-robotModels/g1/meshes/left_hand_thumb_2_link.ply +0 -0
  206. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.ply +0 -0
  207. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.ply +0 -0
  208. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.ply +0 -0
  209. robotic/rai-robotModels/g1/meshes/left_knee_link.ply +0 -0
  210. robotic/rai-robotModels/g1/meshes/left_rubber_hand.ply +0 -0
  211. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.ply +0 -0
  212. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.ply +0 -0
  213. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.ply +0 -0
  214. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.ply +0 -0
  215. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.ply +0 -0
  216. robotic/rai-robotModels/g1/meshes/left_wrist_roll_rubber_hand.ply +0 -0
  217. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.ply +0 -0
  218. robotic/rai-robotModels/g1/meshes/logo_link.ply +0 -0
  219. robotic/rai-robotModels/g1/meshes/pelvis.ply +0 -0
  220. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.ply +0 -0
  221. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.ply +0 -0
  222. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.ply +0 -0
  223. robotic/rai-robotModels/g1/meshes/right_elbow_link.ply +0 -0
  224. robotic/rai-robotModels/g1/meshes/right_hand_index_0_link.ply +0 -0
  225. robotic/rai-robotModels/g1/meshes/right_hand_index_1_link.ply +0 -0
  226. robotic/rai-robotModels/g1/meshes/right_hand_middle_0_link.ply +0 -0
  227. robotic/rai-robotModels/g1/meshes/right_hand_middle_1_link.ply +0 -0
  228. robotic/rai-robotModels/g1/meshes/right_hand_palm_link.ply +0 -0
  229. robotic/rai-robotModels/g1/meshes/right_hand_thumb_0_link.ply +0 -0
  230. robotic/rai-robotModels/g1/meshes/right_hand_thumb_1_link.ply +0 -0
  231. robotic/rai-robotModels/g1/meshes/right_hand_thumb_2_link.ply +0 -0
  232. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.ply +0 -0
  233. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.ply +0 -0
  234. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.ply +0 -0
  235. robotic/rai-robotModels/g1/meshes/right_knee_link.ply +0 -0
  236. robotic/rai-robotModels/g1/meshes/right_rubber_hand.ply +0 -0
  237. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.ply +0 -0
  238. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.ply +0 -0
  239. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.ply +0 -0
  240. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.ply +0 -0
  241. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.ply +0 -0
  242. robotic/rai-robotModels/g1/meshes/right_wrist_roll_rubber_hand.ply +0 -0
  243. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.ply +0 -0
  244. robotic/rai-robotModels/g1/meshes/torso_constraint_L_link.ply +0 -0
  245. robotic/rai-robotModels/g1/meshes/torso_constraint_L_rod_link.ply +0 -0
  246. robotic/rai-robotModels/g1/meshes/torso_constraint_R_link.ply +0 -0
  247. robotic/rai-robotModels/g1/meshes/torso_constraint_R_rod_link.ply +0 -0
  248. robotic/rai-robotModels/g1/meshes/torso_link.ply +0 -0
  249. robotic/rai-robotModels/g1/meshes/waist_constraint_L.ply +0 -0
  250. robotic/rai-robotModels/g1/meshes/waist_constraint_R.ply +0 -0
  251. robotic/rai-robotModels/g1/meshes/waist_roll_link.ply +0 -0
  252. robotic/rai-robotModels/g1/meshes/waist_support_link.ply +0 -0
  253. robotic/rai-robotModels/g1/meshes/waist_yaw_link.ply +0 -0
  254. robotic/rai-robotModels/panda/franka_description/meshes/collision/finger.stl +0 -0
  255. robotic/rai-robotModels/panda/franka_description/meshes/collision/hand.stl +0 -0
  256. robotic/rai-robotModels/panda/franka_description/meshes/collision/link0.stl +0 -0
  257. robotic/rai-robotModels/panda/franka_description/meshes/collision/link1.stl +0 -0
  258. robotic/rai-robotModels/panda/franka_description/meshes/collision/link2.stl +0 -0
  259. robotic/rai-robotModels/panda/franka_description/meshes/collision/link3.stl +0 -0
  260. robotic/rai-robotModels/panda/franka_description/meshes/collision/link4.stl +0 -0
  261. robotic/rai-robotModels/panda/franka_description/meshes/collision/link5.stl +0 -0
  262. robotic/rai-robotModels/panda/franka_description/meshes/collision/link6.stl +0 -0
  263. robotic/rai-robotModels/panda/franka_description/meshes/collision/link7.stl +0 -0
  264. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO.sh +0 -10
  265. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO2.sh +0 -7
  266. robotic/rai-robotModels/panda/franka_description/meshes/visual/convMeshes.mlx +0 -38
  267. robotic/rai-robotModels/panda/franka_description/meshes/visual/finger.ply +0 -0
  268. robotic/rai-robotModels/panda/franka_description/meshes/visual/hand.ply +0 -0
  269. robotic/rai-robotModels/panda/franka_description/meshes/visual/link0.ply +0 -0
  270. robotic/rai-robotModels/panda/franka_description/meshes/visual/link1.ply +0 -0
  271. robotic/rai-robotModels/panda/franka_description/meshes/visual/link2.ply +0 -0
  272. robotic/rai-robotModels/panda/franka_description/meshes/visual/link3.ply +0 -0
  273. robotic/rai-robotModels/panda/franka_description/meshes/visual/link4.ply +0 -0
  274. robotic/rai-robotModels/panda/franka_description/meshes/visual/link5.ply +0 -0
  275. robotic/rai-robotModels/panda/franka_description/meshes/visual/link6.ply +0 -0
  276. robotic/rai-robotModels/panda/franka_description/meshes/visual/link7.ply +0 -0
  277. robotic/rai-robotModels/panda/franka_description/meshes/visual/script.mlx +0 -28
  278. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base.ply +0 -0
  279. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base_L.ply +0 -0
  280. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster.ply +0 -0
  281. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster_L.ply +0 -0
  282. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/pr2_wheel.ply +0 -0
  283. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/wheel.ply +0 -0
  284. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/forearm.ply +0 -0
  285. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_flex.ply +0 -0
  286. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll.ply +0 -0
  287. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll_L.ply +0 -0
  288. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/gripper_palm.ply +0 -0
  289. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger.ply +0 -0
  290. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger_tip.ply +0 -0
  291. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan.ply +0 -0
  292. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan_L.ply +0 -0
  293. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt.ply +0 -0
  294. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt_L.ply +0 -0
  295. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_lift.ply +0 -0
  296. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_pan.ply +0 -0
  297. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_yaw.ply +0 -0
  298. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll.ply +0 -0
  299. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll_L.ply +0 -0
  300. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/hok_tilt.ply +0 -0
  301. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo.ply +0 -0
  302. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo_L.ply +0 -0
  303. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso.ply +0 -0
  304. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift.ply +0 -0
  305. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift_L.ply +0 -0
  306. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/elbow_flex.ply +0 -0
  307. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll.ply +0 -0
  308. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll_L.ply +0 -0
  309. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/upper_arm.ply +0 -0
  310. robotic/rai-robotModels/ranger/meshes/cleanMeshes.sh +0 -8
  311. robotic/rai-robotModels/ranger/meshes/ranger_mini3.ply +0 -0
  312. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.ply +0 -0
  313. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.ply +0 -0
  314. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link.ply +0 -0
  315. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link_x.ply +0 -10
  316. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_finger.ply +0 -0
  317. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_knuckle.ply +0 -0
  318. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_finger.ply +0 -0
  319. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_knuckle.ply +0 -0
  320. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_pad.ply +0 -0
  321. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_gripper_coupling.ply +0 -0
  322. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Base.ply +0 -0
  323. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Forearm.ply +0 -0
  324. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Shoulder.ply +0 -0
  325. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/UpperArm.ply +0 -0
  326. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist1.ply +0 -0
  327. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist2.ply +0 -0
  328. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist3.ply +0 -0
  329. robotic/ry-urdf2rai +0 -222
  330. robotic/ry-urdf2yaml +0 -250
  331. robotic-0.2.9.dev1.data/scripts/ry-urdf2rai +0 -222
  332. robotic-0.2.9.dev1.data/scripts/ry-urdf2yaml +0 -250
  333. robotic-0.2.9.dev1.dist-info/RECORD +0 -421
  334. /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
  335. {robotic-0.2.9.dev1.data → robotic-0.3.0.data}/scripts/ry-bot +0 -0
  336. {robotic-0.2.9.dev1.data → robotic-0.3.0.data}/scripts/ry-info +0 -0
  337. {robotic-0.2.9.dev1.data → robotic-0.3.0.data}/scripts/ry-meshTool +0 -0
  338. {robotic-0.2.9.dev1.data → robotic-0.3.0.data}/scripts/ry-test +0 -0
  339. {robotic-0.2.9.dev1.data → robotic-0.3.0.data}/scripts/ry-view +0 -0
  340. {robotic-0.2.9.dev1.dist-info → robotic-0.3.0.dist-info}/licenses/LICENSE +0 -0
  341. {robotic-0.2.9.dev1.dist-info → robotic-0.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env python3
2
+
3
+ # from config_mujoco import *
4
+ # from config_urdf import *
5
+ # from mesh_helper import *
6
+ from robotic.src.yaml_helper import *
7
+ import robotic as ry
8
+ import argparse
9
+ import glob
10
+ import os
11
+
12
+ parser = argparse.ArgumentParser(
13
+ description='Utility to clean meshes in meshes/')
14
+
15
+ parser.add_argument('file', type=str, help='urdf file', nargs='?', default='none')
16
+
17
+ parser.add_argument('-view', help='view mesh', action="store_true", default=True)
18
+ parser.add_argument('-flipDaeYZ', help='view mesh', action="store_true", default=False)
19
+ parser.add_argument('-pruneRigidJoints', help='view mesh', action="store_true")
20
+ parser.add_argument('-recomputeInertias', help='view mesh', action="store_true")
21
+ parser.add_argument('-processMeshes', help='view mesh', action="store_true", default=True)
22
+ parser.add_argument('-meshlab', help='apply meshlab filters', action="store_true", default=False)
23
+
24
+ def main():
25
+ args = parser.parse_args()
26
+
27
+ if args.file=='none':
28
+ # args.file = '/home/mtoussai/git/rai-robotModels/pr2/pr2.urdf'
29
+ args.file = '/home/mtoussai/git/rai-robotModels/panda/panda_arm_hand.urdf'
30
+ # args.file = '/home/mtoussai/git/rai-robotModels/g1/g1_description/g1_29dof.urdf'
31
+ # args.file = '/home/mtoussai/git/rai-robotModels/ranger/ranger_mini.urdf'
32
+
33
+ print('=== URDF CONVERT ===', args.file)
34
+
35
+ path, file = os.path.split(args.file)
36
+ filebase, _ = os.path.splitext(file)
37
+
38
+ if args.flipDaeYZ:
39
+ ry.params_add({'assimp/daeFlipYZ': False})
40
+
41
+ C = ry.URDFLoader(args.file, visualsOnly=True, meshPathRemove='package://').C
42
+
43
+ C.processStructure(args.pruneRigidJoints, True, False, False)
44
+ C.processInertias(args.recomputeInertias)
45
+ C.processStructure(args.pruneRigidJoints, True, False, False)
46
+
47
+ os.system('rm -Rf meshes/')
48
+ C.writeMeshes('meshes/', copyTextures=True)
49
+
50
+ print('#frames: ', C.getFrameDimension())
51
+ with open(f'{filebase}_conv.g', 'w') as fil:
52
+ #yaml.dump(C.asDict(), file, default_flow_style=False)
53
+ fil.write(C.write())
54
+
55
+ yaml_write_dict(C.asDict(), f'{filebase}_conv.yml')
56
+
57
+ C.view(True)
58
+ # C.animate()
59
+
60
+ if args.processMeshes:
61
+ for file in sorted(glob.glob('meshes/*.h5')):
62
+
63
+ M = ry.MeshHelper(file)
64
+ if M.mesh is None:
65
+ continue
66
+
67
+ M.repair(mergeTolerance=1e-4)
68
+ print(' watertight:', M.mesh.is_watertight)
69
+ print(' oriented:', M.mesh.is_winding_consistent)
70
+ M.report()
71
+ M.export_h5()
72
+
73
+ if __name__ == "__main__":
74
+ main()
@@ -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()
@@ -0,0 +1,237 @@
1
+ import os
2
+ import numpy as np
3
+ import robotic as ry
4
+ from lxml import etree
5
+
6
+
7
+ class URDFLoader():
8
+
9
+ def __init__(self, file, visualsOnly=True, meshPathRemove='', meshExt=None):
10
+ self.meshPathRemove = meshPathRemove
11
+ self.meshExt = meshExt
12
+
13
+ xmlData = etree.parse(file)
14
+ self.path, _ = os.path.split(file)
15
+
16
+ self.C = ry.Config()
17
+
18
+ useCollisionShapes = not visualsOnly
19
+
20
+ # materials
21
+
22
+ self.materials = {}
23
+ mats = xmlData.findall('./material')
24
+ for mat in mats:
25
+ name = mat.attrib.get('name', '')
26
+ tex = mat.find('texture')
27
+ if tex is not None:
28
+ tex_file = tex.attrib['filename'].replace(self.meshPathRemove,'',1)
29
+ self.materials[name] = os.path.join(self.path, tex_file)
30
+ else:
31
+ col = mat.find('color')
32
+ if col is not None:
33
+ self.materials[name] = self.as_floats(col.attrib['rgba'])
34
+
35
+ # links with shapes
36
+
37
+ links = xmlData.findall('./link')
38
+ for link in links:
39
+ link_name = link.attrib['name']
40
+ f_link = self.C.addFrame(link_name)
41
+
42
+
43
+ elem = link.find('inertial/inertia')
44
+ matrix=[]
45
+ if elem is not None:
46
+ tags = ['ixx', 'ixy', 'ixz', 'iyy', 'iyz', 'izz']
47
+ matrix = [float(elem.attrib[tag]) for tag in tags]
48
+
49
+ elem = link.find('inertial/mass')
50
+ if elem is not None:
51
+ mass = float(elem.attrib['value'])
52
+ f_link.setMass(mass, matrix)
53
+
54
+ for visual in link.findall('visual'):
55
+ self.add_shape(visual, f'{link_name}_0', f_link, isVisual=True)
56
+
57
+ # collision shape
58
+ if useCollisionShapes:
59
+ for collision in link.findall('collision'):
60
+ f_shape = self.add_shape(collision, f'{link_name}_1', f_link, isVisual=False)
61
+ f_shape.setColor([1,0,0,.2])
62
+
63
+ # joints
64
+
65
+ joints = xmlData.findall('./joint')
66
+ for joint in joints:
67
+ joint_name = joint.attrib['name']
68
+ if joint.find('child') is None:
69
+ continue
70
+
71
+ parent_name = joint.find('parent').attrib['link']
72
+ f_parent = self.C.getFrame(parent_name)
73
+ if f_parent is None:
74
+ print('SHIT', joint_name)
75
+ break
76
+
77
+ # add an origin frame as pre frame?
78
+ elem = joint.find('origin')
79
+ if elem is not None:
80
+ f_origin = self.C.addFrame(f'{joint_name}_origin')
81
+ f_origin.setParent(f_parent)
82
+ self.setRelativePose(f_origin, elem)
83
+ f_parent = f_origin
84
+
85
+ f_joint = self.C.addFrame(joint_name)
86
+ f_joint.setParent(f_parent)
87
+
88
+ child_name = joint.find('child').attrib['link']
89
+ f_child = self.C.getFrame(child_name)
90
+ if f_child is None:
91
+ print('SHIT', joint_name)
92
+ break
93
+ f_child.setParent(f_joint, False)
94
+
95
+ elem = joint.find('limit')
96
+ limits = []
97
+ if elem is not None:
98
+ lo = elem.attrib.get('lower')
99
+ up = elem.attrib.get('upper')
100
+ eff = elem.attrib.get('effort')
101
+ vel = elem.attrib.get('velocity')
102
+ if eff=='0':
103
+ eff=None
104
+ if vel=='0':
105
+ vel=None
106
+ if lo is not None:
107
+ limits = [float(lo), float(up)]
108
+ # if vel is not None:
109
+ # print(' ctrl_limits: [%s -1 %s],' % (vel, eff), end='') #the 2nd value is an acceleration limit
110
+ # else:
111
+ # elem = joint.find('safety_controller')
112
+ # if elem is not None:
113
+ # lo = elem.attrib.get('soft_lower_limit')
114
+ # up = elem.attrib.get('soft_upper_limit')
115
+ # if lo is not None:
116
+ # print(' limits: [%s %s],' % (lo, up), end='')
117
+
118
+ elem = joint.find('mimic')
119
+ f_mimic = None
120
+ if elem is not None:
121
+ f_mimic = self.C.getFrame(elem.attrib['joint'])
122
+ if f_mimic is None:
123
+ print('SHIT', elem.attrib['joint'])
124
+ break
125
+
126
+ att = joint.attrib.get('type')
127
+
128
+ if att in ['revolute', 'continuous']:
129
+ elem = joint.find('axis')
130
+ if elem is not None:
131
+ axis = elem.attrib['xyz']
132
+ if axis=='1 0 0':
133
+ f_joint.setJoint(ry.JT.hingeX, limits, 1., f_mimic)
134
+ elif axis=='0 1 0':
135
+ f_joint.setJoint(ry.JT.hingeY, limits, 1., f_mimic)
136
+ elif axis=='0 0 1':
137
+ f_joint.setJoint(ry.JT.hingeZ, limits, 1., f_mimic)
138
+ elif axis=='0 0 -1':
139
+ f_joint.setJoint(ry.JT.hingeZ, limits, -1., f_mimic)
140
+ else:
141
+ raise Exception('CAN ONLY PROCESS X Y Z hinge joints, not', axis)
142
+ else:
143
+ f_joint.setJoint(ry.JT.hingeX, limits, 1., f_mimic)
144
+
145
+ if att == 'prismatic':
146
+ elem = joint.find('axis')
147
+ if elem is not None:
148
+ axis = elem.attrib['xyz']
149
+ if axis=='1 0 0':
150
+ f_joint.setJoint(ry.JT.transX, limits, 1., f_mimic)
151
+ elif axis=='0 1 0':
152
+ f_joint.setJoint(ry.JT.transY, limits, 1., f_mimic)
153
+ elif axis=='0 -1 0':
154
+ f_joint.setJoint(ry.JT.transY, limits, -1., f_mimic)
155
+ elif axis=='0 0 1':
156
+ f_joint.setJoint(ry.JT.transZ, limits, 1., f_mimic)
157
+ elif axis=='0 0 -1':
158
+ f_joint.setJoint(ry.JT.transZ, limits, -1., f_mimic)
159
+ else:
160
+ raise Exception('CAN ONLY PROCESS X Y Z prismatic joints, not', axis)
161
+ else:
162
+ f_joint.setJoint(ry.JT.transX, limits, 1., f_mimic)
163
+
164
+ if att == 'fixed':
165
+ f_joint.setJoint(ry.JT.rigid)
166
+
167
+ #elem = joint.find('axis')
168
+ #if elem is not None:
169
+ # print('axis:[%s]' % elem.attrib['xyz'])
170
+
171
+ def add_shape(self, shape, shape_name, f_link, isVisual):
172
+ f_shape = self.C.addFrame(shape_name)
173
+ f_shape.setParent(f_link)
174
+
175
+ elem = shape.find('origin')
176
+ if elem is not None:
177
+ self.setRelativePose(f_shape, elem)
178
+
179
+ elem = shape.find('geometry/box')
180
+ if elem is not None:
181
+ size = self.as_floats(elem.attrib['size'])
182
+ f_shape.setShape(ry.ST.box, size)
183
+
184
+ elem = shape.find('geometry/sphere')
185
+ if elem is not None:
186
+ size = self.as_floats(elem.attrib['size'])
187
+ f_shape.setShape(ry.ST.sphere, size)
188
+
189
+ elem = shape.find('geometry/cylinder')
190
+ if elem is not None:
191
+ size = [float(elem.attrib[tag]) for tag in ['length', 'radius']]
192
+ f_shape.setShape(ry.ST.cylinder, size)
193
+
194
+ elem = shape.find('geometry/mesh')
195
+ if elem is not None:
196
+ filename = elem.attrib['filename'].replace(self.meshPathRemove,'',1)
197
+ if self.meshExt is not None:
198
+ filename = filename[:-3] + self.meshExt
199
+ if 'scale' in elem.attrib:
200
+ scale = self.as_floats(elem.attrib['scale'])[0]
201
+ else:
202
+ scale = 1
203
+ filename = os.path.join(self.path, filename)
204
+ f_shape.setMeshFile(filename, scale)
205
+
206
+ elem = shape.find('material/color')
207
+ if elem is not None:
208
+ f_shape.setColor(self.as_floats(elem.attrib['rgba']))
209
+
210
+ # elem = shape.find('material')
211
+ # if elem is not None and 'name' in elem.attrib:
212
+ # mat = self.materials[elem.attrib['name']]
213
+ # if len(mat)==4: #rgba
214
+ # f_shape.setColor(mat)
215
+ # else:
216
+ # f_shape.setTextureFile(mat)
217
+
218
+
219
+ return f_shape
220
+
221
+ def as_floats(self, input_string):
222
+ return [float(num) for num in input_string.replace(',', ' ').split()]
223
+
224
+ def setRelativePose(self, f, attrib):
225
+ pos = attrib.get('xyz')
226
+ if pos=='0 0 0':
227
+ pos=None
228
+ if pos is not None:
229
+ f.setRelativePosition(self.as_floats(pos))
230
+
231
+ rpy = attrib.get('rpy')
232
+ if rpy=='0 0 0':
233
+ rpy=None
234
+ if rpy is not None:
235
+ q = ry.Quaternion()
236
+ q.setRollPitchYaw(self.as_floats(rpy))
237
+ f.setRelativeQuaternion(q.getArr())