(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】動作計画装置、動作計画方法、及び動作計画プログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20240501BHJP
【FI】
B25J9/22 A
(21)【出願番号】P 2020175670
(22)【出願日】2020-10-19
【審査請求日】2023-08-08
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100124039
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100170542
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】フェリックス フォン ドルガルスキ
(72)【発明者】
【氏名】米谷 竜
(72)【発明者】
【氏名】アルトゥール カロイ
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2020-82293(JP,A)
【文献】特開2016-196079(JP,A)
【文献】特開2008-204188(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するように構成された情報取得部と、
シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するように構成された行動生成部と、
モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成すると共に、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するように構成された動作生成部と、
前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するように構成された出力部と、
を備え、
前記動作生成部において、前記動作系列が物理的に実行不能であると判定された場合、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記行動生成部において、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成するように構成された、
動作計画装置。
【請求項2】
前記シンボリックプランナは、抽象的な行動のコストを推定するように機械学習により訓練されたコスト推定モデルを含み、
前記行動生成部は、前記シンボリックプランナを使用して、前記コスト推定モデルにより推定されるコストが最適化されるよう前記抽象的行動系列を生成するように更に構成される、
請求項1に記載の動作計画装置。
【請求項3】
訓練用の抽象的な行動を示す訓練サンプル及び前記訓練用の抽象的な行動のコストの真値を示す正解ラベルの組み合わせによりそれぞれ構成される複数の学習データセットを取得するように構成されたデータ取得部と、
取得された複数の学習データセットを使用して、前記コスト推定モデルの機械学習を実施するように構成された学習処理部であって、前記機械学習は、各学習データセットについて、前記訓練サンプルにより示される前記訓練用の抽象的な行動に対するコストの推定値が前記正解ラベルにより示される真値に適合するものとなるように前記コスト推定モデルを訓練することにより構成される、学習処理部と、
を更に備える、
請求項2に記載の動作計画装置。
【請求項4】
前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列の実行にかかる時間、及び当該動作系列の実行における前記ロボット装置の駆動量の少なくともいずれかに応じて算出されたコストの真値を示すように構成される、
請求項3に記載の動作計画装置。
【請求項5】
前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列が物理的に実行不能と判定される確率に応じて算出されたコストの真値を示すように構成される、
請求項3又は4に記載の動作計画装置。
【請求項6】
前記正解ラベルは、前記訓練用の抽象的な行動に対するユーザのフィードバックに応じて算出されたコストの真値を示すように構成される、
請求項3から5のいずれか1項に記載の動作計画装置。
【請求項7】
前記動作計画装置は、シンボリックプランナを使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧を前記ユーザに対して出力し、出力された前記抽象的な行動の一覧に対する前記ユーザのフィードバックを受け付けるように構成されたインタフェース処理部を更に備え、
前記データ取得部は、前記抽象的な行動の一覧に対する前記ユーザのフィードバックの結果から前記学習データセットを取得するように更に構成される、
請求項6に記載の動作計画装置。
【請求項8】
抽象的な行動に対応するエッジ及び抽象的な行動の実行により変更される対象となる抽象的属性に対応するノードを備えるグラフにより前記タスクの状態空間が表現され、
前記シンボリックプランナは、開始状態に対応する開始ノードから目標状態に対応する目標ノードまでの経路を前記グラフ内で探索することで、前記抽象的行動系列を生成するように構成される、
請求項1から7のいずれか1項に記載の動作計画装置。
【請求項9】
前記動作群を出力することは、前記動作群を示す指令を前記ロボット装置に与えることで、前記ロボット装置の動作を制御することを含む、
請求項1から8のいずれか1項に記載の動作計画装置。
【請求項10】
前記ロボット装置は、1つ以上のロボットハンドを備え、
前記タスクは、1つ以上の部品により構成される製品の組み立て作業である、
請求項1から9のいずれか1項に記載の動作計画装置。
【請求項11】
コンピュータが、
ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、
シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、
モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、
生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、
前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、
を実行する動作計画方法であって、
前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータは、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成する、
動作計画方法。
【請求項12】
コンピュータに、
ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、
シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、
モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、
生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、
前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、
を実行させるための動作計画プログラムであって、
前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータに、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄させ、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成させる、
動作計画プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット装置の動作を計画するための動作計画装置、動作計画方法、及び動作計画プログラムに関する。
【背景技術】
【0002】
例えば、製品を組み立てる等の様々なタスクを遂行するために、色々なタイプのロボット装置が利用されている。ロボット装置の機構、エンドエフェクタ、オブジェクト(ワーク、ツール、障害物等)等の要素は、タスクを遂行する環境に応じて多くのバリエーションを有しており、それら全てに対応したロボット装置の動作手順を人手でプログラミングして、ロボット装置に対象のタスクを教示することは困難である。特に、タスクが複雑になるほど、動作手順の全てをプログラミングすることは現実的ではない。そのため、機構、エンドエフェクタ、オブジェクト等の要素を決定した後、ロボット装置自体を人手で動かして、実行させる一連の動作における姿勢をレコードしながら、遂行させるタスクを直接的に教示する方法が採用される場合がある。
【0003】
しかしながら、この方法では、要素を変更する度に、タスクを遂行するための動作手順が変わる可能性があり、その動作手順をロボット装置に再度教示することになる。そのため、タスクの変更に伴う動作計画にかかる負担が大きくなってしまう。そこで、タスクを遂行するための動作計画を自動化する様々な方法が試みられている。自動計画法の一例として、古典的プランニングが知られている。古典的プランニングは、タスク環境を抽象化し、開始状態から目標状態まで状態を変化させる一連の行動(例えば、掴む、運搬する等)の計画を生成する方法である。その他、ツールの一例として、Moveit Task Constructor(非特許文献1)が知られている。Moveit Task Constructorによれば、行動の系列を人手により定義することで、ロボット装置に与える動作の指令であって、実環境で実行可能な動作の指令を自動的に生成することができる。
【先行技術文献】
【非特許文献】
【0004】
【文献】“MoveIt Task Constructor - moveit_tutorials Melodic documentation”、[online]、[令和2年10月19日検索]、インターネット<URL: https://ros-planning.github.io/moveit_tutorials/doc/moveit_task_constructor/moveit_task_constructor_tutorial.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
本件発明者らは、上記従来の自動計画法には、次のような問題点があることを見出した。すなわち、古典的プランニングによれば、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に、タスクを遂行するための行動の系列(解)を生成ことができる。また、ユーザ(オペレータ)が行動の系列を定義しなくても、動的に解を得ることができる。しかしながら、古典的プランニングは、タスクの環境を単純化した簡易的なシミュレーションに過ぎず、例えば、ロボット装置のスペック、オブジェクトの配置、ワークスペースの制約等の実環境を考慮していない。そのため、古典的プランニングにより得られる各行動が実環境で実行可能か否か不明である。一方、Moveit Task Constructorによれば、実環境で実行可能な動作の指令を自動的に生成することができる。しかしながら、行動の系列を人手で定義する分だけユーザに手間がかかってしまう。特に、複雑なタスクをロボット装置に遂行させる場合に、ユーザにかかる負担が大きくなってしまう。加えて、試行する全ての動作をメモリに保持するため、メモリの負荷が大きくなってしまう。
【0006】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成するための技術を提供することである。
【課題を解決するための手段】
【0007】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0008】
すなわち、本発明の一側面に係る動作計画装置は、ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するように構成された情報取得部と、シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するように構成された行動生成部と、モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成すると共に、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するように構成された動作生成部と、前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するように構成された出力部と、を備え、前記動作生成部において、前記動作系列が物理的に実行不能であると判定された場合、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記行動生成部において、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成するように構成される。
【0009】
当該構成に係る動作計画装置は、シンボリックプランナ及びモーションプランナの2つのプランナを使用することにより、ロボット装置の動作計画を生成する。まず、当該構成では、シンボリックプランナを使用することにより、タスクの開始状態から目標状態に到達するまでの抽象的行動系列(すなわち、抽象的な行動計画)を生成する。一例では、抽象的な行動は、ロボット装置の1つ以上の動作を含む任意の動作の集まりであって、記号(例えば、言葉等)で表現可能な動作の集まりで定義されてよい。つまり、シンボリックプランナを使用する段階では、タスクの環境及び条件を単純化して、タスクを遂行するための抽象的な行動計画を生成する。これにより、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に当該抽象的な行動計画を生成することができる。
【0010】
次に、当該構成では、モーションプランナを使用することにより、実行順に、抽象的な行動を遂行するための動作系列を生成する(すなわち、抽象的な行動を動作系列に変換する)と共に、生成された動作系列がロボット装置により実環境において物理的に実行可能か否かを判定する。つまり、モーションプランナを使用する段階では、シンボリックプランナにより生成された抽象的な行動計画の範囲で、実環境におけるロボット装置の動作をシミュレートしながら、ロボット装置の動作群(動作計画)を生成する。そして、実環境で実行可能な動作計画が生成不能である(すなわち、シンボリックプランナにより生成された行動計画が実環境で実行不能である)場合には、物理的に実行不能な行動以降の計画を破棄し、シンボリックプランナを使用する段階に戻って、抽象的行動系列を再計画する。これにより、モーションプランナを使用する段階では、実環境での実行可能性を保証しながら、シンボリックプランナの行動計画の範囲内に絞って効率的に動作計画を生成することができる。
【0011】
したがって、当該構成によれば、ロボット装置の動作計画を生成する過程を、シンボリックプランナを使用する段階及びモーションプランナを使用する段階の2つの段階に分けて、2つのプランナ間でやり取りしながら動作計画を生成する。これにより、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成することができる。なお、ロボット装置の動作を制御するように動作計画装置が構成される場合、当該動作計画装置は、当該ロボット装置の動作を制御するための「制御装置」と称されてよい。
【0012】
上記一側面に係る動作計画装置において、前記シンボリックプランナは、抽象的な行動のコストを推定するように機械学習により訓練されたコスト推定モデルを含んでもよい。そして、前記行動生成部は、前記シンボリックプランナを使用して、前記コスト推定モデルにより推定されるコストが最適化されるよう前記抽象的行動系列を生成するように更に構成されてよい。コストは、例えば、動作時間、駆動量、動作計画の失敗率(成功率)、ユーザフィードバック等の任意の指標に基づき、望ましい行動ほど低く、望ましくない行動ほど高くなるように適宜設定されてよい。当該構成によれば、訓練されたコスト推定モデルを使用することで、コストに基づいて望ましい抽象的な行動計画をシンボリックプランナにより生成し、これにより、より適切な動作計画が生成されやすくすることができる。なお、各行動のコストがヒューリスティックに得られることに応じて、「コスト推定モデル」は、「ヒューリスティックモデル」と称されてもよい。
【0013】
上記一側面に係る動作計画装置は、訓練用の抽象的な行動を示す訓練サンプル及び前記訓練用の抽象的な行動のコストの真値を示す正解ラベルの組み合わせによりそれぞれ構成される複数の学習データセットを取得するように構成されたデータ取得部と、取得された複数の学習データセットを使用して、前記コスト推定モデルの機械学習を実施するように構成された学習処理部であって、前記機械学習は、各学習データセットについて、前記訓練サンプルにより示される前記訓練用の抽象的な行動に対するコストの推定値が前記正解ラベルにより示される真値に適合するものとなるように前記コスト推定モデルを訓練することにより構成される、学習処理部と、を更に備えてよい。当該構成によれば、動作計画装置において、より適切な動作計画を生成するための訓練済みのコスト推定モデルを生成することができる。また、動作計画装置を運用しながら、コスト推定モデルの能力の改善を図ることができる。
【0014】
上記一側面に係る動作計画装置において、前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列の実行にかかる時間、及び当該動作系列の実行における前記ロボット装置の駆動量の少なくともいずれかに応じて算出されたコストの真値を示すように構成されてよい。当該構成によれば、ロボット装置の動作時間及び駆動量の少なくとも一方を指標にコストを算出する能力を獲得するようにコスト推定モデルを訓練することができる。これにより、ロボット装置の動作時間及び駆動量の少なくとも一方に関して適切な動作計画が生成されやすくすることができる。
【0015】
上記一側面に係る動作計画装置において、前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列が物理的に実行不能と判定される確率に応じて算出されたコストの真値を示すように構成されてよい。当該構成によれば、モーションプランナによる動作計画の失敗率を指標にコストを算出する能力を獲得するようにコスト推定モデルを訓練することができる。これにより、シンボリックプランナにより生成される抽象的行動系列に関して、モーションプランナによる動作計画の失敗率(換言すると、シンボリックプランナを使用する段階に戻って抽象的行動系列を再計画する可能性)を低減することができる。つまり、実環境で実行可能性の高い抽象的な行動計画をシンボリックプランナにより生成することができ、これにより、最終的な動作計画を得るまでの処理時間の短縮を図ることができる。
【0016】
上記一側面に係る動作計画装置において、前記正解ラベルは、前記訓練用の抽象的な行動に対するユーザのフィードバックに応じて算出されたコストの真値を示すように構成されてよい。当該構成によれば、ユーザのフィードバックにより与えられる知見を指標にコストを算出する能力を獲得するようにコスト推定モデルを訓練することができる。これにより、フィードバックに応じてより適切な動作計画を生成されやすくすることができる。
【0017】
上記一側面に係る動作計画装置は、シンボリックプランナを使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧を前記ユーザに対して出力し、出力された前記抽象的な行動の一覧に対する前記ユーザのフィードバックを受け付けるように構成されたインタフェース処理部を更に備えてよい。加えて、前記データ取得部は、前記抽象的な行動の一覧に対する前記ユーザのフィードバックの結果から前記学習データセットを取得するように更に構成されてよい。ユーザのフィードバックは、モーションプランナにより生成される動作計画に対して獲得されてもよい。ただし、モーションプランナにより生成される動作計画に含まれる動作系列は、ロボット装置の機械的な駆動を伴う物理量(例えば、エンドエフェクタの軌道等)により定義される。そのため、生成される動作計画は、情報量が多いものであり、かつユーザ(人間)にとって解釈性の低いものである。一方で、シンボリックプランナにより生成される行動計画に含まれる抽象的な行動は、例えば、言葉等の記号で表現可能な動作の集まりで定義されてよく、物理量で定義される動作系列と比べると、情報量が少なく、かつユーザにとって解釈性の高いものである。したがって、当該構成によれば、プランナにより生成される計画をユーザに対して出力する資源(例えば、ディスプレイ)の消費を抑え、かつ当該ユーザのフィードバックを得やすくすることができ、これにより、より適切な動作計画を生成するための訓練済みのコスト推定モデルを生成及び改善しやすくすることができる。
【0018】
上記一側面に係る動作計画装置において、抽象的な行動に対応するエッジ及び抽象的な行動の実行により変更される対象となる抽象的属性に対応するノードを備えるグラフにより前記タスクの状態空間が表現されてよく、前記シンボリックプランナは、開始状態に対応する開始ノードから目標状態に対応する目標ノードまでの経路を前記グラフ内で探索することで、前記抽象的行動系列を生成するように構成されてよい。当該構成によれば、シンボリックプランナを簡易に生成することができ、これにより、動作計画装置の構築にかかる負担を減らすことができる。
【0019】
上記一側面に係る動作計画装置において、前記動作群を出力することは、前記動作群を示す指令を前記ロボット装置に与えることで、前記ロボット装置の動作を制御することを含んでよい。当該構成によれば、生成した動作計画に従ってロボット装置の動作を制御する動作計画装置を構築することができる。なお、当該構成に係る動作計画装置は、「制御装置」と称されてよい。
【0020】
上記一側面に係る動作計画装置において、前記ロボット装置は、1つ以上のロボットハンドを備えてよく、前記タスクは、1つ以上の部品により構成される製品の組み立て作業であってよい。当該構成によれば、ロボットハンドにより製品の組み立て作業を遂行する場面において、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成することができる。
【0021】
なお、上記各形態に係る動作計画装置の別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【0022】
例えば、本発明の一側面に係る動作計画方法は、コンピュータが、ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、を実行する情報処理方法であって、前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータは、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成する、情報処理方法である。
【0023】
また、例えば、本発明の一側面に係る動作計画プログラムは、コンピュータに、ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、を実行させるためのプログラムであって、前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータに、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄させ、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成させる、プログラムである。
【発明の効果】
【0024】
本発明によれば、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成することができる。
【図面の簡単な説明】
【0025】
【
図1】
図1は、本発明が適用される場面の一例を模式的に例示する。
【
図2】
図2は、実施の形態に係る動作計画装置のハードウェア構成の一例を模式的に例示する。
【
図3】
図3は、実施の形態に係る動作計画装置のソフトウェア構成の一例を模式的に例示する。
【
図4】
図4は、実施の形態に係る動作計画装置によるコスト推定モデルの機械学習の過程の一例を模式的に例示する。
【
図5】
図5は、実施の形態に係る動作計画装置による動作計画に関する処理手順の一例を示すフローチャートである。
【
図6】
図6は、実施の形態に係るシンボリックプランナによる抽象的行動系列の生成過程の一例を模式的に例示する。
【
図7】
図7は、実施の形態に係る動作計画装置による抽象的行動系列の出力形態の一例を模式的に例示する。
【
図8】
図8は、実施の形態に係るモーションプランナによる動作系列の生成過程の一例を模式的に例示する。
【
図9】
図9は、実施の形態に係る動作計画装置によるコスト推定モデルの機械学習に関する処理手順の一例を示すフローチャートである。
【
図10】
図10は、コスト推定モデルの他の利用形態の一例を模式的に例示する。
【発明を実施するための形態】
【0026】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0027】
§1 適用例
図1は、本発明を適用した場面の一例を模式的に例示する。本実施形態に係る動作計画装置1は、ロボット装置Rにタスクを遂行させるための動作計画を生成するように構成されたコンピュータである。
【0028】
まず、動作計画装置1は、ロボット装置Rに与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報121を取得する。ロボット装置Rの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。ロボット装置Rは、例えば、産業用ロボット(マニピュレータ等)、自動的に移動可能な移動体等であってよい。産業用ロボットは、例えば、垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等であってよい。自動的に移動可能な移動体は、例えば、ドローン、自度運転可能に構成された車両、モバイルロボット等であってよい。ロボット装置Rは、複数台のロボットにより構成されてよい。タスクは、例えば、製品の組み立て等、ロボット装置Rが遂行可能な任意の作業により構成されてよい。タスクを遂行する環境は、ロボット装置R以外に、例えば、ワーク(部品等)、ツール(ドライバ等)、障害物等の対象物により規定されてよい。一例として、ロボット装置Rは、1つ以上のロボットハンドを備えてよく、タスクは、1つ以上の部品により構成される製品の組み立て作業であってよい。この場合、ロボットハンドにより製品を組み立てる作業のための動作計画を生成することができる。タスク情報121は、タスクの開始状態及び目標状態を示す情報を含んでいれば、それ以外の情報(例えば、タスクの環境に関する情報)を含んでいてもよい。
【0029】
次に、動作計画装置1は、シンボリックプランナ3を使用して、タスク情報121に基づき、開始状態から目標状態に到達するように実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成する。抽象的行動系列は、抽象的な行動計画又はシンボリックプランと読み替えられてよい。続いて、動作計画装置1は、モーションプランナ5を使用して、行動計画の実行順に、抽象的行動系列に含まれる抽象的な行動を動作系列に変換する。動作系列は、対象の抽象的な行動を達成可能に1つ以上の物理的な動作を含むよう適宜構成されてよい。これにより、動作計画装置1は、実行順に、抽象的な行動を遂行するための動作系列を生成する。この動作系列を生成する処理と共に、動作計画装置1は、モーションプランナ5を使用して、生成された動作系列がロボット装置Rにより実環境において物理的に実行可能か否かを判定する。
【0030】
一例では、抽象的な行動は、ロボット装置Rの1つ以上の動作を含む任意の動作の集まりであって、記号(例えば、言葉等)で表現可能な動作の集まりで定義されてよい。抽象的な行動は、例えば、部品を掴む、運ぶ、位置決めする等の意味のある(すなわち、人間が理解可能な)動作の集まりで定義されてよい。一方で、物理的な動作は、ロボット装置Rの機械的な駆動を伴う動き(物理量)により定義されてよい。物理的な動作は、例えば、エンドエフェクタの軌道等の制御対象における制御量により定義されてよい。
【0031】
これらに応じて、開始状態は、タスクを遂行する開始点となるロボット装置R及び対象物の抽象的属性及び物理的状態により定義されてよい。目標状態は、遂行するタスクの目標点となるロボット装置R及び対象物の抽象的属性により定義されてよい。目標状態におけるロボット装置R及び対象物の物理的状態は予め規定されていてもよいし、規定されていなくてもよい(この場合、目標状態における物理的状態は、例えば、モーションプランナ5の実行結果等に基づき、目標状態における抽象的属性から適宜決定されてよい)。「目標」は、タスクの最終的な目標及び中間的な目標のいずれであってもよい。抽象的属性は、抽象的な行動の実行により変更される対象となるものである。抽象的属性は、例えば、フリーである、ワークを保持している、ツールを保持している、ロボットハンドに保持されている、所定の位置で固定されている等の抽象的な(シンボリックな)状態を含むように構成されてよい。物理的状態は、例えば、位置、姿勢、向き等の実環境における物理量により定義されてよい。
【0032】
シンボリックプランナ3は、開始状態及び目標状態を示す情報が与えられると、当該開始状態から目標状態に到達するまでの抽象的行動系列を生成する処理を実行可能に適宜構成されてよい。シンボリックプランナ3は、例えば、古典的プランニング(グラフ探索)等の所定の規則に従って、開始状態から目標状態に近づくように実行可能な抽象的な行動を選択する処理を繰り返すことで、抽象的行動系列を生成するように構成されてよい。モーションプランナ5は、抽象的行動系列の少なくとも一部を示す情報が与えられると、抽象的な行動を遂行するための動作系列を生成する処理及び生成された動作系列をロボット装置Rが実環境において物理的に実行可能か否かを判定する処理を実行可能に適宜構成されてよい。一例では、モーションプランナ5は、所定の規則に従って抽象的な行動を動作系列に変換する変換器及び得られた動作系列を物理的にシミュレートする物理シミュレータにより構成されてよい。
【0033】
シンボリックプランナ3により生成された抽象的な行動計画が実環境で実行不能である(すなわち、抽象的行動系列に実環境で実行不能な抽象的な行動が含まれている)場合、モーションプランナ5の処理において、その原因となる抽象的な行動に対して生成された動作系列は、物理的に実行不能であると判定される。この場合、動作計画装置1は、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄する。そして、動作計画装置1は、シンボリックプランナ3を使用して、当該抽象的な行動以降の新たな抽象的行動系列を生成する。つまり、モーションプランナ5を使用する段階において、抽象的行動系列に実環境で実行不能な抽象的な行動が含まれていると判明した(実環境で実行可能な動作系列の生成が失敗した)場合、動作計画装置1は、シンボリックプランナ3を使用する段階に戻って、抽象的行動系列を再計画する。
【0034】
動作計画装置1は、全ての動作系列が実環境で実行可能であると判定される(すなわち、全ての抽象的な行動について実環境で実行可能な動作系列の生成が成功する)まで、上記のように、シンボリックプランナ3及びモーションプランナ5の処理を交互に繰り返す。これにより、動作計画装置1は、開始状態から目標状態に到達するように、1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を生成することができる。或いは、最初のシンボリックプランナ3の使用により実環境で実行可能な行動計画が生成された場合には、動作計画装置1は、シンボリックプランナ3及びモーションプランナ5の処理を1回ずつ実行することで(処理を繰り返すことなく)、当該動作群を生成することができる。
【0035】
生成された動作群は、タスクを遂行する(すなわち、開始状態から目標状態に到達する)ためのロボット装置Rの動作計画に相当する。動作計画装置1は、モーションプランナ5を使用して生成された動作群を出力する。なお、動作群を出力することは、動作群を示す指令をロボット装置Rに与えることで、ロボット装置Rの動作を制御することを含んでよい。ロボット装置Rの動作を制御するように動作計画装置1が構成される場合、当該動作計画装置1は、ロボット装置Rの動作を制御するための「制御装置」と読み替えられてよい。
【0036】
以上のとおり、本実施形態では、ロボット装置Rの動作計画を生成する過程を、シンボリックプランナ3を使用する抽象段階及びモーションプランナ5を使用する物理段階の2つの段階に分け、2つのプランナ(3、5)間でやり取りしながら動作計画を生成する。シンボリックプランナ3を使用する抽象段階では、複雑な実環境のレベルではなく抽象的なレベルにタスクの環境及び条件を単純化して、タスクを遂行するための行動計画を生成することができる。そのため、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に抽象的な行動計画(抽象的行動系列)を生成することができる。また、本実施形態では、モーションプランナ5により動作系列を生成する処理は、シンボリックプランナ3の処理結果を利用する(すなわち、シンボリックプランナ3の処理を実行した後に実行される)ように構成されている。これにより、モーションプランナ5を使用する物理段階では、実環境での実行可能性を保証しながら、シンボリックプランナ3の行動計画の範囲内に絞って効率的に動作計画を生成することができる。したがって、本実施形態によれば、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速にロボット装置Rの動作計画を生成することができる。
【0037】
§2 構成例
[ハードウェア構成]
図2は、本実施形態に係る動作計画装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る動作計画装置1は、制御部11、記憶部12、外部インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、
図2では、外部インタフェースを「外部I/F」と記載している。
【0038】
制御部11は、ハードウェアプロセッサの一例であるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、動作計画プログラム81等の各種情報を記憶する。
【0039】
動作計画プログラム81は、動作計画の生成に関する後述の情報処理(
図5及び
図9)を動作計画装置1に実行させるためのプログラムである。動作計画プログラム81は、当該情報処理の一連の命令を含む。詳細は後述する。
【0040】
外部インタフェース13は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース13の種類及び数は任意に選択されてよい。ロボット装置Rの動作を制御するように動作計画装置1が構成される場合、動作計画装置1は、外部インタフェース13を介して、ロボット装置Rに接続されてよい。なお、動作計画装置1及びロボット装置Rの接続方法は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。その他の一例として、動作計画装置1及びロボット装置Rは、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等の通信インタフェースを介して互いに接続されてよい。
【0041】
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置14及び出力装置15を利用することで、動作計画装置1を操作することができる。
【0042】
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記動作計画プログラム81は、記憶媒体91に記憶されていてもよい。動作計画装置1は、この記憶媒体91から、上記動作計画プログラム81を取得してもよい。なお、
図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ16の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0043】
なお、動作計画装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。外部インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。動作計画装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、動作計画装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)、PLC(programmable logic controller)等であってもよい。
【0044】
[ソフトウェア構成]
図3は、本実施形態に係る動作計画装置1のソフトウェア構成の一例を模式的に例示する。動作計画装置1の制御部11は、記憶部12に記憶された動作計画プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された動作計画プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、本実施形態に係る動作計画装置1は、情報取得部111、行動生成部112、動作生成部113、出力部114、データ取得部115、学習処理部116、及びインタフェース処理部117をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、動作計画装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0045】
情報取得部111は、ロボット装置Rに与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報121を取得するように構成される。行動生成部112は、シンボリックプランナ3を備える。行動生成部112は、シンボリックプランナ3を使用して、タスク情報121に基づき、開始状態から目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するように構成される。動作生成部113は、モーションプランナ5を備える。動作生成部113は、モーションプランナ5を使用して、実行順に、抽象的行動系列に含まれる抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成すると共に、生成された動作系列がロボット装置Rにより実環境において物理的に実行可能か否かを判定するように構成される。なお、シンボリックプランナ3及びモーションプランナ5それぞれの構成情報(不図示)の記憶先は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例では、それぞれの構成情報は、動作計画プログラム81内に含まれてもよいし、動作計画プログラム81とは別にメモリ(記憶部12、記憶媒体91、外部記憶装置等)に保持されてよい。
【0046】
動作計画装置1は、動作生成部113において、動作系列が物理的に実行不能であると判定された場合、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、行動生成部112において、シンボリックプランナ3を使用して、当該行動以降の新たな抽象的行動系列を生成するように構成される。出力部114は、モーションプランナ5を使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するように構成される。
【0047】
シンボリックプランナ3は、所定の規則に従って、抽象的行動系列を生成するように適宜構成されてよい。本実施形態では、シンボリックプランナ3は、抽象的な行動のコストを推定するよう機械学習により訓練されたコスト推定モデル(ヒューリスティックモデル)4を含むように更に構成されてよい。これに応じて、行動生成部112は、シンボリックプランナ3を使用して、訓練されたコスト推定モデル4により推定されるコストが最適化されるよう抽象的行動系列を生成するように更に構成されてよい。
【0048】
コスト推定モデル4は、採用する抽象的な行動の候補が与えられると、当該候補のコストの推定値(すなわち、コストを推定した結果)を出力するように適宜構成されてよい。抽象的な行動の候補は、直接的に指定されてもよいし、或いは、現在の状態及び次の状態の候補の組み合わせにより間接的に指定されてもよい。また、コスト推定モデル4に入力される情報は、抽象的な行動の候補を示す情報に限られなくてよい。コスト推定モデル4は、抽象的な行動の候補を示す情報以外に、コストの推定に利用可能な他の情報(例えば、タスク情報121の少なくとも一部)の入力を更に受け付けるように構成されてよい。
【0049】
訓練済みのコスト推定モデル4は、動作計画装置1により生成されてもよいし、或いは動作計画装置1以外の他のコンピュータにより生成されてよい。本実施形態では、動作計画装置1は、データ取得部115及び学習処理部116を備えていることにより、訓練済みのコスト推定モデル4の生成及びコスト推定モデル4の再訓練を実行可能に構成される。
【0050】
図4は、本実施形態に係るコスト推定モデル4の機械学習の過程の一例を模式的に例示する。データ取得部115は、訓練サンプル61及び正解ラベル62の組み合わせによりそれぞれ構成される複数の学習データセット60を取得するように構成される。訓練サンプル61は、訓練用の抽象的な行動を示すように適宜構成されてよい。コスト推定モデル4が他の情報の入力を更に受け付けるように構成される場合、訓練サンプル61は、訓練用の他の情報を更に含むように構成されてよい。正解ラベル62は、対応する訓練サンプル61により示される訓練用の抽象的な行動のコストの真値を示すように適宜構成されてよい。
【0051】
学習処理部116は、取得された複数の学習データセット60を使用して、コスト推定モデル4の機械学習を実施するように構成される。機械学習は、各学習データセット60について、訓練サンプル61により示される訓練用の抽象的な行動に対するコストの推定値が対応する正解ラベル62により示される真値に適合するものとなるようにコスト推定モデル4を訓練することにより構成される。
【0052】
コストは、例えば、動作時間、駆動量、動作計画の失敗率、ユーザフィードバック等の任意の指標に基づき、推奨される行動ほど低く、推奨されない行動ほど高くなるように適宜設定されてよい。コストの数値表現は、適宜設定されてよい。一例では、コストは、数値に比例する(すなわち、数値が大きいほどコストが高い)ように表現されてもよい。その他の一例では、コストは、数値に反比例する(すなわち、数値が小さいほどコストが高い)ように表現されてもよい。
【0053】
動作系列の実行にかかる時間(動作時間)及び動作系列の実行におけるロボット装置Rの駆動量は、タスクを遂行するために得られた動作計画により評価可能である。そのため、動作時間及び駆動量の少なくとも一方をコストの評価指標として用いる場合、各学習データセット60は、モーションプランナ5による動作群の生成結果から取得されてよい。
【0054】
動作計画の失敗率(すなわち、抽象的な行動に対してモーションプランナ5により生成される動作系列が物理的に実行不能と判定される確率)は、シンボリックプランナ3により得られる抽象的行動系列に対してモーションプランナ5の処理を実行することで評価可能である。そのため、動作計画の失敗率をコストの評価指標として用いる場合、各学習データセット60は、シンボリックプランナ3により得られる抽象的行動系列に対するモーションプランナ5の処理の実行結果から取得されてよい。なお、動作計画の成功率(すなわち、抽象的な行動に対してモーションプランナ5により生成される動作系列が物理的に実行可能と判定される確率)は、コストの評価指標として上記失敗率と同等に取り扱い可能である。したがって、動作計画の失敗率に応じてコストを評価することは、動作計画の成功率に応じてコストを評価することを含んでよい。また、失敗率(成功率)は、必ずしも0から1の範囲で表現されなくてよい。他の一例として、失敗率は、動作計画が成功する(コストが0)及び失敗する(コストが無限大)の二値で表現されてもよい。
【0055】
ユーザのフィードバックをコストの評価指標として用いる場合、各学習データセット60は、ユーザから得られたフィードバックの結果から適宜取得されてよい。フィードバックのタイミング及び形式はそれぞれ、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。本実施形態では、インタフェース処理部117により、当該ユーザのフィードバックを取得可能である。すなわち、インタフェース処理部117は、シンボリックプランナ3を使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧をユーザに対して出力し、出力された抽象的な行動の一覧に対する当該ユーザのフィードバックを受け付けるように構成される。各学習データセット60は、抽象的な行動の一覧に対するユーザのフィードバックの結果から取得されてよい。
【0056】
なお、いずれの評価指標を採用する場合であっても、学習データセット60を収集するタイミングは、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。全ての学習データセット60は、動作計画装置1を運用する前に収集されてもよい。或いは、複数の学習データセット60の少なくとも一部は、動作計画装置1を運用しながら収集されてよい。
【0057】
(コスト推定モデル)
コスト推定モデル4は、機械学習により調整可能な演算パラメータを有する機械学習モデルにより適宜構成されてよい。機械学習モデルの構成及び種類はそれぞれ、実施の形態に応じて適宜選択されてよい。
【0058】
一例として、コスト推定モデル4は、全結合型ニューラルネットワークにより構成されてよい。
図4の例では、コスト推定モデル4は、入力層41、1つ以上の中間(隠れ)層43、及び出力層45を備えている。中間層43の数は、実施の形態に応じて適宜選択されてよい。その他の一例では、中間層43は、省略されてもよい。コスト推定モデル4を構成するニューラルネットワークの層の数は、実施の形態に応じて適宜選択されてよい。
【0059】
各層(41、43、45)は、1又は複数のニューロン(ノード)を備える。各層(41、43、45)に含まれるニューロンの数は、実施の形態に応じて適宜決定されてよい。入力層41のニューロンの数は、例えば、入力の次元数等の入力形態に応じて適宜決定されてよい。出力層45のニューロンの数は、例えば、出力の次元数等の出力形態に応じて適宜決定されてよい。
図4の例では、各層(41、43、45)に含まれる各ニューロンは、隣接する層の全てのニューロンと結合される。
【0060】
ただし、コスト推定モデル4の構造は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。他の一例として、複数種類の情報に基づきコストを推定するようにコスト推定モデル4が構成される場合、コスト推定モデル4の少なくとも入力側の一部は、各種類の情報の入力を別々に受け付けられるように複数のモジュールに分割されていてよい。具体的な構成の一例として、コスト推定モデル4は、対応する情報の入力を受け付けるようにそれぞれ入力側に並列に配置される複数の特徴抽出モジュール、及び各特徴抽出モジュールの出力を受け付けるように出力側に配置される結合モジュールを備えてよい。各特徴抽出モジュールは、対応する情報から特徴量を抽出するように適宜構成されてよい。結合モジュールは、各特徴抽出モジュールにより各情報から抽出される特徴量を結合し、コストの推定値を出力するように適宜構成されてよい。
【0061】
各層(41、43、45)の各結合には、重み(結合荷重)が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。各層(41、43、45)に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算パラメータの一例である。
【0062】
当該コスト推定モデル4の機械学習では、学習処理部116は、各学習データセット60の訓練サンプル61を訓練データ(入力データ)として使用し、正解ラベル62を正解データ(教師信号)として使用する。すなわち、学習処理部116は、各学習データセット60の訓練サンプル61を入力層41に入力し、コスト推定モデル4の順伝播の演算処理を実行する。この演算により、学習処理部116は、訓練用の抽象的な行動に対するコストの推定値を出力層45から取得する。学習処理部116は、得られたコストの推定値と入力した訓練サンプル61に関連付けられた正解ラベル62により示される真値(正解)との間の誤差を算出する。学習処理部116は、各学習データセット60について、算出される誤差が小さくなるように、コスト推定モデル4の各演算パラメータの値の調整を繰り返す。これにより、訓練済みのコスト推定モデル4を生成することができる。
【0063】
学習処理部116は、当該機械学習により生成された訓練済みのコスト推定モデル4を再生するための学習結果データ125を生成するように構成されてよい。訓練済みのコスト推定モデル4を再生可能であれば、学習結果データ125の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例では、学習結果データ125は、上記機械学習の調整により得られたコスト推定モデル4の各演算パラメータの値を示す情報を含んでもよい。場合によって、学習結果データ125は、コスト推定モデル4の構造を示す情報を更に含んでもよい。コスト推定モデル4の構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。学習処理部116は、生成された学習結果データ125を所定の記憶領域に保存するように構成されてよい。
【0064】
(その他)
動作計画装置1の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、動作計画装置1の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、動作計画装置1のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0065】
§3 動作例
(1)動作計画
図5は、本実施形態に係る動作計画装置1による動作計画に関する処理手順の一例を示すフローチャートである。以下で説明する動作計画に関する処理手順は、動作計画方法の一例である。ただし、以下で説明する動作計画に関する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の動作計画に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0066】
(ステップS101)
ステップS101では、制御部11は、情報取得部111として動作し、ロボット装置Rに与えるタスクの開始状態及び目標状態に関する情報を含むタスク情報121を取得する。
【0067】
タスク情報121を取得する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例では、タスク情報121は、入力装置14を介したユーザの入力結果として取得されてよい。その他の一例では、タスク情報121は、タスクの開始状態及び目標状態をカメラ等のセンサにより観測した結果として取得されてよい。開始状態及び目標状態を特定可能であれば、タスク情報121のデータ形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。タスク情報121は、例えば、数値データ、テキストデータ、画像データ等により構成されてよい。タスクを特定するため、開始状態は、抽象段階及び物理段階それぞれについて適宜指定されてよい。目標状態は、抽象段階及び物理段階のうち少なくとも抽象段階について適宜指定されてよい。タスク情報121は、開始状態及び目標状態それぞれを示す情報以外に、抽象的行動系列又は動作群の生成に利用可能な他の情報を更に含んでもよい。タスク情報121を取得すると、制御部11は、次のステップS102に処理を進める。
【0068】
(ステップS102)
ステップS102では、制御部11は、行動生成部112として動作し、タスク情報121を参照すると共に、シンボリックプランナ3を使用して、開始状態から目標状態に到達するように抽象的な行動のプランニングを行う。これにより、制御部11は、タスク情報121に基づいて、開始状態から目標状態に到達するように実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成する。
【0069】
図6は、本実施形態に係るシンボリックプランナ3による抽象的行動系列の生成過程の一例を模式的に例示する。抽象段階におけるタスクの状態空間は、抽象的な行動に対応するエッジ及び抽象的な行動の実行により変更される対象となる抽象的属性に対応するノードを備えるグラフにより表現されてよい。つまり、シンボリックプランナ3の関与する状態空間は、抽象的な行動により変化する抽象的属性(状態)の集合により構成されてよい。これに応じて、シンボリックプランナ3は、開始状態に対応する開始ノードから目標状態に対応する目標ノードまでの経路をグラフ内で探索することで、抽象的行動系列を生成するように構成されてよい。これにより、シンボリックプランナ3を簡易に生成することができ、その結果、動作計画装置1の構築にかかる負担を減らすことができる。なお、開始状態に対応する開始ノードに与えられる抽象的属性は、抽象段階における開始状態を示す情報の一例である。
【0070】
抽象的属性は、ロボット装置R及び対象物それぞれの抽象的な状態を含むように適宜設定されてよい。
図6の一例では、少なくとも2つのロボットハンド(ロボットA、ロボットB)、1つ以上の部品(部品C)、及び1つ以上の道具(道具Z)が与えられ、部品Cを所定の場所に固定する作業を含むタスクについて抽象的行動系列を生成する場面を示している。抽象的属性は、各ロボット(A、B)、部品C、及び道具Zの抽象的な状態を含んでいる。開始状態では、各ロボット(A、B)、部品C、及び道具Zはフリーである。目標状態では、各ロボット(A、B)及び道具Zはフリーであり、部品Cは、所定の場所に固定される。このような条件で、抽象的な行動のプランニングの結果として、ロボットAにより部品Cを保持する行動が最初の行動として選択された場面が示されている。なお、開始ノードから目標ノードに到達するまでの間に経由するノードは、中間状態に対応する。
【0071】
タスクの状態空間がこのようなグラフにより表現可能である場合、シンボリックプランナ3は、現在の状態及び目標状態が与えられると、次の状態(すなわち、次に経由するノード)を選択するように構成されてよい。次の状態を選択することは、現在の状態において実行する抽象的な行動を選択することに相当する。そのため、次の状態を選択することは、採用する抽象的な行動を選択することと同義に取り扱われてよい。シンボリックプランナ3は、現在の状態の初期値に開始状態をセットし、次の状態として目標状態が選択されるまで、次の状態の選択及びノードの遷移を繰り返すことにより、開始ノードから目標ノードまでの経路をグラフ内で探索し、抽象的行動系列を生成することができる。
【0072】
選択可能な次の状態(採用可能な抽象的な行動)の候補は、ロボット装置Rの構成、対象物の条件等に応じて適宜与えられてよい。ただし、選択時の状態(現在状態として設定されている状態)によっては、与えられた候補のうちの一部は、論理的に実行不能である可能性がある。また、論理的に実行可能であっても、その行動を採用することで目標状態に到達できない(行き止まりに到達してしまう)又は同じ状態を繰り返し経由することになる(ループする)可能性がある。そこで、シンボリックプランナ3は、ノードの遷移前及び遷移後それぞれにおいて、採用する抽象的な行動の論理チェックを実行するように構成されてよい。
【0073】
一例として、
図6のケースにおいて、ロボットAが1つの物品を保持可能に構成されている場合、ロボットAがフリーであるならば、ロボットAにより部品Cを保持する行動又はロボットAにより道具Zを保持する行動は、論理的に実行可能である。一方、ロボットAが部品C(又は道具Z)を既に保持している場合、ロボットAにより道具Z(又は部品C)を保持する行動は、論理的に実行不能である。シンボリックプランナ3は、ノードの遷移(すなわち、選択する次の状態を決定する)前に、このような論理チェックを実行し、その結果に基づいて、論理的に実行可能な行動を採用するように構成されてよい。なお、このような遷移前の論理チェックの内容は、規則として規定されてよい。
【0074】
また、ノードを選択した結果として到達する対象ノードに対応する状態(すなわち、論理的に実行可能な抽象的な行動を実行した結果として実現される抽象的属性)において、論理的に実行可能な行動が存在しない場合、その対象ノードは、行き止まりである。或いは、その対象ノードの抽象的属性が、開始ノードから対象ノードに到達するまでに経由した中間ノードの抽象的属性と同一である場合、選択された経路はループしている。シンボリックプランナ3は、開始ノードから対象ノードまでに経由したノードの情報を保持し、ノードの遷移後に、このような論理チェックを実行することにより、行き止まり及びループを避けるように構成されてよい。行き止まり又はループに到達した場合には、シンボリックプランナ3は、該当する抽象的な行動の採用を取りやめ、1つ前の状態(ノード)に戻って、採用する抽象的な行動を決定する処理を再度実行するように構成されてよい。
【0075】
採用可能である抽象的な行動の候補が複数存在する場合、シンボリックプランナ3は、その複数の候補から採用する抽象的な行動を適宜選択してよい。本実施形態では、シンボリックプランナ3は、訓練済みのコスト推定モデル4を用いて、複数の候補から採用する抽象的な行動を決定することができる。一例として、制御部11は、学習結果データ125を参照し、訓練済みのコスト推定モデル4の設定を行う。そして、制御部11は、各候補を示す情報を入力層41に入力し、訓練済みのコスト推定モデル4の順伝播の演算を実行する。これにより、制御部11は、各候補に対するコストの推定結果を出力層45から得ることができる。
【0076】
なお、採用可能である抽象的な行動の候補は、直接的に指定されてもよいし、現在の状態及び次の状態の候補の組み合わせにより指定されてもよい。コストを推定する候補は、上記遷移前の論理チェックの結果により特定された論理的に実行可能である抽象的な行動に絞られてよい。また、各候補を示す情報以外の他の情報をコストの推定に考慮する場合、入力層41は、当該他の情報の入力を更に受け付けるように構成されてよい。他の情報は、例えば、ロボット装置Rのスペック、タスクを遂行する環境に関する属性(例えば、対象物の配置、スペック、ワークスペースの制約等)、タスクの種類、タスクの難易度、現在の状態から対象の状態までの抽象的な行動の一覧、現在の状態から対象の状態までにかかる動作時間等の情報を含んでよい。他の情報は、タスク情報121の少なくとも一部として上記ステップS101において取得されてよい。
【0077】
そして、制御部11は、訓練済みのコスト推定モデル4により得られた各候補に対するコストの推定結果に基づいて、コストを最適化するように複数の候補から採用する抽象的な行動を選択してもよい。一例では、コストを最適化することは、コストが最小の抽象的な行動を選択することにより構成されてよい。他の一例では、コストを最適化することは、閾値よりもコストが小さい抽象的な行動を選択することにより構成されてよい。これにより、ステップS102において、制御部11は、シンボリックプランナ3を使用して、訓練済みのコスト推定モデル4により推定されるコストが最適化されるように抽象的行動系列を生成することができる。抽象的行動系列を生成すると、制御部11は、次のステップS103に処理を進める。
【0078】
(ステップS103及びステップS104)
図5に基づいて、ステップS103では、制御部11は、インタフェース処理部117として動作し、シンボリックプランナ3を使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧をユーザに対して出力する。そして、ステップS104では、制御部11は、出力された抽象的な行動の一覧に対する当該ユーザのフィードバックを受け付ける。一覧の出力先、出力形式、及びフィードバックの形式は、実施の形態に応じて適宜選択されてよい。
【0079】
図7は、本実施形態に係る抽象的行動系列(抽象的な行動の一覧)の出力形態の一例を模式的に例示する。
図7に例示される出力画面150は、各抽象的な行動を実行した際のタスクの環境(例えば、ロボット装置R、対象物)の様子を表示するための第1領域151、抽象的な行動の一覧を表示するための第2領域152、抽象的行動系列の再計画を実行するための第1ボタン153、及びフィードバックの受け付けの完了するための第2ボタン154を含んでいる。ユーザのフィードバックは、第2領域152に表示された抽象的な行動の一覧に対するGUI(Graphical User Interface)操作により得られてよい。ユーザのフィードバックは、例えば、抽象的な行動の変更、修正、並び替え、削除、追加、拒否、承諾等により構成されてよい。出力画面150は、出力装置15に表示されてよい。これに応じて、ユーザのフィードバックは、入力装置14を介して受け付けられてよい。フィードバックの受け付けが完了すると、制御部11は、次のステップS105に処理を進める。
【0080】
(ステップS105)
図5に戻り、ステップS105では、制御部11は、ステップS104におけるユーザのフィードバックに応じて、処理の分岐先を決定する。ユーザのフィードバックにおいて、抽象的行動系列を再計画することが選択された(例えば、上記第1ボタン153が操作された)場合、制御部11は、ステップS102まで処理を戻して、ステップS102から処理を再度実行する。これにより、制御部11は、抽象的行動系列を再計画する。なお、シンボリックプランナ3は、再計画の際に、例えば、異なる抽象的な行動を採用する等の方法により、再計画前に生成された抽象的行動系列と少なくとも部分的に異なる抽象的行動系列を生成するように適宜構成されてよい。一方、ユーザのフィードバックにおいて、抽象的行動系列を再計画することが選択されなかった場合、制御部11は、次のステップS106に処理を進める。
【0081】
(ステップS106及びステップS107)
ステップS106では、制御部11は、動作生成部113として動作し、抽象的行動系列に含まれる抽象的な行動のうち、対応する動作系列が生成されておらず、かつ実行順序の最も早い抽象的な行動を特定する。そして、制御部11は、モーションプランナ5を使用して、特定された対象の抽象的な行動を動作系列に変換する。動作系列は、対象の抽象的な行動を達成可能に1つ以上の物理的な動作を含むよう適宜構成されてよい。ステップS107では、制御部11は、生成された動作系列がロボット装置Rにより実環境において物理的に実行可能か否かを判定する。
【0082】
図8は、本実施形態に係るモーションプランナ5による動作系列の生成過程の一例を模式的に例示する。物理段階におけるタスクの状態空間は、動作系列に対応するエッジ及び動作系列の実行により変更される対象となる物理的状態を含む動作属性に対応するノードを備えるグラフにより表現されてよい。つまり、モーションプランナ5の関与する状態空間は、物理的な動作により変化する動作(物理)属性の集合により構成されてよい。物理段階の各ノードは、抽象段階の各ノードに対応して得られてよい。
【0083】
各ノードの動作属性は、対応する時点におけるロボット装置R及び対象物の物理的状態以外に、その物理的状態に到達するための動作系列(動作リスト)に関する情報を含んでよい。
図8に示されるとおり、動作系列に関する情報は、例えば、各動作の識別情報(動作ID)、各動作の前に実行される動作(親動作)の識別情報(親動作ID)、各動作をロボット装置Rに指示するための指令情報(例えば、軌道等の制御量)等を含んでよい。動作ID及び親動作IDは、各動作の実行順序を特定するための用いられてよい。開始状態における物理的状態は、タスク情報121により開始状態の抽象的属性に応じて指定されてよい。開始状態における動作系列に関する情報は空であってよい。なお、抽象段階における状態空間を「抽象層」と表現し、物理段階における状態空間を「動作層」と表現してよい。ステップS102の処理を抽象層における行動計画の生成処理と表現し、ステップS106の処理を動作層における動作計画の生成処理と表現してもよい。
【0084】
モーションプランナ5は、現在の物理的状態及び採用する抽象的な行動が与えられると、所定の規則に従って、当該抽象的な行動を遂行するための動作系列を生成するように構成されてよい。抽象的な行動を動作系列に変換する変換規則は、実施の形態に応じて適宜設定されてよい。モーションプランナ5は、現在の物理的状態の初期値には、開始状態における物理的状態をセットしてよい。生成された動作系列の採用を決定した後、モーションプランナ5は、採用を決定した動作系列を実行することで実現される物理的状態(すなわち、遷移後のノードの物理的状態)を現在の物理的状態としてセットすることで、現在の物理状態を更新することができる。
【0085】
更に、モーションプランナ5は、実環境での対象の動作系列の実行を物理的にシミュレートすることで、対象の動作系列をロボット装置Rが実環境において物理的に実行可能か否かを判定するように構成されてよい。シミュレーションには、CAD(computer aided design)情報等の実環境を再現するための情報(不図示)が用いられてよい。当該情報は、例えば、記憶部12、記憶媒体91、外部記憶装置等の任意の記憶領域に保持されてよい。
【0086】
なお、現在の物理的状態及び抽象的な行動以外の参照情報を上記動作系列の生成及びシミュレーションの少なくとも一方に利用する場合、モーションプランナ5は、当該参照情報の入力を更に受け付けるように構成されてよい。参照情報は、例えば、ロボット装置Rのスペック、タスクを遂行する環境に関する属性(例えば、対象物の配置、スペック、ワークスペースの制約等)、タスクの種類等の情報を含んでよい。参照情報は、タスク情報121の少なくとも一部として上記ステップS101において取得されてよい。
【0087】
また、
図8に示されるとおり、抽象的な行動に対して複数の異なる動作系列の候補が生成され得る(すなわち、動作層では、抽象層の1つのノードに対応する複数のノードが与えられ得る)。この場合、制御部11は、実環境で実行可能な動作系列を複数の候補から適宜選択してよい。全ての候補が実環境で実行不能であると判定される場合、制御部11は、ステップS107の判定結果として、生成された動作系列はロボット装置Rにより実環境において物理的に実行不能であると結論付けてよい。モーションプランナ5を使用して、動作系列の生成、及び生成された動作系列の実環境での実行可能性の判定が完了すると、制御部11は、次のステップS108に処理を進める。
【0088】
(ステップS108)
図5に戻り、ステップS108では、制御部11は、ステップS107の判定結果に応じて、処理の分岐先を決定する。生成された動作系列が物理的に実行不能である(複数の候補が存在する場合には、全ての候補が実行不能である)と判定された場合、制御部11は、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄する。そして、制御部11は、ステップS102まで処理を戻して、ステップS102から処理を再度実行する。これにより、制御部11は、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降について新たな抽象的行動系列を生成する。すなわち、動作層にて実行可能な動作系列が得られない場合、制御部11は、抽象層に戻って抽象的行動系列を再計画する。なお、実行不能と判定された動作系列に対応する対象の抽象的な行動を含んでいれば、破棄する範囲は、対象の抽象的な行動以降のみに限られなくてよい。他の一例として、制御部11は、対象の抽象的な行動よりも実行順が前の抽象的な行動まで遡って破棄し、ステップS102から処理を再度実行することで、破棄した範囲について新たな抽象的行動系列を生成してもよい。一方、生成された動作系列が物理的に実行可能であると判定された場合、制御部11は、次のステップS109に処理を進める。
【0089】
(ステップS109)
ステップS109では、制御部11は、シンボリックプランナ3により生成された抽象的行動系列に含まれる全ての抽象的な行動について実環境で実行可能な動作系列の生成が成功したか否かを判定する。生成された抽象的行動系列に含まれる全ての抽象的な行動について実環境で実行可能な動作系列の生成が成功したことは、動作計画の生成が完了したことに相当する。
【0090】
動作系列が生成されていない抽象的な行動が残っている(すなわち、動作計画の生成が完了していない)場合、制御部11は、ステップS106まで処理を戻す。そして、制御部11は、実環境で実行可能な動作系列の生成が成功した対象の抽象的な行動の次に実行する抽象的な行動として採用された抽象的な行動について、ステップS106以降の処理を実行する。これにより、制御部11は、モーションプランナ5を使用して、抽象的行動系列に含まれる抽象的な行動を実行順に動作系列に変換すると共に、得られた動作系列の実環境での実行可能性を判定する。動作系列の生成されていない抽象的な行動がなくなるまでステップS106~ステップS108の処理を繰り返すことで、制御部11は、開始状態から目標状態に到達するように、1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を生成することができる。動作計画の生成が完了した場合、制御部11は、次のステップS110に処理を進める。
【0091】
(ステップS110)
ステップS110では、制御部11は、出力部114として動作し、モーションプランナ5を使用して生成された動作群(動作計画)を出力する。
【0092】
動作群の出力先及び出力形式は、実施の形態に応じて適宜決定されてよい。一例では、制御部11は、生成された動作群を出力装置15にそのまま出力してもよい。出力された動作群は、ロボット装置Rの制御に適宜利用されてよい。他の一例では、動作群を出力することは、動作群を示す指令をロボット装置Rに与えることで、ロボット装置Rの動作を制御することを含んでよい。ロボット装置Rがコントローラ(不図示)を備え、動作計画装置1が当該コントローラに接続される場合、制御部11は、動作群を示す指令情報をコントローラに出力することで、ロボット装置Rの動作を間接的に制御してもよい。或いは、動作計画装置1がロボット装置Rのコントローラとして動作する場合、制御部11は、生成された動作群に基づいて、ロボット装置Rの動作を直接的に制御してもよい。これにより、生成した動作計画に従ってロボット装置Rの動作を制御する動作計画装置1を構築することができる。
【0093】
動作群の出力が完了すると、制御部11は、本動作例に係る動作計画に関する処理手順を終了する。なお、動作計画装置1は、ステップS101~ステップS110の一連の情報処理を任意のタイミングで繰り返し実行するように構成されてよい。
【0094】
(2)コスト推定モデルの機械学習
図9は、本実施形態に係る動作計画装置1によるコスト推定モデル4の機械学習に関する処理手順の一例を示すフローチャートである。ただし、以下で説明する機械学習に関する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の機械学習に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0095】
(ステップS201)
ステップS201では、制御部11は、データ取得部115として動作し、訓練サンプル61及び正解ラベル62の組み合わせによりそれぞれ構成される複数の学習データセット60を取得する。
【0096】
各学習データセット60は適宜生成されてよい。生成方法の一例として、まず、訓練用の抽象的な行動を示す訓練サンプル61を生成する。訓練サンプル61は人手により適宜生成されてよい。或いは、訓練サンプル61は、シンボリックプランナ3の処理を実行(又は試行)して生成された抽象的行動系列から得られてよい。コスト推定モデル4が抽象的な行動の候補を示す情報以外の他の情報の入力を更に受け付けるように構成される場合、訓練サンプル61は、訓練用の他の情報を更に含むように適宜生成されてよい。
【0097】
次に、生成された訓練サンプル61に対応して、訓練用の抽象的な行動のコストの真値を示す正解ラベル62を生成する。コストの評価指標は適宜選択されてよい。一例では、コストの評価指標は、動作時間及び駆動量の少なくとも一方を含んでよい。この場合、正解ラベル62は、訓練用の抽象的な行動に対してモーションプランナ5により生成される動作系列の実行にかかる時間、及び当該動作系列の実行におけるロボット装置Rの駆動量の少なくともいずれかに応じて算出されたコストの真値を示すように構成されてよい。正解ラベル62は、モーションプランナ5により生成された動作系列を実行又はシミュレートした結果から生成されてよい。コストの真値は、動作時間が長い/駆動量が多いほどコストが大きく、動作時間が短い/駆動量が少ないほどコストが小さく評価されるように適宜設定されてよい。
【0098】
他の一例では、コストの評価指標は、動作計画の失敗率(成功率)を含んでよい。この場合、正解ラベル62は、訓練用の抽象的な行動に対してモーションプランナ5により生成される動作系列が物理的に実行不能と判定される確率に応じて算出されたコストの真値を示すように構成されてよい。正解ラベル62は、訓練用の抽象的な行動に対するモーションプランナ5の処理の実行結果から生成されてよい。コストの真値は、動作計画が成功するほど(換言すると、実環境で物理的に実行可能な動作系列が生成可能であるほど)コストが小さく、動作計画が失敗するほどコストが大きくなるように適宜設定されてよい。
【0099】
更に他の一例では、コストの評価指標は、ユーザのフィードバックを含んでよい。この場合、正解ラベル62は、訓練用の抽象的な行動に対するユーザのフィードバックに応じて算出されたコストの真値を示すように構成されてよい。ユーザのフィードバックは任意のタイミング及び形式で得られてよく、正解ラベル62は、得られたフィードバックの結果から適宜生成されてよい。本実施形態では、ステップS104の処理により、シンボリックプランナ3により生成された抽象的行動系列に対するユーザのフィードバックを得ることができる。正解ラベル62は、ステップS104のフィードバックの結果から生成されてよい。これにより、ステップS104のフィードバックの結果から学習データセット60が得られてよい。コストの真値は、フィードバックにおいて変更、修正、並び替え、削除、及び拒否の少なくともいずれかの対象となるほどコストが大きく、維持(変更等がされず、そのまま利用される)及び承諾のいずれかの対象となるほどコストが小さく評価されるように適宜設定されてよい。
【0100】
コストは、複数の評価指標(例えば、上記4つの評価指標から選択された2つ以上の評価指標)を用いて算定されてよい。また、コストの真値は、人手により決定又は修正されてもよい。そして、正解ラベル62を生成した後、生成された正解ラベル62を訓練サンプル61に関連付ける。これにより、各学習データセット60を生成することができる。
【0101】
各学習データセット60は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。生成された各学習データセット60は、記憶部12に保存されてよい。また、各学習データセット60の生成は、動作計画装置1により行われてもよいし、動作計画装置1以外の他のコンピュータにより行われてもよい。各学習データセット60を動作計画装置1が生成する場合、制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記生成処理を実行することで、各学習データセット60を取得してよい。一方、各学習データセット60を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された各学習データセット60を取得してよい。複数の学習データセット60の一部が動作計画装置1により生成され、その他が1又は複数の他のコンピュータにより生成されてもよい。
【0102】
取得する学習データセット60の件数は、特に限定されなくてよく、機械学習を実施可能なように実施の形態に応じて適宜決定されてよい。複数の学習データセット60を取得すると、制御部11は、次のステップS202に処理を進める。
【0103】
(ステップS202)
ステップS202では、制御部11は、学習処理部116として動作し、取得された複数の学習データセット60を使用して、コスト推定モデル4の機械学習を実施する。
【0104】
機械学習の処理の一例として、まず、制御部11は、機械学習の処理対象となるコスト推定モデル4を構成するニューラルネットワークを用意する。ニューラルネットワークの構造、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、或いはオペレータの入力により与えられてもよい。また、再学習を行う場合、制御部11は、過去の機械学習により得られた学習結果データに基づいて、コスト推定モデル4を用意してもよい。
【0105】
次に、制御部11は、各学習データセット60について、訓練サンプル61により示される訓練用の抽象的な行動に対するコストの推定値が対応する正解ラベル62により示される真値に適合するものとなるようにコスト推定モデル4を訓練する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【0106】
訓練処理の一例として、制御部11は、各学習データセット60の訓練サンプル61を入力層41に入力し、コスト推定モデル4の順伝播の演算処理を実行する。この演算の結果、制御部11は、訓練用の抽象的な行動に対するコストの推定値を出力層45から取得する。制御部11は、各学習データセット60について、得られた推定値と対応する正解ラベル62により示される真値との間の誤差を算出する。誤差(損失)の算出には、損失関数が用いられてよい。誤差の計算に利用する損失関数の種類は、実施の形態に応じて適宜選択されてよい。
【0107】
次に、制御部11は、算出された誤差の勾配を算出する。制御部11は、誤差逆伝播法により、算出された誤差の勾配を用いて、コスト推定モデル4の各演算パラメータの値の誤差を出力側から順に算出する。制御部11は、算出された各誤差に基づいて、コスト推定モデル4の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
【0108】
制御部11は、上記一連の更新処理により、各学習データセット60について、算出される誤差の和が小さくなるように、コスト推定モデル4の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部11は、上記一連の更新処理によるコスト推定モデル4の各演算パラメータの値の調整を繰り返してもよい。
【0109】
この機械学習の結果、制御部11は、抽象的な行動のコストを推定する能力を獲得した訓練済みのコスト推定モデル4を生成することができる。コスト推定モデル4の機械学習の処理が完了すると、制御部11は、次のステップS203に処理を進める。
【0110】
(ステップS203)
ステップS203では、制御部11は、生成された訓練済みのコスト推定モデル4に関する情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
【0111】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ16を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース13を介して動作計画装置1に接続された外付けの記憶装置であってもよい。
【0112】
学習結果データ125の保存が完了すると、制御部11は、本動作例に係るコスト推定モデル4の機械学習に関する処理手順を終了する。なお、上記ステップS201~ステップS203の処理により訓練済みのコスト推定モデル4の生成は、動作計画装置1を動作計画のために運用し始める前及び運用し始めた後のいずれのタイミングで実行されてよい。また、制御部11は、上記ステップS201~ステップS203の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際に、制御部11は、動作計画装置1を動作計画のために運用した結果を利用して、機械学習に使用する学習データセット60の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。これにより、訓練済みのコスト推定モデル4を更新してもよい。
【0113】
[特徴]
以上のとおり、本実施形態に係る動作計画装置1は、ロボット装置Rの動作計画を生成する過程を、シンボリックプランナ3を使用する抽象段階(ステップS102)及びモーションプランナ5を使用する物理段階(ステップS106及びステップS107)の2つの段階に分け、2つのプランナ(3、5)間でやり取りしながら動作計画を生成する。ステップS102の処理では、抽象的なレベルにタスクの環境及び条件を単純化して、タスクを遂行するための行動計画を生成することができる。そのため、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に抽象的な行動計画(抽象的行動系列)を生成することができる。また、ステップS106及びステップS107の処理では、実環境での実行可能性を保証しながら、シンボリックプランナ3の行動計画の範囲内に絞って効率的に動作計画を生成することができる。したがって、本実施形態によれば、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速にロボット装置Rの動作計画を生成することができる。
【0114】
また、本実施形態によれば、ステップS102の処理において、訓練済みのコスト推定モデル4を使用することで、コストに基づいて望ましい抽象的な行動計画を生成することができる。これにより、より適切な動作計画が生成されやすくすることができる。一例では、ロボット装置Rの動作時間及び駆動量の少なくとも一方をコストの評価指標に用いることで、ロボット装置Rの動作時間及び駆動量の少なくとも一方に関して適切な動作計画が生成されやすくすることができる。その他の一例では、モーションプランナ5による動作計画の失敗率をコストの評価指標に用いることで、シンボリックプランナ3により生成される抽象的行動系列に関して、モーションプランナ5による動作計画の失敗率(ステップS108の処理において、ステップS102に戻る判定がされる可能性)を低減することができる。つまり、実環境で実行可能性の高い抽象的な行動計画がシンボリックプランナ3により生成されやすくし、これにより、最終的な動作計画を得るまでの処理時間の短縮を図ることができる。その他の一例では、ユーザのフィードバックをコストの評価指標に用いることで、フィードバックに応じてより適切な動作計画を生成されやすくすることができる。
【0115】
なお、ユーザのフィードバックをコストの評価指標に用いる場合に、当該フィードバックは、モーションプランナ5により生成される動作計画に対して獲得されてもよい。一例では、動作計画装置1は、ステップS110の処理の後に、生成された動作計画に対するユーザのフィードバックを受け付けてもよい。ただし、モーションプランナ5により生成される動作計画に含まれる動作系列は、ロボット装置Rの機械的な駆動を伴う物理量により定義される。そのため、生成される動作計画は、情報量が多いものであり、かつユーザ(人間)にとって解釈性の低いものである。これに対して、本実施形態では、ステップS104の処理により抽象的行動系列に対してユーザのフィードバックを取得してよく、ステップS202の機械学習に使用される学習データセット60は、当該フィードバックの結果から得られてよい。シンボリックプランナ3により生成される行動計画に含まれる抽象的な行動は、例えば、言葉等の記号で表現可能な動作の集まりで定義されてよく、物理量で定義される動作系列と比べると、情報量が少なく、かつユーザにとって解釈性の高いものである。したがって、本実施形態によれば、プランナにより生成される計画をユーザに対して出力する資源(例えば、ディスプレイ)の消費を抑え、かつ当該ユーザのフィードバックを得やすくすることができ、これにより、より適切な動作計画を生成するための訓練済みのコスト推定モデル4を生成及び改善しやすくすることができる。
【0116】
また、本実施形態では、動作計画装置1は、上記ステップS201~ステップS203の処理を実行可能に構成されている。これにより、本実施形態によれば、動作計画装置1において、より適切な動作計画を生成するための訓練済みのコスト推定モデル4を生成することができる。また、動作計画装置1を運用しながら、コスト推定モデル4の能力の改善を図ることができる。
【0117】
なお、シンボリックプランナ3とコスト推定モデル4との間の構成上の関係は、実施の形態に応じて適宜設定されてよい。一例では、シンボリックプランナ3の一部に、機械学習により調整可能な演算パラメータが設けられ、この部分が、コスト推定モデル4として取り扱われてよい。その他の一例では、シンボリックプランナ3の構成から独立可能に機械学習モデルを用意し、用意された機械学習モデルをコスト推定モデル4として利用してよい。
【0118】
また、ステップS202の機械学習において設定されるタスク(訓練サンプル61で取り扱われるタスク)と動作計画の運用時に与えられるタスク(ステップS102で取り扱われるタスク)とは必ずしも一致していなくてもよい。すなわち、あるタスクについてコストを推定する能力を訓練したコスト推定モデル4を別のタスクについて抽象的な行動のコストを推定するために利用してもよい。
【0119】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0120】
<4.1>
上記実施形態では、コスト推定モデル4により得られるコストの推定値は、採用する抽象的な行動を複数の候補から決定する指標として利用される。すなわち、コストの推定値は、抽象層のグラフ探索において、あるノードから次のノードに遷移することを推奨する程度を評価する指標として取り扱われる。上記実施形態では、コスト推定モデル4により得られるコストの推定値は、次のノードを選択する際に参照されている。しかしながら、コストの推定値を参照するタイミングは、このような例に限定されなくてよい。他の一例として、制御部11は、目標ノードに到達した後にコストの推定値を参照し、得られた経路を採用するか否かを判定してもよい。
【0121】
また、上記実施形態において、コストの指標に動作計画の失敗率を用いる場合、訓練済みのコスト推定モデル4によるコストの推定値は、モーションプランナ5のステップS107の処理結果を推定した結果に相当する。そのため、モーションプランナ5による動作計画の失敗率を指標にコストを推定する能力を獲得した訓練済みのコスト推定モデル4は、モーションプランナ5の動作を模擬する動作推定器として取り扱われてよい。
【0122】
図10は、コスト推定モデル4の他の利用形態の一例を模式的に例示する。本変形例では、ステップS102において、コスト推定モデル4は、シンボリックプランナ3により生成された抽象的行動系列の一部又は全部を受け取り、当該抽象的行動系列の一部又は全部に対するモーションプランナ5の動作計画が成功するか否かを推定した結果をコストの推定値として出力してもよい。制御部11は、得られたコストの推定値に基づいて、モーションプランナ5による動作計画が成功する可能性を判定してもよい。そして、動作計画が成功する可能性が低い(例えば、閾値以下)場合に、制御部11は、シンボリックプランナ3による抽象的行動系列の再計画を実行してもよい。コスト推定モデル4は、モーションプランナ5の全ての処理を実行可能に構成される訳ではない。そのため、コスト推定モデル4の動作は、モーションプランナ5の動作に比べて軽量である。よって、本変形例によれば、軽量な動作で、シンボリックプランナ3による抽象的行動系列の再計画を実行するか否かを判定することができる。
【0123】
また、本変形例では、コスト推定モデル4は、動作計画の失敗率に対応するコストの推定値に加えて、その推定値の信頼性の程度(確信度)を更に出力するように構成されてよい。或いは、確信度は、コストの推定値から算定されてよい。一例として、コストの推定値が0から1の間で与えられる場合に、コストの推定値が0又は1に近いほど確信度が高く、コストの推定値が0.5に近いほど確信度が低くなるように確信度の値が算定されてよい。
【0124】
この場合、制御部11は、確信度が低い(例えば、閾値以下である)ことを、モーションプランナ5の処理を実行するトリガとして用いてよい。すなわち、上記ステップS102において、確信度が低いと評価される場合に、制御部11は、シンボリックプランナ3により抽象的行動系列を生成する処理を中断して、それまでの処理で得られた抽象的行動系列の一部に対してモーションプランナ5の処理(ステップS106及びステップS107の処理)を実行してもよい。モーションプランナ5による動作計画の生成が成功する場合、制御部11は、シンボリックプランナ3により抽象的行動系列を生成する処理を再開してよい。一方、モーションプランナ5による動作計画の生成が失敗する場合、制御部11は、それまでの処理で得られた抽象的行動系列の一部を破棄し、シンボリックプランナ3による抽象的行動系列の再計画を実行してもよい。コスト推定モデル4により推定されるコストを最適化することは、このようなモーションプランナ5の動作を模擬することを含んでよい。
【0125】
<4.2>
上記実施形態では、動作計画装置1は、シンボリックプランナ3により抽象的な行動系列の生成が完了した後に、モーションプランナ5の処理を実行することで、動作計画を生成している。しかしながら、シンボリックプランナ3及びモーションプランナ5の間でデータをやり取りするタイミング(ステップS102、ステップS106、及びステップS107の処理順序)は、このような例に限定されなくてよい。その他の一例では、動作計画装置1は、シンボリックプランナ3により抽象的行動系列の一部を生成した段階で、モーションプランナ5の処理を実行し、その一部について動作計画を生成してもよい。
【0126】
<4.3>
上記実施形態では、コスト推定モデル4は、全結合型ニューラルネットワークにより構成されている。しかしながら、コスト推定モデル4を構成するニューラルネットワークの構成は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。他の一例として、各ニューロンは、隣接する層の特定のニューロンと接続されたり、隣接する層以外の層のニューロンと接続されたりしてもよい。各ニューロンの結合関係は、実施の形態に応じて適宜決定されてよい。コスト推定モデル4を構成するニューラルネットワークは、例えば、畳み込み層、プーリング層、正規化層、ドロップアウト層等の他の種類の層を含んでもよい。コスト推定モデル4は、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、グラフニューラルネットワーク等の他の形式のニューラルネットワークにより構成されてよい。
【0127】
また、コスト推定モデル4に用いられる機械学習モデルの種類は、ニューラルネットワークに限られなくてよく、実施の形態に応じて適宜選択されてよい。機械学習の方法は、機械学習モデルの種類に応じて適宜選択されてよい。その他の一例として、コスト推定モデル4には、例えば、サポートベクタマシン、決定木モデル等の機械学習モデルが用いられてよい。
【0128】
<4.4>
上記実施形態において、ユーザのフィードバックを他の方法で獲得する場合、又はコストの評価指標としてユーザのフィードバックを採用しない場合、ステップS103~ステップS105の処理は、動作計画装置1の処理手順から省略されてよい。ステップS103~ステップS105の処理を省略する場合、インタフェース処理部117は、動作計画装置1のソフトウェア構成から省略されてよい。
【0129】
上記実施形態において、ステップS201~ステップS203の処理による訓練済みのコスト推定モデル4の生成又は再学習は、動作計画装置1以外の他のコンピュータにより実行されてよい。この場合、データ取得部115及び学習処理部116が、動作計画装置1のソフトウェア構成から省略されてよい。ステップS201~ステップS203の処理が、動作計画装置1の処理手順から省略されてよい。なお、他のコンピュータにより生成された訓練済みのコスト推定モデル4(学習結果データ125)は、ネットワーク、記憶媒体91等を介して、動作計画装置1に任意のタイミングで提供されてよい。
【0130】
また、上記実施形態のステップS102の処理において、動作計画装置1は、コスト推定モデル4を使用せずに、採用する抽象的な行動を複数の候補から選択してもよい。この場合、コスト推定モデル4は省略されてよい。
【符号の説明】
【0131】
1…動作計画装置、
11…制御部、12…記憶部、13…外部インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
81…動作計画プログラム、91…記憶媒体、
111…情報取得部、112…行動生成部、
113…動作生成部、114…出力部、
115…データ取得部、116…学習処理部、
117…インタフェース処理部、
121…タスク情報、
125…学習結果データ、
3…シンボリックプランナ、
4…コスト推定モデル、
41…入力層、43…中間(隠れ)層、45…出力層、
5…モーションプランナ、
60…学習データセット、
61…訓練サンプル、62…正解ラベル、
R…ロボット装置