<選択した競技>

競技1.スピード競争(Autonomous Speed Circuit)

MindStorms付属のサーキットの2倍の大きさのサーキットで行う.

<ルール>
スタートラインから黒線のトラックに沿いながら2周し,タイムとルートの正確さを競う.

<点数>
1.もっとも短いタイムでゴールしたチームを20点とし,以下タイム順に少なくなる.
2.半周ごとに銀紙が貼ってあり,そこを通ったときに音を鳴らせば10点.
  2周で計4回通ることになり最大40点となる.
3.上記の点数とは別にして,1周できるごとに点.2周で計20点となる.

これらの3つの合計点で競う.
※この競技では,マシンの構造はステアリング+後輪駆動に限定する.

<ヒント>
・ラインを光センサで感知しながら進むことで,ラインをトレースできる.
・とりあえず1周するアルゴリズムはMindStormsのCD-ROMに収録されている.
 (ステアリング機構のものではないが参考までに)
・ステアリング機構のギア比,前輪と後輪の間隔,センサをつける位置,車体の大きさ,
 電池の残量等に気をつけないとうまくコースを回ることができない.
・マシンの強度を考えて作らないといざというときに壊れる.

<プログラム(ソースファイル)>

プログラムの構成は

タスク1.変数のセット(現在,及び以前の床の色などからさまざまな変数の値をセットする)
タスク2.前輪の制御
タスク3.後輪の制御
タスク4.後輪のパワーの制御

サブルーチン0.現在の床の色を取得
サブルーチン1.銀紙のときに呼ばれる.変数のセットをする.

です.

色の変わり目で変数にセットされる,曲がる方向,およびそのおおよその強さは,
  外白 →  黒  : 左に弱(ただし相対的にはやや右向きでとまる)
   黒  →  灰  : 左に弱
   灰  → 内白 : 左に弱
  内白 →  灰  : 右に弱
   灰  →  黒  : 右に中
   黒  → 外白 : 右に強
      (ただし周回方向は時計回り,これ以外の状態においては色が変わったと判断しない(変数の値も変えない))
である.(細かい数値はソースファイル参照)
ただし銀色に入ったときは左に曲げて(曲げ具合はその前の色によって異なる)銀色から抜けたあとは,銀色に入る直前,
および,銀色を出た直後の色によって場合分けをしました.基本的には直前の色から直後の色に変わったものとして動作.
以下,特殊な動作を示す.
銀に入る直前  銀に入った直後
  内白,黒  →   黒      :右に弱
   外白   →   灰      :右に弱
    灰    →   灰      :左に弱
(外白から銀紙を通り,内白に入った時のみコースから外れる.ただし,復帰可能.)

前輪は設定した角度±2の範囲内においてとまるように設定してあります.
(ただし,1回目の測定のときは±1の範囲だった.ギヤ比にを変えたことによって変化した)
±1にすると慣性力が強すぎてがたがたと鳴ってしまい前輪が安定しないため,±2の範囲内で止めた.

後輪のOn,Off制御は最終的にステアリングが速くなったためほとんど必要なかった.(ほとんど止まらなかった)

後輪のパワーの制御は最終的に全てパワー7にしたので,意味がなくなってしまった.

 

<結果>

 
銀紙を通った回数
タイム/周回数
変更点,簡単な説明などetc...
1回目
4回
18秒/2周
安定性を高めるため白から黒に入ったときに若干止めた.
-
-
-

前輪のギヤ比を変更.
前輪の反応が速くなりさらに速くする指針が見えた

2回目
2回
なし/1周
時間がなくなったのでとりあえず測ったらコースアウト.
3回目
4回
24秒/2周
途中でコースを外れ内側を2周したあと復帰.2周はできた.
4回目
4回
18秒/2周
タイムは1回目と同じだが確実性は上がっていた.電池が弱っていた.
5回目
4回
19秒/2周
電池を古いものに交換したらさらに遅くなってしまった.

<考察,感想etc...>

まず,1回目は,確実性を高めるために,外の白から黒に入ったときに少し止めるようにした.
なぜそうしたかというと,止めなければ,時々,勢いあまって内側に入りすぎて,銀紙をよけることがあったからだ.
安全策をとった割には最高記録だったのだが・・・・

1回目のあと,よりコースに沿わせ,無駄をなくすため,前輪のギヤ比を変え,ステアリングの回転速度をはやくした.
前輪のギヤ比をもうひとつ速くしたかったのだが,そうすると慣性力も強くなり,ステアリングのとまる領域を±3でとらなければならなくなり,さすに誤差が おおきすぎたため,現在のギヤ比にした.(誤差が大きいとどう走るかがわかりづらくなってしまう)
プログラムをもう少しいじればどうにかなる気もしたのだが,ギヤ比を変えたのが終了30分前ぐらいだったので 時間的に無理だった.もしもう少し時間があり,電池が満タンならステアリングギヤ比を 速くして,アルゴリズムを少しいじって,少なくとも15秒は切れそうだっただけに,多少悔いの残る実験ではあった.(13秒もいけたかも・・・)
最高周回数は未知です.たしか10周近く走っていたこともあった様な気もしますが,アルゴリズムがかわったこと,マシンが変わったこと,あまり走らせ過ぎると電池が減る上,ほかの人が走らせれないため途中で途中で止める,などの理由でそういう測定はしたことがありません.

個人的にはもう一度したいです. やっとLEGOがわかってきたところだっただけに・・・

<写真>

マシン左側面から撮影した写真
マシンの裏側から撮影した写真