(57)【要約】  １または複数の協働ロボットの運動を制御するための方法について記載する。上記協働ロボットは固定ベースまたは可動ベースに取り付けられ、１または複数の末端要素および運動コントローラが備わっており、当該方法は、以下の反復ステップ、すなわち、‐ロボットの位置座標、および、上記ロボットと協働する１または複数の人員オペレータの位置座標を決定する段階と、  ‐上記ロボットの上記末端要素の運動の相対的方向と関連付けられた一組の生産性インデックスを決定する段階であって、上記生産性インデックスは上記ロボットが上記オペレータの存在を理由に、減速または停止する必要がなく、上記方向の各々に移動可能な速度を示す、決定する段階と、  ‐上記コントローラが、上記生産性インデックスのより高い値を基に、上記ロボットの上記末端要素の運動の上記方向を決定できるように、上記ロボットの上記コントローラに、上記ロボットの上記末端要素の運動の上記相対的方向に関連付けられた上記一組の生産性インデックスのデータを供給する段階と、を備えることを特徴とする。
2019518616.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の協働ロボットの運動を制御する方法であって、前記１または複数の協働ロボットの各々は固定ベースまたは可動ベースに取り付けられ、且つ、１または複数の末端要素および運動コントローラが設けられており、前記１または複数の協働ロボットの運動を制御する方法は以下の反復的段階、すなわち、
前記１または複数の協働ロボットの各々の位置座標、および、前記１または複数の協働ロボットと協働する１または複数の人員オペレータの位置座標を決定する段階と、
前記１または複数の協働ロボットの前記１または複数の末端要素の運動のそれぞれの方向と関連付けられた一組の生産性インデックスを決定する段階であって、前記一組の生産性インデックスは前記１または複数の協働ロボットが、前記１または複数の人員オペレータの存在を理由に減速または停止する必要がなく、前記それぞれの方向の各々に移動可能な速度を示す、決定する段階と、
前記運動コントローラが前記一組の生産性インデックスのより高い値を基に、前記１または複数の末端要素の運動の方向を決定できるように、前記運動コントローラに、前記１または複数の末端要素の運動の前記それぞれの方向と関連付けられた前記一組の生産性インデックスのデータを供給する段階と、を備える、１または複数の協働ロボットの運動を制御する方法。
【請求項２】
前記１または複数の協働ロボットの各々の前記位置座標、および、１または複数の人員オペレータの前記位置座標を決定する段階、並びに、前記１または複数の末端要素の運動のそれぞれの方向と関連付けられた一組の生産性インデックスを決定する段階は、
前記１または複数の協働ロボットの前記位置座標、すなわち、ベクトルｑに収集された運動の各軸の線形／角度位置、および、前記位置座標の前記速度（時間微分）
【数４４】
2019518616.tif 000046
を決定することによって、ロボットの構成を周期的に読み取る段階と、
オペレータ上のセンサによって検出された複数ηのポイントの位置の値を周期的に読み取り、且つ、前記オペレータの座標をベクトルｐに収集する段階と、
式
【数４５】
2019518616.tif 000047
を計算、すなわち、行列Ｅ（ｐ，ｑ）およびベクトルｆ（ｐ，ｑ）を計算する段階であって、式中、
Ｅは（２＊ｎ＊η×ｎ）サイズの行列であり、ここでｎは前記ロボットのジョイントの数であり、ηは前記オペレータの位置のポイントの数であり、ｆは２＊ｎ＊η成分のベクトルであり、ｑは前記ロボットの構成を定義し、且つ、前記ジョイントのｎ個の前記角度位置を含む、ｎ成分を持つベクトルであり、
【数４６】
2019518616.tif 000048
は、いかなる時点においても、前記ベクトルｑの前記成分の前記時間微分、すなわち、前記ジョイントの前記座標の前記速度を含む、ｎ成分を持つベクトルであり、ｐは前記オペレータの位置のηポイントの各々について、３つの前記位置座標を含む、３＊η成分を持つベクトルである、計算する段階と、
前記式
【数４７】
2019518616.tif 000049
に基づいて、すなわち、前記行列Ｅ（ｐ，ｑ）および前記ベクトルｆ（ｐ，ｑ）に基づいて、前記一組の生産性インデックスを決定する段階と、を備える、請求項１に記載の１または複数の協働ロボットの運動を制御する方法。
【請求項３】
前記一組の生産性インデックスを決定する前記段階は、
前記ロボットの前記末端要素（ＴＣＰ）のヤコビ行列Ｊ（ｑ）を計算する段階と、
前記行列Ｅの特異値分解Ｅ＝ＵＳＶＴを計算する結果、行列Ｕ，行列Ｓおよび行列Ｖを取得する段階であって、ここで、
Ｕは（２＊ｎ＊η×２＊ｎ＊η）サイズの直交正方行列であり、Ｓは前記行列Ｅの特異値を含む（２＊ｎ＊η，ｎ）サイズの行列であり、Ｖは（ｎ×ｎ）サイズの直交正方行列であり、ＶＴはＶの転置行列である、取得する段階と、
前記行列Ｖおよび行列−Ｖの列を含む行列Ｖ＊を構築する段階と、
Ｖ＊の各列ｉについて、対応する値
【数４８】
2019518616.tif 000050
を計算する段階であって、ここで、
【数４９】
2019518616.tif 000051
ただし、
【数５０】
2019518616.tif 000052
であり、
ここで、
【数５１】
2019518616.tif 000053
は、前記ロボットのジョイントの単一座標が到達可能な最大速度のベクトルであり、前記方向ｖｉの各々について、前記ロボットのジョイントの空間において、前記速度φｖｉの最大強度
【数５２】
2019518616.tif 000054
が決定され、その結果、かかる速度は安全制約を満たし、且つ、要素ごとに許容可能な最大速度より低くなり、インデックスｉの値は、前記対応する値
【数５３】
2019518616.tif 000055
が最大値となり、且つ、前記ロボットが前記オペレータの前記存在を理由として、大幅に減速する必要がなく、移動を継続できる最善の方向（空間における前記ジョイントの）に対応するものになる、計算する段階と、
Ｖ＊の各列ｉについて、以下の式
【数５４】
2019518616.tif 000056
および
【数５５】
2019518616.tif 000057
により、前記末端要素の運動の前記方向および対応する前記生産性インデックスを計算する段階と、を含む、請求項２に記載の１または複数の協働ロボットの運動を制御する方法。
【請求項４】
前記運動コントローラが、前記１または複数の末端要素の運動の前記それぞれの方向と関連付けられた前記一組の生産性インデックスの前記データを基に、以下のアクションのうちの１つを取ることを決定する段階を備え、前記以下のアクションは、
予めプログラムされた方向に対する代替的な運動の方向または経路を実行すること、
おそらくアプリオリにはわからない、予めプログラムされた最終位置とは異なる代替的最終位置を持つ新しい経路を実行すること、
前記ロボットの前記運動を減速すること、
前記ロボットの前記運動を停止すること、を含む、請求項１から３のいずれか一項に記載の１または複数の協働ロボットの運動を制御する方法。
【請求項５】
１または複数のロボットの前記運動を制御するための前記運動コントローラは、前記ロボットが実行する必要のあるタイプのアクティビティ、および／または、前記末端要素が行う必要のある運動のタイプ、および／または、実行されるべきタスクの収益性の基準に依存する優先メカニズムを基に、前記アクションを取ることを決定する、請求項４に記載の１または複数の協働ロボットの運動を制御する方法。
【請求項６】
請求項１から５のいずれか一項に記載の方法を実装するための手段を備える、１または複数の協働ロボットの前記運動を制御するためのデバイスであって、前記手段は、
前記１または複数の人員オペレータの経時的な位置ｐに関する前記データを周期的に決定するように適合された少なくとも１つの視覚システムと、
前記１または複数の協働ロボットの前記位置座標および前記１または複数の人員オペレータの前記位置座標を決定するための手段と、
前記ロボットの前記末端要素の運動のそれぞれの方向に関連付けられた前記一組の生産性インデックスを決定するための手段と、を含む、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、より具体的には協働ロボット工学の分野に関し、１または複数の協働ロボットの運動を制御するための方法およびデバイスに関する。
【背景技術】
【０００２】
本発明は、産業上の協働ロボット工学のフレームワークに適用される。周知の通り、協働ロボットという用語は、ロボットと接触する可能性のある人員オペレータを保護するための保護障壁（物理的、光学的等）を用いることなく、動作させることが可能な産業マニュピュレータを意味する。
【０００３】
最近まで、産業ロボット工学は、物理的インフラ（手すりまたは光学障壁）を用いた、保護環境下でのロボットの厳格な分離を規定していた。
【０００４】
今日、いわゆる協働ロボット工学を通して得られる人間とロボットとの間の直接的な協働によって達成できる利点がますます意識されている。協働ロボット工学により、人間とロボットとの間で空間を共有できるようになり、またある程度まで人間とロボットとを一連の作業を実行するにあたり協働的にできるようになっている。このため、ロボットは人間の「仕事仲間」となっている。
【０００５】
このため、人間工学の観点から種々の問題が生じる。特に、保護障壁の不存在という可能性に起因し、上記ロボットと接触するに至る可能性のある人々に対する物理的安全性に関してであり、その結果、オペレータと、ロボットおよびロボットの末端要素の様々な構成要素とが互いに非常に近接する可能性があり、場合によっては直接接触するに至ることさえある。
【０００６】
安全性を理由として、いわゆる「協働」ロボットは、所定数の標準および技術的仕様を満たす必要がある。例えば、標準ＵＮＩ  ＥＮ  ＩＳＯ  １０２１８（２０１１年７月）は、その２つのパートにおいて、協働ロボットと対応する末端要素とに関する安全要件を定義している。具合的には、４つの人間‐ロボットの協働モード、すなわち、ハンドオーバウィンドウ、インタフェースウィンドウ、検査および協働ワークスペースが定義されている。第１のものは相互作用専用の領域の存在およびそれらの明確な定義を提案する一方、その他のものにおいては、単なる散発的ではなく、協働的且つ継続的に作業する可能性がある。ロボットとオペレータとが共有する安全要件は、オペレータに対する最小安全距離に応じて、ロボットの速度を制御および減速させることを規定する。この状況により、生産性の制約という明らかな問題が生じる。
【０００７】
最近、ＩＳＯ  ＴＳ／１５０６６の技術的仕様が発行された。それは、偶発的な衝突時に関与する力および考え得る伝達エネルギーが、特定の閾値未満に保持されることを条件に、オペレータに極度に近接する状況においてさえ、ロボットが処理を実行し続け得ることについて規定する。当該特定の閾値については未だ議論の最中であるが、確実に痛覚閾値未満である。
【０００８】
しかしながら、人間の安全性を保証すべく、停止を含め、ロボットの稼働可能性の低下があり、これにより、ロボットの生産性および効率性の観点からは、大きな産業上の問題が生じる。
【０００９】
上で概説した問題に悩まされている協働ロボットを制御するためのシステムの一例について、特許出願ＷＯ  ２０１４０４８４４４  Ａ１に記載されている。そこでは、上記の制御システムは、ロボットまたはロボットと人員オペレータとで構成されるシステムの生産性よりも、オペレータの安全性および快適性指向の文脈において動作する。
【発明の概要】
【００１０】
本発明の目的は、前述の欠点を克服するために適合された１または複数の協働ロボットの運動を制御するための方法およびデバイスである。
【００１１】
本発明の基礎を成す思想は、あらかじめ定められた安全条件に基づき生産性を最適化すべく、１または複数の産業ロボットの末端要素（エンドエフェクタ）の運動の方向についての定義および対応する計算に関する。
【００１２】
ロボットは、最適な生産性の運動の方向に関するこの情報がわかれば、その予めプログラムされた運動に対し障害物が存在する場合に、予めプログラムされた方向に対する代替的方向を選択し、それに沿ってロボットの運動を継続することで、ロボットの生産性を維持でき、および、副次的にはロボットにそのタスクの継続を可能にするような考えられる代替方向が存在しない場合には、減速あるいは停止すらさせる。
【００１３】
本発明は、ロボットの以下のような生産性ファクタのうち、それらの組み合わせも含めた任意のものの最適化を可能にする。すなわち、タスクの速度または実行時間（速度の最適化は、時間の最適化も意味し、逆もまた真なりであるといったように、これらは二面性である）、タスクの産業上の収益性（実行可能なタスクのうち、最も収益性の高いタスクに優先度が付与される）、エネルギー効率性である。これ以降、専ら例示として、生産性ファクタとして速度の最適化について言及する。
【００１４】
本発明の目的は、１または複数の協働ロボットの運動を制御する方法であって、上記１または複数の協働ロボットは固定ベースまたは可動ベースに取り付けられ、且つ、１または複数の末端要素および上記運動のコントローラが備えられており、当該は以下の反復的段階、すなわち、
上記１または複数の協働ロボットの各々の位置座標、および、上記１または複数の協働ロボットと協働する１または複数の人員オペレータの位置座標を決定する段階と、
上記１または複数の協働ロボットの上記１または複数の末端要素の運動の相対的方向と関連付けられた一組の生産性インデックスを決定する段階であって、上記生産性インデックスは上記１または複数の協働ロボットが、上記１または複数の人員オペレータの存在を理由に減速または停止する必要がなく、上記方向の各々に移動可能な速度を示す、決定する段階と、
上記運動コントローラが上記生産性インデックスのうちより高い値を基に、上記１または複数の末端要素の運動の方向を決定できるように、上記運動コントローラに、上記１または複数の末端要素の運動のそれぞれの方向と関連付けられた上記一組の生産性インデックスのデータを供給する段階と、を備えることを特徴とする。
【００１５】
好ましくは、１または複数の協働ロボットの運動を制御する方法は、上記運動コントローラが、上記１または複数の末端要素の運動の上記相対的方向と関連付けられた上記一組の生産性インデックスの上記データを基に、以下のアクションのうちの１つを取ることを決定する段階を備え、上記以下のアクションは、
予めプログラムされた方向に対する代替的な運動の方向または経路を実行すること、
おそらくアプリオリにはわからない、予めプログラムされた最終位置とは異なる代替的最終位置を持つ新しい経路を実行すること、
上記ロボットの上記運動を減速すること、
上記ロボットの上記運動を停止すること、を含む。
【００１６】
本発明の別の目的は、当該方法を実行するためのデバイスである。
【００１７】
本発明の具体的な目的は、本詳細な説明の不可欠な部分を形成する特許請求の範囲により良く記載されるように、１または複数の協働ロボットの運動を制御するための方法およびデバイスである。
【図面の簡単な説明】
【００１８】
本発明のさらなる目的および利点は、本発明の実施形態（およびその変形例）に係る以下の詳細な説明から、および専ら説明のためであり限定的意図ではなく付与されている添付図面を参照することで、より明確となる。
【図１】ロボットの一般的リンク（標準ＩＳＯ  ８３７３：２０１２のパラグラフ３．６を参照）を表わす剛性ロッドと点で示す障害物とを示す。
【図２】点で示す障害物ではなく、一般的な障害物の場合に、図１に示したものを拡張する。
【図３】本発明に係る方法の目的の一部を実装するプログラムのフロー図を示す。
【図４】ロボットと、オペレータと、デバイスとで構成される考え得る適用シナリオを一例として示し、デバイスはロボットと、本発明の方法の目的を実装するために必要なすべての命令を実行するオペレータとの相対的位置を監視する。
【図５】本特許に係る方法の目的の結果の２つの可能な使用モードを示す。
【図６】本特許に係る方法の目的の結果の２つの可能な使用モードを示す。
【図７】予めプログラムされた経路に対する代替的経路を実行する場合において、本発明に基づく図４に係るデバイスによる計算結果に基づき、ロボットのコントローラが実行可能なプログラムのフロー図を示す。
【図８】おそらくアプリオリにはわからない、予めプログラムされた最終位置とは異なる、代替的最終位置を持つ新しい経路を実行する場合において、本発明に基づく図４に係るデバイスによる計算結果に基づき、ロボットのコントローラが実行可能なプログラムのフロー図を示す。
【００１９】
図面中の同一の参照番号および文字は、同一の要素または構成要素を識別する。
【発明を実施するための形態】
【００２０】
本発明のシステムの目的は、前述した現在の安全標準を満たすべく、相対的制御システムを含む、一連のキネマティクス（すなわち、ロボットおよびロボットのリンクは、閉じた運動連鎖を形成しない）を持つ１または複数の産業上の協働ロボットで構成される協働ロボット工学ステーションに適用される。当該ロボットには、人員オペレータが接近することが許容される。
【００２１】
以降、本説明に参照として全体的に統合される標準ＩＳＯ  ８３７３：２０１２のテキストを考慮する。
【００２２】
本システムは、１または複数の人員オペレータの存在およびその位置を決定し、オペレータの位置の時間的推移を推定し、および、ロボットの制御システムとやり取りすることを可能にする。その結果、
‐生産性を最大化し、安全条件を保持すべく、上記１または複数の協働ロボットの末端要素の運動の方向を定義する。
‐上記１または複数の協働ロボットに、ロボットの運動を継続できる代替的方向を選択する可能性を供給し、これにより、ロボットの生産性を維持し、および、副次的には、ロボットがそのタスクを継続することを可能にするような前述の方向が存在しない場合には、停止するまで減速させる。
【００２３】
本発明の方法の目的は、以下の主要な特徴に基づく。
（１）固定ベースまたは可動ベースに取り付けられたロボットの位置、オペレータの位置、および可能性としてそれらの将来位置の予測位置に基づき、各ロボットは、その末端要素の運動の決定された方向を生産性インデックスに関連付けることが可能になる。当該生産性インデックスは、ロボットがオペレータの存在を理由として減速または停止する必要がなく、特定の方向をどれだけ迅速に（あるいは、生産性が速度ではなく、タスクの収益性または効率性に関連付けられる場合は効率的に）進むことができるかを示す。
（２）本発明の方法の目的は、生産性インデックスに応じて減少する方式で編成された、各マニュピュレータの主な運動の方向を決定する。
（３）本発明の方法の目的は、上記機能を実装するために、ロボットのコントローラとやり取りすることを可能にする。
（４）本発明の方法の目的は、本方法と通信するロボットに、定義された方向沿いのロボットの経路を修正する可能性を付与する。これらの修正は、既に存在する、および／または、同一のロボットのコントローラによってアプリオリにわかっている必要はない。
（５）デバイス自体およびロボットの構成、および／または、アクティビティのリモート監視のために、他のデバイス（例えば、タブレット、スマートフォン等）と通信するためのＷｉＦｉインタフェースネットワークとの無線でのやり取りを可能にする。
【００２４】
従って、本発明に係る１または複数の協働ロボットの運動を制御するための方法は、実質的に、以下の反復的ステップを規定する。
‐各協働ロボットの位置座標、および、協働ロボットと協働する１または複数の人員オペレータの位置座標を決定する。
‐協働ロボットの末端要素の運動の相対的方向に関連付けられた一組の生産性インデックスを決定する。上記生産性インデックスは、協働ロボットが人員オペレータの存在を理由に減速または停止する必要がなく、当該方向の各々に移動可能な最大速度に比例する値である。
‐運動コントローラが、生産性インデックスのより高い値に基づき、末端要素の上記運動の方向を決定できるように、運動コントローラに、末端要素の上記運動の相対的方向に関連付けられた上記一組の生産性インデックスのデータを供給する。
【００２５】
以下に、M. Ragaglia、A.M. Zanchettin、P. Roccoによる公知文献「人間の占有を予測する、人間‐ロボット間の協働のための安全性を意識した軌跡スケーリング（Safety-aware trajectory scaling for human-robot collaboration with prediction of human occupancy）」（International Conference on Advanced Robotics (ICAR)、2015の８５〜９０ページ）に示すような、本発明の目的に最も近い先行技術の概要について記載する。
【００２６】
上記文献は、本説明に全体的に組み込まれるものとみなす。
【００２７】
人間とロボットの相互作用における安全標準は、一般的に次のように表わすことができる関係を常に満たす必要がある、ということを課す。
【数１】
2019518616.tif 000003
式中、Ｖはロボットの速度であり、ＴＳは停止時間（すなわち、ロボットの運動が完全停止に至る必要のある時間）であり、Ｓはロボットと人間との間の相対的距離であり、Δは安全パラメータである。
【００２８】
産業ロボットを構成する運動連鎖の一般的要素（リンク）、およびかかるリンク上にある、空間参照システムに対する座標の一般的ポイントｒｓについて考察してみる（図１を参照）。
【００２９】
前述のポイントの速度を表わすｖｓ、位置ｒｓが測定されたのと同一の参照システムにおいて測定された障害物の位置を表わすｒｏｂｓｔを用いると、当該単一のポイントに対する不等式（１）は、以下のように表わすことができる。
【数２】
2019518616.tif 000004
式中、
【数３】
2019518616.tif 000005
はベクトルｖｓの転置行列であり、一方で、
【数４】
2019518616.tif 000006
は、ベクトルｒｏｂｓｔ−ｒｓのユークリッドノルムである。式（２）は、同等に以下のように表わすこともできる。
【数５】
2019518616.tif 000007
【００３０】
当該リンク上の一般的ポイントの位置ｒｓおよび速度ｖｓは、以下のように、端点の位置および速度（それぞれｒａおよびｒｂ並びにｖａおよびｖｂ）の関数として表わすできる。
【数６】
2019518616.tif 000008
ここで、ｓ∈［０，１］である。前の関係式を処理すると、
【数７】
2019518616.tif 000009
が得られる。ここで、
【数８】
2019518616.tif 000010
【００３１】
関係式（５）の左辺は、ｓの線形関数である。これは、ロッドの端部で（５）を評価することにより、十分な安全条件が得られることを意味する。
【数９】
2019518616.tif 000011
ここで、右辺のｍｉｎおよびｍａｘの演算を置き換えると、以下が得られる。
【数１０】
2019518616.tif 000012
【００３２】
項
【数１１】
2019518616.tif 000013
は、正の場合、ポイントｒｏｂｓｔを中心とする半径Δの球と、ロッドの端部ｒａおよびｒｂとの間の距離を表わす。  （６）と（７）を結合すると、次が得られる。
【数１２】
2019518616.tif 000014
【００３３】
ここで、マニュピュレータのジョイントの速度を表わすベクトル
【数１３】
2019518616.tif 000015
を導入する。これらは、あるリンクの前のリンクに対する相対的位置を表わす角度位置または線形変位（ジョイントがトロイダルまたはプリズムのいずれであるかに依存）である、ジョイント座標ｑの時間微分である。ｎを用いて、ロボットマニピュレータのリンク（およびジョイント）の数を示し、ｑおよび
【数１４】
2019518616.tif 000016
は、両方とも次元ｎのベクトルである。
【００３４】
ジョイント座標ｑに依存し、ヤコビ行列と呼ばれる行列と用いて、リンクの第１の端部の線形速度ｖａをジョイント速度
【数１５】
2019518616.tif 000017
にリンクすることが可能である。
【００３５】
第２の端部の速度ｖｂも同様である。
【数１６】
2019518616.tif 000018
【００３６】
ヤコビ行列ＪａおよびＪｂは両方とも、次元（３×ｎ）を有する。
【００３７】
ロボットマニピュレータのｎ個のリンクにインデックスｉ（ｉ＝１，...，ｎ）を割り振り、関係式（９）と（１０）とを結合すると、リンクｉに対する位置ｒｏｂｓｔの障害物の最小距離の基準は、以下の形式で表わすことができる。
【数１７】
2019518616.tif 000019
ここで、
【数１８】
2019518616.tif 000020
【数１９】
2019518616.tif 000021
式中、ｒａｉおよびｒｂｉはリンクｉのエンドポイントの座標であり、ＪａｉおよびＪｂｉは前述のポイントの速度のヤコビ行列である。一方で、
【数２０】
2019518616.tif 000022
ｒｓｉは、リンクｉ沿いの一般的ポイントの座標のベクトルである。
【００３８】
行列Ｅｉは、次元（２×ｎ）を有し、一方、ベクトルｆｉは２つの成分を有する。両方のマグニチュードの障害物の位置ｒｏｂｓｔへの依存はそれらの定義の直接的な結果であり、一方、ジョイントの座標ｑのベクトルへの依存は、エンドポイントｒａｉおよびｒｂｉ並びに一般的ポイントｒｓｉの位置はかかるジョイント座標に依存するという事実から導かれる。
【００３９】
ここで、図２のような凸性（ポリトピック）固体で表される一般的オブジェクト
【数２１】
2019518616.tif 000023
で構成される障害物について検討してみる。
【００４０】
この場合、条件（１１）は概念上、当該オブジェクトに属するすべての無限ポイントを表わすことができる。あらゆるポイントについて当該関係式が有効となるような十分条件は、以下の関係を満たすものである。
【数２２】
2019518616.tif 000024
式中、
【数２３】
2019518616.tif 000025
は、リンクｉから障害物
【数２４】
2019518616.tif 000026
への最小距離であり、当該文献において利用可能なアルゴリズムのうちの１つ（例えば、ＧＪＫアルゴリズム）で計算可能である。
【００４１】
この後、関係式（１５）は、障害物の頂点においてのみ計算可能である（オブジェクトの凸性を条件とする線形性によって）。
【数２５】
2019518616.tif 000027
【００４２】
概説すると、ロボットのあらゆるリンクｉおよびすべての障害物の頂点におけるすべてのηポイントについて、関係式（１６）が満たされる必要がある。 
【００４３】
よって、障害物の頂点におけるすべてのポイントの座標Ｐｊを包含するベクトルｐを導入することにする。故に、ｐは３＊ηに等しい数の成分を有することになる。
【００４４】
次に、次元（２＊ｎ＊η×ｎ）の行列を定義する。
【数２６】
2019518616.tif 000028
次元２＊ｎ＊ηのベクトル：
【数２７】
2019518616.tif 000029
これらの位置で、安全制約は次の不等式で表すことができる。
【数２８】
2019518616.tif 000030
【００４５】
特定の瞬間において、前の関係式における条件が検証されれば、ロボットの現在の状態は安全である。
【００４６】
関係式（２０）において、Ｅは次元（２＊ｎ＊η×ｎ）の行列であり、ここでｎはロボットのジョイントの数であり、ηはオペレータの位置を監視するデバイスが検出したポイントの数である。ｆは２＊ｎ＊η成分のベクトルである。ｑはロボットの構成（標準ＩＳＯ  ８３７３：２０１２の定義３．５等）を識別し、故にジョイントのｎ個の角度位置を含む、ｎ成分を持つベクトルである。
【数２９】
2019518616.tif 000031
は、どの瞬間においても、ベクトルｑの成分の時間微分、および故にジョイント座標の速度を含む、ｎ成分を持つベクトルである。ｐは、オペレータ上で検出されたηポイントの各々について、３つの位置座標を含む、３＊η成分のベクトルである。また、かかるベクトルは、将来の時点における予測されたかかるポイントの位置を含んでもよい。
【００４７】
障害物がオペレータの場合、ｐは身体（例えば、肩、頭、肘、手）上で検出されるいくつかのポイントの座標を含む。
【００４８】
よって、行列Ｅおよびベクトルｆの計算は、ロボットのジョイントの座標ｑの知識を必要とする。それらは、ロボットのコントローラに問い合わせることで常に入手可能である。また、当該計算は、オペレータ上で検出されるポイントの座標ｐの知識も必要とする。このようなポイントの座標を得る方法は、本発明に関連しない。要求される当該情報を返すことが可能なデバイス（深度カメラ）は市場に存在する。人間のポイントの位置を行列Ｅの計算に挿入する方法、および、このようなポイントによって取得された位置を以降の時点において考慮可能な方法については、前述の文献［ＩＣＡＲ  ２０１５］に詳細に説明されている。
【００４９】
本発明の目的は、ロボットの運動の最善の方向を決定すべく、このような行列から導かれるいくつかのインデックスを用いることに関する。
【００５０】
特に、本発明は、特異値分解（ＳＶＤ）から得られる前述の行列の幾何学的な構造を用いる。
【数３０】
2019518616.tif 000032
【００５１】
特異値分解の理論からわかるように、Ｕは次元（２＊ｎ＊η×２＊ｎ＊η）の直交正方行列であり、Ｓはいわゆる行列Ｅの特異値を含む、次元（２＊ｎ＊η，ｎ）の行列であり、Ｖは次元（ｎ×ｎ）の直交正方行列であり、ＶＴはＶの転置行列である。
【００５２】
行列Ｖは、ロボットが潜在的に多かれ少なかれ生産的である、ジョイントの空間（標準ＩＳＯ  ８３７３：２０１２の定義４．７．４を参照）における編成された一組の方向（直交ベクトル）を含む。実際、行列Ｖまたは行列−Ｖのｉ番目の列を示すｖｉを用いて容易に決定可能な変数は、このような方向において、安全要件（２０）に違反しないように達成し得る最大速度である。このため、あらゆる方向ｖｉについて、最適化問題を設定する必要がある。
【数３１】
2019518616.tif 000033
ただし、
【数３２】
2019518616.tif 000034
ここで、
【数３３】
2019518616.tif 000035
は単関節座標が想定し得る最大速度のベクトルであり、条件（２２）の２番目が、含まれるベクトルの要素ごとに取得される。
【００５３】
故に、それは、マニュピュレータのジョイントの空間における各方向ｖｉについて、速度φｖｉの最大強度
【数３４】
2019518616.tif 000036
を決定することに関わり、その結果、かかる速度は安全制約を尊重し、許容される最大値より要素ごとに低いものである。
【００５４】
対応する値
【数３５】
2019518616.tif 000037
がより高くなるようなインデックスｉの値は、人員オペレータの存在を理由にロボットがその速度を大きく減速させる必要がなく移動可能な最善の方向（ジョイントの空間における）に対応する。
【００５５】
しかしながら、生産性を、ジョイントの空間ではなく、ベース座標システム（標準ＩＳＯ  ８３７３：２０１２の定義４．７．２を参照）に関連付けることにより大きな関心がある。このため、次元（３×ｎ）のヤコビ行列Ｊ（ｑ）が用いられる。これは、次の関係式により、末端要素ＴＣＰ（ツールセンタポイント、標準ＩＳＯ  ８３７３：２０１２の定義４．９を参照）の特徴ポイントの線形速度を、ジョイントの空間での速度にリンクする。
【数３６】
2019518616.tif 000038
よって、ジョイントの空間における速度
【数３７】
2019518616.tif 000039
は、ＴＣＰの次の速度をもたらす。
【数３８】
2019518616.tif 000040
【００５６】
インデックスｉの各値について、（２４）で付与されるベクトルのユークリッドノルム
【数３９】
2019518616.tif 000041
は、単位ベクトルによって識別されるベース座標システムにおける方向の生産性インデックスを表わす。
【数４０】
2019518616.tif 000042
【００５７】
式（２５）および（２６）は、ロボットが、人員オペレータの存在を理由に、その速度を減速させる必要があるという危険性がない状態で移動可能なベース座標システムにおける方向を決定し、生産性を最大化させる方法を共に表わす。
【００５８】
一例として、運動の方向および運動の方向に関連付けられた生産性インデックスの使用に関する２つの考え得る方法について記載する。
【００５９】
図５は、第１の使用方法を示す。そこでは、末端要素ＴＣＰを持つロボット４２が、開始ステーション５２から開始してそのターゲット５１（宛先ステーション）に到達する前に、その元の経路を修正すべく、フライバイポイント（標準ＩＳＯ  ８３７３：２０１２の定義５．７）を追加し、計算された複数の方向のうち１つを採用する。図５中、オペレータ４１とぶつかる破線で表した直線に対する偏差としての実線で表した曲線が見てとれる。後述する図３のフロー図に示す処理結果を用いて、初期ポイントを決定できる方法に関する説明が特に関連する。
【００６０】
順運動学（標準ＩＳＯ  ８３７３：２０１２の定義４．１を参照）を通して計算された、ベース座標における末端要素ＴＣＰの特徴ポイントの現在位置を示すためにｘを用いると、初期ポイントは以下のように計算できる。
【数４１】
2019518616.tif 000043
【００６１】
（２７）中のδは、０から１の間に含まれる総称数、すなわち、０＜δ＜１であり、一方、Ｔｓは既に（１）で導入した停止時間である。その定義については、標準ＥＮ  ６０２０４‐１の特にカテゴリ１の停止を参照されたい。パラメータδを用いて、ロボットの軌跡が事前定義された経路からどのくらい逸脱可能かを決定できる。ロボットの末端要素がそのターゲットから十分遠く離れている場合、かかる値に高い値（１に近い）を選択すると有利である。ロボットが到達する必要のあるワークステーションに既に近接している場合は、より低い値（ゼロに近い未だ正）を選択すると有利である。一例として、かかるパラメータは、ロボットの現在位置および対応するターゲットを結合するベクトルと、生産性の方向（２６）に対応するベクトルとの間の角度のコサインとして選択されてよく、対応する生産性インデックス（２５）および停止時間で乗じられる。
【００６２】
最善のフライバイポイントの選択のために、以下が実行される。
（１）ロボットをそのターゲットから遠ざけない最適な生産性方向を決定する。
（２）これらの方向のうち、（２５）における生産性インデックスの最大値と関連付けられた方向を選択する。１つより多い最適方向がある場合は、最初の方向は任意に取得する。
（３）例えば、前に説明したように値δを決定する。
（４）ロボットの運動を一時的に遮断する。
（５）（２７）のように計算したフライバイポイントを追加する。
（６）ターゲットポイントに向かう道程を更新する。
（７）ロボットの運動をリセットする。
【００６３】
第２の使用の例については図６に示す。特に、この事例においては、ロボット４２の末端要素ＴＣＰが、特定の動作を実行すべく、宛先ステーション＃２で実行されるべき新しいタスクを優先して、ステーション６１から開始して宛先ステーション＃１に接近することを伴う現在のタスクの実行を完全に中止することが可能である。この場合、上で定義した生産性インデックスと共に本発明の方法の目的で決定した方向を用いて、安全制約を関数として、および、ポイントｐで検出したオペレータの現在位置から、どのステーションがより到達しやすいかを決定できる。最適な生産性の方向（２６）および相対的インデックス（２５）を用いて、可能性のあるすべての代替的方向のうち、到達が最も容易なターゲットを決定する。特に、可能性のある代替的ターゲットをｘｊと呼ぶ。
（１）ロボットの現在位置ｘを、ターゲットｘｊに結合する方向に最も類似する生産性の方向（２６）が決定される。
（２）各ターゲットに到達するための推定時間が、現在位置ｘとターゲットｘｊとの間の距離と、対応する生産性インデックスとの間の比率として決定される。
（３）かかる値を最小化するターゲットが選択される。
【００６４】
図３を参照し、本発明の方法の目的の処理フロー図について、ここで説明する。
【００６５】
処理開始ステップの後に、アルゴリズムおよびデータ構造のセットアップが存在する（ブロック３００）。特に、初期化ステップにおいて、本発明の方法の目的を実装するアルゴリズムは、好適な構成ファイルから、ロボットの運動構造に関するすべての情報（リンクの長さ、標準ＩＳＯ  ８３７３：２０１２のポイント３．６を参照のこと、および、他の運動パラメータ）、および、障害物上のポイントの検出デバイス（以降、"センサ"と定義する）に関するすべての情報（グローバル座標参照システムに対するセンサの位置および絶対方向等）を読み取る。
【００６６】
他の関連情報は、本明細書に記載した方法を実装するデバイスと、ロボットとの間の通信モード（プロトコル、ＴＣＰ／ＩＰポート、ロボットのＩＰアドレス等）に関するものである。
【００６７】
次に、ロボットの構成（ブロック３０１）、すなわち、ベクトルｑにおいて収集された運動の各軸の線形／角度位置が周期的に好適な頻度で読み取られ、それらの速度（上記の時間微分）
【数４２】
2019518616.tif 000044
が決定される。
【００６８】
次に、センサで検出したオペレータの複数（構成可能）ηのポイントの位置の値が読み取られ、それらの座標をベクトルｐに収集する（ブロック３０２）。
【００６９】
次に、上で表わした式（２０）の計算が来る。換言すると、行列Ｅ（ｐ，ｑ）およびベクトルｆ（ｐ，ｑ）の計算である（ブロック３０３）。
【００７０】
次に、生産性インデックスが、行列Ｅ（ｐ，ｑ）およびベクトルｆ（ｐ，ｑ）に基づき決定される（ブロック３０４）。
【００７１】
詳述すると、このポイントは、次のような経過で関節化される。
‐ロボットの末端要素ＴＣＰのヤコビ行列Ｊ（ｑ）が計算される（ブロック３０５）。
‐行列Ｅの特異値分解（ＳＶＤ）が計算され、（２１）にあるようなＵ、ＳおよびＶの行列が得られる（ブロック３０６）。
‐行列Ｖおよび−Ｖ（ブロック３０７）の列を含む行列Ｖ＊が構築される。
‐Ｖ＊のあらゆる列ｉについて、対応する
【数４３】
2019518616.tif 000045
が計算され、（２１）‐（２２）の問題を解決する（ブロック３０８）。
‐Ｖ＊のあらゆる列ｉについて、ＴＣＰの運動の方向および対応する生産性インデックスが、（２５）および（２６）により計算される（ブロック３０９）。
【００７２】
最終的に、このように計算された運動の方向および生産性インデックスが、ロボットのコントローラに送信される（ブロック３１０）。
【００７３】
ブロック３０１−３１０の処理は、特定の期間で周期的に実行される。
【００７４】
図４を参照すると、ある動作条件において、本発明のデバイスの目的が動作するシステムのブロック図が示される。
【００７５】
一例として、当該事例は、単一のオペレータ４１、および末端要素ＴＣＰを備える単一の平面的なロボット４２で示され、末端要素ＴＣＰには、対応する生産性インデックスの関数として編成された４つの可能性のある方向がハイライトされている。ロボットの末端要素の理論上の運動の方向の関数として、４つの値＃１〜＃４が示されている。最大値のインデックスは、オペレータの存在する方向に対する反対方向を向くものであることに留意されたい。
【００７６】
本発明の目的に係るデバイス４４は、ロボットのコントローラ４５と双方向通信し、少なくとも１つの視覚システム、例えば、上で定義したそれ自体は公知のタイプの深度カメラを備え、当該カメラはオペレータの経時的位置データｐ（肩、肘、手等）を周期的に決定するように適合されている。
【００７７】
また、デバイス４４は、ロボットの現在位置データｑをコントローラ４５から受信し、その速度を計算する（現在位置を直前の時点における位置と比較して）。これらのデータは、周期的に更新される。
【００７８】
これらの２つの情報（現在位置および速度）をロボットの運動構造（設置／構成ステップでデバイスに供給される）と併せると、上記の本発明の方法の目的の適用に十分である。
【００７９】
本発明により計算された生産性インデックスのロボットによる使用に関しては、ロボットのコントローラは、図７および８を参照してハイライトされる以下の代替策に基づく選択を実行できる。
【００８０】
図７は、ロボットのコントローラが、本発明の目的に係るデバイスによる計算結果に基づき実行できるプログラムのフロー図を示す。これは予めプログラムされた経路に対する代替的経路を実行する事例である。
【００８１】
開始ステップの後、コントローラはロボットの構成ｑを更新する（ブロック７０）。
【００８２】
次に、方向、生産性インデックスおよび経路再計算リクエストの受信が行われる（ブロック７１）。
【００８３】
次に、コントローラは、代替的経路が可能であるかどうかを検証する（ブロック７２）。
【００８４】
可能でない場合、コントローラは、ロボットの速度の低減を、場合によってはロボットの運動が完全に停止するポイントまで制御する（ブロック７３）。
【００８５】
他方で、可能である場合、コントローラは代替的経路の実行に移る（ブロック７４）。
【００８６】
より具体的には、コントローラは、本発明のデバイスによって受信された方向および生産性インデックスを用いて、考え得るすべての初期ポイントを計算する（ブロック７５）。次に、コントローラは、到達すべき位置とコヒーレントな最善の初期ポイントを選択する（ブロック７６）。次に、コントローラは、現在の経路の実行を遮断する（ブロック７７）。次に、コントローラは、初期ポイントの座標を現在の経路に追加する（ブロック７８）。次に、コントローラは、更新された経路の実行を再アクティブ化する（ブロック７９）。ブロック７０−７９の処理は、周期的に実行される。
【００８７】
図８は、ロボットのコントローラが、本発明の目的に係るデバイスによる計算結果に基づき実行できるプログラムのフロー図を示す。これは、アプリオリにはわかっていない可能性のある、予めプログラムされた経路とは異なる代替的最終位置を持つ新しい経路を実行する事例である。
【００８８】
開始ステップの後、ロボットの構成ｑが更新される（ブロック８０）。
【００８９】
次に、方向、生産性インデックスおよび経路再計算リクエストの受信が行われる（ブロック８１）。
【００９０】
次に、コントローラは、おそらくアプリオリにはわからない代替的最終位置が可能かどうかを検証する（ブロック８２）。
【００９１】
可能でない場合、コントローラは、ロボットの速度の低減を、場合によってはロボットの運動が完全に停止するポイントまで制御する（ブロック８３）。
【００９２】
他方で、可能である場合、コントローラは、代替的最終位置を持つ新しい経路の実行に移る（ブロック８４）。
【００９３】
より具体的には、コントローラは、到達可能な考え得る最終位置のすべてとコヒーレントな生産性の最善の方向を選択する（ブロック８５）。換言すると、コントローラは、協働ロボットが減速または停止する必要がなく、その方向に進行できる最大速度に比例する生産性インデックスを選択する。
【００９４】
次に、コントローラは、現在のタスクの実行を遮断する（ブロック８６）。次に、コントローラは、識別された位置に向かう新しい運動を実行する（ブロック８７）。
【００９５】
ブロック８０−８７の処理は、周期的に実行される。
【００９６】
さらに、コントローラは、いずれの代替的経路も可能でないと確証してよく、このためコントローラは、必要に応じて停止ポイントまでロボットを減速すると決定する。
【００９７】
上記の実施形態においては、１台の協働ロボットと１人の人員オペレータとが存在する簡易な変形例について言及している。しかしながら、本発明の目的に係る方法およびデバイスは、多くの協働ロボットおよび多くのオペレータが存在するより一般的な事例にも適用可能であることは明らかである。
【００９８】
デバイスがロボットの作業領域で検出可能なすべてのオペレータに属するすべてのポイントは、オペレータに属する一組のポイントＰに含まれることになるという意味においては、多くの人員オペレータに関する事例は、実際には本発明の方法の目的に対する修正を含まない。というのは、当該作業領域に存在する、デバイスによって監視されるすべてのオペレータは、めいめいの運動の予測と共に、各ロボットに対する障害物として考えられるからである。
【００９９】
多くの協働ロボットが存在する事例に関しては、各ロボットは存在するすべてのオペレータを考慮に入れ、本方法の目的を適用し、それ自身の生産性方向／インデックスを計算し、その結果、各ロボットに独立に、ロボット自身の経路を修正する可能性を付与する。
【０１００】
概説すると、本発明の方法の目的は、ロボットのコントローラに、一連の生産性インデックスおよび相対的方向を供給することを可能にする。
【０１０１】
ロボットのコントローラ側においては、本発明の方法の目的は、以下の可能性の中から選択することを可能にする。これは、ロボットが実行する必要のあるアクティビティのタイプ、例えば、ロボットの末端要素が実行する必要のあるタイプの運動、および／または、実行されるべきタスクの収益性の基準にも依存する。
‐１）おそらくアプリオリにはわからない、予めプログラムされた最終位置とは異なる代替的最終位置を持つ新しい経路を実行して、ロボットのタスク／ターゲットを変更する。
‐２）予めプログラムされた方向に対する運動の代替的方向または経路を実行して、末端要素の近くの障害物／オペレータを避ける。
‐３）減速し、場合により停止する。
【０１０２】
これらの可能性の中からの選択は、上記したように優先メカニズムによってなされてよい。代替３）は常に可能である一方、１）および２）は特定の適用または特定の瞬間においては利用不可の可能性がある。例えば、ロボットの特定のタスクに対しては、代替的ターゲットが存在せず、オプション２）および３）のみが適用可能である。
【０１０３】
優先メカニズムとして、タスクの収益性基準を用いることも可能である。ロボットのタスクが、優先メカニズムが導入される生産性の文脈において高付加価値を有する場合、優先メカニズムに、ポイント２）のような障害物を避ける結論を取るに至らせることがより良い。より収益性の高いタスクを受けるために、現在のタスクを遮断する可能性がある場合、１）がより良い。優先メカニズムは、ロボットに事前設定されてよい。
【０１０４】
本発明の方法の目的は、有利には、少なくとも部分的にコンピュータプログラムによって実行されてよく、当該コンピュータプログラムは、本プログラムがコンピュータ上で実行されるとき、上記方法の１または複数のステップを実行するための符号化手段を備える。従って、保護範囲は、上記コンピュータプログラム、および、また記録したメッセージを有するコンピュータ可読手段にまで及ぶことを意味し、上記コンピュータ可読手段は、上記プログラムがコンピュータ上で実行されるとき、上記方法の１または複数のステップを実行するためのプログラム符号化手段を備える。
【０１０５】
図３のフロー図で説明した上記コンピュータプログラムは、任意のプログラミング言語で記述されてよい。図７および８のフロー図で例示したロボットのコントローラが実行するプログラムは、当業者に知られている、例えば、ＲＡＰＩＤ、ＫＲＬ、ＵＲｓｃｒｉｐｔ、ＶＡＬ、Ｋａｒｅｌのようなプログラミング言語で記述されてよい。
【０１０６】
記載した非限定な例に対する変形的な実施形態が考えられ、さらに本発明の保護範囲から逸脱することなく、当業者にとっての均等な実施形態はすべて包含される。
【０１０７】
異なる好ましい実施形態に示された構成要素および特徴は、本発明の保護範囲からさらに逸脱することなく、互いに組み合わされてよい。本発明の適用から導かれる利点は、明確である。
【０１０８】
協働ロボットの生産性の観点から性能を最適化させること、１または複数の人員オペレータが存在する場合においてもサイクルタイムを低減させること、ロボットの（認識）決定能力をより高めること、および、人員オペレータが認識する安全性を上げること、が達成される。
【０１０９】
本発明によれば、人員オペレータの意図を解釈すること、および、ある程度まで人員オペレータの動作を予測することを可能にし、結果的にロボットが停止することを防止する。このため、ロボットにとってだけでなく、ワークステーション全体（オペレータおよびロボット）にとっても常に生産性の最適レベルを保証すべく、例えば、視覚センサから来る情報を考慮に入れたロボットの動作を実行する代替的な戦略について記載されている。
【０１１０】
上記の説明から、当業者は、構成の詳細をさらに紹介しなくても、本発明の目的を達成できる。特に、当業者はその知見を適用することで、上記内容を読むだけで、当該方法の機能を実装するプログラムを作成可能であろう。
【図１】
2019518616.tif 000058
【図２】
2019518616.tif 000059
【図３】
2019518616.tif 000060
【図４】
2019518616.tif 000061
【図５】
2019518616.tif 000062
【図６】
2019518616.tif 000063
【図７】
2019518616.tif 000064
【図８】
2019518616.tif 000065
【国際調査報告】
2019518616.tif 000066
2019518616.tif 000067
2019518616.tif 000068