nv-tlabs / ASE

Other
780 stars 124 forks source link

Customized model will stay still #78

Closed Croolch closed 5 months ago

learning-github-zgy commented 3 months ago

Hello, I have the same problem as you, have you solved it?

Croolch commented 3 months ago

Hello, I have the same problem as you, have you solved it?

Hi,

I have not solved this problem yet, but I have some probable solutions for this.

I suspect that the reason why the learned controller cannot make character move is rooted in the joints' pd gains. The stiffness and damping from pd controller require some experiences to tune. You can check this for some details. This may happen when your policy learned to output pd targets instead of torques. Code from here.

So I recommend you to:

  1. Try some example robot model to test if this issue only happens on your customized model. If it works well, then the issue may locate in model definition.
  2. Try to tune pd gains. This may be of some help.

These are some solutions for this suspect from my opinion. I hope you will solve this issue.

learning-github-zgy commented 3 months ago

Hello, I have the same problem as you, have you solved it?

Hi,

I have not solved this problem yet, but I have some probable solutions for this.

I suspect that the reason why the learned controller cannot make character move is rooted in the joints' pd gains. The stiffness and damping from pd controller require some experiences to tune. You can check this for some details. This may happen when your policy learned to output pd targets instead of torques. Code from here.

So I recommend you to:

  1. Try some example robot model to test if this issue only happens on your customized model. If it works well, then the issue may locate in model definition.
  2. Try to tune pd gains. This may be of some help.

These are some solutions for this suspect from my opinion. I hope you will solve this issue.

Wow, thank you so much for your prompt and detailed reply! You have a point, and I also suspect that this is the problem; In addition, I just made some other attempts: I changed the "drive_mode" from position-driven to force-driven, and increased the power scale, and the robot began to move. I have not found the specific reason why the robot cannot move normally in the position driven mode, and I will share it with you further after I solve it. Oh, I almost forgot, I tried two different robot models before, the first one can move normally during training, but the second one can't. I don't know whether the "drive_mode" of Isaac gym is still related to the robot model defined by xml, I will continue to find a solution.

learning-github-zgy commented 3 months ago

Hello, I have the same problem as you, have you solved it?

Hi, I have not solved this problem yet, but I have some probable solutions for this. I suspect that the reason why the learned controller cannot make character move is rooted in the joints' pd gains. The stiffness and damping from pd controller require some experiences to tune. You can check this for some details. This may happen when your policy learned to output pd targets instead of torques. Code from here. So I recommend you to:

  1. Try some example robot model to test if this issue only happens on your customized model. If it works well, then the issue may locate in model definition.
  2. Try to tune pd gains. This may be of some help.

These are some solutions for this suspect from my opinion. I hope you will solve this issue.

Wow, thank you so much for your prompt and detailed reply! You have a point, and I also suspect that this is the problem; In addition, I just made some other attempts: I changed the "drive_mode" from position-driven to force-driven, and increased the power scale, and the robot began to move. I have not found the specific reason why the robot cannot move normally in the position driven mode, and I will share it with you further after I solve it. Oh, I almost forgot, I tried two different robot models before, the first one can move normally during training, but the second one can't. I don't know whether the "drive_mode" of Isaac gym is still related to the robot model defined by xml, I will continue to find a solution.

Bingo, I finally solved the problem by following the solutions you provided. I looked at the xml file for the second robot and found that there is no stiffness in the joint tag, only a default damping, which causes the action output in PD drive mode to actually act on the robot joints to be 0, so the robot stays still. Finally I added the stiffness and damping for each joint in the robot's xml file and the robot started moving without any surprises. Finally, thank you so much for the ideas you provided, this helped me solve this problem quickly!