robotic 0.2.9.dev1__cp39-cp39-manylinux2014_x86_64.whl → 0.2.9.dev2__cp39-cp39-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 +5 -5
- robotic/_robotic.so +0 -0
- robotic/cleanMeshes.py +59 -0
- robotic/include/rai/Core/array.ipp +3 -1
- robotic/include/rai/Core/util.h +8 -7
- robotic/include/rai/Geo/geo.h +2 -1
- robotic/include/rai/KOMO/manipTools.h +2 -2
- robotic/include/rai/Kin/frame.h +2 -2
- robotic/include/rai/Kin/kin.h +3 -3
- 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-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.dev1.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.dev1.dist-info → robotic-0.2.9.dev2.dist-info}/WHEEL +1 -1
- robotic/import.py +0 -0
- 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.dev1.dist-info/RECORD +0 -421
- /robotic/rai-robotModels/robotiq/meshes/{visual/robotiq_ft300.ply → robotiq_ft300.ply} +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-bot +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-h5info +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-info +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-meshTool +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-test +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-urdf2rai +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-urdf2yaml +0 -0
- {robotic-0.2.9.dev1.data → robotic-0.2.9.dev2.data}/scripts/ry-view +0 -0
- {robotic-0.2.9.dev1.dist-info → robotic-0.2.9.dev2.dist-info}/licenses/LICENSE +0 -0
- {robotic-0.2.9.dev1.dist-info → robotic-0.2.9.dev2.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
base_link: { mass: 0.162716, inertia: [0.0007237, -1.55745e-08, -3.42379e-12, 0.000744047, 2.24935e-07, 2.14413e-05] },
|
|
2
|
-
base_link_0(base_link): { Q: [0, 0, 0,
|
|
2
|
+
base_link_0(base_link): { Q: [0, 0, 0, 1, -1, 0, 0], shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/ranger_mini3.h5>, visual: True },
|
|
3
3
|
fr_joint_origin(base_link): { Q: [0.25, -0.19, -0.1] },
|
|
4
4
|
fl_joint_origin(base_link): { Q: [0.25, 0.19, -0.1, -3.67321e-06, 1, 0, 0] },
|
|
5
5
|
br_joint_origin(base_link): { Q: [-0.25, -0.19, -0.1] },
|
|
@@ -12,7 +12,7 @@ fr_Link(fr_joint): { mass: 2.2786, inertia: [0.0063625, -1.0581e-07, -4.0831e-07
|
|
|
12
12
|
fl_Link(fl_joint): { mass: 2.2786, inertia: [0.0063695, -2.1067e-08, -0.00016867, 0.006363, -1.0301e-08, 0.010458] },
|
|
13
13
|
br_Link(br_joint): { mass: 2.2786, inertia: [0.0063627, -2.1069e-08, -1.587e-05, 0.006363, 9.3201e-09, 0.010465] },
|
|
14
14
|
bl_Link(bl_joint): { mass: 2.2786, inertia: [0.0063656, -8.1498e-08, -0.00011049, 0.006363, 6.6847e-08, 0.010462] },
|
|
15
|
-
fr_Link_0(fr_Link): { Q: [-0.248, -0.113, 0.155, 0.000563312, 0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.
|
|
16
|
-
fl_Link_0(fl_Link): { Q: [-0.248, 0.1265, 0.191, 0.000563312, -0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.
|
|
17
|
-
br_Link_0(br_Link): { Q: [-0.241, -0.11, 0.155, 0.000563312, 0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.
|
|
18
|
-
bl_Link_0(bl_Link): { Q: [-0.241, 0.13, 0.2, 0.000563312, -0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.
|
|
15
|
+
fr_Link_0(fr_Link): { Q: [-0.248, -0.113, 0.155, 0.000563312, 0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.h5>, visual: True },
|
|
16
|
+
fl_Link_0(fl_Link): { Q: [-0.248, 0.1265, 0.191, 0.000563312, -0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.h5>, visual: True },
|
|
17
|
+
br_Link_0(br_Link): { Q: [-0.241, -0.11, 0.155, 0.000563312, 0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.h5>, visual: True },
|
|
18
|
+
bl_Link_0(bl_Link): { Q: [-0.241, 0.13, 0.2, 0.000563312, -0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.h5>, visual: True }
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
base_link: { mass: 25.7056, com: [0.0326128, 0.0718265, -0.00166507], inertia: [0.711027, 0.000383359, 0.0416814, 1.36554, 0.00276036, 1.84066] },
|
|
2
|
+
base_link_0(base_link): { Q: [0, 0, 0, 0.707388, -0.706825, 0, 0], shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/ranger_mini3.h5> },
|
|
3
|
+
fr_joint_origin(base_link): { Q: [0.25, -0.19, -0.1] },
|
|
4
|
+
fl_joint_origin(base_link): { Q: [0.25, 0.19, -0.1, -3.67321e-06, 1, 0, 0] },
|
|
5
|
+
br_joint_origin(base_link): { Q: [-0.25, -0.19, -0.1] },
|
|
6
|
+
bl_joint_origin(base_link): { Q: [-0.25, 0.19, -0.1, -3.67321e-06, 1, 0, 0] },
|
|
7
|
+
fr_joint(fr_joint_origin): { joint: hingeZ, joint_scale: -1, mass: 1.34089, com: [-0.49413, -0.335584, 0.280301], inertia: [0.00931857, -3.63082e-06, -4.19248e-06, 0.0101184, 0.000264633, 0.00405613] },
|
|
8
|
+
fl_joint(fl_joint_origin): { joint: hingeZ, joint_scale: -1, mass: 1.33115, com: [-0.493868, 0.257102, 0.304992], inertia: [0.00930652, 2.87129e-06, -2.07991e-05, 0.0101544, -0.000255253, 0.0040282] },
|
|
9
|
+
br_joint(br_joint_origin): { joint: hingeZ, joint_scale: -1, mass: 1.34089, com: [-0.48713, -0.332584, 0.280301], inertia: [0.00931857, -3.63082e-06, -4.19248e-06, 0.0101184, 0.000264633, 0.00405613] },
|
|
10
|
+
bl_joint(bl_joint_origin): { joint: hingeZ, joint_scale: -1, mass: 1.33115, com: [-0.486868, 0.260602, 0.313992], inertia: [0.00930652, 2.87129e-06, -2.07991e-05, 0.0101544, -0.000255253, 0.0040282] },
|
|
11
|
+
fr_Link_0(fr_joint): { Q: [-0.248, -0.113, 0.155, 0.000563312, -0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.h5> },
|
|
12
|
+
fl_Link_0(fl_joint): { Q: [-0.248, 0.1265, 0.191, 0.000563312, 0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.h5> },
|
|
13
|
+
br_Link_0(br_joint): { Q: [-0.241, -0.11, 0.155, 0.000563312, -0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.h5> },
|
|
14
|
+
bl_Link_0(bl_joint): { Q: [-0.241, 0.13, 0.2, 0.000563312, 0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.h5> }
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
robotiq_base: { X: [0, 0, 1] }
|
|
2
2
|
|
|
3
|
-
Include: <
|
|
3
|
+
Include: <robotiq_arg2f_85_model_conv.g>
|
|
4
4
|
Edit robotiq_arg2f_base_link (robotiq_base): {}
|
|
5
5
|
|
|
6
6
|
# add F/T sensor
|
|
7
7
|
|
|
8
|
-
ftsensor (robotiq_base): { Q: [0, 0, -.035], shape: mesh, color: [0.2, 0.2, 0.2], mesh: <meshes/
|
|
8
|
+
ftsensor (robotiq_base): { Q: [0, 0, -.035], shape: mesh, color: [0.2, 0.2, 0.2], mesh: <meshes/robotiq_ft300.ply> }
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
# define a gripper, palm and fingers
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
robotiq_arg2f_base_link: { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_base_link.h5>, mass: 0.16309, inertia: [0.00022626, 6.22636e-10, 6.5573e-11, 0.000188087, -3.11813e-07, 0.000141097] },
|
|
2
|
+
finger_joint_origin(robotiq_arg2f_base_link): { Q: [0, -0.0306011, 0.054904, 6.12323e-17, 0, 0, 1] },
|
|
3
|
+
left_inner_knuckle_joint_origin(robotiq_arg2f_base_link): { Q: [0, -0.0127, 0.06142, 6.12323e-17, 0, 0, 1] },
|
|
4
|
+
right_outer_knuckle_joint_origin(robotiq_arg2f_base_link): { Q: [0, 0.0306011, 0.054904] },
|
|
5
|
+
right_inner_knuckle_joint_origin(robotiq_arg2f_base_link): { Q: [0, 0.0127, 0.06142] },
|
|
6
|
+
finger_joint(finger_joint_origin): { joint: hingeX, limits: [0, 0.8], shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/robotiq_arg2f_85_outer_knuckle.h5>, mass: 0.0141429, inertia: [3.26716e-06, -5.23289e-17, 8.54928e-17, 3.03476e-06, 1.77988e-07, 8.59178e-07] },
|
|
7
|
+
left_inner_knuckle_joint(left_inner_knuckle_joint_origin): { joint: hingeX, limits: [0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_inner_knuckle.h5>, mass: 0.0293528, inertia: [1.18448e-05, -2.51482e-13, 9.42698e-14, 1.16071e-05, -5.32477e-06, 9.92039e-06] },
|
|
8
|
+
right_outer_knuckle_joint(right_outer_knuckle_joint_origin): { joint: hingeX, limits: [0, 0.81], mimic: finger_joint, shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/robotiq_arg2f_85_outer_knuckle.h5>, mass: 0.0141429, inertia: [3.26716e-06, -5.23289e-17, 8.54928e-17, 3.03476e-06, 1.77988e-07, 8.59178e-07] },
|
|
9
|
+
right_inner_knuckle_joint(right_inner_knuckle_joint_origin): { joint: hingeX, limits: [0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_inner_knuckle.h5>, mass: 0.0293528, inertia: [1.18448e-05, -2.51482e-13, 9.42698e-14, 1.16071e-05, -5.32477e-06, 9.92039e-06] },
|
|
10
|
+
left_outer_finger_joint_origin(finger_joint): { Q: [0, 0.0315, -0.0041] },
|
|
11
|
+
right_outer_finger_joint_origin(right_outer_knuckle_joint): { Q: [0, 0.0315, -0.0041] },
|
|
12
|
+
left_outer_finger_joint(left_outer_finger_joint_origin): { joint: rigid, shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_outer_finger.h5>, mass: 0.0246725, inertia: [8.05877e-06, 5.27023e-16, -3.05353e-16, 9.48665e-06, -9.13935e-07, 2.56178e-06] },
|
|
13
|
+
right_outer_finger_joint(right_outer_finger_joint_origin): { joint: rigid, shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_outer_finger.h5>, mass: 0.0246725, inertia: [8.05877e-06, 5.27023e-16, -3.05353e-16, 9.48665e-06, -9.13935e-07, 2.56178e-06] },
|
|
14
|
+
left_inner_finger_joint_origin(left_outer_finger_joint): { Q: [0, 0.0061, 0.0471] },
|
|
15
|
+
right_inner_finger_joint_origin(right_outer_finger_joint): { Q: [0, 0.0061, 0.0471] },
|
|
16
|
+
left_inner_finger_joint(left_inner_finger_joint_origin): { joint: hingeX, limits: [0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_inner_finger.h5>, mass: 0.0205822, inertia: [5.68083e-06, -1.41221e-12, 4.89169e-12, 4.88007e-06, 1.15703e-06, 1.93071e-06] },
|
|
17
|
+
right_inner_finger_joint(right_inner_finger_joint_origin): { joint: hingeX, limits: [0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/robotiq_arg2f_85_inner_finger.h5>, mass: 0.0205822, inertia: [5.68083e-06, -1.41221e-12, 4.89169e-12, 4.88007e-06, 1.15703e-06, 1.93071e-06] },
|
|
18
|
+
left_inner_finger_pad_joint_origin(left_inner_finger_joint): { Q: [0, -0.0220203, 0.03242] },
|
|
19
|
+
right_inner_finger_pad_joint_origin(right_inner_finger_joint): { Q: [0, -0.0220203, 0.03242] },
|
|
20
|
+
left_inner_finger_pad_joint(left_inner_finger_pad_joint_origin): { joint: rigid, shape: box, size: [0.022, 0.00635, 0.0375], color: [0.9, 0.9, 0.9, 1], mass: 0.0120282, inertia: [1.73997e-05, 2.27364e-05, 6.30668e-06] },
|
|
21
|
+
right_inner_finger_pad_joint(right_inner_finger_pad_joint_origin): { joint: rigid, shape: box, size: [0.022, 0.00635, 0.0375], color: [0.9, 0.9, 0.9, 1], mass: 0.0120282, inertia: [1.73997e-05, 2.27364e-05, 6.30668e-06] }
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
robotiq_arg2f_base_link: { mass: 0.22652, inertia: [0.00020005, -4.2442e-10, -2.9069e-10, 0.00017832, -3.4402e-08, 0.00013478] }
|
|
2
2
|
robotiq_arg2f_base_link_0(robotiq_arg2f_base_link): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_base_link.ply>, meshscale: 0.001, visual: True }
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
finger_joint(
|
|
8
|
-
left_inner_knuckle_joint(
|
|
9
|
-
right_outer_knuckle_joint(
|
|
10
|
-
right_inner_knuckle_joint(
|
|
3
|
+
robotiq_arg2f_base_link>finger_joint(robotiq_arg2f_base_link): { Q: [0, -0.0306011, 0.054904, 6.12323e-17, 0, 0, 1] }
|
|
4
|
+
robotiq_arg2f_base_link>left_inner_knuckle_joint(robotiq_arg2f_base_link): { Q: [0, -0.0127, 0.06142, 6.12323e-17, 0, 0, 1] }
|
|
5
|
+
robotiq_arg2f_base_link>right_outer_knuckle_joint(robotiq_arg2f_base_link): { Q: [0, 0.0306011, 0.054904, 1, 0, 0, 0] }
|
|
6
|
+
robotiq_arg2f_base_link>right_inner_knuckle_joint(robotiq_arg2f_base_link): { Q: [0, 0.0127, 0.06142, 1, 0, 0, 0] }
|
|
7
|
+
finger_joint(robotiq_arg2f_base_link>finger_joint): { joint: hingeX, limits: [0, 0.8, 2, -1, 1000], ctrl_limits: [2, -1, 1000] }
|
|
8
|
+
left_inner_knuckle_joint(robotiq_arg2f_base_link>left_inner_knuckle_joint): { joint: hingeX, limits: [0, 0.8757, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
|
|
9
|
+
right_outer_knuckle_joint(robotiq_arg2f_base_link>right_outer_knuckle_joint): { joint: hingeX, limits: [0, 0.81, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
|
|
10
|
+
right_inner_knuckle_joint(robotiq_arg2f_base_link>right_inner_knuckle_joint): { joint: hingeX, limits: [0, 0.8757, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
|
|
11
11
|
left_outer_knuckle_0(finger_joint): { shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/visual/robotiq_arg2f_85_outer_knuckle.ply>, meshscale: 0.001, visual: True }
|
|
12
|
-
left_outer_finger_0(finger_joint): {
|
|
13
|
-
|
|
12
|
+
left_outer_finger_0(finger_joint): { Q: [0, 0.0315, -0.0041, 1, 0, 0, 0], shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_outer_finger.ply>, meshscale: 0.001, visual: True }
|
|
13
|
+
left_outer_finger>left_inner_finger_joint(finger_joint): { Q: [0, 0.0376, 0.043, 1, 0, 0, 0] }
|
|
14
14
|
left_inner_knuckle_0(left_inner_knuckle_joint): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_inner_knuckle.ply>, meshscale: 0.001, visual: True }
|
|
15
15
|
right_outer_knuckle_0(right_outer_knuckle_joint): { shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/visual/robotiq_arg2f_85_outer_knuckle.ply>, meshscale: 0.001, visual: True }
|
|
16
|
-
right_outer_finger_0(right_outer_knuckle_joint): {
|
|
17
|
-
|
|
16
|
+
right_outer_finger_0(right_outer_knuckle_joint): { Q: [0, 0.0315, -0.0041, 1, 0, 0, 0], shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_outer_finger.ply>, meshscale: 0.001, visual: True }
|
|
17
|
+
right_outer_finger>right_inner_finger_joint(right_outer_knuckle_joint): { Q: [0, 0.0376, 0.043, 1, 0, 0, 0] }
|
|
18
18
|
right_inner_knuckle_0(right_inner_knuckle_joint): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_inner_knuckle.ply>, meshscale: 0.001, visual: True }
|
|
19
|
-
left_inner_finger_joint(
|
|
20
|
-
right_inner_finger_joint(
|
|
19
|
+
left_inner_finger_joint(left_outer_finger>left_inner_finger_joint): { joint: hingeX, limits: [0, 0.8757, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
|
|
20
|
+
right_inner_finger_joint(right_outer_finger>right_inner_finger_joint): { joint: hingeX, limits: [0, 0.8757, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
|
|
21
21
|
left_inner_finger_0(left_inner_finger_joint): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_inner_finger.ply>, meshscale: 0.001, visual: True }
|
|
22
|
-
left_inner_finger_pad_0(left_inner_finger_joint): {
|
|
22
|
+
left_inner_finger_pad_0(left_inner_finger_joint): { Q: [0, -0.0220203, 0.03242, 1, 0, 0, 0], shape: box, size: [0.022, 0.00635, 0.0375, 0], color: [0.9, 0.9, 0.9, 1], visual: True }
|
|
23
23
|
right_inner_finger_0(right_inner_finger_joint): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_inner_finger.ply>, meshscale: 0.001, visual: True }
|
|
24
|
-
right_inner_finger_pad_0(right_inner_finger_joint): {
|
|
24
|
+
right_inner_finger_pad_0(right_inner_finger_joint): { Q: [0, -0.0220203, 0.03242, 1, 0, 0, 0], shape: box, size: [0.022, 0.00635, 0.0375, 0], color: [0.9, 0.9, 0.9, 1], visual: True }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
base { X:[0 0 .5], multibody, multibody_gravity: false }
|
|
2
|
-
jointX(base){ joint:transX, mass:.01, limits: [-1.,1.], motorLambda: .01, motorMass: .01, sampleUniform: 1. }
|
|
3
|
-
jointY(jointX){ joint:transY, mass:.01, limits: [-1.,1.], motorLambda: .01, motorMass: .01, sampleUniform: 1. }
|
|
2
|
+
jointX(base){ joint:transX, mass:.01, inertia:[.01,.01,.01], limits: [-1.,1.], motorLambda: .01, motorMass: .01, sampleUniform: 1. }
|
|
3
|
+
jointY(jointX){ joint:transY, mass:.01, inertia:[.01,.01,.01], limits: [-1.,1.], motorLambda: .01, motorMass: .01, sampleUniform: 1. }
|
|
4
4
|
jointZ(jointY){ joint:transZ, limits: [-1.,1.], motorLambda: .01, motorMass: .01, sampleUniform: 1. }
|
|
5
5
|
finger(jointZ){ shape:sphere, size:[.02], color:[.5 1 1], contact:1, mass: .1 }
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
world: {}
|
|
3
|
-
|
|
4
2
|
table: { X: [0, 0, .1], shape: ssBox, size: [2, 2, .1, .02], color: [.3, .3, .3] }
|
|
5
3
|
|
|
6
4
|
obj: { X: [0, 0, 2], shape: marker, size: [.3] }
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
part3 (obj): { Q: "t(0 .25 0) d(90 1 0 0)", shape: capsule, size: [1.5, .05], color: [.9, .9, .9] }
|
|
5
|
+
part1 (obj): { Q: "t(0 -.5 0) d(90 0 1 0)", shape: sphere, size: [.15], color: [.9, .9, .9], mass: 1 }
|
|
6
|
+
part2 (obj): { Q: "t(0 .5 0)", shape: capsule, size: [1., .05], color: [.9, .9, .9], mass: 1 }
|
|
7
|
+
part3 (obj): { Q: "t(0 .25 0) d(90 1 0 0)", shape: capsule, size: [1.5, .05], color: [.9, .9, .9], mass: 1 }
|
|
11
8
|
part4 (obj): { Q: "t(.3 1. 0) d(90 1 0 0)", shape: ssBox, size: [.5, .5, .5, .05], color: [.9, .9, .9], mass: 1 }
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
world: { },
|
|
2
|
+
world_joint_origin(world): { Q: [0, 0, 1] },
|
|
3
|
+
world_joint(world_joint_origin): { joint: rigid, shape: mesh, color: [0.371451, 0.371451, 0.371451, 1], mesh: <meshes/base.h5>, mass: 0.328598, inertia: [0.000876246, -3.50721e-07, -2.99737e-08, 0.000730367, 2.05527e-06, 0.00143972] },
|
|
4
|
+
shoulder_pan_joint_origin(world_joint): { Q: [0, 0, 0.1273] },
|
|
5
|
+
shoulder_pan_joint(shoulder_pan_joint_origin): { joint: hingeZ, limits: [-6.28319, 6.28319], shape: mesh, mesh: <meshes/shoulder.h5>, mass: 0.909582, inertia: [0.00565017, -6.93355e-06, -8.74462e-06, 0.00537262, -4.97716e-05, 0.00439801] },
|
|
6
|
+
shoulder_lift_joint_origin(shoulder_pan_joint): { Q: [0, 0.220941, 0, 0.707107, 0, 0.707107, 0] },
|
|
7
|
+
shoulder_lift_joint(shoulder_lift_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319], shape: mesh, mesh: <meshes/upperarm.h5>, mass: 2.43496, inertia: [0.159184, 1.47112e-05, -8.39265e-05, 0.157564, 0.000647215, 0.0100854] },
|
|
8
|
+
elbow_joint_origin(shoulder_lift_joint): { Q: [0, -0.1719, 0.612] },
|
|
9
|
+
elbow_joint(elbow_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319], shape: mesh, mesh: <meshes/forearm.h5>, mass: 1.75122, inertia: [0.0968559, -9.76006e-06, 1.57892e-05, 0.0958587, 0.000947383, 0.00463623] },
|
|
10
|
+
wrist_1_joint_origin(elbow_joint): { Q: [0, 0, 0.5723, 0.707107, 0, 0.707107, 0] },
|
|
11
|
+
wrist_1_joint(wrist_1_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319], shape: mesh, mesh: <meshes/wrist1.h5>, mass: 0.361159, inertia: [0.000895857, 1.09527e-06, 9.37493e-07, 0.000848918, -1.01451e-05, 0.000646337] },
|
|
12
|
+
wrist_2_joint_origin(wrist_1_joint): { Q: [0, 0.1149, 0] },
|
|
13
|
+
wrist_2_joint(wrist_2_joint_origin): { joint: hingeZ, limits: [-6.28319, 6.28319], shape: mesh, mesh: <meshes/wrist2.h5>, mass: 0.361992, inertia: [0.000898399, -5.86223e-07, -1.0802e-06, 0.000648368, -1.06317e-05, 0.000850769] },
|
|
14
|
+
wrist_3_joint_origin(wrist_2_joint): { Q: [0, 0, 0.1157] },
|
|
15
|
+
wrist_3_joint(wrist_3_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319], shape: mesh, color: [0.464314, 0.464314, 0.464314, 1], mesh: <meshes/wrist3.h5>, mass: 0.108345, inertia: [8.36376e-05, 4.10321e-09, 1.31385e-08, 0.000134503, -9.21218e-09, 8.00354e-05] },
|
|
16
|
+
ee_fixed_joint_origin(wrist_3_joint): { Q: [0, 0.0922, 0, 0.707107, 0, 0, 0.707107] },
|
|
17
|
+
ee_fixed_joint(ee_fixed_joint_origin): { joint: rigid }
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# from config_mujoco import *
|
|
4
|
+
# from config_urdf import *
|
|
5
|
+
# from mesh_helper import *
|
|
6
|
+
from robotic.src.yaml_helper import *
|
|
7
|
+
import robotic as ry
|
|
8
|
+
import argparse
|
|
9
|
+
import glob
|
|
10
|
+
import os
|
|
11
|
+
|
|
12
|
+
parser = argparse.ArgumentParser(
|
|
13
|
+
description='Utility to clean meshes in meshes/')
|
|
14
|
+
|
|
15
|
+
parser.add_argument('file', type=str, help='urdf file', nargs='?', default='none')
|
|
16
|
+
|
|
17
|
+
parser.add_argument('-view', help='view mesh', action="store_true", default=True)
|
|
18
|
+
parser.add_argument('-flipDaeYZ', help='view mesh', action="store_true", default=False)
|
|
19
|
+
parser.add_argument('-recomputeInertias', help='view mesh', action="store_true")
|
|
20
|
+
parser.add_argument('-processMeshes', help='view mesh', action="store_true", default=True)
|
|
21
|
+
parser.add_argument('-meshlab', help='apply meshlab filters', action="store_true", default=False)
|
|
22
|
+
|
|
23
|
+
def main():
|
|
24
|
+
args = parser.parse_args()
|
|
25
|
+
|
|
26
|
+
if args.file=='none':
|
|
27
|
+
# args.file = '/home/mtoussai/git/rai-robotModels/pr2/pr2.urdf'
|
|
28
|
+
args.file = '/home/mtoussai/git/rai-robotModels/panda/panda_arm_hand.urdf'
|
|
29
|
+
# args.file = '/home/mtoussai/git/rai-robotModels/g1/g1_description/g1_29dof.urdf'
|
|
30
|
+
# args.file = '/home/mtoussai/git/rai-robotModels/ranger/ranger_mini.urdf'
|
|
31
|
+
|
|
32
|
+
print('=== URDF CONVERT ===', args.file)
|
|
33
|
+
|
|
34
|
+
path, file = os.path.split(args.file)
|
|
35
|
+
filebase, _ = os.path.splitext(file)
|
|
36
|
+
|
|
37
|
+
if args.flipDaeYZ:
|
|
38
|
+
ry.params_add({'assimp/daeFlipYZ': False})
|
|
39
|
+
|
|
40
|
+
C = ry.URDFLoader(args.file, visualsOnly=True, meshPathRemove='package://').C
|
|
41
|
+
|
|
42
|
+
C.processStructure(False, True, False, False)
|
|
43
|
+
C.processInertias(args.recomputeInertias)
|
|
44
|
+
C.processStructure(False, True, False, False)
|
|
45
|
+
|
|
46
|
+
os.system('rm -Rf meshes/')
|
|
47
|
+
C.writeMeshes('meshes/', copyTextures=True)
|
|
48
|
+
|
|
49
|
+
print('#frames: ', C.getFrameDimension())
|
|
50
|
+
with open(f'{filebase}_conv.g', 'w') as fil:
|
|
51
|
+
#yaml.dump(C.asDict(), file, default_flow_style=False)
|
|
52
|
+
fil.write(C.write())
|
|
53
|
+
|
|
54
|
+
yaml_write_dict(C.asDict(), f'{filebase}_conv.yml')
|
|
55
|
+
|
|
56
|
+
C.view(True)
|
|
57
|
+
# C.animate()
|
|
58
|
+
|
|
59
|
+
if args.processMeshes:
|
|
60
|
+
for file in sorted(glob.glob('meshes/*.h5')):
|
|
61
|
+
|
|
62
|
+
M = ry.MeshHelper(file)
|
|
63
|
+
if M.mesh is None:
|
|
64
|
+
continue
|
|
65
|
+
|
|
66
|
+
M.repair(mergeTolerance=1e-4)
|
|
67
|
+
print(' watertight:', M.mesh.is_watertight)
|
|
68
|
+
print(' oriented:', M.mesh.is_winding_consistent)
|
|
69
|
+
M.report()
|
|
70
|
+
M.export_h5()
|
|
71
|
+
|
|
72
|
+
if __name__ == "__main__":
|
|
73
|
+
main()
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
|
|
2
|
+
import os
|
|
3
|
+
import numpy as np
|
|
4
|
+
import robotic as ry
|
|
5
|
+
import xml.etree.ElementTree as ET
|
|
6
|
+
from copy import copy
|
|
7
|
+
|
|
8
|
+
class MujocoLoader():
|
|
9
|
+
|
|
10
|
+
def __init__(self, file, visualsOnly=True):
|
|
11
|
+
self.visualsOnly = visualsOnly
|
|
12
|
+
self.debug_counter = 0
|
|
13
|
+
self.muj2rai_joint_map = {
|
|
14
|
+
'1 0 0': ry.JT.hingeX,
|
|
15
|
+
'0 1 0': ry.JT.hingeY,
|
|
16
|
+
'0 0 1': ry.JT.hingeZ,
|
|
17
|
+
'-1 0 0': ry.JT.hingeX,
|
|
18
|
+
'0 -1 0': ry.JT.hingeY,
|
|
19
|
+
'0 0 -1': ry.JT.hingeZ,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
tree = ET.parse(file)
|
|
23
|
+
path, _ = os.path.split(file)
|
|
24
|
+
root = tree.getroot()
|
|
25
|
+
|
|
26
|
+
self.materials = {}
|
|
27
|
+
self.textures = {}
|
|
28
|
+
self.meshes = {}
|
|
29
|
+
self.load_assets(root, path)
|
|
30
|
+
self.bodyCount = -1
|
|
31
|
+
|
|
32
|
+
self.C = ry.Config()
|
|
33
|
+
self.base = self.C.addFrame('base')
|
|
34
|
+
self.base.addAttributes({'multibody':True})
|
|
35
|
+
self.base.setQuaternion([0,0,0,1])
|
|
36
|
+
self.add_node(root, self.base, path, 0)
|
|
37
|
+
|
|
38
|
+
def as_floats(self, input_string):
|
|
39
|
+
return [float(num) for num in input_string.replace(',', ' ').split()]
|
|
40
|
+
|
|
41
|
+
def load_assets(self, root, path):
|
|
42
|
+
texs = root.findall('.//texture')
|
|
43
|
+
for tex in texs:
|
|
44
|
+
name = tex.attrib.get('name', '')
|
|
45
|
+
file = tex.attrib.get('file', '')
|
|
46
|
+
self.textures[name] = os.path.join(path, file)
|
|
47
|
+
|
|
48
|
+
maters = root.findall('.//material')
|
|
49
|
+
for mater in maters:
|
|
50
|
+
name = mater.attrib.get('name', '')
|
|
51
|
+
color = mater.attrib.get('rgba', '')
|
|
52
|
+
texture_name = mater.attrib.get('texture', '')
|
|
53
|
+
if texture_name:
|
|
54
|
+
self.materials[name] = self.textures[texture_name]
|
|
55
|
+
elif color:
|
|
56
|
+
self.materials[name] = color
|
|
57
|
+
else:
|
|
58
|
+
self.materials[name] = ''
|
|
59
|
+
|
|
60
|
+
for mesh in root.findall('.//mesh'):
|
|
61
|
+
name = mesh.attrib.get('name', '')
|
|
62
|
+
file = mesh.attrib.get('file', '')
|
|
63
|
+
if file.startswith('visual') or file.startswith('collision'): #HACK: the true path is hidden in some compiler attribute
|
|
64
|
+
file = 'meshes/'+file
|
|
65
|
+
mesh.attrib['file'] = file
|
|
66
|
+
self.meshes[name] = mesh.attrib
|
|
67
|
+
|
|
68
|
+
def add_node(self, node, f_parent, path, level):
|
|
69
|
+
if 'file' in node.attrib:
|
|
70
|
+
file = node.attrib['file']
|
|
71
|
+
node.attrib['file'] = os.path.join(path, file)
|
|
72
|
+
|
|
73
|
+
print('|'+level*' ', node.tag, node.attrib)
|
|
74
|
+
|
|
75
|
+
if node.tag == 'include':
|
|
76
|
+
file = node.attrib['file']
|
|
77
|
+
tree = ET.parse(file)
|
|
78
|
+
root = tree.getroot()
|
|
79
|
+
path, _ = os.path.split(file)
|
|
80
|
+
self.load_assets(root, path)
|
|
81
|
+
self.add_node(root, f_parent, path, level+1)
|
|
82
|
+
|
|
83
|
+
f_body = None
|
|
84
|
+
|
|
85
|
+
if node.tag == 'body':
|
|
86
|
+
f_body = self.add_body(node, f_parent)
|
|
87
|
+
|
|
88
|
+
for child in node:
|
|
89
|
+
if f_body is None:
|
|
90
|
+
self.add_node(child, f_parent, path, level+1)
|
|
91
|
+
else:
|
|
92
|
+
self.add_node(child, f_body, path, level+1)
|
|
93
|
+
|
|
94
|
+
def add_body(self, body, f_parent):
|
|
95
|
+
self.bodyCount += 1
|
|
96
|
+
body_name = body.attrib.get('name', f'body_{self.bodyCount}')
|
|
97
|
+
|
|
98
|
+
# if self.C.getFrame(body_name, False):
|
|
99
|
+
body_name = f'{body_name}_{self.bodyCount}'
|
|
100
|
+
f_body = self.C.addFrame(body_name)
|
|
101
|
+
f_body.setParent(f_parent)
|
|
102
|
+
self.setRelativePose(f_body, body.attrib)
|
|
103
|
+
|
|
104
|
+
for i, joint in enumerate(body.findall('./joint')):
|
|
105
|
+
axis = joint.attrib.get('axis', None)
|
|
106
|
+
limits = joint.attrib.get('range', None)
|
|
107
|
+
joint_name = joint.attrib.get('name', f'{body_name}_joint{i*'_'}')
|
|
108
|
+
f_origin = self.C.addFrame(f'{joint_name}_origin')
|
|
109
|
+
f_origin.setParent(f_body)
|
|
110
|
+
self.setRelativePose(f_origin, joint.attrib)
|
|
111
|
+
f_origin.unLink()
|
|
112
|
+
f_origin.setParent(f_parent, True)
|
|
113
|
+
|
|
114
|
+
if axis:
|
|
115
|
+
if axis in self.muj2rai_joint_map:
|
|
116
|
+
axis = self.muj2rai_joint_map[axis]
|
|
117
|
+
else:
|
|
118
|
+
vec1 = np.array([0., 0., 1.])
|
|
119
|
+
vec2 = np.array(self.as_floats(axis))
|
|
120
|
+
quat = ry.Quaternion().setDiff(vec1, vec2).getArr()
|
|
121
|
+
f_origin.setRelativeQuaternion(quat)
|
|
122
|
+
axis = ry.JT.hingeZ
|
|
123
|
+
else:
|
|
124
|
+
axis = ry.JT.hingeZ
|
|
125
|
+
|
|
126
|
+
if joint.attrib.get('type', 'hinge')=='slide':
|
|
127
|
+
trans_map = {
|
|
128
|
+
ry.JT.hingeX: ry.JT.transX,
|
|
129
|
+
ry.JT.hingeY: ry.JT.transY,
|
|
130
|
+
ry.JT.hingeZ: ry.JT.transZ}
|
|
131
|
+
axis = trans_map[axis]
|
|
132
|
+
|
|
133
|
+
if not limits:
|
|
134
|
+
limits = '-1 1'
|
|
135
|
+
|
|
136
|
+
# if self.C.getFrame(joint_name, False):
|
|
137
|
+
# joint_name = f'{joint_name}_{self.bodyCount}'
|
|
138
|
+
f_joint = self.C.addFrame(joint_name)
|
|
139
|
+
f_joint.setParent(f_origin)
|
|
140
|
+
f_joint.setJoint(axis, self.as_floats(limits))
|
|
141
|
+
|
|
142
|
+
# relink body:
|
|
143
|
+
f_parent = f_joint
|
|
144
|
+
f_body.unLink()
|
|
145
|
+
f_body.setParent(f_parent, True)
|
|
146
|
+
|
|
147
|
+
for i, geom in enumerate(body.findall('./geom')):
|
|
148
|
+
isColl = ('contype' in geom.attrib and geom.attrib.get('contype', '')!='0') or 'col' in geom.attrib.get('class','')
|
|
149
|
+
if self.visualsOnly and isColl:
|
|
150
|
+
continue
|
|
151
|
+
|
|
152
|
+
f_shape = self.C.addFrame(f'{body_name}_shape{i}')
|
|
153
|
+
f_shape.setParent(f_body)
|
|
154
|
+
|
|
155
|
+
if 'mesh' in geom.attrib:
|
|
156
|
+
mesh = geom.attrib.get('mesh', '')
|
|
157
|
+
material_name = geom.attrib.get('material', '')
|
|
158
|
+
texture_path = self.materials.get(material_name, None)
|
|
159
|
+
meshfile = self.meshes[mesh]['file']
|
|
160
|
+
scale = self.as_floats(self.meshes[mesh].get('scale', '1 1 1'))
|
|
161
|
+
|
|
162
|
+
f_shape.setMeshFile(meshfile, scale[0])
|
|
163
|
+
|
|
164
|
+
if texture_path:
|
|
165
|
+
if len(texture_path.split()) == 4: # Is a color rgba
|
|
166
|
+
f_shape.setColor(self.as_floats(texture_path))
|
|
167
|
+
|
|
168
|
+
elif 'type' in geom.attrib:
|
|
169
|
+
size = self.as_floats(geom.attrib['size'])
|
|
170
|
+
if geom.attrib['type']=='capsule':
|
|
171
|
+
if 'fromto' in geom.attrib:
|
|
172
|
+
fromto = self.as_floats(geom.attrib['fromto'])
|
|
173
|
+
a, b = np.array(fromto[:3]), np.array(fromto[3:])
|
|
174
|
+
l = np.linalg.norm(b-a)
|
|
175
|
+
q = ry.Quaternion().setDiff([0,0,1],(b-a)/l)
|
|
176
|
+
f_shape.setRelativePosition(0.5*(a+b))
|
|
177
|
+
f_shape.setRelativeQuaternion(q.getArr())
|
|
178
|
+
f_shape.setShape(ry.ST.capsule, [l, size[0]])
|
|
179
|
+
elif len(size)==2:
|
|
180
|
+
f_shape.setShape(ry.ST.capsule, [2.*size[1], size[0]])
|
|
181
|
+
|
|
182
|
+
elif geom.attrib['type']=='cylinder':
|
|
183
|
+
if len(size)==2:
|
|
184
|
+
f_shape.setShape(ry.ST.cylinder, [2.*size[1], size[0]])
|
|
185
|
+
|
|
186
|
+
elif geom.attrib['type']=='box':
|
|
187
|
+
assert len(size)==3
|
|
188
|
+
f_shape.setShape(ry.ST.box, [2.*f for f in size])
|
|
189
|
+
if geom.attrib.get('material', None):
|
|
190
|
+
texture_path = self.materials[geom.attrib.get('material', None)]
|
|
191
|
+
if len(texture_path.split()) == 4: # Is a color rgba
|
|
192
|
+
f_shape.setColor(self.as_floats(texture_path))
|
|
193
|
+
else:
|
|
194
|
+
print('applying to box:', texture_path)
|
|
195
|
+
#TODO incorperate <texrepeat> tag correctly
|
|
196
|
+
uv_coords = np.array([
|
|
197
|
+
[0, 0], # vertex 0
|
|
198
|
+
[1, 0], # vertex 1
|
|
199
|
+
[1, 1], # vertex 2
|
|
200
|
+
[0, 1], # vertex 3
|
|
201
|
+
[0, 0], # vertex 4
|
|
202
|
+
[1, 0], # vertex 5
|
|
203
|
+
[1, 1], # vertex 6
|
|
204
|
+
[0, 1] # vertex 7
|
|
205
|
+
])
|
|
206
|
+
|
|
207
|
+
f_shape.setTextureFile(texture_path, uv_coords)
|
|
208
|
+
|
|
209
|
+
elif geom.attrib['type']=='sphere':
|
|
210
|
+
if len(size)==1:
|
|
211
|
+
f_shape.setShape(ry.ST.sphere, size)
|
|
212
|
+
|
|
213
|
+
self.setRelativePose(f_shape, geom.attrib)
|
|
214
|
+
|
|
215
|
+
if geom.attrib.get('rgba', None):
|
|
216
|
+
if geom.attrib.get('material', None) is None:
|
|
217
|
+
f_shape.setColor(self.as_floats(geom.attrib['rgba']))
|
|
218
|
+
|
|
219
|
+
elif isColl:
|
|
220
|
+
f_shape.setColor([1,0,0,.2])
|
|
221
|
+
|
|
222
|
+
return f_body
|
|
223
|
+
|
|
224
|
+
def setRelativePose(self, f, attrib):
|
|
225
|
+
pos = attrib.get('pos', None)
|
|
226
|
+
if pos:
|
|
227
|
+
f.setRelativePosition(self.as_floats(pos))
|
|
228
|
+
|
|
229
|
+
quat = attrib.get('quat', None)
|
|
230
|
+
if quat:
|
|
231
|
+
f.setRelativeQuaternion(self.as_floats(quat))
|
|
232
|
+
|
|
233
|
+
rpy = attrib.get('euler', None)
|
|
234
|
+
if rpy:
|
|
235
|
+
q = ry.Quaternion()
|
|
236
|
+
q.setRollPitchYaw(self.as_floats(rpy))
|
|
237
|
+
f.setRelativeQuaternion(q.getArr())
|