JP2020000279A - 仮想キャラクタを想定する自律行動型ロボット - Google Patents

仮想キャラクタを想定する自律行動型ロボット Download PDF

Info

Publication number
JP2020000279A
JP2020000279A JP2018119717A JP2018119717A JP2020000279A JP 2020000279 A JP2020000279 A JP 2020000279A JP 2018119717 A JP2018119717 A JP 2018119717A JP 2018119717 A JP2018119717 A JP 2018119717A JP 2020000279 A JP2020000279 A JP 2020000279A
Authority
JP
Japan
Prior art keywords
robot
fairy
motion
virtual character
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018119717A
Other languages
English (en)
Other versions
JP7298860B2 (ja
Inventor
要 林
Kaname Hayashi
要 林
淳哉 林
Atsuya Hayashi
淳哉 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Groove X Inc
Original Assignee
Groove X Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Groove X Inc filed Critical Groove X Inc
Priority to JP2018119717A priority Critical patent/JP7298860B2/ja
Priority to US16/443,762 priority patent/US11207774B2/en
Publication of JP2020000279A publication Critical patent/JP2020000279A/ja
Application granted granted Critical
Publication of JP7298860B2 publication Critical patent/JP7298860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0016Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the operator's input device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0044Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • Game Theory and Decision Science (AREA)
  • Evolutionary Computation (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Toys (AREA)
  • Manipulator (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】自律的に行動するロボットというコンセプトを尊重しつつ、緩やかな他律性を導入する。【解決手段】ロボット100は、現実空間に関する環境情報を取得する現実入力系170と、妖精によって転送される行動命令を取得する仮想入力系176と、環境情報に基づいて自律的にロボットの第1モーションを決定し、かつ行動命令に従って他律的にロボットの第2モーションを決定する動作制御部150と、第1モーションおよび第2モーションを実行する駆動機構120と、を備える。【選択図】図10

Description

本発明は、自律的に行動を選択するロボット、に関する。
人間は、癒やしを求めてペットを飼う。その一方、ペットの世話をする時間を十分に確保できない、ペットを飼える住環境にない、アレルギーがある、死別がつらい、といったさまざまな理由により、ペットをあきらめている人は多い。もし、ペットの役割が務まるロボットがあれば、ペットを飼えない人にもペットが与えてくれるような癒やしを与えられるかもしれない(特許文献1、2参照)。
特開2000−323219号公報 国際公開第2017/169826号
対人ロボットの技術分野では、ロボットに仮想的な人格を設定し、その人格がロボットに反映されたように振る舞わせることがある。このようにすれば、人間はロボットに感情を移入しやすくなり、共感が得られる。ロボットの人格は、たとえば自律的な処理を行うプログラムによって実現されている。
自律性を有するロボットは、原則として自らの判断に基づいて行動するが、人間がこのようなロボットを意図的に動かしたいと思うこともある。
しかし、人間がロボットを直接操作できてしまうと、本来自らの判断で行動していたはずのロボットの特性と相容れないことになる。
したがって、ロボットの自律性を担保しつつ、人間の意図に沿ってロボットが行動するようにコントロールすることが求められる。人間がロボットを操作する場合に、人間の欲求が直にロボットに向けられれば、自律行動型ロボットの世界観が崩されてしまう恐れがある。
本発明は上記課題認識に基づいて完成された発明であり、その主たる目的は、自律的に行動するロボットというコンセプトを尊重しつつ、緩やかな他律性を導入するための技術、を提供することにある。
本発明のある態様における自律行動型ロボットは、現実空間に関する環境情報を取得する現実入力系と、仮想キャラクタによって転送される行動命令を取得する仮想入力系と、環境情報に基づいて自律的にロボットの第1モーションを決定し、かつ行動命令に従って他律的にロボットの第2モーションを決定する動作制御部と、第1モーションおよび第2モーションを実行する駆動機構と、を備える。
本発明のある態様におけるロボット制御システムは、自律行動型ロボットとユーザ端末と管理装置とを含む。自律行動型ロボットは、現実空間に関する環境情報を入力する現実入力系と、仮想キャラクタによって転送される行動命令を入力する仮想入力系と、環境情報に基づいて自律的にロボットの第1モーションを決定し、かつ行動命令に従って他律的にロボットの第2モーションを決定する動作制御部と、第1モーションおよび第2モーションを実行する駆動機構と、を備える。ユーザ端末は、仮想キャラクタにロボットへ転送させる行動命令を出力する命令出力部を備える。管理装置は、仮想空間における仮想キャラクタを制御する仮想キャラクタ処理部を備え、仮想キャラクタ処理部は、ユーザ端末から出力された行動命令を自律行動型ロボットへ転送する。
本発明のある態様におけるユーザ端末は、撮影画像を取得するカメラと、仮想空間における仮想キャラクタの位置に応じて、仮想キャラクタを撮影画像に重ねた拡張現実画面を表示する表示処理部と、仮想キャラクタにロボットへ転送させる行動命令を出力する命令出力部と、を備える。
本発明のある態様における管理装置は、仮想空間における仮想キャラクタを制御する仮想キャラクタ処理部を備え、仮想キャラクタ処理部は、仮想キャラクタに自律行動型ロボットへ転送させる行動命令をユーザ端末から受け付けた場合に、当該行動命令を当該自律行動型ロボットへ転送する。
本発明によれば、自律的に行動するロボットというコンセプトを尊重しつつ、緩やかな他律性を導入することができる。
仮想空間を想定するロボットの概念を説明するための概念図である。 図2(a)は、ロボットの正面外観図である。図2(b)は、ロボットの側面外観図である。 ロボットの構造を概略的に表す断面図である。 基本構成におけるロボットのハードウェア構成図である。 ロボットシステムの機能ブロック図である。 ロボットが妖精を追う様子を示す図である。 ロボットが妖精の踊りを模倣する様子を示す図である。 サーバ及びスマートフォンにおける妖精関連の機能ブロック図である。 本実施形態におけるロボットシステムの機能ブロック図である。 現実入力系、仮想I/F系およびロボット制御系の詳細を示す図である。 イベントテーブルの例を示す図である。 仮想入力系の処理を示すフローチャートである。 妖精が仮想空間に投入される処理過程を示すシーケンス図である。 妖精データの一部を示す構造図である。 妖精が移動する処理過程を示すシーケンス図である。 動作制御処理を示すフローチャートである。 妖精が踊る処理過程を示すシーケンス図である。 図16の動作制御処理の続きを示すフローチャートである。 ロボット行動命令が転送される処理過程を示すシーケンス図である。 図18の動作制御処理の続きを示すフローチャートである。 図20の動作制御処理の続きを示すフローチャートである。 スマートフォンにおけるデータ移動処理に関するフローチャートである。 サーバにおけるデータ移動処理に関するシーケンス図である。 ロボットにおけるデータ移動処理に関するシーケンス図である。 図24の続きを示すシーケンス図である。
自律的に行動するロボットを人間が操作しようとする状況を考える。たとえば、ロボットが自律的に行動する以外に、ユーザがロボットに働きかけてユーザの方に近づかせたいと思うことがあるかも知れない。同じく、ユーザの命令によってロボットに写真撮影を行わせたいことがあるかも知れない。また、ロボットと連動するアプリケーションの開発者は、アプリケーションからの命令によってロボットの行動を制御したいと考えるかも知れない。アプリケーションの例としては、たとえばロボットが撮影した写真をSNS(Social Networking Service)サーバに投稿する機能を有するものが考えられる。
しかし、自律行動型ロボットを他の装置と連携させる場合にも、ロボットのコンセプトである自律性を過度に阻害してはならない。そこで、発明者は、自律的に行動するロボットというコンセプトを尊重しつつ、柔軟な他律性を導入するための技術を提案する。
そのため、本実施形態では、ユーザとロボットを仲介する仮想キャラクタを導入する。この例における仮想キャラクタは、動物、昆虫、人、植物などの自然物や、ロボット、車、飛行機、家具などの人工物をモチーフとする視覚的に表現されたものである。仮想キャラクタには、外見的な特徴と、性格や特技などの内面的な特徴が設定され、それらの特徴に応じて仮想キャラクタとしての振る舞いが決まる。本実施形態では、自然物の精霊として伝説や物語で登場する妖精を仮想キャラクタとして用いる。一般的に、妖精は羽を持つ小さい人のような外観をしており、空中を舞い、可愛くて、良い存在として表現される。本実施形態の妖精も、ロボットよりも小さく、羽を有する人のような外観をしており、空中を自由に舞い、ロボットにとって大好きな存在として設定される。妖精は、ロボットに好かれており、かつ人間には従順であることを前提とする。
妖精は人間に対して従順なので、ユーザが妖精に指示すれば、妖精は指示された通りに動く。ロボットは妖精が好きなので、妖精が動けば、ロボットは妖精についていこうとする。ロボットは、自律的に行動するので常に妖精についていくとは限らないが、好きな妖精には高確率でついていく。このように、ユーザは妖精という仲介者を介して、ロボットを不完全ではあるが緩やかにコントロールできる。こうしたコントロールは、親密度の高い存在に近づくという本能的な行動をロボットに組み込み、ロボットが人間に対して抱いている親密度よりも、妖精に抱いている親密度を高く設定することによって実現される。これにより、ロボットの自律性とユーザの支配欲を、自律行動型ロボットの世界観を崩すこと無く両立させることができる。
具体的には、ロボットと人間が実在する現実空間とは別に、ロボットが認知する仮想的な空間を設定する。ロボットは現実空間に存在し、仮想空間も認識できる。妖精は仮想空間に存在し、現実空間も認識できる。仮想空間は、現実空間へ投影可能である。仮想空間における1つの位置は、現実空間における1つの位置に対応しており、相互に変換することができる。単純な例では、座標系の変換によって仮想空間と現実空間の対応付けが成立する。つまり、ロボットは、現実空間に仮想空間を重ねて分け隔たりなく認識することで、現実空間にあたかも妖精が存在するように振る舞うことができる。
図1は、仮想空間を想定するロボット100の概念を説明するための概念図である。本実施形態では、仮想空間に仮想キャラクタがいるものと想定する。ロボット100は、自ら計測したデータに基づくイベントを契機として行動する場合の他に、仮想キャラクタから得られる通知や命令などに基づくイベントを契機として行動することがある。上述したとおり、妖精は仮想キャラクタの例であるが、仮想キャラクタは妖精以外のキャラクタであってもよい。ユーザはロボット100を目視できるが、妖精を目視できない。但し、ユーザは、スマートフォン500を用いれば、AR(Augmented Reality:拡張現実)表示によって妖精を確認できる。ロボット100は、妖精を認知できるという想定に従って動作する。仮想キャラクタは、サーバ200によって管理される。
また、ユーザは、直接ロボット100を動かすのではなく、妖精を介してロボット100を間接的に動かすものとする。以下、その意義について述べる。
妖精は、物理的な存在ではないがロボットと人間のコミュニケーションの仲介者として働く。人間がその妖精へ命令を発すれば、妖精はその命令をロボット100に伝達する。そして、好意を持っている妖精に頼まれれば、ロボット100はそれを受け入れて行動する。
つまり、ロボット100は、人間に頼まれて動くのではなく、妖精の勧めを聞き入れた結果として行動する。ロボット100の行動は人間が望んだものではあるが、直接的に人間の命令に従ったわけではない。このように、妖精から受けた命令であるからこそ従っていることにすれば、人間がロボット100を支配できているという印象が生まれにくくなる。「妖精のおかげでロボット100を制御できた」、「妖精が仲介してくれないとロボット100に行動を命令できない」という感覚が、「このロボット100は人間に単純に従うものではない」という印象を生じさせ、ロボット100の自律性に関する認識が維持される。
もし、ユーザ端末から直接的にロボット100に行動を命令できるとしたら、そのようなロボット100は、リモート操作可能な普通の機械ということになり、人格的な側面が失われる。また、別の方法として、ユーザ端末から行動を命令されたロボット100が、人間からの直接的な命令に気まぐれに従うようにすれば、一面でロボット100の主体性を演出できるかもしれない。しかし、このような気まぐれなロボット100は、単に反応性が悪い機械に過ぎないと捉えられるかも知れない。
本実施形態のように人間が妖精を介してロボット100に命令する方式であれば、ロボット100が結果的に命令に従ったとしても、妖精との関係性に基づくロボット100自身の判断が介在しているという点において、ロボット100の主体性が守られるようになる。したがって、ロボット100に関して服従的な印象は生じない。
本実施形態の場合、妖精という仲介者が居なければロボット100にコンタクトできないことに関して、ユーザは「もどかしさ」や「迂遠さ」を感じるかも知れない。しかし、このような感じ方は、むしろ、独り立ちしているロボット100であるという本来のコンセプトに合致していると言える。
ロボット100が命令に応じたとしても、それは人間に対する服従の表れではなく、ロボット100が仲介した妖精を高く信頼しているからである。上述のとおり、人間による支配の印象を排除すればロボット100の人格(主体性)が尊重され、人間はロボット100に共感しやすい。
続いて、動作の概要について説明する。最初に、ユーザはスマートフォン500を操作して妖精を仮想空間に投入する。仮想空間に投入された妖精は、肉眼では視認できないが、スマートフォン500におけるAR表示によって視認できる。つまり、仮想空間から現実空間に投影された妖精を、背景画像に重ねて表示するユーザインタフェースを実現する。尚、投入される妖精は、複数でもよい。また、複数のスマートフォン500で同時にAR表示により視認できてよい。
妖精の投入後、ユーザは、スマートフォン500を操作して妖精に種々の指示を行うことができる。ここでは、ロボット100への行動命令(以下、ロボット行動命令とよぶ)を転送させる指示を行うものとする。
妖精とロボット100の交信において、妖精からロボット100へ伝えられるデータは、主に通知や命令である。これらのデータは、比較的簡単な処理で解析できる。
一方、ロボット100が現実空間から得るデータは、主に内部センサで計測されるデータである。計測データは、温度、明るさや音量などの数値データの他、画像や音声などのデータである。現実空間から得られるデータは、比較的高度な認識処理の対象となる。認識結果は、ロボット100が自律的に行動する契機となることがある。
また、ロボット100と妖精は、互いに主体性を認めるものと想定する。彼らは独自の判断を行うとともに他者を尊重する。両者は互いに独立しているものの、ロボット100が、妖精を意識して行動することがある。たとえばロボット100が、妖精の仮想位置が投影される現実位置に近づくこともある。逆に妖精が、ロボット100を意識して行動することがある。たとえば妖精が、ロボット100の近くに自らの仮想位置が投影されるように移動することが考えられる。
ロボット100と妖精は、互いにメッセージを伝えてもよい。つまり、ロボット100から妖精へ話しかけることと、妖精からロボット100へ話しかけることが考えられる。また、妖精は、ロボット100とユーザを仲介してメッセージを伝えてもよい。妖精とロボットとがコミュニケーション行動を行うとき、ロボットはコミュニケーション行動に応じて身体を駆動し、適切なモーションを実行する。このとき、ユーザはスマートフォン500を介してロボット100を見ることでモーションの意味を理解できるが、ロボット100を直接見てもモーションの意味を理解できない。
ロボット100は、感情を示すパラメータを備える。機嫌が良いときには、ロボット100は妖精からの通知や命令によく応じ、反対に機嫌が悪いときには、通知や命令にはあまり応じない。この例では、ロボット100の感情状態を示す感情パラメータを用いるが、詳しくは後述する。以上のように、本実施形態では、仮想空間と現実空間を融合したロボット100の世界観を提供する。
以下、ロボット100の基本構成について図2から図5に関連して説明したあと、本実施形態における妖精の制御と応用に関する実装方法を説明する。
[基本構成]
図2(a)は、ロボット100の正面外観図である。図2(b)は、ロボット100の側面外観図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。ロボット100は、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよぶ。
ロボット100のボディ104は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂、繊維などやわらかく弾力性のある素材により形成された外皮を含む。ロボット100に服を着せてもよい。ロボット100の総重量は5〜15キログラム程度、身長は0.5〜1.2メートル程度である。適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット100を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。
ロボット100は、一対の前輪102(左輪102a,右輪102b)と、一つの後輪103を含む。前輪102が駆動輪であり、後輪103が従動輪である。前輪102は、操舵機構を有しないが、回転速度や回転方向を個別に制御可能とされている。後輪103は、キャスターであり、ロボット100を前後左右へ移動させるために回転自在となっている。後輪103はオムニホイールであってもよい。
前輪102および後輪103は、駆動機構(回動機構、リンク機構)によりボディ104に完全収納できる。走行時においても各車輪の大部分はボディ104に隠れているが、各車輪がボディ104に完全収納されるとロボット100は移動不可能な状態となる。すなわち、車輪の収納動作にともなってボディ104が降下し、床面Fに着座する。この着座状態においては、ボディ104の底部に形成された平坦状の着座面108(接地底面)が床面Fに当接する。
ロボット100は、2つの手106を有する。手106には、モノを把持する機能はない。手106は上げる、振る、振動するなど簡単な動作が可能である。2つの手106も個別制御可能である。
目110は、液晶素子または有機EL素子による画像表示が可能である。ロボット100は、音源方向を特定可能なマイクロフォンアレイや超音波センサなどさまざまなセンサを搭載する。また、スピーカーを内蔵し、簡単な音声を発することもできる。
ロボット100の頭部にはツノ112が取り付けられる。上述のようにロボット100は軽量であるため、ユーザはツノ112をつかむことでロボット100を持ち上げることも可能である。ツノ112には全天球カメラが取り付けられ、ロボット100の上部全域を一度に撮像可能である。
図3は、ロボット100の構造を概略的に表す断面図である。
図3に示すように、ロボット100のボディ104は、ベースフレーム308、本体フレーム310、一対の樹脂製のホイールカバー312および外皮314を含む。ベースフレーム308は、金属からなり、ボディ104の軸芯を構成するとともに内部機構を支持する。ベースフレーム308は、アッパープレート332とロアプレート334とを複数のサイドプレート336により上下に連結して構成される。複数のサイドプレート336間には通気が可能となるよう、十分な間隔が設けられる。ベースフレーム308の内方には、バッテリー118、制御回路342および各種アクチュエータが収容されている。
本体フレーム310は、樹脂材からなり、頭部フレーム316および胴部フレーム318を含む。頭部フレーム316は、中空半球状をなし、ロボット100の頭部骨格を形成する。胴部フレーム318は、段付筒形状をなし、ロボット100の胴部骨格を形成する。胴部フレーム318は、ベースフレーム308と一体に固定される。頭部フレーム316は、胴部フレーム318の上端部に相対変位可能に組み付けられる。
頭部フレーム316には、ヨー軸320、ピッチ軸322およびロール軸324の3軸と、各軸を回転駆動するためのアクチュエータ326が設けられる。アクチュエータ326は、各軸を個別に駆動するための複数のサーボモータを含む。首振り動作のためにヨー軸320が駆動され、頷き動作のためにピッチ軸322が駆動され、首を傾げる動作のためにロール軸324が駆動される。
頭部フレーム316の上部には、ヨー軸320を支持するプレート325が固定されている。プレート325には、上下間の通気を確保するための複数の通気孔327が形成される。
頭部フレーム316およびその内部機構を下方から支持するように、金属製のベースプレート328が設けられる。ベースプレート328は、クロスリンク機構329(パンタグラフ機構)を介してプレート325と連結される一方、ジョイント330を介してアッパープレート332(ベースフレーム308)と連結される。
胴部フレーム318は、ベースフレーム308と車輪駆動機構370を収容する。車輪駆動機構370は、回動軸378およびアクチュエータ379を含む。胴部フレーム318の下半部は、ホイールカバー312との間に前輪102の収納スペースSを形成するために小幅とされる。
外皮314は、ウレタンゴムからなり、本体フレーム310およびホイールカバー312を外側から覆う。手106は、外皮314と一体成形される。外皮314の上端部には、外気を導入するための開口部390が設けられる。
図4は、ロボット100のハードウェア構成図である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。プロセッサ122と記憶装置124は、制御回路342に含まれる。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン二次電池であり、ロボット100の動力源である。
内部センサ128は、ロボット100が内蔵する各種センサの集合体である。具体的には、カメラ(全天球カメラ)、マイクロフォンアレイ、測距センサ(赤外線センサ)、サーモセンサ、タッチセンサ、加速度センサ、ニオイセンサなどである。タッチセンサは、外皮314と本体フレーム310の間に設置され、ユーザのタッチを検出する。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。
通信機126は、各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置124は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ122は、コンピュータプログラムの実行手段である。駆動機構120は、複数のアクチュエータおよび上述した車輪駆動機構370を含む。このほかには、表示器やスピーカーなども搭載される。
駆動機構120は、主として、車輪(前輪102)と頭部(頭部フレーム316)を制御する。駆動機構120は、ロボット100の移動方向や移動速度を変化させるほか、車輪(前輪102および後輪103)を昇降させることもできる。車輪が上昇すると、車輪はボディ104に完全に収納され、ロボット100は着座面108にて床面Fに当接し、着座状態となる。また、駆動機構120は、ワイヤ134を介して、手106を制御する。
図5は、ロボットシステム300の機能ブロック図である。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
家屋内にはあらかじめ複数の外部センサ114が設置される。サーバ200には、外部センサ114の位置座標が登録される。ロボット100の内部センサ128および複数の外部センサ114から得られる情報に基づいて、サーバ200がロボット100の基本行動を決定する。外部センサ114はロボット100の感覚器を補強するためのものであり、サーバ200はロボット100の頭脳を補強するためのものである。ロボット100の通信機126が外部センサ114と定期的に通信し、サーバ200は外部センサ114によりロボット100の位置を特定する(特許文献2も参照)。
(サーバ200)
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。
通信部204は、外部センサ114およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されるデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
データ格納部206は、モーション格納部232と個人データ格納部218を含む。
ロボット100は、複数の動作パターン(モーション)を有する。手106を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義される。
モーション格納部232は、モーションの制御内容を定義する「モーションファイル」を格納する。各モーションは、モーションIDにより識別される。モーションファイルは、ロボット100のモーション格納部160にもダウンロードされる。どのモーションを実行するかは、サーバ200で決定されることもあるし、ロボット100で決定されることもある。
ロボット100のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。たとえば、ロボット100がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような4つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット100に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル(アクチュエータ制御情報)にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。
以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御に関わる設定のことを「行動特性」と総称する。ロボット100の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル等により定義される。
モーション格納部232は、モーションファイルのほか、各種のイベントが発生したときに実行すべきモーションを定義するモーション選択テーブルを格納する。モーション選択テーブルにおいては、イベントに対して1以上のモーションとその選択確率が対応づけられる。
個人データ格納部218は、ユーザの情報を格納する。具体的には、ユーザに対する親密度とユーザの身体的特徴・行動的特徴を示すマスタ情報を格納する。年齢や性別などの他の属性情報を格納してもよい。
ロボット100は、ユーザごとに親密度という内部パラメータを有する。ロボット100が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット100に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
データ処理部202は、位置管理部208、認識部212、動作制御部222、親密度管理部220および状態管理部244を含む。
位置管理部208は、ロボット100の位置座標を特定する。状態管理部244は、充電率や内部温度、プロセッサ122の処理負荷などの各種物理状態など各種内部パラメータを管理する。また、状態管理部244は、ロボット100の感情(寂しさ、好奇心、承認欲求など)を示すさまざまな感情パラメータを管理する。これらの感情パラメータは常に揺らいでいる。感情パラメータに応じてロボット100の移動目標地点が変化する。たとえば、寂しさが高まっているときには、ロボット100はユーザのいるところを移動目標地点として設定する。
時間経過によって感情パラメータが変化する。また、後述の応対行為によっても各種感情パラメータは変化する。たとえば、オーナーから「抱っこ」をされると寂しさを示す感情パラメータは低下し、長時間にわたってオーナーを視認しないときには寂しさを示す感情パラメータは少しずつ増加する。
認識部212は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰(安全地帯)の認識など多様な認識が含まれる。ロボット100の認識部156は、内部センサ128により各種の環境情報を取得し、これを一次処理した上でサーバ200の認識部212に転送する。
具体的には、ロボット100の認識部156は、画像から移動物体、特に、人物や動物に対応する画像領域を抽出し、抽出した画像領域から移動物体の身体的特徴や行動的特徴を示す特徴量の集合として「特徴ベクトル」を抽出する。特徴ベクトル成分(特徴量)は、各種身体的・行動的特徴を定量化した数値である。たとえば、人間の目の横幅は0〜1の範囲で数値化され、1つの特徴ベクトル成分を形成する。人物の撮像画像から特徴ベクトルを抽出する手法については、既知の顔認識技術の応用である。ロボット100は、特徴ベクトルをサーバ200に送信する。
サーバ200の認識部212は、ロボット100の内蔵カメラによる撮像画像から抽出された特徴ベクトルと、個人データ格納部218にあらかじめ登録されているユーザ(クラスタ)の特徴ベクトルと比較することにより、撮像されたユーザがどの人物に該当するかを判定する(ユーザ識別処理)。また、認識部212は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。認識部212は、人物以外の移動物体、たとえば、ペットである猫や犬についてもユーザ識別処理を行う。
認識部212は、ロボット100になされたさまざまな応対行為を認識し、快・不快行為に分類する。認識部212は、また、ロボット100の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。
快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
サーバ200の動作制御部222は、ロボット100の動作制御部150と協働して、ロボット100のモーションを決定する。サーバ200の動作制御部222は、ロボット100の移動目標地点とそのための移動ルートを作成する。動作制御部222は、複数の移動ルートを作成し、その上で、いずれかの移動ルートを選択してもよい。
動作制御部222は、モーション格納部232の複数のモーションからロボット100のモーションを選択する。各モーションには状況ごとに選択確率が対応づけられている。たとえば、オーナーから快行為がなされたときには、モーションAを20%の確率で実行する、気温が30度以上となったとき、モーションBを5%の確率で実行する、といった選択方法が定義される。
親密度管理部220は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部218において個人データの一部として登録される。快行為を検出したとき、親密度管理部220はそのオーナーに対する親密度をアップさせる。不快行為を検出したときには親密度はダウンする。また、長期間視認していないオーナーの親密度は徐々に低下する。
(ロボット100)
ロボット100は、通信部142、データ処理部136、データ格納部148、内部センサ128および駆動機構120を含む。
通信部142は、通信機126(図4参照)に該当し、外部センサ114、サーバ200および他のロボット100との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(図4参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
データ格納部148は、ロボット100の各種モーションを定義するモーション格納部160を含む。
ロボット100のモーション格納部160には、サーバ200のモーション格納部232から各種モーションファイルがダウンロードされる。モーションは、モーションIDによって識別される。前輪102を収容して着座する、手106を持ち上げる、2つの前輪102を逆回転させることで、あるいは、片方の前輪102だけを回転させることでロボット100を回転行動させる、前輪102を収納した状態で前輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
データ格納部148には、個人データ格納部218からも各種データがダウンロードされてもよい。
データ処理部136は、認識部156および動作制御部150を含む。
ロボット100の動作制御部150は、サーバ200の動作制御部222と協働してロボット100のモーションを決める。一部のモーションについてはサーバ200で決定し、他のモーションについてはロボット100で決定してもよい。また、ロボット100がモーションを決定するが、ロボット100の処理負荷が高いときにはサーバ200がモーションを決定するとしてもよい。サーバ200においてベースとなるモーションを決定し、ロボット100において追加のモーションを決定してもよい。モーションの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。
ロボット100の動作制御部150は選択したモーションを駆動機構120に実行指示する。駆動機構120は、モーションファイルにしたがって、各アクチュエータを制御する。
動作制御部150は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手106をもちあげるモーションを実行することもできるし、「抱っこ」に飽きたときには左右の前輪102を収容したまま逆回転と停止を交互に繰り返すことで抱っこをいやがるモーションを表現することもできる。駆動機構120は、動作制御部150の指示にしたがって前輪102や手106、首(頭部フレーム316)を駆動することで、ロボット100にさまざまなモーションを表現させる。
ロボット100の認識部156は、内部センサ128から得られた外部情報を解釈する。認識部156は、視覚的な認識(視覚部)、匂いの認識(嗅覚部)、音の認識(聴覚部)、触覚的な認識(触覚部)が可能である。
認識部156は、移動物体の撮像画像から特徴ベクトルを抽出する。上述したように、特徴ベクトルは、移動物体の身体的特徴と行動的特徴を示すパラメータ(特徴量)の集合である。移動物体を検出したときには、ニオイセンサや内蔵の集音マイク、温度センサ等からも身体的特徴や行動的特徴が抽出される。これらの特徴も定量化され、特徴ベクトル成分となる。認識部156は、特許文献2等に記載の既知の技術に基づいて、特徴ベクトルからユーザを特定する。
検出・分析・判定を含む一連の認識処理のうち、ロボット100の認識部156は認識に必要な情報の取捨選択や抽出を行い、判定等の解釈処理はサーバ200の認識部212により実行される。認識処理は、サーバ200の認識部212だけで行ってもよいし、ロボット100の認識部156だけで行ってもよいし、上述のように双方が役割分担をしながら上記認識処理を実行してもよい。
ロボット100に対する強い衝撃が与えられたとき、認識部156はタッチセンサおよび加速度センサによりこれを認識し、サーバ200の認識部212は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ112を掴んでロボット100を持ち上げるときにも、乱暴行為と認識してもよい。ロボット100に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ200の認識部212は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識し、接触認識した状態で上方への加速度を検知したときには「抱っこ」がなされたと認識する。ユーザがボディ104を持ち上げるときの物理的接触をセンシングしてもよいし、前輪102にかかる荷重が低下することにより抱っこを認識してもよい。
まとめると、ロボット100は内部センサ128によりユーザの行為を物理的情報として取得し、サーバ200の認識部212は快・不快を判定する。また、サーバ200の認識部212は特徴ベクトルに基づくユーザ識別処理を実行する。
サーバ200の認識部212は、ロボット100に対するユーザの各種応対を認識する。各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット100の行動選択に影響する。
認識部156により認識された応対行為に応じて、サーバ200の親密度管理部220はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
以上の基本構成を前提として、次に、本実施形態におけるロボット100、サーバ200及びスマートフォン500の実装について、特に、本実装の特徴と目的および基本構成との相違点を中心として説明する。
この例で、ロボット100は妖精を追う動きをすることがある。図6は、ロボット100が妖精を追う様子を時間経過毎に示す図である。図6(a)は、まだ妖精が仮想空間に投入されていない状況を示している。図6(b)は、妖精が仮想空間に投入された状況を示している。人間には妖精が見えないが、ロボット100は妖精を認識している。ロボット100は、妖精の仮想位置が投影される現実位置を把握している。図6(c)は、妖精が移動してロボット100から離れた状況を示している。図6(d)は、移動した妖精を追う様子を示している。このように、ロボット100は好きな妖精に付いて行こうとするので、ユーザは妖精を移動させることによって、目的の場所へロボット100を誘導することができる。つまり、妖精の存在が、ロボット100の自律的な行動決定に関わる内部パラメータに影響を及ぼし、ロボット100が結果的にコントロールされる。
更に、ロボット100は妖精の動作を模倣することがある。図7は、ロボットが妖精の踊りを模倣する様子を経過時間毎に示す図である。図7(a)は、まだ妖精が踊っていない状況を示している。図7(b)は、妖精が踊り始めた状況を示している。図7(c)は、ロボット100が、妖精が踊る様子を見て真似ている状況を示している。このように、ロボット100は好きな妖精の動きを真似ようとするので、ユーザは妖精に指示動作をさせることによって、ロボット100に所望のとおり振る舞わせることができる。言い換えると、妖精の存在により、ロボット100は一時的に「踊る」という機能を身につける。
[妖精関連の実装]
図8は、サーバ200及びスマートフォン500における妖精関連の機能ブロック図である。図8では、サーバ200の各種機能のうち、主にスマートフォン500との連携に関わるものを示している。
(サーバ200)
本実施形態におけるサーバ200のデータ処理部202は、仮想キャラクタ投入部250、仮想キャラクタ位置管理部252、仮想キャラクタ情報提供部254および仮想キャラクタ処理部256を含む。
仮想キャラクタ投入部250は、仮想空間へ妖精を投入する処理を行う。具体的には、仮想キャラクタ投入部250は、妖精を制御するための妖精プログラムをロードして、仮想キャラクタ処理部256の機能をスタートさせる。妖精プログラムは、妖精のキャラクタ毎に用意される。仮想キャラクタ投入部250は、複数の妖精プログラムの中から選択して読み込む。妖精プログラムは、妖精の外観を決める情報や、妖精を識別するための識別情報を保持する。仮想キャラクタ位置管理部252は、仮想空間における妖精の位置を管理する。仮想キャラクタ情報提供部254は、妖精に関する情報をスマートフォン500およびロボット100へ提供する。仮想キャラクタ処理部256は、妖精に関する制御を行う。
本実施形態におけるサーバ200のデータ格納部206は、仮想キャラクタプログラム格納部260と仮想キャラクタデータ格納部262を含む。仮想キャラクタプログラム格納部260は、妖精プログラムを格納する。仮想キャラクタデータ格納部262は、妖精データ440を格納する。妖精データ440については、図14に関連して後述する。
(スマートフォン500)
スマートフォン500は、内部センサ502、データ処理部504、通信部506およびデータ格納部508を含む。内部センサ502は、カメラ510を含む。カメラ510は、たとえばAR表示に用いられる背景画像を撮影する。
データ処理部504は、操作受付部522、命令出力部524、AR表示処理部526およびデータ移動部528を含む。操作受付部522は、タッチパネルを用いてユーザによる操作を受け付ける。命令出力部524は、妖精に転送させるロボット行動命令を出力する。AR表示処理部526は、AR表示を行う。データ移動部528は、後述する形態においてデータ移動処理を行う。
通信部506は、外部装置、たとえばサーバ200との通信処理を担当する。
データ格納部508は、各種データを格納するために用いられ、移動対象データ格納部530を含む。移動対象データ格納部530は、後述する形態におけるデータ移動処理によって移動の対象となるデータを格納する。
図9は、本実施形態におけるロボットシステム300の機能ブロック図である。図9に示したサーバ200は、図8に示したサーバ200と同じものである。
(サーバ200)
本実施形態におけるサーバ200のデータ処理部202は、更にデータ移動部246を含む。データ移動部246は、後述する形態においてデータ移動処理を行う。
(ロボット100)
本実施形態におけるロボット100のデータ処理部136は、現実入力系170、仮想I/F(インタフェース)系172、ロボット制御系174およびデータ移動部184を有する。
現実入力系170は、現実空間に関する環境情報を取得する。仮想I/F系172は、仮想空間とのデータ入出力インタフェースである。ロボット制御系174は、ロボット100の行動を制御する。データ移動部184は、後述する形態においてデータ移動処理を行う。現実入力系170、仮想I/F系172およびロボット制御系174については、図10に関連して後述する。
データ格納部148は、モーション格納部160、イベントテーブル格納部162、親密度格納部164、感情格納部166およびマップ格納部168を含む。
モーション格納部160は、上述のとおり各種モーションファイルを格納する。イベントテーブル格納部162は、イベントテーブルを格納する。イベントテーブルについては、図11に関連して後述する。親密度格納部164は、ユーザに対する親密度および妖精に対する親密度を格納する。感情格納部166は、ロボットの感情を示すパラメータを格納する。マップ格納部168は、仮想位置と現実位置との対応を示すマップを格納する。
尚、サーバ200のデータ処理部202に含まれる機能単位のブロックをロボット100のデータ処理部136に設けてもよい。具体的には、サーバ200のデータ処理部202に含まれる位置管理部208と同等のブロックを、ロボット100のデータ処理部136に設けてもよい。サーバ200のデータ処理部202に含まれる親密度管理部220と同等のブロックを、ロボット100のデータ処理部136に設けてもよい。サーバ200のデータ処理部202に含まれる状態管理部244と同等のブロックを、ロボット100のデータ処理部136に設けてもよい。また、サーバ200のデータ処理部202に含まれる認識部212における機能を、ロボット100のデータ処理部136に含まれる現実認識部154で担ってもよい。サーバ200のデータ処理部202に含まれる動作制御部222における機能を、ロボット100のデータ処理部136に含まれる動作制御部150で担ってもよい。サーバ200のデータ格納部206に含まれる個人データ格納部218と同等の格納部を、ロボット100のデータ格納部148に設けてもよい。
続いて、図10に示した現実入力系170、仮想I/F系172およびロボット制御系174の詳細について説明する。
現実入力系170は、計測データ入力部152および現実認識部154を含む。計測データ入力部152は、内部センサ128によって計測されたデータを取得する。現実認識部154は、計測データ入力部152において取得された計測データに基づいて環境に関するイベント(以下、環境イベントという)を生成する。
たとえば温度センサで計測した温度が許容範囲の上限値を超えている場合に、現実認識部154は「大変暑い」という環境イベントを生成する。また、マイクロフォンで検出した音量が許容範囲の上限値を超えている場合に、現実認識部154は「大きな音が発生した」という環境イベントを生成する。高度な判断を伴う例として、カメラ510で撮影された映像に基づいて、現実認識部154が「Aさんが来た」という環境イベントを生成する。あるいは撮影された映像と計測した温度に基づいて、現実認識部154が「Bさんが抱っこしてくれている」という環境イベントを生成する。生成された環境イベントは、イベントテーブルに追加される。
ここで図11に示したイベントテーブルの例について説明する。イベントID:1のレコードは、環境イベントの例を示している。イベントテーブルのレコードには、イベントID、イベント種類、パラメータおよび完了フラグが格納される。パラメータは、イベント種類に応じた内容である。完了フラグは、初期値がOFFであり、動作制御部150においてイベントに関する処理が済んだ時点でONとなる。イベントテーブルには、現実入力系170において発生したイベントの他に、仮想入力系176において発生したイベントも登録される。図11は、イベントID:200までのイベントがすでに処理され、新たにイベントID:201のイベントが登録され、まだ処理されていない状態を示している。動作制御部150は、全てのイベントに対して処理をする必要はない。例えば、ロボットの内部状態に応じて、イベントに対して選択的に処理をすればよい。
図10の説明に戻る。仮想I/F系172は、仮想入力系176を含む。仮想入力系176は、妖精からの通知や命令を入力する。具体的には、仮想入力系176は、サーバ200のデータ処理部202から、この通知や命令を入力する。仮想入力系176は、交信データ入力部188および仮想認識部182を有する。交信データ入力部188は、妖精からの交信データを、通信部142を介して取得する。仮想認識部182は、妖精からの交信データの内容を認識する。この例において妖精からの交信データは、妖精位置通知、妖精動作通知およびロボット行動命令のうちのいずれかである。妖精位置通知は、仮想空間における妖精位置(妖精の仮想位置)を知らせる。妖精動作通知は、仮想空間における妖精の動作を知らせる。ロボット行動命令は、ロボットに行動させる命令である。
図12に示した仮想入力系176の処理について説明する。交信データ入力部188は、妖精からの交信データを取得する(S1)。そして、仮想認識部182は、取得した交信データが妖精位置通知であるか否かを判定する(S2)。
取得した交信データが妖精位置通知であると判定した場合には、図11に示したイベントID:2から4のレコードのように、妖精位置通知イベントをイベントテーブルに追加する(S3)。尚、妖精位置通知イベントにおけるパラメータは、妖精の仮想位置である。妖精が仮想空間を漂っているので、このように妖精位置通知が連続的に送られる。
図12の説明に戻って、取得した交信データが妖精位置通知でないと判定した場合には、取得した交信データが妖精動作通知であるか否かを判定する(S4)。
取得した交信データが妖精動作通知であると判定した場合には、図11に示したイベントID:101のレコードのように、妖精動作通知イベントをイベントテーブルに追加する(S5)。尚、妖精動作通知イベントにおけるパラメータは、動作種類である。
一方、取得した交信データが妖精動作通知でないと判定した場合には、取得した交信データがロボット行動命令であるか否かを判定する(S6)。
取得した交信データがロボット行動命令であると判定した場合には、図11に示したイベントID:201のレコードのように、ロボット行動命令イベントをイベントテーブルに追加する(S7)。尚、ロボット行動命令イベントにおけるパラメータは、行動種類である。また、行動種類が「ユーザへの接近」である場合には、ユーザの現実位置もパラメータに加えられる。付加されるパラメータの内容は、行動種類に依存する。
取得した交信データがロボット行動命令でないと判定した場合には、S1の処理に戻る。また、S3、S5およびS7の処理の後も、S1の処理に戻る。
図10の説明に戻る。仮想I/F系172は、更に仮想出力系178を含む。仮想出力系178は、仮想空間へ送るデータを出力する。仮想出力系178は、交信データ出力部186を含む。交信データ出力部186は、妖精への交信データを、通信部142を介して出力する。
ロボット制御系174は、動作制御部150、親密度管理部190、感情管理部192および位置変換部194を含む。動作制御部150は、イベントテーブルに登録されたイベントに基づいてモーションを決定し、決定したモーションの実行を駆動機構120に指示する。
親密度管理部190は、ユーザに対する親密度および妖精に対する親密度を管理する。親密度管理部190は、たとえばロボット行動命令に従ってモーションを実行した後の状況に応じて妖精に対する親密度を調整する。あるいは、親密度管理部190は、妖精位置通知や妖精動作通知に基づいて選択したモーションを実行した後の状況に応じて妖精に対する親密度を調整する。つまり、妖精に従った結果、ユーザから快行為を受けたら、親密度管理部190は、その妖精に対する親密度をあげる。一方、ユーザから不快行為を受けたら、親密度管理部190は、その妖精に対する親密度を下げる。具体的には、現実認識部154によって快行為が認識されれば、親密度管理部190は、そのとき仮想空間にいる妖精に対する親密度を高くする。たとえば、ユーザに抱っこされたことによって、ユーザの応対が快行為に該当すると判定した場合には、親密度管理部190は、妖精に対する親密度に所定値を加える。逆に、現実認識部154によって不快行為が認識されれば、親密度管理部190は、そのとき仮想空間にいる妖精に対する親密度を低くする。たとえば、ユーザから乱暴を受けたことによって、ユーザの応対が不快行為に該当すると判定した場合には、親密度管理部190は、妖精に対する親密度から所定値を引く。
感情管理部192は、上述した状態管理部244と同様に、ロボット100の感情(寂しさ、好奇心、承認欲求、機嫌の良さなど)を示すさまざまな感情パラメータを管理する。感情管理部192は、たとえばロボット行動命令に従ってモーションを実行した後の状況に応じて感情パラメータを調整する。あるいは、感情管理部192は、妖精位置通知や妖精動作通知に基づいて選択したモーションを実行した後の状況に応じて感情パラメータを調整する。具体的には、現実認識部154によって快行為が認識されれば、感情管理部192は、たとえば機嫌の良さを示すパラメータの値を増やす。たとえば、ユーザに抱っこされたことによって、ユーザの応対が快行為に該当すると判定した場合には、感情管理部192は、機嫌の良さを示すパラメータに所定値を加える。逆に、現実認識部154によって不快行為が認識されれば、感情管理部192は、機嫌の良さを示すパラメータの値を減らす。たとえば、ユーザから乱暴を受けたことによって、ユーザの応対が不快行為に該当すると判定した場合には、感情管理部192は、機嫌の良さを示すパラメータから所定値を引く。
位置変換部194は、マップ格納部168に格納されているマップを用いて、仮想位置を現実位置へ変換する処理と、現実位置を仮想位置へ変換する処理を行う。位置変換部194は、マップを用いずに、関数処理によって位置を変換してもよい。
[妖精投入の実装]
妖精が仮想空間に投入される処理について説明する。図13は、妖精が仮想空間に投入される処理過程を示すシーケンス図である。
図6(a)に示した状況において、スマートフォン500の操作受付部522は、ユーザによる妖精投入の操作を受け付ける(S11)。たとえば、ユーザがスマートフォン500の画面に表示された妖精リストにおいて妖精名を選択することによって、仮想空間に投入させたい妖精が特定される。
スマートフォン500の操作受付部522は、通信部506を介して、妖精投入指示をサーバ200へ送信する(S12)。妖精投入指示には、投入対象を特定する妖精IDが含まれる。
サーバ200の通信部204において妖精投入指示を受信すると、サーバ200の仮想キャラクタ投入部250は、妖精処理を起動する(S13)。具体的には、仮想キャラクタ投入部250は、妖精IDによって特定される妖精プログラムを仮想キャラクタプログラム格納部260から読み出してメモリにロードさせ、妖精プログラムの命令コードをプロセッサに実行させる。その結果、データ処理部202に仮想キャラクタ処理部256としての機能(妖精制御用のプログラム)が開始される。また、仮想キャラクタ処理部256における初期処理で設定される妖精の仮想位置が、仮想キャラクタ位置管理部252に伝えられる。この仮想位置は、たとえば仮想空間における座標によって特定される。尚、投入される妖精の数は、2以上であってもよい。その場合には、複数の妖精処理が起動され、複数の仮想キャラクタ処理部256が設けられる。尚、仮想キャラクタ処理部256は、その後妖精が仮想空間を自律的に漂うように制御を続ける。
サーバ200の仮想キャラクタ情報提供部254は、通信部204を介して、妖精位置通知をスマートフォン500へ送信するとともに(S14)、ロボット100へ同じ妖精位置通知を送信する(S15)。これらの妖精位置通知には、妖精IDおよび妖精の仮想位置が含まれる。仮想キャラクタ情報提供部254は、家屋内にロボット100が複数ある場合に、すべてのロボット100に対して妖精位置通知を送信する。但し、妖精とロボット100が対応付けられている場合に、対応付けられているロボット100に対してのみ妖精位置通知を送信してもよい。このようにすれば、あるロボット100だけが特定の妖精を認識できているという状況を設定できる。
ここで、妖精とロボット100を対応付ける妖精データ440について触れておく。図14は、妖精データ440の一部を示す構造図である。妖精データ440は、サーバ200の仮想キャラクタデータ格納部262に格納されている。妖精データ440において、妖精IDにロボットIDが対応付けられている場合には、そのロボット100に対してのみ妖精に関する情報が提供される。妖精IDにロボットIDが対応付けられていない場合には、すべてのロボット100に対して妖精に関する情報が提供される。妖精に関する情報は、たとえば妖精位置通知や妖精動作通知などである。妖精データ440において、たとえば妖精の名前、性別、身体的特徴や行動的特徴などのパラメータおよびグラフィック画像を含んでもよい。
図13の説明に戻る。スマートフォン500の通信部506において妖精位置通知を受信すると、スマートフォン500のAR表示処理部526は、AR表示を行う(S16)。AR表示処理部526は、妖精の仮想位置を、現実空間における妖精位置(妖精の現実位置)に変換する。そして、カメラ510で撮影された背景画像に妖精のグラフィック画像を重ねて表示する。背景画像として映し出す現実空間の領域内に妖精の現実位置が含まれない場合には、妖精のグラフィック画像は表示されない。つまり、妖精の現実位置の方にカメラ510を向けたときに、妖精のグラフィック画像が表示される。妖精位置の方にカメラ510を向けていないときに、妖精のグラフィック画像は表示されない。
妖精の表示に関する応用例を示しておく。背景画像として映し出す現実空間の領域のうち限定的範囲内に妖精の現実位置が含まれる場合に限って、妖精を表示してもよい。この限定的範囲は、表示可能範囲ということもできる。たとえば、スマートフォン500の位置及び姿勢に基づいて限定的範囲を設定する。限定的範囲の例として、カメラ510の主軸となす角度が基準以内であって、カメラ510との距離が下限値以上かつ上限値以下である点を含む範囲が考えられる。このようにすれば、表示画面の隅に寄っている妖精は表示されない。また、近すぎる妖精や遠すぎる妖精も表示されない。応用例の説明を終える。
ロボット100の通信部142において妖精位置通知を受信すると、ロボット100の仮想認識部182は、通知イベントを生成する(S17)。生成された通知イベントは、図11のイベントID:2で例示したようにイベントテーブルに追加される。このようにして、図6(b)に示したように仮想空間に妖精が投入された状況となる。
[妖精移動の実装]
続いて、妖精が移動する処理について説明する。図15は、妖精が移動する処理過程を示すシーケンス図である。この例では、スマートフォン500のアプリケーション520からの指示を受けて妖精位置が変更される。
図6(b)に示した状況において、スマートフォン500の操作受付部522は、ユーザによる妖精移動の操作を受け付ける(S19)。たとえば、スマートフォン500のタッチパネルで、妖精を移動させるためのスライド操作を検出する。
そして、スマートフォン500の操作受付部522は、たとえばスマートフォン500の姿勢、スライド方向及びスライド量に基づいて仮想空間における移動ベクトルを算出する(S20)。
スマートフォン500の操作受付部522は、通信部506を介して、妖精移動指示をサーバ200へ送信する(S21)。妖精移動指示には、移動対象を特定する妖精IDと仮想空間における移動ベクトルが含まれる。
サーバ200の通信部204において妖精移動指示を受信すると、妖精移動指示に含まれる移動ベクトルが、妖精IDとともに仮想キャラクタ位置管理部252へ渡される。仮想キャラクタ位置管理部252は、妖精IDで特定される妖精の仮想位置を変更する(S22)。具体的には、現在の仮想位置に移動ベクトルを加えることによって、新たな仮想位置が算出される。
サーバ200の仮想キャラクタ情報提供部254は、通信部204を介して、妖精位置通知をスマートフォン500へ送信するとともに(S23)、ロボット100へ同じ妖精位置通知を送信する(S24)。妖精位置通知には、妖精IDおよび妖精の仮想位置が含まれる。上述のとおり、家屋内にロボット100が複数ある場合には、すべてのロボット100に対して妖精位置通知を送信する。但し、妖精とロボット100が対応付けられている場合には、対応付けられているロボット100に対してのみ妖精位置通知を送信する。
スマートフォン500の通信部506において妖精位置通知を受信すると、スマートフォン500のAR表示処理部526は、妖精の仮想位置に基づいてAR表示を行う(S25)。
ロボット100の通信部142において妖精位置通知を受信すると、ロボット100の仮想認識部182は、妖精位置通知イベントを生成する(S26)。生成された妖精位置通知イベントは、イベントテーブルに追加される。このようにして、図6(c)に示したように仮想空間における妖精が移動した状況となる。
尚、上述した例ではスマートフォン500が移動ベクトルを算出したが、サーバ200において移動ベクトルを算出することもある。たとえば妖精が仮想空間を漂うようにするために、常時仮想キャラクタ処理部256が妖精を少しずつ移動させる。そのため、仮想キャラクタ処理部256は、たとえば乱数を用いて不規則な移動ベクトルを算出し、その移動ベクトルによって妖精位置を変更する処理を繰り返す。そして、図15の場合と同様に、妖精位置を変更する都度、サーバ200は妖精位置通知を送信し、スマートフォン500においてAR表示を行い、ロボット100において妖精位置通知イベントを生成する。
ここで、ロボット100における処理の説明に移る。ロボット100においてイベントが発生するとそれに応じて動作する。図16のフローチャートは、ロボット100における動作制御処理を示す。
ロボット100の動作制御部150は、常時イベントテーブルを監視し、未処理のイベントを1つずつ特定する(S28)。未処理のイベントが複数ある場合には、先に発生したイベントが特定される。未処理のイベントがなければ、新たなイベントが発生するまで動作制御部150は待機する。
ロボット100の動作制御部150は、特定した未処理のイベントが妖精位置通知イベントであるか否かを判定する(S29)。
特定した未処理のイベントが妖精位置通知イベントでない場合には、端子Aを介して図18に示したS43の処理に移る。
一方、特定した未処理のイベントが妖精位置通知イベントである場合には、ロボット100の動作制御部150は、妖精位置通知イベントが反応条件に該当するか否かを判定する(S30)。反応条件は、モーションの契機となるイベントを特定する条件であって、モーション選択テーブルに予め設定されている。たとえば、妖精がロボット100から離れた場合に、ロボット100が妖精に近づくという仕様の場合には、通知された妖精位置が投射される現実位置とロボットの間の距離が所定値未満であることが反応条件となる。尚、妖精位置が投射される現実位置は、ロボット100の位置変換部194が仮想空間から現実空間へ位置変換を行うことによって求められる。
妖精位置通知イベントが反応条件に該当しないと判定した場合には、端子Aを介して図18に示したS43の処理に移る。
一方、妖精位置通知イベントが反応条件に該当すると判定した場合には、ロボット100の動作制御部150は、妖精位置通知イベントを無視するか否かを判定する(S31)。たとえば、ロボット100の動作制御部150は、妖精IDに対応する親密度やロボット100の感情(寂しさ、好奇心、承認欲求、機嫌の良さなど)を示すさまざまな感情パラメータに基づいて判断する。たとえば、ロボット100の動作制御部150は、妖精IDに対応する親密度が基準値以上であれば無視せず、同じく親密度が基準値を下回れば無視する。あるいは、ロボット100の動作制御部150は、寂しさを示す感情パラメータが基準値以下であれば無視せず、基準値を超えていれば無視してもよい。また、ロボット100の動作制御部150は、機嫌の良さを示す感情パラメータが基準値以上であれば無視せず、基準値未満であれば無視してもよい。更に、親密度に基づく判断と感情パラメータに基づく判断を組み合わせてもよい。このようにすれば、ロボット100のそのときどきの心理状態によって、ロボット100の行動が異なるという演出的効果を奏する。
妖精位置通知イベントを無視すると判定した場合には、端子Aを介して図18に示したS43の処理に移る。
一方、妖精位置通知イベントを無視しないと判定した場合には、ロボット100の動作制御部150は、モーション選択テーブルに基づいて妖精位置通知イベントに応じたモーションを選択する(S33)。このとき動作制御部150は、妖精に対する親密度に応じて、モーションを選択してもよい。たとえば、1つの反応条件に対して複数のモーションを対応付けておき、妖精に対する親密度に基づいていずれかのモーションを選択してもよい。例として、ロボット100から大きく離れた妖精位置を示す妖精位置通知イベントが発生したときに、妖精に対する親密度が基準値以上であれば、ロボット100は妖精の方へ速く進み、妖精に対する親密度が基準値未満であれば、ロボット100は妖精の方へ遅く進むことが考えられる。
また、1つの反応条件に対して複数のモーションを対応付けておき、ロボット100の感情に基づいていずれかのモーションを選択してもよい。例として、ロボット100が妖精から大きく離れたことを示す妖精位置通知イベントが発生したときに、ロボット100の動作制御部150は、寂しさを示す感情パラメータが基準値を超えていれば妖精の方へ速く進むモーションを選択し、寂しさを示す感情パラメータが基準値以下であれば妖精の方へ遅く進むモーションを選択することが考えられる。また、ロボット100の動作制御部150は、機嫌の良さを示す感情パラメータが基準値を超えていれば妖精の方へ速く進むモーションを選択し、機嫌の良さを示す感情パラメータが基準値以下であれば妖精の方へ遅く進むモーションを選択してもよい。更に、親密度に基づく判断と感情パラメータに基づく判断を組み合わせてもよい。このようにすれば、ロボット100のそのときどきの心理状態によって、ロボット100の行動が異なるという演出的効果を奏する。
ロボット100の動作制御部150は、選択したモーションの実行を駆動機構120に指示する(S34)。そして、端子Aを介して図18に示したS43の処理に移る。
[妖精動作の実装]
続いて、妖精が踊りのような動作を行う処理について説明する。仮想キャラクタ処理部256が自発的に妖精の動作を開始させてもよいが、ここではスマートフォン500からの指示に従って妖精が動作を開始する形態について説明する。
図17は、妖精が踊る処理過程を示すシーケンス図である。図7(a)に示した状況において、スマートフォン500の操作受付部522は、ユーザによる動作指示の操作を受け付ける(S36)。たとえば、ユーザがスマートフォン500の画面に表示された動作リストにおいて動作種類を選択する。この例では、動作種類として踊りが選択されるものとする。単に踊りではなく、具体的な踊りの種類(たとえば、フラダンス)を選択してもよい。この場合には、動作種類として踊りの種類が特定される。
スマートフォン500の操作受付部522は、通信部506を介して、妖精動作指示をサーバ200へ送信する(S37)。妖精動作指示には、動作対象を特定する妖精IDと動作種類が含まれる。
サーバ200の通信部204において妖精動作指示を受信すると、妖精IDで特定される仮想キャラクタ処理部256が妖精の動作を開始させる(S38)。具体的には、仮想キャラクタ処理部256が、状態パラメータとして動作種類を保持する。
サーバ200の仮想キャラクタ情報提供部254は、通信部204を介して、妖精動作通知をスマートフォン500へ送信するとともに(S39)、ロボット100へ同じ妖精動作通知を送信する(S40)。妖精動作通知には、妖精IDおよび動作種類が含まれる。上述のとおり、家屋内にロボット100が複数ある場合には、すべてのロボット100に対して妖精動作通知を送信する。但し、妖精とロボット100が対応付けられている場合には、対応付けられているロボット100に対してのみ妖精動作通知を送信する。
スマートフォン500の通信部506において妖精動作通知を受信すると、スマートフォン500のAR表示処理部526は、動作する妖精をAR画面に表示する(S41)。この例では、踊る姿の妖精が表示される。
ロボット100の通信部142において妖精動作通知を受信すると、ロボット100の仮想認識部182は、妖精動作通知イベントを生成する(S42)。生成された妖精動作通知イベントは、イベントテーブルに追加される。このようにして、図7(b)に示したように仮想空間における妖精が踊る状況となる。
尚、アプリケーション520は、妖精を移動させたり、妖精に動作させたりせずに、単に妖精の投入を指示するだけのものであってもよい。
妖精動作通知イベントが発生した場合のロボット100における処理の説明に移る。図18は、図16に続く動作制御処理フローを示している。
ロボット100の動作制御部150は、図16のS28で特定した未処理のイベントが妖精動作通知イベントであるか否かを判定する(S43)。
未処理のイベントが妖精動作通知イベントでない場合には、端子Bを介して図20に示したS54の処理に移る。
一方、未処理のイベントが妖精動作通知イベントである場合には、ロボット100の動作制御部150は、妖精動作通知イベントが反応条件に該当するか否かを判定する(S44)。上述のとおり、反応条件は、モーションの契機となるイベントを特定する条件であって、モーション選択テーブルに予め設定されている。たとえば、妖精が踊っている場合に、ロボット100も踊るという仕様の場合には、妖精動作通知に含まれる動作種類が「踊る」であることが反応条件となる。
妖精動作通知イベントが反応条件に該当しないと判定した場合には、端子Bを介して図20に示したS54の処理に移る。
一方、妖精動作通知イベントが反応条件に該当すると判定した場合には、ロボット100の動作制御部150は、図16のS31に示した処理の場合と同様に、妖精動作通知イベントを無視するか否かを判定する(S45)。
妖精動作通知イベントを無視すると判定した場合には、端子Bを介して図20に示したS54の処理に移る。
一方、妖精動作通知イベントを無視しないと判定した場合には、ロボット100の動作制御部150は、モーション選択テーブルに基づいて妖精動作通知イベントに応じたモーションを選択する(S46)。動作制御部150は、妖精に対する親密度に応じて、モーションを選択してもよい。たとえば、モーション選択テーブルにおいて1つの反応条件に対して複数のモーションを対応付けておき、動作制御部150は、妖精が踊っていることを示す妖精動作通知イベントが発生したときに、妖精に対する親密度が基準値以上であれば、激しく踊るモーションを選択し、妖精に対する親密度が基準値未満であれば、軽く踊るモーションを選択することが考えられる。
また、1つの反応条件に対して複数のモーションを対応付けておき、ロボット100の感情に基づいていずれかのモーションを選択してもよい。例として、妖精が踊っていることを示す妖精動作通知イベントが発生したときに、ロボット100の動作制御部150は、寂しさを示す感情パラメータが基準値を超えていれば軽く踊るモーションを選択し、寂しさを示す感情パラメータが基準値以下であれば激しく踊るモーションを選択することが考えられる。また、ロボット100の動作制御部150は、機嫌の良さを示す感情パラメータが基準値を超えていれば激しく踊るモーションを選択し、機嫌の良さを示す感情パラメータが基準値以下であれば軽く踊るモーションを選択してもよい。更に、親密度に基づく判断と感情パラメータに基づく判断を組み合わせてもよい。このようにすれば、ロボット100のそのときどきの心理状態によって、ロボット100の行動が異なるという演出的効果を奏する。
ロボット100の動作制御部150は、選択したモーションの実行を駆動機構120に指示する(S47)。そして、端子Bを介して図20に示したS54の処理に移る。
[命令転送の実装]
次に、妖精がロボット100へ行動命令を転送する処理について説明する。図19は、ロボット行動命令が転送される処理過程を示すシーケンス図である。
図1で説明したように、ユーザがロボット100に何かの行動をさせようとする場合に、ロボット100に直接命令するのではなく、妖精を介してロボット100へ命令する。そのために、スマートフォン500の操作受付部522は、ロボット行動命令を妖精に転送させるための指示操作を受け付ける(S49)。たとえば、ユーザが、スマートフォン500の画面に表示された行動命令リストにおいてロボット100にさせたい行動の種類を選択することによって、ロボット行動命令を妖精に転送させる指示を行うようにする。この例における行動種類は、たとえば「ユーザへの接近」、「妖精への接近」、「踊る」あるいは「歌う」などである。
スマートフォン500の操作受付部522は、通信部506を介して、ロボット行動命令の転送指示をサーバ200へ送信する(S50)。ロボット行動命令の転送指示には、ロボット行動命令を転送する妖精のID、行動種類、パラメータが含まれる。行動種類がユーザへの接近である場合に、パラメータはユーザの現実位置である。パラメータの内容は、行動種類に依存する。
サーバ200の通信部204においてロボット行動命令の転送指示を受信すると、妖精IDによって特定される仮想キャラクタ処理部256は、通信部204を介して、ロボット行動命令を転送する(S51)。ロボット行動命令には、上述した妖精ID、行動種類及びパラメータが含まれる。S51の処理の前に、仮想キャラクタ処理部256が命令転送の許否を判断してもよい。たとえば、前回命令転送を行ったタイミングから間もなければ、仮想キャラクタ処理部256は命令転送を拒否してもよい。
ロボット100の通信部142においてロボット行動命令を受信すると、ロボット100の仮想認識部182は、ロボット行動命令イベントを生成する(S52)。生成されたロボット行動命令イベントは、イベントテーブルに追加される。
ロボット行動命令イベントが発生した場合のロボット100における処理の説明に移る。図20は、図18に続く動作制御処理フローを示している。
ロボット100の動作制御部150は、図16のS28で特定した未処理のイベントがロボット行動命令イベントであるか否かを判定する(S54)。
未処理のイベントがロボット行動命令イベントでない場合には、端子Cを介して図21に示したS61の処理に移る。
一方、未処理のイベントがロボット行動命令イベントである場合には、ロボット100の動作制御部150は、ロボット行動命令を承諾するか否かを判定する(S55)。承諾は命令の許可を意味し、非承諾は命令の拒否を意味する。
たとえば、ロボット100の動作制御部150は、妖精IDに対応する親密度やロボット100の感情(寂しさ、好奇心、承認欲求、機嫌の良さなど)を示すさまざまな感情パラメータに基づいて判断する。たとえば、ロボット100の動作制御部150は、妖精IDに対応する親密度が基準値以上であれば承諾し、親密度が基準値を下回れば承諾しない。あるいは、ロボット100の動作制御部150は、寂しさを示す感情パラメータが基準値以下であれば承諾し、基準値を超えていれば承諾しなくてもよい。また、ロボット100の動作制御部150は、機嫌の良さを示す感情パラメータが基準値以上であれば承諾し、基準値未満であれば承諾しなくてもよい。更に、親密度に基づく判断と感情パラメータに基づく判断を組み合わせてもよい。このようにすれば、ロボット100のそのときどきの心理状態によって、ロボット100の行動が異なるという演出的効果を奏する。
ロボット100がロボット行動命令を承諾しない場合に、ロボット行動命令を承諾しない旨のメッセージをサーバ200の仮想キャラクタ処理部256へ返してもよい。その場合、仮想キャラクタ処理部256は、ロボット100からのメッセージをスマートフォン500のアプリケーション520に転送してもよい。そして、スマートフォン500のアプリケーション520は、ロボット100からのメッセージを出力してもよい。
ロボット行動命令を承諾する場合に、ロボット100の動作制御部150は、ロボット行動命令イベントのパラメータに仮想位置が含まれるか否かを判定する(S56)。ロボット行動命令イベントのパラメータに仮想位置が含まれない場合には、そのままS58の処理に移る。一方、ロボット行動命令イベントのパラメータに仮想位置が含まれる場合には、ロボット100の位置変換部194は、仮想位置を現実位置に変換する(S57)。たとえば、「妖精への接近」というロボット行動命令イベントにおいて、妖精の仮想位置が妖精の現実位置に変換される。
ロボット100の動作制御部150は、モーション選択テーブルに基づいてロボット行動命令イベントに応じたモーションを選択する(S58)。このとき動作制御部150は、妖精に対する親密度に応じて、モーションを選択してもよい。たとえば、モーション選択テーブルにおいて1つのロボット行動命令イベントに対して複数のモーションを対応付けておき、動作制御部150は、妖精に対する親密度に基づいていずれかのモーションを選択してもよい。例として、ユーザへの接近を命ずるロボット行動命令イベントが発生したときに、妖精に対する親密度が基準値以上であれば、ユーザの方へ速く移動するモーションを選択し、妖精に対する親密度が基準値未満であれば、ユーザの方へ遅く移動するモーションを選択することが考えられる。
また、1つのロボット行動命令イベントに対して複数のモーションを対応付けておき、ロボット100の感情に基づいていずれかのモーションを選択してもよい。例として、ユーザへの接近を命ずるロボット行動命令イベントが発生したときに、ロボット100の動作制御部150は、寂しさを示す感情パラメータが基準値を超えていればユーザの方へ速く移動するモーションを選択し、寂しさを示す感情パラメータが基準値以下であればユーザの方へ遅く移動するモーションを選択することが考えられる。また、ロボット100の動作制御部150は、機嫌の良さを示す感情パラメータが基準値を超えていればユーザの方へ速く移動するモーションを選択し、機嫌の良さを示す感情パラメータが基準値以下であればユーザの方へ遅く移動するモーションを選択してもよい。更に、親密度に基づく判断と感情パラメータに基づく判断を組み合わせてもよい。このようにすれば、ロボット100のそのときどきの心理状態によって、ロボット100の行動が異なるという演出的効果を奏する。
ロボット100の動作制御部150は、選択したモーションの実行を駆動機構120に指示する(S59)。たとえば、行動種別がユーザへの接近であれば、駆動機構120はユーザの現実位置の方へ移動するためのモーションを行う。行動種別が踊るであれば、小刻みな回転や移動を組み合わせたモーションを行う。そして、端子Cを介して図21に示したS61の処理に移る。
[環境イベントによる処理]
続いて、環境イベントが発生した場合の処理について説明する。図21は、図20の動作制御処理の続きを示すフローチャートである。
ロボット100の動作制御部150は、図16のS28で特定した未処理のイベントが環境イベントであるか否かを判定する(S61)。
未処理のイベントが環境イベントでないと判定した場合には、S66の処理に戻る。一方、未処理のイベントが環境イベントであると判定した場合には、ロボット100の動作制御部150は、環境イベントが反応条件に該当するか否かを判定する(S62)。上述のとおり、反応条件は、モーションの契機となるイベントを特定する条件であって、モーション選択テーブルに予め設定されている。たとえば、気温が高いときにロボット100が「冷房つけて」と発声するという仕様の場合には、環境イベントの事象種類が「大変暑い」であることが反応条件となる。
環境イベントが反応条件に該当しないと判定した場合には、S66の処理に移る。一方、環境イベントが反応条件に該当すると判定した場合には、ロボット100の動作制御部150は、図16に示したS31の処理の場合と同様に、環境イベントを無視するか否かを判定する(S63)。
環境イベントを無視すると判定した場合には、S66の処理に戻る。一方、環境イベントを無視しないと判定した場合には、ロボット100の動作制御部150は、モーション選択テーブルに基づいて環境イベントに応じたモーションを選択する(S64)。
ロボット100の動作制御部150は、モーションの実行を駆動機構120に指示する(S65)。モーションの実行を終えた段階で、ロボット100の動作制御部150は、実行完了メッセージをサーバ200の仮想キャラクタ処理部256へ送ってもよい。その場合、サーバ200の仮想キャラクタ処理部256は、実行完了メッセージをスマートフォン500へ転送してもよい。そして、スマートフォン500のアプリケーション520は、実行完了メッセージを出力してもよい。
さらに、スマートフォン500が実行完了メッセージを出力した場合に、アプリケーション520において、ユーザから「ありがとう」という感謝メッセージを受け付けるようにしてもよい。そして、アプリケーション520は、感謝メッセージをサーバ200の仮想キャラクタ処理部256へ送信してもよい。これを受けて、サーバ200の仮想キャラクタ処理部256は、感謝メッセージをロボット100へ転送してもよい。
ロボット100の交信データ入力部188が感謝メッセージを取得した場合に、仮想認識部182はユーザによる快行為であると認識してもよい。そして、このように仮想認識部182において快行為が検出されたとき、親密度管理部190は、ユーザに対する親密度を高めてもよい。さらに、親密度管理部190は、そのとき仮想空間にいる妖精に対する親密度を高めてもよい。加えて、感情管理部192は、たとえば機嫌の良さを示す感情パラメータを高めてもよい。
図21の説明に戻る。モーションの実行を指示すると、図16のS28で特定したイベントの完了フラグをOFFにする(S66)。そして、図16のS28に戻って、次のイベントを特定する。
[妖精視認の応用]
続いて、ユーザによる妖精の視認を所定処理の契機とする応用例について説明する。ここでは、ユーザがスマートフォン500をかざして妖精を視認しているときにデータの移動が行われるように、ロボットシステム300が動作する例を示す。
ロボット100が写真データをSNSサーバに投稿しようとする場合を想定する。このような状況で、ユーザがスマートフォン500におけるAR表示で妖精を確認すると、データを運ぶ姿の妖精が映し出されるとともに、データ送信が開始される。つまり、データを運ぶ姿の妖精をユーザが視認することがデータ送信のトリガーイベントとなるようにして、データ送信を視覚化する。このようにすれば、ユーザが知らない間にデータが送信されるのではないかという不安を払拭し、ユーザに安心感を与えることができる。
以下では、データ移動に関する3つの例を説明する。いずれの例でも、ユーザが妖精を視認していないときには、データを移動させないまま待機し、ユーザが妖精を視認してからデータを移動する。この例では、妖精がAR表示されている状態であれば、ユーザが妖精を視認しているものとみなす。あるいは、妖精がAR表示されると同時に、スマートフォン500の表示面側のカメラ510で撮影された画像にユーザの顔が写っている場合に、ユーザが妖精を視認しているものと判断してもよい。
1番目に、スマートフォン500においてデータ移動処理を行う例について説明する。図22は、スマートフォン500におけるデータ移動処理に関するフローチャートである。
スマートフォン500のデータ移動部528は、データ移動のイベントが発生したか否かを判定する(S68)。たとえば、スマートフォン500のカメラ510によって撮影されたロボット100の写真がSNSサーバへ自動投稿されるタイミングで、データ移動のイベントが発生する。この例の場合、移動対象データ格納部530に格納される移動対象データは、スマートフォン500のカメラ510によって撮影された写真データである。
データ移動のイベントが発生していないと判定した場合には、S68の処理を繰り返す。一方、データ移動のイベントが発生したと判定した場合には、スマートフォン500のAR表示処理部526は、妖精がAR画面内に表示されているか否かを判定する(S69)。
妖精がAR画面内に表示されていないと判定した場合には、S69の処理を繰り返す。したがって、妖精が表示されなければ、待機を続けることになる。一方、妖精がAR画面内に表示されていると判定した場合には、スマートフォン500のデータ移動部528はデータ移動処理を開始し(S71)、スマートフォン500のAR表示処理部526は、データを運搬している姿の妖精を表すグラフィック画像をAR画面に表示させる(S70)。表示される妖精を、データ運搬中を表す姿に変更することによって、データ転送が行われていることをユーザが認識できる。
その後、スマートフォン500のデータ移動部528は、データ移動処理が完了したか否かを判定する(S72)。データ移動処理が完了していない場合には、S72の処理を繰り返して、データ移動処理の完了を待つ。データ移動処理が完了すると、スマートフォン500のAR表示処理部526は、元の姿の妖精を表示する(S73)。つまり、何もしていないときの妖精のグラフィック画像が表示される。元の姿を表すグラフィック画像に戻すことによって、データ転送が終わったことをユーザが認識できる。
たとえばSNSへの自動投稿プログラムが停止した場合に、図22に示したルーチンは終了する(S74のYESルート)。一方、自動投稿プログラムが停止していない場合には、次の投稿動作に備えて、S68の処理に戻って上述した処理を繰り返す(S74のNOルート)。
2番目に、サーバ200においてデータ移動処理を行う例について説明する。図23は、サーバ200におけるデータ移動処理に関するシーケンス図である。
サーバ200のデータ移動部246は、データ移動のイベントが発生したか否かを判定する。たとえば、写真データがサーバ200からSNSサーバへ自動投稿されるタイミングで、データ移動のイベントが発生する。前提として、ロボット100のカメラで撮影された写真データが、サーバ200に転送され、サーバ200のデータ格納部206に格納されているものとする。
データ移動のイベントが発生したと判定すると(S76)、サーバ200のデータ移動部246は、妖精の表示状況に関する問い合わせをスマートフォン500へ送信する(S77)。問い合わせには、表示の成否が問われる妖精を特定する妖精IDが付加される。
スマートフォン500の通信部506において妖精の表示状況に関する問い合わせを受信すると、スマートフォン500のAR表示処理部526は、妖精がAR画面内に表示されているか否かを判定する。スマートフォン500のAR表示処理部526によって妖精が表示されていないと判定した場合には、妖精が「非表示」であることを示す表示状況が、スマートフォン500の通信部506からサーバ200へ送信される。
サーバ200の通信部204において「非表示」の表示状況を受信すると、サーバ200のデータ移動部246によって、妖精の表示状況に関する問い合わせの送信が繰り返される。スマートフォン500も、上述の処理を繰り返す。したがって、妖精が表示されなければ、待機を続けることになる。
一方、スマートフォン500のAR表示処理部526によって妖精が表示されていると判定した場合には(S78)、妖精が「表示中」であることを示す表示状況がサーバ200へ送信される(S79)。
サーバ200の通信部204において「表示中」を示す表示状況を受信すると、サーバ200のデータ移動部246は、データ移動処理を実行する(S80)。たとえば、SNSへ記事が投稿される。そして、サーバ200のデータ移動部246は、データ移動の開始通知をスマートフォン500へ送信する(S81)。データ移動の開始通知には、妖精IDが含まれる。
スマートフォン500の通信部506においてデータ移動の開始通知を受信すると、スマートフォン500のAR表示処理部526は、データを運搬している姿の妖精を表すグラフィック画像をAR画面に表示させる(S82)。データ運搬中を表すグラフィック画像に変更することによって、データ転送が行われていることをユーザが認識しやすくなる。
その後、サーバ200におけるデータ移動処理が完了すると、サーバ200のデータ移動部246は、データ移動の完了通知をスマートフォン500へ送信する(S83)。データ移動の完了通知には、妖精IDが含まれる。
スマートフォン500の通信部506においてデータ移動の完了通知を受信すると、スマートフォン500のAR表示処理部526は、元の姿の妖精を表すグラフィック画像をAR画面に表示させる(S84)。つまり、何もしていないときの妖精のグラフィック画像が表示される。元の姿を表すグラフィック画像に戻すことによって、データ転送が終わったことをユーザが認識しやすくなる。
3番目に、ロボット100においてデータ移動処理を行う例について説明する。図24は、ロボット100におけるデータ移動処理に関するシーケンス図である。
ロボット100のデータ移動部184は、データ移動のイベントが発生したか否かを判定する。たとえば、ロボット100のカメラで撮影された写真データがロボット100からSNSサーバへ自動投稿されるタイミングで、データ移動のイベントが発生する。写真データは、事前に撮影されたものであってもよいし、データ移動のタイミングで撮影されたものであってもよい。
データ移動のイベントが発生したと判定すると(S86)、ロボット100のデータ移動部184は、妖精の表示状況に関する問い合わせをサーバ200へ送信する(S87)。この問い合わせには、表示の成否が問われる妖精を特定する妖精IDが含まれる。
サーバ200の通信部204において妖精の表示状況に関する問い合わせを受信すると、仮想キャラクタ処理部256は、この問い合わせをスマートフォン500へ転送する(S88)。
スマートフォン500の通信部506において妖精の表示状況に関する問い合わせを受信すると、スマートフォン500のAR表示処理部526は、妖精IDに係る妖精がAR画面内に表示されているか否かを判定する。AR表示処理部526によって妖精が表示されていないと判定した場合には、妖精が「非表示」であることを示す表示状況が、スマートフォン500の通信部506からサーバ200へ送信される。
サーバ200の通信部204において「非表示」の表示状況を受信すると、サーバ200のデータ移動部246によって、妖精の表示状況に関する問い合わせの送信が繰り返される。スマートフォン500も、上述の処理を繰り返す。したがって、妖精が表示されなければ、待機を続けることになる。
一方、スマートフォン500のAR表示処理部526によって妖精が表示されていると判定した場合には(S89)、妖精が「表示中」であることを示す表示状況がサーバ200へ送信される(S90)。
サーバ200の通信部204において「表示中」を示す表示状況を受信すると、サーバ200の仮想キャラクタ処理部256は、通信部204を介して、「表示中」を示す表示状況をロボット100へ転送する(S91)。
ロボット100の通信部142において「表示中」を示す表示状況を受信すると、ロボット100のデータ移動部184は、データ移動処理を実行する(S92)。たとえば、写真データがSNSサーバへアップロードされる。端子E、FおよびGを介して図25に示したシーケンスへ移る。
データ移動処理が始まると、ロボット100の通信部142は、データ移動の開始通知をサーバ200へ送信する(S93)。データ移動の開始通知には、妖精IDが含まれる。
サーバ200の通信部204においてデータ移動の開始通知を受信すると、サーバ200の仮想キャラクタ処理部256は、通信部204を介して、データ移動の開始通知をスマートフォン500へ転送する(S94)。
スマートフォン500の通信部506においてデータ移動の開始通知を受信すると、スマートフォン500のAR表示処理部526は、データを運搬している姿の妖精を表すグラフィック画像をAR画面に表示させる(S95)。データ運搬中を表すグラフィック画像に変更することによって、データ転送が行われていることをユーザが認識しやすくなる。
その後、ロボット100におけるデータ移動処理が完了すると、ロボット100の通信部142は、データ移動の完了通知をサーバ200へ送信する(S96)。データ移動の完了通知には、妖精IDが含まれる。
サーバ200の通信部204においてデータ移動の完了通知を受信すると、サーバ200の仮想キャラクタ処理部256は、通信部204を介して、データ移動の完了通知をスマートフォン500へ転送する(S97)。
スマートフォン500の通信部506においてデータ移動の完了通知を受信すると、スマートフォン500のAR表示処理部526は、元の姿の妖精を表すグラフィック画像をAR画面に表示させる(S98)。つまり、何もしていないときの妖精のグラフィック画像が表示される。元の姿を表すグラフィック画像に戻すことによって、データ転送が終わったことをユーザが認識しやすくなる。
このように、ユーザが妖精を視認してからデータ移動が始まるようにすれば、ユーザの知らないうちにデータの移動が終わっているという事態を回避できる。また、データ運搬中の姿で妖精を表示すれば、データが移動していることを感覚的に捉えやすくなる。妖精を視認するためにスマートフォン500をかざす行為は楽しく、「妖精を見つけたおかげで、妖精にデータを運ぶという仕事をさせることができた」と感じさせるので、ユーザを飽きさせないという面もある。
[その他の態様]
その他の態様として、家屋内にユーザがいない場合に、自動的に妖精が投入されるようにしてもよい。例えば、サーバ200の認識部212によって無人状態が所定時間以上続いたと認識した場合に、仮想キャラクタ投入部250が自動的に妖精処理を起動するように制御する。このようにすれば、ロボット100がモーションを起こす契機を絶やさないようにできる。
その他の態様として、妖精が室内に流れる音楽に気づいてロボット100に踊りを促すことによって、ロボット100が音楽にあわせて踊りだすという仕様も考えられる。具体的には、スマートフォン500に搭載されている音楽検知ソフトが、マイクロフォンで入力した音データによって音楽を検知すると、音楽検知結果を仮想キャラクタ処理部256に渡す。仮想キャラクタ処理部256は、音楽通知をロボット100に転送する。ロボット100は、音楽通知を受信すると、音楽通知イベントを生成し、音楽通知イベントの発生によって踊るモーションを選択して実行する。
尚、ユーザがスマートフォン500を操作して妖精の回収を指示すれば、サーバ200はその妖精に対応する仮想キャラクタ処理部256の処理を停止させ、その仮想キャラクタ処理部256を消滅させる。また、仮想キャラクタ処理部256が設定されてから所定時間が経過すると、その仮想キャラクタ処理部256が処理を終え、自ら消滅するようにしてもよい。
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
1つのロボット100と1つのサーバ200、複数の外部センサ114によりロボットシステム300が構成されるとして説明したが、ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部がロボット100に割り当てられてもよい。1つのサーバ200が複数のロボット100をコントロールしてもよいし、複数のサーバ200が協働して1以上のロボット100をコントロールしてもよい。
ロボット100やサーバ200以外の第3の装置が、機能の一部を担ってもよい。図9において説明したロボット100の各機能とサーバ200の各機能の集合体は大局的には1つの「ロボット」として把握することも可能である。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム300に求められる仕様等に鑑みて決定されればよい。
上述したように、「狭義におけるロボット」とはサーバ200を含まないロボット100のことであるが、「広義におけるロボット」はロボットシステム300のことである。サーバ200の機能の多くは、将来的にはロボット100に統合されていく可能性も考えられる。
ロボット100の行動制御プログラムは、所定のサーバからインターネットを介して提供されてもよいし、CD−ROMなどの固定の記録媒体により提供されてもよい。
いずれにしてもロボット100の行動制御プログラムは、ロボット100とは異なる記録媒体(サーバ、CD−ROMなど)から提供されることにより、ロボット100にインストールされてもよい。
仮想キャラクタは、妖精などの親密度が高いキャラクタだけでなく、恐竜や怪物などロボット100が嫌う対象であってもよい。ロボット100が嫌う対象(「嫌悪キャラクタ」という)には、親密度が妖精などより低く設定される。これにより、嫌悪キャラクタが仮想空間に投入されると、ロボット100は嫌悪キャラクタから逃げるように振る舞う。
また、仮想キャラクタは、妖精などの移動できるキャラクタではなく、料理や衣装などの移動できない物を表現したアイテムであってもよい。アイテム毎に、影響を及ぼす内部パラメータが定義されてよい。例えば、料理や衣装などの嗜好アイテムは好奇心のパラメータに影響を与え、好奇心を高める。この結果、嗜好アイテムが仮想空間に投入されると、ロボット100はそのアイテムに近づく。また、雷などの嫌悪アイテムは、不安感のパラメータに影響を与え、不安な気持ちを増大させる。この結果、嫌悪アイテムが仮想空間に投入されるとロボット100は、そのアイテムから離れる。
嗜好アイテムと嫌悪アイテムとを同時に投入してもよく、この場合は、ロボット100は遠く離れた場所から注視するような振る舞いをする。このように、仮想キャラクタとして、様々なアイテムを加えることで、多様な制御ができる。
仮想キャラクタにより一時的に機能が追加されるとしたが、追加される機能はいろいろとあってよい。例えば、花を見つける妖精が仮想キャラクタとして投入されると、ロボット100は花に対する物体認識力が高まり、その妖精が投入されていないときより花を見つけやすくなる。
また、火の妖精と水の妖精を投入し、あるロボット100には火の妖精を関連付け、別のロボット100には水の妖精を関連付ける。火の妖精が関連付けられたロボット100は、火を使った攻撃ができるようになり、水の妖精が関連付けられたロボット100は、水を使った攻撃ができるようになる。そして、火の妖精が関連付けられたロボット100と水の妖精が関連付けられたロボット100とが、それぞれの攻撃方法で戦うといったゲーム要素の強い実施形態も実現できる。
本実施形態におけるロボット100は、妖精を介して取得した行動命令に従うので、自律的に行動するロボットというコンセプトを尊重しつつ、緩やかな他律性を導入することができる。また、ロボット100が、妖精とコミュニケーションを図るという特殊な認知能力を備えているという想定で、ユーザに幻想的な楽しみを与えることができるという面もある。
また、ロボット100は、妖精の位置に基づいて自律的にモーションを実行するので、妖精との位置関係に基づく自主的な振る舞いを演出できる。
また、ロボット100は、妖精の位置へ向って移動するので、ロボット100が妖精を慕う様子を表現できる。妖精の位置を間接的にユーザにわからせることができる面もある。
また、ロボット100は、妖精の動作に基づいて自律的にモーションを実行するので、妖精の動きに応じる自主的な振る舞いを演出できる。
また、ロボット100は、妖精の動作を真似るので、ロボット100が妖精に抱く共感を表現できる。妖精の動作を間接的にユーザにわからせることができる面もある。
また、現実入力系によるイベントと仮想入力系によるイベントを同じ系統で扱うので、入力系の違いによるイベント取り扱いの差異を解消し、現実空間と仮想空間を融合した世界観を円滑に表現できる。
また、妖精に対する親密度に応じてモーションを決定するので、緩やかな他律性を実現できる。
また、妖精に従った後の状況に応じて妖精に対する親密度を調整するので、ロボット100は妖精に対する信頼性を築きやすい。
また、ロボット100の感情に応じてモーションを決定するので、緩やかな他律性を実現できる。
また、妖精に従った後の状況に応じてロボット100の感情を調整するので、妖精に対する柔軟な従順性を築きやすい。
100 ロボット、102 前輪、102a 左輪、102b 右輪、103 後輪、104 ボディ、106 手、108 着座面、110 目、112 ツノ、114 外部センサ、118 バッテリー、120 駆動機構、122 プロセッサ、124 記憶装置、126 通信機、128 内部センサ、130 電源線、132 信号線、134 ワイヤ、136 データ処理部、142 通信部、148 データ格納部、150 動作制御部、152 計測データ入力部、154 現実認識部、160 モーション格納部、162 イベントテーブル格納部、164 親密度格納部、166 感情格納部、168 マップ格納部、170 現実入力系、172 仮想I/F系、174 ロボット制御系、176 仮想入力系、178 仮想出力系、182 仮想認識部、184 データ移動部、186 交信データ出力部、188 交信データ入力部、190 親密度管理部、192 感情管理部、194 位置変換部、200 サーバ、202 データ処理部、204 通信部、206 データ格納部、208 位置管理部、212 認識部、218 個人データ格納部、220 親密度管理部、222 動作制御部、232 モーション格納部、244 状態管理部、246 データ移動部、250 仮想キャラクタ投入部、252 仮想キャラクタ位置管理部、254 仮想キャラクタ情報提供部、256 仮想キャラクタ処理部、260 仮想キャラクタプログラム格納部、262 仮想キャラクタデータ格納部、300 ロボットシステム、308 ベースフレーム、310 本体フレーム、312 ホイールカバー、314 外皮、316 頭部フレーム、318 胴部フレーム、320 ヨー軸、322 ピッチ軸、324 ロール軸、325 プレート、326 アクチュエータ、327 通気孔、328 ベースプレート、329 クロスリンク機構、330 ジョイント、332 アッパープレート、334 ロアプレート、336 サイドプレート、342 制御回路、370 車輪駆動機構、378 回動軸、379 アクチュエータ、390 開口部、440 妖精データ、500 スマートフォン、502 内部センサ、504 データ処理部、506 通信部、508 データ格納部、510 カメラ、520 アプリケーション、522 操作受付部、524 命令出力部、526 AR表示処理部、528 データ移動部、530 移動対象データ格納部

Claims (17)

  1. 現実空間に関する環境情報を取得する現実入力系と、
    仮想空間に位置する仮想キャラクタによって転送される行動命令を取得する仮想入力系と、
    環境情報に基づいて自律的にロボットの第1モーションを決定し、かつ行動命令に従って他律的にロボットの第2モーションを決定する動作制御部と、
    第1モーションおよび第2モーションを実行する駆動機構と、を備えることを特徴とする自律行動型ロボット。
  2. 前記仮想入力系は、仮想キャラクタの仮想空間における位置を示す通知を取得し、
    前記動作制御部は、仮想キャラクタの仮想空間における位置に基づいて自律的にロボットの第3モーションを決定し、
    前記駆動機構は、第3モーションを実行することを特徴とする請求項1記載の自律行動型ロボット。
  3. 第3モーションは、仮想キャラクタの仮想空間における位置に対応する現実空間における位置へ向う移動であることを特徴とする請求項2記載の自律行動型ロボット。
  4. 前記仮想入力系は、仮想キャラクタの動作を示す通知を取得し、
    前記動作制御部は、仮想キャラクタの動作に基づいて自律的にロボットの第4モーションを決定し、
    前記駆動機構は、第4モーションを実行することを特徴とする請求項1から3のいずれかに記載の自律行動型ロボット。
  5. 第4モーションは、仮想キャラクタの動作を模倣する行動であることを特徴とする請求項4記載の自律行動型ロボット。
  6. 前記現実入力系は、環境情報に基づく第1イベントを生成し、
    前記仮想入力系は、行動命令に関する第2イベントを生成し、
    前記動作制御部は、第1イベントと第2イベントを同じ系統として処理することによって、第1モーションおよび第2モーションを決定することを特徴とする請求項1から5のいずれかに記載の自律行動型ロボット。
  7. 前記動作制御部は、仮想キャラクタに対する親密度に応じて、第2モーションを決定することを特徴とする請求項1から6のいずれか記載の自律行動型ロボット。
  8. 第2モーションを実行した後の状況に応じて仮想キャラクタに対する親密度を調整する親密度管理部を、更に備えることを特徴とする請求項7記載の自律行動型ロボット。
  9. 前記動作制御部は、ロボットの感情に従って、第2モーションを決定することを特徴とする請求項1から8のいずれか記載の自律行動型ロボット。
  10. 第2モーションを実行した後の状況に応じてロボットの感情を調整する感情管理部を、更に備えることを特徴とする請求項9記載の自律行動型ロボット。
  11. 自律行動型ロボットとユーザ端末と管理装置とを含むロボット制御システムであって、
    前記自律行動型ロボットは、
    現実空間に関する環境情報を入力する現実入力系と、
    仮想キャラクタによって転送される行動命令を入力する仮想入力系と、
    環境情報に基づいて自律的にロボットの第1モーションを決定し、かつ行動命令に従って他律的にロボットの第2モーションを決定する動作制御部と、
    第1モーションおよび第2モーションを実行する駆動機構と、を備え、
    前記ユーザ端末は、
    仮想キャラクタにロボットへ転送させる行動命令を出力する命令出力部を備え、
    前記管理装置は、
    仮想空間における仮想キャラクタを制御する仮想キャラクタ処理部を備え、
    前記仮想キャラクタ処理部は、前記ユーザ端末から出力された行動命令を前記自律行動型ロボットへ転送することを特徴とするロボット制御システム。
  12. 前記ユーザ端末は、
    撮影画像を取得するカメラと、
    仮想空間における仮想キャラクタの位置に応じて、仮想キャラクタを撮影画像に重ねた拡張現実画面を表示する表示処理部と、を更に備え、
    ユーザが前記ユーザ端末の拡張現実画面に表示された仮想キャラクタを視認したタイミングで、ロボットにおいてデータ送信を開始するとともに、前記ユーザ端末においてデータを運ぶ姿の仮想キャラクタを拡張現実画面に表示することを特徴とする請求項11記載のロボット制御システム。
  13. 撮影画像を取得するカメラと、
    仮想空間における仮想キャラクタの位置に応じて、仮想キャラクタを撮影画像に重ねた拡張現実画面を表示する表示処理部と、
    仮想キャラクタにロボットへ転送させる行動命令を出力する命令出力部と、
    を備えることを特徴とするユーザ端末。
  14. 仮想空間における仮想キャラクタを制御する仮想キャラクタ処理部を備えた管理装置であって、
    前記仮想キャラクタ処理部は、仮想キャラクタに自律行動型ロボットへ転送させる行動命令をユーザ端末から受け付けた場合に、当該行動命令を当該自律行動型ロボットへ転送することを特徴とする管理装置。
  15. 現実空間に関する環境情報を入力する機能と、
    仮想キャラクタによって転送される行動命令を入力する機能と、
    環境情報に基づいて自律的にロボットの第1モーションを決定し、かつ行動命令に従って他律的にロボットの第2モーションを決定する機能と、
    第1モーションおよび第2モーションを駆動機構に実行させる機能と、をコンピュータに発揮させることを特徴とする自律行動型ロボットの行動制御プログラム。
  16. 仮想空間における仮想キャラクタの位置に応じて、カメラにより取得された撮影画像に仮想キャラクタを重ねた拡張現実画面を表示する機能と、
    仮想キャラクタに自律行動型ロボットへ転送させる行動命令を出力する機能と、をコンピュータに発揮させることを特徴とするプログラム。
  17. 仮想空間における仮想キャラクタを制御する機能と、
    仮想キャラクタに自律行動型ロボットへ転送させる行動命令をユーザ端末から受け付けた場合に、当該行動命令を当該自律行動型ロボットへ転送する機能と、をコンピュータに発揮させることを特徴とするプログラム。
JP2018119717A 2018-06-25 2018-06-25 仮想キャラクタを想定する自律行動型ロボット Active JP7298860B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018119717A JP7298860B2 (ja) 2018-06-25 2018-06-25 仮想キャラクタを想定する自律行動型ロボット
US16/443,762 US11207774B2 (en) 2018-06-25 2019-06-17 Autonomously acting robot that imagines virtual character

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018119717A JP7298860B2 (ja) 2018-06-25 2018-06-25 仮想キャラクタを想定する自律行動型ロボット

Publications (2)

Publication Number Publication Date
JP2020000279A true JP2020000279A (ja) 2020-01-09
JP7298860B2 JP7298860B2 (ja) 2023-06-27

Family

ID=68981349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018119717A Active JP7298860B2 (ja) 2018-06-25 2018-06-25 仮想キャラクタを想定する自律行動型ロボット

Country Status (2)

Country Link
US (1) US11207774B2 (ja)
JP (1) JP7298860B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022044843A1 (ja) * 2020-08-28 2022-03-03 ソニーグループ株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2024043434A1 (ko) * 2022-08-24 2024-02-29 삼성전자주식회사 로봇 및 그 제어 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10427305B2 (en) * 2016-07-21 2019-10-01 Autodesk, Inc. Robotic camera control via motion capture
US11890747B2 (en) 2018-09-26 2024-02-06 Disney Enterprises, Inc. Interactive autonomous robot configured with in-character safety response protocols
CN109726693B (zh) * 2019-01-02 2021-05-07 京东方科技集团股份有限公司 用于评估设备环境噪声的方法、装置、介质及电子设备
WO2020158642A1 (ja) * 2019-01-31 2020-08-06 ソニー株式会社 ロボットの制御装置、ロボットの制御方法、及びプログラム
KR20210020312A (ko) * 2019-08-14 2021-02-24 엘지전자 주식회사 로봇 및 그의 제어 방법
CN111309453A (zh) * 2020-02-13 2020-06-19 佛山智能装备技术研究院 分布式部署的智能机器人***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001212782A (ja) * 2000-01-31 2001-08-07 Sony Corp ロボット装置及びロボット装置の制御方法
JP2002337079A (ja) * 2001-05-11 2002-11-26 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2004283958A (ja) * 2003-03-20 2004-10-14 Sony Corp ロボット装置、その行動制御方法及びプログラム
JP2010149277A (ja) * 1999-01-20 2010-07-08 Sony Corp ロボット装置及び動作制御方法
WO2017169826A1 (ja) * 2016-03-28 2017-10-05 Groove X株式会社 お出迎え行動する自律行動型ロボット

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203009A (ja) * 1998-01-20 1999-07-30 Sony Corp 情報処理装置および方法、並びに提供媒体
JPH11212934A (ja) * 1998-01-23 1999-08-06 Sony Corp 情報処理装置および方法、並びに提供媒体
JP2000323219A (ja) 1999-05-10 2000-11-24 Sony Corp 接続装置及びロボットシステム
WO2001009863A1 (en) * 1999-07-31 2001-02-08 Linden Craig L Method and apparatus for powered interactive physical displays
CN1942289A (zh) * 2004-04-16 2007-04-04 松下电器产业株式会社 机器人、提示输出装置、机器人控制***、机器人控制方法、机器人控制程序及集成电路
US8287372B2 (en) * 2006-09-28 2012-10-16 Mattel, Inc. Interactive toy and display system
KR100968944B1 (ko) * 2009-12-14 2010-07-14 (주) 아이알로봇 로봇 동기화 장치 및 그 방법
US20150309316A1 (en) * 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
US9643314B2 (en) * 2015-03-04 2017-05-09 The Johns Hopkins University Robot control, training and collaboration in an immersive virtual reality environment
JP2018176386A (ja) * 2017-04-19 2018-11-15 富士ゼロックス株式会社 情報処理装置及びプログラム
WO2019116521A1 (ja) * 2017-12-14 2019-06-20 株式会社ソニー・インタラクティブエンタテインメント エンターテインメントシステム、ロボット装置およびサーバ装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010149277A (ja) * 1999-01-20 2010-07-08 Sony Corp ロボット装置及び動作制御方法
JP2001212782A (ja) * 2000-01-31 2001-08-07 Sony Corp ロボット装置及びロボット装置の制御方法
JP2002337079A (ja) * 2001-05-11 2002-11-26 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2004283958A (ja) * 2003-03-20 2004-10-14 Sony Corp ロボット装置、その行動制御方法及びプログラム
WO2017169826A1 (ja) * 2016-03-28 2017-10-05 Groove X株式会社 お出迎え行動する自律行動型ロボット

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022044843A1 (ja) * 2020-08-28 2022-03-03 ソニーグループ株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2024043434A1 (ko) * 2022-08-24 2024-02-29 삼성전자주식회사 로봇 및 그 제어 방법

Also Published As

Publication number Publication date
US20190389058A1 (en) 2019-12-26
US11207774B2 (en) 2021-12-28
JP7298860B2 (ja) 2023-06-27

Similar Documents

Publication Publication Date Title
JP7298860B2 (ja) 仮想キャラクタを想定する自律行動型ロボット
CN110024000B (zh) 使瞳部变化的行为自主型机器人
US11498222B2 (en) Autonomously acting robot that stares at companion
JP6572943B2 (ja) ロボット、ロボットの制御方法及びプログラム
US20190184572A1 (en) Autonomously acting robot that maintains a natural distance
JP7236142B2 (ja) 自律行動型ロボット
CN111602143A (zh) 基于用户的人工智能(ai)模型的移动自主个人伴侣
JP7128842B2 (ja) エンターテインメントシステム、ロボット装置およびサーバ装置
JP6671577B2 (ja) 人を識別する自律行動型ロボット
JP7420387B2 (ja) 衣装を着用するロボット
US11712796B2 (en) Robot that acts comically, and structure thereof
US20200030707A1 (en) Robot on which outer skin is mounted
JP2019214119A (ja) ロボットの関節に好適なジョイント構造
JP2019171566A (ja) 柔らかな外皮を有するロボット
JP2024055866A (ja) 内部状態または外部環境に応じて自律的に行動選択するロボット
JP2024059719A (ja) ロボット用充電ステーション
US20210197393A1 (en) Information processing device, information processing method, and program
JP6579538B2 (ja) 衣装製作支援装置
WO2022044843A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2020151070A (ja) ロボット及びロボットの制御方法
WO2023037608A1 (ja) 自律移動体、情報処理方法、及び、プログラム
WO2023037609A1 (ja) 自律移動体、情報処理方法、及び、プログラム
JP7298861B2 (ja) 日常生活を記録する自律行動型ロボット
JP2003190650A (ja) 疑似生物機器

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230608

R150 Certificate of patent or registration of utility model

Ref document number: 7298860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150