robotic 0.2.9__cp38-cp38-manylinux2014_x86_64.whl → 0.2.9.dev2__cp38-cp38-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.
Potentially problematic release.
This version of robotic might be problematic. Click here for more details.
- robotic/__init__.py +4 -0
- robotic/_robotic.pyi +13 -9
- robotic/_robotic.so +0 -0
- robotic/cleanMeshes.py +59 -0
- robotic/include/rai/Core/array.ipp +3 -1
- robotic/include/rai/Core/graph.h +2 -2
- robotic/include/rai/Core/util.h +8 -7
- robotic/include/rai/Geo/geo.h +3 -2
- robotic/include/rai/Geo/mesh.h +1 -3
- robotic/include/rai/KOMO/manipTools.h +2 -2
- robotic/include/rai/Kin/frame.h +4 -4
- robotic/include/rai/Kin/kin.h +4 -3
- robotic/include/rai/Kin/kin_physx.h +1 -2
- robotic/include/rai/ry/types.h +3 -2
- robotic/librai.so +0 -0
- robotic/meshTool +0 -0
- robotic/mujoco-import.py +10 -0
- robotic/rai-robotModels/g1/g1.g +1 -1
- robotic/rai-robotModels/g1/g1_29dof_conv.g +77 -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/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 +1 -1
- robotic/rai-robotModels/panda/panda_arm_hand_conv.g +24 -0
- robotic/rai-robotModels/panda/panda_clean.g +21 -45
- robotic/rai-robotModels/panda/panda_gripper.g +3 -3
- 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 +1 -1
- robotic/rai-robotModels/pr2/pr2_clean.g +5 -1
- robotic/rai-robotModels/pr2/pr2_conv.g +218 -0
- 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 +5 -5
- 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.g +21 -0
- robotic/rai-robotModels/robotiq/robotiq_clean.g +16 -16
- robotic/rai-robotModels/scenarios/ballFinger.g +2 -2
- 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 +1 -1
- robotic/rai-robotModels/ur10/ur10_conv.g +17 -0
- robotic/ry-h5info +5 -1
- robotic/ry-test +1 -1
- robotic/ry-urdfConvert.py +73 -0
- robotic/src/config_mujoco.py +237 -0
- robotic/src/config_urdf.py +237 -0
- robotic/src/mesh_helper.py +395 -0
- robotic/src/yaml_helper.py +19 -0
- robotic/version.py +1 -1
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-h5info +5 -1
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-test +1 -1
- {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/METADATA +1 -1
- robotic-0.2.9.dev2.dist-info/RECORD +369 -0
- {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/WHEEL +1 -1
- 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.mlx +0 -23
- 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-0.2.9.dist-info/RECORD +0 -420
- /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-bot +0 -0
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-info +0 -0
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-meshTool +0 -0
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-urdf2rai +0 -0
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-urdf2yaml +0 -0
- {robotic-0.2.9.data → robotic-0.2.9.dev2.data}/scripts/ry-view +0 -0
- {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/LICENSE +0 -0
- {robotic-0.2.9.dist-info → robotic-0.2.9.dev2.dist-info}/top_level.txt +0 -0
robotic/__init__.py
CHANGED
|
@@ -9,5 +9,9 @@ from .version import __version__
|
|
|
9
9
|
|
|
10
10
|
from .manipulation import KOMO_ManipulationHelper
|
|
11
11
|
|
|
12
|
+
from .src.config_mujoco import MujocoLoader
|
|
13
|
+
from .src.config_urdf import URDFLoader
|
|
14
|
+
from .src.mesh_helper import MeshHelper
|
|
15
|
+
|
|
12
16
|
import os
|
|
13
17
|
setRaiPath( os.path.abspath(os.path.dirname(__file__)) + '/rai-robotModels' )
|
robotic/_robotic.pyi
CHANGED
|
@@ -275,7 +275,7 @@ class Config:
|
|
|
275
275
|
"""
|
|
276
276
|
animate with random spline in limits bounding box [T=#spline points]
|
|
277
277
|
"""
|
|
278
|
-
def asDict(self) -> dict:
|
|
278
|
+
def asDict(self, parentsInKeys: bool = True) -> dict:
|
|
279
279
|
"""
|
|
280
280
|
return the configuration description as a dict, e.g. for file export
|
|
281
281
|
"""
|
|
@@ -363,6 +363,14 @@ class Config:
|
|
|
363
363
|
"""
|
|
364
364
|
def get_viewer(self, window_title: str = None, offscreen: bool = False) -> ...:
|
|
365
365
|
...
|
|
366
|
+
def processInertias(self, recomputeInertias: bool = True, transformToDiagInertia: bool = False) -> None:
|
|
367
|
+
"""
|
|
368
|
+
collect all inertia at root frame of links, optionally reestimate all inertias based on standard surface density, optionally relocate the link frame to the COM with diagonalized I)
|
|
369
|
+
"""
|
|
370
|
+
def processStructure(self, pruneRigidJoints: bool = False, reconnectToLinks: bool = True, pruneNonContactShapes: bool = False, pruneTransparent: bool = False) -> None:
|
|
371
|
+
"""
|
|
372
|
+
structurally simplify the Configuration (deleting frames, relinking to minimal tree)
|
|
373
|
+
"""
|
|
366
374
|
def report(self) -> str:
|
|
367
375
|
"""
|
|
368
376
|
return a string with basic info (#frames, etc)
|
|
@@ -391,10 +399,6 @@ class Config:
|
|
|
391
399
|
...
|
|
392
400
|
def set_viewer(self, arg0: ...) -> None:
|
|
393
401
|
...
|
|
394
|
-
def simplify(self, pruneNamed: bool, pruneNonContactNonMarker: bool, pruneTransparent: bool) -> None:
|
|
395
|
-
"""
|
|
396
|
-
structurally simplify the Configuration (deleting frames, relinking to minimal tree)
|
|
397
|
-
"""
|
|
398
402
|
def view(self, pause: bool = False, message: str = None) -> int:
|
|
399
403
|
"""
|
|
400
404
|
open a view window for the configuration
|
|
@@ -449,7 +453,7 @@ class Config:
|
|
|
449
453
|
"""
|
|
450
454
|
write the full configuration in a ply mesh file
|
|
451
455
|
"""
|
|
452
|
-
def writeMeshes(self, pathPrefix:
|
|
456
|
+
def writeMeshes(self, pathPrefix: ..., copyTextures: bool = True, enumerateTextures: bool = False) -> None:
|
|
453
457
|
"""
|
|
454
458
|
write all object meshes in a directory
|
|
455
459
|
"""
|
|
@@ -724,7 +728,7 @@ class Frame:
|
|
|
724
728
|
"""
|
|
725
729
|
def asDict(self) -> dict:
|
|
726
730
|
...
|
|
727
|
-
def computeCompoundInertia(self
|
|
731
|
+
def computeCompoundInertia(self) -> Frame:
|
|
728
732
|
...
|
|
729
733
|
def convertDecomposedShapeToChildFrames(self) -> Frame:
|
|
730
734
|
...
|
|
@@ -784,11 +788,11 @@ class Frame:
|
|
|
784
788
|
"""
|
|
785
789
|
def setImplicitSurface(self, data: ..., size: arr, blur: int, resample: float = -1.0) -> Frame:
|
|
786
790
|
...
|
|
787
|
-
def setJoint(self, jointType: JT, limits: arr =
|
|
791
|
+
def setJoint(self, jointType: JT, limits: arr = ..., scale: float = 1.0, mimic: Frame = None) -> Frame:
|
|
788
792
|
...
|
|
789
793
|
def setJointState(self, arg0: arr) -> Frame:
|
|
790
794
|
...
|
|
791
|
-
def setMass(self,
|
|
795
|
+
def setMass(self, mass: float, inertiaMatrix: arr = ...) -> Frame:
|
|
792
796
|
...
|
|
793
797
|
def setMesh(self, vertices: arr, triangles: uintA, colors: ... = ..., cvxParts: uintA = ...) -> Frame:
|
|
794
798
|
"""
|
robotic/_robotic.so
CHANGED
|
Binary file
|
robotic/cleanMeshes.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import glob
|
|
5
|
+
import os
|
|
6
|
+
from robotic.src.mesh_helper import *
|
|
7
|
+
|
|
8
|
+
parser = argparse.ArgumentParser(
|
|
9
|
+
description='Utility to clean meshes in meshes/')
|
|
10
|
+
|
|
11
|
+
parser.add_argument('-view', help='view mesh', action="store_true")
|
|
12
|
+
parser.add_argument('-meshlab', help='apply meshlab filters', action="store_true", default=False)
|
|
13
|
+
|
|
14
|
+
def main():
|
|
15
|
+
args = parser.parse_args()
|
|
16
|
+
|
|
17
|
+
files = sorted(glob.glob('meshes/*.h5'))
|
|
18
|
+
|
|
19
|
+
for file in files:
|
|
20
|
+
if file[-4]=='-':
|
|
21
|
+
continue
|
|
22
|
+
|
|
23
|
+
M = MeshHelper(file)
|
|
24
|
+
if M.mesh is None:
|
|
25
|
+
continue
|
|
26
|
+
|
|
27
|
+
#-- repair
|
|
28
|
+
print(' before repair:')
|
|
29
|
+
M.report()
|
|
30
|
+
M.repair(mergeTolerance=1e-4)
|
|
31
|
+
# M.texture2vertexColors()
|
|
32
|
+
print(' after repair:')
|
|
33
|
+
print(' watertight:', M.mesh.is_watertight)
|
|
34
|
+
print(' oriented:', M.mesh.is_winding_consistent)
|
|
35
|
+
M.report()
|
|
36
|
+
|
|
37
|
+
#-- export/view
|
|
38
|
+
M.export_h5()
|
|
39
|
+
# M.export_h5(M.filebase+'-.h5')
|
|
40
|
+
if args.view:
|
|
41
|
+
M.view()
|
|
42
|
+
|
|
43
|
+
#-- meshlab processing
|
|
44
|
+
if args.meshlab:
|
|
45
|
+
M.export_ply('z.ply')
|
|
46
|
+
print('<<< meshlab <<<')
|
|
47
|
+
ret = os.system(f'meshlabserver -i z.ply -o {M.filebase}.ply -m vc -s meshlabFilters.mlx')
|
|
48
|
+
print('>>> meshlab >>>')
|
|
49
|
+
if not ret:
|
|
50
|
+
M2 = MeshHelper(f'{M.filebase}.ply')
|
|
51
|
+
# uv = M2.mesh.visual.uv
|
|
52
|
+
# M2.mesh.visual = M.mesh.visual
|
|
53
|
+
# M2.mesh.visual.uv = uv
|
|
54
|
+
# M2.view()
|
|
55
|
+
M2.export_h5(M.filebase+'.h5')
|
|
56
|
+
# os.system(f'rm z.ply {M.filebase}.ply')
|
|
57
|
+
|
|
58
|
+
if __name__ == "__main__":
|
|
59
|
+
main()
|
|
@@ -78,7 +78,8 @@ template<class T> Array<T>::Array(Array<T>&& a)
|
|
|
78
78
|
M(a.M),
|
|
79
79
|
special(a.special) {
|
|
80
80
|
//if(a.jac) jac = std::move(a.jac);
|
|
81
|
-
CHECK_EQ(a.d, &a.d0, "");
|
|
81
|
+
// CHECK_EQ(a.d, &a.d0, "NIY for larger tensors");
|
|
82
|
+
if(a.d!=&a.d0) { d=a.d; a.d=&a.d0; }
|
|
82
83
|
a.p=NULL;
|
|
83
84
|
a.N=a.nd=a.d0=a.d1=a.d2=0;
|
|
84
85
|
a.isReference=false;
|
|
@@ -105,6 +106,7 @@ template<class T> Array<T>::~Array() {
|
|
|
105
106
|
clear();
|
|
106
107
|
#else //faster (leaves members non-zeroed..)
|
|
107
108
|
if(special) { delete special; special=NULL; }
|
|
109
|
+
if(d!=&d0) { delete[] d; }
|
|
108
110
|
if(M) {
|
|
109
111
|
globalMemoryTotal -= M*sizeT;
|
|
110
112
|
if(memMove==1) free(p); else delete[] p;
|
robotic/include/rai/Core/graph.h
CHANGED
|
@@ -133,8 +133,8 @@ struct Graph : NodeL {
|
|
|
133
133
|
//-- basic node retrieval -- users should use the higher-level wrappers below
|
|
134
134
|
Node* findNode(const char* key, bool recurseUp=false, bool recurseDown=false) const; ///< returns nullptr if not found
|
|
135
135
|
NodeL findNodes(const char* key, bool recurseUp=false, bool recurseDown=false) const;
|
|
136
|
-
Node* findNodeOfType(const std::type_info& type, const char* key, bool recurseUp=false, bool recurseDown=false) const;
|
|
137
|
-
NodeL findNodesOfType(const std::type_info& type, const char* key, bool recurseUp=false, bool recurseDown=false) const;
|
|
136
|
+
Node* findNodeOfType(const std::type_info& type, const char* key=0, bool recurseUp=false, bool recurseDown=false) const;
|
|
137
|
+
NodeL findNodesOfType(const std::type_info& type, const char* key=0, bool recurseUp=false, bool recurseDown=false) const;
|
|
138
138
|
NodeL findGraphNodesWithTag(const char* tag) const;
|
|
139
139
|
|
|
140
140
|
//
|
robotic/include/rai/Core/util.h
CHANGED
|
@@ -372,17 +372,17 @@ struct FileToken {
|
|
|
372
372
|
std::shared_ptr<std::ifstream> is;
|
|
373
373
|
|
|
374
374
|
FileToken();
|
|
375
|
-
FileToken(const char* _filename
|
|
375
|
+
FileToken(const char* _filename);
|
|
376
376
|
FileToken(const FileToken& ft);
|
|
377
377
|
~FileToken();
|
|
378
378
|
FileToken& operator()() { return *this; }
|
|
379
379
|
|
|
380
380
|
void decomposeFilename();
|
|
381
|
-
void
|
|
381
|
+
void cd_base();
|
|
382
382
|
void cd_file();
|
|
383
383
|
bool exists();
|
|
384
|
-
std::ostream& getOs(
|
|
385
|
-
std::istream& getIs(
|
|
384
|
+
std::ostream& getOs();
|
|
385
|
+
std::istream& getIs();
|
|
386
386
|
operator std::istream& () { return getIs(); }
|
|
387
387
|
operator std::ostream& () { return getOs(); }
|
|
388
388
|
|
|
@@ -397,7 +397,7 @@ template<class T> FileToken& operator<<(T& x, FileToken& fil) { fil.getIs() >>x;
|
|
|
397
397
|
template<class T> void operator>>(const T& x, FileToken& fil) { fil.getOs() <<x; }
|
|
398
398
|
inline bool operator==(const FileToken&, const FileToken&) { return false; }
|
|
399
399
|
}
|
|
400
|
-
#define FILE(filename) (rai::FileToken(filename
|
|
400
|
+
#define FILE(filename) (rai::FileToken(filename)()) //it needs to return a REFERENCE to a local scope object
|
|
401
401
|
|
|
402
402
|
//===========================================================================
|
|
403
403
|
//
|
|
@@ -606,10 +606,11 @@ inline bool operator==(Type& t1, Type& t2) { return t1.typeId() == t2.typeId();
|
|
|
606
606
|
//
|
|
607
607
|
|
|
608
608
|
template<class T> T fromFile(const char* filename) {
|
|
609
|
-
rai::FileToken file(filename
|
|
609
|
+
rai::FileToken file(filename);
|
|
610
610
|
T x;
|
|
611
|
+
file.cd_file();
|
|
611
612
|
x.read(file.getIs());
|
|
612
|
-
file.
|
|
613
|
+
file.cd_base();
|
|
613
614
|
return x;
|
|
614
615
|
}
|
|
615
616
|
|
robotic/include/rai/Geo/geo.h
CHANGED
|
@@ -74,7 +74,7 @@ struct Matrix {
|
|
|
74
74
|
|
|
75
75
|
Matrix() {}
|
|
76
76
|
Matrix(int zero) { CHECK_EQ(zero, 0, "this is only for initialization with zero"); setZero(); }
|
|
77
|
-
Matrix(const arr& m) {
|
|
77
|
+
Matrix(const arr& m) { set(m); }
|
|
78
78
|
Matrix(const Matrix& m) : m00(m.m00), m01(m.m01), m02(m.m02), m10(m.m10), m11(m.m11), m12(m.m12), m20(m.m20), m21(m.m21), m22(m.m22) {}
|
|
79
79
|
double* p() { return &m00; }
|
|
80
80
|
arr getArr() const { return arr(&m00, 9, true).reshape(3, 3); }
|
|
@@ -84,6 +84,7 @@ struct Matrix {
|
|
|
84
84
|
void setZero();
|
|
85
85
|
void setRandom(double range=1.);
|
|
86
86
|
void setId();
|
|
87
|
+
void set(const arr& X);
|
|
87
88
|
void setDiag(const arr& diag);
|
|
88
89
|
void setSymmetric(const arr& entries6);
|
|
89
90
|
void setSkew(const Vector&);
|
|
@@ -91,7 +92,7 @@ struct Matrix {
|
|
|
91
92
|
|
|
92
93
|
double diffZero() const;
|
|
93
94
|
|
|
94
|
-
bool isDiagonal() const
|
|
95
|
+
bool isDiagonal() const;
|
|
95
96
|
void deleteOffDiagonal() { m01=m02=m10=m12=m20=m21=0.; }
|
|
96
97
|
|
|
97
98
|
void write(std::ostream&) const;
|
robotic/include/rai/Geo/mesh.h
CHANGED
|
@@ -17,7 +17,7 @@ namespace rai { struct Mesh; }
|
|
|
17
17
|
typedef rai::Array<rai::Mesh> MeshA;
|
|
18
18
|
typedef rai::Array<rai::Mesh*> MeshL;
|
|
19
19
|
struct ANN;
|
|
20
|
-
struct SharedTextureImage{ byteA img; uint glBufferID=UINT32_MAX; };
|
|
20
|
+
struct SharedTextureImage{ byteA img; charA file; uint glBufferID=UINT32_MAX; };
|
|
21
21
|
|
|
22
22
|
namespace rai {
|
|
23
23
|
|
|
@@ -45,8 +45,6 @@ struct Mesh {
|
|
|
45
45
|
rai::Transformation glX; ///< transform (only used for drawing! Otherwise use applyOnPoints) (optional)
|
|
46
46
|
|
|
47
47
|
int version = 0;
|
|
48
|
-
long parsing_pos_start;
|
|
49
|
-
long parsing_pos_end;
|
|
50
48
|
|
|
51
49
|
uint _support_vertex=0;
|
|
52
50
|
bool isArrayFormatted=false;
|
|
@@ -31,7 +31,7 @@ struct ManipulationHelper {
|
|
|
31
31
|
void setup_sequence(rai::Configuration& C, uint K, double homing_scale=1e-2, double velocity_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
|
|
32
32
|
void setup_motion(rai::Configuration& C, uint K, uint steps_per_phase, double homing_scale=0., double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
|
|
33
33
|
void setup_pick_and_place_waypoints(rai::Configuration& C, const char* gripper, const char* obj, double homing_scale=1e-2, double velocity_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
|
|
34
|
-
void setup_point_to_point_motion(rai::Configuration& C, const arr& q1, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
|
|
34
|
+
void setup_point_to_point_motion(rai::Configuration& C, const arr& q1, uint steps_per_phase, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true);
|
|
35
35
|
void setup_point_to_point_rrt(rai::Configuration& C, const arr& q0, const arr& q1, const StringA& explicitCollisionPairs);
|
|
36
36
|
|
|
37
37
|
void add_stable_frame(rai::JointType type, const char* parent, const char* name, const char* initName=0, rai::Frame* initFrame=0, double markerSize=-1.);
|
|
@@ -63,7 +63,7 @@ struct ManipulationHelper {
|
|
|
63
63
|
arr sample(const char* sampleMethod=0, int verbose=1);
|
|
64
64
|
void debug(bool listObjectives=true, bool plotOverTime=false);
|
|
65
65
|
|
|
66
|
-
std::shared_ptr<ManipulationHelper> sub_motion(uint phase, bool fixEnd=true, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=
|
|
66
|
+
std::shared_ptr<ManipulationHelper> sub_motion(uint phase, uint steps_per_phase, bool fixEnd=true, double homing_scale=1e-2, double acceleration_scale=1e-1, bool accumulated_collisions=true, bool joint_limits=true, bool quaternion_norms=true, const StringA& activeDofs={});
|
|
67
67
|
std::shared_ptr<rai::RRT_PathFinder> sub_rrt(uint phase, const StringA& explicitCollisionPairs= {}, const StringA& activeDofs={});
|
|
68
68
|
|
|
69
69
|
void play(rai::Configuration& C, double duration=1.);
|
robotic/include/rai/Kin/frame.h
CHANGED
|
@@ -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);
|
|
@@ -175,9 +176,9 @@ struct Frame : NonCopyable {
|
|
|
175
176
|
Frame& setTensorShape(const floatA& data, const arr& size);
|
|
176
177
|
Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur, double resample);
|
|
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
|
|
|
@@ -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);
|
robotic/include/rai/Kin/kin.h
CHANGED
|
@@ -181,8 +181,9 @@ struct Configuration {
|
|
|
181
181
|
void pruneEmptyShapes();
|
|
182
182
|
void reconnectShapesToParents();
|
|
183
183
|
void reconnectLinksToClosestJoints(); ///< re-connect all links to closest joint
|
|
184
|
-
void pruneUselessFrames(bool pruneNamed=false, bool
|
|
185
|
-
void
|
|
184
|
+
void pruneUselessFrames(bool pruneNamed=false, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< delete frames that have no name, joint, and shape
|
|
185
|
+
void processStructure(bool _pruneRigidJoints=false, bool reconnectToLinks=true, bool pruneNonContactShapes=false, bool pruneTransparent=false); ///< call the three above methods in this order
|
|
186
|
+
void processInertias(bool recomputeInertias=true, bool transformToDiagInertia=false);
|
|
186
187
|
void sortFrames();
|
|
187
188
|
void makeObjectsFree(const StringA& objects, double H_cost=0.);
|
|
188
189
|
void addTauJoint();
|
|
@@ -288,7 +289,7 @@ public:
|
|
|
288
289
|
void write(Graph& G) const;
|
|
289
290
|
void writeURDF(std::ostream& os, const char* robotName="myrobot") const;
|
|
290
291
|
void writeCollada(const char* filename, const char* format="collada") const;
|
|
291
|
-
void writeMeshes(str pathPrefix="meshes/") const;
|
|
292
|
+
void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false, bool enumerateTextures=false) const;
|
|
292
293
|
void writeMesh(const char* filename="z.ply") const;
|
|
293
294
|
void read(std::istream& is);
|
|
294
295
|
Graph getGraph() const;
|
|
@@ -25,7 +25,7 @@ struct PhysX_Options {
|
|
|
25
25
|
struct PhysXInterface {
|
|
26
26
|
struct PhysXInterface_self* self=0;
|
|
27
27
|
|
|
28
|
-
PhysXInterface(
|
|
28
|
+
PhysXInterface(rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
|
|
29
29
|
~PhysXInterface();
|
|
30
30
|
|
|
31
31
|
void step(double tau=.01);
|
|
@@ -40,7 +40,6 @@ struct PhysXInterface {
|
|
|
40
40
|
void addJoint(rai::Joint* j);
|
|
41
41
|
void removeJoint(rai::Joint* j);
|
|
42
42
|
void postAddObject(rai::Frame* f);
|
|
43
|
-
void setArticulatedBodiesKinematic(const rai::Configuration& C);
|
|
44
43
|
|
|
45
44
|
void view(bool pause=false, const char* txt=nullptr);
|
|
46
45
|
|
robotic/include/rai/ry/types.h
CHANGED
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
#include <pybind11/pybind11.h>
|
|
18
18
|
#include <pybind11/stl.h>
|
|
19
19
|
#include <pybind11/numpy.h>
|
|
20
|
+
#include <pybind11/pytypes.h>
|
|
20
21
|
|
|
21
|
-
pybind11::dict graph2dict(const rai::Graph& G);
|
|
22
|
+
pybind11::dict graph2dict(const rai::Graph& G, const rai::NodeL& parents={}, bool parentsInKeys=true);
|
|
22
23
|
rai::Graph dict2graph(const pybind11::dict& dict);
|
|
23
24
|
|
|
24
25
|
pybind11::list graph2list(const rai::Graph& G);
|
|
@@ -308,7 +309,7 @@ template <> struct type_caster<rai::Graph> {
|
|
|
308
309
|
}
|
|
309
310
|
|
|
310
311
|
static handle cast(const rai::Graph& G, return_value_policy, handle) {
|
|
311
|
-
return graph2dict(G).release();
|
|
312
|
+
return graph2dict(G, rai::NodeL{}).release();
|
|
312
313
|
}
|
|
313
314
|
};
|
|
314
315
|
|
robotic/librai.so
CHANGED
|
Binary file
|
robotic/meshTool
CHANGED
|
Binary file
|
robotic/mujoco-import.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from config_mujoco import *
|
|
2
|
+
import sysconfig
|
|
3
|
+
|
|
4
|
+
pysite = sysconfig.get_paths()["purelib"]
|
|
5
|
+
file = pysite+"/gymnasium_robotics/envs/assets/kitchen_franka/kitchen_assets/kitchen_env_model.xml"
|
|
6
|
+
# file = '/home/mtoussai/git/MuJoCo2Rai/kitchen_dataset/RUSTIC_ONE_WALL_SMALL.xml'
|
|
7
|
+
|
|
8
|
+
print('=====================', file)
|
|
9
|
+
C = Config_Mujoco(file, visualsOnly=True)
|
|
10
|
+
C.view(True)
|
robotic/rai-robotModels/g1/g1.g
CHANGED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
pelvis: { shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/pelvis.h5>, mass: 0.400236, inertia: [0.00159584, -5.92804e-10, -1.2185e-09, 0.0013267, 3.05393e-09, 0.00119011] },
|
|
2
|
+
pelvis_contour_joint(pelvis): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/pelvis_contour_link.h5>, mass: 0.393642, inertia: [0.00120549, -1.39118e-07, -1.37717e-06, 0.00142459, -1.2061e-07, 0.00136524] },
|
|
3
|
+
left_hip_pitch_joint_origin(pelvis): { Q: [0, 0.064452, -0.1027] },
|
|
4
|
+
right_hip_pitch_joint_origin(pelvis): { Q: [0, -0.064452, -0.1027] },
|
|
5
|
+
imu_in_pelvis_joint_origin(pelvis): { Q: [0.04525, 0, -0.08339] },
|
|
6
|
+
waist_yaw_joint(pelvis): { joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/waist_yaw_link.h5>, mass: 0.168083, inertia: [8.83938e-05, -2.82438e-09, -9.9721e-06, 0.000103081, -2.02902e-09, 0.000150067] },
|
|
7
|
+
left_hip_pitch_joint(left_hip_pitch_joint_origin): { joint: hingeY, limits: [-2.5307, 2.8798], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/left_hip_pitch_link.h5>, mass: 0.264573, inertia: [0.000474721, 4.31311e-06, 5.93997e-06, 0.000392354, 4.96908e-05, 0.000375138] },
|
|
8
|
+
right_hip_pitch_joint(right_hip_pitch_joint_origin): { joint: hingeY, limits: [-2.5307, 2.8798], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/right_hip_pitch_link.h5>, mass: 0.264569, inertia: [0.000474711, -4.31398e-06, 5.94077e-06, 0.000392343, -4.96889e-05, 0.000375138] },
|
|
9
|
+
imu_in_pelvis_joint(imu_in_pelvis_joint_origin): { joint: rigid },
|
|
10
|
+
waist_roll_joint_origin(waist_yaw_joint): { Q: [-0.0039635, 0, 0.035] },
|
|
11
|
+
left_hip_roll_joint_origin(left_hip_pitch_joint): { Q: [0, 0.052, -0.030465, 0.996179, 0, -0.0873386, 0] },
|
|
12
|
+
right_hip_roll_joint_origin(right_hip_pitch_joint): { Q: [0, -0.052, -0.030465, 0.996179, 0, -0.0873386, 0] },
|
|
13
|
+
waist_roll_joint(waist_roll_joint_origin): { joint: hingeX, limits: [-0.52, 0.52], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/waist_roll_link.h5>, mass: 0.0221562, inertia: [4.0451e-06, 7.41165e-11, -2.63317e-11, 3.67093e-06, 3.77707e-11, 2.32541e-06] },
|
|
14
|
+
left_hip_roll_joint(left_hip_roll_joint_origin): { joint: hingeX, limits: [-0.5236, 2.9671], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_hip_roll_link.h5>, mass: 0.388504, inertia: [0.00122176, -2.52983e-06, -0.000212212, 0.00118448, -1.72307e-06, 0.00069136] },
|
|
15
|
+
right_hip_roll_joint(right_hip_roll_joint_origin): { joint: hingeX, limits: [-2.9671, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_hip_roll_link.h5>, mass: 0.388501, inertia: [0.00122175, 2.52204e-06, -0.000212212, 0.00118447, 1.73174e-06, 0.000691349] },
|
|
16
|
+
waist_pitch_joint_origin(waist_roll_joint): { Q: [0, 0, 0.019] },
|
|
17
|
+
left_hip_yaw_joint_origin(left_hip_roll_joint): { Q: [0.025001, 0, -0.12412] },
|
|
18
|
+
right_hip_yaw_joint_origin(right_hip_roll_joint): { Q: [0.025001, 0, -0.12412] },
|
|
19
|
+
waist_pitch_joint(waist_pitch_joint_origin): { joint: hingeY, limits: [-0.52, 0.52], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/torso_link.h5>, mass: 3.72833, inertia: [0.0404695, -1.1264e-05, -0.000266539, 0.0333617, -1.24012e-05, 0.0221975] },
|
|
20
|
+
left_hip_yaw_joint(left_hip_yaw_joint_origin): { joint: hingeZ, limits: [-2.7576, 2.7576], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_hip_yaw_link.h5>, mass: 0.681619, inertia: [0.0044275, -0.000108056, -0.00166275, 0.00545319, -0.000187376, 0.001876] },
|
|
21
|
+
right_hip_yaw_joint(right_hip_yaw_joint_origin): { joint: hingeZ, limits: [-2.7576, 2.7576], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_hip_yaw_link.h5>, mass: 0.681613, inertia: [0.00442747, 0.000108056, -0.00166275, 0.00545319, 0.000187351, 0.00187597] },
|
|
22
|
+
logo_joint_origin(waist_pitch_joint): { Q: [0.0039635, 0, -0.054] },
|
|
23
|
+
head_joint_origin(waist_pitch_joint): { Q: [0.0039635, 0, -0.054] },
|
|
24
|
+
waist_support_joint_origin(waist_pitch_joint): { Q: [0.0039635, 0, -0.054] },
|
|
25
|
+
imu_in_torso_joint_origin(waist_pitch_joint): { Q: [-0.03959, -0.00224, 0.13792] },
|
|
26
|
+
d435_joint_origin(waist_pitch_joint): { Q: [0.0576235, 0.01753, 0.41987, 0.91496, 0, 0.403545, 0] },
|
|
27
|
+
mid360_joint_origin(waist_pitch_joint): { Q: [0.0002835, 3e-05, 0.40618, 0.999799, 0, 0.0200699, 0] },
|
|
28
|
+
left_shoulder_pitch_joint_origin(waist_pitch_joint): { Q: [0.0039563, 0.10022, 0.23778, 0.990264, 0.139201, 4.05418e-05, -9.10379e-05] },
|
|
29
|
+
right_shoulder_pitch_joint_origin(waist_pitch_joint): { Q: [0.0039563, -0.10021, 0.23778, 0.990264, -0.139201, 4.05418e-05, 9.10379e-05] },
|
|
30
|
+
left_knee_joint_origin(left_hip_yaw_joint): { Q: [-0.078273, 0.0021489, -0.17734, 0.996179, 0, 0.0873386, 0] },
|
|
31
|
+
right_knee_joint_origin(right_hip_yaw_joint): { Q: [-0.078273, -0.0021489, -0.17734, 0.996179, 0, 0.0873386, 0] },
|
|
32
|
+
logo_joint(logo_joint_origin): { joint: rigid, shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/logo_link.h5>, mass: 0.0575578, inertia: [0.000100919, -1.65034e-06, 1.03204e-06, 0.000279739, 5.60472e-08, 0.000376764] },
|
|
33
|
+
head_joint(head_joint_origin): { joint: rigid, shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/head_link.h5>, mass: 0.493975, inertia: [0.00295612, 1.28062e-08, -0.000167611, 0.00293932, 2.9539e-08, 0.0012706] },
|
|
34
|
+
waist_support_joint(waist_support_joint_origin): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/waist_support_link.h5>, mass: 0.202405, inertia: [0.00046643, -1.24677e-07, -2.44136e-07, 0.000381836, -3.23169e-08, 0.000786744] },
|
|
35
|
+
imu_in_torso_joint(imu_in_torso_joint_origin): { joint: rigid },
|
|
36
|
+
d435_joint(d435_joint_origin): { joint: rigid },
|
|
37
|
+
mid360_joint(mid360_joint_origin): { joint: rigid },
|
|
38
|
+
left_shoulder_pitch_joint(left_shoulder_pitch_joint_origin): { joint: hingeY, limits: [-3.0892, 2.6704], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_shoulder_pitch_link.h5>, mass: 0.126023, inertia: [0.000160485, -1.66228e-07, 3.91865e-07, 0.000151496, 1.75614e-05, 0.000138798] },
|
|
39
|
+
right_shoulder_pitch_joint(right_shoulder_pitch_joint_origin): { joint: hingeY, limits: [-3.0892, 2.6704], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_shoulder_pitch_link.h5>, mass: 0.126023, inertia: [0.000160483, 1.65124e-07, 3.90512e-07, 0.000151492, -1.75623e-05, 0.000138793] },
|
|
40
|
+
left_knee_joint(left_knee_joint_origin): { joint: hingeY, limits: [-0.087267, 2.8798], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_knee_link.h5>, mass: 0.876712, inertia: [0.00648182, 3.3975e-05, -0.000127209, 0.00672925, -0.000358869, 0.00109586] },
|
|
41
|
+
right_knee_joint(right_knee_joint_origin): { joint: hingeY, limits: [-0.087267, 2.8798], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_knee_link.h5>, mass: 0.876714, inertia: [0.00648176, -3.398e-05, -0.000127209, 0.00672918, 0.000358822, 0.00109587] },
|
|
42
|
+
left_shoulder_roll_joint_origin(left_shoulder_pitch_joint): { Q: [0, 0.038, -0.013831, 0.990268, -0.139172, 0, 0] },
|
|
43
|
+
right_shoulder_roll_joint_origin(right_shoulder_pitch_joint): { Q: [0, -0.038, -0.013831, 0.990268, 0.139172, 0, 0] },
|
|
44
|
+
left_ankle_pitch_joint_origin(left_knee_joint): { Q: [0, -9.4445e-05, -0.30001] },
|
|
45
|
+
right_ankle_pitch_joint_origin(right_knee_joint): { Q: [0, 9.4445e-05, -0.30001] },
|
|
46
|
+
left_shoulder_roll_joint(left_shoulder_roll_joint_origin): { joint: hingeX, limits: [-1.5882, 2.2515], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_shoulder_roll_link.h5>, mass: 0.246281, inertia: [0.000394956, 2.09873e-08, -1.93073e-07, 0.000469736, 1.57454e-05, 0.000272781] },
|
|
47
|
+
right_shoulder_roll_joint(right_shoulder_roll_joint_origin): { joint: hingeX, limits: [-2.2515, 1.5882], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_shoulder_roll_link.h5>, mass: 0.246283, inertia: [0.000394966, -1.6719e-08, -1.89014e-07, 0.000469741, -1.57405e-05, 0.000272773] },
|
|
48
|
+
left_ankle_pitch_joint(left_ankle_pitch_joint_origin): { joint: hingeY, limits: [-0.87267, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_ankle_pitch_link.h5>, mass: 0.0197524, inertia: [2.78775e-06, -2.27316e-10, -5.8987e-07, 4.52084e-06, -3.84759e-10, 2.51425e-06] },
|
|
49
|
+
right_ankle_pitch_joint(right_ankle_pitch_joint_origin): { joint: hingeY, limits: [-0.87267, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_ankle_pitch_link.h5>, mass: 0.0197524, inertia: [2.78777e-06, 2.213e-10, -5.89865e-07, 4.52084e-06, 3.98325e-10, 2.51424e-06] },
|
|
50
|
+
left_shoulder_yaw_joint_origin(left_shoulder_roll_joint): { Q: [0, 0.00624, -0.1032] },
|
|
51
|
+
right_shoulder_yaw_joint_origin(right_shoulder_roll_joint): { Q: [0, -0.00624, -0.1032] },
|
|
52
|
+
left_ankle_roll_joint_origin(left_ankle_pitch_joint): { Q: [0, 0, -0.017558] },
|
|
53
|
+
right_ankle_roll_joint_origin(right_ankle_pitch_joint): { Q: [0, 0, -0.017558] },
|
|
54
|
+
left_shoulder_yaw_joint(left_shoulder_yaw_joint_origin): { joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_shoulder_yaw_link.h5>, mass: 0.330191, inertia: [0.00075724, 1.01914e-05, 0.000118153, 0.000781633, -6.07748e-05, 0.000303097] },
|
|
55
|
+
right_shoulder_yaw_joint(right_shoulder_yaw_joint_origin): { joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_shoulder_yaw_link.h5>, mass: 0.330189, inertia: [0.000757238, -1.01934e-05, 0.000118161, 0.000781632, 6.07703e-05, 0.000303094] },
|
|
56
|
+
left_ankle_roll_joint(left_ankle_roll_joint_origin): { joint: hingeX, limits: [-0.2618, 0.2618], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/left_ankle_roll_link.h5>, mass: 0.456098, inertia: [0.000287801, 6.50248e-08, 8.30648e-05, 0.00151895, -1.18792e-07, 0.0016069] },
|
|
57
|
+
right_ankle_roll_joint(right_ankle_roll_joint_origin): { joint: hingeX, limits: [-0.2618, 0.2618], shape: mesh, color: [0.2, 0.2, 0.2, 1], mesh: <meshes/right_ankle_roll_link.h5>, mass: 0.45609, inertia: [0.0002878, -9.56202e-08, 8.30614e-05, 0.00151893, 1.13682e-07, 0.00160687] },
|
|
58
|
+
left_elbow_joint_origin(left_shoulder_yaw_joint): { Q: [0.015783, 0, -0.080518] },
|
|
59
|
+
right_elbow_joint_origin(right_shoulder_yaw_joint): { Q: [0.015783, 0, -0.080518] },
|
|
60
|
+
left_elbow_joint(left_elbow_joint_origin): { joint: hingeY, limits: [-1.0472, 2.0944], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_elbow_link.h5>, mass: 0.133212, inertia: [0.000105606, 4.41256e-05, 1.51768e-05, 0.000221879, -4.66813e-06, 0.000221601] },
|
|
61
|
+
right_elbow_joint(right_elbow_joint_origin): { joint: hingeY, limits: [-1.0472, 2.0944], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_elbow_link.h5>, mass: 0.133212, inertia: [0.000105601, -4.41257e-05, 1.5176e-05, 0.000221877, 4.66758e-06, 0.000221596] },
|
|
62
|
+
left_wrist_roll_joint_origin(left_elbow_joint): { Q: [0.1, 0.00188791, -0.01] },
|
|
63
|
+
right_wrist_roll_joint_origin(right_elbow_joint): { Q: [0.1, -0.00188791, -0.01] },
|
|
64
|
+
left_wrist_roll_joint(left_wrist_roll_joint_origin): { joint: hingeX, limits: [-1.97222, 1.97222], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_wrist_roll_link.h5>, mass: 0.0819051, inertia: [5.76855e-05, -6.70778e-07, 1.09252e-09, 4.18275e-05, -1.21848e-09, 6.33789e-05] },
|
|
65
|
+
right_wrist_roll_joint(right_wrist_roll_joint_origin): { joint: hingeX, limits: [-1.97222, 1.97222], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_wrist_roll_link.h5>, mass: 0.0819045, inertia: [5.76834e-05, 6.70746e-07, 8.73074e-10, 4.18274e-05, 8.19224e-10, 6.33769e-05] },
|
|
66
|
+
left_wrist_pitch_joint_origin(left_wrist_roll_joint): { Q: [0.038, 0, 0] },
|
|
67
|
+
right_wrist_pitch_joint_origin(right_wrist_roll_joint): { Q: [0.038, 0, 0] },
|
|
68
|
+
left_wrist_pitch_joint(left_wrist_pitch_joint_origin): { joint: hingeY, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_wrist_pitch_link.h5>, mass: 0.102165, inertia: [6.54114e-05, -1.39886e-06, 1.39875e-06, 0.000133698, 1.78434e-08, 0.000133699] },
|
|
69
|
+
right_wrist_pitch_joint(right_wrist_pitch_joint_origin): { joint: hingeY, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_wrist_pitch_link.h5>, mass: 0.102164, inertia: [6.54077e-05, 1.39993e-06, 1.3996e-06, 0.000133692, -1.67215e-08, 0.000133692] },
|
|
70
|
+
left_wrist_yaw_joint_origin(left_wrist_pitch_joint): { Q: [0.046, 0, 0] },
|
|
71
|
+
right_wrist_yaw_joint_origin(right_wrist_pitch_joint): { Q: [0.046, 0, 0] },
|
|
72
|
+
left_wrist_yaw_joint(left_wrist_yaw_joint_origin): { joint: hingeZ, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_wrist_yaw_link.h5>, mass: 0.0806154, inertia: [5.53182e-05, -1.04206e-06, 7.04147e-07, 6.51217e-05, 2.05369e-08, 4.14947e-05] },
|
|
73
|
+
right_wrist_yaw_joint(right_wrist_yaw_joint_origin): { joint: hingeZ, limits: [-1.61443, 1.61443], shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_wrist_yaw_link.h5>, mass: 0.0806224, inertia: [5.53259e-05, 1.04209e-06, 7.04755e-07, 6.51361e-05, -2.11753e-08, 4.15045e-05] },
|
|
74
|
+
left_hand_palm_joint_origin(left_wrist_yaw_joint): { Q: [0.0415, 0.003, 0] },
|
|
75
|
+
right_hand_palm_joint_origin(right_wrist_yaw_joint): { Q: [0.0415, -0.003, 0] },
|
|
76
|
+
left_hand_palm_joint(left_hand_palm_joint_origin): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/left_rubber_hand.h5>, mass: 0.154796, inertia: [0.000129099, 4.62168e-05, 5.26706e-06, 0.000313538, 2.47853e-06, 0.000241113] },
|
|
77
|
+
right_hand_palm_joint(right_hand_palm_joint_origin): { joint: rigid, shape: mesh, color: [0.7, 0.7, 0.7, 1], mesh: <meshes/right_rubber_hand.h5>, mass: 0.154795, inertia: [0.0001291, -4.62179e-05, 5.26836e-06, 0.000313541, -2.47823e-06, 0.000241117] }
|