(57)【要約】  【課題】ロボットを用いて把持した対象物を移動等させる場合に、過去の実行結果から、最適なシナリオを選択することができる。  【解決手段】ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得する。また、ロボットの目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する。そして、第１の実行情報から、シナリオが示す作業内容が目的の作業の内容と同一、かつ第１のパラメーターの選択値が第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出する。第２の実行情報の実行ログに含まれるシナリオから、目的の作業に最適なシナリオを選出し、選出されたシナリオを出力する。【選択図】図１
2014184531.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットに目的の作業を行わせるロボット制御方法であって、
前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得し、かつ前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第１のステップと、
前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出する第２のステップと、
前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出する第３のステップと、
前記選出されたシナリオを出力する第４のステップと、
を含むことを特徴とするロボット制御方法。
【請求項２】
請求項１に記載のロボット制御方法であって、
前記第１のステップでは、前記第１のパラメーター及び前記第２のパラメーターとして、前記ロボットを移動させる速度に関する情報である速度情報を取得する
ことを特徴とするロボット制御方法。
【請求項３】
請求項１に記載のロボット制御方法であって、
前記実行ログ及び前記指示情報は、前記ロボットを移動させる速度に関する情報である速度情報を含み、
前記第２のステップでは、前記第１の実行情報から、前記指示情報の速度情報と同一の速度情報が関連付けられた実行ログを抽出する
ことを特徴とするロボット制御方法。
【請求項４】
請求項１から３のいずれか一項に記載のロボット制御方法であって、
前記第２のステップでは、前記第１のパラメーターの選択値と前記第２のパラメーターの選択値との差が大きいほど値が小さくなる算出式を用いて算出した類似度に基づいて、第２の実行情報を抽出する
ことを特徴とするロボット制御方法。
【請求項５】
ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットに目的の作業を行わせるロボット制御装置であって、
前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得する第１の取得部と、
前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第２の取得部と、
前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出するシナリオ群抽出部と、
前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出するシナリオ選出部と、
前記選出された最適なシナリオを出力する出力部と、
を備えることを特徴とするロボット制御装置。
【請求項６】
ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットの可動部に目的の作業を行わせるロボットであって、
前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得する第１の取得部と、
前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第２の取得部と、
前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出するシナリオ群抽出部と、
前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出するシナリオ選出部と、
前記選出された最適なシナリオを用いて前記可動部を制御する駆動制御部と、
を備えることを特徴とするロボット。
【請求項７】
ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットに目的の作業を行わせるロボット制御プログラムであって、
前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得し、かつ前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第１のステップと、
前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出する第２のステップと、
前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出する第３のステップと、
前記選出された最適なシナリオを出力する第４のステップと、
を演算装置に実行させることを特徴とするロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御方法、ロボット制御装置、ロボット及びロボット制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、従来の物体把持装置の制御方法に制御目標値の設定変更と制御系パラメーターの変更に関する学習機能を追加し、過去に把持経験のある物体と同程度の硬さの物体の把持を行う場合に把持達成までに要する時間を短縮することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４９７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明は、過去の把持履歴を使って、把持成功までの試行回数を少なくする点に特徴がある。特許文献１に記載の発明では、把持動作のみが対象であるため、データベースに蓄えられる履歴におけるパラメーターの組み合わせは一通りである。したがって、特許文献１に記載の発明においては、学習機能においてパラメーターの比較を行うときに、データベースに蓄えらえた過去の履歴を全て使用することができる。
【０００５】
しかしながら、ロボットを用いて把持した対象物を移動等させる場合は、単にロボットを用いて対象物を把持する場合と比較して、様々なパラメーターが存在する。例えば、対象物を移動させる場合には、移動開始位置、移動先の位置、中継点、速度等の複数のパラメーターが存在する。また、対象物に対する一連の動作は、移動開始位置、移動先の位置、中継点、速度等の複数のパラメーターの一部又は全てを組み合わせることにより規定される。そのため、過去の履歴としてデータベースに蓄えられるデータにおいては、パラメーターの組み合わせが複数存在する。
【０００６】
したがって、学習機能においてパラメーターの比較を行うときに、単にデータベースに蓄えられた過去の履歴を用いることはできず、ロボットを用いて把持した対象物を移動等させる場合に特許文献１に記載の発明を適用することはできない。
【０００７】
本発明は、把持した対象物の移動等の作業をロボットに行わせる場合に、過去の実行結果に基づいて、作業に適したシナリオかつ成功率の高いシナリオを選択することができるロボット制御方法、ロボット制御装置、ロボット及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するための本発明の第一の態様は、ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットに目的の作業を行わせるロボット制御方法であって、前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得し、かつ前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第１のステップと、前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出する第２のステップと、前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出する第３のステップと、前記選出された最適なシナリオを出力する第４のステップと、を含むことを特徴とする。
【０００９】
第一の態様によれば、ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得する。また、ロボットの目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する。そして、第１の実行情報から、シナリオが示す作業内容が目的の作業の内容と同一、かつ第１のパラメーターの選択値が第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出する。第２の実行情報の実行ログに含まれるシナリオから、目的の作業に最適なシナリオを選出し、選出されたシナリオを出力する。これにより、目的の作業をロボットに行わせる場合に、過去の実行結果のうちのシナリオが示す作業内容が目的の作業の内容と同一の実行ログに基づいて、作業に適したシナリオかつ成功率の高いシナリオを選択することができる。また、目的の作業に近い環境で、過去に成功した作業結果を選出することにより、現実的、実用的、汎用的、かつ柔軟にロボットを制御することができる。
【００１０】
ここで、前記第１のステップでは、前記第１のパラメーター及び前記第２のパラメーターとして、前記ロボットを移動させる速度に関する情報である速度情報を取得してもよい。これにより、実行結果に大きな影響を与える速度情報を、目的の作業に近い環境の実行結果の抽出に用いることができる。
【００１１】
ここで、前記実行ログ及び前記指示情報は、前記ロボットを移動させる速度に関する情報である速度情報を含み、前記第２のステップでは、前記第１の実行情報から、前記指示情報の速度情報と同一の速度情報が関連付けられた実行ログを抽出してもよい。これにより、実行結果に大きな影響を与える速度情報が一致する実行ログのみを用いてシナリオを選出することで、より適切なシナリオを選出することができる。
【００１２】
ここで、前記第２のステップでは、前記第１のパラメーターの選択値と前記第２のパラメーターの選択値との差が大きいほど値が小さくなる算出式を用いて算出した類似度に基づいて、第２の実行情報を抽出してもよい。これにより、目的の作業に近い環境の実行結果を抽出することができる。
【００１３】
上記の課題を解決するための本発明の第二の態様は、ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットに目的の作業を行わせるロボット制御装置であって、前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得する第１の取得部と、前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第２の取得部と、前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出するシナリオ群抽出部と、前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出するシナリオ選出部と、前記選出された最適なシナリオを出力する出力部と、を備えることを特徴とする。これにより、把持した対象物の移動等の作業をロボットに行わせる場合に、過去の実行結果のうちのシナリオが示す作業内容が目的の作業の内容と同一の実行ログに基づいて、作業に適したシナリオかつ成功率の高いシナリオを選択することができる。また、目的の作業に近い環境で、過去に成功した作業結果を選出することにより、現実的、実用的、汎用的、かつ柔軟にロボットを制御することができる。
【００１４】
上記の課題を解決するための本発明の第三の態様は、ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットの可動部に目的の作業を行わせるロボットであって、前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得する第１の取得部と、前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第２の取得部と、前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出するシナリオ群抽出部と、前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出するシナリオ選出部と、前記選出された最適なシナリオを用いて前記可動部を制御する駆動制御部と、を備えることを特徴とする。これにより、把持した対象物の移動等の作業をロボットに行わせる場合に、過去の実行結果のうちのシナリオが示す作業内容が目的の作業の内容と同一の実行ログに基づいて、作業に適したシナリオかつ成功率の高いシナリオを選択することができる。また、目的の作業に近い環境で、過去に成功した作業結果を選出することにより、現実的、実用的、汎用的、かつ柔軟にロボットを制御することができる。
【００１５】
上記の課題を解決するための本発明の第四の態様は、ロボットの単位動作を複数組み合わせたシナリオを用いて前記ロボットに目的の作業を行わせるロボット制御プログラムであって、前記ロボットが実行したシナリオと、当該シナリオを定める第１のパラメーターの選択値と、当該シナリオの実行結果と、を関連付けた実行ログが複数含まれる第１の実行情報を取得し、かつ前記目的の作業の内容と、当該目的の作業を定める第２のパラメーターの選択値と、を含む指示情報を取得する第１のステップと、前記第１の実行情報から、前記シナリオが示す作業内容が前記目的の作業の内容と同一、かつ前記第１のパラメーターの選択値が前記第２のパラメーターの選択値に類似する実行ログを第２の実行情報として抽出する第２のステップと、前記第２の実行情報に含まれるシナリオから、前記実行結果に基づいて成功率の最も高いシナリオを選出する第３のステップと、前記選出された最適なシナリオを出力する第４のステップと、を演算装置に実行させることを特徴とする。これにより、把持した対象物の移動等の作業をロボットに行わせる場合に、過去の実行結果のうちのシナリオが示す作業内容が目的の作業の内容と同一の実行ログに基づいて、作業に適したシナリオかつ成功率の高いシナリオを選択することができる。また、目的の作業に近い環境で、過去に成功した作業結果を選出することにより、現実的、実用的、汎用的、かつ柔軟にロボットを制御することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態に係るロボットシステム１の概略構成の一例を示す図である。
【図２】制御装置の機能構成の一例を示す図である。
【図３】ライブラリー記憶部に格納される情報の一例を示す図である。
【図４】各シナリオに対して、パラメーターが異なる場合のハンドの移動経路を模式的に示す図である。
【図５】実行ログテーブルの構成の一例を示す図である。
【図６】制御装置のハードウェア構成の一例を示す図である。
【図７】ロボットシステム１のシナリオ決定処理の一例を示すフロー図である。
【図８】ロボットシステム１のシナリオ群Ａ抽出処理の一例を示すフロー図である。
【図９】シナリオＳ選出処理の一例を示すフロー図である。
【図１０】本発明の第２の実施形態に係るロボットシステム２のシナリオ決定処理の一例を示すフロー図である。
【図１１】ロボットシステム２のシナリオ群Ａ抽出処理の一例を示すフロー図である。
【発明を実施するための形態】
【００１７】
＜第１の実施の形態＞
本発明の第一実施形態について、図面を参照して説明する。
【００１８】
図１は、本発明の一実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。本実施形態におけるロボットシステム１は、主として、ロボット１０と、制御装置２０と、第１撮像部３０と、第２撮像部３１と、を備える。
【００１９】
ロボット１０は、２本のアームを有するアーム型のロボットである。本実施の形態では、２本のアーム１１を備えた双腕ロボットを例に説明するが、ロボット１０のアーム１１の数は１本でも構わない。
アーム１１は、複数のジョイント（関節）１２と、複数のリンク１３と備える。
【００２０】
アーム１１の先端には、ロボット１０の操作対象物であるワークＡを把持したり、道具を把持して対象物に対して所定の作業を行ったりすることが可能なハンド１４（いわゆるエンドエフェクター又は手先効果器）が設けられる。アーム１１及びハンド１４は、本発明の可動部に相当する。
【００２１】
ジョイント１２及びハンド１４には、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御装置２０によるロボット１０のフィードバック制御に使用される。
【００２２】
ハンド１４の内部又はアーム１１の先端等には、力覚センサー（図示せず）が設けられる。力覚センサーは、ハンド１４に加わる力を検出する。力覚センサーとしては、例えば、並進３軸方向の力成分と、回転３軸回りのモーメント成分の６成分を同時に検出することができる６軸力覚センサーを用いることができる。また、力覚センサーで使用される物理量は、電流、電圧、電荷量、インダクタンス、ひずみ、抵抗、電磁誘導、磁気、空気圧、光等である。力覚センサーは、所望の物理量を電気信号に変換することにより、６成分を検出可能である。なお、力覚センサーは、６軸に限らず、例えば３軸でもよい。また、力覚センサーを設ける位置は、ハンド１４に加わる力を検出できるのであれば、特に限定されるものではない。
【００２３】
なお、ロボット１０の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。一般的な把持ロボットが備える構成を排除するものではない。例えば、図１では６軸のアームが示されているが、軸数（ジョイント数）をさらに増加させてもよいし、減らしてもよい。リンクの数を増減させてもよい。また、アーム、ハンド、リンク、ジョイント等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。また、エンドエフェクターはハンド１４に限られない。
【００２４】
制御装置２０は、ロボット１０の全体を制御する処理を行う。制御装置２０は、ロボット１０の本体とは離れた場所に設置してもよいし、ロボット１０等に内蔵してもよい。制御装置２０がロボット１０の本体と離れた場所に設置されている場合には、制御装置２０は、有線又は無線でロボット１０と接続される。
【００２５】
第１撮像部３０、第２撮像部３１は、ロボット１０の作業領域付近をそれぞれ異なる角度から撮像して、画像データを生成するユニットである。第１撮像部３０、第２撮像部３１は、例えば、カメラを含み、作業台、天井、壁などに設けられる。本実施の形態では、第１撮像部３０及び第２撮像部３１は作業台に設けられる。第１撮像部３０、第２撮像部３１としては、可視光カメラ、赤外線カメラ等を採用することができる。
【００２６】
次に、ロボットシステム１の機能構成例について説明する。図２は、制御装置２０の機能ブロック図の一例である。制御装置２０は、主として、情報取得部２０１と、シナリオ選出部２０２と、ロボット駆動部２０３と、ライブラリー記憶部２０４と、実行ログ記憶部２０５とを有する。
【００２７】
情報取得部２０１は、入力装置２５（図６参照）等から入力されたゴールＧ及び速度レベルを取得する。ゴールＧとは、ロボット１０に行わせたい作業の内容を示す情報である。ゴールＧは、作業内容と、作業内容を定める変数（パラメーター）とを含む。ここで、作業内容は、例えば「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」のような形式であり、「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」は、ワークＡをＸＳからＸＥへ移動させることを意味する。パラメーターは、例えば、作業内容に含まれるパラメーター（ワークＡ、位置ＸＳ、位置ＸＥ）と、その他のパラメーターである速度レベルとを含む。なお、速度レベルとは、ハンド１４を移動させる速度であり、例えばハンド１４がワークＡを把持している場合には、ワークＡを移動させる速度である。情報取得部２０１は、本発明の第１の取得部に相当する。ゴールＧは、本発明の指示情報に相当する。ゴールＧに含まれるパラメーターは、本発明の第２のパラメーターに相当する。
【００２８】
シナリオ選出部２０２は、ライブラリー記憶部２０４（後に詳述）に格納された情報及び実行ログ記憶部２０５（後に詳述）に格納された実行ログに基づいて、任意のシナリオを１個選出する。本実施形態では、ロボット駆動部２０３で解釈可能な動作命令群を「シナリオ」と呼ぶ。シナリオは、動作を実現するために必要なロボットの単位動作を複数組み合わせたものである。例えば、動作が「ワークＡを目的位置Ｄに置く」である場合、動作命令群は、「ワークＡに（ワークＡの位置に）手先を移動する」、「ワークＡを把持する」、「位置Ｄに手先を移動する」「ワークＡを解放する」などとすることができる。シナリオ選出部２０２が行う処理については、後に詳述する。シナリオ選出部２０２は、本発明の第２の取得部、シナリオ群抽出部、及びシナリオ選出部に相当する。
【００２９】
ロボット駆動部２０３は、ロボット１０の現在の状態（例えば、ジョイントの角度、手先の位置、力覚センサーなどのセンサーの出力値など）を特定する情報等をロボット１０から取得し、ロボット１０の周囲の環境の現在の状態（例えば、ワークＡの位置及びワークＡが空間を占める領域、障害物の位置及び障害物が空間を占める領域など）を特定する情報等を第１撮像部３０及び第２撮像部３１からを取得する。そして、ロボット駆動部２０３は、取得した情報に基づいて、シナリオ選出部２０２で選出されたシナリオでワークＡを移動させるようにロボット１０を制御する。ロボット駆動部２０３の処理は、公知の技術により実現できるので、詳細な説明は省略する。ロボット駆動部２０３は、本発明の駆動制御部に相当する。
【００３０】
ライブラリー記憶部２０４には、複数の動作命令群で構成されるシナリオが複数記憶される。図３は、ライブラリー記憶部２０４に記録されるデータ構成の一例を示す図である。
【００３１】
図３に示すように、ライブラリー記憶部２０４には、シナリオの識別情報であるシナリオ名と、作業内容と、作業内容を構成する動作命令群とが、シナリオ毎に関連付けられて記憶されている。
【００３２】
ここで、シナリオ名、作業内容及び動作命令群について、シナリオ名がシナリオ１の場合を例に説明する。シナリオ１の作業内容は、「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」であり、ワークＡをＸＳからＸＥへ移動させるという内容である。作業内容は、本発明のシナリオが示す作業内容に相当する。
【００３３】
シナリオ１の作業内容「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」は、「Ｍｏｖｅ  ｔｏ  ＸＳ」、「Ｇｒａｓｐ  Ａ」、「Ｍｏｖｅ  ｆｒｏｍ  ＸＳ  ｔｏ  Ｘ１」、「Ｍｏｖｅ  ｆｒｏｍ  Ｘ１  ｔｏ  ＸＥ」、及び「Ｒｅｌｅａｓｅ  Ａ」の複数の動作命令（動作命令群）からなる。
【００３４】
動作命令「Ｍｏｖｅ  ｔｏ  ＸＳ」は、ハンド１４の位置を位置ＸＳへ移動させる、という動作命令である。
動作命令「Ｇｒａｓｐ  Ａ」は、ハンド１４でワークＡを把持する、という動作命令である。
動作命令「Ｍｏｖｅ  ｆｒｏｍ  ＸＳ  ｔｏ  Ｘ１」は、ハンド１４の位置を位置ＸＳから位置Ｘ１へ移動させる、という動作命令である。
動作命令「Ｍｏｖｅ  ｆｒｏｍ  Ｘ１  ｔｏ  ＸＥ」は、ハンド１４の位置を位置Ｘ１から位置ＸＥへ移動させる、という動作命令である。
動作命令「Ｒｅｌｅａｓｅ  Ａ」ハンドで把持されたワークＡを解放する、という動作命令である。
【００３５】
ここで、シナリオ中、大文字で表示されたワークＡ、位置ＸＳ、位置Ｘ１、位置ＸＥは、変更可能なパラメーターである。このパラメーターは、本発明の第１のパラメーターに相当する。
【００３６】
図４（Ａ）、（Ｂ）、（Ｃ）は、複数のシナリオに対し、パラメーターが異なる場合のハンド１４の移動経路を模式的に示す図である。図４（Ａ）、（Ｂ）、（Ｃ）における［１］、［２］等の数字は、実行ログ番号（後に詳述、図５参照）を示している。また、図４（Ａ）、（Ｂ）、（Ｃ）においては、シナリオ１でハンド１４を移動させた場合を実線で示し、シナリオ２（図３参照）でハンド１４を移動させた場合を一点鎖線で示し、シナリオ３（図３参照）でハンド１４を移動させた場合を二点鎖線で示す。
【００３７】
図４に示すように、シナリオが異なれば、異なる経路でハンド１４が移動する。例えば、図３に示すように、シナリオ１、シナリオ２、及びシナリオ３の作業内容は、全て「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」である。しかしながら、シナリオ１、シナリオ２、及びシナリオ３は動作命令群が異なるため、図４に示すように、シナリオ１でハンド１４を移動させた場合と、シナリオ２でハンド１４を移動させた場合と、シナリオ３でハンド１４を移動させた場合とでは、異なる経路でハンド１４が移動する。
【００３８】
また、同じシナリオの場合であっても、パラメーターが異なれば、異なる経路でハンド１４が移動する。例えば、シナリオ１でハンド１４を移動させた場合であっても、パラメーターである位置ＸＳ、位置Ｘ１、位置ＸＥが異なると、異なる経路でハンド１４が移動する。
【００３９】
なお、図３及び図４は、シナリオ及びハンド１４の移動経路のあくまで一例を示したものであり、図３及び図４に示す場合に限られるものではない。
【００４０】
図２の説明に戻る。実行ログ記憶部２０５には、ロボット１０が過去に実行した結果である実行ログが格納されている。実行ログ記憶部２０５には、図５に示すように、主として、実行ログを特定する実行ログ番号を格納する番号格納領域２０５１と、シナリオを特定するシナリオ名を格納するシナリオ名格納領域２０５２と、シナリオを定めるパラメーターを格納するパラメーター格納領域２０５３と、シナリオの実行結果を格納する実行結果格納領域２０５４とが互いに関連付けられた実行ログテーブルが格納されており、実行ログテーブル内に実行ログが格納されている。
【００４１】
パラメーター格納領域２０５３は、ライブラリー記憶部２０４に格納されたシナリオに登場するパラメーターの全てに対して、パラメーターの情報を格納するための格納領域を有する。本実施の形態では、パラメーター格納領域２０５３は、主として、ワークＡに関する情報が格納されるＡ格納領域２０５３ａと、位置ＸＳに関する情報が格納されるＸＳ格納領域２０５３ｂと、位置ＸＥに関する情報が格納されるＸＥ格納領域２０５３ｃと、位置Ｘ１に関する情報が格納されるＸ１格納領域２０５３ｄと、位置Ｘ２に関する情報が格納されるＸ２格納領域２０５３ｅと、ハンド１４の移動速度を示す速度レベルが格納される速度格納領域２０５３ｆと、を有する。他のパラメーターについては、図示を省略する。パラメーター格納領域２０５３に格納される値は、本発明の第１のパラメーターの選択値に相当する。速度レベルは、本発明の速度情報に相当する。
【００４２】
なお、パラメーター格納領域２０５３は、全てのパラメーター格納する領域を有するため、シナリオによっては使用しないパラメーターが存在する。使用しないパラメーターについては、パラメーター格納領域２０５３に、例えば、使用しないことを示す「‐」が格納される。
【００４３】
図６は、制御装置２０の概略構成の一例を示すブロック図である。図示するように、例えばコンピューターなどで構成される制御装置２０は、演算装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、揮発性の記憶装置であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）や不揮発性の記憶装置であるＲＯＭ（Ｒｅａｄ  ｏｎｌｙ  Ｍｅｍｏｒｙ）からなるメモリー２２と、外部記憶装置２３と、ロボット１０等の外部の装置と通信を行う通信装置２４と、マウスやキーボード等の入力装置２５と、ディスプレイ等の出力装置２６と、制御装置２０と他のユニットを接続するインターフェイス（Ｉ／Ｆ）２７とを備える。
【００４４】
各機能部は、例えば、ＣＰＵ２１が外部記憶装置２３等に格納された所定のプログラムをメモリー２２等に読み出して実行すること、及びＣＰＵ２１がメモリー２２又は外部記憶装置２３を利用することにより実現される。なお、所定のプログラムは、例えば、予め外部記憶装置２３等にインストールされてもよいし、通信装置２４を介してネットワークからダウンロードされてインストール又は更新されてもよい。
【００４５】
以上のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。制御装置２０の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００４６】
また、ロボット１０が制御装置２０の少なくとも一部の機能や、第１撮像部３０及び第２撮像部３１を備えていてもよい。また、一般的なロボットシステムが備える構成を排除するものではない。
【００４７】
次に、本実施形態における、上記構成からなるロボットシステム１の特徴的な処理について説明する。
【００４８】
図７は、シナリオ選出処理の流れを示すフローチャートである。この処理は、任意のタイミングで、例えば、図示しないボタン等を介してシナリオ選出の開始指示が入力されることにより開始される。
【００４９】
情報取得部２０１は、入力装置２５等を介して入力されたゴールＧを取得し、シナリオ選出部２０２に出力する（ステップＳ１００、本発明の第１のステップに相当）。
【００５０】
シナリオ選出部２０２は、ライブラリー記憶部２０４からシナリオの内容を取得し、かつ実行ログ記憶部２０５に格納されている実行ログを取得する（本発明の第１のステップに相当する）。そして、シナリオ選出部２０２は、実行ログ記憶部２０５に格納されている実行ログからシナリオ群Ａを抽出する（ステップＳ１０２、本発明の第２のステップに相当する）。ここで、ステップＳ１０２の処理について、詳細に説明する。
【００５１】
図８は、シナリオ群Ａ抽出処理の流れを示すフローチャートである。
シナリオ選出部２０２は、Ｊを１に設定する（ステップＳ１０２１）。なお、Ｊは、実行ログ記憶部２０５に格納された実行ログ番号を示す数値（ここでは自然数）である。
【００５２】
シナリオ選出部２０２は、実行ログ記憶部２０５にＪ番の実行ログがあるか否かを判断する（ステップＳ１０２２）。
【００５３】
実行ログ記憶部２０５にＪ番の実行ログがある場合（ステップＳ１０２でＹＥＳ）には、シナリオ選出部２０２は、Ｊ番の実行ログのシナリオの作業内容が、ステップＳ１００で取得されたゴールＧの作業内容と一致するか否かを判断する（ステップＳ１０２３）。ステップＳ１０２３の処理について、Ｊ＝１であり、ステップＳ１００で取得されたゴールＧの作業内容が「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」である場合を例に説明する。
【００５４】
Ｊ＝１であるため、シナリオ選出部２０２は、実行ログ記憶部２０５から１番の実行ログを取得する。１番の実行ログのシナリオ名はシナリオ１であるため、シナリオ選出部２０２は、ライブラリー記憶部２０４からシナリオ１の作業内容を取得する。シナリオ１の作業内容は、「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」である。
【００５５】
なお、本実施の形態では、実行ログ記憶部２０５にシナリオ名のみが含まれ、シナリオの詳細はライブラリー記憶部２０４に記憶されているため、シナリオ選出部２０２は、ライブラリー記憶部２０４及び実行ログ記憶部２０５から情報を取得する。ただし、実行ログ記憶部２０５にシナリオの詳細が記憶されている場合には、シナリオ選出部２０２は、実行ログ記憶部２０５のみから情報を取得すればよく、ライブラリー記憶部２０４から情報を取得する必要はない。
【００５６】
シナリオ選出部２０２は、シナリオ１の作業内容「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」と、ゴールＧの作業内容「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」とを比較する。この場合には、シナリオ１の作業内容「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」と、ゴールＧの作業内容「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」とは一致するため、シナリオ選出部２０２は、１番のシナリオの作業内容が、ステップＳ１００で取得されたゴールＧの作業内容と一致すると判断する。
【００５７】
Ｊ番の実行ログの作業内容が、ゴールＧと一致する場合（ステップＳ１０２３でＹＥＳ）には、シナリオ選出部２０２は、Ｊ番の実行ログとゴールＧとの類似度を算出する（ステップＳ１０２４）。ステップＳ１０２４の処理について、Ｊ＝１であり、ゴールＧの作業内容が「Ｍｏｖｅ  Ａ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」であり、ゴールＧのパラメーターが、Ａが球１１、ＸＳが（１５，５０，０）、ＸＥが（６０，０，０）、速度レベルが２である場合を例に説明する。なお、Ａの球１１は、把持対象物の種類を示し、ＸＳの（１５，５０，０）、ＸＥの（６０，０，０）は、３次元空間における座標を示す。なお、球１１の内容等については、メモリー２２等に記憶されている。ゴールＧのパラメーターの値は、本発明の第２のパラメーターの選択値に相当する。
【００５８】
シナリオ選出部２０２は、数式（１）にゴールＧのパラメーターと、１番の実行ログのパラメーターとを代入することで、１番の実行ログとゴールＧとの類似度を算出する。
［数１］
類似度＝Σｗ［ｉ］／（Ｇｏａｌ．Ｐａｒａｍ［ｉ］−Ｌｏｇ．Ｐａｒａｍ［ｉ］）  ・・・（１）
【００５９】
ここで、ｗ［ｉ］は、各パラメーターｉの重み付け固定値であり、各パラメーターに任意の値とすることができる。Ｇｏａｌ．Ｐａｒａｍ［ｉ］は、ゴールＧのパラメーターｉの値であり、Ｌｏｇ．Ｐａｒａｍ［ｉ］は、シナリオのパラメーターｉの値である。このように、数式（１）は、パラメーター毎に差の逆数をとり、これらを所定の重みづけて加算したものである。
【００６０】
１番の実行ログのパラメーターは、Ａが球１０、ＸＳが（５０，１０，０）、ＸＥが（２０，５０，０）、速度レベルが２（図５参照）である。本実施の形態では、ｗ［ｉ］を全て１とするため、球１１と球１０との差の逆数と、座標（１５，５０，０）座標（５０，１０，０）との距離の逆数と、座標（６０，０，０）と座標（２０，５０，０）との逆数と、速度レベル２と速度レベル２との差の逆数（すなわち０）との和が、類似度として算出される。ここで、球１０、球１１の値は、例えばメモリー２２等に記憶された球の大きさや、球の重さ等の値を類似度の算出に用いることができる。また、速度レベルについても、例えばメモリー２２等に記憶された速度の値を用いることができる。
【００６１】
なお、数式（１）は、差が大きいほど類似度が小さくなるような数式の一例であり、類似度の計算に用いる式はこれに限られない。類似度の計算に用いる式は、パラメーターの差が大きいほど、類似度が小さくなるような数式であれば、様々な形態の式を用いることができる。
【００６２】
また、数式（１）において、ｗ［ｉ］は１に限定されない。例えば、速度レベルについては、他のパラメーターに対して重みづけが重くなるようにｗ［ｉ］を設定してもよい。
【００６３】
シナリオ選出部２０２は、Ｊ番の実行ログとゴールＧとの類似度が閾値（任意の値）以上であるか否かを判断する（ステップＳ１０２５）。
【００６４】
Ｊ番の実行ログとゴールＧとの類似度が閾値以上である場合（ステップＳ１０２５でＹＥＳ）には、シナリオ選出部２０２は、Ｊ番の実行ログをシナリオ群Ａに追加する（ステップＳ１０２６）。
【００６５】
ステップＳ１０２６が行われた場合、Ｊ番の実行ログのシナリオの作業内容が、ゴールＧと一致しない場合（ステップＳ１０２３でＮＯ）、及びＪ番の実行ログとゴールＧとの類似度が閾値（任意の値）以上でない場合（ステップＳ１０２５でＮＯ）には、シナリオ選出部２０２は、Ｊに１を追加し（ステップＳ１０２７）、再度ステップＳ１０２２を行う。
【００６６】
実行ログ記憶部２０５にＪ番の実行ログがない場合（ステップＳ１０２２でＮＯ）には、シナリオ選出部２０２は、シナリオ群Ａ抽出処理（ステップＳ１０２）を終了する。
【００６７】
なお、本実施の形態では、先にゴールＧを取得し、次にライブラリー記憶部２０４及び実行ログ記憶部２０５の情報を取得したが、情報の取得順はこれに限定されない。先にライブラリー記憶部２０４及び実行ログ記憶部２０５の情報を取得してから、ゴールＧを取得してもよいし、全ての情報を同時に取得してもよい。
【００６８】
シナリオ選出部２０２は、ステップＳ１０２で選出されたシナリオ群Ａから、シナリオＳを選出する（ステップＳ１０４、本発明の第３のステップに相当）。ここで、ステップＳ１０４の処理について、詳細に説明する。
【００６９】
図９は、シナリオＳ選出処理の流れを示すフローチャートである。
シナリオ選出部２０２は、Ｋを１に設定し、かつ最大成功率を０に設定する（ステップＳ１０４１）。ここで、Ｋは、ライブラリー記憶部２０４に格納されているシナリオのシナリオ名を示す番号である。例えば、Ｋが１の場合は、シナリオ１の場合である。
【００７０】
シナリオ選出部２０２は、シナリオ群Ａに含まれる実行ログの中に、シナリオ名がシナリオＫであるものがあるか否かを判断する（ステップＳ１０４２）。
【００７１】
シナリオ群ＡにシナリオＫの実行ログがある場合（ステップ１０４２でＹＥＳ）には、シナリオ選出部２０２は、シナリオＫの成功率を算出する（ステップＳ１０４３）。ステップＳ１０４３の処理について、具体例を用いて説明する。
【００７２】
例えば、Ｋが１であり、図５に示す実行ログテーブルのうち、番号が１〜１０、３２、３３、８７、１４６の実行ログがシナリオ群Ａに含まれている場合には、シナリオ選出部２０２は、番号が１〜１０、３２、３３、８７、１４６の実行ログのうち、シナリオ名がシナリオ１である番号１、４、７、１０をシナリオ群Ａから抽出する。
【００７３】
シナリオ選出部２０２は、シナリオ群Ａから抽出された番号１、４、７、１０の実行ログの成功率を算出する。実行ログテーブルの実行結果格納領域２０５４を参照すると、番号７の実行ログは結果が成功であるが、番号１、４、１０は結果が失敗である。したがって、シナリオ選出部２０２は、成功率を１／４と算出する。
【００７４】
シナリオ選出部２０２は、ステップＳ１０４３で算出された成功率が最大成功率より大きいか否かを判断する（ステップＳ１０４４）。
【００７５】
ステップＳ１０４３で算出された成功率が最大成功率より大きい場合（ステップＳ１０４４でＹＥＳ）には、シナリオ選出部２０２は、シナリオＫをシナリオＳとし、シナリオＫの成功率を最大成功率とする（ステップＳ１０４５）。最初にステップＳ１０４４、Ｓ１０４５を行う場合には、ステップＳ１０４１で最大成功率が０とされているので、シナリオ１の成功率が０でない限り、シナリオ１がシナリオＳとされ、シナリオ１の成功率が最大成功率とされる。
【００７６】
ステップＳ１０４５が行われた場合、及びステップＳ１０４３で算出された成功率が最大成功率より大きくない場合（ステップＳ１０４４でＮＯ）には、シナリオ選出部２０２は、Ｋに１を追加し（ステップＳ１０４６）、再度ステップＳ１０４２を行う。
【００７７】
シナリオ群ＡにシナリオＫの実行ログがない場合（ステップＳ１０４２でＮＯ）には、シナリオ選出部２０２は、すべてのシナリオについて成功率の算出が行われたか否かを判断する（ステップＳ１０４７）。例えば、ライブラリー記憶部２０４に格納されたシナリオがシナリオ１〜シナリオ１０である場合には、シナリオ選出部２０２は、Ｋが１０より大きい場合には、全てのシナリオについて処理が行われたと判断するようにしてもよい。
【００７８】
すべてのシナリオについて処理が終了していない場合（ステップＳ１０４７でＮＯ）には、シナリオ選出部２０２は、再度ステップＳ１０４２を行う。すべてのシナリオについて処理が終了した場合（ステップＳ１０４７でＹＥＳ）には、シナリオ選出部２０２は、シナリオＳ選出処理（ステップＳ１０４）を終了する。
【００７９】
シナリオ選出部２０２は、ステップＳ１０４で選出されたシナリオＳをロボット駆動部２０３に出力する。ロボット駆動部２０３は、シナリオ選出部２０２から出力されたシナリオＳでロボット１０を移動させるように、ロボット１０を制御する（ステップＳ１０６、本発明の第４のステップに相当）。
【００８０】
ロボット駆動部２０３は、ステップＳ１０６でロボット１０を制御した結果が成功か否かを判断し、その結果とシナリオＳとを関連付けて実行ログ記憶部２０５に記憶する（ステップＳ１０８）。ロボット駆動部２０３は、例えば、シナリオＳの動作命令群が最後まで実行できた場合には、シナリオＳの実行は成功であると判断することができる。
【００８１】
本実施の形態によれば、把持した対象物の移動等の作業をロボットに行わせる場合に、過去の実行結果に基づいて、作業に適したシナリオかつ成功率の高いシナリオを選択することができる。また、過去の実行結果から状況（パラメーターとして設定されるワークのサイズや、スタート及びゴールの位置等）に合わせて、成功率の高い作業結果を選択して実行できるため、処理の信頼性を向上させることができる。
【００８２】
なお、厳密に一致した環境（ワークのサイズや、スタート及びゴールの位置等）で再度作業を行う場合というのは、実際は稀である。したがって、本実施の形態のように、より近い環境で、過去に成功した作業結果を選出することにより、現実的、実用的、汎用的、かつ柔軟にロボットを制御することができる。
【００８３】
また、本実施の形態では、実行に大きな影響を与える速度情報をパラメーターとし、類似度の算出に用いることで、目的の作業に近い環境の実行結果の抽出に用いることができる。
【００８４】
＜第２の実施の形態＞
本発明の第１の実施の形態は、速度レベルを含めて類似度を算出したが、速度レベルは、他のパラメーターと比べると、作業結果に対する影響が大きい。
【００８５】
本発明の第２の実施の形態は、速度レベルが同じ実行ログのみを用いてシナリオＳを選出する形態である。以下。第２の実施の形態のロボットシステム２について説明する。ロボットシステム２の構成は、ロボットシステム１と同一であるため、説明を省略する。また、第１の実施の形態と同一の部分については、同一の符号を付し、説明を省略する。
本実施形態における、上記構成からなるロボットシステム２の特徴的な処理について説明する。
【００８６】
図１０は、シナリオ選出処理の流れを示すフローチャートである。この処理は、任意のタイミングで、例えば、図示しないボタン等を介してシナリオ選出の開始指示が入力されることにより開始される。
【００８７】
情報取得部２０１は、入力装置２５等を介して入力されたゴールＧを取得し、シナリオ選出部２０２に出力する（ステップＳ１００）。
【００８８】
シナリオ選出部２０２は、実行ログ記憶部２０５に格納されている実行ログから、シナリオ群Ａを抽出する（ステップＳ１０３）。ここで、ステップＳ１０３の処理について、詳細に説明する。
【００８９】
図１１は、シナリオ群Ａ抽出処理の流れを示すフローチャートである。
シナリオ選出部２０２は、Ｊを１に設定する（ステップＳ１０３１）。シナリオ選出部２０２は、実行ログ記憶部２０５にＪ番の実行ログがあるか否かを判断する（ステップＳ１０３２）。実行ログ記憶部２０５にＪ番の実行ログがある場合（ステップＳ１０３２でＹＥＳ）には、シナリオ選出部２０２は、Ｊ番の実行ログのシナリオの作業内容が、ステップＳ１００で取得されたゴールＧの作業内容と一致するか否かを判断する（ステップＳ１０３３）。なお、ステップＳ１０３１の処理は、ステップＳ１０２１の処理と同じであり、ステップＳ１０３２の処理は、ステップＳ１０２２の処理と同じであり、ステップＳ１０３３の処理は、ステップＳ１０２３の処理と同じである。
【００９０】
Ｊ番の実行ログの作業内容が、ゴールＧと一致する場合（ステップＳ１０３３でＹＥＳ）には、シナリオ選出部２０２は、実行ログ記憶部２０５に格納された実行ログテーブルの速度格納領域２０５３ｆを参照して、Ｊ番の実行ログの速度レベルがゴールＧの速度レベルと一致するか否かを判断する（ステップＳ１０３４）。
【００９１】
Ｊ番の実行ログの速度レベルがゴールＧの速度レベルと一致する場合（ステップＳ１０３４でＹＥＳ）には、シナリオ選出部２０２は、Ｊ番の実行ログとゴールＧとの類似度を算出する（ステップＳ１０３５）。ステップＳ１０３５の処理は、ステップＳ１０２４の処理に対して、類似度の算出式（１）のパラメーターに速度レベルが含まれないだけであるため、詳細な説明は省略する。
【００９２】
シナリオ選出部２０２は、Ｊ番の実行ログとゴールＧとの類似度が閾値（任意の値）以上であるか否かを判断する（ステップＳ１０３６）。ステップＳ１０３６の処理は、ステップＳ１０２５の処理と同一である。
【００９３】
Ｊ番の実行ログとゴールＧとの類似度が閾値（任意の値）以上である場合（ステップＳ１０３６でＹＥＳ）には、シナリオ選出部２０２は、Ｊ番の実行ログをシナリオ群Ａに追加する（ステップＳ１０３７）。ステップＳ１０３７の処理は、ステップＳ１０２６と同一である。
【００９４】
ステップＳ１０２６が行われた場合、Ｊ番の実行ログのシナリオの作業内容が、ゴールＧと一致しない場合（ステップＳ１０３３でＮＯ）、Ｊ番の実行ログの速度レベルがゴールＧの速度レベルと一致しない場合（ステップＳ１０３４でＮＯ）、及びＪ番の実行ログとゴールＧとの類似度が閾値（任意の値）以上でない場合（ステップＳ１０３６でＮＯ）には、シナリオ選出部２０２は、Ｊに１を追加し（ステップＳ１０３８）、再度ステップＳ１０３２を行う。ステップＳ１０３８の処理は、ステップＳ１０２７と同一である。
【００９５】
実行ログ記憶部２０５にＪ番の実行ログがない場合（ステップＳ１０３２でＮＯ）には、シナリオ選出部２０２は、シナリオ群Ａ抽出処理（ステップＳ１０３）を終了する。
シナリオ選出部２０２は、ステップＳ１０２で選出されたシナリオ群Ａから、シナリオＳを選出する（ステップＳ１０４）。
【００９６】
シナリオ選出部２０２は、ステップＳ１０４で選出されたシナリオＳをロボット駆動部２０３に出力する。ロボット駆動部２０３は、シナリオ選出部２０２から出力されたシナリオＳでロボット１０を移動させるように、ロボット１０を制御する（ステップＳ１０６）。
【００９７】
ロボット駆動部２０３は、ステップＳ１０６でロボット１０を制御した結果が成功か否かを判断し、その結果とシナリオＳとを関連付けて実行ログ記憶部２０５に記憶する（ステップＳ１０８）。
【００９８】
本実施の形態によれば、実行ログのうち、速度レベルがゴールＧの速度レベルと一致するもののみを用いてシナリオＳを選出するため、より適切なシナリオを選出することができる。
【００９９】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。特に、第１、第２の実施の形態では、ロボットと制御装置とが別に設けられたロボットシステムを提供する場合を例示したが、本発明は、ロボットと制御装置とが別に設けられたロボットシステムとして提供してもよいし、ロボットに制御装置等が含まれたロボットとして提供してもよいし、制御装置を備えたロボット制御装置として提供してもよい。また、本発明は、ロボット等を制御するプログラムやプログラムを記憶した記憶媒体として提供することもできる。
【符号の説明】
【０１００】
１、２：ロボットシステム、１０：ロボット、１１：アーム、１２：ジョイント、１３：リンク、１４：ハンド、２０：制御装置、２１：ＣＰＵ、２２：メモリー、２３：外部記憶装置、２４：通信装置、２５：入力装置、２６：出力装置、３０：第１撮像部、３１：第２撮像部、２０１：情報取得部、２０２：シナリオ選出部、２０３：ロボット駆動部、２０４：ライブラリー記憶部、２０５：実行ログ記憶部、２０５１：番号格納領域、２０５２  ：シナリオ名格納領域、２０５３：パラメーター格納領域、２０５３ａ：Ａ格納領域、２０５３ｂ：ＸＳ格納領域、２０５３ｃ：ＸＥ格納領域、２０５３ｄ：Ｘ１格納領域、２０５３ｅ：Ｘ２格納領域、２０５３ｆ：速度格納領域、２０５４：実行結果格納領域
【図１】
2014184531.tif 000003
【図２】
2014184531.tif 000004
【図３】
2014184531.tif 000005
【図４】
2014184531.tif 000006
【図５】
2014184531.tif 000007
【図６】
2014184531.tif 000008
【図７】
2014184531.tif 000009
【図８】
2014184531.tif 000010
【図９】
2014184531.tif 000011
【図１０】
2014184531.tif 000012
【図１１】
2014184531.tif 000013