robotic 0.2.9.dev1__cp311-cp311-manylinux2014_x86_64.whl → 0.3.4.dev5__cp311-cp311-manylinux2014_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- robotic/DataGen.pyi +11 -1
- robotic/__init__.py +8 -1
- robotic/_robotic.pyi +228 -110
- 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 -139
- robotic/include/rai/Core/arrayDouble.h +36 -26
- robotic/include/rai/Core/defines.h +7 -9
- robotic/include/rai/Core/graph.h +27 -23
- 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 +23 -15
- robotic/include/rai/Geo/{fclInterface.h → i_fcl.h} +3 -1
- robotic/include/rai/Geo/mesh.h +18 -13
- 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 +9 -7
- 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 +22 -24
- robotic/include/rai/Kin/{kin_physx.h → i_Physx.h} +10 -8
- robotic/include/rai/Kin/kin.h +29 -21
- 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 +8 -8
- robotic/rai-robotModels/ranger/ranger_clean.g +5 -5
- 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 -12
- robotic/ry-test +5 -4
- robotic/ry-urdfConvert.py +74 -0
- robotic/ry-view +28 -6
- 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/{rai-robotModels/ranger/meshes/cleanMeshes.mlx → src/meshlabFilters.mlx} +0 -3
- 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.3.4.dev5.data/scripts/ry-h5info +23 -0
- {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-test +5 -4
- 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.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/METADATA +18 -22
- robotic-0.3.4.dev5.dist-info/RECORD +386 -0
- {robotic-0.2.9.dev1.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/ranger/meshes/cleanMeshes.sh +0 -8
- robotic/rai-robotModels/ranger/meshes/ranger_mini3.ply +0 -0
- robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.ply +0 -0
- robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.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.9.dev1.data/scripts/ry-h5info +0 -32
- robotic-0.2.9.dev1.data/scripts/ry-urdf2rai +0 -222
- robotic-0.2.9.dev1.data/scripts/ry-urdf2yaml +0 -250
- robotic-0.2.9.dev1.data/scripts/ry-view +0 -24
- robotic-0.2.9.dev1.dist-info/RECORD +0 -421
- /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/{import.py → src/__init__.py} +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-bot +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-info +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.3.4.dev5.data}/scripts/ry-meshTool +0 -0
- {robotic-0.2.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/licenses/LICENSE +0 -0
- {robotic-0.2.9.dev1.dist-info → robotic-0.3.4.dev5.dist-info}/top_level.txt +0 -0
|
@@ -38,9 +38,6 @@ struct Serializable {
|
|
|
38
38
|
namespace rai {
|
|
39
39
|
|
|
40
40
|
//struct FileToken;
|
|
41
|
-
struct SparseVector;
|
|
42
|
-
struct SparseMatrix;
|
|
43
|
-
struct RowShifted;
|
|
44
41
|
|
|
45
42
|
// OLD, TODO: hide -> array.cpp
|
|
46
43
|
extern bool useLapack;
|
|
@@ -66,6 +63,7 @@ extern const char* arrayBrackets;
|
|
|
66
63
|
|
|
67
64
|
namespace rai {
|
|
68
65
|
|
|
66
|
+
#if 0
|
|
69
67
|
/** Simple array container to store arbitrary-dimensional arrays (tensors).
|
|
70
68
|
Can buffer more memory than necessary for faster
|
|
71
69
|
resize; enables non-const reference of subarrays; enables fast
|
|
@@ -105,7 +103,7 @@ struct ArrayDouble : public Array<double> {
|
|
|
105
103
|
using Array<double>::elem; //adopt all elem(..) methods
|
|
106
104
|
double& elem(int i, int j); //access that also handles sparse matrices
|
|
107
105
|
using Array<double>::operator(); //adopt all double& operator()(..) methods
|
|
108
|
-
ArrayDouble operator()(std::pair<int, int> I) const { ArrayDouble z; z.referToRange(*this, I.first, I.second); return z; }
|
|
106
|
+
ArrayDouble operator()(std::pair<int, int> I) const { ArrayDouble z; z.referToRange(*this, I.first, I.second+1); return z; }
|
|
109
107
|
ArrayDouble operator()(int i, std::pair<int, int> J) const { ArrayDouble z; z.referToRange(*this, i, J.first, J.second); return z; }
|
|
110
108
|
ArrayDouble operator()(int i, int j, std::initializer_list<int> K) const;
|
|
111
109
|
ArrayDouble operator[](int i) const { ArrayDouble z; z.referToDim(*this, i); return z; }
|
|
@@ -147,11 +145,10 @@ struct ArrayDouble : public Array<double> {
|
|
|
147
145
|
|
|
148
146
|
void write(std::ostream& os=stdCout(), const char* ELEMSEP=nullptr, const char* LINESEP=nullptr, const char* BRACKETS=nullptr, bool dimTag=false, bool binary=false) const;
|
|
149
147
|
};
|
|
148
|
+
#endif
|
|
150
149
|
|
|
151
150
|
}
|
|
152
151
|
|
|
153
|
-
typedef rai::ArrayDouble arr;
|
|
154
|
-
|
|
155
152
|
//===========================================================================
|
|
156
153
|
///
|
|
157
154
|
/// @name alternative iterators
|
|
@@ -287,12 +284,24 @@ arr& getNoArr();
|
|
|
287
284
|
/// @{
|
|
288
285
|
|
|
289
286
|
/// a generic vector-valued function \f$f:~x\mapsto y\in\mathbb{R}^d\f$, where return value may have Jacobian attached
|
|
290
|
-
typedef std::function<arr(const arr& x)> fct;
|
|
287
|
+
// typedef std::function<arr(const arr& x)> fct;
|
|
291
288
|
typedef std::function<arr(const arr& x)> VectorFunction;
|
|
292
|
-
|
|
293
|
-
/// a scalar function \f$f:~x\mapsto y\in\mathbb{R}\f$ with optional gradient and hessian
|
|
294
289
|
typedef std::function<double(arr& g, arr& H, const arr& x)> ScalarFunction;
|
|
295
290
|
|
|
291
|
+
// /// a scalar function \f$f:~x\mapsto y\in\mathbb{R}\f$ with optional gradient and hessian
|
|
292
|
+
// struct ScalarFunction {
|
|
293
|
+
// uint dim;
|
|
294
|
+
// virtual double f(arr& g, arr& H, const arr& x) = 0;
|
|
295
|
+
// virtual ~ScalarFunction() {}
|
|
296
|
+
// std::function<double(const arr& x)> cfunc(){ return [this](const arr& x){ return this->f(NoArr, NoArr, x); }; }
|
|
297
|
+
// };
|
|
298
|
+
|
|
299
|
+
// struct Conv_cfunc2ScalarFunction : ScalarFunction {
|
|
300
|
+
// std::function<double(arr& g, arr& H, const arr& x)> cfunc;
|
|
301
|
+
// Conv_cfunc2ScalarFunction(std::function<double(arr& g, arr& H, const arr& x)> _cfunc) : cfunc(_cfunc) {}
|
|
302
|
+
// double f(arr& g, arr& H, const arr& x){ return cfunc(g, H, x); }
|
|
303
|
+
// };
|
|
304
|
+
|
|
296
305
|
/// a kernel function
|
|
297
306
|
struct KernelFunction {
|
|
298
307
|
virtual double k(const arr& x1, const arr& x2, arr& g1=NoArr, arr& Hx1=NoArr) = 0;
|
|
@@ -328,7 +337,7 @@ inline arr zeros(uint d0, uint d1) { return zeros(uintA{d0, d1}); }
|
|
|
328
337
|
inline arr zeros(uint d0, uint d1, uint d2) { return zeros(uintA{d0, d1, d2}); }
|
|
329
338
|
|
|
330
339
|
/// return array of c's
|
|
331
|
-
inline arr consts(const double& c, const uintA& d) { arr z; z.resize(d); z.
|
|
340
|
+
inline arr consts(const double& c, const uintA& d) { arr z; z.resize(d); z.setConst(c); return z; }
|
|
332
341
|
/// return VECTOR of c's
|
|
333
342
|
inline arr consts(const double& c, uint n) { return consts(c, uintA{n}); }
|
|
334
343
|
/// return matrix of c's
|
|
@@ -357,16 +366,15 @@ inline arr randn(uint d0, uint d1) { return randn(uintA{d0, d1}); }
|
|
|
357
366
|
|
|
358
367
|
/// return a grid with different lo/hi/steps in each dimension
|
|
359
368
|
arr grid(const arr& lo, const arr& hi, const uintA& steps);
|
|
360
|
-
/// return a grid (1D: range) split in 'steps' steps
|
|
361
|
-
inline arr grid(uint dim, double lo, double hi, uint steps) { arr g; g.setGrid(dim, lo, hi, steps); return g; }
|
|
362
369
|
/// return a 1D-grid
|
|
363
|
-
inline arr range(double lo, double hi, uint steps) {
|
|
370
|
+
inline arr range(double lo, double hi, uint steps) { return rai::grid(1, lo, hi, steps).reshape(-1); }
|
|
364
371
|
//inline uintA range(uint n) { uintA r; r.setStraightPerm(n); return r; }
|
|
365
372
|
|
|
366
373
|
arr repmat(const arr& A, uint m, uint n);
|
|
374
|
+
arr match(const arr& A, const uintA& shape);
|
|
367
375
|
|
|
368
376
|
//inline uintA randperm(uint n) { uintA z; z.setRandomPerm(n); return z; }
|
|
369
|
-
inline arr linspace(double base, double limit, uint n) {
|
|
377
|
+
inline arr linspace(double base, double limit, uint n) { return rai::grid(1, base, limit, n).reshape(-1); }
|
|
370
378
|
arr logspace(double base, double limit, uint n);
|
|
371
379
|
|
|
372
380
|
void normalizeWithJac(arr& y, arr& J, double eps=0.);
|
|
@@ -431,11 +439,13 @@ arr reshapeColor(const arr& col, int d0=-1);
|
|
|
431
439
|
|
|
432
440
|
void scanArrFile(const char* name);
|
|
433
441
|
|
|
434
|
-
arr
|
|
435
|
-
arr
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
bool
|
|
442
|
+
arr finiteDifference_gradient(ScalarFunction f, const arr& x0, double y0, double eps=1e-8);
|
|
443
|
+
arr finiteDifference_jacobian(VectorFunction f, const arr& x0, const arr& y0, double eps=1e-8);
|
|
444
|
+
// arr finiteDifferenceGradient(ScalarFunction f, const arr& x, arr& Janalytic=NoArr, double eps=1e-8);
|
|
445
|
+
// arr finiteDifferenceJacobian(VectorFunction f, const arr& _x, arr& Janalytic=NoArr, double eps=1e-8);
|
|
446
|
+
bool checkGradient(ScalarFunction f, const arr& x, double tolerance, bool verbose=false);
|
|
447
|
+
bool checkHessian(ScalarFunction f, const arr& x, double tolerance, bool verbose=false);
|
|
448
|
+
bool checkJacobian(VectorFunction f, const arr& x, double tolerance, bool verbose=false, const StringA& featureNames= {});
|
|
439
449
|
void boundClip(arr& y, const arr& bounds);
|
|
440
450
|
bool boundCheck(const arr& x, const arr& bounds, double eps=1e-3, bool verbose=true);
|
|
441
451
|
|
|
@@ -488,10 +498,8 @@ double euclideanDistance(const arr& v, const arr& w);
|
|
|
488
498
|
double metricDistance(const arr& g, const arr& v, const arr& w);
|
|
489
499
|
|
|
490
500
|
//min max
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
arr max(const arr& v, uint d);
|
|
494
|
-
arr min(const arr& v, uint d);
|
|
501
|
+
arr max(const arr& v, uint axis);
|
|
502
|
+
arr min(const arr& v, uint axis);
|
|
495
503
|
uint argmin(const arr& x);
|
|
496
504
|
uint argmax(const arr& x);
|
|
497
505
|
void argmax(uint& i, uint& j, const arr& x);
|
|
@@ -501,7 +509,7 @@ double absMax(const arr& x);
|
|
|
501
509
|
double absMin(const arr& x);
|
|
502
510
|
|
|
503
511
|
double sum(const arr& v);
|
|
504
|
-
arr sum(const arr& v, uint
|
|
512
|
+
arr sum(const arr& v, uint axis);
|
|
505
513
|
double sumOfAbs(const arr& v);
|
|
506
514
|
double sumOfPos(const arr& v);
|
|
507
515
|
double sumOfSqr(const arr& v);
|
|
@@ -510,9 +518,9 @@ double product(const arr& v);
|
|
|
510
518
|
|
|
511
519
|
double trace(const arr& v);
|
|
512
520
|
double var(const arr& v);
|
|
513
|
-
arr mean(const arr& v);
|
|
521
|
+
arr mean(const arr& v, uint axis=0);
|
|
514
522
|
arr covar(const arr& X);
|
|
515
|
-
arr
|
|
523
|
+
arr vardiag(const arr& X);
|
|
516
524
|
void clip(const arr& x, double lo, double hi);
|
|
517
525
|
|
|
518
526
|
void op_transpose(arr& x, const arr& y);
|
|
@@ -612,6 +620,8 @@ inline bool isEmptyShape(const arr& X) { return X.special && X.special->type==
|
|
|
612
620
|
inline bool isRowShifted(const arr& X) { return X.special && X.special->type==SpecialArray::RowShiftedST; }
|
|
613
621
|
inline bool isSparseMatrix(const arr& X) { return X.special && X.special->type==SpecialArray::sparseMatrixST; }
|
|
614
622
|
inline bool isSparseVector(const arr& X) { return X.special && X.special->type==SpecialArray::sparseVectorST; }
|
|
623
|
+
void special_copy(arr& x, const arr& a);
|
|
624
|
+
void special_write(ostream& os, const arr& x);
|
|
615
625
|
|
|
616
626
|
struct RowShifted : SpecialArray {
|
|
617
627
|
arr& Z; ///< references the array itself
|
|
@@ -45,21 +45,22 @@ typedef unsigned int uint;
|
|
|
45
45
|
//
|
|
46
46
|
|
|
47
47
|
//using std::cout;
|
|
48
|
-
//using std::cerr;
|
|
49
48
|
//using std::endl;
|
|
50
49
|
using std::ostream;
|
|
51
50
|
using std::istream;
|
|
52
51
|
using std::ofstream;
|
|
53
52
|
using std::ifstream;
|
|
54
53
|
|
|
54
|
+
namespace rai {
|
|
55
|
+
|
|
56
|
+
struct String;
|
|
57
|
+
|
|
55
58
|
//===========================================================================
|
|
56
59
|
//
|
|
57
60
|
// enums
|
|
58
61
|
//
|
|
59
62
|
|
|
60
|
-
namespace rai {
|
|
61
63
|
enum ArgWord { _left, _right, _sequence, _path, _xAxis, _yAxis, _zAxis, _xNegAxis, _yNegAxis, _zNegAxis };
|
|
62
|
-
}
|
|
63
64
|
|
|
64
65
|
//===========================================================================
|
|
65
66
|
|
|
@@ -84,9 +85,6 @@ struct Stepper {
|
|
|
84
85
|
// logging
|
|
85
86
|
//
|
|
86
87
|
|
|
87
|
-
namespace rai {
|
|
88
|
-
struct String;
|
|
89
|
-
|
|
90
88
|
/// An object that represents a log file and/or cout logging, together with log levels read from a cfg file
|
|
91
89
|
struct LogObject {
|
|
92
90
|
std::ofstream* fil=0;
|
|
@@ -117,12 +115,12 @@ extern LogObject _log;
|
|
|
117
115
|
const char* errString();
|
|
118
116
|
String& errStringStream();
|
|
119
117
|
|
|
120
|
-
}
|
|
121
|
-
|
|
122
118
|
//----- parsing strings in a stream
|
|
123
119
|
struct PARSE { const char* str; PARSE(const char* _str):str(_str) {} };
|
|
124
120
|
std::istream& operator>>(std::istream& is, const PARSE&);
|
|
125
121
|
|
|
122
|
+
} //namespace
|
|
123
|
+
|
|
126
124
|
//===========================================================================
|
|
127
125
|
//
|
|
128
126
|
// macros for LOG and CHECK
|
|
@@ -177,7 +175,7 @@ std::istream& operator>>(std::istream& is, const PARSE&);
|
|
|
177
175
|
// macros to define the standard <<and >>operatos for most classes
|
|
178
176
|
//
|
|
179
177
|
|
|
180
|
-
#define stdInPipe(type)\
|
|
178
|
+
#define stdInPipe(type) \
|
|
181
179
|
inline std::istream& operator>>(std::istream& is, type& x){ x.read(is); return is; }
|
|
182
180
|
#define stdOutPipe(type)\
|
|
183
181
|
inline std::ostream& operator<<(std::ostream& os, const type& x){ x.write(os); return os; }
|
robotic/include/rai/Core/graph.h
CHANGED
|
@@ -25,6 +25,7 @@ struct Graph;
|
|
|
25
25
|
struct ParseInfo;
|
|
26
26
|
struct RenderingInfo;
|
|
27
27
|
struct GraphEditCallback;
|
|
28
|
+
struct BracketOp;
|
|
28
29
|
typedef Array<Node*> NodeL;
|
|
29
30
|
typedef Array<GraphEditCallback*> GraphEditCallbackL;
|
|
30
31
|
}
|
|
@@ -52,7 +53,6 @@ struct Node {
|
|
|
52
53
|
void swapParent(uint i, Node* p);
|
|
53
54
|
|
|
54
55
|
//-- get value
|
|
55
|
-
//get() -> as()
|
|
56
56
|
template<class T> bool is() const { return type==typeid(T); }
|
|
57
57
|
template<class T> T& as() { T* x=getValue<T>(); CHECK(x, "this node '" <<*this <<"' is not of type '" <<typeid(T).name() <<"' but type '" <<type.name() <<"'"); return *x; }
|
|
58
58
|
template<class T> const T& as() const { const T* x=getValue<T>(); CHECK(x, "this node '" <<*this <<"'is not of type '" <<typeid(T).name() <<"' but type '" <<type.name() <<"'"); return *x; }
|
|
@@ -60,10 +60,9 @@ struct Node {
|
|
|
60
60
|
|
|
61
61
|
template<class T> T* getValue(); ///< query whether node type is equal to (or derived from) T, return the value if so
|
|
62
62
|
template<class T> const T* getValue() const; ///< as above
|
|
63
|
-
template<class T>
|
|
64
|
-
template<class T> bool getFromDouble(T& x) const; ///< return value = false means parsing object of type T from the string failed
|
|
63
|
+
template<class T> bool getFromDouble(T& x) const; ///< return value = false means parsing object of type T from the double failed
|
|
65
64
|
template<class T> bool getFromString(T& x) const; ///< return value = false means parsing object of type T from the string failed
|
|
66
|
-
template<class T> bool getFromArr(T& x) const; ///< return value = false means parsing object of type T from the
|
|
65
|
+
template<class T> bool getFromArr(T& x) const; ///< return value = false means parsing object of type T from the arr failed
|
|
67
66
|
bool isBoolAndTrue() const { if(type!=typeid(bool)) return false; return *getValue<bool>() == true; }
|
|
68
67
|
bool isBoolAndFalse() const { if(type!=typeid(bool)) return false; return *getValue<bool>() == false; }
|
|
69
68
|
|
|
@@ -81,12 +80,10 @@ struct Node {
|
|
|
81
80
|
virtual void copyValue(Node*) {NIY}
|
|
82
81
|
virtual bool hasEqualValue(Node*) {NIY}
|
|
83
82
|
virtual void writeValue(std::ostream& os) const {NIY}
|
|
84
|
-
// virtual void copyValueInto(void*) const {NIY}
|
|
85
83
|
virtual Node* newClone(Graph& container) const {NIY}
|
|
86
84
|
};
|
|
87
|
-
|
|
88
|
-
inline std::istream& operator>>(std::istream& is, Node*& x) { HALT("prohibited"); return is; }
|
|
89
85
|
stdOutPipe(Node)
|
|
86
|
+
|
|
90
87
|
} //namespace
|
|
91
88
|
|
|
92
89
|
//===========================================================================
|
|
@@ -139,9 +136,10 @@ struct Graph : NodeL {
|
|
|
139
136
|
|
|
140
137
|
//
|
|
141
138
|
template<class T> Node* set(const char* key, const T& x){ Node* n = findNodeOfType(typeid(T), key); if(n) n->as<T>()=x; else n=add<T>(key, x); return n; }
|
|
139
|
+
Node* set(Node* _n){ Node* n = findNodeOfType(_n->type, _n->key); if(n) n->copyValue(_n); else n=_n->newClone(*this); return n; }
|
|
142
140
|
|
|
143
141
|
//-- get nodes
|
|
144
|
-
|
|
142
|
+
BracketOp operator[](const char* key); ///< returns nullptr if not found
|
|
145
143
|
Node* getNode(const char* key) const { return findNode(key); } ///< returns nullptr if not found
|
|
146
144
|
Node* getEdge(Node* p1, Node* p2) const;
|
|
147
145
|
Node* getEdge(const NodeL& parents) const;
|
|
@@ -187,10 +185,10 @@ struct Graph : NodeL {
|
|
|
187
185
|
Node* readNode(std::istream& is, bool verbose, bool parseInfo); //used only internally..
|
|
188
186
|
void readJson(std::istream& is);
|
|
189
187
|
void writeJson(std::istream& is);
|
|
190
|
-
void write(std::ostream& os=cout, const char* ELEMSEP="
|
|
188
|
+
void write(std::ostream& os=cout, const char* ELEMSEP="\n", const char* BRACKETS=0, int indent=-1, bool yamlMode=false, bool binary=false) const;
|
|
191
189
|
void writeDot(std::ostream& os, bool withoutHeader=false, bool defaultEdges=false, int nodesOrEdges=0, int focusIndex=-1, bool subGraphsAsNodes=false);
|
|
192
190
|
void writeHtml(std::ostream& os, std::istream& is);
|
|
193
|
-
void writeYaml(std::ostream& os);
|
|
191
|
+
void writeYaml(std::ostream& os, bool classic = false) const;
|
|
194
192
|
void writeParseInfo(std::ostream& os);
|
|
195
193
|
|
|
196
194
|
void displayDot(Node* highlight=nullptr);
|
|
@@ -289,6 +287,21 @@ struct NodeInitializer {
|
|
|
289
287
|
/// pipe node initializers into a graph (to append nodes)
|
|
290
288
|
inline Graph& operator<<(Graph& G, const NodeInitializer& n) { G.addInit(n); return G; }
|
|
291
289
|
|
|
290
|
+
//===========================================================================
|
|
291
|
+
|
|
292
|
+
struct BracketOp {
|
|
293
|
+
Graph& G;
|
|
294
|
+
const char* key;
|
|
295
|
+
Node *n;
|
|
296
|
+
template<class T> void operator=(const T& x){
|
|
297
|
+
if(!n) n = G.add<T>(key, x);
|
|
298
|
+
else n->as<T>() = x;
|
|
299
|
+
}
|
|
300
|
+
Node* operator->() { return n; }
|
|
301
|
+
operator Node*() { return n; }
|
|
302
|
+
//T& operator->() { return *p; }
|
|
303
|
+
};
|
|
304
|
+
|
|
292
305
|
//===========================================================================
|
|
293
306
|
//
|
|
294
307
|
// algorithms
|
|
@@ -391,10 +404,6 @@ struct Node_typed : Node {
|
|
|
391
404
|
else os <<value;
|
|
392
405
|
}
|
|
393
406
|
|
|
394
|
-
// virtual void copyValueInto(void* value_ptr) const {
|
|
395
|
-
// *((T*)value_ptr) = value;
|
|
396
|
-
// }
|
|
397
|
-
|
|
398
407
|
virtual const std::type_info& getValueType() const {
|
|
399
408
|
return typeid(T);
|
|
400
409
|
}
|
|
@@ -428,15 +437,6 @@ template<class T> const T* Node::getValue() const {
|
|
|
428
437
|
return &typed->value;
|
|
429
438
|
}
|
|
430
439
|
|
|
431
|
-
template<class T> std::shared_ptr<T> Node::getPtr() const {
|
|
432
|
-
NIY
|
|
433
|
-
// std::shared_ptr<T> typed = std::dynamic_pointer_cast<T>(std::shared_ptr<T>(value_ptr));
|
|
434
|
-
return std::shared_ptr<T>();
|
|
435
|
-
// const Node_typed<std::shared_ptr<T>>* typed = dynamic_cast<const Node_typed<std::shared_ptr<T>>*>(this);
|
|
436
|
-
// if(!typed) return nullptr;
|
|
437
|
-
// return typed->value;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
440
|
template<class T> bool Node::getFromDouble(T& x) const {
|
|
441
441
|
if(!is<double>()) return false;
|
|
442
442
|
double y = as<double>();
|
|
@@ -482,6 +482,10 @@ template<class T> NodeInitializer::NodeInitializer(const char* key, const String
|
|
|
482
482
|
n = G.add<T>(key, x);
|
|
483
483
|
}
|
|
484
484
|
|
|
485
|
+
inline BracketOp Graph::operator[](const char* key) {
|
|
486
|
+
return BracketOp{*this, key, findNode(key)};
|
|
487
|
+
}
|
|
488
|
+
|
|
485
489
|
template<class T> T& Graph::get(const char* key) const {
|
|
486
490
|
Node* n = findNodeOfType(typeid(T), key);
|
|
487
491
|
if(!n) HALT("no node of type '" <<typeid(T).name() <<"' with key '"<< key<< "' found");
|
robotic/include/rai/Core/h5.h
CHANGED
|
@@ -23,6 +23,7 @@ struct H5_Writer {
|
|
|
23
23
|
H5_Writer(const char* filename);
|
|
24
24
|
|
|
25
25
|
template<class T> void add(const char* name, const rai::Array<T>& x);
|
|
26
|
+
void addDict(const char* name, const Graph& dict);
|
|
26
27
|
void addGroup(const char* group);
|
|
27
28
|
};
|
|
28
29
|
|
|
@@ -30,12 +31,13 @@ struct H5_Writer {
|
|
|
30
31
|
|
|
31
32
|
struct H5_Reader {
|
|
32
33
|
std::shared_ptr<H5::H5File> file;
|
|
33
|
-
rai::Graph G;
|
|
34
34
|
int verbose=0;
|
|
35
|
+
Graph G;
|
|
35
36
|
|
|
36
37
|
H5_Reader(const char* filename);
|
|
37
38
|
void readAll();
|
|
38
39
|
template<class T> rai::Array<T> read(const char* name, bool ifExists=false);
|
|
40
|
+
Graph readDict(const char* name, bool ifExists=false);
|
|
39
41
|
bool exists(const char* name);
|
|
40
42
|
};
|
|
41
43
|
|
|
@@ -51,7 +51,7 @@ struct CallbackL : rai::Array<Callback<F>*> {
|
|
|
51
51
|
struct RWLock {
|
|
52
52
|
std::shared_timed_mutex rwLock;
|
|
53
53
|
int rwCount=0; ///< -1==write locked, positive=numer of readers, 0=unlocked
|
|
54
|
-
Mutex rwCountMutex;
|
|
54
|
+
rai::Mutex rwCountMutex;
|
|
55
55
|
RWLock();
|
|
56
56
|
~RWLock();
|
|
57
57
|
void readLock(); ///< multiple threads may request 'lock for read'
|
|
@@ -67,7 +67,7 @@ struct RWLock {
|
|
|
67
67
|
//
|
|
68
68
|
|
|
69
69
|
/// This RW lock counts revisions and broadcasts accesses to listeners; who is accessing can be logged; it has a unique name
|
|
70
|
-
struct Var_base : NonCopyable {
|
|
70
|
+
struct Var_base : rai::NonCopyable {
|
|
71
71
|
RWLock rwlock; ///< rwLock (handled via read/writeAccess)
|
|
72
72
|
uint revision=0;
|
|
73
73
|
rai::String name; ///< name
|
|
@@ -140,7 +140,7 @@ struct Var_data : Var_base {
|
|
|
140
140
|
|
|
141
141
|
Var_data(const char* name=0) : Var_base(name), data() {} // default constructor for value always initializes, also primitive types 'bool' or 'int'
|
|
142
142
|
~Var_data() {
|
|
143
|
-
if(rwlock.isLocked()) {
|
|
143
|
+
if(rwlock.isLocked()) { cout << "can't destroy a variable when it is currently accessed!" <<endl; exit(1); }
|
|
144
144
|
}
|
|
145
145
|
};
|
|
146
146
|
|
|
@@ -227,7 +227,7 @@ template<class T> std::ostream& operator<<(std::ostream& os, Var<T>& x) { x.writ
|
|
|
227
227
|
/// a basic condition variable
|
|
228
228
|
struct Signaler {
|
|
229
229
|
int status;
|
|
230
|
-
Mutex statusMutex;
|
|
230
|
+
rai::Mutex statusMutex;
|
|
231
231
|
std::condition_variable cond;
|
|
232
232
|
|
|
233
233
|
Signaler(int initialStatus=0);
|
|
@@ -240,13 +240,13 @@ struct Signaler {
|
|
|
240
240
|
void statusLock(); //the user can manually lock/unlock, if he needs locked state access for longer -> use userHasLocked=true below!
|
|
241
241
|
void statusUnlock();
|
|
242
242
|
|
|
243
|
-
int getStatus(Mutex::Token* userHasLocked=0) const;
|
|
244
|
-
bool waitForSignal(Mutex::Token* userHasLocked=0, double timeout=-1.);
|
|
245
|
-
bool waitForEvent(std::function<bool()> f, Mutex::Token* userHasLocked=0);
|
|
246
|
-
bool waitForStatusEq(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
247
|
-
int waitForStatusNotEq(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
248
|
-
int waitForStatusGreaterThan(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
249
|
-
int waitForStatusSmallerThan(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
243
|
+
int getStatus(rai::Mutex::Token* userHasLocked=0) const;
|
|
244
|
+
bool waitForSignal(rai::Mutex::Token* userHasLocked=0, double timeout=-1.);
|
|
245
|
+
bool waitForEvent(std::function<bool()> f, rai::Mutex::Token* userHasLocked=0);
|
|
246
|
+
bool waitForStatusEq(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
247
|
+
int waitForStatusNotEq(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
248
|
+
int waitForStatusGreaterThan(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
249
|
+
int waitForStatusSmallerThan(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
250
250
|
};
|
|
251
251
|
|
|
252
252
|
//===========================================================================
|
|
@@ -331,7 +331,7 @@ struct Thread {
|
|
|
331
331
|
rai::String name;
|
|
332
332
|
std::unique_ptr<std::thread> thread; ///< the underlying pthread; nullptr iff not opened
|
|
333
333
|
int tid; ///< system thread id
|
|
334
|
-
Mutex stepMutex; ///< This is set whenever the 'main' is in step (or open, or close) --- use this in all service methods callable from outside!!
|
|
334
|
+
rai::Mutex stepMutex; ///< This is set whenever the 'main' is in step (or open, or close) --- use this in all service methods callable from outside!!
|
|
335
335
|
uint step_count; ///< how often the step was called
|
|
336
336
|
Metronome metronome; ///< used for beat-looping
|
|
337
337
|
CycleTimer timer; ///< measure how the time spend per cycle, within step, idle
|