Python修改.xar

时间:2013-05-14 17:44:41

标签: python nao-robot

我目前正在使用由Aldebaran Robotics开发的NAO机器人系统,我正在尝试做的是动态改变我们研究的行为文件的值。这些文件存储为:/behaviours/filename.xar

这些文件中包含大量代码,我希望能够动态修改每个电机的值。

 ....
<ActuatorCurve name="value" actuator="HeadPitch" recordable="1" mute="0" unit="-1">
    <Key frame="15" value="16.9607" />
    <Key frame="20" value="16.9607" />
    <Key frame="25" value="16.8198" />
    <Key frame="30" value="16.9607" />
    <Key frame="35" value="16.8198" />
    <Key frame="40" value="16.9607" />
    <Key frame="45" value="16.8198" />
    <Key frame="50" value="16.9607" />
    <Key frame="55" value="16.8198" />
</ActuatorCurve>
...

在机器人的肩膀,手臂,手,腿等处有各种其他电机的ActuatorCurves。我试图找出一种方法,我可以打开这个文件,搜索并找到HeadPitch电机中的值,修改所述值,然后保存文件。

我知道这里的用户喜欢代码显示为我到目前为止所做的,但我还没有写任何东西。我正在试图找出解决这个问题的最佳方法。

总是有可能以100%的头部点头,110%等创建多个文件。但是这很耗时,只占用机器人硬盘上不必要的空间。

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。

您要求的内容应该是: - 打开文件 - 使用minidom解析文件,格式为xml - 更改 - 保存

但是根据您的更改频率,这不是一个好主意(cpu消​​费)。

更好的方法是加载/解析/更改,但不是保存它,您可以使用motion.angleInterpolationBezier直接将新时间轴发送到运动模块。

其他方法是使用“将动画导出到剪贴板”将时间轴导出到python,然后使用纯python修改时间轴,如数组,保存,...