(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-10
(45)【発行日】2024-01-18
(54)【発明の名称】ロボット制御システム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240111BHJP
G01B 21/22 20060101ALI20240111BHJP
【FI】
B25J13/00 Z
G01B21/22
(21)【出願番号】P 2019011645
(22)【出願日】2019-01-25
【審査請求日】2021-02-17
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】水野 公嘉
(72)【発明者】
【氏名】黒崎 俊行
【審査官】神山 貴行
(56)【参考文献】
【文献】特表2014-505934(JP,A)
【文献】特開2018-126796(JP,A)
【文献】特開2018-043338(JP,A)
【文献】特開2002-239952(JP,A)
【文献】特表2018-535468(JP,A)
【文献】特開2009-238233(JP,A)
【文献】特開平02-012504(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G01B 21/22
(57)【特許請求の範囲】
【請求項1】
第1オペレーティングシステムを実行して、アプリケーションを処理するアプリケーションプロセッサと、
前記アプリケーションプロセッサからの指示にもとづいて、第2オペレーティングシステムを実行して、画像センサで取得された画像データに含まれる対象物を認識するセンサプロセッサと、
前記アプリケーションプロセッサからの運動要求にもとづいて、第3オペレーティングシステムを実行して、ロボットの可動部位の運動を制御する運動制御プロセッサと、を備え、
前記アプリケーションプロセッサは、前記センサプロセッサおよび前記運動制御プロセッサのそれぞれと通信可能に接続されており、
第1オペレーティングシステム、第2オペレーティングシステム、第3オペレーティングシステムは、それぞれ異なる種類のオペレーティングシステムである、
ことを特徴とするロボット制御システム。
【請求項2】
第2オペレーティングシステムは、画像解析用ニューラルネットワークを制御するオペレーティングシステムであり、
第3オペレーティングシステムは、リアルタイムオペレーティングシステムである、
ことを特徴とする請求項1に記載のロボット制御システム。
【請求項3】
前記アプリケーションプロセッサは、処理するアプリケーションに応じて、実施するべき画像解析機能を前記センサプロセッサに指示する、
ことを特徴とする請求項1または2に記載のロボット制御システム。
【請求項4】
2つのプロセッサ間は、通信可能に接続されている、
ことを特徴とする請求項1から3のいずれかに記載のロボット制御システム。
【請求項5】
前記センサプロセッサは画像センサと接続し、
前記運動制御プロセッサはモーションセンサと接続して、前記画像センサの向きを特定するための姿勢情報を導出する、
ことを特徴とする請求項1から4のいずれかに記載のロボット制御システム。
【請求項6】
前記センサプロセッサは画像センサおよび距離センサと接続する、
ことを特徴とする請求項1から4のいずれかに記載のロボット制御システム。
【請求項7】
前記センサプロセッサは画像センサおよびイベント駆動型センサと接続する、
ことを特徴とする請求項1から4のいずれかに記載のロボット制御システム。
【請求項8】
前記センサプロセッサは、画像解析機能を実現するニューラルネットワークのパラメータセットを最適化する学習機能を有する、
ことを特徴とする請求項1から7のいずれかに記載のロボット制御システム。
【請求項9】
前記センサプロセッサは、画像解析用のパラメータセットをニューラルネットワークに設定して画像解析機能を実現するものであって、前記パラメータセットは、前記アプリケーションプロセッサより提供される、
ことを特徴とする請求項1から8のいずれかに記載のロボット制御システム。
【請求項10】
前記アプリケーションプロセッサ、前記センサプロセッサ、前記運動制御プロセッサは、ロボット筐体内に設けられる、
ことを特徴とする請求項1から9のいずれかに記載のロボット制御システム。
【請求項11】
前記センサプロセッサ、前記運動制御プロセッサは、ロボット筐体内に設けられ、前記アプリケーションプロセッサは、ロボット筐体外に設けられる、
ことを特徴とする請求項1から9のいずれかに記載のロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの行動を制御するシステムに関する。
【背景技術】
【0002】
従来より、様々なタイプのロボットの研究、開発が行われている。特許文献1は、人間型の脚式移動ロボットによる歩行制御の学習手法を開示する。特許文献1は、初期に与えられた歩行軌道でロボットが安定歩行できない場合に、歩行可能となる安定歩行軌道を強化学習する方法を開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボット技術は日々進化している。従来は4足歩行タイプのペット型ロボットが市販モデルの主流であったが、近年ではダンスなどの複雑な動作を行う人型ロボットが流通している。演算処理能力の向上および学習モデルの改良により、ロボットが自身で学習して既存機能を向上し、また新たな機能を獲得することが期待される。
【0005】
自律ロボットの行動目的および行動態様は、実行するアプリケーションにより定まる。ロボットを自律歩行させるアプリケーションは、ロボット周辺の環境情報を収集して解析し、ロボット関節を構成する複数のモータの回転速度を算出する。各モータには制御用のマイコンが備えられ、複数のマイコンが同期して、算出された回転速度に応じた電力をモータに供給する。たとえばユーザを追いかけるという行動目的をもつアプリケーションは、カメラ画像からユーザおよび障害物の空間内位置を特定し、当該ユーザを追うルートを定めて、ルート上をロボットが移動するように各ロボット関節のモータ回転速度を算出する。
【0006】
ロボットでは、画像センシングした正確なデータにもとづいて複数のモータの回転速度が算出され、算出された回転速度で時間遅延なくモータが回転することで、行動目的にしたがう行動態様が実現される。ロボットに高度な自律行動機能をもたせようとするとアプリケーションによる演算量が大きくなるが、その場合であってもロボットが行動できるようにするためには、画像センシング機能および/または運動制御機能を即時的に実現するための仕組みを構築する必要がある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様のロボット制御システムは、第1オペレーティングシステムを実行して、アプリケーションを処理するアプリケーションプロセッサと、第2オペレーティングシステムを実行して、画像センサで取得された画像データを処理するセンサプロセッサと、第3オペレーティングシステムを実行して、ロボットの可動部位の運動を制御する運動制御プロセッサとを備える。第1オペレーティングシステム、第2オペレーティングシステム、第3オペレーティングシステムは、それぞれ異なる。
【0008】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
【図面の簡単な説明】
【0009】
【
図1】実施例のエンターテインメントシステムの概略構成を示す図である。
【
図2】制御システムのハードウェア構成を示す図である。
【発明を実施するための形態】
【0010】
図1は、実施例のエンターテインメントシステム1の概略構成を示す。エンターテインメントシステム1は、ロボット装置20およびサーバ装置10を備える。ロボット装置20は自律歩行可能な移動体であって、アクセスポイント(AP)3を介して、インターネットなどのネットワーク2経由でサーバ装置10と通信可能に接続する。
【0011】
ロボット装置20は人型ロボットとして構成され、オーナであるユーザにより所有される。ロボット装置20はオーナを、画像解析による顔認証や音声解析による声紋認証などによって認識できることが好ましい。ロボット装置20がオーナを認識することで、たとえばオーナからの指示のみを受け付け、オーナ指示にしたがって行動させることができる。
【0012】
ロボット装置20は人間と同じような部位を持ち、人間が親しみを覚える外形を有することが好ましい。ロボット装置20は、頭部、頸部、体幹(胸部、腹部、背部)、上肢、下肢を有し、上肢は上腕、前腕および手を、下肢は大腿、下腿および足を有してよい。部位同士はアクチュエータによって連結される。アクチュエータは、可動部位である関節部分に配置されるモータと、モータ間を連結するリンク機構とを少なくとも含む。ロボット装置20はアクチュエータを駆動することで姿勢のバランスを保ちつつ、行動目的に応じた挙動を示す。
【0013】
ロボット装置20は、歩いたり、走ったりする機能や、障害物を回避する機能を含む基本機能を、各アクチュエータの制御手法を記述した基本アプリケーションプログラム(以下、「基本アプリケーション」とも呼ぶ)により実現する。基本アプリケーションはロボット装置20の基本機能を担当することから、ロボット装置20にプリインストールされていることが好ましく、たとえばミドルウェアに組み込まれていてよい。
【0014】
基本アプリケーション以外のアプリケーションプログラムは、応用アプリケーションプログラム(以下、「応用アプリケーション」とも呼ぶ)である。応用アプリケーションはたとえばダンス機能などの付加的な機能を実現する。応用アプリケーションは、サーバ装置10から必要に応じて供給されて、ロボット装置20にインストールされる。ロボット装置20は、新しい応用アプリケーションをダウンロードしてインストールすることで、新しい機能を獲得する。
【0015】
図2は、制御システム4のハードウェア構成を示す。実施例の制御システム4は、ロボット装置20の画像センシング機能および運動制御機能の即時性を実現するためのアーキテクチャを備える。制御システム4はマルチプロセッサ構成をとり、アプリケーションを処理するアプリケーションプロセッサ30、画像データを処理するセンサプロセッサ50、ロボット装置20の可動部位の運動を制御する運動制御プロセッサ70を備える。制御システム4において、アプリケーションプロセッサ30およびセンサプロセッサ50は、画像解析システムを構築し、アプリケーションプロセッサ30および運動制御プロセッサ70は、運動制御システムを構築する。アプリケーションプロセッサ30、センサプロセッサ50、運動制御プロセッサ70はロボット装置20の筐体内に設けられ、2つのプロセッサ間は、互いに通信可能に接続されている。
【0016】
このアーキテクチャでは、アプリケーションプロセッサ30がメインプロセッサとして動作する。センサプロセッサ50は、アプリケーションプロセッサ30により指示された画像解析を実施して、画像解析結果をアプリケーションプロセッサ30に提供する。運動制御プロセッサ70は、アプリケーションプロセッサ30により指示された回転速度でアクチュエータを駆動制御する。センサプロセッサ50および運動制御プロセッサ70がそれぞれ担当の処理を実施することで、アプリケーションプロセッサ30は画像センシング機能および運動制御機能をもつ必要がなく、アプリケーションプロセッサ30の処理負荷を低減できる。
【0017】
アプリケーションプロセッサ30は、第1オペレーティングシステム(以下、「第1OS」とも呼ぶ)を実行して、アプリケーションを処理する。処理対象となるアプリケーションは、基本アプリケーションおよび応用アプリケーションの双方であり、アプリケーションプロセッサ30は、複数の基本アプリケーションを同時に処理しながら、必要な応用アプリケーションも処理する。そのためアプリケーションプロセッサ30は複数のCPUコアを搭載する。第1OSは、様々なアプリケーションを同時に実行できる汎用OSであることが好ましい。
【0018】
アプリケーションプロセッサ30には、表示装置32、スピーカ34、通信装置36およびマイク38が接続される。表示装置32およびスピーカ34は、アプリケーションプロセッサ30で生成された画像および音声をそれぞれ出力し、ユーザに情報を提示する。通信装置36は無線LANでAP3に接続し、AP3を介してサーバ装置10と通信する。なお通信装置36は携帯電話通信機能を有してもよい。通信装置36は、サーバ装置10から応用アプリケーションやパッチファイルをダウンロードできる。マイク38は、周囲の音声を集音して音声信号に変換し、アプリケーションプロセッサ30に提供する。アプリケーションプロセッサ30は音声認識機能を有し、ユーザによる音声指示をもとに行動を決定してもよい。
【0019】
センサプロセッサ50は、画像センシング機能を実施するプロセッサであって、画像センサ52、距離センサ54およびイベント駆動型センサ56と接続する。画像センサ52、距離センサ54およびイベント駆動型センサ56はロボット装置20に搭載されて、ロボット装置20の周辺情報を取得する視覚センサとして動作し、センサプロセッサ50は、ビジョンに関する認識機能を担当する。
【0020】
画像センサ52はカメラであって、所定の周期(たとえば1/60秒)で撮影したRGB画像をセンサプロセッサ50に供給する。距離センサ54は、TOF距離画像センサであってよく、三次元距離画像をセンサプロセッサ50に供給する。イベント駆動型センサ56は撮像素子の画素の輝度値変化を検出するセンサであって、検出した時刻と画素座標の組合せをセンサプロセッサ50に供給する。距離センサ54およびイベント駆動型センサ56は、画像データに含まれる被写体に関する情報を検出する情報センサである。
【0021】
イベント駆動型センサ56は、画像センサ52よりも広いダイナミックレンジを有し、画像センサ52のダイナミックレンジを超えた入射光が存在する環境下においても、被写体の動きを正確に検出できる。またイベント駆動型センサ56は、画像センサ52よりも高い時間分解能で被写体の動きを検出できるため、センサプロセッサ50は、画像センサ52で取得された画像データを処理する際に、イベント駆動型センサ56で取得された動き情報を補完的に利用することが可能である。
【0022】
センサプロセッサ50は、第2オペレーティングシステム(以下、「第2OS」とも呼ぶ)を実行して、画像センサ52で取得された画像データを処理する。センサプロセッサ50は画像データに含まれる対象物を、機械学習されたモデルを用いて認識するニューラルネットワークを有してよい。センサプロセッサ50は、距離センサ54から被写体の奥行き情報を、イベント駆動型センサ56から被写体の動き情報を取得し、これらの被写体情報を用いて画像センサ52から取得した画像データを解析する。アプリケーションプロセッサ30は、処理するアプリケーションに応じて、実施するべき画像解析機能をセンサプロセッサ50に指示する。
【0023】
たとえばアプリケーションプロセッサ30が、追従対象であるオーナをロボット装置20が追従するアプリケーションを処理する際、センサプロセッサ50に対して、当該オーナの位置を特定することを要求する。センサプロセッサ50は要求を受けて、オーナを撮影画像から認識するための画像解析用パラメータセットをニューラルネットワークに設定し、画像解析によるオーナの認識処理を実施する。なおオーナ認識用のパラメータセットは、センサプロセッサ50に接続する記憶装置(図示せず)に記憶されていてよいが、アプリケーションプロセッサ30から提供されてもよい。センサプロセッサ50は、距離センサ54およびイベント駆動型センサ56で取得された被写体情報を加味して画像データの解析処理を実行してよい。
【0024】
センサプロセッサ50は、アプリケーションに特化した画像解析機能を実現するために、ニューラルネットワークのパラメータセットを最適化する学習機能を有してよい。この例でセンサプロセッサ50はオーナ認識用パラメータセットを最適化する学習を事前に実施しておき、アプリケーションプロセッサ30がオーナを追従するアプリケーションを実施する前に、パラメータセットを最適化しておくことが好ましい。
【0025】
学習機能における目的関数(誤差関数)は、学習用の画像をニューラルネットワークに入力することにより得られる出力と、その画像に対応する正解値(つまり対象者がオーナであること)とを比較して誤差を算出する。学習機能は誤差に基づいて、勾配逆伝搬法等によりパラメータについての勾配を計算し、モーメンタム法に基づいてニューラルネットワークの最適化対象パラメータを更新する。アプリケーションに特化した学習を行うことで、アプリケーションごとに最適なパラメータセットを生成でき、正確な画像解析機能が実現されるようになる。なおセンサプロセッサ50は他の種類の学習機能を有してよい。
【0026】
たとえばアプリケーションプロセッサ30が、動いている特定の物体の行き先を予測してロボット装置20が先回りするアプリケーションを処理する際、センサプロセッサ50は、特定の物体を認識する画像解析を実施しつつ、当該物体の移動軌跡を予測する。イベント駆動型センサ56は、高い時間分解能で被写体の動き情報を検出するため、その動き情報は、正確な移動予測に好適に利用可能である。センサプロセッサ50は、画像センサ52、距離センサ54、イベント駆動型センサ56からの情報をもとに、特定の物体の移動軌跡を予測する。
【0027】
またアプリケーションプロセッサ30が、オーナのジェスチャなどの動きに同期した動きをロボット装置20が行うアプリケーションを処理する際、センサプロセッサ50は、オーナを認識する画像解析を実施しつつオーナの動きを把握し、さらには将来の動きを予測してもよい。センサプロセッサ50は、イベント駆動型センサ56により検出されるオーナの動き情報を取得して、オーナの現在の動きを把握するとともに、現在までの動き情報をもとに、これから行われる動きを予測してもよい。センサプロセッサ50がオーナの動きを予測すると、ロボット装置20は、オーナの動きを先取りして動くことが可能となる。
【0028】
以上のようにセンサプロセッサ50において実行される第2OSは、画像解析用ニューラルネットワークを制御するOSであることが好ましい。第2OSはニューラルネットワークに適した特別なOSであり、したがって第2OSは汎用OSではなく、第1OSと異なる。
【0029】
運動制御プロセッサ70は、ロボット装置20の可動部位の運動を制御するプロセッサであって、複数のモーションセンサ72、複数のタッチセンサ74および複数のマイコン76a~76n(以下、特に区別しない場合には「マイコン76」と呼ぶ)と接続する。1つのマイコン76が1つのモータの駆動を担当する。運動制御プロセッサ70は、ロボット装置20の運動制御機能を担当し、マイコン76を制御して、モータに駆動電流を供給させる。
【0030】
モーションセンサ72は、3軸加速度センサおよび3軸ジャイロセンサを有する。モーションセンサ72は、各関節部分に設けられて、関節部分の3次元空間における位置および姿勢を示すセンサデータおよび/または位置および姿勢の変化を示すセンサデータを運動制御プロセッサ70に提供してよい。なお実施例ではモーションセンサ72が画像センサ52の位置に設けられて、3次元空間における画像センサ52の位置および姿勢を示すセンサデータおよび/または位置および姿勢の変化を示すセンサデータを運動制御プロセッサ70に提供してよい。タッチセンサ74は、ロボット装置20の外表面に設けられて、ロボット装置20への接触を検出する。
【0031】
運動制御プロセッサ70は、第3オペレーティングシステム(以下、「第3OS」とも呼ぶ)を実行して、ロボット装置20の可動部位の運動、つまりはモータの回転を制御する。運動制御プロセッサ70の役割は、アプリケーションプロセッサ30で算出される各モータの回転速度となるようにマイコン76をリアルタイムで管理することであり、さらに重要な役割は、ロボット装置20を転倒させないことである。そのため運動制御プロセッサ70は、アプリケーションプロセッサ30からの運動要求に応える前提として、モーションセンサ72のセンサデータを常時監視して、転倒防止のための姿勢制御アプリケーションを実施している。運動制御プロセッサ70は、たとえばロボット装置20が障害物にぶつかって転倒しそうなときには、直ちに転倒防止のためのモータ制御を実行する。
【0032】
このように運動制御プロセッサ70によるモータ制御には即時性が要求される。そこで運動制御プロセッサ70において実行される第3OSは、リアルタイムOSであることが好ましい。リアルタイムOSとは、姿勢制御アプリケーションなどの特定のアプリケーションを高精度なタイミングで実行するように設計され、アプリケーションをリアルタイム処理可能なOSである。当然のことながら、第3OSは、第1OS、第2OSとも異なる。
【0033】
以上のようにアプリケーションプロセッサ30、センサプロセッサ50、運動制御プロセッサ70が構成される。たとえば、追従対象であるオーナにロボット装置20を追従させるアプリケーションを実行する際、アプリケーションプロセッサ30は、オーナの空間内位置と、ロボット装置20とオーナの間に存在する障害物の空間内位置を知る必要がある。そこでアプリケーションプロセッサ30は、センサプロセッサ50に対して、画像センサ52の画像データに含まれるオーナおよび障害物の位置を特定することを指示する。以下、アプリケーションプロセッサ30の認識対象となるオーナおよび障害物を、単に「対象物」とも呼ぶ。
【0034】
センサプロセッサ50は、画像センサ52から画像データを取得し、距離センサ54の奥行き情報およびイベント駆動型センサ56の動き情報を用いて、アプリケーションプロセッサ30により指示された画像解析を実施する。センサプロセッサ50は、画像センサ52を基点とするカメラ座標系における対象物の位置座標を含む画像解析結果を、アプリケーションプロセッサ30に提供する。この画像解析結果には、カメラ座標系における対象物の奥行き情報(距離情報)も含まれる。したがってアプリケーションプロセッサ30は、画像センサ52を基点としたカメラ座標系における対象物の3次元座標を特定できる。
【0035】
運動制御プロセッサ70は、センサプロセッサ50に、画像センサ52の向きを特定するための姿勢情報を提供する。この姿勢情報は、画像センサ52の位置を特定するための情報を含んでよい。つまり姿勢情報は、画像センサ52が画像データを取得したときの空間内の光軸向きおよび位置を特定するための情報を含む。ロボット装置20において、各関節部分や主要部位の位置は、ロボット機体における基準位置を原点としたロボット座標系で定義される。運動制御プロセッサ70は、3次元実空間座標系(空間座標系)における基準位置の3次元座標を常に算出しており、ロボット座標系における画像センサ52の向きおよび位置を特定することで、画像センサ52の空間座標系における向きおよび位置を特定するための姿勢情報を生成する。センサプロセッサ50は画像解析結果を、画像センサ52の姿勢情報とともにアプリケーションプロセッサ30に送信する。
【0036】
アプリケーションプロセッサ30は、姿勢情報を取得することで空間座標系における画像センサ52の向きおよび位置を特定し、画像解析結果を取得することでカメラ座標系における画像センサ52の3次元座標を特定する。これによりアプリケーションプロセッサ30は、対象物の空間座標系における3次元座標を取得する。
【0037】
運動制御プロセッサ70は、センサプロセッサ50により解析される画像データを画像センサ52が取得したときの姿勢情報を、センサプロセッサ50に提供する。運動制御プロセッサ70は、各関節部分に設けられた各モーションセンサ72のセンサデータから、画像センサ52の姿勢情報を導出してよい。なお画像センサ52の設置場所にモーションセンサ72が設けられている場合、運動制御プロセッサ70は画像センサ52の姿勢情報を、当該モーションセンサ72のセンサデータを用いて導出してよい。
【0038】
センサプロセッサ50は、解析に使用する画像データの撮影時刻を運動制御プロセッサ70に通知し、運動制御プロセッサ70は、撮影時刻と同一時刻の画像センサ52の姿勢情報をセンサプロセッサ50に提供する。運動制御プロセッサ70は、姿勢制御アプリケーションを常に実施しており、センサプロセッサ50における画像解析周期(たとえば1/60秒)よりも遙かに短いサンプリング周期で各関節部分および主要部位の位置座標を算出している。実施例の運動制御プロセッサ70は、このサンプリング周期で画像センサ52の姿勢情報を導出して時刻情報とともに記憶装置(図示せず)に記憶しておき、画像データの撮影時刻が通知されると、同一時刻の画像センサ52の姿勢情報を記憶装置から読み出して、センサプロセッサ50に提供してよい。
【0039】
センサプロセッサ50は、画像データの解析中に、運動制御プロセッサ70から姿勢情報を提供される。センサプロセッサ50は、画像データの解析を終了すると、画像センサ52の姿勢情報をメタデータとして画像解析結果に付加し、画像解析結果をアプリケーションプロセッサ30に提供する。アプリケーションプロセッサ30は、画像解析結果と姿勢情報とから、空間内における対象物の位置を特定する。
【0040】
実施例の運動制御プロセッサ70は、画像センサ52の姿勢情報を、アプリケーションプロセッサ30を経由することなく、センサプロセッサ50に提供する。つまり運動制御プロセッサ70は、センサプロセッサ50との間を接続するバス経由で、センサプロセッサ50に姿勢情報を直接提供する。
【0041】
通常のアーキテクチャ設計では、メインプロセッサであるアプリケーションプロセッサ30が、他のプロセッサ同士の間のデータ伝送を中継するため、データ伝送時間は、アプリケーションプロセッサ30による中継時間を加算したものとなる。一方で制御システム4では、センサプロセッサ50と運動制御プロセッサ70とがバス接続されているため、運動制御プロセッサ70が画像センサ52の姿勢情報をセンサプロセッサ50に提供する場合、アプリケーションプロセッサ30を経由するよりも、センサプロセッサ50に直接提供した方がデータ伝送時間は短くなる。そこでリアルタイム性を高めるために、運動制御プロセッサ70は、画像センサ52の姿勢情報を、センサプロセッサ50に直接送信する。
【0042】
センサプロセッサ50は、画像解析時、運動制御プロセッサ70に画像センサ52の姿勢情報の提供を要求してよい。このときセンサプロセッサ50は、解析で使用する画像データの撮影時刻を運動制御プロセッサ70に通知してよい。運動制御プロセッサ70は、姿勢情報の提供要求を受けると、画像センサ52の姿勢情報をセンサプロセッサ50に直接提供する。運動制御プロセッサ70は、画像データの撮影時刻を通知されると、その後は、センサプロセッサ50の画像解析周期に応じて、周期的に姿勢情報を提供してよい。たとえばセンサプロセッサ50の画像解析周期が1/60秒である場合、運動制御プロセッサ70は、通知された撮影時刻を起点として同じ周期で姿勢情報をセンサプロセッサ50に提供してよい。なお運動制御プロセッサ70は、センサプロセッサ50からの要求によらず、周期的に姿勢情報をセンサプロセッサ50に提供してもよい。
【0043】
センサプロセッサ50は、姿勢情報をメタデータとして画像解析結果に付加し、画像解析結果をアプリケーションプロセッサ30に提供する。これによりアプリケーションプロセッサ30は、対象物の空間内位置を特定できる。なおセンサプロセッサ50は、画像解析結果を提供するが、画像解析で使用した画像データをアプリケーションプロセッサ30に提供しない。制御システム4では、センサプロセッサ50が画像データをアプリケーションプロセッサ30に提供しないことで、センサプロセッサ50からアプリケーションプロセッサ30の間の伝送遅延リスクを低減し、アプリケーションプロセッサ30に時間遅延なく画像解析結果を提供する。またセンサプロセッサ50が画像データをアプリケーションプロセッサ30に提供しないことで、個人情報を含む画像データがロボット装置20の外部に流出する事態を避けられる。
【0044】
なおセンサプロセッサ50は画像解析結果を運動制御プロセッサ70に提供してもよい。たとえば運動制御プロセッサ70が所定の対象物のトラッキング機能を有する場合に、センサプロセッサ50による画像解析結果を用いて自律トラッキング行動を制御してよい。
【0045】
以上のように制御システム4では、センサプロセッサ50および運動制御プロセッサ70を設けることで、アプリケーションプロセッサ30に負荷が集中する状況を回避する。またアプリケーションプロセッサ30、センサプロセッサ50、運動制御プロセッサ70のそれぞれが、担当する処理に適したOSを実行することで、制御システム4の全体としての即時性を向上する。
【0046】
本発明を実施例をもとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。ロボット装置20は移動可能なロボットであればよく、2足歩行ロボットに限られない。またロボット装置20は、産業用ロボットなどであってもよい。
【0047】
実施例では、運動制御プロセッサ70が画像センサ52の姿勢情報をセンサプロセッサ50に提供したが、アプリケーションプロセッサ30に提供してもよい。このときアプリケーションプロセッサ30は、姿勢情報をセンサプロセッサ50に転送せずに保持し、センサプロセッサ50から提供される画像解析結果に紐付ける。アプリケーションプロセッサ30は、画像解析結果に含まれる画像解析に使用した画像データの撮影時刻と、姿勢情報に含まれる姿勢情報の導出に使用したセンサデータの取得時刻を参照して、同じ時刻の画像解析結果および姿勢情報を紐付け、対象物の空間位置の特定に利用する。
【0048】
実施例では、アプリケーションプロセッサ30、センサプロセッサ50および運動制御プロセッサ70がロボット装置20の筐体内に設けられる例について説明した。変形例では、センサプロセッサ50および運動制御プロセッサ70がロボット装置20の筐体内に設けられ、アプリケーションプロセッサ30が、ロボット装置20の筐体外に設けられてもよい。アプリケーションプロセッサ30の機能をロボット装置20の外部、たとえばサーバ装置10に設けることで、アプリケーションプロセッサ30に高い処理能力をもたせることができ、複雑な演算処理を行わせることが可能となる。
【0049】
実施例では、センサプロセッサ50がアプリケーションプロセッサ30に画像データを提供しないことを説明したが、所定の動作モードをユーザが設定した場合には、画像データを提供可能としてもよい。
【0050】
ロボット装置20のメイン電源がオフされている間、イベント駆動型センサ56、モーションセンサ72およびタッチセンサ74は、待機電力で駆動されていてもよい。イベント駆動型センサ56、モーションセンサ72およびタッチセンサ74の少なくとも1つが何らかの情報を検出したときに、メイン電源が自動オンされるように構成されてもよい。
【符号の説明】
【0051】
1・・・エンターテインメントシステム、2・・・ネットワーク、3・・・AP、4・・・制御システム、10・・・サーバ装置、20・・・ロボット装置、30・・・アプリケーションプロセッサ、32・・・表示装置、34・・・スピーカ、36・・・通信装置、38・・・マイク、50・・・センサプロセッサ、52・・・画像センサ、54・・・距離センサ、56・・・イベント駆動型センサ、70・・・運動制御プロセッサ、72・・・モーションセンサ、74・・・タッチセンサ、76・・・マイコン。