google-deepmind / dm_control

Google DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo.
Apache License 2.0
3.83k stars 671 forks source link

How can I access the angle of a specific joint in the walker model? #474

Open jbwenjoy opened 6 months ago

jbwenjoy commented 6 months ago

Hi, thank you for this wonderful repo!

I'm trying to use the walker model for some RL projects. And I want to access the angles of some specific joints.

I think the observation is a dictionary with a 14-dim orientation array, a 1-dim height array, and a 9-dim velocity array. I also looked at the walker.xml file. But I still don't know the meaning of each element of these arrays. Can anyone give me some advice on that (e.g. which file should I refer to, what is the order of the joints)?

Another issue also discussed the similar topic: https://github.com/google-deepmind/dm_control/issues/453. Seems that we need to calculate the joint angles using orientations of the body parts. But the problems is that in that issue, the observation seems to be 21-dim instead of 14-dim, different from what I obtained using the code below.

r0 = np.random.RandomState(42)
env = suite.load('walker', 'walk', task_kwargs={'random': r0})
state = env.step(action)
obs = state.observation

image

Any help/discussion is appreciated!

tryall-mint commented 3 months ago

I completely agree with this.

I'm currently struggling with the same issue. I'm eager to use graph neural networks to model this case, so it's crucial for me to understand the meaning of each element in the state information and establish the edges accordingly. I've also checked the walker.xml file, but I still can't confirm the necessary details.