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

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

[掲示板に戻る全部  1-  最新50
1 ひとつのポーズスライダで複数のサーボを動作させる方法
snj-2cv
新米

snj 2009-5-22 9:40  [返信] [編集]

ひとつのポーズスライダで複数のサーボを動作させたいと考えています。

いろいろと考えたのですが、

[CPUの設定]メニュー→[サーボモータ出力]タブ→
子となるサーボを選択し、
[出力値設定]の数式、

 x * Va / 256 * Vb / 256

に、
親となるポーズスライダの値をVaに入れれば…と
考えました。
で、

 x=256
 Va=親となるポーズスライダの番号
 Vb=256

となれば、
出力値設定から得られる出力値は常に親となるポーズスライダと同じ値が取り出せる。
よって、親となるポーズスライダで設定した角度で複数のサーボを同時に制御出来るのではないか。
と考えました。

しかしここで問題が発生。
Vbに、常に同じ数値(ここでは256とした)を与え続けることが出来ない…。

すべてのモーションの先頭に適当なユーザ変数、
例えば100番を入れ込んで、
 v[100]=256
とし、Vbにその値を放り込むことも考えられなくもないが、
そうすると、もしその設定を忘れてしまえば同期が
とれないことになる。

また、常に1の値を返している変数があれば、それを
Vbに使って、xに65536を入れる方法もあるかと考えたが
係数に32767を超える数字は入れられないようだし。

ほとほと困りました。

いっそRobovieMaker2に新しい機能としてマスタースレーブを導入して頂きたいなどと思ってしまいます…。

誰かタスケテ下さい。
2 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
combat-e
長老

combat-e 2009-5-22 10:35  [返信] [編集]

>snjさん

こんにちは。

いくつか説明事項がありますので、順を追って解説します。
おそらくいくつかは既に理解されて試されているかと思いますが、説明を整理するために蛇足ながら解説します。

・二つのサーボをまったく同じ角度で動かす場合

二つのサーボモータを、常時まったく同じ角度に動かす場合は、単純にスレーブのサーボにおいて、下記画像の赤の部分に、マスター側と同じ数値を書き込めば実現します。



また、マスター側でジャイロなどを使っている場合、緑の枠内の設定も同じにあわせればよいです。

これで、マスター側とスレーブ側のサーボが常時同じ角度に動きます。
また、「スレーブの角度を、常にマスターの角度から30度ずれた状態にする」のようなオフセットをさせたい場合は、サーボモータの位置補正機能を使うことで実現可能かと思います。


・常時0以外の決まった値が入る変数について

今回のサーボ制御で、オフセット以外の目的で数値の加工が必要な場合、やはりご質問のように「常時同じ値が入る変数を使って計算式を作る」必要があるかと思います。

そこで、ご質問の件、とりあえず「常時数値が1になっている変数」を探してみました。
VSRC003変数表を用意して解説をお読みください。

最初に思いついたのが変数251番の「SELECT+STARTの状態」ですが、調べたところ私の予想の「サーボモータのON/OFF」で数値が切り替わるのではなく、純粋に「SELECT+STARTが押された場合」に数値が切り替わる仕様のようで、例えばモーション作成時にRobovieMakerからサーボをONにしても、この変数の数値が1になりませんでした。

そこで他の数値を調べたところ、変数240番の「現在接続されているコントローラの種類」が該当するようです。
RobovieMakerのプロジェクトでは、デフォルトの設定(コントローラの自動判別)で、ゲームパッドが接続されているか何も接続されていない場合に「1」が入るようです。
>参考までに、ProBoやG-ROBOTSのコントローラが接続されていると他の数値が入ると思われます。

これにより、おそらく240番の変数を使用すれば、
ただし、この使い方は想定されていないので、もしかしたら何かのタイミングで数値が1以外になるかもしれません。
この変数で問題ないか、しばらくは注意して作業してみていただけますか?
3 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
snj-2cv
新米

snj 2009-5-22 11:23  [返信] [編集]

うわっ

そんな簡単な方法が…
気がつきませんでした(笑)

これで楽勝ですね。

251番と240番、私も考えたのですがやはり確実性に欠けると思いまして。

最初の赤丸の方法で試してみます。
ありがとうございました!
4 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
snj-2cv
新米

snj 2011-5-25 9:07  [返信] [編集]

二年越しの再質問です。
おかげさまで同期はとれるようになっています。
が、ここにきてもうひとつ質問です。

マスターの動作に対して、スレーブを逆回転させる

ということは可能でしょうか?
色々考えたのですが…分かりませんでした。
ご指導くださいますよう何卒よろしくお願いします。
5 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
anaheim
常連

anaheim 2011-5-25 11:50  SITE  [返信] [編集]

初めまして、anaheimです。m(__)m http://heim.seesaa.net/
無責任な案が思い付いたので、書き込みします。(^^;

■案1■ ソフト的
 ・上記の緑枠で対応する。
 ・x * Va / 256 * Vb / 256
 ・Vb の変数の候補
  ・変数238 CPUボードのモード切替スイッチの値:2〜9
  ・変数248 マップ番号:2以上
 ・xをマイナス値で入力
  (Vbが2以上なら、xはぎりぎり32767で収まる)
 #デメリット:[もしその設定を忘れてしまえば...]

■案2■ 物理的に
 ・サーボモーターの取り付け方向を反転する。
 ・出力軸の右左を逆にすると、曲がる方向も逆になるかと。
 #デメリット:ブラケットの作り直しが必要?
        変更が大掛かり!

■案3■ サーボ改造
 ・サーボモーターをバラし、配線を変更する。
 ・サーボ内のモーターの+−の配線を逆にする。
 ・ポテンショメーターの+−の配線を逆にする。
 #実際に出来るか?未検証です。m(__)m
 #デメリット:補修時の対応が大変。
       [もしその設定を忘れてしまえば...]


[VS-RC003HV]は、並列処理を想定していないので、
この手の事は、何かしらの[ごまかし]に苦労しますね。(^^;

以上 アイデアの参考になれば、でした。m(__)m
6 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
combat-e
長老

combat-e 2011-5-25 13:13  [返信] [編集]

snjさん

大変お久しぶりです。
お問い合わせの件ですが、anaheimさんの提案の他には、「サーボ出力式の'15000'を'-15000'に変更する」という方法でもできるかもしれません。
該当箇所は、ちょうどページ上にあるサーボの設定画面にも載っていますね。

この変更で、サーボに出力される信号の符号が反転するので、回転方向は逆転すると思います。
ただ、その隣のオフセット値(画像では「22500」の部分)が大きく変わると思います。
おそらくかなり数値を増やす必要があると思います(32500くらい?)。

この方法を試す場合も、プロジェクトをバックアップして、CPUと生サーボ2個で実験してみるのがよいかと思います。

7 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
snj-2cv
新米

snj 2011-5-26 23:44  SITE  [返信] [編集]

すっごい長文書いたのにエラーで反映されなかった・・・といっても考えながら書いたのでただ長くなっただけなので、まあ良しとします。

>アナハイム様
はじめまして。
時々サイト拝見させてもらってます。
RBの色々な実験、とても参考になってます。
ご提案下さいました方法、やはりヒューマンエラーやなんらかの信号ミスが気になりますね。
そこで・・・

>combat-e様
またなんと一撃で簡単な方法を・・・
理屈は(たぶん)理解しました。
PWM値に7500から37500の値を与えることによってサーボを動かしているわけだったのですよね?
で、この中間の値が22500だと。
それでオフセット値が22500に設定されている、と。
だから「出力PWM設定」の15000を-15000にすれば結果の数字は反転するわけですよね。

しかし、です。
もしそうであれば22500の値を変更する必要があるのは何故でしょうか?
ここしばらくロボットを触れる状況にありませんので現物で確認できず申し訳ないのですが、何卒ご教授くださいますよう何卒よろしくお願い致しますっ!
8 Re: ひとつのポーズスライダで複数のサーボを動作させる方法
combat-e
長老

combat-e 2011-5-29 14:32  [返信] [編集]

>snjさん

すみません、返信が遅れました。

確かに、そういえばxは-32768〜32767の範囲なので、一次式の傾きが逆になるだけだから、オフセットはそのままですね(多分)。
ご指摘のとおり22500の部分は変えなくてもいけると思います。

[掲示板に戻る全部 次100 最新50
BluesBB ©Sting_Band
検索
Loading
メインメニュー