説明

物品管理システム及び物品管理方法及び物品管理プログラム

【課題】人とロボットの協調作業において、物品の置き場所によって生じる無駄な時間の発生を防ぐ物品管理システム及び物品管理方法及び物品管理プログラムを提供する。
【解決手段】センシング情報を記録する検出履歴データベース304と、人とロボットそれぞれの作業工程の順序と、少なくとも各工程における取扱物品を記録する作業手順データベース306と、前記作業手順の進捗を管理する作業進捗管理手段307と、前記検出履歴データベースから得られる現在の物品の位置と、前記作業手順データベースに記録された作業手順を参照し、環境内の各場所に人が物品を置いたときに、前記物品を置いたことにより発生してしまう余計な困難解消時間を算出する困難解消時間算出手段311と、前記困難解消時間算出手段311により算出された困難解消時間に基づき情報提供する情報出力装置314を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人とロボット(例えばロボットアーム)が協調して作業を行う際に、取り扱う物品の配置を管理する物品管理システム及び物品管理方法及び物品管理プログラムに関するものである。
【背景技術】
【0002】
従来の物品の配置を管理するシステムとして、特許文献1に示すような倉庫の荷物を管理するものがある。これは、出庫までの滞留時間が短い物品は、出庫口に近い入庫棚から空き状況を検索して収納し、出庫までの滞留時間が長い物品は、出庫口から遠い入庫棚から空き状況を検索して収納するとともに、入庫済み物品についての滞留時間を所定期間毎に算出し、出庫口に近い入庫棚から空き状況を検索して、所定時間以下の入庫済み物品の配置替えをするものである。これにより、出庫間近の物品は、出庫口付近に集中することになり、出庫作業を効率的に進めるための物品の配置が制御されている。また、特許文献2では、製造日時と入庫日時が古い物品から先入れ先出しにより、出荷を行うようにしている。
【0003】
【特許文献1】特開昭61−229705号公報
【特許文献2】特開2001−48316号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、従来の技術は、倉庫という制御された空間において、与えられた出庫順に従って配置を制御するものなので、人が介在する作業における曖昧性に対して、対応が不可能である。
【0005】
つまり、人は、最初に与えられた手順とは異なる手順で作業したり、毎回異なる場所に物品を移動したりするので、これにより、後の作業の実行に悪影響を及ぼしてしまうという課題を有する。ここで、悪影響とは、人が物品(ここでは、以下、「障害物品」という。)を任意の場所に置いたことにより、ロボットが、その障害物品の陰になってしまった物品を取ろうとしたときに、その障害物品が邪魔になり、まず、邪魔な障害物品を移動させるという無駄な時間が発生してしまうことを指す。又は、人が障害物品を置いた所が、ロボットの可動範囲外であったときには、ロボットにはその障害物品を扱うことができないので、人が、その障害物品を取りに行かなければならないこともある。
【0006】
図31に課題となる具体的な状況を示している。人とロボットが協調して調理をする場面である。
【0007】
(1)まず、人が玉葱を切り、切った玉葱をボウルに入れる。
(2)次に、人が他の作業をするために、人がボウルを人の脇に置く。このとき、人が何も意識せずにいると、そのときの人の気分や気まぐれによって、ボウルを置く場所は一定ではない。ここでは、人の右側に置かれている、油の入った入れ物(油入れ)の前に置いたとする。すると、このボウルが前記した障害物品となる。
(3)作業が進み、人がコンロの前で炒め作業をするために、ロボットに油入れを取ってもらうように命令する。
(4)すると、先ほど置いたボウルが邪魔となり、ロボットは油入れを取ることができない。そのため、作業を進めるためには、次の(5)又は(5‘)を行わなければならない。
(5)ロボットが、邪魔なボウルを、邪魔にならない場所まで移動する。
(5‘)人が、邪魔なボウルを、邪魔にならない場所まで移動する。
(6)前記(5)又は(5‘)を行った結果、ロボットが油入れを取ることができるようになり、ロボットが油入れを取って人に渡すことができる。
以上のように、前記(2)の場面で不適切な場所に人がボウルを置いたことによって、以降の(5)又は(5‘)という無駄な作業時間が発生してしまう。逆に言えば、このとき、人が不適切な場所(油入れの前)にボウル置かないように情報を人に提供すれば、これを防ぐことができる。
【0008】
本発明は、前記従来の課題を解決するもので、無駄な時間の発生を防ぐために、物品を移動するとそれ以降の作業に悪影響を及ぼしてしまう場所(例えば、物品を置きたくない場所、物品の移動を避けたい場所)の情報を提示することで、効率的に作業を実行できるようにした物品管理システム及び物品管理方法及び物品管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
前記従来の課題を解決するために、本発明の物品管理システムは以下のように構成する。
【0010】
本発明の第1態様によれば、ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報を検出するセンシング装置と、
前記センシング装置により検出された情報を記録する検出履歴データベースと、
前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースと、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とを記録する作業手順データベースと、
前記センシング装置により検出された前記情報を基に、前記作業手順データベースに記録された作業手順の進捗の情報を管理する作業進捗管理手段と、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを判定する物品把持判定手段と、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かを判定するアクセス判定手段と、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記属性データベースに記録された前記ロボットアームの本体根元部の位置情報と移動速度情報を基に、算出する困難解消時間算出部と、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を提供する情報出力装置と、
を備えたことを特徴とする物品管理システムを提供する。
【0011】
本発明の第11態様によれば、ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報をセンシング装置で検出し、
前記センシング装置により検出された情報を検出履歴データベースに記録し、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベースから取得した作業手順の進捗の情報を、前記センシング装置により検出された前記情報を基に、作業進捗管理手段で管理し、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを物品把持判定手段で判定し、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かをアクセス判定手段で判定し、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースに記録された情報を基に、困難解消時間算出部で算出し、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を情報出力装置で提供する、
ことを特徴とする物品管理方法を提供する。
【0012】
本発明の第12態様によれば、ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報をセンシング装置で検出された情報を検出履歴データベースに記録し、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベースから取得した作業手順の進捗の情報を、前記センシング装置により検出された前記情報を基に、作業進捗管理手段で管理し、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを物品把持判定手段で判定し、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かをアクセス判定手段で判定し、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースに記録された情報を基に、困難解消時間算出部で算出し、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を情報出力装置で提供するといった手順をコンピュータに実行させるための物品管理プログラムを提供する。
【0013】
本構成によって、人が物品を把持したときに、その物品の置き場所について、想定される障害物品除去時間を算出し、算出結果に基づいて情報提供を行うことができる。
【発明の効果】
【0014】
本発明によれば、人が物品を把持したときに、その物品の置き場所について、想定される障害物品除去時間を算出し、算出結果に基づいて情報提供を行うことにより、人が提供された情報に従って物品の置き場所を選択する(例えば、物品を置きたくない場所、物品の移動を避けたい場所を避ける)という最小限の手間で無駄な時間の発生を防ぐことができ、効率的に作業を実行できる。
【発明を実施するための最良の形態】
【0015】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【0016】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【0017】
本発明の第1態様によれば、ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報を検出するセンシング装置と、
前記センシング装置により検出された情報を記録する検出履歴データベースと、
前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースと、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とを記録する作業手順データベースと、
前記センシング装置により検出された前記情報を基に、前記作業手順データベースに記録された作業手順の進捗の情報を管理する作業進捗管理手段と、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを判定する物品把持判定手段と、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かを判定するアクセス判定手段と、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記属性データベースに記録された前記ロボットアームの本体根元部の位置情報と移動速度情報を基に、算出する困難解消時間算出部と、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を提供する情報出力装置と、
を備えたことを特徴とする物品管理システムを提供する。
【0018】
本発明の第2態様によれば、前記ロボットアームの長さを前記属性データベースに予め記録するとともに、
前記アクセス判定手段は、前記属性データベースに記録された前記ロボットアームの本体根元部の位置情報と長さの情報と前記物品退避場所の位置情報とに基づき、前記ロボットアームの前記先端部が前記物品退避場所にアクセス困難な状況となるか否かを判定する、
ことを特徴とする第1の態様に記載の物品管理システムを提供する。
【0019】
本発明の第3態様によれば、前記作業手順データベースに、前記センシング装置により検出された情報を基に、各工程に使用する前記取扱物品の移動先の位置情報を記録し、
前記アクセス判定手段は、前記検出履歴データベースの情報と前記作業手順データベースの情報をそれぞれ参照して、前記取扱物品を置いた場所が、現在の作業の後の工程で他の取扱物品の移動先となるか否かにより、アクセス困難な状況となるか否かを判定する、
ことを特徴とする第1又は2の態様に記載の物品管理システムを提供する。
【0020】
本発明の第4態様によれば、前記作業手順データベースには、各工程における作業場所の位置情報を記録し、
前記人の手の長さ及び前記ロボットアームの長さを前記属性データベースに記録するとともに、
前記困難解消時間算出部は、アクセス困難な状況を解消するために前記取扱物品を移動させるための、前記人及び前記ロボットアームの移動、把持、及び運搬に要する時間から困難解消時間を算出する、
ことを特徴とする第1〜3のいずれか1つの態様に記載の物品管理システムを提供する。
【0021】
本発明の第5態様によれば、前記作業手順データベースに、各工程の所要時間と、各工程が中断可能か否かを記録し、
前記困難解消時間算出部における困難解消時間の算出において、該当工程が中断不可であった場合、工程が終了するまでの所要時間を加算して算出する、
ことを特徴とする第4の態様に記載の物品管理システムを提供する。
【0022】
本発明の第6態様によれば、前記作業手順データベースに、複数の工程の作業順序とその確率を記録し、
前記困難解消時間算出部における困難解消時間の算出において、前記作業順序の前記確率を用いて重み付けをする、
ことを特徴とする第2〜5のいずれか1つの態様に記載の物品管理システムを提供する。
【0023】
本発明の第7態様によれば、前記環境内の見取り図が記録されている環境マップデータベースと、
前記環境マップデータベース中の前記取扱物品が置かれる領域を複数の場所に分割して、各場所の位置情報を前記困難解消時間算出手段に与え、前記時間算出手段が算出した困難解消時間を取得し、前記環境マップ中の場所に算出した前記困難解消時間を対応付けるマップ管理手段と、
をさらに備えたことを特徴とする第1〜6のいずれか1つの態様に記載の物品管理システムを提供する。
【0024】
本発明の第8態様によれば、前記マップ管理手段は、前記取扱物品が置かれる前記領域を複数の場所に分割するときの各場所のサイズを調整可能である、
ことを特徴とする第7の態様に記載の物品管理システムを提供する。
【0025】
本発明の第9態様によれば、前記情報出力装置は、前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記ロボットアームの長さと前記物品退避場所の位置情報とにより、前記ロボットアームの可動範囲内と可動範囲外とに区別して前記困難解消時間の情報を表示する、
ことを特徴とする第1〜8のいずれか1つの態様に記載の物品管理システムを提供する。
【0026】
本発明の第10態様によれば、前記情報出力装置は、前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人の手の長さと前記物品退避場所の位置情報とにより、前記人の手が届く範囲のみの前記困難解消時間の情報を表示する、
ことを特徴とする第1〜9のいずれか1つの態様に記載の物品管理システムを提供する。
【0027】
本発明の第11態様によれば、ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報をセンシング装置で検出し、
前記センシング装置により検出された情報を検出履歴データベースに記録し、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベースから取得した作業手順の進捗の情報を、前記センシング装置により検出された前記情報を基に、作業進捗管理手段で管理し、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを物品把持判定手段で判定し、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かをアクセス判定手段で判定し、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースに記録された情報を基に、困難解消時間算出部で算出し、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を情報出力装置で提供する、
ことを特徴とする物品管理方法を提供する。
【0028】
本発明の第12態様によれば、ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報をセンシング装置で検出された情報を検出履歴データベースに記録し、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベースから取得した作業手順の進捗の情報を、前記センシング装置により検出された前記情報を基に、作業進捗管理手段で管理し、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを物品把持判定手段で判定し、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かをアクセス判定手段で判定し、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースに記録された情報を基に、困難解消時間算出部で算出し、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を情報出力装置で提供するといった手順をコンピュータに実行させるための物品管理プログラムを提供する。
【0029】
以下、図面を参照して本発明における第1実施形態を詳細に説明する。
【0030】
本発明の1つの実施形態にかかる物品管理システム、その物品管理システムで実行される物品管理方法、及び、その物品管理システムを実行可能な物品管理プログラムについて、以下に説明する。
【0031】
《物品管理システムの利用シーンの一例》
図1Aには、本発明の前記1つの実施形態にかかる物品管理システムの利用シーンの一例を示している。ここでは、ロボットアーム102と人106とが協調して作業を行う例として、前記物品管理システムをキッチンルーム100での調理作業に利用する例について説明する。キッチンルーム100には、システムキッチン101と、ロボットの一例として機能するロボットアーム102と、情報出力装置103と、センサ104と、ガス台107と、調理台108と、シンク109と、電子レンジ110と、食器洗浄器111と、システムキッチン101の上方に配置された収納棚112とが配置されており、その他に、調理作業に用いられる物品105と、調理作業を行う人106とが存在している。
【0032】
ロボットアーム102は、制御手段302の制御の下に、各関節の駆動モータ(具体的には、図1Bの肘関節駆動モータ131と肩関節駆動モータ132)及び先端部のハンド部102aの開閉に使用するハンド駆動モータ130により駆動されて、人106と協調して、人106の行う調理作業の支援を行うものである。例えば、ロボットアーム102の先端部にレードルを装着して、レードルで鍋の中身を自動的にかき混ぜる機能と、ロボットアーム102の先端部にスポンジを装着して、スポンジで拭き掃除を行う機能と、重い鍋を人とロボットアーム102とが一緒に持って搬送する機能と、調理用具をロボットアーム102が取って人に手渡しする機能と、次に人106が使用する調理用具をロボットアーム102が使用場所付近に準備する機能などを行うことが考えられる。
【0033】
情報出力装置103の例としては、この例では、液晶プロジェクタが設置されている。
【0034】
センサ104の例としては、この例では、キッチンルーム100を撮像する画像センサ(カメラ)が設置されている。
【0035】
図1Aにおいて、ロボットアーム102は、その本体根元部102bがシステムキッチン101上の奥側(人106に対して正面の壁側)に固定されているが、図2Aに示すように、システムキッチン101上の奥側(人106に対して正面の壁側)にレール201を設置し、ロボットアーム102の本体根元部102bが自走装置102Aに取り付けられてロボットアーム102の全体がレール201上を自走装置102Aで移動できるようにしても良い。また、図1A及び図2Aの代わりに、図2Bに示すように、システムキッチン101の上側の収納棚112に配置されていてもよい。又は、図2Cに示すように、システムキッチン101の壁101A側に配置されていてもよい。又は、図2Dに示すように、システムキッチン101上の例えば調理台108の手前側に配置されていても良い。システムキッチン101の上側や壁側に配置すれば、ロボットアーム102にとって、システムキッチン101上に置いた物品が邪魔にならなくなる。また、システムキッチン101の手前側に設置すれば、ロボットアーム102が電子レンジ110にも届くようになり、ロボットアーム102により電子レンジ110を利用する作業も可能になる。
【0036】
《作業手順》
本発明の前記実施形態において、人106とロボット(例えばロボットアーム102)が協調して行う作業は、作業手順が作業手順データベース306に予め記録されて用意されている。前記キッチンルーム100における調理作業のロボットによる支援においては、調理する献立のレシピが、作業手順に相当する。前記作業手順には、各工程において何の物品(調理器具や食材)を使用するか、どの場所で操作するか、などが作業する順番に従って作業手順データベース306に記録されている。詳細は後述する。
【0037】
《利用シーン》
本発明の前記実施形態にかかる物品管理システムは、例えば、次のような場面で特に有効である。
【0038】
多数の食材を用い、調理工程が多い等の手の込んだ料理を作るという作業では、食材や調理用具などの運搬や、ロボットアーム102の調理支援操作の工程が繰り返し発生する。
【0039】
このとき、人106と協調して作業するロボットアーム102の機能として、ロボットアーム102による鍋のかき混ぜのような単調作業の実行や、ロボットアーム102による重量物の協調搬送とともに、ロボットアーム102による人106への調理用具の手渡しや、次の作業のために使いやすい場所に調理用具をロボットアーム102により予め準備しておくこと等が考えられる。このような機能を実現するために、ロボットアーム102が調理用具を把持することは、最低限、必要な動作である。
【0040】
図1Bに、具体的なロボットアーム102を示す。ロボットアーム102は、本体根元部102bの肩関節と、本体根元部102bと先端部のハンド部102aとの間の肘関節とを有する。また、ロボットアーム102は、ロボットアーム先端部のハンド部102a及び関節(肩関節及び肘関節)の現在の位置を取得するエンコーダ133をそれぞれ有する。
【0041】
このようなロボットアーム102の動作は、制御手段302の制御の下に各関節の駆動モータ(具体的には、肘関節駆動モータ131、肩関節駆動モータ132)及び先端部のハンド部102bの開閉に使用するハンド駆動モータ130により駆動されて行われる。
【0042】
一方、人106は、調理用具を使った後、その調理用具を手近な場所に何の気なしに置いてしまうことが良くある。次に、ロボットアーム102がその調理用具を手渡ししようとしたとき、ロボットアーム102の可動範囲外にその調理用具が置かれてしまっていると、その調理用具をロボットアーム102が把持することができず、結局、人がその調理用具を取りに行かなければならない、という無駄な作業(時間)が発生してしまうことになる。そこで、本発明の前記実施形態にかかる物品管理システムでは、人106が物品を移動するとき、それ以降の作業に悪影響を及ぼしてしまう場所(移動不適切場所)の情報を提示する。人は、その情報に従って、移動しようとする物品の置き場所を選ぶようにする、という最小限の手間で、無駄な作業(時間)の発生を事前に防ぐことができるようになる。
【0043】
人が任意に物品を動かし、特に、キッチンルームのように決して広いとは言えない環境においては、作業の手順通りに、使用する予定の物品を予め並べて用意して置くことは困難であり、その場(例えば、作業の進行状況)に応じて、物品の位置情報や作業の進捗などから状況を判定し、後の作業を実行するときに無駄な作業が発生しないように情報を人106に提供する、という本発明の前記実施形態にかかる物品管理システムは有効である。
【0044】
《物品管理システムの構成》
図3Aには、人106とロボットアーム102とが協調して複数の作業工程を含む作業を行うことができる環境において使用可能な、本発明の前記実施形態における物品管理システムの機能ブロック図を示している。物品管理システムは、時刻取得手段(時刻取得部)301と、制御手段(制御部)302と、センシング装置303と、検出履歴データベース304と、物品把持判定手段(物品把持判定部)305と、作業手順データベース306と、作業進捗管理手段(作業進捗管理部)307と、作業手順データベース更新手段308と、アクセス判定手段(アクセス判定部)310と、困難解消時間算出部(困難解消時間算出部)の一例として機能する障害物品除去時間算出手段(障害物品除去時間算出部)311と、環境マップデータベース312と、マップ管理手段(マップ管理部)313と、情報出力装置314と、属性データベース315と、記録情報データベース316とを備えるように構成されるものである。
【0045】
以下、それぞれの構成要素について説明する。
【0046】
《時刻取得手段》
時刻取得手段301は、現在時刻を取得し、制御手段302とセンシング装置303と作業進捗管理手段307とに出力するものである。なお、検出履歴データベース304への時刻の記録は、センシング装置303から出力された時刻を記録することにより行う。
【0047】
《制御手段》
制御手段302は、全ての手段又は装置と接続されてそれらの手段又は装置に対してそれらの動作をそれぞれ制御して、制御手段302の制御下で前記物品管理システムを動作させるものである。制御手段302の制御下での前記物品管理システムの全体の処理フローは後述する。
【0048】
《記録情報データベース》
記録情報データベース316は、センシング装置303において、人及び物品を検出するために予め記録しておく画像の情報や予め記録しておくIDの情報(識別情報)などの情報を保持するものである。例えば、キッチンルーム100において人や検出したい物品が無い状態である背景画像や、顔認識技術を利用するための人の顔画像や、テンプレートマッチング処理をするための物品のテンプレート画像などを記録情報データベース316に予め記録して保持する。さらに、顔画像やテンプレート画像は、その人やその物品の名前や、無線ICタグに記録されているIDなどと対応付けられて記録情報データベース316に記録保持されている。なお、これらの情報は、キーボード、マウス、音声入力装置、タッチパネル、又は、ディスプレイなどの入出力手段317により、記録情報データベース316に、あらかじめ記録しておいても良い。
【0049】
《センシング装置》
センシング装置303は、人のIDや位置情報(例えば位置座標)、及び、物品IDや位置情報(例えば位置座標)を検出し、その検出結果(検出情報)を検出履歴データベース304に記録する。このとき、検出した時刻を時刻取得手段301から取得し、ここで検出した検出結果と対応付けて、その時刻情報を検出履歴データベース304に記録する
さらに、ロボットアーム102の先端部の現在位置情報(手先位置)及びロボットアーム102の根元部位置情報を制御手段302から取得して、その時刻情報とともに、検出履歴データベース304に記録する。すなわち、ロボットアーム102の本体根元部102bの動作時の位置座標は検出履歴データベース304で管理する。なお、ロボットアーム102の先端部の現在位置情報は、一例として、エンコーダ133より制御手段302を通じて取得する。
【0050】
センシング装置303に用いられるセンサとしては、例えば、画像センサ、超音波タグセンサ、床圧力センサ、無線ICタグセンサ、又は、重量センサなどが考えられる。以下、各センサの具体的な動作の例を説明する。なお、図1Aでは、センサ104がセンシング装置303の一例として機能する。
【0051】
画像センサを用いる場合、図4に示すように、人106や物品404を検出したい領域401(例えば、図1Aのキッチンルーム100)を撮影できるように、カメラ402(例えば、図1Aのセンサ104)を設置する。領域401内に人106や検出したい物品404が無い状態の画像を、図5Aに示すように、背景画像501として予め保持しておく(システムキッチン101)。人106が領域401内に入ったときの人検出画像502(図5B参照)と前記背景画像501との差を画像処理手段403(図3B参照)で求めることにより、差分画像503(図5C参照)が得られる。図3Bには、センシング装置303の構成の一例を示しており、カメラ402と、カメラ402に接続されてカメラ402で撮像した画像情報を処理する画像処理手段403とにより、センシング装置303を構成している。
【0052】
差分画像503で抽出された斜線部の領域504の下端が、検出された人106の床面上の位置である。図5A〜図5Cは、それぞれ、順に、処理画像、すなわち、背景画像、人検出画像、差分画像の例を示している。
【0053】
また、人106のID又は名前と対応付けられた人106の顔画像を記録情報データベース316に予め記録しておき、予め記録された画像と、撮影した画像とを顔認識技術を利用して画像処理手段403で比較することにより、その人が誰であるかを識別することができる(例えば、特開2005−316888号公報、特開2006−178651号公報を参照)。
【0054】
キッチンルーム100に人106が入室するとき等、人106の顔を正面から撮影できるときにこの識別処理を行い、以降は、その人106の移動を追跡することで、人106がキッチンルーム100内のどこにいても、人106を識別することが可能である。
【0055】
また、図6に示すように、取り扱う物品600のテンプレート画像601を予め記録しておき、差分画像で抽出された領域とのマッチング処理により、その物品が何であるかを識別できる。図6はテンプレート画像の一例を示している。可能なかぎり、色々な角度から見た画像を記録することが、マッチング処理精度を向上させる点で好ましい。
【0056】
超音波タグセンサを用いる場合、図7に示すように、人106を検出したい領域701の天井701cに複数の超音波受信機702を設置し、人106に超音波発信器703を携帯させる。人106が携帯する超音波発信器703が発信する超音波を、複数の超音波受信機702が受信し、前記超音波の到達時間の差により超音波発信器703の3次元位置を求めることができ、この位置を床面上に投影した2次元座標を人106の位置とする。また、超音波発信器703(又は記録情報データベース316)に人106のIDを予め記録しておくことにより、検出した人106が誰であるかを超音波受信機702により識別することもできる。
【0057】
床圧力センサを用いる場合、図8Aに示すように、人106を検出したい領域801の床面801cに床圧力センサの一例として機能する圧力感知素子802を敷き詰めておく。人106が歩いたときの圧力が検知された圧力感知素子802から、人106の位置を求めることができる。また、人106が歩いた軌跡から歩行パターンを圧力データ処理手段803(図8B参照)で求め、その人106が誰であるかを識別することができる(例えば、「センシングフロアによる人の識別・追跡」、日本機械学会ロボティクス・メカトロニクス講演会‘03講演論文集1A1−1F−A2を参照)。図8Bには、センシング装置303の構成の一例を示しており、圧力感知素子802と、圧力感知素子802に接続されて圧力感知素子802で感知した情報を処理する圧力データ処理手段803とにより、センシング装置303を構成している。
【0058】
無線ICタグセンサを用いる場合、図9Aに示すように、物品を検出したい領域901が検出範囲となるように読み取りアンテナ902を設置し、物品904には無線ICタグ903を貼り付ける。読み取りアンテナ902の検出範囲内に、無線ICタグ903が貼り付けられた物品904が置かれると、これを読み取りアンテナ902で読み取ることで、物品904の位置を検出することができる。ただし、読み取りアンテナ902の検出範囲内のどこにあるかまでは分からないので、検出位置の精度は、読み取りアンテナ902の検出範囲のサイズに依存する。また、無線ICタグ903に取り扱う物品のIDを記録情報データベース316に予め記録しておくことにより、検出した物品が何であるかを無線ICタグデータ処理手段904(図9B参照)で識別することができる。図9Bには、センシング装置303の構成の一例を示しており、読み取りアンテナ902と、読み取りアンテナ902に接続されて読み取りアンテナ902で読み取られた情報を処理する無線ICタグデータ処理手段904とにより、センシング装置303を構成している。
【0059】
また、通常の無線ICタグセンサの耐久性は50〜60℃程度であるので、読み取りアンテナ902の設置位置や無線ICタグ903の貼付位置を、50〜60℃以上の高温にならない箇所にする必要がある。
【0060】
重量センサを用いる場合、図10Aに示すように、物品1003を検出したい領域1001内に重量検出センサ1002を3カ所に設置する。その領域1001内に物品1003が置かれると、各重量検出センサ1002は、現在の重量値と物品1003が置かれる前の重量値との差を重量データ処理手段1004(図10B参照)で算出し、その重心位置を物品1003の位置とする。ただし、複数の物品を同時に置いた場合には、それぞれの物品を区別して位置を求めることはできない。図10Bには、センシング装置303の構成の一例を示しており、重量検出センサ1002と、重量検出センサ1002に接続されて重量検出センサ1002で読み取られた重量情報を処理する重量データ処理手段1004とにより、センシング装置303を構成している。
【0061】
また、取り扱う物品1003の重量値を記録情報データベース316に予め記録しておき、検出された物品1003の重量値を全ての重量検出センサ1002の重量変化の合計値と重量データ処理手段1004で比較することで、その物品1003が何であるかを識別することができる。ただし、物品同士の重量値の差が、重量センサの検出精度以下の場合には、その区別はできないが、直前に操作された物品の情報(物品のID情報)や、これらの重量の合計値などから推定することができる。
【0062】
また、物品の中でも、玉葱や人参などの食材については、包丁で切るなどの加工をすることにより、食材自体に無線ICタグを貼り付け続けることはできなくなり、食材の外観や重量も変化するので、画像センサや重量センサによっても食材の検出は困難になる。そこで、国際公開公報WO/2006/035714(特願2004−280873号)に示されるような方法によって、加工した食材を検出するようにしても良い。前記国際公開公報には、加工した食材を、その食材を入れた容器と関連づけて管理する方法が示されているので、このような操作をする限りにおいては、加工した食材を検出することが可能となる。
【0063】
《検出履歴データベース》
検出履歴データベース304は、センシング装置303により検出された時刻情報と人106のIDや位置の情報と物品のIDや位置の情報とを記録するものである。検出履歴データベース304への記録のタイミングは、一定時間(例えば1秒)間隔で行う。また、検出履歴データベース304への記録のタイミングは、一定距離(例えば10センチメートル)だけ変化する毎に行うようにしてもよい。すなわち、人106や物品の位置が、現在の位置から一定距離(例えば10センチメートル)だけ変化したとき(すなわち、現在の位置から一定距離(例えば10センチメートル)だけ変化したことをセンシング装置303で検出したとき)に、人106のID又は位置の情報と物品のID又は位置との情報を時刻取得手段301から取得した時刻情報と対応付けて検出履歴データベース304に記録し、さらに記録した時点での人106又は物品の位置から、再度、一定距離だけ変化したとき(すなわち、記録した時点での位置から一定距離(例えば10センチメートル)だけ変化したことをセンシング装置303で検出したとき)に、時刻情報と人106のID又は位置の情報と物品のID又は位置とを検出履歴データベース304に記録する、というように、繰り返して前記情報を記録するようにしても良い。
【0064】
図11に記録される情報の例を示す。
【0065】
図11において、人検出履歴情報1101は、少なくとも、人106のIDの情報1102(以下、単に「ID1102」と称する。)、人の位置の情報1103(二次元座標)(以下、単に「位置1103」と称する。)、時刻の情報1104(以下、単に「時刻1104」と称する。)の項目を持っている。
【0066】
人検出履歴情報1101において、ID1102は、例えば、人106のIDの情報を記録しておく。センシング装置303によって人106のIDの情報が識別されなかった場合には、空欄(情報無し)にしておく。位置1103は、図4に示したような予め決めたXY座標系(床面上での直交する2つのXY軸による2次元座標系)に従って、前記センシング装置303によって検出された位置座標を記録する。時刻1104は、前記センシング装置303から出力される時刻であって、かつ、センシング装置303によってID1102を検出した時刻を人検出履歴情報1101として検出履歴データベース304に蓄積(記録)する。
【0067】
人106の移動軌跡が分かるように、同じIDの情報を時刻の順に並べておくと良い。なお、同じIDの情報を時刻順に並べる際に、IDが空欄のデータは、例えば図11の「太郎」か「花子」のどちらの表に記憶すべきかを決定する必要があります。そのときは、例えば、IDが検出されなかった時刻の前後の時刻のデータにおいて、検出されたIDの位置と近い方の表に格納すればよい。また、人106がキッチンルーム100内からキッチンルーム100外に移動して、前記センシング装置303が人106を検出できなくなった場合には、人検出履歴情報1101に、人106がキッチンルーム100内に存在していないことを示す情報を記録する。例えば、位置1103の項目に、監視領域外の位置座標(例えば、監視領域外の位置座標を示す(−1[cm],−1[cm])の位置座標)を記録することで、これ(人106がキッチンルーム100内に存在していないことを示す情報)を表現する。
【0068】
同様に、物品検出履歴情報1105には、少なくとも物品のID1106と物品の位置1107(座標)と時刻1108との項目を持つ。ID1106としては、物品のIDの情報を記録しておく。位置1107としては、図4に示したような予め決めたXY座標系(床面上での直交する2つのXY軸による2次元座標系)に従って、前記センシング装置303によって検出された位置座標を記録する。物品の場合、同じ2次元座標でも、例えば、調理台108の上と収納棚112の中のように異なる所にあることもあり得るので、これを区別できるように、3次元座標系(床面上での直交する2つのXY軸及びXY軸に直交するZ軸による3次元座標系)の方が好ましい。時刻1108としては、前記センシング装置303が検出した時刻を記録する。
【0069】
前記人検出履歴情報1101と同様に、物品の移動軌跡が分かるように、同じIDの情報を時刻の順に並べておくと良い。また、物品がキッチンルーム100内からキッチンルーム100外に持ち出されて、前記センシング装置303が物品を検出できなくなった場合、物品検出履歴情報1105に、物品がキッチンルーム100内に存在していないことを示す情報を記録する。例えば、位置1107の項目に、監視領域外の位置座標(例えば、監視領域外の位置座標を示す(−1[cm],−1[cm],−1[cm])の位置座標)を記録することで、これ(物品がキッチンルーム100内に存在していないことを示す情報)を表現する。
【0070】
さらに、制御手段302から取得したロボットアーム102の先端部の現在位置情報(手先位置)及びロボットアーム102の根元部位置情報は、例えば、図11の1109に示すように、それぞれの位置情報と時刻情報を記録する。
【0071】
《物品把持判定手段》
物品把持判定手段305は、センシング装置303で検出されて検出履歴データベース304に記録された情報を基に、システムキッチン101の上面に置かれていた物品を人106が把持したことを判定するものである。この判定結果を基に、情報を出力するタイミングを情報出力装置314で決定する。つまり、システムキッチン101の上面の物品を人106が把持した後、人106は何らかの操作を行い、その操作終了後に、人106が物品をシステムキッチン101の上面などに置くのが一般的である。そこで、本発明の前記実施形態にかかる物品管理システムでは、この物品を把持してシステムキッチン101の上面から持ち上げたタイミングで、人106に対して情報を情報出力装置314から出力し、物品の移動不適切場所情報(物品を移動するのに不適切な場所の情報)を人106に提示する。
【0072】
前記センシング装置303として、物品を検出するために超音波タグセンサを用いている場合、超音波タグセンサによる検出結果から物品のID情報と3次元位置とが得られるので、物品が鉛直方向の上向きに移動したことを超音波タグセンサで検出したら、人106が物品を把持したこと及びその物品のID情報を物品把持判定手段305で判定できる。
【0073】
また、センシング装置303として、物品を検出するために重量センサを用いている場合、物品が人106により持ち上げられると、重量センサが検出する重量値は減少するので、人106が物品を把持したことを物品把持判定手段305で判定することができる。ただし、この場合、物品のID情報までは重量センサでは検出できないので、物品のID情報を検出可能な他のセンサと組み合わせて使用することになる。
【0074】
《作業手順データベース》
作業手順データベース306は、人106とロボットアーム102とが協調して行う協調作業の各工程の内容とその順番の情報を予め記録したものである。図12A〜図12Cに、作業手順データベース306に記録された情報の例を示す。
【0075】
図12Aにおいて、作業手順データベース306に記録された作業手順データ1201は、各工程を実行する順に記録したものであり、人106の作業とロボットアーム102との協調作業がそれぞれどのような順序で実行され、どのタイミングで協調作業を行うかが対応付けられて記述されている。各工程の詳細な内容は、例えば、図12Bの工程データ1202又は図12Cの工程データ1212のように記録されている。何も作業を行わない時間は、待機時間とする。人106とロボットアーム102との協調作業は、同じ時間に並べて記述する。
【0076】
より具体的には、図12Aの作業手順データ1201は、人106は、「工程A」→「工程B」→「工程C」→「工程D」の順に作業し、ロボットアーム102は「工程i」→「工程ii」の順に作業することを示している。また、ロボットアーム102は、人106が「工程A」と「工程B」の作業中は何も作業を行わずに待機しているとともに、人106が「工程C」の作業中も何も作業を行わずに待機している。同様に、人106は、ロボットアーム102が「工程i」の作業中は、何も作業を行わずに待機している。「工程D」と「工程ii」は人106とロボットアーム102の協調作業を表しており、同じ時間に作業するので、両者を接続している(両工程を接続することを指示する情報が記録されている)。
【0077】
作業手順データ1201の人106の作業又はロボットアーム102の作業の中で、入れ替え可能な工程が存在する場合には、例えば、図13Aに示した人106の作業の作業手順データ1301のように、実行される可能性のある複数の作業手順に分岐できるように記述する。例えば、人106の工程において、図13Aの作業手順データ1301では、「工程E」と「工程F」が入れ替え可能であり、「工程D」→「工程E」→「工程F」→「工程G」の順に作業するか、又は、「工程D」→「工程F」→「工程E」→「工程G」の順に作業するかのいずれかであることを示している。このような工程E及び工程Fの具体例としては、包丁で玉葱を切る工程と、包丁で人参を切る工程とがある(図13B参照)。
【0078】
作業手順データ1201の工程Aの工程データ1202としては、図12Bに示すように、工程のIDの情報1203と、種別の情報1204と、操作物品の情報1205と、移動先の情報1206と、所要時間の情報1207と、作業場所の情報1208との項目を少なくとも持つことを示している。IDの情報1203には、工程を識別するためのIDを記録しておく。図12Bでは、IDとして「A」が記録されている。種別の情報1204には、この工程が人106によって行われるか、ロボットアーム102によって行われるかの種別の情報を記録しておく。図12Bでは、種別の情報として「人」が記録されている。操作物品の情報1205には、この工程によって取り扱われる(操作対象となる)物品のID情報を記録しておく。図12Bでは、操作物品の情報として「フライパン」(のID情報)が記録されている。移動先の情報1206には、前記操作物品の情報1205にかかる物品がこの工程によってどこに移動されるか、つまり、この工程が行われた後に置かれる場所の情報(例えば位置座標など)を記録しておく。図12Bでは、移動先の情報として「コンロ」(のID情報)が記録されている。所要時間の情報1207の項目には、この工程を行うのにかかる時間を記録しておく。図12Bでは、所要時間の情報として「40秒」が記録されている。作業場所の情報1208には、この工程を行う場所の位置座標を記録しておく。この工程中に人106の移動を伴う場合には代表点の位置座標、例えば移動範囲の中心位置の位置座標を作業場所の情報1208として記録しておけばよい。図12Bでは、作業場所の情報として「(X,Y)」が記録されている。
【0079】
図12Bに示した工程データ1202は、さらに、作業順序の情報1209と、協調作業の情報1210と、中断の情報1211との項目を追加しても良い。作業順序の情報1209には、図13Aに示したような入れ替え可能な工程が存在した場合に、その順序と確率を作業手順データベース306に記録しておく。図13Bに工程データの例1302を示しており、順序情報は図13Cを参照しており、工程E→工程Fへの作業順序の確率は70%であり、工程F→工程Eへの作業順序の確率は30%であることを意味している。協調作業の情報1210には、人106とロボットアーム102が協調して行う協調作業工程のとき、その対応を記録しておく。例えば、図12Cに示した、作業手順データ1201の工程iiの工程データ1212の例のように、ロボットアーム102の「工程ii」の協調作業の情報1210の項目には、対応する人106の「工程D」が記録されている。中断の情報1211には、その工程を行っている途中で、中断が可能か否かを記録しておく。中断が不可能な工程とは、例えば、天ぷらを揚げる等のように途中で手を離すことができない工程である(図12Cの工程ii参照)。また、中断可能な工程とは、例えば、包丁で野菜を切る工程であり、途中で手を止めて包丁を置き、物品の運搬などが可能な工程である(図13Cの工程E及び工程F参照)。
【0080】
《作業進捗管理手段》
作業進捗管理手段307は、前記物品把持判定手段305の結果と前記作業手順データベース306を参照して、時刻取得手段301から取得した現在時刻を基に、現在の作業が、前記作業手順データ1201の中のどの工程まで進捗しているか(言い換えれば、工程データの作業完了項目などの作業手順の進捗の情報)を判定するものである。また、時刻取得手段301から取得する時刻を基に、各工程の作業に要した時間を作業進捗管理手段307で算出し、以降の作業において、人106とロボットアーム102の行う工程の対応を作業進捗管理手段307で管理する(言い換えれば、作業工程又は作業手順の進捗の情報を管理する)ものである。すなわち、作業進捗管理手段307では、その工程の完了の有無と、各工程が実際にかかった時間が予定時間から大幅に前後する場合は、以下に図14Aなどを使って説明するように、以降の工程(特に人106とロボットアーム102が協調して行う工程)の開始時間を調整する。
【0081】
図14Aに示した工程データの例1401のように、工程データに、作業完了の情報1402の項目を作業進捗管理手段307で追加して作業手順データベース306に記録する。作業完了の情報1402の項目には、作業進捗管理手段307により、最初に「0」を記録しておき、その工程が完了したら、「0」の代わりに「1」を作業進捗管理手段307により作業手順データベース306に記録する。工程の完了は、センシング装置303により検出されて検出履歴データベース304に記録された検出情報に基づき、その工程で利用される物品が、すべて、人106の手を離れてシステムキッチン101上に置かれたと作業進捗管理手段307で判定したとき、工程が完了したと作業進捗管理手段307で判定する。すべての物品がシステムキッチン101上に置かれたことの作業進捗管理手段307による判定は、前記物品把持判定手段305と同じように判定する。
【0082】
すなわち、前記センシング装置303として、物品を検出するために超音波タグセンサを用いている場合、物品の3次元位置が得られるので、高さ方向の位置座標値がシステムキッチン101の上面と一致したことを作業進捗管理手段307で検出したら、人106が物品を置いたことにより工程が完了したと、作業進捗管理手段307により判定して作業手順データベース306に記録する。
【0083】
また、センシング装置303として、物品を検出するために重量センサを用いている場合、物品がシステムキッチン101の上面に置かれると重量センサが検出する重量値は増加するので、その増加を作業進捗管理手段307で検出すれば、人106が物品をシステムキッチン101の上面に置いたことにより、工程が完了したと、作業進捗管理手段307により判定して作業手順データベース306に記録する。
【0084】
作業進捗管理手段307は、前記物品把持判定手段305によって得られた、把持された物品のID情報を基に、作業手順データベース306の前記作業手順データ1201の中から現在の工程を求める。これは、作業進捗管理手段307により、作業手順データベース306内の作業手順データのうち、作業完了の情報1402の項目が「0」である工程データを、早い時間順(図12Aの工程データ1201を例にすると左から右の順)に探索し、操作物品の情報(すなわち、その工程で操作する物品のID情報)1205が、前記把持された物品のID情報と一致する工程を、現在の工程とするものである。
【0085】
前記操作物品の情報1205にかかる前記把持された物品が、把持されてから置かれるまでの時間を作業進捗管理手段307で算出し、これを現在の工程の所要時間とする。現在の工程データ1201に記録されている所要時間の情報1207にかかる所要時間と、今回求めた現在の工程の所要時間が異なるか否かを作業進捗管理手段307で判断し、異なると作業進捗管理手段307で判断した場合、必要に応じて、このずれを作業進捗管理手段307により修正し、人106とロボットアーム102の行う工程が、どのタイミングで並行して行われるかを作業進捗管理手段307により正しく対応付けることができる。すなわち、前記説明したように、作業進捗管理手段307では、以下に説明するように、ずれを修正する場合には待機時間を作るなどして、以降の工程(特に人106とロボットアーム102が協調して行う工程)の開始時間を調整する。工程が前後しない程度の短時間(例えば、1秒以下の時間)のずれであると作業進捗管理手段307が判断すれば、障害物品除去時間算出手段311における障害物品を除去する時間の算出結果に影響しないので、作業進捗管理手段307により前記ずれを修正する必要はない。
ただし、人106とロボットアーム102の協調作業である工程は、同じ時間に行われなければならないので、作業進捗管理手段307により修正して異なる時間に行われるようにずらすことはできない。
【0086】
作業進捗管理手段307により前記ずれを修正する具体的な手法について説明する。図15A〜図15Dに、作業手順データベース306に記録されている情報の例を示す。作業手順データベース306において、図15Aの作業手順データ1501に対して、図15Bの工程データ1502が記録されていたとする。人106は、「工程A」→「工程B」→「工程C」→‥‥→「工程D」→「工程E」の順に作業し、ロボットアーム102は「工程i」→「工程ii」の順に作業する。「工程E」と「工程ii」は人106とロボットアーム102の協調作業であるので、同じ時間に作業が行われる。
【0087】
このとき、「工程A」の実際の所要時間が150秒であったとすると、「工程A」の所要時間の増加分(この例では、予め設定された所要時間は120秒であるため、増加分は、150−120=30秒)だけ、「工程B」以降の人106の作業の時間とロボットアーム102の作業の時間がずれることになってしまう。ここで、「工程E」と「工程ii」は協調作業であるので、これらの工程は同時に行われなければならない。従って、「工程E」と「工程ii」の開始時間を合わせるため、図15Cの作業手順データ1503のように、「工程A」の所要時間の増加分を作業進捗管理手段307により求めたのち、この増加分だけ、ロボットアーム102の作業の「待機1」の時間を30秒だけ、作業進捗管理手段307により増加する。
【0088】
また、協調作業以前の工程(「工程C」や「工程i」など)が、人106の作業とロボットアーム102の作業の時間がずれても問題が無ければ(協調作業以前の工程において、人106の作業とロボットアーム102の作業の時間がずれても問題が無いという情報が作業手順データベース306に予め記録されておれば)、図15Dの作業手順データ1504のように、「工程A」の所要時間の増加分だけ、作業進捗管理手段307により「待機3」の時間を30秒増加するようにしても良い。
【0089】
さらに、前記したように「工程A」の所要時間の増加分が30秒であるとき、作業進捗管理手段307により、「待機1」の時間を15秒増加し、かつ、「待機3」の時間を15秒増加する、というように複数の待機時間に分けて、トータルで増加時間が等しくなるようにしても良い。元の作業手順データに、待機する工程が存在しなかった場合は、作業を行う工程の間に、増加時間分だけ、待機する工程を作業進捗管理手段307により追加するようにしてもよい。
【0090】
《作業手順データベース更新手段》
作業手順データベース更新手段308は、センシング装置303により検出されたセンシング情報に基づいて作業手順データベース306に記録されている工程データ1202の項目の情報をそれぞれ更新するものである。
【0091】
例えば、図14Aに示した工程データの例1401のように、工程データに実行回数の情報1403の項目を作業手順データベース更新手段307により追加して作業手順データベース306に記録する(図14B参照)。これは、具体的には、この実行回数の情報1403の項目には、工程が実行された回数を作業手順データベース更新手段307により記録しておく。作業手順データベース更新手段307は、工程が実行されると、実行された工程の実行回数の情報1403の数値に「1」を加える。実行回数は、人IDごとに集計する。実行回数は、「作業順序の確率」の計算に使う。例えば、図14Aの作業順序の確率を再計算する際に使用する。すなわち、人が「工程E」→「工程F」の順で作業をするか、「工程F」→「工程E」の順で作業をするかは、人毎に異なるためである。作業順序の確率は、以下の手順で計算する。すなわち、工程IDがE(「工程E」)の実行回数=10、「工程E」→「工程F」の順序の確率=70%、「工程F」→「工程E」の順序の確率=30%のとき、次に、「工程E」→「工程F」の順序ならば、確率は8/11、3/11となる。複数の工程が存在しないデータについては、実行回数の管理は不要である。
【0092】
また、作業手順データベース更新手段308は、工程データ1202に記録されている操作物品の情報1205にかかる物品が、把持されてから置かれるまでの時間を算出し、これを工程の所要時間とする。作業手順データベース更新手段308により、すでに記録されている所要時間の情報1207にかかる所要時間と、今回算出した所要時間を足し合わせて2で割ることにより、平均の所要時間を算出し、算出した平均の所要時間を新たな所要時間の情報1207として、作業手順データベース更新手段308により作業手順データベース306に記録する。
【0093】
ここで、前記物品が置かれたことは、前記物品把持判定手段305と同様の処理により、作業手順データベース更新手段308で判定できる。例えば、センシング装置303として、物品を検出するために重量センサを用いている場合、重量センサが配置された領域に物品が置かれると、重量センサが検出する重量値は増加するので、重量センサからの重量値の増加情報を基に、人106が物品を置いたことを作業手順データベース更新手段308で判定することができる。
【0094】
また、工程の作業を実行しているときの人106の位置を作業手順データベース更新手段308で求め、この求められた位置の座標を工程の作業場所とする。この工程中に人106の移動を伴う場合には、代表点(例えば、移動範囲の中心位置)の座標を作業場所とする。作業手順データベース更新手段308により、すでに記録されている作業場所の情報1208にかかる位置座標と、今回求めた作業場所の位置座標を足し合わせて2で割ることにより、平均座標を求め、求めた平均座標を新たな作業場所の情報1208として、作業手順データベース更新手段308により作業手順データベース306に記録する。
【0095】
また、図13A,図13Bに示したような入れ替え可能な工程E,Fが存在した場合に、実際に工程が行われた方の工程について、図14Bのように実行回数を作業手順データベース306に記録する。作業手順データベース更新手段308により、この実行回数を使って、作業順序の確率を再計算し、作業手順データベース306に記録する。具体的には、図14Bのように、ID E→F(「工程E」→「工程F」)の実行回数=10、順序E→F(「工程E」→「工程F」)の確率=70%、順序F→E(「工程F」→「工程E」)確率=30%、のとき、次に順序E→F(「工程E」→「工程F」)ならば、確率は8/11、3/11と計算し、作業手順データベース更新手段308により図14Bの作業順序を記録する。
【0096】
《属性データベース》
属性データベース315は、人106とロボットアーム102とが協調して複数の作業工程を含む作業を行うことができる前記環境内の各種データ(情報)(前記環境内に存在する物品、ロボット、及び人の固有の情報(作業により変化しない、属性に関する情報)を記録するものである。図16A〜図16Cに示すように、属性データベース315としては、一例として、物品データ2301と、ロボットデータ2302と、人データ2303とを有している。
【0097】
物品データ2301は、少なくとも各物品のサイズデータを有している。サイズデータとは、物品の外接直方体の縦、横、高さの寸法値で表された情報である。例えば、図16Aでは、サラダ油入れは、縦7cm、横7cm、高さ20cmのサイズデータを有する物品データ2301として記録されている。
【0098】
ロボットデータ2302は、少なくとも、本体根元部102bの初期の位置座標(0,0,0)と、各ロボットアーム102の本体根元部102bの移動速度データと(ロボットアーム102の本体根元部102bが移動する場合に必要。)、アームの全長サイズデータと、アームのハンド部102aの動作速度データと、ロボットアーム102のハンド部102aが物品を把持するのに要する把持所要時間データと、を有している。また、後述するロボットアーム102と物品との干渉判定のため、ロボットアーム102の関節の数と、ロボットアーム102のリンクのサイズ(長さ、太さ)も有する(図示は省略)。例えば、図16Bでは、ID番号が00001のロボットアーム102は、本体の移動速度35cm/sと、アームの全長サイズ60cmと、アームのハンド部の動作速度25cm/sと、把持所要時間3sとを有するロボットデータ2302として記録されている。
【0099】
人データ2303は、前記環境内に入る可能性がある複数の人106について、少なくとも各人の手の長さデータと、各人の移動速度データと、各人の手の移動速度データとを有している。例えば、図16Cでは、人106の一例である「花子さん」は、手の長さ68cm、移動速度60cm/s、手の移動速度30cm/sを有する人データ2303として記録されている。
【0100】
これらのデータは、各物品、ロボットアーム102、人106に応じて属性データベース315に入出力手段317により予め記録しておく。
【0101】
《環境マップ》
環境マップデータベース312は、前記環境の中の、特に作業に用いられる物品が置かれる領域について、その見取り図がマップ情報として記録されている。また、マップ管理手段313は、後述の障害物品除去時間算出手段311によって算出された障害物品除去時間を障害物品除去時間算出手段311から取得し、取得した障害物品除去時間を各場所(物品が置かれると想定されるとして指定された場所)に対応付けて環境マップデータベース312に記録する。すなわち、分割した全ての場所について障害物品除去時間を算出する。具体的には、図17Bのように、分割した全ての場所についての障害物品除去時間を算出し、図17Cの環境マップデータベース312で管理する。図17Aに、キッチンルーム100における環境マップデータベース312に記録されたマップ情報の例を示す。図17Cの環境マップデータベース312には、障害物品除去時間と各場所とが、どのように対応付けられているかがわかる例を示す。図17Cの環境マップデータベース312では、矩形に分割した場所を識別するID毎に障害物品除去時間を管理している。なお、この環境マップデータベース312の場所の情報は、一例として、分割した矩形の対角位置の情報を格納している。なお、これらの情報は、入出力手段317により、環境マップデータベース312に、あらかじめ記録しておいても良い。
【0102】
《マップ管理手段》
マップ管理手段313は、前記環境マップデータベース312に記録されかつ物品が置かれると想定する領域を、複数個の場所に分割して、分割された各場所の位置情報(例えば2次元又は3次元位置座標情報)を、作業手順データベース306の工程データに基づきロボットアーム102により把持した物品を置く位置として、後述のアクセス判定手段310に与える。例えば、各分割領域の中心点の座標を各場所の位置情報として、マップ管理手段313からアクセス判定手段310に与える。さらに、後述の障害物品除去時間算出手段311が算出した障害物品除去時間をマップ管理手段313が取得したのち、マップ管理手段313から前記環境マップデータベース312に与えて、障害物品除去時間を各場所の位置情報に対応付けて記録できるようにするものである。この処理は、前記物品把持判定手段305において、人106が物品を把持したと判定されたときに行われる。
【0103】
マップ管理手段313は、前記分割した複数個の各場所のサイズを調整することができる。粗く分割する(すなわち、各場所のサイズを大きくする)ことで、おおまかな状況しか把握できないが、分割された場所の数が少なくなるため、高速に処理できる。また、細かく分割する(すなわち、各場所サイズを小さくする)ことで、分割された場所の数が多くなるため、処理に時間を要するが、詳細な状況を把握できる。マップ管理手段313は、物品のサイズに合わせて場所のサイズを決定しても良い。例えば、物品のサイズが小さければ、場所のサイズも小さくする一方、物品のサイズが大きければ、場所のサイズも大きくすることができる。
【0104】
《アクセス判定手段》
アクセス判定手段310は、前記マップ管理手段313により分割されて位置情報が与えられた複数の場所のうちの1つの場所に、人106が前記把持した物品を置いたと想定したとき、アクセス困難な状況となるか否かを判定するものである。
【0105】
ここで、アクセス困難な状況とは、人106が物品(すなわち、障害物品)を任意の場所に置いたことにより、ロボットアーム102がその障害物品の陰になってしまった位置にある物品を取ろうとしたときに、障害物品が邪魔になってしまうこと、又は、人106が障害物品を置いた位置がロボットアーム102の可動範囲外であることを指している。これにより、前者の場合、まず、邪魔な物品(すなわち、障害物品)をロボットアーム102により移動させるという無駄な時間が発生してしまい、後者の場合にも、ロボットアーム102にはその障害物品を扱うことができないので、人106がその障害物品を取りに行かなければならないことになり、無駄な時間が発生してしまう。
【0106】
アクセス判定手段310により、ロボットアーム102の本体根元部102bの固定位置の位置座標(具体的には、図11の検出履歴データベース304のロボットアーム102の本体根元部102bの位置)と前記属性データベース315に記録されたロボットアーム102の全長サイズデータを参照して、人106が障害物品を置いた位置がロボットアーム102の可動範囲内か否かを判定する。例えば、図18Aに示した物品1701は可動範囲外である。すなわち、図18Aにおいて、ロボットアーム102の可動範囲を斜線の半円領域で示しており、物品1701が置かれた位置は、斜線の半円領域外であるため、アクセス判定手段310により、人106が障害物品を置いた位置がロボットアーム102の可動範囲外であると判定する。なお、ロボットアーム102の可動範囲を想定するときのロボットアーム102の本体の固定位置の位置座標のロボットアーム位置検出履歴情報の一例を図11の1109に示す。ここでは、ロボットアーム位置検出履歴情報1109として、ロボットアーム102の先端部のハンド部102aの位置に加えて、ロボットアーム102の本体の固定位置の位置座標(ロボットアーム102の本体根元部102bの位置)を時刻毎に示している。
【0107】
また、アクセス判定手段310により、前記作業手順データベース306を参照して、人106が前記物品をある場所に置いたとき、その場所が、以降の工程でロボットアーム102が動かすべき物品の移動先となっているか否か(物品を置いた場所の位置情報と物品の移動先の位置情報とが一致しているか否か)を判定する。例えば、図18Bに示すように、ロボットアーム102のハンド部102aが把持した物品1704を、場所1705に移動しようとすると、物品1706が邪魔となる。これは、以降の工程でロボットアーム102が動かすべき物品の移動先の位置情報をアクセス判定手段310により前記作業手順データベース306を参照して取得するとともに、取得した物品の移動先の位置情報と、人106が前記物品をある場所に置いたときの場所の位置情報をアクセス判定手段310により検出履歴データベース304を参照して取得し、それぞれ取得した物品の移動先の位置情報と物品をある場所に置いたときの場所の位置情報とをアクセス判定手段310により一致するか否かを判定する。この結果、両者の位置情報が一致すると判定し、ロボットアーム102のハンド部102aが把持した物品1704を、場所1705に移動しようとすると、物品1706が邪魔となることがアクセス判定手段310により判定できる。
【0108】
また、図18Cに示すように、アクセス判定手段310により、前記作業手順データベース306を参照して、以降の工程でロボットアーム102が把持する予定の物品を、ロボットアーム102で把持するために、ロボットアーム102を作動するとき、前記物品がロボットアーム102と干渉するか否かを、アクセス判定手段310により、属性データベース315に記録された物品データ2301とロボットデータ2302と検出履歴データベース304に記録されたロボットアーム102が把持する予定の物品の位置座標とロボットアーム102の位置座標とを参照して求めることもできる。以下に詳細に説明する。
【0109】
図19に、アクセス判定手段310による干渉判定のフローを示す。
【0110】
また、図20にロボットアーム102が物品を動かそうとするときの様子を示す。ロボットアーム102は、その本体根元部102bが座標(0,0,0)にあり、間接102cの数が2、リンク102dの長さがそれぞれ20cmであるとする。これらの情報は、属性データベース315にロボットデータ2302として予め記録されている。また、一例として、ロボットアーム102により把持して移動させようとする対象物品3002は、簡単のため、以下の障害物品3003のサイズよりも極小さな物品(例えば、サイズが1cm×1cm×1cmの立方体の物品)であるとし、座標(0,32,0)の位置に置かれているとする。また、障害物品3003は、サイズが16cm×16cm×16cmの立方体の物品で座標(0,16,0)の位置(障害物品3003の平均座標の位置)に置かれているとする。対象物品3002と障害物品3003のそれぞれの位置情報はセンシング装置303で検出されて検出履歴データベース304に記録されており、対象物品3002と障害物品3003のそれぞれのサイズは、属性データベース315に物品データ2301として予め記録されている。そして、前記作業手順データベース306を参照して、以降の工程でロボットアーム102が物品を把持する予定であることをアクセス判定手段310により判定したとき、前記属性データベース315に予め記録された物品データ2301とロボットデータ2302と検出履歴データベース304に予め記録された対象物品3002と障害物品3003のそれぞれの位置情報とをアクセス判定手段310により参照してそれぞれ取得する。
【0111】
まず、ステップS2901で、アクセス判定手段310により作業手順データベース306及び検出履歴データベース304を参照して、ロボットアーム102の先端部(ハンド部)の目標位置の座標(把持対象物の座標と)を求める。具体的には、アクセス判定手段310により作業手順データベース306を参照して、把持する対象物品3002のID情報を取得し、取得したID情報にかかる対象物品3002の現在の位置をアクセス判定手段310により検出履歴データベース304を参照して取得する。ここでは、検出履歴データベース304からアクセス判定手段310が、把持する対象物品3002の位置の座標として(0,32,0)を得たとする。
【0112】
次いで、ステップS2902で、アクセス判定手段310により検出履歴データベース304を参照して、センシング装置303で検出されて検出履歴データベース304に予め記録されているロボットアーム102の先端部の現在位置の座標を取得する。次いで、把持する対象物品3002の位置の座標と、取得したロボットアーム102の先端部の現在位置の座標との間のずれベクトルをアクセス判定手段310により算出する。具体的には、ロボットアーム102の先端部の現在位置の座標を(0,0,40)とすると、ずれベクトル=(把持する対象物品3002の位置の座標)−(ロボットアーム102の先端部の現在位置の座標)=(0,32,0)−(0,0,40)=(0−0,32−0,0−40)=(0,32,−40)がアクセス判定手段310により得られる。なお、ロボットアーム102の先端部1102aの現在位置の座標は、センシング装置303が制御手段302から取得している。
【0113】
次いで、ステップS2903で、前記で求めた、ずれベクトルから、逆運動学により軌道q(t)をアクセス判定手段310により決定する(図21B参照)。軌道q(t)は、各時間におけるロボットアーム102の各関節角度をベクトルとして表したものである。図21Bは、ロボットアーム102の先端部102aの現在位置から目標位置までを直線で繋いだ軌道を示す図である。逆運動学とは、ロボットアーム102の先端部の位置が与えられたとき、それを実現するための各関節の角度を求めるものである。前記軌道q(t)は、例えば、ロボットアーム102の先端部の現在位置から目標位置までを直線で繋ぐことで得ることができる。
【0114】
例えば、ロボットアーム102の先端部(ハンド部)102aが対象物品3002を丁度把持するときの先端部(ハンド部)102aの軌道の様子を図21Aに示す。図21Aは、x=0における断面(y−z平面)を表しており、これより、α=arccos(16/20)=36.9°と求まる。よって、1つ目の間接(本体根元部102bとそれに隣接する基端側のリンク102dの基端部との関節)の角度θ=90−α=53.1°、2つ目の関節(前記基端側のリンク102dの先端部とその基端側のリンク102dに隣接する先端側のリンク102dの基端部との関節)の角度θ=2*α=73.8°となる。
【0115】
次いで、ステップS2904で、アクセス判定手段310により、時間を微少時間Δtだけ進める。
【0116】
次いで、ステップS2905で、アクセス判定手段310により、前記軌道q(t)に基づいて得られたロボットアーム102の各関節角度から、順運動学によりロボットアーム102の現在の姿勢を求める。順運動学とは、各関節の角度からロボットアーム102の先端部の位置を求めるものである。
【0117】
例えば、前記図21Aに示した例では、アクセス判定手段310により、θ=53.1°とθ=73.8°よりロボットアーム102の先端部の位置を求める。まず、図21Aに示した位置Pの座標をアクセス判定手段310により求め、次に、先端部の位置Pの座標の順にアクセス判定手段310により求める。位置Pの座標は(0,L*sinθ,L*cosθ)=(0,16,12)となり、位置Pの座標は(0,16+L*sin(θ+θ),12+cos(θ+θ))=(0,32,0)となる。
【0118】
次いで、ステップS2906で、アクセス判定手段310により、衝突検出計算を行う。これは、例えば、属性データベース315にそれぞれ格納された、ロボットアーム102の3次元形状と、障害物品3003の3次元形状を、オープンソースの物理計算シミュレータであるODE(Open Dynamics Engine)の衝突検出機能によって3次元形状同士が干渉しているかどうかを判定することで、求めることができる。
【0119】
ロボットアーム102の3次元形状は、リンクと関節の組み合わせで表現する。各リンクは、例えば、円柱によって表現され、円柱の半径と長手軸方向の長さ(円柱の高さ)を指定することで定義できる。
【0120】
同様に、障害物品3003の3次元形状は、例えば、直方体で表現され、縦、横、高さを指定することで定義できる。
【0121】
前記衝突検出機能は、2つの物体の接触情報を生成するものである。2つの物体として、ロボットアーム102と障害物品3003を指定し、接触情報として、接触数=0が返されれば、衝突が検出されていないことになり、接触数として0以外の値が返されれば、衝突が検出されたことになる。
【0122】
次いで、ステップS2907で、アクセス判定手段310により、前記衝突検出機能を使用してロボットアーム102と障害物品3003との間で衝突が検出されたか否かを判定し、アクセス判定手段310で衝突が検出されれば、ロボットアーム102が物品と干渉するとアクセス判定手段310により判定して、干渉判定のフローを終了する。アクセス判定手段310で衝突が検出されなければ、次のステップS2908へ進む。
【0123】
ステップS2908で、ロボットアーム102の先端部が目標位置へ到達したか否か(検出履歴データベース304に記録されたロボットアーム102の先端部の現在の位置座標と、ステップS2901で求められた目標位置の位置座標とが一致しているか否か)をアクセス判定手段310により判定し、目標位置へ到達していないとアクセス判定手段310により判定されれば、ステップS2904から繰り返す。目標位置へ到達しているとアクセス判定手段310により判定されれば、ロボットアーム102は物品と干渉しないとアクセス判定手段310により判定して、干渉判定のフローを終了する。
【0124】
ここでは、簡単のためにロボットアーム102の本体根元部102bの位置は固定されているとして考えたが、ロボットアーム102が移動可能な場合には、それぞれの場所において判定する必要がある。
【0125】
図22にアクセス判定手段310による、アクセス困難な状況となるか否かの処理フローを示す。
【0126】
指定された場所を「場所a」とし、ロボットアーム102により把持して、これから置こうとしている物品を「物品A」とする。指定された場所とは、前記マップ管理手段313により与えられる場所である。
【0127】
まず、ステップS1601で、作業手順データベース306の工程データ及び属性データベース315のロボットデータ2302に基づきロボットアーム102により把持した物品を置く位置としてマップ管理手段313で指定された置き場所(図17Cの全ての場所を順番に指定した置き場所)が、ロボットアーム102の可動範囲内か否かをアクセス判定手段310により判定する。アクセス判定手段310により可動範囲内であると判定されればステップS1603へ進み、アクセス判定手段310により可動範囲外であると判定されればステップS1602へ進む。
【0128】
ステップS1602で、前記作業手順データベース306をアクセス判定手段310により参照して、前記ロボットアーム102に把持した「物品A」が、以降の工程でロボットアーム102に把持されるか否かをアクセス判定手段310により判定する。以降に把持される工程が存在しなければ、アクセス困難な状況はないとアクセス判定手段310により判定して、この処理フローを終了する。以降に把持される工程が存在すれば、可動範囲外に置かれたことによる、アクセス困難な状況があるとアクセス判定手段310により判定して、この処理フローを終了する。
【0129】
ステップS1603で、前記作業手順データベース306をアクセス判定手段310により参照して、以降の工程で、ロボットアーム102が把持する物品をアクセス判定手段310により抽出し(このときの工程を「工程K」とし、物品を「物品B」とする。)、その「物品B」を把持するためにロボットアーム102を、制御手段302の制御の下に各関節の駆動モータ及び先端部のハンドの開閉モータにより駆動されるとき、先の干渉判定のフローを使用して先に置いた「物品A」がロボットアーム102と干渉するか否かをアクセス判定手段310により判定する。干渉が有るとアクセス判定手段310により判定されれば、ステップS1604へ進む。干渉が無いとアクセス判定手段310により判定されれば、ステップS1605へ進む。
【0130】
ステップS1604で、前記作業手順データベース306をアクセス判定手段310により参照して、前記干渉が発生する「工程K」の以前に、前記ロボットアーム102により把持した「物品A」を、もう一度使う工程が存在するか否かをアクセス判定手段310により判定する。そのような、もう一度使う工程が存在するとアクセス判定手段310により判定されたならば、ステップS1605へ進む。そのような工程が存在しないとアクセス判定手段310により判定されれば、邪魔な物品によるアクセス困難な状況があるとアクセス判定手段310により判定して、この処理フローを終了する。
【0131】
ステップS1605で、前記作業手順データベース306をアクセス判定手段310により参照して、以降の工程で、ロボットアーム102が把持した物品の移動先が「場所a」である工程をアクセス判定手段310により検索し、そのような工程が存在するとアクセス判定手段310により判定されれば(この工程を「工程L」とし、物品を「物品C」とする。)、ステップS1606へ進む。そのような工程が存在しないとアクセス判定手段310により判定されれば、アクセス困難な状況はないとアクセス判定手段310により判定して、この処理フローを終了する。
【0132】
ステップS1606で、前記作業手順データベース306をアクセス判定手段310により参照して、前記移動先が「場所a」である工程L以前に、前記ロボットアーム102により把持した「物品A」をもう一度使う工程が、存在するか否かをアクセス判定手段310により判定する。そのような工程が存在するとアクセス判定手段310により判定されたならば、アクセス困難な状況はないとアクセス判定手段310により判定して、この処理フローを終了する。そのような工程が存在しないとアクセス判定手段310により判定されれば、邪魔な物品によるアクセス困難な状況があるとアクセス判定手段310により判定して、この処理フローを終了する。
【0133】
《障害物品除去時間算出手段》
障害物品除去時間算出手段311は、前記アクセス判定手段310においてアクセス困難な状況が発生すると判定された場合、そのアクセス困難な状況を解消するために要する障害物品除去時間を算出するものである。ここで、障害物品除去時間とは、ロボットアーム102の可動範囲外によるアクセス困難な状況の場合には、人106がその物品を取りに行ったのち、邪魔な物品を移動させるのに要する時間を意味し、又は、邪魔な物品(障害物品)によるアクセス困難な状況の場合には、人106又はロボットアーム102が邪魔な物品を移動させるのに要する時間を意味する。
【0134】
前者の場合には、人106が障害物品を取りに行き、障害物品を邪魔にならない場所に置き直し、元の位置に戻るまでに要する時間を求める。より詳細には、人106が、現在位置(開始位置)と、人106が障害物品を取ることが可能な位置と、障害物品を邪魔にならない場所に置く位置との間で移動するときの距離を、人106の移動速度で割って、これらの位置を移動する時間tを算出する。さらに、人106が、障害物品を邪魔にならない場所に置くとき、手を伸ばして障害物品を置くとき、手を伸ばす距離を手の移動速度で割って、手の移動時間tを算出する。そして、これらの時間の合計(t+t)が障害物品除去時間となる。
【0135】
後者の場合には、人106又はロボットアーム102が障害物品を取りに行く距離と、障害物品を邪魔にならない場所に置く距離との合計距離を、人106の手又はロボットアーム102の移動速度で割れば、障害物品除去時間を算出することができる。
【0136】
ここで、障害物品除去時間を障害物品除去時間算出手段311により算出するために、人106又はロボットアーム102が、邪魔な物品を移動する先を、退避スペース(物品退避場所の一例。)として、予め確保しておく。例えば、図23の領域2801のように、他の作業の邪魔になりにくい場所を退避スペースとし、退避スペースの中心の座標を、前記環境マップデータベース312にマップ管理手段313により記録しておく。
【0137】
そして、障害物品除去時間算出手段311は、各場所で算出された障害物品除去時間の情報をマップ管理手段313に出力する。
【0138】
以下、図24から図28を参照しながら具体例を示す。
【0139】
図24は、この実施形態の一例として、調理作業の一部を示した作業手順データの例であり、このときの工程データを図26に示している。物品の移動を伴わない工程(この例では、工程Dと工程Hと工程Jと工程K)については、操作物品と移動先の項目が不要であり、代わりに、ここに作業内容を記述している。
【0140】
以下、作業の内容を簡単に説明する。
【0141】
人106は、「工程A」で、肉を冷蔵庫(図示せず)から取り出して調理台108に置く。
【0142】
「工程A」に次いで、人106は、「工程B」で、玉葱を野菜置き場(図示せず)から取り出して調理台108に置く。
【0143】
「工程B」に次いで、人106は、「工程C」で、じゃが芋を野菜置き場から取り出して調理台108に置く。ここで、「工程A」と「工程B」と「工程C」は、実際には作業順序を入れ替えても問題ない工程であるが、簡単のため、1つの順序のみを示している。以下の手順においても、説明に必要な箇所以外では1つの順序のみを示す。
【0144】
ロボットアーム102は、人106の「工程A」と同時に又は「工程A」より先に又はより後に開始する「工程i」で、包丁を収納棚(図示せず)から取り出して調理台108に置く。
【0145】
「工程i」に次いで、ロボットアーム102は、「工程ii」で、まな板を収納棚から取り出して調理台108に置く。
【0146】
「工程ii」に次いで、ロボットアーム102は、「工程iii」で、鍋を収納棚から取り出してコンロ107に置く。ロボットアーム102は、「工程iii」が完了したのち、人106の「工程D」が完了するまで「待機工程1」で待機する。
【0147】
一方、人106は、「工程C」に引き続き「工程D」で、包丁とまな板を使用して、調理台108に取り出した食材(肉、玉葱、じゃが芋)を切る。この工程が終了するまでロボットアーム102は待機する。
【0148】
「工程D」に次いで、人106は、下味を付けるために、「工程E」で、塩の瓶を調味料置き場から取り、切られた後、まな板の上に載っている食材に振り掛けたのち、塩の瓶を調味料置き場(図示せず)に戻す。
【0149】
「工程E」に次いで、人106は、「工程F」で、胡椒の瓶を調味料置き場から取り、まな板の上に載っている食材に振り掛けたのち、胡椒の瓶を調味料置き場に戻す。
【0150】
「工程F」に次いで、人106は、「工程G」で、まな板の上に載っている食材を取り、まな板ごとコンロ107の前まで移動し、まな板の上から、コンロ107に置かれている鍋に、食材を入れる。
【0151】
ロボットアーム102は、「工程iii」の後の「待機工程1」に次いで(言い換えると、人106の「工程D」が完了したのち)「工程iv」で、人106の「工程D」で使い終わった包丁を、シンク109へ運び、ロボットアーム102は、人106が「工程G」を完了するまで「待機工程2」で待機する。
【0152】
人106は、「工程G」を完了したのち「工程H」で、コンロ107に点火して、コンロ107の上の鍋の加熱を開始する。人106は、「工程H」が完了したのち、ロボットアーム102の「工程vi」が完了するまで「待機工程3」で待機する。
【0153】
ロボットアーム102は、「工程iv」の後の「待機工程2」に次いで(言い換えると、人106の「工程G」が完了したのち)「工程v」で、人106の「工程G」で使い終わったまな板を、シンク109へ運ぶ。
【0154】
ロボットアーム102は、「工程v」に次いで「工程vi」で、次の、人106の作業「工程I」の準備のために、塩の瓶を、調味料置き場からコンロ107の横へ運ぶ。ロボットアーム102、「工程vi」が完了したのち、人106の「工程I」が完了するまで「待機工程4」で待機する。
【0155】
人106は、味付けのために、「工程H」の後の「待機工程3」に次いで(言い換えると、ロボットアーム102の「工程vi」が完了したのち)「工程I」で、ロボットアーム102の「工程vi」でコンロ107の横へ運ばれた塩の瓶を取り、鍋の中に塩を振り掛けたのち、人106が調理台108の前まで移動し、調味料置き場に戻す。
【0156】
人106は、「工程I」に次いで「工程J」で、鍋の中の食材を混ぜる。
【0157】
人106は、「工程J」に次いで「工程K」で、ロボットアーム102の「工程iv」と「工程v」でシンク109に運ばれた調理具(包丁とまな板)を洗う。このとき、「工程J」と「工程K」は、作業順序を入れ替えても問題ない工程として示されており、その作業順序の確率は、「工程J」→「工程K」が70%、「工程K」→「工程J」が30%である。また、「工程K」は作業中に手に洗剤が付着するので中断不可な工程であるとする。
【0158】
ロボットアーム102は、「工程vi」の後の「待機工程4」に次いで(言い換えると、人106の「工程I」が完了したのち)「工程vii」で、次の、人106の作業「工程L」の準備のために、醤油入れを調味料置き場からコンロ107の横へ運び、次の作業まで「待機工程5」で待機する。
【0159】
人106は、味付けのために、「工程J」→「工程K」に次いで、又は、「工程K」→「工程J」に次いで「工程L」で、ロボットアーム102の「工程vii」でコンロ107の横へ運ばれた醤油入れを取り、鍋の中に醤油を振り掛けたのち、人106は調理台の前まで移動し、醤油入れを調味料置き場に戻す。
【0160】
以後の工程については、説明を省略する。なお、この例では協調作業を含まない工程の例を示している。
【0161】
以上のような作業手順データに従って作業している場合の、障害物品除去時間算出手段311の処理内容を説明する。
【0162】
図25は、人106Aが「工程E」を開始する直前の様子を示したものである。
【0163】
図25に示すように、調理台108の前に人106(ここでは、具体的に、前述した「花子」106Aという名前の人であると仮定する。)がおり、ロボットアーム102が調理台108に設置されている。コンロ107に鍋2003が置かれている。調理台108の手前(人106Aに近い領域)には、作業に使用している包丁2004とまな板2005とが置かれており、まな板2005の上には、肉と玉葱とじゃが芋の食材2005Aが置かれている。調理台108の右奥の矩形の調味料置き場108Aには、醤油入れ2006と塩の瓶2007と胡椒の瓶2008とが置かれている。図26の前記工程データで示した「コンロ107の横」の位置は、矩形の領域2009が示す場所とする。また、調理台108の左奥の矩形の領域2010を、邪魔な物品(障害物品)を移動するための退避スペースとする。この退避スペースの領域2010の位置座標は、環境マップデータベース312に記録されており、前記マップ管理手段313が、環境マップデータベース312から退避スペースの領域2010の位置座標を取得して、障害物品除去時間算出手段311に与えるようにしている。
【0164】
ここで、人106の「工程E」で、人106Aが、塩の瓶2007を調味料置き場108Aから取る。すると、前記物品把持判定手段305が、センシング装置303で検出されて検出履歴データベース304に記録された情報を基に、システムキッチン101の上面の調味料置き場108Aに置かれていた物品(塩の瓶2007)を人106Aが把持したことを判定する。
【0165】
次に、前記作業進捗管理手段307が、時刻取得手段301から取得した現在時刻を基に、現在の工程が「工程E」であることを判定する。
【0166】
さらに、前記マップ管理手段313が、前記環境マップデータベース312中の、物品(塩の瓶2007)が置かれると想定する複数個(又は単数の)の場所の位置情報を前記アクセス判定手段310に与える。そして、前記アクセス判定手段310は、与えられた場所がアクセス困難な状況となるか否かを判定する。そして、アクセス判定手段310がアクセス困難な状況であると判定した場合、障害物品除去時間算出手段311がそのアクセス困難な状況を解消するために要する障害物品除去時間を算出する。
【0167】
前記マップ管理手段313は、前記環境マップデータベース312中の、物品(塩の瓶2007)が置かれると想定する複数個の場所として、例えば、図27に示した、調理台108の右側手前でかつまな板2005の右側の領域2501の位置情報と、調理台108の右側奥でかつ調味料置き場108Aの醤油入れ2006の左側の領域2502の位置情報とを前記アクセス判定手段310に与える。ここでは、領域2501の代表点の位置座標としては(120,75)とし、領域2502の代表点の位置座標としては(110,15)とする。また、退避スペースとして確保した領域2010の代表点の位置座標としては(80,15)とする。この退避スペースの領域2010の位置座標は、環境マップデータベース312に予め記録されており、前記マップ管理手段313が、環境マップデータベース312から退避スペースの領域2010の位置座標を取得して、障害物品除去時間算出手段311に与えるようにしている。
【0168】
以下、それぞれの位置情報が与えられた場合の障害物品除去時間算出例1及び2について説明する。
【0169】
《障害物品除去時間算出例1》
まず、前記マップ管理手段313から領域2501の位置情報が前記アクセス判定手段310に与えられた場合の、アクセス判定手段310の処理を説明する。
【0170】
図22に示したステップS1601にて、属性データベース315のロボットデータ2302をアクセス判定手段310により参照して、与えられた位置が、ロボットアーム102の可動範囲外であるか否かをアクセス判定手段310により判定する。即ち、ロボットアーム102の本体根元部102bの位置が(100,5)であり、領域2501の位置(120,75)までの距離をアクセス判定手段310により計算して、{(120−100)+(75−5)1/2=72.8[cm]を求める。次いで、この距離72.8[cm]とロボットアーム102のアームサイズ(アームの長さ)である60[cm]とをアクセス判定手段310により比較する。その比較の結果、前記距離72.8[cm]がアームサイズ(アームの長さ)である60[cm]より大きいとアクセス判定手段310により判定することから、与えられた位置である領域2501の位置(120,75)が、ロボットアーム102の可動範囲外であることをアクセス判定手段310により判定される。
【0171】
次に、ステップS1602にて、アクセス判定手段310により、作業手順データを参照して、以降のロボットアーム102の「工程vi」で塩の瓶2007をロボットアーム102が使用することから、ロボットアーム102が塩の瓶2007に対してアクセス困難な状況になるとアクセス判定手段310で判定する。
【0172】
ロボットアーム102が塩の瓶2007に対してアクセス困難な状況になるとアクセス判定手段310で判定されたので、次の障害物品除去時間算出手段311の処理を行う。
【0173】
すなわち、ロボットアーム102の「工程vi」で、ロボットアーム102が塩の瓶2007に対してアクセス困難な状況が発生するので、このときに、「工程vi」より前の「工程v」の開始のタイミングで行われる人106の「工程H」を障害物品除去時間算出手段311により参照する。この「工程H」において、工程データの作業場所を障害物品除去時間算出手段311により参照すると、人106Aは(40,90)の位置で作業していることがわかる。領域2501に塩の瓶2007を置いたとすると、塩の瓶2007を人106Aが取りに行き、塩の瓶2007を退避スペース2010へ人106Aが移動させ、また元の位置に人106Aが戻ってくるまでの往復の所要時間を、困難な状況を解消するために要する障害物品除去時間とする。
【0174】
ここでは、塩の瓶2007を取るために塩の瓶2007の正面位置(120,90)まで人106Aが取りに行くとすると、人106Aは(40,90)の位置から(120,90)の位置に行き、また、(120,90)の位置から(40,90)の位置に移動することにより、これらの2つの位置の間を往復することになる。属性データベース315の人データ2303を障害物品除去時間算出手段311で参照して、花子106Aの移動速度は60[cm/s]であることを障害物品除去時間算出手段311が取得する。よって、花子106Aが前記2つの位置の間を往復する時間tは、t=(前記2つの位置の距離*2)/(花子106Aの移動速度)=((120−40)*2)/60=2.7[s]であることを障害物品除去時間算出手段311により求める。さらに、塩の瓶2007を退避スペース2010まで花子106Aが移動する時間を障害物品除去時間算出手段311により求める。領域2501から退避スペース2010までの距離を障害物品除去時間算出手段311により計算する。すなわち、両者の座標(120,75)と(80,15)とから、領域2501から退避スペース2010までの距離は{(120−80)+(75−15)1/2=72.1[cm]と求まる。障害物品除去時間算出手段311は、人106Aの属性データ2303を参照して、花子106Aの手の移動速度30[cm/s]を取得する。よって、花子106Aの手で領域2501から退避スペース2010まで塩の瓶2007を置く時間tは、障害物品除去時間算出手段311により、t=(領域2501から退避スペース2010までの距離)/(花子106Aの手の移動速度)を求めると、t=72.1/30=2.4[s]となる。これらを障害物品除去時間算出手段311により合計して、t+t=2.7+2.4=5.1[s]が障害物品除去時間算出手段311により算出された障害物品除去時間となる。
【0175】
このように、作業手順データをアクセス判定手段310により参照することで、アクセス困難な状況が発生する時点における状況をアクセス判定手段310により推定し、その状況に基づいた障害物品除去時間の情報を障害物品除去時間算出手段311により求めることができる。
【0176】
《障害物品除去時間算出例2》
また、前記マップ管理手段313から領域2502の位置情報が前記アクセス判定手段310に与えられた場合の、アクセス判定手段310の処理を説明する。この領域2502の位置座標は、環境マップデータベース312に予め記録されており、前記マップ管理手段313が、環境マップデータベース312から領域2502の位置座標を取得して、障害物品除去時間算出手段311に与えるようにしている。
【0177】
図22に示したステップS1601にて、属性データベース315のロボットデータ2302を参照して、与えられた位置が、ロボットアーム102の可動範囲内であるか否かをアクセス判定手段310により判定する。即ち、ロボットアーム102の本体根元部102bの位置が(100,5)であり、領域2502の位置(110,15)までの距離をアクセス判定手段310により計算して、{(110−100)+(15−5)1/2=14.1[cm]を求める。次いで、この距離14.1[cm]とロボットアーム102のアームサイズ(アームの長さ)である60[cm]とをアクセス判定手段310により比較する。その比較の結果、前記距離14.1[cm]がアームサイズ(アームの長さ)である60[cm]より小さいとアクセス判定手段310により判定することから、与えられた位置である領域2502の位置(110,15)が、ロボットアーム102の可動範囲内であるとアクセス判定手段310により判定される。
【0178】
次に、ステップS1603にて、アクセス判定手段310により、前記作業手順データベース306を参照して、領域2502に置いた塩の瓶2007が他の物品の邪魔になるか否かを判定する。すると、塩の瓶2007が、以降の「工程vii」で使用する醤油入れ2006の邪魔になるとアクセス判定手段310により判定されるので、ステップS1604へ進む。
【0179】
ステップS1604にて、アクセス判定手段310により前記作業手順データベース306を参照して、アクセス困難な状況が発生する可能性のある「工程vii」以前に、邪魔の原因となる塩の瓶2007を使用するか否かをアクセス判定手段310により判定すると、「工程vi」で塩の瓶02007を使用することが分かるので、ステップS1605へ進む。
【0180】
ステップS1605にて、アクセス判定手段310により、前記作業手順データベース306を参照して、以降の工程で、領域2502に他の物品を置くことが発生するかを判定すると、以降のロボットアーム102の工程には、移動先が領域2502の場所になっている物品は存在しないとアクセス判定手段310により判定することができる。この結果、アクセス困難な状況にはならないとアクセス判定手段310により判定する。
【0181】
よって、障害物品除去時間算出手段311の処理は行われず、障害物品除去時間は0[s]となる。
【0182】
このように、作業手順データベース306の作業手順データをアクセス判定手段310により参照し、以降の工程で使用する物品との関連をアクセス判定手段310により判定することにより、現時点だけの判断ではアクセス困難な状況であるとアクセス判定手段310により判定されるが、以降の工程で該当物品を使用する時点で、アクセス困難な状況であるか否かをアクセス判定手段310により正しく判定することができるようになり、より正確な障害物品除去時間の情報を求めることができる。
【0183】
次に、図25に示した「工程E」を開始する直前の状態から、人106Aが、「工程F」にて、胡椒の瓶2008を調味料置き場108Aから取ったときを考え、前記マップ管理手段313が、例えば、図28に示した領域2601の位置情報と領域2602の位置情報とをアクセス判定手段310に与えた場合について説明する。領域2601の代表点の位置座標を(80,55)、領域2602の代表点の位置座標を(110,15)とする。退避スペースとして確保した領域2010の代表点の位置座標を(80,15)とする。
【0184】
以下、それぞれの位置情報が与えられた場合の障害物品除去時間算出例3及び4について説明する。
【0185】
《障害物品除去時間算出例3》
まず、前記マップ管理手段313から領域2601の位置情報が前記アクセス判定手段310に与えられた場合の、アクセス判定手段310の処理を説明する。この領域2601の位置座標は、環境マップデータベース312に予め記録されており、前記マップ管理手段313が、環境マップデータベース312から領域2601の位置座標を取得して、障害物品除去時間算出手段311に与えるようにしている。
【0186】
図22に示したステップS1601にて、属性データベース315のロボットデータ2302をアクセス判定手段310により参照して、与えられた位置が、ロボットアーム102の可動範囲内であるか否かをアクセス判定手段310により判定する。即ち、ロボットアーム102の本体根元部102bの位置が(100,5)であり、領域2601の位置(80,55)までの距離をアクセス判定手段310により計算して、{(100−80)+(55−5)1/2=53.9[cm]がロボットアーム102のアームサイズである60[cm]とをアクセス判定手段310により比較する。その比較の結果、前記距離53.9[cm]がアームサイズ(アームの長さ)である60[cm]より小さいことから、与えられた位置である領域2502の位置(110,15)が、ロボットアーム102の可動範囲内であるとアクセス判定手段310により判定される。
【0187】
次に、ステップS1603にて、アクセス判定手段310により、前記作業手順データベース306を参照して、領域2601に置いた胡椒の瓶2008が他の物品の邪魔になるか否かを判定する。すると、胡椒の瓶2008が、以降の全ての工程でそれぞれ用いる物品に対しても邪魔にならないとアクセス判定手段310により判定されるので、ステップS1605へ進む。
【0188】
ステップS1605にて、前記作業手順データベース306をアクセス判定手段310により参照して、以降の工程で、領域2601に他の物品を置くことが発生するか否かをアクセス判定手段310により判定すると、「工程vi」において塩の瓶の移動先が領域2601の場所になっているとアクセス判定手段310により判定されるので、ステップS1606へ進む。
【0189】
ステップS1606にて、前記作業手順データベース306をアクセス判定手段310により参照して、アクセス困難な状況が発生する可能性のある「工程vi」以前に、邪魔の原因となる胡椒の瓶2008を使用するか否かをアクセス判定手段310により判定する。すると、いずれの工程においても胡椒の瓶2008は使用されないので、アクセス困難な状況になるとアクセス判定手段310により判定する。
【0190】
アクセス困難な状況になるとアクセス判定手段310により判定されたので、以下のように障害物品除去時間算出手段311による障害物品除去時間算出処理を行う。
【0191】
「工程vi」で、ロボットアーム102が塩の瓶2007に対してアクセス困難な状況が発生するとアクセス判定手段310により判定されるので、このときに、「工程vi」より前の「工程v」の開始のタイミングで行われる人106の「工程H」を障害物品除去時間算出手段311により参照する。
この「工程H」において、工程データの作業場所を障害物品除去時間算出手段311により参照すると、人106Aは(40,90)の位置で作業していることがわかる。領域2601に胡椒の瓶2008を置いたとすると、この胡椒の瓶2008を人106Aが取りに行き、胡椒の瓶2008を退避スペース2010へ人106Aが移動させ、また元の位置に人106Aが戻ってくるまでの往復の所要時間を、困難な状況を解消するために要する障害物品除去時間とする。
【0192】
ここでは、胡椒の瓶2008を人106Aが取るために胡椒の瓶2008の正面位置(80,90)まで人106Aが胡椒の瓶2008を取りに行くとすると、人106Aは(40,90)の位置から(80,90)の位置に行き、また、(80,90)の位置から(40,90)の位置に移動することにより、これらの2つの位置の間を往復することになる。属性データベース315の人データ2303を障害物品除去時間算出手段311で参照して、花子106Aの移動速度は60[cm/s]であることを障害物品除去時間算出手段311が取得する。よって、花子106Aが前記2つの位置の間を往復する時間tは、t=(前記2つの位置の距離*2)/(花子106Aの移動速度)=((80−40)*2)/60=1.3[s]であることを障害物品除去時間算出手段311により求める。さらに、胡椒の瓶2008を退避スペース2010まで花子106Aが移動する時間を障害物品除去時間算出手段311により求める。領域2601から退避スペース2010までの距離を障害物品除去時間算出手段311により計算する。すなわち、両者の座標(80,55)と(80,15)とから、領域2601から退避スペース2010までの距離は{(80−80)+(55−15)1/2=40[cm]と求まる。障害物品除去時間算出手段311は、人106Aの属性データ2303を参照して、花子106Aの手の移動速度30[cm/s]を取得する。よって、花子106Aの手で領域2601から退避スペース2010まで胡椒の瓶2008を置く時間tは、障害物品除去時間算出手段311により、t=(領域2601から退避スペース2010までの距離)/(花子106Aの手の移動速度)を求めると、t=40/30=1.3[s]となる。これらを障害物品除去時間算出手段311により合計して、t+t=1.3+1.3=2.6[s]が障害物品除去時間算出手段311により算出された障害物品除去時間となる。
【0193】
一方、アクセス困難な状況の原因となる胡椒の瓶2008は、ロボットアーム102の可動範囲内にあるので、ロボットアーム102自体が胡椒の瓶2008を取り除くことができる。ロボットアーム102は作業終了後には必ず、本体根元部102bの位置(100,5)にアーム102の先端部を戻すこととすると、「工程vi」の直前にもそのような状態になっており、アーム先端部を、胡椒の瓶2008の位置まで移動させて胡椒の瓶2008を取りに行き、アーム先端部で胡椒の瓶2008を把持し、アーム先端部で胡椒の瓶2008を退避スペース2010へ移動し、アーム先端部で胡椒の瓶2008を置き、また元の位置までアーム先端部が戻ってくるまでに要する時間を、困難な状況を解消するために要する障害物品除去時間とする。
【0194】
ロボットアーム102の先端部は、本体根元部102bの位置(100,5)から領域2601の位置(80,55)と退避スペース2010の位置(80,15)とを経由して元の位置(100,5)へ移動することになる。属性データベース315のロボットデータ2302を参照して、アーム102のハンド部の動作速度は25[cm/s]である。よって、ロボットアーム102の本体根元部102bの位置(100,5)から領域2601の位置(80,55)まで算出した前記距離が53.9[cm]であり、領域2601の位置(80,55)から退避スペース2010の位置(80,15)まで算出した前記距離が40[cm]であり、退避スペース2010の位置(80,15)から本体根元部102bの位置(100,5)までの距離は、障害物品除去時間算出手段311により、{(100−80)+(15−5)1/2=22.4[cm]と求められるため、(これらの全ての距離の合計)/(アームのハンド部の動作速度)=(53.9+40+22.4)/25=4.7[s]を障害物品除去時間算出手段311により求める。ロボットアーム102の把持所要時間が、物品を把持するときと置くときに費やされるので、3[s]*2=6[s]。これらを合わせて、4.7[s]+6[s]=10.7[s]が、障害物品除去時間算出手段311により算出された障害物品除去時間となる。
【0195】
以上のように、人106Aがアクセス困難な状況を解消するためには2.6[s]、ロボットアーム102がアクセス困難な状況を解消するためには10.7[s]が必要であることが障害物品除去時間算出手段311により求められる。なるべく少ない障害物品除去時間で作業を進めるためには、障害物品除去時間の小さい値を障害物品除去時間算出手段311により選択し、人106Aがアクセス困難な状況を解消するための2.6[s]を、領域2601における障害物品除去時間とする。実際に、「工程vi」において、この状況が発生したならば、人106Aがアクセス困難な状況を解消することで、ロボットアーム102がアクセス困難な状況を解消するよりも、無駄な時間を少なく抑えることができる。
【0196】
作業全体を通して、例えば疲労度の観点から、なるべく人106Aが余計な作業を行いたくない場合には、障害物品除去時間を決めるときに、前記人106Aがアクセス困難な状況を解消するため時間に、予め設定した値を障害物品除去時間算出手段311により乗じるように設定しておけばよい。例えば、値を「10」に障害物品除去時間算出手段311に設定しておけば、前記の例では、人106Aがアクセス困難な状況を解消するためには2.6×10=26[s]と障害物品除去時間算出手段311により算出される一方、ロボットアーム102がアクセス困難な状況を解消するためには10.7[s]が必要であることになる。この結果、前記26[s]と10.7[s]とのうちの、より少ない時間である、ロボットアーム102がアクセス困難な状況を解消するための10.7[s]が、障害物品除去時間算出手段311により選択されて、領域2601における障害物品除去時間となる。
【0197】
同様に、例えば省エネなどの観点から、なるべくロボットアーム102に余計な作業を行わせたくない場合には、障害物品除去時間算出手段311により障害物品除去時間を決めるときに、前記ロボットアーム102がアクセス困難な状況を解消するための時間に、予め設定した値(例えば、「10」)を障害物品除去時間算出手段311により乗じるようにしておけばよい。このようにすれば、例えば前記例では、人106Aがアクセス困難な状況を解消するための時間が2.6[s]であるのに対して、ロボットアーム102がアクセス困難な状況を解消するための時間は10.7[s]×10=100.7[s]となり、障害物品除去時間算出手段311により、人106Aがアクセス困難な状況を解消するための時間2.6[s]が選択されて、領域2601における障害物品除去時間となる。
【0198】
このように、作業手順データをアクセス判定手段310により参照することで、アクセス困難な状況が発生する時点における状況をアクセス判定手段310により推定し、人106A又はロボットアーム102のそれぞれの状況に基づいた障害物品除去時間を障害物品除去時間算出手段311により算出することで、より正確な障害物品除去時間の情報を障害物品除去時間算出手段311により求めることができる。
【0199】
《障害物品除去時間算出例4》
前記マップ管理手段313から領域2602の位置情報が前記アクセス判定手段310に与えられた場合の、アクセス判定手段310の処理を説明する。この領域2602の位置座標は、環境マップデータベース312に予め記録されており、前記マップ管理手段313が、環境マップデータベース312から領域2602の位置座標を取得して、障害物品除去時間算出手段311に与えるようにしている。
【0200】
図22に示したステップS1601にて、属性データベース315のロボットデータ2302をアクセス判定手段310により参照して、与えられた位置が、ロボットアーム102の可動範囲内であるか否かをアクセス判定手段310により判定する。即ち、ロボットアーム102の本体根元部102bの位置が(100,5)であり、領域2602の位置(110,15)までの距離をアクセス判定手段310により計算して、{(110−100)+(15−5)1/2=14.1[cm]を求める。次いで、この距離14.1[cm]とロボットアーム102のアームサイズである60[cm]とをアクセス判定手段310により比較する。その比較の結果、前記距離14.1[cm]がアームサイズ(アームの長さ)である60[cm]より小さいとアクセス判定手段310により判定することから、与えられた位置である領域2602の位置(110,15)が、ロボットアーム102の可動範囲内であるとアクセス判定手段310により判定される。
【0201】
次に、ステップS1603にて、アクセス判定手段310により、前記作業手順データベース306を参照して、領域2602に置いた胡椒の瓶2008が他の物品の邪魔になるかを判定する。すると、胡椒の瓶2008が、以降の「工程vii」で使用する醤油入れ2006の邪魔になるとアクセス判定手段310により判定されるので、ステップS1604へ進む。
【0202】
ステップS1604にて、アクセス判定手段310により前記作業手順データベース306を参照して、アクセス困難な状況が発生する可能性のある「工程vii」以前に、邪魔の原因となる胡椒の瓶2008を使用するか否かをアクセス判定手段310により判定すると、いずれの工程においても、胡椒の瓶2008は使用されないので、アクセス困難な状況になるとアクセス判定手段310により判定する。
【0203】
醤油入れ2006がアクセス困難な状況になるとアクセス判定手段310により判定されたので、以下の障害物品除去時間算出手段311による障害物品除去時間算出処理を行う。
【0204】
「工程vii」で、ロボットアーム102が醤油入れ2006に対してアクセス困難な状況が発生するとアクセス判定手段310により判定されるので、このときに、同じタイミングで行われる人106Aの工程を障害物品除去時間算出手段311により参照する。作業手順データを障害物品除去時間算出手段311により参照すると、「工程vii」と同じタイミングで行われる人106Aの工程としては、作業手順を入れ替え可能な「工程J」又は「工程K」であることがわかる。まず、それぞれの工程に対して障害物品除去時間を障害物品除去時間算出手段311により求める。
【0205】
まず、「工程J」において、工程データの作業場所を障害物品除去時間算出手段311により参照すると、人106Aは(40,90)の位置で作業していることがわかる。領域2602に胡椒の瓶2008を置いたとすると、この胡椒の瓶2008を人106Aが取りに行き、胡椒の瓶2008を退避スペース2010へ人106Aが移動させ、また元の位置に人106Aが戻ってくるまでの往復の所要時間を、困難な状況を解消するために要する障害物品除去時間とする。
【0206】
ここでは、胡椒の瓶2008を人106Aが取るために胡椒の瓶2008の正面位置(110,90)まで人106Aが胡椒の瓶2008を取りに行くとすると、人106Aは(40,90)の位置から(110,90)の位置に行き、また、(110,90)の位置から(40,90)の位置に移動することにより、これらの2つの位置の間を往復することになる。属性データベース315の人データ2303を障害物品除去時間算出手段311で参照して、花子106Aの移動速度は60[cm/s]であることを障害物品除去時間算出手段311が取得する。よって、花子106Aが前記2つの位置の間を往復する時間tは、t=(前記2つの位置の距離*2)/(花子106Aの移動速度)=((110−40)*2)/60=2.3[s]であることを障害物品除去時間算出手段311により求める。さらに、胡椒の瓶2008を退避スペース2010まで花子106Aが移動する時間を障害物品除去時間算出手段311により求める。領域2602から退避スペース2010までの距離を障害物品除去時間算出手段311により計算する。すなわち、両者の座標(110,90)と(40,90)とから、領域2602から退避スペース2010までの距離は{(110−80)+(15−15)1/2=30[cm]と求まる。障害物品除去時間算出手段311は、人106Aの属性データ2303を参照して、花子106Aの手の移動速度30[cm/s]を取得する。よって、花子106Aの手で、領域2602から退避スペース2010まで胡椒の瓶2008を置く時間tは、障害物品除去時間算出手段311により、t=(領域2602から退避スペース2010までの距離)/(花子106Aの手の移動速度)を求めると、t=30/30=1[s]となる。これらを障害物品除去時間算出手段311により合計して、t+t=2.3+1=3.3[s]が障害物品除去時間算出手段311により算出された障害物品除去時間となる。
【0207】
同様に、「工程K」において、工程データの作業場所を障害物品除去時間算出手段311により参照すると、人106Aは(160,90)の位置で作業していることがわかる。領域2602に胡椒の瓶2008を置いたとすると、この胡椒の瓶2008を人106Aが取りに行き、胡椒の瓶2008を退避スペース2010へ人106Aが移動xp、また元の位置に人106Aが戻ってくるまでの往復の所要時間を、困難な状況を解消するために要する障害物品除去時間とする。
【0208】
ここでは、胡椒の瓶2008を人106Aが取るために胡椒の瓶2008の正面位置(110,90)まで人106Aが胡椒の瓶2008を取りに行くとすると、人106Aは(160,90)の位置から(110,90)の位置に行き、また、(110,90)の位置から(160,90)の位置に移動することにより、これらの2つの位置の間を往復することになる。属性データベース315の人データ2303を障害物品除去時間算出手段311で参照して、花子106Aの移動速度は60[cm/s]であることを障害物品除去時間算出手段311が取得する。よって、花子106Aが前記2つの位置の間を往復する時間tは、t=(前記2つの位置の距離*2)/(花子106Aの移動速度)=((160−110)*2)/60=1.7[s]であることを障害物品除去時間算出手段311により求める。さらに、胡椒の瓶2008を退避スペース2010まで花子106Aが移動する時間を障害物品除去時間算出手段311により求める。領域2602から退避スペース2010までの距離を障害物品除去時間算出手段311により計算する。すなわち、両者の座標(110,15)と(80,15)とから、領域2602から退避スペース2010までの距離は{(110−80)+(15−15)1/2=30[cm]と求まる。障害物品除去時間算出手段311は、人106Aの属性データ2303を参照して、花子106Aの手の移動速度30[cm/s]を取得する。よって、花子106Aの手で、領域2602から退避スペース2010まで胡椒の瓶2008を置く時間tは、障害物品除去時間算出手段311により、t=(領域2602から退避スペース2010までの距離)/(花子106Aの手の移動速度)を求めると、t=30/30=1[s]となる。これらを障害物品除去時間算出手段311により合計して、t+t=1.7+1=2.7[s]が障害物品除去時間算出手段311により算出された障害物品除去時間となる。
【0209】
ここで、「工程J」と「工程K」は作業手順を入れ替え可能な工程であり、工程データを障害物品除去時間算出手段311により参照すると、「工程J」→「工程K」が70%、「工程K」→「工程J」が30%である。つまり、「工程vii」と同じタイミングで行われるのは、「工程J」が70%、「工程K」が30%となることがわかる。
【0210】
障害物品除去時間算出手段311により、この確率に基づいて重み付けした(3.3*70+2.7*30)/100=3.1[s]が、人106Aがアクセス困難な状況を解消するための障害物品除去時間として障害物品除去時間算出手段311により求めることができる。
【0211】
このように、作業が行われる順番の確率を考慮することで、どちらの順番で行われるケースにも対応した障害物品除去時間の期待値を障害物品除去時間算出手段311により得ることができる。すなわち、障害物品除去時間は確率で重み付けをしているため、どちらの順番で行われるかに従って、障害物品除去時間を障害物品除去時間算出手段311により、それぞれで算出できる。なお、ここで、期待値とは、障害物品除去時間を確率で重み付けをした数値を意味する。
【0212】
一方、アクセス困難な状況の原因となる胡椒の瓶2008は、ロボットアーム102の可動範囲内にあるので、ロボットアーム102自体が胡椒の瓶2008を取り除くことができる。「工程vii」の直前には、アーム102の先端部が本体根元部102bの位置にある状態になっており、アーム先端部を、胡椒の瓶2008の位置まで移動させて胡椒の瓶2008を取りに行き、アーム先端部で胡椒の瓶2008を把持し、アーム先端部で胡椒の瓶2008を退避スペース2010へ移動し、アーム先端部で胡椒の瓶2008を置き、また元の位置までアーム先端部が戻ってくるまでに要する時間を、困難な状況を解消するために要する障害物品除去時間とする。
【0213】
ロボットアーム102の先端部は、本体根元部102bの位置(100,5)から領域2502の位置(110,15)と退避スペース2010の位置(80,15)とを経由して元の位置(100,5)へ移動することになる。属性データベース315のロボットデータ2302を参照して、アーム102のハンド部の動作速度は25[cm/s]である。よって、ロボットアーム102の本体根元部102bの位置(100,5)から領域2502の位置(110,15)まで算出した前記距離が14.1[cm]であり、領域2502の位置(110,15)から退避スペース2010の位置(80,15)まで算出した前記距離が30[cm]であり、退避スペース2010の位置(80,15)から本体根元部102bの位置(100,5)までの距離は、障害物品除去時間算出手段311により、{(100−80)+(15−5)1/2=22.4[cm]と求められるため、(これらの全ての距離の合計)/(アームのハンド部の動作速度)=(14.1+30+22.4)/25=2.7[s]を障害物品除去時間算出手段311により求める。ロボットアーム102の把持所要時間が、物品を把持するときと置くときに費やされるので、3[s]*2=6[s]。これらを合わせて、2.7[s]+6[s]=8.7[s]が、障害物品除去時間算出手段311により算出された障害物品除去時間となる。
【0214】
以上のように、人106Aがアクセス困難な状況を解消するためには、作業手順の入れ替えを考慮すると3.1[s]、ロボットアーム102がアクセス困難な状況を解消するためには8.7[s]が必要であることが障害物品除去時間算出手段311により求められ、なるべく少ない障害物品除去時間で作業を進めるためには、障害物品除去時間の小さい値を障害物品除去時間算出手段311により選択し、人106Aがアクセス困難な状況を解消するための3.1[s]を、領域2602における障害物品除去時間とする。
【0215】
また、「工程K」においては、さらに、中断が不可能な工程であることを障害物品除去時間算出手段311により考慮することもできる。
【0216】
すなわち、前述の通り、「工程K」における障害物品除去時間は2.7[s]と障害物品除去時間算出手段311により算出される。しかし、この時間は人106,106Aが自由に他の作業が行える状態におけるものである。「工程K」のように、作業の途中で中断が不可能な場合、最大で、工程データの所要時間80[s]だけ待たなければならない。よって、「工程K」において、2.7+80=82.7[s]を障害物品除去時間算出手段311により算出された障害物品除去時間とする。
【0217】
このように、作業の途中で中断が不可能な工程を障害物品除去時間算出手段311により考慮することで、人106がアクセス困難な状況を短時間で解消できると想定していたが、作業を中断できずに余計な時間を費やしてしまうことを防ぐことになり、より正確な障害物品除去時間の情報を障害物品除去時間算出手段311により求めることができる。
【0218】
《情報出力装置》
情報出力装置314は、前記環境マップデータベース312を参照して、環境中の障害物品除去時間の状況を出力する装置である。例えば、情報出力装置314の一例として液晶プロジェクタを設置し、出力情報を、実際の場所(例えば、調理台108などの上面)に投影する。また、情報出力装置314の一例としてモニタをキッチン環境内に設置し、出力情報をモニタに表示するようにしても良い。
【0219】
前記出力情報の内容としては、障害物品除去時間のしきい値を予め設定しておき、障害物品除去時間がしきい値以上の領域と、しきい値未満の領域とで色を変えて、情報出力装置314により出力することが可能である。例えば、障害物品除去時間がしきい値以上の領域を赤色で出力することで、障害物品除去時間が長い場所には物品を置かないように、人に警告することができる。図29Aの2201に例を示す。図29Aにおいて、領域2201Aは、障害物品除去時間がしきい値以上の領域であって、障害物品除去時間が長い場所を意味している。
【0220】
また、前記障害物品除去時間算出手段311において、算出した障害物品除去時間だけでなく、アクセス困難な状況の理由、つまり、可動範囲外によるアクセス困難な状況であるか、邪魔な物品によるアクセス困難な状況であるかも併せて、前記出力情報として情報出力装置314は出力することができる。この情報を用いて、例えば、障害物品除去時間がしきい値以上の領域を黄色で出力し、可動範囲外によるアクセス困難な状況となる領域を赤色で出力することで、段階的に情報を表現でき、より細かい状況が判断できるようになる。図29Bの2202に例を示す。図29Bの2202において、右上部2202Uが黄色、下部2202Lが赤色を表している。
【0221】
また、前記検出履歴データベース304を情報出力装置314が参照して、人106の現在位置を情報出力装置314により取得し、さらに前記属性データベース315に記録された人106の手の長さデータを情報出力装置314により参照して、手が届く範囲を求める。前記出力領域のうち、手が届く範囲内の領域のみを情報出力装置314により出力するようにしても良い。図29Cの2203に例を示す。手が届く範囲内の領域は2203Aである。
【0222】
《全体処理フロー》
図30に全体の処理フローを示す。全体の処理の制御は制御手段302が行う。
【0223】
まず、ステップS2401で、前記環境内の人106、ロボットアーム102、及び、物品のセンシングをセンシング装置303で行う。前記センシング装置303により、センシング情報を前記検出履歴データベース304に記録したら、次のステップS2402へ進む。
【0224】
次いで、ステップS2402で、前記検出履歴データベース304を参照して、人106により物品が把持されたかどうかを物品把持判定手段305により判定する。前記物品把持判定手段305でこの判定を行い、人106により物品が把持されたと物品把持判定手段305により判定した場合には、ステップS2403へ進み、人106により物品が把持されていないと物品把持判定手段305により判定した場合には、ステップS2401へ進んで、繰り返し、センシング装置303によりセンシングする。
【0225】
ステップS2403で、前記センシング装置3により検出された前記情報を基に、作業手順データベース306から取得した作業手順の進捗の情報(すなわち、現在の作業がどの工程まで進捗しているかの情報)を前記作業進捗管理手段307により管理する。前記作業進捗管理手段307でこの管理を行い、前記作業手順データベース306の工程データの作業完了項目などの作業手順の進捗の情報を作業進捗管理手段307で更新することで、進捗の情報を作業進捗管理手段307で管理し、その後、次のステップS2404へ進む。
【0226】
次いで、ステップS2404で、前記ステップS2402で把持されたと判定した物品を置いたときの障害物品除去時間を算出するための場所を前記マップ管理手段313で指定する。前記マップ管理手段313がこの指定を行い、環境マップデータベース312の中の領域を分割して各場所の位置情報を前記マップ管理手段313により順次出力したのち、次のステップS2405へ進む。
【0227】
次いで、ステップS2405で、前記マップ管理手段313により指定された場所における障害物品除去時間を前記障害物品除去時間算出手段311により算出する。前記障害物品除去時間算出手段311がこの算出を行い、得られた結果を前記障害物品除去時間算出手段311から前記マップ管理手段313に出力する。マップ管理手段313は、これ(障害物品除去時間)を前記障害物品除去時間算出手段311から取得し、前記環境マップデータベース312の中の前記ステップS2404で指定された場所に対応付ける。その後、次のステップS2406へ進む。
【0228】
次いで、ステップS2406で、前記環境マップデータベース312の中の全ての分割領域において障害物品除去時間の算出が前記障害物品除去時間算出手段311により終了したか否かを判定する。全ての分割領域において障害物品除去時間の算出が終了していなければ、ステップS2404へ進み、繰り返す。全ての分割領域において障害物品除去時間の算出が終了していれば、ステップS2407へ進む。
【0229】
ステップS2407で、障害物品除去時間算出手段311により求めた障害物品除去時間の情報を情報出力装置314で出力する。例えば、前記環境マップデータベース312を情報出力装置314が参照し、障害物品除去時間がしきい値以上の領域を赤色で情報出力装置314から出力する。その後、ステップS2408へ進む。
【0230】
次いで、ステップS2408で、環境内の人106、ロボットアーム102、及び、物品のセンシングをセンシング装置303により行う。前記センシング装置303がこのセンシングを行い、センシング情報を前記検出履歴データベース304に記録したら、次のステップS2409へ進む。
【0231】
次いで、ステップS2409で、前記検出履歴データベース304から得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベース306に記録されかつ前記作業進捗管理手段307により管理された前記作業手順を参照し、人106が把持していた物品が置かれたかどうかを作業進捗管理手段307で判定する。人106が把持していた物品が置かれたと作業進捗管理手段307で判定したら、情報出力装置314からの情報提供を終了し、ステップS2410へ進む。人106が把持していた物品が置かれていないと作業進捗管理手段307で判定すれば、ステップS2407へ進み、情報出力装置314からの情報提供を継続する。
【0232】
ステップS2410で、作業手順データベース306を作業手順データベース更新手段308により更新する。前記作業手順データベース更新手段308がこの更新を行い、人106が把持していた物品が置かれたときを工程の終了と、作業手順データベース更新手段308により判定し、工程の実行回数及び所要時間を作業手順データベース更新手段308により更新し、ステップS2401へ進み、ステップS2401からの工程を再び繰り返す。
【0233】
これらの一連のステップを物品管理プログラムとしてコンピュータにより実行させることも可能である。一例として、物品管理プログラムは、以下のような構成とすることができる。
【0234】
すなわち、ロボットアーム102と人106とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアーム102の先端部の位置情報、及び、前記人106の位置情報をセンシング装置3で検出された情報を検出履歴データベース304に記録し(ステップS2401及びS2408参照)、
前記人106と前記ロボットアーム102とが協調して複数の作業工程を含む作業のうちの前記人106と前記ロボットアーム102のそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベース306から取得した作業手順の進捗の情報を、前記センシング装置3により検出された前記情報を基に、作業進捗管理手段307で管理し(ステップS2403参照)、
前記検出履歴データベース304を参照して、前記人106が前記取扱物品を把持したことを物品把持判定手段305で判定し(ステップS2402参照)、
前記検出履歴データベース304から得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベース306に記録されかつ前記作業進捗管理手段307により管理された前記作業手順を参照し、前記人106が前記取扱物品を把持して前記環境内の物品退避場所の領域2010などに置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアーム102がアクセス困難な状況となるか否かをアクセス判定手段310で判定し(ステップS2409参照)、
前記アクセス判定手段310によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人106が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアーム102の本体根元部102bの位置情報と移動速度情報が記録されている属性データベース315に記録された情報を基に、困難解消時間算出部311で算出し(ステップS2404〜S2406参照)、
前記物品把持判定手段305により前記人106が前記取扱物品を把持したと判定されたとき、前記人106に、前記困難解消時間算出手段311により算出された困難解消時間の情報を情報出力装置314で提供する(ステップS2407参照)といった手順をコンピュータに実行させるための物品管理プログラムとして、構成することができる。
【0235】
《作用と効果》
以上の処理により、人106が物品を把持したときに、その物品の置き場所について、想定される障害物品除去時間を障害物品除去時間算出手段311により算出し、算出結果に基づいて人に情報提供を情報出力装置314により行うことができる。この結果、この情報に従って、人106が物品の置き場所を選べば良い、という最小限の手間で、以降の作業における無駄な時間の発生を防ぐことができる。
【0236】
なお、前記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【0237】
本発明にかかる物品管理システム及び物品管理方法及び物品管理プログラムは、人とロボットアームが協調作業を行うシーンにおいて、人が把持した物品に対して、その置き場所について、想定される障害物品除去時間を算出し、算出結果に基づいて情報提供を行うことができるという機能を有する。これにより、家庭における家事支援ロボットアームにおいて、最小限の手間で、以降の作業における無駄な時間の発生を防ぎ、効率的に作業を実行できる物品管理システム等として有用である。また業務用途において、病院内搬送ロボットシステムやセル生産の支援ロボットシステム等の用途にも応用できる。
【図面の簡単な説明】
【0238】
【図1A】本発明の1つの実施形態にかかる物品管理システム構成の一例を示す図
【図1B】図1Aの物品管理システムのロボットアームの構成の一例を示す図
【図2A】本発明の前記実施形態にかかる物品管理システムのロボットアームの配置の一例を示す断面図
【図2B】本発明の前記実施形態にかかる物品管理システムのロボットアームの配置の一例を示す断面図
【図2C】本発明の前記実施形態にかかる物品管理システムのロボットアームの配置の一例を示す断面図
【図2D】本発明の前記実施形態にかかる物品管理システムのロボットアームの配置の一例を示す断面図
【図3A】本発明の前記実施形態にかかる物品管理システムにおける機能ブロック図
【図3B】図3Aの本発明の前記実施形態にかかる物品管理システムの機能ブロック中のセンシング装置のさらに詳細な機能ブロック図
【図4】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における画像センサの説明図
【図5A】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における処理画像(背景画像)の例を示す図
【図5B】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における処理画像(人検出画像)の例を示す図
【図5C】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における処理画像(差分画像)の例を示す図
【図6】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置におけるテンプレート画像の例を示す図
【図7】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における超音波センサの説明図
【図8A】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における床圧力センサの説明図
【図8B】図8Aの本発明の前記実施形態にかかる物品管理システムの機能ブロック中のセンシング装置のさらに詳細な機能ブロック図
【図9A】本発明の前記実施形態にかかる物品管理システムにおけるセンシング検出手段における無線ICタグセンサの説明図
【図9B】図9Aの本発明の前記実施形態にかかる物品管理システムの機能ブロック中のセンシング装置のさらに詳細な機能ブロック図
【図10A】本発明の前記実施形態にかかる物品管理システムにおけるセンシング装置における重量センサの説明図
【図10B】図10Aの本発明の前記実施形態にかかる物品管理システムの機能ブロック中のセンシング装置のさらに詳細な機能ブロック図
【図11】本発明の前記実施形態にかかる物品管理システムにおける検出履歴データベースに記録される情報の例を示す図
【図12A】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図12B】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図12C】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図13A】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図13B】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図13C】図13Bの本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報のうちの順序情報の例を示す図
【図14A】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図14B】図14Aの本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報のうちの作業順序と実行回数との例を示す図
【図15A】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図15B】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図15C】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図15D】本発明の前記実施形態にかかる物品管理システムにおける作業手順データベースに記録される情報の例を示す図
【図16A】本発明の前記実施形態にかかる物品管理システムにおける属性データベースに記録される情報の例を示す図
【図16B】本発明の前記実施形態にかかる物品管理システムにおける属性データベースに記録される情報の例を示す図
【図16C】本発明の前記実施形態にかかる物品管理システムにおける属性データベースに記録される情報の例を示す図
【図17A】本発明の前記実施形態にかかる物品管理システムにおける環境マップの例を示す図
【図17B】図17Aの本発明の前記実施形態にかかる物品管理システムにおける環境マップにおいて、ガス台を9個に分割した例を示す図
【図17C】図17Bの本発明の前記実施形態にかかる物品管理システムにおける環境マップでガス台を9個に分割した例に関する環境マップデータベースの例を示す図
【図18A】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段におけるアクセス判定を説明するための具体例を示す図
【図18B】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段におけるアクセス判定を説明するための具体例を示す図
【図18C】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段におけるアクセス判定を説明するための具体例を示す図
【図19】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段による干渉判定のフロー
【図20】本発明の前記実施形態にかかる物品管理システムにおけるロボットアームが物品を動かそうとするときの様子を示す図
【図21A】本発明の前記実施形態にかかる物品管理システムにおけるロボットアームの先端部(ハンド部)が対象物品を丁度把持するときの先端部(ハンド部)の軌道の様子を示す図
【図21B】本発明の前記実施形態にかかる物品管理システムにおいて、ロボットアームの先端部の現在位置から目標位置までを直線で繋いだ軌道を示す図
【図22】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段の処理フローを説明する図
【図23】本発明の前記実施形態にかかる物品管理システムにおける障害物品除去時間算出手段の処理内容を説明する図
【図24】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段における具体例を示す図
【図25】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段における具体例を示す図
【図26】本発明の前記実施形態にかかる物品管理システムにおけるアクセス判定手段における具体例を示す図
【図27】本発明の前記実施形態にかかる物品管理システムにおける障害物品除去時間算出手段の処理内容を説明する図
【図28】本発明の前記実施形態にかかる物品管理システムにおける障害物品除去時間算出手段の処理内容を説明する図
【図29A】本発明の前記実施形態にかかる物品管理システムにおける情報出力装置による出力の具体例を示す図
【図29B】本発明の前記実施形態にかかる物品管理システムにおける情報出力装置による出力の具体例を示す図
【図29C】本発明の前記実施形態にかかる物品管理システムにおける情報出力装置による出力の具体例を示す図
【図30】本発明の前記実施形態にかかる物品管理システムにおける制御手段が行う全体の処理のフローを説明する図
【図31】本発明の課題となる具体的な状況を示す図
【符号の説明】
【0239】
100 キッチンルーム
101 システムキッチン
102 家事支援ロボットアーム
102a ロボットアームの先端部のハンド部
102b ロボットアームの本体根元部
103 液晶プロジェクタ
104 センサ
105 物品
106 人
107 ガス台
108 調理台
109 シンク
110 電子レンジ
111 食器洗浄器
130 ハンド駆動モータ
131 肘関節駆動モータ
132 肩関節駆動モータ
133 エンコーダ
201 レール
301 時刻取得手段
302 制御手段
303 センシング装置
304 検出履歴データベース
305 物品把持判定手段
306 作業手順データベース
307 作業進捗管理手段
308 作業手順データベース更新手段
310 アクセス判定手段
311 障害物品除去時間算出手段
312 環境マップデータベース
313 マップ管理手段
314 情報出力装置
315 属性データベース
316 記録情報データベース
317 入出力手段
402 カメラ
403 画像処理手段
802 圧力感知素子
803 圧力データ処理手段
902 読み取りアンテナ
904 無線ICタグデータ処理手段
1002 重量検出センサ
1004 重量データ処理手段
1101 人検出履歴情報
1105 物品検出履歴情報
1109 ロボットアーム位置検出履歴情報
1201 作業手順データ
1202 工程データ
2301 物品データ
2302 ロボットデータ
2303 人データ

【特許請求の範囲】
【請求項1】
ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報を検出するセンシング装置と、
前記センシング装置により検出された情報を記録する検出履歴データベースと、
前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースと、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とを記録する作業手順データベースと、
前記センシング装置により検出された前記情報を基に、前記作業手順データベースに記録された作業手順の進捗の情報を管理する作業進捗管理手段と、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを判定する物品把持判定手段と、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かを判定するアクセス判定手段と、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記属性データベースに記録された前記ロボットアームの本体根元部の位置情報と移動速度情報を基に、算出する困難解消時間算出部と、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を提供する情報出力装置と、
を備えたことを特徴とする物品管理システム。
【請求項2】
前記ロボットアームの長さを前記属性データベースに予め記録するとともに、
前記アクセス判定手段は、前記属性データベースに記録された前記ロボットアームの本体根元部の位置情報と長さの情報と前記物品退避場所の位置情報とに基づき、前記ロボットアームの前記先端部が前記物品退避場所にアクセス困難な状況となるか否かを判定する、
ことを特徴とする請求項1に記載の物品管理システム。
【請求項3】
前記作業手順データベースに、前記センシング装置により検出された情報を基に、各工程に使用する前記取扱物品の移動先の位置情報を記録し、
前記アクセス判定手段は、前記検出履歴データベースの情報と前記作業手順データベースの情報をそれぞれ参照して、前記取扱物品を置いた場所が、現在の作業の後の工程で他の取扱物品の移動先となるか否かにより、アクセス困難な状況となるか否かを判定する、
ことを特徴とする請求項1又は2に記載の物品管理システム。
【請求項4】
前記作業手順データベースには、各工程における作業場所の位置情報を記録し、
前記人の手の長さ及び前記ロボットアームの長さを前記属性データベースに記録するとともに、
前記困難解消時間算出部は、アクセス困難な状況を解消するために前記取扱物品を移動させるための、前記人及び前記ロボットアームの移動、把持、及び運搬に要する時間から困難解消時間を算出する、
ことを特徴とする請求項1〜3のいずれか1つに記載の物品管理システム。
【請求項5】
前記作業手順データベースに、各工程の所要時間と、各工程が中断可能か否かを記録し、
前記困難解消時間算出部における困難解消時間の算出において、該当工程が中断不可であった場合、工程が終了するまでの所要時間を加算して算出する、
ことを特徴とする請求項4に記載の物品管理システム。
【請求項6】
前記作業手順データベースに、複数の工程の作業順序とその確率を記録し、
前記困難解消時間算出部における困難解消時間の算出において、前記作業順序の前記確率を用いて重み付けをする、
ことを特徴とする請求項2〜5のいずれか1つに記載の物品管理システム。
【請求項7】
前記環境内の見取り図が記録されている環境マップデータベースと、
前記環境マップデータベース中の前記取扱物品が置かれる領域を複数の場所に分割して、各場所の位置情報を前記困難解消時間算出手段に与え、前記時間算出手段が算出した困難解消時間を取得し、前記環境マップ中の場所に算出した前記困難解消時間を対応付けるマップ管理手段と、
をさらに備えたことを特徴とする請求項1〜6のいずれか1つに記載の物品管理システム。
【請求項8】
前記マップ管理手段は、前記取扱物品が置かれる前記領域を複数の場所に分割するときの各場所のサイズを調整可能である、
ことを特徴とする請求項7に記載の物品管理システム。
【請求項9】
前記情報出力装置は、前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記ロボットアームの長さと前記物品退避場所の位置情報とにより、前記ロボットアームの可動範囲内と可動範囲外とに区別して前記困難解消時間の情報を表示する、
ことを特徴とする請求項1〜8のいずれか1つに記載の物品管理システム。
【請求項10】
前記情報出力装置は、前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人の手の長さと前記物品退避場所の位置情報とにより、前記人の手が届く範囲のみの前記困難解消時間の情報を表示する、
ことを特徴とする請求項1〜9のいずれか1つに記載の物品管理システム。
【請求項11】
ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報をセンシング装置で検出し、
前記センシング装置により検出された情報を検出履歴データベースに記録し、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベースから取得した作業手順の進捗の情報を、前記センシング装置により検出された前記情報を基に、作業進捗管理手段で管理し、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを物品把持判定手段で判定し、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かをアクセス判定手段で判定し、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースに記録された情報を基に、困難解消時間算出部で算出し、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を情報出力装置で提供する、
ことを特徴とする物品管理方法。
【請求項12】
ロボットアームと人とが協調して複数の作業工程を含む作業を行う環境内に存在する物品の位置情報、前記ロボットアームの先端部の位置情報、及び、前記人の位置情報をセンシング装置で検出された情報を検出履歴データベースに記録し、
前記人と前記ロボットアームとが協調して行う複数の作業工程を含む作業のうちの前記人と前記ロボットアームのそれぞれの作業工程の順序と、少なくとも各工程における、前記環境内に存在する前記物品のうちの取扱物品とが記録された作業手順データベースから取得した作業手順の進捗の情報を、前記センシング装置により検出された前記情報を基に、作業進捗管理手段で管理し、
前記検出履歴データベースを参照して、前記人が前記取扱物品を把持したことを物品把持判定手段で判定し、
前記検出履歴データベースから得られる前記環境内に存在する前記物品の現在の位置情報と、前記作業手順データベースに記録されかつ前記作業進捗管理手段により管理された前記作業手順を参照し、前記人が前記取扱物品を把持して前記環境内の物品退避場所に置いたと想定したときに、前記物品退避場所の位置情報を基に前記ロボットアームがアクセス困難な状況となるか否かをアクセス判定手段で判定し、
前記アクセス判定手段によりアクセス困難な状況となると判定された場合に、そのアクセス困難な状況を解消するために、前記人が把持して置いたと想定した前記取扱物品を除去するのに要する困難解消時間を、前記ロボットアームの本体根元部の位置情報と移動速度情報が記録されている属性データベースに記録された情報を基に、困難解消時間算出部で算出し、
前記物品把持判定手段により前記人が前記取扱物品を把持したと判定されたとき、前記人に、前記困難解消時間算出手段により算出された困難解消時間の情報を情報出力装置で提供するといった手順をコンピュータに実行させるための物品管理プログラム。

【図1A】
image rotate

【図1B】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図2D】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図12C】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図13C】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図15C】
image rotate

【図15D】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図16C】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図17C】
image rotate

【図18A】
image rotate

【図18B】
image rotate

【図18C】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21A】
image rotate

【図21B】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29A】
image rotate

【図29B】
image rotate

【図29C】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2009−297880(P2009−297880A)
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願番号】特願2008−157964(P2008−157964)
【出願日】平成20年6月17日(2008.6.17)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】