篠川です。

先日は今後の記事に関するアンケートにご協力いただき、ありがとうございました。

カメラの認識アルゴリズムが得票率が高かったので、それに関する記事を書き始めているのですが、説明の上でカメラにどのように映っているかを写真で示しながら説明しようと思ったので、詳細な記事については冬休み明けの活動再開まで少々お待ちください。

そこで今回は、チーム戦略について書こうと思います。

ちょっと企業みたいでかっこいいですね。

今まで大会に参加した中、私たちはいろいろなチームのいろいろなロボットを見てきました。

その中で蓄積した勝つチーム・負けるチームの違いや、心の持ち方について、いくつかの記事を通して書いていこうと思います。

今回はタイトル通り、ソフトウェアの重要性について。

一応確認:ソフトウェアというのはモーターやマイコンなどの物理的な部品ではなく、プログラミングのことです。

言いたいことを先に行ってしまうと、「ちゃんとしたプログラマーを持とう」 ということです。

というわけで、さっそく内容に入っていきましょう。

「勝つ」という気概

さて、勝つためにはどうしたらよいのでしょうか。

設計の段階で 「勝つビジョン」 を持っておくことは非常に大切です。

ほかのチームと似たようなものを作っていても、仕方がありません。

それでは相手に打ち勝つことはできないし、そもそもそれではロボットを作って大会に参加する意味がないですよね。

「ほかのチームよりも優れたロボットを作る」 という目標を持ち続けているからこそ、勝利をつかむことができるし、お金をかけてロボットを作り、大会に参加する意味があるというものです。

「こうやってほかのチームに打ち勝つ」 というはっきりしたイメージやアイデア差のつきどころ、ということですね。

じゃあどう勝つのか

たとえば「ボールを追う・ラインから必ず復帰する」といったことは、どのチームも当然のようにやることです。

だとしたら、どうすればほかのチームより優れたロボットを作れるのでしょうか?

ここで 「カメラを積む」「キッカーを積む」「マカオシュートをする」 といった発想が出てくるわけです。

ちなみに(以下余談寄りです)、maxonなどのお高いモーターを買えば勝てる(無いと勝ち上がれない)、という考えもRCJ Soccer界にはあるようです。

確かに資金があるほうが有利、ということは事実かもしれません。

しかし、SKY Crewの世界大会機はモーターが故障して現地で取り換えたこともあり(1個300円くらいだった)、LEGOのモーターくらい遅いものでした。

日本大会もそうです。

つまり、アイデアと努力次第で世界5位になれると実証できたわけです。

(なんか割と遅くても勝てるんですよ)

また、maxonを積んで実績を上げているチームは、ほかのところも作りこんでいます。

高いお金をかけるわけですから、思い入れがあるのも当然ですね。

私たちも結局今年からはmaxonに交渉しスポンサーしてもらうことで、安くmaxonモーターを手に入れることができ、速くなりましたが…

要するにこういうことです。

  • いいモーターを積んだチームが勝つというような夢のない世界ではない
  • いいモーターを積めば必ず勝てるとは限らない(ある程度有利にはなるかも)

ちなみに(また余談ですが)maxonのモーターは(ものによりますが)安いものでも2万円はします。

school supportというサービスで安くて1万6千円くらいになり、私たちはYoung Engineers Programというもので結果44%引きになりました。

結局は工夫のしようですね。

ハードウェアとソフトウェア

さて話を戻しますが、つまりは「高度なロボットを作ろう」 ということです。

ここでよく見かけるのが、「ハードウェアは優れているけどソフトウェアが追い付いていない」 というチーム。

やろうとしてる方向はわかるけど、実現できていない・ずれているということです。

エンジェルリング積んでみたけど結局角でアウトオブバウンズしていたり、そもそもスタートから動き出さなかったり。

「この状態で全方位カメラやキッカーなどを積んだところで仕方がない」 ということはわかっていただけるのではないでしょうか。

あとちょっと衝撃だったのが、普通の(キーボードで入力する)プログラミングではなく、C-styleやScratchといったGUI(マウスで操作するスタイル)で頑張っているチーム。

SKY Crewのロボットが積んでいるプログラムは2千行超えです。外部ライブラリも様々なものを利用しています。

GUIで頑張るくらいなら、プログラムが書ける人材を取り入れたほうが絶対にいいです。

いいチームにはいいプログラマがいる

というわけで、結局言いたいことは 「いいプログラマを持て」 ということです。

小学生の頃からLEGOでロボットを作っていたようなロボット作りのプロであったとしても、プログラミングは全く別の能力です。

そして、勝てるロボットには勝てるプログラムが絶対に欠かせません。

考えてみれば、そこまで意外な話でもないはずです。

サッカーにおいてはどのチームも構造的には似たようなロボットを作ってくるわけですから、なおさらですね。

それなのに、ロボット自体は悪くなさそうに見えるのにプログラムの完成度が及ばず、結果につながらないチームがたくさんあります。

皆さんのチームは大丈夫でしょうか?

まず、「ボールを追う・ラインから復帰する」ことは点を決めるための最低ラインです。

これができない状態でなにやら高度なことを取り入れようと思ったとしても、ソフトウェアがそれに見合うものでなければ、仕事ができないガラクタになってしまうことだってあり得ます。

基本的なところはしっかり詰めてください。

ちなみにコート角でアウトオブバウンズしてしまうなんかも、割と差のつきどころだったりします。

それから、それなりに欠陥のないものができ、順調に勝ち上がっているが、各地のブロック大会、日本大会あたりで壁にぶち当たってしまうチームもそうです。

自分たちのロボットを成長させ、勝ち上がっていくために必要なのは アイデア力勝つビジョン です。

そしてその実現を支えるのはソフトウェアの力なのです。

以上が今回の私からのメッセージです。

ちなみにSKY Crewのチーム構成は、ハードウェアの機体設計・製作担当が1人、回路担当が1人、そしてプログラマが2人です。

ソフトウェア担当が半分ということになりますが、多すぎるということは決してありません。

やりたい戦略や完成度を高めたい部分はいくらでもあるので。

「ロボット大会は頭脳戦」っていうのも割と真実だ思いますよ。

関東大会終わったタイミングでこんな記事を書くのもあれだなあとは思いましたが、長々とここまで書いてみました。

ご意見やご質問等あれば、なんでもコメントやメッセージでお寄せください。