haosulab / ManiSkill

SAPIEN Manipulation Skill Framework, a GPU parallelized robotics simulator and benchmark
https://maniskill.ai/
Apache License 2.0
667 stars 118 forks source link

How to create and control a floting joint? #406

Closed HeegerGao closed 1 month ago

HeegerGao commented 1 month ago

Hi, I am using ManiSkill for dexterous hand manipulation tasks. I want to create a "flying-hand" environment where the base link of the dexterous hand can be controlled in 6-DOF, rather than fixed in a position. My problem is that I find that in the SAPIEN document, it only supports three types of joints: fixed, revolute, and prismatic.

How to add a floating joint, and how to implement the corresponding controller for such a joint? Do I need to add 6 joints (3 for revolute and 3 for prismatic) for this function? Do you have any sample code? Thanks!

StoneT2000 commented 1 month ago

Yep you exactly do that. Create 6 fake joints to control XYZ RPY in the URDF as parents of the base link.. Any order should work. I can publish an official floating panda gripper example next week.

HeegerGao commented 1 month ago

Thanks. Looking forward to the example code.

HeegerGao commented 1 month ago

Yep you exactly do that. Create 6 fake joints to control XYZ RPY in the URDF as parents of the base link.. Any order should work. I can publish an official floating panda gripper example next week.

Hi, any progress on this? Thanks.

StoneT2000 commented 1 month ago

Will try and upload an example tomorrow / saturday

StoneT2000 commented 1 month ago

uploaded, pull from the latest git commit to get access

SparKgod1 commented 1 month ago

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

HeegerGao commented 1 month ago

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

You can refer to the URDF in the official example: https://github.com/haosulab/ManiSkill/blob/main/mani_skill/assets/robots/panda/panda_v2_gripper.urdf

SparKgod1 commented 1 month ago

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

You can refer to the URDF in the official example: https://github.com/haosulab/ManiSkill/blob/main/mani_skill/assets/robots/panda/panda_v2_gripper.urdf

It seems that directly editing the URDF file to create 6 fake joints is not feasible. How did you modify the URDF file for the dexterous hand like allegro? Thank you for your response

SparKgod1 commented 1 month ago

@HeegerGao Could you share your flying-hand URDF file? Thank you very much.

You can refer to the URDF in the official example: https://github.com/haosulab/ManiSkill/blob/main/mani_skill/assets/robots/panda/panda_v2_gripper.urdf

It seems that directly editing the URDF file to create 6 fake joints is not feasible. How did you modify the URDF file for the dexterous hand like allegro? Thank you for your response

Or it's feasible I directly edit the URDF file to add the six-joint chain?I hope to receive your guidance, thank you.