——PbDについてもう少し詳しく教えてください。基本的にこれはどういった意味を持っているのでしょうか?
基本的に、ユーザーが作業のお手本を示して見せると、ロボットがその通りの動作を再現するためのプログラムを見つけ出すわけです。このようなお手本を示すには、さまざまな方法が考えられます。ただ現在のところ、最も実用的な方法は、手順を追いながらロボットを物理的に、手取り足取り動かしてやるというものになります。
しかし、それでも問題はあります。ユーザーが作業手順を示して見せる間、ロボットはアームを自由に動かせるようにしておく必要がありますし、そういった操作だけで常に確実に指示が伝わるわけではありません。それぞれの手順の間には、ある種の指示が必要となるのです。例えば、ロボットのアームをある方向に、何かに接触するまで動かした場合でも、ロボットは絶対位置にアームを移動させようとしたのか、何かに接触するまでアームを動かそうとしたのかが分からないのです。
——Fetchロボットを用いた研究の内容について教えてください。
Fetchは自走式のマジックハンドです。われわれは、視覚言語を用いてこのロボットをプログラムできる、抽象レベルの高い大規模システムを構築しました。ユーザーはプログラムコードをタイプ入力するのではなく、ブロックをドラッグ&ドロップし、それらを特定の方法で接続し、プログラムのロジックを定義していくのです。各種のコンポーネントはそれぞれ、頭部を動かす動作や、何らかの基本的な移動動作といったものに対応付けられています。
ロボットアームについては、ブロック単位での動作が割り当てられていません。移動に関してはマップ上のXY座標に行けという指示が可能です。しかしアームについては、単一の「持ち上げろ」というコマンドでは無理があるのです。つまり、ものを持ち上げるという動作は、ありとあらゆる物体を確実に持ち上げるためのプログラム方法を見つけ出そうと研究者らが取り組んでいる、いまだに研究途上の動作なのです。われわれがやろうとしているのは、ロボットアームの動作を人間が示せるようにするとともに、その動作を定義することです。このため「瓶を持ち上げる」という動作は、より抽象度の高いブロックとなるわけです。
——つまり、極めて洗練されたこれらのマシンと、その真価の引き出し方を知らない可能性があるエンドユーザーの間には溝が存在しているということですね。その溝を解決するうえで、どういった機会が生まれると考えられるのでしょうか?
その機会は幅広いものとなるでしょう。まず、ロボティクスを専攻していないソフトウェアエンジニアに関連する機会が考えられます。こういった人たちは、本格的なソフトウェアを開発できます。彼らが複雑な作業をこなすロボットを配備できるようにするには、どのようなAPIを開発すればよいのでしょうか?またこうした機会の対極には、プログラミング経験を有している、高校を卒業したばかりの新世代の若者に関連する機会が考えられます。ロボティクス企業は近いうちに、上述した高水準APIを採用したロボットを配備するために、彼らを雇い入れるようになるはずです。そして、コンピュータ科学の経験を有した人々はおそらく、特定システム上で1週間程度の訓練を受けることになります。