世界に通用するロボットができるまで
「コンテナ」ミッションの攻略:引く
今回は、FLL2005における「コンテナ」ミッションを通じて、2つのチームの子供たちが実際にミッションに取り組む中で、それぞれどのように問題を発見し、どのような過程を経て「リスクの管理」「不確実性への対処」を学んだかについて紹介したい。
まず競技内容について説明するので図1を参照していただきたい。このミッションは赤い「コンテナ」と呼ばれる重い箱と、その箱の前にある茶色の「ブロック」をベースまで持ってくるというものだ。海に捨てられたコンテナとそこから流出した荷物を回収するという設定で、本ミッション自体は「重いものの動かし方」と「複数の茶色のブロックを確実にすべて回収する工夫」がポイントになる。
次に、実際に子供たちが議論した内容を基に、主な戦略を紹介する。実際には、ロボットの車体とフィールドだけを用意して、「自分たちの手を使って実際の動きを表現してみる」「それを見ながらほかの方法を思いついたら考える」ということを繰り返し行った結果である。主な方法は次の通りである
方法1は(4)(8)のミッションを遂行した後、コンテナの後方(図1中の左側)から「押して」動かす。方法2はベースから出発し、コンテナを「引っ張って」動かす。方法3は(4)のミッションを遂行した後、コンテナを「ひっかけて」動かす。
最初のうちは、子供たちはそれぞれの主張を一歩も引く気配がなかったため、上記3つの方法について実機を用い実験を行って再度検討することとなった。実際に実機を用いてわかったことは以下の通りであり、それぞれについて、いろいろなアタッチメントを工夫した上での結果である。
まず、方法3のコンテナを「ひっかけて」動かす作戦は、車体がコンテナより軽くて回転してしまうため断念した。そして現在の車体では、重いコンテナを運ぶためには「押す」のが確実だということがわかった。またコンテナを「引っ張る」ためには車体を重くすることが必要で、この方法2はさらに「コンテナの先端(図右側)の入り口をひっかける方法」と「網/紐のようなもので全体をかぶせる方法」があることがわかった。
確実性を考慮した戦略の決定
効率よく作業を進めるために子供たちはそれぞれ自分がよいと考える方法で取り組み、それをほかのメンバにプレゼンテーションした。この時点で、不確実性や開発の時間を考慮して検討し、最終的にコンテナを「引っ張る」方法を検討していくことになった。
先に述べたようにコンテナを「引っ張る」方法を検討する際には、「コンテナの先端(図右側)の入り口をひっかける方法」と「網/紐のようなもので全体をかぶせる方法」の2つの提案がなされ、それぞれ実機を用いた検討がなされた。ここも意見が分かれて収拾がつかなかったため、最終的には20回中の成功数が多い方ということで「網/紐のようなもので全体をかぶせる方法」が採用された。
子供たちは、先端をひっかける方法の方が、コンテナの入り口に下からフックをひっかけて上向きの力をかけるので、車体に対して下向きの力=車体を押さえつける力が働いてタイヤの力を出しやすいだろうと予測していたようだ。「なぜ全体をかぶせる方法が成功する確率が高いのか」を考えたところ、当初の仮説とは異なり、ひっかける方法では実際には後輪が浮いてしまうことでグリップする力が弱くなっていためとの結論に達していた。
以上の体験について、参加した子供たちは、次のように語っている。
「『コンテナ』のミッションはやり方以上に『どの順番でやるか』で意見が分かれた。このときに、ミッションをどうやってクリアするのかと、全体をどのような順番で行うかとについて、真剣に考えた気がする。『満点を狙う』こと以外に皆が同じように考えられるところがなく大変だった。結局、『コンテナ』のミッションでは行わなかったが、『失敗したとき用にほかのプログラムを用意する』というアイデアが出たときのことはよく覚えている」
「『コンテナ』のミッションは一番『簡単に見えて難しかった』。『複雑な動きはないし形も四角いからなんとかなるだろう』と全員考えて取り組んでみたら、『重くて動かない』ことが予想外だった。タイヤを地面にしっかりつけるようにロボット本体におもりをのせることで解決するまでは、どうしてよいかわからなくて苦労した。その中で、いろいろうまくいかない場合に何をするか考えたことが、一番おもしろかった」