Phybots: 日用品にモビリティを付与するプロトタイピング用ツールキット

'09-12 Toolkit Robot ACM DIS '12

Phybotsは http://phybots.com/ja/ にてオープンソースで公開中です。

概要

ユーザの指示に従って料理や服畳みといった実世界におけるタスクを実行するインタラクティブなロボットアプリケーションが実現しつつある。また、このような高度なアプリケーションの効果的な開発には、プロトタイピングが重要である。しかし、HCI分野で利用されてきた既存のプロトタイピング用ツールキットは、空間内の特定の場所に置かれて使われるアプリケーションを想定している。そのため、プログラマがモビリティを備えたアプリケーションを開発しようとすると、ロボット工学的な困難に直面する。一方で、ロボット工学向けのツールキットは、利用に際し、ある程度の前提知識を必要とするものがほとんどである。

我々は、この学際的な問題を解決するためにツールキットPhybotsを提案した。Phybotsを用いると、HCI研究者やインタラクションデザイナーが、生活空間を動き回れる"Robotic Things"─ロボット的なるもの─をプロトタイピングできる。

Overview of hardware setup for Phybots

APIs for 2D Locomotion

Phybots assumes a simple and inexpensive hardware setup of a camera looking down on the floor and visual markers attached to the top of physical objects. This hardware setup can easily be deployed to everyday spaces such as a working desk, a dining table or in a kitchen or living room. Given the hardware setup, Phybots provides APIs for two-dimensional localization and locomotion of floor-based robotic things. These APIs are similar to those for graphical applications in which object positions are defined by screen coordinates, and support moving to a goal, pushing an object toward a goal, tracing a path, and other custom behavior by specifying a vector field.

Centralized and Extensible Architecture

Phybots APIs are built on top of a centralized and extensible software architecture that runs on one personal computer and manages all physical objects of interest including cameras, robotic things, and entities with visual markers. The programmer has direct access to these objects as instances of the Camera, Robot and Entity interfaces, respectively. Time-consuming tasks including locomotion APIs are represented by Task interface. The toolkit can be easily extended on top of these software stacks to support other types of sensors, roobts, and tasks. In addition, a Workflow class represents a directed graph consisting of a set of Robot and Task instances, and enables higher-level task management such as handling multiple tasks by one robot in serial or by two robots in parallel.

Runtime Debug Tool

Phybots provides a runtime debug tool that supports a test phase, beyond the programming phase, as an essential part of the prototyping process. In the robot application test phase, when the robot fails to accomplish its task, the user usually has to order the same task to be performed again. Because it is too costly to restart a test run for each error, the programmer often wants to fix the error right away without restarting. To support this workflow, a graphical runtime debug tool enables API parameter reconfiguration, restart, pause, or resume of the interaction at run-time. For example, when the robotic thing fails to move to a desired destination, the programmer can change the threshold of the marker detection algorithm by dragging a slider and then give the robot another try.

Runtime debug tools

ユーザスタディの作例(抜粋)

Robotic Things

ツールキットの比較

目的:フィジカル
コンピューティング
Phybotsロボット
ターゲット ユーザー:HCI研究者 &
インタラクション デザイナー
ロボット工学の研究者
重視すること:プロトタイピング信頼性
ソフトウェアAPI:低レベルで拡張性に乏しい高レベルで拡張性に富む
ハードウェアの大きさ & 価格:小さい & 安い (Phidget Kit $200,
Ikimo Robot $160)
大きい & 高価 ($700-)

未来ビジョン

本研究には以下の原稿とは別に未来ビジョン(裏)が存在する。詳細は発表スライド後半に書いてあり、これが翌年のSharedoに繋がっている。

我々はロボットが何であるかを知らない。自分たちで作った言葉であるにも拘らず、言葉が独り歩きし、各々が勝手なイメージを持っている。日本においては、とくに大型で人型の印象が強いようである。しかしながら、既存のロボット研究において一般的に用いられてきた大型のロボットは、ロバストに動作させるためにハードウェアおよび制御用ソフトウェアに高度な作りこみが求められ、かつ高価なため、そもそも多くのソフトウェアプログラマが満足にアプリケーション開発できるだけの環境を用意するのが困難である。また、空間知能化などのキーワードを考えたとき、大型ロボットは動作空間を用意すること自体に手間がかかる。

一方、小型のロボットであればArduino等のPhysical Computing用ツールキットを利用して比較的安価に自作することが容易であり、さまざまな種類のロボットを試作できることが見込まれる。小型であれば机上など多くの場所で動作させることができるだろう。アプリケーションが確立すれば、小型ロボットなら大量生産もしやすく一層安価になることが期待できる。そもそも人間の生活環境における小型ロボットの存在は既存の家電製品との境界が曖昧であり、とくに家電製品をネットワーク越しに操作できるようになったとき境界はほぼ消失すると考えている。このように我々は、ネットワーク家電を含む小型ロボットが複数台・複数種人間の生活環境に溶け込んでいる未来ビジョンを念頭においてツールキットを開発してきたため、本文中のサンプルアプリケーションでも多くの小型ロボットや遠隔操作できるようハックした家電製品を登場させた。

我々が描く未来は、多くの人々、最初は研究者や科学・技術に強い興味のあるプログラマなどに、まずはロボットに触れてもらうところから始まると考えている。触れるということは、そのプログラムやアプリケーションを開発することであり、それによってロボットで何が出来るのか、どうしたら良くなるのかを、広く議論して行きたいということである。そこで我々は、手軽にプロトタイピングを行える共通のスタートラインとしてのツールキットが必要であると考え、Matereal(旧名、現Phybots)の研究開発を行ってきた。現時点ではJava用ライブラリとして提供しているが、Processingや他の言語の開発環境でも利用できるようにして、さらに幅広い層のプログラマにとって魅力的な環境構築を目指していきたい。

発表文献