(57)【要約】  ロボットシステム（１００）は、ロボット（１１０）と、オペレータインタフェースを有する教示ペンダント（１３０）と、コンピュータ（１４０）および関連するハードウェアおよびソフトウェアを有する、ロボット（１１０）および環境（１５１）の仮想表現を含むロボットコントローラ（１２０）とを含む。システム（１００）は、衝突幾何形状体を構成する物体（１７７）を含む環境（１５１）中の実際の経路（１７５）に沿ってマニピュレータアーム（１６５）を移動させるステップを含む、衝突を回避するための方法を使用する。オペレータ入力が教示ペンダント（１３０）中に入力され、それによりオペレータは、ロボット（１１０）の動きを実際の経路（１７５）に沿って直接制御することができる。ロボット（１１０）の動きの最近の履歴が記録され、また、教示ペンダント（１３０）に入力された入力、およびロボット（１１０）の動きの最近の履歴に基づいてロボット（１１０）の予測経路（６６０）が展開される。オペレータが教示ペンダント（１３０）を使用して手動でロボット（１１０）を制御する間、予測経路（６６０）と衝突幾何形状体の間の実時間衝突チェックが実施される。
2020516475.tif 000002
【特許請求の範囲】
【請求項１】
マニピュレータアームを有するロボットと、キーを有するオペレータインタフェースを含む教示ペンダントと、前記ロボットおよび環境の仮想表現を含むロボットコントローラとを含むロボットシステムを動作させるための方法であって、
衝突幾何形状体を構成する物体を含む前記環境における実際の経路に沿って前記ロボットを移動させるステップと、
前記教示ペンダントに入力されるオペレータ入力を受け取るステップであって、それによりオペレータが前記実際の経路に沿って前記ロボットの動きを直接制御することができる、ステップと、
前記ロボットの前記動きの最近の履歴を記録するステップと、
前記教示ペンダントに入力された前記入力および前記ロボットの前記動きの前記最近の履歴に基づいて、前記ロボットの予測経路を展開するステップと、
前記オペレータが前記教示ペンダントを使用して前記ロボットを手動で制御する間、前記予測経路と前記衝突幾何形状体の間の実時間衝突チェックを実施するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記オペレータがジョグモードで前記キーを使用して前記ロボットを直接制御する間、前記ロボットが前記衝突幾何形状体に接近すると前記ロボットの速度を減速させ、衝突を防止するステップとをさらに含む方法。
【請求項３】
請求項１または２に記載の方法であって、前記ロボットは関節を含み、前記オペレータ入力を受け取るステップと、前記キーのうちの１つを使用して前記関節を制御するステップとをさらに含む方法。
【請求項４】
請求項１から３のうちのいずれか一項に記載の方法であって、前記マニピュレータアームが工具中心点を有する工具を有し、前記オペレータが直交モードで前記ロボットを直接制御する際に前記ロボットの前記動きを予測するステップと、直交空間における前記工具中心点を制御するステップとをさらに含む方法。
【請求項５】
請求項１から４のうちのいずれか一項に記載の方法であって、
前記ロボットをプログラムステップおよび加速パラメータを有するプログラムに従って移動させるステップと、
現在のプログラムステップの現在の目的位置、前記ロボットの速度および前記加速パラメータに基づいて、前記ロボットの前記動きを予測するステップと、
前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近すると前記ロボットの前記速度を減速させて衝突を防止するステップと
をさらに含む方法。
【請求項６】
請求項１から４のうちのいずれか一項に記載の方法であって、前記ロボットを、プログラムステップを有するプログラムに従って移動させるステップをさらに含む方法。
【請求項７】
請求項６に記載の方法であって、
前記ロボットの工具中心点の可能性ある経路を計算し、
各可能性ある経路に沿った予測ロボット位置を前記実際の経路に沿った実際のロボット位置の履歴に対して比較し、前記可能性ある経路のうちの１つが前記実際の経路に十分に類似していることが見出された場合に、前記可能性ある経路のうちの前記１つを前記予測経路として指定して、前記ロボットの動きを前記予測経路に沿って未来に向けて予想し、前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近することが予測されると前記ロボットの速度を減速することによって衝突を防止する
ことによって、前記ロボットが前記プログラムの各ステップを実行する際に前記ロボットの前記動きを予測するステップをさらに含む方法。
【請求項８】
請求項７に記載の方法であって、前記教示ペンダントはキーを有し、
前記オペレータが前記キーを押している限り、プログラムのステップを実行し続けるステップと、
前記オペレータが前記キーを押している間、前記ロボットと、前記予測経路に沿った衝突の最も近いポイントとの間の距離を計算するステップと、
計算された前記距離に比例して前記ロボットの前記速度を減速させるステップと
をさらに含む方法。
【請求項９】
ロボットシステムであって、
物体を含む環境における実際の経路に沿って工具または部品を運ぶように設計されたマニピュレータアームを含むロボットであって、前記物体、前記ロボットおよび前記工具は衝突幾何形状体を構成する、ロボットと、
教示ペンダントであって、前記教示ペンダントに入力されるオペレータ入力を受け取るように構成されたオペレータインタフェースを含み、それによりオペレータが前記実際の経路に沿って前記ロボットの動きを直接制御することができる、教示ペンダントと、
ロボットコントローラであって、前記ロボットおよび前記環境の仮想表現を含み、
前記実際の経路に沿った前記ロボットの前記動きの最近の履歴を記録し、
前記教示ペンダントに入力された前記入力、および前記ロボットの前記動きの前記最近の履歴に基づいて、前記ロボットの予測経路を前記仮想表現で展開し、
前記オペレータが前記教示ペンダントを使用して前記ロボットを手動で制御する間、前記予測経路上の前記ロボットと前記衝突幾何形状体の間の実時間衝突チェックを実施する
ように構成されたロボットコントローラと
を備えるロボットシステム。
【請求項１０】
請求項９に記載のシステムであって、前記オペレータインタフェースは前記オペレータ入力を受け取るためのキーを有する、システム。
【請求項１１】
請求項１０に記載のシステムであって、前記コントローラは、前記オペレータがジョグモードで前記キーを使用して前記ロボットを直接制御する間、衝突が防止されるように、前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近すると前記ロボットの速度を減速させるようにさらに構成された、システム。
【請求項１２】
請求項１０または１１に記載のシステムであって、前記ロボットは少なくとも１つの関節を有し、前記キーのうちの１つは前記関節を制御するように構成された、システム。
【請求項１３】
請求項１０から１２のうちのいずれか一項に記載のシステムであって、前記工具は工具中心点を有し、前記コントローラは、前記オペレータが直交モードで前記ロボットを直接制御する際に前記ロボットの前記動きを予測するようにさらに構成され、前記キーは、直交空間における前記工具中心点を制御するように構成された、システム。
【請求項１４】
請求項１０から１３のうちのいずれか一項に記載のシステムであって、前記ロボットは、プログラムステップおよび加速パラメータを有するプログラムに従って移動するように構成され、前記コントローラは、現在のプログラムステップの現在の目的位置、前記ロボットの速度および前記加速パラメータに基づいて、前記予測経路に沿った前記ロボットの前記動きを予測し、前記ロボットの何らかの構成要素が前記予測経路に沿って前記衝突幾何形状体に接近すると前記ロボットの前記速度を減速させ、それによって衝突が防止されるようにさらに構成された、システム。
【請求項１５】
請求項９または１０に記載のシステムであって、前記ロボットはプログラムステップを有するプログラムに従って移動するように構成され、前記工具は工具中心点を有する、システム。
【請求項１６】
請求項１５に記載のシステムであって、前記コントローラは、
前記工具中心点の可能性ある経路を計算し、
各可能性ある経路に沿った予測ロボット位置を前記実際の経路に沿った実際のロボット位置の履歴に対して比較し、前記可能性ある経路のうちの１つが前記実際の経路に十分に類似していることが見出された場合に、前記可能性ある経路のうちの前記１つを前記予測経路として指定して、前記ロボットの動きを前記予測経路に沿って未来に向けて予想し、前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近することが予測されると前記ロボットの速度を減速し、それによって衝突を防止する
ことによって、前記ロボットが前記プログラムの各ステップを実行する際に前記工具の動きを予測するようにさらに構成された、システム。
【請求項１７】
請求項１０から１４のうちのいずれか一項に記載のシステムであって、前記教示ペンダントはキーを有し、前記コントローラは、
前記オペレータが前記キーを押している限り、前記プログラムのステップを実行し続け、
前記オペレータが前記キーを押している間、前記ロボットと、前記予測経路に沿った衝突の最も近いポイントとの間の距離を計算し、
計算された前記距離に比例して前記ロボットの前記速度を減速させる
ようにさらに構成された、システム。
【請求項１８】
請求項１０に記載のシステムであって、前記コントローラは、
前記オペレータが前記キーのうちの１つを押している間、前記ロボットと、前記予測経路に沿った衝突の最も近いポイントとの間の距離を計算し、
計算された前記距離に比例して前記ロボットの前記速度を減速させる
ようにさらに構成された、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]本出願は、２０１７年１０月２０日に出願された米国特許出願第１５／７８９，０３２号、および２０１７年４月１３日に出願された、「Ｔｅａｃｈ  Ｍｏｄｅ  Ｃｏｌｌｉｓｉｏｎ  Ａｖｏｉｄａｎｃｅ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｉｎｄｕｓｔｒｉａｌ  Ｒｏｂｏｔｉｃ  Ｍａｎｉｐｕｌａｔｏｒｓ（産業ロボットマニピュレータのための教示モード衝突回避システムおよび方法）」という名称の米国仮出願第６２／４８５，１５９号の利益を主張するものである。この出願のすべての内容は、参照により本明細書に組み込まれる。
【０００２】
[0002]本発明は産業ロボットの分野に関し、より詳細には製造環境で動作するロボットのためのコントローラであって、ロボットがその作業空間における周囲の物体と衝突するのを防止するコントローラに関する。
【背景技術】
【０００３】
[0003]ロボットは、典型的な製造環境において、もはや珍しい存在ではない。産業ロボットは、製品を製造するために多くの産業で使用される。例えば航空宇宙産業では、ロボットは、翼アセンブリおよび胴体などの構成要素に取り組むべく使用されている。現在では、様々なエンドエフェクタおよび工具を備えたロボットが、製造環境の周囲でワークピースをかなりの速度で移動させている。同じ製造環境において使用されるロボットが多くなればなるほど、ロボットまたはその工具あるいはエンドエフェクタと、ロボットの作業空間における他の物体、さらには同じロボットの他の部分との間の衝突の可能性が高くなる。いかなる衝突も、衝突に関わったロボットおよび他の物体に対する重大な損傷の原因になり、そのロボットに関連するすべての製造プロセスにおける望ましくない多額の修理費およびダウンタイムをもたらし得る。
【０００４】
[0004]ロボットが新しい動作のためにプログラムされ、また、ロボットが最初に作業空間でオンラインにされると、ロボットが既に動作中である場合より高い衝突の危険が存在する。ロボットは、最初は、ロボットおよび作業空間のコンピュータ支援設計（ＣＡＤ）モデルを使用してオフラインでプログラムされる。ロボットの工具の工具中心点（ＴＣＰ）の経路は、ロボットが製造操作を遂行し得るようにプログラムされる。しかしながら作業空間の模擬ＣＡＤモデルは、実際の作業空間と厳密に同じではないことがあり得る。この問題に対処するために、ほとんどの産業ロボットマニピュレータは、手動モードすなわち「教示」モードを提供し、オペレータは、教示ペンダントまたは同様の遠隔制御デバイスを使用してロボットを制御することができる。教示モード動作は、「タッチアップ」、すなわちオフラインで作成されたロボットプログラムを調整して、オフラインプログラミングソフトウェアおよび完成作業空間によって使用される模擬ＣＡＤモデル間の揺れを考慮するためにしばしば使用される。教示モード動作は、新しいロボット作業空間のコミッショニング中に頻繁に使用され、人間のオペレータがロボットを直接制御するため、作業空間におけるロボット、ツーリング、ワークピースおよび他の構成要素間の衝突の著しく高い危険をもたらす。航空宇宙などのいくつかの産業では、再加工には費用が掛かり、また、製造スケジュールが厳しいため、ワークピースの価値が高いと、衝突の危険が許容不可能に高くなる。
【０００５】
[0005]衝突による損傷を防止するために、いくつかのロボット製造者は、ロボットの関節軸の各々に引き出される電流を監視して、衝突の可能性があることを示す規定量を超える電流を各関節アクチュエータが引き出すことを検出する衝突検出方法を提供する。しかしながら正規の加速および減速も同じくより大きい電流を引き出すことになり、通常、オペレータが手回しで電流監視感度を調整しなければならないため、この手法は完全には信頼することができない。ロボット製造者によって提供される別のオプションは、図１に示されるように、ゾーンに基づく監視特徴１０であり、ユーザは、単純な多角形のキープ−インおよびキープ−アウト領域２０を画定することができる。動作中、ロボットコントローラ３０は、教示モードにある間、および通常の動作中の両方で、ロボット５０が作業表面６０に対して移動する際に、ロボット５０の様々な要素４０を監視し、ロボットの動きがキープ−アウト領域２０に入るか、あるいはキープ−イン領域（図示せず）から離れると、直ちにロボット５０を停止させる。しかしながらこのゾーンに基づく手法は、この手法によって監視することができる環境のタイプが限定される。航空宇宙産業においては、翼アセンブリまたは胴体などの湾曲した大きい構成要素が一般的であり、それは、単純なゾーンに基づく手法は、教示モード動作の間、ロボットの衝突を回避するためには適切ではないことを意味する。また、多くの航空機は、入口ダクトのような特徴を有し、ロボットエンドエフェクタは、これらのダクトの内側での操作（例えばコーティングまたはデコーティング操作）のために使用され得る。画定され得るゾーンの数に対する実際的な制限が存在し、また、各ゾーンが単純な凸状多面体であり、孔のような複雑性をサポートしないため（すなわちトーラスはオプションではない）、このような領域をゾーンに基づく手法で保護することはほとんど不可能であろう。センサに基づく他の手法は、ロボットに接触センサを設けなければならないことがあり、これは、ロボットのすべての部分を保護するには費用禁止的であり得る。３Ｄレーザスキャナのような非接触センサを使用してロボットおよびその環境が走査され得るが、幾何形状体の部分がセンサから隠される場合に生じる「陰」のため、常にロボットのすべての部分を見ることは不可能であり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
[0006]当分野においては、教示モードの間、複雑な形状の周囲の物体とのロボットの衝突を防止する必要性が存在する。
【課題を解決するための手段】
【０００７】
[0007]センサに基づく手法およびゾーンに基づく手法の両方の限界に対処するために、教示ペンダントコマンド、ロボットの現在の状態、およびロボットの過去の位置の最近の履歴に基づいてロボットの動きを予測することを含む新しい手法が開発された。この手法では、教示モード動作の間、ロボットの動きを監視し、かつ、衝突を予測して防止するために、パーソナルコンピュータがロボットコントローラに接続される。ロボットの実際の作業空間の正確な表現である環境の模擬表現が使用される。この模擬表現は、三次元（３Ｄ）ＣＡＤモデル、３Ｄ走査データまたはその両方の組合せからのものであってもよい。環境の模擬表現が使用され、オペレータが教示ペンダントを使用してロボットを制御する間、衝突が差し迫っているかどうかを決定するために、ロボットの現在の位置と予測位置の間の衝突チェックが実施される。ロボットシステムは、教示モードの間、衝突を回避することができる。教示モードは、好ましくは、ジョグモード、ステップモードおよびランモードを含むいくつかのサブモードを有し、また、システムは、３つのすべてのモードで動作する。
【０００８】
[0008]ジョグモードでは、オペレータは、教示ペンダント上のボタンを押してロボットの各関節を移動させることができる。別法として、オペレータは、ボタンを使用して工具を作業空間の周囲に移動させることも可能である。いずれの場合においても、ソフトウェアは、ボタンの押下を「聴いて」、ロボットが数ミリ秒（この時間期間の長さは設定可能である）の時間スパンにわたってどこへ移動するかを予測し、かつ、ロボットの予測経路上で衝突チェックを実施する。衝突が予測されると、ロボットのオーバライド速度がオペレータによって設定された望ましい速度から減速される。ロボットがそのまま障害物にさらに接近すると、ロボットのオーバライド速度は完全停止に至るまで減速し続ける。しかしながらオペレータがロボットを衝突することにはならない任意の方向へ移動させる場合（例えば壁が障害物である場合、壁に沿って、あるいは壁から離れる方向に）、ロボットの速度が加速され、指示された方向への動きを許容する。
【０００９】
[0009]通常、ステップモードでは、オペレータは、「ステップ」ボタンを押してロボットをステップモードにすることにより、教示ペンダントプログラムを介してステップすることができ、次に、「前進」または「後退」キーによって、所望の方向に一度にプログラム中の１ステップずつ、または命令行ずつ実行するようにロボットに命令する。このモードでは、ソフトウェアは、ロボットの現在の状態およびロボットの最近の履歴を使用してロボットの動きを予測する。教示ペンダントプログラムにはロボットの未来の行動に関する完全な情報が含まれているが、この情報は必ずしもロボット製造者によってアクセスが可能にはなされていない。例えばロボットが過去の数ミリ秒（この時間期間の長さは設定可能である）にわたって円弧を描いて移動した場合、ソフトウェアは、動きはこの円形経路に沿って継続することになることを予測することになる。この経路は、次に、数秒間（これも設定可能である）にわたって予想され、衝突が事前チェックされることになる。予測された衝突は、すべてロボットのオーバライド速度を減速させることになる。しかしながらロボットの動きが予測経路から逸脱し始めると、ソフトウェアは、その予測に対する「確信を失う」ことになり、また、ロボットの任意の部分と衝突幾何形状体の間の最も近い距離に頼り始めることになり、衝突幾何形状体は、環境またはロボット自体の別の部分であってもよい（例えばロボットは、ロボットが自身のベース中に保持している工具にぶつかることがあり得る）。衝突までの最も近い距離が所定の第１の閾値（設定可能）の真下まで短くなると、ロボットのオーバライド速度がオペレータによって設定された所望の速度から減速され、ロボットが所定の第２のもっと小さい閾値に到達すると、最終的にはロボットを停止させる。より短い閾値距離に到達する前にロボットが停止されると、オペレータは、シフトキーおよび／またはデッドマンを解放することによってプログラムを停止する。オペレータは、次に、ジョグキーを使用して手動で後退させるか、あるいは別のステップモードコマンドを恐らくは逆に実行することができる。ロボットがより短い距離閾値よりもさらに接近すると、ユーザは、シフトキーおよびデッドマンを同じく保持している間、教示ペンダントＧＵＩ上の仮想ボタンを押すことによってオーバライドモードを起動しなければならない。好ましくはパスワード保護が使用される。これは、オーバライドモードに入るようにソフトウェアに命令する。このモードでは、ロボットの最高速度が著しく減速され、オペレータによる衝突状態からの極めて低速での後退を許容する。ロボットが衝突状態から抜け出ると、教示ペンダントＧＵＩを使用してオーバライドモードが不能にされ、正規の動作を再開することができる。
【００１０】
[0010]ランモードでは、オペレータは、ステップモードと同様の教示ペンダントプログラムを実行することができるが、ロボットは、ユーザが教示ペンダントキーを解放することによって実行を停止するまで連続的に命令行を実行する。さもなければ予測および衝突回避は、上で説明したステップモードと全く同じように働く。
【００１１】
[0011]より詳細には、本発明はロボットシステムを対象とし、ロボットシステムは、好ましくは、物体を含む環境中の実際の経路に沿って移動させるためのマニピュレータアームを含むロボットを備え、物体およびロボットは衝突幾何形状体を構成する。ロボットは、好ましくは、ベースと、工具を保持するように構成されたマニピュレータアームとを有する。ベースは、統合軸と呼ばれることもある、マニピュレータアームを環境内の異なる位置に配置するように構成される回転または並進関節などの１つまたは複数の関節を備えることができる。マニピュレータアームは、工具を経路に沿った所望の位置に置くことができる少なくとも１つの関節を有する。ロボットは、教示ペンダント中に入力されるオペレータ入力を受け取るように構成されたオペレータインタフェースを含む教示ペンダントを備える。インタフェースは、キーが付いたキーパッドを有する。オペレータは、ロボットのマニピュレータアームの動きを実際の経路に沿って直接制御することができ、あるいはキーを使用して命令を入力することによって任意の追加統合軸を制御することができる。
【００１２】
[0012]ロボットシステムは、教示モードにある間、衝突を回避することができる。教示モードは、好ましくは、ジョグモード、ステップモードおよびランモードを含むいくつかのサブモードを有し、また、システムは、３つのすべてのモードで動作する。
【００１３】
[0013]一実施形態では、コントローラは、オペレータがジョグモードでキーを使用してロボットを直接制御する間、衝突が防止されるよう、ロボットの何らかの構成要素が衝突幾何形状体に接近するとロボットの速度を減速させるように構成される。同様に、コントローラは、オペレータが直交モードでロボットを直接制御する場合、ロボットの動きを予測するように構成され、キーは、直交空間における工具中心点を制御するように構成される。
【００１４】
[0014]別の実施形態では、ロボットは、プログラムステップおよび加速パラメータを有するプログラムに従って移動するように構成される。コントローラは、さらに、現在のプログラムステップの現在の目的位置、ロボットの速度および加速パラメータに基づいて、予測経路に沿ったロボットの動きを予測するとともに、衝突が防止されるよう、ロボットが予測経路に沿って衝突幾何形状体に接近するとロボットの速度を減速させるように構成される。
【００１５】
[0015]別の実施形態では、教示ペンダントはキーを有し、また、コントローラは、オペレータがキーを押している限り、プログラムのステップを実行し続けるように構成される。オペレータがキーを押している間、ロボットと、予測経路に沿った衝突の最も近いポイントとの間の距離が計算され、また、計算された距離に比例してロボットの速度が減速される。
【００１６】
[0016]動作中、マニピュレータアームを有するロボットと、追加関節を備えることができるベースと、オペレータインタフェースを有する教示ペンダントと、コンピュータおよび関連するハードウェアおよびソフトウェアを有する、ロボットおよび環境の仮想表現を含むロボットコントローラとを含むロボットシステムは、衝突を回避するための以下の方法を使用する。衝突幾何形状体を構成する物体を含む環境中の実際の経路に沿ってマニピュレータアームが移動される。オペレータ入力が教示ペンダント中に入力され、それによりオペレータは、ロボットの動きを実際の経路に沿って直接制御することができる。ロボットの動きの最近の履歴が記録される。教示ペンダント中に入力された入力、およびロボットの動きの最近の履歴に基づいてロボットの予測経路が計算される。オペレータが教示ペンダントを使用して手動でロボットを制御する間、ロボットの構成要素と衝突幾何形状体の間の実時間衝突チェックが予測経路を使用して実施される。
【００１７】
[0017]また、方法は、好ましくは、オペレータがジョグモードでキーを使用してロボットを直接制御する間、ロボットが環境中の物体に接近するとロボットの速度を減速させ、衝突を防止するステップを同じく含む。ロボットは、プログラムステップおよび加速パラメータを有するプログラムに従って移動され、また、ロボットの動きは、現在のプログラムステップの現在の目的位置、ロボットの速度および加速パラメータに基づいて予測される。衝突が防止されるよう、ロボットの何らかの構成要素が環境中の物体に接近するとロボットの速度が減速される。
【００１８】
[0018]別の実施形態では、方法は、プログラムステップを有するプログラムに従ってロボットを移動させるステップと、ロボットがプログラムの各ステップを実行する際にロボットの動きを予測するステップとを含む。ロボットの工具中心点の可能性ある経路が計算され、また、必要なロボット位置が実際の位置の履歴に対して比較される。経路がロボットの実際の動きと十分に類似していることが見出されると、その経路に基づいて、ロボットの動きが未来に向けて予想される。衝突が防止されるよう、ロボットの何らかの構成要素が環境中の物体に接近することが予測されるとロボットの速度が減速される。ロボットと、ロボットと衝突幾何形状体の間の衝突の最も近いポイントとの間の距離が計算され、また、計算された距離に比例してロボットの速度が減速される。
【００１９】
[0019]本発明の追加目的、特徴および利点は、同様の参照数表示はいくつかの図面における対応する部分を表す図面に関連してなされる、好ましい実施形態についての以下の詳細な説明からより容易に明らかになるであろう。
【図面の簡単な説明】
【００２０】
【図１】[0020]従来技術による、ロボットおよびロボットコントローラを含むロボットシステムの略図である。
【図２】[0021]本発明の好ましい実施形態による、ロボットを含むロボットシステムの略図である。
【図３】[0022]図２のロボットシステムからの教示ペンダントの大写し図である。
【図４】[0023]本発明によるロボットの一部を示す図である。
【図５】[0024]本発明による、ワークピースの近傍のロボットを示す図である。
【図６】[0025]本発明の好ましい実施形態による、ロボットの一部の動きを示す図である。
【図７Ａ】[0026]本発明の好ましい実施形態によるフローチャートである。
【図７Ｂ】本発明の好ましい実施形態によるフローチャートである。
【発明を実施するための形態】
【００２１】
[0027]本明細書においては本発明の詳細な実施形態が開示される。しかしながら開示される実施形態は、様々な代替形態で具体化され得る本発明の例示的なものにすぎないことを理解されたい。図は必ずしもスケール通りではなく、いくつかの特徴は、特定の構成要素の詳細を示すために誇張され、あるいは最小化されていることがあり得る。したがって本明細書において開示される特定の構造的および機能的詳細は、本開示を制限するものとして解釈してはならず、当業者に本発明を使用するべく教示するための単なる体表的な土台として解釈されるべきである。図についての上記説明は、図面をより完全に理解するために提供されたものである。しかしながら実施形態は、示される厳密な構造および構成に限定されないことを理解されたい。以下では様々な実施形態の設計および使用が詳細に考察されるが、本発明は、広範囲にわたる様々な文脈で具体化され得る多くの発明概念を提供することを認識されたい。本明細書において考察される特定の態様および実施形態は、本発明を構築し、かつ、使用する方法の単なる例証にすぎず、本発明の範囲を制限するものではない。本開示における本発明の可能な実施形態および文脈のすべてを含むことは不可能であるか、あるいは非実際的であろう。本開示を読めば、当業者には本発明の多くの代替実施形態が明らかであろう。
【００２２】
[0028]最初に図２を参照すると、本発明の好ましい実施形態によるロボットシステム１００全体が示される。システム１００は、ロボット１１０、ロボットコントローラ１２０、オペレータ１３５によって使用され得る教示ペンダント１３０、およびパーソナルコンピュータ１４０の４つの主要構成要素を含む。ロボット１１０は、作業空間すなわち作業環境１５１における、工場の床などの表面１５５に取り付けられたベース１５０を含む。示されていないが、ベースが１つまたは複数の並進または回転ステージを備える他の構成も可能である。下部サポート１５６は、矢印１５７によって示されるように、下部サポート１５６がベース１５０に対して第１の関節１５８の周りを回転することができるようにベース１５０の上に取り付けられる。上部サポート１６０は、矢印１６３によって示されるように、下部サポート１５６に対して第２の関節１６４の周りを回転するように取り付けられる。上部サポート１６０は、下部サポート１５６を前腕リンク１６５に接続する。前腕リンク１６５は、矢印１６７によって示されるように、第３の関節１６６の周りを回転するよう、ピボット可能に取り付けられ、また、アームサポート１６８に対して伸びるか、または後退するように同じく設計される。したがってロボット１１０は６自由度で移動することができ、また、ロボット１１０は、前腕１６５の手関節で一致する３つの回転関節を同じく含むが、このような関節は図２では明確に見ることはできない。この構造によれば、エンドエフェクタまたは工具１７０は、アクチュエータ１７２などの様々なアクチュエータによって任意の所望の位置に置かれ得る。上記に基づいて、ロボット１１０は、複数の構成要素、例えばベース１５０、前腕１６５および工具１７０を含むことを理解されたい。工具１７０などのロボット１１０の構成要素は、物体１７７を含む環境１５１中の実際の経路１７５に沿って様々な所望の位置１８１、１８２、１８３、１８４、１８５および１８６へ移動される。ロボット１１０および物体１７７は衝突幾何形状体を構成する。ロボットコントローラ１２０はコンピュータを含むことができ、あるいは関連するハードウェアおよびソフトウェア（個別にラベルが振られていない）を有するコンピュータ１４０に接続され得る。好ましくはソフトウェアはコンピュータ１４０上で走り、ロボット１１０の関節位置および関節速度を監視する。本発明に従って修正され得る、商用的に入手することができるソフトウェアプログラムは、ＢａｔｔｅｌｌｅのＰａｔｈＰｌａｎ（商標）ソフトウェアパッケージである。
【００２３】
[0029]図３に最も良好に示されるように、教示ペンダント１３０はオペレータインタフェース２００を含み、いくつかのキーは、前進キー２１０および後退キー２２０を含む。教示モード動作の間、ジョグモード、ステップモードおよびランモードなどのロボット１１０を制御するいくつかのモードが提供される。ジョグモードでは、ロボット１１０は、オペレータインタフェース２００中の教示ペンダントキーを使用して手動で動き回され得る。個別の関節１５８、１６４、１６６（ならびにアーム１６５の手関節で一致する関節）は関節モード制御で移動され、あるいはロボットの工具中心点１７０は、直交モード制御で直交空間中を移動され得る。他の教示ペンダントモードを同じく使用して、ステップモードおよびランモードを含む教示ペンダント１３０を使用してロボット１１０が制御され得る。ステップモードでは、オペレータ１３５は、教示ペンダント１３０上の前進キー２１０または後退キー２２０を押すことによって所望の方向にロボットプログラムの１行を実行することができる。ランモードでは、前進キーまたは後退キー２１０、２２０を押さえつけることにより、キー２１０、２２０が解放されるまで複数の命令行が連続的に実行される。
【００２４】
[0030]ジョグモードでは、教示ペンダントキーがオペレータ１３５によって押されることを制御アルゴリズムが監視し、かつ、それに応じてロボットの動きを予測する。関節モードでは、アルゴリズムは、ロボット１１０の個別のリンクがどこを移動することになるかを予測するために、指定された軸の命令された関節速度を統合することによってロボットの動きを予想する。図４は、ロボットアームの仮想表現を示したものである。ベース３００はアーム３１０をピボットで支持し、アーム３１０はエンドエフェクタ３２０を支持する。エンドエフェクタ３２０の位置および動きは、部分的にはアーム３１０およびエンドエフェクタ３２０の長さ、およびそれらの間に形成される角度に基づいて予測され得る（順運動学）。
【００２５】
[0031]直交モードでは、アルゴリズムは、図５に示されるように、直交空間におけるロボットの動きの経路を予想する。図５は、ワークピース４５０の近傍にアーム４１０などのマニピュレータアームを有するロボット４００の仮想表現を示したものである。エンドエフェクタ４７０は、初期の位置に実線で示される。コントローラ１２０は、さらに、オペレータ１３５がジョグモードでオペレータインタフェース２００のキーを使用してロボット４００を直接制御する間、衝突が防止されるよう、アーム４１０が衝突幾何形状体（すなわちワークピース４５０）に接近するとアーム４１０の速度を減速させるように構成される。ロボット４００がロボットのｙ−軸に沿って直線で移動するように命令されると（例えば教示ペンダント１３０上の＋Ｙキーを使用して）、アルゴリズムはこの経路を計算し、かつ、それを数秒の未来に向けて予想する。矢印４８０によって示されるこの予想された経路に沿ったロボットの位置がワークピース４５０または別の障害物などの何かと衝突する場合、ロボット４００のレンダリングがコンピュータ１４０上に提示されて衝突の可能性を警告し、また、アルゴリズムは、ある範囲のオーバライド速度を介してロボット４００の速度の所望の速度からの減速を開始する。ロボット４００がワークピース４５０に接近し続けると、ロボット４００が停止するまでオーバライド速度が減速される。予測された衝突を含まない動き（ワークピースに接近し得るが、ワークピースには向かわない、例えば直線の端に沿った動きを含む）は、アルゴリズムにロボット４００の速度を加速して所望の値に戻させることになる。例えばワークピース４５０から遠ざかるロボット４００の移動は所望の速度で実施されることになり、一方、ワークピース４５０に向かうロボット４００の移動はオーバライド速度で実施されることになる。
【００２６】
[0032]図２および図６を参照すると、コントローラ１２０は、実際の経路６５０に沿った工具１７０の動き、およびロボット１１０の関連する位置の最近の履歴を記録し、ペンダント１３０中に入力された入力および工具１７０の動きの最近の履歴に基づいて、工具１７０のための予測経路６６０を仮想表現で展開し、また、オペレータ１３５が教示ペンダント１３０を使用してロボット１１０を手動で制御する間、予測経路６６０と衝突幾何形状体の間の実時間衝突チェックを実施するように構成される。ステップモードでは、オペレータ１３５は、各ステップまたはプログラム行を教示ペンダントプログラムから逐次実行し、各ポイント６１１、６１２におけるロボットの位置をチェックすることができる。このモードの間、教示ペンダントプログラムコマンドへのアクセスが不可能である場合、図６に示されるように、ロボットの動きの最近の履歴を使用し、かつ、その履歴を予測された動きに対して比較し、それによりアルゴリズムの予測に対する確信レベルを決定する経路予測手法が使用される。例えば６１０における教示ペンダントプログラムにおいて、初期時間ｔ０に等しい時間における直近のプログラムステップＮで開始し、アルゴリズムは、ロボットの工具中心位置が２つのステップ６１１および６１２によって実際の経路６５０に沿って、６７０で示される、雑音をフィルタ除去するための各ステップ間の少なくともδ距離だけ移動されるまで待機する。アルゴリズムが３つのステップのための十分なデータを有すると、アルゴリズムは、工具中心点サンプルを当てはめるために最適適合円弧および最適適合直線線分を計算する。アルゴリズムは、次に、各サンプルポイントで逆運動学を実施し、計算された工具中心点位置を達成するために必要なロボット１１０の関節角度θを決定する。初期関節角度θ０はｔ０において知られているため、無矛盾逆運動解のみがｔ１およびｔ２に対して選択される（例えば肘がフリップされる代替構成は考察から除外され得る）。次にロボット位置の履歴が計算された位置に対して比較され、類似性測度が決定される。とりわけ実際のロボットデータと計算されたロボットデータの間に異なる数のサンプルが存在する場合、速度が変化し得る２つの一時的シーケンスの間の類似性を測定するために広く使用されている動的時間伸縮法などの方法を同じく使用してロボット位置の履歴が解析され得る。２つのデータストリームが十分に類似している場合、選択された経路を使用して、数秒だけ未来のロボットの動きが予測され、また、衝突がチェックされる。衝突が予測される場合、ロボットの速度が所望の速度からオーバライド速度へ、あるいはある範囲のオーバライド速度を介して減速される。図６では、例えば円形経路６６０は、線形経路６６５と比較すると最も良好にデータと適合するが、実際のロボット位置履歴が計算された逆運動学解と十分に類似している場合、アルゴリズムはこの経路のみを選択することになる。これが真である場合、アルゴリズムは、円形経路６６０が真の経路である高い確信を有する。
【００２７】
[0033]アルゴリズムが十分なデータサンプルを有するまで、あるいはアルゴリズムがロボットの経路の確信のある予測に到達し得ない場合（例えば工具中心位置経路が線形予想経路６６５または円形予想経路６６０のいずれとも一致しない関節移動をロボットが実行している場合）、ロボット１１０と衝突幾何形状体（ロボット１１０自体を含む）の間の最も近い距離を使用してロボットの速度が加減される。ロボット１１０が予め規定された閾値より近い場合、速度はゼロに向かって減速されることになる。ロボット１１０が第２のもっと小さい閾値より近くに接近すると、速度は、衝突の危険を除去するためにゼロに設定されるか、あるいは十分にゼロの近く（例えばオペレータにとってはデッドホールトのように見えるか、あるいは感じられる０．０１％）に設定されることになる。ランモードでは、ロボットが動作している間、必ずしも十分なデータがロボット製造者によって明らかにされないため、経路予測は困難である。この理由により、アルゴリズムは、最も近い距離を利用して、ロボット１１０がその環境または自身と衝突するまでの近さの程度を追跡し、ステップモードおよびジョグモードのようにロボットのオーバライド速度を加減する。
【００２８】
[0034]図７Ａおよび図７Ｂは、衝突回避アルゴリズム７００のためのフローチャートを示したものである。アルゴリズム７００はループで動作し、ロボット状態データ（関節位置および速度、ボタン押下などの制御フラグ、プログラム実行フラグ、等々）が各サーボ時間ステップでロボットコントローラ１２０から取得される。フローチャート全体は、ループの１つの対話中に取られる行動を記述し、ステップ７０２で始まる。ロボット状態データが７０４で取得されると、ソフトウェアアルゴリズム７００は、３Ｄ  ＣＡＤおよび／または３Ｄ走査データから生成された模擬環境に対してロボット１１０をチェックする。衝突が予測されると、アルゴリズムは、図７Ｂのフローチャートの続きに示されるように、ステップ７９６でオーバライド速度Ｓを０にクランプすることによってロボット１１０を停止させる。衝突が予測されない場合、アルゴリズム７００は、７１２で、コントローラ１２０からの論理フラグを使用して、オペレータ１３５が教示ペンダント１３０上でプログラムを走らせているかどうかを決定し、これは、ステップモードまたはランモードのいずれかを示すことになる。プログラムを走らせていない場合、オペレータ１３５はジョグモードを使用していることになり、その場合、アルゴリズム７００は、教示ペンダントジョグボタン（例えばＪ１＋、Ｊ１−、等々であって、Ｊ１はロボットの第１の関節、すなわちベース、関節である）が押されているかどうかを決定する。７１４でどのキーも押されていない場合、ロボット１１０は、オーバライド速度を０にクランプすることによって停止状態で維持される（図７Ｂの７９６における経路Ｃ）。ジョグボタンが押されている場合、アルゴリズム７００は、７１６で、コントローラ１２０からの関連する論理フラグを調べることにより、関節モードが使用されているかどうかを決定する。間接モードでは、７１８で、コントローラデータから関節速度が測定される。直交モードでは、工具中心点が、オペレータ１３５によって、オペレータインタフェース２００のキーを使用して直交空間中で直線的に移動される。キー押下は方向に変換され、次に逆運動学が実施され、予想されたロボット位置７２０を決定するために使用され得る計算された関節速度を決定する。コントローラ１２０は、オペレータ１３５が直交モードでロボット１１０を直接制御する際に、アームまたは工具中心点の動きを予測するように構成される。関節モードおよび直交モードのいずれにおいても、ロボットの位置は、７２０で、計算または測定された関節速度に基づいて、未来に向けて予想され、また、７２５でアルゴリズムの次の部分に引き渡される（図７Ｂに示される）。
【００２９】
[0035]図７Ａに示される他の主要な経路は、ステップモードおよびランモードのためのものである。ロボット１１０は、プログラムステップおよび加速パラメータを有するプログラムに従って工具１７０を移動させるように構成され、コントローラ１２０は、現在のプログラムステップの現在の目的位置、工具１７０の速度および加速パラメータに基づいて、予測経路６６０に沿った工具１７０の動きを予測するように構成される。コントローラ１２０は、さらに、衝突が防止されるよう、ロボット１１０の何らかの構成要素が予測経路６６０に沿って衝突幾何形状体に接近すると工具１７０の速度を減速させるように構成される。プログラムが走っている場合、アルゴリズム７００は、７３０で、動きを計画するための十分なデータがロボットコントローラ１２０から入手することができるかどうかを決定する。これは、現在のプログラムステップ、ロボット１１０の現在の目的位置、加速および減速パラメータ、等々を含むことができる。この情報が入手可能である場合、ロボットの動きの正確な予測が可能であり、また、７２０でロボット位置が未来に向けて予想され、また、図７Ｂに７２５で示されるように、アルゴリズムの経路Ａの部分に引き渡される。７３０でこのデータを入手できない場合、これはより一般的な場合であり、アルゴリズム７００は、７３２で、ステップモードまたはランモードのどのモードがアクティブであるかを決定する。ランモードがアクティブである場合、アルゴリズム７００は７５５へ移動し、図７Ｂの経路Ｂに示されるステップ７４２で、ロボット１１０、環境１５１および自身の間の衝突までの計算された最短距離の使用に頼る。ステップ７４２で最短距離が計算されると、７４４で、最短距離が構成閾値未満である場合、単調減少関数に基づいてクランピング係数が低減される。しかしながら７３２でステップモードがアクティブである場合、アルゴリズム７００は、７３４で制御フラグに基づいて、関節モードがアクティブであるか、あるいは直交モードがアクティブであるかどうかを決定する。関節モードがアクティブである場合、明確に画定された明白な経路が直交空間に存在しないことになるため、アルゴリズム７００は、７５５で最短距離手法に頼る。しかしながら７３４で直交モードがアクティブである場合、７３６でロボットの現在の状態が記録され、また、アルゴリズム７００は、次に７３８で、ロボットの動きを予測するための十分なサンプルが記録されたかどうかを決定する。既に考察したように、線６５０または円弧６６５の予測には、通常、高品質推定のための最少数のサンプルが必要であるが、実際の数は、ロボット１１０に利用することができる動きオプション、ロボットの制御アルゴリズム７００およびサンプル中の雑音の量によって決まる。十分なサンプルを入手することができない場合、アルゴリズム７００は、７５５で最短距離手法に頼る。十分なサンプルが存在する場合、アルゴリズム７００は、７４０で、様々な動きオプション（例えば直線、円、等々）をサンプルに最も良好に当てはめ、これらのサンプルを達成するために、既知の開始状態に基づいて必要な逆運動解を計算し、また、逆運動解の各セットをロボット関節位置の実際の履歴に対して比較する。７４２で、計算された逆運動解の１つのセットがロボット位置の実際の履歴に十分に類似している場合、アルゴリズム７００は、ロボット１１０が関連する経路を実行しているであろうことの高い確信を有する。次に７２５で、予想された逆運動解が図７Ｂの経路Ａに引き渡され、上で考察したジョグモードと同様、特異性および衝突がチェックされる。計算された経路がロボット位置の実際の履歴に十分に類似していない場合、アルゴリズム７００は、図７Ｂの経路Ｂで説明される最短距離手法に頼る。アルゴリズム７００のすべての経路が完了すると、実行は最初の７０２に戻り、コントローラ１２０から新しいデータが取得される。
【００３０】
[0036]通常、図７Ｂの経路Ａ、ＢおよびＣでは、所望のオーバライド速度を安全な値にクランプするために使用されるクランピング係数が計算される。経路Ａでは、クランピング係数は、７６０で１００％に設定され、次に７６４で、予想された位置の特異性がチェックされる。ロボットコントローラ１２０は、各ロボット特異性を別様に処理することができ、また、何が起こるかを決定するには、一般的にはコントローラ１２０からの情報が不十分であるため、ロボットの作業空間１５１におけるこれらの位置では、ロボットの動きはその予測がより困難であり、したがって特異性は重要である。さらに、特異性の周囲ではロボットの関節は極めて速やかに移動することができ、衝突の防止をますます困難にする。これらの危険を軽減するために、ロボットの関節が過剰に速く移動するのを防止し、また、反応するための追加時間をアルゴリズム７００に提供するべく、特異性の周囲ではロボットの速度が７６６で自動的に減速される。
【００３１】
[0037]経路Ａに沿った特異性のチェックが完了すると、アルゴリズム７００は、次に７６８で、予想されたロボット位置に対する衝突の可能性をチェックする。何らかの可能性が検出されると、７７０で、差し迫った衝突までの時間に基づいてクランピング係数が低減される。衝突が起こり得るまでの時間が短いほど、より大きく低減される。非線形関数を含む様々な関数プロファイルが可能であるが、図７Ｂには線形関数の最も単純な事例が示される。衝突チェックが完了すると、次にクランピング係数が最後のブロックに引き渡され、そこでクランピング係数を使用してロボット１１０の所望のオーバライド速度がクランプされる。クランピング係数が１００％であり、特異性すなわち衝突が検出されなかったことを意味する場合、７８０でオーバライド速度が所望の速度に設定される。クランピング係数が低減されている場合、所望の速度は、所望の速度がこの値を超える場合に限り、この値にクランプされる。これは、その速度が「安全」であると見なされる場合、すなわちその速度がクランピング係数未満である場合、オペレータ１３５はロボット１１０を所望の速度でジョグ操作することができることを意味する。アルゴリズム７００は、次にステップ７９０で最初（ステップ７０２）に戻る。
【００３２】
[0038]本発明の好ましい実施形態を参照して説明したが、本発明の精神を逸脱することなく、様々な変更および／または修正が本発明に対して加えられ得ることは容易に理解されよう。例えば航空宇宙産業における航空機の部品に取り組んでいるロボットの制御が参照されるが、本発明は、衝突に巻き込まれ得る部分を有する任意の移動ロボットに適用することができる。一般に、本発明には、以下の特許請求の範囲によってのみ制限されることが意図される。
【図１】
2020516475.tif 000003
【図２】
2020516475.tif 000004
【図３】
2020516475.tif 000005
【図４】
2020516475.tif 000006
【図５】
2020516475.tif 000007
【図６】
2020516475.tif 000008
【図７Ａ】
2020516475.tif 000009
【図７Ｂ】
2020516475.tif 000010
【国際調査報告】
2020516475.tif 000011
2020516475.tif 000012
2020516475.tif 000013
2020516475.tif 000014
2020516475.tif 000015