汎用ヒト型決戦遊具はじめました。
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ROBOXERO(60) ジャイロ-3
2012年09月05日 (水) | 編集 |

いまさらですが、ジャイロセンサとは何者なのか。




ジャイロセンサは、角度の変化を捉えるセンサだそうです。
角速度(単位時間あたりの回転角)を検出するとのこと。

中に極小の振り子のようなものが入っていて、コリオリの力という慣性の一種がおよぼす振動子のズレを、電位差(=電圧の差)で検出するそうです。
http://www.epsontoyocom.co.jp/gyroportal/about.html




この銀色のipodの裏側みたいな長方形の部品がジャイロで、
長辺と並行な軸に対しての角度を検出するみたいです。

g1g2.png



姫路ソフトワークスの資料と同じ向きに設置すると、
G1がピッチ軸、
G2がロール軸になるはずです。たぶん。
(ヨー軸を検出する場合には、部品は縦おきになるはずです。)

ピッチとかロールとか、専門用語っぽいですね。

ピッチャーが球を投げる腕の動きがピッチ軸。
飛行機のきりもみ回転がロール軸。ロールケーキの渦巻き。
振り向いてヨォッ!とあいさつする腰のひねりがヨー軸。

と私は覚えました。




もう一つ大事なポイントがあります。
ジャイロからサーボへのフィードバックは、ロボゼロの基盤が内部的に処理・発動してくれるので、
ジャイロの入力値を加工するプログラムを書く必要はないということです。
てっきり別途プログラムが必要なものと思い、それが付随するであろうオフィシャル版のジャイロを申し込んでしまいました。




さて、制御のプログラムですが、初期設定をするだけで機能してくれます。
姫路サポートセンターの資料を見ますと、

>ジャイロセンサーをON(使用)にする。
>
>(N389=0
>(N393=74
>(N394=74
>(N396=0
>(N398=0
>(N397=1
>(N399=0-1
>(N401=0
>(N403=0
>(N402=1
>(N404=1
>(N389=1

とぶっきらぼうに書いてあります。
変数資料があるので、読み解きます。




(N389=0
→ジャイロ機能のON-OFF設定。0ならOFF、1ならON。
 ONする場合、パラメータ設定後に「(N389=1」のコマンドを行う。
 この場合、ONの前にパラメータを設定するために一度ジャイロをOFFにしている。

(N393=74
→「ジャイロ0(ジャイロ基板上のG1ユニット・ピッチ軸)」
 のニュートラル状態の中央値を設定。(0~255)
 通常、128を指定するが、接続するジャイロセンサの出力電圧によって調整が必要。

(N394=74
→「ジャイロ1(ジャイロ基板上のG2ユニット・ロール軸)」
 のニュートラル状態の中央値を設定。(0~255)
 通常、128を指定するが、接続するジャイロセンサの出力電圧によって調整が必要。

(N396=0
→「ジャイロ係数0」。(-32768~32767)。
 「ジャイロ0(ピッチ軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ17(右股関節ピッチ軸)のオフセットにする。

(N398=0
→「ジャイロ係数2」。(-32768~32767)。
 「ジャイロ0(ピッチ軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ8(左股関節ピッチ軸)のオフセットにする。

(N397=1
→「ジャイロ係数1」。(-32768~32767)。
 「ジャイロ0(ピッチ軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ15(右足首関節ピッチ軸)のオフセットにする。

(N399=0-1
→「ジャイロ係数3」。(-32768~32767)。
 「ジャイロ0(ピッチ軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ10(左足首関節ピッチ軸)のオフセットにする。

(N401=0
→「ジャイロ係数5」。(-32768~32767)。
 「ジャイロ1(ロール軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ18(右股関節ロール軸)のオフセットにする。

(N403=0
→「ジャイロ係数7」。(-32768~32767)。
 「ジャイロ1(ロール軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ7(左股関節ロール軸)のオフセットにする。

(N402=1
→「ジャイロ係数6」。(-32768~32767)。
 「ジャイロ1(ロール軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ14(右足首関節ロール軸)のオフセットにする。

(N404=1
→「ジャイロ係数8」。(-32768~32767)。
 「ジャイロ1(ロール軸)」の入力値と中央値との差分に、この係数をかける。
 その値を、サーボ11(左足首関節ロール軸)のオフセットにする。

(N389=1
→パラメータの設定ができたので、ジャイロをオンにする。




足首のピッチ軸は左右のサーボが向かい合わせに設置されているので、
(N397=1 と (N399=0-1 で正負が逆転。
一方、足首のロール軸は左右のサーボが同じ向きに設置されているので、
(N402=1 と (N404=1 で正負が揃っています。





と、ここまで書いたところで、miconoさんのブログを改めて見たら、めちゃめちゃ分かりやすく書いてありました。
前回読んだ時は、自分的に難解で意味不明だったのでスルーしちゃってました。




ロボワン大会の前々日にDr.GIYさんに教えていただいた設定です。

:GYROON
(N389=0
(N393=74
(N394=74
(N396=0
(N398=0
(N397=7
(N399=0-7
(N401=0
(N403=0
(N402=0-8
(N404=0-8
(N389=1
RETURN

設定数値的にはDr.GIYさんのサイトで公表されているものと同じですが、
私は180度逆にジャイロを設置しているために、設定も元のプログラムと比較して正負がすべて逆転しています。
これは、旧タイプのジャイロと新タイプのジャイロで、コードの出る向きが180度ちがっているために生じていることが分かりました。
関連記事
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。