How to temporarily disable RL policy for joint control

Isaac Sim Version

4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: RTX 3070 Ti
  • Driver Version: 560.94

Topic Description

I am currently modifying the H1 Humanoid example provided in the extensions. The policy is controlling the H1 articulation. However, I would like to use MoveIt2 to control the arms of the H1. What is the best way to temporarily disable the policy control for the arms and let MoveIt2 take over?

Hi did you find a solution to this? An interesting problem. You may find that a whole body controller (WBC) will not stabilize the humanoid robot when control is only applied to the lower limbs. This is because the WBC is expecting to use both lower and upper body joints to maintain a stable (non-falling) pose. But, you can certainly try it, without harm in simulation.

If you’d like to give it a try, I suggest you run both controllers in parallel, and create a custom joint control vector to send to the robot. Then you can set your joint action from each controller on a per-joint basis. Check out /exts/isaacsim.robot.policy.examples/isaacsim/robot/policy/examples/robots/h1.py and the forward() function for a hint on how to construct your joint action vector.

I have decided to train a new policy without the arms.