我目前正在使用由Aldebaran Robotics开发的NAO机器人系统,我试图做的是为我们的研究动态改变行为文件的值。这些文件存储为:/behaviour/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%等情况下创建多个文件。然而,这很耗时,并且只会占用机器人硬盘上不必要的空间。
发布于 2013-05-15 16:32:05
有很多方法可以做到这一点。
您的请求应该是这样的:-打开文件-使用minidom解析文件,因为格式是xml -更改它-保存它
但根据您更改的频率,这不是一个好主意(cpu消耗)。
更好的方法是加载/解析/更改,但是您可以使用motion.angleInterpolationBezier将新的时间轴直接发送到运动模块,而不是保存它。
其他方法是使用“导出动画到剪贴板”将时间线导出到python,然后使用纯python像数组一样修改时间线,保存它,...
https://stackoverflow.com/questions/16549563
复制相似问题