Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

Rescue-B Rules 2012 2.1 Control:

2012-02-28 | Rescue Rules 2012

今回のお題は「制御」です。


2 Robot

2.1 Control:

2.1.1 Robots must be controlled autonomously (use of a remote control to manually control the robot is not allowed).

2.1.1 ロボットは自律制御型でなければなりません。(ロボットを手動で制御することはできません。)


2.1.2 Robots must be started manually by humans.

2.1.2 ロボットはチームキャプテンが手動でスタートします。


2.1.3 Robots may utilize many different methods to navigate the arena (wall touching, wall sensing, randomizing, etc.) but all navigation functions must be accomplished by the robot “searching” and not by the robot following any pre-loaded maps of the arena.

2.1.3 ロボットは、アリーナを進むために、様々な方法を利用します。 (例えば壁に触れたり、壁を感知したり、ランダムに動いたり) しかし、すべての機能は、ロボット自身の「探索」によってなされなければなりません。 アリーナに設置された迷路の経路をあらかじめプログラムに組み込んではいけません。


2.1.4 At no time can a robot displace walls (push them out of place) or cause damage to any arena element.

2.1.4 決して、ロボットは壁を押して動かしたり(不当に押したり)または、競技アリーナに損害を与えてはいけません。


2.1.5 Robots should include a stop/pause button so they may be easily stopped/paused by humans to avert any potentially damaging or illegal robot actions.

2.1.5 ロボットは、何かの問題が発生したときやロボットが意図しない動作をしたときに簡単に停止できるように、停止/休止ボタン(機能)を持たなければなりません。


こんなかんじでしょうかねぇ。

2.1.1、2.1.2は、お決まりの文章です。 ロボットは自律的に動作しなければなりません。 ただし・・・(当たり前ですが)人間の手でスタートします。

どれ、ポチッとな!

2.1.3では、明確に「決め撃ち」プログラムが禁止されました。 迷路を人間が読み取って、プログラムに入れることを「pre-loaded program」「pre-loaded maps」と表記するようです。

2010年に中国チーム、2011年のイランチームは、完全な「決め撃ち作戦」でした。

でも、ルールでは、これまでは「自律型」としか書かれていなかったので、解釈によって、しかたが無かったのかもしれません。 今回(2012年ルール)で明確になりました。

また、これまで2.1.3に書かれていた「壁を不当に押したり、競技アリーナを傷つけてはいけません。」の記述が2.1.4に独立して記述されました。

まあ、これまで見た、レスキューBの競技アリーナは、壁が頑丈にできているので、ロボットが多少押しても、うんともすんとも言いませんでしたが・・・・

関東ブロック大会の簡易レスキューBフィールドが一番ヤワです。(笑)


それに伴い、これまでの2.1.4が2.1.5に項番が変わりました。

2.1.5は緊急停止ボタン・・・についてですが、これが発動したのを見たことがありません。

普通は、チームキャプテンが「競技進行停止」を宣言して、ロボットを持ち上げて、ロボットを停止します。 緊急停止ボタンより、ロボットを持ち上げるための把手(サッカーロボットみたいな)を義務付けた方が、効果があると考えます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その90 回転数の謎!? さらに

2012-02-28 | NXTねた

モーターの同期についてはなんとなく判った・・・ような、気がします。


じゃあ、次に・・・

こんなプログラムを作って実験してみます。

  cs=MotorTachoCount(OUT_A);
  NumOut(0,LCD_LINE1,cs);

  OnFwdSync( OUT_AC,-60,0 );
  do{
    ce=MotorTachoCount(OUT_A);
    }while((cs-ce)<300);
  NumOut(0,LCD_LINE2,ce);

  Off(OUT_AC);

最初に変数 cs にモーターの回転の初期値(普通は"0")を入れます。

ロボットを前進させてモーターAが300度回転したら終わり!

終わった時の回転角を変数 ce に入れます。

このプログラムを実行すると、予想通り15cm進んで

0、-300

と表示されます。


では、これを2回分続けて

  cs=MotorTachoCount(OUT_A);
  NumOut(0,LCD_LINE1,cs);

  OnFwdSync( OUT_AC,-60,0 );
  do{
    ce=MotorTachoCount(OUT_A);
    }while((cs-ce)<300);
  cs=MotorTachoCount(OUT_A);
  NumOut(0,LCD_LINE2,cs);

  do{
    ce=MotorTachoCount(OUT_A);
    }while((cs-ce)<300);

  NumOut(0,LCD_LINE3,ce);

  Off(OUT_AC);

これを実行してみると・・・

ちゃんと30cm進んで、0、-300、-600が表示されます。


ここまではOK!


問題は、ここから・・・

2回目の do文の前に

  OnFwd( OUT_AC,-60 );

を入れて実行すると・・・0、300、-600が表示されるのですが、45cm進んじゃいます。


な~ぜ~


特に、2回目のループで、初期値(cs)が-300、終わり(ce)が-600と表示されているにも関わらず、600度回転していることになります。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする