(57)【要約】【課題】環境に応じて物体の正しい姿勢を推定し、操作・修正するロボット装置を提供する。【解決手段】ロボットは、ユーザーが普段使用するため周囲に置いている物体に関して、最適な姿勢の学習を自律的に行なう。ユーザーが普段と異なる姿勢で物体を置いたとしても、ロボットはその姿勢を適宜修正するので、ユーザーにとって心地よい環境を整えることができる。肢体不自由者、障害者、体の不自由な高齢者など、よく利用する物をあまり苦労しないで利用できるよう、身の回りの決まった位置に置いていることの多いユーザーにとって有効な機能である。【選択図】  図４
2013022705.tif 000002
【特許請求の範囲】
【請求項１】
周囲の画像を入力する画像入力部と、
前記画像入力部の入力画像から物体を検出する対象物体検出部と、
前記対象物体検出部が検出した物体の位置を検出する物体位置検出部と、
前記物体位置検出部で検出した物体の位置の周囲の環境情報を取得する環境情報取得部と、
前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部と、
前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部と、
前記物体姿勢検出部が検出した物体の現在の姿勢を当該物体の最適な姿勢を比較する物体姿勢比較部と、
前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部と、
を具備するロボット装置。
【請求項２】
ユーザーの指示に基づくタスクを実行するタスク実行部をさらに備え、
前記タスク実行部がタスクを実行していないときに、前記物体姿勢検出部による物体の現在の姿勢の検出、前記物体姿勢比較部による最適な姿勢との比較、及び、前記物体姿勢修正部による物体の姿勢の修正を自律的に行なう、
請求項１に記載のロボット装置。
【請求項３】
前記ロボット装置の位置を移動する移動部をさらに備え、
前記物体姿勢検出部は、前記移動部により前記ロボット装置の現在位置を移動させながら、物体の現在の姿勢の検出を行なう、
請求項１に記載のロボット装置。
【請求項４】
前記最適姿勢取得部は、各物体の最適な姿勢を学習により取得して、前記物体姿勢データベースに保持する、
請求項１に記載のロボット装置。
【請求項５】
さらにユーザーから教示された各物体の最適な姿勢を前記物体姿勢データベースに保持する、
請求項４に記載のロボット装置。
【請求項６】
前記画像入力部の入力画像に基づいて前記環境マップを更新する環境マップ更新部をさらに備える、
請求項１に記載のロボット装置。
【請求項７】
前記最適姿勢取得部は、ユーザーにとって心地よい環境を整える際に物体を置くのに最適な姿勢、並びにユーザーに手渡す際の物体の最適な姿勢を取得する、
請求項１に記載のロボット装置。
【請求項８】
前記環境情報取得部は、周囲の環境情報からなる環境マップから、前記物体位置検出部で検出した物体の位置の周囲の環境情報を取得する、
請求項１に記載のロボット装置。
【請求項９】
前記物体姿勢比較部は、前記物体姿勢検出部が検出した物体の現在の姿勢を、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースに保持されている当該物体の最適な姿勢と比較する、
請求項１に記載のロボット装置。
【請求項１０】
周囲の画像を入力する画像入力ステップと、
前記画像入力ステップで入力した画像から物体を検出する対象物体検出ステップと、
前記対象物体検出ステップで検出した物体の位置を検出する物体位置検出ステップと、
周囲の環境情報からなる環境マップから、前記物体位置検出ステップで検出した物体の位置の周囲の環境情報を取得する環境情報取得ステップと、
前記対象物体検出ステップで検出した物体の、前記環境情報取得ステップで取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得ステップと、
各物体の環境毎の最適な姿勢を物体姿勢データベースに保持する最適姿勢保持ステップと、
前記画像入力ステップで入力した画像から物体の現在の姿勢を検出する物体姿勢検出ステップと、
前記物体姿勢検出ステップで検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較ステップと、
前記物体姿勢比較ステップにおいて物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正ステップと、
を有するロボット装置の制御方法。
【請求項１１】
周囲の環境情報からなる環境マップ、
周囲の画像を入力する画像入力部、
前記画像入力部の入力画像から物体を検出する対象物体検出部、
前記対象物体検出部が検出した物体の位置を検出する物体位置検出部、
前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部、
前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部、
各物体の環境毎の最適な姿勢を保持する物体姿勢データベース、
前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部、
前記物体姿勢検出部が検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較部、
前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部、
としてコンピューターを機能させるようにコンピューター可読形式で記述された、ロボット装置を制御するためのコンピューター・プログラム。
【請求項１２】
それぞれ外部装置上に構築された、周囲の環境情報からなる環境マップと、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースと、
周囲の画像を入力する画像入力部と、前記画像入力部の入力画像から物体を検出する対象物体検出部と、前記対象物体検出部が検出した物体の位置を検出する物体位置検出部と、前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部と、前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部と、前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部と、前記物体姿勢検出部が検出した物体の現在の姿勢を、前記物体姿勢データベースに保持されている当該物体の最適な姿勢と比較する物体姿勢比較部と、前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部と、
を具備するロボット装置と、
からなるロボット・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する技術は、ユーザーにとって心地よい環境を自律的に整える作業を行なうロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システムに係り、特に、ユーザーがよく利用する物をあまり苦労しないで利用できるように置いておく位置及び姿勢を自律的に整えるロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システムに関する。
【背景技術】
【０００２】
さまざまな作業が行なえるロボット装置が、近年実現されつつある。しかしながら、多くのロボット装置は、操作対象となる物体を、その操作の内容や周囲の環境に応じて、最適な姿勢となるように操作することが困難である。
【０００３】
肢体不自由者や障がい者、体の不自由な高齢者などは、よく利用する物をあまり苦労しないで利用できるよう、身の回りの決まった位置に置いていることが多い。このようなユーザーにとって、これらの物を置いておく位置及び姿勢は非常に重要であるため、ユーザーにとって心地よい環境を自律的に整えることのできるロボット装置が望まれている。
【０００４】
また、ロボットが持っている物体をユーザーに手渡す際に、その物体をユーザーが持ち易い、あるいは、ユーザーが利用し易い姿勢で、手渡すことのできるロボットが望まれている。
【０００５】
例えば、ユーザーからの指示又は自律的に日用品を預かって、空きスペースに片付ける片付けロボットについて提案がなされている（例えば、特許文献１を参照のこと）。しかしながら、この片付けロボットは、物体を片付ける際に、物体の最適な位置や姿勢を考慮するものではない。
【０００６】
また、カメラの取得画像に基づいて環境マップの生成を行なう情報処理装置について提案がなされている（例えば、特許文献２を参照のこと）。この情報処理装置は、認識する対象物の探索領域を限定するために、オントロジーマップを利用している（例えば、ユーザーの顔は、ソファーの上やテレビの前である可能性が高い）。この情報処理装置は、カメラを備えたロボットなどのエージェント(移動体)に適用することができる。しかしながら、対象物の姿勢に関しては何ら考慮されない。
【０００７】
また、対象物体の形状データベースを持ち、対象物体の把持・搬送後、設置時の姿勢などをデータベースの情報を基に決定し、ロボットが対象物体の移動や運搬を行なう物品管理システムについて提案がなされている（例えば、特許文献３を参照のこと）。しかしながら、この物品管理システムは、物体を把持運搬して設置するのみであり、ユーザーの心地よい環境を自律的に整えることや、ユーザーとの物体の授受に関して考慮されていない。また、複雑な環境における、物体の正しい姿勢に関して考慮されていない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１５２４４３号公報
【特許文献２】特開２００８−３０４２６８号公報
【特許文献３】特許第３７３８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本明細書で開示する技術の目的は、ユーザーがよく利用する物をあまり苦労しないで利用できるように置いておく位置及び姿勢を自律的に整えることができる、優れたロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システムを提供することにある。
【００１０】
本明細書で開示する技術のさらなる目的は、ロボットが持っている物体を、その物体をユーザーが持ち易い、あるいは、ユーザーが利用し易い姿勢で、ユーザーに手渡すことができる、優れたロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システムを提供することにある。
【課題を解決するための手段】
【００１１】
本願は、上記課題を参酌してなされたものであり、請求項１に記載の技術は、
周囲の環境情報からなる環境マップと、
周囲の画像を入力する画像入力部と、
前記画像入力部の入力画像から物体を検出する対象物体検出部と、
前記対象物体検出部が検出した物体の位置を検出する物体位置検出部と、
前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部と、
前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部と、
各物体の環境毎の最適な姿勢を保持する物体姿勢データベースと、
前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部と、
前記物体姿勢検出部が検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較部と、
前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部と、
を具備するロボット装置である。
【００１２】
本願の請求項２に記載の技術によれば、請求項１に記載のロボット装置は、ユーザーの指示に基づくタスクを実行するタスク実行部をさらに備えている。そして、前記タスク実行部がタスクを実行していないときに、前記物体姿勢検出部による物体の現在の姿勢の検出、前記物体姿勢比較部による最適な姿勢との比較、及び、前記物体姿勢修正部による物体の姿勢の修正を自律的に行なうように構成されている。
【００１３】
本願の請求項３に記載の技術によれば、請求項１に記載のロボット装置は、ロボット装置の位置を移動する移動部をさらに備えている。そして、前記物体姿勢検出部は、前記移動部により前記ロボット装置の現在位置を移動させながら、物体の現在の姿勢の検出を行なうように構成されている。
【００１４】
本願の請求項４に記載の技術によれば、請求項１に記載のロボット装置は、最適姿勢取得部は、各物体の最適な姿勢を学習により取得して、前記物体姿勢データベースに保持するように構成されている。
【００１５】
本願の請求項５に記載の技術によれば、請求項４に記載のロボット装置は、さらにユーザーから教示された各物体の最適な姿勢を前記物体姿勢データベースに保持するように構成されている。
【００１６】
本願の請求項６に記載の技術によれば、請求項１に記載のロボット装置は、画像入力部の入力画像に基づいて前記環境マップを更新する環境マップ更新部をさらに備えている。
【００１７】
本願の請求項７に記載の技術によれば、請求項１に記載のロボット装置の最適姿勢取得部は、ユーザーにとって心地よい環境を整える際に物体を置くのに最適な姿勢、並びにユーザーに手渡す際の物体の最適な姿勢を取得するように構成されている。
【００１８】
本願の請求項８に記載の技術によれば、請求項１に記載のロボット装置の環境情報取得部は、周囲の環境情報からなる環境マップから、前記物体位置検出部で検出した物体の位置の周囲の環境情報を取得するように構成されている。
【００１９】
本願の請求項９に記載の技術によれば、請求項１に記載のロボット装置の物体姿勢比較部は、前記物体姿勢検出部が検出した物体の現在の姿勢を、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースに保持されている当該物体の最適な姿勢と比較するように構成されている。
【００２０】
また、本願の請求項１０に記載の技術は、
周囲の画像を入力する画像入力ステップと、
前記画像入力ステップで入力した画像から物体を検出する対象物体検出ステップと、
前記対象物体検出ステップで検出した物体の位置を検出する物体位置検出ステップと、
周囲の環境情報からなる環境マップから、前記物体位置検出ステップで検出した物体の位置の周囲の環境情報を取得する環境情報取得ステップと、
前記対象物体検出ステップで検出した物体の、前記環境情報取得ステップで取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得ステップと、
各物体の環境毎の最適な姿勢を物体姿勢データベースに保持する最適姿勢保持ステップと、
前記画像入力ステップで入力した画像から物体の現在の姿勢を検出する物体姿勢検出ステップと、
前記物体姿勢検出ステップで検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較ステップと、
前記物体姿勢比較ステップにおいて物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正ステップと、
を有するロボット装置の制御方法である。
【００２１】
また、本願の請求項１１に記載の技術は、
周囲の環境情報からなる環境マップ、
周囲の画像を入力する画像入力部、
前記画像入力部の入力画像から物体を検出する対象物体検出部、
前記対象物体検出部が検出した物体の位置を検出する物体位置検出部、
前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部、
前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部、
各物体の環境毎の最適な姿勢を保持する物体姿勢データベース、
前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部、
前記物体姿勢検出部が検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較部、
前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部、
としてコンピューターを機能させるようにコンピューター可読形式で記述された、ロボット装置を制御するためのコンピューター・プログラムである。
【００２２】
本願の請求項１１に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項１１に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項１に係るロボット装置と同様の作用効果を得ることができる。
【００２３】
また、本願の請求項１２に記載の技術は、
それぞれ外部装置上に構築された、周囲の環境情報からなる環境マップと、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースと、
周囲の画像を入力する画像入力部と、前記画像入力部の入力画像から物体を検出する対象物体検出部と、前記対象物体検出部が検出した物体の位置を検出する物体位置検出部と、前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部と、前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部と、前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部と、前記物体姿勢検出部が検出した物体の現在の姿勢を、前記物体姿勢データベースに保持されている当該物体の最適な姿勢と比較する物体姿勢比較部と、前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部と、
を具備するロボット装置と、
からなるロボット・システムである。
【００２４】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【発明の効果】
【００２５】
本明細書で開示する技術によれば、ユーザーがよく利用する物をあまり苦労しないで利用できるように置いておく位置及び姿勢を自律的に整えることができる、優れたロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システムを提供することができる。
【００２６】
また、本明細書で開示する技術によれば、ロボットが持っている物体を、その物体をユーザーが持ち易い、あるいは、ユーザーが利用し易い姿勢で、ユーザーに手渡すことができる、優れたロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システムを提供することができる。
【００２７】
本明細書で開示する技術のさらに他の目的、特徴や利点は、後述する実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【００２８】
【図１】図１は、本明細書で開示する技術を適用可能なロボット装置１００の外観を示した図である。
【図２】図２は、本明細書で開示する技術を適用可能なロボット装置１００の関節自由度構成を模式的に示した図である。
【図３】図３は、図１に示したロボット装置１００を制御するための機能的構成を模式的に示した図である。
【図４】図４は、ロボット装置１００が環境に応じた動作を実現するための機能的構成を模式的に示した図である。
【図５】図５は、ロボット装置１００の環境に応じた動作として、ユーザーの心地よい環境を整える様子を例示した図である。
【図６】図６は、ロボット装置１００の環境に応じた動作として、ユーザーの心地よい環境を整える様子を例示した図である。
【図７】図７は、ロボット装置１００の環境に応じた動作として、対象物体を正しい（ユーザーが持ち易い）姿勢で手渡す様子を例示した図である。
【図８Ａ】図８Ａは、円柱の（若しくは円柱近似できる）物体に関して固有の座標系を設定する様子を示した図である。
【図８Ｂ】図８Ｂは、世界座標ｘｙｚに対して物体座標ｘ´ｙ´ｚ´が３次元回転している様子を示した図である。
【図９】図９は、物体姿勢データベース４０９の構成例を示した図である。
【図１０】図１０は、物体姿勢データベース４０９をオンラインで生成並びに更新する処理手順を示したフローチャートである。
【図１１】図１１は、物体姿勢データベース４０９を生成並びに更新する処理手順示したフローチャートである。
【図１２】図１２は、物体・環境毎の姿勢データのデータベース９０３の変形例を示した図である。
【図１３】図１３は、ロボット装置１００が実行する動作を示した状態遷移図である。
【図１４】図１４は、ロボット装置１００が「物体姿勢修正」モード下で実行する処理手順を示したフローチャートである。
【発明を実施するための形態】
【００２９】
以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
【００３０】
図１には、本明細書で開示する技術を適用可能なロボット装置１００の外観を示している。ロボット装置１００は、複数のリンクを関節で接続されたリンク構造体であり、各関節はアクチュエーターによって動作する。図２には、このロボット装置１００の関節自由度構成を模式的に示している。図示のロボット装置１００は、主に家庭環境に設置されて家事や介護などを行なうが、産業用などさまざまな用途で使用することも可能である。
【００３１】
図示のロボット装置１００は、移動手段として、ベース部に対向する２輪の駆動輪１０１Ｒ及び１０１Ｌを備えている。各駆動輪１０１Ｒ及び１０１Ｌは、それぞれピッチ回りに回転する駆動輪用アクチュエーター１０２Ｒ及び１０２Ｌによって駆動する。なお、図２中において、参照番号１５１、１５２、１５３は、実在しない劣駆動関節であり、ロボット装置１００の床面に対するＸ方向（前後方向）の並進自由度、Ｙ方向（左右方向）の並進自由度、並びに、ヨー回りの回転自由度にそれぞれ相当し、ロボット装置１００が仮想世界を動き回ることを表現したものである。
【００３２】
移動手段は、腰関節を介して上体に接続される。腰関節は、ピッチ回りに回転する腰関節ピッチ軸アクチュエーター１０３によって駆動する。上体は、左右２肢の腕部と、首関節を介して接続される頭部で構成される。左右の腕部は、それぞれ肩関節３自由度、肘関節２自由度、手首関節２自由度の、計７自由度とする。肩関節３自由度は、肩関節ピッチ軸アクチュエーター１０４Ｒ／Ｌ、肩関節ロール軸アクチュエーター１０５Ｒ／Ｌ、肩関節ヨー軸アクチュエーター１０６Ｒ／Ｌによって駆動する。肘関節２自由度は、肘関節ピッチ軸アクチュエーター１０７Ｒ／Ｌ、肘関節ヨー軸アクチュエーター１０８Ｒ／Ｌによって駆動する。手首関節２自由度は、手首関節ロール軸アクチュエーター１０９Ｒ／Ｌ、手首関節ピッチ軸アクチュエーター１１０Ｒ／Ｌによって駆動する。また、首関節２自由度は、首関節ピッチ軸アクチュエーター１１１、首関節ヨー軸アクチュエーター１１２によって駆動する。また、手関節１自由度は、手関節ロール軸アクチュエーター１１３Ｒ／Ｌによって駆動する。
【００３３】
なお、図示のロボット装置１００は、対向２輪式の移動手段を備えているが、本明細書で開示する技術の要旨は、対向２輪式の移動手段に限定されるものではない。例えば、脚式の移動手段を備えたロボット装置１００であっても、同様に本明細書で開示する技術を適用することができる。
【００３４】
各軸のアクチュエーターには、関節角を計測するためのエンコーダー、トルクを発生するためのモーター、モーターを駆動するための電流制御型モーター・ドライバーの他、十分な発生力を得るための減速機が取り付けられている。また、アクチュエーターには、アクチュエーターの駆動制御を行なうマイクロコンピューターが併設されている（いずれも図２には図示しない）。
【００３５】
ロボット装置１００のダイナミクス演算は、ホスト・コンピューター上で実行され、各関節アクチュエーターのトルク又は関節角度の制御目標値を生成する。制御目標値は、アクチュエーターに併設された制御用マイコンに送信され、制御用マイコン上で実行されるアクチュエーターの制御に用いられる。また、各関節アクチュエーターは、力制御方式又は位置制御方式により制御される。
【００３６】
図３には、図１に示したロボット装置１００を制御するための機能的構成を模式的に示している。ロボット装置１００は、全体の動作の統括的制御やその他のデータ処理を行なう制御ユニット３１０と、入出力部３２０と、駆動部３３０とを備えている。以下、各部について説明する。
【００３７】
入出力部３２０は、入力部として、ロボット装置１００の目に相当するカメラ３２１、人や障がい物までの距離を検出する距離センサー３２２、ロボット装置１００の耳に相当するマイクロフォン３２３などを備えている。また、入出力部３２０は、出力部として、ロボット装置１００の口に相当するスピーカー３２４などを備えている。ここで、距離センサー３２２は、例えば、レーザー・レンジ・ファインダーなどの空間センサーで構成される。また、ロボット装置１００は、例えばマイクロフォン３２３からのユーザーの音声入力により、タスクの指示を受けることができる。但し、ロボット装置１００は、有線、無線、あるいは記録メディアなどを介した他のタスクの指示の入力手段（図示しない）を備えていてもよい。
【００３８】
駆動部３３０は、ロボット装置１００の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど軸毎に設けられた複数の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行なうモーター３３１と、モーター３３１の回転位置を検出するエンコーダー３３２と、エンコーダー３３２の出力に基づいてモーター３３１の回転位置や回転速度を適応的に制御するドライバー３３３の組み合わせで構成される。
【００３９】
制御ユニット３１０は、認識部３１１と、駆動制御部３１２と、環境マップ３１３を備えている。
【００４０】
認識部３１１は、入出力部３２０のうちカメラ３２１や距離センサー３２２といった入力部から得られる情報に基づいて、周囲の環境の認識を行なう。例えば、認識部３１１は、入力情報に基づいて環境マップ３１３を事前に構築したり更新したりする。
【００４１】
駆動制御部３１２は、入出力部３２０のうち出力部や、駆動部３３０の駆動を制御する。例えば、駆動制御部３１２は、ロボット装置１００がタスクを実現するための、駆動部３３０の制御を行なう。ここで言う、ロボット装置１００が実現するタスクには、ユーザーからの指示に応じた家事や介護や、環境に応じた動作などが含まれる。また、環境に応じた動作として、ユーザーがよく利用する物をあまり苦労しないで利用できるように置いておく位置及び姿勢を自律的に整えることや、ロボットが持っている物体を、その物体をユーザーが持ち易い、あるいは、ユーザーが利用し易い姿勢で、ユーザーに手渡すこと、などを上げることができる。
【００４２】
図４には、ロボット装置１００が環境に応じた動作を実現するための機能的構成を模式的に示している。
【００４３】
環境マップ３１３は、ユーザーが居る部屋など、ロボット装置１００が動作する作業空間におけるテーブルやソファー、本棚、テレビなどの物体の形状、位置、姿勢データなどで構成されるデータベースである。
【００４４】
なお、環境マップ３１３でデータベース管理される物体と、ロボット装置１００が自律的に位置及び姿勢を整える物体との相違として、前者はロボット装置１００がアームなどで操作したり移動したりできない程度に大きな物体であるのに対し、後者はロボット装置１００が把持して移動できる程度に小さな物体であることを挙げることができる。テーブルやソファー、本棚、テレビなどの大きな物体が環境マップで管理されるのに対し、ペットボトルやリモコンなどは、ロボット装置１００が位置及び姿勢を自律的に整えたりユーザーに手渡したりする対象物体である。
【００４５】
自己位置検出部４０１は、カメラ３２１や距離センサー３２２などの計測結果に基づいて、ロボット装置１００の自己位置を検出若しくは推定する。また、環境マップ更新部４０３は、環境マップ３１３の構築並びに更新を行なう。
【００４６】
対象物体検出部４０２は、カメラ３２１の撮影画像から対象物体を検出する。対象物体検出部４０２は、例えば輪郭、エッジ、コーナー、輝度変化、色などの特徴量や、物体の３次元形状、物体に付けられたバーコードなど人工的な幾何学パターンを画像処理することによって、対象物体の検出を行なうことができる。あるいは、対象物体に取り付けられた無線タグからＩＤなどの情報を読み取って、対象物体を検出するようにしてもよい。
【００４７】
ロボット装置１００は、検出した対象物体の最適な姿勢の学習を自律的に行なう。学習時には、物体位置検出部４０４は、自己位置検出部４０１で推定した自己位置と、カメラ３２１の撮影画像から対象物体検出部４０２が検出した対象物体の位置から、対象物体の３次元位置を算出する。
【００４８】
また、環境情報取得部４０６は、環境マップ更新部４０３が更新した環境マップから、検出された物体の位置の周囲の環境情報を取得する。対象物体の３次元位置と環境マップから、対象物体の周囲の環境情報を取得することができる。例えば、「ペットボトルは今、テーブルの上のはず」、「リモコンは今、ソファーの上であり、その向かいにはテレビがあるはず」、といった具合である。
【００４９】
そして、最適姿勢取得部４０７は、周囲の環境情報に応じた、ユーザーにとって心地よい環境を整える際に対象物体を置く正しい（若しくは、最適な）姿勢や、ユーザーに手渡す際の対象物体の正しい（若しくは、最適な）姿勢を、辞書データとして取得すると、物体姿勢データベース４０９に登録する。例えば、複数回にわたり対象物体の姿勢を取得し、各姿勢の投票結果に基づいて正しい姿勢を判定することができる（後述）。
【００５０】
ユーザーにとって心地よい環境を整える際に対象物体を置く正しい姿勢の辞書データの例を表１に示す。また、ユーザーに手渡す際の対象物体の正しい姿勢の辞書データの例を表２に示す。
【００５１】
【表１】
2013022705.tif 000003
【００５２】
【表２】
2013022705.tif 000004
【００５３】
但し、表１において、周囲の環境の指定は組み合わせも可能である。例えば、スリッパは、床の上で且つベッドのそば、とかである。
【００５４】
ロボット装置１００は、各対象物体の最適な姿勢を学習して、物体姿勢データベース４０９に辞書データとして登録する。あるいは、ユーザーがロボット装置１００の辞書データを覚えさせたり、ユーザー・インターフェース（ＵＩ）を介して教えたりするようにしてもよい。
【００５５】
ロボット装置１００は、普段歩き回っているとき、物体がどのような姿勢で置かれていることが多いかを観察し、学習する。例えば、ペットボトルを観察し、蓋が上で立っていることが多い、などを学習する。上記の表１に示したように、対象物体が置かれている環境毎に、どのような姿勢が多いかを学習するようにしてもよい。例えば、「机の上のペットボトルは立っていることが多そう」、「床の上のペットボトルは（飲み終わっているため）寝ていることが多そう」とかである。
【００５６】
また、ロボット装置１００は、学習した結果に基づいて、ユーザーにとって心地よい環境を整える。例えば、ユーザーが普段と異なる姿勢で物体を置いたとしても、ロボット装置１００はその姿勢を適宜修正する。
【００５７】
物体姿勢検出部４０５は、カメラ３２１の撮影画像から対象物体検出部４０２が検出した、現在の対象物体の３次元姿勢を検出する。
【００５８】
最適姿勢取得部４０７は、カメラ３２１の撮影画像から対象物体検出部４０２が検出した対象物体と、環境情報取得部４０６が取得した最新の環境マップを基に、物体姿勢データベース４０９を検索して、当該対象物体の正しい姿勢を推定する。また、最適姿勢取得部４０７は、環境から対象物体を検出する際に利用した情報（特徴量や無線タグなど）を用いて、物体姿勢データベース４０９を照合し、当該対象物体の最適な姿勢を求める。
【００５９】
物体姿勢比較部４０８は、物体姿勢検出部４０５で検出された対象物体の３次元姿勢と、物体姿勢データベース４０９に登録されている辞書データを基に推定した最適な姿勢を比較する。そして、両者の姿勢に差異があれば、対象物体が正しい姿勢となるように、物体姿勢決定部４１０において、当該対象物体の位置姿勢を操作又は修正する制御量を決定する。
【００６０】
このようにして、ロボット装置１００は、物体姿勢データベース４０９に登録されている辞書データに基づいて、対象物体を正しい姿勢に操作又は修正する。対象物体の位置姿勢を操作又は修正する前に、ユーザーに問い合わせるようにしてもよい。また、ロボット装置１００が操作又は修正した対象物体の位置姿勢が間違っている場合には、ユーザーが教示するようにしてもよい。ユーザーは、物体の正しい姿勢をロボットに見せて教えることができる。例えば、ペットボトルを立て姿勢で見せながら、音声で「こういう風に置いて」と指示する。あるいは、ユーザーは、音声によって物体の正しい姿勢を教えることもできる。例えば、「ペットボトルは立てておいて」とか指示する。
【００６１】
本実施形態に係るロボット装置１００は、最適姿勢取得部４０７において、物体姿勢データベース４０９をオンラインで生成することができる。物体姿勢データベース４０９を構築するには、対象物体検出部４０２で検出した対象物体の位置及び姿勢を取得することが欠かせない。
【００６２】
物体形状は、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）データなどの事前知識として、あるいは、ステレオ・カメラなどによる３次元計測を行なった後ポリゴン化するなどして、取得することができる。辞書データとしての物体の形状を取得する際、このポリゴン化した形状に対して、物体固有の座標系を設定する。例えば、図８Ａに示すような円柱の（若しくは円柱近似できる）物体に関しては、中心部を原点に、主軸をｚ´軸、ｚ´軸回りには対称であるためｘ´軸及びｙ´軸は適当に定める、などのように設定する。
【００６３】
また、物体の姿勢に関しては、実世界に図８Ａに示すような円柱の（若しくは円柱近似できる）物体が置かれている場合、世界座標ｘｙｚに対して、物体座標ｘ´ｙ´ｚ´がどのように３次元回転しているかによって（図８Ｂを参照のこと）、その物体の姿勢を表現することができる。任意の３次元回転は、オイラー角、ロール・ピッチ・ヨー角などのように、３つのパラメーター（ある３つの軸の各軸まわりに回転を連続して行なった際の各回転角）で表現できる。そこで、以下の説明では物体の姿勢の３つのパラメーターを（α，β，γ）とする。
【００６４】
本実施形態に係るロボット装置１００は、ユーザーから指示されたタスクを行なっているとき以外は、カメラ３２１の取得画像を基に周囲を自律的に観測して、各対象物体の姿勢を取得している。対象物体の姿勢取得を継続的に行ない、対象物体毎に、どのような姿勢で置かれていることが多いかを、投票などの手法により算出する。
【００６５】
具体的には、パラメーター空間（α，β，γ）を表す３次元配列を投票空間として用意するとともに、各パラメーターを適度に離散化して扱う。これらのパラメーターは角度すなわち連続量であるので、例えば５度刻みに、０〜５度、５〜１０度、１０〜１５度…として、その刻み幅内であればその刻み幅の中央値で代表させる。３６０度を５度刻みに分割すると３６０÷５＝７２であるから、上記のパラメーター空間（α，β，γ）は７２×７２×７２の３次元配列となる。物体の姿勢（α，β，γ）が観測される度に、この配列の対応する要素の値を１ずつ増加させる。その物体の総観測回数（総投票数）が任意に設定された規定回数に到達したら、最適姿勢取得部４０７は、その獲得投票数が極大値となるパラメータ（α，β，γ）を探し、その物体の最適な姿勢とする。
【００６６】
上記では、１回の観測につき、３次元配列の対応する要素を１だけ増加させるという、観測回数をそのまま投票する構成例について示したが、重み付けして投票するように構成することも考えられる。例えば、物体がその姿勢でいた時間を推測・考慮して、１回の観測に重み付けを行なった後に投票する構成例が挙げられる。
【００６７】
また、同じ物体であっても周囲の環境が異なる場合は、その環境毎に上記のような学習を行なう。例えば、同じペットボトルであっても、上記の表１にも示したように、テーブルの上にある場合、床の上にある場合、など置かれている場所毎に最適な姿勢を求める。その物体の周囲の環境情報（テーブルの上に置かれている、など）は、物体位置検出部４０４で推定された現在の物体の位置と（更新された）環境マップに基づいて求める。
【００６８】
上述したように、最適姿勢取得部４０７は、ユーザーにとって心地よい環境を自律的に整える際に対象物体を置く正しい姿勢や、ユーザーに手渡す際の対象物体の正しい姿勢を、物体姿勢データベース４０９に登録する。図９には、物体姿勢データベース４０９の構成例を示している。図示の例では、物体姿勢データベース４０９は、物体データを格納するデータベース９０１、物体毎の姿勢データを格納するデータベース９０２、物体・環境毎の姿勢データを格納するデータベース９０２の３種類のデータベースで構成される。
【００６９】
物体データを格納するデータベース９０１は、さまざまな物体を識別するためのＩＤと、その物体に関する姿勢データベースへのポインターで構成される。物体毎の姿勢データを格納するデータベース９０２は、その物体が置かれている周囲の環境情報と、その物体且つその環境における姿勢データベースへのポインターで構成される。データベースをオンラインで生成するという本明細書で開示する技術とは直接関連しないので図示を省略しているが、物体毎の姿勢データを格納するデータベース９０２は姿勢のみではなく、形状・質量・材質などその物体固有の情報を持たせる構成にしてもよい。物体・環境毎の姿勢データを格納するデータベース９０３は、その物体がその環境にあることを十分観測し最適な姿勢を算出できているかどうかを示す、姿勢学習済みフラグと、学習済みであればその姿勢（α、β、γ）で構成される。また、学習過程における途中結果、すなわち、各投票数を格納するパラメーター空間（α、β、γ）の３次元配列と、その物体の姿勢の総観測回数も、当該データベース９０３に含まれており、これら学習中データへの参照も可能な構成としている。但し、これらの途中結果を当該データベース９０３の外に配置し、参照不可の構成にしても構わない。
【００７０】
勿論、上記の３つのデータベース９０１〜９０３を人手で作成しておいてもよい。例えば、事前に姿勢が分かっている物体に関しては、物体・環境毎のデータ９０３の「姿勢学習済みフラグ」を“学習済み”にし、「最適な姿勢」にその姿勢データ設定するようにしてもよい。
【００７１】
続いて、物体姿勢データベース４０９をオンラインで生成する処理について説明する。
【００７２】
図１０には、物体姿勢データベース４０９をオンラインで生成並びに更新する処理手順をフローチャートの形式で示している。最適姿勢取得部４０７は、かかる処理を定期的に繰り返し行なうものとする。
【００７３】
対象物体検出部４０２は、カメラ３２１の撮影画像を基にして、周囲にあるさまざまな物体を認識する（ステップＳ１００１）。
【００７４】
また、同時に、ステレオ・カメラによる３次元計測などにより、物体姿勢検出部４０５が認識した物体の形状、姿勢を算出するとともに（ステップＳ１００２）、物体位置検出部４０４が認識した物体の位置を算出する（ステップ１００３）。
【００７５】
次いで、最適姿勢取得部４０７は、算出された物体の３次元位置と、環境情報取得部４０６が取得した環境マップにより、その物体の周囲の環境情報を取得する（例えば、テーブルの上、など）（ステップＳ１００４）。
【００７６】
そして、最適姿勢取得部４０７は、このようにして得られた物体識別ＩＤ、物体の姿勢、環境情報を基に、物体姿勢データベース４０９を生成し、さらに更新する（ステップＳ１００５）。
【００７７】
図１１には、上記のステップＳ１００５で実行される、物体姿勢データベース４０９を生成並びに更新する処理手順をフローチャートの形式で示している。
【００７８】
最適姿勢取得部４０７は、まず、認識した物体のＩＤが物体データを保持するデータベース９０１に既に登録されているか否かをチェックする（ステップＳ１１０１）。
【００７９】
ここで、認識した物体のＩＤがまだデータベース９０１に登録されていないときには（ステップＳ１１０１のＮｏ）、最適姿勢取得部４０７は、データベース９０１にその物体のＩＤを登録するとともに、その物体ＩＤに対応する姿勢データをデータベース９０２に作成する（ステップ１１０４）。
【００８０】
認識した物体のＩＤがデータベース９０１に既に登録されているとき、並びに、物体ＩＤに対応する姿勢データをデータベース９０２に作成した後、最適姿勢取得部４０７は、物体周囲の環境情報が物体毎の姿勢データを保持するデータベース９０２に既に登録されているか否かをチェックする（ステップＳ１１０２）。
【００８１】
ここで、物体周囲の環境情報がまだデータベース９０２にまだ登録されていないときには（ステップＳ１１０２のＮｏ）、最適姿勢取得部４０７は、その物体周囲の環境情報を、物体周囲の環境情報を物体毎の姿勢データ９０２に登録するとともに、その環境に対応する姿勢データをデータベース９０３に登録する（ステップＳ１１０５）。
【００８２】
物体周囲の環境情報がデータベース９０２に既に登録されているとき、並びに、環境に対応する姿勢データをデータベース９０３に登録した後に、最適姿勢取得部４０７は、物体の最適な姿勢を既に学習済みであるか否かをチェックする（ステップＳ１１０３）。
【００８３】
ここで、物体の最適な姿勢をまだ学習していないときには、最適姿勢取得部４０７は、物体姿勢検出部４０５で算出した物体の姿勢（α，β，γ）を投票する（ステップＳ１１０６）。物体の姿勢の総観測回数がまだ規定回数に到達していないときには（ステップＳ１１０７のＮｏ）、本処理ルーチンを終了する。また、物体の姿勢の総観測回数が規定回数に到達したときには（ステップＳ１１０７のＹｅｓ）、最適姿勢取得部４０７は、データベース９０３において、投票結果の極大値に対応する姿勢（α，β，γ）を、この物体の最適に姿勢として決定するとともに、学習済みフラグをセットして（ステップＳ１１０８）、本処理ルーチンを終了する。
【００８４】
物体の最適な姿勢を既に学習済みであるときには（ステップＳ１１０３のＹｅｓ）、物体姿勢比較部４０８は、現在の物体の姿勢を学習済みの物体の最適な姿勢と比較し、両者に差があるか否かをチェックする（ステップＳ１１０９）。
【００８５】
現在の物体の姿勢と学習済みの物体の最適な姿勢に差がなければ（ステップＳ１１０９のＮｏ）、本処理ルーチンを終了する。一方、現在の物体の姿勢と学習済みの物体の最適な姿勢に差があるときには（ステップＳ１１０９のＹｅｓ）、物体姿勢決定部４１０は、物体の姿勢を修正する処理を起動する。物体の姿勢を修正する処理の詳細については後述に譲る。
【００８６】
図１１に示した処理手順では、総観測回数すなわち総投票数が規定の回数以上になった時点で最適な姿勢を決定するようにしているが、他の実装方法も挙げられる。例えば、上記のように投票を行なった結果、投票空間（α，β，γ）で姿勢の頻度分布を得ることができる。その頻度分布に照らしたとき、現在の姿勢が「めったにない」（すなわち、他の姿勢と比べて頻度が低い）ときには、物体姿勢修正モード（後述）では、その姿勢近傍で他よりも頻度の高い物体の姿勢へ変化させる。
【００８７】
投票により得られた姿勢の頻度分布を用いることで、複数の「最適な姿勢」を扱うことができる。例えば、探索モード（後述）下で物体の現在の姿勢を得たときに、物体姿勢修正モードではその姿勢近傍で他よりも頻度の高い姿勢へ変化させるようにすればよい。
【００８８】
また、姿勢の頻度分布は投票が少ない場合でも使用することが可能である。但し、投票数が少ない場合は、ある特定の姿勢について、他と比べてめったないという判定をすることがあり得ないと考えられるため、実際の姿勢を変化させることは少ないであろう。それでも、「規定の投票回数」を決定する必要はなくなる（代わりに、どのくらいの頻度であれば「めったにない」と判定するかを決める必要がある。）。この方法を用いるもう１つの利点は、姿勢変更を行なうかどうか決定するためのパラメーターである「規定の投票回数」を適切に定めておく必要がなくなるという点である。少ない投票数しか得られていない初期状態であっても、ある姿勢画素の近傍と比較して相対的にどれだけ「めったにない」かを判定することができる。
【００８９】
さらに、投票空間のボックス・サイズを投票の分布に応じて動的に変化させる、という実装も挙げられる。ボックス・サイズを決定するには、ヒストグラム密度推定においてヒストグラムの幅を決定する種々の方法を利用することができる。また、ヒストグラム密度推定の代わりに、サンプル点を直接用いてカーネル密度推定することもできる。サンプル・データを用いて物体姿勢の確率密度関数ｐ（姿勢｜物体，場所）を適切に推定できるのであれば、ある姿勢データｘ近傍の確率密度が閾値以下のときには、その周辺で、確率密度関数ｐ（姿勢｜物体，場所）が極大となる姿勢ｘ＿ｏｐｔへと物体の姿勢を変更することにより、物体の姿勢を適切に修正することができる。
【００９０】
ここで、物体としてペットボトルを検出した場合を例にとって、図１１に示した物体姿勢データベース４０９を生成並びに更新する処理について説明する。但し、以下では、データベースの名称を『』で、データベース内のキーを「」で、データベース内のキーに対応する値を“”として区別する。
【００９１】
まず、最適姿勢取得部４０７は、そのペットボトルが物体データを保持するデータベース９０１に登録されているか否かをチェックする（ステップＳ１１０１）。ペットボトルがデータベース９０１に登録されていない場合は（ステップＳ１１０１のＮｏ）、そのＩＤ“ペットボトル００１”をデータベース９０１に登録し、このＩＤに対応する物体毎の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１』をデータベース９０２に作成すると同時に、そのポインターをデータベース９０１に登録する（ステップＳ１１０５）。この時点では、データベース９０２中の物体毎の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１』の、周囲環境、姿勢データとも空の状態である。
【００９２】
次いで、最適姿勢取得部４０７は、ペットボトルがテーブルの上に置いてあったとして、“テーブルの上”という環境情報が、データベース９０２中の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１』に登録されているか否かをチェックする（ステップＳ１１０２）。まだ登録されていない場合には（ステップＳ１１０２のＮｏ）、最適姿勢取得部４０７は、「環境情報」として“テーブルの上”をデータベース９０２に登録し、これに対応する物体・環境毎の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１＿ＯｎＴａｂｌｅ』をデータベース９０３に作成すると同時に、そのポインターをデータベース９０２に登録する（ステップＳ１１０５）。この時点では、データベース９０３に登録されている物体・環境毎の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１＿ＯｎＴａｂｌｅ』の、「姿勢学習済みフラグ」は“学習中”である。
【００９３】
次いで、最適姿勢取得部４０７は、データベース９０３中の『ＰｅｔＢｏｔｔｌｅ００１＿ＯｎＴａｂｌｅ』の「姿勢学習済みフラグ」を参照して、テーブルの上にあるペットボトルの姿勢に関して既に学習が済んでいるか否かをチェックする（ステップＳ１１０３）。学習がまだ済んでいない場合は（ステップＳ１１０３のＮｏ）、最適姿勢取得部４０７は、物体姿勢検出部４０５で算出した物体の姿勢をパラメーター空間（α，β，γ）の３次元配列に投票する（ステップＳ１１０６）。その物体に関して、総観測回数（総投票数）がある規定回数に到達した場合には（ステップＳ１１０７のＹｅｓ）、最適姿勢取得部４０７は、その獲得投票数が極大値となるパラメータ（α，β，γ）を探し、これをその物体の「最適な姿勢」に設定するとともに、「姿勢学習済みフラグ」を“学習済み”にする（ステップＳ１１０８）。また、総観測回数が規定回数に到達していない場合は（ステップＳ１１０７のＮｏ）、「姿勢観測回数」を１だけ増分し、規定回数に到達するまで上記処理を続ける。
【００９４】
上記の例では、一度学習が終了し、その物体の最適な姿勢が求まった後は、学習をやめてしまっているが、最適姿勢取得部４０７は、引き続き観測を行ないながら「最適な姿勢」を更新していくような構成にしてもよい。
【００９５】
また上記の例では、ロボット装置１００が物体観測を繰り返して、データベース９０３中に物体・環境毎の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１＿ＯｎＴｂａｌｅ』が全くないところから生成しているが、事前情報として『ＰｅｔＢｏｔｔｌｅ００１＿ＯｎＴａｂｌｅ』に関する何らかのデータを人手で作成しておいて、観測・学習によりそれを更新していく構成にしてもよい。
【００９６】
図１２には、図９に示した物体・環境毎の姿勢データのデータベース９０３の変形例を示している。図９との相違点として、物体・環境毎の姿勢データ『ＰｅｔＢｏｔｔｌｅ００１＿ＯｎＴａｂｌｅ』に、「ユーザー教示フラグ」というキーが追加されている。「ユーザー教示フラグ」は、ユーザーがペットボトルをテーブルの上に置くときの姿勢を教示したかどうかを示す情報である。例えば、ユーザーがテーブルの上にペットボトルを置いてロボット装置１００に見せて、そのような姿勢で置いて欲しいという指示をした場合には、ロボット装置１００はこの「ユーザー教示フラグ」を“非教示”から“教示”に変更し、また「最適な姿勢」をそのときに観測したその物体の姿勢に変更する。ユーザーからの教示があった場合にはその姿勢が優先して用いられるべきであり、「ユーザー教示フラグ」が“教示”であれば姿勢の学習は行なわない、などの処理を図１１中のステップＳ１１０３の処理に追加することで、これを容易に実現できる。ユーザーにとって特に大事な物体であり決まった姿勢で置きたい場合や、ロボットが間違って学習してしまった場合にユーザーがそれを訂正する場合などに、有効な手法である。
【００９７】
図１３には、ロボット装置１００が実行する動作を状態遷移図の形式で示している。図示の例では、ロボット装置１００は、「タスク実行」、「探索」、「物体姿勢修正」の３つの動作モードを有している。
【００９８】
「タスク実行」モード下では、ロボット装置１００は、ユーザーから指示されたタスクを実行する。ユーザーからのタスクの指示は、音声入力などを通じて明示的に指示される場合の他、事前にスケジュールされタイマーによって定期的に実行すべきタスク（あるきまった時刻になると掃除をするなど）、所定のイベントの発生に応じて実行するタスク（ボールがテーブル上から転がり落ちるのを見つけたので拾いに行くなど、突然割り込んできた優先度の高いタスク）を含むものとする。
【００９９】
ユーザーからのタスクの実行の指示がないときには、ロボット装置１００は、「探索」モードに移行する。また、「探索」モード下でユーザーからタスクの実行の指示があると、ロボット装置１００は、探索を中止して、「タスク実行」モードに復帰する。
【０１００】
ロボット装置１００は、「探索」モード下では、自律的に室内を動き回って環境を観察し、図１０並びに図１１に示した処理手順に従って、物体姿勢データベース４０９の生成・更新する処理を行なう。また、「探索」モードにおいて、観察した現在の物体の姿勢が学習済みの物体の最適な姿勢で置かれていないことを発見すると、「物体姿勢修正」モードに移行する。
【０１０１】
ロボット装置１００は、「探索」モード下において、物体姿勢データベース４０９を更新すると同時に、物体の現在の姿勢と、物体姿勢データベース４０９に登録されている最適な姿勢とを比較する（図１１中のステップＳ１１０９）。具体的には、物体姿勢検出部４０５により物体の現在の姿勢（α´，β´，γ´）が得られ、且つ、当該物体の最適な姿勢（α，β，γ）が既に学習され物体姿勢データベース４０９上に存在しているとき、下式（１）を満たしていれば、物体姿勢比較部４０８は、当該物体の現在の姿勢が最適な姿勢にほぼ一致していると判定することができる。但し、下式（１）において、Δαth、Δβth、Δγthはあらかじめ設定した閾値である。
【０１０２】
【数１】
2013022705.tif 000005
【０１０３】
他方、上式（１）を満たしていないときには、ステップＳ１１０９の分岐Ｙｅｓに進むことで、ロボット装置１００は「物体姿勢修正」モードに移行する。
【０１０４】
図１４には、ロボット装置１００が「物体姿勢修正」モード下で実行する処理手順をフローチャートの形式で示している。
【０１０５】
物体姿勢決定部４１０は、まず、物体の現在の姿勢（α´，β´，γ´）から、当該物体を把持するためのアーム・ハンドの軌跡を計算する（ステップＳ１４０１）。
【０１０６】
次いで、物体姿勢決定部４１０は、駆動制御部３１２を通じて、算出された軌道に沿ってアーム・ハンドを制御して、物体を把持する（ステップＳ１４０２）。
【０１０７】
次いで、物体姿勢決定部４１０は、把持した後の物体が、物体姿勢データベース４０９から取得した最適な姿勢（α，β，γ）となるように物体を操作するためのアーム・ハンドの軌跡を計算する（ステップＳ１４０３）。
【０１０８】
そして、物体姿勢決定部４１０は、駆動制御部３１２を通じて、算出された軌道に沿ってアーム・ハンドを制御して、物体を最適な姿勢（α，β，γ）となるように設置する（ステップＳ１４０４）。
【０１０９】
なお、上記では、ロボット装置１００はユーザーからのタスクの実行の指示がないときに「探索」モードに移行して物体姿勢データベース４０９の生成・更新する処理を行なうとした。但し、変形例として、タスク実行中であっても、実行中のタスクに支障をきたさない範囲で、環境を観察するためのカメラ３２１の視線制御を行ない、物体姿勢データベース４０９の生成・更新を行なうように構成することもできる。
【０１１０】
図５並びに図６には、ロボット装置１００の環境に応じた動作として、ユーザーの心地よい環境を自律的に整える様子を例示している。
【０１１１】
ロボット装置１００は、普段自律的に動き回っていて、周囲の対象物体を観察している。図５並びに図６に示す例では、テレビ、テーブル、並びにソファーの順で配置されたリビング・ルームの環境マップを構築しており、ロボット装置１００はこの環境マップに基づいて普段自律的に動き回っている。図５は、リビング・ルームを斜視した図であり、図６は、リビング・ルームを上から眺めた図である。
【０１１２】
ロボット装置１００は、テーブルの上に置かれた（テレビの）リモコンを対象物体として検出し、自律的に動き回る度に観察する。そして、検出した対象物体の正しい姿勢を、物体姿勢データベース４０９に登録されている辞書データと照合する。ここで、実際に観察された対象物体の姿勢と物体姿勢データベース４０９の照合結果が異なっているときには、ロボット装置１００は、その対象物体を操作又は姿勢を修正する。
【０１１３】
上記の表１を参照すると、物体姿勢データベース４０９の照合結果として、テーブルの上、ソファーの上、又は床の上にあるときには、ボタンが上向きであること、テレビの近くにあるときには、送信部がテレビの方向を向いていること、をリモコンの正しい姿勢として取得することができる。図６を参照すると、対象物体として検出されたリモコンは、テーブルの上にボタンを上に向けて置かれている。また、リモコンは、テレビに近いテーブルの上に置かれているが、送信部はテレビの方向から傾いて置かれている。そこで、ロボット装置１００は、観察されたリモコンの姿勢が「テレビの近くにあるときには、送信部がテレビの方向を向いていること」という照合結果と一致しないことを検出すると、図６中の矢印で示すように、リモコンの姿勢を修正する。
【０１１４】
なお、ロボット装置１００による対象物体の姿勢の修正結果が間違っているときには、ユーザーが訂正したりロボット装置１００に教示したりしてもよい。
【０１１５】
また、ロボット装置１００は、ユーザーから対象物体の操作を指示された場合には、当該対象物体を正しい（安定した）姿勢で置く。その際、当該対象物体を置く際の正しい姿勢を物体姿勢データベース４０９内の辞書データに照合し、その姿勢となるように当該対象物体を操作し、置く。
【０１１６】
例えば、リモコンをテレビに近いテーブル上に置くようにユーザーから指示された場合には、図５並びに図６に示した例と同様、ロボット装置１００は、リモコンを、ボタンを上向きにするとともに送信部をテレビの方向に向けるように操作して、テーブルの上に置く。あるいは、マグカップをテーブルの上に持っていくようにユーザーから指示された場合には、ロボット装置１００は、マグカップを立っている安定した状態に操作して、テーブルの上に置く。
【０１１７】
なお、ロボット装置１００がユーザーからの指示に応じた対象物体の操作結果が間違っているときには、ユーザーが訂正したりロボット装置１００に教示したりしてもよい。
【０１１８】
図７には、ロボット装置１００の環境に応じた動作として、対象物体を正しい（ユーザーが持ち易い）姿勢で手渡す様子を例示している。
【０１１９】
ロボット装置１００は、ユーザーから対象物体を持ってくるように指示された場合、当該対象物体を手渡す際の正しい姿勢を、物体姿勢データベース４０９内の辞書データに照合する。そして、ロボット装置１００は、辞書データに記述されている正しい姿勢となるように対象物体を操作してから、ユーザーに手渡す。
【０１２０】
図７には、杖を持ってくるように指示された場合の例を示している。上記の表２を参照すると、物体姿勢データベース４０９の照合結果として、取っ手部分がユーザー側にあることが杖の正しい姿勢として取得することができるので、ロボット装置１００は、取っ手部分がユーザー側に向くように杖を操作して、ユーザーに手渡す。
【０１２１】
なお、ロボット装置１００がユーザーからの指示に応じた対象物体の操作結果が間違っているときには、ユーザーが訂正したりロボット装置１００に教示したりしてもよい。
【０１２２】
図５〜図６からも分かるように、本実施形態に係るロボット装置１００は、環境に応じた対象物体の正しい姿勢を推定し、その正しい姿勢となるように対象物体を操作し修正することにより、ユーザーにとって心地よい環境を自律的に整えることができる。
【０１２３】
また、図７からも分かるように、本実施形態に係るロボット装置１００からユーザーへ対象物体の受け渡しをする際、受け渡しに最適な対象物体の姿勢を推定し、その最適な姿勢となるように対象物体を操作することにより、ユーザーとの自然なインタラクションを実現することができる。
【０１２４】
このように、ロボット装置１００は、ある物体がよく置かれている姿勢を、その物体にとって最適な姿勢であるものとして学習していく。ユーザーが普段使用するため周囲に置いている物体に関して、ロボット装置１００ロボット装置１００は自律的に最適な姿勢の学習を行なうので、ユーザーが普段と異なる姿勢で物体を置いたとしても、ロボット装置１００は、物体の姿勢を適宜修正して、ユーザーにとって心地よい環境を自律的に整えることができる。きちんと物品を整理できるユーザーは元より、肢体不自由者、障がい者、体の不自由な高齢者など、よく利用する物をあまり苦労しないで利用できるよう、身の回りの決まった位置に置いていることの多いユーザーにとって、このような物体の姿勢修正機能が特に有効である。
【０１２５】
なお、本明細書の開示の技術は、以下のような構成をとることも可能である。
（１）周囲の環境情報からなる環境マップと、周囲の画像を入力する画像入力部と、前記画像入力部の入力画像から物体を検出する対象物体検出部と、前記対象物体検出部が検出した物体の位置を検出する物体位置検出部と、前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部と、前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部と、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースと、前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部と、前記物体姿勢検出部が検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較部と、前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部と、を具備するロボット装置。
（２）ユーザーの指示に基づくタスクを実行するタスク実行部をさらに備え、前記タスク実行部がタスクを実行していないときに、前記物体姿勢検出部による物体の現在の姿勢の検出、前記物体姿勢比較部による最適な姿勢との比較、及び、前記物体姿勢修正部による物体の姿勢の修正を自律的に行なう、上記（１）に記載のロボット装置。
（３）前記ロボット装置の位置を移動する移動部をさらに備え、前記物体姿勢検出部は、前記移動部により前記ロボット装置の現在位置を移動させながら、物体の現在の姿勢の検出を行なう、上記（１）又は（２）のいずれかに記載のロボット装置。
（４）前記最適姿勢取得部は、各物体の最適な姿勢を学習により取得して、前記物体姿勢データベースに保持する、上記（１）乃至（３）のいずれかに記載のロボット装置。
（５）さらにユーザーから教示された各物体の最適な姿勢を前記物体姿勢データベースに保持する、上記（４）に記載のロボット装置。
（６）前記画像入力部の入力画像に基づいて前記環境マップを更新する環境マップ更新部をさらに備える、上記（１）乃至（５）のいずれかに記載のロボット装置。
（７）前記最適姿勢取得部は、ユーザーにとって心地よい環境を整える際に物体を置くのに最適な姿勢、並びにユーザーに手渡す際の物体の最適な姿勢を取得する、上記（１）乃至（６）のいずれかに記載のロボット装置。
（８）前記環境情報取得部は、周囲の環境情報からなる環境マップから、前記物体位置検出部で検出した物体の位置の周囲の環境情報を取得する、上記（１）乃至（７）に記載のロボット装置。
（９）前記物体姿勢比較部は、前記物体姿勢検出部が検出した物体の現在の姿勢を、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースに保持されている当該物体の最適な姿勢と比較する、上記（１）乃至（８）に記載のロボット装置。
（１０）周囲の画像を入力する画像入力ステップと、前記画像入力ステップで入力した画像から物体を検出する対象物体検出ステップと、前記対象物体検出ステップで検出した物体の位置を検出する物体位置検出ステップと、周囲の環境情報からなる環境マップから、前記物体位置検出ステップで検出した物体の位置の周囲の環境情報を取得する環境情報取得ステップと、前記対象物体検出ステップで検出した物体の、前記環境情報取得ステップで取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得ステップと、各物体の環境毎の最適な姿勢を物体姿勢データベースに保持する最適姿勢保持ステップと、前記画像入力ステップで入力した画像から物体の現在の姿勢を検出する物体姿勢検出ステップと、前記物体姿勢検出ステップで検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較ステップと、前記物体姿勢比較ステップにおいて物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正ステップと、を有するロボット装置の制御方法。
（１１）周囲の環境情報からなる環境マップ、周囲の画像を入力する画像入力部、
前記画像入力部の入力画像から物体を検出する対象物体検出部、前記対象物体検出部が検出した物体の位置を検出する物体位置検出部、前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部、前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部、各物体の環境毎の最適な姿勢を保持する物体姿勢データベース、前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部、前記物体姿勢検出部が検出した物体の現在の姿勢と、前記物体姿勢データベースに保持されている当該物体の最適な姿勢を比較する物体姿勢比較部、前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部、としてコンピューターを機能させるようにコンピューター可読形式で記述された、ロボット装置を制御するためのコンピューター・プログラム。
（１２）それぞれ外部装置上に構築された、周囲の環境情報からなる環境マップと、各物体の環境毎の最適な姿勢を保持する物体姿勢データベースと、周囲の画像を入力する画像入力部と、前記画像入力部の入力画像から物体を検出する対象物体検出部と、前記対象物体検出部が検出した物体の位置を検出する物体位置検出部と、前記物体位置検出部で検出した物体の位置の周囲の環境情報を前記環境マップから取得する環境情報取得部と、前記対象物体検出部が検出した物体の、前記環境情報取得部が取得した周囲の環境情報に応じた最適な姿勢を取得する最適姿勢取得部と、前記画像入力部の入力画像から物体の現在の姿勢を検出する物体姿勢検出部と、前記物体姿勢検出部が検出した物体の現在の姿勢を、前記物体姿勢データベースに保持されている当該物体の最適な姿勢と比較する物体姿勢比較部と、前記物体姿勢比較部により物体の現在の姿勢と最適な姿勢に所定以上の差があるときに、物体の姿勢を修正する物体姿勢修正部と、を具備するロボット装置と、からなるロボット・システム。
【産業上の利用可能性】
【０１２６】
以上、特定の実施形態を参照しながら、本明細書で開示する技術について詳細に説明してきた。しかしながら、本明細書で開示する技術明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１２７】
本明細書では、２脚を備えた人間型のロボット装置に適用した実施形態を中心に説明してきたが、本明細書で開示する技術の要旨はこれに限定されるものではない。他の移動手段を備え、あるいは移動手段を備えていないロボット装置であっても、同様に本技術を適用することができる。
【０１２８】
また、本明細書では、家庭用ロボットに関する実施形態を中心に説明してきたが、勿論、産業用ロボットを始めさまざまな用途のロボット装置に対しても、同様に本技術を適用することができる。
【０１２９】
要するに、例示という形態で本技術を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【符号の説明】
【０１３０】
１００…ロボット装置
１０１…駆動輪
１０２…駆動輪用アクチュエーター
１０３…腰関節ピッチ軸アクチュエーター
１０４…肩関節ピッチ軸アクチュエーター
１０５…肩関節ロール軸アクチュエーター
１０６…肩関節ヨー軸アクチュエーター
１０７…肘関節ピッチ軸アクチュエーター
１０８…肘関節ヨー軸アクチュエーター
１０９…手首関節ロール軸アクチュエーター
１１０…首関節ピッチ軸アクチュエーター
１１１…首関節ピッチ軸アクチュエーター
１１３…手関節ロール軸アクチュエーター
１５１、１５２、１５３…劣駆動関節
３１０…制御ユニット
３１１…認識部
３１２…駆動制御部
３１３…環境マップ
３２０…入出力部
３２１…カメラ
３２２…距離センサー
３２３…マイクロフォン
３２４…スピーカー
３３０…駆動部
３３１…モーター
３３２…エンコーダー
３３３…ドライバー
４０１…自己位置検出部
４０２…対象物体検出部
４０３…環境マップ更新部
４０４…物体位置検出部
４０５…物体姿勢取得部
４０６…環境情報取得部
４０７…最適姿勢取得部
４０８…物体姿勢比較部
４０９…物体姿勢データベース
４１０…物体姿勢決定部
【図１】
2013022705.tif 000006
【図２】
2013022705.tif 000007
【図３】
2013022705.tif 000008
【図４】
2013022705.tif 000009
【図８Ａ】
2013022705.tif 000010
【図８Ｂ】
2013022705.tif 000011
【図９】
2013022705.tif 000012
【図１０】
2013022705.tif 000013
【図１１】
2013022705.tif 000014
【図１２】
2013022705.tif 000015
【図１３】
2013022705.tif 000016
【図１４】
2013022705.tif 000017
【図５】
2013022705.tif 000018
【図６】
2013022705.tif 000019
【図７】
2013022705.tif 000020