(57)【特許請求の範囲】
【請求項１】
ロボットの動作拘束条件に基づいて生成された複数のパスデータと、前記パスデータのそれぞれに対応して所定の評価基準における尺度となる評価値データとを対応付けたデータセットを保持するデータセット保持部と、
前記データセットに基づく機械学習プロセスの結果に基いて、任意に設定された設定始点と設定終点との間の複数の経由点を含む前記ロボットのパスを生成するパス生成部と、
を有し、
前記評価基準は、
少なくとも消費電力、動作経路の距離、動作時間、振動評価値、指定軸負荷のいずれか１つを含み、
前記パス生成部は、
前記機械学習プロセスでの学習内容に基づき、前記評価基準が最適となるよう次に経由すべき前記経由点を生成する経由点生成部、
を有し、
前記設定始点から始めて前記設定終点の近傍となるまで前記経由点生成部が生成した前記経由点での分岐探索を繰り返して前記パスを生成することを特徴とするロボットパス生成装置。
【請求項２】
前記パス生成部は、
前記機械学習プロセスでの学習内容に基づき、前記評価基準が最適となるよう通過すべき部分パスを生成する部分パス生成部を有していることを特徴とする請求項１記載のロボットパス生成装置。
【請求項３】
前記パス生成部は、
前記設定始点から前記設定終点の間で前記部分パス生成部が生成した前記部分パスを接続して前記パスを生成することを特徴とする請求項２記載のロボットパス生成装置。
【請求項４】
前記動作拘束条件は、
前記ロボットがその周囲の作業環境と干渉接触しない動作領域、
前記ロボットが所定の進入禁止領域に進入しない動作領域、
前記ロボットがハンドリングしている対象物を所定角度以上に傾けない動作領域、
の少なくとも１つ以上を満たす前記ロボットの動作領域に設定されていることを特徴とする請求項１乃至３のいずれか１項に記載のロボットパス生成装置。
【請求項５】
前記動作拘束条件を設定する入力装置を有することを特徴とする請求項１乃至４のいずれか１項に記載のロボットパス生成装置。
【請求項６】
前記データセット保持部は、
前記パス生成部によって生成された前記ロボットのパスを前記ロボットの動作拘束条件と前記評価値データとに対応付けた新たなデータセットを記憶することを特徴とする請求項１乃至５のいずれか１項に記載のロボットパス生成装置。
【請求項７】
ロボットと、
請求項１乃至６のいずれか１項に記載のロボットパス生成装置と、
前記ロボットパス生成装置の生成結果に基いて前記ロボットの動作を制御するロボットコントローラと、
を有することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、ロボットパス生成装置及びロボットシステムに関する。
【背景技術】
【０００２】
特許文献１には、コントローラのシミュレーションによりロボットの教示パスと較正パスを生成する手法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１０４５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
操作者によるティーチングの労力や操作者の習熟度によるばらつきを軽減するためには、上記従来技術のようにシミュレーションによってパスを自動生成する手法が好ましいが、実用的な時間でより高品質のパスを生成するためにはまだ改善の余地がある。【０００５】
本発明はこのような問題点に鑑みてなされたものであり、実用的な時間でより適切なパスを生成できるロボットパス生成装置及びロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の一の観点によれば、ロボットの動作拘束条件に基づいて生成された複数のパスデータと、前記パスデータのそれぞれに対応して所定の評価基準における尺度となる評価値データとを対応付けたデータセットを保持するデータセット保持部と、前記データセットに基づく機械学習プロセスの結果に基いて、任意に設定された設定始点と設定終点との間の前記ロボットのパスを生成するパス生成部と、を有するロボットパス生成装置が適用される。【０００７】
また、本発明の一の観点によれば、ロボットと、ロボットパス生成装置と、前記ロボットパス生成装置の生成結果に基いて前記ロボットの動作を制御するロボットコントローラと、を有するロボットシステムが適用される。
【発明の効果】
【０００８】
本発明によれば、実用的な時間でより適切なパスを生成できる。
【図面の簡単な説明】
【０００９】
【図１】実施形態のロボットシステムの概略的なシステムブロック構成の一例を表す図である。
【図２】第１実施形態の例の経由点接続によるパスプランニングを説明するための作業環境マップを表す図である。
【図３】経由点を接続してパスが生成された作業環境マップを表す図である。
【図４】軌道計画部のニューラルネットワークモデル概要構成の一例を表す図である。
【図５】多様な設定始点と設定終点に対応した経由点のパスデータを含む軌道計画部学習用データセットを例示する図である。
【図６】候補範囲、候補点を探索する場合の作業環境マップを表す図である。
【図７】パスプランニングにＳＢＬ又はＲＲＴを利用する場合の作業環境マップを表す図である。
【図８】第２実施形態の例の部分パス接続によるパスプランニングを説明するための作業環境マップを表す図である。
【図９】部分パスを接続してパスが生成された作業環境マップを表す図である。
【図１０】軌道計画部のニューラルネットワークモデル概要構成の一例を表す図である。
【図１１】多様な設定始点と設定終点に対応した部分パスのパスデータを含む軌道計画部学習用データセットを例示する図である。
【図１２】ロボットコントローラのハードウェア構成を表すシステムブロック図である。
【図１３】作業計画部、軌道計画部、及びデータベースを汎用パーソナルコンピュータに実装した場合のシステムブロック構成の一例を表す図である。
【発明を実施するための形態】
【００１０】
以下、第１の実施形態について図面を参照しつつ説明する。
【００１１】
＜ロボットシステムの概略構成＞
図１は、本実施形態のロボットシステムの概略的なシステムブロック構成の一例を表している。図１においてロボットシステム１は、上位制御装置２と、ロボットコントローラ３と、サーボアンプ４と、ロボット５とを有している。なお、本実施形態の例では、自動車のフレームＦを対象ワークとして作業を行う場合を示しているが、他の機械構造物等を対象ワークとし、部品組み込み、塗料噴霧、カメラ画像での検査などといった他の作業に適用してもよい。
【００１２】
上位制御装置２（入力装置）は、例えば特に図示しないＣＰＵ、ＲＯＭ、ＲＡＭ、操作部、表示部等を備えた汎用パーソナルコンピュータ等で構成されており、当該ロボットシステム１全体の動作を管理する。具体的には、操作部を介して操作者から入力された各種設定や指令に基づく作業指令、及び対象ワーク（この例のフレームＦ）やロボット５の三次元構造などの各種仕様を表す３Ｄモデルデータ（ＣＡＤデータ、ＣＡＭデータなど）をロボットコントローラ３に入力する。
【００１３】
ロボットコントローラ３は、上記の上位制御装置２から入力された３Ｄモデルデータに基づいて、同じく入力された作業指令を実現するための各種処理を行いサーボアンプ４に駆動指令を出力する。このロボットコントローラ３は、作業計画部３１、軌道計画部３２、逆キネマティクス演算部３３とを有している。
【００１４】
作業計画部３１は、上位制御装置２から入力された３Ｄモデルデータと作業指令に基づいて、ロボット５に行わせる具体的な作業内容（後述するエンドエフェクタ６の動作位置の移動工程や各位置での動作内容など）を計画し、それにより生成した設定始点、設定終点、及び設定姿勢を軌道計画部３２に出力する。この設定始点、設定終点、及び設定姿勢は、ロボット５の作業空間座標ＸＹＺ中においてエンドエフェクタ６の基準点を移動させる際の始点、終点、及び当該終点での当該エンドエフェクタ６の姿勢を表す指令である。また一方で、当該作業計画部３１は、上位制御装置２から入力されたものと同じ３Ｄモデルデータを軌道計画部３２にも入力する。また作業計画部３１は、エンドエフェクタ６に対する動作指令も出力しているが、図中では省略している。
【００１５】
軌道計画部３２は、上記作業計画部３１から入力された設定始点、設定終点、設定姿勢、及び３Ｄモデルデータに基づいて、ロボット５が対象ワークに干渉接触しないようにエンドエフェクタ６を設定始点から設定終点まで移動させ、設定姿勢に姿勢制御するための適切な経由点と経由姿勢を逆キネマティクス演算部３３に出力する。なお本実施形態の例におけるこの軌道計画部３２の内部処理は、機械学習プロセスで学習したニューラルネットワークによって行うものであり、その処理内容や手法については後に詳述する。この軌道計画部３２が、各請求項記載のパス生成部に相当する。
【００１６】
逆キネマティクス演算部３３は、その時点のエンドエフェクタ６の位置、姿勢から上記軌道計画部３２から入力された経由点及び経由姿勢への移動と姿勢制御を実現するために必要となるロボット５の各駆動軸モータ（図示省略）の目標回転角度を演算し、対応する駆動指令を出力する。
【００１７】
なお、上述した作業計画部３１、軌道計画部３２、逆キネマティクス演算部３３等における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、ロボットコントローラ３は、後述するＣＰＵ９０１（図１２参照）が実行するプログラムによりソフトウェア的に実装されてもよいし、その一部又は全部がＡＳＩＣやＦＰＧＡ、その他の電気回路等（ニューロモーフィックチップ等）の実際の装置によりハードウェア的に実装されてもよい。
【００１８】
サーボアンプ４は、上記ロボットコントローラ３の逆キネマティクス演算部３３から入力された駆動指令に基づいて、ロボット５の各駆動軸モータ（図示省略）やエンドエフェクタ６を駆動制御する駆動電力の給電制御を行う。
【００１９】
ロボット５は、図示する本実施形態の例では６つの関節軸を備えたマニプレータアーム（６軸ロボット）である。そのアーム先端部５ａには、この例のエンドエフェクタ６が装着されており、当該ロボット５を基準に設定された作業空間座標ＸＹＺ中におけるエンドエフェクタ６の位置制御及び姿勢制御が可能となっている。
【００２０】
なお、上記上位制御装置２と上記ロボットコントローラ３が、各請求項記載のロボットパス生成装置に相当する。
【００２１】
＜本実施形態の特徴＞
一般的にロボットは、およそ３軸以上の駆動モータで各関節を駆動して動作する。上記ロボット５をその作業対象である対象ワークに対して所定の作業動作を行わせる際、ロボットコントローラ３はエンドエフェクタ６もしくはアーム先端部５ａなどの移動基準点が始点から終点まで通過するパス（経路、軌道：経由点の順序列）を指定して動作させる。このパスは、ロボットと対象ワークが干渉接触しない等の動作拘束条件下で設定することが望ましく、これまではロボットのパスを手動操作によるティーチングやランダムサンプリングを用いたパスプランニングで生成していた。
【００２２】
通常では同じ始点と終点を接続するパスは複数通り存在するが、例えば消費電力などの評価基準についてできるだけ適切なパスを設定することが望ましい。そこで上記ティーチングの場合には操作者が経験的に評価基準が適切（消費電力が比較的小さい）となるパスを人為的に設計し、上記パスプランニングの場合にはシミュレーション上でランダムに生成された多数のサンプルパスのうち評価基準が適切（消費電力が比較的小さい）となるパスを選択していた。しかしながら、ティーチングの場合には操作者の経験に頼る部分が多く、また操作者によるバラツキが生じてしまう。また、パスプランニングの場合においても、ランダムに生成されるパスの品質は向上の余地がある。
【００２３】
これに対して本実施形態のロボットコントローラ３は、軌道計画部用学習データセットに基づく機械学習プロセスを実行して、任意に設定された設定始点と設定終点との間のロボットのパスを生成する軌道計画部３２を有している。軌道計画部用学習データセットでは、３Ｄモデルデータによるロボット５の動作拘束条件に基づいて生成された複数のパスデータと、パスデータのそれぞれに対応して所定の評価基準における尺度となる評価値データとが、対応付けられている。
【００２４】
このように軌道計画部３２が、シミュレーション等により動作拘束条件に基づいて生成されたパスデータのデータセットで機械学習しているため、いわゆる強化学習と異なり、ロボット５と対象ワークを含めた作業環境との干渉接触の回避が保証されたデータセットで機械学習できる。また、軌道計画部３２が機械学習するデータセットには各パスデータに対応した評価値データも含まれているため、評価基準について適切となるパスを生成できる。以下、上記の手法について順を追って説明する。
【００２５】
＜第１実施形態の場合の経由点接続によるパスプランニングについて＞
図２は、本実施形態の例の経由点接続によるパスプランニングを説明するための作業環境マップを示している。ここで図示する作業環境マップは、上記軌道計画部３２が設定するものであり、上述したようにロボット５が備える６軸の駆動軸に対応した６次元の駆動可能空間を、縦方向と横方向の２次元に次元圧縮して表現した平面図である。一般的に６軸での駆動によってエンドエフェクタ６の３次元位置と３次元姿勢の制御が可能であり、つまり当該作業環境マップにおける１点の位置座標はエンドエフェクタ６の３次元位置と３次元姿勢の両方の状態情報を表現している。そしてこの作業環境マップ中においては、上記作業計画部３１から入力された３Ｄモデルデータに基づいて、ロボット５の各部と対象ワークのフレームＦとが干渉接触するとして進入が禁止されている複数の進入禁止領域Ｘが設定されている。なお図中では、図示の煩雑を避けるために、各進入禁止領域Ｘを３つの単純な幾何図形で簡略的に表している。
【００２６】
そして軌道計画部３２は、この作業環境マップ上において上記作業計画部３１から入力された設定始点Ｐｓと設定終点Ｐｅ（それぞれ姿勢も含む）を設定し、各進入禁止領域Ｘへの進入を避けつつその設定始点Ｐｓから設定終点Ｐｅまでの移動通過経路、つまりパスを生成する。本実施形態の例では、シミュレーションによって分岐探索した多数の経由点間を接続することで上記のパスを生成する。
【００２７】
このシミュレーションとして具体的には、まず設定始点Ｐｓから所定の離間距離範囲内で、かつ進入禁止領域Ｘに入らない複数の経由点Ｐ１，ｍ（図示する例ではｍ＝１〜３の３つ）をランダムに生成する。そしてこれらの経由点Ｐ１，ｍのそれぞれから、さらに所定の離間距離範囲内で、かつ進入禁止領域Ｘに入らない複数の経由点Ｐ２，ｍをランダムに生成する。このような経由点Ｐｎ，ｍ（設定開始点からｎ番目に経由するｍ個の経由点）の生成を繰り返して行い、最終的にいずれかの経由点Ｐｎ，ｍが設定終点Ｐｅから所定の離間距離範囲Ａ内に到達するまで継続する。
【００２８】
ただし、生成した経由点Ｐｎ，ｍが明らかに設定終点Ｐｅから遠ざかる方向にあることや、当該経由点Ｐｎ，ｍへ向かう経路に対応する後述の評価値が明らかに低いことが判明した場合には、当該経由点Ｐｎ，ｍからの新たな経由点Ｐｎ＋１，ｍの生成を一旦中断する。また、１つの経由点Ｐｎ，ｍが複数の進入禁止領域Ｘに挟まれているなどの条件では、そこから経由点Ｐｎ＋１，１を１つだけ生成してもよい。また、１つの経由点Ｐｎ，ｍが進入禁止領域Ｘや作業可能領域の限界境界（作業環境マップの縁）に阻まれて設定終点Ｐｅに到達できないことが判明した場合には、当該経由点Ｐｎ，ｍからの新たな経由点Ｐｎ＋１，１の生成を止めて、上記中断していた経由点Ｐｎ＋１，１からの分岐探索を再開する。
【００２９】
そして最終的に設定終点Ｐｅ付近に到達した経由点Ｐｎ，ｍを当該設定終点Ｐｅに接続することで、図３に示すように、設定始点Ｐｓから設定終点Ｐｅまで一連して通過可能な経由点Ｐｎ，ｍをそれらの順序列で接続したパスＴ１が生成される。このようにして、ロボット５のパスＴ１は複数の経由点の順序列として生成され、軌道計画部３２は設定始点Ｐｓから設定終点Ｐｅまで各経由点Ｐｎ（経由姿勢）を順に逆キネマティクス演算部３３に出力することで、当該パスＴ１に相当する軌道（姿勢）でロボット５の移動動作を制御できる。そしてこのパスＴ１上の各経由点Ｐｎは、いずれも上記作業環境マップ上における進入禁止領域Ｘ（周囲の作業環境と干渉接触する領域）に進入しない動作領域（動作拘束条件）上に位置しており、すなわちこのパスＴ１に相当する軌道上ではロボット５の各部とフレームＦとの干渉接触が確実に回避可能となっている。
【００３０】
また、上記のシミュレーション上では、パスＴ１の各節、つまりパスＴ１上で隣接する２つの経由点間の移動経路ごとに、ロボット５の移動動作で消費される電力Ｗｎ（図示する例ではｎ＝１〜７）を算出できる。本実施形態の例では、この消費電力Ｗを評価基準とし、できるだけパスＴ１全体での合計消費電力Ｗが低くなるパスＴ１を高く評価する。しかし、上記シミュレーションによるパスプランニングでは、基本的に各経由点Ｐｎ，ｍの位置がランダムに生成されるため、評価基準の観点でパスＴ１の品質を向上させる余地がある。
【００３１】
そこで本実施形態では、上記シミュレーションによって多様な設定始点Ｐｓと設定終点Ｐｅ（設定姿勢）の組み合わせにそれぞれ対応する経由点Ｐ１，ｍを生成し、またそれぞれに対応する評価値データと併せて多数の学習用データセットを作成してデータベース（データセット保持部）３４に保存する。軌道計画部３２がこのような多数の学習用データセットを用いて機械学習することで、評価の高い経由点Ｐｎ，ｍを連続的に生成でき、それらを接続して評価の高いパスＴ１を生成できる。このデータベース３４を構成する記憶装置は、本実施形態のようにロボットコントローラ３の内部に備えてもよいし（上記図１中では「ＤＢ」と略記）、もしくは軌道計画部３２に対し情報送受可能に接続されてロボットコントローラ３の外部に設けられていてもよい。
【００３２】
＜第１実施形態の場合の軌道計画部の具体的構成について＞
軌道計画部３２には多様な機械学習手法を適用できるが、以下においては例えば機械学習アルゴリズムに深層学習（ディープラーニング）を適用した場合の例を説明する。図４は、深層学習を適用した場合における軌道計画部３２のニューラルネットワークの概略モデル構成の一例を示している。
【００３３】
この図４において、軌道計画部３２のニューラルネットワークは、その時点で位置している現経由点Ｐｎ（Ｘｐｎ，Ｙｐｎ，Ｚｐｎ）と現経由姿勢Ｖｎ（３次元ベクトルデータとして略記）とともに、上記作業計画部３１から入力された設定終点Ｐｅ（Ｘｐｅ，Ｙｐｅ，Ｚｐｅ）及び設定姿勢Ｖｅ（３次元ベクトルデータとして略記）に対して、これら入力データの間の対応関係から次に経由することが適切であると推定される次経由点Ｐｎ＋１（Ｘｐｎ＋１，Ｙｐｎ＋１，Ｚｐｎ＋１）及び次経由姿勢Ｖｎ＋１（３次元ベクトルデータとして略記）を出力するよう設計されている。
【００３４】
ここで、軌道計画部３２の各出力ノードが出力する各値については、それぞれ回帰問題処理による多値出力（連続値）により出力される。そしてこれらの出力値で構成する次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１は、上記作業環境マップにおいて現経由点Ｐｎ及び現経由姿勢Ｖｎから所定の離間距離範囲内に位置するとともに、いずれの進入禁止領域Ｘ内に位置せず、また評価基準（この例における移動消費電力の低さ）の観点でも高い評価が得られる経由点及び経由姿勢となる。そして次には、これら次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１を次の現経由点Ｐｎ及び現経由姿勢Ｖｎとして、設定終点Ｐｅ及び設定姿勢Ｖｅとともに軌道計画部３２に再入力することで、さらに次の次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１を生成することができ、これを繰り返して設定終点Ｐｅ付近まで到達させる。なお、設定始点Ｐｓ及び始点姿勢Ｖｓから始める場合には、現経由点Ｐｎ及び現経由姿勢Ｖｎに設定始点Ｐｓ及びその始点姿勢Ｖｓを代入して（つまりｎ＝０として）処理させればよい。
【００３５】
以上のような軌道計画部３２における次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１の生成処理は、当該軌道計画部３２の学習フェーズにおける機械学習プロセスでの学習内容に基づくものである。すなわち、この軌道計画部３２のニューラルネットワークは、各入力データと各出力データとの間の相関を表す特徴量を学習している。この軌道計画部３２の機械学習プロセスについては、上記のように設計された多層ニューラルネットワークがロボットコントローラ３上でソフトウェア的（又はハードウェア的）に実装された後、上記データベース３４に保存した多数の軌道計画部学習用データセットを用いていわゆる教師あり学習により軌道計画部３２に学習させる。ここで用いる軌道計画部学習用データセットは、例えば図５に示すように、所定の設定始点Ｐｓと設定終点Ｐｅ（設定姿勢Ｖｅ）の組み合わせに対応してシミュレーション上で生成した１つの経由点Ｐ１及び経由姿勢Ｖ１を表すパスデータ（図中では作業環境マップで図示）と、当該パスデータでの移動消費電力（評価値データ）とを対応付けて１つの学習用データセットとして作成する。そしてこのような学習用データセットを多様な設定始点Ｐｓと設定終点Ｐｅ（設定姿勢Ｖｅ）の組み合わせで多数作成して、データベース３４に保存する。
【００３６】
本実施形態の例における軌道計画部３２の学習フェーズでは、現経由点Ｐｎ及び現経由姿勢Ｖｎと、設定終点Ｐｅ及び設定姿勢Ｖｅを入力データとし、次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１を出力データとした組み合わせの教師データを用いて、軌道計画部３２のニューラルネットワークの入力層と出力層の間の関係性が成立するよう各ノードどうしをつなぐ各エッジの重み係数を調整するいわゆるバックプロパゲーション処理等により学習を行う。このバックプロパゲーション処理では、多数のデータセットのうち特に評価値データの高いデータのみを抽出し、これだけを教師データに用いて各エッジの重み係数を強めるよう調整してもよい。または、全てのデータセットを教師データとし、それぞれの評価値データに応じて各エッジの重み係数を強めたり弱めたりするよう調整してもよい。なお、このようなバックプロパゲーションの他にも、いわゆるオートエンコーダ、制限付きボルツマンマシン、ドロップアウト、ノイズ付加、及びスパース正則化などの公知の多様な学習手法を併用して処理精度を向上させてもよい。
【００３７】
また、上記軌道計画部３２で生成した次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１と、その元となっている現経由点Ｐｎ及び現経由姿勢Ｖｎと、設定終点Ｐｅ及び設定姿勢Ｖｅを全て含んだパスデータ、及びその評価値データを対応づけて、新たな学習用データセットを作成し、データベース３４に保存して次の軌道計画部３２の学習フェーズで利用してもよい。つまり、いわゆるオンライン学習を実行してもよい。この軌道計画部３２の学習フェーズが、各請求項記載の機械学習プロセスに相当し、軌道計画部３２のうち上記ニューラルネットワークを構成する処理部分が、各請求項記載の経由点生成部に相当する。
【００３８】
なお上述したように、軌道計画部３２の機械学習アルゴリズムは、図示した深層学習によるもの以外にも、例えばサポートベクトルマシンやベイジアンネットワーク等を利用した他の機械学習アルゴリズム（特に図示せず）を適用してもよい。その場合でも、入力した設定始点Ｐｓ及び設定終点Ｐｅに適切に対応する次経由点Ｐｎ＋１及び次経由姿勢Ｖｎ＋１を出力するという基本的な構成については同等となる。
【００３９】
＜第１実施形態による効果＞
以上説明したように、第１実施形態のロボットシステム１は、ロボットコントローラ３が、ロボット５の動作拘束条件に基づいて生成された複数のパスデータと、パスデータのそれぞれに対応して所定の評価基準における尺度となる評価値データとを対応付けた軌道計画部学習用データセットに基づく機械学習プロセスを実行して、任意に設定された設定始点Ｐｓと設定終点Ｐｅとの間のロボット５のパスＴ１を生成する軌道計画部３２を有している。このように軌道計画部３２が、シミュレーション等により動作拘束条件に基づいて生成されたパスデータのデータセットで機械学習しているため、いわゆる強化学習と異なり、ロボット５と作業環境との干渉接触の回避が保証されたデータセットで機械学習できる。また、軌道計画部３２が機械学習するデータセットには各パスデータに対応した評価値データも含まれているため、評価基準について適切となるパスＴ１を生成できる。この結果、より適切なパスＴ１を生成できる。
【００４０】
また、本実施形態では特に、軌道計画部３２は、機械学習プロセスでの学習内容に基づき、評価基準が最適となるよう次に経由すべき次経由点を生成するニューラルネットワークを有している。これにより、比較的生成が容易な次経由点を利用して効率的にパスＴ１の生成が可能となる。
【００４１】
また、本実施形態では特に、軌道計画部３２は、設定始点Ｐｓから始めて設定終点Ｐｅの近傍となるまでニューラルネットワークが生成した次経由点での分岐探索を繰り返してパスＴ１を生成する。これにより、次経由点の順序列で接続して効率的に適切なパスＴ１の生成が可能となる。
【００４２】
また、本実施形態では特に、評価基準は少なくとも、消費電力を含むことにより、より高品質なパスＴ１を生成できる。なお、評価基準については上記の消費電力に限られず、他にも動作経路の距離、動作時間、振動評価値、又は指定軸負荷などの評価基準を含めてもよい。この場合、動作経路の距離については、その移動経路、つまりパス全体の経路長が短いほど高い評価とする。また、動作時間については、移動時間が短い、つまりタクトタイムが短いほど高い評価とする。また、振動評価値については、移動中の振動が小さいほど高い評価とする。この振動評価値については、具体的にアーム先端部５ａやエンドエフェクタ６において検出されるいわゆるジャーク値（加速度の微分値）に基づいて評価すればよい。また、指定軸負荷については、ロボット５の中の指定された関節駆動軸における負荷が小さいほど高い評価とする。なお、これらの評価基準については、上記実施形態のようにそれぞれ単独で適用してもよいし、もしくは複数の評価基準を併用して適用してもよい。ここで複数の評価基準を適用する場合には、それらの評価値データそれぞれに適宜任意に設定可能な重み係数を乗算し、全て加算した総合評価値データをデータセットに記録してもよい。
【００４３】
また、本実施形態では特に、動作拘束条件は、ロボット５がその周囲の作業環境（対象ワーク、作業台、ツール類等）と干渉接触しない動作領域を満たすロボット５の動作領域に設定されている。これにより、ロボット５がその周囲の作業環境と干渉接触しないことを前提としたパスＴ１の生成が可能となる。また、他の動作拘束条件として、その他のロボットが例えば保安上の理由や動作性能を確保するための所定の進入禁止領域Ｘに進入しない動作領域であったり、他のハンドリングロボットがハンドリングしている対象物（水の入ったコップなど）を所定角度以上に傾けない動作領域に設定されてもよい（特に図示せず）。これらの場合には、ロボットの進入禁止領域Ｘへの進入の回避や、対象物の所定角度以上の傾きの回避を前提としたパスＴ１の生成が可能となる。
【００４４】
また、本実施形態では特に、３Ｄモデルデータで定義された動作拘束条件をロボットコントローラ３に設定する上位制御装置２を有している。これにより、ユーザの意図に対応した柔軟な動作拘束条件の設定が可能となる。なお、上位制御装置２以外にも例えばプログラミングペンダントなどで動作拘束条件をロボットコントローラ３に入力してもよい。
【００４５】
また、本実施形態では特に、データベース３４は、軌道計画部３２によって生成されたロボット５のパスＴ１を当該ロボット５の動作拘束条件と評価値データとに対応付けた新たなデータセットを記憶する。これにより、過去に適切であるとして生成したパスＴ１を含めたパスデータを用いてより適切な機械学習プロセスの実行が可能となり、軌道計画部３２の精度を向上できる。
【００４６】
＜第１実施形態の変形例＞
なお、以上説明した第１実施形態は、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【００４７】
例えば、軌道計画部３２は、図６に示すように現経由点Ｐ２，１から次経由点を設定し得る範囲を候補範囲Ｂとして設定し、この候補範囲Ｂの中からランダムな位置で生成した複数の候補点Ｐ３，１，Ｐ３，２の中から次経由点を生成してもよい。この場合には、初めから次経由点を全くランダムな位置で生成するよりも、より設定終点Ｐｅに向けて適切なパスＴ１を生成し得ると予想される次経由点を生成できる。
【００４８】
また、パスプランニングの基本手法として、公知のＳＢＬ（Ｓｉｎｇｌｅ−ｑｕｅｒｙ、Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ、Ｌａｚｙ  ｉｎ  Ｃｏｌｌｉｓｉｏｎ  ｃｈｅｃｋｉｎｇ）又はＲＲＴ（Ｒａｐｉｄｌｙ−Ｅｘｐｌｏｒｉｎｇ  Ｒａｎｄｏｍ  Ｔｒｅｅ）を用いてもよい。この場合には、図７に示すように設定終点Ｐｅからも経由点の分岐探索を行い、設定始点Ｐｓ側と設定終点Ｐｅ側それぞれの現経由点に基づいて軌道計画部３２が生成した候補範囲（候補点）を上記のＳＢＬ又はＲＲＴのランダムサンプリングに代用すればよい。
【００４９】
＜第２実施形態＞
以下に、部分パス接続によるパスプランニングでパスを生成する第２実施形態について説明する。図８は、上記図２に対応する図であり、部分パス接続によるパスプランニングを説明するための作業環境マップを示している。本実施形態の例では、軌道計画部３２は、シミュレーションによって生成した部分パスを設定始点Ｐｓと設定終点Ｐｅに接続することでロボット５のパスＴ１を生成する。
【００５０】
＜第２実施形態の場合の経由点接続によるパスプランニングについて＞
このシミュレーションとして具体的には、まず設定始点Ｐｓと設定終点Ｐｅからそれぞれ適宜の経由点を分岐探索し、それら設定始点Ｐｓ側と設定終点Ｐｅ側の経由点から所定の離間距離範囲内で略接続可能な配置で、かつ進入禁止領域Ｘに入らない部分パスＴ２をランダムに生成する。この部分パスＴ２は所定の離間距離間隔で連続した配置の経由点を接続して構成され、その両端が設定始点Ｐｓ側と設定終点Ｐｅ側の経由点を略接続可能となる部分パスＴ２が生成されるまで繰り返される。
【００５１】
そして最終的に適宜の部分パスＴ２を設定始点Ｐｓ側と設定終点Ｐｅ側の経由点に接続することで、図９に示すように、設定始点Ｐｓから設定終点Ｐｅまで一連して通過可能なパスＴ１が生成される。そしてこのパスＴ１に相当する軌道上においても、ロボット５の各部とフレームＦとの干渉接触が確実に回避可能となっている。なお、本実施形態における軌道計画部３２が、各請求項記載の部分パス生成部に相当する。
【００５２】
上記のシミュレーション上では、部分パスＴ２上におけるロボット５の移動動作で消費される電力Ｗを評価値データとして算出でき、この評価値データを設定始点Ｐｓ、設定終点Ｐｅ、及び部分パスＴ２のパスデータと対応付けて１つの軌道計画部学習用データセットを作成できる。そして、多様な設定始点と設定終点Ｐｅ（設定姿勢）の組み合わせにそれぞれ対応する部分パスＴ２を生成し、またそれぞれに対応する評価値データと併せて多数の学習用データセットを作成してデータベース３４（データセット保持部）に保存する。軌道計画部３２がこのような多数の学習用データセットを用いて機械学習することで、評価の高い部分パスＴ２を生成でき、それらを接続して評価の高いパスＴ１を生成できる。
【００５３】
＜第２実施形態の場合の軌道計画部の具体的構成について＞
この第２実施形態においても、軌道計画部３２には多様な機械学習手法を適用できるが、以下においては例えば機械学習アルゴリズムに深層学習（ディープラーニング）を適用した場合の例を説明する。図１０は上記図４に対応する図であり、深層学習を適用した場合における軌道計画部３２のニューラルネットワークの概略モデル構成の一例を示している。
【００５４】
この図１０において、軌道計画部３２のニューラルネットワークは、上記作業計画部３１から入力された設定始点Ｐｓ（Ｘｐｓ，Ｙｐｓ，Ｚｐｓ）及び始点姿勢Ｖｓ（３次元ベクトルデータとして略記）と、設定終点Ｐｅ（Ｘｐｅ，Ｙｐｅ，Ｚｐｅ）及び設定姿勢Ｖｅ（３次元ベクトルデータとして略記）に対して、これら入力データの間の対応関係から接続に適切であると推定される部分パスＴ２の始点側端点Ｐ１（Ｘｐ１，Ｙｐ１，Ｚｐ１）及び始点側姿勢Ｖ１（３次元ベクトルデータとして略記）と各接続経由点（図中では省略）と、終点側端点Ｐｎ（Ｘｐｎ，Ｙｐｎ，Ｚｐｎ）及び終点側姿勢Ｖｎ（３次元ベクトルデータとして略記）を出力するよう設計されている。
【００５５】
この軌道計画部３２の機械学習プロセスで用いる軌道計画部学習用データセットは、例えば図１１に示すように、所定の設定始点Ｐｓと設定終点Ｐｅ（設定姿勢Ｖｅ）の組み合わせに対応してシミュレーション上で生成した１つの部分パスＴ２を表すパスデータ（図中では作業環境マップで図示）と、当該パスデータでの移動消費電力（評価値データ）とを対応付けて１つの学習用データセットとして作成する。そしてこのような学習用データセットを多様な設定始点Ｐｓと設定終点Ｐｅ（設定姿勢Ｖｅ）の組み合わせで多数作成して、データベース３４に保存する。
【００５６】
本実施形態の例における軌道計画部３２の学習フェーズでは、設定始点Ｐｓ及び始点姿勢Ｖｓと、設定終点Ｐｅ及び設定姿勢Ｖｅを入力データとし、部分パスＴ２の始点側端点Ｐ１及び始点側姿勢Ｖ１と各接続経由点（図中では省略）と、終点側端点Ｐｎ及び終点側姿勢Ｖｎを出力データとした組み合わせの教師データを用いて、評価値データに応じたバックプロパゲーション処理等により学習を行う。またこの場合でも、いわゆるオンライン学習を適用してもよい。
【００５７】
なお本実施形態の場合でも、軌道計画部３２の機械学習アルゴリズムは、図示した深層学習によるもの以外にも、例えばサポートベクトルマシンやベイジアンネットワーク等を利用した他の機械学習アルゴリズム（特に図示せず）を適用してもよい。その場合でも、入力した設定始点Ｐｓ及び設定終点Ｐｅに適切に対応する部分パスＴ２を出力するという基本的な構成については同等となる。
【００５８】
＜第２実施形態による効果＞
以上説明したように、第２実施形態のロボットシステム１は、機械学習プロセスでの学習内容に基づき、評価基準が最適となるよう通過すべき部分パスＴ２を生成する軌道計画部３２を有している。これにより、評価基準が適切であるとして学習した部分パスＴ２を利用してより適切なパスＴ１の生成が可能となる。
【００５９】
また、本実施形態では特に、軌道計画部３２は、設定始点Ｐｓから設定終点Ｐｅの間で当該軌道計画部３２が生成した部分パスＴ２を接続してパスＴ１を生成する。これにより、部分パスＴ２を接続して効率的にパスＴ１の生成が可能となる。
【００６０】
また本実施形態においても、パスプランニングの基本手法として、公知のＳＢＬ又はＲＲＴを用いてもよい。この場合には、図７に示すように設定終点Ｐｅからも経由点の分岐探索を行い、設定始点Ｐｓ側と設定終点Ｐｅ側それぞれの現経由点に基づいて軌道計画部３２が生成した部分パスＴ２を上記のＳＢＬ又はＲＲＴのランダムサンプリングに代用すればよい（図示省略）。
【００６１】
＜ロボットコントローラのハードウェア構成例＞
次に、図１２を参照しつつ、上記で説明したＣＰＵ９０１が実行するプログラムによりソフトウェア的に実装された作業計画部３１、軌道計画部３２、逆キネマティクス演算部３３等による処理を実現するロボットコントローラ３のハードウェア構成例について説明する。
【００６２】
図１２に示すように、ロボットコントローラ３は、例えば、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、ＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路９０７と、入力装置９１３と、出力装置９１５と、記録装置９１７と、ドライブ９１９と、接続ポート９２１と、通信装置９２３とを有する。これらの構成は、バス９０９や入出力インターフェース９１１を介し相互に信号を伝達可能に接続されている。
【００６３】
プログラムは、例えば、ＲＯＭ９０３やＲＡＭ９０５、記録装置９１７等に記録しておくことができる。
【００６４】
また、プログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のＣＤ・ＭＯディスク・ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体９２５に、一時的又は永続的に記録しておくこともできる。このような記録媒体９２５は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体９２５に記録されたプログラムは、ドライブ９１９により読み出されて、入出力インターフェース９１１やバス９０９等を介し上記記録装置９１７に記録されてもよい。
【００６５】
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等（図示せず）に記録しておくこともできる。この場合、プログラムは、ＬＡＮやインターネット等のネットワークＮＷを介し転送され、通信装置９２３がこのプログラムを受信する。そして、通信装置９２３が受信したプログラムは、入出力インターフェース９１１やバス９０９等を介し上記記録装置９１７に記録されてもよい。
【００６６】
また、プログラムは、例えば、適宜の外部接続機器９２７に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート９２１を介し転送され、入出力インターフェース９１１やバス９０９等を介し上記記録装置９１７に記録されてもよい。
【００６７】
そして、ＣＰＵ９０１が、上記記録装置９１７に記録されたプログラムに従い各種の処理を実行することにより、上記の作業計画部３１、軌道計画部３２、逆キネマティクス演算部３３等による処理が実現される。この際、ＣＰＵ９０１は、例えば、上記記録装置９１７からプログラムを直接読み出して実行してもよいし、ＲＡＭ９０５に一旦ロードした上で実行してもよい。更にＣＰＵ９０１は、例えば、プログラムを通信装置９２３やドライブ９１９、接続ポート９２１を介し受信する場合、受信したプログラムを記録装置９１７に記録せずに直接実行してもよい。
【００６８】
また、ＣＰＵ９０１は、必要に応じて、例えばマウス・キーボード・マイク（図示せず）等の入力装置９１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【００６９】
そして、ＣＰＵ９０１は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置９１５から出力してもよく、さらにＣＰＵ９０１は、必要に応じてこの処理結果を通信装置９２３や接続ポート９２１を介し送信してもよく、上記記録装置９１７や記録媒体９２５に記録させてもよい。
【００７０】
＜その他変形例＞
上述した各実施形態及び各変形例においては、作業計画部３１、軌道計画部３２、逆キネマティクス演算部３３、データベース３４を全てロボットコントローラ３に一体にまとめた構成としていたが、これに限られない。他にも、図１３に示すように、ロボットコントローラ３が逆キネマティクス演算部３３だけを備え、汎用パーソナルコンピュータ２Ａ（図中では「ＰＣ」と略記）に作業計画部３１、軌道計画部３２、及びデータベース３４をソフトウェア的に実装してもよい。この場合においても、各種情報や指令の送受関係については同等となる。そして、汎用パーソナルコンピュータ２Ａにおいて、データベース３４に保存してある学習用データセットを用いて軌道計画部３２を機械学習させることにより、上記各実施形態と同等の効果を得ることができる。なお、この場合の汎用パーソナルコンピュータ２Ａが、各請求項記載のロボットパス生成装置に相当する。
【００７１】
なお、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」という意味である。
【００７２】
また、以上の説明において、外観上の寸法や大きさ、形状、位置等が「同一」「同じ」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「等しい」「異なる」とは、設計上、製造上の公差、誤差が許容され、「実質的に同一」「実質的に同じ」「実質的に等しい」「実質的に異なる」という意味である。
【００７３】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【００７４】
１            ロボットシステム
２            上位制御装置（ロボットパス生成装置）
２Ａ          汎用パーソナルコンピュータ（ロボットパス生成装置）
３            ロボットコントローラ（ロボットパス生成装置）
４            サーボアンプ
５            ロボット
６            エンドエフェクタ
３１          作業計画部
３２          軌道計画部（パス生成部、経由点生成部、部分パス生成部）
３３          逆キネマティクス演算部
３４          データベース（データセット保持部）
Ｆ            フレーム
Ｐｓ          設定始点
Ｐｅ          設定終点
Ｔ１          パス
Ｔ２          部分パス
Ｘ            進入禁止領域
【図１】
0006705977.tif 000002
【図２】
0006705977.tif 000003
【図３】
0006705977.tif 000004
【図４】
0006705977.tif 000005
【図５】
0006705977.tif 000006
【図６】
0006705977.tif 000007
【図７】
0006705977.tif 000008
【図８】
0006705977.tif 000009
【図９】
0006705977.tif 000010
【図１０】
0006705977.tif 000011
【図１１】
0006705977.tif 000012
【図１２】
0006705977.tif 000013
【図１３】
0006705977.tif 000014