二足歩行ロボットコミュニティサイト

【サイトの使い方】  【サイトマップ】  【お問い合わせ】 
ロボット動画  |   ロボット写真  |   BBS  |   ダウンロード  |   イベント予定  |   スタッフ日記  |   リンク  |  
ログイン パスワード    新規登録   パスワード紛失  

プログラムについて

ロボットのプログラムについての質問コーナーです。

1: VS-C3でのボタン同時押しについて(3)   2: VS-WRC103LV+VS-BT001+VS-C2 for Androidで動かしたい(8)   3: 自律性のロボット(33)   4: VS-IX001で得られるセンサの値の単位について(3)   5: ポーズ維持の機能(3)   6: VS -C2 for Aneroid について(3)   7: BlueToothシリアル通信プログラミングに関する質問(3)   8: ひとつのポーズスライダで複数のサーボを動作させる方法(8)   9: VS-BT001のサンプルプログラムについての質問(5)   10: Robovie-nano ロボットは階段を登るプログラム(1)   11: うつ伏せの状態で前進するまたその場で回転する(2)   12: Robovie−X階段を登るプログラム(2)   13: RobovieMaker2でのアナログスティックを使った動作(4)   14: サーボがOFFしない(3)   15: RB2000(15軸)腕立て伏せのプログラム(9)   16: サーボが動かない(5)   17: アナロク入出拡張ボートの使い方(3)   18: モーション作成での疑問(6)   19: 動かない(3)   20: アナログスティックのプログラムについて(9)   21: プログラムの設定方法(4)  

 新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ 
« 1 2 3 4 (5)

1 プログラムの設定方法
taishi
新米

tai 2006-10-26 0:39:12  [返信] [編集]

Robovie-iのプログラムで、リモコンのボタンを押している間、登録された動作を繰り返し行い、ボタンをはなすと動作が終了するようなプログラムの設定方法はあるのでしょうか?
2 Re: プログラムの設定方法
combat-e
長老

combat-e 2006-10-27 11:57:03  [返信] [編集]

taishiさん、こんにちは。

コントローラのボタンを押している間だけロボットに動作を繰り返させる場合は、RobovieMakerのモーション作成のときに、ポーズの実行手順を設定することで可能です。

RobovieMakerでは、ロボットに繰り返し動作をさせるモーションを「ループ構造」といいます。

ループ構造はRobovieMakerユーザの皆さんが特によくつまづくところなので、最新版のRobovieMaker取扱説明書を参考に説明したいと思います。


最新版のRobovieMaker取扱説明書は以下のURLをご参照ください。

↓最新版のRobovieMakerマニュアル↓
http://www.vstone.co.jp/top/products/robot/Robovie-i_files/RobovieMakerforVS-RC003doc.pdf


今回の質問に関する説明部分は、RobovieMaker説明書の28ページ「3-4-3.モーション中のポーズの実行順序を設定する」です。こちらのページを参照しながら以下の説明をお読みください。




RobovieMaker実行画面の右側「モーションエリア」には、モーションに使用するポーズの数だけ「モーションスライダ」が並んでいます。

モーションスライダでは、モーション中のポーズの実行順序を設定する「nextポーズ」「breakポーズ」というものがあります。「breakポーズ」は置いといて、まずは「nextポーズ」を中心に解説します。



それでは、実際のモーションを元に、具体的に解説します。

少し見づらいかもしれませんが、テキストで取扱説明書29ページの図を再現しました。
ツールバーの「DUP」ボタンをクリックして単純にモーションを作成した場合、以下のようにモーションエリアにモーションスライダが並びます。

●000 [==[]========] 050<-> 001<-> ---<-> ↓
●001 [==[]========] 050<-> 002<-> ---<-> ↓
●002 [==[]========] 050<-> 003<-> ---<-> ↓
●003 [==[]========] 050<-> 004<-> ---<-> ↓
●004 [==[]========] 050<-> 005<-> ---<-> ↓
●005 [==[]========] 050<-> ---<-> ---<-> − nextポーズに従って000〜005のポーズを順番に実行し、005のポーズ実行後に再生を終了。


この場合、各モーションスライダのnextポーズは、000番なら001、001番なら002・・・という具合に、「自身のポーズ番号+1」が設定されています。
このモーションを再生すると、000番のポーズから順番に「000→001→002→003→004→005」と進んで005のポーズを実行後モーションを終了します。
005番のポーズでは、nextポーズが---に設定されている(つまり、「終端」に設定されている)ので、005のポーズを実行したらモーションの終端とみなして終了します。

ちなみに、「モーションは必ず000番のポーズから始まる」「nextポーズの設定が---の場合モーションの再生を終了する」という二つの原則を覚えておいてください。


それでは、このモーションの003番のポーズを少しいじって、nextポーズを001に設定してみます。

●000 [==[]========] 050<-> 001<-> ---<-> ↓
●001 [==[]========] 050<-> 002<-> ---<-> ↓←←
●002 [==[]========] 050<-> 003<-> ---<-> ↓ ↑-----nextポーズに従い001〜003のポーズを繰り返し再生。
●003 [==[]========] 050<-> 001<-> ---<-> →→↑
●004 [==[]========] 050<-> 005<-> ---<->
●005 [==[]========] 050<-> ---<-> ---<-> ※終端に到達しないのでモーションが終わらない


このモーションを再生すると、nextポーズの設定に従って「000→001→002→003」と進んだ後、003のnextポーズに従って001のポーズに戻ります。
001のポーズのnextポーズは002、002のポーズのnextポーズは003なので、再び「001→002→003」と進み、また003のnextポーズに従って001に戻り・・・となります。


モーションは繰り返し再生できるようになりましたが、これではモーション終端の005のポーズに到達しないのでモーション再生が終わりません。

このモーションをコントローラのボタンに当てはめると、コントローラでこのモーションを一度でも呼び出してしまうと、モーションが終了できないのでロボットの電源を切るまでロボットが同じ動作を繰り返し、コントローラの操縦を受け付けなくなってしまいます。



そこで、この繰り返しの中に「コントローラのボタンを離したら別のポーズを実行する」という抜け道を作ります。

この役目を担うのがbreakポーズです。
breakポーズは、「コントローラのボタンを離したときに、nextポーズの代わりに実行するポーズ番号」を設定します。

●000 [==[]========] 050<-> 001<-> ---<->   ↓
●001 [==[]========] 050<-> 002<-> ---<->   ↓←←
●002 [==[]========] 050<-> 003<-> 004<-> ↓←↓ ↑-----ボタンを押している間、nextポーズに従って
●003 [==[]========] 050<-> 001<-> ---<-> | →→↑   001〜003のポーズを繰り返し再生
●004 [==[]========] 050<-> 005<-> ---<-> ↓
●005 [==[]========] 050<-> ---<-> ---<-> −コントローラのボタンを離すとbreakポーズに従って繰り返しの抜け道へ分岐


このモーションを再生すると、先ほどと同様にnextポーズに従って「000→001→002→003→001→002→003・・・」と同じ動作を繰り返しますが、何度か動作を繰り返した後「002→004→005」と進んでモーションを終了します(このとき動作を繰り返す回数は「ループ回数」二かかわりがあります。ここでは解説が長くなるので一旦ループ回数の説明は省きます)。

breakポーズは「繰り返しを終了する」というタイミングが訪れたときに、nextポーズの代わりに使用される設定です。
002番のポーズには003番のnextポーズが設定されていますが、繰り返しを終了する指示が来たことでbreakポーズに設定された004のポーズにジャンプするようになります。
そして、そのまま「004→005」とモーション再生が進み、005番のポーズを実行後モーション再生が終了します。

コントローラでの操縦の際には、「ボタンを離す」ことで「繰り返しを終了する」という命令をロボットに与えられるので、これで「ボタンを押している間は動作を繰り返し、離すとモーションが終了する」という動作をこれで作成できます。


かなり駆け足で説明したので、わかりにくくなってしまったかもしれません。
「ここがわからない」という点がありましたが、遠慮なく指摘してください。


ループ構造の件以外でも、RobovieMakerの操作に関してわからない点がありましたら、何でもお答えします。
3 Re: プログラムの設定方法
taishi
新米

taishi 2006-10-28 12:06:10  MAIL  [返信] [編集]

combat-eさん、ていねいなご説明、ありがとうございす。
早速試してみましたら、無事、コントローラーで思い通りの動作をさせることができました。ありがとうございました。
4 Re: プログラムの設定方法
shiba
新米

shiba 2006-10-30 12:37:38  SITE  MAIL  [返信] [編集]

こんにちは、shibaです。

もう問題が解決されていると思いますが、
コントローラのボタンを押している間、
動作を繰り返すということが出来ます「ループ機能」に
ついて簡単にまとめたものを下記にアップしました。
http://www.lets-robot.com/uploads/download/061026loop.pdf

ご覧になってみてください。
全部読む 最新50 1-100 板のトップ リロード

 新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ 
« 1 2 3 4 (5)

BluesBB ©Sting_Band
検索
Loading
メインメニュー