(57)【特許請求の範囲】
【請求項１】
居住空間内に存在する物品を管理するシステムであって、
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段と、
物品を保持する保持手段を有し、前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットと、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースと、
前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
前記保持位置決定手段は、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段が前記移動対象物品を保持する前に、前記移動対象物品が前記設置位置と接する領域である接地領域を予め選定し、前記保持手段が前記接地領域を覆わないように保持位置を決定し、
前記データベース内の前記設置位置に関する情報に基づいて前記設置位置の許容スペースを調べ、前記接地領域として、少なくとも前記移動対象物品を前記許容スペースに収める接地領域を選定することを特徴とする物品管理システム。
【請求項２】
居住空間内に存在する物品を管理するシステムであって、
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段と、
物品を保持する保持手段を有し、前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットと、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースと、
前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
前記保持位置決定手段は、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段が前記移動対象物品を保持する前に、前記移動対象物品が前記設置位置と接する領域である接地領域を予め選定し、前記保持手段が前記接地領域を覆わないように保持位置を決定し、
前記データベース内の前記設置位置に関する情報に基づいて前記設置位置の許容スペースを調べ、前記接地領域として、前記許容スペースから前記保持手段の設置動作に必要なスペースを除外した残りのスペースに前記移動対象物品を収める接地領域を選定することを特徴とする物品管理システム。
【請求項３】
居住空間内に存在する物品を管理するシステムであって、
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段と、
物品を保持する保持手段を有し、前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットと、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースと、
前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
前記保持位置決定手段は、移動先に指定された設置位置が箱の内部であるか否かを判定し、設置位置が箱の内部である場合には、前記移動対象物品の接地領域の選定を行わずに保持位置を決定する物品管理システム。
【請求項４】
居住空間内に存在する物品を管理するシステムであって、
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段と、
物品を保持する保持手段を有し、前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットと、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースと、
前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
居住空間内に存在する物品には、人が掴む部分と人が掴まない部分とからなる特定物品が含まれ、
前記保持位置決定手段は、前記移動対象物品が前記特定物品でありかつ前記設置位置が人であるか否かを判定し、前記移動対象物品が前記特定物品でありかつ前記設置位置が人である場合には人が掴まない部分を保持位置とする物品管理システム。
【請求項５】
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段から入力された情報に基づいて、物品を保持する保持手段を有し、かつ前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットに対して、居住空間内に存在する物品を取扱う作業処理を行わせるロボット制御装置であって、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースを備えたサーバから前記移動対象物品及び前記設置位置に関する情報を取得し、前記取得した情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
前記保持位置決定手段は、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段が前記移動対象物品を保持する前に、前記移動対象物品が前記設置位置と接する領域である接地領域を予め選定し、前記保持手段が前記接地領域を覆わないように保持位置を決定するとともに、前記データベース内の前記設置位置に関する情報に基づいて前記設置位置の許容スペースを調べ、前記接地領域として、少なくとも前記移動対象物品を前記許容スペースに収める接地領域を選定するロボット制御装置。
【請求項６】
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段から入力された情報に基づいて、物品を保持する保持手段を有し、かつ前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットに対して、居住空間内に存在する物品を取扱う作業処理を行わせるロボット制御装置であって、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースを備えたサーバから前記移動対象物品及び前記設置位置に関する情報を取得し、前記取得した情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
前記保持位置決定手段は、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段が前記移動対象物品を保持する前に、前記移動対象物品が前記設置位置と接する領域である接地領域を予め選定し、前記保持手段が前記接地領域を覆わないように保持位置を決定するとともに、前記データベース内の前記設置位置に関する情報に基づいて前記設置位置の許容スペースを調べ、前記接地領域として、前記許容スペースから前記保持手段の設置動作に必要なスペースを除外した残りのスペースに前記移動対象物品を収める接地領域を選定するロボット制御装置。
【請求項７】
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段から入力された情報に基づいて、物品を保持する保持手段を有し、かつ前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットに対して、居住空間内に存在する物品を取扱う作業処理を行わせるロボット制御装置であって、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースを備えたサーバから前記移動対象物品及び前記設置位置に関する情報を取得し、前記取得した情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
前記保持位置決定手段は、移動先に指定された設置位置が箱の内部であるか否かを判定し、設置位置が箱の内部である場合には、前記移動対象物品の接地領域の選定を行わずに保持位置を決定するロボット制御装置。
【請求項８】
移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段から入力された情報に基づいて、物品を保持する保持手段を有し、かつ前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットに対して、居住空間内に存在する物品を取扱う作業処理を行わせるロボット制御装置であって、
前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースを備えたサーバから前記移動対象物品及び前記設置位置に関する情報を取得し、前記取得した情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備え、
居住空間内に存在する物品には、人が掴む部分と人が掴まない部分とからなる特定物品が含まれ、
前記保持位置決定手段は、前記移動対象物品が前記特定物品でありかつ前記設置位置が人であるか否かを判定し、前記移動対象物品が前記特定物品でありかつ前記設置位置が人である場合には人が掴まない部分を保持位置とするロボット制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、居住空間内に存在する物品を管理する物品管理システムに係り、特に、ロボットを使って居住空間内の物品を移動させる機能を有する物品管理システムに関する。
【０００２】
【従来の技術】
ロボットは、その物品把持機能を生かして実に多くの分野で有効に利用されている。例えば、工場の自動製品組み立てラインにおける部品の把持運搬、自動化された倉庫での在庫品の運搬や管理など、その例を挙げると切りがないほどである。
【０００３】
そして今日では、かくのごとく産業用として成熟してきたロボット技術を生かし、家庭内で人間と共存しながら人間の生活を支援するという壮大な目標に向けて、産業以外の用途に用いられるロボット、特に一般家庭向けのロボットの研究開発がさかんに行われるようになってきた。例えば、最近では、ペットの飼えない環境でペットのような振る舞いをすることにより人の心を癒すエンタテイメント系ロボットが注目されている。また、いわゆる家事支援系のロボット、例えば、多数のセンサを備え、これらセンサにより部屋の中の障害物を検知してよけながら自動で部屋の中を掃除するロボット等も、実際に開発され製品化されている。更に、要素技術として、様々な家事支援を行う上で必要不可欠な技術、例えば、家庭内の物品を自由に把持し運搬するハンドリング技術、ロボットが移動する空間内の様子を認識するセンシング技術なども、さかんに開発されている。このような技術の開発が進めば、将来は人間に代わって様々な家事を支援するロボットが実現するであろう。
【０００４】
ところで、家事の支援を行うための最も基本的な機能の一つに、物品の把持運搬があげられる。この機能は産業用途では既に実現されており、主に生産工場において、入庫した製品や部品、材料等の物品を保管・管理し、必要に応じて出庫させる自動倉庫で広く用いられている。
【０００５】
図３２は、従来の自動倉庫（特許文献１参照）の説明図である。この自動倉庫２８００は、ストック対象物（物品）２８０１を把持する把持部２８０２と、把持部２８０２を昇降方向と異なる方向に位置規制しながら昇降させる把持部昇降手段２８０３と、物品を収納するためのストックエリア２８０４の上方に配設され、把持部昇降手段２８０３をほぼ水平な方向に移動させる２次元移動手段２８０５と、ストック対象物２８０１の入出庫情報を管理する管理装置２８０６とから構成されている。自動倉庫２８００の管理対象となる物品は、平積みあるいは段積みしても荷崩れする恐れがないように予め収納ケースや箱に収納されている物品か、それ自体荷積みしても荷崩れを起こさないような物品（例えば車のタイヤ）である。
【０００６】
このように、上記自動倉庫２８００の場合、扱う物品の形状等を統一するなどの工夫を施すことにより、作業環境の最適化を図っている。すなわち、段ボール箱のように、形状に多少の自由度を持たせたとしても、その形状は物品を秩序正しく積載できるような形状（直方体など）に限定されている。また、扱う物品が統一されていることから、把持部２８０２による物品の把持位置も画一化されている。そして、このような把持位置の画一化により、把持部２８０２の構成及び制御の簡単化が図られている。
【０００７】
しかし、場合によっては、対象物品の形状等を統一することが困難な場合もある。そこで、そのような場合には、対象物品に応じた把持が可能となるように、ロボットの把持機能を向上させる必要がある。
【０００８】
従来より、ロボットによる物品の把持に関して、種々の制御方法が提案されている。特許文献２には、必要に応じて持ち替え動作を行うロボットハンドの制御方法が開示されている。このロボットハンドは、４指又はそれ以上の把持機構を有しており、２指又はそれ以上の把持機構を用いて物品を把持する。そして、把持した物品を、予め計算された目標軌道に沿って目標位置に移動させる。この際、ロボットハンドの機構上、現在使用している指では目標軌道に追従不可能となる場合があり、このような場合には、把持している残りの指を用いて持ち替え動作を行う。上記ロボットハンドでは、このように持ち替え動作を適宜行うことにより、作業者が入力した目標位置及び目標姿勢で物品を移動させることとしている。
【０００９】
【特許文献１】
特開２０００−２３８９０６号公報
【特許文献２】
特開２０００−１２７０７０号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、前記自動倉庫の技術をそのまま家庭用に適用することは困難である。なぜなら、工場等と家庭やオフィス等とでは、以下に説明するような相違点があるからである。
【００１１】
まず、第１の相違点として、工場と異なり家庭やオフィス等では、基本的に人が物品を使用するので、その物品を人が床面や机の上に適当な姿勢で置いてしまうことが多い点が挙げられる。そのため、産業用途のような画一的な作業を行うロボットを用いたのでは、その物品を不適切な位置で保持してしまい、結果的にうまく設置できないおそれがあった。
【００１２】
第２の相違点は、産業用途では物品の置き場所に規則性があるのに対し、家庭やオフィス等では物品の置き場所が常に決まっているわけではなく、設置位置として人がいつもと違う場所を指定することがよくある点である。また、往々にして人の指示は曖昧で、その移動先の状況のことはあまり考えずに指示を出す場合が多い。そのため、指示された物品を指示された位置に置こうとしても、作業ロボットによる当該物品の把持位置が不適切なため、当該物品を指示位置に設置することが不可能な場合もある。例えば、本を本棚に設置するように作業ロボットに指示を出した場合、作業ロボットのハンド自体が邪魔になって本を本棚に挿入することができない場合等である。
【００１３】
第３の相違点は、産業用途では物品の種類や形状が予め予定されており、形状等の統一を図ることが比較的容易であるのに対し、家庭やオフィス等では、対象となる物品の形状等の統一を図ることが困難な点である。すなわち、家庭やオフィスなど人が日常的に生活する環境に入ってくる物品は、インテリアとしての形状や、あるいは機能的に本来あるべき形状等を持っており、その形状や種類に制限を設ける（例えば工場内での使用のように全て直方体にする）ことは困難である。そのため、作業ロボットによる把持位置の統一化は非常に困難である。
【００１４】
したがって、前記自動倉庫の技術をそのまま家庭用に適用することはできなかった。
【００１５】
一方、前述の持ち替え動作が可能な作業ロボットを活用することにより、ある程度の改善を図ることはできる。すなわち、移動対象物品を指定された設置位置に設置する際に、移動対象物品の設置姿勢が不適切であったり、あるいは設置が不可能であった場合には、持ち替え動作を適宜行うことにより、物品を適切な状態に設置することができる。
【００１６】
しかし、持ち替え動作を行うためには、作業ロボットに複雑な機構が必要となる。また、前述の持ち替え動作が可能な作業ロボットを使用したとしても、移動対象物品の最終的な設置姿勢を操作者が人手で入力しなければならないため、操作が複雑であり煩わしいという問題があった。
【００１７】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、家庭やオフィス等の居住空間内において作業ロボットに物品の移動作業を行わせる際に、持ち替え動作を伴うことなく移動対象物品を円滑に移動させることにある。
【００１８】
【課題を解決するための手段】
本発明に係る物品管理システムは、居住空間内に存在する物品を管理するシステムであって、移動対象物品と該移動対象物品の移動先の設置位置とを指定する物品操作手段と、物品を保持する保持手段を有し、前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットと、前記居住空間内の物品の情報と前記居住空間内のマップ情報とを有するデータベースと、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段による前記移動対象物品の保持位置を、前記作業ロボットが前記移動対象物品を持ち替えずに前記設置位置に設置する位置に決定する保持位置決定手段とを備えているものである。
【００１９】
そして、本発明に係る物品管理システムでは、前記保持位置決定手段は、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段が前記移動対象物品を保持する前に、前記移動対象物品が前記設置位置と接する領域である接地領域を予め選定し、前記保持手段が前記接地領域を覆わないように保持位置を決定し、前記データベース内の前記設置位置に関する情報に基づいて前記設置位置の許容スペースを調べ、前記接地領域として、少なくとも前記移動対象物品を前記許容スペースに収める接地領域を選定するものとする。
【００２０】
また、本発明に係る物品管理システムでは、前記保持位置決定手段は、前記データベース内の前記移動対象物品及び前記設置位置に関する情報に基づいて、前記保持手段が前記移動対象物品を保持する前に、前記移動対象物品が前記設置位置と接する領域である接地領域を予め選定し、前記保持手段が前記接地領域を覆わないように保持位置を決定し、前記データベース内の前記設置位置に関する情報に基づいて前記設置位置の許容スペースを調べ、前記接地領域として、前記許容スペースから前記保持手段の設置動作に必要なスペースを除外した残りのスペースに前記移動対象物品を収める接地領域を選定するものとする。
【００２１】
また、本発明に係る物品管理システムでは、前記保持位置決定手段は、移動先に指定された設置位置が箱の内部であるか否かを判定し、設置位置が箱の内部である場合には、前記移動対象物品の接地領域の選定を行わずに保持位置を決定するものとする。
【００２２】
また、本発明に係る物品管理システムでは、居住空間内に存在する物品には、人が掴む部分と人が掴まない部分とからなる特定物品が含まれ、前記保持位置決定手段は、前記移動対象物品が前記特定物品でありかつ前記設置位置が人であるか否かを判定し、前記移動対象物品が前記特定物品でありかつ前記設置位置が人である場合には人が掴まない部分を保持位置とするものとする。
【００２３】
また、本発明に係るロボット制御装置は、移動対象物品と当該移動対象物品の移動先の設置位置とを指定する物品操作手段から入力された情報に基づいて、物品を保持する保持手段を有し、かつ前記移動対象物品を前記保持手段で保持して前記設置位置に設置する作業ロボットに対して、居住空間内に存在する物品を取扱う作業処理を行わせるロボット制御装置であって、前記各本発明に係る物品管理システムが備えた保持位置決定手段をそれぞれ備えたものである。
【００２４】
なお、前記物品管理システムおよびロボット制御装置において、作業ロボットの保持手段とは、物品を保持するものであればよく、具体的な保持方法は何ら限定されるものではない。保持手段として、例えば、物品を把持する手段、支持する手段、吸引保持する手段、磁力又は電気力を利用して保持する手段等、種々の手段を用いることができる。
【００２５】
また、居住空間とは、例えば家屋やオフィスなど、人と物品とが相互に関わり合いをもって存在し合う空間を言う。
【００２６】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。まず、本発明に係る物品管理システムの構成を説明し、続いて、物品管理システムの動作について説明する。
【００２７】
−物品管理システムの全体構成−
図１は、本発明に係る物品管理システム１００の全体構成の例を示したブロック図である。物品管理システム１００は、大きく分けて３つのサブシステム、すなわち環境管理サーバ１０１（以下、単にサーバと称することもある）と、作業ロボット１０２（以下、単にロボットと称することもある）と、操作端末１０３とから構成される。以下では、環境管理サーバ１０１、作業ロボット１０２、操作端末１０３の順に、それぞれのサブシステムの構成を説明することとする。
【００２８】
−環境管理サーバの構成−
１番目のサブシステムである環境管理サーバ１０１は、環境内の状況を把握するセンシング手段１０４と、環境内に存在する物品と移動体とを管理する物品移動体検索・管理手段１０５と、上記管理のためのデータを蓄える物品移動体データベース１０６と、物品以外の環境全体の情報を管理する環境マップ管理手段１０７と、その管理のためのデータを蓄える環境マップ１０８と、物品移動体データベース１０６や環境マップ１０８のデータに関する問い合わせを外部から受け、また、それに答えて外部に情報を発信等する送受信手段１０９と、それら各手段１０４〜１０９をコントロールする第１制御手段１１０とからなっている。物品移動体データベース１０６及び環境マップ１０８は、本発明で言うところの「データベース」を構成している。
【００２９】
なお、本実施形態における環境とは、例えば家屋やオフィスなど、人と物品とが相互に関わり合いをもって存在し合う空間（居住空間）を意味する。
【００３０】
また、マップ情報は、部屋や家具など、通常ほとんど移動しない物体（不動物体）の構造情報から成る。構造情報とは、少なくとも不動物体が占める空間内部及びその上部に存在する、他の物体を設置可能な面（例えば、部屋であれば床、収納であれば棚）の領域情報（例えば、その面の外接多角形の頂点）を言う。領域情報は、座標系表示、座標系と形状とによる表示などにより表される。
【００３１】
以下、環境管理サーバ１０１の各構成要素について順に説明していく。
【００３２】
＜センシング手段＞
センシング手段１０４は、操作環境内（例えば家屋やオフィス、店舗など）に存在するすべての監視対象物、すなわち物品、家具、環境内に存在する人、ロボット等の位置や状態を常に監視するものである。また、センシング手段１０４は、新たな物品が人やロボット等の移動体によって環境内に新たに持ち込まれた場合には、それも検出する。
【００３３】
センシング手段１０４の具体的構成は特に限定されないが、例えば、画像センサを用いる手段や電子タグを用いる手段などを好適に利用することができる。ここでは、物品や移動体を検出する方法の具体例として、画像センサを使う方法と電子タグを使う方法とを説明する。
【００３４】
まず、画像センサを用いる方法について説明する。ここで用いる画像センサの種類は特に限定されないが、屋内のような広い範囲を少ない設備で効率よく監視するものとして、カメラを好適に用いることができる。以下では、カメラを天井や壁などに設置し、カメラによる撮影画像を使って物品や移動体の検出などを行う例を説明する。
【００３５】
カメラ画像を用いて物品や移動体を検出する一般的な方法として、背景差分法が知られている。背景差分法とは、あらかじめ背景としてのモデル画像を用意しておき、現在の入力画像と前記モデル画像との差分を取ることにより、対象物を画像から得る方法である。本発明に係るセンシング手段１０４では、環境内の物品や移動体を検出及び監視することを目的としている。そのため、モデル画像として、例えば環境変動が無い場合は、環境内に物品移動体の全く存在しない一枚の画像を使うことができる。一方、環境変動が激しい場合は、ある時間に連続して撮影された画像を平均して得られた画像を使っても良い。
【００３６】
図２は背景差分法を具体的に説明するための補助図であり、図２（ａ）は前記モデル画像の例を示した図である。図２（ｂ）は、図２（ａ）の画像を撮影したカメラと同じカメラを用いて撮影されたある時点における入力画像を示した図であり、図２（ｃ）は、図２（ｂ）の入力画像から図２（ａ）のモデル画像を差し引いて得られた背景差分画像の例を示した図である。図２（ｃ）から分かるように、入力画像とモデル画像とで差のある部分のみが、背景差分画像において浮き出てくる。このように、背景差分法では、背景差分画像で浮き出てきた部分のみをそれぞれ取り出すことにより、環境内の物品を検出することができる。なお、使用するカメラの個数は１台でも良いが、２又は３台以上のカメラを用いれば、ステレオ視による三次元計測技術を用いて物品の形状及び姿勢情報も取得することが可能となる。
【００３７】
次に、電子タグを用いる検出方法について説明する。近年、電子タグを用いて物品や移動体の位置を検出する方法が開発されつつある。本発明では、それら方法のほとんどすべてを応用することができ、例えば、特開２０００−３５７２５１号公報に開示された技術を利用することができる。
【００３８】
ここで電子タグとは、データを蓄えるＩＣとデータを無線で送信できるアンテナとからなるデバイスであり、リーダライタと呼ばれる装置によって情報を書き込んだり、書き込まれた情報を読みとったりすることができるものである。
【００３９】
タグには、物品を特徴づける属性データ、すなわち物品の種類、製造年月日、形状、重さ、物品画像などのデータを記憶させることが可能である。このようなデータを電子タグに記憶させ、そのデータを参照自在にすることにより、より高度な物品管理が可能となる。例えば、ロボットによる物品把持や設置の際に物品の形状や重さのデータを用いたり、製造年月日を品質期限の管理に用いたり、物品の種類を捜し物の検索に用いること等が可能になる。その結果、ユーザに大きなメリットをもたらすことになる。また、移動体にもその移動体に関するデータ、例えば人の名前や生年月日などの情報を書き込んだタグを付与することが可能である。人の場合には、常に携帯するような携帯物、例えば腕時計、携帯電話、眼鏡などにタグを埋め込むようにしてもよい。
【００４０】
以上、センシング技術の具体例として、カメラおよび電子タグを用いた物品及び移動体の検出方法を説明したが、センシング手段１０４は、もちろんこれ以外の方法を用いるものであってもかまわない。前記センシング手段１０４は、カメラ、電子タグ及びその他のセンサのうち少なくとも一つ以上を含むものとする。
【００４１】
なお、センシング手段１０４によって新たな物品や移動体が検出されると、その情報は、後述する物品移動体検索・管理手段１０５を介して物品移動体データベース１０６に登録・更新される。例えば、物品の置かれている場所や物品の姿勢、移動体の存在場所等が物品移動体データベース１０６に登録される。ただし、物品移動体データベース１０６に登録される情報は、センシング手段１０４によって直接検出された情報のみに限られない。ある物品が移動している場合には、センシング手段１０４から受け取った情報を元に、それがどの移動体によって移動させられているかを推論し、その推論結果も登録するようにしてもよい。
【００４２】
図３を参照しながら上記推論方法の一例を詳述する。図３は本発明に係る物品移動体検索・管理手段１０５の基本構成を概念的に示すブロック図である。図３の物品移動体検索・管理手段１０５は、前記物品移動体データベース１０６に登録されている物品が移動体によって操作されていることを検出する物品操作者検出手段４０１と、物品操作者検出手段４０１により検出された、操作物品を操作している移動体の情報を取得する移動体情報取得手段４０２とを備えている。
【００４３】
物品操作者検出手段４０１は、センシング手段１０４を利用することにより、物品が移動体によって操作されていることを検出する。例えば、前述のようにセンシング手段１０４が背景差分法を利用している場合には、入力画像とモデル画像とを比較し、経時的に差のある部分が生じたときに、その領域で物品が操作されていると推定する。もちろん、物品操作者検出手段４０１による検出方法は上記方法に限ったものではなく、例えば電子タグを使ってもかまわない。
【００４４】
移動体情報取得手段４０２は、物品が移動体によって操作されていることを物品操作者検出手段４０１が検出したときに、その物品を操作している移動体の情報を取得する。例えば、前述のようにセンシング手段１０４としてカメラを利用している場合、操作の行われた領域の画像をカメラで取得し、その画像に対して顔認証処理を行なう。こうして同定された移動体は、物品が操作された際にその近傍にいたと考えられるので、この移動体を操作者と推定する。もちろん、背景差分法では通常、広域を撮影するカメラを利用するため、顔認証を行なうには解像度が足りない場合もある。そこで、背景差分法のためのカメラとは別に顔認証用に狭角の高分解能カメラを設置し、物品操作者検出手段４０１によって物品の操作が検出された領域に上記狭角カメラを向けて、認証を行なうようにしてもよい。もちろん、移動体の同定を行なう方法は顔認証に限ったものではなく、虹彩認証などであっても構わない。また、認証まで行なわず、操作が行なわれている領域の画像をカメラで撮影し、その画像を他の手段で利用するようにしてもよい。これらの画像を、認証がうまくいかなかったときにのみ利用するようにしてもよい。
【００４５】
センシング手段１０４として電子タグを用いる場合には、タグリーダライタを適宜配置することにより、物品及び移動体の情報を収集することができる。また、特定の場所での物品の操作を管理する場合、タグリーダライタを特定の場所に配置することにより、物品情報と移動体情報とを取得することが望ましい。この場合、物品の操作を精度よく検出するために、ゲート型のタグリーダライタを配置するのが好ましい。この方法では、図４に示したように、部屋のドアや窓にタグリーダライタを設けることが好ましい。図４のようにタグリーダライタを設置することにより、ドアや窓を通過した物品や移動体を漏れなく検出することができる。これは、物品の持ち出しなどを管理する場合に特に効果的である。図４において、タグリーダライタＡ，Ｂはドアや窓を上下左右に囲むように設置されているが、これはタグリ−ダライタを通過する電子タグの向きに依存しない精度のよい検出を行なうためである。もちろん、タグリーダライタは、窓やドアの上下のみ、左右のみ、または中央に設置してもよい。
【００４６】
このようなタグリーダライタを利用する場合、物品と一緒にドアや窓を通過した移動体の情報を、その物品の持出者として物品移動体データベース１０６に蓄積していくことが望ましい。このことにより、物品の持出者の管理を自動的に簡単な処理で行うことができる。
【００４７】
また、このようなタグリーダライタＡ，Ｂをドアや窓の内外に二重に設置することにより、物品が持ち込まれたのか、あるいは持ち出されたのかを検出することができる。例えば、タグリーダライタＡ，Ｂのそれぞれにつき、まず、第１のタグリーダライタを作業量域外にあたる、ドアや窓の外側に設置する。また、第２のタグリーダライタをドアや窓の部屋側、つまり作業領域内に設置する。このように第１及び第２のタグリーダライタを内外に設置しておくことにより、ある物品が外側の第１リーダライタで検出された後、部屋側の第２リーダライタで検出されたときには、この物品は外部から部屋内に持ち込まれたものと推定することができる。逆に、ある物品が部屋側の第２リーダライタで検出された後、外側の第１リーダライタで検出されたときには、この物品は部屋から外部に持ち出されたと推定することができる。
【００４８】
もちろん、このようなタグリーダライタの設置場所は部屋のドアや窓に限られるものではない。例えば、冷蔵庫にこのようなタグリーダライタを設置し、冷蔵庫内の物品の管理に利用してもかまわない。
【００４９】
＜物品移動体データベース＞
物品移動体データベース１０６は、前記データを蓄えておくデータベースである。図５及び図６は物品移動体データベース１０６の構成とデータの記載内容例を示した概念図である。物品移動体データベース１０６は、大別すると、物品を扱うデータベース（図５参照）と移動体を扱うデータベース（図６参照）とからなる。
【００５０】
物品を扱うデータベースは、各々種類の異なるデータを蓄積する３種類のサブデータベース、すなわち物品データ３０１と物品履歴データ３０２と物品属性データ３０３とをそれぞれ蓄積するデータベースからなり、それぞれのデータ内容は下記の通りである。
【００５１】
物品データ３０１は、個々の物品を区別するためのＩＤと、当該物品の操作履歴である物品履歴データ３０２へのポインタと、その物品の物的属性が記載された物品属性データ３０３へのポインタとから構成される。種類の同じ物品であっても物理的に別の存在であれば、それらを別の物品として扱う必要がある。そのため、同種の物品であっても、異なるＩＤが割り当てられる。一方、種類の同じ物品はＩＤが異なるが、同じ物的属性を持つ。そのため、同種物品であれば同じ物品属性データ３０３へのポインタを指し示すようにし、データベースの容量を無駄に使わないようにしている。
【００５２】
物品履歴データ３０２は、当該物品の操作履歴を格納するものであり、操作が行われた時刻、操作内容、操作者、及び操作後の位置の４項目からなる。位置のデータについては様々な表し方があるが、本例では６つのパラメータで位置を表すこととする。最初の３つのパラメータ（ｘ１，ｙ１，ｚ１）は、物品の位置（例えば物品の重心位置等を代表位置として用いることができる）を表し、後の３つのパラメータ（α１，β１，γ１）は物品の姿勢を表している。なお、物品の姿勢の表し方については後述する。これら、位置及び姿勢のデータは、前記センシング手段１０４又は後述するロボットのセンサ１１１（図１参照）によって取得される。なお、操作者は、後述する移動体データとして登録された移動体のいずれかから、前述したような推論によって選ばれる。
【００５３】
物品属性データ３０３は、当該物品の持つ固有の物理属性情報を蓄えるものであり、図５では形状、重さ、外観の画像等が一例として挙げられている。これらの属性データは、事前に人手を介してそれぞれの属性に適した計測方法で取得され、登録されている。
【００５４】
次に、図７を参照しながら、物品の形状データ及び姿勢データについて説明する。
【００５５】
まず、物品の形状データについて説明する。図７（ａ）は本来の物品（例えば飲み物の缶）の形状（円筒）を示している。このような物品に対し、ステレオ視による三次元計測技術等を用いることにより、図７（ｂ）のように物品の表面を複数の面で近似したポリゴンデータを得ることができる。各面は適当に定めた物品座標（図中のＸ’、Ｙ’、Ｚ’）上での頂点の座標の集合として記述される。また、各面には、いくつかの属性が付与されている。具体的には、その面が接地面としてふさわしい面かどうかのフラグ、人がその物品を掴むときに通常使用される面かどうかのフラグ等である。接地面としてふさわしい面とは、例えばコップの底面やジュース缶の底の面などである。人が掴むときに通常使用される面とは、例えば刃物の柄の部分やコップの取っ手部分などである。このような属性は、物品データの入力時に、他の属性と同様、人手で入力されること等によって付与される。このように、居住空間内に存在する物品には、人が掴む部分と人が掴まない部分とからなる特定の物品が含まれる。
【００５６】
例えば、ある一つの面（例えば三角形ポリゴンの場合）のデータは、以下のように表される。
【００５７】
（ＰＩＤ，ｘ１’，ｙ１’，ｚ１’，ｘ２’，ｙ２’，ｚ２’，ｘ３’，ｙ３’，ｚ３’，１，０）
上記データのうち、最初のＰＩＤは、その面の番号（物品データから一意に定まる番号）を示している。次の９値は物品座標での面の３頂点位置を示し、次の値「１」は、接地にふさわしい面であることを示している。なお、接地面としてふさわしくない場合は、この値は「０」となる。最後の値「０」は、人が通常掴まない面であることを示している。人が通常掴む面である場合には、この値は「１」となる。
【００５８】
次に、物品の姿勢データについて説明する。図７（ｃ）は、この物品が実世界に置かれている状況を示している。なお、座標Ｘ−Ｙ−Ｚは実世界の座標を示し、座標Ｘ’−Ｙ’−Ｚ’は物品を基準とした座標（物品座標）を示している。実世界に置かれた物品の形状は、前述したように、環境管理サーバ１０１のセンシング手段１０４又は作業ロボット１０２のセンサ１１１を２つのカメラで構成し、ステレオ視による三次元計測を行うこと等により得ることができる。そして、前記物品の形状データ（ポリゴンモデル）とのマッチングを取ることにより、物品が実世界上でどのように３次元的に回転させられているかを知ることができ、そのマッチングに基づいて物品の姿勢データを得ることができる。
【００５９】
具体的には、物品の形状データ（ポリゴンモデル）と実世界上での形状データとのマッチングを行った後に、物品の形状データに付随する前記物品座標が実世界上でどのように３次元的に回転しているかを求める。そのために、まず、Ｘ’軸がＸ軸に対して水平方向に角度αだけ回転し、上下方向に角度βだけ回転していると仮定し、それら角度α及びβの値を求める。図８（ａ）は、Ｘ’軸を水平方向に−αだけ回転し、上下方向に−βだけ回転した図である。次に、図８（ｂ）に示すように、Ｚ’軸がＺ軸に対して角度γだけ回転しているとし、その角度γの値を求める。このようにして、物品が実世界に置かれている時の姿勢データを、変数（α、β、γ）を用いて特定することができる。
【００６０】
なお、このような姿勢データは、ロボット１０２により把持物品を設置する際、設置位置の状況と物品の把持姿勢とが合致しないときに、当該物品を適正な姿勢に変更する等の目的で使用される。
【００６１】
次に、移動体を扱うデータベース（図６参照）について説明する。移動体を扱うデータベースは、それぞれ移動体データ６０１、移動体履歴データ６０２、及び移動体属性データ６０３の３種類のデータを蓄積するサブデータベースからなり、それぞれのデータ内容は下記の通りである。
【００６２】
移動体データ６０１は、個々の移動体を区別するためのＩＤと、当該移動体の移動履歴を格納した移動体履歴データ６０２へのポインタとから構成される。
【００６３】
移動体履歴データ６０２は、時刻と、当該時刻における移動体の位置と、当該時刻における移動体の状態とから構成される。なお、移動体の位置は、平面上における座標（Ｘ、Ｙ）と、向きｒの３値によって表される。
【００６４】
移動体属性データ６０３は、当該移動体の持つ固有の物理属性情報を蓄えるものであり、重さ、形状等がその一例として挙げられている。
【００６５】
なお、移動体履歴データ６０２において、移動体の状態とは、移動体が人物であれば「座る」、「立つ」、「寝る」、「歩く」などの一般的な人間の動作を表し、移動体がロボットであれば「把持」、「解放」など、ロボットが物品に対して行うことのできる操作を表す。これらは、あらかじめ移動体毎に可能な状態を決めておき、それらのうちのどれかを選択するようにすればよい。なお、移動体がロボットの場合には、操作内容だけでなく、操作対象物品ＩＤと操作内容とを組にして表すこととする。
【００６６】
移動体属性データ６０３には、例えば、それが作業ロボットであった場合、作業ロボットの重量、形状、及び把持手段の占有空間情報（動作制約情報の一部）等が記録されている。ここで把持手段の占有空間情報とは、物品を把持するために必要となる把持手段自身が占める空間の情報である。
【００６７】
図９は作業ロボットの把持手段１１２が物品７０１を把持するときに占有する空間を説明する図である。この具体例では、物品７０１の把持方法として、物品７０１を上方から把持する方法と、側方から把持する方法とがあり得る。上方から把持する場合には、把持物品７０１の上方に長さａの占有高さ７０２、横方向に長さｂ（ロボットハンドの厚み）の２倍分だけの占有領域７０３が必要となる。一方、側方から把持する場合には、横方向に長さｂの２倍分だけの占有領域７０３を考慮しておけばよい。
【００６８】
＜物品移動体検索・管理手段＞
物品移動体検索・管理手段１０５は、センシング手段１０４によって得られた物品や移動体の情報を物品移動体データベース１０６に蓄積したり、環境管理サーバ１０１の外部から送受信手段１０９及び制御手段１１０を介して物品や移動体の情報に関する問い合わせがあった場合に、その問い合わせの内容に応じて必要な情報を物品移動体データベース１０６から取り出し、問い合わせ先に送るという処理を行う。また、作業ロボット１０２及び操作端末１０３から物品や移動体の情報の登録・更新の要請を受けたときには、物品移動体データベース１０６に対して登録・更新を行う。
【００６９】
また、物品移動体データベース１０６へのアクセスは物品移動体検索・管理手段１０５にのみ許可されており、同じ物品及び移動体データに対して書き込みと読み出しとが同時に行われないよう管理されている。
【００７０】
なお、後述する操作端末１０３を用いて日付、操作者、物品の種類など、知りたい物品の属性を絞り込むための検索キーを入力することにより、物品移動体検索・管理手段１０５を介して、探している物品の場所を検索することも可能である。
【００７１】
後述するように、本物品管理システム１００の機能の一つとして、ロボット１０２が把持物品を目的の設置位置に移動させる際、設置位置の状況を踏まえて、把持物品の持ち替えが不要なように予め把持位置を決定しておく機能がある。このような機能を発揮するためには、例えば、指定された設置位置にどれくらいのスペースがあるか等を予め知っておく必要があり、物品の情報として、物品がどの場所にどのような姿勢で置かれているか等をデータベースに蓄えておくことが望ましい。しかし、そのためには、必ずしも過去にさかのぼった履歴データまでは必要とせず、常に最新の情報を把握していれば足りる。ただし、以下に説明する例は、最新の情報だけでなく、物品及び移動体の履歴も記録する例である。
【００７２】
次に、センシング手段１０４によって物品や移動体が検出され、それらの検出結果が物品移動体検索・管理手段１０５によってどのように物品移動体データベース１０６に格納されていくか、また、時間を経てどのようにデータが更新されていくかを、簡単な図を用いて具体的に説明する。
【００７３】
図１０はその説明に用いる図であり、実際の部屋において２つの缶ジュースが持ち込まれ、移動される様子を示している。各缶ジュースが移動される様子は矢印の付いた曲線Ｊ１，Ｊ２，Ｊ５，Ｊ６で示されており、時刻ｔ１，ｔ２，ｔ５，ｔ６は曲線Ｊ１，Ｊ２，Ｊ５，Ｊ６に従って缶ジュースが移動された時刻をそれぞれ表している。説明のための仮定として、この例ではｔ１〜ｔ６の順で時刻が進んだものとし、図の部屋内には図示しないが、センシング手段１０４の一例として電子タグのリーダライタが備えられているものとする。また、各缶ジュース及び部屋内に出入りする人物又はロボットにはそれらの属性データが記録された無線タグが付与されており、各缶ジュースの物品属性データ３０３は、前記無線タグから前記リーダライタで読みとるものとする。更に、移動体データ６０１への移動体の登録および移動体履歴データ６０２の初期化はすでに終わっているものとし、最初、物品データ３０１は何も記録されていない空の状況であるとする。
【００７４】
まず、お父さんが缶ジュースを持って部屋に入ってくると、センシング手段１０４としての前記リーダライタが、“お父さん”（移動体）と“缶ジュース”（物品）を認識する。“お父さん”及び“缶ジュース”の検出結果は物品移動体検索・管理手段１０５に送られ、それを受けて物品移動体検索・管理手段１０５は、“缶ジュース”に[kan_small_0001]というＩＤを割り当てる（図５参照）。続いて、その“缶ジュース”の移動履歴を格納するための位置履歴リスト１を作成する。なお、この時点ではデータの中身はまだ空のままである。一方、“お父さん”を検知したことにより、物品移動体検索・管理手段１０５はその位置履歴を更新するために、“お父さん”の移動体データ６０１の位置履歴を参照して位置履歴リスト３を呼び出す（図６参照）。
【００７５】
時刻ｔ１に、“お父さん”がテーブル付近の位置（ｘ４，ｙ４）に座り、持っていた“缶ジュース”がテーブルの上の位置Ｐ１（ｘ１，ｙ１，ｚ１）に置かれると、その時点で初めて、前記物品履歴データ３０２の位置履歴リスト１の内容として、
時刻：ｔ１
操作内容：新規
操作者：お父さん
操作後の位置：Ｐ１（ｘ１，ｙ１，ｚ１，α１，β１，γ１）
がセットされる。操作内容が「新規」となっているのは、今まで無かった物品が新たに外部から持ち込まれたことを意味している。また同時に、“お父さん”の位置が変わったことによって新たに位置履歴リスト３に移動体履歴データが作成され、そのデータの内容として
時刻：ｔ１
位置：（ｘ４，ｙ４，ｒ１）
状態：座る
がセットされる。
【００７６】
続いて時刻ｔ２に、位置Ｐ１（ｘ１，ｙ１，ｚ１）に置かれた“缶ジュース”が“息子”によって床の上の位置Ｐ２（ｘ２，ｙ２，ｚ２）に移動されると、物品履歴データ３０２の位置履歴リスト１にリストが１つ追加される（図５参照）。そして、追加されたデータには、
時刻：ｔ２
操作内容：移動
操作者：息子
操作後の位置：Ｐ２（ｘ２，ｙ２，ｚ２，α２，β２，γ２）
がセットされる。操作内容が「移動」となっているのは、すでに登録された物品が別の場所に移動されたことを意味している。また同時に、“息子”の位置が変わったことによって移動体履歴データ６０２に新たな位置履歴リスト（図示せず）が作成され、そのリストに時刻、位置、状態のデータがセットされる。
【００７７】
続いて時刻ｔ３において“お父さん”が外出すると、それによって位置履歴リスト３に新たなデータが作成され、そのデータの内容として、
時刻：ｔ３
位置：−
状態：外出
がセットされる。位置が「−」となっているのは、外出したため位置が管理外になったことを意味する。
【００７８】
また、外出時に“お父さん”が、“息子”が移動させた“缶ジュース”を元のテーブル上の位置Ｐ１（ｘ１，ｙ１，ｚ１）に戻すように“ロボット”に指示をしておいたとする。すると、その指示を受けた“ロボット”は、“缶ジュース”のところまで移動し、時刻ｔ４に“缶ジュース”を掴む。そして、“ロボット”の位置履歴リスト５に新たに移動体履歴データが作成され、そのデータの内容として、
時刻：ｔ４
位置：（ｘ２，ｙ２，ｒ２）
状態：[kan_small_0001]把持
がセットされる（図６参照）。その後、“ロボット”は掴んだ“缶ジュース”をテーブルの上に戻すべく、テーブルの傍に近づき、掴んだ“缶ジュース”を解放してテーブルの上に置く。すると、“ロボット”の位置履歴リスト５に新たな移動体履歴データが作成され、データの内容として、
時刻：ｔ５
位置：（ｘ４，ｙ４，ｒ４）
状態：[kan_small_0001]解放
がセットされる。
【００７９】
その後しばらくして“お母さん”が別の“缶ジュース”を持って部屋に入ってくると、センシング手段１０４としての前記リーダライタが“お母さん”と“缶ジュース”を認識する。そして、“缶ジュース”および“お母さん”の検出結果は物品移動体検索・管理手段１０５に送られ、それを受けて物品移動体検索・管理手段１０５は、“缶ジュース”に[kan_small_0002]というＩＤを割り当てる。続いて、その“缶ジュース”の移動履歴を格納するための位置履歴リスト２を作成する。なお、この時点ではデータの中身はまだ空のままである。
【００８０】
時刻ｔ６に、“お母さん”によって“缶ジュース”が部屋の床上の位置Ｐ３（ｘ３，ｙ３，ｚ３）に置かれると、その時点で初めて、前記位置履歴リスト２の物品履歴データの内容として、
時刻：ｔ６
操作内容：新規
操作者：お母さん
操作後の位置：Ｐ３（ｘ３，ｙ３，ｚ３，α３，β３，γ３）
がセットされる。
【００８１】
以上、物品の持ち込み及び移動等の具体例に基づいて、物品移動体データベース１０６の内容が時間と共に更新されていく様子を説明した。なお、物品又は移動体のデータの更新タイミングは特に限定されないが、本例では、各物品及び各移動体の位置が変わる毎に物品移動体データベース１０６にデータを追加することとした。なお、本発明においては、物品移動体データベース１０６の物品履歴データ３０２および移動体履歴データ６０２には、最新の履歴（つまり、現在の物品及び移動体の情報）のみを蓄えておけばよい。
【００８２】
＜環境マップ管理手段＞
環境マップ管理手段１０７は、作業環境内のマップの管理を行う。図１１は環境マップの例を実状況と対比して示した概念図であり、図１１（ａ）は実際の状況を表した図、図１１（ｂ）は環境マップとして実際の状況を簡略化した立体モデルで示した図、図１１（ｃ）は実際の状況をさらに簡略化して平面モデルで示した図である。環境マップは、このように立体データとして表してもよいし、もっと簡単に平面データとしてもよい。データはマップの用途やマップ作成に要する手間に応じて作成すればよく、例えば立体モデルを非常に短時間で作る必要があれば、立体物に関してはそれを覆う最小の直方体でモデル化するなどすればよい。例えば、図１１（ｂ）のモデルはそのような例である。図１１（ｂ）では、図１１（ａ）において中央に位置するテーブルは直方体でモデル化されている。平面データでも同様であり、図１１（ｃ）のモデルにおいては、中央に位置するテーブルを平面に正射影した矩形領域（図１１（ｃ）のハッチ部分の矩形領域）で表し、この領域をロボット移動不可領域として定めている。
【００８３】
＜環境マップ＞
環境マップは、部屋や家具などの通常ほとんど移動しない不動物体の構造情報から成る。構造情報とは、少なくとも不動物体が占める空間内部及びその上部に存在する、他の物体を設置可能な面（例えば、部屋であれば床、収納であれば棚）の領域情報（例えば、その面の外接多角形の頂点）と上部の高さを言う。
【００８４】
図１２は環境マップ１０８のデータの一例を示した図であり、図１１に対応したデータを示している。環境マップ１０８は、環境マップ９０１及び家具属性データ９０６を備えている。
【００８５】
環境マップ９０１には、部屋の広さを示すデータ９０２が保存されている。また、本例では部屋の中に“テーブル”と“本棚”と“ゴミ箱”とが存在するので、環境マップ９０１にはそれぞれのデータ９０３〜９０５が保存されている。家具属性データ９０６には、部屋や家具等のそれぞれの属性が保存されている。例えば、家具属性データ９０６中の部屋の属性９０７には、部屋内に高さの異なる床面が複数ある時にはその床面の数だけの床面データが記録されている。
【００８６】
前記床面のデータは、その面の頂点の座標（実世界座標での座標位置）が記述されており、その他、天井までの高さ、及び床面の材質が面毎に付されている。例えば、長方形の床面のデータの場合、データは、
（（Ｘ１，Ｙ１，Ｚ１）, （Ｘ２，Ｙ２，Ｚ２）, （Ｘ３，Ｙ３，Ｚ３）（Ｘ４，Ｙ４，Ｚ４）,２２００，０）
と表される。但し、高さの基準としては、その部屋で最も低い床の高さを０とする。最初の４つの座標は頂点の座標を表し、次の値２２００は天井までの高さ（２２００ｍｍ）を表し、最後の数値は床面の材質を表している。床面の材質は、例えば、「０」はフローリング、「１」は畳、「２」は絨毯、等であり、材質毎に予め対応する数字が定められている。
【００８７】
また、各家具の属性には、家具の表面を多面体で近似したときの複数の面のデータ、家具の種類、物品の設置可能面、設置可能面に設置される主な物品の形状と姿勢等が記録されている。
【００８８】
前記家具の面のデータは、その面の頂点の座標（実世界座標での座標位置）が記述されており、その他、その面に物品が設置できるか否かを示すフラグ、及びその面が物品を設置できる面であれば、その面の面積や上方への高さが付されている。上方への高さとは、例えばテーブルの天板であれば天井までの高さ、棚であればもう一つ上の棚までの距離を示す。ただし、上方への高さとは、設置面に対して実質的に垂直な方向への距離を言い、必ずしも上下方向の距離のみを意味する訳ではない。
【００８９】
例えば、頂点の数が３つの面のデータの場合、
（（Ｘ１，Ｙ１，Ｚ１）, （Ｘ２，Ｙ２，Ｚ２）, （Ｘ３，Ｙ３，Ｚ３）,１，４００）
と表される。最初の３つの座標は頂点の座標、次の数値「１」は物品が設置できることを意味する。この数が「０」の面は、物品が設置できない面である。最後の数値４００は上方への高さ４００ｍｍを示している。また、家具の種類のデータは、その位置にある家具がどの家具（テーブル、本棚、ゴミ箱等）かを判定するのに利用される。
【００９０】
家具の設置可能面に設置される主な物品形状と姿勢等とは、例えば、その家具が本棚の場合、主に収納される物品である「本」の形状（通常本棚に立てかけられた状態において、幅に比べて奥行きと高さが極端に長い直方体）と、その本を設置するときの通常の姿勢とを表している。ただし、テーブルやゴミ箱のように、そこに設置される物品の形状や姿勢に限定がない場合もある。家具属性データ９０６がこのような属性を持つことで、作業ロボット１０２が把持物品を設置する際に、設置姿勢を良好なものにすることができる。例えば、作業ロボット１０２が把持した物品が本に似た形状であり、その設置位置に本棚が指定された場合に、通常本棚に本を立てかけるが如く把持物品を設置することができる。もちろん、本棚と本との関係以外にも、例えば靴棚と靴、食器乾燥機と食器といった収納にも用いることが可能である。
【００９１】
ロボット１０２がこの環境内で移動する際には、これらの環境マップ１０８を用いながら移動経路計画を立てていく。例えば、図１１（ｃ）の平面モデルを用いた環境マップを用いてロボット１０２をＡ１地点からＡ２地点まで移動させる際には、ロボット１０２の形状や大きさを踏まえて、前記移動不可領域を回避するルート（図１１（ｃ）の屈曲線矢印）を計算して決めればよい。
【００９２】
＜環境管理サーバの制御手段＞
環境管理サーバ１０１の制御手段１１０は、サーバ１０１の全体を制御する部分であり、前述したように、主な制御内容として以下のものが挙げられる。
【００９３】
すなわち、制御手段１１０は、サーバ１０１内の各種データに関して送受信手段１０９を介して外部から問い合わせがあった場合に、その内容に応じて物品移動体検索・管理手段１０５または環境マップ管理手段１０７に対し、前記データの参照要求を出す。また、制御手段１１０は、前記要求に対して物品移動体検索・管理手段１０５または環境マップ管理手段１０７から送られてきた結果を、送受信手段１０９を介して問い合わせ元に送る。また、制御手段１１０は、送受信手段１０９を介して外部から送られてきたサーバ内にある各種データに関する登録・更新の要請を解釈し、その内容に応じて物品移動体検索・管理手段１０５または環境マップ管理手段１０７に対し、前記データの登録・更新要求を出す。なお、この制御手段１１０の詳細な動作については後述する。
【００９４】
以上、環境管理サーバ１０１の構成について、各構成要素毎に順に説明を行った。
【００９５】
−作業ロボットの構成−
次に、２番目のサブシステムである作業ロボット１０２の構成を説明する。作業ロボット１０２は、物品管理システム１００において、環境内の物品を実際に把持して持ち運ぶ役目を担う。ロボット１０２による物品把持および運搬操作は、その一部又は全部が自動化されていてもよい。本実施形態では、後述する操作端末１０３を通じてユーザによって指示が出され、ロボット１０２はその指示に従って作動する。
【００９６】
図１に示すように、ロボット１０２はその基本構成として、ロボットの周囲近辺の障害物などを検知したり、把持する物品の情報を得るセンサ１１１と、物品を把持する把持手段１１２と、環境マップ１０８を使って移動計画を立てる移動計画作成手段１１３と、把持手段１１２による前記物品の把持位置を決定する把持位置決定手段１１９と、移動のための移動手段１１４と、環境管理サーバ１０１や操作端末１０３とデータの送受信を行う送受信手段１０９と、それら各手段をコントロールする制御手段１１５とからなる。
【００９７】
ここで設置位置とは、例えば実空間上の１点を示し、その位置に物品を設置するということは、例えば物品の代表点（例えば重心）をその設置位置に合わせて設置することを意味する。従って、例えば重心を代表点とした場合、設置されている物品の位置は、物品の重心を表している。ただし、物品の代表点は重心に限らず、形状上の中心点等、他の点であってもよい。
【００９８】
図１３は、本実施形態に係るロボット１０２の一例を示した模式図である。以下、図においてアーム２０１の先端が向いている方向をロボットの前面として、ロボット１０２の各手段の説明を行う。
【００９９】
移動手段１１４は、ロボット本体の片側に２つずつ設けられ、両側で合計４つの車輪によって構成されている。本例では移動手段１１４として車輪の例を示したが、移動手段１１４としては、ロボットの使われる場所や環境に応じて最適な手段を選べばよい。例えば凹凸の多い地面を移動する場合ならば、クローラ型や多足歩行の移動手段を使ってもかまわない。なお、アーム２０１やハンド２０２からなる把持手段１１２が家屋内全域を可動域とする場合には、この移動手段１１４は必ずしも必要とはしない。
【０１００】
センサ１１１はボット周囲の近辺の障害物などを検知するものであり、本例では超音波センサ１１１ａ、視覚センサとしてのステレオカメラ１１１ｂ、及び衝突センサ１１１ｃからなる。超音波センサ１１１ａは前面、背面、左右の側面にそれぞれ３カ所ずつ取り付けられ、超音波を発してその反射波を受信するまでの時間を測定することで、当該センサから障害物までのおおよその距離を計算するものである。本実施形態では、超音波センサ１１１ａにより、近距離の障害物を衝突前に検知することとしている。ステレオカメラ１１１ｂは、周囲の状況を画像として入力し、その画像に認識などの処理を行うことで、障害物の有無の判断や把持対象物品のより正確な情報（３次元位置、姿勢など）を得る。衝突センサ１１１ｃは、当該センサ１１１ｃに所定の力の衝撃があったことを検知するセンサであり、他のセンサで検知できない障害物に対して、それが外部からぶつかってきたことやロボット自身が移動中にぶつかったことを検知する。
【０１０１】
移動計画作成手段１１３は、指定された場所への移動命令がロボットに対して発せられたとき、現在位置から指定場所への移動経路を、前記環境管理サーバ１０１から取得した環境マップ１０８のデータを使って作成する。当然のことながら、現在位置から目的地までの間に障害物が存在する場合はそれを回避するための経路が必要となるが、環境マップには前述のようにロボットが移動可能な領域が予め記されているので、その領域内での移動経路を作成すればよい。また移動経路作成に当たっては、最も一般的なダイクストラ法等が用いられる。
【０１０２】
把持位置決定手段１１９は、把持物品の情報や指定された設置位置の情報を環境管理サーバ１０１に問い合わせ、把持手段１１２が把持物品を持ち替えずに設置位置に設置できるように、把持手段１１２の把持位置を決定する。
【０１０３】
また、把持位置決定手段１１９は、把持手段１１２が移動対象物品を把持する前に、移動対象物品が設置位置と接する領域である接地領域を予め選定し、上記把持手段１１２が前記接地領域を覆わないように把持位置を決定する。
【０１０４】
把持位置決定手段１１９は、環境管理サーバ１０１に問い合わせることにより、指定された設置位置の許容スペースを調べ、前記接地領域として、少なくとも前記移動対象物品を前記許容スペースに収めるような接地領域を選定する。なお、ここで「スペース」とは、２次元領域、高さ、又は２次元領域と高さとで規定される３次元空間を意味し、設置位置の許容スペースとは、例えば当該スペースが直方体状の空間の場合には、設置可能領域×上方高さを意味する。
【０１０５】
また、把持位置決定手段１１９は、環境管理サーバ１０１に問い合わせることにより、指定された設置位置の許容面積を調べ、前記接地領域として、前記許容面積よりも小さな面積を有する接地領域を選定することが好ましい。また、設置の際における把持手段１１２自身の占有面積を考慮し、前記接地領域として、前記許容面積から把持手段１１２の必要面積（設置動作に必要な設置面上の面積）を除外した残りの面積よりも小さな面積を有する接地領域を選定することが好ましい。
【０１０６】
把持位置決定手段１１９は、環境管理サーバ１０１に問い合わせることにより、指定された設置位置の許容高さを調べ、前記接地領域として、設置時の移動対象物品の高さが前記許容高さ以下になるような接地領域を選定する。また、設置の際における把持手段１１２自身の占有高さを考慮し、前記接地領域として、設置時の移動対象物品の高さが前記許容高さから把持手段１１２の必要高さ（設置動作に必要な高さ）を除外した残りの高さ以下になるような接地領域を選定することが好ましい。
【０１０７】
なお、把持位置決定手段１１９の詳しい動作については後述する。
【０１０８】
把持手段１１２は物品を把持する手段であり、本実施形態では、図１３に示すように多関節からなるアーム２０１と、アーム２０１の先端に配設されたハンド２０２とから構成される。ただし、作業ロボット１０２の保持手段は、物品を把持する手段に限定されるものではない。例えば、皿状の支持手段を備え、その支持手段に物品を載せて目的位置まで移動させるようにしてもよい。
【０１０９】
作業ロボット１０２の制御手段１１５は、外部から送受信手段１０９を介して送られてきたロボット操作コマンドリストを解釈し、順にコマンドを実行していく。環境管理サーバ１０１の制御手段１１０と同様、作業ロボット１０２の制御手段１１５についても、その動作は後で詳しく述べることとする。
【０１１０】
以上が作業ロボット１０２の構成である。
【０１１１】
−操作端末の構成−
３番目のサブシステムである操作端末１０３は、物品管理システム１００においてユーザが環境内の物品操作を指示する為の端末である。
【０１１２】
図１に示すように、操作端末１０３はその基本構成として、物品操作を指示する物品操作手段１１６と、操作画面を表示する表示手段１１７と、物品操作手段１１６にて入力された物品操作の指示内容を環境管理サーバ１０１に送信する等の送受信動作を行う送受信手段１０９と、それら各手段をコントロールする制御手段１１８とからなる。
【０１１３】
オペレータは、物品操作手段１１６及び表示手段１１７を用いて物品の移動操作を指示したり、物品や移動体の情報を入力する。物品に対する移動操作であれば、物品操作手段１１６を介して入力された前記移動操作の命令は、送受信手段１０９を介して作業ロボット１０２に送られ、当該命令を受けた作業ロボット１０２は、移動先の状況等を考慮したうえで指示通りに物品を移動させる。また、物品操作手段１１６を介して物品や移動体の情報を入力した場合、及び物品の検索を行った場合には、前記環境管理サーバ１０１に対してこれらの要求が送信され、環境管理サーバ１０１から回答を受信する。制御手段１１８は上記各手段の制御を行うものであり、その動作に関しては後で詳しく述べる。
【０１１４】
以上、物品管理システム１００の全体構成について、各サブシステム１０１，１０２，１０３毎に順に説明を行った。
【０１１５】
なお、図１では、本物品管理システム１００が環境管理サーバ１０１、作業ロボット１０２、及び操作端末１０３の３つのサブシステムからなり、それらサブシステムが無線または有線などのネットワークを介して互いに情報をやりとりするような構成をなす例を示した。しかし、本発明に係る物品管理システムの構成は、上記構成に限定されるものではない。例えば、操作端末１０３が環境管理サーバ１０１あるいは作業ロボット１０２に付随されている構成であってもよい。また、ロボット１０２も１台ではなく、複数台が協調しながら作業を並行して行う構成でも構わない。
【０１１６】
−物品管理システムの動作−
以降では、本物品管理システム１００の動作、すなわち、環境管理サーバ１０１、作業ロボット１０２、及び操作端末１０３の各サブシステムにおける制御手段１１０，１１５，１１８がどのように動作するかを説明する。
【０１１７】
本実施の形態では、統一性を持たせるために、環境管理サーバ１０１、作業ロボット１０２、及び操作端末１０３は全て、後述するメッセージをやりとりすることで命令・質問・回答等の要求を行う。
【０１１８】
図１４は、そのようなメッセージの書式の一例を示している。本例では、上から順に、メッセージ開始符号（ＳＴＸ）、電文長、総パケット数、パケット番号、送信日時、メッセージＩＤ、送信元、送信先、コマンド番号、引数、メッセージ終了符号（ＥＴＸ）である。通信プロトコルにパケット通信を行うＵＤＰ／ＩＰ等を利用する場合、パケット毎に送信先に到着するとは限らないので、総パケット数及びパケット番号を用いて、受信側で分割されて受信したパケットからメッセージを再構築する。また、電文長及び総パケット数は全てのパケットを受信したことの確認に用い、前記メッセージを正しくやりとりできるようにする。
【０１１９】
また、上記メッセージを受信できたかどうかを、ＡＣＫ又はＮＡＣＫメッセージとして送信元に送り返す。図１５はＡＣＫ及びＮＡＣＫメッセージの一例を示している。番号６のメッセージＩＤを、受け取ったメッセージのメッセージＩＤと同じくすることで、ＡＣＫ又はＮＡＣＫメッセージを受け取った方は、自分が送ったどのメッセージに対するものかを知ることができる。全パケットを受信しメッセージが受け取られると、ＡＣＫメッセージを送信元に返す。もし全パケットを所定の時間内に受信できないなど通信に何らかの障害が発生したと思われる場合には、番号１０にエラーコードを代入してＮＡＣＫメッセージを送信元に送り返す。送信元ではＡＣＫ又はＮＡＣＫメッセージを所定の時間待ち、時間内にどちらのメッセージも返ってこなければ再送を試みる。また、何度か再送を試みてもＡＣＫ又はＮＡＣＫメッセージが返ってこない場合には、通信エラーとなり、例えばシステムを停止させる等の措置をとる。
【０１２０】
以下では、各サブシステムに共通に用いられるメッセージの送受信と処理の仕組みについて説明し、その後、各サブシステム毎に固有の構成、具体的メッセージとそのメッセージを受け取った時の動作について説明する。
【０１２１】
図１６は、環境管理サーバ１０１、作業ロボット１０２、及び操作端末１０３の各制御手段１１０，１１５，１１８において共通に利用されるメッセージ処理の構成１３００を示している。本構成１３００は、送受信手段１０９から入力されたパケットをメッセージとして再構築するメッセージ受信部１３０１と、再構築されたメッセージを蓄積するメッセージキュー１３０２と、メッセージキューの先頭から一つずつメッセージを取り出して解釈し、メッセージ処理部１３０３に引き渡すメッセージハンドラ１３０４とを備えている。前記メッセージ受信部１３０１及び前記メッセージハンドラ１３０４は、それぞれスレッドプログラム等として実装することで、メッセージ受信を行いながら他のメッセージを処理することが可能である。
【０１２２】
図１７は、図１６の構成１３００におけるメッセージをやりとりする動作を示したフローチャートである。本動作では、ステップＳ１４０１でメッセージキュー１３０２にメッセージが蓄積されているかをチェックし、蓄積されていれば上から一つメッセージを取り出す。ステップＳ１４０２では、そのメッセージが停止メッセージかどうかを判定し、もし前記メッセージが停止メッセージであれば、終了処理（ステップＳ１４０３）を行い、停止する。ここで終了処理とは、他のスレッド（例えば、メッセージ受信部１３０１等）を停止させることである。ステップＳ１４０２の判定の結果、前記メッセージが停止メッセージでなければ、ステップＳ１４０４のメッセージ処理を前記メッセージ処理部１３０３で行う。メッセージ処理部１３０３では、それぞれの構成要素に応じた動作を実行したり、内部変数の値（例えば、環境管理サーバ１０１であれば物品や移動体の位置等）を問い合わせ先にメッセージとして送信する。なお、各サブシステム毎に動作が異なるので、それらについては後述する。
【０１２３】
以上で、各サブシステムにおけるメッセージの基本的なやりとりの仕組みを説明した。ところで、図１６に示したメッセージハンドラ１３０４のメッセージ処理部１３０３は、環境管理サーバ１０１、作業ロボット１０２、及び操作端末１０３の各々のサブシステム毎に、理解できるメッセージ及びメッセージに対するアクションが異なる。そこで、具体的な作業を取り上げ、その作業に沿って各サブシステムの制御手段の処理構成及び処理されるメッセージ毎にその動作を説明することとする。
【０１２４】
ここでは具体的な作業として、オペレータが指定した物品を指定した場所に移動させる例として、本を本棚に移動させる例を取り上げる。なお、本棚が複数段あるときには、操作端末１０３の操作により、何段目の棚に設置するかを指定できるようになっているものとする。
【０１２５】
まず、操作端末１０３の制御手段１１８の動作について述べる。図１８は操作端末１０３の制御手段１１８の処理構成を示している。操作端末１０３の制御手段１１８では、前述した共通の構成に加えて、物品操作手段１１６から入力された操作指示をメッセージとして生成する操作メッセージ生成部１５０１と、最新の環境情報（部屋の映像や物品の位置など）を取得し前記表示手段１１７に表示するための表示制御部１５０２とを有する。操作メッセージ生成部１５０１は、オペレータからの操作指示を上記メッセージの書式に合わせてメッセージとして生成し、メッセージキュー１３０２に蓄積する。表示制御部１５０２は、環境情報を環境管理サーバ１０１に常に問い合わせており、表示手段１１７に視覚情報として表示している。オペレータは、前記物品操作手段１１６（例えばマウス、タッチパネル又はタブレット等のポインティングデバイスなど）を用い、前記表示手段１１７を見ながら物品の移動等の操作指示を行う。ここでは物品操作手段１１６としてＧＵＩを用いたが、音声認識・合成を用いた音声Ｉ／Ｆ（インターフェース）やキーボード等のＩ／Ｆを用いることも可能である。前記操作メッセージ生成部１５０１は、メッセージ受信部１３０１と同様、スレッドプログラムとして他のスレッドと並列で実行されており、オペレータからの操作指示を常に受け付けることが可能となっている。
【０１２６】
操作端末１０３は、電源がＯＮされるとその直後に一度だけ初期設定を行う。これには、例えば、他のサブシステムとの通信路の確立等や、各スレッドプログラムの実行などが含まれる。
【０１２７】
まず、操作メッセージ生成部１５０１は、物品操作手段１１６にオペレータからの指示が入力されると、指示を含んだメッセージをメッセージキュー１３０２にため込む。図１９は、オペレータが前記表示手段１１７を参照しながら、マウスを用いて物品（本）を床（座標（Ｘ０，Ｙ０，Ｚ０））から本棚（座標（Ｘ１，Ｙ１，Ｚ１））にドラッグ操作した例を示している。図２０は、この時に操作メッセージ生成部１５０１で生成されるメッセージの一例を示している。図２０中の番号１〜６及び１１の項目は、正しくメッセージを受信するのに必要な項目であるが、メッセージの内容とは無関係なので、ここでは説明を省略する。ここでは、送信元（オペレータを示す“Ｐ０”）から送信先（操作端末を示す“Ｉ０”）にコマンド（ロボットへの物品移動コマンド“０１”）を送るメッセージが表されている。番号１０の引数は、一つ（最初の“００１”は移動する物品の個数）の物品（座標（Ｘ０，Ｙ０，Ｚ０）にある物品）を座標（Ｘ１，Ｙ１，Ｚ１）の位置に移動することを意味している。複数の物品を移動する場合は、各物品につき、現在の位置と移動先の位置とが交互に並べられる。
【０１２８】
図２１は、操作端末１０３におけるメッセージ処理部１３０３の処理のフローチャートを示す。メッセージハンドラ１３０４は、メッセージキュー１３０２からメッセージを一つ取り出した後、ステップＳ１８０１において、その内容が作業ロボット１０２に対する指示であることを判断し、ステップＳ１８０２でその指示を作業単位に分解する。ここで、「物品の移動」の指示は、移動する各物品につき、「移動（物品の位置）」、「把持（物品）」、「移動（移動先の場所）」、「設置」という４つの作業単位に分解される。複数の物品に対して移動の指示が与えられた場合、前記４つの作業単位を一組として物品の数だけ並べられたものとなる。ステップＳ１８０３では、次に実行すべき作業単位が存在するかを判定する。ステップＳ１８０４では、一つの作業単位を前記作業ロボット１０２に送信する。
【０１２９】
図２２は、一つの作業単位を作業ロボット１０２へ送る場合のメッセージの一例を示している。本例は、送信元（操作端末を示す“Ｉ０”）から送信先（作業ロボットを示す“Ｒ０”）にコマンド（ロボット移動コマンド“０１”）を送ることを意味し、番号１０の引数（座標（Ｘ０，Ｙ０，Ｚ０））はその移動先を示している。
【０１３０】
次に、ステップＳ１８０５において、作業ロボット１０２からその作業単位の終了状態（ＡＣＫ又はＮＡＣＫメッセージ）を受け取り、ステップＳ１８０６で作業単位が正常に終了したか否かを判定し、もしＮＡＣＫメッセージを受け取ったか、あるいは所定の時間以上メッセージが返ってこなければ、エラー処理（ステップＳ１８０７）を行う。このエラー処理とは、例えば、作業ロボット１０２が障害物などが原因で移動できなくなったとか、指定した物品が把持できなかった等のトラブルが発生したときに、オペレータにその旨をＧＵＩを通じて提示する処理である。ここで、音声Ｉ／Ｆがあれば音声で提示しても構わない。そして、再びステップＳ１８０３に戻り、処理する作業単位がなければメッセージ処理部を終了し、次のメッセージをメッセージキュー１３０２から取り出し、処理を行う。
【０１３１】
ここで、前記作業単位は１つずつ送信することとしたが、すべての作業単位を一度に送信し、作業ロボット側で各作業単位の終了確認を行うように実装することも可能である。
【０１３２】
次に、作業ロボット１０２の制御手段１１５の動作について説明する。図２３は作業ロボット１０２の制御手段１１５の処理構成を示している。
【０１３３】
作業ロボット１０２は、電源がＯＮされるとその直後に一度だけ初期設定を行う。この初期設定には、例えば、通信路の確立や各スレッドプログラムの実行等が含まれる。メッセージ受信部１３０１は、上述した操作端末１０３から送られた作業単位を含んだメッセージ（図２２参照）を送受信手段１０９で受け取り、そのメッセージをメッセージキュー１３０２に蓄える。図２４に、作業ロボット１０２が理解できるメッセージの一例を示す。
【０１３４】
図２５は、作業ロボット１０２におけるメッセージ処理部１３０３の処理のフローチャートである。メッセージ処理部１３０３に入力されるメッセージは、例えば、前記操作端末１０３から送られた作業単位を含むメッセージである。ここではまず、ステップＳ２４０１、Ｓ２４０２及びＳ２４０３においてどの作業単位かを判定し、それぞれの作業単位に合った処理を実行する。
【０１３５】
まず、ステップＳ２４０１で作業単位が「移動」であった場合、ステップＳ２４０４に進み、指示位置までの経路を移動計画作成手段１１３を用いて求める。次にステップＳ２４０５において、移動計画作成手段１１３で求まった経路に従って移動する制御コマンドを移動手段１１４に送り、前記指示位置まで移動処理を実行する。例えば図２２のメッセージを受け取った場合には、このようなフローが実行される。
【０１３６】
一方、ステップＳ２４０２で作業単位が「把持」であった場合、ステップＳ２４０６に進み、把持を行うために前記センサ（例えばカメラ）１１１を用いて物品の姿勢を検出し、ステップＳ２４０７において、前記物品の把持位置を計算する。把持位置は、予め設置位置の状況に応じて前記物品の設置姿勢を想定し、前記物品を当該設置姿勢で設置するのに適した位置に決定される。ここで、想定した前記物品の設置姿勢はメモリ等に記憶しておき、次に述べる設置作業時（図２５のステップＳ２４１１参照）のアーム２０１及びハンド２０２の動作計算に用いる。次に、ステップＳ２４０８においてアーム２０１及びハンド２０２の動作を計算し、ステップＳ２４０９において、物品を把持するコマンドを把持手段１１２に送り、物品を把持する。なお、ステップＳ２４０６ではセンサを用いて物品の姿勢を検知するとしたが、環境管理サーバ１０１に物品の姿勢を問い合わせることにより物品の姿勢を認識するようにしてもよい。物品の現在の姿勢は前記物品の履歴データ（図５参照）に記録されている。
【０１３７】
さらに、ステップＳ２４０３で作業単位が「設置」であった場合、把持作業時にメモリに記憶した設置姿勢又は指定された設置姿勢に合うように、アーム２０１及びハンド２０２の動作を計算し（ステップＳ２４１０）、アーム２０１及びハンド２０２を動作させる制御コマンドを発行して把持物品を設置する（ステップＳ２４１１）。
【０１３８】
最後に、ステップＳ２４１２において、移動、把持及び設置が終了した旨をメッセージとして作業指示元（操作端末）に送信する。
【０１３９】
本発明の特徴の一つは、この作業ロボット１０２のメッセージ処理部１３０３における把持メッセージを受けた時の処理にある。この処理は、持ち替えを必要とする従来の技術と異なっている。すなわち、本物品管理システム１００においては、把持位置決定手段１１９を用いて、把持する物品の設置位置の状況等に応じて把持位置を計算し、持ち替えを必要としない物品の移動を行う。
【０１４０】
図２６は、把持位置決定手段１１９の動作を示すフローチャートである。本動作では、まずステップＳ２５０１において、設置位置が箱の内部であるかどうかを判定する。これは、環境管理サーバ１０１にメッセージ（図３０のコマンド番号１２参照）で問い合わせることにより実現できる。設置位置が箱の内部であった場合、設置姿勢は問われないので、把持位置も特に限定されない。そこで、ステップＳ２５０２において、把持可能な任意の部分を把持位置に設定する。なお、把持位置を見つける方法は後述する。
【０１４１】
一方、設置位置が箱の内部でなかった場合、ステップＳ２５０３に進み、設置位置が人の存在する位置であるか否かを判定する。つまり、移動対象物品を人に手渡す場合であるか否かを判定する。設置位置における人の有無は、前記物品移動体データベース１０６に問い合わせることで知ることができる。設置位置が人の存在する位置である場合、ステップＳ２５０４に進み、人が持たない部分を把持位置に設定する。物品のどの部分を人が持つかは、前述したような前記物品移動体データベース１０６の形状データ等を参照することにより知ることができる。ステップＳ２５０３の判定の結果、設置位置が人の存在する位置でなかった場合には、ステップＳ２５０５に進み、設置位置の許容領域の形状や上方への高さ（許容高さ）に関する情報を取得する。
【０１４２】
設置位置の許容領域は、前記環境マップ１０８と物品移動体データベース１０６とに問い合わせることで知ることができる。図２７は、設置位置２６０１の許容領域を求める方法の説明図である。具体的には、環境管理サーバ１０１から環境マップ１０８（図１２参照）の情報を取得し、次に物品移動体データベース１０６から物品及び移動体（図示せず）の位置、形状及び姿勢の情報を取得し、物品及び移動体の存在領域を平面モデル化された環境マップ（図２７参照）に上方から投影する。その結果、環境マップに何も投影されていない領域として、許容領域２６０３（図２７においてハッチングで示された領域）を得ることができる。ただし、許容領域２６０３は設置位置と同じＺ座標値を持つ平面に限るので、図２７の場合、異なる高さを持つ家具２６０４や移動体（図示せず）などの領域は許容領域から除外される。また、設置位置の上方への高さ（この例では、本棚の棚間の高さ）は環境マップの家具データ１１０５から得ることができる。前述したように、家具を構成する面にはその上方への高さに関する情報が付加されている。
【０１４３】
以上のようにして、ステップＳ２５０５において、設置位置の許容領域や上方への高さを知ることができる。次に、ステップＳ２５０６において、作業ロボット１０２の属性データから把持手段１１２の占有空間情報を得る。
【０１４４】
最後に、ステップＳ２５０７で、移動対象物品が前記設置位置の許容領域の形状及び上方への高さに収まるよう把持位置を決める。具体的には、まず、設置位置の許容領域の形状に収まる物品の接地面の候補を探す。ただし、実際には把持手段１１２は自分自身の占有領域を必要とするので（例えば、側方から把持する場合）、把持手段１１２の占有領域を考慮して、物品の接地面の候補を探し出す。例えば、ステップＳ２５０６で得た前記占有空間情報に基づき、前記許容領域の横幅をロボットハンド２０２の厚みｂ（図９参照）の２倍分だけ狭めた形状に収まるように、物品の接地面候補を探す。
【０１４５】
ここで、前述したように、物品の形状はポリゴンモデルとして前記物品属性データ３０３に記憶されており、接地面の候補は、各面（ポリゴン）に付与されたフラグを用いることで知ることができる。もちろん、全ての面を接地面の候補としてもよい。
【０１４６】
次に、各接地面の候補を接地させた場合の物品の高さが前記上方への高さに収まるかを判定し、収まらない接地面を前記接地面の候補から排除する。そして、残された接地面を前記設置位置の許容領域に接地した時の物品の姿勢を想定し、前記把持手段が物品をその姿勢で無理なく設置できる位置を把持位置とする。
【０１４７】
本例では、各接地面に対して予め把持面として所定の２面を１組又は複数組定めておき、それら２面の各重心位置をロボットハンド２０２の把持位置とする。図２８（ａ）は、図２８（ｂ）に示す物品２８００を例として、接地面と把持面との関係を示したテーブルである。例えば、面Ａ１を接地面とする場合、把持面として、（Ａ３，Ａ８）、（Ａ４，Ａ９）、（Ａ５，Ａ１０）、（Ａ６，Ａ１１）、（Ａ７，Ａ１２）の５組の組み合わせが考えられる。このようなテーブルを参照することで、把持位置を決定することができる。本例では、各接地面に対し複数の把持位置が存在するが、このうちの一つとして、例えば、２面間の距離が小さいものでかつハンド２０２の姿勢をできるだけ変更しなくてもよいものを選べばよい。
【０１４８】
なお、指定した設置位置が他の物品に囲まれていることを想定し、基本的には、物品は設置姿勢に対して上方から把持するものとする。しかし、設置したときの物品の高さと前記占有空間情報から得られる把持手段１１２の上方の占有高さａ（図９参照）とを合わせた長さが、前記設置位置の上方の高さを上回っている場合には、物品の設置姿勢に対して側方から把持することが好ましい。
【０１４９】
また、ここでは接地領域（面）を選択する際、移動対象物品が設置位置の許容領域と許容高さとを共に満足する空間に収まるように選択したが、許容領域又は許容高さのどちらかに収まるように選択してもよい。
【０１５０】
このように、物品を把持する際、設置位置の状況及び設置姿勢を先に考慮して把持することで、持ち替えを必要としないスムースな物品の運搬が可能となる。
【０１５１】
本物品管理システム１００では、結果的に、事前に設置姿勢を考慮して物品を把持するので、接地面を把持手段１１２で覆うことを避けることができ、持ち替えをせずに物品を運搬することができる。例えば、無造作に置いてある本を本棚に運んで並べる場合、事前に本棚の高さを考慮し、その高さに収まるように本を把持することができるので、持ち替えを行わずに本を本棚に並べることが可能となる。また、はさみや包丁などの刃物を人に渡す場合、事前に人が持つ部分（包丁であれば柄の部分）を把持せず刃の部分を把持するので、持ち替え動作を伴うことなく、人にとって安全かつ便利に物品を渡すことができる。
【０１５２】
なお、作業ロボット１０２が作業している間は、どのタイミングであっても、指定された動作が実行できない等のトラブルが起これば、作業指示元（この例では操作端末１０３）に対してエラーメッセージを送信し、作業を一時中断する。
【０１５３】
また、作業ロボット１０２は、通常は自己の車輪等の動作量（回転数、回転角度等）を用いて自己位置を計測しているが、床面と車輪とのスリップや避けきれなかった障害物との衝突などに起因して自己位置がずれてくる場合も考えられる。そこで、この位置ずれを補正するために、環境管理サーバ１０１に自己位置の問い合わせを定期的に行うようにしてもよい。さらに、物品名が指定されて把持するときには、物品の形状等の属性を調べ、当該属性をカメラなどのセンサで目前の物品のうちどれが指定された物品かを探し出すときの手がかりに使うことができる。従って、必要に応じて、物品の属性や作業ロボット１０２の自己位置、あるいは、移動計画作成手段１１３に必要な環境マップ１０８等を、環境管理サーバ１０１に問い合わせてもよい。なお、これらの問い合わせも、環境管理サーバ１０１に問い合わせのメッセージを送り、その回答を受け取ることで実現される。
【０１５４】
最後に、環境管理サーバ１０１の制御手段１１０の動作について説明する。図２９は、環境管理サーバ１０１の制御手段１１０の処理構成を示している。
【０１５５】
環境管理サーバ１０１は、電源がＯＮされるとその直後に一度だけ初期設定を行う。これには、例えば、通信路の確立等や各スレッドプログラムの実行が含まれる。そして、上述した作業ロボット１０２や操作端末１０３からの問い合わせを含んだメッセージを送受信手段１０９で受け取り、メッセージ受信部１３０１がそのメッセージをメッセージキュー１３０２に蓄える。図３０は、環境管理サーバ１０１が理解できるメッセージの一例である。
【０１５６】
図３１は、環境管理サーバ１０１におけるメッセージ処理部１３０３の処理のフローチャートである。本処理ではまず、メッセージキュー１３０２から先頭のメッセージを取り出し、このメッセージをメッセージ処理部１３０３に入力する。そして、ステップＳ２７０１、Ｓ２７０２、Ｓ２７０３、Ｓ２７０４及びＳ２７１２において、このメッセージが何を要求しているかを判断する。
【０１５７】
ステップＳ２７０１において、ロボット位置の問い合わせがあったと判定すると、物品移動体データベース１０６からロボット位置の情報を取り出して、問い合わせ先にロボット位置を送信する（ステップＳ２７０５）。ステップＳ２７０２で、マップ問い合わせと判断されれば、環境マップ１０８からマップを取り出して、問い合わせ先に送信する（ステップＳ２７０６）。マップの情報は、例えば作業ロボット１０２の経路探索や物品の設置位置決定などに使用される。ステップＳ２７０３で、前記メッセージが環境情報を問い合わせていると判断すれば、指定した位置の情報を環境マップ１０８から検索し（ステップＳ２７０７）、問い合わせ先に送信する（ステップＳ２７０８）。ステップＳ２７０４で、前記メッセージが物品情報を問い合わせていると判断すれば、指定した物品の必要な情報を物品移動体データベース１０６から検索し（ステップＳ２７０９）、問い合わせ先に送信する（ステップＳ２７１０）。ステップＳ２７１２において、前記作業ロボット１０２などから得られた物品に対する情報を物品移動体データベース１０６に登録するメッセージであると判断されると、物品移動体データベース１０６に、指定した物品の属性値を登録する（ステップＳ２７１１）。
【０１５８】
ここで、物品移動体データベース１０６及び環境マップ１０８への問い合わせや情報登録は、前記物品移動体検索・管理手段１０５及び環境マップ管理手段１０７を介して行われる。なお、センシング手段１０４は常に最新の情報をセンシングしており、物品移動体データベース１０６及び環境マップ１０８には、物品移動体検索・管理手段１０５や環境マップ管理手段１０７を介して情報の更新が常時行われている。
【０１５９】
以上、本発明の実施形態に係る物品管理システム１００について、その構成及び動作の説明を行った。
【０１６０】
これにより、家庭やオフィス等において作業ロボットに物品の運搬作業を行わせる際、どのような形状又はどのような種類の物品でも持ち替えを行わないよう把持することができ、効率的かつ安全な運搬作業を行わせることができる。
【０１６１】
【発明の効果】
本発明によれば、居住空間内に存在する物品を管理するシステムにおいて、作業ロボットに物品を移動させる際に移動対象物品の持ち替えが不要になるので、物品の移動をスムーズに行うことができる。また、持ち替えが不要であるので、作業ロボットの保持手段の構成を簡単化することができる。また、作業者が物品の把持姿勢や設置姿勢を指定する煩わしさを軽減することができる。
【図面の簡単な説明】
【図１】実施形態に係る物品管理システムの構成図である。
【図２】センシング手段における物品検出処理の説明図である。
【図３】物品移動体検索・管理手段の基本構成を概念的に示すブロック図である。
【図４】ゲート型のタグリーダライタをドアや窓に配置した部屋を示す概念図である。
【図５】物品移動体データベースにおける物品データのデータ構造の説明図である。
【図６】物品移動体データベースにおける移動体データのデータ構造の説明図である。
【図７】物品の形状及び姿勢を説明するための図であり、（ａ）は本来の物品の形状を示し、（ｂ）はモデル化された物品の形状を示し、（ｃ）は実世界に置かれた状況下でのモデル化物品の形状を示す。
【図８】実世界の座標と物品座標との関係を示す図である。
【図９】作業ロボットの把持手段の斜視図である。
【図１０】物品及び移動体の操作履歴の取得方法を説明する図である。
【図１１】環境マップを説明するための図であり、（ａ）は実際の状況を表し、（ｂ）は（ａ）の立体モデルを表し、（ｃ）は（ａ）の平面モデルを表している。
【図１２】環境マップのデータ構造を説明するための図である。
【図１３】作業ロボットの斜視図である。
【図１４】メッセージ書式の一例を示す図である。
【図１５】ＡＣＫ及びＮＡＣＫメッセージ書式の一例を示す図である。
【図１６】制御手段におけるメッセージのやりとりを説明するための共通の処理構成図である。
【図１７】制御手段におけるメッセージハンドラの動作を示すフローチャートである。
【図１８】操作端末の制御手段における処理構成図である。
【図１９】操作端末で物品を操作する一例を示した表示画面図である。
【図２０】操作端末の操作メッセージ生成部で生成されるメッセージの一例を示す図である。
【図２１】操作端末の制御手段におけるメッセージ処理部の動作を示すフローチャートである。
【図２２】作業ロボットに作業単位を送るときのメッセージの一例を示す図である。
【図２３】作業ロボットの制御手段における処理構成図である。
【図２４】作業ロボットに対するメッセージの一例を示す図である。
【図２５】作業ロボットの制御手段におけるメッセージ処理部の動作を示すフローチャートである。
【図２６】作業ロボットの把持位置決定手段の動作を示すフローチャートである。
【図２７】設置位置の空きスペースを求める方法の説明図である。
【図２８】接地面と把持面との関係を説明するための説明図である。
【図２９】環境管理サーバの制御手段における処理構成図である。
【図３０】環境管理サーバに対するメッセージの一例を示す図である。
【図３１】環境管理サーバの制御手段におけるメッセージ処理部の動作を示すフローチャートである。
【図３２】従来技術のシステム構成図である。
【符号の説明】
１０１  環境管理サーバ
１０２  作業ロボット
１０３  操作端末
１０４  センシング手段
１０５  物品移動体検索・管理手段
１０６  物品移動体データベース
１０７  環境マップ管理手段
１０８  環境マップ
１０９  送受信手段
１１０  環境管理サーバの制御手段
１１１  障害物センサ
１１２  把持手段
１１３  移動計画作成手段
１１４  移動手段
１１５  作業ロボットの制御手段
１１６  物品操作手段
１１７  表示手段
１１８  操作端末の制御手段
１１９  把持位置決定手段
【図１】
0003722806.tif 000002
【図２】
0003722806.tif 000003
【図３】
0003722806.tif 000004
【図４】
0003722806.tif 000005
【図５】
0003722806.tif 000006
【図６】
0003722806.tif 000007
【図７】
0003722806.tif 000008
【図８】
0003722806.tif 000009
【図９】
0003722806.tif 000010
【図１０】
0003722806.tif 000011
【図１１】
0003722806.tif 000012
【図１２】
0003722806.tif 000013
【図１３】
0003722806.tif 000014
【図１４】
0003722806.tif 000015
【図１５】
0003722806.tif 000016
【図１６】
0003722806.tif 000017
【図１７】
0003722806.tif 000018
【図１８】
0003722806.tif 000019
【図１９】
0003722806.tif 000020
【図２０】
0003722806.tif 000021
【図２１】
0003722806.tif 000022
【図２２】
0003722806.tif 000023
【図２３】
0003722806.tif 000024
【図２４】
0003722806.tif 000025
【図２５】
0003722806.tif 000026
【図２６】
0003722806.tif 000027
【図２７】
0003722806.tif 000028
【図２８】
0003722806.tif 000029
【図２９】
0003722806.tif 000030
【図３０】
0003722806.tif 000031
【図３１】
0003722806.tif 000032
【図３２】
0003722806.tif 000033