Re: The history of "M&Y"

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

Rescue Line 2015 3.8 Evacuation Point Placement

2015-02-28 | Rescue Rules 2015

次のお題は「避難場所の配置」です。

 

3.8 Evacuation Point Placement

3.8.1 The Evacuation Point will be placed in any of the non-entry corners in the evacuation zone.

3.8.2 Once a robot begins its scoring round and has entered the Arena, the referee will roll a standard 6 sided dice to determine in which corner the Evacuation Point will be located.

3.8.3 After a Lack of Progress happened in any place, the referee may roll the dice once more and place the Evacuation Point at a new corner.

3.8.4 The RoboCupJunior Organizing Committee (OC) will try their best to secure the Evacuation Point down, but you should expect it to slight shift at times.  

3.8.1 避難場所は、避難区域の入口の無いコーナーに配置されます。

3.8.2 ロボットが得点走行を開始して、アリーナに入ったら、審判がサイコロを振って出た目にしたがって避難場所を配置します。

3.8.3 ロボットがどこに居ても、競技進行停止の後には、審判は再びサイコロを振って避難場所の配置しなおします。

3.8.4 避難場所は動かないようにするが、完全には固定されずに多少動いてしまうかもしれません。

 

まあ、こんな感じでしょうかねぇ。

 

避難場所の配置についてですが・・・2014年ルールからの変更はありません。「避難部屋」が「避難区域」に置き換わったくらいでしょうね。

避難場所の決め撃ちをさせないために、サイコロを振って、避難場所を配置します。ルールでは、競技進行停止の度にサイコロを振りなおします。(世界大会で実際にそんな面倒なことをしていたのでしょうかねぇ。)

 

普通はノード大会やブロック大会では、1つ目の部屋で競技進行停止になったからと言って、サイコロを振って避難場所を変更したりはしていません。(おそらく)

でも、こういう地味な「決め撃ち防止」対策は好きです。

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

栃木・福島ブロック

2015-02-27 | うんちく・小ネタ

またしょうもないネタですが・・・

(旧)那須・郡山ブロックが栃木・福島ブロックになりました。と、書かれています・・・

 

ところで、ジュニア・ジャパンのHPを見ると、全国のブロックの数は23です。

そのブロックに参加しているチーム数ってどれくらいなのでしょうか!?

これだけブロック数が多いと・・・各ブロックの優勝チームしかジャパンオープンに出られないんじゃないかと・・・私が、心配してもしょうがないのですが・・・

 

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

Rescue Line 2015 3.7 Victim Placement

2015-02-27 | Rescue Rules 2015

次のお題は「被災者の配置」です。

 

3.7 Victim Placement

3.7.1 The victims will be allocated in a random way on the Evacuation Zone. The number of victims will be decided by the Organizing Committee. The number of victims will be the same for each field (or arena) layout.

3.7.1 被災者は避難区域の中にランダムに配置されます。配置する被災者の数は、運営者が決めますが、フィールド(アリーナ)毎に同じにします。

 

まあ、こんな感じでしょうかねぇ。

 

これまで、被災者は缶ジュースの缶にアルミフォイルを巻いたものでした。それが1個だけ使われていました。つまり、たった一人の被災者を救助する競技でした。しかし、2015年ルールでは、複数の被災者を救助する競技になりました。(缶以前は、複数の被災者を「発見する」競技でしたね) で、具体的に何人の被災者を配置するかは、書かれていませんが・・・ルールの先頭にあるイラストでは5個のボールが配置されています。(フォーラムには2個~5個と書かれています) 被災者の配置は、ランダムなんだそうです。壁からの距離とか、障害物からの距離とか、避難場所からの距離とか・・・そういう面倒な条件は一切無し!! 審判が適当に転がしてから、「はい、競技開始!!」となるのでしょうかねぇ。まあ、こう書いてあっても、日本人は真面目だから「どのチーム公平になるように、ここと、ここと、ここに置きます・・・」とか、なるんだろうなぁ。

ああ・・・日本人らしい・・・(笑)

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

Rescue Line 2015 3.6 Lack of progress

2015-02-26 | Rescue Rules 2015

次のお題は「競技進行停止」です。

 

3.6 Lack of progress

3.6.1 A lack of progress occurs when:
・The robot ceases to follow the line when it is present. 
・The robot is stuck in the same place or loses the black line without regaining it by the next tile in the sequence (see figures below).
・The robot moves completely out of the field. 

3.6.2 The team captain can also call for a Lack of Progress at any time (s)he wants (for example if the robot is in danger).

3.6.3 If a Lack of Progress happens, the robot must be positioned at the beginning of the course or at the previous ‘Drop Tile’ facing the evacuation zone, and checked by the referee.

3.6.4 Only the team captain is allowed to restart the robot without changing programs and/or modifying the robot.

3.6.5 There is no limit to the number of restarts within a game.

3.6.6 A robot is allowed to proceed to the following 'Drop Tile', if the robot fails to reach it after the third attempt.

3.6.7 The team captain may also choose to make further attempts at the course to earn the additional points available for overcoming obstacles, gaps in the line, and speed bump points that have not already been earned before reaching the 'Drop Tile'.  

3.6.1 以下の場合に競技進行停止になります。
・黒線があるところで、ライントレースができない場合
・ロボットがある場所から動けなくなったり、黒線を外れて次のタイルでも戻れない場合
・ロボットがフィールドから完全に出てしまった場合

3.6.2 チームキャプテンはいつでも競技進行停止を宣言することができます。(例えばロボットが期待する動作をしていない時など)

3.6.3 競技進行停止の時には、コースのスタート地点、または避難区域に向けて一つ手前のDrop Tileから再スタートします。再スタート場所は審判が確認します。

3.6.4 再スタートの時には、プログラムの切り替えや修理はできません。

3.6.5 再スタートの回数に制限はありません。

3.6.6 ロボットが3回のトライでも次の Drop Tile に進めない場合には、先のDrop Tile に進むことができます。

3.6.7 チームキャプテンは、コースの障害物、黒線の切れ目、スピードバンプなど、まだクリアしていないものの得点を得る為に、手前の Drop Tile から再スタートすることを選ぶこともできます。

 

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

 

競技進行停止は、ちょっと変わりました。

3.6.1は、競技進行停止の基本です。

まずは、「黒線のあるところではライントレースしなさい」です。黒線があるのにラインから外れると(そして次のタイルで戻れない場合は)競技進行停止になっちゃいます。基本的に壁がなくなったから、「かべを頼りに進む」のルールが消えました。

次が、ロボットが止まって(詰まって)しまった場合や、黒線から外れて復帰できない場合です。

最後が、ロボットがフィールドから完全に出てしまった場合です。

ライントレースをすることは変わらないですが・・・外れたときに・・・壁が無くなったことが「吉と出るか凶と出るか」

3.6.2は、チームキャプテンが競技進行停止を宣言する場合です。チームキャプテンは、いつでも競技進行停止を宣言できます。

3.6.3は、競技進行停止の後の再開場所についてです。コースのスタート地点または最後に通った Drop Tile から再スタートになります。(レスキューB のチェックポイントと同じ考え方ですね。)

3.6.4は、再スタート時の注意点です。これもいままでと同様です。ロボットの修理や、プログラムの修正、プログラムの切り替えなどはできません。できるのは、電源の入れ直しとプログラムのリセットだけです。

3.6.5は、再スタートの回数制限です。再スタート=競技進行停止 ですが、まあ、何度やっても良いということですね。これまでの部屋得点と同様の Drop Tile の得点は競技進行停止の回数で減点されますが、被災者の救出は(競技進行停止での)減点がありません。個人的には、安易な競技進行停止を抑止するためにも、競技進行停止には何らかのペナルティを課して欲しいところですが・・・

3.6.6 3.6.7は、3回競技進行停止をしたら、先の Drop Tile に進めます。これは、これまでの部屋と同じ考えですね。それから、先に進まずに何度も同じところから再スタートできるところも、これまでと同じです。ただ、一番先(救助区域に近い場所)に設定した Drop Tile よりも先はないので、スキップはそこまでになりますね。

 

さて、ここまで読んで来て、これまでとの大きな違いは、勿論 Drop Tile なのですが・・・一つ消えたルールがあります。それは、「交差点で正しくない方向に進むと競技進行停止」です。これが消えたってことは、交差点で正しくない方向に進んでも「競技進行停止にならない」ということですね。私は最初、この消えたルールに気づかなかったので、交差点では緑マーカーで指定された方向に必ず曲がらなければならない(そうしないと競技進行停止)だと思っていたので「難易度が高く、初心者の参入ができない」と考えていました。しかし、ここまで読んで理解した結果「緑マーカーが読め無くても、右優先(または左優先)で進むことができる。」ことが分かりました。勿論緑マーカーの指示通りに進んだ方が高得点であることは言うまでもありません。

でも、そうすると新たにいくつかの疑問が湧いてきます。 「交差点で正しくない方向に進んでも競技進行停止にならない」が正しいとすると、同じところをぐるぐる回ったりしちゃうのではないでしょうか!?

一応私は、

・複数の経路が有る場合は、どの経路を進んでも良いが、(交差点の)得点があるのは、交差点マーカーの指示の通りに進んだ場合だけ。

・スタートタイルから避難区域に向かって進む経路を逆走した場合は競技進行停止になる。

(これはルールの3.6章にも書かれていませんが、3.6.7の後の図にある)

と考えていますが・・・実際の競技はどうなるのか分かりません。

 

ところで、3.6.7の後にある、絵ですが・・・いつまで使うのでしょうか・・・今となってはちょっと恥ずかしいです。 

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

これでよしなに

2015-02-26 | ブログ

こんなお菓子をもらいました。

「お代官様 これでよしなに」

「おぬしも なかなか悪じゃのう」

裏側には

「山吹色のお菓子です・・・」

 

まあ、日本の時代劇に良く出てくるセリフですね。(笑)

 

中身は、おせんべいです。

でも、おまけ!? として

こんな、金貨が入っています。

(金属製でけっこう重いです。でも、薄い・・・)

 

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

Arduinoねた その68 NXTとの接続 続き

2015-02-25 | Arduinoねた

それでは、今度は Arduino から NXT にデータを送るサンプルです。

I2Cアドレスは 0x62 で、0x20 から 2バイトを読む、というようなプログラムです。

 

NXT側

#define I2C_PORT    IN_1

int getData()
  {
  byte Wbuf[]={ 0x62,0x20 };
  byte Rbuf[2];
  int i=2;
  int data;

  I2CBytes(I2C_PORT, Wbuf, i , Rbuf);
  data = Rbuf[0]+(Rbuf[1]<<8);
  return (data);
  }

task main()
  {
  SetSensorLowspeed(I2C_PORT);

  ClearScreen();
  NumOut(40,LCD_LINE6,getData());
  Wait( 2000 );
  }

 

Arduino側

#include  < Wire.h >
#define I2C_SLAVE_ADDRESS 0x31
byte requestRegister, requestCommand;

void requestEvent()
  {
  byte d[2];
  int j=-256;
 
  if (requestRegister == 0x20)
     {
     d[0]=j & 0xff;
     d[1]=j >> 8;
     Wire.write(d,2);
     }
  }

void receiveEvent(int howMany)
  {     
  requestRegister = Wire.read();
  }

void setup()
  { 
  Wire.begin(I2C_SLAVE_ADDRESS);
  Wire.onReceive(receiveEvent);   
  Wire.onRequest(requestEvent);                
  }

void loop() { }

 

これで、NXTとArduinoの双方の通信ができるようになりました。

上の例では、単純に-256という数値をArduinoがNXTに返します。

この部分を、Arduinoに接続したセンサーの値を返すようにすれば、沢山のセンサーを接続することができます。

 

ところで・・・

上の例では、NXT側は Arduino側から 2byte のデータを受け取ります。

NXT側ではあらかじめ

I2CBytes関数の第3パラメータに2を指定して2byteをうけとります。

勿論 Arduino側でも、2byteを送出します。

だから問題は無いのですが・・・

例えば、I2CBytes関数の第3パラメータで何byteを受け取るかは、Arduino側には渡るのでしょうか? 普通のI2Cセンサーの場合は、読み出すレジスタ番号と何byte読み出すかを指定すれば、連続で読みだすことができます。 これと同じことがArduinoではできるのでしょうか? それともできないのでしょうか?

例えば、NXT側は2byteを受け取る、Arduino側は4byteを送出する・・・このようにして通信してみても、特に問題は無いようです。

じゃあ、今度は、NXT側は4byteを受け取る、Arduino側は2byteを送出します。

そうすると、特にエラーや処理待ちにはならずに、2byteが正しく送られて、残りの2byteは0xFFが返されます。

そうすると、Arduino側からは多めにデータを送出しておけば良いってことなのかなぁ。

 

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

Rescue Line 2015 3.5 Scoring 続き

2015-02-25 | Rescue Rules 2015

得点の続きです

 

3.5.9 A robot is considered to have successfully negotiated an obstacle when it moved through the tile where an obstacle was placed.

3.5.10 Points available for successfully completing a tile that has speed bumps. 5 points per speed bump tile.

3.5.11 Points available for successfully negotiating an intersection tile. 15 points per direction through intersection tile. Successfully means that the robot followed the suggested path. See 1.5.2.

3.5.12 Each gap, obstacle, speed bump and intersection tile can only be scored once per direction through the course, not each attempt through the course.

3.5.13 Successful victim rescue: Robots are awarded points for successfully rescuing victims. A successful victim rescue occurs when the victim is moved to the evacuation point (it needs to be completely inside of the evacuation point, and no part of the robot be in contact with the victim).  40 points per a successful victim rescue. 

3.5.14 Ties in scoring will be resolved on the basis of the time taken by each robot (or team of robots) to complete the course (this includes calibration time).

3.5.15 Check RoboCupJunior Rescue official website for a score sheet template.

3.5.9 障害物をタイルの外に動かしてしまったとしても、ロボットが障害物を回避できたことになります。

3.5.10 タイルに設置されたスピードバンプに惑わされずに、その先の黒線に進めれば(スピードバンプが設置されたタイルにつき)5点の得点になります。

3.5.11 タイルに設置された交差点に惑わされずに、ロボットが正しい方向に進めれば(交差点が設置されたタイルにつき)15点の得点になります。(正しい方向とは、ロボットが1.5.2で規定された経路に進むこと)

3.5.12 それぞれの黒線の切れ目、障害物、スピードバンプ、交差点は、それぞれの方向について1回だけ得点になります。

3.5.13 被災者の救出:ロボットが被災者を救助場所にいれることができれば救出成功として得点になります。(被災者を完全に避難場所に入れて、ロボットが被災者に触れていない状態)被災者の救助が成功すると1人につき40点の得点になります。

3.5.14 同点の場合は、競技を完了するまでに掛かった時間で順位を決めます。(時間は調整時間を含みます)

3.5.15 スコアシートのサンプルがロボカップジュニアのWEBサイトに掲載されます。

 

まあ、こんな感じでしょうかねぇ。

 

得点の後半です。
3.5.9は、障害物の回避は、障害物を動かさないでその周りを半周して先の黒線に戻るのが普通でしたが、最近は障害物を押しのけて先の黒線に進んでも「障害物の回避」として得点になるようです。まあ、ロボットが押してしまった障害物が、その先の経路に悪影響が無ければ良いのですが、どうなるか分からないのでオーソドックスに半周して回避したほうが良いと思いますがねぇ。

障害物は、ブロックやレンガなど大きなものが使われますが、それらを台から落として壊してしまった(割ってしまった)場合は、フィールド破壊になるのでしょうか!?

3.5.10は、スピードバンプの得点です。スピードバンプは(勿論)乗り越えます。(回避した場合は得点になるのでしょうか!?)これは、スピードバンプが設置されたタイル1枚につき5点の得点です。そのタイルに1本のスピードバンプが設置されていようと、5本の設置されていようと、1枚のタイルなら5点です。

3.5.11は、交差点の得点です。正しい方向に進めると15点です。正しい方向は、1.5.2で規定されている方向です。緑のマーカーがあれば、そのマ-カーが設置された方向に曲がります。緑のマーカーが設置されていなければ真っ直ぐに進みます。

3.5.12は、それぞれの得点イベントは片方向に付き1回だけ得点になります。という、こまでと同様の説明ですが・・・何度も書きますが、来た経路を戻るようなコースは作れないと思うのですが・・・ねぇ。

3.5.13は、被災者の救出です。被災者(ボール)を避難場所(三角形の枠)の中に完全に入れて、しかもロボットが触れていない状態になれば得点になります。得点は1人の救助につき40点です。これまでは、被災者は1人限定でしたが、今回からは複数の被災者がいますので、全員を救助するまで競技は続けられます。また、これまでは、被災者の救助の得点は、救助部屋での競技進行停止の数によって違っていたのですが、今回は40点固定のようです。

ところで、この被災者救助の得点は、どの時点で入るのでしょうか!? 一旦救助場所の枠の中に入った被災者(ボール)が、他の被災者の救助作業などで出てしまった場合は得点はノーカウントになるのでしょうか!? そこらへんが不明です。さすがにセカンダリは、高さ6cmの枠なので入ったボールが出てしまうことは無いと思いますが、プライマリは出てしまってもおかしくありません。審判の立場で考えると、競技の終了時に枠に入っていた被災者の数としてもらえるとありがたいのです。(どれが得点済の被災者であるか管理ができない)

さらに・・・今回のこの被災者ですが・・・最近流行のファンの風でボールを一気に避難場所に入れる、ということができてしまうと思うのですが・・・

さらに、サッカーロボットのキッカーのように、撃ち出したりすることも可能ですよね。

これまでの缶のように正立させる必要もないので、何らかの方法で押し込めば良いことになります。なんだか、これまで以上に被災者に「優しくない」ロボットになるような気がします。(笑)

3.5.14は、同点の場合の順位の付け方ですが、変更はありません。まあ「Give up した場合の時間は8分にする」とは、相変わらずどこにも書いていませんね。

3.5.15は、スコアシートのサンプルを提供しています・・・ということです。

 

補足

被災者の得点は、被災者を避難場所に入れた時点で得点となります。ですので、1回入れば40点、その後にでてしまっても40点の得点は変わりません。勿論、同じ出てしまった被災者をもう一度入れても得点の追加にはなりません。 

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

Rescue Line 2015 3.5 Scoring

2015-02-24 | Rescue Rules 2015

次のお題は「得点」です。長いので2つに分けます

 

3.5 Scoring

3.5.1 A robot is awarded points for successfully negotiating each hazard (gaps in the line, speed bumps, intersections and obstacles).

3.5.2 Successfully negotiating is defined as completely following the line, negotiating all line gaps, intersections, speed bumps, obstacles, and going through a doorway without human interaction.

3.5.3 Failed attempts at negotiating elements of the arena is defined as “Lack of Progress” (see 3.6).

3.5.4 Points available for successfully reaching each 'Drop Tile': 
・1st Attempt = 60 points 
・2nd Attempt = 40 points 
・3rd Attempt= 20 points

3.5.5 There are no points available for reaching a 'Drop Tile' beyond the third attempt. 

3.5.6 If green marks at intersections are used, the path may go to the opposite direction through the course (going back to the path that a robot already took).

3.5.7 Points available for successfully negotiating each gap in the black line. 10 points per gap.

3.5.8 Points available for successfully avoiding each obstacle blocking the black line. 10 points per obstacle.

3.5.1 ロボットは、様々な障害をうまく乗り越えることで得点を得ます。(黒線の切れ目、減速バンプ、交差点、障害物)

3.5.2 人間がロボットに触れることなく、黒線をたどり、切れ目、交差点、減速バンプ、障害物を越えたり、出入口を通ることが必要となります。

3.5.3 アリーナの様々な要素をうまく越えられない場合は競技進行停止になります。(3.6章を参照)

3.5.4 Drop Tile に到達することができると得点になります。1回目60点、2回目40点、3回目20点

3.5.5 3回以上のやり直しの後に Drop Tile に到達した場合は、Drop Tile 到達の得点はありません。

3.5.6 交差点の緑のマーカーが使用された場合には(ロボットがすでに通った経路を戻るように)コースを逆方向に進むことになるかもしれません。

3.5.7 黒線の切れ目をうまく進むことができると10点の得点になります。

3.5.8 黒線の上に置かれた障害物をうまく回避して進むことができると10点の得点になります。

 

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

 

得点関係の前半です。
3.5.1 3.5.2 3.5.3は得点の概要説明です。(人間が介入せずに)ロボットが自律的に黒線をたどって進み、いろいろな得点イベントをうまくこなすと、得点になります。(当たり前)

逆に、黒線を外れたり、得点イベントをうまくこなせない場合には競技進行停止になります。(これも当たり前ですね)

さて、3.5.4 からは具体的な得点の説明になります。

3.5.4 3.5.5 ロボットがコ-スを進んで Drop Tile に到達すると、得点になります。これはそれまでの競技進行停止の回数で得点が違います。これまでの部屋得点と同じ考えですね。部屋が無くなったので、その代りでしょう。Drop Tile には オレンジ色の円盤(Drop Tile Puck)を置いて、識別できるようにしています。(でも、ロボットがその円盤を押しちゃったりして動かしたらどうなるんでしょうか!?)

まあ、とにかく。1回目のトライで到達できると60点、2回目のトライ(1回の競技進行停止の後)で到達すると40点です。3回目のトライでは20点になりますが、それ以降は到達しても得点はありません。(0点です)

3.5.6 交差点の緑マーカーが使用されると、来た道を戻るかもしれないよ・・・と書かれていますが・・・2014年ルールと違って、交差点は1対1対応になったので、戻るルートを作ることは不可能だと思います。(いったいどうやったら、作れるの!?)これは、2014年ルールのものがそのまま残ってしまっただけではないかと・・・と、最初は考えていたのですが・・・前の章の 3.4.6 で、複数のルートがある場合はどのルートを通っても良い、ということなので、来た道を戻ることもありうる様です。でも、これで、どうなったら競技進行停止なのか、良く分からなくなりました。

3.5.7 黒線の切れ目(ギャップ)に惑わされずに、その先の黒線に進めれば(1つのギャップにつき)10点の得点です。

3.5.8 黒線の上に置かれた障害物に惑わされずに、その先の黒線に進めれば(1つの障害物につき)10点の得点です。

 

追補

またまた、素晴らしい質問がフォーラムに投稿されました。

Drop Tile Puck は競技の前にチームキャプテンが自分で選択して置くことができます。だったら、すべての Drop Tile Puck を最初のタイルに置けば、何もしなくても得点がもらえるの!? たとえば Drop Tile Puck を2個使うゲームのときに、最初のタイルに2個のPuckを置けば、何もしなくても120点もらえるの!?

いや~、よく考えられた質問です。満点狙いでない場合にとっても有効な作戦だと思います。

それに対して・・・また素晴らしい回答がありました。

それも可能ですね。でも、Drop Tile は3回の競技進行停止の時に先に進むことに使えることを忘れないでね。もしかしたら、そっちのほうが高得点になるかもしれないよ。よく考えて作戦を立ててね。(02/16/2015 - 12:47.  Roberto Bonilla )

ということで、目先の得点を得る為にスタートタイルを Drop Tile にしても良いということです。このルールは戦略が必要ですね。

 

 

 

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

Rescue Line 2015 3.4 Game Play

2015-02-23 | Rescue Rules 2015

次のお題は「競技」です。

 

3.4 Game Play

3.4.1 Robots are to start behind the join between the start tile and the next course tile towards the evacuation zone. Correct placement will be checked by the Referee.

3.4.2 Modifying the robot during a run is prohibited; which includes remounting parts that have fallen off.

3.4.3 All parts that the robot is losing intentionally or unintentionally will be left in the arena until the run is over. Neither the team nor a judge is allowed to remove parts from the arena during a run or Lack of Progress.

3.4.4 Teams are not allowed to give their robot any advance information about the field. A robot is supposed to recognize the field by itself.

3.4.5 The robot must follow the line completely to enter the evacuation zone.

3.4.6 Wherever there are multiple paths and one is marked, the robot may take any of them. Only following the intersection markers will grant points for the intersection decision.

3.4.1 ロボットはスタートタイルから、避難区域に向かう次のタイルとの接続部分の手前からスタートします。スタート位置が正しかどうか審判が確認します。

3.4.2 得点走行中はロボットを修理することができません。外れたパーツを付けることも修理とみなされます。

3.4.3 ロボットが落とした部品は、競技が終了するまでアリーナに残したままにします。競技進行停止になっても、(チームも審判も)取り除くことはできません。

3.4.4 チームメンバーはロボットに事前にフィールドに関する情報を設定してはいけません。ロボットは自律的にフィールドを認識して進みます。

3.4.5 ロボットは、避難区域に入るまで、黒線をたどって進みます。

3.4.6 複数の経路(その一つに交差点マークがある)がある場合には、ロボットはどの経路にも進めます。ロボットが交差点のマーカーに従った場合にのみ得点になります。

 

まあこんな感じでしょうかねぇ

 

いくつか新しい項目が追加されました。

3.4.1は、スタートの位置です。ロボットは指定されたスタートタイルに置かれますが・・・そのタイルと次のタイルとの境界線よりも手前からスタートします。(面倒くさい書き方をしていますが)要は、スタートするときに、ロボットがスタートタイルからはみ出してはいけません。ということですね。ちゃんとスタート位置を審判が確認することになっています。

3.4.2は得点走行が開始されると、(ロボットが壊れても)修理ができません。ポロっと取れてしまったパーツを付け直したり、抜けたかけたケーブルを挿し直したり・・・も、できません。

3.4.3は、落とした部品は、競技終了までそのまま残します。競技進行停止の時に勝手に取り除いたりしてはいけません。つまり、新たなる障害物となります・・・
ちょっと気になるのは、 losing intentionally って、やっていいの!? 部品を落とすことを意図的にやるのは、分割ロボットであって、2.3.1に抵触すると考えます。

3.4.4は、しつこくも Pre-mapping禁止ですね。日本人なら「一回言われれば分かるよ!」と言いたくなりますが・・・こんなに何度もしつこく書かないとダメなんでしょうか!? (苦笑)

3.4.5は、Rescue Line なんだから、線をたどってね、ということです。

3.4.6 さて、最後に謎なルールです。複数の経路がある場合には・・・と書かれていますが、「複数の経路」は存在するのでしょうか!? だって、交差点には曲がるべき方向の指示が付くので、進むべき方向は1つだけじゃない・・・と、思っていました。しかし、2015年ルールから「交差点で正しくない方向に進むと競技進行停止」が消えました。すると、交差点で正しくない方向に進んでも「競技進行停止になりません。」だから、複数の経路が存在することになります。

つまり、このタイルの場合・・・

左ルートと右ルートがあり、交差点マークの指示は左ルートなので、左ルートに行くと交差点の得点が得られます。ただし、右ルートに行っても競技進行停止にはならず、ギャップをうまく越えて交差点で上方向に進めれば(交差点の得点は入りませんが)競技がそのまま継続されます。

じゃあ、このタイルの環状線をループしたらどうなるのでしょうか!? これはちゃんと質問しないと分かりませんが、スタートタイルから避難区域に向かう方向を逆走したら「競技進行停止」なんじゃないかと考えます。 

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

また、しょうもないネタですが・・・

2015-02-23 | うんちく・小ネタ

3月に開催される、ロボカップジュニア・ジャパンオープン2015尼崎への参加意思確認が来ましたねぇ。

もう、各チャレンジのブロックの参加チームの割り振りが一段落したってことでしょう。

 

で・・・

ジュニアジャパンのHPを何気なく見ていたら・・・

この、ジャパンオープン尼崎のロゴの 「RoboCup」と「Junior」の間が広くないですか!?

かつて私自身が「RoboCup Junior」と表記していて、Junior のお偉いさんによく怒られました。

つまり、「RoboCupJunior」が正しい表記です。

(もう、何度も書いてますよね)

 

一般社団法人ロボカップジュニア・ジャパンの定款には正しく

英文では The RoboCupJunior Japan Association と表示する。

と書かれていました。

でも、ジュニア・ジャパンのHPに一番下のところには・・・

Copyright (C) 2008-2015 Robo Cup Junior Japan Association All Rights Reserved.

と書かれています。

こちらは、 Junior だけでなく Robo と Cup も泣き別れです。

こういう細かいところから正して欲しいものです。

 

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

Dual Range, Triple Zone Infrared Obstacle Detector

2015-02-22 | うんちく・小ネタ

RoboCupJunior の フォーラムに、以下のセンサーが使用可能かの確認の投稿がありました。

問い合わせのセンサーは、mindsensor社の 「Dual Range, Triple Zone Infrared Obstacle Detector」です。

Dual Range, Triple Zone Infrared Obstacle Detector for NXT or EV3

で、このセンサーは、何ができるかというと・・・

近くに何かが有るかを検知できるらしいです。

ということは、超音波センサーやPSDみたいなものなのでしょう。

説明には・・・

このような図があり、前と左前方、右前方の3方向に向かって、12インチと6インチの2種類の距離が検知範囲のようです。

英文の説明を読んでも、具体的なことはさっぱり分からないので、NXCのサンプルプログラムの見てみます。

なるほど・・・

サンプルプログラムでは、近くに何かがあれば、前、右前、左前の3種類が表示されます。(何もなければ「なし」表示)そして、それを12インチと6インチの2種類の距離で検知してくれるようですね。

もともとは相撲ロボット用のセンサーらしいのですが・・・これなら、Rescue Line 2015年ルールに活用できそうですねぇ。

2015年ルールの被災者はボールになったので、通電センサーで探そうとタッチすると転がってしまいます。だから、触って確認するのは難しいと思います。ということで、何か非接触のセンサーで探すことは有効だと思います。

(ただ、避難区域に障害物が置かれた場合に、被災者なのか障害物なのかの判断はどうすれば良いでしょうか!? 被災者は光を反射するので、光を当てて確認することができるかもしれませんが・・・障害物が光を反射しません、とはどこにも書かれていません。)

まあ、とにかく、これは、なんとなく使えるセンサーのような気がしてます。

 

フォーラムの質問に対する答えが、楽しみです。

答えによっては・・・今年は、このセンサーがバカ売れしたりして・・・

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

Rescue Line 2015 3.3 Start of Play

2015-02-22 | Rescue Rules 2015

次のお題は「競技開始」です。


3.3 Start of Play

3.3.1 A run begins at the scheduled starting time whether or not the team is present/ready. Start times will be posted prominently around the venue.

3.3.2. Drop Tile Puck: The Drop Tile Puck is the signal that change a common tile to be a “Drop Tile”. It can be made of any wood or plastic based material 5mm to 12mm thick and 70mm in diameter. It is to be painted in orange. 

3.3.3 The referee will ask the captain if (s)he would like to nominate Drop Tile(s). These tiles will have an orange disk placed in one of the corners. Once the time has begun (see 3.3.6), the Drop Tile(s) cannot be changed. Note: It can be as many ‘Drop Tiles’ as the referee specify and they can be different for each round. This will depend on the length of the course.

3.3.4 The referee will ask the captain if they are happy with the course. After positive acknowledgement the round begins.

3.3.5 Once the run has begun, the robot playing is not permitted to leave the competition area for any reason.

3.3.6 A robot will be given a maximum time of 8 minutes to both calibrate their sensors and complete the course. The time for each run will be kept by the referee.

3.3.7 Calibration is defined as taking sensor readings and modifying the robot's programming to accommodate such sensor readings. Any and all pre-mapping activities will result in immediate disqualification of the robot for the round.

3.3.8 Teams may calibrate their robot in as many locations as desired on the arena, but the clock will continue to count down. Robots are not permitted to move under power while calibrating. 

3.3.9 Once a team is ready to perform a scoring run, they must notify the referee. To begin a scoring run, the robot is placed on the starting tile of the course as indicated by the referee. Once a scoring run has begun, no more calibration is permitted. 

3.3.1 競技は(チームの準備の状況に関わらず)あらかじめ決められたスケジュールに従って開始されます。スケジュールは会場に提示されます。

3.3.2 Drop Tile Puck:Drop Tile Puck は直径70mm、厚さ5mm~12mmの木やプラスチックで作られたオレンジ色の円盤で、これが置かれたタイルは Drop Tile であることを示します。

3.3.3 審判はチームキャプテンにどのタイルを Drop Tile に指定するかを確認します。Drop Tile にするタイルにはオレンジ色の円盤を置きます。一旦競技が始まったら Drop Tile は変更できません。注:使用する Drop Tile の数は審判の指定によってラウンド毎に変わります。それは主にコースの長さに依存します。

3.3.4 審判は、チームキャプテンがコースを承認するか確認します。承認を確認したあとに競技を開始します。

3.3.5 競技が開始されたら、ロボットは競技エリアの外に持ち出すことはできません。

3.3.6 ロボットの調整と得点走行を合わせて競技時間は最大8分間です。競技の時間は審判によって計測されます。

3.3.7 調整(較正)では、センサーの値を読んで、プログラムを修正することができます。コースの情報をあらかじめプログラムに埋め込むなどの Pre-mapping をした場合には、その競技への参加資格がなくなります。

3.3.8 決められた時間内であれな、チームはアリーナの様々な場所でロボットの調整することができます。ただし、調整の間はロボットを自走させることはできません。

3.3.9 チームが得点走行の準備ができたら、チームキャプテンが審判にその旨を伝えます。得点走行を開始するために審判の指示で、ロボットをスタートタイルに置きます。一旦得点走行が開始されると再び調整をすることはできません。

 

まあ、こんな感じでしょうかねぇ。

 

3.3.2 3.3.3 3.3.4 が変わりました。

でも、その変わった部分が、全く理解できませんでした。 まず、「Drop Tile」って何!? そして、「Drop Tile Puck」は何をするものなの? ・・・でも、後の方も読んで、だんだん分かってきました。

順番に見ていきます・・・

3.3.1 は、あらかじめ決められたスケジュールにしたがって競技を開始するよ、というものです。かって世界大会の運営はダメダメで、競技が時間がどんどん遅れるなんて言うことは普通でした・・・しかし、近年は、きちんと運営されています。インタビューは遅れる(話が弾むから・・・笑)けれども、競技は時間通り(あらかじめ決められたスケジュール通り)に実施されるようになりました。(ただ、某国のチームの、良く分からないクレームがあると、よく遅れます 苦笑)

3.3.2 は Drop Tile Puck というものの説明です。直径70mmで高さが5mm~12mmで木製やプラスチックのオレンジ色の円盤です。また、オレンジ色が出てきましたねぇ。今回のルールを決めた人はよっぽどオレンジ色が好きなようです。(笑) で、この円盤を置いたタイルは「Drop Tile」になるようです。 じゃあ、「Drop Tile」って何?は次の項目です。

3.3.3 今度は、Drop Tile の説明です。ルールの最初にある絵(図)に、オレンジの円盤が描かれているのが Drop Tile だと思います。競技が始まる前に、チームキャプテンが競技のコースのどのタイルを「Drop Tile」にするかを指定します。審判が置くのかチームキャプテンが置くのかは規定していませんが、チームキャプテンが指定した「Drop Tile」を示すためにオレンジ色の円盤を置きます。(円盤が置かれたタイルが「Drop Tile」になる)競技が始ったら円盤の位置は変更できません。こんな感じでしょうか・・・

「Drop Tile」として指定できる数は、コースの長さによって変わるようです。短いコースであれば1個かもしれませんし、長いコースであれば5個指定するようになるかもしれません。

とにかく、競技の開始時に決定して、競技開始後は変更できないようです。(つまり、キャリブレーションの前に決めなければならない) 

どうも、"Drop Tile Puck" 自体をロボットが認識すう必要はなさそうです。 だから、ロボットが認識すべき色「白、黒、緑、銀」の他の色としてオレンジ色を規定したようです。

でも、何で「Drop Tile」という名称なんでしょうか!? Drop というと「落ちる」とか「死ぬ」とか、そんな感じの意味なんですが・・・

3.3.4 は、審判が最初に if they are happy with the course と尋ねます。つまり「Are you happy with this course?」 (このコースで貴方は幸せ?)
チームが「幸せです」と答えたら、ラウンドが開始されます。ラウンドということは8分が開始される、という解釈だと思うのですが。(つまり、調整の前に聞かれる)
で、もし「このコースでは不幸です」と答えたらどうなるのでしょうか? 幸せになるように何かしてくれるのでしょうか?(笑)
まあ、ここは「これでいいですか?」ではなくて「これでやるけど本当にいいよね?」という確認なんだろうと思っています。(みのもんたが「ファイナルアンサー?」と、確認するようなもの)

ちょっとまとめると・・・
・チームキャプテンが Drop Tile Pack を置いて、競技コースの Drop Tile がどれかを決める。
・審判は「Drop Tile は、そこでいいね」と確認する
・競技開始(8分の計測開始)
・競技(キャリブレーションをするなり、得点走行をするなり・・・)
こんな手順ですかねぇ。

ところで、この決める時間は競技時間の8分の中なの、それとも外なの? チームキャプテンが「う~ん、どこにしよう」と考えてなかなか決めないでいると、どんどん時間が過ぎてしまうように思います。ルールの記述では、「Drop Tile」の位置が決まってから競技が開始(8分の計測が開始)されますね。運営者側から見ると・・・できれば、悩むのは8分の中に入れて欲しかったです。

3.3.5以降はこれまでと同様です。

3.3.5は競技が開始されたら(8分の計測が始まったら)ロボットを競技エリアから持ち出すことはできません。だから、プログラムの修正もロボットの修理もハードの改造も競技エリア内で実施する必要があります。

3.3.6は競技時間(調整+得点走行)は最大8分間です。

3.3.7 3.3.8は調整の説明です。調整の間は自走させてはいけません。個人的にはやらせてあげれば・・・と思うのですが・・・。それから、何度も出てきますが、pre-mapping 禁止です。何をしたらpre-mappingなのか・・・は定義が難しいですが、審判にpre-mappingと判断されると、競技後であったとしても没収試合になります。

3.3.9は、調整が終わって得点走行をする場合の手順ですね。

 

ということで、Drop Tile という新しい概念が導入されました。そして(後の説明で出てきますが)Drop tile が競技進行停止後の再スタート地点になります。つまり、チーム毎に再スタート地点を決めることができるわけです。チームキャプテンは、コースを見て瞬時に、再スタート地点はこことここ、と判断しなければなりません。

ところで、Drop Tile Puck(オレンジ色の円盤)ですが、ロボットが触れれば動いちゃうと思います。もし、ロボットが押して動かしてしまった場合は、「Drop Tile」も移動するのでしょうか? (もし、そうならゲームとしては面白いのですが・・・まあ、しないでしょうね)

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

Rescue Line 2015 3.2 Game Zone

2015-02-21 | Rescue Rules 2015

次のお題は「競技エリア」です。

 

3.2 Game Zone

3.2.1 An area around the game fields will be designated as the “game zone”.

3.2.2 Teams should designate one of its own team members as the captain, and (s)he will be allowed to move the robot, based on the stated rules and/or as directed by a referee. Only the captain is allowed to enter the game zone and interact with the robot during a scoring run. 

3.2.3 The captain can move the robot only when (s)he is told to do so by a referee.

3.2.4 Other team members (and any spectators) within the vicinity of the rescue arena have to stand at least 150 cm away from the arena while their robot is active, unless otherwise directed by a referee.

3.2.5 No one is allowed to touch the arenas intentionally during a scoring round.

3.2.1 競技を実施するフィールドがあるあたりを「競技エリア」とします。

3.2.2 チームはメンバーの中からキャプテンを1人選定します。チームキャプテンだけがルールや審判の指示に従って、ロボットを操作できます。得点走行の間はキャプテンだけが競技エリアに入ることができて、ロボットを操作します。

3.2.3 審判の指示にされたときだけ、キャプテンはロボットを操作することができます。

3.2.4 審判によって特別に指示されないかぎり、キャプテン以外の他のチームメンバー(や観客など)はアリーナから少なくとも150cm離れます。

3.2.5 得点走行の間は、誰も故意にアリーナに触れてはいけません。

 

まあ、こんな感じでしょうかねぇ。

 

ちょっとだけ表題が変わりました。

これまでは、がっしりとした2階建てのアリーナを想定していたのでしょうが・・・今回のルールで、床に広げたアリーナを想定しているのだと思います。だから Zone という表現になりました。

それ以外は、特に変更はありません。

Rescue Line では、競技の時にはチームキャプテン1人だけしか競技エリアに入れません。(旧レスキューB は 2人が入れた)

ちょっと私が分からないのは・・・8分間の競技は「調整」と「得点走行」に分かれます。得点走行の時には、競技エリアにはキャプテンだけが入れて、キャプテンだけがロボットを操作できます。そして他のメンバーは150cm離れます。これは正しい理解だと思うのですが・・・

「調整」の間は、キャプテン以外のメンバーは競技エリアに入れるのか、入れないのか!?

3.2.2 で、得点走行の時はキャプテンだけ、と規定されているのですが、得点走行以外の時は規定されていないので、ルール上は「調整」の時はみんなで入れるんじゃないかと考えています。

 

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

ドラえもん

2015-02-21 | ブログ

久々に映画など・・・

映画って言っても、ドラえもんです。

stand by me を見ました。

映画館に行って見た訳じゃありません。

のび太のダメダメっぷりが、面白いっちゃ面白いのですが・・・

やっぱり、過去に戻るタイムマシンが有る訳無いと考えちゃうと楽しさ半減です。(苦笑)

 

未来に行くのはともかく、過去に行くことができると・・・何でも可能になっちゃいますねぇ。

 

私は、「過去に戻るタイムマシンは存在しない派」なので、こういう作品は、並行世界に移動しているものと考えます。だから、過去の自分や未来の自分に会うのではなく、自分に似た他人に会っている・・・

もし、過去の自分(に似た人)を殺しても自分には影響が無い。(だって他人だもん)

・・・と考えています。

(未来に行くことはできる)

 

ところで、作品の中で、のび太君は幸せになったけど、セワシ君はどうなったのでしょうか?

確か、のび太のダメっぷりが原因で孫やひ孫の代まで借金返済で困っていたんじゃなかったっけ!?

そっちの方が気になっちゃって・・・ 

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

Arduinoねた その67 NXTとの接続

2015-02-20 | Arduinoねた

既に、何度か自分でも書いていますし、他のブログでも丁寧に解説されていますので、この記事は単なる自分の備忘録のつもりです。

 

Mindstorms NXT には入力ポートが4つしかありません。

ですので、普通に考えると4つのセンサーしか接続できません。

M&Yが RoboCupJunior に参加した頃の 2007年のレスキュー競技でも 4個のセンサーでは十分ではなかったと思います。それでも、重ね技とかを駆使して、みんな何とかしていました。(最近では、ポートスプリッタですね)

しかし、ある時、NXTにセンサーコントローラとして、AVRを接続することができることを知りました。(それ以前に、2007年のアトランタ世界大会で、すでにスペインのレスキューチーム「Complbot」が、それを実現していました。やっぱり、すげ~!)

それが、NicoSensor です。

NicoSensor

このキットとの出会いが、その後の M&Y の活動に大きく影響しました。

この NicoSencor 自体は、自作用のセンサーを1個接続できるだけなので、ポート数の拡張には役に立たなかったのですが、このプログラムを解析してちょっと改造すれば、いくつでもセンサーを接続できることが分かりました。

で、その時には、直にAVRのプログラミングをして研究していたのですが・・・おかげで、私とYは AVR のプログラムがちょこっと書けるようになりました。

今は、同様のことが Arduino を使ってできますので、とっても手軽になりました。

 

はい、前置きが長くなりました。

 

ここからが本文です。

NXT と Arduino を接続して I2C で通信します。

M&Yでは、I2Cを「あいすくえあどしー」と発音します。)

接続するのは4本の線です。

NXT(緑:VCC) - (VCC) Arduino

NXT(赤:GND) - (GND) Arduino

NXT(黄:SCL) - (A5) Arduino

NXT(青:SDA) - (A4) Arduino

さらに、A4、A5の2つは 100KΩの抵抗でプルアップします。

配線は、これだけです。

 

まずは、NXT からデータを Arduino に送るサンプルです。

Arduino の I2C アドレスを 0x62、書き込むアドレスを 0x42 にします。

ここに 0x11 を書き込むと LED を点灯し、0x10 を書き込むと LED を消灯するプログラムです。

 

NXC側

#define LED_ON      0x10
#define LED_OFF     0x11

#define I2C_PORT    IN_1

void sendCom(const byte cmd)
  {
  byte Wbuf[3]={0x62,0x42,0x00};
  byte Rbuf[];
  int n=0;
 
  Wbuf[2]=cmd;
  I2CBytes(I2C_PORT, Wbuf, n, Rbuf);
  }

task main()
  {
  SetSensorLowspeed(I2C_PORT);

  while (TRUE)
    {
    sendCom(LED_ON);
    Wait(200);
    sendCom(LED_OFF);
    Wait(800);
    }
  }

 

Arduino側

#include < Wire.h >
#define I2C_SLAVE_ADDRESS 0x31
#define LED_RED   13
#define RED_ON    0x10
#define RED_OFF   0x11

byte requestRegister, requestCommand;

void receiveEvent(int howMany) {     
  requestRegister = Wire.read();
  if (Wire.available() > 0) {
    requestCommand  = Wire.read();
    if (requestRegister == 0x42)
      if (requestCommand == RED_ON)
        digitalWrite(LED_RED, HIGH);
      else if (requestCommand == RED_OFF)
        digitalWrite(LED_RED, LOW);
    }   
  }

void setup() { 
  pinMode(LED_RED, OUTPUT);
  digitalWrite(LED_RED, LOW);

  Wire.begin(I2C_SLAVE_ADDRESS);
  Wire.onReceive(receiveEvent);   
  }

void loop() {
  }

 

これを実行すると、NXT側の指示で Arduino の LED が1秒ごとに点滅します。

 

過去に実験したことをもう一度やっただけなので、すんなりいくはずだったのですが・・・

世の中そんなに甘くありません。

Arduino の A4、A5 には 10kΩ の抵抗が付いていたのですが・・・このままだと、なぜかデータが 1byte しか NXT に渡りません。2byte 目以降が 0xff になりました。

原因は良く分かりませんが、プルアップしていた 10kΩの抵抗を外すと、ちゃんとデータが渡せます。それで、NicoSensor の回路図を確認して、とりあえず 100kΩの抵抗を入れました。

 

それと、上のサンプルプログラムですが・・・これが正解なのかは知りません。

とりあえず、目的の動作はします。

・・・という程度のものです、悪しからず・・・

 

 

 

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