(57)【特許請求の範囲】
【請求項１】
ロボットにおいてエラーが発生して前記ロボットの動作が停止した場合、前記ロボットの動作の状態を示す情報をもとに、意味ネットワークを用いて、前記エラーの要因と、前記要因の確からしさを示す評価値と、前記要因に対して取り得る解決策とを示す評価情報を生成するエラー評価部と、
前記エラー評価部によって生成された前記評価情報が示す前記評価値をもとに、前記エラーに対する対応策を決定する対応策決定部と、
前記対応策決定部によって決定された前記対応策が前記評価情報によって示される前記解決策である場合、前記解決策にしたがって前記ロボットの動作の手順を示すプランステップを生成するプランナと、
前記プランナによって前記プランステップが生成された場合、前記プランステップにしたがって前記ロボットに動作を再開させ、エラー発生前に与えられた当初の目標である作業を完了するスケジュールを生成し、前記対応策決定部によって決定された前記対応策が、前記評価値を精査するための動作を実行させる策、又は、前記ロボットの動作を停止させる策である場合、前記対応策決定部によって決定された前記対応策にしたがって前記ロボットの動作に関連するスケジュールを生成するスケジューラと
を備えることを特徴とするロボット行動計画システム。
【請求項２】
前記エラー評価部は、
前記ロボットの動作の種類に対応するエラーを記述する意味ネットワークのフレームを備え、前記意味ネットワークのフレームに含まれるノードの値を前記ロボットの動作の状態を示す情報をもとに決定することで前記エラーの要因を抽出する意味ネットワークマッチング部と、
前記要因の根拠となる観測情報を取得し、前記観測情報と前記意味ネットワークマッチング部によって抽出された前記要因とをもとに、前記評価値を算出する評価値算出部とを有し、
前記観測情報は、前記ロボットの動作の状態を示す情報である
ことを特徴とする請求項１に記載のロボット行動計画システム。
【請求項３】
前記対応策決定部は、
前記評価値があらかじめ決められた閾値より大きいか否かを判断し、
前記評価値が前記閾値より大きいと判断した場合、前記対応策が前記評価情報によって示される前記解決策であると決定し、
前記評価値が前記閾値以下であると判断した場合、前記評価値を精査するための動作を実行することが可能であるか否かを判断し、
前記評価値を精査するための動作を実行することが可能であると判断したとき、前記対応策が、前記評価値を精査するための動作を実行させる策であると決定し、
前記評価値を精査するための動作を実行することが不可能であると判断したとき、前記対応策が、前記ロボットの動作を停止させる策であると決定する、又は、
前記対応策が、前記ロボットの動作を停止させる策であると決定する
ことを特徴とする請求項１又は２に記載のロボット行動計画システム。
【請求項４】
前記対応策決定部は、
前記閾値と、前記評価値を精査するための動作を実行することが可能であるか否かを判断するための試行回数であって前記ロボットに許可された動作の試行回数とを受け付けて記憶する機能を有し、
前記評価値が記憶した前記閾値より大きいか否かを判断し、
記憶した前記試行回数を用いて、前記評価値を精査するための動作を実行することが可能であるか否かを判断する
ことを特徴とする請求項３に記載のロボット行動計画システム。
【請求項５】
前記対応策決定部は、前記プランステップのプランニングの目標を前記プランナに出力する機能を有し、
前記プランナは、前記対応策決定部から出力された前記目標を受け取った場合、前記エラーが発生したことにより前記ロボットの動作が停止した時点を新たな初期状態に設定し、当初の目標の状態を達成するまでに必要とされる前記ロボットの動作を示す前記プランステップを生成すると共に、前記プランステップと前記プランステップを実行する際の順序の制約とを含むプランを生成する
ことを特徴とする請求項１から４のいずれか１項に記載のロボット行動計画システム。
【請求項６】
前記プランナは、動作を実行するロボットに相当するモデルを仮想空間で動かすロボットシミュレータを介して学習を行い、前記対応策決定部から出力された前記目標を受け取った場合、前記目標を達成するための動作を獲得する
ことを特徴とする請求項１から５のいずれか１項に記載のロボット行動計画システム。
【請求項７】
前記スケジューラは、前記エラー発生前に与えられた当初の目標である作業を完了するまでに必要なプランステップを複数のロボットに割り当てる場合、前記プランナでエラーを解決する新たに生成されたプランステップを含め、実行される動作の順序の制約を満たしつつ、前記複数のロボットの動作が完了するまでの時間及びエネルギのコストが最小となるスケジュールを生成し、
前記複数のロボットのうちのひとつのロボットは、エラーが発生した前記ロボットである
ことを特徴とする請求項１から６のいずれか１項に記載のロボット行動計画システム。
【請求項８】
請求項１から７のいずれか１項に記載のロボット行動計画システムと、
動作を実行する前記ロボットと、
前記ロボット行動計画システムによって生成された前記スケジュールをもとに、前記ロボットの動作についての指令を前記ロボットに出力するコントローラと、
前記ロボットの内部の状態を観測する内界センサと、
前記ロボットの外部の状態を観測する外界センサと、
前記内界センサ及び前記外界センサによって検出された値をもとに、前記ロボットにおいてエラーが発生したときの前記エラーを検出するエラー検出部と
を備えることを特徴とするロボットシステム。
【請求項９】
前記エラー検出部は、前記内界センサ及び前記外界センサによって検出された値をもとに異常を診断することができるニューラルネットワークを学習し、前記ニューラルネットワークを用いて前記エラーを検出する
ことを特徴とする請求項８に記載のロボットシステム。
【請求項１０】
請求項１から７のいずれか１項に記載のロボット行動計画システムと、
前記ロボット行動計画システムによって生成された前記スケジュールを検証するロボットシミュレータとを備え、
前記ロボットは、仮想のロボットである
ことを特徴とするロボット作業検証システム。
【請求項１１】
ロボットにおいてエラーが発生して前記ロボットの動作が停止した場合、前記ロボットの動作の状態を示す情報をもとに、意味ネットワークを用いて、前記エラーの要因と、前記要因の確からしさを示す評価値と、前記要因に対して取り得る解決策とを示す評価情報を生成するステップと、
生成された前記評価情報が示す前記評価値をもとに、前記エラーに対する対応策を決定するステップと、
決定された前記対応策が前記評価情報によって示される前記解決策である場合、前記解決策にしたがって前記ロボットの動作の手順を示すプランステップを生成するステップと、
前記プランステップが生成された場合、前記プランステップにしたがって前記ロボットに動作を再開させ、エラー発生前に与えられた当初の目標である作業を完了するスケジュールを生成し、決定された前記対応策が、前記評価値を精査するための動作を実行させる策、又は、前記ロボットの動作を停止させる策である場合、決定された前記対応策にしたがって前記ロボットの動作についてのスケジュールを生成するステップと
を含むことを特徴とするロボット行動計画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットにおいてエラーが発生した場合の処理を行うロボット行動計画システム、ロボットシステム、ロボット作業検証システム及びロボット行動計画方法に関する。
【背景技術】
【０００２】
近年、産業用ロボットによる作業が多様化し、生産性を向上させるためにロボットシステムを継続して稼働することが課題となっている。産業用ロボットの導入時には、人が、対象作業における動作点を産業用ロボットに教示すると共に、産業用ロボットに動作させる一連の動作プログラムを作成する。産業用ロボットが動作プログラムにしたがって動作を実行する過程で、操作対象のワーク又は作業環境といった様々なことから生じる要因によって産業用ロボットの動作が正常に完了せずエラーが発生する場合がある。特に複数の産業用ロボットが協働して動作を実行する場合、エラーが発生すると、エラーの影響が後の動作に波及し、複数の産業用ロボットが動作プログラムにしたがって動作を実行することが困難になることがある。【０００３】
エラーが発生することにより停止したロボットシステムを復旧させるために、作業プログラムと機械から出力される信号とをもとに、停止した機械とエラーの原因とを特定する技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−３６７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１が開示している技術では、ロボットのエラーの要因が特定された後、人が復旧作業を行う。当該技術では、ロボットが復旧のための動作を自律的に行わないので、人がエラーの要因を取り除くことをすぐに行うことができない場合、ロボットシステムの稼働率が低下する。【０００６】
本発明は、上記に鑑みてなされたものであって、ロボットにおいてエラーが発生した場合のロボットシステムの稼働率を向上させるロボット行動計画システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、ロボットにおいてエラーが発生してロボットの動作が停止した場合、ロボットの動作の状態を示す情報をもとに、意味ネットワークを用いて、エラーの要因と、要因の確からしさを示す評価値と、要因に対して取り得る解決策とを示す評価情報を生成するエラー評価部と、エラー評価部によって生成された評価情報が示す評価値をもとに、エラーに対する対応策を決定する対応策決定部とを有する。本発明は、対応策決定部によって決定された対応策が評価情報によって示される解決策である場合、解決策にしたがってロボットの動作の手順を示すプランステップを生成するプランナを更に有する。本発明は、プランナによってプランステップが生成された場合、プランステップにしたがってロボットに動作を再開させ、エラー発生前に与えられた当初の目標である作業を完了するスケジュールを生成するスケジューラを更に有する。対応策決定部によって決定された対応策が、評価値を精査するための動作を実行させる策、又は、ロボットの動作を停止させる策である場合、スケジューラは、対応策決定部によって決定された対応策にしたがってロボットの動作に関連するスケジュールを生成する。
【発明の効果】
【０００８】
本発明によれば、ロボットにおいてエラーが発生した場合のロボットシステムの稼働率を向上させることができるという効果が得られる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかるロボットシステムの構成を示す図
【図２】実施の形態１における第１ロボットと第２ロボットとが部品を組み立てる様子を模式的に示す図
【図３】実施の形態１にかかるロボット行動計画システムが有するエラー評価部の構成を示す図
【図４】実施の形態１にかかるロボット行動計画システムにおけるエラー評価部が有する意味ネットワークマッチング部の動作の手順を示すフローチャート
【図５】あるロボットがワークを把持した状態で移動する動作を表現した概念グラフを示す図
【図６】実施の形態１にかかるロボット行動計画システムが有する対応策決定部の動作の手順を示す第１のフローチャート
【図７】実施の形態１にかかるロボット行動計画システムが有する対応策決定部の動作の手順を示す第２のフローチャート
【図８】実施の形態２にかかるロボットシステムの構成を示す図
【図９】実施の形態３にかかるロボット作業検証システムの構成を示す図
【図１０】実施の形態４にかかるロボット行動計画システムの構成を示す図
【図１１】実施の形態１にかかるロボット行動計画システムが有するエラー評価部、対応策決定部、プランナ及びスケジューラの少なくとも一部の機能がプロセッサによって実現される場合のプロセッサを示す図
【図１２】実施の形態１にかかるロボット行動計画システムが有するエラー評価部、対応策決定部、プランナ及びスケジューラの少なくとも一部が処理回路によって実現される場合の処理回路を示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかるロボット行動計画システム、ロボットシステム、ロボット作業検証システム及びロボット行動計画方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
＜ロボットシステムの構成＞
図１は、実施の形態１にかかるロボットシステム１の構成を示す図である。ロボットシステム１は、動作を実行する第１ロボット２Ａ及び第２ロボット２Ｂを有する。動作の例は、部品を組み立てる動作である。ロボットシステム１は、第１ロボット２Ａを動作させるための第１動作プログラム３１Ａを記憶していて、第１動作プログラム３１Ａをもとに、第１ロボット２Ａの動作についての指令を第１ロボット２Ａに出力する第１コントローラ３Ａを更に有する。
【００１２】
ロボットシステム１は、第２ロボット２Ｂを動作させるための第２動作プログラム３１Ｂを記憶していて、第２動作プログラム３１Ｂをもとに、第２ロボット２Ｂの動作についての指令を第２ロボット２Ｂに出力する第２コントローラ３Ｂを更に有する。第１ロボット２Ａは、第１コントローラ３Ａから出力される指令にしたがって動作を実行し、第２ロボット２Ｂは、第２コントローラ３Ｂから出力される指令にしたがって動作を実行する。
【００１３】
図２は、実施の形態１における第１ロボット２Ａと第２ロボット２Ｂとが部品を組み立てる様子を模式的に示す図である。更に言うと、図２は、第１ロボット２Ａ及び第２ロボット２Ｂが第１の組立動作Ｓ１、第２の組立動作Ｓ２及び第３の組立動作Ｓ３を順に実行する様子を模式的に示す図である。第１の組立動作Ｓ１、第２の組立動作Ｓ２及び第３の組立動作Ｓ３の各々は、部品を組み立てる動作であって、第１ロボット２Ａ及び第２ロボット２Ｂが実行する動作の例である。矢印は、第１の組立動作Ｓ１、第２の組立動作Ｓ２及び第３の組立動作Ｓ３が順に実行されることを示している。図２には、第１コントローラ３Ａ及び第２コントローラ３Ｂも示されている。
【００１４】
ロボットシステム１は、第１ロボット２Ａの内部に配置されていて第１ロボット２Ａの内部の状態を観測する第１内界センサ４Ａと、第２ロボット２Ｂの内部に配置されていて第２ロボット２Ｂの内部の状態を観測する第２内界センサ４Ｂとを更に有する。例えば、第１内界センサ４Ａは、第１ロボット２Ａの関節の角度及び位置を検出するためのエンコーダ、又は、第１ロボット２Ａの発熱を検出するための温度センサである。例えば、第２内界センサ４Ｂは、第２ロボット２Ｂの関節の角度及び位置を検出するためのエンコーダ、又は、第２ロボット２Ｂの発熱を検出するための温度センサである。
【００１５】
ロボットシステム１は、第１ロボット２Ａ及び第２ロボット２Ｂの各々の外部の状態を観測する外界センサ５を更に有する。例えば、外界センサ５は、第１ロボット２Ａの外部の物体と第１ロボット２Ａとの接点についての状態と、第２ロボット２Ｂの外部の物体と第２ロボット２Ｂとの接点についての状態とを観測する機能を有する。更に言うと、例えば、外界センサ５は、ロボットがワークを把持した際に当該ロボットの手の先に加わる力を検出するための力覚センサ、又は、ロボットとワークとの干渉の状態及び複数のロボットの干渉の状態を検出するためのカメラである。上記のロボットは第１ロボット２Ａ及び第２ロボット２Ｂの各々であり、上記の複数のロボットは第１ロボット２Ａ及び第２ロボット２Ｂであり、上記のワークは物体の例である。
【００１６】
ロボットシステム１は、第１ロボット２Ａ及び第２ロボット２Ｂが動作を実行する場合、第１ロボット２Ａ及び第２ロボット２Ｂの各々において、第１内界センサ４Ａ、第２内界センサ４Ｂ及び外界センサ５によって検出された値をもとに、エラーが発生したときの当該エラーを検出するエラー検出部６を更に有する。エラー検出部６は、第１ロボット２Ａ又は第２ロボット２Ｂにおいてエラーを検出した場合、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる。
【００１７】
例えば、エラー検出部６は、第１ロボット２Ａ又は第２ロボット２Ｂにかかる負担があらかじめ設定された許容上限値を超えた場合、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる。第１ロボット２Ａ又は第２ロボット２Ｂにかかる負担が許容上限値を超えた場合は、第１ロボット２Ａ又は第２ロボット２Ｂにおいてエラーが発生した場合の例である。
【００１８】
エラー検出部６は、公知のニューラルネットワークを用いて、第１内界センサ４Ａ、第２内界センサ４Ｂ及び外界センサ５によって検出された値をもとに異常を診断することができるニューラルネットワークを事前に学習していてもよい。その場合、エラー検出部６は、第１ロボット２Ａ及び第２ロボット２Ｂが動作を実行しているとき、ニューラルネットワークを用いて、第１内界センサ４Ａ、第２内界センサ４Ｂ及び外界センサ５によって検出された値をもとにエラーを検出する。公知のニューラルネットワークの例は、リカレントニューラルネットワーク（Recurrent  Neural  Network，ＲＮＮ）又は畳み込みニューラルネットワーク（Convolutional  Neural  Network，ＣＮＮ）である。
【００１９】
エラー検出部６は、第１ロボット２Ａ及び第２ロボット２Ｂの一方又は双方の内部に配置されてもよい。エラー検出部６が第１ロボット２Ａ及び第２ロボット２Ｂの各々の内部に配置される場合、エラー検出部６は以下の動作を行う。すなわち、第１ロボット２Ａの内部に配置されるエラー検出部６は、第１内界センサ４Ａ及び外界センサ５によって検出された値をもとに、第１ロボット２Ａにおいてエラーが発生した場合の当該エラーを検出する。第２ロボット２Ｂの内部に配置されるエラー検出部６は、第２内界センサ４Ｂ及び外界センサ５によって検出された値をもとに、第２ロボット２Ｂにおいてエラーが発生した場合の当該エラーを検出する。第１ロボット２Ａ及び第２ロボット２Ｂの各々の内部に配置されるエラー検出部６は、エラーを検出した場合、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる。
【００２０】
ロボットシステム１は、エラー検出部６によってエラーが検出されて第１ロボット２Ａ及び第２ロボット２Ｂの動作が停止した場合、当該エラーに対する対応策を決定するロボット行動計画システム７を更に有する。ロボット行動計画システム７は、決定された対応策にしたがって第１ロボット２Ａ及び第２ロボット２Ｂの各々の動作に関連するスケジュールを生成する。
【００２１】
エラー検出部６は、エラーを検出した場合、第１ロボット２Ａの動作の状態を示す情報である第１動作情報と、第２ロボット２Ｂの動作の状態を示す情報である第２動作情報とをロボット行動計画システム７に出力する。第１動作情報は、第１内界センサ４Ａ及び外界センサ５によって検出された値をもとにする情報である。第２動作情報は、第２内界センサ４Ｂ及び外界センサ５によって検出された値をもとにする情報である。
【００２２】
ロボット行動計画システム７は、第１ロボット２Ａ又は第２ロボット２Ｂにおいてエラーが発生して第１ロボット２Ａ及び第２ロボット２Ｂの動作が停止した場合、第１ロボット２Ａ及び第２ロボット２Ｂの各々の動作の状態を示す情報をもとに、当該エラーの要因と、当該要因の確からしさを示す評価値と、当該要因に対して取り得る解決策とを示す評価情報を生成するエラー評価部７１を有する。
【００２３】
具体的には、エラー評価部７１は、エラー検出部６から出力された第１動作情報及び第２動作情報を受け取り、第１動作情報及び第２動作情報の一方又は双方をもとに、第１ロボット２Ａ又は第２ロボット２Ｂにおいて発生したエラーの要因と、当該要因の確からしさを示す評価値と、当該要因に対して取り得る解決策とを示す評価情報を生成する。エラー評価部７１の構成については、図３を用いて後に再度説明する。
【００２４】
ロボット行動計画システム７は、エラー評価部７１によって生成された評価情報が示す評価値をもとに、エラーに対する対応策を決定する対応策決定部７２を更に有する。例えば、対応策決定部７２は、評価値があらかじめ設定された閾値より大きいか否かを判断し、評価値が閾値より大きいと判断した場合、エラーに対する対応策が評価情報によって示される解決策であると決定する。
【００２５】
例えば、対応策決定部７２は、評価情報が示す評価値が閾値以下であると判断した場合、評価値を精査するための動作を実行することが可能であるか否かを判断する。以下では、評価値を精査するための動作は「探索動作」と記載される場合がある。図６及び７では、評価値を精査するための動作は「探索動作」と記載されている。精査は、再評価を含む。探索動作の具体例については、後述する。
【００２６】
対応策決定部７２は、探索動作を実行することが可能であると判断した場合、エラーに対する対応策が探索動作を実行させる策であると決定する。対応策決定部７２は、探索動作を実行することが不可能であると判断した場合、エラーに対する対応策がロボットの動作を停止させる策であると決定する。上記のロボットは、第１ロボット２Ａ及び第２ロボット２Ｂである。探索動作の具体例については、後述する。
【００２７】
例えば、対応策決定部７２は、評価情報が示す評価値が閾値以下であると判断した場合、探索動作を実行することが可能であるか否かを判断することなく、エラーに対する対応策が第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる策であると決定してもよい。
【００２８】
ロボット行動計画システム７は、対応策決定部７２によって決定された対応策がエラー評価部７１によって生成された評価情報によって示される解決策である場合、当該解決策にしたがって第１ロボット２Ａ及び第２ロボット２Ｂの動作の手順を示すプランステップを生成するプランナ７３を更に有する。プランナ７３によって生成されるプランステップは、当該解決策を実現するためのものであって、第１ロボット２Ａ及び第２ロボット２Ｂの動作を再開させるためのものである。
【００２９】
ロボット行動計画システム７は、プランナ７３によってプランステップが生成された場合、プランステップにしたがって第１ロボット２Ａ及び第２ロボット２Ｂの各々に動作を再開させるためのスケジュールを生成するスケジューラ７４を更に有する。スケジューラ７４は、プランナ７３によってプランステップが生成された場合、すべてのプランステップがあらかじめ決められた順序についての制約を満たすスケジュールを生成する。
【００３０】
対応策決定部７２によって決定された対応策が、評価値を精査するための動作を実行させる策、又は、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる策である場合、スケジューラ７４は、対応策決定部７２によって決定された対応策にしたがって第１ロボット２Ａ及び第２ロボット２Ｂの動作に関連するスケジュールを生成する。
【００３１】
具体的には、エラーに対する対応策が探索動作を実行させる策であると対応策決定部７２によって決定された場合、スケジューラ７４は、探索動作を実行させるためのスケジュールを生成する。エラーに対する対応策が第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる策であると対応策決定部７２によって決定された場合、スケジューラ７４は、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させるスケジュールを生成する。
【００３２】
スケジューラ７４は、第１ロボット２Ａの動作についてのスケジュールを第１コントローラ３Ａに出力し、第２ロボット２Ｂに動作についてのスケジュールを第２コントローラ３Ｂに出力する。第１コントローラ３Ａは、スケジューラ７４から出力されたスケジュールにしたがって第１動作プログラム３１Ａを更新し、更新されたスケジュールをもとに、第１ロボット２Ａの動作についての指令を第１ロボット２Ａに出力する。第２コントローラ３Ｂは、スケジューラ７４から出力されたスケジュールにしたがって第２動作プログラム３１Ｂを更新し、更新されたスケジュールをもとに、第２ロボット２Ｂの動作についての指令を第２ロボット２Ｂに出力する。以下に、ロボット行動計画システム７の詳細を説明する。
【００３３】
＜意味ネットワークが用いられる場合のエラー評価部７１の構成＞
図３は、実施の形態１にかかるロボット行動計画システム７が有するエラー評価部７１の構成を示す図である。更に言うと、図３は、エラー評価部７１を実現する際に意味ネットワーク（Semantic  Network）が用いられる場合のエラー評価部７１の構成を示す図である。公知の意味ネットワークは、人間の知識構造に倣って言語の意味を計算機で表現するためのネットワークモデルである。ひとつの意味ネットワークは、言語における概念を表すノードと、概念の意味の関係を表すエッジとの組合せで構成される。
【００３４】
意味ネットワークが用いられる場合、エラー評価部７１は、エラー検出部６から出力された第１動作情報及び第２動作情報を受け取って、第１ロボット２Ａ及び第２ロボット２Ｂの各々の動作の種類に対応するエラーを記述することが可能な意味ネットワークを構築してエラーの要因を抽出する意味ネットワークマッチング部７５を有する。
【００３５】
例えば、意味ネットワークマッチング部７５は、第１ロボット２Ａ及び第２ロボット２Ｂの各々の移動動作又はワークの把持動作といった第１ロボット２Ａ及び第２ロボット２Ｂの各々の動作状態を表現する意味ネットワークを構築し、エラーの要因を示すノードを抽出する。意味ネットワークマッチング部７５は、抽出した要因に対して取り得る解決策を対応策決定部７２に出力する。図３には、対応策決定部７２も示されている。
【００３６】
意味ネットワークが用いられる場合、エラー評価部７１は、エラー検出部６から出力された第１動作情報及び第２動作情報を受け取って、第１動作情報及び第２動作情報と意味ネットワークマッチング部７５によって抽出されたエラーの要因とをもとに、当該要因の確からしさを示す評価値を算出する評価値算出部７６を更に有する。第１動作情報及び第２動作情報は、観測情報の例である。
【００３７】
例えば、評価値算出部７６は、意味ネットワークマッチング部７５によって抽出されたエラーの要因を示すノードに対して、第１動作情報及び第２動作情報の一方又は双方をもとに、意味ネットワークが実際のエラーの要因の確からしさを示す確率である評価値を算出する。評価値算出部７６は、算出された評価値を示す情報を対応策決定部７２に出力する。
【００３８】
上述のように、意味ネットワークが用いられる場合、エラー評価部７１は、観測情報に対して不確実性を持つエラーの要因をロボットの種類にあわせて推定し、有効と考えられる解決策を選択することについての判断を行うための情報を提供することができる。
【００３９】
＜意味ネットワークマッチング部７５の動作＞
図４は、実施の形態１にかかるロボット行動計画システム７におけるエラー評価部７１が有する意味ネットワークマッチング部７５の動作の手順を示すフローチャートである。意味ネットワークマッチング部７５は、エラーが検出された時の第１動作情報及び第２動作情報を取得する（Ｓ１１）。つまり、ステップＳ１１において、意味ネットワークマッチング部７５は、エラーが検出された時の第１ロボット２Ａ及び第２ロボット２Ｂの各々が実行しようとしていた動作の情報を取得する。
【００４０】
意味ネットワークマッチング部７５は、ステップＳ１１において取得した情報が示す動作の種類に対応するエラーの状態を記述する意味ネットワークのフレームを取得する（Ｓ１２）。例えば、意味ネットワークのフレームは、公知の概念グラフ（Conceptual  Graph）のフレームである。概念グラフは、言語体系が持つ複数の格の関係を規定した関係ノード（Relation  Node）と概念を表す複数の概念ノード（Concept  Node）とを接続することで構成されるひとつの有向グラフである。
【００４１】
図５は、あるロボットがワークを把持した状態で移動する動作を表現した概念グラフを示す図である。動作の主体を表す格を「ＡＧＮＴ」、動作の主体が保有する物体を表す格を「ＰＯＳＳ」、物体の現在の状態を表す格を「ＡＴＴＲ」、動作の影響を受ける物体を表す格を「ＥＦＣＴ」と定義される。この場合、「ｎｏｒｍａｌ←（ＡＴＴＲ）←ｗｏｒｋｐｉｅｃｅ  Ｙ←（ＰＯＳＳ）←ｒｏｂｏｔ  Ａ←（ＡＧＮＴ）←ｍｏｖｅ→（ＥＦＣＴ）→ｗｏｒｋｐｉｅｃｅ  Ｚ」というグラフが構築される。当該グラフは、「ロボットＡが正常な状態で把持されているワークＹを持って移動するとワークＺに干渉する」というひとつの状態を表現している。
【００４２】
意味ネットワークマッチング部７５は、「ｒｏｂｏｔ  Ａ」、「ｗｏｒｋｐｉｅｃｅ  Ｙ」、「ｗｏｒｋｐｉｅｃｅ  Ｚ」、「ｍｏｖｅ」及び「ｎｏｒｍａｌ」といった具体的な各概念ノードの値を、第１ロボット２Ａ及び第２ロボット２Ｂの各々の動作プログラムと第１動作情報及び第２動作情報とをもとに決定する（Ｓ１３）。
【００４３】
第１ロボット２Ａ及び第２ロボット２Ｂの各々の有限個の種類の動作の各々についての概念グラフのフレームは、意味ネットワークマッチング部７５に事前に設定される。例えば、「ｍｏｖｅ」に相当する移動動作でエラーが検出された場合には「ＡＧＮＴ」、「ＰＯＳＳ」、「ＡＴＴＲ」及び「ＥＦＣＴ」の格を用いるフレームが取得されることが、意味ネットワークマッチング部７５に事前に設定される。
【００４４】
意味ネットワークマッチング部７５は、「ワークを正しく把持することができていなかった」、「他のロボットと干渉していた」又は「他のワークが障害物になっていた」といったエラーの要因を示すノードを抽出する（Ｓ１４）。図５の例では、意味ネットワークマッチング部７５は、ロボットＡが動作プログラムの通りに移動することができなかったエラーの要因を示すノードとして「ｍｏｖｅ→（ＥＦＣＴ）→ｗｏｒｋｐｉｅｃｅ  Ｚ」を抽出する。
【００４５】
意味ネットワークマッチング部７５は、エラーの要因を示すノードを参照し、例えば「障害物となっているワークＺを取り除くことでエラーの状態を解決する」といった解決策を選択する（Ｓ１５）。意味ネットワークマッチング部７５は、上述の例のようにワークを操作する作業において汎用的で事前に設定された複数の解決策のなかからエラーの要因に対する解決策を選択してもよい。意味ネットワークマッチング部７５は、特定の作業において有効な迂回経路を選択するという事前に設定されなかった新たな解決策を選択してもよい。
【００４６】
＜評価値算出部７６の動作＞
意味ネットワークマッチング部７５によって抽出されたノードが示すエラーの要因は、第１内界センサ４Ａ、第２内界センサ４Ｂ及び外界センサ５の各々の性能による誤検知と、第１ロボット２Ａ及び第２ロボット２Ｂによる作業の成否を判断する境界の曖昧さとの一方又は双方により、一定の確率で実際のエラーに適合しない可能性がある。意味ネットワークマッチング部７５によって選択される解決策は実際のエラーに適合した場合にのみ有効であるため、評価値算出部７６は、エラーの要因の確からしさを示す評価値を算出する。
【００４７】
評価値算出部７６は、例えば公知のベイズ推論を用いて評価値を算出する。ベイズ推論では、ある事象Ｘが発生する事前分布Ｐ（Ｘ）と、ある動作が実行された場合の観測値Ｄが得られる尤度Ｐ（Ｄ｜Ｘ）とが用いられ、事後確率Ｐ（Ｘ｜Ｄ）が次式（１）により算出される。
Ｐ（Ｘ｜Ｄ）＝Ｐ（Ｄ｜Ｘ）Ｐ（Ｘ）／ΣＸＰ（Ｄ｜Ｘ）Ｐ（Ｘ）  （１）
【００４８】
実施の形態１において、意味ネットワークのフレーム毎のエラーの要因の事前分布Ｐ（Ｘ）とエラーが発生した場合に得られる観測値Ｄの尤度Ｐ（Ｄ｜Ｘ）とは、評価値算出部７６に設定される。事前分布Ｐ（Ｘ）は、経験的に想定されるエラーの確率であってもよいし、エラーの履歴についてのデータをもとにしたエラーの確率であってもよい。尤度Ｐ（Ｄ｜Ｘ）は、第１ロボット２Ａ及び第２ロボット２Ｂの試行可能な動作に対して故意にエラーの要因を与えた場合のデータが事前に取得されて当該データをもとに定められてもよいし、第１ロボット２Ａ及び第２ロボット２Ｂが動作を試行した際のデータを参照することによって定められてもよい。
【００４９】
評価値算出部７６は、取得された観測値Ｄである第１動作情報及び第２動作情報をもとに、上記の式（１）を用いて事後確率Ｐ（Ｘ｜Ｄ）を算出し、意味ネットワークマッチング部７５によって抽出されたノードが示すエラーの要因の確からしさを示す評価値を算出する。評価値算出部７６は、観測値Ｄを取得しない場合、事前分布Ｐ（Ｘ）を評価値とする。
【００５０】
例えば、ワークの把持状態を示すノードが異常を示す事前分布について、Ｐ（Ｘ＝ａｂｎｏｒｍａｌ）＝０．８０と、Ｐ（Ｘ＝ｎｏｒｍａｌ）＝０．２０とを仮定する。ロボットがワークを一定の力で当て面に押し付ける動作が用意されており、ロボットがワークを押し付けた場合の力センサによって検出された値が観測値Ｄであると仮定する。力センサは、外界センサ５の例である。把持状態が正常である場合に許容値を超える力ＤＳが観測される尤度Ｐ（Ｄ＝ＤＳ｜Ｘ＝ｎｏｒｍａｌ）について、尤度Ｐ（Ｄ＝ＤＳ｜Ｘ＝ｎｏｒｍａｌ）＝０．３０を仮定すると共に、把持状態が異常である場合に許容値を超える力ＤＳが観測される尤度Ｐ（Ｄ＝ＤＳ｜Ｘ＝ａｂｎｏｒｍａｌ）について、尤度Ｐ（Ｄ＝ＤＳ｜Ｘ＝ａｂｎｏｒｍａｌ）＝０．９０を仮定する。
【００５１】
この場合、上記の式（１）より、把持状態が異常である事後確率は、Ｐ（Ｘ＝ａｂｎｏｒｍａｌ｜Ｄ＝ＤＳ）＝（０．９０×０．８０）÷（０．３０×０．２０＋０．９０×０．８０)≒０．９２となる。上述の例では、探索動作が実行された後に観測値Ｄを得ることで、意味ネットワークが示す把持状態の異常のエラーの要因の確からしさを示す評価値は０．８０から０．９２に更新される。
【００５２】
＜対応策決定部７２の動作＞
図６は、実施の形態１にかかるロボット行動計画システム７が有する対応策決定部７２の動作の手順を示す第１のフローチャートである。対応策決定部７２は、エラー評価部７１によって生成された評価情報が示す評価値を取得する（Ｓ２１）。エラー評価部７１を実現する際に意味ネットワークが用いられる場合、ステップＳ２１において、対応策決定部７２は、評価値算出部７６によって算出された評価値を取得する。評価値は、エラーの要因の確からしさを示す値である。
【００５３】
対応策決定部７２は、評価値があらかじめ決められた閾値より大きいか否かを判断する（Ｓ２２）。例えば、対応策決定部７２は、ユーザによって入力された閾値を受け付けて記憶する機能を有しており、評価値が記憶した閾値より大きいか否かを判断する。例えば、ユーザはプログラミングツールを用いて閾値をロボット行動計画システム７に入力する。閾値が大きいほど、対応策決定部７２は、エラー評価部７１によって生成された評価情報が示す解決策を採用することに対して慎重になる。対応策決定部７２がユーザによって入力された閾値を用いる場合、ユーザは、対応策決定部７２が解決策を採用するか否かを判断する際の基準を決定することができる。
【００５４】
対応策決定部７２は、評価値が閾値より大きいと判断した場合（Ｓ２２でＹｅｓ）、エラーに対する対応策がエラー評価部７１によって生成された評価情報によって示される解決策であると決定する（Ｓ２３）。つまり、ステップＳ２３において、対応策決定部７２は、評価情報が示す解決策を採用する。対応策決定部７２は、エラーの状態から復旧するための目標を定め、解決策と目標とをプランナ７３に出力する（Ｓ２４）。
【００５５】
対応策決定部７２は、評価値が閾値以下であると判断した場合（Ｓ２２でＮｏ）、評価値を精査するための動作を実行することが可能であるか否かを判断する（Ｓ２５）。上述の通り、評価値を精査するための動作は「探索動作」であり、図６では「探索動作」という用語が用いられている。例えば、ステップＳ２５において、対応策決定部７２は、ロボットシステム１の１サイクルの作業中に探索動作を実行した回数があらかじめ決められた試行回数より少ない場合、探索動作を実行することが可能であると判断する。例えば、ステップＳ２５において、対応策決定部７２は、ロボットシステム１の１サイクルの作業中に探索動作を実行した回数が試行回数に達した場合、探索動作を実行することは不可能であると判断する。
【００５６】
上述の試行回数は、探索動作を実行することが可能であるか否かを判断するための数である。例えば、対応策決定部７２は、ユーザによって入力された試行回数を受け付けて記憶する機能を有しており、記憶した試行回数を用いて、探索動作を実行することが可能であるか否かを判断する。具体的には、対応策決定部７２は、ロボットシステム１の１サイクルの作業中に探索動作を実行した回数が記憶した試行回数に達しているか否かを判断する。対応策決定部７２がユーザによって入力された試行回数を用いる場合、ユーザは、対応策決定部７２が探索動作を実行させる策を採用するか否かを判断する際の基準を決定することができる。
【００５７】
例えば、探索動作は、ワークを一定の力で当て面に押し付けて把持状態を確認する動作、又は、カメラで従前の視点と別の視点からの撮影を行って干渉状態を確認する動作である。評価値算出部７６を説明する際に述べたように、探索動作が実行された後の観測値によって、エラーの要因の確からしさを示す評価値が更新され、対応策決定部７２がステップＳ２２の動作を再度行う際の判断の結果が変わることがある。第１動作情報及び第２動作情報は、観測値の例である。
【００５８】
対応策決定部７２は、探索動作を実行することが可能であると判断した場合（Ｓ２５でＹｅｓ）、エラーに対する対応策が探索動作を実行させる策であると決定し、探索動作を実行させる指示をスケジューラ７４に出力する（Ｓ２６）。
【００５９】
対応策決定部７２は、探索動作を実行することが不可能であると判断した場合（Ｓ２５でＮｏ）、エラーに対する対応策が第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる策であると決定し、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる指示をスケジューラ７４に出力する（Ｓ２７）。ステップＳ２７の動作は、作業を中断するための動作であって、エラーの要因の不確実性を許容することができず、第１ロボット２Ａ及び第２ロボット２Ｂに動作を実行させることができない状況において、人が介入してエラーの状態から復旧するまで第１ロボット２Ａ及び第２ロボット２Ｂを安全な状態で停止させておくための動作である。例えば、第１動作プログラム３１及び第２動作プログラム３１Ｂを初期状態に戻す動作が、作業を中断するための動作に該当する。
【００６０】
上述の通り、対応策決定部７２は、評価情報が示す評価値と閾値とを比較することにより、エラーの状態を悪化させない策を提示することができる。上述のことから理解することができるように、図６の第１のフローチャートが示す例では、対応策決定部７２は、実際に発生したエラーの要因について確信が持てない場合、探索動作を実行することによって追加の情報を得た上で、見込みのあるエラーの解決策を選択することが合理的な対応策であると判断する。対応策決定部７２は、追加の情報を得るためのコストが比較的大きい場合、又は、エラーの要因を確信することができる見込みがない場合、やみくもにエラーに対する行動計画を立てるよりも、第１ロボット２Ａ及び第２ロボット２Ｂを初期状態にリセットすることが合理的な対応策であると判断する。
【００６１】
図７は、実施の形態１にかかるロボット行動計画システム７が有する対応策決定部７２の動作の手順を示す第２のフローチャートである。対応策決定部７２は、図６の第１のフローチャートを用いて説明した探索動作を実行することが可能であるか否かを判断するステップＳ２５の動作を実行しなくてもよい。その場合、図７の第２のフローチャートが示す通り、対応策決定部７２は、評価値が閾値以下であると判断した場合（Ｓ２２でＮｏ）、エラーに対する対応策が第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる策であると決定し、第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる指示をスケジューラ７４に出力する（Ｓ２７）。
【００６２】
エラーが発生した場合の第１ロボット２Ａ及び第２ロボット２Ｂの復旧動作は、特定の要因に対して有効である一方、別の要因に対しては実行してもエラーが解消しない、又は、復旧することが更に困難な状態にすることがある。そこで、上述のように、対応策決定部７２は、エラーの要因の確からしさを示す評価値をもとに、後段のプランナ７３及びスケジューラ７４の動作を制御する。これにより、自律的な復旧動作の効果とリスクとを考慮した上での行動計画を第１ロボット２Ａ及び第２ロボット２Ｂが実行する動作のスケジュールに反映させることができる。
【００６３】
＜プランナ７３の動作＞
プランナ７３は、対応策決定部７２から出力されたエラーの状態から復旧するための解決策と目標とを受け取った場合、エラーの状態から復旧するために必要なプランステップを導出するためのプランニングを実行する。上記の目標は、プランステップのプランニングの目標である。
【００６４】
ロボット及び人工知能におけるプランニングは、動作の主体となるロボットの状態と操作対象のワークの状態とが定義された環境において、与えられた初期状態から目標の状態を達成するまでの、状態を遷移させる操作子（Operator）の系列をプランとして生成することであると定義される。実施の形態１では、第１ロボット２Ａ及び第２ロボット２Ｂが取り得る動作が操作子に相当する。プランを構成する個々の操作子は、プランステップである。
【００６５】
エラーが発生したことによりロボットが停止した時点を新たな初期状態として当初の目標の状態を達成するまでのプランを生成する手法の例は、公知の半順序プランニング（Partial  Order  Planning）の手法である。半順序プランニングでは、複数の副目標（Sub-Goals）で構成されるひとつプランのなかで、独立な副目標を達成する操作子の実行の手順の任意性が保持される。そのため、新たに導出されるプランステップと既存のプランステップとの間の因果関係を監視及び更新することができる。プランナ７３は、第１ロボット２Ａ及び第２ロボット２Ｂに与えられた当初の作業の目標の状態が達成されるまでに必要な複数の副目標を実現するプランステップと、複数のプランステップの実行の順序を制約する情報とを生成する。
【００６６】
具体的には、プランナ７３は、対応策決定部７２から出力された目標を受け取った場合、エラーが発生したことにより第１ロボット２Ａ及び第２ロボット２Ｂの動作が停止した時点を新たな初期状態に設定し、当初の目標の状態を達成するまでに必要とされる第１ロボット２Ａ及び第２ロボット２Ｂの動作を示すプランステップを生成する。加えて、プランナ７３は、プランステップとプランステップを実行する際の順序の制約とを含むプランを生成する。プランナ７３は、生成されたプランをスケジューラ７４に出力する。このように、プランナ７３は、エラーの状態から復旧するためのプランステップを生成し、それにより第１ロボット２Ａ及び第２ロボット２Ｂの動作が当初の作業の目標の状態に達するまでプランを管理することができる。
【００６７】
＜スケジューラ７４の動作＞
スケジューラ７４は、プランがプランナ７３から出力された場合、プランを受け取って、復旧のためのすべてのプランステップを含むスケジュールを、実行の順序の制約を満たして生成する。スケジューラ７４は、生成されたスケジュールを第１コントローラ３Ａ及び第２コントローラ３Ｂに出力する。当該スケジュールは、第１ロボット２Ａ及び第２ロボット２Ｂの新たな動作プログラムである。
【００６８】
スケジューラ７４は、対応策決定部７２から出力された探索動作を実行させる指示又は第１ロボット２Ａ及び第２ロボット２Ｂの動作を停止させる指示を受け取った場合、指示にしたがった動作のステップを含むスケジュールを生成し、生成されたスケジュールを第１コントローラ３Ａ及び第２コントローラ３Ｂに出力する。当該スケジュールは、第１ロボット２Ａ及び第２ロボット２Ｂの新たな動作プログラムである。
【００６９】
プランナ７３から出力されたプランステップは、実行の順序の制約を満たす限りにおいて、どのロボットで実行されるかということが指定されていなくてもよい。例えば、エラーの状態から復旧するために障害物となっているワークを移動させるプランステップが必要である場合、手の空いているいずれのロボットが障害物を移動させても目標を達成することができる。この場合、復旧の過程を経て当初の目標である作業を完了するまでのコストが最小となるように、スケジューラ７４は、プランステップを第１ロボット２Ａ及び第２ロボット２Ｂに割り当てるスケジュールを生成する。
【００７０】
例えば、スケジューラ７４は、ロボットシステム１の総作業時間及び総消費エネルギが最小となるスケジュールを生成する。例えば、スケジューラ７４は、公知のＡ＊アルゴリズム（A-star  Algorithm)による最適スケジューリングの手法を用いて、実行の順序の制約を満たしつつ時間及びエネルギについてのコストが最小となるスケジュールを生成する。Ａ＊アルゴリズムは、グラフ探索アルゴリズムである。最適スケジューリングの問題では、複数のプランステップの各々がいずれかのロボットに割り当てられることを状態ノードの遷移として扱われる。
【００７１】
例えば、出発時のノードから現在のノードに至るまでに要したコストと、現在のノードから目標のノードに至るまでの推定されるコストとの和をヒューリスティック関数として、目標のノードまでの総コストが最小となる経路が導出される。実施の形態１では、例えばプランステップに対応するロボットの動作の実行時間をコストとして定義することができる。
【００７２】
あるプランステップが第１ロボット２Ａと第２ロボット２Ｂとのうちの動作可能ないずれかのロボットに割り当てられた場合、当該プランステップの動作が完了する時刻を現在のノードに至るまでに要したコストと定義する。当該時刻でまだ割り当てられていないプランステップがいずれのロボットでも待ち時間を発生させずに割り付けられると仮定した場合に、すべてのプランステップが完了する時刻と、当該時刻で割り当て済みのプランステップが完了する時刻との差分を、目標のノードに至るまでの推定されるコストと定義する。
【００７３】
実際には、特定のステップの動作が別のステップの動作が完了するまで実行することができないという順序の制約により、ロボットの待ち時間が発生し得る。上述の設定において、スケジューラ７４は、探索動作の各ステップで上記のヒューリスティック関数が最小となる状態にノードを進ませることで、すべてのプランステップの動作が完了するまでの時間を最小とするスケジュールを生成することができる。
【００７４】
上述のように、スケジューラ７４は、必要なプランステップを第１ロボット２Ａ及び第２ロボット２Ｂに割り当てる場合、実行される動作の順序の制約を満たしつつ、第１ロボット２Ａ及び第２ロボット２Ｂの動作が完了するまでの時間及びエネルギのコストが最小となるスケジュールを生成することができる。第１ロボット２Ａ及び第２ロボット２Ｂは複数のロボットの例であり、第１ロボット２Ａ又は第２ロボット２Ｂはエラーが発生したロボットである。
【００７５】
なお、作業を行うロボットが１台だけである場合、プランナ７３から出力されたプランステップが当該１台のロボットに割り当てられるため、別のロボットが特定のプランステップの動作が完了するまで待機する待ち時間は発生しない。この場合、スケジューラ７４は、例えば複数の地点への移動の順序を最適化の対象とし、総移動時間又は総移動距離が最小となるスケジュールを最適なスケジュールとして生成する。
【００７６】
実行の順序の制約を満たしつつ特定の評価関数を最大又は最小にするスケジュールを生成するための手法は、Ａ＊アルゴリズムに限定されない。Ａ＊アルゴリズムの代わりに、公知の組合せ最適化手法である遺伝的アルゴリズム（Genetic  Algorithm）、粒子群最適化（Particle  Swarm  Optimization，ＰＳＯ)又はベイズ最適化（Bayesian  Optimization）が用いられてもよい。
【００７７】
例えば、遺伝的アルゴリズムが用いられる場合、スケジューラ７４は、プランステップが第１ロボット２Ａ及び第２ロボット２Ｂにランダムに割り当てられたスケジュールを初期状態として複数生成し、順序の制約を満たすスケジュールのなかで評価値が最良のものを親として次の世代のスケジュールの候補を生成する、というステップをあらかじめ決められた回数繰り返す。これにより、スケジューラ７４は最良のスケジュールを探索することができる。
【００７８】
＜エラー評価部７１のその他の構成＞
上述した例では、検出されたエラーの要因の不確実性を考慮してエラーの状態から復旧するためのスケジュールを導出する際、対応策決定部７２が意味ネットワークによって示されたエラーの要因の確からしさを示す評価値をもとに、エラーに対する対応策を決定するための判定を行う。
【００７９】
対応策決定部７２が判定を行うために必要な評価値を算出するエラー評価部７１の構成は、上述の意味ネットワークマッチング部７５と評価値算出部７６とを有する構成に限定されない。エラー評価部７１は、評価値を算出する場合、依存関係のある事象をグラフ構造で表現すると共に変数の関係を条件つきの確率で評価する手法を用いてもよい。例えば、エラー評価部７１は、公知のベイジアンネットワーク（Bayesian  Network）又は決定木（Decision  Tree）を構築して観測情報をもとにエラーの要因を評価してもよい。
【００８０】
エラー評価部７１は、評価値を算出する場合、エラーが検出された時の状態が事前に学習された正常系からどれだけ乖離しているかを判断してエラーの要因の確からしさを示す評価値を算出してもよい。その場合、エラー評価部７１は、公知のガウス過程（Gaussian  Process)又はニューラルネットワーク（Neural  Network)を用いてもよい。
【００８１】
上述の通り、実施の形態１に係るロボット行動計画システム７は、第１ロボット２Ａと第２ロボット２Ｂとのうちの一方又は双方においてエラーが発生して第１ロボット２Ａ及び第２ロボット２Ｂの動作が停止した場合、エラーの要因の確からしさを示す評価値をもとに、エラーに対する対応策を決定する。ロボット行動計画システム７は、対応策が評価値を示す評価情報によって示される解決策であると決定した場合、当該解決策にしたがって第１ロボット２Ａ及び第２ロボット２Ｂの動作の手順を示すプランステップを生成し、プランステップにしたがって第１ロボット２Ａ及び第２ロボット２Ｂに動作を再開させるためのスケジュールを生成する。ロボット行動計画システム７は、評価値をもとに決定した対応策が評価値を精査するための動作を実行させる策である場合、評価値を精査するための動作を実行させる策にしたがって第１ロボット２Ａ及び第２ロボット２Ｂの動作に関連するスケジュールを生成する。
【００８２】
上記の解決策にしたがったスケジュールが生成された場合、エラーが解消されて第１ロボット２Ａ及び第２ロボット２Ｂは動作を再開する。上記の評価値を精査するための動作を実行させる策にしたがったスケジュールが生成された場合、評価値が見直され、それによりエラーが解消される可能性がある。つまり、ロボット行動計画システム７が用いられれば、第１ロボット２Ａと第２ロボット２Ｂとのうちの一方又は双方においてエラーが発生した場合、人に負担をかけずにエラーが解決する可能性がある。すなわち、ロボット行動計画システム７は、第１ロボット２Ａと第２ロボット２Ｂとのうちの一方又は双方においてエラーが発生した場合のロボットシステム１の稼働率を向上させることができる。
【００８３】
上述した実施の形態１では、ロボットシステム１は、第１ロボット２Ａ及び第２ロボット２Ｂの２台のロボットを有する。しかしながら、ロボットシステム１は、１台のロボットのみを有してよい。具体的には、ロボットシステム１は第１ロボット２Ａだけを有してもよい。ロボットシステム１は、第１ロボット２Ａだけを有する場合、第１コントローラ３Ａのみを有し、第２コントローラ３Ｂを有しなくてもよい。ロボットシステム１は、第１ロボット２Ａだけを有する場合、第１内界センサ４Ａのみを有し、第２内界センサ４Ｂを有しなくてもよい。
【００８４】
ロボットシステム１は、３台以上のロボットを有してもよいし、３個以上のコントローラを有してもよいし、３個以上の内界センサを有してもよいし、２個以上の外界センサを有してもよい。
【００８５】
ロボットシステム１が第１ロボット２Ａだけを有する場合、ロボット行動計画システム７では、エラー評価部７１は、第１ロボット２Ａにおいてエラーが発生して第１ロボット２Ａの動作が停止した場合、第１ロボット２Ａの動作の状態を示す情報をもとに、エラーの要因と、当該要因の確からしさを示す評価値と、当該要因に対して取り得る解決策とを示す評価情報を生成する。対応策決定部７２は、第１ロボット２Ａについて、エラー評価部７１によって生成された評価情報が示す評価値をもとに、エラーに対する対応策を決定する。
【００８６】
プランナ７３は、対応策決定部７２によって決定された対応策が評価情報によって示される解決策である場合、当該解決策にしたがって第１ロボット２Ａの動作の手順を示すプランステップを生成する。スケジューラ７４は、プランナ７３によってプランステップが生成された場合、プランステップにしたがって第１ロボット２Ａに動作を再開させるためのスケジュールを生成する。スケジューラ７４は、対応策決定部７２によって決定された対応策が、評価値を精査するための動作を実行させる策、又は、第１ロボット２Ａの動作を停止させる策である場合、対応策決定部７２によって決定された対応策にしたがって第１ロボット２Ａの動作に関連するスケジュールを生成する。
【００８７】
意味ネットワークマッチング部７５は、第１ロボット２Ａの動作の種類に対応するエラーを記述することが可能な意味ネットワークを構築してエラーの要因を抽出する。評価値算出部７６は、当該要因の根拠となる観測情報を取得し、観測情報と意味ネットワークマッチング部７５によって抽出された要因とをもとに、評価値を算出する。観測情報は、第１ロボット２Ａの動作の状態を示す情報である。
【００８８】
対応策決定部７２は、エラーに対する対応策を決定する場合、まず、評価値があらかじめ決められた閾値より大きいか否かを判断する。対応策決定部７２は、評価値が閾値より大きいと判断した場合、対応策が評価情報によって示される解決策であると決定する。対応策決定部７２は、評価値が閾値以下であると判断した場合、評価値を精査するための動作を実行することが可能であるか否かを判断する。
【００８９】
対応策決定部７２は、評価値を精査するための動作を実行することが可能であると判断した場合、対応策が評価値を精査するための動作を実行させる策であると決定する。対応策決定部７２は、評価値を精査するための動作を実行することが不可能であると判断した場合、対応策が第１ロボット２Ａの動作を停止させる策であると決定する。
【００９０】
対応策決定部７２は、評価値が閾値より大きいと判断した場合、評価値を精査するための動作を実行することが可能であるか否かを判断することなく、対応策が第１ロボット２Ａの動作を停止させる策であると決定してもよい。
【００９１】
対応策決定部７２は、上記の閾値と、評価値を精査するための動作を実行することが可能であるか否かを判断するための試行回数であって第１ロボット２Ａに許可された動作の試行回数とを受け付けて記憶する機能を有してもよい。その場合、対応策決定部７２は、評価値が記憶した閾値より大きいか否かを判断し、記憶した試行回数を用いて、評価値を精査するための動作を実行することが可能であるか否かを判断する。
【００９２】
対応策決定部７２は、プランステップのプランニングの目標をプランナ７３に出力する機能を有してもよい。その場合、プランナ７３は、対応策決定部７２から出力された目標を受け取ったとき、エラーが発生したことにより第１ロボット２Ａの動作が停止した時点を新たな初期状態に設定し、当初の目標状態を達成するまでに必要とされる第１ロボット２Ａの動作を示すプランステップを生成すると共に、プランステップとプランステップを実行する際の順序の制約とを含むプランを生成する。
【００９３】
エラー検出部６は、第１内界センサ４Ａ及び外界センサ５によって検出された値をもとに異常を診断することができるニューラルネットワークを事前に学習していてもよい。その場合、エラー検出部６は、第１ロボット２Ａが動作を実行しているとき、ニューラルネットワークを用いて、第１内界センサ４Ａ及び外界センサ５によって検出された値をもとに、第１ロボット２Ａにおいて発生したエラーを検出する。
【００９４】
実施の形態２．
図８は、実施の形態２にかかるロボットシステム１Ａの構成を示す図である。実施の形態２では、実施の形態１との相違点を主に説明する。ロボットシステム１Ａは、実施の形態１にかかるロボットシステム１が有する第１コントローラ３Ａに代わりに第１コントローラ３Ｃを有し、ロボットシステム１が有する第２コントローラ３Ｂに代わりに第２コントローラ３Ｄを有する。第１コントローラ３Ｃ及び第２コントローラ３Ｄの各々は、実施の形態１にかかるロボットシステム１が有するロボット行動計画システム７を有する。
【００９５】
第１コントローラ３Ｃは、第１動作プログラム３１Ａを記憶すると共に、第２コントローラ３Ｄと通信を行う第１通信部３２Ａを有する。第２コントローラ３Ｄは、第２動作プログラム３１Ｂを記憶すると共に、第１コントローラ３Ｃと通信を行う第２通信部３２Ｂを有する。
【００９６】
実施の形態２では、エラー検出部６は、第１ロボット２Ａと第２ロボット２Ｂとのうちの一方のロボットにおけるエラーを検出した場合、エラーが検出されたロボットに指令を出力するコントローラに第１動作情報及び第２動作情報を出力する。例えば、エラー検出部６は、第１ロボット２Ａにおけるエラーを検出した場合、第１コントローラ３Ｃに第１動作情報及び第２動作情報を出力する。第１動作情報及び第２動作情報を受け取ったコントローラが有するロボット行動計画システム７は、実施の形態１において説明したようにスケジュールを生成する。
【００９７】
第１ロボット２Ａにおいてエラーが発生した場合、第１コントローラ３Ｃが有するロボット行動計画システム７は、生成されたスケジュールを第１通信部３２Ａに出力する。第１通信部３２Ａは、ロボット行動計画システム７から出力されたスケジュールを受け取って、受け取ったスケジュールを第２コントローラ３Ｄが有する第２通信部３２Ｂに出力する。第２ロボット２Ｂにおいてエラーが発生した場合、第２コントローラ３Ｄが有するロボット行動計画システム７は、生成されたスケジュールを第２通信部３２Ｂに出力する。第２通信部３２Ｂは、ロボット行動計画システム７から出力されたスケジュールを受け取って、受け取ったスケジュールを第１コントローラ３Ｃが有する第１通信部３２Ａに出力する。
【００９８】
ロボット行動計画システム７によって生成されたスケジュールは、第１ロボット２Ａ及び第２ロボット２Ｂの各々の動作プログラムを変更するものである場合がある。そのため、第１通信部３２Ａは第１コントローラ３Ｃが有するロボット行動計画システム７によって生成されたスケジュールを第２通信部３２Ｂに出力する。第２通信部３２Ｂは第２コントローラ３Ｄが有するロボット行動計画システム７によって生成されたスケジュールを第１通信部３２Ａに出力する。これにより、第１コントローラ３Ｃ及び第２コントローラ３Ｄの各々は、同一のスケジュールを共有することができる。その結果、第１動作プログラム３１Ａ及び第２動作プログラム３１Ｂは、同期して変更される。
【００９９】
すなわち、実施の形態２では、エラー検出部６が第１ロボット２Ａと第２ロボット２Ｂとのうちのエラーを検出したロボットに指令を出力するコントローラのみに第１動作情報及び第２動作情報を出力するが、実施の形態２に係るロボットシステム１Ａは、第１動作プログラム３１Ａ及び第２動作プログラム３１Ｂを同期して変更することができる。
【０１００】
上述した実施の形態２では、図８に示される通り、第１コントローラ３Ｃ及び第２コントローラ３Ｄの各々がロボット行動計画システム７を有する。しかしながら、第１コントローラ３Ｃと第２コントローラ３Ｄとのうちの一方のコントローラのみがロボット行動計画システム７を有してもよい。この場合においても、第１通信部３２Ａと第２通信部３２Ｂとが通信を行うことにより、ロボット行動計画システム７によって生成されたスケジュールは、第１コントローラ３Ｃ及び第２コントローラ３Ｄで共有される。その結果、第１動作プログラム３１Ａ及び第２動作プログラム３１Ｂは、同期して変更される。
【０１０１】
なお、ロボットシステム１Ａは、３台以上のロボットと、３個以上のコントローラとを有してもよい。その場合、３台以上のロボットの各々がいずれかの１個のコントローラに対応し、３個以上のコントローラの各々がいずれかの１台のロボットに対応し、各コントローラが対応するロボットを制御する。加えて、３個以上のコントローラの各々が通信部を有し、３個以上のコントローラのうちのひとつのコントローラのみがロボット行動計画システム７を有してもよい。上述の場合、複数の通信部の各々がロボット行動計画システム７によって生成されたスケジュールの通信を行い、当該スケジュールがすべてのコントローラで共有される。つまり、各コントローラが有する動作プログラムは、同期して変更される。
【０１０２】
実施の形態３．
図９は、実施の形態３にかかるロボット作業検証システム８の構成を示す図である。ロボット作業検証システム８は、実施の形態１にかかるロボット行動計画システム７と、ロボットシミュレータ９とを有する。ロボットシミュレータ９は、実施の形態１にかかるロボットシステム１が有する第１ロボット２Ａ、第２ロボット２Ｂ、第１コントローラ３Ａ、第２コントローラ３Ｂ、第１内界センサ４Ａ、第２内界センサ４Ｂ、外界センサ５及びエラー検出部６の機能を模擬的に実現することができるモジュールを有する。ロボットシミュレータ９は、第１ロボット２Ａ及び第２ロボット２Ｂの作業環境を仮想空間に構築する。
【０１０３】
ロボットシミュレータ９は、第１ロボット２Ａ及び第２ロボット２Ｂが実際に動作を実行する場合の動作情報の代わりに、第１ロボット２Ａ及び第２ロボット２Ｂが仮想的に動作を実行する場合の情報である仮想動作情報を生成し、生成した仮想動作情報をロボット行動計画システム７に出力する。実施の形態３では、ロボット行動計画システム７は、ロボットシミュレータ９から出力された仮想動作情報を受け取り、仮想動作情報をもとに、スケジュールを生成する。ロボットシミュレータ９は、ロボット行動計画システム７によって生成されたスケジュールを仮想空間で実行し、当該スケジュールを検証する。
【０１０４】
ロボット作業検証システム８は、ユーザから仮想動作情報を受け付ける受付部１０を有する。ユーザが仮想動作情報をロボット作業検証システム８に入力して受付部１０が入力された仮想動作情報を受け付けた場合、ロボットシミュレータ９は、受付部１０が受け付けた仮想動作情報をロボット行動計画システム７に出力する。ロボット行動計画システム７は、仮想動作情報をもとにスケジュールを生成する。ロボットシミュレータ９は、ロボット行動計画システム７によって生成されたスケジュールを検証する。つまり、ロボット作業検証システム８は、ユーザが入力した仮想動作情報をもとにするスケジュールを検証することができる。
【０１０５】
ロボット作業検証システム８は、ロボットシミュレータ９が検証を行うことによって得た結果を表示する表示部１１を有する。ユーザは、表示部１１によって表示された結果を視認することにより、ロボットシミュレータ９によって行われた検証の結果を認識することができる。表示部１１の例は、液晶表示装置である。
【０１０６】
上述のように、実施の形態３にかかるロボット作業検証システム８は、仮想のロボットにおけるエラーに対して生成されたスケジュールを検証する。すなわち、ロボット作業検証システム８は、実際のロボットを用いることなく、仮想のロボットにおけるエラーに対して生成されたスケジュールを検証することができる。
【０１０７】
実施の形態４．
図１０は、実施の形態４にかかるロボット行動計画システム７Ａの構成を示す図である。ロボット行動計画システム７Ａは、実施の形態１にかかるロボット行動計画システム７が有するエラー評価部７１と、対応策決定部７２とを有する。ロボット行動計画システム７Ａは、ロボット行動計画システム７が有するプランナ７３の代わりに、ロボットシミュレータ１２と通信を行う機能を有するプランナ７３Ａを更に有する。プランナ７３Ａは、プランナ７３が有する機能を有する。図１０には、ロボットシミュレータ１２も示されている。ロボットシミュレータ１２は、エラーの状態から復旧するために必要な動作を仮想的に実現する装置である。
【０１０８】
ロボット行動計画システム７Ａは、ロボット行動計画システム７が有するスケジューラ７４の代わりに、ロボットシミュレータ１２と通信を行う機能を有するスケジューラ７４Ａを更に有する。スケジューラ７４Ａは、スケジューラ７４が有する機能を有する。実施の形態４では、実施の形態１において説明されたロボット行動計画システム７の機能と異なる機能を主に説明する。
【０１０９】
ロボットシミュレータ１２は、動作を実行するロボットに相当するモデルを仮想空間で動かす装置である。図１０には、実施の形態１にかかるロボットシステム１が有する第１コントローラ３Ａ及び第２コントローラ３Ｂは示されていないが、ロボットシミュレータ１２は、第１コントローラ３Ａと第２コントローラ３Ｂとのうちの一方又は双方のコントローラの内部に設けられてもよいし、第１コントローラ３Ａ及び第２コントローラ３Ｂの外部に設けられてもよい。同様に、ロボットシミュレータ１２は、実施の形態２における第１コントローラ３Ｃと第２コントローラ３Ｄとのうちの一方又は双方のコントローラの内部に設けられてもよいし、第１コントローラ３Ｃ及び第２コントローラ３Ｄの外部に設けられてもよい。ロボットシミュレータ１２は、実施の形態３にかかるロボット作業検証システム８が有するロボットシミュレータ９であってもよい。
【０１１０】
実施の形態１におけるプランナ７３は、プランナ７３にあらかじめ定義された操作子を組み合わせることで目標の状態を達成するプランステップを生成する。実施の形態４におけるプランナ７３Ａは、ロボットシミュレータ１２を介した機械学習を行うことによって、対応策決定部７２から出力された特定のプランニングの目標を達成するために必要な操作子を新たに獲得する。例えば、プランナ７３Ａは、公知の強化学習（Reinforcement  Learning）を用いて必要な操作子を獲得する。
【０１１１】
シミュレータを用いる強化学習では、ロボットが試行錯誤することによって作業環境で特定の状態を達成した場合にあらかじめ定義された報酬を受け取ることで、望ましい状態を最小のコストで達成する動作が獲得される。プランナ７３Ａは、あらかじめ決められた最大試行回数に達するまでロボットシミュレータ１２と通信を行ってロボットに相当するモデルを仮想空間で動かすことで、現在の状態から対応策決定部７２から出力された目標の状態に遷移するための操作子を獲得する。
【０１１２】
例えば、プランナ７３Ａは、「障害物となっているワークＺを取り除く」という目標に対して、ワークＺが取り除かれた状態を達成するロボットの各関節の動かし方を獲得し、以降同じ目標を受け取った場合、獲得済みの操作子を用いる。上述のように、プランナ７３Ａは、ロボットシミュレータ１２を介して学習を行い、対応策決定部７２から出力された目標を受け取った場合、当該目標を達成するための動作を獲得する。プランナ７３Ａは、同じエラーが発生した場合、既に獲得した操作子を用いることができる。
【０１１３】
スケジューラ７４は、ある評価関数を最大又は最小にするスケジュールを生成する過程でロボットシミュレータ１２と通信を行う。実施の形態１におけるスケジューラ７４は、スケジューラ７４にあらかじめ定義された動作のコストを用いて評価関数を最大又は最小にするスケジュールを生成する。スケジューラ７４Ａは、エラーの状態から復旧するために必要な動作を仮想的に実現するロボットシミュレータ１２によって算出される作業時間及び消費エネルギのコストを示す値をもとに、評価関数を最大又は最小にするスケジュールを生成する。
【０１１４】
上述の通り、実施の形態４にかかるロボット行動計画システム７Ａは、ロボットシミュレータ１２によって得られた検証の結果をもとに、新たな動作の獲得及び動作のコストを評価することができる。
【０１１５】
図１１は、実施の形態１にかかるロボット行動計画システム７が有するエラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部の機能がプロセッサ９１によって実現される場合のプロセッサ９１を示す図である。つまり、エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部の機能は、メモリ９２に格納されるプログラムを実行するプロセッサ９１によって実現されてもよい。プロセッサ９１は、ＣＰＵ（Central  Processing  Unit）、処理装置、演算装置、マイクロプロセッサ、又はＤＳＰ（Digital  Signal  Processor）である。図１１には、メモリ９２も示されている。
【０１１６】
エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部の機能がプロセッサ９１によって実現される場合、当該少なくとも一部の機能は、プロセッサ９１と、ソフトウェア、ファームウェア、又は、ソフトウェア及びファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアは、プログラムとして記述され、メモリ９２に格納される。プロセッサ９１は、メモリ９２に記憶されたプログラムを読み出して実行することにより、エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部の機能を実現する。
【０１１７】
エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部の機能がプロセッサ９１によって実現される場合、ロボット行動計画システム７は、エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４によって実行されるステップの少なくとも一部が結果的に実行されることになるプログラムを格納するためのメモリ９２を有する。メモリ９２に格納されるプログラムは、エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４が実行する手順又は方法の少なくとも一部をコンピュータに実行させるものであるともいえる。
【０１１８】
メモリ９２は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、ＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read-Only  Memory）等の不揮発性もしくは揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はＤＶＤ（Digital  Versatile  Disk）等である。
【０１１９】
図１２は、実施の形態１にかかるロボット行動計画システム７が有するエラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部が処理回路９３によって実現される場合の処理回路９３を示す図である。つまり、エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４の少なくとも一部は、処理回路９３によって実現されてもよい。
【０１２０】
処理回路９３は、専用のハードウェアである。処理回路９３は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ＡＳＩＣ(Application  Specific  Integrated  Circuit)、ＦＰＧＡ（Field-Programmable  Gate  Array）、又はこれらを組み合わせたものである。
【０１２１】
エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４が有する複数の機能について、当該複数の機能の一部がソフトウェア又はファームウェアで実現され、当該複数の機能の残部が専用のハードウェアで実現されてもよい。このように、エラー評価部７１、対応策決定部７２、プランナ７３及びスケジューラ７４が有する複数の機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって実現することができる。
【０１２２】
実施の形態１にかかるロボットシステム１が有する第１コントローラ３Ａ、第２コントローラ３Ｂ、第１内界センサ４Ａ、第２内界センサ４Ｂ、外界センサ５及びエラー検出部６の少なくとも一部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、第１コントローラ３Ａ、第２コントローラ３Ｂ、第１内界センサ４Ａ、第２内界センサ４Ｂ、外界センサ５及びエラー検出部６によって実行されるステップの少なくとも一部が結果的に実行されることになるプログラムを格納する。
【０１２３】
実施の形態１にかかるロボットシステム１が有する第１コントローラ３Ａ、第２コントローラ３Ｂ、第１内界センサ４Ａ、第２内界センサ４Ｂ、外界センサ５及びエラー検出部６の少なくとも一部は、上述の処理回路９３と同等の機能を有する処理回路によって実現されてもよい。
【０１２４】
実施の形態２にかかるロボットシステム１Ａが有する第１コントローラ３Ｃ及び第２コントローラ３Ｄの少なくとも一部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、第１コントローラ３Ｃ及び第２コントローラ３Ｄによって実行されるステップの少なくとも一部が結果的に実行されることになるプログラムを格納する。第１コントローラ３Ｃ及び第２コントローラ３Ｄの少なくとも一部は、上述の処理回路９３と同等の機能を有する処理回路によって実現されてもよい。
【０１２５】
実施の形態３にかかるロボット作業検証システム８が有するロボットシミュレータ９及び受付部１０の少なくとも一部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、ロボットシミュレータ９及び受付部１０によって実行されるステップの少なくとも一部が結果的に実行されることになるプログラムを格納する。ロボットシミュレータ９及び受付部１０の少なくとも一部は、上述の処理回路９３と同等の機能を有する処理回路によって実現されてもよい。
【０１２６】
実施の形態４にかかるロボット行動計画システム７Ａが有するプランナ７３Ａ及びスケジューラ７４Ａの少なくとも一部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、プランナ７３Ａ及びスケジューラ７４Ａによって実行されるステップの少なくとも一部が結果的に実行されることになるプログラムを格納する。プランナ７３Ａ及びスケジューラ７４Ａの少なくとも一部は、上述の処理回路９３と同等の機能を有する処理回路によって実現されてもよい。
【０１２７】
実施の形態４におけるロボットシミュレータ１２の少なくとも一部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、ロボットシミュレータ１２によって実行されるステップの少なくとも一部が結果的に実行されることになるプログラムを格納する。ロボットシミュレータ１２の少なくとも一部は、上述の処理回路９３と同等の機能を有する処理回路によって実現されてもよい。
【０１２８】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
【符号の説明】
【０１２９】
１，１Ａ  ロボットシステム、２Ａ  第１ロボット、２Ｂ  第２ロボット、３Ａ，３Ｃ  第１コントローラ、３Ｂ，３Ｄ  第２コントローラ、４Ａ  第１内界センサ、４Ｂ  第２内界センサ、５  外界センサ、６  エラー検出部、７，７Ａ  ロボット行動計画システム、８  ロボット作業検証システム、９，１２  ロボットシミュレータ、１０  受付部、１１  表示部、３１Ａ  第１動作プログラム、３１Ｂ  第２動作プログラム、３２Ａ  第１通信部、３２Ｂ  第２通信部、７１  エラー評価部、７２  対応策決定部、７３，７３Ａ  プランナ、７４，７４Ａ  スケジューラ、７５  意味ネットワークマッチング部、７６  評価値算出部、９１  プロセッサ、９２  メモリ、９３  処理回路。
【要約】
ロボット行動計画システム（７）は、第１ロボット（２Ａ）においてエラーが発生した場合、第１ロボット（２Ａ）の動作の状態を示す情報をもとに、エラーの要因と、要因の確からしさを示す評価値と、要因に対して取り得る解決策とを示す評価情報を生成するエラー評価部（７１）と、評価値をもとにエラーに対する対応策を決定する対応策決定部（７２）と、対応策決定部（７２）によって決定された対応策が上記の解決策である場合、上記の解決策にしたがって第１ロボット（２Ａ）の動作の手順を示すプランステップを生成するプランナ（７３）と、プランナ（７３）によってプランステップが生成された場合、プランステップにしたがって第１ロボット（２Ａ）に動作を再開させるためのスケジュールを生成するスケジューラ（７４）とを有する。【図１】
0006685483.tif 000002
【図２】
0006685483.tif 000003
【図３】
0006685483.tif 000004
【図４】
0006685483.tif 000005
【図５】
0006685483.tif 000006
【図６】
0006685483.tif 000007
【図７】
0006685483.tif 000008
【図８】
0006685483.tif 000009
【図９】
0006685483.tif 000010
【図１０】
0006685483.tif 000011
【図１１】
0006685483.tif 000012
【図１２】
0006685483.tif 000013