(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-10
(45)【発行日】2025-06-18
(54)【発明の名称】制約条件取得装置、制御システム、制約条件取得方法およびプログラム
(51)【国際特許分類】
B25J 9/10 20060101AFI20250611BHJP
B25J 13/00 20060101ALI20250611BHJP
【FI】
B25J9/10 A
B25J13/00 Z
(21)【出願番号】P 2023549226
(86)(22)【出願日】2021-09-22
(86)【国際出願番号】 JP2021034886
(87)【国際公開番号】W WO2023047496
(87)【国際公開日】2023-03-30
【審査請求日】2024-03-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】大山 博之
(72)【発明者】
【氏名】高野 凜
【審査官】國武 史帆
(56)【参考文献】
【文献】国際公開第2019/098044(WO,A1)
【文献】特開2019-152971(JP,A)
【文献】国際公開第2020/157862(WO,A1)
【文献】特開2015-051469(JP,A)
【文献】特表2020-522394(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05D 1/00 - 1/87
(57)【特許請求の範囲】
【請求項1】
制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得する時系列データ取得手段と、
パラメータを含む制約条件である制約条件テンプレートを取得するテンプレート取得手段と、
前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定する制約条件算出手段と、
を備え
、
前記テンプレート取得手段は、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外する、
制約条件取得装置。
【請求項2】
前記制御対象の制御における複数の制約条件を、前記制約条件の種類に応じて、解探索問題における目的関数に割り当てるか、前記解探索問題における制約条件に割り当てるかの割り当て方法を決定して前記解探索問題を設定し、設定した前記解探索問題では前記パラメータの値が決定されない場合、前記割り当て方法を変更して解探索問題を設定し直す問題設定手段を更に備え、
前記制約条件算出手段は、前記問題設定手段が設定する前記解探索問題を解いて前記パラメータの値を決定する、
請求項
1に記載の制約条件取得装置。
【請求項3】
前記問題設定手段は、複数の前記時系列データのそれぞれを、前記制御対象の制御における同一の不等式制約条件に入力して得られる、前記解探索問題における複数の不等式制約条件について、それらの不等式制約条件を構成する関数の、時系列データおよび時刻のそれぞれについての最大値または最小値を用いて、前記解探索問題における複数の不等式制約条件を1つの不等式制約条件に統合する、
請求項
2に記載の制約条件取得装置。
【請求項4】
前記問題設定手段は、前記制御対象の制御における複数の不等式制約条件に応じた、前記解探索問題における複数の不等式制約条件について、前記不等式制約条件を構成する複数の関数を、それら複数の関数値の引数値毎の最大値を近似する関数、または、それら複数の関数値の引数値毎の最小値を近似する関数に統合することで、前記解探索問題における複数の不等式制約条件を1つの不等式制約条件に統合する、
請求項
2または請求項
3に記載の制約条件取得装置。
【請求項5】
前記制約条件算出手段が決定した前記パラメータの値よりも制約条件が緩和される前記パラメータの値のもとで前記タスクを実行するための前記制御対象に対する制御指令情報を算出する判定用情報算出手段を更に備える、
請求項1から
4の何れか一項に記載の制約条件取得装置。
【請求項6】
制御対象を動作させる操作を取得する操作受付手段と、
前記制御対象に、前記操作に示される動作とは異なる動作を行わせる必要があるか否かを判定する判定手段と、
前記制御対象に前記異なる動作を行わせる必要があると前記判定手段が判定した場合、前記制御対象に前記異なる動作を行わせる操作を示す情報を表示する操作指示手段と、
を備え
、
前記制約条件算出手段は、前記異なる動作で得られた前記制御についての時系列データに基づいて、前記パラメータの値を決定する、
請求項1から5の何れか一項に記載の制約条件取得装置。
【請求項7】
制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得する時系列データ取得手段と、
パラメータを含む制約条件である制約条件テンプレートを取得するテンプレート取得手段と、
前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定する制約条件算出手段と、
前記制約条件テンプレートに決定された前記パラメータの値が設定されて示される制約条件に従って前記制御対象を制御して前記所定のタスクを実行する制御手段と、
を備え
、
前記テンプレート取得手段は、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外する、
制御システム。
【請求項8】
コンピュータが、
制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得し、
パラメータを含む制約条件である制約条件テンプレートを取得し、
前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定する、
ことを含
み、
前記制約条件テンプレートを取得することは、前記コンピュータが、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外することを含む、
制約条件取得方法。
【請求項9】
コンピュータに、
制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得することと、
パラメータを含む制約条件である制約条件テンプレートを取得することと、
前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定することと、
を実行させ
、
前記制約条件テンプレートを取得することでは、前記コンピュータに、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外することを実行させる
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制約条件取得装置、制御システム、制約条件取得方法およびプログラムに関する。
【背景技術】
【0002】
ロボットなど制御対象の制御において制約条件が設定され、制約条件を満たすように制御が行われる場合がある。
例えば、特許文献1に記載のロボット制御装置では、制御対象であるロボットアームの可動範囲が、予め4つの空間に分割される。そして、分割された可動範囲毎に、減速機等の伝達要素に発生する負荷トルクが許容範囲内となるように、各関節の加加速度(加速度の微分)制約値が予め設定される。ロボット制御装置は、加加速度制約値を不等式制約として最適化問題を解いて、ロボットアームが指定された軌道を通るような制御指令値を求める。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
制御対象の制御の際に、予め設定されている制約条件以外の制約条件を取得できれば、制約条件を設定する作業者の負担を軽減することができ、また、明確になっていない制約条件がある場合にも制御を行うことができる。
【0005】
本発明の目的の一例は、上述した課題を解決することのできる制約条件取得装置、制御システム、制約条件取得方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第一の態様によれば、制約条件取得装置は、制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得する時系列データ取得手段と、パラメータを含む制約条件である制約条件テンプレートを取得するテンプレート取得手段と、前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定する制約条件算出手段と、を備え、前記テンプレート取得手段は、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外する。
【0008】
本発明の第二の態様によれば、制御システムは、制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得する時系列データ取得手段と、パラメータを含む制約条件である制約条件テンプレートを取得するテンプレート取得手段と、前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定する制約条件算出手段と、前記制約条件テンプレートに決定された前記パラメータの値が設定されて示される制約条件に従って前記制御対象を制御して前記所定のタスクを実行する制御手段と、を備え、前記テンプレート取得手段は、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外する。
【0009】
本発明の第三の態様によれば、制約条件取得方法は、コンピュータが、制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得し、パラメータを含む制約条件である制約条件テンプレートを取得し、前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定する、ことを含み、前記制約条件テンプレートを取得することは、前記コンピュータが、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外することを含む。
【0010】
本発明の第四の態様によれば、プログラムは、コンピュータに、制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得することと、パラメータを含む制約条件である制約条件テンプレートを取得することと、前記成功時時系列データでは前記制約条件が成立となり、前記失敗時時系列データでは前記制約条件が不成立となるように、前記パラメータの値を決定することと、を実行させ、前記制約条件テンプレートを取得することでは、前記コンピュータに、複数の前記制約条件テンプレートのうち、前記成功時時系列データでは前記制約条件が成立となり、かつ、前記失敗時時系列データでは前記制約条件が不成立となるような、前記パラメータの値が存在しない前記制約条件テンプレートを、取得対象から除外することを実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、予め設定されている制約条件以外の制約条件を取得し得る。
【図面の簡単な説明】
【0012】
【
図1】第一実施形態に係る制御システムの構成の例を示す図である。
【
図2】第一実施形態に係る制約条件取得装置の構成の例を示す図である。
【
図3】第一実施形態に係る制御システムにおけるデータの入出力の例を示す図である。
【
図4】第一実施形態に係る制御対象の動作の例を示す図である。
【
図5】第一実施形態に係る時系列データと、未知の不等式制約条件として設定される領域との関係の例を示す図である。
【
図6】第一実施形態に係る解探索問題の枠組みの選択基準の例を示す図である。
【
図7】第一実施形態に係る統合部による統合対象のデータの例を示す図である。
【
図8】第一実施形態に係る制御システムが行う処理の手順の例を示す図である。
【
図9】第一実施形態の変形例に係る制約条件取得装置の構成の例を示す図である。
【
図10】第一実施形態の変形例に係る制約条件の更新の例を示す図である。
【
図11】第一実施形態の変形例に係る制御システムにおけるデータの入出力の例を示す図である。
【
図12】第一実施形態の変形例に係る制御システムにおける処理の手順の例を示す図である。
【
図13】第一実施形態の変形例に係る制約条件取得装置が、制約条件式に加えて時相論理式を用いる場合のデータの入出力の例を示す図である。
【
図14】第一実施形態の変形例に係る時相論理を用いて表される制約条件が示す領域の例を示す図である。
【
図15】第二実施形態に係る制御システムの構成の例を示す図である。
【
図16】第二実施形態に係る制御システムにおけるデータの入出力の例を示す図である。
【
図17】第二実施形態に係る操作指示部による画面表示の例を示す図である。
【
図18】第三実施形態に係る制約条件取得装置の構成の例を示す図である。
【
図19】第四実施形態に係る制御システムの構成の例を示す図である。
【
図20】第五実施形態に係る制御システムの構成の例を示す図である。
【
図21】第六実施形態に係る制約条件取得方法における処理の手順の例を示す図である。
【
図22】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0014】
<第一実施形態>
図1は、第一実施形態に係る制御システムの構成の例を示す図である。
図1に示す構成で、制御システム1は、制約条件取得装置10と、制御装置20と、制御対象30とを備える。
【0015】
制御システム1は、制御対象30を制御する。制御システム1では、制御対象30を制御して実行されるタスク(Task、課題)が設定される。制御システム1は、設定されたタスクを実行するように制御対象30を制御する。
以下では、タスクを達成することを、タスク成功、あるいは単に成功とも称する。タスクを達成できないことを、タスク失敗、あるいは単に失敗とも称する。
【0016】
以下では、制御対象30がロボットアーム(垂直多関節ロボット)である場合を例に説明する。ただし、制御システム1による制御の対象は特定のものに限定されない。制御対象30が1つの装置として構成されていてもよいし、プラントまたは生産ラインなど複数の装置を組み合わせたシステムとして構成されていてもよい。あるいは、制御対象30が、装置の一部であってもよい。
制御対象30が、制御システム1の一部として構成されていてもよい。あるいは、制御対象30が、制御システム1の外部の構成となっていてもよい。
【0017】
制約条件取得装置10は、制御対象30の制御における制約条件を設定する。具体的には、制約条件取得装置10は、タスク成功の場合、タスク失敗の場合のそれぞれについて、制御対象30の制御の時系列データを取得する。制御対象30の制御の時系列データを、単に時系列データとも称する。タスク成功の場合の時系列データを、成功時時系列データとも称する。タスク失敗の場合の時系列データを、失敗時時系列データとも称する。
【0018】
制約条件取得装置10は、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、制約条件を設定する。ここでいう、制約条件が成立となることは、時系列データにおける全ての時刻で複数の制約条件が全て成立することであってもよい。制約条件が不成立となることは、時系列データにおける少なくとも何れかの時刻で複数の制約条件のうち1つ以上が成立しないことであってもよい。
【0019】
制約条件取得装置10は、例えばパソコン(Personal Computer;PC)などのコンピュータを用いて構成される。あるいは、制約条件取得装置10が、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)を用いて構成されるなど、制約条件取得装置10専用のハードウェアを用いて構成されていてもよい。
【0020】
制御装置20は、制約条件取得装置10が設定する制約条件を満たすように、制御対象30を制御する。ここでいう制約条件を満たすことは、制約条件が成立すること、あるいは、制約条件が成立するようにすることである。
制御装置20が制御対象30を制御する手法として、例えば、制御装置20が、制約条件取得装置10が設定した制約条件を含む最適化問題を解いて制御対象30の軌跡を決定するようにしてもよい。そして、制御装置20が、決定した軌跡に沿って制御対象30を動作させるように、制御対象30を制御するようにしてもよい。
制御装置20は、制御手段の例に該当する。
【0021】
制御装置20は、例えばパソコンなどのコンピュータを用いて構成される。あるいは、制御装置20が、ASICまたはFPGAを用いて構成されるなど、制御装置20専用のハードウェアを用いて構成されていてもよい。
制約条件取得装置10と制御装置20とが一体的に構成されていてもよい。例えば、制約条件取得装置10と制御装置20とが同一のコンピュータ上で実行されてもよい。
【0022】
ここで、時刻をタイムステップで表すこととし、時刻0、1、・・・と表記する。
タイムステップの1ステップにおける制御対象30のダイナミクスモデルは、式(1)のように表すことができる。
【0023】
【0024】
tは、時刻をタイムステップで表す整数である。
utは、時刻tにおける制御対象30に対する制御指令値を表すベクトルである。制御対象30に対する制御指令値を、制御対象30への入力、あるいは単に入力とも称する。utを、入力utとも称する。
【0025】
xtは、時刻tにおける制御対象30の位置など、時刻tにおいて観測または推定可能な状態を表すベクトルである。上記のように、ここでは制御対象30がロボットアームである場合を例に説明し、xtに制御対象30の先端部分の位置情報が含まれているものとする。制御対象30の先端部分の位置は、制御対象30のエンドエフェクタの位置であってもよい。xtを、状態xtとも称する。
ただし、制御システム1が取得する状態情報は特定のものに限定されない。
【0026】
関数fは、時刻tでの状態xtにおける入力utに対する制御対象30の動作を表す。制御対象30の動作によって状態xtから状態xt+1に変化している。
1回のタスク実行における制御対象30の制御の時系列データξjは、式(2)のように示される。
【0027】
【0028】
Nsは、制約条件取得装置10が取得する時系列データの個数を表す。制約条件取得装置10が取得する時系列データの個数は、制約条件取得装置10が取得するサンプル数ともいえる。
jは、時系列データを識別する識別番号を表す。
Ntは、時系列データにおける最終の時刻を示す。時系列データ毎に時刻Ntが異なっていてもよい。この場合、ベクトルとしてのξjの要素の個数が、時系列データ毎に異なっていてもよい。あるいは、タイムステップ数が少ない時系列データについてダミーのデータを設けて、ベクトルとしてのξjの要素の個数を揃えるようにしてもよい。
【0029】
ベクトルまたは行列に上付の「T」は、そのベクトルまたは行列の転置(transpose)を表す。式(2)の例では、ベクトルの転置によって、時系列データξjを、全ての要素を1つの列に並べた縦ベクトル(column vector)にて表している。
時系列データξjの各々は、タスク成功かタスク失敗かを示す情報と紐付けられている。タスク成功の場合の時系列データξjを、ξj
sとも表記する。ξj
sを、成功時時系列データξj
sとも称する。タスク失敗の場合の時系列データξjを、ξj
fとも表記する。ξj
fを、失敗時時系列データξj
fとも称する。
【0030】
時系列データξjに含まれる状態xtを、状態xj,tとも表記する。時系列データξjに含まれる入力utを、入力uj,tとも表記する。
制約条件取得装置10が取得するNs個の時系列データを、式(3)のξのように表すことができる。
【0031】
【0032】
式(3)でも、ベクトルの転置によって、ξを、全ての要素を1つの列に並べた縦ベクトルにて表している。
ξを学習データ(Training Data)とも称する。ここでの学習(Training)は、制約条件取得装置10が、制御対象30の制御における新たな制約条件を取得することである。
制約条件取得装置10が、制御対象30の実機を用いて得られた学習データを取得するようにしてもよい。あるいは、制約条件取得装置10が、制御対象30の動作のシミュレーションによる学習データを取得するようにしてもよい。
【0033】
図2は、制約条件取得装置10の構成の例を示す図である。
図2に示す構成で、制約条件取得装置10は、通信部110と、表示部120と、操作入力部130と、記憶部170と、制御部180とを備える。記憶部170は、テンプレート記憶部171と、設定済情報記憶部172と、枠組み情報記憶部173とを備える。制御部180は、時系列データ取得部181と、制約条件推定部182とを備える。制約条件推定部182は、テンプレート取得部183と、問題設定部184と、制約条件算出部186とを備える。問題設定部184は、統合部185を備える。制約条件算出部186は、制約条件判定部187を備える。
【0034】
通信部110は、他の装置と通信を行う。例えば、通信部110が、制御装置20および制御対象30、またはこれらのうち何れか一方と通信を行って、学習データを取得するようにしてもよい。あるいは、通信部110が、制御対象30の動作を模擬するシミュレータと通信を行って学習データを取得するようにしてもよい。
また、通信部110は、制約条件取得装置10が設定した制約条件を示す情報を制御装置20へ送信する。
【0035】
表示部120は、例えば液晶パネルまたはLED(Light Emitting Diode、発光ダイオード)パネルなどの表示画面を備え、各種画像を表示する。例えば、表示部120が、制約条件取得装置10が設定する制約条件を示す情報を表示するようにしてもよい。表示部120が、制約条件取得装置10が設定する制約条件を示す情報を、不等式および等式などの式にて表示するようにしてもよい。
【0036】
操作入力部130は、例えばキーボードおよびマウスなどの入力デバイスを備え、ユーザ操作を受け付ける。例えば、操作入力部130が、制約条件の設定および制御対象30の制御を指示するユーザ操作を受け付けるようにしてもよい。また、制御対象30の制御における既知の制約条件をユーザが入力する場合、操作入力部130が、制約条件を入力するユーザ操作を受け付けるようにしてもよい。
【0037】
記憶部170は、各種データを記憶する。記憶部170は、制約条件取得装置10が備える記憶デバイスを用いて構成される。
テンプレート記憶部171は、制約条件テンプレートを複数記憶する。制約条件テンプレートは、制御対象30の動作についての制約を表す情報である。制約条件テンプレートは、たとえば、パラメータを含む不等式によって表される。制約条件テンプレートのパラメータに値を設定することで、制御対象30の制御における不等式制約条件を得られる。不等式制約条件は、不等式によって表される制約条件である。
【0038】
例えば、二次元座標空間における制御対象30の移動の制御で、障害物などによって制御対象30が進入できない領域として楕円形の領域を示す制約条件テンプレートが設けられていてもよい。この場合、楕円の中心点の座標と、第一座標軸方向の楕円の径と、第二座標軸方向の楕円の径とがパラメータとなっていてもよい。制約条件テンプレートは、楕円形の領域を表す制約条件でなくともよく、矩形領域や、多角形領域であってもよい。制約条件テンプレートは、上述した例に限定されない。また、制約条件テンプレートが、ニューラルネットワークまたはガウス過程モデル等を用いて構成されていてもよい。
制約条件テンプレートは、例えば制御システム1のユーザによって設定されるなど人手によって設定されていてもよい。
【0039】
制約条件取得装置10が制約条件テンプレートを用いて生成する制約条件を、未知の制約条件とも称する。ここでいう「未知」は、制約条件が予め設定されてはおらず、制約条件取得装置10による生成対象の制約条件となることである。
未知の制約条件は、不等式で表される制約条件であってもよい。この場合の未知の制約条件を、未知の不等式制約条件とも称する。
【0040】
設定済情報記憶部172は、設定済情報を記憶する。ここでいう設定済情報は、予め定められている情報である。設定済情報に、既知の制約条件と、コスト関数と、制御パラメータ情報とが含まれていてもよい。
ここでいう既知の制約条件は、制御対象30の制御における制約条件のうち、未知の制約条件以外の制約条件である。ここでいう「既知」は、制約条件が予め設定されていることである。
【0041】
ここでいうコスト関数は、制御対象30の制御に対する評価をコストで示す関数である。
ここでいう制御パラメータ情報は、既知の制約条件およびコスト関数など、予め設けられている各種数式におけるパラメータの値を示す情報である。また、制御装置20が制御対象30に対する制御入力を生成する際に制御パラメータ情報を用いるようにしてもよい。
設定済情報またはその一部は、例えば制御システム1のユーザによって設定されるなど人手によって設定されていてもよい。
【0042】
枠組み情報記憶部173は、枠組み情報を複数記憶する。ここでいう枠組み情報は、制約条件取得装置10が制約条件テンプレートのパラメータ値を算出するために解く解探索問題の枠組みを示す情報である。ここでいう解探索問題は、設定された制約条件を満たす解を求める問題である。解探索問題は、最適化問題を含む。
【0043】
最適化問題では、制約条件に加えて目的関数が設定され、制約条件を満たす解のうち、目的関数値を最適化する解を探索する。目的関数値の最適化は、目的関数値をなるべく小さくすることであってもよい。あるいは目的関数値の最適化は、目的関数値をなるべく大きくすることであってもよい。最適化問題では、解探索の終了条件が設定され、終了条件が成立するまで解を探索する、といったことが行われる。
一方、解探索問題は、目的関数が提示されず、設定された制約条件を満たす解を求める問題であってもよい。
【0044】
例えば枠組み情報は、制御対象30の制御における複数の制約条件を、制約条件の種類に応じて、解探索問題における目的関数に割り当てるか制約条件に割り当てるかの割り当て方法を示す情報であってもよい。
【0045】
制約条件取得装置10が、複数の枠組み情報のうち何れを用いるかによって、解探索問題の計算量、解の得易さおよび解の精度が異なる。制約条件取得装置10が、制約条件の個数など計算量の指標値に応じて枠組み情報を選択するようにしてもよい。
【0046】
また、制約条件取得装置10が、比較的解を得にくく、かつ、解を得られる場合は解の精度が比較的高い解探索問題となる枠組み情報を選択して、解探索問題の設定および解探索を行うようにしてもよい。選択した枠組み情報で解を得られなかった場合、制約条件取得装置10が、比較的解を得易く、かつ、解を得られる場合の解の精度が比較的低い解探索問題となる枠組み情報を選択して、解探索問題の設定および解探索をやり直すようにしてもよい。
【0047】
制御部180は、制約条件取得装置10の各部を制御して各種処理を行う。制御部180の機能は、例えば、制約条件取得装置10が備えるCPU(Central Processing Unit、中央処理装置)が記憶部170からプログラムを読み出して実行することで実行されてもよい。
【0048】
時系列データ取得部181は、学習データを取得する。例えば、時系列データ取得部181が、通信部110の受信データから学習データを抽出するようにしてもよい。時系列データ取得部181は、成功時時系列データξj
sと、失敗時時系列データξj
fとを含む学習データを取得する。
時系列データ取得部181は、時系列データ取得手段の例に該当する。
【0049】
制約条件推定部182は、学習データに基づいて未知の制約条件を推定する。
テンプレート取得部183は、制約条件テンプレートを取得する。具体的には、テンプレート取得部183は、テンプレート記憶部171が記憶する複数の制約条件テンプレートのうち、学習データに適合しない制約条件テンプレートを取得対象から除外する。そして、テンプレート取得部183は、取得対象として残っている制約条件テンプレートの何れかを選択する。
【0050】
学習データとの適合性の判定では、テンプレート取得部183は、成功時時系列データでは制約条件が成立となり、かつ、失敗時時系列データでは制約条件が不成立となるようなパラメータの値が存在しない制約条件テンプレートを、不適合と判定し、取得対象から除外する。
【0051】
複数の制約条件テンプレートが取得対象として残っている場合に、テンプレート取得部183が、そのうちの1つの制約条件テンプレートを選択する方法は、特定の方法に限定されない。例えば、テンプレート取得部183が、複数の制約条件テンプレートの何れか1つをランダムに選択するようにしてもよい。あるいは、制約条件テンプレートに選択の優先順位が予め設定され、テンプレート取得部183が、優先順位に従って制約条件テンプレートを選択するようにしてもよい。
【0052】
この場合の優先順位の決定方法は特定の方法に限定されない。例えば、大きな領域を表す制約条件テンプレートほど優先順位が高く設定されていてもよい。そして、テンプレート取得部183が、優先順位に従って、まず、大きな領域を表す制約条件テンプレートを選択するようにしてもよい。選択したテンプレートでは学習データに適合しない場合、テンプレート取得部183が、優先順位に従って、より小さな領域を表す制約条件テンプレートを選択し直すようにしてもよい。
【0053】
あるいは、制約条件の重要性に基づいて制約条件テンプレートの優先順位が予め設定されていてもよい。例えば、ピックアンドプレースタスク(Pick and Place Task)において、ロボットが箱などにぶつからないといった安全性に関わる制約を表す制約条件テンプレートの優先順位が、物品を落とさないといったタスク成功のための制約を表す制約条件テンプレートの優先順位よりも高く設定されていてもよい。
【0054】
テンプレート取得部183が、制約条件テンプレートを複数取得するようにしてもよい。その場合、テンプレート取得部183が、一度に複数の制約条件テンプレートを取得するようにしてもよい。あるいは、テンプレート取得部183が、一度に1つの制約条件テンプレートを取得し、制約条件テンプレートの取得を繰り返し行うようにしてもよい。
テンプレート取得部183は、テンプレート取得手段の例に該当する。
【0055】
問題設定部184は、制約条件取得装置10が制約条件テンプレートのパラメータ値を算出するための解探索問題を設定する。特に、問題設定部184は、枠組み情報記憶部173が記憶する枠組み情報の何れかを選択する。これにより、問題設定部184は、制御対象30の制御における複数の制約条件を、制約条件の種類に応じて、解探索問題における目的関数に割り当てるか制約条件に割り当てるかの割り当て方法を決定する。問題設定部184は、決定した割り当て方法に従って解探索問題を設定する。
【0056】
設定した解探索問題ではパラメータ値が決定されない場合、問題設定部184が、解探索問題を設定し直すようにしてもよい。この場合、問題設定部184は、枠組み情報記憶部173が記憶する枠組み情報の何れかを選択し直す。そして、問題設定部184は、新たに選択した枠組み情報が示す割り当て方法に基づいて、解探索問題を設定する。
問題設定部184は、問題設定手段の例に該当する。
【0057】
統合部185は、解探索問題における複数の不等式制約条件を1つの不等式制約条件に統合する。ここでいう制約条件の統合は、複数の制約条件を1つの制約条件に置き換えることである。
統合部185は、複数の時系列データのそれぞれを、制御対象30の制御における同一の制約条件に入力して求まる、解探索問題における複数の不等式制約条件を、1つの不等式制約条件に統合する。具体的には、統合部185は、不等式制約条件を構成する関数の、時系列データおよび時刻のそれぞれについての最大値または最小値を求める。統合部185は、解探索問題における複数の不等式制約条件を、得られた最大値または最小値を用いた不等式制約条件に統合する。
この場合の、統合部185が解探索問題における不等式制約条件を統合する処理は、複数の不等式制約条件のうち、不等式の境界に最も近い制約条件(制約条件の成立が最も厳しい制約条件)を近似的に求める処理に相当する。
【0058】
また、統合部185は、制御対象30の制御における複数の不等式制約条件に応じて求まる、解探索問題における複数の不等式制約条件を、1つの不等式制約条件に統合する。具体的には、統合部185は、制御対象30の制御における複数の不等式制約条件を構成する複数の関数を、それら複数の関数値の引数値毎の最大値を近似する関数、または、それら複数の関数値の引数値毎の最小値を近似する関数に統合する。この場合も、統合部185が解探索問題における不等式制約条件を統合する処理は、複数の不等式制約条件のうち、不等式の境界に最も近い制約条件(制約条件の成立が最も厳しい制約条件)を近似的に求める処理に相当する。
【0059】
統合部185による制約条件の統合は、不等式制約条件が成立しない領域のor(論理和)をとること(すなわち、領域の和集合を求めること)に相当する。したがって、統合前の制約条件のうち何れか1つ以上が成立しないことは、統合後の制約条件が成立しないことで示される。
統合部185は、最大値を近似する関数、最小値を近似する関数として、それぞれ微分可能な関数を用いる。これにより、統合後の制約条件を用いた解探索問題を解くことが比較的容易になる。
【0060】
制約条件算出部186は、問題設定部184が設定した解探索問題を解くことで制約条件テンプレートのパラメータ値を算出する。これにより、制約条件算出部186は、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、パラメータの値を決定する。
制約条件算出部186は、制約条件算出手段の例に該当する。
【0061】
制約条件判定部187は、制約条件テンプレートのパラメータ値を得られたか否かを判定する。例えば、制約条件判定部187は、解探索問題の終了条件として設定されている条件が成立しているか否かを判定する。あるいは、制約条件判定部187が、解探索問題で設定された制約条件を満たすパラメータ値が得られたか否かを直接的に判定するようにしてもよい。
【0062】
制約条件テンプレートのパラメータ値を得られていないと判定した場合、制約条件判定部187は、枠組み情報記憶部173が記憶する枠組み情報のうち、選択可能な枠組み情報が残っているか否かを判定する。選択可能な枠組み情報が残っていると制約条件判定部187が判定した場合、制約条件推定部182は、未知の制約条件を推定する処理を、問題設定部184による枠組み情報の選択からやり直す。一方、選択可能な枠組み情報が残っていないと制約条件判定部187が判定した場合、制約条件推定部182は、未知の制約条件を推定する処理を、テンプレート取得部183による制約条件テンプレートの選択からやり直す。さらに、テンプレート記憶部171が記憶する制約条件テンプレートのうち、選択可能な制約条件テンプレートが残っていないと制約条件判定部187が判定した場合、制約条件推定部182は、未知の制約条件の推定に失敗したと判定して処理を終了する。
【0063】
図3は、制御システム1におけるデータの入出力の例を示す図である。
図3の例では、時系列データ取得部181は、制御対象30の実機を用いて得られる学習データξを取得している。制約条件取得装置10について上述したように、時系列データ取得部181が、制御対象30の動作のシミュレーションによる学習データξを取得するようにしてもよい。
【0064】
上記のように、学習データξを構成する個々の時系列データξjには、時系列データ毎かつ時刻毎の状態xtと入力utとが含まれる。ここでは、制御対象30の例としてのロボットアームの先端部分の位置の二次元座標表現を状態xtとし、タイムステップ間におけるロボットアームの先端部分の移動量指令値の二次元座標表現を入力utとする場合を例に説明する。
【0065】
図4は、制御対象30の動作の例を示す図である。
図4の例では、タスク成功時のロボットアームの先端部分の軌道を示す線L111と、タスク失敗時のロボットアームの先端部分の軌道を示す線L121とが示されている。
線L111上には、成功時時系列データξ
j
sに含まれる状態x
0からx
5としての、ロボットアームの先端位置がプロットされている。状態x
0は、ロボットアームの先端部分の動作開始位置を示し、状態x
5は、動作終了位置を示す。
【0066】
線L121上には、失敗時時系列データξj
fに含まれる状態x0からx5としての、ロボットアームの先端位置がプロットされている。状態x0は、ロボットアームの先端部分の動作開始位置を示し、状態x5は、動作終了位置を示す。線L121に示されるタスク実行では、ロボットアームの先端部分は、線L111に示されるタスク実行の場合と異なる位置から動作を開始し、線L111に示されるタスク実行の場合と同じ位置で動作を終了している。
【0067】
また、
図4には、制御システム1がタスクに成功するためにロボットアームの先端部分が進入を避けるべき領域A111が示されている。ここでは、タスクとして、ロボットアームが荷物を把持して運搬する場合を例に説明する。ロボットアームの先端部分が、領域A111に例示される所定の領域に侵入した場合、例えば荷物が障害物に接触してロボットアームが荷物を落としてしまう等により、制御システム1がタスクに失敗するものとする。
【0068】
時系列データξjに示される状態として制御対象30としてのロボットアームの先端部分の二次元座標を用いる場合、時刻tにおける状態xtは、式(4)のように表すことができる。
【0069】
【0070】
ここでは、二次元座標の座標軸を、第1軸および第2軸と称する。
xt1、xt2は、それぞれ第1軸における座標値、第2軸における座標値を示す。
「;」は縦ベクトル表記を表す。すなわち、「;」はベクトルの要素を縦に並べてベクトルを表記することを示す。
【0071】
制御対象30への入力(指令値)を時間ステップ間における状態変化量の指令値で表す場合、時刻tにおける入力は、式(5)のように表すことができる。
【0072】
【0073】
ut1、ut2は、それぞれ第1軸における座標値の変化量、第2軸における座標値の変化量を示す。
【0074】
制約条件推定部182は、学習データξに基づいて、制御対象30の制御における制約条件を推定する。具体的には、制約条件推定部182は、成功時時系列データξj
sでは制約条件が成立し、失敗時時系列データξj
fでは制約条件が成立しないように、制約条件を設定する。制御装置20が、制約条件が成立するように制御対象30を制御することで、タスクに成功することが期待される。
【0075】
制御対象30の制御における制約条件として、既知の等式制約条件と、既知の不等式制約条件と、未知の不等式制約条件とがあるものとする。
既知の等式制約条件を、式(6)のように表記することができる。
【0076】
【0077】
Nk
eqは、既知の等式制約条件の個数を示す。式(6)では、iは、既知の等式制約条件を識別する識別番号を示す。
hi,kは、等式を構成する関数である。ξjは、1回のタスク実行における時系列データを示す。等式制約条件hi,k(ξj)=0は、個々のタスク実行においてタスクを達成するために満たされるべき必要条件を示す。
【0078】
「hi,k」の「i」は、上記の識別番号を示す。「k」は、等式制約条件hiが既知であることを示す。
式(6)で示されるNk
eq個の制約条件を、ベクトルを用いて式(7)のように表すことができる。
【0079】
【0080】
hk(ξj)は、h1,k(ξj)、・・・、hNkeq,k(ξj)を要素とするベクトルであり、式(8)のように縦ベクトルで表される。
【0081】
【0082】
式(7)の右辺の「0」は、要素値が0の縦ベクトルである。式(7)は、hk(ξj)の各要素の値が0である、という制約条件を示す。
「hk」の「k」も、等式制約条件hが既知であることを示す。
既知の不等式制約条件を、式(9)のように表すことができる。
【0083】
【0084】
Nk
ineqは、既知の不等式制約条件の個数を示す。式(9)では、iは、既知の不等式制約条件を識別する識別番号を示す。
gi,kは、不等式を構成する関数である。ξjは、1回のタスク実行における時系列データを示す。不等式制約条件gi,k(ξj)≦0は、個々のタスク実行においてタスクを達成するために満たされるべき必要条件を示す。
【0085】
「gi,k」の「i」は、上記の識別番号を示す。「k」は、不等式制約条件giが既知であることを示す。
式(9)で示されるNk
ineq個の制約条件を、ベクトルを用いて式(10)のように表すことができる。
【0086】
【0087】
gk(ξj)は、g1,k(ξj)、・・・、gNkineq,k(ξj)を要素とするベクトルであり、式(7)の「hk(ξj)」の場合と同様、縦ベクトルで表される。
式(10)の右辺の「0」は、要素値が0の縦ベクトルである。式(10)は、gk(ξj)の各要素の値が0以下である、という制約条件を示す。
「gk」の「k」も、不等式制約条件gが既知であることを示す。
未知の不等式制約条件を、式(11)のように表すことができる。
【0088】
【0089】
Nuk
ineqは、未知の不等式制約条件の個数を示す。式(11)では、iは、未知の不等式制約条件を識別する識別番号を示す。
gi,ukは、不等式を構成する関数である。ξjは、1回のタスク実行における時系列データを示す。
【0090】
また、gi,ukは、未知の不等式を構成する関数であることから、パラメータθを備えるテンプレートの形式で示されている。パラメータθが、ベクトルで示されていてもよい。すなわち、パラメータθの値として、複数のベクトル要素値を設定するようになっていてもよい。
制約条件取得装置10は、例えば、未知の不等式制約条件のテンプレートを複数種類記憶しておく。そして、制約条件取得装置10は、得られる学習データξに応じて、複数種類のテンプレートのうち何れかを選択し、パラメータθの値を設定する。
【0091】
パラメータθの値が設定された不等式制約条件gi,uk(ξj,θ)≦0は、タスク実行においてタスクを達成するために満たされるべき必要条件を示す。制約条件取得装置10が、制御対象30の動作環境および既知の制約条件に応じて、テンプレートの選択およびパラメータ値の設定を繰り返し行い、未知の不等式制約条件を複数個生成するようにしてもよい。上記のように、未知の不等式制約条件の個数をNuk
ineqと表記する。
制約条件取得装置10が、同一の種類のテンプレートのパラメータθに異なる値を設定した場合、それぞれを別々の制約条件として扱うものとする。
【0092】
「gi,uk」の「i」は、上記の識別番号を示す。「uk」は、不等式制約条件giが未知であることを示す。
式(11)で示されるNuk
ineq個の制約条件を、ベクトルを用いて式(12)のように表すことができる。
【0093】
【0094】
guk(ξj,θ)は、g1,k(ξj,θ)、・・・、gNukineq,uk(ξj,θ)を要素とするベクトルであり、式(7)の「hk(ξj)」の場合と同様、縦ベクトルで表される。
式(12)の右辺の「0」は、要素値が0の縦ベクトルである。式(12)は、guk(ξj,θ)の各要素の値が0以下である、という制約条件を示す。
「guk」の「uk」も、不等式制約条件gが未知であることを示す。
【0095】
図4を参照して、制約条件の例について説明する。
上記のように、入力u
tを時間ステップ間における状態変化量の指令値で表す場合、制御対象30への入力と状態変化との関係は、式(13)のように表される。
【0096】
【0097】
式(13)は、状態が、時刻tにおける状態xtから入力utに応じて変化して、時刻t+1における状態xt+1となっていることを表す。
式(13)は、既知の等式制約条件の例に該当する。
【0098】
また、制御対象30の仕様等により、制御対象30への入力値に上下限値が定められていることが考えられる。例えば、座標軸毎の座標値の変化量を示す、式(5)の入力uti(i=1,2)の上下限値として、式(14)に示される上限値uineqおよび下限値-uineqが、制御対象30の動特性に応じて規定されることが考えられる。
【0099】
【0100】
uineqは、正の実数の定数である。
i=1の場合、および、i=2の場合のそれぞれについて、式(14)で示される不等式「-uineq≦uti」および「uti≦uineq」のそれぞれは、既知の不等式制約条件の例に該当する。
【0101】
制御対象30が領域A111に進入しないとの制約条件は、式(15)のように表すことができる。
【0102】
【0103】
xcおよびycは、領域A111が楕円形の領域であるとした場合の中心座標を示す。xcが第1軸の座標値を示し、ycが第2軸の座標値を示す。aおよびbは、楕円の長径および単径を示す。aおよびbのうち何れが長径を示していてもよい。また、a=bであってもよく、この場合は、領域A111は円形の領域として表される。
【0104】
式(15)では、例えば、「xc」、「yc」、「a2」および「b2」のそれぞれをパラメータとして扱うことができる。この場合パラメータのベクトルθは、式(16)のように表すことができる。
【0105】
【0106】
各パラメータの値が定まっていない状態での式(15)は、未知の不等式制約条件のテンプレートの例に該当する。各パラメータの値が定まっている状態での式(15)は、未知の不等式制約条件の例に該当する。
テンプレート取得部183が、テンプレート記憶部171が記憶しているテンプレートの何れかを選択し、制約条件算出部186がテンプレートのパラメータ値を設定することで、未知の不等式制約条件が得られる。
【0107】
制約条件推定部182において、テンプレート取得部183は、テンプレート記憶部171が記憶する制約条件テンプレートのうち何れかを学習データに基づいて選択する。
上記のように、テンプレート取得部183は、成功時時系列データでは制約条件が成立し、かつ、失敗時時系列データでは制約条件が不成立となるようなパラメータの値が存在しない制約条件テンプレートを、不適合と判定し、取得対象から除外する。
成功時時系列データで制約条件が成立となることは、式(12)の時系列データξjを成功時時系列データξj
sとして、式(17)のように表される。
【0108】
【0109】
失敗時時系列データで制約条件が不成立となることは、式(12)の不等号「≦」を「>」に置き換え、時系列データξjを失敗時時系列データξj
fとして、式(18)のように表される。
【0110】
【0111】
テンプレート取得部183は、全ての成功時時系列データξj
sの全ての時刻について式(17)が成立し、かつ、1つ以上の失敗時時系列データξj
fの1つ以上の時刻について式(18)が成立するような、パラメータθの値が存在する制約条件テンプレートを1つ以上選択する。
一方、テンプレート取得部183は、全ての成功時時系列データξj
sの全ての時刻について式(17)が成立し、かつ、1つ以上の失敗時時系列データξj
fの1つ以上の時刻について式(18)が成立するような、パラメータθの値が存在しない制約条件テンプレートについては、予め選択の対象から除外しておく。
【0112】
図5は、時系列データと、未知の不等式制約条件として設定される領域との関係の例を示す図である。
図5の例で、タスク成功時のロボットアームの先端部分の軌道を示す線L211と、タスク失敗時のロボットアームの先端部分の軌道を示す線L221とが示されている。線L211、および、線L211上にプロットされている状態x
0からx
5は、
図4の線L111、および、線L111上にプロットされている状態x
0からx
5と同様である。線L221、および、線L221上にプロットされている状態x
0からx
5は、
図4の線L121、および、線L121上にプロットされている状態x
0からx
5と同様である。
【0113】
また、
図5では、領域A211、A221およびA222が示されている。失敗時時系列データξ
j
fに含まれる何れの状態も、領域A211には含まれていない。一方、失敗時時系列データξ
j
fに含まれる状態のうち、状態x
0およびx
1が、領域A221に含まれている。また、失敗時時系列データξ
j
fに含まれる状態のうち、状態x
2およびx
3が、領域A222に含まれている。
【0114】
ここでは、制御対象30が進入できない領域として楕円形の領域を示す制約条件テンプレートが設けられ、第一座標軸方向の楕円の径と、第二座標軸方向の楕円の径とがパラメータとなっているものとする。一方、楕円の中心点の座標については、制約条件テンプレートに予め設定されているものとする。テンプレート取得部183は、異なる座標が設定されている複数の制約条件テンプレートのうち、学習データに応じて適切な座標が設定されている制約条件テンプレートを選択する。
【0115】
上記のように、失敗時時系列データξj
fに含まれる状態のうち、状態x0およびx1が、領域A221に含まれている。そこで、領域A221の外側で条件成立となり領域A221の内側で条件不成立となるように不等式制約条件を設定することで、成功時時系列データξj
sでは制約条件が成立となり、失敗時時系列データξj
fでは制約条件が不成立となる。
【0116】
また、失敗時時系列データξj
fに含まれる状態のうち、状態x2およびx3が、領域A222に含まれている。そこで、領域A222の外側で条件成立となり領域A222の内側で条件不成立となるように不等式制約条件を設定することで、成功時時系列データξj
sでは制約条件が成立となり、失敗時時系列データξj
fでは制約条件が不成立となる。
したがって、テンプレート取得部183は、領域A221を示す制約条件テンプレート、または、領域A222を示す制約条件テンプレートの何れか一方、または両方を選択し得る。
【0117】
一方、失敗時時系列データξj
fに含まれる何れの状態も、領域A211には含まれていない。領域A211を示す制約条件テンプレートのパラメータ値を変えることで楕円の径を変えても、成功時時系列データに含まれる状態が先に領域A211内に含まれるようになり、失敗時時系列データに含まれる状態のみが領域A211内に含まれるようにすることはできない。
【0118】
このように、領域A211を示す制約条件テンプレートでは、成功時時系列データでは制約条件が成立となり、かつ、失敗時時系列データでは制約条件が不成立となるようなパラメータの値は存在しない。
したがって、テンプレート取得部183は、領域A211を示す制約条件テンプレートを選択対象の候補から除外し、選択しない。
【0119】
テンプレート取得部183が、制約条件テンプレートを選択する際、パラメータの値がとり得る範囲を設定しておくようにしてもよい。例えば、テンプレート取得部183が、領域A221を示す制約条件テンプレートを選択する際、失敗時時系列データξj
fの状態x2またはx3の少なくとも何れか一方は領域A221内に含まれ、かつ、成功時時系列データξj
sの何れの状態も領域A221に含まれないパラメータ値の範囲を算出するようにしてもよい。制約条件算出部186が、解探索問題を解いてパラメータ値を算出する際、テンプレート取得部183が算出したパラメータ値の範囲内を探索すればよく、この点で、制約条件算出部186の負荷を軽減させることができる。
【0120】
テンプレート取得部183がさらに、設定済情報記憶部172が記憶する制御パラメータ情報、コスト関数、または、既知の制約条件の何れか、あるいはこれらの組み合わせに基づいて、制約条件テンプレートを選択するようにしてもよい。
例えば、テンプレート取得部183が、既知の制約条件に内包される制約条件を示す制約条件テンプレートを選択対象から除外して、他の制約条件テンプレートを選択するようにしてもよい。また、テンプレート取得部183が、コスト関数の最適化に影響しない制約条件を示す制約条件テンプレートを選択対象から除外して、他の制約条件テンプレートを選択するようにしてもよい。
【0121】
問題設定部184は、設定済情報記憶部172が記憶する設定済情報、および、テンプレート取得部183が取得した制約条件テンプレートに基づいて、制約条件テンプレートのパラメータ値を算出するための解探索問題を設定する。その際、問題設定部184は、枠組み情報記憶部173が記憶する枠組み情報に基づいて、解探索問題の枠組みを決定する。
【0122】
制御システム1における制約条件の表現形式は特定の形式に限定されず、制約条件の一部を不等式で表現可能ないろいろな表現形式を用いることができる。
ここでは、制約条件をKKT条件(カルーシュ・クーン・タッカー条件、Karush-Kuhn-Tucker Condition)として表す場合を例に説明する。
時系列データξjに対するKKT条件の主制約条件(主問題の実行可能条件)は、式(19)のように表すことができる。
【0123】
【0124】
「hk(ξj)=0」は、式(7)を参照して説明したように、既知の等式制約条件を示す。
「gk(ξj)≦0」は、式(10)を参照して説明したように、既知の不等式制約条件を示す。
【0125】
「guk(ξj
s,θ)≦0」および「guk(ξj
f,θ)>0」は、何れも未知の不等式制約条件を示す。上述したように、制約条件取得装置10が取得する時系列データξjは、タスク成功かタスク失敗かを示す情報と紐付けられている。式(19)では、タスク成功の場合の時系列データξj
sと、タスク失敗の場合の時系列データξj
fとを区別している。
【0126】
タスク成功の場合の「guk(ξj
s,θ)≦0」は、式(12)の「ξj」に「ξj
s」を代入した式となっている。
一方、タスク失敗の場合の「guk(ξj
f,θ)>0」は、式(12)に示される条件「guk(ξj,θ)≦0」が成立しない、という条件を表しているといえる。「タスク失敗の場合は、条件guk(ξj,θ)≦0が成立しない」という命題の対偶をとると「条件guk(ξj,θ)≦0が成立する場合は、タスク成功の場合である」となる。
【0127】
そこで、制約条件取得装置10が、式(19)に基づいて制約条件を設定しておき、制御装置20が、式(12)に示される未知の不等式制約条件を含む制約条件を満たすように制御対象30を制御するようにしてもよい。これにより、制御装置20は、「guk(ξj,θ)>0」となってタスクに失敗することを回避するように制御対象30を制御することができ、タスクを達成できることが期待される。
式(19)に示される主制約条件を「Condition A」とも表記する。
【0128】
KKT条件におけるラグランジュ乗数を、ベクトルλkおよびベクトルλukで表す。ラグランジュ乗数は、KKT乗数とも称される。
ラグランジュ乗数が0以上の値をとるという条件(双対問題の実行可能条件)は、式(20)のように表される。
【0129】
【0130】
ベクトルλkは、式(21)のように表される。
【0131】
【0132】
λi,k(i=1,・・・,Nk
ineq)は、既知の不等式制約条件「gk(ξj)≦0」毎のラグランジュ乗数を示す。
式(7)の「hk(ξj)」の場合と同様、式(21)では、λkは縦ベクトルで表される。式(20)の「λk≧0」は、λkの各要素の値が0以上である、という制約条件を示す。
ベクトルλukは、式(22)のように表される。
【0133】
【0134】
λi,uk(i=1,・・・,Nuk
ineq)は、未知の不等式制約条件「guk(ξj,θ)≦0」毎のラグランジュ乗数を示す。
式(7)の「hk(ξj)」の場合と同様、式(22)では、λukは縦ベクトルで表される。式(20)の「λuk≧0」は、λukの各要素の値が0以上である、という制約条件を示す。
式(20)に示されるラグランジュ乗数の制約条件を「Condition B」とも表記する。
【0135】
KKT条件における相補スラック条件(スラック変数に関する条件)は、式(23)のように表される。
【0136】
【0137】
丸(○)で示される演算子は、アダマール積、すなわち、行列またはベクトルの要素毎(成分毎)の積を表す。式(23)の上側の等式「λk〇gk(ξj
s)=0」は、「λk」と「gk(ξj
s)」との要素毎の積の値が何れも0である、との制約条件を示す。式(23)の下側の等式「λuk〇guk(ξj
s,θ)=0」は、「λuk」と「guk(ξj
s,θ)」との要素毎の積の値が何れも0である、との制約条件を示す。
式(23)に示される相補スラック条件を「Condition C」とも表記する。
【0138】
KKT条件における定常性の条件は、式(24)のように示される。
【0139】
【0140】
∇はナブラ演算子(Nabla)を表す。
cはコスト関数を表す。
νk
jは、等式制約条件hk(ξj)に対応するラグランジュ乗数を表す。
式(24)に示される定常性の条件を「Condition D」とも表記する。
【0141】
コスト関数cとして、例えば式(25)に示されるものを用いることができる。
【0142】
【0143】
x
dは、ロボットアームの先端部分の到達目標位置を表す。
図4の例の場合、到達目標位置は状態x
5の点で表されており、x
d=x
5である。
RおよびQは、それぞれ正則行列を表す。
「||x
t+1-x
d||
R
2」は、式(26)のように表される。
【0144】
【0145】
「||xt+1-xd||R
2」では、制御対象30の位置が到達目標位置に近いほどコストが小さくなる。
「||ut||Q
2」は、式(27)のように表される。
【0146】
【0147】
「||xt+1-xd||R
2」では、制御対象30の移動量が小さいほどコストが小さくなる。
【0148】
上記のように制約条件をKKT条件として表す場合、解探索問題の構成の枠組みの第1例として、Condition A、Condition B、Condition C、および、Condition Dの何れも解探索問題における制約条件に割り当てる、という枠組みを用いることができる。この場合の解探索問題は、式(28)のように示される。
【0149】
【0150】
式(28)では、式(19)に示される主制約条件、式(20)に示されるラグランジュ乗数の制約条件、式(23)に示される相補スラック条件、および、式(24)に示される定常性の条件を全て満たすような、パラメータθ、ラグランジュ乗数ベクトルλk、λuk、および、νk
jの組み合わせを探索する。
式(28)で示される解探索問題を、「Problem 1」とも表記する。
【0151】
解探索問題の構成の枠組みの第2例として、Condition A、Condition B、および、Condition Cを解探索問題における制約条件に割り当て、Condition Dを目的関数に割り当てる、という枠組みを用いることができる。この場合の解探索問題は、式(29)のように示される。
【0152】
【0153】
式(29)では、式(19)に示される主制約条件、式(20)に示されるラグランジュ乗数の制約条件、および、式(23)に示される相補スラック条件を最適化問題における制約条件とし、式(24)の左辺の値の大きさがなるべく小さくなるような、パラメータθ、ラグランジュ乗数ベクトルλk、λuk、および、νk
jの組み合わせを求める、という最適化問題を解く。
式(29)の目的関数の「||Condition D(ξj)||」は、式(24)の左辺のノルムを示す。
式(29)で示される解探索問題を、「Problem 2」とも表記する。
【0154】
式(28)と式(29)とを比較すると、式(28)では、式(24)の左辺の値が0になることが求められる。これに対し、式(29)では、式(24)の左辺の値が厳密に0になることは要求されず、式(24)の左辺の値の大きさが最小化される。
この点で、式(29)のほうが、式(28)よりも条件が緩和されていると言える。式(28)のほうが、タスクを達成するための制約条件を高精度に求めることができる一方、式(29)のほうが、解を得やすい。
【0155】
また、計算量は、式(29)のほうが式(28)よりも少なくて済むと期待される。
例えば、式(28)の最適化問題を解いてみて、所定の時間内に解を得られない場合は、式(29)の最適化問題を解いてみる、ということが考えられる。
【0156】
解探索問題の構成の枠組みの第3例として、Condition A、Condition B、および、Condition Dを解探索問題における制約条件に割り当て、Condition Cを目的関数に割り当てる、という枠組みを用いることができる。この場合の解探索問題は、式(30)のように示される。
【0157】
【0158】
式(30)では、式(19)に示される主制約条件、式(20)に示されるラグランジュ乗数の制約条件、および、式(24)に示される定常性の条件を最適化問題における制約条件とし、式(23)の左辺の値の大きさがなるべく小さくなるような、パラメータθ、ラグランジュ乗数ベクトルλk、λuk、および、νk
jの組み合わせを求める、という最適化問題を解く。
【0159】
この場合、式(23)の左辺として2つのベクトル「λk〇gk(ξj
s)」および「λuk〇guk(ξj
s,θ)」が得られる。式(30)の目的関数の「||Condition D(ξj)||」は、これら2つのベクトルのノルムの合計を表す。
式(30)で示される解探索問題を、「Problem 3」とも表記する。
【0160】
式(29)と式(30)とを比較すると、式(30)では、式(23)に示される相補スラック条件が最適化問題における制約条件として用いられない点で、解を得易いと期待される。ここで、Condition Cの形の制約条件は、最適化問題における制約条件として扱いにくく、最適化が難しい(解を得にくい)といえる。これに対し、式(30)では、Condition Cが目的関数化されることで最適関数として設定されなくなる。この点で、式(30)の場合のほうが式(29)の場合よりも解を得やすいと期待される。
【0161】
解の精度については、式(23)に示される相補スラック条件を最適化問題における制約条件として用いる式(29)のほうが、解を得られた場合の解の精度が高いと期待される。
例えば、式(29)の最適化問題を解いてみて、所定の時間内に解を得られない場合は、式(30)の最適化問題を解いてみる、ということが考えられる。
【0162】
解探索問題の構成の枠組みの第4例として、Condition A、および、Condition Bを解探索問題における制約条件に割り当て、Condition C、および、Condition Dを目的関数に割り当てる、という枠組みを用いることができる。この場合の解探索問題は、式(31)のように示される。
【0163】
【0164】
式(31)では、式(19)に示される主制約条件、および、式(20)に示されるラグランジュ乗数の制約条件を最適化問題における制約条件とし、式(23)の左辺の値の大きさと、式(24)の左辺の値の大きさとの合計がなるべく小さくなるような、パラメータθ、ラグランジュ乗数ベクトルλk、λuk、および、νk
jの組み合わせを求める、という最適化問題を解く。
式(31)の目的関数の「||Condition C(ξj)||」は、式(30)の場合と同様である。「||Condition D(ξj)||」は、式(29)の場合と同様である。
式(31)で示される解探索問題を、「Problem 4」とも表記する。
【0165】
式(31)では、式(29)の場合および式(30)の場合よりもさらに条件が緩和されていると言える。式(29)または式(30)のほうが、タスクを達成するための制約条件を高精度に求めることができる一方、式(31)のほうが、解を得やすい。
【0166】
また、計算量は、式(31)のほうが式(29)または式(30)よりも少なくて済むと期待される。
例えば、式(29)または式(30)で解いてみて、所定の時間内に解を得られない場合は、式(31)で解いてみる、ということが考えられる。
【0167】
図6は、解探索問題の枠組みの選択基準の例を示す図である。
図6の例で、問題設定部184は、既知の等式制約条件の個数N
k
eqと、既知の不等式制約条件の個数N
k
ineqと、未知の不等式制約条件の個数N
k
ineqとの合計に係数a
1、a
2、a
3をそれぞれ乗算して得られる3つの閾値と、時系列データの個数N
sとを比較して、生成する解探索問題を決定する。係数の大きさは、0<a
1<a
2<a
3である。
【0168】
Ns≦a1(Nk
eq+Nk
ineq+Nuk
ineq)の場合、問題設定部184は、解探索問題「Problem 1」を生成する。
a1(Nk
eq+Nk
ineq+Nuk
ineq)<Ns≦a2(Nk
eq+Nk
ineq+Nuk
ineq)の場合、問題設定部184は、解探索問題「Problem 2」を生成する。
【0169】
a2(Nk
eq+Nk
ineq+Nuk
ineq)<Ns≦a3(Nk
eq+Nk
ineq+Nuk
ineq)の場合、問題設定部184は、解探索問題「Problem 3」を生成する。
a3(Nk
eq+Nk
ineq+Nuk
ineq)<Nsの場合、問題設定部184は、解探索問題「Problem 4」を生成する。
【0170】
このように問題設定部184が、制御における制約条件の個数が多いほど、計算量が少ない枠組みを用いて解探索問題を生成するようにしてもよい。
生成した解探索問題で制約条件テンプレートのパラメータ値が得られなかった場合、問題設定部184が、計算量がより少ない解探索問題を生成し直すようにしてもよい。
【0171】
問題設定部184が解探索問題を生成する際、統合部185が、データの統合または制約条件の統合の何れか一方、または両方を行うようにしてもよい。
統合部185は、引数の最大値の近似値を出力する関数を用いて、解探索問題に用いられる制約条件の統合を行う。引数の最大値の近似値を出力する関数を最大値近似関数と称し、max~と表記する。
【0172】
また、引数の最大値を出力する関数を最大値関数と称し、maxと表記する。最大値関数max、最大値近似関数max~の何れも、引数がベクトルの場合は、ベクトルの要素毎に最大値またはその近似値を求めるものとする。
最大値近似関数max~が、式(32)のように定義されていてもよい。
【0173】
【0174】
eはネイピア数を表す。
βは、β≧1の定数であり、なるべく大きい数であることが望ましい。
式(32)に示される定義の場合、max(a)>max~(a)となる。
あるいは最大値近似関数max~が、式(33)のように定義されていてもよい。
【0175】
【0176】
eおよびβは、式(32)の場合と同様である。
式(33)に示される定義の場合、max(a)<max~(a)となる。
式(32)に示される定義の場合、および、式(33)に示される定義の場合のいずれも、最大値近似関数max~は、滑らかな関数(Smooth Function)である。特に、何れの場合も最大値近似関数max~は微分可能である。このように微分可能な関数を用いることで、勾配を用いた解探索が可能となり、解探索の計算量が比較的少なくて済む。また、規模の大きい問題の場合も解を得られることが期待される。
【0177】
不等式制約条件における不等号の向きによっては、統合部185が、上記の最大値近似関数に加えて、あるいは代えて、最小値近似関数を用いてデータの統合または制約条件の統合の何れか一方、または両方を行うようにしてもよい。
最小値近似関数は、引数の最小値の近似値を出力する関数であり、上記の式(32)または(33)の定義による最大値近似関数と同様、滑らかな関数として定義される。最小値近似関数min~は、例えば式(34)のように定義される。
【0178】
【0179】
問題設定部184は、制約条件テンプレートのパラメータ値を決定するための解探索問題を設定する。パラメータ値が設定された制約条件テンプレートは、制御対象30の制御における制約条件として用いられる。
上記のように、制約条件取得装置10は、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、制御対象30の制御における制約条件を設定する。制御対象30の制御における制約条件の設定は、制約条件算出部186が、問題設定部184が生成する解探索問題を用いて制約条件テンプレートのパラメータ値を決定することで行われる。
【0180】
そこで、問題設定部184は、制御対象30の制御における制約条件に時系列データを入力して得られる式を、解探索問題における制約条件または目的関数に用いて、解探索問題を生成する。
【0181】
例えば、目的関数が設けられず、設定される制約条件が全て解探索問題における制約条件として扱われる上記の「Problem 1」において、既知の不等式制約条件を用いて構成される、解探索問題における制約条件の個数について考える。この場合、既知の不等式制約条件の各々に時系列データの各々を入力して得られる不等式制約条件gi,k(ξj)≦0の各々が、解探索問題における制約条件として用いられる。したがって、解探索問題における制約条件のうち、既知の不等式制約条件に基づく制約条件の個数は、既知の不等式制約条件の個数Nk
ineqに時系列データの個数Nsを乗算した、Nk
ineq×Ns個となる。
同様に、未知の不等式制約条件、および、既知の等式制約条件についても、解探索問題における制約条件として、それぞれ、制約条件の個数と時系列データの個数との積の個数の制約条件が設けられ得る。
【0182】
これに対し、統合部185が、解探索問題における制約条件を、時系列データについて統合するようにしてもよい。
また、統合部185が、解探索問題における制約条件を、制御対象の制御における制約条件について統合するようにしてもよい。
あるいは、統合部185が、解探索問題における制約条件の統合として、時系列データについての統合と、制約条件を構成する関数についての統合との両方を行うようにしてもよい。
【0183】
時系列データについての既知の不等式制約条件の統合は、例えば式(35)のように表される。
【0184】
【0185】
pj,iは、時系列データのうち制約条件に対応するデータを示す。状態に対する制約条件の場合、j番目のサンプルの時刻iにおける状態ベクトルxj,iが、pj,iに該当する。制御対象30への入力に対する制約条件の場合、j番目のサンプルの時刻iにおける入力ベクトルuj,iが、pj,iに該当する。
【0186】
式(35)の左側の「gk(ξ)≒max~
j∈{1,・・・,Nkineq}gk(ξj)」は、不等式制約条件を構成する関数のベクトルgk(ξ)の要素である関数gi,k(ξj)(i=1,・・・,Nk
ineq、j=1,・・・Ns)のうち、関数gi,k(ξ1),・・・,gi,k(ξNs)を、これらNs個の関数のうち関数値が最大となる関数max~
j∈{1,・・・,Nkineq}gk(ξj)で代表することを表している。
【0187】
式(35)の右側の「max~
j∈{1,・・・,Nkineq}gk(ξj)≒max~
j∈{1,・・・,Nkineq}{max~
i∈{0,・・・,Nt}gk(pj,i)}は、1つの時系列データにおける関数値gk(ξj)を、その時系列データにおける関数値の最大値max~
i∈{0,・・・,Nt}gk(pj,i)で代表することを表している。
【0188】
統合部185は、式(35)に基づいて、既知の不等式制約条件における関数gk(ξ)の値を、時系列データおよび時刻についての関数gk(ξ)の最大値max~
j∈{1,・・・,Nkineq}{max~
i∈{0,・・・,Nt}gk(pj,i)}で代表することで、解探索問題における制約条件を時系列データについて統合する。
【0189】
この場合、解探索問題における制約条件のうち、既知の不等式制約条件に基づく制約条件の個数(ベクトルgk(ξj)の要素の個数)は、既知の不等式制約条件の個数Nk
ineqとなり、統合部185が制約条件の統合を行わない場合のNk
ineq×Ns個から減少している。減少する制約条件の個数に対応するラグランジュ乗数を減らすことができ、解探索問題の解を求める際の計算コストを削減できる。
【0190】
式(35)において最大値max~
j∈{1,・・・,Nkineq}{max~
i∈{0,・・・,Nt}gk(pj,i)}をとることは、制約条件の境界値に最も近い値となる時系列データ、すなわち、制約条件について最もクリティカルな時系列データで代表すること、といえる。統合部185は、最大値をとることを、最大値近似関数を用いて近似的に行う。
【0191】
既知の不等式制約条件を構成する関数についての統合は、式(36)のように表される。
【0192】
【0193】
式(36)の左側「gk(ξ)=maxj∈{1,・・・,Nkineq}gj,k(ξj)」は、既知の不等式制約条件に用いる関数gk(ξ)として、Nk
ineq個の関数gj,k(ξj)のうち最大のものを用いることを表している。式(36)の右側「maxj∈{1,・・・,Nkineq}gj,k(ξj)≒max~
j∈{1,・・・,Nkineq}gj,k(ξj)は、最大値関数maxに代えて最大値近似関数max~を用いることを示している。
【0194】
上記のように、制御対象30の制御におけるNk
ineq個の既知の不等式制約条件が、解探索問題における制約条件では、それらの関数の最大値を近似的に表す1つの関数を用いた制約条件で代表される。これによって、解探索問題における制約条件のうち、既知の不等式制約条件に基づく制約条件の個数は、データ系列の個数Ns個となり、統合部185が制約条件の統合を行わない場合のNk
ineq×Ns個から減少している。減少する制約条件の個数に対応するラグランジュ乗数を減らすことができ、解探索問題の解を求める際の計算コストを削減できる。
【0195】
時系列データについての未知の不等式制約条件の統合は、例えば式(37)のように表される。
【0196】
【0197】
統合部185が式(37)の計算を行う時点では、制約条件テンプレートのパラメータθの値は未定である。そこで、統合部185は、式(37)の計算で、θを引数にもつ関数guk(ξ,θ)を算出する。
統合部185は、式(37)に基づいて、未知の不等式制約条件における関数guk(ξ,θ)の値を、時系列データおよび時刻についての関数guk(ξ,θ)の最大値max~
j∈{1,・・・,Nukineq}{max~
i∈{0,・・・,Nt}guk(pj,i,θ)}で代表することで、解探索問題における制約条件を時系列データについて統合する。
【0198】
この場合、解探索問題における制約条件のうち、未知の不等式制約条件に基づく制約条件の個数(ベクトルgk(ξj)の要素の個数)は、未知の不等式制約条件の個数Nuk
ineqとなり、統合部185が制約条件の統合を行わない場合のNuk
ineq×Ns個から減少している。減少する制約条件の個数に対応するラグランジュ乗数を減らすことができ、解探索問題の解を求める際の計算コストを削減できる。
【0199】
未知の不等式制約条件を構成する関数についての統合は、式(38)のように表される。
【0200】
【0201】
統合部185が式(38)の計算を行う時点でも、制約条件テンプレートのパラメータθの値は未定である。そこで、統合部185は、式(38)の計算で、θを引数にもつ関数guk(ξ,θ)を算出する。
制御対象30の制御におけるNuk
ineq個の未知の不等式制約条件が、解探索問題における制約条件では、それらの関数の最大値を近似的に表す1つの関数を用いた制約条件で代表される。これによって、解探索問題における制約条件のうち、未知の不等式制約条件に基づく制約条件の個数は、データ系列の個数Ns個となり、統合部185が制約条件の統合を行わない場合のNuk
ineq×Ns個から減少している。減少する制約条件の個数に対応するラグランジュ乗数を減らすことができ、解探索問題の解を求める際の計算コストを削減できる。
【0202】
統合部185が、解探索問題における制約条件を時系列データについて統合する際、複数の時系列データのうち一部についてのみ制約条件を統合するようにしてもよい。例えば、統合部185が、解探索問題における既知の不等式制約条件を時系列データについて統合する際、複数の時系列データのうち一部についてのみ制約条件を統合するようにしてもよい。また、統合部185が、解探索問題における未知の不等式制約条件を時系列データについて統合する際、複数の時系列データのうち一部についてのみ制約条件を統合するようにしてもよい。
【0203】
また、統合部185が、解探索問題における制約条件を制御対象の制御における制約条件について統合する際、制御対象の制御における複数の制約条件のうち一部の制約条件のみ統合するようにしてもよい。例えば、統合部185が、解探索問題における既知の不等式制約条件を制御対象の制御における制約条件について統合する際、制御対象の制御における複数の既知の不等式制約条件のうち一部の制約条件のみ統合するようにしてもよい。また、統合部185が、解探索問題における未知の不等式制約条件を制御対象の制御における制約条件について統合する際、制御対象の制御における複数の未知の不等式制約条件のうち一部の制約条件のみ統合するようにしてもよい。
【0204】
図7は、統合部185による統合対象のデータの例を示す図である。
図7では、タスク成功時の制御対象30の軌道を示す線L311、L312およびL313が示され、それぞれの線上に、時刻毎の時系列データがプロットされている。また、
図7には、不等式制約条件を示す領域A311が示されている。
【0205】
上記のように、統合部185が複数のデータを最大値の近似値で代表することは、制約条件の境界に最も近い値で代表することといえる。
例えば
図7の例で、統合部185が、領域A311で示される未知の不等式制約条件について成功時時系列データξ
1
s、ξ
2
sおよびξ
3
sを統合する場合、統合部185は、上記の式(37)に基づいて、領域A311に最も近い成功時時系列データξ
3
sに統合する。
【0206】
また、統合部185が、成功時時系列データξ3
sに含まれるデータp3,0からp3,5を統合する場合、統合部185は、これらのデータのそれぞれを制約条件の関数に入力した関数値を、領域A311に最も近くにプロットされているデータp3,4を制約条件の関数に入力した関数値で代表する。
【0207】
制約条件算出部186は、問題設定部184が生成した解探索問題を解くことで、制約条件テンプレートのパラメータ値を算出する。これにより、制約条件推定部182は、未知の不等式制約条件を推定する。
制約条件算出部186は、未知の制約条件および既知の制約条件を制御装置20へ出力する。
制御装置20は、未知の制約条件および既知の制約条件に従って制御対象30を制御してタスクを実行する。
【0208】
図8は、制御システム1が行う処理の手順の例を示す図である。
図8の処理で、時系列データ取得部181は、Ns個の時系列データξ
1、・・・ξ
Nsを取得する(ステップS111)。上記のように、時系列データの各々には、タスク成功またはタスク失敗の何れかを示す情報が紐付けられている。
【0209】
次に、テンプレート取得部183は、テンプレート記憶部171が記憶している未知の不等式制約条件のテンプレートのうち、制御対象30の制御における制約条件の設定に用いるテンプレートの候補を、時系列データに基づいて選択する(ステップS112)。
【0210】
次に、問題設定部184は、制約条件テンプレートのパラメータ値を算出するための解探索問題を設定する(ステップS113)。問題設定部184は、枠組み情報記憶部173が記憶する複数の問題枠組みのうち何れかを採用して、例えば制約の個数に応じた解探索問題を設定する。また、統合部185がデータの統合または制約条件の統合を行って、解探索問題を簡単化するようにしてもよい。
【0211】
次に、制約条件算出部186は、問題設定部184が設定した解探索問題の解を探索することで、制約条件テンプレートのパラメータ値を求める(ステップS114)。
次に、制約条件判定部187は、制約条件算出部186が制約条件テンプレートのパラメータ値を算出して制約条件取得に成功したか否かを判定する(ステップS115)。
【0212】
制約条件の取得に成功したと制約条件判定部187が判定した場合(ステップS115:YES)、制御装置20は、制約条件に従って制御対象30への制御入力を算出し、制御対象30を制御してタスクを実行する(ステップS121)。
ステップS121の後、制御システム1は、
図8の処理を終了する。
【0213】
一方、ステップS115で、制約条件の取得に失敗したと制約条件判定部187が判定した場合(ステップS115:NO)、制約条件判定部187は、枠組み情報記憶部173が記憶する問題の枠組みのうち、選択可能な枠組みの候補が残っているか否かを判定する(ステップS131)。
【0214】
枠組みの候補が残っていると制約条件判定部187が判定した場合(ステップs131:YES)、処理がステップS113へ戻る。
一方、ステップS131で、枠組みの候補が残っていないと判定した場合、制約条件判定部187は、テンプレート記憶部171が記憶する制約条件テンプレートのうち、選択可能な制約条件テンプレートの候補が残っているか否かを判定する(ステップS141)。
【0215】
制約条件テンプレートの候補が残っていると制約条件判定部187が判定した場合(ステップS141:YES)、処理がステップS112へ戻る。
一方、ステップS141で、制約条件テンプレートの候補が残っていないと制約条件判定部187が判定した場合(ステップS141:NO)、制御システム1は、
図8の処理を終了する。この場合、制御システム1は、制約条件の生成に失敗したことになる。
【0216】
以上のように、時系列データ取得部181は、制御対象30を制御して行われる所定のタスクに成功したときの制御についての時系列データである成功時時系列データと、タスクに失敗したときの時系列データである失敗時時系列データとを取得する。テンプレート取得部183は、パラメータを含む制約条件である制約条件テンプレートを取得する。制約条件算出部186は、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、パラメータの値を決定する。
制約条件取得装置10によれば、予め設定されている制約条件以外の制約条件を取得し得る。
【0217】
また、テンプレート取得部183は、複数の制約条件テンプレートのうち、成功時時系列データでは制約条件が成立となり、かつ、失敗時時系列データでは制約条件が不成立となるような、パラメータの値が存在しない制約条件テンプレートを、取得対象から除外する。
制約条件取得装置10によれば、時系列データに適合しない制約条件テンプレートを選択することを回避でき、この点で、制約条件を効率的に取得することができる。
【0218】
また、問題設定部184は、制御対象の制御における複数の制約条件を、制約条件の種類に応じて、解探索問題における目的関数に割り当てるか、解探索問題における制約条件に割り当てるかの割り当て方法を決定して解探索問題を設定し、設定した解探索問題ではパラメータの値が決定されない場合、割り当て方法を変更して解探索問題を設定し直す。制約条件算出部186は、問題設定部184が設定する解探索問題を解いて制約条件テンプレートのパラメータの値を決定する。
制約条件取得装置10によれば、パラメータ値を得られない場合に解探索問題の枠組みを変更して解探索問題を設定し直すことができ、この点でパラメータ値を得られる可能性が高い。
【0219】
また、問題設定部184は、複数の時系列データのそれぞれを、制御対象30の制御における同一の不等式制約条件に入力して得られる、解探索問題における複数の不等式制約条件について、それらの不等式制約条件を構成する関数の、時系列データおよび時刻のそれぞれについての最大値または最小値を用いて、解探索問題における複数の不等式制約条件を1つの不等式制約条件に統合する。
制約条件取得装置10によれば、解探索問題における制約条件の個数を削減して問題を簡単化することができる。制約条件取得装置10によれば、この点で計算時間が短くて済み、また、パラメータ値を得られる可能性が高い。
【0220】
また問題設定部184は、制御対象30の制御における複数の不等式制約条件に応じた、解探索問題における複数の不等式制約条件について、不等式制約条件を構成する複数の関数を、それら複数の関数値の引数値毎の最大値を近似する関数、または、それら複数の関数値の引数値毎の最小値を近似する関数に統合することで、解探索問題における複数の不等式制約条件を1つの不等式制約条件に統合する。
制約条件取得装置10によれば、解探索問題における制約条件の個数を削減することができる。制約条件取得装置10によれば、この点で計算時間が短くて済み、また、パラメータ値を得られる可能性が高い。
【0221】
図9は、第一実施形態の変形例に係る制約条件取得装置11の構成の例を示す図である。
図9に示す制約条件取得装置11は、例えば、
図1に示す制御システム1の構成で制御システム1に代えて用いられる。
図9に示す構成で、制約条件取得装置11は、通信部110と、表示部120と、操作入力部130と、記憶部170と、制御部180とを備える。記憶部170は、テンプレート記憶部171と、設定済情報記憶部172と、枠組み情報記憶部173とを備える。制御部180は、時系列データ取得部181と、制約条件推定部182とを備える。制約条件推定部182は、テンプレート取得部183と、問題設定部184と、制約条件算出部186と、判定用情報算出部188とを備える。問題設定部184は、統合部185を備える。制約条件算出部186は、制約条件判定部187を備える。
【0222】
図9の各部のうち
図2の各部に対応して同様の機能を有する部分には同一の符号(110、120、130、170-173、180-187)を付し、ここでは詳細な説明を省略する。
制約条件取得装置11は、制約条件推定部182が判定用情報算出部188をさらに備える点で、制約条件取得装置10と異なる。それ以外の点では、制約条件取得装置11は、制約条件取得装置10と同様である。
【0223】
判定用情報算出部188は、制約条件算出部186が決定したパラメータの値よりも制約条件が緩和されるパラメータの値のもとでタスクを実行するための、制御対象30に対する制御指令情報を算出する。
判定用情報算出部188は、判定用情報算出手段の例に該当する。
【0224】
図10は、制約条件の更新の例を示す図である。
図10の例で、領域A411が、制御対象30が進入するとタスクを達成できない領域であるとする。領域A411を実際の進入禁止領域と称する。
一方、領域A421が、制約条件取得装置10が、未知の制約条件を設定して制御対象30の進入を抑制している領域であるとする。
【0225】
制約条件取得装置10が設定している進入禁止領域A421よりも実際の進入禁止領域A411のほうが小さく、制約条件取得装置10が設定している進入禁止領域A421内を制御対象30が移動できる余地がある。
この場合、判定用情報算出部188が、制約条件取得装置10が設定している進入禁止領域A421よりも小さい仮の進入禁止領域A431を設定するようにしてもよい。そして、判定用情報算出部188が制御装置20に指示して、制約条件取得装置10が設定している進入禁止領域A421と仮の進入禁止領域との差の領域を制御対象30が通るようにしてもよい。そして、タスクに成功した場合は、制御対象30が通った経路が進入禁止領域に含まれないように、制約条件取得装置10が、未知の制約条件を設定し直すようにしてもよい。
この場合、制御装置20は、例えば式(39)に示される最適化問題を解いて、制御対象30の経路を決定する。
【0226】
【0227】
式(39)では、未知の制約条件が「guk(ξ,θ)<ε」となっており、「guk(ξ,θ)<0」の場合よりも制約が緩和され進入禁止領域が小さくなる。制御装置20が、式(39)の最適化問題を解いて制御対象30の経路を決定することで、制御対象30に、「guk(ξ,θ)<0」の場合に進入禁止領域とされる領域内を通過させ、通過の可否を試すことができる。
【0228】
図11は、制御システム1の変形例におけるデータの入出力の例を示す図である。
図11の制約条件取得装置11は、
図3の制約条件取得装置10の構成に加えて判定用情報算出部188を備えている。判定用情報算出部188は、設定されている制約条件に基づいて判定用制約条件を生成し、制御装置20へ通知する。判定用情報算出部188は、例えば、式(39)に示されるような制約条件を判定用制約条件として生成する。
【0229】
制御装置20が、判定用制約条件に基づいて制御対象30を制御することで、制約条件取得装置11は、制御対象30が未知の制約条件の設定で禁止されていた動作を行った場合の時系列データを得られる。制約条件取得装置11は、このときのタスクの成否に基づいて未知の制約条件の緩和の可否を判定することができる。未知の制約条件の緩和の可否を判定することを、未知の制約条件の精度を判定する、または、未知の制約条件を確認する、とも称する。
【0230】
特に、設定されている未知の制約条件が成立せず、かつ、タスク成功となっている時系列データを得られた場合、制約条件取得装置11は、未知の制約条件を緩和可能と判定することができる。
未知の制約条件を緩和可能と判定した場合、制約条件取得装置11が、新たに得られた時系列データを学習データに含めて、未知の制約条件を算出し直すようにしてもよい。未知の制約条件を算出し直すことを、未知の制約条件を更新する、とも称する。
【0231】
図12は、制御システム1の変形例における処理の手順の例を示す図である。
図12のステップS211からS215は、
図8のステップS111からS115と同様である。また、
図12のステップS231およびS241は、
図8のステップS131およびS141と同様である。
【0232】
図12の処理では、ステップS215で、制約条件の取得に成功したと制約条件判定部187が判定した場合(ステップS215:YES)、判定用情報算出部188が、判定用制約条件を算出する(ステップS221)。
制御装置20は、判定用制約条件に基づいて制御対象30を制御してタスクを実行する(ステップS222)。これにより、制約条件取得装置11は、制御対象30が、未知の制約条件の設定によって禁止されていた動作を行った場合の時系列データを取得でき、未知の制約条件の精度を判定することができる。
ステップS222の後、制御システム1は、
図12の処理を終了する。
それ以外の点では、
図12の処理は
図8の処理と同様である。
【0233】
以上のように、判定用情報算出部188は、制約条件算出部186が決定したパラメータの値よりも制約条件が緩和されるパラメータの値のもとでタスクを実行するための、制御対象30に対する制御指令情報を算出する。
これにより、制約条件取得装置11は、制御対象30が未知の制約条件の設定で禁止されていた動作を行った場合の時系列データを取得することができる。制約条件取得装置11は、この時系列データおよびタスクの成否に基づいて、未知の制約条件の精度を判定することができ、必要に応じて未知の制約条件を更新することができる。
【0234】
制約条件取得装置11が、制約条件式に加えて時相論理式を用いて制御対象30の制御における制約条件を設定するようにしてもよい。
図13は、制約条件取得装置11が、制約条件式に加えて時相論理式を用いる場合のデータの入出力の例を示す図である。
【0235】
図13の例で、テンプレート記憶部171は、制約条件テンプレートに加えて時相論理式情報を記憶する。時相論理式情報は、時相論理の種類および数など、時相論理の学習に関する情報である。テンプレート記憶部171が、時相論理式のテンプレートを含む時相論理式情報を記憶しておくようにしてもよい。
【0236】
問題設定部184は、
図11の場合に取得する情報に加えて、テンプレート記憶部171から時相論理式情報を取得する。問題設定部184は、時相論理の学習を行って、制御対象30の制御における制約条件の一部を時相論理式で生成する。問題設定部184が時相論理の学習を行う方法として公知の方法を用いることができる。
問題設定部184は、制約条件の一部が時相論理で示される解探索問題を生成する。例えば問題設定部184が、時間変化する制約条件を時相論理式で示し、時間経過にかかわらず変化しない制約条件を制約条件式で示すようにしてもよい。
【0237】
制約条件算出部186は、問題設定部184が設定した解探索問題を解く。制約条件判定部187が、制約条件テンプレートのパラメータ値を取得できたと判定した場合、制約条件算出部186は、制約条件テンプレートにパラメータ値を設定して未知の制約条件を生成する。そして、制約条件算出部186は、未知の制約条件および未知の制約条件を判定用情報算出部188へ出力する。制約条件の一部が時相論理式で示されていてもよい。
【0238】
判定用情報算出部188が制御装置20へ送信する判定用制約条件についても、制約条件の一部が時相論理式で示されていてもよい。
上記以外の点では、
図13は、
図11の場合と同様である。
【0239】
制約条件取得装置11が用いる時相論理は、線形時相論理 (Linear Temporal Logic;LTL)、・Metric Interval Temporal Logic (MITL)、信号時相論理(Signal Temporal Logic;STL)、Parametric Signal Temporal Logic (PSTL) 、または、計算木論理 (Computational Tree Logic;CTL)など、いろいろな時相論理とすることができる。
以下では、制約条件取得装置11が信号時相論理を用いる場合を例に説明する。
【0240】
制約条件取得装置11は、例えば、「かつ」(φ1∧φ2)、「または」(φ1∨φ2)、「Finally」(F[a,b]φ)、「Global」(G[a,b]φ)、またはこれらの組み合わせによるテンプレートを用いて、時相論理による制約条件を設定する。
「F[a,b]φ」は、時刻aからbまでの間に少なくとも一度は命題φが真であるという命題を示す。「G[a,b]φ」は、時刻aからbまでの間ずっと命題φが真であるという命題を示す。
【0241】
図14は、時相論理を用いて表される制約条件が示す領域の例を示す図である。
図14の例で、領域A511が式(40)の未知の不等式制約条件で表され、制御対象30が領域A511内に位置する場合に不等式制約条件が成立するものとする。
【0242】
【0243】
pは、制御対象30の位置を表す。θgは、制約条件の領域の位置および大きさなど、領域を設定するためのパラメータである。
ここで、問題設定部184が、「時刻aからbまでの間に少なくとも一度は制御対象30が領域A511内に位置する」という制約条件を設定する場合について考える。
【0244】
式(40)のgg,ukを用いて、制御対象30が領域A511内に位置するとの命題のロバストネスディグリー(Robustness Degree)関数である関数ρφ(ξ,tk)は、式(41)のように表すことができる。
【0245】
【0246】
tkは時刻を表し、ptkは、時刻tkにおける制御対象30の位置を表す。εは正の微小な定数を表す。
ロバストネスディグリー関数は、信号時相論理における命題が成立するか否かを関数値の正負で近似的に示す関数である。関数ρφ(ξ,tk)は、制御対象30が領域411内に位置する場合に正の関数値を出力する。
【0247】
εは、制御対象30が領域511の外部に位置する場合の、制御対象30の位置と領域411との間の余裕分(マージン)を表す。関数ρφ(ξ,tk)の値が負の場合、制御対象30は、領域511からεに相当する間隔以上離れた位置にある。
「時刻aからbまでの間に少なくとも一度は制御対象30が領域A511内に位置する」という命題のロバストネスディグリー関数である関数ρF[a,b]φ(ξ,tk)は、式(42)のように近似することができる。
【0248】
【0249】
tkは基準時刻を示し、時刻a、bは、それぞれ時刻tkを時刻0とした場合の時刻で示される。
「ρF[a,b]φ(ξ,tk)≧0」が成立することは、「時刻aからbまでの間に少なくとも一度は制御対象30が領域A511内に位置する」という命題が成立することを近似的に表している。
「時刻aからbまでの間に少なくとも一度は制御対象30が領域A511内に位置する」という命題は、式(43)に示される未知の不等式制約条件で近似的に示される。
【0250】
【0251】
式(43)は、θg、aおよびbをパラメータとする制約条件テンプレートとして構成することができる。制約条件算出部186が、パラメータθg、aおよびbの値を設定することで、未知の不等式制約条件を得られる。
このように、信号時相論理の論理式で示される命題に対して、その命題のロバストネスディグリー関数を最大値近似関数で近似することで、信号時相論理における命題を不等式制約条件の形式で表すことができる。
【0252】
テンプレート記憶部171が記憶する制約条件テンプレートに、信号時相論理における命題を不等式制約条件の形式で表す制約条件テンプレートが含まれていてもよい。そして、テンプレート取得部183が選択する制約条件テンプレートに、信号時相論理における命題を不等式制約条件の形式で表す制約条件テンプレートが含まれていてもよい。制約条件算出部186が解探索問題を解くことで、信号時相論理における命題を不等式制約条件の形式で表す制約条件テンプレートについてもパラメータ値が求まり、未知の不等式制約条件が設定される。
【0253】
以上のように、問題設定部184は、制約条件の一部が時相論理式で示される解探索問題を生成する。
これにより、制御対象30の制御における制約条件をより詳細に示すことができ、制御装置20が、制御対象30をより高精度に制御し得る。
【0254】
<第二実施形態>
図15は、第二実施形態に係る制御システム2の構成の例を示す図である。
図15に示す構成で、制御システム2は、制約条件取得装置11と、指示器40と、制御対象30とを備える。制約条件取得装置11については、
図9から
図13を参照して説明したのと同様であり、ここでは詳細な説明を省略する。制御対象30については、
図1等を参照して説明したのと同様であり、ここでは詳細な説明を省略する。
【0255】
制御システム2は、未知の制約条件を確認するために、制御対象30に対するユーザ操作を受け付ける。それ以外の点では、制御システム2は、制御システム1の場合と同様である。
【0256】
指示器40は、制御装置20と同様、制御対象30を制御する。加えて、指示器40は、制御対象30に対するユーザ操作を受け付け、ユーザ操作に従って制御対象30を制御する。
指示器40は、例えばパソコンなどのコンピュータを用いて構成される。あるいは、指示器40が、ASICまたはFPGAを用いて構成されるなど、指示器40専用のハードウェアを用いて構成されていてもよい。
制約条件取得装置10と指示器40とが一体的に構成されていてもよい。例えば、制約条件取得装置10と指示器40とが同一のコンピュータ上で実行されてもよい。
【0257】
図16は、制御システム2におけるデータの入出力の例を示す図である。
図16を
図11と比較すると、
図16では、制御装置20に代えて指示器40が設けられている。指示器40は、操作指示部410と、操作受付部420と、制御部430とを備える。
それ以外の点では、
図16に示す制御システム2は、
図11に示す制御システム1と同様である。
【0258】
操作指示部410は、未知の制約条件を確認するためのユーザ操作をユーザに指示する。特に、操作指示部410は、未知の制約条件として設定されている制約条件よりも緩和された制約条件のもとでタスクを実行するための、制御対象30に対するユーザ操作を指示する。
【0259】
例えば、未知の制約条件として制御対象30の動作速度の上限値が設定された場合、操作指示部410が、制御対象30を速く動かすよう指示するメッセージを表示するようにしてもよい。
この場合、操作指示部410が、未知の制約条件として設定されている具体的な速度上限値を示して、それよりも速く動かすよう促すようにしてもよいが、ユーザが提示される速度上限値を感覚的に把握できないことが考えられる。このため、ユーザが、制御対象30をどのくらいの速さで動かしたらよいか分からず、制御対象30をうまく操作できないことが考えられる。
【0260】
そこで、操作指示部410が、具体的な速度は提示せずに、「ロボットアームを少し速く動かしてください」といった、速く動かして欲しいことを伝えるメッセージを表示するようにしてもよい。ユーザ操作で、未知の制約条件として設定されている速度上限値以上の速度が出ていない場合、操作指示部410が、「ロボットアームをさらに速く動かしてください」など、ユーザ操作を再度行って、制御対象30をより速く動かすよう促すメッセージを表示するようにしてもよい。
【0261】
この場合の「ロボットアームをさらに速く動かしてください」とのメッセージは、制御対象30に、ユーザが行った操作に示される動作とは異なる動作を行わせる操作を示す情報の例に該当する。操作指示部410は、操作指示手段の例に該当する。
【0262】
操作受付部420は、ユーザ操作を受け付ける。特に、操作受付部420は、制御対象30を操作するユーザ操作を受け付ける。例えば、操作受付部420がジョイスティックなどの操作デバイスを備え、制御対象30の動作方向および速度を指示するユーザ操作を受け付けるようにしてもよい。
ここでのユーザ操作は、制御対象30を動作させる操作の例に該当する。操作受付部420は、操作受付手段の例に該当する。
【0263】
制御部430は、制御装置20と同様に制御対象30の制御を行う。また、操作受付部420が制御対象30に対するユーザ操作を受け付けた場合、制御部430は、ユーザ操作に従って制御対象30を制御する。
また、制御部430は、制御対象30に、ユーザが行った操作に示される動作とは異なる動作を行わせる必要があるか否かを判定する。上記の例の場合、制御部430は、ユーザ操作で、未知の制約条件として設定されている速度上限値以上の速度が出ているか否かを判定することで、制御対象30をさらに速く動作させる必要があるか否かを判定する。
制御部430は判定手段の例に該当する。
【0264】
操作指示部410がユーザ操作に関して指示する項目は、上述した制御対象30の速度に限定されず、いろいろな項目とすることができる。
例えば、確認対象となっている制約条件テンプレートのパラメータが、障害物の領域(制御対象30の進入を禁止する領域)を設定するためのパラメータである場合、操作指示部410が、「ロボットアームが障害物の近くを通るように操作してください」といったメッセージを表示するようにしてもよい。
【0265】
ユーザ操作で、制御対象30が、未知の制約条件として設定されている障害物の領域の内側に進入していないと制御部430が判定した場合、操作指示部410が、「ロボットアームが障害物のさらに近くを通るように操作してください」といったメッセージを表示するようにしてもよい。
【0266】
図17は、操作指示部410による画面表示の例を示す図である。
領域A611は、制御対象30の現在の状態を画像で表示する領域である。領域A612は、制御対象30の目標の状態を画像で表示する領域である。このように、制御対象30の現在の状態と目標の状態とを画像で表示することで、ユーザが制御対象30の現在の状態から目標の状態への変化をイメージすることができ、制御対象30に対する操作を行い易くなると期待される。
【0267】
領域A621は、制御対象30の操作についてのユーザへのメッセージを表示する領域である。上記のように、操作指示部410が具体的な速度など具体的な量は提示せず、「ロボットアームを少し速く動かして下さい」のように、操作時にユーザが留意するポイントを提示するようにしてもよい。また、未知の制約条件の精度を判定するための時系列データを得られなかった場合、操作指示部410が「ロボットアームをさらに速く動かして下さい」のように、操作時にユーザが留意するポイントを提示して再度のユーザ操作を促すようにしてもよい。
【0268】
領域A631は、各種情報の表示領域である。例えば、領域A631には、制御対象30が正常か異常かの状態情報、判定用情報算出部が確認中の未知の制約条件での設定項目、確認中の設定項目についての現在の確認状況、確認のために必要な時系列データの個数、制御対象30の制御に設定されている制約条件などが表示されていてもよい。
【0269】
領域A641は、ユーザが操作をやり直したい場合の操作領域である。操作指示部410が、領域A641へのタッチ操作またはマウスクリックなどのユーザ操作を受け付けた場合、制御部430が制御対象30の状態を初期状態に戻し、操作受付部420が、制御対象30の初期状態からのユーザ操作を受け付けるようにしてもよい。
【0270】
領域A642は、ユーザが処理をキャンセルしたい場合の操作領域である。操作指示部410は、領域A642へのタッチ操作またはマウスクリックなどのユーザ操作を受け付けた場合、ユーザへの制御対象30の操作の指示を中止する。この場合、制御システム2が、第一実施形態の変形例の場合のように未知の制約条件を自動で確認するモードに遷移するようにしてもよい。あるいは、制御システム2が、未知の制約条件の確認を終了するようにしてもよい。
【0271】
領域A651は、表示設定画面に遷移するための操作領域である。操作指示部410は、領域A651へのタッチ操作またはマウスクリックなどのユーザ操作を受け付けた場合、表示画面を表示設定画面に切り替える。表示設定画面は、操作指示部410による表示に関する各種設定を受け付けるための画面である。
【0272】
以上のように、操作受付部420は、制御対象30を動作させる操作を取得する。制御部430は、制御対象30に、ユーザが行った操作に示される動作とは異なる動作を行わせる必要があるか否かを判定する。
操作指示部410は、制御対象に前記異なる動作を行わせる必要があると制御部430が判定した場合、制御対象に異なる動作を行わせる操作を示す情報を表示する。
【0273】
ユーザが指示に従って制御対象30を操作することで、制約条件取得装置11は、制約条件を緩和した場合の時系列データ、および、タスク成功かタスク失敗かの結果情報を得られる。これにより、制約条件取得装置11は、未知の制約条件の緩和の可否を判定することができ、必要に応じて未知の制約条件を設定し直すことができる。
【0274】
また、ユーザ操作で得られた時系列データでは制約条件の緩和の可否を判定できない場合、操作指示部410が前回のユーザ操作から変化させる項目を提示して再度のユーザ操作を指示することで、制約条件取得装置11は、未知の制約条件の緩和の可否をより確実に判定することができ、必要に応じて未知の制約条件を設定し直すことができる。
また、ユーザが制御対象30の状態を目視確認しながらタスク実行のための操作を行うことで、タスク成功となる可能性が比較的高く、未知の制約条件の確認に有益な時系列データを得易いと期待される。
【0275】
<第三実施形態>
図18は、第三実施形態に係る制約条件取得装置の構成の例を示す図である。
図18に示す構成で、制約条件取得装置610は、時系列データ取得部611と、テンプレート取得部612と、制約条件算出部613とを備える。かかる構成で、時系列データ取得部611は、制御対象を制御して行われる所定のタスクに成功したときの制御についての時系列データである成功時時系列データと、タスクに失敗したときの時系列データである失敗時時系列データとを取得する。テンプレート取得部612は、パラメータを含む制約条件である制約条件テンプレートを取得する。制約条件算出部613は、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、パラメータの値を決定する。
【0276】
時系列データ取得部611は、時系列データ取得手段の例に該当する。テンプレート取得部612は、テンプレート取得手段の例に該当する。制約条件算出部613は、制約条件算出手段の例に該当する。
制約条件取得装置610によれば、予め設定されている制約条件以外の制約条件を取得し得る。
【0277】
時系列データ取得部611は、例えば、
図2の時系列データ取得部181等の機能を用いて実現することができる。テンプレート取得部612は、例えば、
図2のテンプレート取得部183等の機能を用いて実現することができる。制約条件算出部613の機能は、例えば、
図2の制約条件算出部186の機能を用いて実現することができる。
【0278】
<第四実施形態>
図19は、第四実施形態に係る制御システムの構成の例を示す図である。
図19に示す構成で、制御システム620は、操作指示部621を備える。
かかる構成で、操作指示部621は、制御対象を制御して行われる所定のタスクの実行の際の前記制御に対して設定されている制約条件よりも緩和された制約条件のもとで前記タスクを実行するための前記制御対象に対するユーザ操作を指示する
操作指示部621は、操作指示手段の例に該当する。
【0279】
制御システム620では、ユーザが指示に従って制御対象を操作することで、制約条件を緩和した場合の時系列データ、および、タスク成功かタスク失敗かの結果情報を得られる。これにより、設定されている制約条件の精度を判定することができ、必要に応じて制約条件を設定し直すことができる。
操作指示部621の機能は、例えば、
図16の操作指示部410の機能を用いて実現することができる。
【0280】
<第五実施形態>
図20は、第五実施形態に係る制御システムの構成の例を示す図である。
図20に示す構成で、制御システム630は、時系列データ取得部631と、テンプレート取得部632と、制約条件算出部633と、制御部634とを備える。
【0281】
かかる構成で、時系列データ取得部631は、制御対象を制御して行われる所定のタスクに成功したときの制御についての時系列データである成功時時系列データと、タスクに失敗したときの時系列データである失敗時時系列データとを取得する。テンプレート取得部632は、パラメータを含む制約条件である制約条件テンプレートを取得する。制約条件算出部633は、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、パラメータの値を決定する。制御部634は、制約条件テンプレートに決定されたパラメータの値が設定されて示される制約条件に従って制御対象を制御して、所定のタスクを実行する。
【0282】
時系列データ取得部631は、時系列データ取得手段の例に該当する。テンプレート取得部632は、テンプレート取得手段の例に該当する。制約条件算出部633は、制約条件算出手段の例に該当する。制御部634は、制御手段の例に該当する。
制御システム630によれば、予め設定されている制約条件以外の制約条件を取得し得る。
【0283】
時系列データ取得部631は、例えば、
図2の時系列データ取得部181等の機能を用いて実現することができる。テンプレート取得部632は、例えば、
図2のテンプレート取得部183等の機能を用いて実現することができる。制約条件算出部633は、例えば、
図2の制約条件算出部186等の機能を用いて実現することができる。制御部634は、例えば、
図1の制御装置20等の機能を用いて実現することができる。
【0284】
<第六実施形態>
図21は、第六実施形態に係る制約条件取得方法における処理の手順の例を示す図である。
図21に示す制約条件取得方法は、時系列データを取得すること(ステップS611)と、制約条件テンプレートを取得すること(ステップS612)と、制約条件を算出すること(ステップS613)とを含む。
【0285】
時系列データを取得すること(ステップS611)では、コンピュータが、制御対象を制御して行われる所定のタスクに成功したときの前記制御についての時系列データである成功時時系列データと、前記タスクに失敗したときの前記時系列データである失敗時時系列データとを取得する。
【0286】
制約条件テンプレートを取得すること(ステップS612)では、コンピュータが、パラメータを含む制約条件である制約条件テンプレートを取得する。
制約条件を算出すること(ステップS613)では、コンピュータが、成功時時系列データでは制約条件が成立となり、失敗時時系列データでは制約条件が不成立となるように、パラメータの値を決定する。
図21に示す処理によれば、予め設定されている制約条件以外の制約条件を取得し得る。
【0287】
図22は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図22に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0288】
上記の制約条件取得装置10、制約条件取得装置11、制御装置20および指示器40のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0289】
制約条件取得装置10がコンピュータ700に実装される場合、制御部180およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0290】
また、CPU710は、プログラムに従って、記憶部170およびその各部に対応する記憶領域を主記憶装置720に確保する。通信部110が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。表示部120が行う画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って画像を表示することで実行される。操作入力部130によるユーザ操作の受付は、インタフェース740が入力デバイスを備えてユーザ操作を受け付けることで実行される。
【0291】
制約条件取得装置11がコンピュータ700に実装される場合、制御部180およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0292】
また、CPU710は、プログラムに従って、記憶部170およびその各部に対応する記憶領域を主記憶装置720に確保する。通信部110が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。表示部120が行う画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って画像を表示することで実行される。操作入力部130によるユーザ操作の受付は、インタフェース740が入力デバイスを備えてユーザ操作を受け付けることで実行される。
【0293】
制御装置20がコンピュータ700に実装される場合、制御装置20の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0294】
また、CPU710は、プログラムに従って、制御装置20が処理を行うための記憶領域を主記憶装置720に確保する。
制御装置20と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
制御装置20とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0295】
指示器40がコンピュータ700に実装される場合、制御部430の動作など指示器40の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0296】
また、CPU710は、プログラムに従って、指示器40が処理を行うための記憶領域を主記憶装置720に確保する。
指示器40と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
操作指示部410による指示の出力は、インタフェース740が出力デバイスを有し、CPU710の制御に従って出力デバイスにて指示を出力することで実行される。操作受付部420によるユーザ操作の受け付けは、インタフェース740が入力デバイスを有してユーザ操作を受け付けることで実行される。
【0297】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0298】
なお、制約条件取得装置10、制約条件取得装置11、制御装置20および指示器40が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0299】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0300】
本発明は、制約条件取得装置、制御システム、制約条件取得方法および記録媒体に適用してもよい。
【符号の説明】
【0301】
1、2 制御システム
10、11 制約条件取得装置
20 制御装置
30 制御対象
40 指示器
110 通信部
120 表示部
130 操作入力部
170 記憶部
171 テンプレート記憶部
172 設定済情報記憶部
173 枠組み情報記憶部
180 制御部
181 時系列データ取得部
182 制約条件推定部
183 テンプレート取得部
184 問題設定部
185 統合部
186 制約条件算出部
187 制約条件判定部
188 判定用情報算出部
410 操作指示部
420 操作受付部
430 制御部