今までは、基本言葉の部分で芸ロボットの可能性を探ってきた。動作は、言葉とリンクさせたり、言葉に動機付けられて立つ座る、歩く、回転するなどの基本操作しか制御するようにしていただけだった。
この動作でも、芸ロボットらしくボケたりできるように、動作関係のモジュールを作り直したいと思う。
今までは、wsibotというモジュールの中にmotion関係のクラスを作って動かしていたが、独立したwsmotionというモジュールを作成しようと思う。
複雑な動作はポーズの時間的な推移として表現できることがわかっている。このポーズは、基本choregrapheで作成する。Choregrapheのポーズは .xap というXMLファイルに保存される。.xapファイルの形は以下のようなものである。
NAOに五郎丸ポーズを取らせた時のものである。
<?xml version="1.0" encoding="UTF-8" ?>
<ChoregraphePositionLibrary xmlns="http://www.aldebaran-robotics.com/schema/choregraphe/position.xsd">
<folder>
<folded>yes</folded>
<title>Basics</title>
<position>
<Motors>
<Motor>
<name>HeadPitch</name>
<value>0</value>
</Motor>
<Motor>
<name>HeadYaw</name>
<value>0</value>
</Motor>
...........全てのモーターのリスト..........
.....................
.....................
</Motors>
<name>StandZero</name>
<description>All motors to 0</description>
<bitmap>media/images/positions/StandZero.png</bitmap>
</position>
<position>
<Motors>
<Motor>
<name>HeadPitch</name>
<value>0</value>
</Motor>
<Motor>
<name>HeadYaw</name>
<value>0</value>
</Motor>
<Motor>
<name>RShoulderPitch</name>
<value>80</value>
</Motor>
...........全てのモーターのリスト..........
.....................
.....................
</Motors>
<name>StandInit</name>
<description>Nao is ready to do anything from this position !</description>
<bitmap>media/images/positions/StandInit.png</bitmap>
</position>
<position>
<Motors>
<Motor>
<name>HeadPitch</name>
<value>-10.7252</value>
</Motor>
<Motor>
<name>HeadYaw</name>
<value>-0.266079</value>
</Motor>
<Motor>
<name>LAnklePitch</name>
<value>4.04062</value>
</Motor>
...........全てのモーターのリスト..........
.....................
.....................
</Motors>
<name>Stand</name>
<description>Standing position with low power consumption. </description>
<bitmap>media/images/positions/Stand.png</bitmap>
</position>
</folder>
<position>
<Motors>
<Motor>
<name>HeadPitch</name>
<value>0.00916195</value>
</Motor>
<Motor>
<name>HeadYaw</name>
<value>-0.00464392</value>
</Motor>
<Motor>
<name>LAnklePitch</name>
<value>-0.349794</value>
</Motor>
<Motor>
<name>LAnkleRoll</name>
<value>4.19617e-05</value>
</Motor>
<Motor>
<name>LElbowRoll</name>
<value>-1.51862</value>
</Motor>
...........全てのモーターのリスト..........
.....................
.....................
</Motors>
<version>2</version>
<name>goromarupose</name>
<description>吾郎丸ポーズ</description>
<bitmap>/Users/washida/.local/share/choregraphe/goromarupose_1.png</bitmap>
</position>
</ChoregraphePositionLibrary>
四つのポーズがセットされている。最初は、StandZeroで、これは全てのモーターの角度をゼロポジションに置くということである。スッと立って、手をまっすぐ前に出したポーズである。次が、StandInitで、手を下ろして普通に立っているポジションである。三番目が、Standで、最もモーターの負荷を減らして、立っている状態という解説がついている。最後のものが五郎丸ポーズである。
モーターの角度は、度で記載されているのでラディアンに変更する必要がある。
このファイルを直接咥え込むAPIがNaoqiにあれば一番いい。が、それは探しても今の所見当たらない。
四つのの