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.
- robotic/DataGen.pyi +11 -1
- robotic/__init__.py +8 -1
- robotic/_robotic.pyi +236 -114
- robotic/_robotic.so +0 -0
- robotic/algo.pyi +17 -0
- robotic/include/rai/{Geo → Algo}/Lewiner/MarchingCubes.h +0 -29
- robotic/include/rai/Algo/SplineCtrlFeed.h +1 -1
- robotic/include/rai/Algo/marching_cubes.h +9 -0
- robotic/include/rai/Algo/rungeKutta.h +2 -2
- robotic/include/rai/Algo/spline.h +4 -8
- robotic/include/rai/Algo/trilinear.h +10 -0
- robotic/include/rai/Control/CtrlSolver.h +1 -1
- robotic/include/rai/Control/TimingMPC.h +2 -2
- robotic/include/rai/Core/array.h +99 -64
- robotic/include/rai/Core/array.ipp +290 -136
- robotic/include/rai/Core/arrayDouble.h +36 -26
- robotic/include/rai/Core/defines.h +7 -9
- robotic/include/rai/Core/graph.h +33 -37
- robotic/include/rai/Core/h5.h +3 -1
- robotic/include/rai/Core/thread.h +12 -12
- robotic/include/rai/Core/util.h +58 -79
- robotic/include/rai/DataGen/rndStableConfigs.h +1 -0
- robotic/include/rai/DataGen/shapenetGrasps.h +5 -3
- robotic/include/rai/Geo/depth2PointCloud.h +2 -0
- robotic/include/rai/Geo/geo.h +24 -16
- robotic/include/rai/Geo/{fclInterface.h → i_fcl.h} +3 -1
- robotic/include/rai/Geo/mesh.h +22 -16
- robotic/include/rai/Geo/pairCollision.h +43 -43
- robotic/include/rai/Geo/signedDistanceFunctions.h +7 -5
- robotic/include/rai/Geo/stb_image.h +1 -1
- robotic/include/rai/Gui/RenderData.h +12 -9
- robotic/include/rai/Gui/opengl.h +6 -6
- robotic/include/rai/Gui/plot.h +1 -1
- robotic/include/rai/KOMO/komo.h +6 -3
- robotic/include/rai/KOMO/komo_NLP.h +2 -2
- robotic/include/rai/KOMO/manipTools.h +7 -2
- robotic/include/rai/KOMO/testProblems_KOMO.h +5 -9
- robotic/include/rai/Kin/F_forces.h +3 -3
- robotic/include/rai/Kin/cameraview.h +24 -36
- robotic/include/rai/Kin/dof_forceExchange.h +7 -7
- robotic/include/rai/Kin/feature.h +1 -1
- robotic/include/rai/Kin/frame.h +24 -26
- robotic/include/rai/Kin/{kin_physx.h → i_Physx.h} +11 -10
- robotic/include/rai/Kin/kin.h +30 -20
- robotic/include/rai/Kin/proxy.h +1 -1
- robotic/include/rai/Kin/simulation.h +20 -10
- robotic/include/rai/Kin/viewer.h +14 -1
- robotic/include/rai/LGP/LGP_TAMP_Abstraction.h +33 -0
- robotic/include/rai/LGP/LGP_Tool.h +4 -25
- robotic/include/rai/LGP/LGP_computers.h +1 -1
- robotic/include/rai/LGP/LGP_computers2.h +196 -0
- robotic/include/rai/LGP/NLP_Descriptor.h +5 -0
- robotic/include/rai/Logic/folWorld.h +1 -1
- robotic/include/rai/Logic/treeSearchDomain.h +2 -2
- robotic/include/rai/Optim/BayesOpt.h +13 -6
- robotic/include/rai/Optim/CMA/boundary_transformation.h +73 -0
- robotic/include/rai/Optim/CMA/cmaes.h +175 -0
- robotic/include/rai/Optim/CMA/cmaes_interface.h +68 -0
- robotic/include/rai/Optim/GlobalIterativeNewton.h +7 -3
- robotic/include/rai/Optim/NLP.h +23 -7
- robotic/include/rai/Optim/NLP_GraphSolver.h +1 -1
- robotic/include/rai/Optim/NLP_Solver.h +5 -5
- robotic/include/rai/Optim/constrained.h +4 -4
- robotic/include/rai/Optim/{opt-ceres.h → i_Ceres.h} +2 -2
- robotic/include/rai/Optim/{opt-nlopt.h → i_NLopt.h} +4 -0
- robotic/include/rai/Optim/lagrangian.h +7 -5
- robotic/include/rai/Optim/liblbfgs/liblbfgs.h +755 -0
- robotic/include/rai/Optim/m_EvoStrategies.h +114 -0
- robotic/include/rai/Optim/{gradient.h → m_Gradient.h} +13 -12
- robotic/include/rai/Optim/m_LBFGS.h +21 -0
- robotic/include/rai/Optim/m_LeastSquaresZeroOrder.h +104 -0
- robotic/include/rai/Optim/m_LocalGreedy.h +31 -0
- robotic/include/rai/Optim/m_NelderMead.h +23 -0
- robotic/include/rai/Optim/{newton.h → m_Newton.h} +7 -4
- robotic/include/rai/Optim/{SlackGaussNewton.h → m_SlackGaussNewton.h} +0 -10
- robotic/include/rai/Optim/options.h +8 -7
- robotic/include/rai/Optim/primalDual.h +10 -6
- robotic/include/rai/Optim/testProblems_Opt.h +25 -19
- robotic/include/rai/Optim/utils.h +16 -85
- robotic/include/rai/PathAlgos/ConfigurationProblem.h +3 -2
- robotic/include/rai/PathAlgos/RRT_PathFinder.h +2 -2
- robotic/include/rai/Perception/pcl.h +10 -10
- robotic/include/rai/Perception/surfels.h +1 -1
- robotic/include/rai/Search/TreeSearchNode.h +1 -1
- robotic/include/rai/ry/py-algo.h +17 -0
- robotic/include/rai/ry/types.h +4 -2
- robotic/librai.so +0 -0
- robotic/manipulation.py +5 -7
- robotic/meshTool +0 -0
- robotic/mujoco-import.py +8 -0
- robotic/rai-robotModels/g1/g1.g +11 -2
- robotic/rai-robotModels/g1/g1_29dof_conv.yml +64 -0
- robotic/rai-robotModels/g1/g1_clean.g +38 -73
- robotic/rai-robotModels/g1/meshes/head_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_elbow_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_hip_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_knee_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_rubber_hand.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/logo_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/pelvis.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/pelvis_contour_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_elbow_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_hip_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_knee_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_rubber_hand.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/torso_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/waist_roll_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/waist_support_link.h5 +0 -0
- robotic/rai-robotModels/g1/meshes/waist_yaw_link.h5 +0 -0
- robotic/rai-robotModels/objects/shelf.g +1 -1
- robotic/rai-robotModels/panda/meshes/finger.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/hand.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link0.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link1.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link2.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link3.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link4.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link5.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link6.h5 +0 -0
- robotic/rai-robotModels/panda/meshes/link7.h5 +0 -0
- robotic/rai-robotModels/panda/panda.g +10 -10
- robotic/rai-robotModels/panda/panda_arm_hand_conv.g +24 -0
- robotic/rai-robotModels/panda/panda_arm_hand_conv.yml +24 -0
- robotic/rai-robotModels/panda/panda_clean.g +21 -45
- robotic/rai-robotModels/panda/panda_gripper.g +5 -7
- robotic/rai-robotModels/panda/panda_withoutCollisionModels.g +3 -11
- robotic/rai-robotModels/pr2/meshes/base.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/base_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/caster.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/elbow_flex.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/elbow_flex_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/forearm.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/forearm_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/forearm_roll.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/gripper_palm.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/gripper_palm_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/head_pan.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/head_pan_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/head_tilt.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/head_tilt_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/l_finger.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/l_finger_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/l_finger_tip.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/l_finger_tip_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/shoulder_lift.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/shoulder_lift_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/shoulder_pan.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/shoulder_pan_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/tilting_hokuyo.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/tilting_hokuyo_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/torso_lift.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/torso_lift_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/upper_arm.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/upper_arm_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/upper_arm_roll.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/upper_arm_roll_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/wheel.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/wheel_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/wrist_color.png +0 -0
- robotic/rai-robotModels/pr2/meshes/wrist_flex.h5 +0 -0
- robotic/rai-robotModels/pr2/meshes/wrist_roll.h5 +0 -0
- robotic/rai-robotModels/pr2/pr2.g +12 -12
- robotic/rai-robotModels/pr2/pr2_clean.g +122 -118
- robotic/rai-robotModels/pr2/pr2_conv.g +218 -0
- robotic/rai-robotModels/pr2/pr2_modifications.g +2 -2
- robotic/rai-robotModels/ranger/meshes/ranger_mini3.h5 +0 -0
- robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.h5 +0 -0
- robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.h5 +0 -0
- robotic/rai-robotModels/ranger/ranger.g +33 -0
- robotic/rai-robotModels/ranger/ranger_clean.g +18 -0
- robotic/rai-robotModels/ranger/ranger_mini_conv.g +14 -0
- robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_base_link.h5 +0 -0
- robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_finger.h5 +0 -0
- robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_knuckle.h5 +0 -0
- robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_finger.h5 +0 -0
- robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_outer_knuckle.h5 +0 -0
- robotic/rai-robotModels/robotiq/robotiq.g +2 -2
- robotic/rai-robotModels/robotiq/robotiq_arg2f_85_model_conv.yml +19 -0
- robotic/rai-robotModels/robotiq/robotiq_clean.g +16 -16
- robotic/rai-robotModels/scenarios/ballFinger.g +2 -2
- robotic/rai-robotModels/scenarios/liftRing.g +2 -2
- robotic/rai-robotModels/scenarios/pandaFloatingGripper.g +1 -1
- robotic/rai-robotModels/scenarios/pandaSingle.g +1 -1
- robotic/rai-robotModels/scenarios/panda_fixRobotiq.g +3 -3
- robotic/rai-robotModels/tests/arm.g +18 -19
- robotic/rai-robotModels/tests/compound.g +3 -6
- robotic/rai-robotModels/ur10/meshes/base.h5 +0 -0
- robotic/rai-robotModels/ur10/meshes/forearm.h5 +0 -0
- robotic/rai-robotModels/ur10/meshes/shoulder.h5 +0 -0
- robotic/rai-robotModels/ur10/meshes/upperarm.h5 +0 -0
- robotic/rai-robotModels/ur10/meshes/wrist1.h5 +0 -0
- robotic/rai-robotModels/ur10/meshes/wrist2.h5 +0 -0
- robotic/rai-robotModels/ur10/meshes/wrist3.h5 +0 -0
- robotic/rai-robotModels/ur10/ur10.g +2 -2
- robotic/rai-robotModels/ur10/ur10_clean.g +8 -8
- robotic/rai-robotModels/ur10/ur10_conv.g +17 -0
- robotic/ry-h5info +3 -8
- robotic/ry-test +6 -5
- robotic/ry-urdfConvert.py +74 -0
- robotic/ry-view +28 -6
- robotic/src/__init__.py +0 -0
- robotic/src/cleanMeshes.py +59 -0
- robotic/src/h5_helper.py +46 -0
- robotic/src/h5_helper.py~ +42 -0
- robotic/src/mesh_helper.py +395 -0
- robotic/src/meshlabFilters.mlx +20 -0
- robotic/src/mujoco_io.py +242 -0
- robotic/src/urdf_io.py +237 -0
- robotic/src/yaml_helper.py +29 -0
- robotic/version.py +1 -1
- {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-h5info +3 -8
- {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-test +6 -5
- robotic-0.3.4.dev5.data/scripts/ry-urdfConvert.py +74 -0
- robotic-0.3.4.dev5.data/scripts/ry-view +46 -0
- {robotic-0.2.8.dev4.dist-info → robotic-0.3.4.dev5.dist-info}/METADATA +20 -23
- robotic-0.3.4.dev5.dist-info/RECORD +386 -0
- {robotic-0.2.8.dev4.dist-info → robotic-0.3.4.dev5.dist-info}/WHEEL +1 -1
- robotic/nlp.py +0 -113
- robotic/rai-robotModels/baxter/baxter.g +0 -49
- robotic/rai-robotModels/baxter/baxter_clean.g +0 -116
- robotic/rai-robotModels/baxter/baxter_clean2.g +0 -205
- robotic/rai-robotModels/baxter/baxter_clean3.g +0 -223
- robotic/rai-robotModels/baxter/baxter_description/meshes/base/PEDESTAL.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/base/pedestal_link_collision.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/head/H0.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/head/H1.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/lower_elbow/E1.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/lower_forearm/W1.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/lower_shoulder/S1.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/torso/base_link_collision.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/upper_elbow/E0.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/upper_forearm/W0.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/upper_shoulder/S0.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_description/meshes/wrist/W2.ply +0 -0
- robotic/rai-robotModels/baxter/baxter_new.g +0 -53
- robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/electric_gripper_base.ply +0 -0
- robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/extended_narrow.ply +0 -0
- robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/half_round_tip.ply +0 -0
- robotic/rai-robotModels/baxter/rethink_ee_description/meshes/electric_gripper/fingers/paddle_tip.ply +0 -0
- robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_base.ply +0 -0
- robotic/rai-robotModels/baxter/rethink_ee_description/meshes/pneumatic_gripper/pneumatic_gripper_w_cup.ply +0 -0
- robotic/rai-robotModels/g1/meshes/head_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_ankle_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_elbow_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_index_0_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_index_1_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_middle_0_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_middle_1_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_palm_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_thumb_0_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_thumb_1_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hand_thumb_2_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hip_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hip_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_hip_yaw_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_knee_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_rubber_hand.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_shoulder_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_shoulder_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_shoulder_yaw_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_roll_rubber_hand.ply +0 -0
- robotic/rai-robotModels/g1/meshes/left_wrist_yaw_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/logo_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/pelvis.ply +0 -0
- robotic/rai-robotModels/g1/meshes/pelvis_contour_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_ankle_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_ankle_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_elbow_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_index_0_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_index_1_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_middle_0_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_middle_1_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_palm_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_thumb_0_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_thumb_1_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hand_thumb_2_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hip_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hip_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_hip_yaw_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_knee_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_rubber_hand.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_shoulder_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_shoulder_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_shoulder_yaw_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_pitch_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_roll_rubber_hand.ply +0 -0
- robotic/rai-robotModels/g1/meshes/right_wrist_yaw_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/torso_constraint_L_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/torso_constraint_L_rod_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/torso_constraint_R_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/torso_constraint_R_rod_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/torso_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/waist_constraint_L.ply +0 -0
- robotic/rai-robotModels/g1/meshes/waist_constraint_R.ply +0 -0
- robotic/rai-robotModels/g1/meshes/waist_roll_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/waist_support_link.ply +0 -0
- robotic/rai-robotModels/g1/meshes/waist_yaw_link.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/finger.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/hand.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link0.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link1.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link2.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link3.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link4.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link5.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link6.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/collision/link7.stl +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO.sh +0 -10
- robotic/rai-robotModels/panda/franka_description/meshes/visual/HOWTO2.sh +0 -7
- robotic/rai-robotModels/panda/franka_description/meshes/visual/convMeshes.mlx +0 -38
- robotic/rai-robotModels/panda/franka_description/meshes/visual/finger.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/hand.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link0.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link1.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link2.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link3.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link4.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link5.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link6.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/link7.ply +0 -0
- robotic/rai-robotModels/panda/franka_description/meshes/visual/script.mlx +0 -28
- robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/base_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/caster_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/pr2_wheel.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/base_v0/wheel.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/forearm.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_flex.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/forearm_v0/wrist_roll_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/gripper_palm.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/gripper_v0/l_finger_tip.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_pan_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/head_v0/head_tilt_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_lift.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_pan.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/shoulder_yaw.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/shoulder_v0/upper_arm_roll_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/hok_tilt.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/tilting_laser_v0/tilting_hokuyo_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/torso_v0/torso_lift_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/elbow_flex.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll_L.ply +0 -0
- robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/upper_arm.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link_x.ply +0 -10
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_finger.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_inner_knuckle.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_finger.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_outer_knuckle.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_pad.ply +0 -0
- robotic/rai-robotModels/robotiq/meshes/visual/robotiq_gripper_coupling.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Base.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Forearm.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Shoulder.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/UpperArm.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist1.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist2.ply +0 -0
- robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist3.ply +0 -0
- robotic/ry-urdf2rai +0 -222
- robotic/ry-urdf2yaml +0 -250
- robotic-0.2.8.dev4.data/scripts/ry-urdf2rai +0 -222
- robotic-0.2.8.dev4.data/scripts/ry-urdf2yaml +0 -250
- robotic-0.2.8.dev4.data/scripts/ry-view +0 -24
- robotic-0.2.8.dev4.dist-info/RECORD +0 -413
- /robotic/include/rai/{Geo → Algo}/Lewiner/LookUpTable.h +0 -0
- /robotic/include/rai/Geo/{assimpInterface.h → i_assimp.h} +0 -0
- /robotic/include/rai/Kin/{kin_bullet.h → i_Bullet.h} +0 -0
- /robotic/include/rai/Kin/{kin_feather.h → i_Feather.h} +0 -0
- /robotic/include/rai/Kin/{kin_ode.h → i_Ode.h} +0 -0
- /robotic/include/rai/Optim/{opt-ipopt.h → i_Ipopt.h} +0 -0
- /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
- {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-bot +0 -0
- {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-info +0 -0
- {robotic-0.2.8.dev4.data → robotic-0.3.4.dev5.data}/scripts/ry-meshTool +0 -0
- {robotic-0.2.8.dev4.dist-info → robotic-0.3.4.dev5.dist-info/licenses}/LICENSE +0 -0
- {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
|
-
|
|
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;
|
|
33
|
-
arr normal;
|
|
34
|
-
arr
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
const rai::Transformation&
|
|
81
|
-
|
|
82
|
-
|
|
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
|
|
19
|
+
struct SDF {
|
|
20
20
|
SDF(const rai::Transformation& _pose)
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
{
|
|
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
|
-
|
|
29
|
-
|
|
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
|
|
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
|
-
|
|
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();
|
robotic/include/rai/Gui/opengl.h
CHANGED
|
@@ -41,7 +41,7 @@ struct RenderData;
|
|
|
41
41
|
// utility functions
|
|
42
42
|
//
|
|
43
43
|
|
|
44
|
-
|
|
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
|
|
111
|
-
struct GLKeyCall { virtual bool keyCallback(OpenGL
|
|
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
|
-
|
|
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
|
robotic/include/rai/Gui/plot.h
CHANGED
robotic/include/rai/KOMO/komo.h
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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=
|
|
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
|
-
|
|
46
|
-
F_TotalForce(
|
|
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=.
|
|
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
|
-
/*!
|
|
20
|
-
struct
|
|
21
|
-
rai::
|
|
22
|
-
rai::Camera cam;
|
|
23
|
-
|
|
24
|
-
rai::Frame
|
|
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<
|
|
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
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
16
|
+
struct PairCollision_CvxCvx;
|
|
17
17
|
|
|
18
18
|
//===========================================================================
|
|
19
19
|
|
|
20
|
-
enum ForceExchangeType : int { FXT_none=-1, FXT_poa=0,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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);
|