動作関係の新しいモジュール

今までは、基本言葉の部分で芸ロボットの可能性を探ってきた。動作は、言葉とリンクさせたり、言葉に動機付けられて立つ座る、歩く、回転するなどの基本操作しか制御するようにしていただけだった。

この動作でも、芸ロボットらしくボケたりできるように、動作関係のモジュールを作り直したいと思う。

今までは、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にあれば一番いい。が、それは探しても今の所見当たらない。

四つのの