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
robotic/include/rai/Kin/frame.h
CHANGED
|
@@ -97,7 +97,7 @@ struct Frame : NonCopyable {
|
|
|
97
97
|
|
|
98
98
|
//attachments to the frame
|
|
99
99
|
Joint* joint=nullptr; ///< this frame is an articulated joint
|
|
100
|
-
Shape
|
|
100
|
+
shared_ptr<Shape> shape; ///< this frame has a (collision or visual) geometry
|
|
101
101
|
Inertia* inertia=nullptr; ///< this frame has inertia (is a mass)
|
|
102
102
|
//TODO have a single list of all attached dofs (also joint)
|
|
103
103
|
Array<ForceExchangeDof*> forces; ///< this frame exchanges forces with other frames
|
|
@@ -116,14 +116,14 @@ struct Frame : NonCopyable {
|
|
|
116
116
|
//accessors to transformations
|
|
117
117
|
const Transformation& ensure_X();
|
|
118
118
|
const Transformation& get_Q() const;
|
|
119
|
-
const Transformation& get_X()
|
|
119
|
+
const Transformation& get_X() { return ensure_X(); }
|
|
120
120
|
Transformation_Xtoken set_X() { return Transformation_Xtoken(*this); }
|
|
121
121
|
Transformation_Qtoken set_Q();
|
|
122
122
|
|
|
123
123
|
//structural operations
|
|
124
124
|
Frame& setParent(Frame* _parent, bool keepAbsolutePose_and_adaptRelativePose=false, bool checkForLoop=false);
|
|
125
125
|
Frame& unLink();
|
|
126
|
-
Frame* insertPreLink(const rai::Transformation& A=0);
|
|
126
|
+
Frame* insertPreLink(const rai::Transformation& A=0, const char* postfix="_origin");
|
|
127
127
|
Frame* insertPostLink(const rai::Transformation& B=0);
|
|
128
128
|
void makeRoot(bool untilPartBreak=true);
|
|
129
129
|
|
|
@@ -146,8 +146,9 @@ struct Frame : NonCopyable {
|
|
|
146
146
|
|
|
147
147
|
//composed object manipulation
|
|
148
148
|
Transformation transformToDiagInertia(bool transformOwnMesh=false);
|
|
149
|
-
Frame& computeCompoundInertia(
|
|
149
|
+
Frame& computeCompoundInertia();
|
|
150
150
|
Frame& convertDecomposedShapeToChildFrames();
|
|
151
|
+
bool standardizeInertias(bool recomputeInertias=true, bool _transformToDiagInertia=false);
|
|
151
152
|
|
|
152
153
|
//I/O
|
|
153
154
|
void read(const Graph& ats);
|
|
@@ -168,26 +169,26 @@ struct Frame : NonCopyable {
|
|
|
168
169
|
Frame& setMesh(const arr& verts, const uintA& tris, const byteA& colors={}, const uintA& cvxParts={});
|
|
169
170
|
Frame& setMeshFile(str file, double scale=1.);
|
|
170
171
|
Frame& setTextureFile(str imgFile, const arr& texCoords={});
|
|
171
|
-
Frame& setLines(const arr& verts, const byteA& colors={});
|
|
172
|
+
Frame& setLines(const arr& verts, const byteA& colors={}, bool singleConnectedLine=false);
|
|
172
173
|
Frame& setPointCloud(const arr& points, const byteA& colors= {}, const arr& normals= {});
|
|
173
174
|
Frame& setConvexMesh(const arr& points, const byteA& colors= {}, double radius=0.);
|
|
174
175
|
Frame& setSdf(std::shared_ptr<SDF>& sdf);
|
|
175
176
|
Frame& setTensorShape(const floatA& data, const arr& size);
|
|
176
|
-
Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur, double resample);
|
|
177
|
+
Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur=0, double resample=-1.);
|
|
177
178
|
Frame& setColor(const arr& color);
|
|
178
|
-
Frame& setJoint(rai::JointType jointType, const arr& limits=
|
|
179
|
+
Frame& setJoint(rai::JointType jointType, const arr& limits={}, double scale=1., Frame* mimic=0);
|
|
179
180
|
Frame& setContact(int cont);
|
|
180
|
-
Frame& setMass(double mass);
|
|
181
|
+
Frame& setMass(double mass, const arr& inertiaMatrix={});
|
|
181
182
|
Frame& setAttribute(const char* key, double value);
|
|
182
183
|
Frame& setJointState(const arr& q); ///< throws error if this frame is not also a joint, and if q.size() != joint->dim
|
|
183
184
|
|
|
184
185
|
void makeManipJoint(JointType jointType, Frame* parent, bool autoLimits); //create an articulated joint, automatically adding relative transform frame if necessary, automatically setting limits
|
|
185
186
|
void setAutoLimits();
|
|
186
187
|
|
|
187
|
-
arr getPose() { return ensure_X().getArr7d(); }
|
|
188
|
-
arr getPosition() { return ensure_X().pos.getArr(); }
|
|
189
|
-
arr getQuaternion() { return ensure_X().rot.getArr(); }
|
|
190
|
-
arr getTransform() { return ensure_X().getMatrix(); }
|
|
188
|
+
arr getPose(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().getArr7d(); return (relativeTo->ensure_X().inv() * ensure_X()).getArr7d(); }
|
|
189
|
+
arr getPosition(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().pos.getArr(); return (relativeTo->ensure_X().inv() * ensure_X()).pos.getArr(); }
|
|
190
|
+
arr getQuaternion(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().rot.getArr(); return (relativeTo->ensure_X().inv() * ensure_X()).rot.getArr(); }
|
|
191
|
+
arr getTransform(Frame* relativeTo=0) { if(!relativeTo) return ensure_X().getMatrix(); return (relativeTo->ensure_X().inv() * ensure_X()).getMatrix(); }
|
|
191
192
|
arr getRelativePose() const { return get_Q().getArr7d(); }
|
|
192
193
|
arr getRelativePosition() const { return get_Q().pos.getArr(); }
|
|
193
194
|
arr getRelativeQuaternion() const { return get_Q().rot.getArr(); }
|
|
@@ -306,7 +307,6 @@ struct Inertia : NonCopyable {
|
|
|
306
307
|
Frame& frame;
|
|
307
308
|
double mass=0.;
|
|
308
309
|
Matrix matrix=0;
|
|
309
|
-
Enum<BodyType> type;
|
|
310
310
|
Vector com=0; ///< its center of mass
|
|
311
311
|
|
|
312
312
|
Inertia(Frame& f, rai::Inertia* copyInertia=nullptr);
|
|
@@ -329,32 +329,30 @@ stdOutPipe(Inertia)
|
|
|
329
329
|
|
|
330
330
|
/// a Frame with Shape is a collision or visual object
|
|
331
331
|
struct Shape : NonCopyable {
|
|
332
|
-
|
|
333
|
-
Enum<ShapeType> _type;
|
|
332
|
+
Enum<ShapeType> _type = ST_none;
|
|
334
333
|
arr size;
|
|
335
334
|
shared_ptr<Mesh> _mesh;
|
|
336
|
-
shared_ptr<
|
|
335
|
+
shared_ptr<arr> _sscCore;
|
|
336
|
+
double coll_cvxRadius=-1.;
|
|
337
|
+
int version = 0;
|
|
337
338
|
shared_ptr<SDF> _sdf;
|
|
338
339
|
char cont=0; ///< are contacts registered (or filtered in the callback)
|
|
339
340
|
|
|
340
341
|
double radius() { if(size.N) return size(-1); return 0.; }
|
|
341
342
|
Enum<ShapeType>& type() { return _type; }
|
|
342
343
|
Mesh& mesh() { if(!_mesh) { if(_type==ST_none) _type=ST_mesh; _mesh = make_shared<Mesh>(); } return *_mesh; }
|
|
343
|
-
|
|
344
|
+
arr& sscCore() { if(!_sscCore) { if(_type==ST_none) _type=ST_ssCvx; _sscCore = make_shared<arr>(); } return *_sscCore; }
|
|
344
345
|
SDF& sdf() { if(!_sdf) { if(_type==ST_none) _type=ST_sdf; _sdf = make_shared<TensorShape>(); } return *_sdf; }
|
|
345
346
|
double alpha() { arr& C=mesh().C; if(C.N==4 || C.N==2 || (C.nd==2 && C.d1==4)) return C.elem(-1); return 1.; }
|
|
346
347
|
|
|
347
|
-
void createMeshes();
|
|
348
|
-
shared_ptr<
|
|
349
|
-
|
|
350
|
-
Shape(Frame& f, const Shape* copyShape=nullptr); //new Shape, being added to graph and frame's shape lists
|
|
351
|
-
virtual ~Shape();
|
|
348
|
+
void createMeshes(const str& name);
|
|
349
|
+
shared_ptr<SDF> functional(const rai::Transformation& pose=0);
|
|
352
350
|
|
|
353
|
-
bool
|
|
351
|
+
bool canCollide(const rai::Frame* f1, const Frame* f2) const;
|
|
354
352
|
|
|
355
|
-
void read(
|
|
356
|
-
void write(std::ostream& os) const;
|
|
357
|
-
void write(Graph& g);
|
|
353
|
+
void read(Frame& frame);
|
|
354
|
+
void write(std::ostream& os, const Frame& frame) const;
|
|
355
|
+
void write(Graph& g, const Frame& frame);
|
|
358
356
|
};
|
|
359
357
|
|
|
360
358
|
//===========================================================================
|
|
@@ -15,6 +15,7 @@ struct PhysX_Options {
|
|
|
15
15
|
RAI_PARAM("physx/", int, verbose, 1)
|
|
16
16
|
RAI_PARAM("physx/", bool, yGravity, false)
|
|
17
17
|
RAI_PARAM("physx/", double, angularDamping, .1)
|
|
18
|
+
RAI_PARAM("physx/", double, jointFriction, 0.05)
|
|
18
19
|
RAI_PARAM("physx/", double, defaultFriction, 1.)
|
|
19
20
|
RAI_PARAM("physx/", double, defaultRestitution, .1) //restitution=1 should be elastic...
|
|
20
21
|
RAI_PARAM("physx/", double, motorKp, 1000.)
|
|
@@ -25,29 +26,29 @@ struct PhysX_Options {
|
|
|
25
26
|
struct PhysXInterface {
|
|
26
27
|
struct PhysXInterface_self* self=0;
|
|
27
28
|
|
|
28
|
-
PhysXInterface(
|
|
29
|
+
PhysXInterface(rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
|
|
29
30
|
~PhysXInterface();
|
|
31
|
+
const FrameL& getFreeFrames();
|
|
32
|
+
const FrameL& getJointFrames();
|
|
30
33
|
|
|
31
34
|
void step(double tau=.01);
|
|
32
35
|
|
|
33
|
-
void
|
|
34
|
-
void
|
|
36
|
+
void pushFreeStates(const rai::Configuration& C, const arr& frameVelocities=NoArr, bool onlyKinematic=false);
|
|
37
|
+
void pullFreeStates(rai::Configuration& C, arr& frameVelocities=NoArr);
|
|
35
38
|
|
|
36
|
-
void
|
|
37
|
-
void
|
|
39
|
+
void pushJointTargets(const rai::Configuration& C, const arr& qDot_ref=NoArr, bool setStatesInstantly=false);
|
|
40
|
+
void pullJointStates(rai::Configuration& C, arr& qDot);
|
|
38
41
|
|
|
39
42
|
void changeObjectType(rai::Frame* f, int type);
|
|
40
|
-
void
|
|
41
|
-
void removeJoint(rai::
|
|
43
|
+
void addRigidJoint(rai::Frame* from, rai::Frame* to);
|
|
44
|
+
void removeJoint(const rai::Frame* from, const rai::Frame* to);
|
|
42
45
|
void postAddObject(rai::Frame* f);
|
|
43
|
-
void setArticulatedBodiesKinematic(const rai::Configuration& C);
|
|
44
|
-
|
|
45
|
-
void view(bool pause=false, const char* txt=nullptr);
|
|
46
46
|
|
|
47
47
|
void setGravity(float grav);
|
|
48
48
|
void disableGravity(rai::Frame* f, bool disable=true);
|
|
49
49
|
void addForce(rai::Vector& force, rai::Frame* b);
|
|
50
50
|
void addForce(rai::Vector& force, rai::Frame* b, rai::Vector& pos);
|
|
51
51
|
|
|
52
|
+
rai::Configuration& getDebugConfig();
|
|
52
53
|
rai::PhysX_Options& opt();
|
|
53
54
|
};
|
robotic/include/rai/Kin/kin.h
CHANGED
|
@@ -96,7 +96,7 @@ struct Configuration {
|
|
|
96
96
|
Frame* addFrame(const char* name, const char* parent=nullptr, const char* args=nullptr, bool warnDuplicateName=true);
|
|
97
97
|
Frame* addFile(const char* filename, const char* namePrefix=0);
|
|
98
98
|
Frame& addDict(const Graph& G);
|
|
99
|
-
Frame* addAssimp(const char* filename);
|
|
99
|
+
Frame* addAssimp(const char* filename, bool mergeNodeMeshes=false, int verbose=0);
|
|
100
100
|
Frame* addH5Object(const char* framename, const char* filename, int verbose);
|
|
101
101
|
Frame* addCopy(const FrameL& F, const DofL& _dofs, const str& prefix= {});
|
|
102
102
|
Frame* addConfigurationCopy(const Configuration& C, const str& prefix= {}, double tau=1.);
|
|
@@ -116,7 +116,7 @@ struct Configuration {
|
|
|
116
116
|
FrameL getJointsSlice(const FrameL& slice, bool activesOnly=true) const;
|
|
117
117
|
uintA getDofIDs() const;
|
|
118
118
|
StringA getJointNames() const;
|
|
119
|
-
DofL getDofs(const FrameL& F, bool actives, bool inactives, bool mimics=false) const;
|
|
119
|
+
DofL getDofs(const FrameL& F, bool actives, bool inactives, bool mimics=false, bool forces=true) const;
|
|
120
120
|
uintA getCtrlFramesAndScale(arr& scale=NoArr, bool jointPairs=true) const;
|
|
121
121
|
FrameL getRoots() const;
|
|
122
122
|
FrameL getParts() const;
|
|
@@ -161,11 +161,10 @@ struct Configuration {
|
|
|
161
161
|
arr getCtrlMetric() const;
|
|
162
162
|
arr getNaturalCtrlMetric(double power=.5) const; ///< returns diagonal of a natural metric in q-space, depending on tree depth
|
|
163
163
|
arr getJointLimits(const DofL& dofs) const;
|
|
164
|
-
arr getJointLimits() const { return getJointLimits(activeDofs); }
|
|
164
|
+
arr getJointLimits() const { getJointStateDimension(); return getJointLimits(activeDofs); }
|
|
165
165
|
arr getTorqueLimits(const DofL& dofs, uint index=4) const;
|
|
166
166
|
double getEnergy(const arr& qdot);
|
|
167
|
-
|
|
168
|
-
bool getCollisionFree();
|
|
167
|
+
// bool getCollisionFree(); //broken
|
|
169
168
|
Graph reportForces();
|
|
170
169
|
bool checkUniqueNames(bool makeUnique=false);
|
|
171
170
|
FrameL calc_topSort() const;
|
|
@@ -181,8 +180,9 @@ struct Configuration {
|
|
|
181
180
|
void pruneEmptyShapes();
|
|
182
181
|
void reconnectShapesToParents();
|
|
183
182
|
void reconnectLinksToClosestJoints(); ///< re-connect all links to closest joint
|
|
184
|
-
void pruneUselessFrames(bool pruneNamed=false, bool
|
|
185
|
-
void
|
|
183
|
+
void pruneUselessFrames(bool pruneNamed=false, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< delete frames that have no name, joint, and shape
|
|
184
|
+
void processStructure(bool _pruneRigidJoints=false, bool reconnectToLinks=true, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< call the three above methods in this order
|
|
185
|
+
void processInertias(bool recomputeInertias=true, bool transformToDiagInertia=false);
|
|
186
186
|
void sortFrames();
|
|
187
187
|
void makeObjectsFree(const StringA& objects, double H_cost=0.);
|
|
188
188
|
void addTauJoint();
|
|
@@ -191,6 +191,7 @@ struct Configuration {
|
|
|
191
191
|
Joint* attach(Frame* a, Frame* b);
|
|
192
192
|
Joint* attach(const char* a, const char* b);
|
|
193
193
|
uintAA getCollisionExcludePairIDs(int verbose=0);
|
|
194
|
+
FrameL getCollidableShapes();
|
|
194
195
|
FrameL getCollidablePairs();
|
|
195
196
|
void prefixNames(bool clear=false);
|
|
196
197
|
|
|
@@ -241,32 +242,39 @@ struct Configuration {
|
|
|
241
242
|
void dyn_MF(arr& M, arr& F, const arr& q_dot);
|
|
242
243
|
arr dyn_inverseDyamics(const arr& q_dot, const arr& q_ddot);
|
|
243
244
|
arr dyn_fwdDynamics(const arr& q_dot, const arr& u);
|
|
244
|
-
|
|
245
|
+
void dyn_fwdStep_RungeKutta(arr& q_dot, const arr& u, double tau);
|
|
246
|
+
double dyn_energy(const arr& q_dot);
|
|
247
|
+
// private: //internal:
|
|
245
248
|
struct FrameDynState{ bool isGood=false; Vector p, v, w, vd, wd; Matrix R; };
|
|
246
249
|
FrameDynState& dyn_ensure(Frame* f, const arr& q_dot, Array<FrameDynState>& buffer);
|
|
247
250
|
arr dyn_inertia(Frame* f);
|
|
248
251
|
arr dyn_M(Frame *f, const arr& I_f);
|
|
249
252
|
arr dyn_J_dot(Frame *f, const arr& q_dot, const arr& Jpos, const arr& Jang);
|
|
250
|
-
arr
|
|
253
|
+
arr dyn_C(Frame *f, const arr& q_dot, const arr& I_f, const arr& Jpos, const arr& Jang, Array<FrameDynState>& buffer);
|
|
251
254
|
public:
|
|
252
255
|
|
|
253
256
|
/// @name dynamics based on the fs() interface
|
|
254
257
|
void equationOfMotion(arr& M, arr& F, const arr& qdot, bool gravity=true);
|
|
255
|
-
|
|
258
|
+
arr fwdDynamics(const arr& qd, const arr& tau, bool gravity=true);
|
|
256
259
|
void inverseDynamics(arr& tau, const arr& qd, const arr& qdd, bool gravity=true);
|
|
257
260
|
|
|
258
261
|
/// @name collisions & proxies
|
|
259
|
-
void
|
|
262
|
+
void coll_setActiveColliders(const FrameL& colliders);
|
|
263
|
+
void coll_addExcludePair(uint aID, uint bID);
|
|
264
|
+
|
|
265
|
+
double coll_totalViolation(); ///< proxies are returns from a collision engine; contacts stable constraints
|
|
266
|
+
bool coll_isCollisionFree();
|
|
267
|
+
void coll_reportProxies(std::ostream& os=cout, double belowMargin=1., bool brief=true) const;
|
|
268
|
+
StringA coll_getProxyPairs(double belowMargin, arr& distances=NoArr);
|
|
269
|
+
std::shared_ptr<FclInterface> coll_fcl(int verbose=0);
|
|
270
|
+
void coll_fclReset();
|
|
260
271
|
void addProxies(const uintA& collisionPairs);
|
|
261
272
|
|
|
262
273
|
/// @name extensions on demand
|
|
263
|
-
std::shared_ptr<ConfigurationViewer
|
|
274
|
+
std::shared_ptr<ConfigurationViewer> get_viewer();
|
|
264
275
|
OpenGL& gl();
|
|
265
276
|
void view_lock(const char* _lockInfo);
|
|
266
277
|
void view_unlock();
|
|
267
|
-
//std::shared_ptr<SwiftInterface> swift();
|
|
268
|
-
std::shared_ptr<FclInterface> fcl(int verbose=0);
|
|
269
|
-
void swiftDelete();
|
|
270
278
|
PhysXInterface& physx();
|
|
271
279
|
OdeInterface& ode();
|
|
272
280
|
FeatherstoneInterface& fs();
|
|
@@ -276,8 +284,11 @@ public:
|
|
|
276
284
|
void glAdd(void (*call)(void*, OpenGL&), void* classP);
|
|
277
285
|
int glAnimate();
|
|
278
286
|
void view_close();
|
|
279
|
-
void
|
|
280
|
-
|
|
287
|
+
void view_setCameraPose(const arr& pose);
|
|
288
|
+
arr view_getCameraPose();
|
|
289
|
+
void view_focus(const char* frameName, double heightAbs);
|
|
290
|
+
void set_viewer(const std::shared_ptr<ConfigurationViewer>& _viewer);
|
|
291
|
+
void coll_stepFcl();
|
|
281
292
|
void stepPhysx(double tau);
|
|
282
293
|
void stepOde(double tau);
|
|
283
294
|
void stepDynamics(arr& qdot, const arr& u_control, double tau, double dynamicNoise = 0.0, bool gravity = true);
|
|
@@ -287,7 +298,7 @@ public:
|
|
|
287
298
|
void write(Graph& G) const;
|
|
288
299
|
void writeURDF(std::ostream& os, const char* robotName="myrobot") const;
|
|
289
300
|
void writeCollada(const char* filename, const char* format="collada") const;
|
|
290
|
-
void writeMeshes(str pathPrefix="meshes/") const;
|
|
301
|
+
void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false, bool enumerateAssets=false) const;
|
|
291
302
|
void writeMesh(const char* filename="z.ply") const;
|
|
292
303
|
void read(std::istream& is);
|
|
293
304
|
Graph getGraph() const;
|
|
@@ -299,7 +310,6 @@ public:
|
|
|
299
310
|
|
|
300
311
|
//some info
|
|
301
312
|
void report(std::ostream& os=cout) const;
|
|
302
|
-
void reportProxies(std::ostream& os=cout, double belowMargin=1., bool brief=true) const;
|
|
303
313
|
void reportLimits(std::ostream& os=cout) const;
|
|
304
314
|
|
|
305
315
|
private:
|
|
@@ -314,7 +324,7 @@ stdPipes(Configuration)
|
|
|
314
324
|
//
|
|
315
325
|
|
|
316
326
|
uintA framesToIndices(const FrameL& frames);
|
|
317
|
-
|
|
327
|
+
FrameL dofsToFrames(const DofL& dofs);
|
|
318
328
|
StringA framesToNames(const FrameL& frames);
|
|
319
329
|
|
|
320
330
|
//===========================================================================
|
robotic/include/rai/Kin/proxy.h
CHANGED
|
@@ -30,6 +30,7 @@ struct Simulation {
|
|
|
30
30
|
uint stepCount=0;
|
|
31
31
|
Engine engine;
|
|
32
32
|
Array<shared_ptr<SimulationImp>> imps; ///< list of (adversarial) imps doing things/perturbations/noise in addition to clean physics engine
|
|
33
|
+
bool simulateDepthNoise=false;
|
|
33
34
|
int verbose;
|
|
34
35
|
int writeData=0;
|
|
35
36
|
ofstream dataFile;
|
|
@@ -59,7 +60,9 @@ struct Simulation {
|
|
|
59
60
|
//-- get state information
|
|
60
61
|
const arr& get_q() { return C.getJointState(); }
|
|
61
62
|
const arr& get_qDot();
|
|
62
|
-
const arr&
|
|
63
|
+
const arr& get_qRef(); //executed in the LAST step() call
|
|
64
|
+
|
|
65
|
+
const arr get_frameVelocities();
|
|
63
66
|
double getTimeToSplineEnd();
|
|
64
67
|
double getGripperWidth(const char* gripperFrameName);
|
|
65
68
|
bool getGripperIsGrasping(const char* gripperFrameName);
|
|
@@ -70,12 +73,13 @@ struct Simulation {
|
|
|
70
73
|
void getImageAndDepth(byteA& image, floatA& depth); ///< use this during stepping
|
|
71
74
|
void getSegmentation(byteA& segmentation);
|
|
72
75
|
CameraView& cameraview(); ///< use this if you want to initialize the sensor, etc
|
|
73
|
-
rai::CameraView::
|
|
76
|
+
rai::CameraView::CameraFrame& addSensor(const char* sensorName, uint width=640, uint height=360, double focalLength=-1., double orthoAbsHeight=-1., const arr& zRange= {}) {
|
|
74
77
|
rai::Frame *f = C.getFrame(sensorName);
|
|
75
78
|
CHECK(f, "a camera frame must exist");
|
|
76
|
-
return cameraview().
|
|
79
|
+
return cameraview().setCamera(f, width, height, focalLength, orthoAbsHeight, zRange);
|
|
77
80
|
}
|
|
78
|
-
rai::CameraView::
|
|
81
|
+
rai::CameraView::CameraFrame& selectSensor(const char* name) { return cameraview().selectSensor(C.getFrame(name)); }
|
|
82
|
+
void setSimulateDepthNoise(bool _simulateDepthNoise) { simulateDepthNoise=_simulateDepthNoise; }
|
|
79
83
|
byteA getScreenshot();
|
|
80
84
|
|
|
81
85
|
//== ground truth interface
|
|
@@ -86,14 +90,18 @@ struct Simulation {
|
|
|
86
90
|
//what are really the fundamental perturbations? Their (reactive?) management should be realized by 'agents'. We need a method to add purturbation agents.
|
|
87
91
|
void addImp(ImpType type, const StringA& frames, const arr& parameters);
|
|
88
92
|
|
|
89
|
-
void attach(Frame*
|
|
90
|
-
void detach(Frame*
|
|
93
|
+
void attach(Frame* from, Frame* to);
|
|
94
|
+
void detach(Frame* from, Frame* to);
|
|
91
95
|
|
|
92
96
|
//== management interface
|
|
93
97
|
|
|
94
98
|
//-- store and reset the state of the simulation
|
|
95
|
-
void
|
|
96
|
-
|
|
99
|
+
void resetTime(double t=0.);
|
|
100
|
+
struct State { double time; arr q, qDot, freePos, freeVel; };
|
|
101
|
+
void getState(State& state);
|
|
102
|
+
void setState(const State& state);
|
|
103
|
+
FrameL getFreeFrames();
|
|
104
|
+
FrameL getJointFrames();
|
|
97
105
|
void pushConfigurationToSimulator(const arr& frameVelocities=NoArr, const arr& qDot=NoArr);
|
|
98
106
|
|
|
99
107
|
//-- post-hoc world manipulations
|
|
@@ -107,6 +115,8 @@ struct Simulation {
|
|
|
107
115
|
std::shared_ptr<struct PhysXInterface> hidden_physx();
|
|
108
116
|
OpenGL& hidden_gl();
|
|
109
117
|
void loadTeleopCallbacks();
|
|
118
|
+
private:
|
|
119
|
+
void _controls2refs(arr& q_ref, arr& qDot_ref, double tau, const arr& q_real, const arr& u_control, ControlMode u_mode);
|
|
110
120
|
};
|
|
111
121
|
|
|
112
122
|
//===========================================================================
|
|
@@ -125,8 +135,8 @@ struct TeleopCallbacks : OpenGL::GLClickCall, OpenGL::GLKeyCall, OpenGL::GLHover
|
|
|
125
135
|
TeleopCallbacks(rai::Configuration& C, rai::Frame* marker=0) : C(C), marker(marker) { q_ref = C.getJointState(); }
|
|
126
136
|
|
|
127
137
|
bool hasNewMarker();
|
|
128
|
-
virtual bool clickCallback(OpenGL& gl);
|
|
129
|
-
virtual bool keyCallback(OpenGL& gl);
|
|
138
|
+
virtual bool clickCallback(OpenGL& gl, int button, int buttonIsDown);
|
|
139
|
+
virtual bool keyCallback(OpenGL& gl, int key, int mods, bool _keyIsDown);
|
|
130
140
|
virtual bool hoverCallback(OpenGL& gl);
|
|
131
141
|
};
|
|
132
142
|
|
robotic/include/rai/Kin/viewer.h
CHANGED
|
@@ -40,17 +40,30 @@ struct ConfigurationViewer : RenderData {
|
|
|
40
40
|
void savePng(str saveVideoPath="z.vid/", int count=-1);
|
|
41
41
|
|
|
42
42
|
void raiseWindow();
|
|
43
|
+
void setWindow(const char* window_title, int w=400, int h=400);
|
|
43
44
|
void glDraw(OpenGL&);
|
|
44
|
-
void setCamera(rai::Frame*
|
|
45
|
+
void setCamera(rai::Frame* camFrame);
|
|
46
|
+
void setCameraPose(const arr& pose);
|
|
47
|
+
void focus(const arr& position, double heightAbs=1.);
|
|
48
|
+
arr getCameraPose();
|
|
49
|
+
|
|
50
|
+
void setupEventHandler(bool blockDefaultHandler);
|
|
51
|
+
StringA getEvents();
|
|
52
|
+
arr getEventCursor();
|
|
53
|
+
uint getEventCursorObject();
|
|
54
|
+
Mutex& getEventsMutex();
|
|
45
55
|
|
|
46
56
|
//mimic a OpenGL, directly calling the same methods in its gl
|
|
47
57
|
void _resetPressedKey();
|
|
48
58
|
|
|
59
|
+
int setQuad(int id, const byteA& rgb, float x, float y, float h);
|
|
60
|
+
|
|
49
61
|
private://draw data
|
|
50
62
|
arr motion;
|
|
51
63
|
bool abortPlay;
|
|
52
64
|
uint pngCount=0;
|
|
53
65
|
bool drawFrameLines=true;
|
|
66
|
+
shared_ptr<struct ViewerEventHandler> eventHandler;
|
|
54
67
|
public:
|
|
55
68
|
int drawSlice;
|
|
56
69
|
String text;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <KOMO/komo.h>
|
|
4
|
+
|
|
5
|
+
namespace rai {
|
|
6
|
+
|
|
7
|
+
//===========================================================================
|
|
8
|
+
|
|
9
|
+
struct LGP_TAMP_Abstraction{
|
|
10
|
+
virtual ~LGP_TAMP_Abstraction() {}
|
|
11
|
+
|
|
12
|
+
//parameters
|
|
13
|
+
virtual Configuration& getConfig() = 0;
|
|
14
|
+
bool useBroadCollisions=false;
|
|
15
|
+
StringA explicitCollisions;
|
|
16
|
+
|
|
17
|
+
//abstraction of the logic parts: get feasible action sequences
|
|
18
|
+
virtual Array<StringA> getNewActionSequence() = 0;
|
|
19
|
+
|
|
20
|
+
//abstraction of the motion parts: given an action sequence, what are the constraints on waypoints, and potential additional running constraints on motions between waypoints
|
|
21
|
+
virtual std::shared_ptr<KOMO> setup_sequence(Configuration& C, uint K) = 0;
|
|
22
|
+
virtual std::shared_ptr<KOMO> setup_motion(Configuration& C, uint K) = 0;
|
|
23
|
+
virtual void add_action_constraints(std::shared_ptr<KOMO>& komo, double time, const StringA& action) = 0;
|
|
24
|
+
virtual void add_action_constraints_motion(std::shared_ptr<KOMO>& komo, double time, const StringA& prev_action, const StringA& action, uint actionPhase) = 0;
|
|
25
|
+
|
|
26
|
+
//predefined helper functions for solvers: generically using the above to setup a full waypoints and path problem
|
|
27
|
+
std::shared_ptr<KOMO> get_waypointsProblem(Configuration& C, StringAA& actionSequence);
|
|
28
|
+
std::shared_ptr<KOMO> get_fullMotionProblem(Configuration& C, StringAA& actionSequence, shared_ptr<KOMO> initWithWaypoints={});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
PTR<LGP_TAMP_Abstraction> default_LGP_TAMP_Abstraction(rai::Configuration &C, const char* lgp_configfile);
|
|
32
|
+
|
|
33
|
+
}
|
|
@@ -1,30 +1,12 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include "Motif.h"
|
|
4
|
-
|
|
5
|
-
#include <LGP/LGP_SkeletonTool.h>
|
|
6
|
-
#include <KOMO/manipTools.h>
|
|
4
|
+
#include "LGP_TAMP_Abstraction.h"
|
|
7
5
|
|
|
8
6
|
namespace rai {
|
|
9
7
|
|
|
10
8
|
//===========================================================================
|
|
11
9
|
|
|
12
|
-
struct Actions2KOMO_Translator {
|
|
13
|
-
virtual ~Actions2KOMO_Translator() {}
|
|
14
|
-
virtual std::shared_ptr<KOMO> setup_sequence(Configuration& C, uint K) = 0;
|
|
15
|
-
virtual void add_action_constraints(std::shared_ptr<KOMO>& komo, double time, const StringA& action) = 0;
|
|
16
|
-
virtual void add_action_constraints_motion(std::shared_ptr<KOMO>& komo, double time, const StringA& prev_action, const StringA& action, uint actionPhase) = 0;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
struct TAMP_Provider{
|
|
20
|
-
virtual ~TAMP_Provider() {}
|
|
21
|
-
virtual Array<StringA> getNewPlan() = 0;
|
|
22
|
-
virtual Configuration& getConfig() = 0;
|
|
23
|
-
virtual StringA explicitCollisions() = 0;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
//===========================================================================
|
|
27
|
-
|
|
28
10
|
struct ActionNode;
|
|
29
11
|
typedef Array<ActionNode*> ActionNodeL;
|
|
30
12
|
|
|
@@ -74,7 +56,7 @@ struct ActionNode{
|
|
|
74
56
|
ActionNode(ActionNode* _parent, StringA _action);
|
|
75
57
|
~ActionNode();
|
|
76
58
|
|
|
77
|
-
PTR<KOMO>& get_ways(Configuration& C,
|
|
59
|
+
PTR<KOMO>& get_ways(Configuration& C, LGP_TAMP_Abstraction& tamp);
|
|
78
60
|
Array<PTR<KOMO_Motif>>& getWayMotifs();
|
|
79
61
|
|
|
80
62
|
|
|
@@ -98,8 +80,7 @@ protected:
|
|
|
98
80
|
struct LGP_Tool{
|
|
99
81
|
//problem interface
|
|
100
82
|
Configuration& C;
|
|
101
|
-
|
|
102
|
-
Actions2KOMO_Translator& trans;
|
|
83
|
+
LGP_TAMP_Abstraction& tamp;
|
|
103
84
|
int verbose=1;
|
|
104
85
|
|
|
105
86
|
//internal data structures for action search and job management
|
|
@@ -113,7 +94,7 @@ struct LGP_Tool{
|
|
|
113
94
|
uint step_count=0;
|
|
114
95
|
|
|
115
96
|
LGP_Tool(const char* lgp_configfile);
|
|
116
|
-
LGP_Tool(Configuration& _C,
|
|
97
|
+
LGP_Tool(Configuration& _C, LGP_TAMP_Abstraction& _tamp);
|
|
117
98
|
~LGP_Tool();
|
|
118
99
|
|
|
119
100
|
void solve_step();
|
|
@@ -143,7 +124,5 @@ private:
|
|
|
143
124
|
//===========================================================================
|
|
144
125
|
|
|
145
126
|
MotifL analyzeMotifs(KOMO& komo, int verbose=0);
|
|
146
|
-
PTR<TAMP_Provider> default_TAMP_Provider(rai::Configuration &C, const char* lgp_configfile);
|
|
147
|
-
PTR<Actions2KOMO_Translator> default_Actions2KOMO_Translator();
|
|
148
127
|
|
|
149
128
|
} //namespace
|