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
@@ -13,43 +13,18 @@
13
13
 
14
14
  namespace rai {
15
15
 
16
- /* A class to represent a basic function: distance between two convex (decomposed) meshes
17
- * The constructor compute the collision geometry, the other methods are mostly readouts
18
- * The default is distance between two convex meshes
19
- * Also distance between point (=mesh1) and points (=mesh2)
20
- * Also distance between point (=mesh1) and decomposed mesh (=mesh2)
21
- */
22
- struct PairCollision : NonCopyable {
16
+ struct PairCollision {
23
17
  //INPUTS
24
- rai::Mesh mesh1; //V and T will typically be initialized by reference
25
- rai::Mesh mesh2; //V and T will typically be initialized by reference
26
- const rai::Transformation* t1=0;
27
- const rai::Transformation* t2=0;
28
18
  double rad1=0., rad2=0.; ///< only kinVector and glDraw account for this; the basic collision geometry (OUTPUTS below) is computed neglecting radii!!
29
19
 
30
20
  //OUTPUTS
31
21
  double distance=0.; ///< negative=penetration
32
- arr p1, p2; ///< witness points on the shapes
33
- arr normal; ///< normal such that "<normal, p1-p2> = distance" is guaranteed (pointing from obj2 to obj1)
34
- arr simplex1; ///< simplex on obj1 defining the collision geometry
35
- arr simplex2; ///< simplex on obj2 defining the collision geometry
36
-
37
- // arr m1, m2, eig1, eig2; ///< output of marginAnalysis: mean and eigenvalues of ALL point on the objs (not only simplex) that define the collision
38
-
39
- arr poly, polyNorm;
40
-
41
- //mesh-to-mesh
42
- PairCollision(rai::Mesh& mesh1, rai::Mesh& mesh2,
43
- const rai::Transformation& t1, const rai::Transformation& t2,
44
- double rad1=0., double rad2=0.);
45
- //sdf-to-sdf
46
- PairCollision(ScalarFunction func1, ScalarFunction func2, const arr& seed);
47
-
48
- ~PairCollision() {}
49
-
50
- void write(std::ostream& os) const;
22
+ arr p1, p2; ///< witness points on the shapes
23
+ arr normal; ///< normal such that "<normal, p1-p2> = distance" is guaranteed (pointing from obj2 to obj1)
24
+ arr simp1, simp2; ///< simplices on the shapes defining the collision geometry
51
25
 
52
26
  double getDistance() { return distance-rad1-rad2; }
27
+ void write(std::ostream& os) const;
53
28
 
54
29
  // differentiable readout methods (Jp1 and Jx1 are linear and angular Jacobians of mesh1)
55
30
  void kinDistance(arr& y, arr& J, const arr& Jp1, const arr& Jp2);
@@ -59,27 +34,52 @@ struct PairCollision : NonCopyable {
59
34
  void kinPointP2(arr& y, arr& J, const arr& Jp1, const arr& Jp2, const arr& Jx1, const arr& Jx2);
60
35
  void kinCenter(arr& y, arr& J, const arr& Jp1, const arr& Jp2, const arr& Jx1, const arr& Jx2);
61
36
 
62
- void nearSupportAnalysis(double eps=1e-6); ///< analyses not only closest obj support (the simplex) but all points within a margin
37
+ protected:
38
+ bool simplexType(uint i, uint j) { return simp1.d0==i && simp2.d0==j; } //helper
39
+ };
40
+
41
+ //===========================================================================
42
+
43
+ /* A class to represent a basic function: distance between two convex (decomposed) meshes
44
+ * The constructor compute the collision geometry, the other methods are mostly readouts
45
+ * The default is distance between two convex meshes
46
+ * Also distance between point (=mesh1) and points (=mesh2)
47
+ * Also distance between point (=mesh1) and decomposed mesh (=mesh2)
48
+ */
49
+ struct PairCollision_CvxCvx : PairCollision, NonCopyable {
63
50
 
64
- private:
51
+ //mesh-to-mesh
52
+ PairCollision_CvxCvx(const arr& pts1, const arr& pts2,
53
+ const rai::Transformation& t1, const rai::Transformation& t2,
54
+ double rad1=0., double rad2=0.);
55
+ //sdf-to-sdf -- TODO: own class!
56
+ PairCollision_CvxCvx(ScalarFunction func1, ScalarFunction func2, const arr& seed);
57
+
58
+
59
+ // void nearSupportAnalysis(double eps=1e-6); ///< analyses not only closest obj support (the simplex) but all points within a margin
60
+
61
+ private:
65
62
  //wrappers of external libs
66
63
  enum CCDmethod { _ccdGJKIntersect, _ccdGJKSeparate, _ccdGJKPenetration, _ccdMPRIntersect, _ccdMPRPenetration };
67
- void libccd(rai::Mesh& m1, rai::Mesh& m2, CCDmethod method); //calls ccdMPRPenetration of libccd
68
- void GJK_sqrDistance(); //gjk_distance of libGJK
69
- bool simplexType(uint i, uint j) { return simplex1.d0==i && simplex2.d0==j; } //helper
64
+ void libccd(const arr& m1, const arr& m2, CCDmethod method); //calls ccdMPRPenetration of libccd
65
+ void GJK_sqrDistance(const arr& pts1, const arr& pts2, const rai::Transformation& t1, const rai::Transformation& t2); //gjk_distance of libGJK
70
66
  };
71
67
 
72
68
  //===========================================================================
73
69
 
74
- struct PclCollision {
75
- //OUTPUTS
76
- arr y, J;
70
+ struct PairCollision_CvxDecomp : PairCollision, NonCopyable {
71
+ PairCollision_CvxDecomp(const arr& x, Mesh& mesh,
72
+ const rai::Transformation& t1, const rai::Transformation& t2,
73
+ double rad1=0., double rad2=0.);
74
+ };
75
+
76
+ //===========================================================================
77
77
 
78
- PclCollision(const arr& x, ANN& ann,
79
- const rai::Transformation& t1, const arr& Jp1, const arr& Jx1,
80
- const rai::Transformation& t2, const arr& Jp2, const arr& Jx2,
81
- double rad1=0., double rad2=0.,
82
- bool returnVector=false);
78
+ struct PairCollision_PtPcl : PairCollision, NonCopyable {
79
+ PairCollision_PtPcl(const arr& x, ANN& ann,
80
+ const rai::Transformation& t1,
81
+ const rai::Transformation& t2,
82
+ double rad1=0., double rad2=0.);
83
83
  };
84
84
 
85
85
  //===========================================================================
@@ -16,16 +16,17 @@
16
16
  // analytic distance functions
17
17
  //
18
18
 
19
- struct SDF : ScalarFunction {
19
+ struct SDF {
20
20
  SDF(const rai::Transformation& _pose)
21
- : ScalarFunction(std::bind(&SDF::f, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)),
22
- pose(_pose) {}
21
+ : pose(_pose) {}
23
22
  ~SDF() {}
24
23
  rai::Transformation pose;
25
24
  arr lo, up;
26
25
  virtual double f(arr& g, arr& H, const arr& x);
27
26
  virtual double f_raw(arr& g, arr& H, const arr& x) { NIY; }
28
27
 
28
+ ScalarFunction f_scalar(){ return [this](arr& g, arr& H, const arr& x){ return this->f(g, H, x); }; }
29
+
29
30
  arr eval(const arr& samples);
30
31
  floatA evalFloat(const arr& samples);
31
32
  floatA evalGrid(uint d0, int d1=-1, int d2=-1);
@@ -109,7 +110,8 @@ struct DensityDisplayData {
109
110
 
110
111
  struct TensorShape : SDF {
111
112
  floatA gridData;
112
- shared_ptr<DensityDisplayData> _densityDisplayData;
113
+ // shared_ptr<DensityDisplayData> _densityDisplayData;
114
+ arr color;
113
115
 
114
116
  TensorShape(const rai::Transformation& _pose, const floatA& _data, const arr& _lo, const arr& _up)
115
117
  : SDF(_pose), gridData(_data) { lo = _lo; up = _up; }
@@ -157,4 +159,4 @@ struct PCL2Field {
157
159
 
158
160
  //===========================================================================
159
161
 
160
- extern ScalarFunction DistanceFunction_SSBox;
162
+ ScalarFunction DistanceFunction_SSBox();
@@ -3896,7 +3896,7 @@ static const int stbi__zlength_base[31] = {
3896
3896
  };
3897
3897
 
3898
3898
  static const int stbi__zlength_extra[31]=
3899
- { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 };
3899
+ {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 };
3900
3900
 
3901
3901
  static const int stbi__zdist_base[32] = { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
3902
3902
  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0
@@ -16,6 +16,7 @@ struct Render_Options {
16
16
  RAI_PARAM("Render/", bool, userShaderFiles, false)
17
17
  RAI_PARAM("Render/", bool, flatColors, false)
18
18
  RAI_PARAM("Render/", bool, useShadow, true)
19
+ RAI_PARAM("Render/", bool, polygonLines, false)
19
20
  RAI_PARAM("Render/", arr, backgroundColor, {})
20
21
  RAI_PARAM("Render/", arr, floorColor, {})
21
22
  RAI_PARAM("Render/", arr, lights, {})
@@ -25,8 +26,9 @@ enum RenderType { _solid, _shadow, _tensor, _text, _marker, _transparent, _all }
25
26
 
26
27
  struct RenderAsset{
27
28
  floatA vertices, colors, normals; //for 2D textures: colors are vertex-wise texture coordinates
28
- byteA texture;
29
- GLuint vao, vertexBuffer, colorBuffer, normalBuffer, textureBuffer;
29
+ GLuint vao, vertexBuffer, colorBuffer, normalBuffer;
30
+ shared_ptr<SharedTextureImage> _texture;
31
+ SharedTextureImage& texture(){ if(!_texture) _texture=make_shared<SharedTextureImage>(); return *_texture; }
30
32
  GLenum mode=GL_TRIANGLES;
31
33
  uint textureDim=0;
32
34
  bool initialized=false;
@@ -37,7 +39,7 @@ struct RenderAsset{
37
39
  void mesh(rai::Mesh &mesh, double avgNormalsThreshold=.9);
38
40
  void lines(const arr& lines, const arr& color);
39
41
  void pointCloud(const arr& points, const arr& color);
40
- void tensor(const floatA& vol, const arr& size={1.,1.,1.});
42
+ void tensor(const floatA& vol, const arr& size);
41
43
 
42
44
  //engine specific -> should be refactored
43
45
  void glInitialize();
@@ -92,14 +94,15 @@ struct RenderQuad {
92
94
  struct DistMarkers {
93
95
  int markerObj=-1;
94
96
  arr pos;
97
+ arr color;
95
98
  intA slices;
96
99
  void clear(){ pos.clear(); slices.clear(); }
97
100
  };
98
101
 
99
102
  struct RenderData {
100
- Mutex dataLock;
103
+ rai::Mutex dataLock;
101
104
 
102
- Render_Options opt;
105
+ rai::Render_Options opt;
103
106
 
104
107
  rai::Camera camera;
105
108
  rai::Array<std::shared_ptr<RenderItem>> items;
@@ -119,8 +122,8 @@ struct RenderData {
119
122
  GLuint shadowFramebuffer, shadowTexture;
120
123
  GLuint prog_ID, prog_Projection_W, prog_ModelT_WM, prog_eyePosition_W, prog_ShadowProjection_W, prog_useShadow, prog_shadowMap, prog_numLights, prog_lightDirection_W, prog_FlatColor, prog_textureDim, prog_textureImage;
121
124
  GLuint progShadow, progShadow_ShadowProjection_W, progShadow_ModelT_WM;
122
- GLuint progTensor, progTensor_Projection_W, progTensor_ModelT_WM, progTensor_ModelScale, progTensor_eyePosition_W, progTensor_tensorTexture;
123
- GLuint progMarker, progMarker_Projection_W, progMarker_ModelT_WM;
125
+ GLuint progTensor, progTensor_Projection_W, progTensor_ModelT_WM, progTensor_ModelScale, progTensor_eyePosition_W, progTensor_FlatColor, progTensor_tensorTexture;
126
+ GLuint progMarker, progMarker_Projection_W, progMarker_ModelT_WM, progMarker_FlatColor;
124
127
  GLuint progText, progText_color, progText_useTexColor;
125
128
  RenderFont font;
126
129
  };
@@ -132,10 +135,10 @@ struct RenderData {
132
135
 
133
136
  void addLight(const arr& pos, const arr& focus, double heightAbs=5.);
134
137
  void addAxes(double scale, const rai::Transformation& _X);
135
- void addDistMarker(const arr& a, const arr& b, int s=-1, double size=.1);
138
+ void addDistMarker(const arr& a, const arr& b, int s=-1, double size=.1, const arr& color=arr{1.,0.,1.});
136
139
  void addText(const char* text, float x, float y, float size);
137
140
  void setText(const char* text);
138
- void addQuad(const byteA& img, float x, float y, float w, float h);
141
+ int setQuad(int id, const byteA& img, float x, float y, float h);
139
142
 
140
143
  RenderData& addStandardScene(bool addFloor=true);
141
144
  RenderData& clear();
@@ -41,7 +41,7 @@ struct RenderData;
41
41
  // utility functions
42
42
  //
43
43
 
44
- void id2color(::byte rgb[3], uint id);
44
+ byteA id2color_b(uint id);
45
45
  arr id2color(uint id);
46
46
  uint color2id(::byte rgb[3]);
47
47
 
@@ -107,8 +107,8 @@ void write_png(const byteA& img, const char* file_name, bool swap_rows=true);
107
107
  struct OpenGL {
108
108
  /// @name little structs to store objects and callbacks
109
109
  struct GLHoverCall { virtual bool hoverCallback(OpenGL&) = 0; };
110
- struct GLClickCall { virtual bool clickCallback(OpenGL&) = 0; };
111
- struct GLKeyCall { virtual bool keyCallback(OpenGL&) = 0; };
110
+ struct GLClickCall { virtual bool clickCallback(OpenGL&, int button, int buttonIsDown) = 0; };
111
+ struct GLKeyCall { virtual bool keyCallback(OpenGL&, int key, int mods, bool keyIsDown) = 0; };
112
112
  struct GLScrollCall { virtual bool scrollCallback(OpenGL&, int) = 0; };
113
113
  struct GLEvent { int button, key, x, y; float dx, dy; void set(int b, int k, int _x, int _y, float _dx, float _dy) { button=b; key=k; x=_x; y=_y; dx=_dx; dy=_dy; } };
114
114
  struct GLView { double le, ri, bo, to; rai::Array<rai::RenderData*> drawers; rai::Camera camera; GLView() { le=bo=0.; ri=to=1.; } str text; };
@@ -139,15 +139,15 @@ struct OpenGL {
139
139
  int scrollCounter=0;
140
140
  byteA captureImage;
141
141
  floatA captureDepth;
142
- Mutex dataLock; //'data' means anything: member fields (camera, variables), drawers, data the drawers access
142
+ rai::Mutex dataLock; //'data' means anything: member fields (camera, variables), drawers, data the drawers access
143
143
  // uint fbo, render_buf;
144
144
  uint offscreenFramebuffer=0;
145
145
  uint offscreenColor=0;
146
146
  uint offscreenDepth=0;
147
147
  Signaler isUpdating;
148
148
  Signaler watching;
149
- OpenGLDrawOptions drawOptions;
150
- uint selectID;
149
+ rai::OpenGLDrawOptions drawOptions;
150
+ int selectID=-1;
151
151
  std::shared_ptr<rai::RenderData> _data;
152
152
 
153
153
  bool fullscreen=false; ///<window starts in fullscreenmode on the primary screen
@@ -72,6 +72,6 @@ struct PlotModule {
72
72
 
73
73
  }
74
74
 
75
- extern Singleton<rai::PlotModule> plot;
75
+ extern rai::Singleton<rai::PlotModule> plot;
76
76
 
77
77
  //===========================================================================
@@ -38,7 +38,7 @@ struct KOMO_Options {
38
38
  };
39
39
  }//namespace
40
40
 
41
- struct KOMO : NonCopyable {
41
+ struct KOMO : rai::NonCopyable {
42
42
 
43
43
  //-- the problem definition
44
44
  uint stepsPerPhase=0; ///< time slices per phase
@@ -103,9 +103,11 @@ struct KOMO : NonCopyable {
103
103
  void clearObjectives(); ///< clear all objective
104
104
  void removeObjective(const Objective* ob);
105
105
  void copyObjectives(KOMO& komoB, bool deepCopyFeatures=true);
106
+ void checkConsistency();
106
107
 
107
108
  void addContact_slide(double startTime, double endTime, const char* from, const char* to);
108
109
  void addContact_stick(double startTime, double endTime, const char* from, const char* to, double frictionCone_mu=.8);
110
+ rai::Frame* addContact_WithPoaFrame(double time, str obj, str from, double frictionCone_mu, double init_objMass, double init_POAdist=.1);
109
111
  void addContact_elasticBounce(double time, const char* from, const char* to, double elasticity=.8, double stickiness=0.);
110
112
  void addContact_ComplementarySlide(double startTime, double endTime, const char* from, const char* to);
111
113
  // void addContact_Relaxed(double startTime, double endTime, const char *from, const char* to);
@@ -163,7 +165,7 @@ struct KOMO : NonCopyable {
163
165
  void updateAndShiftPrefix(const rai::Configuration& C);
164
166
 
165
167
  //-- calling a solver
166
- std::shared_ptr<SolverReturn> solve(double addInitializationNoise=.01, int splineKnots=-1, const rai::OptOptions& options=DEFAULT_OPTIONS); ///< run the solver (same as run_prepare(); run(); )
168
+ std::shared_ptr<SolverReturn> solve(double addInitializationNoise=.01, int splineKnots=-1, const rai::OptOptions& options=*DEFAULT_OPTIONS); ///< run the solver (same as run_prepare(); run(); )
167
169
  void reset(); ///< reset the dual variables and feature value buffers (always needed when adding/changing objectives before continuing an optimization)
168
170
 
169
171
  //advanced
@@ -202,7 +204,7 @@ struct KOMO : NonCopyable {
202
204
  int view_slice(uint t, bool pause=false);
203
205
  void view_close();
204
206
  std::shared_ptr<rai::ConfigurationViewer> get_viewer();
205
- void set_viewer(std::shared_ptr<rai::ConfigurationViewer>& _viewer);
207
+ void set_viewer(const std::shared_ptr<rai::ConfigurationViewer>& _viewer);
206
208
 
207
209
 
208
210
  void plotTrajectory();
@@ -216,6 +218,7 @@ struct KOMO : NonCopyable {
216
218
  //
217
219
 
218
220
  rai::Frame* addFrameDof(const char* name, const char* parent, rai::JointType jointType, bool stable, const char* originFrameName=0, rai::Frame* originFrame=0, const rai::Transformation& relOrigin=0);
221
+ void initFrameDof(rai::Frame* f, rai::Frame *q0Frame);
219
222
  void addForceExchangeDofs(const arr& times, const char* onto, const char* from, rai::ForceExchangeType _type, const arr& initPoa={}, const arr& initForce={});
220
223
  void set_x(const arr& x, const uintA& selectedConfigurationsOnly= {}); ///< set the state trajectory of all configurations
221
224
  private:
@@ -57,7 +57,7 @@ struct KOMO_SubNLP : NLP {
57
57
  };
58
58
 
59
59
  //this treats EACH PART and force-dof as its own variable
60
- struct Conv_KOMO_FactoredNLP : NLP_Factored {
60
+ struct Conv_KOMO2FactoredNLP : NLP_Factored {
61
61
  KOMO& komo;
62
62
 
63
63
  //redundant to NLP_Factored::variableDims -- but sub can SUBSELECT!; in addition: dofs and names
@@ -75,7 +75,7 @@ struct Conv_KOMO_FactoredNLP : NLP_Factored {
75
75
  VariableIndexEntry& vars(uint var_id) { if(subVars.N) return __variableIndex(subVars(var_id)); else return __variableIndex(var_id); }
76
76
  FeatureIndexEntry& feats(uint feat_id) { if(subVars.N) return __featureIndex(subFeats(feat_id)); else return __featureIndex(feat_id); }
77
77
 
78
- Conv_KOMO_FactoredNLP(KOMO& _komo, const rai::Array<DofL>& varDofs);
78
+ Conv_KOMO2FactoredNLP(KOMO& _komo, const rai::Array<DofL>& varDofs);
79
79
 
80
80
  virtual void subSelect(const uintA& activeVariables, const uintA& conditionalVariables);
81
81
  virtual uint numTotalVariables() { return __variableIndex.N; }
@@ -16,6 +16,7 @@
16
16
  struct ManipulationHelper {
17
17
  std::shared_ptr<KOMO> komo;
18
18
  str info;
19
+ rai::Configuration *Cviewer=0;
19
20
 
20
21
  //solver buffers:
21
22
  std::shared_ptr<SolverReturn> ret;
@@ -31,7 +32,7 @@ struct ManipulationHelper {
31
32
  void setup_sequence(rai::Configuration& C, uint K, double homing_scale=1e-2, double velocity_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
32
33
  void setup_motion(rai::Configuration& C, uint K, uint steps_per_phase, double homing_scale=0., double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
33
34
  void setup_pick_and_place_waypoints(rai::Configuration& C, const char* gripper, const char* obj, double homing_scale=1e-2, double velocity_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
34
- void setup_point_to_point_motion(rai::Configuration& C, const arr& q1, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
35
+ void setup_point_to_point_motion(rai::Configuration& C, const arr& q1, uint steps_per_phase, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
35
36
  void setup_point_to_point_rrt(rai::Configuration& C, const arr& q0, const arr& q1, const StringA& explicitCollisionPairs);
36
37
 
37
38
  void add_stable_frame(rai::JointType type, const char* parent, const char* name, const char* initName=0, rai::Frame* initFrame=0, double markerSize=-1.);
@@ -47,6 +48,10 @@ struct ManipulationHelper {
47
48
  void freeze_joint(const arr& time_interval, const StringA& joints);
48
49
  void freeze_relativePose(const arr& time_interval, str to, str from);
49
50
 
51
+ void action_pick(str action, double time, str gripper, str obj); //action can be 'pick_touch', 'pick_box'
52
+ void action_place_straightOn(str action, double time, str obj, str table); //action must be 'place_straightOn'
53
+ void action_place_box(str action, double time, str obj, str table, str gripper, str place_direction); //action can be 'place_box'
54
+
50
55
  void snap_switch(double time, str parent, str obj);
51
56
 
52
57
  void target_position();
@@ -63,7 +68,7 @@ struct ManipulationHelper {
63
68
  arr sample(const char* sampleMethod=0, int verbose=1);
64
69
  void debug(bool listObjectives=true, bool plotOverTime=false);
65
70
 
66
- std::shared_ptr<ManipulationHelper> sub_motion(uint phase, bool fixEnd=true, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=false, const StringA& activeDofs={});
71
+ std::shared_ptr<ManipulationHelper> sub_motion(uint phase, uint steps_per_phase=50, bool fixEnd=true, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true, const StringA& activeDofs={});
67
72
  std::shared_ptr<rai::RRT_PathFinder> sub_rrt(uint phase, const StringA& explicitCollisionPairs= {}, const StringA& activeDofs={});
68
73
 
69
74
  void play(rai::Configuration& C, double duration=1.);
@@ -14,6 +14,11 @@
14
14
 
15
15
  #include "../Optim/NLP.h"
16
16
 
17
+ namespace rai{
18
+ std::shared_ptr<NLP> make_NLP_Problem(str problem={});
19
+ StringA get_NLP_Problem_names();
20
+ }
21
+
17
22
  shared_ptr<KOMO> problem_IK();
18
23
  shared_ptr<KOMO> problem_IKobstacle();
19
24
  shared_ptr<KOMO> problem_IKtorus();
@@ -22,15 +27,6 @@ shared_ptr<KOMO> problem_StableSphere();
22
27
 
23
28
  //===========================================================================
24
29
 
25
- struct Problem{
26
- std::shared_ptr<KOMO> komo;
27
- std::shared_ptr<NLP> nlp;
28
-
29
- void load(str problem={});
30
- };
31
-
32
- //===========================================================================
33
-
34
30
  //a set of spheres, confined in a box, and no collision, minimizing their height..
35
31
  struct SpherePacking : NLP{
36
32
  arr x; //position of spheres
@@ -42,8 +42,8 @@ struct F_HingeXTorque : Feature {
42
42
  };
43
43
 
44
44
  struct F_TotalForce : Feature {
45
- double gravity=9.81;
46
- F_TotalForce(bool _zeroGravity=false);
45
+ arr gravity;
46
+ F_TotalForce(const arr& _gravity={0., 0., 9.81}) : gravity(_gravity) {}
47
47
  virtual void phi2(arr& y, arr& J, const FrameL& F);
48
48
  virtual uint dim_phi(const FrameL& C) { return 6; }
49
49
  };
@@ -98,7 +98,7 @@ struct F_fex_POAAtFrame : Feature {
98
98
 
99
99
  struct F_fex_ForceInFrameCone : Feature {
100
100
  double mu;
101
- F_fex_ForceInFrameCone(double _mu=.5) : mu(_mu) {}
101
+ F_fex_ForceInFrameCone(double _mu=.8) : mu(_mu) {}
102
102
  arr phi(const FrameL& F);
103
103
  uint dim_phi(const FrameL& F) { return 1; }
104
104
  };
@@ -14,43 +14,50 @@
14
14
 
15
15
  namespace rai {
16
16
 
17
+ struct DepthNoiseOptions {
18
+ RAI_PARAM("DepthNoise/", double, binocular_baseline, .03)
19
+ RAI_PARAM("DepthNoise/", int, depth_smoothing, 1)
20
+ RAI_PARAM("DepthNoise/", double, noise_all, .02)
21
+ RAI_PARAM("DepthNoise/", double, noise_wide, 4.)
22
+ RAI_PARAM("DepthNoise/", double, noise_local, .4)
23
+ RAI_PARAM("DepthNoise/", double, noise_pixel, .04)
24
+ };
25
+
17
26
  struct CameraView : ConfigurationViewer {
18
27
 
19
- /*! describes a sensor from which we can take 'images' within the simulation (e.g.: kinect, suctionRingView, etc) */
20
- struct Sensor {
21
- rai::String name;
22
- rai::Camera cam; ///< this includes the transformation X
23
- uint width=640, height=480;
24
- rai::Frame *frame=0;
25
- Sensor() {}
26
- rai::Transformation& pose() { return cam.X; }
27
- arr getFxycxy() { return cam.getFxycxy(width, height); }
28
+ /*! a camera attached (and defined by the attributes of) a Frame */
29
+ struct CameraFrame {
30
+ rai::Frame& frame;
31
+ rai::Camera cam;
32
+ rai::Vector offset=0;
33
+ CameraFrame(rai::Frame& _frame) : frame(_frame) {}
28
34
  };
29
35
 
30
36
  //-- description of world configuration
31
- rai::Array<Sensor> sensors; //the list of sensors
37
+ rai::Array<shared_ptr<CameraFrame>> cameras; //the list of sensors
32
38
 
33
39
  enum RenderMode { all, seg, visuals };
34
40
 
35
41
  //-- run parameter
36
- Sensor* currentSensor=0;
42
+ shared_ptr<CameraFrame> currentCamera;
37
43
  RenderMode renderMode=all;
38
44
  byteA frameIDmap;
45
+ shared_ptr<DepthNoiseOptions> opt;
39
46
 
40
47
  //-- evaluation outputs
41
48
  CameraView(const rai::Configuration& _C, bool _offscreen=true);
42
49
  ~CameraView() {}
43
50
 
44
51
  //-- loading the configuration: the meshes, the robot model, the tote, the sensors; all ends up in K
45
- Sensor& addSensor(rai::Frame* frame, uint width, uint height, double focalLength=-1., double orthoAbsHeight=-1., const arr& zRange= {}, const char* backgroundImageFile=0);
46
- Sensor& addSensor(rai::Frame* frame); //read everything from the frame attributes
47
- Sensor& selectSensor(rai::Frame* frame); //set the OpenGL sensor
52
+ CameraFrame& setCamera(rai::Frame* frame, uint width, uint height, double focalLength=-1., double orthoAbsHeight=-1., const arr& zRange= {}, const char* backgroundImageFile=0);
53
+ CameraFrame& setCamera(rai::Frame* frame); //read everything from the frame attributes
54
+ CameraFrame& selectSensor(rai::Frame* frame); //set the OpenGL sensor
48
55
 
49
- void computeImageAndDepth(byteA& image, floatA& depth);
56
+ void computeImageAndDepth(byteA& image, floatA& depth, bool _simulateDepthNoise=false);
50
57
  byteA computeSegmentationImage();
51
58
  uintA computeSegmentationID();
52
59
 
53
- arr getFxycxy() { CHECK(currentSensor, "no sensor selected yet"); return currentSensor->getFxycxy(); }
60
+ arr getFxycxy() { CHECK(currentCamera, "no sensor selected yet"); return currentCamera->cam.getFxycxy(); }
54
61
 
55
62
  private:
56
63
  void updateCamera();
@@ -58,25 +65,6 @@ struct CameraView : ConfigurationViewer {
58
65
 
59
66
  //===========================================================================
60
67
 
61
- struct Sim_CameraView : Thread {
62
- Var<rai::Configuration> model;
63
-
64
- //-- outputs
65
- Var<byteA> color;
66
- Var<floatA> depth;
67
-
68
- //-- internal
69
- CameraView V;
70
-
71
- Sim_CameraView(Var<rai::Configuration>& _kin,
72
- Var<byteA> _color,
73
- Var<floatA> _depth,
74
- double beatIntervalSec=-1., const char* _cameraFrameName=nullptr, bool _idColors=false, const byteA& _frameIDmap= {});
75
- ~Sim_CameraView();
76
-
77
- void step();
78
-
79
- arr getFxycxy();
80
- };
68
+ void simulateDepthNoise(floatA& depth, const floatA& depth2, const arr& fxycxy, shared_ptr<DepthNoiseOptions> opt);
81
69
 
82
70
  }
@@ -13,11 +13,11 @@
13
13
 
14
14
  namespace rai {
15
15
 
16
- struct PairCollision;
16
+ struct PairCollision_CvxCvx;
17
17
 
18
18
  //===========================================================================
19
19
 
20
- enum ForceExchangeType : int { FXT_none=-1, FXT_poa=0, FXT_torque=1, FXT_force, FXT_forceZ, FXT_poaOnly };
20
+ enum ForceExchangeType : int { FXT_none=-1, FXT_poa=0, FXT_wrench=1, FXT_force, FXT_forceZ, FXT_poaOnly };
21
21
 
22
22
  ///Description of a ForceExchange
23
23
  struct ForceExchangeDof : Dof, NonCopyable {
@@ -26,12 +26,12 @@ struct ForceExchangeDof : Dof, NonCopyable {
26
26
  double scale=1.;
27
27
  double force_to_torque = 0.;
28
28
  private:
29
- PairCollision* __coll=0;
29
+ PairCollision_CvxCvx* __coll=0;
30
30
  public:
31
31
 
32
- arr poa;
33
- arr force;
34
- arr torque;
32
+ arr poa; //in world coordinates!
33
+ arr force; //in world coordinates, acting at the poa
34
+ arr torque; //in world coordinates, acting at the poa
35
35
 
36
36
  ForceExchangeDof(Frame& a, Frame& b, ForceExchangeType _type, const ForceExchangeDof* copyContact=nullptr);
37
37
  ~ForceExchangeDof();
@@ -50,7 +50,7 @@ struct ForceExchangeDof : Dof, NonCopyable {
50
50
  virtual void kinForce(arr& y, arr& J) const;
51
51
  virtual void kinTorque(arr& y, arr& J) const;
52
52
 
53
- PairCollision* coll();
53
+ PairCollision_CvxCvx* coll();
54
54
 
55
55
  virtual void write(ostream& os) const;
56
56
  };
@@ -49,7 +49,7 @@ struct Feature {
49
49
  // Value eval(const FrameL& F) { arr y, J; eval(y, J, F); return Value(y, J); }
50
50
  arr eval(const rai::Configuration& C) { return eval(getFrames(C)); }
51
51
  uint dim(const FrameL& F) { uint d=dim_phi(F); return applyLinearTrans_dim(d); }
52
- fct asFct(const FrameL& F);
52
+ VectorFunction asFct(const FrameL& F);
53
53
 
54
54
  virtual const char* typeString() { return rai::niceTypeidName(typeid(*this)); }
55
55
  virtual rai::String shortTag(const rai::Configuration& C);