Set_joint_positions can not move correctly when use headless=True

I am now making a Custom RL env

I reset the robot using set_joint_positions in the reset function, and get it’s pose in get_observations function. It works well when the UI was showed( headless = False). However, when I set the headless=True, it get the wrong pose in the get_observations function.

It seems the set_joint_positions can not move the robot or the get_world_poses() can not get the correctly position, I am not sure which one cause the problem.
How can i solve it?

Hi there, are you able to share a repro case for the issue? Generally, set_joint_positions will move the joints while get_world_poses() returns the root transforms of the robot. If the APIs were working well with the UI, you can also try increasing the controlFrequencyInv flag in the task config file under the env section. This will increase the number of physics steps taken for each RL step.

Hi, @kellyg thanks for your answer, I reduced some irrelevant code and make a repro case .

When the headless was set to headless, the position was not change:
2023-08-30 16-54-00 的屏幕截图

When the headless was set headless=False, the robot can go to the goal position
2023-08-30 16-57-52 的屏幕截图 (4.2 MB)

By the way , where can I find the task config file or the env section?

@ kellyg

Thanks for sharing the repro. I can reproduce the issue on my end as well. We will look into it.