BricRoboでブロック並べを解いてみる(6) - BricRoboモデルとソースコード一式

さあ、今回で最終回にします。BricRoboモデル、C#でコード生成したもの(中身を実装済み)、UI画面のC#コード、それら全体をビルドできるVisual Studio 2015のプリジェクトをZIPにして公開します。

まずは以下のZIPファイルをダウンロードして展開してください。
  
  block_narabe.zip

中にあるETR2016.eapはEnterprise Architect(EAと呼びます)のEAPファイルです。BricRoboモデルを見たいという人で、EAを持ってない人はEA+BricRoboをセットにしたインストーラーがあるので、これをダウンロードしてインストールすると、EAでBricRoboモデルを編集して、BricRoboでコード生成することができます。下記のページの一番上の「統合ダウンロード(BricRobo V1.7β+EA)」のダウンロードから入手できます。

  統合ダウンロード(BricRobo V1.7β+EA)

とりあえず、Visual Studio 2015(VS2015と呼びます)があればブロック並べ解法のアプリをビルドできます。展開したblock_narabe.zipの中にあるSlover.slnをVS2015で開いてビルドしてください。最初の章で紹介したアプリができます。

EAPファイルを開くと下の図のような画面構成になります。アルゴリズムのパッケージのなかに、迷路法を解く順序をアクティビティ図で書いたフローチャートがあります。Sloverパッケージはコード生成するためのモデルで、ここからコード生成したC#コードと、別に作ったUI画面のC#コードを一緒にビルドしてアプリが出来てます。
BricRoboパッケージはBricRoboモデルに必ずあるメタモデルで消してはいけません。
見かけないツールバーがありますが、これはEAに追加されたBricRoboのアドインで、BricRoboでモデルを書くときに使います。

Photo_2


EAPファイルのアルゴリズムには下の図のようは感じで、どんな手順で処理していけば解けるのか、フローチャートっぽく書いてます。あとでBricRoboモデルでコマンドを増やしていくとき、どんな処理が必要なんだっけ? と考える拠り所になるので、知らないものを作るときは、ちゃんと書いたほうが後で困りませんからね。

Photo_3

そんなわけで、今日で正月休みも終わるので、これにて終了にしたいと思います。最近、なにか作るときは、BricRoboモデルで作ったらどうなるんだろう? 真っ先に考えるようになりました。慣れなんでしょうね。水中ロボットなどはピッタリ当てはまるので簡単なんですが、こういう解法アルゴリズムとかでも、まずは役目のブロックを書き出して、関係を決めて、全体をどう動かしたら完成するのか? と考えると、大抵のものはできると思えてきました。
異論もあるようですが、オブジェクト指向っていうんだから、まずは実体のあるオブジェクト=ブロックで仕組みを作って、そのブロックを作るためのクラス=部品を考えていくほうが、ずっと簡単。 で、反復しながらクラス=部品を洗練(抽象化したり細分化したり)していくしてくのが王道じゃないかと。

| | コメント (0)

BricRoboでブロック並べを解いてみる(5) - BricRoboモデルへの落とし込み

さて、画面上のサークルの1つ取り上げると、下の図のような形をしてます。真ん中の四角はサークル、上下左右に移動できる経路。迷路法では距離の数字を上下左右に書き込んでいき、その数字を頼って経路を求めたり、数字をクリアしたり、ローバーを移動させたり。なので、今回の考え方は、サークルに能力を持たせて、サークルがいろんな情報を管理して、お互いにやり取りすることで、迷路法を実現させようというもの。

サークルは勝手に動いたり判断しないので、外部から命令を与える必要が。そのために、青のコマンドを外部から与えます。コマンドには情報が付いていて、サークルはコマンドと情報を元に、なにかする。それを全部のサークルに一通り行き渡らせるために、処理したコマンドを次のサークルに投げる。そのとき情報は変化しているかもしれない。

例えば、「ローバーのいる場所を教えて!」というコマンドがあり、情報に-1(知らないという意味)を設定して、サークルに流す。受け取ったサークルは「おれ、知らない、次へ」とコマンドを次のサークルに流す。知っているサークルは「俺のところに居る、10番のサークルだよ」と情報に10をセットして次へ流す。 そうすると、巡って最後に流れてきたコマンドには情報に10が書いてあるので、10番のサークルにローバーがいるな! と分かるわけです。

別の例で言うと、「距離計測してるんでよろしく」というコマンドを作り流す。貰ったサークルは赤矢印の自分の方にどこからか番号が流れてきたかなぁ、と見てみる。 「あ、5が届いてるわ。じゃ、自分の距離は5とおぼえて。+1して6を緑矢印の向きへ流さなきゃ」 これをすべてのサークルが繰り返すと、迷路法でやった数字を埋めるのと同じことができる。

こんなコマンドをたくさん作って、サークルが受け取ったときにどんな処理をするかをサークルに仕込んでおくわけです。

Zukai_2

この方式のいいところは、上下左右という形に左右されない。星型につながっていてもいいし、6方向でも8方向でもいい。どんな形にしてもサークルのやることは変わらないところです。これ大事ね。 それからサークルにさせたいことが増えたら、コマンドを増やして対応する。これもアーキテクチャが変わらないから大事。

そこで図の下側になるんですが、BricRoboモデルの1つのサークルへ対応させてものが、これ。BricRoboモデルの読み方を知らない人のために、ちょっとだけ解説しますが、青と赤の小さい四角はポートと呼んで、データをやり取りする接続口です。青はデータ型といって、ポートに届いた情報を何回読み出しても読み出せる性質。赤はイベント型といって、ポートに届いた情報を読み出すと、空っぽになって2回目以降は届かない限り読めない性質。
そして白抜きの△は受信、塗りつぶし▲は送信の性質。 このブロックがたくさん繋げて4x4の形にしたのが、前の章で出てきた、あの複雑に線が引かれたBricRoboモデルなわけです。 そして、コマンドを画面から入れるためのブロックが左側の黄色ブロック。最後に流れ着いたコマンドを拾い上げるのが右下の緑ブロックってわけ。
なんとなく、仕組みは分かってもらえましたかね?

Field


>>BricRoboでブロック並べを解いてみる(6) - BricRoboモデルとソースコード一式

| | コメント (0)

BricRoboでブロック並べを解いてみる(4) - 迷路法をブロック並べに応用

前の章では複雑に線が入り組んだBricRoboモデルが出てきました。これに画面の絵を当てはめると次のよな図になります。ブロック並べのフィールドそのものですが、黒線は移動できる経路を示したもの。本来は一番右端に縦に黒線が1本ありますが、最後はそこに抜け出たいので、その場所をゴールとして、右側へ抜ける4本の経路を引いておきました。(これはあとでちょっと問題があるんですが)

Photo

そして、この配置は次の図のように、一番最初に迷路法を説明したときの四角が連なった迷路とみなすことができますよね。だから、この図を元にして、どうやってブロック並べを解いていくか、例を使って説明していきます。

Photo_2


最初はこんな配置だとします。一番左にローバー、4つのブロックは緑、黒、青、赤。みんな違う色のサークルの上にあります。-1の数字は、その場所になにも距離の値、迷路法で数字を入れていないことを表しています。

Photo_4


まずはスタート地点であるローバーの位置に0を入れます。

Photo_3


次に0の回りに1を入れていくのですが、黒線で繋がった場所にしか動けないので、黒線で0と繋がった枠に1を入れるとこんな感じ。

Photo_5


次に1と黒線で繋がった枠に2を入れます。するとこんな感じ。青ブロックのところに2が入りました。

Photo_6


次に2と黒線で繋がった枠に3を入れます。ここで注意しないといけないのは、青ブロックは要するに壁なので、青ブロックにある2は無視すること。そうしないと壁を突き破って進んで行けることになるので。

Photo_7


次に3と黒線で繋がった枠に4を入れます。緑ブロックも黒ブロックも3が入ってますが、それは壁なので伸びません。下の赤いサークルの3だけが右に伸びて4が入ります。

Photo_8


次に4と黒線で繋がった枠に5を入れます。赤ブロックにも5が入って、ブロックは全部埋まりました。もうブロックまでの経路はわかったのですが、一律の動作にしたいので、枠に数字が入れられなくなるまで続けます。

Photo_9


次に5と黒線で繋がった枠に6を入れます。

Photo_10


次に6と黒線で繋がった枠に7を入れます。あれ?右側の楕円のサークルに7が入ってしまいました。これがまだ細工が足りないところで、ここはゴールのサークルなんですが、特別扱いしてないので7が入ってしまいました。つまり経路の1つとして使ってしまったわけ。これはあとで条件を加えれば回避できるので、とりあえずほっときます。

Photo_11


次に7と黒線で繋がった枠に8を入れます。これで-1の枠はなくなり全部に値がはいりました。-1が消えたということはローバーがいけない場所はないということです。

Photo_12


さて、ローバーから一番近いブロックはどれかというと、数字を0から1つずつあげてブロックのある場所を探すと、それは2の入っている青ブロック。青ブロックの2から数字を1つずつ小さくしながら枠を辿るとローバーのところまで戻ってこれます。これがローバーから青ブロックまでいく経路。

Photo_13


経路が分かったので、青ブロックまで移動。

Photo_14


次は青ブロックを運ぶ場所を探します。やり方は一緒で、ローバーのいる位置を0として、これまでと同じ方法で数字を書き込んでいきます。するとこんなふうに枠に値がハマって、青サークルで一番数字が小さいところが青ブロックを運ぶ場所で、1から値を小さくしながら辿るとローバーのところに戻ってこれるので、これが青ブロックを運ぶ経路なわけ。

Photo_15


これで青ブロックの移動終了。あと緑と赤を運ばないと。

Photo_16


これまでと同じようにして、ローバーのいる場所に0をいれて、そこから全部の枠に数字を入れていきます。そうするとこんな感じになります。

Photo_17


黒以外で、ブロックとサークルの色が合っていないので、数字が一番小さいのは2の赤ブロック。次はこれを運ぶために経路は2から数字を小さくしながら戻るとこんな経路。

Photo_18


赤ブロックまでローバーを移動します。

Photo_19


ローバーのいる場所を0としてまた数字を埋めていきます。赤サークルで一番数字が小さいのは2の場所。そこが赤ブロックを運ぶ場所で運搬ルートです。

Photo_20


赤ブロックを運びます。だんだん面倒くさくなってきたね。あと緑ブロックだけ。

Photo_21


同様にしてローバーの場所に0を入れて回りを埋めていきます。この時、緑ブロックまでのルートは2つあります。4,3,2,と辿ってくると、2から1へは2通りあります。どちらも0まで戻ってこれるのですが、どちらを選ぶかは数字の探す順番できまります。いまのプログラムは下側が選ばれました。 で、緑ブロックまでのルートが見つかりました。

Photo_22


緑ブロックまでローバーを移動させます。

Photo_23


また、ローバーのいる場所を0にして回りの数字を埋めていきます。緑サークルで一番小さい数字の場所が緑ブロックを運ぶところ。経路も分かります。

Photo_24


緑ブロックを緑サークルまで運びます。

Photo_25


さあ、ブロックは全部運び終わったので、ゴールまでの経路を求めます。ローバーの場所を0として回りの数字を埋めていきます。するとゴールまでのルートが求まります。

Photo_26


ローバーをゴールまで移動させます。 これで終了。長かったね。

Photo_27


やることは同じで、

1.ローバーの場所から数字を埋めて、一番近いブロックを探す。
2.ブロックまで移動する。
3.ブロックの位置から数字を埋めて、一番近い同じ色のサークルを探す。
4.サークルまでブロックを移動する。

これを繰り返して、動かすブロックがなくなったら、最後はゴールまで経路を探して出ていく。
ローバーをターンさせたりブロックの向こう側に更に進めたり、そういう制御の難しさはぜんぜん考慮してないけど、一応、迷路法を使ってブロック並べは解けることは分かりました。

次は、数字を埋めたり、経路を探したりするのに、サークルに機能を持たせて、それをどうやって駆動して全体を動かしていくのか、の話ですかね。


>>BricRoboでブロック並べを解いてみる(5)

| | コメント (0)

BricRoboでブロック並べを解いてみる(3) - アプリの仕組み

何ができるかわかったところで、仕組みがどうなっているか見てみます。画面でちょこまか動いているのはローバーやブロックを動かした結果を表示しているだけで、実際の情報はBricRoboのモデルとして作られた中にあります。
この図の上の部分が見えている画面。画面上のサークルやローバーやブロックは、BricRoboモデルで作成した中身を反映しているだけです。

では色分けした部品が何をしているかというと、

■青色
サークルを表しています。サークルが持つ情報には、自分はどの位置なのか、何色なのか、ブロックが乗っているのか、ローバーが乗っているのか、ゴールなのか、迷路法で計算した距離、などです。


■黄色
サークルに対してコマンドを発行します。あとで説明しますが、サークルはコマンドを受け取ると何か処理をします。そのコマンドを画面からもらってサークルに流す役目をします。

■緑色
サークルから流れてきた最後のコマンドを受け取り、画面側に提供します。黄色から流れたコマンドは、サークルを巡って最後にここに流れ着きます。調べるコマンドは、この流れ着いたコマンドの中に知りたい値が入っています。

■ピンク色
サークルにブロックを置きます。ブロックを置く場合にはサークルと同じ色のところに同じ色のブロックを置かないとかいろいろ置き方があるので、その辺の処理はここで受け持ちます。


Photo_2

この下側の実際に迷路法を解いている部分。BricRoboモデルの実物は次の図になります。凄い複雑そうに見えるでしょ。でも、書いてあることは上の図の通りで、4x4マス目の上下左右の繋がりをポートの結線で表しているので、こんなにたくさん線が引いてあるのです。

しかし、ここで気づきますよね。サークルの繋がりを結線で表しているので、どんな形でも関係ないんですわ。平面の2次元でなくても3次元でもOK。複雑になるなら、3次元の層ごとに別のダイアグラムに分けて書けばいいわけで。

なんで、こんなもので迷路法が解けるのか? という仕組みについては、次回で解説します。

Field


>>BricRoboでブロック並べを解いてみる(4) - 迷路法をブロック並べに応用

| | コメント (0)

BricRoboでブロック並べを解いてみる(2) - ブロック並べ解法アプリ

さて、経路探索のアルゴリズムは決めたので、これを使って実際にどういうものが出来上がるかのビデオ。 最終的にこんな風になります。純粋に経路を探してブロックを運ぶだけなので、実物のロボット制御がない単純なもの。この通りにロボットを制御するのは、また別の難しさになるので、それは今回の目的じゃないです。

画面にはサークルとブロックとローバー(つまり走行体です)があって、最初にブロックをセットして、ローバーを進入口にセットして、一番近くのブロックから順番に、同じ色のサークルへ移動して、最後はゴールするというもの。
ボタンの意味は、

RESET BLOCK:ブロックを消し去って初期化する
OMMIT:使わないブロック色の選択
NEXT BLOCK:次のブロック配置
RAND BLOCK:乱数でブロック位置を決定
SET ROVER:ローバーを進入口へセット

SEARCH ROUTE:ローバーから一番近い移動が済んでないブロックまでのルートを探す
GOTO BLOCK:見つけたブロックまでローバーを移動する
SEARCH ROUTE:ローバーの位置からサークルまでの距離を計算する
CARRY BLOCK:一番近い同じ色のサークルまでブロックを運ぶ
AUTO:上記の4つを順番に自動で行う

ALL PATTERN:全部のブロック配置についてやってみる
画面更新:そのとき画面を更新する(計算を速くするには画面更新を止めるのがいい)

ひみつ:じつは昔、この画面を流したとき何をしているか分からないように、ルートの距離を非表示にする機能をつけた

LOG:ブロック配置に対してローバーがゴールできたか、できたらその移動数はどれだけか、のログをファイルに保存する

Ui

ログファイルにはこんな形式で記録されていきます。
左から黄緑赤青黒の位置、ブロックが置かれた位置を16進表記にしたもの、ブロックの移動回数、最後まで解けたかどうか。

Log

位置に関しては、こんな風に番号を付与してあります。今回は4x4マス目で、丁度、0-15に対応させると表現し易いのでこのようにしてますが、結果をどう表現するかの問題なので、解法とは関係はないです。

Photo

この迷路法で近くのブロックから手当たりしだいに移動すると、考えなしなので、手詰まりが発生して、解けない! というブロック配置が出てくるのですが、それがどれぐらいあるのか?とか、どれぐらいの移動距離のバラつきがあるのか。ということを調べたりしていたわけです。 巷ではダイクストラ法というのが流行りみたいですね。そんなの知らんかったです。 けど、どのみち、経路探索にしか使わなければ、手詰まりが発生するのは同じでしょうけど。 手詰まりが発生したらどうするか? ブロックを動かす優先順位を遠くからに変えてみるとか、なるべく遠くのサークルに置くような評価にするか、なんか変化を加えてみれば解ける場合もあるんでしょうね。

>>BricRoboでブロック並べを解いてみる(3) - アプリの仕組み

| | コメント (0)

BricRoboでブロック並べを解いてみる(1) - 迷路法とは

最近、水中ロボコンの開発にBricRoboというソフトを使いました! と書いたら、だんだんとFacebookやHPのアクセスが増えてきているので、ここらで、ロボット制御ではない分野で使うとどうなるか? という例を公開してみようかな、と。 じつは2016年のETロボコン(ロボットのソフトウェアコンテストがあるんですけど)のお題に、ブロック並べというのがありまして。 これ、真面目に考えるとどれぐらい手間が掛かるんだろうと試しに作ったことがありまして。走行経路を求めるのにBricRoboで解くとどんなふうにモデリングするのか、その事例です。

まず、最初にどんな方法で経路を解くかアルゴリズムを決める必要があるんですが、今回はやったことのあるやつで、電子回路の配線のアルゴリズムに使われる「迷路法」を採用してみることにします。
迷路法を知らない人は、うーん、どうしようっかなぁ。マインスイーパーみたいな感じで、始点からどんどん輪を広げていって、終点に到達したときの経路を反対に戻れば、それが最短経路ってやつなんですが。
ネットで検索しても、いい感じの図解が見つからないので、書いてみますか。

例えば、次の図のような迷路があったとします。赤が始点、青が終点。赤から青までの到達する最短経路を求めるとします。

1

赤の始点に0を書きます。上下左右にしか移動できないルールだとします。すると0の上下左右で空いているところに、+1した1を書き入れます。次に1の回りの上下左右で空いているところに、+1した2を書き入れます。これを青に到達するまでずっと続けると、青に到達したときには22が青に入ります。

2

今度は青の22から-1して21の場所を探します。探すときには順番を上下左右の順番に探すとしましょう。0になるまで探し続けると、その通ったルートが赤から青への最短ルートの反対向きということになります。
ということは、赤から青に行くときは、これを反対向きに進めば最短ルートで到達します。

3

このアルゴリズムは水面を輪が伝わって行くのに似ているので、水面法とか勝手に呼んでたんですけど、ネットでは迷路法って名前が付いてます。

ということで、くじけなければ、正月休みに最後のソースコード公開まで解説できると思いますけど、今日はここまで。


>>BricRoboでブロック並べを解いてみる(2) - ブロック並べ解法アプリ

| | コメント (0)

ETロボコン2016東京地区大会のライブ中継やります

今週末、また全国各地でETロボコンの地区大会があるんですが、東京地区でも大会があります。
で、今年もまたライブ中継をやってみようかと。 去年はUSTEAMでしたが、今年はYouTubeLiveで。 YouTubeLiveは家族ロボット教室とか、水中ロボコンとか、今年に入って何回もやって実績あるので、たぶん大丈夫でしょう。

会場は西早稲田の早稲田大学ですが、見学自由ですが、会場に来れないならYouTubeでも見れるのでどうぞ。


| | コメント (0)

EV3のMonoBrickとペアリングするときの注意

今年もETロボコンの実行委員会を手伝っています。昨年の6月ごろから2016年に向けて少しずつ準備してきましたが、もう参加者募集も明日で締め切り。週末には全国から実行委員が集まって全国連絡会議があります。ここで最終的なルールを決定して公開するわけなのですが。 いま、会議の準備のために作った道具の発送準備をしたりしているところなんですが。

Photo

2台のEV3をMonoBrickとEV3ソフトウェアで混ぜこぜに使っていたら、PCとつながらなくなって。というかペアリングできなくなってドタバタしてました。で、得られた知見。Windows 10の場合です。

1.EV3ソフトウェアでペアリングして使ったあと、MonoBrickで繋げたい場合は、デバイスマネージャーからデバイス削除して、改めてペアリングし直す。消すときは「デバイスとプリンター」画面にあるものから。デバイスマネージャー画面だと消えないで復活するときがある。

2.MonoBrickでペアリングするときは、「デバイスとプリンター」画面から「デバイスの追加」を行う。「Bluetoothパーソナルネットワーク」画面でも追加できそうに見えるが、この画面から開始するとペアリングできない。

3.ペアリングして登録されたデバイス名は、通常、EV3だけど、これを変更するときはデバイスをダブルクリックして開く画面の「Bluetooth」のタブのなかで変更して、「適用」ボタンを押す。ただし、うまく変更されたかどうかはすぐには分からず、アクセスポイントして接続したり、F5で更新したりするとそのうち変わる。

4.USBケーブルで接続する方法は使えない。COMポートと間違えて登録されるので、MonoBrickでは必ずBluetoothで接続する。

とくに3番、EV3WayETとHackEVの2台を同時にペアリングして使うとき、どっちがどっちだか分からなくなって、結局、ペアリングを全部解除して、使いたい方を再登録する。というめんどくさいことになったり。

P4062744

そういうわけで、やっと半年ぶりにこの部材置き場も店じまいできそうです。そろそろ日差しもきつくなってきたので、日にあたって劣化しそう。

| | コメント (0)

ETロボコン、FCTawashiの設計公開します

あ、タイトルみても何のことやら?って感じですよね。今年もETロボコンというロボットを使ったソフトコンテストの世話をやってまして。 うちの会社のチームが地区大会で全国トップの速さを出してチャンピオンシップ大会に出場したわけです。 彼ら、中堅社員(それもハード屋)と新人3人の混成チームなんですが、まあ、楽しそうにやってましたよ。 たぶん。 たぶんっていうのは、2回ほど様子を見に行ったんですが、もう調整することないって帰っていないし。 そんな余裕でいいんかぁ?

Dsc_3174

チャンピオンシップ大会では無理しなければ余裕で優勝だろうと思ったら。また随分と性能上げてきたみたいで、途中でトラブって優勝はしませんでしたけど、優勝より限界に挑戦したかったみたいで、晴れ晴れしてました。

Dsc_9219
Imgs1472_r

で、大会が終わって1ヶ月経ったので、そういや彼らがどんなものを作ってたのか見せてもらいました。 うちの会社では新人教育の最後でETロボコンを課題にして開発訓練を3週間ほどみっちりやります。このときはチームで計画・設計・実装テストするやり方を勉強するのが主な目的なので、設計モデルがどうのこうのとは言いません。 

Photo

もらった資料には2つの設計が入ってて、1つはその教育期間に、もう1つは地区大会に向けて設計しなおしたものだそうです。 設計には一貫してBricRoboを使ってありました。 最初の設計はベタッとした1階層の図面で、後のはスッキリ3階層ぐらいに作りなおしたみたいです。 初めての開発ツールなのにちゃんと使いこなしていて偉いわ。調整はシナリオテーブルのシーンの数とパラメタ調整だけでできるようになってました。 チャンピオンシップ大会のシナリオがないので、これはその前に開催したFCT杯という競技会用の生産物のようです。 うーん、水中ロボットのハコフグちゃんよりちゃんと書いてあるわ(^^ゞ
  
そんなわけで、このままお蔵入りにするのは勿体無い。チームに了解を得たので、現状有姿のまま公開します。

FCTawashi.zip 1.3MB


| | コメント (0)

ETロボコン2014が無事終了

Pb192057

11月に入って、ずっと忙しく、ブログ記事をサボっていましたが、先週末でようやく一段落しました。ETロボコンというロボットを使ったソフトウェアのコンテストがあるんですが、その全国チャンピオンシップ大会が22日、23日で終了。これで2014の活動にも終止符です。

今年の特徴は、競技部門を1つ増やして三輪型のロボットNXTrikeを投入したことです。これ、今年の2月ごろに製作過程を紹介しました。そのためのコース製作、難所作成、計測システム、規約づくりなどなど、まつわることが沢山あって、それはもう大変ですよ。多くの方々にご協力いただいて、無事乗り切ることができました。

このNXTrike、モーターとタイヤを繋ぐギヤ比を3種類から選べるようにしたのですが、流石に5倍速を使うところはなかったようです。そう、それはこのサイズのコースでは役立ちません。ネタです。しかし3倍速を操ってくるチームは出てくるだろうと期待していたら、数チームが挑戦してきました。そして、べらぼうに速いです! そう、2輪倒立型はバランス取って立つのは凄いんだけど、走る速度が遅くて、見た目に迫力がないと言われていたので、とにかくぶっちぎりでコースを疾走して欲しかったのです。 チャンピオンシップ大会で一番印象に残ったのは、北海道のChampagne Fightです、 いいですねぇ。やってくれますねぇ。あのチームはどうしていつも速いんでしょう。

NXTrikeの前輪に遊びが多くて、ロボットを発表した直後から、「これは組み立てミスではないか」という問い合わせがたくさん来ました。いえ、その遊びを利用して制御方法を考えて欲しかったので、それで正解です。 以前のETロボコンでは、実行委員会側が正解があることを確認してから公表してました。 今年は違います。 たぶん出来るだろうから、あとはチームに任せましょう。きっと誰かが答えを見つけてきてくれる。 そういう姿勢で臨みました。 正解があるのが分かっている問題を解くのは面白くないじゃないですか。ね!

あと、前から実現したかったのは、計測システムの記録をいち早く公開して、自分が全国でどれくらいのポジションにいるのかを知る手段を提供すること。 ETロボコンは甲子園方式なので、参加チームが一番多い、東京で10位だったとしても、それは参加チームの少ない地区では優勝に匹敵する成績だったりするわけです。 東京に出場したチームは残念な思いをするのですが、全国ではどれくらいか分かれば、また励みにもなるし、チャンピオンシップ大会に出場が決まったチームも、他地区の成績がわかるので、いろいろ作戦が立てやすくなるわけで。
それで、計測システムと連携するランキングサイトをお願いして作ってもらいました。
この結果を見てると、地区大会で走行結果が1位2位のチームが必ずしもチャンピオンシップ大会に出てこれるわけでなく、1回でも失敗したらダメだというのがよく分かります。しかし、さすがにチャンピオンシップともなると、トップの記録は全部書き換えられてしまいましたが。

そんなわけで、アーキテクト作ったり、新しいロボットを投入したり、近年、いろいろ挑戦してきてるのですが、来年の2015年は、また新しいロボットのキットEV3というのを投入しなくてはいけないので、その準備もすでに始まっていて沢山の方に協力していただいてます。 なんかですね。 ここにいる人たち、凄いんですわ。 例えが良くないかもしれないけど、お腹をすかせたウナギの養殖生け簀にエサを投げ込むと、ドバドバドバドバとウナギが平らげてしまう映像って見たことあるでしょ? あれみたいなんです。 困った問題を投げ込むと、みんなが群がってプログラムを解析したり実験したりして食べちゃうんです。 そんな風にして、来年もまずは3つの開発環境が整いつつあります。

さて、どんなルールにしましょうか。立体難所を乗り越えるばかりでは面白くないので、志向が違うのも取り入れようと思います。 アーキテクト部門では制作物そのものが評価されやすい感がありますが、企画やプレゼンがより審査に反映されるような方式がいい、という意見も出てきています。 また、いくらか変更されると思いますので、お楽しみに。

| | コメント (0)