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 672 forks source link

adding NAO humanoid robot as walker in locomotion soccer environment #309

Open AhmadAlaaeldin opened 2 years ago

AhmadAlaaeldin commented 2 years ago

how to add new walker in locomotion soccer environments ??

used quickstart codebase

import numpy as np
from dm_control.locomotion import soccer as dm_soccer
env = dm_soccer.load(team_size=2,
                     time_limit=10.0,
                     disable_walker_contacts=False,
                     enable_field_box=True,
                     terminate_on_goal=False,
                     walker_type=dm_soccer.WalkerType.BOXHEAD)

action_specs = env.action_spec()
timestep = env.reset()
while not timestep.last():
  actions = []
  for action_spec in action_specs:
    action = np.random.uniform(
        action_spec.minimum, action_spec.maximum, size=action_spec.shape)
    actions.append(action)
  timestep = env.step(actions)

we will find that we have 3 types of walker [ ant, boxhead, humanoid ]

tried to import my custom walker by changing xml paths in walkers src files [ ant.py, boxhead.py, humanoid.py] and display it by explore.py but nothing changes.....

my custom model is NAO robot ,I've been working on robot's xml , by converting urdf file to xml file using compile.exe provided by MuJoCo Pro version 2.00 , assets directory with dae files and stl files, after compiling robot's xml works well on MuJoCo Pro

NAO urdf file from https://github.com/ros-naoqi/nao_robot/blob/master/nao_description/urdf/naoV50_generated_urdf/nao.urdf

nimrod-gileadi commented 2 years ago

Which files exactly did you try changing? It's confusing but there are multiple humanoid.py files in dm_control. Changing the XML path should definitely do something! 😄

You can see the logic for constructing the walkers based on the walker_type here. If you follow the code through you'll see that the soccer environment uses cmu_humanoid.py rather than the humanoid.py from the control suite. The ant.py it uses is also not the control suite one, but the one under dm_control/locomotion/walkers/ant.py.

BTW, we recommend you switch to the latest version of MuJoCo if you can, from here. MuJoCo is now free and open source. compile.exe is still included in new MuJoCo releases.