ブログパーツUL5

お辞儀モーションにポーズを追加

 只今、モーション作成の練習中です。しかし、リモコンに登録できる未設定のキーがなくなってしまい、「1」のキーに登録されているモーションがお辞儀だけではちょっと寂しいので、RZ-1の筋肉自慢(?)のような写真のポーズをとってからお辞儀をするようにモーションを作成して追加してみました。

 どうですか、ちょっと格好いいでしょ。

でも、戻る時に少し回ってしまうので、左側に少し回る動作をお辞儀をする前に追加して微調しました。

《作成した追加したモーション》
' ============= Pose add ============
SPEED 5
MOVE G6A, 98, 82, 90, 156, 103, 100
MOVE G6B,160, 50, 60, 100, 100, 100
MOVE G6C,100, 50, 60, 100, 100, 100
MOVE G6D, 97, 128, 89, 109, 101, 100
WAIT
MOVE G6A, 98, 82, 90, 156, 103, 100
MOVE G6B,160, 20, 57, 100, 100, 100
MOVE G6C,135, 34, 48, 100, 100, 100
MOVE G6D, 97, 128, 89, 109, 101, 100
DELAY 2000
MOVE G6B,140, 50, 60, 100, 100, 100
MOVE G6C,140, 50, 60, 100, 100, 100
DELAY 200
WAIT

'left_turn
SPEED 6
MOVE G6A, 112, 76, 145, 93, 92
MOVE G6D, 85, 71, 152, 91, 112
MOVE G6B, 100, 40, 80, , , ,
MOVE G6C, 100, 40, 80, , , ,
WAIT
SPEED 9
MOVE G6A, 113, 75, 145, 97, 93
MOVE G6D, 90, 50, 157, 105, 112
MOVE G6B, 105, 40, 70, , , ,
MOVE G6C, 90, 40, 70, , , ,
WAIT
MOVE G6A, 108, 78, 145, 98, 93
MOVE G6D, 95, 43, 169, 110, 110
MOVE G6B, 105, 40, 70, , , ,
MOVE G6C, 80, 40, 70, , , ,
WAIT
'==================================
0

    モーションは何を使うか

     一歩先にいろいろ動作させていた関係もあり、私のRZ-1のモーションはハイテックマルチプレックスジャパンが提供している「Overall Tempate Program version」にあるモーションを利用しています。

     モーションテンプレートファイル(盆踊り)圧縮zipファイル(8.0KB)
     モーションテンプレートファイル(太極拳)圧縮zipファイル(7.05KB)
     Overall Template Program version 1.00 圧縮zipファイル(5.4KB)

     基本的なリモコンキーに、F、G、Eなどにモーションが追加されています。さらに、自分のモーションを作ろうとするときに参考になります。例えば、倒れた時に加速度センサーの出力を読み取り、自動で起き上がるようにしたくて、いろいろ試行錯誤している時にも参考になります。
     そのプログラムの作成では、加速度センサーの出力をAD()関数で取り込むのですが、その取り込んだ値がどうなるのかがまだ詳細な仕様がよくわからない状態です。センサーはVdd/2を中心にGがかかると最低±1V前後の電圧が変化するはずです。それをアナログポートに入れると、AD(ポート番号)関数で、0〜255までのバイト変化値として取り込むはずなのですが、まだ、調整中でうまくいっていません。


    0

      RZ-1に加速度センサーを搭載

       RZ-1が転んだ時には自動的に起き上がるようにするために、加速度センサーを搭載する必要があります。そこで、すでに実験して動作確認できている秋月電気で購入できる3軸加速度センサー(KXM52-1050モジュール)を写真のようにマイコンボードとの接続コネクタとプリント基板で最小のサイズに作りました。

       搭載する場所はRS232Cのコネクタの上にセンサーが来るようにします。そのため、ジャイロは3番にずらしました。センサーはICソケットに差しているため、背が高くなってしまいましたが、直接プリント基板に半田付けしても大丈夫そうです。私は、前後と左右の倒れた状態が検出するために、0番目ポートにはVDD、GND、Z軸出力を接続して、1番目のポートにはY軸出力だけを接続しました。

       roboBASICでは、アナログ入力信号を、Z=AD(0)、Y=AD(1)で出力信号を変数に取り込めるので、この変数の値で、ACTION 番号 で起き上がる動作が動くようにしようとしています。まだ、片足なので本体が出来上がったら正式にACTIONを登録して動作させる予定ですが、その前に、アナログポートの動作roboBASICを調べておかないとIF文もうまく動作しません。

       この加速度センサーは、加速度がかかっていないときは電源の半分の電圧が出力されていますから、その点を考えてプログラムすればいいと考えています。なお、センサー設置の向きによって、X軸、Y軸、Z軸の出力が変わりますから適当に変更する必要があります。さらに、重力のある方に向いていると常に1Gがかかった状態になっています。

      ============ 想定プログラム ===========

      ' 変数の型宣言
      DIM Y as BYTE
      DIM Z as BYTE
      ' アナログ信号の電圧を変数に格納
      Z = AD(0)
      Y = AD(1)
      ' 2.5V*256/10=64 中間電位
      ' 4.0V*256/10=104 倒れた状態(例えば、上向き)
      ' 1.0V*256/10=26 倒れた状態(例えば、下向き)
      ' 例えば、IF文で組めば、こんな感じ?
      IF Z>104 THEN
      ACTION **
      ELSEIF Z<26 THEN
      ACTION **
      ELSE
      ACTION **
      ENDIF

      ' 2.5V*256/10=64 中間電位
      ' 4.0V*256/10=104 倒れた状態(例えば、左向き)
      ' 1.0V*256/10=26 倒れた状態(例えば、右向き)
      ' 例えば、IF文で組めば、こんな感じ?
      IF Y>104 THEN
      ACTION **
      ELSEIF Y<26 THEN
      ACTION **
      ELSE
      ACTION **
      ENDIF

      ================================

      【修正】加速度センサーの向きに合わせて、X軸をZ軸に修正しました。
      0

        セットアップしたら電子音がしない

         32号のP7にあるロボベーシックを使用したセットアップを行うと、電子音が鳴らなくなり、RZ-1も動作しなくなるという症状に、はまり込みます。

         このセットアップする前までは、roboScriptを起動して電源をONにすると電子音とともに腕を下に伸ばした直立の初期動作を開始しました。しかし、このセットアップをした後に、私のRZ-1も、音もしなければ全く電源が入らなくなります。

         その対策として、ロボベーシックの「コンパイル(O)」のところにある「ゼロポイント設定」の「設定読込」をすると腕を水平に伸ばした初期姿勢になり動作しました。それからはroboScriptでも問題なく動作します。但し、毎回、この読込が必要となりました。

         32号のP7には、ロボベーシックを使用したセットアップ方法は書いてあるのですが、その結果、どうような状態になるのか全く説明されていなのが問題です。初心者は、その状態で、しばらく待っていた方がいいようです。
        0

          ちょっとバランスをとれば、このポーズ

           ちょっとバランスをとれば、この通りカッコいいポーズもとれます。roboScriptでは、モーションファイルをエディタで編集したら、うまく動きませんでした。そこで、roboScriptの中でサーボの設定値を変更すると問題なく動きました。それを上書き保存しておきます。

           これで、何も考えずに首のサーボの初期設定ができ、動作させることもできるのでテストするのは簡単です。
           従って、空番号にケーブルを接続して、設定値を入れればどのソフトでも首のサーボはコントロールできそうなので、シミュレータで出来たファイルの該当部分を手直しすれば出来ることになる。首のサーボのためにだけにV850のボードを搭載する必要はないことがわかりました。

          0

            はじめてモーションファイルをテスト

             RZ-1にマイコンとバッテリーが搭載されたので、モーションファイルをテストしてみました。そのために、リモコンが無くても、roboScript v2.5のソフトを利用してテストできるようなので、RS232C/USB変換ケーブルの動作確認も含めて行うことにした。

            【手順】
            1.まず、USBにケーブルを接続します。
            2.次に、マイコンのスイッチをONにします。
            3.roboScript v2.5を起動します。
            4.「通信方式の設定」でポート番号を指定します。PC環境により最適なものを選択
             →エラーが出ずに、コントローラ情報が見れればOKです。
             *通信オーバータイムはデフォルト値のままにしました。
            5.「モーターウィンドウ」のレベルを変化させて動くかテスト
             →5番に接続した首のサーボモータのオフセットを補正してみたら78が最適
            6.CDから読込んだモーションファイルを読込む
            7.「Run」で実行させる
             *手は挟まれたり、コードが絡まないように注意のこと

            【テスト結果】
            1.RS232C/USB変換ケーブル

             当然、RS232C/USB変換ケーブルは問題なく、通信できました。但し、他のドライバーとの競合/干渉があるようなので、全てのPCで動作保証はしていませんので、自己責任の範疇で行ってください。
            2.roboScriptとモーションファイル
             モーションファイルのaction_01.rsfからaction_31.rsfまでは問題なく、動作確認できましたが、CD03_01.rsfからCD03_09.rsfは全く動作しませんでした。理由はわかりませんが、エラーも表示されないので、原因不明です。

            違いを調べてみると、MOVEの記載に違いがあります。
            正常:MOVE24 100, ・・・・
            異常:MOVE G24,100,・・・・

            CD3で提供してきたモーションファイルの内容がおかしいのか?

            どうもCD1〜CD3で提供しているのはシミュレータでしか動作しないようです。roboScriptでは動作しないことがわかりました。
            0


              カレンダ

                  123
              45678910
              11121314151617
              18192021222324
              25262728   
              << February 2018 >>