clvrai / furniture

IKEA Furniture Assembly Environment for Long-Horizon Complex Manipulation Tasks
https://clvrai.com/furniture
MIT License
496 stars 56 forks source link

Controllers and Fetch description files. #47

Open Xianqi-Zhang opened 10 months ago

Xianqi-Zhang commented 10 months ago

Hi, Thanks for your sharing.

  1. For impedance: _step() -> _step_continuous() -> _setup_action() -> _do_simulation() In _setup_action(), it just setup gripper part action, rescale and set gravity compensation, without explicit force computation or convert actions to motions. Does this means that the force is calculated by Mujoco itself, only consider an action as a control signal and send to sim.data.ctrl, is impedance control? Or the mujoco use impedance control as default?
The robot senses the endpoint motion $x(t)$ and commands joint torques and forces to create $-f_{ext}$, the force to display to the user. Such a robot is called impedance controlled, as it implements a transfer function $Z(s)$ from motions to forces. 
  1. For torque: The only difference between torque and impedance is that the torque does not use _setup_action function (used to setup gripper part, rescale and set gravity compensation). But without setting gripper part, it cause an error "could not broadcast input array from shape...". After setup gripper part, they are almost the same. Is this control method not implemented completely yet?

  2. For NEW_CONTROLLERS: It seems they do not work for robots, not implemented completely yet?

  3. For experiments: IK controller is used for all experiments, or also with other controllers?

  4. The bullet description of Fetch is missing. There is no Fetch files in /models/assets/pybullet_data/fetch_description.

Thanks for any reply.

Best regards.

Xiangyu-Lee commented 5 months ago

Hello, I feel you have a deep understanding of this article. Could I ask you a question? I would greatly appreciate it if you could reply. I want to conduct experiments using the SAC algorithm on furniture with the furniture_name "block". However, it seems that this furniture does not have recipes. Can I set recipes myself? But how should I set some distances? I don't quite understand the rules for setting up the recipes. I would greatly appreciate it if you could reply.

Xianqi-Zhang commented 5 months ago

Hello, I feel you have a deep understanding of this article. Could I ask you a question? I would greatly appreciate it if you could reply. I want to conduct experiments using the SAC algorithm on furniture with the furniture_name "block". However, it seems that this furniture does not have recipes. Can I set recipes myself? But how should I set some distances? I don't quite understand the rules for setting up the recipes. I would greatly appreciate it if you could reply.

Hello,

  1. Recipes:

    • For "block" recipe, you may wirite it yourself accroding to some other recipes, such as "three_blocks.yaml".
    • For parameters in recipes, you may set it accroding to code comments in "three_blocks.yaml".
    • (Only change "recipe" and "site_recipe" maybe effective too. At least you should try it first.)
    • The "recipe" and "site_recipe" are related to the "body name" and "site name" in env/models/assets/objects/xxx.xml.
  2. For recipes writed by yourself, the demonstration generation script may not work well (maybe related to parampters you set), so I strongly recommend that you only use the original 10 furniture models for experiments (please check demonstration generation part). Otherwise, it may be difficult to set up your baselines, especially IL-related baselines.

  3. This environment looks cool, but the task is difficult. I haven't even seen other papers citing it that have good results, or even slightly better results. So if you're desperate to publish a paper, this may not be a good choice, but if you want to learn how to write such an environment, then go ahead and learn. Of course, if you have a good idea, please stick to it.

  4. Finally, it has been a long time since I read this code, and I can't remember many parts. I'm very sorry.

Best regards.

Xiangyu-Lee commented 5 months ago

Hello,

      Thank you very much for your reply. Your advice has been very helpful to me. The task of this article is indeed very difficult, and if it doesn't work out, I will try to switch to a new platform. Finally, I sincerely appreciate your suggestions and wish you smooth progress in your research.

Best regards.

---Original--- From: "Xianqi @.> Date: Sat, Mar 30, 2024 11:26 AM To: @.>; Cc: "Xiangyu @.**@.>; Subject: Re: [clvrai/furniture] Controllers and Fetch description files.(Issue #47)

Hello, I feel you have a deep understanding of this article. Could I ask you a question? I would greatly appreciate it if you could reply. I want to conduct experiments using the SAC algorithm on furniture with the furniture_name "block". However, it seems that this furniture does not have recipes. Can I set recipes myself? But how should I set some distances? I don't quite understand the rules for setting up the recipes. I would greatly appreciate it if you could reply.

Hello,

Recipes:

For "block" recipe, you may wirite it yourself accroding to some other recipes, such as "three_blocks.yaml".

For parameters in recipes, you may set it accroding to code comments in "three_blocks.yaml".

(Only change "recipe" and "site_recipe" maybe effective too. At least you should try it first.)

The "recipe" and "site_recipe" are related to the "body name" and "site name" in env/models/assets/objects/xxx.xml.

For recipes writed by yourself, the demonstration generation script may not work well (maybe related to parampters you set), so I strongly recommend that you only use the original 10 furniture models for experiments (please check demonstration generation part). Otherwise, it may be difficult to set up your baselines, especially IL-related baselines.

This environment looks cool, but the task is difficult. I haven't even seen other papers citing it that have good results, or even slightly better results. So if you're desperate to publish a paper, this may not be a good choice, but if you want to learn how to write such an environment, then go ahead and learn. Of course, if you have a good idea, please stick to it.

Finally, it has been a long time since I read this code, and I can't remember many parts. I'm very sorry.

Best regards.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>