見出し画像

日本のROSコミュニティの第一人者・岡田浩之先生にロボットプログラミングの醍醐味を聞いてみた【コモさんの「ロボっていいとも!」】

画像1

こんにちは、コモリでございます。

ロボティクス業界のキーパーソンの友達の輪を広げるインタビューコーナー「ロボっていいとも!」のお時間となりました。



先日、Unityは「Unity Robotics Hub」という、Unity上でのロボット開発を実現できるフレームワークを発表しました。これはROSをUnity上で扱えるようにしたものです。


ROSについてはこの「ロボっていいとも!」でも何度も出てくるキーワードですが改めて説明すると、ROSはRobot Operating Systemというもので、読んで字のごとくロボットのOS的な位置づけのソフトウェアです。実際はロボットアプリケーションを作成支援するライブラリやツール群で、これを組み込んだロボットやパーツ類は共通で開発ツールを使えたりなど、開発効率化を図ることが出来ます。


そして今回のゲストは、日本におけるROSのトップエキスパートの一人と言っても過言ではない方にご登場いただきます。ROSとの出会いやご自身の研究室での活動内容、またプログラミングスキルはどうしたら伸ばすことができるのかなどを伺います。



それではゲストをお招きしましょう。本日のゲスト、東北大学 小嶋秀樹先生からのご紹介、玉川大学 教授の岡田浩之先生です!

画像2

岡田 浩之
玉川大学 工学部 教授



岡田先生とROSとの出会い

――早速ですが、岡田先生は今年『ロボットプログラミングROS2入門』という本をご出版なさいました。

画像3

まずはROSとの出会いや、岡田先生にとってROSとはどういうものか?みたいなお話を伺えればと思います。

ROSを使い始めたのは今から十数年前からです。最初にROSに触れた時、「あ、こういう物を作りたかったんだ!」というのが感想でした。

当時はOPEN-Rというフレームワークで開発などをやっていましたが、「もう少し汎用性のあるフレームワークが欲しいなぁ」と感じていて、そういうフレームワークの自作も試みていたりしました。分散オブジェクトだとか、クライアント・サーバ的な構造を持った仕組みみたいなものだとか、そういうものを作りたかったのでした。

そうしている内に知人からROSを紹介されまして。いざ触ってみたら、自分が欲しいと思っていた機能がROSには大体あったんです。そこからはROSのソースコードを読むなどして、深くハマるようになったわけです。


――ROSには一目惚れという感じですね

あと、ROSの開発コミュニティの人たちがとにかく楽しそうにROSを触っている様子を見て、私はROSコミュニティをすごく羨ましく感じました。特に開発者が自由に活動できる点に惹かれました。


――私も同じようなことを感じています。たとえばROSで何か良くない実装を誰かが入れてきても、開発コミュニティの中でそれに気づいたユーザー達が「みんなで直していこう」みたいな気概で課題に取り組む雰囲気がありますよね。

全てというわけではないですが、日本人が中心のコミュニティは「プロダクトの品質が低いうちは、まだ外部公開をしない」みたいな考えがあると感じていますが、ROSコミュニティはむしろ逆で「公開すればきっと誰かが直してくれるだろう」くらいのノリで活動していますね。


――そういう流れでROSコミュニティに参加した岡田先生が、このたび『ロボットプログラミングROS2入門』を執筆した経緯は?

ROS2の公式チュートリアルをやってみたのですが、とにかく動かすまでにいろいろ苦労しました。書いてあるとおりに進めても躓く部分もそこそこあって。で、「こういう風に動かした方が分かりやすいですよ」みたいな事をROS2の開発メーリングリストに書き込んだりしていました。

そうした中で日本語の情報や解説もないので「ROS2に関してまとまったものを自分で作ってみよう」と考えたのが執筆のキッカケです。

本書はROS2の動かし方だけでなく、Dockerによる環境構築の話なども盛り込んだ内容に仕上がっています。やはり環境構築は初心者は躓きやすい部分ですからね。


――たしかにROSを動かす際、初心者にとっては環境構築が一番ハードルが高いですよね。そういう意味では、本書がDockerを扱っていることは理にかなっていると思います。私もこの本を読みましたが、Dockerをはじめ環境構築に必要なソフトウェアのインストール方法もキチンと書かれていて、「ROS2でロボットプログラミングをやろう!」と思った初心者が躓かないように配慮されているのが素晴らしいと思いました。

『ロボットプログラミングROS2入門』は私の授業でも活用しています。この本で授業を実施する前は全15回くらいの授業のうち5回くらいはインストールや環境構築に費やしていましたが、この本で授業をするようになってからはDockerの利用によって1~2回の授業で全員が環境構築を終えることができるようになりました。Dockerはすごく便利な仕組みだと思います。




赤ちゃんとロボット研究の関係

――ROSの話題が最初に来てしまいましたが、岡田先生のプロフィールをちゃんと伺っていませんでしたので、ここでご自身の自己紹介などをお願いして良いでしょうか。

はい、改めまして玉川大学工学部の岡田浩之と申します。

私がこれまでずっと続けてきたことは「知能ロボティクス」という、ロボットの知能化、最近の言葉だとAIということになります。その中で特にロボカップに注力をしており、ロボカップ当初から参加をし続けてもう20年以上続いています

ロボカップの最初の頃はAIBOでサッカーの試合をするということをやっていて、10年くらい前からは「アットホーム」と言う家庭内のサービスを競うという競技に参加しています。

画像4

画像5


――岡田先生がロボットに興味を持ち始めたのはいつ頃からですか?

玉川大学に来る前は富士通研究所というところで働いていましたたが、その時はまだロボットには携わっておらず、ソフトウェア寄りのアプローチで人間の発達などについて研究していました。その中で特に赤ちゃんを対象に研究をしていました。

そして大学での教職へ転職してから、ロボットを研究する先生が傍にいたので、その先生と一緒に研究を始めたのがロボットとの関わりの最初です。なので今はその両方、赤ちゃんとロボットの研究を続けています。

とは言ってもロボット、つまりハードウェアそのものはこれまで開発してきておらず、ハードウェアは外部が制作したものを使用し、私たち(研究室)はそのハードウェア・ロボットを動かすためのソフトウェア開発を主に続けています。


――ところで、富士通研究所時代は赤ちゃんを被験者にして研究していたということですか?

当時の所属は基礎研究部門だったので、割と自由に活動できていました。なので、近所の家々にチラシを配って赤ちゃんの被験者を集めてる・・・みたいな地道なこともやっていました

その活動は現在、「玉川大学 赤ちゃんラボ」というものを設立して続けており、ホームページでの募集から被験者が集まるようになっています。とはいえ、コロナ渦で今年(2020年)は全然活動できておりませんが・・・。


――なぜ赤ちゃんを研究しようと思ったのですか?

コンピュータにプログラムを施しても思うように学習をしてくれないのですが、赤ちゃんや子供はなぜか言語や二足歩行の習得をあっという間に学習してしまいます。それを解明したいと思ったことがキッカケです


――研究を進めていく中で、そうした赤ちゃんがすぐ学習する秘密は分かりましたか?

研究をすればするほど「赤ちゃんの学習能力はすごい」ということはよく分かるのですが、なかなか解明しきれないですね。

たとえば物を見て識別・認識することは、コンピュータの世界で言えばコンピュータビジョンという分野になりますが、Googleなどが世界規模でこれについて研究開発に時間を費やしているのですが、一方で赤ちゃんはといえば、たとえば犬とか見たらすぐ追っかけたりするなどして、その過程でいつの間にか犬や他の物を区別できるようになっているわけです。

とにかく赤ちゃんの学習能力は説明できないほど早く習得できてしまうわけで、こういうことを解明してコンピュータに実装できないかとずっと考えているのです。


――岡田先生はいくつかの赤ちゃん向け絵本を監修されていますが、実は我が家の娘も岡田先生が監修された『脳科学からうまれた あなぽこえほん』が大のお気に入りでした。

画像6

このシリーズの最初の絵本ですね。最初ということもあり、かなり力を入れて取り組んだ記憶があります。


――娘にこの絵本を買い与えたら、娘はすぐ使いこなして楽しく遊んでいました。

その絵本の肝は「ボタンがへこんでいる」という点です。

普通に考えると、ボタンは出っ張るほうが押しやすいと考えがちなのですが、猿やチンパンジーは穴があるとそこに指を突っ込む行動をします。なので赤ちゃん向けの絵本でも、ボタンは出っ張るよりはへこんでいる方が押してもらえるのではないか?と考えたわけです。

そこで実際にボタンが出っ張っている本とへこんでいる本の両方を作ってもらって赤ちゃんに触らせて、どちらの本がより多くボタンを押してもらえるかを実験しました。

その結果、ボタンがへこんでいる方がより多く押されたという結果になり、「こっちのほうが支持されるだろう」ということで、ボタンがへこんでいる絵本を出版したわけです。




「IF文を1000行を書けば競技に勝てるかもしれない」

――続いて、岡田先生の研究室のお話を伺えればと思います。先ほどもお聞きしましたが、岡田先生はロボカップの出場には大変注力されているということでしたが。

画像7

私の研究室のメインテーマはずっと変わっていなくて、ズバリ「ロボカップで勝つこと」なんです。もちろん競技なのでルールはありますが、ルール内ならどんな手段を使っても勝てば良い、と。ロボカップで優秀な成績を収めたら、学生には高評価を与えています。

ロボカップに参加していると面白いことが分かってきます。たとえば、研究成果をそのまま競技に持ち込んでも思いのほか成績が上がらない・試合に勝てないことがよくあったりします。プログラムのアルゴリズムも、競技の後に発表する論文ではもっともらしい内容を書くわけですが、実際の競技で持ち込むプログラムはベタにIF文を1000行費やした物だったりします


――スマートなアプローチというよりは、結構地道な実装で競技に臨んでいるんですね。

昔だと先生に怒られるようなプログラム記述でも、最近はコンパイラが非常に高速かつ優秀でしっかり最適化もやってくれるので、人間はそのあたりを気にせずコーディングしても良いと思ったりしています。もちろんそれは、あくまで競技に勝つことが第一義であることが前提の話ではありますが・・・。


――人工知能の場合、プログラム自身がパラメータを自動調整をするように実装するわけですが、一方で初期パラメータ設定は人間がやっていると思うのですが、それを見るたびに「なぜ人間が設定するのか?」という疑問を日頃から感じてはいます。

人工知能のプログラムを書く場合、直感的にセンスが良い人と悪い人で全く異なる成果になる訳ですが、これは最初のパラメータ設定の良し悪し、つまり人間側のセンスによる部分が大きいと思うのです。ここの部分だけはコンピュータによる学習だけでは良い設定は見つけられないと思っています。


――ちなみに人工知能を作る上でセンスを良くするにはどうしたらよいですか?

正直分からないです。でも人工知能に限らず、たとえばゲーム開発などでもセンスが良い・悪いみたいなものがあると思うので、何も人工知能に限った話では無いと思います。

でも真面目な話、そうした超えられない何かがあるからこそ、人工知能は人間の能力を超えられないのだとも思ったりしています。

だからこそ赤ちゃんの研究、つまり人間の方を解明するアプローチをしていくと、そこにたどり着けるのではないかと考えています。


――私もプログラムを書く身としては、自分のセンスの無さに絶望したりすることもある一方で、「IF文を1000行を書けば競技に勝てるかもしれない」という今日出てきた話は、別の意味で勇気づけられるものでもあります。

やはり「勝つ」ことを目指すことは、それはそれですごく大事だと思います。結果もそうですが、その過程も含めて。

なぜかと言うと、何か煮詰まった時でもIF文1000行のようにがむしゃらに積み上げたら何か突破できるかも・・・という可能性が分かっているからです。そこに気づいた学生は、本当に徹夜でプログラムを書いたりしていますね。


――そういう意味で岡田先生から学生を見た時に、プログラミング能力が伸びる学生はどういうタイプだと思っていますか?

私は学生に教える立場ではありますが、実際のところプログラミングは「外部から手伝える」という部分があまりないものだとも思っています。よく「プログラミングを教えてください」と言われるのですが、本当に使えるようになるまで教えることはなかなか難しいです。

当然学生に聞かれたら「こういう方向性があると思うよ」みたいなアドバイスはしますが、「教えてもらう」という考えのままでいるとプログラミングのスキルは伸びないと思います。冷たく聞こえるかもしれませんが実際はそうですし、一方でがむしゃらにやったら突破口を掴めることも事実なのです。



お友達紹介

コモ:それではお友達紹介のお時間になりましたので、お友達をご紹介いただけると。

岡田:「唐揚げ盛り付けロボット」などを手がける株式会社アールティの中川友紀子社長をぜひご紹介させてください。

コモ:ありがとうございます。中川さんに伝言はありますか?

岡田:中川さんには最近会っていないのですが、Sciurus(※アールティさんが開発・販売している研究用人型アームロボット)を使って料理を作れるようにしておくので、ぜひ私の研究室に遊びに来てその料理を食べに来てください・・・と伝えておいてください。

コモ:はい、今日はありがとうございましたー。


みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!

最後までお読みいただきありがとうございます。ぜひTwitterもフォローしてください。