![]() |
[2011 年 7 月号] |
[技術講座]
![]() |
今年も ET ロボコンの季節がやってきました。9 月初旬からはいよいよ全国各地で地区大会が始まります。そんな中、東京地区では今年も ET ロボコンに関わる有志で 東京連合 を結成し、活動を開始しました。第 1 回集会には、学生・社会人合わせ 9 チーム 25 人が参加し、知識や知恵を出し合いながら熱い議論を交わしました。本記事では、集会で行った内容の一部を紹介します。
尚、本記事は ET ロボコンに参加する方を想定した内容となっています。ET ロボコンをご存じない方は ET ロボコン概要 をご覧ください。
3.2.1. 使いどころを工夫すれば、高速ライントレース走行も問題なし
3.2.2. 発光部 ( LED ) を消した方がライントレースは安定する?
東京連合とは、ET ロボコン東京地区大会に参加する有志を中心に結成したコミュニティです。「 知恵と刺激を与え合う 」をコンセプトに、「 チャンピオンシップ大会で上位入賞を目指す 」ことを目標に活動しています。今年で結成 2 年目となります。
活動内容は、モデル・競技に関する知識共有や意見交換、及び合同でのモデルレビューや試走会などです。大きな特徴は、昨年までの振り返りを行いつつ、今年についての検討に力を入れている点です。自主的な活動であることを生かし、自由な発想やアイデアで検討を行っています。
活動の効果として、切磋琢磨によりお互いのレベルアップに繋がることはもちろん、刺激し合うことでモチベーションの向上・維持にも役立っています。また昨年参加したメンバからは、活動を通じて生まれた仲間意識が、大会当日の不安や緊張の中で心強さに繋がったという声も聞かれました。筆者自身、個々のチーム活動だけでは得られないさまざまな効果を感じています。各地区でもこうした自主活動を実施してみてはいかがでしょうか。
集会第 1 部では、筆者より「 大胆予想 」と題し、2011 年の モデル審査基準 や 競技規約 を基に考察した ( 想像含む ) 内容を発表しました。その一部を参加者との議論を交えつつ紹介します。個人的見解も多分に含まれているため、その点は理解いただき、良い踏み台となれば幸いです。
![]() |
![]() |
ET ロボコンに参加するチームは、企業、学生を問わず、多くがプライベートな時間を割いて活動していることと思います。だからこそ、出るからには良い結果を残したいと考えるのではないでしょうか。そこで筆者がオススメしたいのが、「 昨年からの追加分に注力する 」ことです。昨年からの追加分は、新規性やアピール性が高いことから「 今年の注目ポイント 」と言えます。モデル部門は人が審査を行うため、より注目度の高い対象に取り組むことで高評価に結びつく可能性が高まるはずです。その観点から筆者は、今年の モデル審査基準 や 競技規約 を基に、次の 3 点を注目ポイントとして挙げました ( 難所については、次回集会で取り上げる予定のため割愛 )。
ここで気をつけたいことは、あくまで注力であり、それだけに終始してはいけない点です。昨年のチャンピオンシップ大会ワークショップでも話題に挙がりましたが、アピールしたいポイントの説明に終始するあまり、基本である「 そのモデルでちゃんと動く 」ことの説明が欠けてしまっては本末転倒になり高評価は望めません。
要求モデルは、次の審査内容により評価されます。
製品やソフトウェアに対する要求が、把握されているかどうかを審査します。具体的には、以下の内容を審査します。
|
これによると、モデルシート中で取り上げる機能要求、非機能要求、要素技術などについて、それぞれがどういった背景により導き出され、どういった理由により選択されたものかを、モデルとして表現することが求められているようです。記法としては、SysML 要求図、ゴールモデル、マインドマップなどがよく用いられます。
要求モデルを作る過程で行う要求分析は、難易度の高い作業です。要求は粒度や切り口もさまざまで、整理が難しいものであることに加え、システムを作りだして初めて見えてくる要求も多々あります。最初から全ての要求を洗い出し、矛盾なく整理しようとすると、終わりのない迷路に嵌り込む、いわゆる「分析地獄」に陥る恐れがあります。特に真面目で几帳面な性格の方は要注意です。
それを防ぐ方法として筆者のオススメは、「 要求分析の終了条件を事前に決めてしまう 」ことと、「 複数回のイテレーションにより徐々に洗練させていく 」ことです。例えば、終了条件の設定なら、時間で区切ってしまうのも一つの手です。いずれにせよ、「 少しずつ徐々に洗練させていく 」心構えで臨むことが大切ではないでしょうか。
尻尾とは、走行体の後部に装着された「 くの字 」の部品を指します。
根元に付いたモータを駆動させることで走行体を支えるといったアクションが可能になります。筆者はこの特徴を生かし、走行体を変形させての走行が可能になると考えています。例えば、次のような変形パターンが考えられます。
![]() | ![]() |
![]() |
直立 2 点
|
直立 3 点
|
傾立 3 点
|
それぞれの変形パターンは、少しずつ異なる走行特性を持っています。それを踏まえ、競技面では、コース上のどの部分をどの変形パターンで走るのかといった戦略に着目すると面白そうです。またモデル面では、変形と走行との関係性をどのように捉えたのかといった視点に着目すると面白そうです。
ただ風の噂で、尻尾を接地させたままの走行は、コース ( 布素材 ) を痛める原因となるため、競技規約上何らかの制約を受けるかもしれないといった話が聞かれます。尻尾を接地させた走行を考えているチームは注意が必要です。
また、尻尾根元に付いたモータからは、エンコーダ値 ( 回転角 ) を取得できるため、触角 ( 検知デバイス ) としても活用できるかもしれません。例えば、接地できるという特徴を生かし、段差や勾配の検知が考えられます。気になるのは、尻尾への衝撃によって走行体が転倒してしまう恐れがある点です。集会では、尻尾への衝撃を走行体へ伝えないために、衝撃を受け流す方向へ素早く尻尾を動かす電動アシスト機能の必要性が指摘されました。
![]() |
![]() |
尻尾への衝撃により転倒 ( 電動アシスト機能なし ) |
尻尾への衝撃を受け流す ( 電動アシスト機能あり ) |
走行体と PC 間の Bluetooth 通信が解禁されたことで PC 側でもシステムを作れるようになりました。PC の特徴である「 扱いやすいユーザインタフェース 」や「 豊富なリソース 」を活用したさまざまなアイデアが期待できます。集会でも次のようなアイデアが挙がりました。
Bluetooth 通信で一番気がかりなのは、やはり通信障害ではないでしょうか。ET ロボコンとしても今年が初の試みのため、本番を迎えてみないと分かりません。集会でも、「 NXT には Bluetooth 通信専用のチップが載っており、遅延もほとんどなく安定している。 」( すねいる 吉田さん ) との声がある一方で、MDD ロボットチャレンジ *1 に参加した経験を持つチームからは、「 MDD ロボットチャレンジ *1 の大会当日、テスト飛行ではほとんどのチームが成功していたにも関わらず、本番飛行で失敗するチームが多々見られた。その経験から、本番時の通信障害を懸念している。」( 電大ロボメカ ) との声もありました。本番は人や電子機器が飛躍的に増えることから、想定外に起こる通信障害の可能性は否定できないようです。しっかりとしたリスク分析や適切な対策が必要となりますが、ぜひ、これまでにない画期的なアイデアを期待したいところです。
*1飛行船を制御するソフトウェアを開発し、決められたルートを飛行できるかなどを競うコンテスト。飛行船と PC 間でやり取り ( 無線通信 ) し、飛行船から得られる情報を基に PC で飛行制御を行う点が特徴。
今年の競技規約を見ると、昨年と比べ大幅に記載量が増えています ( 昨年約 4000 字 → 今年約 7000 字 ) 。このことから、今年の開発ボリュームが増えていることは明らかです。あくまで筆者個人の感覚ですが、昨年までは、再利用をあまり考慮していないモデルでも、力ずくで何とか作れてしまうボリュームでした。しかし今年は、再利用を考慮したモデルでないと立ち行かなくなるだろうと感じています。特に、難所が増えたこと ( 昨年 4 種類 → 今年 5 種類 ) で、再利用を考えず難所毎の走行を個別に作っていては、次の点に悩まされるのではないでしょうか。
こうした理由から、今年は難所の走り方において再利用が進むものと思われます。さらには、より上位の戦術や戦略レベルの再利用まで進んでいくと、面白くなりそうです。
集会第 2 部では、昨年あたりから前提知識として定着しつつある 2 つの要素技術について解説や検討を行いました。
マップ走行とは、コース上のレーンに囚われず、任意のルートを縦横無尽に走り回る走行です。昨年、勝 ( かち ) ロボとして参加した瀬尾さんから、実現方法や精度を上げるための工夫について解説してもらいました。
![]() |
![]() |
勝 ( かち ) ロボは、コースを座標平面と捉え、その上に設定した任意の座標から座標へ移動することで縦横無尽の走りを実現していました。具体的には、あらかじめ走りたいルートを辿る座標値リストを作っておき、リストの順に、座標上での方角変更 ( 定位置旋回 ) と、次座標までの移動 ( 直進移動 ) を繰り返します。
走りたいルートから座標値リストを作成する必要がありますが、勝 ( かち ) ロボは、その作業を軽減するため、コース画像に対しポイントしていくことで、座標値リストを生成できるツールを開発していました。こうした補助ツールの活用は、作業効率向上の面で非常に有効です。
座標値リスト通りに走れば良いのですが、実際には、走行体やモータには慣性力が働くため、座標から座標への多角線の移動は行えず、ズレが生じます。
その対策として、走行体の自己位置を推定し、適当な間隔で、自己位置を基に方角と移動距離を再調整する ( 補正する ) 必要があります。自己位置推定の方法として、ET ロボコンでよく用いられているのが、デッドレコニングやオドメトリと呼ばれる方法です。詳しい説明は割愛しますが、概要は、走行体の左右 2 つの車輪の移動距離を出し、そこから走行体の軌跡を求め、その軌跡の積算によって自己位置を推定します。ちなみに走行体の軌跡は、左右の車輪で移動する機構上、微小区間において円弧を描く特徴を持っています。
また勝 ( かち ) ロボは、精度を上げるために、方角を補正する際、目標方角と実方角の差に対し PID 制御を適用し、素早く滑らかに方角を合わせる工夫を行っていました。他にも、走行体やモータの慣性力を抑える工夫として、多角線のカクカクとした移動ではなく、スプライン曲線、ベジエ曲線、クロソイド曲線などを織り交ぜた滑らかな移動を試みたチームもありました。今年も精度を上げるためのさまざまな工夫が見られそうです。
また筆者は、今年は絶対位置で補正する試みも出てくるのではないかと予想しています。デッドレコニングやオドメトリの欠点は、徐々に誤差が蓄積してしまう点 ( 前回座標からの相対位置の積算によって自己位置を推定するため ) と、車輪の滑りにより誤差が発生してしまう点 ( 車輪モータのエンコーダ値 ( 回転角 ) を使用するため ) です。それら欠点に対し、絶対位置での補正が有効ですが、GPS など使えない走行体にとって絶対位置を知る方法は容易ではありません。コースから得られる情報を基に、どのようにして絶対位置を割り出すのかといったところに、さまざまな工夫が見られるのではないかと期待しています。
まいまい式とは、光センサが受ける外乱光の影響を抑え、信頼できる光センサ値を得るためのセンシング方法です。光センサの持つ発光部 ( LED ) を明滅させ、外乱光分を取り除いた光センサ値 ( 点灯時の光センサ値 − 消灯時の光センサ値 ) を抽出し利用します。すねいる 吉田さんのサイトで解説やサンプルコードが公開されています。
筆者は今年、競技規約上、外乱光を遮るための遮光スカートの装着が禁止されたことを受け、東京地区大会において「 まいまい式 」の導入は必須になるだろうと予想しています。そこで、昨年、田町レーシングとして参加した大西さんから、まいまい式の解説と課題であるセンシング周期短縮への取り組みについて解説してもらいました ( 大西さん発表資料 765KB )。また今回は特別ゲストとして、まいまい式創案者のすねいる 吉田さんも交え、使いどころについて熱い議論を交わしました。
![]() |
![]() |
まいまい式は外乱光 ( 特に太陽光 ) の影響を軽減する対策として非常に有効です。しかし、次の課題を持っています。
集会では、まいまい式で高速ライントレース走行を可能にするため、タイムラグを生み出している原因を究明し、センシング周期を短縮する方法を探りました。ただ残念ながら「 高速ライントレース走行に全く影響のないレベルまでセンシング周期を短縮することは難しい 」との結論に至りました。NXT を分解し、光センサを制御しているサブマイコンのプログラムを書き換えることで解決できる見込みもありそうですが、競技規約上、分解は許されていないため行えません。
しかし諦める必要はなく、使いどころを工夫することで高速ライントレース走行は十分に可能なようです。すねいる 吉田さん曰く、「 レーンの曲率が変化する区間 ( カーブの入り口や出口 ) 以外であれば、まいまい式で高速ライントレース走行しても、挙動が乱れることはほとんどなかった。 」とのことです。つまり、レーンの曲率が変化する区間 ( カーブの入り口や出口 ) のみ低速で走るなど工夫すれば、まいまい式でも遜色のないレベルで高速ラントレース走行が可能かもしれません。
また別案として、高速で走りたい区間は光センサを必要としないマップ走行で走るなど、まいまい式ライントレース走行とマップ走行を使い分けるアイデアも挙がりました。
また、光センサ自体が持つ課題として、受光部 ( フォトトランジスタ ) に当たる光量が大きくなるほど、光センサ値 ( 出力電圧 ) が飽和してしまう現象があります。例えば、東京地区大会のように太陽光が強く光量の多い環境では、光量の変化幅に対し光センサ値 ( 出力電圧 ) の変化幅が小さくなるため、ライントレース時のレーン境界値の設定がシビアになります。一方、他の地区大会など比較的光量の少ない環境では、光量の変化幅に対し光センサ値 ( 出力電圧 ) の変化幅が大きいため、レーン境界値の設定もそれほどシビアではありません。
それを踏まえ、すねいる 吉田さんから「 東京地区大会では、飽和を避けるために発光部 ( LED ) を消してライントレースする方法もありかもしれない 」と大胆なアイデアが挙がりました。つまり、発光部 ( LED ) を消して受光部 ( フォトトランジスタ ) に当たる光量を下げることで、飽和を緩和しようという試みです。これにより、僅かなレーン境界値の設定ミスでライントレースに失敗し、コースアウトしてしまうといったリスクを軽減できるかもしれません。ただ当然のことながら、外乱光のみを当てにするため、外乱光の均一でない環境や外乱光の当たらない環境に対する考慮が必要となります。
集会後の飲み会で、光センサに関する面白い話がありました。昨年の南関東地区大会では、光センサに繋ぐ配線の取り回しを工夫して、光センサ周辺に影を作り、遮光を行っていたチームがあったそうです。競技規約上の禁止行為に当たらなければ、今年も有効なはずです。ソフトウェアで競うという大会の趣旨からはやや外れますが、配線の取り回し方でもさまざまなアイデアやテクニックが飛び出すかもしれません。
いかがでしたでしょうか?東京連合 第 1 回集会の内容を取り上げましたが、役に立つ情報やアイデアはありましたでしょうか?ぜひ皆さんの地区でもこのような活動を実施されることをオススメします。組み込み業界に携わるもの同士、交流の場としても非常に有意義なはずです。
© 2011 OGIS-RI Co., Ltd. |
|