(57)【特許請求の範囲】
【請求項１】
移動体に所定の処理を実行させる実行部と、
前記移動体が移動可能な領域の環境地図を記憶している記憶部と、
前記移動体の周辺情報を検出する検出部と、
前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、
ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、
を備え、
前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、
前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新し、
前記環境地図は、物体の存在確率を示す情報を含んで構成され、
前記更新部は、前記指示情報に含まれる指示語と前記物体の存在確率とを関連付けて前記環境地図を更新し、さらに前記指示語の出現確率を所定の時間毎に更新する、制御装置。
【請求項２】
前記検出部は、前記移動体の周辺に存在する物体を検出し、
前記更新部は、前記環境地図に含まれる物体の存在確率を更新する、請求項１に記載の制御装置。
【請求項３】
前記更新部は、前記指示情報に含まれる前記物体に関する情報と、前記物体の存在確率とを関連付けて前記環境地図を更新する、請求項２に記載の制御装置。
【請求項４】
前記実行部は、前記指示情報を解析して、前記指示情報に含まれるユーザに指示された物体をユーザ位置に移動させる処理を移動体に実行させる、請求項１に記載の制御装置。
【請求項５】
前記実行部は、前記移動体をユーザに指示された物体が存在する場所に移動させ、前記物体を把持して前記ユーザの位置している場所に移動させる、請求項１に記載の制御装置。
【請求項６】
ユーザ入力に応じて、前記実行部により実行された前記移動体の処理が前記ユーザの指示に対応しているか否かを判定する判定部を備える、請求項１に記載の制御装置。
【請求項７】
前記判定部により前記実行部により実行された前記移動体の処理と前記ユーザの指示とが一致していると判定された場合、前記更新部は、前記指示情報に含まれる物体に関する情報の存在確率を増加させる、請求項６に記載の制御装置。
【請求項８】
前記更新部は、前記指示情報に含まれる指示された場所における指示された物体の存在確率を増加させる、請求項７に記載の制御装置。
【請求項９】
前記更新部は、前記指示情報に含まれる指示された時間における指示語の存在確率を増加させる、請求項７に記載の制御装置。
【請求項１０】
ユーザ入力に応じて、ユーザの指示を示す指示情報を取得するステップと、
記憶部に記憶されている移動体が移動可能な領域の環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させるステップと、
前記移動体の周辺情報を検出するステップと、
前記検出された前記移動体の周辺情報に基づいて、前記環境地図を更新するステップと、
前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新するステップと、
を含み、
前記環境地図は、物体の存在確率を示す情報を含んで構成され、
前記更新するステップは、前記指示情報に含まれる指示語と前記物体の存在確率とを関連付けて前記環境地図を更新し、さらに前記指示語の出現確率を所定の時間毎に更新する、移動体の制御方法。
【請求項１１】
コンピュータを、
移動体に所定の処理を実行させる実行部と、
前記移動体が移動可能な領域の環境地図を記憶している記憶部と、
前記移動体の周辺情報を検出する検出部と、
前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、
ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、
を備え、
前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、
前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新し、
前記環境地図は、物体の存在確率を示す情報を含んで構成され、
前記更新部は、前記指示情報に含まれる指示語と前記物体の存在確率とを関連付けて前記環境地図を更新し、さらに前記指示語の出現確率を所定の時間毎に更新する、制御装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
最近では、周囲の外部状態やロボット（以降、移動体とも称する。）自身の内部状態に応じて自立的に動作を行うことができるロボットが開発されている。例えば、歩行動作においては、外部の障害物を検出して障害物を回避するような行動経路を計画したり、周囲の環境の障害物地図を作成し、当該地図に基づいて行動経路を決定したりするロボットが開発されている（特許文献１および特許文献２）。
【０００３】
例えば、特許文献１では、ロボット装置が取得した３次元の距離情報から床面を検出することにより、障害物か否かを推定している。具体的には、ロボット装置周辺の環境を、所定の大きさのグリッドに分割されたロボット中心座標系の地図情報としての環境地図で表現し、地図内の各グリッドに対して障害物の存在確率を保持できるようにしている。そして、存在確率がある閾値を超えたグリッドを障害物として認識することにより、ロボットの周辺環境を識別している。また、特許文献２は、実際には存在しない平面や障害物等の観測ノイズに対して高い耐性を備え、かつ、高さ方向に対して高い解像度をもって周囲の環境を表現することを可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２６９９３７号公報
【特許文献２】特開２００６−１１８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献では、ロボットが自立的に周辺の物体や障害物などの存在確率を保持することにより環境地図を生成しているが、ユーザがロボットに対して指示した情報や、指示に応じた行動についての存在確率も環境地図に反映させることにより、ロボットへの作業指示を簡便化させたいという要望があった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化することが可能な、新規かつ改良された制御装置、制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある観点によれば、移動体に所定の処理を実行させる実行部と、前記移動体が移動可能な領域の環境地図を記憶している記憶部と、前記移動体の周辺情報を検出する検出部と、前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、を備え、前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する、制御装置が提供される。
【０００７】
また、前記環境地図は、物体の存在確率を示す情報を含んで構成され、前記検出部は、前記移動体の周辺に存在する物体を検出し、前記更新部は、前記環境地図に含まれる物体の存在確率を更新してもよい。
【０００８】
また、前記更新部は、前記指示情報に含まれる前記物体に関する情報と、前記物体の存在確率とを関連付けて前記環境地図を更新してもよい。
【０００９】
また、前記更新部は、前記指示情報に含まれる指示語と前記物体の存在確率とを関連付けて前記環境地図を更新してもよい。
【００１０】
また、前記更新部は、前記指示語の出現確率を所定の時間毎に更新してもよい。
【００１１】
また、前記実行部は、前記指示情報を解析して、前記指示情報に含まれるユーザに指示された物体をユーザ位置に移動させる処理を移動体に実行させてもよい。
【００１２】
また、前記実行部は、前記移動体をユーザに指示された物体が存在する場所に移動させ、前記物体を把持して前記ユーザの位置している場所に移動させてもよい。
【００１３】
また、ユーザ入力に応じて、前記実行部により実行された前記移動体の処理が前記ユーザの指示に対応しているか否かを判定してもよい。
【００１４】
また、前記判定部により前記実行部により実行された前記移動体の処理と前記ユーザの指示とが一致していると判定された場合、前記更新部は、前記指示情報に含まれる物体に関する情報の存在確率を増加させてもよい。
【００１５】
また、前記更新部は、前記指示情報に含まれる指示された場所における指示された物体の存在確率を増加させてもよい。
【００１６】
また、前記更新部は、前記指示情報に含まれる指示された時間における指示語の存在確率を増加させてもよい。
【００１７】
また、上記課題を解決するために、本発明の別の観点によれば、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得するステップと、記憶部に記憶されている移動体が移動可能な領域の環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させるステップと、前記移動体の周辺情報を検出するステップと、前記検出された前記移動体の周辺情報に基づいて、前記環境地図を更新するステップと、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新するステップと、を含む、移動体の制御方法が提供される。
【００１８】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、移動体に所定の処理を実行させる実行部と、前記移動体が移動可能な領域の環境地図を記憶している記憶部と、前記移動体の周辺情報を検出する検出部と、前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、を備え、前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する、制御装置として機能させるためのプログラムが提供される。
【発明の効果】
【００１９】
以上説明したように本発明によれば、ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る制御装置のハードウェア構成を示すブロック図である。
【図２】同実施形態にかかる制御装置の機能構成を示すブロック図である。
【図３】同実施形態にかかる環境地図生成処理を示すフローチャートである。
【図４】同実施形態にかかる環境地図の存在確率について説明する説明図である。
【図５】同実施形態にかかる環境地図の更新処理を示すフローチャートである。
【図６】同実施形態にかかる環境地図の更新処理を示すフローチャートである。
【図７】同実施形態にかかる環境地図の階層化構造について説明する説明図である。
【発明を実施するための形態】
【００２１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２２】
また、以下に示す順序に従って、当該「発明を実施するための形態」を説明する。
１．本実施形態の目的
２．制御装置のハードウェア構成
３．制御装置の機能構成
４．制御装置の動作の詳細
【００２３】
＜１．本実施形態の目的＞
まず、本実施形態の目的について説明する。最近では、周囲の外部状態やロボット（以降、移動体とも称する。）自身の内部状態に応じて自立的に動作を行うことができるロボットが開発されている。例えば、歩行動作においては、外部の障害物を検出して障害物を回避するような行動経路を計画したり、周囲の環境の障害物地図を作成し、当該地図に基づいて行動経路を決定したりするロボットが開発されている（特許文献１および特許文献２）。
【００２４】
例えば、特許文献１では、ロボット装置が取得した３次元の距離情報から床面を検出することにより、障害物か否かを推定している。具体的には、ロボット装置周辺の環境を、所定の大きさグリッドに分割されたロボット中心座標系の地図情報としての環境地図で表現し、地図内の各グリッドに対して障害物の存在確率を保持できるようにしている。そして、存在確率がある閾値を超えたグリッドを障害物として認識することにより、ロボットの周辺環境を識別している。また、特許文献２は、実際には存在しない平面や障害物等の観測ノイズに対して高い耐性を備え、かつ、高さ方向に対して高い解像度をもって周囲の環境を表現することを可能としている。
【００２５】
上記特許文献では、ロボットが自立的に周辺の物体や障害物などの存在確率を保持することにより環境地図を生成しているが、ユーザがロボットに対して指示した情報や、指示に応じた行動についての存在確率も環境地図に反映させることにより、ロボットへの作業指示を簡便化させたいという要望があった。そこで、上記のような事情を一着眼点として、本実施形態に係る制御装置１００が創作されるに至った。制御装置１００によれば、ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化することが可能となる。
【００２６】
＜２．制御装置のハードウェア構成＞
次に、図１を参照して、本実施形態にかかる制御装置１００のハードウェア構成について説明する。図１は、制御装置１００のハードウェア構成を示すブロック図である。図１に示したように、制御装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、ホストバス１４と、ブリッジ１５と、外部バス１６と、インタフェース１７と、入力装置１８と、出力装置１９と、ストレージ装置（ＨＤＤ）２０と、ドライブ２１と、接続ポート２２と、通信装置２３とを備える。
【００２７】
ＣＰＵ１１は、演算処理装置および制御装置として機能し、各種プログラムに従って制御装置１００内の動作全般を制御する。また、ＣＰＵ１１は、マイクロプロセッサであってもよい。ＲＯＭ１２は、ＣＰＵ１１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ１３は、ＣＰＵ１１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバスなどから構成されるホストバス１４により相互に接続されている。
【００２８】
ホストバス１４は、ブリッジ１５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１６に接続されている。なお、必ずしもホストバス１４、ブリッジ１５および外部バス１６を分離構成する必要はなく、一のバスにこれらの機能を実装してもよい。
【００２９】
入力装置１８は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、ＣＰＵ１１に出力する入力制御回路などから構成されている。制御装置１００のユーザは、該入力装置１８を操作することにより、制御装置１００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【００３０】
出力装置１９は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｓｐｌａｙ）装置およびランプなどの表示装置と、スピーカおよびヘッドホンなどの音声出力装置で構成される。出力装置１９は、例えば、再生されたコンテンツを出力する。具体的には、表示装置は再生された映像データ等の各種情報をテキストまたはイメージで表示する。一方、音声出力装置は、再生された音声データ等を音声に変換して出力する。
【００３１】
ストレージ装置２０は、本実施形態にかかる制御装置１００の記憶部の一例として構成されたデータ格納用の装置であり、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。ストレージ装置２０は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）で構成される。このストレージ装置２０は、ハードディスクを駆動し、ＣＰＵ２０１が実行するプログラムや各種データを格納する。
【００３２】
ドライブ２１は、記憶媒体用リーダライタであり、制御装置１００に内蔵、あるいは外付けされる。ドライブ２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、ＲＡＭ１３に出力する。
【００３３】
接続ポート２２は、外部機器と接続されるインタフェースであって、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などによりデータ伝送可能な外部機器との接続口である。
【００３４】
通信装置２３は、例えば、通信網５に接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置２３は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）対応通信装置であっても、ワイヤレスＵＳＢ対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。以上、制御装置１００のハードウェア構成について説明した。
【００３５】
＜３．制御装置の機能構成＞
次に、図２を参照して、制御装置１００の機能構成について説明する。図２は、制御装置１００の機能構成を示すブロック図である。図２に示したように、制御装置１００は、画像認識器１０１、検出部１０２、記憶部１０４、更新部１０６、実行部１０８、取得部１１０、判定部１１２などを備える。
【００３６】
検出部１０２は、ロボットの周辺情報を検出する機能を有する。具体的には、検出部１０２は、ステレオカメラやレーザーレンジファインダなどの各種センサから提供される周囲の画像情報や３Ｄ情報をもとに周辺の床面を検出する。また、３Ｄ情報をもとに周辺の床面検出を行うことにより、床面上の物体を検出することができる。さらに、床面のテクスチャを登録することにより、登録されたテクスチャと異なるテクスチャが存在しているか否かにより物体を検出することができる。
【００３７】
検出部１０２はさらに、床面以外の物体の存在を検出した場合には、その物体が何であるかを検出してもよい。物体が何であるかの情報は、画像認識器１０１により取得してもよい。画像認識器１０１は、物体の画像の画像特徴量と、該物体の概念や名称等を関連付けて学習している。したがって、検出部１０２は、ステレオカメラなどにより取得された物体の画像特徴量と、画像認識器１０１の物体の画像特徴量とを比較することにより、当該物体が何であるかを検出することができる。
【００３８】
また、検出部１０２は、物体が把持可能である場合に、物体の重さを検出してもよい。検出部１０２により検出されたロボットの周辺情報は、記憶部１０４の環境地図１０５に記憶されたり更新部１０６に提供されたりする。
【００３９】
記憶部１０４に記憶されている環境地図１０５は、ロボットが移動可能な領域の環境を示す情報である。具体的には、環境地図１０５は、ロボット周辺の環境を、所定の大きさのグリッドに分割されたロボット中心座標系の地図情報として表現されている。また、環境地図内の各グリッドに対して障害物の存在確率を保持できるようにしている。そして、存在確率がある閾値を超えたグリッドを障害物として認識することにより、ロボットの周辺環境を識別している。
【００４０】
また、環境地図１０５における障害物の存在確率を３次元グリッドで表現してもよい。例えば、４メール四方、水平解像度４センチおよび垂直解像度１センチを１セルとした３次元グリッドで表現してもよい。ロボットは、例えば、１秒間に３０回というように所定間隔毎に周囲の状態を取得してもよい。ロボットが移動している場合には、３次元グリッドとして表現される空間は、時々刻々と変化する。例えば、取得されたセルについて、見えたところを１、見えないところを０．５として表現してもよい。占有確率は１秒間に３０回測定するうちに徐々に更新されていくようにしてもよい。
【００４１】
また、環境地図１０５は、全体地図と局所地図とが階層化された構造となっていてもよい。この場合、各局所地図は、時間情報を考慮した３次元的な構造となる。また、局所地図における各グリッド（ｘ、ｙ、ｔ）に付随する情報としては、物体の存在確率、物体の情報（名称、重さ）、ユーザからの指示語の確率などが挙げられる。ユーザからの指示語とは、後述する取得部１１０により取得されるユーザの指示を示す指示情報に含まれる「あれ」や「それ」などである。
【００４２】
更新部１０６は、検出部１０２により検出された移動体の周辺情報に基づいて、環境地図１０５を更新する機能を有する。具体的には、更新部１０６は、環境地図の各グリッドに対応付けられている物体の存在確率を更新する。また、更新部１０６は、後述する実行部１０８により実行された移動体の処理をもとに環境地図を更新する。また、更新部１０６は、検出部１０２により、物体の名称や重さが検出された場合には、グリッドに対応付けられている物体の名称や重さの情報を更新する。
【００４３】
取得部１１０は、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する機能を有する。指示情報とは、例えば、ユーザが手元に持ってきてほしい物体に関する情報などであって、物体が存在する場所や物体の名称などの情報である。また、「リビングのジュースを持ってきて」や、「あれ取ってきて」などのユーザからの指示を示す文章であってもよい。取得部１１０は、取得したユーザからの指示情報を実行部１０８に提供する。取得部１１０は、ユーザの指示情報から、ユーザとロボットとの位置関係や、ロボットの存在場所などのコンテキストを取得して実行部１０８に提供してもよい。
【００４４】
実行部１０８は、環境地図１０５を参照して、指示情報に基づく処理をロボットに実行させる機能を有する。実行部１０８は、取得部１１０により提供された指示情報を解析して、指示情報に含まれるユーザに指示された物体を、ユーザ位置に移動させる処理をロボットに実行させる。また、実行部１０８は、ユーザに指示された物体が存在する場所にロボットを移動させて、ロボットに該物体を把持させてユーザの位置している場所に移動させる。
【００４５】
例えば、ユーザから「あれ取ってきて」と指示された場合には、実行部１０８は、環境地図１０５を参照して、「あれ」に相当する物体を推定する。上記したように、指示情報に含まれる指示語の出現確率は、時間毎に環境地図１０５に記憶されている。したがって、どこで何時に「あれ取ってきて」と指示されたかを解析することにより、時間毎に保持されている「あれ」の確率から、「あれ」が何であるかを推定することができる。
【００４６】
また、更新部１０６は、実行部１０８により実行されたユーザからの指示に含まれる指示語と物体の存在確率とを関連付けて環境地図を更新してもよい。さらに、更新部１０６は、指示語の出現確率を所定の時間ごとに更新してもよい。すなわち、ロボットが行動した時間や場所における環境地図やグリッドの「あれ」と指示される確率を増加させる。
【００４７】
判定部１１２は、ユーザ入力に応じて実行部１０８により実行されたロボットの処理がユーザの指示に対応しているか否かを判定する機能を有する。判定部１１２により、実行部１０８により実行されたロボットの処理とユーザの指示とが一致していると判定された場合には、更新部１０６は、指示情報に含まれる物体に関する情報の存在確率を増加させる。
【００４８】
また、更新部１０６は、判定部１１２により、実行部１０８により実行されたロボットの処理とユーザの指示とが一致していると判定された場合には、指示情報に含まれる指示された場所における指示された物体の存在確率を増加させる。さらに、更新部１０６は、指示された時間における「あれ」などの指示語の存在確率を増加させる。なお、上記実施形態では、床面上をロボットが物体を把持可能な領域として説明しているが、かかる例に限定されず、例えば、テーブルの上や棚の上などの平面上も把持可能領域としてもよい。以上、制御装置１００の機能構成について説明した。
【００４９】
＜４．制御装置の動作の詳細＞
次に、図３〜図７を参照して、制御装置１００の動作の詳細について説明する。図３は、制御装置１００における環境地図生成処理を示すフローチャートである。図３では、移動体が自立的に移動して、環境地図を生成したり、更新したりする場合を例示して説明する。
【００５０】
図３に示したように、まず、ロボットの移動とともに、自己位置の推定を行う（Ｓ１０２）。自己位置の推定とは、ロボットが環境地図上のどの位置に存在しているか否かを推定することである。ステップＳ１０２において、環境地図が既に生成されている場合には、環境地図のどのグリッドに位置しているかを判定する。また、環境地図が生成されていない場合には、所定の座標系における自己位置を判定する。
【００５１】
そして、ロボットの周辺の画像データや３Ｄデータを取得する（Ｓ１０４）。ステップＳ１０４においては、ステレオカメラやレーザーレンジファインダなどのセンサからの情報を用いて、周囲の画像情報や３Ｄ情報を取得する。
【００５２】
そして、３Ｄ情報をもとに床面検出を行うことにより、床面上の物体を検出する（Ｓ１０６）。また、ステップＳ１０６において、床面のテクスチャを予め登録しておくことにより、登録されたテクスチャと異なるテクスチャが存在するか否かにより物体を検出してもよい。
【００５３】
そして、床面以外の物体が存在するか否かを判定する（Ｓ１０８）。ステップＳ１０８において、床面以外の物体が存在すると判定された場合には、画像認識器１０１により、その物体が何であるかを認識する。ただし、ステップＳ１１０において、物体の認識に失敗したか、または、当該物体に対応する認識機がない場合には、物体情報はＵｎｋｎｏｗｎとする。
【００５４】
また、物体を押したり把持したりすることにより、物体が把持可能であるか否かを検証する。そして、物体が把持可能である場合には、物体の重さの情報を取得する。ステップＳ１０８において、床面以外の物体が存在しないと判定された場合には、ステップＳ１１２の処理を実行する。
【００５５】
そして、ステップＳ１０６における物体の検出結果や、ステップＳ１１０における物体の認識結果に応じて、環境地図（Ｍａｐ）情報を更新する（Ｓ１１２）。ステップＳ１０８において、床面以外の物体が存在しないと判定された場合には、環境地図の該当位置に物体が存在する確率を減少させる。
【００５６】
また、ステップＳ１０８において、床面以外の物体が存在すると判定された場合には、環境地図の該当位置に物体が存在する確率を増加させる。ただし、過去に観測したデータにより、環境地図上にすでに情報がある場合には、現在推定した情報との照合を図る必要がある。このため、過去の情報と検出した物体の情報とが一致しない場合には、環境地図上の同一の場所に複数の異なる物体の存在確率を有するようになる。
【００５７】
図４は、環境地図の存在確率について説明する説明図である。図４は、障害物の存在確率が与えられた３次元グリッドを示す説明図である。３次元グリッドとして表される領域は、例えば、４メートル四方、水平解像度４センチおよび垂直解像度１センチを１セルとした３次元グリッドで表現されている。また、例えば、１秒間に３０回というように所定間隔毎に周囲の状態を取得するため、ロボットが移動する場合には、３次元グリッドとして表現させる空間は、時々刻々と変化する。取得されたセルは、例えば、見えたところを１、見えないところを０．５とする。存在確率は、１秒間に３０回測定する間に徐々に更新されていく。
【００５８】
図４に示した３次元グリッドの作成および更新は、測定点と観測中心とを結ぶ直線上には障害物が存在しないというアルゴリズムに基づいて行われている。例えば、測定対象点であるセルｐとロボット装置のステレオカメラ等の撮像装置の間に存在するセルに対して、エンプティ（Ｅｍｐｔｙ）処理を行う。続いて、測定点ｐにあたるセルに対してオキュパイド（Ｏｃｃｕｐｉｅｄ）処理を行う。
【００５９】
３次元グリッドは、セルＣに対して障害物の存在確率（障害物によって占有されている確率）ｐ（Ｃ）を保持しており、エンプティ処理およびオキュパイド処理は、各セルに対して統計的な処理である。エンプティ処理は障害物の存在確率を低下させる処理であり、オキュパイド処理は障害物の存在確率を増加させる処理である。本実施形態では、エンプティ処理およびオキュパイド処理の存在確率を算出する手法の一例として、ベイズの更新則を用いる。
【００６０】
エンプティ処理のときは以下の数式１により占有確率を減少させ、オキュパイド処理のときは以下の数式２により占有確率を増加させる。数式１は、セルＣの占有確率を表すｐ（ｃ）が“占有”という条件下にあるセルＣの確率を表している。また、数式１または数式２において、セルＣが占有されているかまたは占有されていないかを表す確率ｐ（ｏｃｃ｜・・・）、ｐ（ｅｍｐｔｙ｜・・・）は、予め決められた閾値ｔｈである。
【００６１】
【数１】
0005560794.tif 000002
【００６２】
【数２】
0005560794.tif 000003
【００６３】
以上、制御装置１００における環境地図生成処理について説明した。次に、図５を参照して、ユーザの指示による行動に基づく環境地図の更新処理について説明する。図５は、ユーザの指示よる行動に基づく環境地図の更新処理を示すフローチャートである。図５に示したように、まず、ユーザの指示情報を取得する（Ｓ２０２）。ステップＳ２０２においては、ユーザの指示情報として、ユーザから対象物体の場所や対象物体の名称などの情報を取得する。
【００６４】
そして、ステップＳ２０２において指定された場所にロボットを移動させる（Ｓ２０４）。ステップＳ２０４において、ロボットが移動中もさまざまな観測データを取得することができるため、図３に示した自律移動による環境地図更新処理を実行してもよい。また、ロボットを移動させる際には、現在までに生成または更新された環境地図の情報に基づいて、最適な移動パスを決定することが可能である。
【００６５】
ステップＳ２０４でロボットが指定場所に移動した後、指定場所で物体を検出し、検出位置を環境地図上の情報として保持する（Ｓ２０６）。そして、ステップＳ２０６において検出した物体をロボットに把持させる（Ｓ２０８）。
【００６６】
そして、ユーザが位置する場所に移動する（Ｓ２１０）。ステップＳ２１０においても、ロボットの移動中の観測データを取得して、環境地図を更新してもよい。
【００６７】
そして、ステップＳ２０８において把持した物体をユーザへ渡す（Ｓ２１２）。ここで、ステップＳ２１２においてユーザに渡した物体が、ユーザが指示した物体か否かを確認する（Ｓ２１４）。ステップＳ２１４においてユーザに確認することにより、ロボットによる物体の認識ミスや移動ミスにより、間違った物体情報を環境地図に反映することを防止することができる。
【００６８】
ステップＳ２１４において、ユーザに渡した物体が、ユーザが指示した物体であることが確認された場合には、環境地図を更新する（Ｓ２１６）。ステップＳ２１６では、環境地図上において、物体を検出した場所や、物体の名称や重さなどの物体情報などの存在確率を増加させる。図３に示した自立的に環境地図を更新する処理と異なり、ユーザ指示に応じて環境地図を更新する場合には、ユーザにより物体の名称等の確認がとれているため、環境地図の存在確率を大きく更新してもよい。
【００６９】
次に、図６を参照して、ユーザに「あれとってきて」と指示された場合の処理について説明する。図６は、ユーザに「あれとってきて」と指示された場合の処理を示すフローチャートである。図６に示したように、まず、ユーザの指示情報として、「あれとってきて」を取得する（Ｓ２２２）。
【００７０】
ステップＳ２２２においてユーザに「あれとってきて」と指示された後に、ユーザとロボットとの位置関係や、ロボットの現在の場所や現在時刻などのコンテキストを把握する（Ｓ２２４）。例えば、ロボットの現在の場所がリビングなのかキッチンなのかを把握したり、現在時刻から朝なのか昼なのか夕方なのかを把握したりする。これらのコンテキストを用いて、環境地図情報から「あれ」に相当する物体を推定する。
【００７１】
ここで、環境地図の階層化構造について説明する。図７に示したように、環境地図は、全体地図（全体Ｍａｐ）と局所地図（局所Ｍａｐ）とを有する階層化された構造となっている。また、局所地図は、時間軸情報を考慮した３次元的な構造となっている。環境地図の各ピクセル（ｘ、ｙ、ｔ）に付随する情報としては、物体の存在確率、物体の情報（名称、重さ）、ユーザからの指示語の確率などが挙げられる。
【００７２】
環境地図の更新は、上記したように、すべての確率を増加したり減少したりすることによって行われる。確率密度の更新は、時空間的に行われる。ただし、「あれ」などの指示語の確率に関しては、その時刻の空間のみにおいて更新する。例えば、キッチン６１のなかで「あれ」として指示される物体の確率は、説明図６３に示したように、時刻毎に更新される。これは、時刻によって「あれ」と指示される物体の確率は変化するためである。時刻毎に「あれ」の確率を更新することにより、ユーザからの「あれとってきて」の「あれ」をロボットに正しく解釈させることが可能となる。
【００７３】
図６に戻り、ステップＳ２２４において、「あれ」に相当する物体を推定した後に、ユーザにユーザが指示した「あれ」が、推定した物体であるか否かを確認してもよい。これにより、より確実にユーザが指示した物体をユーザのもとへ移動させることができる。
【００７４】
ステップＳ２２４においてユーザが「あれ」と指示した物体を推定し、環境地図情報をもとにユーザの指示した物体がある位置へ移動する（Ｓ２２６）。ステップＳ２２６において、ロボットが移動中もさまざまな観測データを取得して、随時環境地図を更新してもよい。
【００７５】
そして、物体を検出し、当該物体をロボットに把持させる（Ｓ２２８）。ステップＳ２２８において、必要であれば、環境地図に登録されている物体の名称を用いてユーザに確認をとってもよい。例えば、「あれ」と指示された物体の名称が「ペットボトル」や「ジュース」などの名称であるかをテキストで表示してもよいし、物体の画像をユーザに表示させてもよい。
【００７６】
そして、ユーザが位置する場所に移動する（Ｓ２３０）。ステップＳ２１０においても、ロボットの移動中の観測データを取得して、環境地図を更新してもよい。
【００７７】
そして、ステップＳ２２８において把持した物体をユーザへ渡す（Ｓ２３２）。ここで、ステップＳ２３２においてユーザに渡した物体が、ユーザが指示した物体か否かを確認する（Ｓ２３４）。ステップＳ２３４において、ユーザに渡した物体が、ユーザが指示した「あれ」に相当するものであることが確認された場合には、環境地図を更新する（Ｓ２３６）。ステップＳ２３６では、環境地図の該当箇所における物体情報を更新する。すなわち、あるコンテキストにおける「あれ」と指示される確立を増加させる。
【００７８】
以上、ユーザに「あれとってきて」と指示された場合の処理について説明した。以上より、本実施形態によれば、環境地図を参照して、ロボットにユーザからの指示情報に基づく処理を実行させ、ユーザからの指示情報や指示情報に基づく移動体の処理をもとに環境地図を更新する。これにより、ユーザとのインタラクションを通じて、環境地図に様々な情報を付加することが可能となる。
【００７９】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【００８０】
例えば、本明細書の制御装置１００の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、制御装置１００の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。
【００８１】
また、制御装置１００などに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上述した制御装置１００の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【符号の説明】
【００８２】
１００    制御装置
１０１    画像認識器
１０２    検出部
１０４    記憶部
１０５    環境地図
１０６    更新部
１０８    実行部
１１０    取得部
１１２    判定部
【図１】
0005560794.tif 000004
【図２】
0005560794.tif 000005
【図３】
0005560794.tif 000006
【図４】
0005560794.tif 000007
【図５】
0005560794.tif 000008
【図６】
0005560794.tif 000009
【図７】
0005560794.tif 000010