「中の人」が語るETロボコンの魅力─何が面白いのか,何に役立つのか

第2回 毎年がチャレンジ!「ETロボコン」競技のルール・機材・開発環境

この記事を読むのに必要な時間:およそ 4 分

5月から6月にかけて,ETロボコン2011の技術教育が各地区で行われています。技術教育では,開発環境・要素技術に関する教育,および,基本的なモデリングに関する教育が行われます。そして,技術教育が終わると,参加者の皆さんの活動も本格化することでしょう。今年も,アツい夏がすぐそこまで来ています。

さて今回は,今年のETロボコン2011の競技内容と開発環境についてご紹介します。

ETロボコンで使用するロボット

最初に,ETロボコンで使用するロボットをご紹介しましょう。

今年のETロボコン2011で使用するロボットの画像を図1に示します。ETロボコンで使用するロボットは,教育用レゴ マインドストームNXTで組み立てます。教育用レゴ マインドストームNXTはARMマイコンを搭載したNXTブロックとそれに接続するセンサとモータ,そのほかのギアやシャフト等のパーツをひとつのパッケージにしたレゴ社の製品です。

図1 ETロボコン2011 ロボット

図1 ETロボコン2011 ロボット

このロボットは大きく分類して,人間の頭脳に相当するNXTブロック,人間の目や耳に相当するセンサ,人間の手や足に相当するモータから構成されます。

図2 各部の名称

図2 各部の名称

まず,センサについて説明します。ロボットには,ジャイロセンサ,光センサ,超音波センサ,タッチセンサの4つのセンサが搭載されています。ジャイロセンサは,センサ自身の角速度を計測するもので,ロボットの傾き具合を知ることができます。光センサは周囲の明るさを計測するもので,地面の色の濃さを知ることができます。超音波センサは,超音波の発射部と受信部からなり,発射した超音波が前方の障害物に反射して返ってくるまでの時間を計測することができるものです。この計測時間と音速値を使うことにより,前方の障害物までの距離を知ることができます。タッチセンサは,センサのボタンが押されたことを知ることができます。

次に,モータについて説明します。モータは,ロボットの左右の車輪回転用,および,尻尾制御用の3つが搭載されています。NXTブロックのプログラムからモータへ回転方向(正転/反転)および回転速度を指示することができます。

最後に,NXTブロックについて説明します。NXTブロックには,ARMと呼ばれるマイコンが搭載されています。PCで作成したプログラムをNXTブロックに転送して,ARMマイコン上でプログラムを動作させることができます。また,NXTブロックをセンサやモータとケーブルで接続し,ARMマイコン上のプログラムでセンサの値を読むことや,モータへ回転動作を指示することができます。したがって,センサの値に従って,モータに適切な回転動作を指示するプログラムを作成すれば,ロボットを自律動作させることができます。

また,NXTブロックはBluetooth通信機能を内蔵しており,PCなどのBluetooth通信機器と通信を行うことも可能です。

ロボットのハードウェア部分は全チームで共通

このロボットの組立て手順は,ETロボコン実行委員会から参加者に提示されます。参加者は,提示された組立て手順に従ってロボットを組み立てる必要があります。つまり,全参加者が同じ仕様のロボットを使うことになります。また,このロボットは乾電池により駆動されますが,使用する乾電池も同じ製品を使うことになっています。したがって,ロボットのハードウェア部分については全参加者が共通となります。違いは各参加者が作成するソフトウェアのみです。ETロボコンは,まさにソフトウェア勝負のロボコンであり,これが大きな特徴のひとつとなっています。

ロボットの倒立制御とライントレース制御について

このロボットを走らせるためには,まずロボットを立たせる必要があります。しかし,ロボットの尻尾を上げた状態では,車輪が左右に2つしかないため,前後のどちらかに倒れてしまいます。まずは,ロボットを立たせるように左右の車輪を制御しなければなりません。読者の中には,そのような複雑な制御を行うプログラムは作成できないと思われる方も多いでしょう。しかし,心配する必要はありません。なぜなら,ETロボコンの参加者にはロボットの倒立制御を行うライブラリが提供されるからです。この倒立制御ライブラリを使えば,誰でも簡単にロボットを立たせることができます。

ちなみに,この倒立制御ライブラリでは,ジャイロセンサの値からロボットの傾き具合を知り,傾き具合に応じて左右の車輪(=モータ)を適切に回転させて,ロボットを立たせることを実現しています。たとえば,ロボットが前方にゆっくりと傾いている場合は車輪を前方へゆっくりと回す,あるいは,後方へ急激に傾いている場合は車輪を後方へ速く回す,などといった制御を行っています。一輪車に乗る場合の制御方法をイメージすると,理解できるかもしれません。

また,競技では,競技フィールド上の黒いラインをトレースして走ることになります。ライントレース制御のためには,まず,光センサの値からロボットが黒いライン上にいるのか,あるいはライン外の白いエリアにいるのかを判断します。そして,ライン上とライン外で,ロボットの進行方向を左右に切り替えることにより,ライントレースすることができます。

図3 ライントレース制御

図3 ライントレース制御

これはライントレース制御の基本ですが,ライントレースのスピードをいかに上げるかが上位入賞のためには重要です。たとえば,

  • 光センサによるライン検出の精度を上げる
  • カーブ部分では転倒しないようにスピードを緩め,直線部分ではスピードを上げる
  • PID制御を採用する

など,アイデアはいくつもあるでしょう。その他に,ライントレース制御では,以下の点についても考慮すべきでしょう。

  • 光センサは,会場の照明環境などの外乱の影響を受けやすい。外乱の影響を抑える,あるいは,環境の違いを吸収するような工夫が必要
  • 実際のコースには,坂道となっている部分がある。この坂道部分では,光センサからコース面までの距離が平坦部分より短くなるため,光センサの値が変わることがある。坂道部分でのライン検出に工夫が必要

著者プロフィール

西川幸延(にしかわゆきのぶ)

ETロボコン2011実行委員会 本部技術委員長,北陸地区実行副委員長

NECソフトウェア北陸 第三ソリューション事業部 グループマネージャー

コメント

コメントの記入