python MuJoCo dm_control:修改从XML文件导入的元素的名称

uujelgoq  于 2023-10-14  发布在  Python
关注(0)|答案(1)|浏览(75)

我试图通过from_path函数修改从XML文件创建的MuJoCo dm_control RootElement的名称:

from dm_control import mjcf
...
self.model = mjcf.from_path(path_to_xml_model)
...

XML文件的内容如下所示:

<mujoco model="Animat">...</mujoco>

一旦模型被创建,我通过将其附加到一个站点来将其添加到我的世界(竞技场):

def spawn_entity(self, entity, pos, angle):
    spawn_site = self.root_element.worldbody.add('site', pos=pos, euler=angle)
    spawn_site.attach(entity).add('freejoint')

其中self.model作为实体给出。
我的问题是我想从同一个模型中生成多个实体。MuJoCo通过创建第一个名为“Animat/...”的几何体和关节来处理它,另一个附加了一个数字,如“Animat_1/...",“Animat_2/..."等。然而,这对我来说并不实用,我希望能够在创建时重命名这些模型,这样我就可以找到名为“MyFirstModelName/...",“MySecondModelName/..."的几何和关节。你知道我该怎么做吗?

2ul0zpep

2ul0zpep1#

好吧,我现在觉得自己很傻,因为我找到了解决办法:我是如此专注于寻找一个名为“名称”的属性,我完全忽略了属性“模型”。答案很简单:

self.model = mjcf.from_path(path_to_xml_model)
self.model.model = self.name

我仍然希望找到它,而不必通过dm_control的所有解析器代码。

相关问题