(57)【特許請求の範囲】
【請求項１】
動作目的ごとに、当該動作目的に対応する動作制御の個数分存在し、周囲の物体また対象のロボット自身、の物理構造・形状を含む物理特性、時間で変化可能な特性の現在の状態（位置、姿勢、や、温度）、それらの相対関係、組み合わせ、の情報（状況情報）のうち、任意の状況情報を入力とし、与えられた動作制御の、入力した状況における動作成立の有無か度合い（２値もしくは連続値もしくは多次元ベクトル値）を示す出力値を出力する機械学習モデルと、
動作目的及び状況情報が入力されると、前記動作目的に対応する動作制御の個数分の前記機械学習モデルに対して、前記状況情報を与えることで、前記動作目的に対応する動作制御のそれぞれに対する前記出力値を取得し、取得した前記出力値に基づいて前記動作目的に対応する動作制御の中から実行すべき動作制御を選択する動作制御選択部と、
前記動作制御選択部が選択した前記動作制御を実行する動作制御実行部とを、具備し、
前記動作制御とは、センサにより周囲の物体をセンシングし、他の物体とのインタラクションを伴って、動作目的を達成するための制御ルーチンである
ことを特徴とする、ロボット制御装置。
【請求項２】
前記機械学習モデルは、与えられた動作制御ごとに、個別にそれぞれ構築されるか、単一モデルの構成であっても、学習対象の動作制御以外の動作制御における前記出力値の出力に影響を与えない方法で、対象の動作制御のモデルの学習が可能なモデルを用いて、そのような学習を行う、請求項１記載のロボット制御装置。
【請求項３】
前記状況情報には、少なくとも、物体の位置（絶対位置、相対位置）、姿勢、形状、種類のいずれかが含まれる、請求項１または２記載のロボット制御装置。
【請求項４】
動作制御の設計仕様値、実機での動作結果、人の経験則、又は、物理シミュレータ内での動作結果から生成する、状況データ−成立可否データペアを、前記機械学習モデルの学習データとして生成する学習データ生成部をさらに備える、請求項１、２または３記載のロボット制御装置。
【請求項５】
前記学習データ生成部は、前記物理シミュレータを用いて生成する場合、動作制御に加え、その動作制御においてどういう状態がその動作制御における動作成立である状態かを定義する条件を与え、物理シミュレータ内で環境（状況情報）を様々変化させ与えられた動作制御を実行し、動作成立するかどうかをテストし、その結果を、前記状況データ−成立可否データペアとして生成する、請求項４記載のロボット制御装置。
【請求項６】
前記物理シミュレータで動作成立をテストする際に、与えた動作制御が動作成立する環境（状況情報）を、少なくとも１つは与え、その点を起点として、テストする環境（状況情報）の走査を行う請求項５記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、何らかのセンサを持ち、センサにより周囲の物体をセンシングし、他の物体（「環境」とも言える物体も含む。例、壁、床）とのインタラクションを伴うロボットの制御に関する。本発明はまた、ロボットの動作制御の管理、評価検証、改善のための制御プログラムの構成に関する。
【背景技術】
【０００２】
他の物体とのインタラクションを伴う動作を、環境やタスクが固定されない自由度のある環境（オープンな環境）で行うロボット（例、自律制御された家事ロボット、介護ロボット、など）は置かれた環境・状況に応じて柔軟に動作する必要がある。また、行うべき動作もタスクに応じて様々である。
【０００３】
一見似ているが、工場内作業場内のロボットアームは、単一の物体を対象に単一のパス（経路）を移動するのみでよく（環境・状況・タスクが固定されている）、ロボットに求められる要件は異なる。また、実用化を考えた際、評価検証、改善といった面が出てくる。
【０００４】
動作の例として、様々な場所に置かれた物体を、別の様々な場所に移動させる、ものを横から掴み、掴んだまま移動し、別の場所に置く、掴んだ後、向きを変える、ものが持っている穴に備え付けの棒を通す、掴んだものを、ものとものの隙間に差し込む、ものを積み上げる、などがある。
【０００５】
また、動作を実行する環境・状況の例として、物体が置かれる様々な場所、周囲にどの様な物体が存在しているか、物体が別の物体に物理的に干渉しているか、などがある。
【０００６】
周囲の物体を考慮する例として、周囲の物体の存在（どの空間を物体が占めているか）を確認し、ロボットが物理的に干渉するかどうかを確認するシステムが提案されている（例えば特許文献１参照）。
【０００７】
また、センサ情報を機械学習モデルに入力し、機械学習モデルの出力によって対象機器を制御し、柔軟な制御を実現するシステムが提案されている（例えば特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−８１４４５号公報
【特許文献２】特開２０１７−６４９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前述した特許文献１に開示される従来のシステムは、周囲の物体がその空間を占めるかどうかを判断し他の物体が存在しない領域で動作を行う。そのため、例えば、他の物体を押しのけて物体をその場所に置くといった、物理的相互作用を伴う動作や、物体の種類に応じた動作の変更などは考慮されておらず、そのような動作が含まれる制御への対応はできない。
【００１０】
また、特許文献２に開示されているシステムは、機械学習モデルを用いた制御により、幅広い状況において柔軟な制御が可能ではあるが、個別の状況ごとの、動作制御の、管理、評価検証、修正などは困難である。
【００１１】
また、上記従来の技術では、ある状況における動作ミスに関しての動作制御の修正において、その修正による別の状況における動作制御の動作への影響については考慮されていない。修正によって、別の状況における動作制御の動作に影響が出る可能性がある。もともと動作が成立していた状況（目的を達成する動作を実現できていた状況）において、その修正によって動作が変更し、動作が成立しなくなる可能性がある。そのため、再度全ての状況で、動作が成立するかどうか、評価検証を行わないといけなくなる。
【００１２】
本発明の目的は、幅広い環境、状況に応じた柔軟な制御を実現しつつ、各状況に応じた動作の制御を、それぞれ個別に管理、修正できるロボット制御装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、請求項１に記載の発明は、動作目的ごとに、当該動作目的に対応する動作制御の個数分存在し、周囲の物体また対象のロボット自身、の物理構造・形状を含む物理特性、時間で変化可能な特性の現在の状態（位置、姿勢、や、温度）、それらの相対関係、組み合わせ、の情報（状況情報）のうち、任意の状況情報を入力とし、与えられた動作制御の、入力した状況における動作成立の有無か度合い（２値もしくは連続値もしくは多次元ベクトル値）を示す出力値を出力する機械学習モデルと、動作目的及び状況情報が入力されると、前記動作目的に対応する動作制御の個数分の前記機械学習モデルに対して、前記状況情報を与えることで、前記動作目的に対応する動作制御のそれぞれに対する前記出力値を取得し、取得した前記出力値に基づいて前記動作目的に対応する動作制御の中から実行すべき動作制御を選択する動作制御選択部と、前記動作制御選択部が選択した前記動作制御を実行する動作制御実行部とを、具備し、前記動作制御とは、センサにより周囲の物体をセンシングし、他の物体とのインタラクションを伴って、動作目的を達成するための制御ルーチンであることを特徴とする。
【００１４】
請求項２に記載の発明は、前記機械学習モデルは、与えられた動作制御ごとに、個別にそれぞれ構築されるか、単一モデルの構成であっても、学習対象の動作制御以外の動作制御における前記出力値の出力に影響を与えない方法で、対象の動作制御のモデルの学習が可能なモデルを用いて、そのような学習を行うことを特徴とする。
【００１５】
請求項３に記載の発明は、前記状況情報には、少なくとも、物体の位置（絶対位置、相対位置）、姿勢、形状、種類のいずれかが含まれることを特徴とする。
【００１６】
請求項４に記載の発明は、動作制御の設計仕様値、実機での動作結果、人の経験則、又は、物理シミュレータ内での動作結果から生成する、状況データ−成立可否データペアを、前記機械学習モデルの学習データとして生成する学習データ生成部をさらに備えることを特徴とする。
【００１７】
請求項５に記載の発明は、前記学習データ生成部は、前記物理シミュレータを用いて生成する場合、動作制御に加え、その動作制御においてどういう状態がその動作制御における動作成立である状態かを定義する条件を与え、物理シミュレータ内で環境（状況情報）を様々変化させ与えられた動作制御を実行し、動作成立するかどうかをテストし、その結果を、前記状況データ−成立可否データペアとして生成することを特徴とする。
【００１８】
請求項６に記載の発明は、前記物理シミュレータで動作成立をテストする際に、与えた動作制御が動作成立する環境（状況情報）を、少なくとも１つは与え、その点を起点として、テストする環境（状況情報）の走査を行うことを特徴とする。
【発明の効果】
【００１９】
本発明により、幅広い環境、状況に応じた柔軟な制御を実現しつつ、各状況に応じた動作の制御を、それぞれ個別に管理、修正できるロボット制御装置が提供される。
【００２０】
より詳しくは、請求項１に記載の発明によれば、動作制御の動作が成立する状況を柔軟に判断して、適切に動作実行することができる。言い換えるならば、多種多様で多量な情報による高次元で非常に複雑な、人がイメージすることや、人手で記述する事が困難な、動作制御の動作が成立する状況の範囲の境界も、機械学習モデルを用いることで、容易に記述可能になる。
【００２１】
請求項２に記載の発明によれば、状況判断を行う機械学習モデルにおいて、新規の動作制御に関する状況判断の追加や既存の動作制御に関する状況判断の修正が、他の動作制御の状況判断への影響なく行うことができる。
【００２２】
請求項３に記載の発明によれば、請求項１、請求項２に記載の発明と同等の作用効果が奏される。
【００２３】
請求項４に記載の発明によれば、請求項１、請求項２に記載の発明と同等の作用効果が奏される。
【００２４】
請求項５に記載の発明によれば、自動で、状況判断のモデルの構築や修正（学習や再学習）ができる。
【００２５】
請求項６に記載の発明によれば、自動で、状況判断のモデルの構築や修正（学習や再学習）を行う際、与えられた状況情報を、テストする状況を走査する際の起点とすることで、成立する状況の範囲のテストを効率的に行うことができる。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明の基本概念を説明する図である。
【図２】図２は、本発明の基本概念の詳細を示す図である。
【図３】図３は、実施の形態に係るロボット制御装置の構成を示すブロック図である。
【図４】図４は、実施の形態に係るロボット制御装置による事前処理を説明する図である。
【図５】図５は、実施の形態に係るロボット制御装置の動作（動作制御）を説明する図である。
【図６】図６は、実施の形態に係るロボット制御装置のメンテナンス／評価検証時の処理を説明する図である。
【図７】図７は、実施の形態に係るロボット制御装置が備える機械学習モデルの具体例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２８】
図１は、本発明の基本概念を説明する図である。ここでは、対象物体をロボットアームで処理する際の「環境・状況の範囲」が例示されている。本図において、「ＮＧ」は、ロボットアームによる動作が不可能な「環境・状況の範囲」を例示している。
【００２９】
本図に示されるように、本発明は、「失敗しない、動作可能な環境・状況の範囲」という概念を用いる。つまり、動作目的および動作制御ごとに、「失敗しない、動作可能な環境・状況の範囲」を自動算出し、また各動作制御を個別に管理する。
【００３０】
ここで、環境・状況とは、対象物体やその周囲の物体の種類、置かれ方を意味する。様々な物体の種類、位置関係、状況からなるため、概念的に多次元な空間となる。また、動作によっては、ロボット自身の形状や姿勢も、環境・状況、に含まれる。また、複数のロボットの協調動作を考えた場合、それぞれのロボットの位置関係・姿勢関係も、環境・状況、に含まれる。
【００３１】
なお、本実施の形態では、ロボットアームを例として説明するが、本発明は、ロボットの形状および構造に寄らず、あらゆる種類のロボットに適用可能である。
【００３２】
図２は、本発明の基本概念の詳細を示す図である。本図に示されるように、本発明では、動作目的ごとに複数の動作制御を組み合わせることで動作目的を実現する。各動作制御は、個別に管理され、独立している。
【００３３】
図２の（ａ）は、動作目的Ａ（例えば、ものを移動）についての環境・状況の概念空間を例示している。この例では、動作可能な環境・状況範囲Ａ１では、動作制御Ａ１が可能である。動作可能な環境・状況範囲Ａ２では、動作制御Ａ２が可能である。動作可能な環境・状況範囲Ａ３では、動作制御Ａ３が可能である。
【００３４】
図２の（ｂ）は、動作目的Ｂ（例えば、ものの姿勢を変更）についての環境・状況の概念空間を例示している。この例では、動作可能な環境・状況範囲Ｂ１では、動作制御Ｂ１が可能である。動作可能な環境・状況範囲Ｂ２では、動作制御Ｂ２が可能である。動作可能な環境・状況範囲Ｂ３では、動作制御Ｂ３が可能である。
【００３５】
本発明では、図２に示されるように、失敗しない範囲を考慮して一つ以上の動作制御を組み合わせることで、一つの動作目的を実現する。
【００３６】
図３は、実施の形態に係るロボット制御装置１０の構成を示すブロック図である。ロボット制御装置１０は、目的動作入力部１２、現在の状況の検知部１４、動作制御選択部１６、動作制御実行部１８、各目的動作の動作制御の動作可能状況範囲を記述したＭＬ（機械学習）モデル２０、動作制御の集合２２、目的動作・動作制御の設計仕様値・実機動作値・経験則・動作制御・成立判断基準・動作基本状況等の各種情報入力部２４、状況データ・成立可否データペアの生成部２６、動作の物理シミュレーション部２８、および、動作可能状況の範囲の確認部３０で構成される。ロボット制御装置１０は、動作制御ごとの動作可能状況範囲を記述したモデル（ＭＬモデル２０）を持ち、そのモデルを学習するデータサンプルを、動作制御の設計仕様値、実機動作値、経験則や物理シミュレータ（動作の物理シミュレーション部２８）などから得る。この処理を、動作制御の内容によらず、自動で行う。
【００３７】
なお、ＭＬモデル２０は、各種情報入力部２４で与える動作制御における制御用に、機械学習モデルを使っていた場合、その中に、統合する形としても良い。例えば、動作制御用の機械学習モデルの入力の種類と、ＭＬモデル２０の入力の種類が共通で、動作制御用の出力とは別に、成立可否用の出力が設けてある形の、１つの機械学習モデルへの統合などである。
【００３８】
また、動作制御ごとの個別の機械学習モデルの場合、各機械学習モデルの入力や出力はそれぞれ同一の形式でなくてもよい。
【００３９】
また、動作制御ごとの個別の機械学習モデルではなく、単一モデルの構成における、動作の追加や修正における、モデル出力の対応に関して、次の２つのことがいえる。
【００４０】
（１）「モデル構成は固定で出力値のみ変更する形で、動作制御の追加や状況範囲の修正の対応を行うモデルで、学習対象の動作制御以外の動作制御に関する出力値に影響を与えないか少ししか影響を与えない方法で、対象の動作制御に関するモデルの学習が可能なモデルを用いる」場合、モデルの出力は、例えば、多次元ベクトルとなっており、動作制御の追加は、新しいパターンの出力値を出力させる形に学習を行う。
【００４１】
（２）「モデル構成の変更拡張と出力値の変更による形で、動作制御の追加や状況範囲の修正の対応を行うモデルで、学習対象の動作制御以外の動作制御に関する出力値に影響を与えないか少ししか影響を与えない方法で、対象の動作制御に関するモデルの学習が可能なモデルを用いる」場合、例えば、モデル構成として新たな動作制御用の出力算出部を追加するなど、出力値の算出構造を変化させたりして、新しい動作制御追加を行う。
【００４２】
なお、以下では、説明の簡単化のため、動作制御ごとの個別の機械学習モデルを想定して述べる。
【００４３】
図４は、実施の形態に係るロボット制御装置１０による事前処理を説明する図である。ここでは、図３に示されるブロック図のうち、事前処理に関連するブロックだけが示されている。
【００４４】
使用する動作制御における、ＭＬモデル２０の学習のため、状況データ・成立可否データペアの生成部２６において、学習用のデータである、状況データ・成立可否データペアが多量に生成される。生成は、その動作制御の設計仕様値や実機での動作値、動作制御作成者の経験則などから、どの様な状況において動作が成立するか否かを表す、状況データ−成立可否データペアを様々な状況において生成するか、動作制御および動作が成立したかどうかの判断基準、また、動作させる際の基本的な（代表的な）状況を、動作の物理シミュレーション部２８に入れ、動作制御を様々な状況において動作させた結果を基に生成する。
【００４５】
図５は、実施の形態に係るロボット制御装置１０の動作（動作制御）を説明する図である。ここでは、図３に示されるブロック図のうち、ロボット制御装置１０の動作（動作制御）に関連するブロックだけが示されている。
【００４６】
動作制御選択部１６は、目的動作入力部１２から入力された目的動作に対応する、状況範囲の抽象モデル（目的動作に対応する動作制御の個数分存在するＭＬモデル２０）に、現在の状況の検知部１４から得られた、現在の状況データを入れ、各ＭＬモデル２０の出力を確認する（ＭＬモデル２０からは、対応する動作制御が可能か否かの推論値が出力される）。
【００４７】
動作制御選択部１６は、ＭＬモデル２０の出力値から、現在の状況では、どの動作制御だと動作可能かを判断（なお、複数の動作制御が動作可能という場合も存在する。範囲の重複時）し、動作制御の集合２２から、動作制御を選択する。そして、動作制御実行部１８は、選択された動作制御を実行する。つまり、今の状況を、ＭＬモデル２０に入れ、失敗しないかどうかを推論させ、失敗しないと出た動作制御を採用し実行する。
【００４８】
図６は、実施の形態に係るロボット制御装置１０のメンテナンス／評価検証時の処理を説明する図である。ここでは、図３に示されるブロック図のうち、メンテナンス／評価検証に関連するブロックだけが示されている。
【００４９】
動作可能状況の範囲の確認部３０は、各動作制御のＭＬモデル２０（事前処理において学習済み）を調べ、ある目的動作ある状況において、どの様な動作制御が対応付けられているか、また、どんな動作制御も対応付けられていないかを、調べ、必要ならば新たに動作制御を作成し、「事前処理」の手順にて対応付けを行う。
【００５０】
また、ある目的動作ある状況における動作制御を改善したい場合、動作可能状況の範囲の確認部３０は、その状況に対応付けられている、動作制御を判定し（調べ）、その動作制御に対し、修正を行う。動作制御は、可能状況範囲に応じて完全に分離されている（つまり各動作制御は独立）ため、修正は、他の動作制御には影響を与えない。
【００５１】
このように、ある状況で適切に動作するか否か確認する場合には（チェック１）、動作可能状況の範囲の確認部３０により、ＭＬモデル２０の出力の確認で可能である。また、ある状況での制御を改善したい場合には（チェック２）、動作可能状況の範囲の確認部３０により、ＭＬモデル２０を見て、対応づいている動作制御を修正すればよい。
【００５２】
図７は、実施の形態に係るロボット制御装置１０が備えるＭＬモデル２０の具体例を示す図である。本実施の形態では、ＭＬモデル２０は、Ｔｈｒｅｅ  Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋと呼ばれるＤＮＮ（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）が用いられる。ＤＮＮは、空間中の各位置における物体の有無、物体の種類などを入力とし、動作可能かどうか（ＯＫ／ＮＧ）を出力する。
【００５３】
以上のように、本実施の形態に係るロボット制御装置１０は、ロボット制御を実現するための以下の４つの必要要件１〜４をすべて満たしている。
【００５４】
・必要要件１：幅広い環境、状況に合わせた柔軟な制御が可能であること。
【００５５】
これについては、本実施の形態に係るロボット制御装置１０によれば、複数の動作制御を組み合わせられ、また制御手法の種類に制約は無いため、可能である。
【００５６】
・必要要件２：物理的な現象を考慮（対象物体の他物体への干渉。例、押す、摩擦、沿わせる、重心バランス、など）した制御が可能であること。
【００５７】
これについては、本実施の形態に係るロボット制御装置１０によれば、物理シミュレーションにより判定させるので可能である。
【００５８】
・必要要件３：動作を実行する各制御ルーチン（以降、動作制御、と呼ぶ）が成立する（つまり、目的を達成するように動作する）環境・状況の範囲の明確化が可能であること。
【００５９】
これについては、本実施の形態に係るロボット制御装置１０によれば、動作可能状況範囲をモデル化するため可能である。
【００６０】
・必要要件４：それぞれの動作制御を個別にチューニング可能であること。
【００６１】
これについては、本実施の形態に係るロボット制御装置１０によれば、可能状況範囲ごとに個別に動作制御を扱うため、可能である。
【産業上の利用可能性】
【００６２】
本発明は、ロボット制御装置として、特に、幅広い環境、状況に応じた柔軟な制御を実現しつつ、各状況に応じた動作の制御を、それぞれ個別に管理、修正できるロボット制御装置として、利用できる。
【符号の説明】
【００６３】
１０  ロボット制御装置
１２  目的動作入力部
１４  現在の状況の検知部
１６  動作制御選択部
１８  動作制御実行部
２０  ＭＬ（機械学習）モデル
２２  動作制御の集合
２４  各種情報入力部
２６  状況データ・成立可否データペアの生成部
２８  動作の物理シミュレーション部
３０  動作可能状況の範囲の確認部
【要約】
【課題】幅広い環境、状況に応じた柔軟な制御を実現しつつ、各環境・状況に応じた動作の制御を、それぞれ個別に管理、修正できるようにする。
【解決手段】動作を実行する各制御ルーチン（以降、動作制御、と呼ぶ）が動作目的を達成する制御が可能な環境・状況の範囲を、機械学習モデルで記述、モデル出力（例えば範囲内か否か）により、現在の状況における適切な動作制御を選択、実行する。
【選択図】図１【図１】
0006742040.tif 000002
【図２】
0006742040.tif 000003
【図３】
0006742040.tif 000004
【図４】
0006742040.tif 000005
【図５】
0006742040.tif 000006
【図６】
0006742040.tif 000007
【図７】
0006742040.tif 000008