robotic 0.2.9.dev1__cp311-cp311-manylinux2014_x86_64.whl → 0.3.4.dev5__cp311-cp311-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.
Files changed (416) hide show
  1. robotic/DataGen.pyi +11 -1
  2. robotic/__init__.py +8 -1
  3. robotic/_robotic.pyi +228 -110
  4. robotic/_robotic.so +0 -0
  5. robotic/algo.pyi +17 -0
  6. robotic/include/rai/{Geo → Algo}/Lewiner/MarchingCubes.h +0 -29
  7. robotic/include/rai/Algo/SplineCtrlFeed.h +1 -1
  8. robotic/include/rai/Algo/marching_cubes.h +9 -0
  9. robotic/include/rai/Algo/rungeKutta.h +2 -2
  10. robotic/include/rai/Algo/spline.h +4 -8
  11. robotic/include/rai/Algo/trilinear.h +10 -0
  12. robotic/include/rai/Control/CtrlSolver.h +1 -1
  13. robotic/include/rai/Control/TimingMPC.h +2 -2
  14. robotic/include/rai/Core/array.h +99 -64
  15. robotic/include/rai/Core/array.ipp +290 -139
  16. robotic/include/rai/Core/arrayDouble.h +36 -26
  17. robotic/include/rai/Core/defines.h +7 -9
  18. robotic/include/rai/Core/graph.h +27 -23
  19. robotic/include/rai/Core/h5.h +3 -1
  20. robotic/include/rai/Core/thread.h +12 -12
  21. robotic/include/rai/Core/util.h +58 -79
  22. robotic/include/rai/DataGen/rndStableConfigs.h +1 -0
  23. robotic/include/rai/DataGen/shapenetGrasps.h +5 -3
  24. robotic/include/rai/Geo/depth2PointCloud.h +2 -0
  25. robotic/include/rai/Geo/geo.h +23 -15
  26. robotic/include/rai/Geo/{fclInterface.h → i_fcl.h} +3 -1
  27. robotic/include/rai/Geo/mesh.h +18 -13
  28. robotic/include/rai/Geo/pairCollision.h +43 -43
  29. robotic/include/rai/Geo/signedDistanceFunctions.h +7 -5
  30. robotic/include/rai/Geo/stb_image.h +1 -1
  31. robotic/include/rai/Gui/RenderData.h +9 -7
  32. robotic/include/rai/Gui/opengl.h +6 -6
  33. robotic/include/rai/Gui/plot.h +1 -1
  34. robotic/include/rai/KOMO/komo.h +6 -3
  35. robotic/include/rai/KOMO/komo_NLP.h +2 -2
  36. robotic/include/rai/KOMO/manipTools.h +7 -2
  37. robotic/include/rai/KOMO/testProblems_KOMO.h +5 -9
  38. robotic/include/rai/Kin/F_forces.h +3 -3
  39. robotic/include/rai/Kin/cameraview.h +24 -36
  40. robotic/include/rai/Kin/dof_forceExchange.h +7 -7
  41. robotic/include/rai/Kin/feature.h +1 -1
  42. robotic/include/rai/Kin/frame.h +22 -24
  43. robotic/include/rai/Kin/{kin_physx.h → i_Physx.h} +10 -8
  44. robotic/include/rai/Kin/kin.h +29 -21
  45. robotic/include/rai/Kin/proxy.h +1 -1
  46. robotic/include/rai/Kin/simulation.h +20 -10
  47. robotic/include/rai/Kin/viewer.h +14 -1
  48. robotic/include/rai/LGP/LGP_TAMP_Abstraction.h +33 -0
  49. robotic/include/rai/LGP/LGP_Tool.h +4 -25
  50. robotic/include/rai/LGP/LGP_computers.h +1 -1
  51. robotic/include/rai/LGP/LGP_computers2.h +196 -0
  52. robotic/include/rai/LGP/NLP_Descriptor.h +5 -0
  53. robotic/include/rai/Logic/folWorld.h +1 -1
  54. robotic/include/rai/Logic/treeSearchDomain.h +2 -2
  55. robotic/include/rai/Optim/BayesOpt.h +13 -6
  56. robotic/include/rai/Optim/CMA/boundary_transformation.h +73 -0
  57. robotic/include/rai/Optim/CMA/cmaes.h +175 -0
  58. robotic/include/rai/Optim/CMA/cmaes_interface.h +68 -0
  59. robotic/include/rai/Optim/GlobalIterativeNewton.h +7 -3
  60. robotic/include/rai/Optim/NLP.h +23 -7
  61. robotic/include/rai/Optim/NLP_GraphSolver.h +1 -1
  62. robotic/include/rai/Optim/NLP_Solver.h +5 -5
  63. robotic/include/rai/Optim/constrained.h +4 -4
  64. robotic/include/rai/Optim/{opt-ceres.h → i_Ceres.h} +2 -2
  65. robotic/include/rai/Optim/{opt-nlopt.h → i_NLopt.h} +4 -0
  66. robotic/include/rai/Optim/lagrangian.h +7 -5
  67. robotic/include/rai/Optim/liblbfgs/liblbfgs.h +755 -0
  68. robotic/include/rai/Optim/m_EvoStrategies.h +114 -0
  69. robotic/include/rai/Optim/{gradient.h → m_Gradient.h} +13 -12
  70. robotic/include/rai/Optim/m_LBFGS.h +21 -0
  71. robotic/include/rai/Optim/m_LeastSquaresZeroOrder.h +104 -0
  72. robotic/include/rai/Optim/m_LocalGreedy.h +31 -0
  73. robotic/include/rai/Optim/m_NelderMead.h +23 -0
  74. robotic/include/rai/Optim/{newton.h → m_Newton.h} +7 -4
  75. robotic/include/rai/Optim/{SlackGaussNewton.h → m_SlackGaussNewton.h} +0 -10
  76. robotic/include/rai/Optim/options.h +8 -7
  77. robotic/include/rai/Optim/primalDual.h +10 -6
  78. robotic/include/rai/Optim/testProblems_Opt.h +25 -19
  79. robotic/include/rai/Optim/utils.h +16 -85
  80. robotic/include/rai/PathAlgos/ConfigurationProblem.h +3 -2
  81. robotic/include/rai/PathAlgos/RRT_PathFinder.h +2 -2
  82. robotic/include/rai/Perception/pcl.h +10 -10
  83. robotic/include/rai/Perception/surfels.h +1 -1
  84. robotic/include/rai/Search/TreeSearchNode.h +1 -1
  85. robotic/include/rai/ry/py-algo.h +17 -0
  86. robotic/include/rai/ry/types.h +4 -2
  87. robotic/librai.so +0 -0
  88. robotic/manipulation.py +5 -7
  89. robotic/meshTool +0 -0
  90. robotic/mujoco-import.py +8 -0
  91. robotic/rai-robotModels/g1/g1.g +11 -2
  92. robotic/rai-robotModels/g1/g1_29dof_conv.yml +64 -0
  93. robotic/rai-robotModels/g1/g1_clean.g +38 -73
  94. robotic/rai-robotModels/g1/meshes/head_link.h5 +0 -0
  95. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.h5 +0 -0
  96. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.h5 +0 -0
  97. robotic/rai-robotModels/g1/meshes/left_elbow_link.h5 +0 -0
  98. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.h5 +0 -0
  99. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.h5 +0 -0
  100. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.h5 +0 -0
  101. robotic/rai-robotModels/g1/meshes/left_knee_link.h5 +0 -0
  102. robotic/rai-robotModels/g1/meshes/left_rubber_hand.h5 +0 -0
  103. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.h5 +0 -0
  104. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.h5 +0 -0
  105. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.h5 +0 -0
  106. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.h5 +0 -0
  107. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.h5 +0 -0
  108. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.h5 +0 -0
  109. robotic/rai-robotModels/g1/meshes/logo_link.h5 +0 -0
  110. robotic/rai-robotModels/g1/meshes/pelvis.h5 +0 -0
  111. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.h5 +0 -0
  112. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.h5 +0 -0
  113. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.h5 +0 -0
  114. robotic/rai-robotModels/g1/meshes/right_elbow_link.h5 +0 -0
  115. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.h5 +0 -0
  116. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.h5 +0 -0
  117. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.h5 +0 -0
  118. robotic/rai-robotModels/g1/meshes/right_knee_link.h5 +0 -0
  119. robotic/rai-robotModels/g1/meshes/right_rubber_hand.h5 +0 -0
  120. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.h5 +0 -0
  121. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.h5 +0 -0
  122. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.h5 +0 -0
  123. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.h5 +0 -0
  124. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.h5 +0 -0
  125. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.h5 +0 -0
  126. robotic/rai-robotModels/g1/meshes/torso_link.h5 +0 -0
  127. robotic/rai-robotModels/g1/meshes/waist_roll_link.h5 +0 -0
  128. robotic/rai-robotModels/g1/meshes/waist_support_link.h5 +0 -0
  129. robotic/rai-robotModels/g1/meshes/waist_yaw_link.h5 +0 -0
  130. robotic/rai-robotModels/objects/shelf.g +1 -1
  131. robotic/rai-robotModels/panda/meshes/finger.h5 +0 -0
  132. robotic/rai-robotModels/panda/meshes/hand.h5 +0 -0
  133. robotic/rai-robotModels/panda/meshes/link0.h5 +0 -0
  134. robotic/rai-robotModels/panda/meshes/link1.h5 +0 -0
  135. robotic/rai-robotModels/panda/meshes/link2.h5 +0 -0
  136. robotic/rai-robotModels/panda/meshes/link3.h5 +0 -0
  137. robotic/rai-robotModels/panda/meshes/link4.h5 +0 -0
  138. robotic/rai-robotModels/panda/meshes/link5.h5 +0 -0
  139. robotic/rai-robotModels/panda/meshes/link6.h5 +0 -0
  140. robotic/rai-robotModels/panda/meshes/link7.h5 +0 -0
  141. robotic/rai-robotModels/panda/panda.g +10 -10
  142. robotic/rai-robotModels/panda/panda_arm_hand_conv.g +24 -0
  143. robotic/rai-robotModels/panda/panda_arm_hand_conv.yml +24 -0
  144. robotic/rai-robotModels/panda/panda_clean.g +21 -45
  145. robotic/rai-robotModels/panda/panda_gripper.g +5 -7
  146. robotic/rai-robotModels/panda/panda_withoutCollisionModels.g +3 -11
  147. robotic/rai-robotModels/pr2/meshes/base.h5 +0 -0
  148. robotic/rai-robotModels/pr2/meshes/base_color.png +0 -0
  149. robotic/rai-robotModels/pr2/meshes/caster.h5 +0 -0
  150. robotic/rai-robotModels/pr2/meshes/elbow_flex.h5 +0 -0
  151. robotic/rai-robotModels/pr2/meshes/elbow_flex_color.png +0 -0
  152. robotic/rai-robotModels/pr2/meshes/forearm.h5 +0 -0
  153. robotic/rai-robotModels/pr2/meshes/forearm_color.png +0 -0
  154. robotic/rai-robotModels/pr2/meshes/forearm_roll.h5 +0 -0
  155. robotic/rai-robotModels/pr2/meshes/gripper_palm.h5 +0 -0
  156. robotic/rai-robotModels/pr2/meshes/gripper_palm_color.png +0 -0
  157. robotic/rai-robotModels/pr2/meshes/head_pan.h5 +0 -0
  158. robotic/rai-robotModels/pr2/meshes/head_pan_color.png +0 -0
  159. robotic/rai-robotModels/pr2/meshes/head_tilt.h5 +0 -0
  160. robotic/rai-robotModels/pr2/meshes/head_tilt_color.png +0 -0
  161. robotic/rai-robotModels/pr2/meshes/l_finger.h5 +0 -0
  162. robotic/rai-robotModels/pr2/meshes/l_finger_color.png +0 -0
  163. robotic/rai-robotModels/pr2/meshes/l_finger_tip.h5 +0 -0
  164. robotic/rai-robotModels/pr2/meshes/l_finger_tip_color.png +0 -0
  165. robotic/rai-robotModels/pr2/meshes/shoulder_lift.h5 +0 -0
  166. robotic/rai-robotModels/pr2/meshes/shoulder_lift_color.png +0 -0
  167. robotic/rai-robotModels/pr2/meshes/shoulder_pan.h5 +0 -0
  168. robotic/rai-robotModels/pr2/meshes/shoulder_pan_color.png +0 -0
  169. robotic/rai-robotModels/pr2/meshes/tilting_hokuyo.h5 +0 -0
  170. robotic/rai-robotModels/pr2/meshes/tilting_hokuyo_color.png +0 -0
  171. robotic/rai-robotModels/pr2/meshes/torso_lift.h5 +0 -0
  172. robotic/rai-robotModels/pr2/meshes/torso_lift_color.png +0 -0
  173. robotic/rai-robotModels/pr2/meshes/upper_arm.h5 +0 -0
  174. robotic/rai-robotModels/pr2/meshes/upper_arm_color.png +0 -0
  175. robotic/rai-robotModels/pr2/meshes/upper_arm_roll.h5 +0 -0
  176. robotic/rai-robotModels/pr2/meshes/upper_arm_roll_color.png +0 -0
  177. robotic/rai-robotModels/pr2/meshes/wheel.h5 +0 -0
  178. robotic/rai-robotModels/pr2/meshes/wheel_color.png +0 -0
  179. robotic/rai-robotModels/pr2/meshes/wrist_color.png +0 -0
  180. robotic/rai-robotModels/pr2/meshes/wrist_flex.h5 +0 -0
  181. robotic/rai-robotModels/pr2/meshes/wrist_roll.h5 +0 -0
  182. robotic/rai-robotModels/pr2/pr2.g +12 -12
  183. robotic/rai-robotModels/pr2/pr2_clean.g +122 -118
  184. robotic/rai-robotModels/pr2/pr2_conv.g +218 -0
  185. robotic/rai-robotModels/pr2/pr2_modifications.g +2 -2
  186. robotic/rai-robotModels/ranger/meshes/ranger_mini3.h5 +0 -0
  187. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.h5 +0 -0
  188. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.h5 +0 -0
  189. robotic/rai-robotModels/ranger/ranger.g +8 -8
  190. robotic/rai-robotModels/ranger/ranger_clean.g +5 -5
  191. robotic/rai-robotModels/ranger/ranger_mini_conv.g +14 -0
  192. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_base_link.h5 +0 -0
  193. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_finger.h5 +0 -0
  194. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_knuckle.h5 +0 -0
  195. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_finger.h5 +0 -0
  196. robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_knuckle.h5 +0 -0
  197. robotic/rai-robotModels/robotiq/robotiq.g +2 -2
  198. robotic/rai-robotModels/robotiq/robotiq_arg2f_85_model_conv.yml +19 -0
  199. robotic/rai-robotModels/robotiq/robotiq_clean.g +16 -16
  200. robotic/rai-robotModels/scenarios/ballFinger.g +2 -2
  201. robotic/rai-robotModels/scenarios/liftRing.g +2 -2
  202. robotic/rai-robotModels/scenarios/pandaFloatingGripper.g +1 -1
  203. robotic/rai-robotModels/scenarios/pandaSingle.g +1 -1
  204. robotic/rai-robotModels/scenarios/panda_fixRobotiq.g +3 -3
  205. robotic/rai-robotModels/tests/arm.g +18 -19
  206. robotic/rai-robotModels/tests/compound.g +3 -6
  207. robotic/rai-robotModels/ur10/meshes/base.h5 +0 -0
  208. robotic/rai-robotModels/ur10/meshes/forearm.h5 +0 -0
  209. robotic/rai-robotModels/ur10/meshes/shoulder.h5 +0 -0
  210. robotic/rai-robotModels/ur10/meshes/upperarm.h5 +0 -0
  211. robotic/rai-robotModels/ur10/meshes/wrist1.h5 +0 -0
  212. robotic/rai-robotModels/ur10/meshes/wrist2.h5 +0 -0
  213. robotic/rai-robotModels/ur10/meshes/wrist3.h5 +0 -0
  214. robotic/rai-robotModels/ur10/ur10.g +2 -2
  215. robotic/rai-robotModels/ur10/ur10_clean.g +8 -8
  216. robotic/rai-robotModels/ur10/ur10_conv.g +17 -0
  217. robotic/ry-h5info +3 -12
  218. robotic/ry-test +5 -4
  219. robotic/ry-urdfConvert.py +74 -0
  220. robotic/ry-view +28 -6
  221. robotic/src/cleanMeshes.py +59 -0
  222. robotic/src/h5_helper.py +46 -0
  223. robotic/src/h5_helper.py~ +42 -0
  224. robotic/src/mesh_helper.py +395 -0
  225. robotic/{rai-robotModels/ranger/meshes/cleanMeshes.mlx → src/meshlabFilters.mlx} +0 -3
  226. robotic/src/mujoco_io.py +242 -0
  227. robotic/src/urdf_io.py +237 -0
  228. robotic/src/yaml_helper.py +29 -0
  229. robotic/version.py +1 -1
  230. robotic-0.3.4.dev5.data/scripts/ry-h5info +23 -0
  231. {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-test +5 -4
  232. robotic-0.3.4.dev5.data/scripts/ry-urdfConvert.py +74 -0
  233. robotic-0.3.4.dev5.data/scripts/ry-view +46 -0
  234. {robotic-0.2.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/METADATA +18 -22
  235. robotic-0.3.4.dev5.dist-info/RECORD +386 -0
  236. {robotic-0.2.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/WHEEL +1 -1
  237. robotic/nlp.py +0 -113
  238. robotic/rai-robotModels/baxter/baxter.g +0 -49
  239. robotic/rai-robotModels/baxter/baxter_clean.g +0 -116
  240. robotic/rai-robotModels/baxter/baxter_clean2.g +0 -205
  241. robotic/rai-robotModels/baxter/baxter_clean3.g +0 -223
  242. robotic/rai-robotModels/baxter/baxter_description/meshes/base/PEDESTAL.ply +0 -0
  243. robotic/rai-robotModels/baxter/baxter_description/meshes/base/pedestal_link_collision.ply +0 -0
  244. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H0.ply +0 -0
  245. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H1.ply +0 -0
  246. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_elbow/E1.ply +0 -0
  247. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_forearm/W1.ply +0 -0
  248. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_shoulder/S1.ply +0 -0
  249. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link.ply +0 -0
  250. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link_collision.ply +0 -0
  251. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_elbow/E0.ply +0 -0
  252. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_forearm/W0.ply +0 -0
  253. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_shoulder/S0.ply +0 -0
  254. robotic/rai-robotModels/baxter/baxter_description/meshes/wrist/W2.ply +0 -0
  255. robotic/rai-robotModels/baxter/baxter_new.g +0 -53
  256. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/electric_gripper_base.ply +0 -0
  257. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/extended_narrow.ply +0 -0
  258. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/half_round_tip.ply +0 -0
  259. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/paddle_tip.ply +0 -0
  260. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_base.ply +0 -0
  261. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_w_cup.ply +0 -0
  262. robotic/rai-robotModels/g1/meshes/head_link.ply +0 -0
  263. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.ply +0 -0
  264. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.ply +0 -0
  265. robotic/rai-robotModels/g1/meshes/left_elbow_link.ply +0 -0
  266. robotic/rai-robotModels/g1/meshes/left_hand_index_0_link.ply +0 -0
  267. robotic/rai-robotModels/g1/meshes/left_hand_index_1_link.ply +0 -0
  268. robotic/rai-robotModels/g1/meshes/left_hand_middle_0_link.ply +0 -0
  269. robotic/rai-robotModels/g1/meshes/left_hand_middle_1_link.ply +0 -0
  270. robotic/rai-robotModels/g1/meshes/left_hand_palm_link.ply +0 -0
  271. robotic/rai-robotModels/g1/meshes/left_hand_thumb_0_link.ply +0 -0
  272. robotic/rai-robotModels/g1/meshes/left_hand_thumb_1_link.ply +0 -0
  273. robotic/rai-robotModels/g1/meshes/left_hand_thumb_2_link.ply +0 -0
  274. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.ply +0 -0
  275. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.ply +0 -0
  276. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.ply +0 -0
  277. robotic/rai-robotModels/g1/meshes/left_knee_link.ply +0 -0
  278. robotic/rai-robotModels/g1/meshes/left_rubber_hand.ply +0 -0
  279. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.ply +0 -0
  280. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.ply +0 -0
  281. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.ply +0 -0
  282. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.ply +0 -0
  283. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.ply +0 -0
  284. robotic/rai-robotModels/g1/meshes/left_wrist_roll_rubber_hand.ply +0 -0
  285. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.ply +0 -0
  286. robotic/rai-robotModels/g1/meshes/logo_link.ply +0 -0
  287. robotic/rai-robotModels/g1/meshes/pelvis.ply +0 -0
  288. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.ply +0 -0
  289. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.ply +0 -0
  290. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.ply +0 -0
  291. robotic/rai-robotModels/g1/meshes/right_elbow_link.ply +0 -0
  292. robotic/rai-robotModels/g1/meshes/right_hand_index_0_link.ply +0 -0
  293. robotic/rai-robotModels/g1/meshes/right_hand_index_1_link.ply +0 -0
  294. robotic/rai-robotModels/g1/meshes/right_hand_middle_0_link.ply +0 -0
  295. robotic/rai-robotModels/g1/meshes/right_hand_middle_1_link.ply +0 -0
  296. robotic/rai-robotModels/g1/meshes/right_hand_palm_link.ply +0 -0
  297. robotic/rai-robotModels/g1/meshes/right_hand_thumb_0_link.ply +0 -0
  298. robotic/rai-robotModels/g1/meshes/right_hand_thumb_1_link.ply +0 -0
  299. robotic/rai-robotModels/g1/meshes/right_hand_thumb_2_link.ply +0 -0
  300. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.ply +0 -0
  301. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.ply +0 -0
  302. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.ply +0 -0
  303. robotic/rai-robotModels/g1/meshes/right_knee_link.ply +0 -0
  304. robotic/rai-robotModels/g1/meshes/right_rubber_hand.ply +0 -0
  305. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.ply +0 -0
  306. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.ply +0 -0
  307. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.ply +0 -0
  308. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.ply +0 -0
  309. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.ply +0 -0
  310. robotic/rai-robotModels/g1/meshes/right_wrist_roll_rubber_hand.ply +0 -0
  311. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.ply +0 -0
  312. robotic/rai-robotModels/g1/meshes/torso_constraint_L_link.ply +0 -0
  313. robotic/rai-robotModels/g1/meshes/torso_constraint_L_rod_link.ply +0 -0
  314. robotic/rai-robotModels/g1/meshes/torso_constraint_R_link.ply +0 -0
  315. robotic/rai-robotModels/g1/meshes/torso_constraint_R_rod_link.ply +0 -0
  316. robotic/rai-robotModels/g1/meshes/torso_link.ply +0 -0
  317. robotic/rai-robotModels/g1/meshes/waist_constraint_L.ply +0 -0
  318. robotic/rai-robotModels/g1/meshes/waist_constraint_R.ply +0 -0
  319. robotic/rai-robotModels/g1/meshes/waist_roll_link.ply +0 -0
  320. robotic/rai-robotModels/g1/meshes/waist_support_link.ply +0 -0
  321. robotic/rai-robotModels/g1/meshes/waist_yaw_link.ply +0 -0
  322. robotic/rai-robotModels/panda/franka_description/meshes/collision/finger.stl +0 -0
  323. robotic/rai-robotModels/panda/franka_description/meshes/collision/hand.stl +0 -0
  324. robotic/rai-robotModels/panda/franka_description/meshes/collision/link0.stl +0 -0
  325. robotic/rai-robotModels/panda/franka_description/meshes/collision/link1.stl +0 -0
  326. robotic/rai-robotModels/panda/franka_description/meshes/collision/link2.stl +0 -0
  327. robotic/rai-robotModels/panda/franka_description/meshes/collision/link3.stl +0 -0
  328. robotic/rai-robotModels/panda/franka_description/meshes/collision/link4.stl +0 -0
  329. robotic/rai-robotModels/panda/franka_description/meshes/collision/link5.stl +0 -0
  330. robotic/rai-robotModels/panda/franka_description/meshes/collision/link6.stl +0 -0
  331. robotic/rai-robotModels/panda/franka_description/meshes/collision/link7.stl +0 -0
  332. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO.sh +0 -10
  333. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO2.sh +0 -7
  334. robotic/rai-robotModels/panda/franka_description/meshes/visual/convMeshes.mlx +0 -38
  335. robotic/rai-robotModels/panda/franka_description/meshes/visual/finger.ply +0 -0
  336. robotic/rai-robotModels/panda/franka_description/meshes/visual/hand.ply +0 -0
  337. robotic/rai-robotModels/panda/franka_description/meshes/visual/link0.ply +0 -0
  338. robotic/rai-robotModels/panda/franka_description/meshes/visual/link1.ply +0 -0
  339. robotic/rai-robotModels/panda/franka_description/meshes/visual/link2.ply +0 -0
  340. robotic/rai-robotModels/panda/franka_description/meshes/visual/link3.ply +0 -0
  341. robotic/rai-robotModels/panda/franka_description/meshes/visual/link4.ply +0 -0
  342. robotic/rai-robotModels/panda/franka_description/meshes/visual/link5.ply +0 -0
  343. robotic/rai-robotModels/panda/franka_description/meshes/visual/link6.ply +0 -0
  344. robotic/rai-robotModels/panda/franka_description/meshes/visual/link7.ply +0 -0
  345. robotic/rai-robotModels/panda/franka_description/meshes/visual/script.mlx +0 -28
  346. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base.ply +0 -0
  347. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base_L.ply +0 -0
  348. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster.ply +0 -0
  349. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster_L.ply +0 -0
  350. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/pr2_wheel.ply +0 -0
  351. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/wheel.ply +0 -0
  352. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/forearm.ply +0 -0
  353. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_flex.ply +0 -0
  354. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll.ply +0 -0
  355. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll_L.ply +0 -0
  356. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/gripper_palm.ply +0 -0
  357. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger.ply +0 -0
  358. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger_tip.ply +0 -0
  359. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan.ply +0 -0
  360. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan_L.ply +0 -0
  361. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt.ply +0 -0
  362. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt_L.ply +0 -0
  363. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_lift.ply +0 -0
  364. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_pan.ply +0 -0
  365. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_yaw.ply +0 -0
  366. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll.ply +0 -0
  367. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll_L.ply +0 -0
  368. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/hok_tilt.ply +0 -0
  369. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo.ply +0 -0
  370. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo_L.ply +0 -0
  371. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso.ply +0 -0
  372. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift.ply +0 -0
  373. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift_L.ply +0 -0
  374. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/elbow_flex.ply +0 -0
  375. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll.ply +0 -0
  376. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll_L.ply +0 -0
  377. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/upper_arm.ply +0 -0
  378. robotic/rai-robotModels/ranger/meshes/cleanMeshes.sh +0 -8
  379. robotic/rai-robotModels/ranger/meshes/ranger_mini3.ply +0 -0
  380. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.ply +0 -0
  381. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.ply +0 -0
  382. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link.ply +0 -0
  383. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link_x.ply +0 -10
  384. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_finger.ply +0 -0
  385. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_knuckle.ply +0 -0
  386. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_finger.ply +0 -0
  387. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_knuckle.ply +0 -0
  388. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_pad.ply +0 -0
  389. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_gripper_coupling.ply +0 -0
  390. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Base.ply +0 -0
  391. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Forearm.ply +0 -0
  392. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Shoulder.ply +0 -0
  393. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/UpperArm.ply +0 -0
  394. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist1.ply +0 -0
  395. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist2.ply +0 -0
  396. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist3.ply +0 -0
  397. robotic/ry-urdf2rai +0 -222
  398. robotic/ry-urdf2yaml +0 -250
  399. robotic-0.2.9.dev1.data/scripts/ry-h5info +0 -32
  400. robotic-0.2.9.dev1.data/scripts/ry-urdf2rai +0 -222
  401. robotic-0.2.9.dev1.data/scripts/ry-urdf2yaml +0 -250
  402. robotic-0.2.9.dev1.data/scripts/ry-view +0 -24
  403. robotic-0.2.9.dev1.dist-info/RECORD +0 -421
  404. /robotic/include/rai/{Geo → Algo}/Lewiner/LookUpTable.h +0 -0
  405. /robotic/include/rai/Geo/{assimpInterface.h → i_assimp.h} +0 -0
  406. /robotic/include/rai/Kin/{kin_bullet.h → i_Bullet.h} +0 -0
  407. /robotic/include/rai/Kin/{kin_feather.h → i_Feather.h} +0 -0
  408. /robotic/include/rai/Kin/{kin_ode.h → i_Ode.h} +0 -0
  409. /robotic/include/rai/Optim/{opt-ipopt.h → i_Ipopt.h} +0 -0
  410. /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
  411. /robotic/{import.py → src/__init__.py} +0 -0
  412. {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-bot +0 -0
  413. {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-info +0 -0
  414. {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-meshTool +0 -0
  415. {robotic-0.2.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/licenses/LICENSE +0 -0
  416. {robotic-0.2.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/top_level.txt +0 -0
@@ -97,7 +97,7 @@ struct Frame : NonCopyable {
97
97
 
98
98
  //attachments to the frame
99
99
  Joint* joint=nullptr; ///< this frame is an articulated joint
100
- Shape* shape=nullptr; ///< this frame has a (collision or visual) geometry
100
+ shared_ptr<Shape> shape; ///< this frame has a (collision or visual) geometry
101
101
  Inertia* inertia=nullptr; ///< this frame has inertia (is a mass)
102
102
  //TODO have a single list of all attached dofs (also joint)
103
103
  Array<ForceExchangeDof*> forces; ///< this frame exchanges forces with other frames
@@ -116,14 +116,14 @@ struct Frame : NonCopyable {
116
116
  //accessors to transformations
117
117
  const Transformation& ensure_X();
118
118
  const Transformation& get_Q() const;
119
- const Transformation& get_X() const;
119
+ const Transformation& get_X() { return ensure_X(); }
120
120
  Transformation_Xtoken set_X() { return Transformation_Xtoken(*this); }
121
121
  Transformation_Qtoken set_Q();
122
122
 
123
123
  //structural operations
124
124
  Frame& setParent(Frame* _parent, bool keepAbsolutePose_and_adaptRelativePose=false, bool checkForLoop=false);
125
125
  Frame& unLink();
126
- Frame* insertPreLink(const rai::Transformation& A=0);
126
+ Frame* insertPreLink(const rai::Transformation& A=0, const char* postfix="_origin");
127
127
  Frame* insertPostLink(const rai::Transformation& B=0);
128
128
  void makeRoot(bool untilPartBreak=true);
129
129
 
@@ -169,26 +169,26 @@ struct Frame : NonCopyable {
169
169
  Frame& setMesh(const arr& verts, const uintA& tris, const byteA& colors={}, const uintA& cvxParts={});
170
170
  Frame& setMeshFile(str file, double scale=1.);
171
171
  Frame& setTextureFile(str imgFile, const arr& texCoords={});
172
- Frame& setLines(const arr& verts, const byteA& colors={});
172
+ Frame& setLines(const arr& verts, const byteA& colors={}, bool singleConnectedLine=false);
173
173
  Frame& setPointCloud(const arr& points, const byteA& colors= {}, const arr& normals= {});
174
174
  Frame& setConvexMesh(const arr& points, const byteA& colors= {}, double radius=0.);
175
175
  Frame& setSdf(std::shared_ptr<SDF>& sdf);
176
176
  Frame& setTensorShape(const floatA& data, const arr& size);
177
- Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur, double resample);
177
+ Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur=0, double resample=-1.);
178
178
  Frame& setColor(const arr& color);
179
- Frame& setJoint(rai::JointType jointType, const arr& limits= {});
179
+ Frame& setJoint(rai::JointType jointType, const arr& limits={}, double scale=1., Frame* mimic=0);
180
180
  Frame& setContact(int cont);
181
- Frame& setMass(double mass);
181
+ Frame& setMass(double mass, const arr& inertiaMatrix={});
182
182
  Frame& setAttribute(const char* key, double value);
183
183
  Frame& setJointState(const arr& q); ///< throws error if this frame is not also a joint, and if q.size() != joint->dim
184
184
 
185
185
  void makeManipJoint(JointType jointType, Frame* parent, bool autoLimits); //create an articulated joint, automatically adding relative transform frame if necessary, automatically setting limits
186
186
  void setAutoLimits();
187
187
 
188
- arr getPose() { return ensure_X().getArr7d(); }
189
- arr getPosition() { return ensure_X().pos.getArr(); }
190
- arr getQuaternion() { return ensure_X().rot.getArr(); }
191
- arr getTransform() { return ensure_X().getMatrix(); }
188
+ arr getPose(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().getArr7d(); return (relativeTo->ensure_X().inv() * ensure_X()).getArr7d(); }
189
+ arr getPosition(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().pos.getArr(); return (relativeTo->ensure_X().inv() * ensure_X()).pos.getArr(); }
190
+ arr getQuaternion(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().rot.getArr(); return (relativeTo->ensure_X().inv() * ensure_X()).rot.getArr(); }
191
+ arr getTransform(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().getMatrix(); return (relativeTo->ensure_X().inv() * ensure_X()).getMatrix(); }
192
192
  arr getRelativePose() const { return get_Q().getArr7d(); }
193
193
  arr getRelativePosition() const { return get_Q().pos.getArr(); }
194
194
  arr getRelativeQuaternion() const { return get_Q().rot.getArr(); }
@@ -329,32 +329,30 @@ stdOutPipe(Inertia)
329
329
 
330
330
  /// a Frame with Shape is a collision or visual object
331
331
  struct Shape : NonCopyable {
332
- Frame& frame;
333
- Enum<ShapeType> _type;
332
+ Enum<ShapeType> _type = ST_none;
334
333
  arr size;
335
334
  shared_ptr<Mesh> _mesh;
336
- shared_ptr<Mesh> _sscCore;
335
+ shared_ptr<arr> _sscCore;
336
+ double coll_cvxRadius=-1.;
337
+ int version = 0;
337
338
  shared_ptr<SDF> _sdf;
338
339
  char cont=0; ///< are contacts registered (or filtered in the callback)
339
340
 
340
341
  double radius() { if(size.N) return size(-1); return 0.; }
341
342
  Enum<ShapeType>& type() { return _type; }
342
343
  Mesh& mesh() { if(!_mesh) { if(_type==ST_none) _type=ST_mesh; _mesh = make_shared<Mesh>(); } return *_mesh; }
343
- Mesh& sscCore() { if(!_sscCore) { if(_type==ST_none) _type=ST_ssCvx; _sscCore = make_shared<Mesh>(); } return *_sscCore; }
344
+ arr& sscCore() { if(!_sscCore) { if(_type==ST_none) _type=ST_ssCvx; _sscCore = make_shared<arr>(); } return *_sscCore; }
344
345
  SDF& sdf() { if(!_sdf) { if(_type==ST_none) _type=ST_sdf; _sdf = make_shared<TensorShape>(); } return *_sdf; }
345
346
  double alpha() { arr& C=mesh().C; if(C.N==4 || C.N==2 || (C.nd==2 && C.d1==4)) return C.elem(-1); return 1.; }
346
347
 
347
- void createMeshes();
348
- shared_ptr<ScalarFunction> functional(bool worldCoordinates=true);
349
-
350
- Shape(Frame& f, const Shape* copyShape=nullptr); //new Shape, being added to graph and frame's shape lists
351
- virtual ~Shape();
348
+ void createMeshes(const str& name);
349
+ shared_ptr<SDF> functional(const rai::Transformation& pose=0);
352
350
 
353
- bool canCollideWith(const Frame* f) const;
351
+ bool canCollide(const rai::Frame* f1, const Frame* f2) const;
354
352
 
355
- void read(const Graph& ats);
356
- void write(std::ostream& os) const;
357
- void write(Graph& g);
353
+ void read(Frame& frame);
354
+ void write(std::ostream& os, const Frame& frame) const;
355
+ void write(Graph& g, const Frame& frame);
358
356
  };
359
357
 
360
358
  //===========================================================================
@@ -15,6 +15,7 @@ struct PhysX_Options {
15
15
  RAI_PARAM("physx/", int, verbose, 1)
16
16
  RAI_PARAM("physx/", bool, yGravity, false)
17
17
  RAI_PARAM("physx/", double, angularDamping, .1)
18
+ RAI_PARAM("physx/", double, jointFriction, 0.05)
18
19
  RAI_PARAM("physx/", double, defaultFriction, 1.)
19
20
  RAI_PARAM("physx/", double, defaultRestitution, .1) //restitution=1 should be elastic...
20
21
  RAI_PARAM("physx/", double, motorKp, 1000.)
@@ -27,26 +28,27 @@ struct PhysXInterface {
27
28
 
28
29
  PhysXInterface(rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
29
30
  ~PhysXInterface();
31
+ const FrameL& getFreeFrames();
32
+ const FrameL& getJointFrames();
30
33
 
31
34
  void step(double tau=.01);
32
35
 
33
- void pushFrameStates(const rai::Configuration& C, const arr& frameVelocities=NoArr, bool onlyKinematic=false);
34
- void pullDynamicStates(rai::Configuration& C, arr& frameVelocities=NoArr);
36
+ void pushFreeStates(const rai::Configuration& C, const arr& frameVelocities=NoArr, bool onlyKinematic=false);
37
+ void pullFreeStates(rai::Configuration& C, arr& frameVelocities=NoArr);
35
38
 
36
- void pushMotorTargets(const rai::Configuration& C, const arr& qDot_ref=NoArr, bool setStatesInstantly=false);
37
- void pullMotorStates(rai::Configuration& C, arr& qDot);
39
+ void pushJointTargets(const rai::Configuration& C, const arr& qDot_ref=NoArr, bool setStatesInstantly=false);
40
+ void pullJointStates(rai::Configuration& C, arr& qDot);
38
41
 
39
42
  void changeObjectType(rai::Frame* f, int type);
40
- void addJoint(rai::Joint* j);
41
- void removeJoint(rai::Joint* j);
43
+ void addRigidJoint(rai::Frame* from, rai::Frame* to);
44
+ void removeJoint(const rai::Frame* from, const rai::Frame* to);
42
45
  void postAddObject(rai::Frame* f);
43
46
 
44
- void view(bool pause=false, const char* txt=nullptr);
45
-
46
47
  void setGravity(float grav);
47
48
  void disableGravity(rai::Frame* f, bool disable=true);
48
49
  void addForce(rai::Vector& force, rai::Frame* b);
49
50
  void addForce(rai::Vector& force, rai::Frame* b, rai::Vector& pos);
50
51
 
52
+ rai::Configuration& getDebugConfig();
51
53
  rai::PhysX_Options& opt();
52
54
  };
@@ -96,7 +96,7 @@ struct Configuration {
96
96
  Frame* addFrame(const char* name, const char* parent=nullptr, const char* args=nullptr, bool warnDuplicateName=true);
97
97
  Frame* addFile(const char* filename, const char* namePrefix=0);
98
98
  Frame& addDict(const Graph& G);
99
- Frame* addAssimp(const char* filename);
99
+ Frame* addAssimp(const char* filename, bool mergeNodeMeshes=false, int verbose=0);
100
100
  Frame* addH5Object(const char* framename, const char* filename, int verbose);
101
101
  Frame* addCopy(const FrameL& F, const DofL& _dofs, const str& prefix= {});
102
102
  Frame* addConfigurationCopy(const Configuration& C, const str& prefix= {}, double tau=1.);
@@ -116,7 +116,7 @@ struct Configuration {
116
116
  FrameL getJointsSlice(const FrameL& slice, bool activesOnly=true) const;
117
117
  uintA getDofIDs() const;
118
118
  StringA getJointNames() const;
119
- DofL getDofs(const FrameL& F, bool actives, bool inactives, bool mimics=false) const;
119
+ DofL getDofs(const FrameL& F, bool actives, bool inactives, bool mimics=false, bool forces=true) const;
120
120
  uintA getCtrlFramesAndScale(arr& scale=NoArr, bool jointPairs=true) const;
121
121
  FrameL getRoots() const;
122
122
  FrameL getParts() const;
@@ -161,11 +161,10 @@ struct Configuration {
161
161
  arr getCtrlMetric() const;
162
162
  arr getNaturalCtrlMetric(double power=.5) const; ///< returns diagonal of a natural metric in q-space, depending on tree depth
163
163
  arr getJointLimits(const DofL& dofs) const;
164
- arr getJointLimits() const { return getJointLimits(activeDofs); }
164
+ arr getJointLimits() const { getJointStateDimension(); return getJointLimits(activeDofs); }
165
165
  arr getTorqueLimits(const DofL& dofs, uint index=4) const;
166
166
  double getEnergy(const arr& qdot);
167
- double getTotalPenetration(); ///< proxies are returns from a collision engine; contacts stable constraints
168
- bool getCollisionFree();
167
+ // bool getCollisionFree(); //broken
169
168
  Graph reportForces();
170
169
  bool checkUniqueNames(bool makeUnique=false);
171
170
  FrameL calc_topSort() const;
@@ -181,8 +180,8 @@ struct Configuration {
181
180
  void pruneEmptyShapes();
182
181
  void reconnectShapesToParents();
183
182
  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 processStructure(bool pruneNamed=false, bool pruneNonContactNonMarker=false, bool pruneTransparent=false); ///< call the three above methods in this order
183
+ void pruneUselessFrames(bool pruneNamed=false, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< delete frames that have no name, joint, and shape
184
+ void processStructure(bool _pruneRigidJoints=false, bool reconnectToLinks=true, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< call the three above methods in this order
186
185
  void processInertias(bool recomputeInertias=true, bool transformToDiagInertia=false);
187
186
  void sortFrames();
188
187
  void makeObjectsFree(const StringA& objects, double H_cost=0.);
@@ -192,6 +191,7 @@ struct Configuration {
192
191
  Joint* attach(Frame* a, Frame* b);
193
192
  Joint* attach(const char* a, const char* b);
194
193
  uintAA getCollisionExcludePairIDs(int verbose=0);
194
+ FrameL getCollidableShapes();
195
195
  FrameL getCollidablePairs();
196
196
  void prefixNames(bool clear=false);
197
197
 
@@ -242,44 +242,53 @@ struct Configuration {
242
242
  void dyn_MF(arr& M, arr& F, const arr& q_dot);
243
243
  arr dyn_inverseDyamics(const arr& q_dot, const arr& q_ddot);
244
244
  arr dyn_fwdDynamics(const arr& q_dot, const arr& u);
245
- private: //internal:
245
+ void dyn_fwdStep_RungeKutta(arr& q_dot, const arr& u, double tau);
246
+ double dyn_energy(const arr& q_dot);
247
+ // private: //internal:
246
248
  struct FrameDynState{ bool isGood=false; Vector p, v, w, vd, wd; Matrix R; };
247
249
  FrameDynState& dyn_ensure(Frame* f, const arr& q_dot, Array<FrameDynState>& buffer);
248
250
  arr dyn_inertia(Frame* f);
249
251
  arr dyn_M(Frame *f, const arr& I_f);
250
252
  arr dyn_J_dot(Frame *f, const arr& q_dot, const arr& Jpos, const arr& Jang);
251
- arr dyn_coriolis(Frame *f, const arr& q_dot, const arr& I_f, const arr& Jpos, const arr& Jang, Array<FrameDynState>& buffer);
253
+ arr dyn_C(Frame *f, const arr& q_dot, const arr& I_f, const arr& Jpos, const arr& Jang, Array<FrameDynState>& buffer);
252
254
  public:
253
255
 
254
256
  /// @name dynamics based on the fs() interface
255
257
  void equationOfMotion(arr& M, arr& F, const arr& qdot, bool gravity=true);
256
- void fwdDynamics(arr& qdd, const arr& qd, const arr& tau, bool gravity=true);
258
+ arr fwdDynamics(const arr& qd, const arr& tau, bool gravity=true);
257
259
  void inverseDynamics(arr& tau, const arr& qd, const arr& qdd, bool gravity=true);
258
260
 
259
261
  /// @name collisions & proxies
260
- void copyProxies(const ProxyA& _proxies);
262
+ void coll_setActiveColliders(const FrameL& colliders);
263
+ void coll_addExcludePair(uint aID, uint bID);
264
+
265
+ double coll_totalViolation(); ///< proxies are returns from a collision engine; contacts stable constraints
266
+ bool coll_isCollisionFree();
267
+ void coll_reportProxies(std::ostream& os=cout, double belowMargin=1., bool brief=true) const;
268
+ StringA coll_getProxyPairs(double belowMargin, arr& distances=NoArr);
269
+ std::shared_ptr<FclInterface> coll_fcl(int verbose=0);
270
+ void coll_fclReset();
261
271
  void addProxies(const uintA& collisionPairs);
262
272
 
263
273
  /// @name extensions on demand
264
- std::shared_ptr<ConfigurationViewer>& get_viewer(const char* window_title=nullptr, bool offscreen=false);
274
+ std::shared_ptr<ConfigurationViewer> get_viewer();
265
275
  OpenGL& gl();
266
276
  void view_lock(const char* _lockInfo);
267
277
  void view_unlock();
268
- //std::shared_ptr<SwiftInterface> swift();
269
- std::shared_ptr<FclInterface> fcl(int verbose=0);
270
- void swiftDelete();
271
278
  PhysXInterface& physx();
272
279
  OdeInterface& ode();
273
280
  FeatherstoneInterface& fs();
274
281
  bool hasView();
275
282
  int view(bool pause=false, const char* txt=nullptr);
276
- void view_savePng(str saveVideoPath="z.vid/", int count=-1);
277
283
  void saveVideoPic(uint& t, const char* pathPrefix="vid/");
278
284
  void glAdd(void (*call)(void*, OpenGL&), void* classP);
279
285
  int glAnimate();
280
286
  void view_close();
281
- void set_viewer(std::shared_ptr<ConfigurationViewer>& _viewer);
282
- void stepFcl();
287
+ void view_setCameraPose(const arr& pose);
288
+ arr view_getCameraPose();
289
+ void view_focus(const char* frameName, double heightAbs);
290
+ void set_viewer(const std::shared_ptr<ConfigurationViewer>& _viewer);
291
+ void coll_stepFcl();
283
292
  void stepPhysx(double tau);
284
293
  void stepOde(double tau);
285
294
  void stepDynamics(arr& qdot, const arr& u_control, double tau, double dynamicNoise = 0.0, bool gravity = true);
@@ -289,7 +298,7 @@ public:
289
298
  void write(Graph& G) const;
290
299
  void writeURDF(std::ostream& os, const char* robotName="myrobot") const;
291
300
  void writeCollada(const char* filename, const char* format="collada") const;
292
- void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false) const;
301
+ void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false, bool enumerateAssets=false) const;
293
302
  void writeMesh(const char* filename="z.ply") const;
294
303
  void read(std::istream& is);
295
304
  Graph getGraph() const;
@@ -301,7 +310,6 @@ public:
301
310
 
302
311
  //some info
303
312
  void report(std::ostream& os=cout) const;
304
- void reportProxies(std::ostream& os=cout, double belowMargin=1., bool brief=true) const;
305
313
  void reportLimits(std::ostream& os=cout) const;
306
314
 
307
315
  private:
@@ -316,7 +324,7 @@ stdPipes(Configuration)
316
324
  //
317
325
 
318
326
  uintA framesToIndices(const FrameL& frames);
319
- uintA jointsToIndices(const JointL& joints);
327
+ FrameL dofsToFrames(const DofL& dofs);
320
328
  StringA framesToNames(const FrameL& frames);
321
329
 
322
330
  //===========================================================================
@@ -1,4 +1,4 @@
1
- /* ------------------------------------------------------------------
1
+ /* -------------
2
2
  Copyright (c) 2011-2024 Marc Toussaint
3
3
  email: toussaint@tu-berlin.de
4
4
 
@@ -30,6 +30,7 @@ struct Simulation {
30
30
  uint stepCount=0;
31
31
  Engine engine;
32
32
  Array<shared_ptr<SimulationImp>> imps; ///< list of (adversarial) imps doing things/perturbations/noise in addition to clean physics engine
33
+ bool simulateDepthNoise=false;
33
34
  int verbose;
34
35
  int writeData=0;
35
36
  ofstream dataFile;
@@ -59,7 +60,9 @@ struct Simulation {
59
60
  //-- get state information
60
61
  const arr& get_q() { return C.getJointState(); }
61
62
  const arr& get_qDot();
62
- const arr& get_frameVelocities();
63
+ const arr& get_qRef(); //executed in the LAST step() call
64
+
65
+ const arr get_frameVelocities();
63
66
  double getTimeToSplineEnd();
64
67
  double getGripperWidth(const char* gripperFrameName);
65
68
  bool getGripperIsGrasping(const char* gripperFrameName);
@@ -70,12 +73,13 @@ struct Simulation {
70
73
  void getImageAndDepth(byteA& image, floatA& depth); ///< use this during stepping
71
74
  void getSegmentation(byteA& segmentation);
72
75
  CameraView& cameraview(); ///< use this if you want to initialize the sensor, etc
73
- rai::CameraView::Sensor& addSensor(const char* sensorName, uint width=640, uint height=360, double focalLength=-1., double orthoAbsHeight=-1., const arr& zRange= {}) {
76
+ rai::CameraView::CameraFrame& addSensor(const char* sensorName, uint width=640, uint height=360, double focalLength=-1., double orthoAbsHeight=-1., const arr& zRange= {}) {
74
77
  rai::Frame *f = C.getFrame(sensorName);
75
78
  CHECK(f, "a camera frame must exist");
76
- return cameraview().addSensor(f, width, height, focalLength, orthoAbsHeight, zRange);
79
+ return cameraview().setCamera(f, width, height, focalLength, orthoAbsHeight, zRange);
77
80
  }
78
- rai::CameraView::Sensor& selectSensor(const char* name) { return cameraview().selectSensor(C.getFrame(name)); }
81
+ rai::CameraView::CameraFrame& selectSensor(const char* name) { return cameraview().selectSensor(C.getFrame(name)); }
82
+ void setSimulateDepthNoise(bool _simulateDepthNoise) { simulateDepthNoise=_simulateDepthNoise; }
79
83
  byteA getScreenshot();
80
84
 
81
85
  //== ground truth interface
@@ -86,14 +90,18 @@ struct Simulation {
86
90
  //what are really the fundamental perturbations? Their (reactive?) management should be realized by 'agents'. We need a method to add purturbation agents.
87
91
  void addImp(ImpType type, const StringA& frames, const arr& parameters);
88
92
 
89
- void attach(Frame* gripper, Frame* obj);
90
- void detach(Frame* obj);
93
+ void attach(Frame* from, Frame* to);
94
+ void detach(Frame* from, Frame* to);
91
95
 
92
96
  //== management interface
93
97
 
94
98
  //-- store and reset the state of the simulation
95
- void getState(arr& frameState, arr& q=NoArr, arr& frameVelocities=NoArr, arr& qDot=NoArr);
96
- void setState(const arr& frameState, const arr& q=NoArr, const arr& frameVelocities=NoArr, const arr& qDot=NoArr);
99
+ void resetTime(double t=0.);
100
+ struct State { double time; arr q, qDot, freePos, freeVel; };
101
+ void getState(State& state);
102
+ void setState(const State& state);
103
+ FrameL getFreeFrames();
104
+ FrameL getJointFrames();
97
105
  void pushConfigurationToSimulator(const arr& frameVelocities=NoArr, const arr& qDot=NoArr);
98
106
 
99
107
  //-- post-hoc world manipulations
@@ -107,6 +115,8 @@ struct Simulation {
107
115
  std::shared_ptr<struct PhysXInterface> hidden_physx();
108
116
  OpenGL& hidden_gl();
109
117
  void loadTeleopCallbacks();
118
+ private:
119
+ void _controls2refs(arr& q_ref, arr& qDot_ref, double tau, const arr& q_real, const arr& u_control, ControlMode u_mode);
110
120
  };
111
121
 
112
122
  //===========================================================================
@@ -125,8 +135,8 @@ struct TeleopCallbacks : OpenGL::GLClickCall, OpenGL::GLKeyCall, OpenGL::GLHover
125
135
  TeleopCallbacks(rai::Configuration& C, rai::Frame* marker=0) : C(C), marker(marker) { q_ref = C.getJointState(); }
126
136
 
127
137
  bool hasNewMarker();
128
- virtual bool clickCallback(OpenGL& gl);
129
- virtual bool keyCallback(OpenGL& gl);
138
+ virtual bool clickCallback(OpenGL& gl, int button, int buttonIsDown);
139
+ virtual bool keyCallback(OpenGL& gl, int key, int mods, bool _keyIsDown);
130
140
  virtual bool hoverCallback(OpenGL& gl);
131
141
  };
132
142
 
@@ -40,17 +40,30 @@ struct ConfigurationViewer : RenderData {
40
40
  void savePng(str saveVideoPath="z.vid/", int count=-1);
41
41
 
42
42
  void raiseWindow();
43
+ void setWindow(const char* window_title, int w=400, int h=400);
43
44
  void glDraw(OpenGL&);
44
- void setCamera(rai::Frame* cam);
45
+ void setCamera(rai::Frame* camFrame);
46
+ void setCameraPose(const arr& pose);
47
+ void focus(const arr& position, double heightAbs=1.);
48
+ arr getCameraPose();
49
+
50
+ void setupEventHandler(bool blockDefaultHandler);
51
+ StringA getEvents();
52
+ arr getEventCursor();
53
+ uint getEventCursorObject();
54
+ Mutex& getEventsMutex();
45
55
 
46
56
  //mimic a OpenGL, directly calling the same methods in its gl
47
57
  void _resetPressedKey();
48
58
 
59
+ int setQuad(int id, const byteA& rgb, float x, float y, float h);
60
+
49
61
  private://draw data
50
62
  arr motion;
51
63
  bool abortPlay;
52
64
  uint pngCount=0;
53
65
  bool drawFrameLines=true;
66
+ shared_ptr<struct ViewerEventHandler> eventHandler;
54
67
  public:
55
68
  int drawSlice;
56
69
  String text;
@@ -0,0 +1,33 @@
1
+ #pragma once
2
+
3
+ #include <KOMO/komo.h>
4
+
5
+ namespace rai {
6
+
7
+ //===========================================================================
8
+
9
+ struct LGP_TAMP_Abstraction{
10
+ virtual ~LGP_TAMP_Abstraction() {}
11
+
12
+ //parameters
13
+ virtual Configuration& getConfig() = 0;
14
+ bool useBroadCollisions=false;
15
+ StringA explicitCollisions;
16
+
17
+ //abstraction of the logic parts: get feasible action sequences
18
+ virtual Array<StringA> getNewActionSequence() = 0;
19
+
20
+ //abstraction of the motion parts: given an action sequence, what are the constraints on waypoints, and potential additional running constraints on motions between waypoints
21
+ virtual std::shared_ptr<KOMO> setup_sequence(Configuration& C, uint K) = 0;
22
+ virtual std::shared_ptr<KOMO> setup_motion(Configuration& C, uint K) = 0;
23
+ virtual void add_action_constraints(std::shared_ptr<KOMO>& komo, double time, const StringA& action) = 0;
24
+ virtual void add_action_constraints_motion(std::shared_ptr<KOMO>& komo, double time, const StringA& prev_action, const StringA& action, uint actionPhase) = 0;
25
+
26
+ //predefined helper functions for solvers: generically using the above to setup a full waypoints and path problem
27
+ std::shared_ptr<KOMO> get_waypointsProblem(Configuration& C, StringAA& actionSequence);
28
+ std::shared_ptr<KOMO> get_fullMotionProblem(Configuration& C, StringAA& actionSequence, shared_ptr<KOMO> initWithWaypoints={});
29
+ };
30
+
31
+ PTR<LGP_TAMP_Abstraction> default_LGP_TAMP_Abstraction(rai::Configuration &C, const char* lgp_configfile);
32
+
33
+ }
@@ -1,30 +1,12 @@
1
1
  #pragma once
2
2
 
3
3
  #include "Motif.h"
4
-
5
- #include <LGP/LGP_SkeletonTool.h>
6
- #include <KOMO/manipTools.h>
4
+ #include "LGP_TAMP_Abstraction.h"
7
5
 
8
6
  namespace rai {
9
7
 
10
8
  //===========================================================================
11
9
 
12
- struct Actions2KOMO_Translator {
13
- virtual ~Actions2KOMO_Translator() {}
14
- virtual std::shared_ptr<KOMO> setup_sequence(Configuration& C, uint K) = 0;
15
- virtual void add_action_constraints(std::shared_ptr<KOMO>& komo, double time, const StringA& action) = 0;
16
- virtual void add_action_constraints_motion(std::shared_ptr<KOMO>& komo, double time, const StringA& prev_action, const StringA& action, uint actionPhase) = 0;
17
- };
18
-
19
- struct TAMP_Provider{
20
- virtual ~TAMP_Provider() {}
21
- virtual Array<StringA> getNewPlan() = 0;
22
- virtual Configuration& getConfig() = 0;
23
- virtual StringA explicitCollisions() = 0;
24
- };
25
-
26
- //===========================================================================
27
-
28
10
  struct ActionNode;
29
11
  typedef Array<ActionNode*> ActionNodeL;
30
12
 
@@ -74,7 +56,7 @@ struct ActionNode{
74
56
  ActionNode(ActionNode* _parent, StringA _action);
75
57
  ~ActionNode();
76
58
 
77
- PTR<KOMO>& get_ways(Configuration& C, Actions2KOMO_Translator& trans, const StringA& explicitCollisions);
59
+ PTR<KOMO>& get_ways(Configuration& C, LGP_TAMP_Abstraction& tamp);
78
60
  Array<PTR<KOMO_Motif>>& getWayMotifs();
79
61
 
80
62
 
@@ -98,8 +80,7 @@ protected:
98
80
  struct LGP_Tool{
99
81
  //problem interface
100
82
  Configuration& C;
101
- TAMP_Provider& tamp;
102
- Actions2KOMO_Translator& trans;
83
+ LGP_TAMP_Abstraction& tamp;
103
84
  int verbose=1;
104
85
 
105
86
  //internal data structures for action search and job management
@@ -113,7 +94,7 @@ struct LGP_Tool{
113
94
  uint step_count=0;
114
95
 
115
96
  LGP_Tool(const char* lgp_configfile);
116
- LGP_Tool(Configuration& _C, TAMP_Provider& _tamp, Actions2KOMO_Translator& _trans);
97
+ LGP_Tool(Configuration& _C, LGP_TAMP_Abstraction& _tamp);
117
98
  ~LGP_Tool();
118
99
 
119
100
  void solve_step();
@@ -143,7 +124,5 @@ private:
143
124
  //===========================================================================
144
125
 
145
126
  MotifL analyzeMotifs(KOMO& komo, int verbose=0);
146
- PTR<TAMP_Provider> default_TAMP_Provider(rai::Configuration &C, const char* lgp_configfile);
147
- PTR<Actions2KOMO_Translator> default_Actions2KOMO_Translator();
148
127
 
149
128
  } //namespace
@@ -145,7 +145,7 @@ struct LGPcomp_RRTpath : ComputeNode {
145
145
  LGPcomp_Waypoints* ways=0;
146
146
  LGPcomp_RRTpath* prev=0;
147
147
 
148
- Configuration C;
148
+ shared_ptr<Configuration> C;
149
149
  uint t;
150
150
  shared_ptr<RRT_PathFinder> rrt;
151
151
  arr q0, qT;