robotic 0.2.8.dev4__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 (411) hide show
  1. robotic/DataGen.pyi +11 -1
  2. robotic/__init__.py +8 -1
  3. robotic/_robotic.pyi +236 -114
  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 -136
  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 +33 -37
  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 +24 -16
  26. robotic/include/rai/Geo/{fclInterface.h → i_fcl.h} +3 -1
  27. robotic/include/rai/Geo/mesh.h +22 -16
  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 +12 -9
  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 +24 -26
  43. robotic/include/rai/Kin/{kin_physx.h → i_Physx.h} +11 -10
  44. robotic/include/rai/Kin/kin.h +30 -20
  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 +33 -0
  190. robotic/rai-robotModels/ranger/ranger_clean.g +18 -0
  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 -8
  218. robotic/ry-test +6 -5
  219. robotic/ry-urdfConvert.py +74 -0
  220. robotic/ry-view +28 -6
  221. robotic/src/__init__.py +0 -0
  222. robotic/src/cleanMeshes.py +59 -0
  223. robotic/src/h5_helper.py +46 -0
  224. robotic/src/h5_helper.py~ +42 -0
  225. robotic/src/mesh_helper.py +395 -0
  226. robotic/src/meshlabFilters.mlx +20 -0
  227. robotic/src/mujoco_io.py +242 -0
  228. robotic/src/urdf_io.py +237 -0
  229. robotic/src/yaml_helper.py +29 -0
  230. robotic/version.py +1 -1
  231. {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-h5info +3 -8
  232. {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-test +6 -5
  233. robotic-0.3.4.dev5.data/scripts/ry-urdfConvert.py +74 -0
  234. robotic-0.3.4.dev5.data/scripts/ry-view +46 -0
  235. {robotic-0.2.8.dev4.dist-info → robotic-0.3.4.dev5.dist-info}/METADATA +20 -23
  236. robotic-0.3.4.dev5.dist-info/RECORD +386 -0
  237. {robotic-0.2.8.dev4.dist-info → robotic-0.3.4.dev5.dist-info}/WHEEL +1 -1
  238. robotic/nlp.py +0 -113
  239. robotic/rai-robotModels/baxter/baxter.g +0 -49
  240. robotic/rai-robotModels/baxter/baxter_clean.g +0 -116
  241. robotic/rai-robotModels/baxter/baxter_clean2.g +0 -205
  242. robotic/rai-robotModels/baxter/baxter_clean3.g +0 -223
  243. robotic/rai-robotModels/baxter/baxter_description/meshes/base/PEDESTAL.ply +0 -0
  244. robotic/rai-robotModels/baxter/baxter_description/meshes/base/pedestal_link_collision.ply +0 -0
  245. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H0.ply +0 -0
  246. robotic/rai-robotModels/baxter/baxter_description/meshes/head/H1.ply +0 -0
  247. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_elbow/E1.ply +0 -0
  248. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_forearm/W1.ply +0 -0
  249. robotic/rai-robotModels/baxter/baxter_description/meshes/lower_shoulder/S1.ply +0 -0
  250. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link.ply +0 -0
  251. robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link_collision.ply +0 -0
  252. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_elbow/E0.ply +0 -0
  253. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_forearm/W0.ply +0 -0
  254. robotic/rai-robotModels/baxter/baxter_description/meshes/upper_shoulder/S0.ply +0 -0
  255. robotic/rai-robotModels/baxter/baxter_description/meshes/wrist/W2.ply +0 -0
  256. robotic/rai-robotModels/baxter/baxter_new.g +0 -53
  257. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/electric_gripper_base.ply +0 -0
  258. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/extended_narrow.ply +0 -0
  259. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/half_round_tip.ply +0 -0
  260. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/paddle_tip.ply +0 -0
  261. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_base.ply +0 -0
  262. robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_w_cup.ply +0 -0
  263. robotic/rai-robotModels/g1/meshes/head_link.ply +0 -0
  264. robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.ply +0 -0
  265. robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.ply +0 -0
  266. robotic/rai-robotModels/g1/meshes/left_elbow_link.ply +0 -0
  267. robotic/rai-robotModels/g1/meshes/left_hand_index_0_link.ply +0 -0
  268. robotic/rai-robotModels/g1/meshes/left_hand_index_1_link.ply +0 -0
  269. robotic/rai-robotModels/g1/meshes/left_hand_middle_0_link.ply +0 -0
  270. robotic/rai-robotModels/g1/meshes/left_hand_middle_1_link.ply +0 -0
  271. robotic/rai-robotModels/g1/meshes/left_hand_palm_link.ply +0 -0
  272. robotic/rai-robotModels/g1/meshes/left_hand_thumb_0_link.ply +0 -0
  273. robotic/rai-robotModels/g1/meshes/left_hand_thumb_1_link.ply +0 -0
  274. robotic/rai-robotModels/g1/meshes/left_hand_thumb_2_link.ply +0 -0
  275. robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.ply +0 -0
  276. robotic/rai-robotModels/g1/meshes/left_hip_roll_link.ply +0 -0
  277. robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.ply +0 -0
  278. robotic/rai-robotModels/g1/meshes/left_knee_link.ply +0 -0
  279. robotic/rai-robotModels/g1/meshes/left_rubber_hand.ply +0 -0
  280. robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.ply +0 -0
  281. robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.ply +0 -0
  282. robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.ply +0 -0
  283. robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.ply +0 -0
  284. robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.ply +0 -0
  285. robotic/rai-robotModels/g1/meshes/left_wrist_roll_rubber_hand.ply +0 -0
  286. robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.ply +0 -0
  287. robotic/rai-robotModels/g1/meshes/logo_link.ply +0 -0
  288. robotic/rai-robotModels/g1/meshes/pelvis.ply +0 -0
  289. robotic/rai-robotModels/g1/meshes/pelvis_contour_link.ply +0 -0
  290. robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.ply +0 -0
  291. robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.ply +0 -0
  292. robotic/rai-robotModels/g1/meshes/right_elbow_link.ply +0 -0
  293. robotic/rai-robotModels/g1/meshes/right_hand_index_0_link.ply +0 -0
  294. robotic/rai-robotModels/g1/meshes/right_hand_index_1_link.ply +0 -0
  295. robotic/rai-robotModels/g1/meshes/right_hand_middle_0_link.ply +0 -0
  296. robotic/rai-robotModels/g1/meshes/right_hand_middle_1_link.ply +0 -0
  297. robotic/rai-robotModels/g1/meshes/right_hand_palm_link.ply +0 -0
  298. robotic/rai-robotModels/g1/meshes/right_hand_thumb_0_link.ply +0 -0
  299. robotic/rai-robotModels/g1/meshes/right_hand_thumb_1_link.ply +0 -0
  300. robotic/rai-robotModels/g1/meshes/right_hand_thumb_2_link.ply +0 -0
  301. robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.ply +0 -0
  302. robotic/rai-robotModels/g1/meshes/right_hip_roll_link.ply +0 -0
  303. robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.ply +0 -0
  304. robotic/rai-robotModels/g1/meshes/right_knee_link.ply +0 -0
  305. robotic/rai-robotModels/g1/meshes/right_rubber_hand.ply +0 -0
  306. robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.ply +0 -0
  307. robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.ply +0 -0
  308. robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.ply +0 -0
  309. robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.ply +0 -0
  310. robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.ply +0 -0
  311. robotic/rai-robotModels/g1/meshes/right_wrist_roll_rubber_hand.ply +0 -0
  312. robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.ply +0 -0
  313. robotic/rai-robotModels/g1/meshes/torso_constraint_L_link.ply +0 -0
  314. robotic/rai-robotModels/g1/meshes/torso_constraint_L_rod_link.ply +0 -0
  315. robotic/rai-robotModels/g1/meshes/torso_constraint_R_link.ply +0 -0
  316. robotic/rai-robotModels/g1/meshes/torso_constraint_R_rod_link.ply +0 -0
  317. robotic/rai-robotModels/g1/meshes/torso_link.ply +0 -0
  318. robotic/rai-robotModels/g1/meshes/waist_constraint_L.ply +0 -0
  319. robotic/rai-robotModels/g1/meshes/waist_constraint_R.ply +0 -0
  320. robotic/rai-robotModels/g1/meshes/waist_roll_link.ply +0 -0
  321. robotic/rai-robotModels/g1/meshes/waist_support_link.ply +0 -0
  322. robotic/rai-robotModels/g1/meshes/waist_yaw_link.ply +0 -0
  323. robotic/rai-robotModels/panda/franka_description/meshes/collision/finger.stl +0 -0
  324. robotic/rai-robotModels/panda/franka_description/meshes/collision/hand.stl +0 -0
  325. robotic/rai-robotModels/panda/franka_description/meshes/collision/link0.stl +0 -0
  326. robotic/rai-robotModels/panda/franka_description/meshes/collision/link1.stl +0 -0
  327. robotic/rai-robotModels/panda/franka_description/meshes/collision/link2.stl +0 -0
  328. robotic/rai-robotModels/panda/franka_description/meshes/collision/link3.stl +0 -0
  329. robotic/rai-robotModels/panda/franka_description/meshes/collision/link4.stl +0 -0
  330. robotic/rai-robotModels/panda/franka_description/meshes/collision/link5.stl +0 -0
  331. robotic/rai-robotModels/panda/franka_description/meshes/collision/link6.stl +0 -0
  332. robotic/rai-robotModels/panda/franka_description/meshes/collision/link7.stl +0 -0
  333. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO.sh +0 -10
  334. robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO2.sh +0 -7
  335. robotic/rai-robotModels/panda/franka_description/meshes/visual/convMeshes.mlx +0 -38
  336. robotic/rai-robotModels/panda/franka_description/meshes/visual/finger.ply +0 -0
  337. robotic/rai-robotModels/panda/franka_description/meshes/visual/hand.ply +0 -0
  338. robotic/rai-robotModels/panda/franka_description/meshes/visual/link0.ply +0 -0
  339. robotic/rai-robotModels/panda/franka_description/meshes/visual/link1.ply +0 -0
  340. robotic/rai-robotModels/panda/franka_description/meshes/visual/link2.ply +0 -0
  341. robotic/rai-robotModels/panda/franka_description/meshes/visual/link3.ply +0 -0
  342. robotic/rai-robotModels/panda/franka_description/meshes/visual/link4.ply +0 -0
  343. robotic/rai-robotModels/panda/franka_description/meshes/visual/link5.ply +0 -0
  344. robotic/rai-robotModels/panda/franka_description/meshes/visual/link6.ply +0 -0
  345. robotic/rai-robotModels/panda/franka_description/meshes/visual/link7.ply +0 -0
  346. robotic/rai-robotModels/panda/franka_description/meshes/visual/script.mlx +0 -28
  347. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base.ply +0 -0
  348. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base_L.ply +0 -0
  349. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster.ply +0 -0
  350. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster_L.ply +0 -0
  351. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/pr2_wheel.ply +0 -0
  352. robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/wheel.ply +0 -0
  353. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/forearm.ply +0 -0
  354. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_flex.ply +0 -0
  355. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll.ply +0 -0
  356. robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll_L.ply +0 -0
  357. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/gripper_palm.ply +0 -0
  358. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger.ply +0 -0
  359. robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger_tip.ply +0 -0
  360. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan.ply +0 -0
  361. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan_L.ply +0 -0
  362. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt.ply +0 -0
  363. robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt_L.ply +0 -0
  364. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_lift.ply +0 -0
  365. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_pan.ply +0 -0
  366. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_yaw.ply +0 -0
  367. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll.ply +0 -0
  368. robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll_L.ply +0 -0
  369. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/hok_tilt.ply +0 -0
  370. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo.ply +0 -0
  371. robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo_L.ply +0 -0
  372. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso.ply +0 -0
  373. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift.ply +0 -0
  374. robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift_L.ply +0 -0
  375. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/elbow_flex.ply +0 -0
  376. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll.ply +0 -0
  377. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll_L.ply +0 -0
  378. robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/upper_arm.ply +0 -0
  379. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link.ply +0 -0
  380. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link_x.ply +0 -10
  381. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_finger.ply +0 -0
  382. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_knuckle.ply +0 -0
  383. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_finger.ply +0 -0
  384. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_knuckle.ply +0 -0
  385. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_pad.ply +0 -0
  386. robotic/rai-robotModels/robotiq/meshes/visual/robotiq_gripper_coupling.ply +0 -0
  387. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Base.ply +0 -0
  388. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Forearm.ply +0 -0
  389. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Shoulder.ply +0 -0
  390. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/UpperArm.ply +0 -0
  391. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist1.ply +0 -0
  392. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist2.ply +0 -0
  393. robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist3.ply +0 -0
  394. robotic/ry-urdf2rai +0 -222
  395. robotic/ry-urdf2yaml +0 -250
  396. robotic-0.2.8.dev4.data/scripts/ry-urdf2rai +0 -222
  397. robotic-0.2.8.dev4.data/scripts/ry-urdf2yaml +0 -250
  398. robotic-0.2.8.dev4.data/scripts/ry-view +0 -24
  399. robotic-0.2.8.dev4.dist-info/RECORD +0 -413
  400. /robotic/include/rai/{Geo → Algo}/Lewiner/LookUpTable.h +0 -0
  401. /robotic/include/rai/Geo/{assimpInterface.h → i_assimp.h} +0 -0
  402. /robotic/include/rai/Kin/{kin_bullet.h → i_Bullet.h} +0 -0
  403. /robotic/include/rai/Kin/{kin_feather.h → i_Feather.h} +0 -0
  404. /robotic/include/rai/Kin/{kin_ode.h → i_Ode.h} +0 -0
  405. /robotic/include/rai/Optim/{opt-ipopt.h → i_Ipopt.h} +0 -0
  406. /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
  407. {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-bot +0 -0
  408. {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-info +0 -0
  409. {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-meshTool +0 -0
  410. {robotic-0.2.8.dev4.dist-info → robotic-0.3.4.dev5.dist-info/licenses}/LICENSE +0 -0
  411. {robotic-0.2.8.dev4.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
 
@@ -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);
@@ -168,26 +169,26 @@ struct Frame : NonCopyable {
168
169
  Frame& setMesh(const arr& verts, const uintA& tris, const byteA& colors={}, const uintA& cvxParts={});
169
170
  Frame& setMeshFile(str file, double scale=1.);
170
171
  Frame& setTextureFile(str imgFile, const arr& texCoords={});
171
- Frame& setLines(const arr& verts, const byteA& colors={});
172
+ Frame& setLines(const arr& verts, const byteA& colors={}, bool singleConnectedLine=false);
172
173
  Frame& setPointCloud(const arr& points, const byteA& colors= {}, const arr& normals= {});
173
174
  Frame& setConvexMesh(const arr& points, const byteA& colors= {}, double radius=0.);
174
175
  Frame& setSdf(std::shared_ptr<SDF>& sdf);
175
176
  Frame& setTensorShape(const floatA& data, const arr& size);
176
- 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.);
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
 
184
185
  void makeManipJoint(JointType jointType, Frame* parent, bool autoLimits); //create an articulated joint, automatically adding relative transform frame if necessary, automatically setting limits
185
186
  void setAutoLimits();
186
187
 
187
- arr getPose() { return ensure_X().getArr7d(); }
188
- arr getPosition() { return ensure_X().pos.getArr(); }
189
- arr getQuaternion() { return ensure_X().rot.getArr(); }
190
- 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(); }
191
192
  arr getRelativePose() const { return get_Q().getArr7d(); }
192
193
  arr getRelativePosition() const { return get_Q().pos.getArr(); }
193
194
  arr getRelativeQuaternion() const { return get_Q().rot.getArr(); }
@@ -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);
@@ -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.)
@@ -25,29 +26,29 @@ struct PhysX_Options {
25
26
  struct PhysXInterface {
26
27
  struct PhysXInterface_self* self=0;
27
28
 
28
- PhysXInterface(const rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
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
- void setArticulatedBodiesKinematic(const rai::Configuration& C);
44
-
45
- void view(bool pause=false, const char* txt=nullptr);
46
46
 
47
47
  void setGravity(float grav);
48
48
  void disableGravity(rai::Frame* f, bool disable=true);
49
49
  void addForce(rai::Vector& force, rai::Frame* b);
50
50
  void addForce(rai::Vector& force, rai::Frame* b, rai::Vector& pos);
51
51
 
52
+ rai::Configuration& getDebugConfig();
52
53
  rai::PhysX_Options& opt();
53
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,9 @@ 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 simplify(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
185
+ void processInertias(bool recomputeInertias=true, bool transformToDiagInertia=false);
186
186
  void sortFrames();
187
187
  void makeObjectsFree(const StringA& objects, double H_cost=0.);
188
188
  void addTauJoint();
@@ -191,6 +191,7 @@ struct Configuration {
191
191
  Joint* attach(Frame* a, Frame* b);
192
192
  Joint* attach(const char* a, const char* b);
193
193
  uintAA getCollisionExcludePairIDs(int verbose=0);
194
+ FrameL getCollidableShapes();
194
195
  FrameL getCollidablePairs();
195
196
  void prefixNames(bool clear=false);
196
197
 
@@ -241,32 +242,39 @@ struct Configuration {
241
242
  void dyn_MF(arr& M, arr& F, const arr& q_dot);
242
243
  arr dyn_inverseDyamics(const arr& q_dot, const arr& q_ddot);
243
244
  arr dyn_fwdDynamics(const arr& q_dot, const arr& u);
244
- 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:
245
248
  struct FrameDynState{ bool isGood=false; Vector p, v, w, vd, wd; Matrix R; };
246
249
  FrameDynState& dyn_ensure(Frame* f, const arr& q_dot, Array<FrameDynState>& buffer);
247
250
  arr dyn_inertia(Frame* f);
248
251
  arr dyn_M(Frame *f, const arr& I_f);
249
252
  arr dyn_J_dot(Frame *f, const arr& q_dot, const arr& Jpos, const arr& Jang);
250
- 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);
251
254
  public:
252
255
 
253
256
  /// @name dynamics based on the fs() interface
254
257
  void equationOfMotion(arr& M, arr& F, const arr& qdot, bool gravity=true);
255
- 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);
256
259
  void inverseDynamics(arr& tau, const arr& qd, const arr& qdd, bool gravity=true);
257
260
 
258
261
  /// @name collisions & proxies
259
- 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();
260
271
  void addProxies(const uintA& collisionPairs);
261
272
 
262
273
  /// @name extensions on demand
263
- std::shared_ptr<ConfigurationViewer>& get_viewer(const char* window_title=nullptr, bool offscreen=false);
274
+ std::shared_ptr<ConfigurationViewer> get_viewer();
264
275
  OpenGL& gl();
265
276
  void view_lock(const char* _lockInfo);
266
277
  void view_unlock();
267
- //std::shared_ptr<SwiftInterface> swift();
268
- std::shared_ptr<FclInterface> fcl(int verbose=0);
269
- void swiftDelete();
270
278
  PhysXInterface& physx();
271
279
  OdeInterface& ode();
272
280
  FeatherstoneInterface& fs();
@@ -276,8 +284,11 @@ public:
276
284
  void glAdd(void (*call)(void*, OpenGL&), void* classP);
277
285
  int glAnimate();
278
286
  void view_close();
279
- void set_viewer(std::shared_ptr<ConfigurationViewer>& _viewer);
280
- 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();
281
292
  void stepPhysx(double tau);
282
293
  void stepOde(double tau);
283
294
  void stepDynamics(arr& qdot, const arr& u_control, double tau, double dynamicNoise = 0.0, bool gravity = true);
@@ -287,7 +298,7 @@ public:
287
298
  void write(Graph& G) const;
288
299
  void writeURDF(std::ostream& os, const char* robotName="myrobot") const;
289
300
  void writeCollada(const char* filename, const char* format="collada") const;
290
- void writeMeshes(str pathPrefix="meshes/") const;
301
+ void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false, bool enumerateAssets=false) const;
291
302
  void writeMesh(const char* filename="z.ply") const;
292
303
  void read(std::istream& is);
293
304
  Graph getGraph() const;
@@ -299,7 +310,6 @@ public:
299
310
 
300
311
  //some info
301
312
  void report(std::ostream& os=cout) const;
302
- void reportProxies(std::ostream& os=cout, double belowMargin=1., bool brief=true) const;
303
313
  void reportLimits(std::ostream& os=cout) const;
304
314
 
305
315
  private:
@@ -314,7 +324,7 @@ stdPipes(Configuration)
314
324
  //
315
325
 
316
326
  uintA framesToIndices(const FrameL& frames);
317
- uintA jointsToIndices(const JointL& joints);
327
+ FrameL dofsToFrames(const DofL& dofs);
318
328
  StringA framesToNames(const FrameL& frames);
319
329
 
320
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;