説明

制御装置、制御方法およびプログラム

【課題】ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化する。
【解決手段】制御装置100は、移動体に所定の処理を実行させる実行部108と、前記移動体が移動可能な領域の環境地図を記憶している記憶部104と、前記移動体の周辺情報を検出する検出部102と、前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部106と、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部110と、を備え、前記実行部108は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、前記更新部106は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法およびプログラムに関する。
【背景技術】
【0002】
最近では、周囲の外部状態やロボット(以降、移動体とも称する。)自身の内部状態に応じて自立的に動作を行うことができるロボットが開発されている。例えば、歩行動作においては、外部の障害物を検出して障害物を回避するような行動経路を計画したり、周囲の環境の障害物地図を作成し、当該地図に基づいて行動経路を決定したりするロボットが開発されている(特許文献1および特許文献2)。
【0003】
例えば、特許文献1では、ロボット装置が取得した3次元の距離情報から床面を検出することにより、障害物か否かを推定している。具体的には、ロボット装置周辺の環境を、所定の大きさのグリッドに分割されたロボット中心座標系の地図情報としての環境地図で表現し、地図内の各グリッドに対して障害物の存在確率を保持できるようにしている。そして、存在確率がある閾値を超えたグリッドを障害物として認識することにより、ロボットの周辺環境を識別している。また、特許文献2は、実際には存在しない平面や障害物等の観測ノイズに対して高い耐性を備え、かつ、高さ方向に対して高い解像度をもって周囲の環境を表現することを可能としている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−269937号公報
【特許文献2】特開2006−11880号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献では、ロボットが自立的に周辺の物体や障害物などの存在確率を保持することにより環境地図を生成しているが、ユーザがロボットに対して指示した情報や、指示に応じた行動についての存在確率も環境地図に反映させることにより、ロボットへの作業指示を簡便化させたいという要望があった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化することが可能な、新規かつ改良された制御装置、制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のある観点によれば、移動体に所定の処理を実行させる実行部と、前記移動体が移動可能な領域の環境地図を記憶している記憶部と、前記移動体の周辺情報を検出する検出部と、前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、を備え、前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する、制御装置が提供される。
【0007】
また、前記環境地図は、物体の存在確率を示す情報を含んで構成され、前記検出部は、前記移動体の周辺に存在する物体を検出し、前記更新部は、前記環境地図に含まれる物体の存在確率を更新してもよい。
【0008】
また、前記更新部は、前記指示情報に含まれる前記物体に関する情報と、前記物体の存在確率とを関連付けて前記環境地図を更新してもよい。
【0009】
また、前記更新部は、前記指示情報に含まれる指示語と前記物体の存在確率とを関連付けて前記環境地図を更新してもよい。
【0010】
また、前記更新部は、前記指示語の出現確率を所定の時間毎に更新してもよい。
【0011】
また、前記実行部は、前記指示情報を解析して、前記指示情報に含まれるユーザに指示された物体をユーザ位置に移動させる処理を移動体に実行させてもよい。
【0012】
また、前記実行部は、前記移動体をユーザに指示された物体が存在する場所に移動させ、前記物体を把持して前記ユーザの位置している場所に移動させてもよい。
【0013】
また、ユーザ入力に応じて、前記実行部により実行された前記移動体の処理が前記ユーザの指示に対応しているか否かを判定してもよい。
【0014】
また、前記判定部により前記実行部により実行された前記移動体の処理と前記ユーザの指示とが一致していると判定された場合、前記更新部は、前記指示情報に含まれる物体に関する情報の存在確率を増加させてもよい。
【0015】
また、前記更新部は、前記指示情報に含まれる指示された場所における指示された物体の存在確率を増加させてもよい。
【0016】
また、前記更新部は、前記指示情報に含まれる指示された時間における指示語の存在確率を増加させてもよい。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得するステップと、記憶部に記憶されている移動体が移動可能な領域の環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させるステップと、前記移動体の周辺情報を検出するステップと、前記検出された前記移動体の周辺情報に基づいて、前記環境地図を更新するステップと、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新するステップと、を含む、移動体の制御方法が提供される。
【0018】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、移動体に所定の処理を実行させる実行部と、前記移動体が移動可能な領域の環境地図を記憶している記憶部と、前記移動体の周辺情報を検出する検出部と、前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、を備え、前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する、制御装置として機能させるためのプログラムが提供される。
【発明の効果】
【0019】
以上説明したように本発明によれば、ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施形態に係る制御装置のハードウェア構成を示すブロック図である。
【図2】同実施形態にかかる制御装置の機能構成を示すブロック図である。
【図3】同実施形態にかかる環境地図生成処理を示すフローチャートである。
【図4】同実施形態にかかる環境地図の存在確率について説明する説明図である。
【図5】同実施形態にかかる環境地図の更新処理を示すフローチャートである。
【図6】同実施形態にかかる環境地図の更新処理を示すフローチャートである。
【図7】同実施形態にかかる環境地図の階層化構造について説明する説明図である。
【発明を実施するための形態】
【0021】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0022】
また、以下に示す順序に従って、当該「発明を実施するための形態」を説明する。
1.本実施形態の目的
2.制御装置のハードウェア構成
3.制御装置の機能構成
4.制御装置の動作の詳細
【0023】
<1.本実施形態の目的>
まず、本実施形態の目的について説明する。最近では、周囲の外部状態やロボット(以降、移動体とも称する。)自身の内部状態に応じて自立的に動作を行うことができるロボットが開発されている。例えば、歩行動作においては、外部の障害物を検出して障害物を回避するような行動経路を計画したり、周囲の環境の障害物地図を作成し、当該地図に基づいて行動経路を決定したりするロボットが開発されている(特許文献1および特許文献2)。
【0024】
例えば、特許文献1では、ロボット装置が取得した3次元の距離情報から床面を検出することにより、障害物か否かを推定している。具体的には、ロボット装置周辺の環境を、所定の大きさグリッドに分割されたロボット中心座標系の地図情報としての環境地図で表現し、地図内の各グリッドに対して障害物の存在確率を保持できるようにしている。そして、存在確率がある閾値を超えたグリッドを障害物として認識することにより、ロボットの周辺環境を識別している。また、特許文献2は、実際には存在しない平面や障害物等の観測ノイズに対して高い耐性を備え、かつ、高さ方向に対して高い解像度をもって周囲の環境を表現することを可能としている。
【0025】
上記特許文献では、ロボットが自立的に周辺の物体や障害物などの存在確率を保持することにより環境地図を生成しているが、ユーザがロボットに対して指示した情報や、指示に応じた行動についての存在確率も環境地図に反映させることにより、ロボットへの作業指示を簡便化させたいという要望があった。そこで、上記のような事情を一着眼点として、本実施形態に係る制御装置100が創作されるに至った。制御装置100によれば、ユーザとのインタラクションを介してロボットの周辺情報を更新し、ロボットへの指示を簡便化することが可能となる。
【0026】
<2.制御装置のハードウェア構成>
次に、図1を参照して、本実施形態にかかる制御装置100のハードウェア構成について説明する。図1は、制御装置100のハードウェア構成を示すブロック図である。図1に示したように、制御装置100は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、ホストバス14と、ブリッジ15と、外部バス16と、インタフェース17と、入力装置18と、出力装置19と、ストレージ装置(HDD)20と、ドライブ21と、接続ポート22と、通信装置23とを備える。
【0027】
CPU11は、演算処理装置および制御装置として機能し、各種プログラムに従って制御装置100内の動作全般を制御する。また、CPU11は、マイクロプロセッサであってもよい。ROM12は、CPU11が使用するプログラムや演算パラメータ等を記憶する。RAM13は、CPU11の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバスなどから構成されるホストバス14により相互に接続されている。
【0028】
ホストバス14は、ブリッジ15を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス16に接続されている。なお、必ずしもホストバス14、ブリッジ15および外部バス16を分離構成する必要はなく、一のバスにこれらの機能を実装してもよい。
【0029】
入力装置18は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU11に出力する入力制御回路などから構成されている。制御装置100のユーザは、該入力装置18を操作することにより、制御装置100に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0030】
出力装置19は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Display)装置およびランプなどの表示装置と、スピーカおよびヘッドホンなどの音声出力装置で構成される。出力装置19は、例えば、再生されたコンテンツを出力する。具体的には、表示装置は再生された映像データ等の各種情報をテキストまたはイメージで表示する。一方、音声出力装置は、再生された音声データ等を音声に変換して出力する。
【0031】
ストレージ装置20は、本実施形態にかかる制御装置100の記憶部の一例として構成されたデータ格納用の装置であり、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。ストレージ装置20は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置20は、ハードディスクを駆動し、CPU201が実行するプログラムや各種データを格納する。
【0032】
ドライブ21は、記憶媒体用リーダライタであり、制御装置100に内蔵、あるいは外付けされる。ドライブ21は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM13に出力する。
【0033】
接続ポート22は、外部機器と接続されるインタフェースであって、例えばUSB(Universal Serial Bus)などによりデータ伝送可能な外部機器との接続口である。
【0034】
通信装置23は、例えば、通信網5に接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置23は、無線LAN(Local Area Network)対応通信装置であっても、ワイヤレスUSB対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。以上、制御装置100のハードウェア構成について説明した。
【0035】
<3.制御装置の機能構成>
次に、図2を参照して、制御装置100の機能構成について説明する。図2は、制御装置100の機能構成を示すブロック図である。図2に示したように、制御装置100は、画像認識器101、検出部102、記憶部104、更新部106、実行部108、取得部110、判定部112などを備える。
【0036】
検出部102は、ロボットの周辺情報を検出する機能を有する。具体的には、検出部102は、ステレオカメラやレーザーレンジファインダなどの各種センサから提供される周囲の画像情報や3D情報をもとに周辺の床面を検出する。また、3D情報をもとに周辺の床面検出を行うことにより、床面上の物体を検出することができる。さらに、床面のテクスチャを登録することにより、登録されたテクスチャと異なるテクスチャが存在しているか否かにより物体を検出することができる。
【0037】
検出部102はさらに、床面以外の物体の存在を検出した場合には、その物体が何であるかを検出してもよい。物体が何であるかの情報は、画像認識器101により取得してもよい。画像認識器101は、物体の画像の画像特徴量と、該物体の概念や名称等を関連付けて学習している。したがって、検出部102は、ステレオカメラなどにより取得された物体の画像特徴量と、画像認識器101の物体の画像特徴量とを比較することにより、当該物体が何であるかを検出することができる。
【0038】
また、検出部102は、物体が把持可能である場合に、物体の重さを検出してもよい。検出部102により検出されたロボットの周辺情報は、記憶部104の環境地図105に記憶されたり更新部106に提供されたりする。
【0039】
記憶部104に記憶されている環境地図105は、ロボットが移動可能な領域の環境を示す情報である。具体的には、環境地図105は、ロボット周辺の環境を、所定の大きさのグリッドに分割されたロボット中心座標系の地図情報として表現されている。また、環境地図内の各グリッドに対して障害物の存在確率を保持できるようにしている。そして、存在確率がある閾値を超えたグリッドを障害物として認識することにより、ロボットの周辺環境を識別している。
【0040】
また、環境地図105における障害物の存在確率を3次元グリッドで表現してもよい。例えば、4メール四方、水平解像度4センチおよび垂直解像度1センチを1セルとした3次元グリッドで表現してもよい。ロボットは、例えば、1秒間に30回というように所定間隔毎に周囲の状態を取得してもよい。ロボットが移動している場合には、3次元グリッドとして表現される空間は、時々刻々と変化する。例えば、取得されたセルについて、見えたところを1、見えないところを0.5として表現してもよい。占有確率は1秒間に30回測定するうちに徐々に更新されていくようにしてもよい。
【0041】
また、環境地図105は、全体地図と局所地図とが階層化された構造となっていてもよい。この場合、各局所地図は、時間情報を考慮した3次元的な構造となる。また、局所地図における各グリッド(x、y、t)に付随する情報としては、物体の存在確率、物体の情報(名称、重さ)、ユーザからの指示語の確率などが挙げられる。ユーザからの指示語とは、後述する取得部110により取得されるユーザの指示を示す指示情報に含まれる「あれ」や「それ」などである。
【0042】
更新部106は、検出部102により検出された移動体の周辺情報に基づいて、環境地図105を更新する機能を有する。具体的には、更新部106は、環境地図の各グリッドに対応付けられている物体の存在確率を更新する。また、更新部106は、後述する実行部108により実行された移動体の処理をもとに環境地図を更新する。また、更新部106は、検出部102により、物体の名称や重さが検出された場合には、グリッドに対応付けられている物体の名称や重さの情報を更新する。
【0043】
取得部110は、ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する機能を有する。指示情報とは、例えば、ユーザが手元に持ってきてほしい物体に関する情報などであって、物体が存在する場所や物体の名称などの情報である。また、「リビングのジュースを持ってきて」や、「あれ取ってきて」などのユーザからの指示を示す文章であってもよい。取得部110は、取得したユーザからの指示情報を実行部108に提供する。取得部110は、ユーザの指示情報から、ユーザとロボットとの位置関係や、ロボットの存在場所などのコンテキストを取得して実行部108に提供してもよい。
【0044】
実行部108は、環境地図105を参照して、指示情報に基づく処理をロボットに実行させる機能を有する。実行部108は、取得部110により提供された指示情報を解析して、指示情報に含まれるユーザに指示された物体を、ユーザ位置に移動させる処理をロボットに実行させる。また、実行部108は、ユーザに指示された物体が存在する場所にロボットを移動させて、ロボットに該物体を把持させてユーザの位置している場所に移動させる。
【0045】
例えば、ユーザから「あれ取ってきて」と指示された場合には、実行部108は、環境地図105を参照して、「あれ」に相当する物体を推定する。上記したように、指示情報に含まれる指示語の出現確率は、時間毎に環境地図105に記憶されている。したがって、どこで何時に「あれ取ってきて」と指示されたかを解析することにより、時間毎に保持されている「あれ」の確率から、「あれ」が何であるかを推定することができる。
【0046】
また、更新部106は、実行部108により実行されたユーザからの指示に含まれる指示語と物体の存在確率とを関連付けて環境地図を更新してもよい。さらに、更新部106は、指示語の出現確率を所定の時間ごとに更新してもよい。すなわち、ロボットが行動した時間や場所における環境地図やグリッドの「あれ」と指示される確率を増加させる。
【0047】
判定部112は、ユーザ入力に応じて実行部108により実行されたロボットの処理がユーザの指示に対応しているか否かを判定する機能を有する。判定部112により、実行部108により実行されたロボットの処理とユーザの指示とが一致していると判定された場合には、更新部106は、指示情報に含まれる物体に関する情報の存在確率を増加させる。
【0048】
また、更新部106は、判定部112により、実行部108により実行されたロボットの処理とユーザの指示とが一致していると判定された場合には、指示情報に含まれる指示された場所における指示された物体の存在確率を増加させる。さらに、更新部106は、指示された時間における「あれ」などの指示語の存在確率を増加させる。なお、上記実施形態では、床面上をロボットが物体を把持可能な領域として説明しているが、かかる例に限定されず、例えば、テーブルの上や棚の上などの平面上も把持可能領域としてもよい。以上、制御装置100の機能構成について説明した。
【0049】
<4.制御装置の動作の詳細>
次に、図3〜図7を参照して、制御装置100の動作の詳細について説明する。図3は、制御装置100における環境地図生成処理を示すフローチャートである。図3では、移動体が自立的に移動して、環境地図を生成したり、更新したりする場合を例示して説明する。
【0050】
図3に示したように、まず、ロボットの移動とともに、自己位置の推定を行う(S102)。自己位置の推定とは、ロボットが環境地図上のどの位置に存在しているか否かを推定することである。ステップS102において、環境地図が既に生成されている場合には、環境地図のどのグリッドに位置しているかを判定する。また、環境地図が生成されていない場合には、所定の座標系における自己位置を判定する。
【0051】
そして、ロボットの周辺の画像データや3Dデータを取得する(S104)。ステップS104においては、ステレオカメラやレーザーレンジファインダなどのセンサからの情報を用いて、周囲の画像情報や3D情報を取得する。
【0052】
そして、3D情報をもとに床面検出を行うことにより、床面上の物体を検出する(S106)。また、ステップS106において、床面のテクスチャを予め登録しておくことにより、登録されたテクスチャと異なるテクスチャが存在するか否かにより物体を検出してもよい。
【0053】
そして、床面以外の物体が存在するか否かを判定する(S108)。ステップS108において、床面以外の物体が存在すると判定された場合には、画像認識器101により、その物体が何であるかを認識する。ただし、ステップS110において、物体の認識に失敗したか、または、当該物体に対応する認識機がない場合には、物体情報はUnknownとする。
【0054】
また、物体を押したり把持したりすることにより、物体が把持可能であるか否かを検証する。そして、物体が把持可能である場合には、物体の重さの情報を取得する。ステップS108において、床面以外の物体が存在しないと判定された場合には、ステップS112の処理を実行する。
【0055】
そして、ステップS106における物体の検出結果や、ステップS110における物体の認識結果に応じて、環境地図(Map)情報を更新する(S112)。ステップS108において、床面以外の物体が存在しないと判定された場合には、環境地図の該当位置に物体が存在する確率を減少させる。
【0056】
また、ステップS108において、床面以外の物体が存在すると判定された場合には、環境地図の該当位置に物体が存在する確率を増加させる。ただし、過去に観測したデータにより、環境地図上にすでに情報がある場合には、現在推定した情報との照合を図る必要がある。このため、過去の情報と検出した物体の情報とが一致しない場合には、環境地図上の同一の場所に複数の異なる物体の存在確率を有するようになる。
【0057】
図4は、環境地図の存在確率について説明する説明図である。図4は、障害物の存在確率が与えられた3次元グリッドを示す説明図である。3次元グリッドとして表される領域は、例えば、4メートル四方、水平解像度4センチおよび垂直解像度1センチを1セルとした3次元グリッドで表現されている。また、例えば、1秒間に30回というように所定間隔毎に周囲の状態を取得するため、ロボットが移動する場合には、3次元グリッドとして表現させる空間は、時々刻々と変化する。取得されたセルは、例えば、見えたところを1、見えないところを0.5とする。存在確率は、1秒間に30回測定する間に徐々に更新されていく。
【0058】
図4に示した3次元グリッドの作成および更新は、測定点と観測中心とを結ぶ直線上には障害物が存在しないというアルゴリズムに基づいて行われている。例えば、測定対象点であるセルpとロボット装置のステレオカメラ等の撮像装置の間に存在するセルに対して、エンプティ(Empty)処理を行う。続いて、測定点pにあたるセルに対してオキュパイド(Occupied)処理を行う。
【0059】
3次元グリッドは、セルCに対して障害物の存在確率(障害物によって占有されている確率)p(C)を保持しており、エンプティ処理およびオキュパイド処理は、各セルに対して統計的な処理である。エンプティ処理は障害物の存在確率を低下させる処理であり、オキュパイド処理は障害物の存在確率を増加させる処理である。本実施形態では、エンプティ処理およびオキュパイド処理の存在確率を算出する手法の一例として、ベイズの更新則を用いる。
【0060】
エンプティ処理のときは以下の数式1により占有確率を減少させ、オキュパイド処理のときは以下の数式2により占有確率を増加させる。数式1は、セルCの占有確率を表すp(c)が“占有”という条件下にあるセルCの確率を表している。また、数式1または数式2において、セルCが占有されているかまたは占有されていないかを表す確率p(occ|・・・)、p(empty|・・・)は、予め決められた閾値thである。
【0061】
【数1】

【0062】
【数2】

【0063】
以上、制御装置100における環境地図生成処理について説明した。次に、図5を参照して、ユーザの指示による行動に基づく環境地図の更新処理について説明する。図5は、ユーザの指示よる行動に基づく環境地図の更新処理を示すフローチャートである。図5に示したように、まず、ユーザの指示情報を取得する(S202)。ステップS202においては、ユーザの指示情報として、ユーザから対象物体の場所や対象物体の名称などの情報を取得する。
【0064】
そして、ステップS202において指定された場所にロボットを移動させる(S204)。ステップS204において、ロボットが移動中もさまざまな観測データを取得することができるため、図3に示した自律移動による環境地図更新処理を実行してもよい。また、ロボットを移動させる際には、現在までに生成または更新された環境地図の情報に基づいて、最適な移動パスを決定することが可能である。
【0065】
ステップS204でロボットが指定場所に移動した後、指定場所で物体を検出し、検出位置を環境地図上の情報として保持する(S206)。そして、ステップS206において検出した物体をロボットに把持させる(S208)。
【0066】
そして、ユーザが位置する場所に移動する(S210)。ステップS210においても、ロボットの移動中の観測データを取得して、環境地図を更新してもよい。
【0067】
そして、ステップS208において把持した物体をユーザへ渡す(S212)。ここで、ステップS212においてユーザに渡した物体が、ユーザが指示した物体か否かを確認する(S214)。ステップS214においてユーザに確認することにより、ロボットによる物体の認識ミスや移動ミスにより、間違った物体情報を環境地図に反映することを防止することができる。
【0068】
ステップS214において、ユーザに渡した物体が、ユーザが指示した物体であることが確認された場合には、環境地図を更新する(S216)。ステップS216では、環境地図上において、物体を検出した場所や、物体の名称や重さなどの物体情報などの存在確率を増加させる。図3に示した自立的に環境地図を更新する処理と異なり、ユーザ指示に応じて環境地図を更新する場合には、ユーザにより物体の名称等の確認がとれているため、環境地図の存在確率を大きく更新してもよい。
【0069】
次に、図6を参照して、ユーザに「あれとってきて」と指示された場合の処理について説明する。図6は、ユーザに「あれとってきて」と指示された場合の処理を示すフローチャートである。図6に示したように、まず、ユーザの指示情報として、「あれとってきて」を取得する(S222)。
【0070】
ステップS222においてユーザに「あれとってきて」と指示された後に、ユーザとロボットとの位置関係や、ロボットの現在の場所や現在時刻などのコンテキストを把握する(S224)。例えば、ロボットの現在の場所がリビングなのかキッチンなのかを把握したり、現在時刻から朝なのか昼なのか夕方なのかを把握したりする。これらのコンテキストを用いて、環境地図情報から「あれ」に相当する物体を推定する。
【0071】
ここで、環境地図の階層化構造について説明する。図7に示したように、環境地図は、全体地図(全体Map)と局所地図(局所Map)とを有する階層化された構造となっている。また、局所地図は、時間軸情報を考慮した3次元的な構造となっている。環境地図の各ピクセル(x、y、t)に付随する情報としては、物体の存在確率、物体の情報(名称、重さ)、ユーザからの指示語の確率などが挙げられる。
【0072】
環境地図の更新は、上記したように、すべての確率を増加したり減少したりすることによって行われる。確率密度の更新は、時空間的に行われる。ただし、「あれ」などの指示語の確率に関しては、その時刻の空間のみにおいて更新する。例えば、キッチン61のなかで「あれ」として指示される物体の確率は、説明図63に示したように、時刻毎に更新される。これは、時刻によって「あれ」と指示される物体の確率は変化するためである。時刻毎に「あれ」の確率を更新することにより、ユーザからの「あれとってきて」の「あれ」をロボットに正しく解釈させることが可能となる。
【0073】
図6に戻り、ステップS224において、「あれ」に相当する物体を推定した後に、ユーザにユーザが指示した「あれ」が、推定した物体であるか否かを確認してもよい。これにより、より確実にユーザが指示した物体をユーザのもとへ移動させることができる。
【0074】
ステップS224においてユーザが「あれ」と指示した物体を推定し、環境地図情報をもとにユーザの指示した物体がある位置へ移動する(S226)。ステップS226において、ロボットが移動中もさまざまな観測データを取得して、随時環境地図を更新してもよい。
【0075】
そして、物体を検出し、当該物体をロボットに把持させる(S228)。ステップS228において、必要であれば、環境地図に登録されている物体の名称を用いてユーザに確認をとってもよい。例えば、「あれ」と指示された物体の名称が「ペットボトル」や「ジュース」などの名称であるかをテキストで表示してもよいし、物体の画像をユーザに表示させてもよい。
【0076】
そして、ユーザが位置する場所に移動する(S230)。ステップS210においても、ロボットの移動中の観測データを取得して、環境地図を更新してもよい。
【0077】
そして、ステップS228において把持した物体をユーザへ渡す(S232)。ここで、ステップS232においてユーザに渡した物体が、ユーザが指示した物体か否かを確認する(S234)。ステップS234において、ユーザに渡した物体が、ユーザが指示した「あれ」に相当するものであることが確認された場合には、環境地図を更新する(S236)。ステップS236では、環境地図の該当箇所における物体情報を更新する。すなわち、あるコンテキストにおける「あれ」と指示される確立を増加させる。
【0078】
以上、ユーザに「あれとってきて」と指示された場合の処理について説明した。以上より、本実施形態によれば、環境地図を参照して、ロボットにユーザからの指示情報に基づく処理を実行させ、ユーザからの指示情報や指示情報に基づく移動体の処理をもとに環境地図を更新する。これにより、ユーザとのインタラクションを通じて、環境地図に様々な情報を付加することが可能となる。
【0079】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0080】
例えば、本明細書の制御装置100の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、制御装置100の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。
【0081】
また、制御装置100などに内蔵されるCPU、ROMおよびRAMなどのハードウェアを、上述した制御装置100の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【符号の説明】
【0082】
100 制御装置
101 画像認識器
102 検出部
104 記憶部
105 環境地図
106 更新部
108 実行部
110 取得部
112 判定部



【特許請求の範囲】
【請求項1】
移動体に所定の処理を実行させる実行部と、
前記移動体が移動可能な領域の環境地図を記憶している記憶部と、
前記移動体の周辺情報を検出する検出部と、
前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、
ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、
を備え、
前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、
前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する、制御装置。
【請求項2】
前記環境地図は、物体の存在確率を示す情報を含んで構成され、
前記検出部は、前記移動体の周辺に存在する物体を検出し、
前記更新部は、前記環境地図に含まれる物体の存在確率を更新する、請求項1に記載の制御装置。
【請求項3】
前記更新部は、前記指示情報に含まれる前記物体に関する情報と、前記物体の存在確率とを関連付けて前記環境地図を更新する、請求項2に記載の制御装置。
【請求項4】
前記更新部は、前記指示情報に含まれる指示語と前記物体の存在確率とを関連付けて前記環境地図を更新する、請求項2に記載の制御装置。
【請求項5】
前記更新部は、前記指示語の出現確率を所定の時間毎に更新する、請求項4に記載の制御装置。
【請求項6】
前記実行部は、前記指示情報を解析して、前記指示情報に含まれるユーザに指示された物体をユーザ位置に移動させる処理を移動体に実行させる、請求項1に記載の制御装置。
【請求項7】
前記実行部は、前記移動体をユーザに指示された物体が存在する場所に移動させ、前記物体を把持して前記ユーザの位置している場所に移動させる、請求項1に記載の制御装置。
【請求項8】
ユーザ入力に応じて、前記実行部により実行された前記移動体の処理が前記ユーザの指示に対応しているか否かを判定する判定部を備える、請求項1に記載の制御装置。
【請求項9】
前記判定部により前記実行部により実行された前記移動体の処理と前記ユーザの指示とが一致していると判定された場合、前記更新部は、前記指示情報に含まれる物体に関する情報の存在確率を増加させる、請求項8に記載の制御装置。
【請求項10】
前記更新部は、前記指示情報に含まれる指示された場所における指示された物体の存在確率を増加させる、請求項9に記載の制御装置。
【請求項11】
前記更新部は、前記指示情報に含まれる指示された時間における指示語の存在確率を増加させる、請求項9に記載の制御装置。
【請求項12】
ユーザ入力に応じて、ユーザの指示を示す指示情報を取得するステップと、
記憶部に記憶されている移動体が移動可能な領域の環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させるステップと、
前記移動体の周辺情報を検出するステップと、
前記検出された前記移動体の周辺情報に基づいて、前記環境地図を更新するステップと、
前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新するステップと、
を含む、移動体の制御方法。
【請求項13】
コンピュータを、
移動体に所定の処理を実行させる実行部と、
前記移動体が移動可能な領域の環境地図を記憶している記憶部と、
前記移動体の周辺情報を検出する検出部と、
前記検出部により検出された前記移動体の周辺情報に基づいて、前記環境地図を更新する更新部と、
ユーザ入力に応じて、ユーザの指示を示す指示情報を取得する取得部と、
を備え、
前記実行部は、前記環境地図を参照して、前記移動体に前記指示情報に基づく処理を実行させ、
前記更新部は、前記指示情報および前記指示情報に基づく前記移動体により実行される処理をもとに前記環境地図を更新する、制御装置として機能させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate