モデルベースデザイン環境「MATLABおよびSimulink」で知られるMathWorksが、学生向けのドローン競技会「MathWorks Minidrone Competition」を開催した。共通のドローン機体が貸与され、ソフトウェア開発に専念できることや、予選はシミュレーションだけで行い、決勝でのみ実機体を使うことなどさまざまな特徴がある。主催者のMathWorks Japanに開催の狙いを聞くととともに、第1回大会で優勝した千葉工業大学チームに話を聞いた。
「MathWorks Minidrone Competition」という学生向けのロボット競技会をご存じだろうか。まだ2019年に始まったばかりの新しい大会であるため、知らない人の方が多いかもしれないが、これはモデルベースデザイン環境「MATLABおよびSimulink」で知られるMathWorksが主催したもの。初年度は、同年12月に、東京・秋葉原で決勝大会が行われた。
ロボット競技会は、国内外で既にさまざまなものが開催されている。なぜ今、新しい大会を始めたのか。この競技にはどんな特徴があるのか。主催したMathWorks Japan 教育機関 カスタマーサクセス部 マネージャーの道家治郎氏と、優勝した千葉工業大学「千葉鶴(せんばづる)」チームに話を伺った。
Minidrone Competitionは、ドローンによるライントレース競技である。ライントレースは、ロボットの競技としては最も基本的なものだが、この大会は、それを自律飛行のドローンでやるというのが面白いところ。
道家氏は、ドローンを採用した理由について「難易度と自由度の高さ」を挙げる。
地上走行型のロボットであれば、左右のステアリングを制御するだけで良いだろう。しかし空中を飛行するドローンだと、360度どの方向にも行けるし、高さも変えられる。しかも空中では、位置や姿勢がどうしてもふらついてしまう。同じライントレースであっても、制御はそう簡単ではない。
加えて、やはりドローンは見栄えが良い。道家氏は「飛ぶモノの方が動きが派手というのはありました(笑)。それにドローンを使った大会はまだ少ないので、皆さんに興味を持ってもらいやすいのではないでしょうか」と狙いを説明する。
ロボット競技会において、運営のキモの1つは難易度の設定である。参加者全員がクリアしてしまっては競技にならないし、逆に難しすぎて全員が0点でも困る。それに難しすぎれば、参加者が集まらないという問題もある。
その点、Minidrone Competitionは、ドローンという難しいテーマを扱いつつ、初心者でも参加しやすいのが特徴の1つ。ロボットは、機械、電気・電子、ソフトウェアなど、さまざまな分野の技術を必要とするシステムである。だからこそ人材育成にも適しているのだが、その反面、作業が多く、特に少人数では難しいという点は問題にもなってしまう。
多くのロボット競技会では、出場するために、ハードウェアから開発する必要がある。しかしMinidrone Competitionでは、共通の市販ドローンが貸与されるため、ハードウェアのことは全く気にせず、ソフトウェアの開発に専念できる。ソフトウェアだけなら、少人数でも対応しやすい。
ハードウェアに差は無いので、競技の結果は純粋にソフトウェア次第。このドローンのソフトウェア開発にはMATLABおよびSimulinkを使用する。参加チームには、ベースとなるSimulinkモデルや、MATLABおよびSimulinkを学習するためのチュートリアルなどが提供されるので、使ったことが無い人でも、一から学習しながら参加することが可能だ。
そして非常にユニークなのが、予選をシミュレーションで、決勝を実機で行うという競技スタイルである。まず予選では、参加者から送ってもらったモデルを使い、MathWorks側のエンジニアが性能を審査。そこで、効率的で正確なアルゴリズムを実装したモデルが選ばれ、決勝に進出することになる。
ただ、理想的なシミュレーション環境と、外乱がある実機環境とでは、同じソフトウェアを使っていても、結果は大きく変わることが多い。これが工学的な難しさで面白いところでもあるのだが、参加者には、当日貸与される実機を使い、短時間でパラメータをチューニングする能力も求められるわけだ。
Minidrone Competitionとしての大会開催の狙いは大きく分けて3つある。1つ目は、アイデアから形に持っていくところまでを体験して、授業で学んだことの理解を深めてもらうことだ。2つ目は、産業界で広く使われているモデルベースデザインについて、その手軽さや制御の面白さを、興味が持てる身近な題材を使って体験してもらうこと。そして3つ目は、これらの体験によって、モデルベースデザインが将来役立つことを理解してもらうことである。
実際にハードウェアを動かし、改善のための試行錯誤を繰り返した経験の有無は、社会に出たときに地力の違いとして現れる。競技会への参加は教育的な有用性も高く、道家氏は「大会の目的や意義を指導教員にも理解してもらい、講義のアイデアとして活用してもらえればうれしいです」と期待する。
なお大会の参加資格は、学生であること。今回の決勝ラウンドには、6つの大学・高専チームが集まったが、特に大学・高専に限っているわけでは無いので、もしやる気があれば、高校や中学の生徒でも参加申し込みは可能ということだ。
今回、機体はParrot社の小型ドローン「Mambo」を使用。下方を見るカメラからの映像を使い、床に引かれた幅10cmの赤ラインをトレースし、ゴールを目指す。開発したソフトウェアは全て機体側に搭載され、外部からの制御は一切行わない。
2019年大会のコースは、4本の直線で構成。最後の赤丸に着陸できれば完走で4点、途中で落ちた場合はその位置に応じて0〜3点を得ることができる。持ち時間は15分で、最大7回までチャレンジ可能。ベストスコアで評価され、完走チームが複数あった場合は、飛行時間が短い方が勝者となる。
しかし、決勝ラウンドでは、多くのチームが苦戦。0〜1点のフライトが続出する中で、唯一、完走に成功したのが千葉工業大学チームだった。7回中、3回が完走という安定したフライトは圧巻で、初めて完走したときには、会場が一体となって大きな歓声があがったほど。
チームのメンバーは、機械工学科4年の竹田一裕氏、機械電子創成工学科1年の小野貴彦氏と小川達也氏という3人(学年はいずれも当時)。参加を決めたのは、リーダーの竹田氏だったという。
竹田氏の参加の動機としては、4年生ということで既に大学の研究室に配属されており、配属先の制御関係の研究室で普段からMATLABおよびSimulinkは使っていたことが挙げられる。「今回の競技会のことは教授から教えてもらったのですが、もともとドローンには興味がありましたし、MATLABおよびSimulinkについても知識はあったので、これならいけそうだなと。就職後も使うだろうし、良い機会になると考えて参加を決めました」(同氏)という。
また竹田氏は「航空工学研究会」というサークルに所属。この中には、人力飛行機を開発する鳥人間班と無人機のドローン班があったが、人数は鳥人間班の方が圧倒的だった。竹田氏が所属していたドローン班はわずか2人しかおらず、後輩だった小野氏に声を掛け、その後、小川氏も助っ人としてチームに加わった。
チームでは、竹田氏はサポート役に徹し、ソフトウェアの開発は1年生の2人に任せた。ただ、小川氏は高校でプログラミングの経験があったものの、小野氏は全くの未経験。しかも、MATLABおよびSimulinkについては、2人とも使ったことがなく「名前すら知らなかった」と口をそろえる。
「ドローンの制御にはずっと興味があったので、MATLABおよびSimulinkが使えると聞いて、それなら参加して技術を身につけたいと思いました。全くの初心者でしたが、チュートリアルもあったので、段階的に学びやすく、理解しやすかったです」(小野氏)
「ハードウェアを作る必要がないと聞いて、それならできそうだと思いました。MATLABおよびSimulinkは今回初めて使いましたが、Simulinkはブロックをつなげる形なので視覚的に分かりやすく、作りやすかったです。現場での閾値の調整も簡単でした」(小川氏)
では、実際のソフトウェア開発はどのようにすすめたのだろうか。小川氏は「機体の制御系については最初からほぼ完成されていて、例えば『前方に何秒進む』とかは簡単にできます。開発する必要があったのは主に画像処理の部分で、カメラ画像を見てどう行動するのかというところに注力しました」と説明する。
また、ライントレースなどを行うロボット競技会ではどのようなアルゴリズムを選ぶかで勝敗が分かれることも多い。千葉工業大学チームは、撮影した画像を2値化してラインの赤色とそれ以外を分けた上で、その画像を3×3マスに9分割し、赤色の割合が多い方角に進むというシンプルな方法を採用した。「全体で赤色が少なくなると着陸するようにしていて、じつはゴールの赤丸自体は見ていません」(小川氏)。
何と、ライントレースの競技なのにラインをトレースしていないというのだから驚きだ。竹田氏は「実は研究室の教授からも『それではうまくいかないだろう』と言われたのですが、小川君がうまく工夫してやってくれました。ラインのエッジをトレースしようとすると動きがジグザグになりがちですが、揺れが大きいと画像認識が難しくなります。われわれの方法は、動きの変化が少ないのが良かったのかもしれません」と述べる。
千葉工業大学チームは競技後、他の参加チームから声を掛けられ、ソフトウェアを交換したという。そのチームはラインをトレースするアルゴリズムを採用していたそうで、このような比較によって自らの方法のメリットにも気付くことができた。こうした他チームとの交流も、競技会で得られる大きな経験の1つである。
ほぼ初めて使うことになったMATLABおよびSimulinkについては、どのような感想を持っているだろうか。メインでプログラミングを担当した小川氏は「Simulinkは『Raspberry Pi』や『Arduino』にも載せられるので、それでドローンを作って制御させるのも面白いなと考えています」と語る。また、プログラミング経験のなかった小野氏も「まだ初心者なのでアウトプットよりインプットの方が多い段階ですが、学生のうちにしっかりプログラミングを身につけてから、社会に出たいと思っています」
今回の優勝は、航空工学研究会のドローン班を盛り上げていくために大きな実績にもなったという。大学院に進学した竹田氏からドローン班のリーダーを引き継いだ小野氏は、次回の大会にも「ぜひ参加したい」とコメント。一方、小川氏は今回の結果には満足しておらず、「根本的にアルゴリズムを変えたい。次はスピードを極めたいです」と、早速アイデアを練り始めていた。
2019年、Minidrone Competitionは、イタリア、英国、インド、コロンビア、中国、日本の世界6カ国で開催された。2020年も、引き続き開催する予定だったが、新型コロナウイルス感染症の感染拡大と、それによる世界的な移動の制限によって、先行きが不透明な状況。現在、対応を検討しているところだという。
ただ、この競技会の予選はもともとシミュレーションなので、会場に集合する必要はない。決勝もハードウェアは共通なので、工夫次第では、遠隔開催も不可能ではないだろう。もし遠隔開催ができれば、地方からの参加がより容易になるというメリットも期待できる。何らかの形で開催できないか、期待したいところだ。
Minidrone Competitionは、MATLABおよびSimulinkを使ったドローンの制御を体験できるという貴重なチャンス。開催が決まったときは、ぜひ参加を検討してみてはいかがだろうか。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:MathWorks Japan
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2020年7月31日