Zurich)の博士課程学生として、ロボット研究を始めた。この記事では、ロボット作って動かしていく上で大切にしたいことや、守りたい原則をまとめていきたい。これから様々な枠組みの中で研究を進めるうちに、ここに書いたことが現実的でなかったり、綺麗事でしかないことを痛感することになるかもしれないが、その際に初心を振り返ることもできるよう、文章に起こしておこうと思う。既存の研究の再実装を恐れない研究とは今まで見つけられていなかった事実を発見し検証する過程のことなので、既に存在するモノを再び作ってもそれは新規な研究にはならない。巷には「今まで意味がないと考えられていた・既存方法と全然違う方法を使ったら大発見につながった」というようなストーリーが溢れている。科学系のノーベル賞の研究秘話などの多くがこんな感じだろう。「型があっての型破り」という言葉がある通り、本来のやり方も知らないで闇雲に新しい手法を模索したところで、大発見に繋がることはないだろう。サルがタイプライターを十分長い時間叩いていればそのうちシェイクスピアを書き上げることができる、という思考実験があるが、基礎がなっていない状態で進めていってもそれくらいの天文学的確率でしか進歩を生み出せないだろう。既存のアプローチを熟知した上で、それを発展させようと戻ったり進んだりしながら実験していかないと、役に立つ提案を見つけることは難しい。それによって、先人たちの遺産を大事にし最大限活用した上で、ほんの少しそれを改善し人類の知を広げることができる。最近では研究で使ったコードをオープンソースにしてGitHubなどで公表する場合が多く、また、モデルベース制御や強化学習などでよく使われる制御器については、素晴らしくよくできたライブラリが公開されていて、入力と出力をつなげるだけで制御器が完成するほど使い勝手が良かったりする。ある方法を追うことを恐れずに、その先を覗いてみるんだ、という気持ちで、フットワーク軽めに気軽に色々な手法を試していきたい。DALL-E胸を張って紹介できる論文を書く私はロボットの中でも柔らかい素材でできたソフトロボットの研究を主にしているのだが、この分野の論文はものすごく似通ったものが多い(残念ながら自分の論文もそれに該当すると思っているので、自省を込めたものとして読んでいただきたい...。空圧筋をもつ象の鼻のようなロボットアームはものすごくたくさん提案されているので何が新しい要素なのか分かりかねたり、20年前くらいから提案されていた手法をちょっと変えたものを新手法として提案していたり、とにかく論文がたくさんある割に似ているものが多い。それでいて、あまりに単純なタスクしかさせていない研究も多い。このようなソフトロボットが実用的な動作(机からものを取って引き出しにしまったりとか)をしていればまだいいものの、大抵は何も持たない状態(それか同じ物体を持ったままの状態)でゆっくりと駆動して、手先の位置の精度が何ミリで制御できました、と報告する。そりゃあ一つのロボットの動作データを集めまくれば入力値(空圧)と出力値(手先の位置)にオーバーフィットさせればいくらでも精度は出るので当然の結果である。「既存手法と同じことを、別の計算アルゴリズムで実現しました」(最近だと、今までモデルベースだったものを機械学習でやり直す)、ということが多い。(ちなみに、「今までXX分野に適用されてこなかったYYという手法を実装しました」、というタイプの研究をPPAP型研究というらしい)そしてそのような論文はなにか特別に性能が上がるわけではなくても、新しい組み合わせというだけで査読を通りやすい。数学的背景が難解であればあるほど。残念ながら、比較実験において既存手法と性能が比べられているものの、適切な手法が選ばれていなかったり、いじわるな条件になっていたりして、藁人形論法で提案手法を祭り上げる場合もある。(そして一部の査読者がそれに気づいたとしても、大部分の査読者が「比較実験がされている」という点だけで納得すれば通ってしまう。)尚、実機が関わらない機械学習や強化学習分野ならまだ、比較対象となるデータセットやシミュレーション環境が存在するので、より公平な比較ができるだろう。このように「素直」なのかどうかは、著者の善意に従うところも大きいと思う。ここで宣言しておきたい。私は、既存手法を不誠実な比較によりおとしめることなく、正々堂々と比較実験をした上で、自分の手法の限界も隠すことなく論文を書きます。DALL-E作ったモノでどんどん遊ぶ・遊んでもらうETHの先輩の研究室を見学させてもらった時に、研究対象の四脚ロボットを眼の前で自らの制御器で動かし、そのまま研究室の外まで出て芝生の上や階段を何事もなく歩けるのを見せていただけて感銘を受けたことがある。制御器がものすごく安定していたのはもちろん、来訪者にすぐにデモを見せられるような環境であること自体がすごかった。ロボット研究は、新規性を追求する「研究」の面だけでなく、安定したロボットシステムを作るための工学的な「開発」作業も必要なのが特徴的である。自分自身も、研究者である前にエンジニアであると思っている。斬新なアイデアがあっても、機械工学やソフトウェアエンジニアリングに基づいたデザインでないとすぐに壊れたり、バグだらけの応用が効かないプログラムになってしまう。基礎を踏まえたまともなエンジニアリングによって研究を進めるのは最初に書いたとおりなのだが、そのような安定した使いやすいシステムを構築することで、ロボットを気軽に起動し、遊ぶことができる。ロボットで遊び、来訪者にも遊んでもらううちに、限界が見えてきたり、次の一手につながる着想を得ることができると信じている。研究成果を動いている形で人に見せるのも単純に楽しい。東大で所属していた研究室は、とにかくロボットを実環境で動かすことに異常なほどのこだわりをもっている。ラボのヒューマノイドはほぼいつでもドアを開けるデモ動作ができるし、先輩方の書いたプログラムによって毎朝ロボットが研究室内を巡回し、見回り報告メールを送ってくるし、まだまだ実験段階のはずの腱駆動ロボットだって車を運転する。そんな実際に働くロボットの中身で動いているプログラムを見てみると、ものすごく斬新なアイデアの塊というよりは、既存のライブラリや制御器を用いつつ、自分たちのロボットに適用し、その中でうまく動かすために必要となる「新規性」を加える、といったものが多いように思う。ロボットが実世界に出ていくために必要なことは、理論内でしか役に立たないモデルや限られた環境で動くだけの新機構だけでは何もできず、実世界でガンガン動かしていき、限界を探りながら改良を行っていくしかないと思うので、このアプローチは少なくとも実用を視野に入れる場合は唯一の正解と言ってもいいと思う。手を動かす人が一番偉い手を動かしてロボットを作って論文を書かないと結局、研究は進まない。プログラムも論文もとりあえず書き始めて、書いているうちに考え方もまとまっていき整理されていくと信じながら、途中経過の時点では中途半端なものになってしまうのを恐れずに、ラボの仲間と一緒にどんどんモノを作り出していこうと思う。