1

私は現在、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% などで複数のファイルを作成する可能性は常にあります。ただし、これには時間がかかり、ロボットのハード ドライブの不要なスペースを占有するだけです。

4

1 に答える 1

1

それを行う方法はたくさんあります。

要求する内容は次のようになります: - ファイルを開く - 形式が xml であるため、minidom を使用してファイルを解析する - 変更する - 保存する

ただし、変更の頻度によっては、お勧めできません (CPU を消費します)。

より良い方法は、ロード/解析/変更することですが、保存する代わりに、motion.angleInterpolationBezier を使用して新しいタイムラインをモーション モジュールに直接送信できます。

他の方法は、「モーションをクリップボードにエクスポート」を使用してタイムラインを python にエクスポートし、純粋な python を使用してタイムラインを配列のように変更し、保存することです...

于 2013-05-15T08:32:04.877 に答える