Top / VstoneMagicを使ってみる / プログラミング / 単純なモーションプログラムの作成2

ポーズの設定

前項で追加したposeブロックで設定されたポーズは全て、初期値である「気を付け」の状態になっています。「手を上げ下げする」動作のためには、2番目のポーズを「手を上げたポーズ」に変更する必要があります(1,3番目のポーズは「気を付け」のままで動作上問題ありません)。

ロボットのポーズ編集は、クラスウィンドウとは別に専用のウィンドウである「ポーズウィンドウ」が存在します。まずはposeブロックをダブルクリックして、ポーズウィンドウを開きましょう。

image063.png


ポーズウィンドウには、ポーズ編集用のインターフェースである「ポーズスライダ」が並んでいます。ポーズスライダは、基本的に各モータやLEDの色(R・G・B)などによって個別に備わっており、対応する箇所の名前・現在のポーズの設定値(角度や明るさ)、またロボットと通信中の場合は、ロボット自身の現在の設定値(モータ角度等)を表示します。

また、「ツマミ」や「スピンボタン」をマウス操作で操作して設定値を編集したり、ロボットと通信している場合はロボットからポーズを読み取って編集中のポーズに取り込むことも可能です。

   ■ポーズスライダ
   -名前:ポーズスライダの名前(原則として対応する関節やLED等の名称)
   -ツマミ:マウスでドラッグしてポーズ値を操作
   -読み出し値:ロボット本体の現在のポーズ(通信中のみ表示)
   -基準値:基準ポーズ(後述)の位置を表示
   -スピンボタン:クリックしてポーズ値を一定量増減
   -チェックボックス:ポーズでの使用・未使用を選択
   -ポーズ値:現在のポーズ値
   -モータゲイン:モータの出力を表示・設定(関節に割り当てられたポーズスライダのみ表示)




image064.png




ポーズエリアの特徴は、キーボードからの数値入力ではなく、ポーズスライダによるマウス操作(ドラッグやクリック)可能であり、また、ロボットと画面上の表示・設定がリアルタイムでフィードバックされるため、視覚的にわかりやすくポーズを編集できます。また、設定値のコピー・ペーストや、ロボットの右半身と左半身で、ポーズのコピーや反転ができるなど、ポーズ編集に便利な機能が備わっています。

     ロボットと通信していなくてもポーズの作成は可能ですが、ロボット本体へのポーズのフィードバックや教示などの機能は、通信中のみ有効です。






  • ○ ポーズスライダの操作
    image065.png
     それでは、ポーズスライダを操作してポーズの編集を行っていきます。ただ、最初は安全性を考えて、ロボットのモータを動かさずLEDの色を変えて、ポーズスライダの操作を確認しましょう。ここでは例として右目LEDのRGBに対応する「LED REYE R」「~G」「~B」の三つのポーズスライダを動かしてみます。





     ツマミをドラッグして、Rを最大値(255)、Gを最小値(0)にしてみましょうBは元々最小(0)なので、ロボットの右目が赤くなります。ツマミのドラッグでは、大きくポーズ値を変えることができますが、数値の変化が大きいので細かい角度の調整には不向きです。また、関節に対応したポーズスライダなどは、急激にモータが動きやすいので周囲との衝突に注意しましょう。

    image066.png




     今度は、スピンボタンをクリックして、RとBを125にしてみましょう。これでRとBが同じ輝度になり、右目が紫になります。

    image067.png




    スピンボタンのクリックでは、ポーズ値が一定量増減します。【+】をクリックすると値が増え、【-】をクリックすると値が減ります。この方法では、一度に増減する値が決まっており、またツマミのドラッグよりも急激な変化が少ないため、細かい位置の調整に向いています。

     スピンボタンのクリックで増減する量は、あらかじめポーズスライダ毎に設定されており、ツマミをドラッグした場合も、ポーズ値はこの増減量の倍数に丸め込まれます。

  • ○ 基準ポーズとポーズの初期化

     ポーズスライダの操作方法を確認したら、編集したポーズを最初の状態(「気を付け」)に戻しましょう。

     ブロック作成時に最初に設定されているポーズは「基準ポーズ」と言い、この時のポーズ値は各ポーズスライダの基準となります。基準ポーズはロボットの機種毎に異なりますが、基本的には「気を付け」のような、あらゆる動作の元になるポーズが最初に設定されています。

     ポーズスライダでは、基準ポーズの値を表すツマミの位置に「基準値」のアイコンが表示されます。また、主にモータのポーズスライダは、基準ポーズを±0とした相対的な数値でポーズ値が表示されます。それでは、ツールバーの「ポーズ初期化」をクリックして、編集した右目LEDのポーズ値を戻しましょう。

    image068.png





  • ○ ポーズのキャプチャ

     それでは、今度は実際にロボットのポーズを編集してみましょう。ポーズ編集は基本的にLEDと同じく、モータが割り当てられたポーズスライダを操作することで作成できますが、ポーズについてはロボット本体から取り込む「教示」を行い、微調整のみポーズスライダで行うと、簡単かつ直感的にポーズを作成できるので、今回はこの方法で進めてみたいと思います。

    image069.png
    ロボットの関節に対応したポーズスライダは、ロボット本体と通信中の場合、ロボットからポーズをキャプチャすることが可能です。ポーズのキャプチャは、ポーズウィンドウのツールバーの「ポーズキャプチャ」ボタンで行います。まずは、ロボットの各関節を手で動かして、手を上げた状態にしてください。手でポーズを合わせたら、続いてツールバーのポーズキャプチャボタンをクリックしてください。






     ロボットのモータがONになっていて手で動かせない場合は、次項の説明を参考にポーズをOFFにしてから、手でモータを動かしてください。モータがONの状態で無理にモータを動かすと破損する恐れがあるため、絶対におやめください。







 ポーズキャプチャは、非常に早く・直感的にポーズを編集できますが、ポーズ値を特定の数値(角度)に合わせたり、左右のポーズを完全に対称にするなどの細かい・正確な編集には不向きなため、これらの必要がある場合は、ポーズキャプチャした後に、これまで説明した操作でポーズを微調整しましょう。

image070.png
  • キャプチャしたポーズ(例)
~
  • ○ ロボットのモータのON/OFF

    ポーズスライダには関節(モータ)が割り当てられているものがありますが、ロボット本体のモータがOFFの場合、ポーズスライダを操作しても実際にモータが動くことはありません。モータを動かすには、ポーズウィンドウよりモータをONにする必要があります。モータをONにすることで、LEDのように編集中のポーズがロボットにフィードバックされるようになります。

    モータのON/OFFを切り替える場合は、ポーズウィンドウのツールバーの「モータON/OFFボタン」をクリックします(クラスウィンドウでポーズブロックをクリックし、ポーズを編集できる状態にである必要があります)。モータがONの場合は、ボタンのアイコンが「 http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image071.png 」、OFFの場合は「 http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image072.png 」で表示されます。

    それでは、ボタンをクリックしてモータをONにしてみましょう。ONにすると、ロボット本体のモータに力が入り、現在編集しているポーズに遷移します。今回の場合、ロボット本体が先ほどキャプチャした「手を上げる」ポーズで固まります。

    image073.png



        モータをONにしている場合、ロボット本体の関節がロボット自身や周囲の物と衝突・干渉して、破損や事故が起こらないように十分注意してください。特に、関節が干渉し続けてモータに無理な負荷がかかり続ける「モータロック」の状態が起こらないように注意してください。
        ■注意が必要な操作(一例)
        -モータON時(一部または全身の関節が一度に大きく動く場合がある)
        -ポーズブロックのクリック時(別のポーズに切り替わる瞬間)
        -ポーズスライダのツマミのドラッグ時(関節が大きく動く場合がある)
        -可動範囲が狭い関節の操作(見た目にモータロックがわかりづらい場合がある)





  • ○ ポーズスライダの選択と微調整

    それでは、中途半端な角度値や左右のポーズ値の差異、無関係なモータのポーズ値の初期化をそれぞれ行います。これらの操作を行う場合、操作対象のポーズスライダを「選択」すると、効率的に操作が可能です。

     ポーズウィンドウの何もないところをマウスでドラッグすると、水色の枠を表示します。この枠にポーズスライダを重ねると、ポーズスライダが緑色に変化し「選択状態」になります。先に説明したポーズの初期化や、別項で説明するポーズ値のコピー・貼り付けなどは、ポーズスライダを選択することで、選択した場所のみに操作を適用できます。

    image074.png
     それでは、「首ピッチ軸」「首ロール軸」「首ヨー軸」「胴体」の4つのポーズスライダを選択し、ツールバーの「ポーズ初期化」をクリックして、基準ポーズに戻しましょう。

     続いて、中途半端なポーズ値を整えます。ポーズ値の操作はポーズスライダのツマミまたはスピンボタンで可能ですが、ここでは数値を合わせやすいように、スピンボタンのクリックで調整しましょう。左肩のポーズ値を110.00°、左肘のポーズ値を0.00°に、それぞれ設定してください。右腕・右肘は調整しなくても良いです。


    image075.png





     最後に、ポーズをきれいに左右対称にしましょう。ポーズを左右対称にするには「半身コピー」の機能を使います。左腕・左肘の2軸のポーズスライダを選択し、ツールバーの「左半身コピー」ボタンをクリックしましょう。クリックすると、両腕・両肘のポーズ値が同じになります。

    image076.png




プログラムのビルド・実行

 それでは、ここで一度、作成したプログラムを実行してみましょう。本ソフトウェアのプログラムはjavaソースとして保存され、実行する前にJavaDevelopmentKit(JDK)でビルドされます。エラーが発生せずビルドに成功すれば、ロボット本体でプログラムを実行できます。

  • ○ メインメソッドの設定

    ビルドの前に、プログラムで最初に実行するメソッドを設定する必要があります。このメソッドを「メインメソッド」と言います。メインメソッドは、エクスプローラまたはクラスウィンドウから設定することができます。

     エクスプローラでメインメソッドを設定する場合は、設定するメソッドを右クリックしてポップアップメニューを開き、メニューの「メインメソッドに設定」をクリックしてください。クラスウィンドウでメインメソッドを設定する場合は、これと同様に設定するメソッドを右クリックしてポップアップメニューを開き、メニューの「メインメソッドに設定」をクリックしてください。メインメソッドを設定すると、エクスプローラ上でそのメソッドのアイコンが「 http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image077.png 」で表示されます。

    image078.png
  • ○ プログラムのビルド・実行

    プログラムのビルドは、ツールバーの「ビルドボタン」及び「実行ボタン」で行います。ビルドボタンはプログラムのビルドのみ行い、実行ボタンはプログラムのビルド後に、ロボット本体にプログラムを転送して実行します。プログラムの実行は、必ずロボット本体と通信中である必要があります。

    それでは、ロボット本体との通信を確認し、「実行ボタン」をクリックして、作成したプログラムを実行してみましょう。

    image079.png



     ビルド・実行の進行状況は、コンソールウィンドウに表示されます。

    image080.png




  • ○ プログラムの実行停止

     ツールバーの「停止ボタン」をクリックすると、現在実行しているプログラムを停止します。

    image081.png




  • ○ ロボット本体へのプログラム割り当て

     ビルドしたプログラムは、ロボット本体のプログラムに組み込んで、本ソフトウェアを使わずにロボット単体で実行させることができます。Sotaの場合、○ボタンを押すことで組み込んだプログラムを実行できます。

     本体にプログラムを組み込む場合、次の操作でワークスペースの設定を変更し、改めてプログラムを実行してください。

    image082.png
    image083.png

     




    image084.png
    image085.png




     ロボット本体にプログラムを割り当てたら、一度本体単体で実行してみましょう。Sotaの背面にある○ボタンを短く1回押して、プログラムが実行されるか確認してみましょう。プログラムの起動には数秒の時間がかかります。

    image086.png





     ○ボタンで起動したプログラムの実行中に再び○ボタンを押すと、プログラムの実行を停止します。

     本ソフトウェアからプログラムを実行する場合は、○ボタンで起動したプログラムを終了させてから行ってください。




 以上が、本ソフトウェアのプログラミングの基本的な手順になります。他にも説明していないソフトウェアの機能があるため、それらを含めて、次章からは更に複雑なプログラムを作成してみたいと思います。

目次  次のページへ>>?