(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-28
(45)【発行日】2022-08-05
(54)【発明の名称】産業ロボットマニピュレータのための教示モード衝突回避システムおよび方法
(51)【国際特許分類】
B25J 19/06 20060101AFI20220729BHJP
B25J 9/22 20060101ALI20220729BHJP
【FI】
B25J19/06
B25J9/22 A
(21)【出願番号】P 2019555922
(86)(22)【出願日】2018-01-31
(86)【国際出願番号】 US2018016141
(87)【国際公開番号】W WO2018190936
(87)【国際公開日】2018-10-18
【審査請求日】2021-02-01
(32)【優先日】2017-10-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-04-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504306714
【氏名又は名称】バテル・メモリアル・インスティテュート
【氏名又は名称原語表記】BATTELLE MEMORIAL INSTITUTE
【住所又は居所原語表記】505 King Avenue, Columbus, OH 43201-2693 (US)
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】クラスニー,ダレン
(72)【発明者】
【氏名】シュミット,ザカリー
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特開2013-136123(JP,A)
【文献】特開平05-265533(JP,A)
【文献】特開平05-345286(JP,A)
【文献】特開2010-120139(JP,A)
【文献】特開2012-056026(JP,A)
【文献】特開2012-223845(JP,A)
【文献】国際公開第2016/010614(WO,A1)
【文献】米国特許出願公開第2016/0052136(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ロボットシステムであって、前記ロボットシステムは、
物体を含む環境における実際の経路に沿って工具または部品を運ぶように設計されたマニピュレータアームを含むロボットであって、前記物体、前記ロボット、および、前記工具または部品は衝突幾何形状体を構成する、ロボットと、
教示ペンダントであって、前記教示ペンダントに入力されるオペレータ入力を受け取るように構成されたオペレータインタフェースを含み、それによりオペレータが前記実際の経路に沿って前記ロボットの動きを直接制御することができる、教示ペンダントと、
ロボットコントローラであって、前記ロボットおよび前記環境の仮想表現を含み、
前記実際の経路に沿った前記ロボットの前記動きの履歴を記録し、
前記教示ペンダントに入力された前記入力および前記ロボットの前記動きの前記履歴に基づいて、前記ロボットの予測経路を前記仮想表現で展開し、
前記オペレータが前記教示ペンダントを使用して前記ロボットを手動で制御する間、前記予測経路に沿った前記ロボットの未来の動きを予想し、前記予測経路上の予測されたロボットの位置における前記ロボットと前記衝突幾何形状体の間のチェックを行うことによって実時間衝突チェックを実施する
ように構成されたロボットコントローラと
を備え、
前記アームは工具を有し、
前記コントローラは、
前記工
具の可能性ある経路を計算し、
各可能性ある経路に沿った予測ロボット位置を前記実際の経路に沿った実際のロボット位置の履歴に対して比較し、前記可能性ある経路のうちの1つが前記実際の経路に十分に類似していることが見出された場合に、前記可能性ある経路のうちの前記1つを前記予測経路として指定して、前記ロボットの未来の動きを前記予測経路に沿って予想し、前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近することが予測されると前記ロボットの速度を減速し、それによって衝突を防止する
ことによって、前記ロボット
がプログラムの各ステップを実行する際に前記工具の動きを予測するようにさらに構成された、
システム。
【請求項2】
請求項1に記載のシステムであって、前記オペレータインタフェースは前記オペレータ入力を受け取るためのキーを有する、システム。
【請求項3】
請求項2に記載のシステムであって、前記コントローラは、前記オペレータがジョグモードで前記キーを使用して前記ロボットを直接制御する間、衝突が防止されるように、前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近すると前記ロボットの速度を減速させるようにさらに構成された、システム。
【請求項4】
請求項2に記載のシステムであって、前記ロボットは少なくとも1つの関節を有し、前記キーのうちの1つは前記少なくとも1つの関節を制御するように構成された、システム。
【請求項5】
請求項2に記載のシステムであって、前記アームは工具を運び、前記工具は工具中心点を有し、前記コントローラは、前記オペレータが直交モードで前記ロボットを直接制御する際に前記ロボットの前記動きを予測するようにさらに構成され、前記キーは、直交空間における前記工具中心点を制御するように構成された、システム。
【請求項6】
請求項1に記載のシステムであって、前記ロボットは、プログラムステップおよび加速パラメータを有するプログラムに従って移動するように構成され、前記コントローラは、現在のプログラムステップの現在の目的位置、前記ロボットの速度および前記加速パラメータに基づいて、前記予測経路に沿った前記ロボットの前記動きを予測し、前記ロボットの何らかの構成要素が前記予測経路に沿って前記衝突幾何形状体に接近すると前記ロボットの前記速度を減速させ、それによって衝突が防止されるようにさらに構成された、システム。
【請求項7】
請求項
1から6のうちの何れか一項に記載のシステムであって、前記教示ペンダントはキーを有し、前記コントローラは、
前記オペレータが前記キーを押している限り、前記プログラムのステップを実行し続け、
前記オペレータが前記キーを押している間、前記ロボットと、前記予測経路に沿った衝突の最も近いポイントとの間の距離を計算し、
計算された前記距離に比例して前記ロボットの速度を減速させる
ようにさらに構成された、システム。
【請求項8】
請求項2に記載のシステムであって、前記コントローラは、
前記オペレータが前記キーのうちの1つを押している間、前記ロボットと、前記予測経路に沿った衝突の最も近いポイントとの間の距離を計算し、
計算された前記距離に比例して前記ロボットの速度を減速させる
ようにさらに構成された、システム。
【請求項9】
マニピュレータアームを有するロボットと、キーを有するオペレータインタフェースを含む教示ペンダントと、前記ロボットおよび環境の仮想表現を含むロボットコントローラとを含むロボットシステムを動作させるための方法であって、前記方法は、
衝突幾何形状体を構成する物体を含む前記環境における実際の経路に沿って前記ロボットを移動させるステップと、
前記教示ペンダントに入力されるオペレータ入力を受け取るステップであって、それによりオペレータが前記実際の経路に沿って前記ロボットの動きを直接制御することができる、ステップと、
前記ロボットの前記動きの履歴を記録するステップと、
前記教示ペンダントに入力された前記入力および前記ロボットの前記動きの前記履歴に基づいて、前記ロボットの予測経路を前記仮想表現で展開するステップと、
前記オペレータが前記教示ペンダントを使用して前記ロボットを手動で制御する間、前記予測経路に沿った前記ロボットの未来の動きを予想し、前記予測経路上の予測されたロボットの位置における前記ロボットと前記衝突幾何形状体の間のチェックを行うことによって実時間衝突チェックを実施するステップと
を含み、
前記方法は、前記ロボットを、プログラムステップを有するプログラムに従って移動させるステップをさらに含み、
前記方法
は、
前記ロボットの工
具の可能性ある経路を計算し、
各可能性ある経路に沿った予測ロボット位置を前記実際の経路に沿った実際のロボット位置の履歴に対して比較し、前記可能性ある経路のうちの1つが前記実際の経路に十分に類似していることが見出された場合に、前記可能性ある経路のうちの前記1つを前記予測経路として指定して、前記ロボットの動きを前記予測経路に沿って未来に向けて予想し、前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近することが予測されると前記ロボットの速度を減速することによって衝突を防止する
ことによって、前記ロボットが前記プログラムの各ステップを実行する際に前記ロボットの前記動きを予測するステップをさらに含む
、
方法。
【請求項10】
請求項
9に記載の方法であって、前記オペレータがジョグモードで前記キーを使用して前記ロボットを直接制御する間、前記ロボットが前記衝突幾何形状体に接近すると前記ロボットの速度を減速させ、衝突を防止するステップとをさらに含む方法。
【請求項11】
請求項
9に記載の方法であって、前記ロボットは関節を含み、前記オペレータ入力を受け取るステップと、前記キーのうちの1つを使用して前記関節を制御するステップとをさらに含む方法。
【請求項12】
請求項
9に記載の方法であって、前記マニピュレータアームが工具中心点を有する工具を有し、前記オペレータが直交モードで前記ロボットを直接制御する際に前記ロボットの前記動きを予測するステップと、直交空間における前記工具中心点を制御するステップとをさらに含む方法。
【請求項13】
請求項
9に記載の方法であって、
前記ロボットをプログラムステップおよび加速パラメータを有するプログラムに従って移動させるステップと、
現在のプログラムステップの現在の目的位置、前記ロボットの速度および前記加速パラメータに基づいて、前記ロボットの前記動きを予測するステップと、
前記ロボットの何らかの構成要素が前記衝突幾何形状体に接近すると前記ロボットの前記速度を減速させて衝突を防止するステップと
をさらに含む方法。
【請求項14】
請求項
9から
13のうちの何れか一項に記載の方法であって、
前記オペレータが前記キーを押している限り、プログラムのステップを実行し続けるステップと、
前記オペレータが前記キーを押している間、前記ロボットと、前記予測経路に沿った衝突の最も近いポイントとの間の距離を計算するステップと、
計算された前記距離に比例して前記ロボットの速度を減速させるステップと
をさらに含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、2017年10月20日に出願された米国特許出願第15/789,032号、および2017年4月13日に出願された、「Teach Mode Collision Avoidance System and Method for Industrial Robotic Manipulators(産業ロボットマニピュレータのための教示モード衝突回避システムおよび方法)」という名称の米国仮出願第62/485,159号の利益を主張するものである。この出願のすべての内容は、参照により本明細書に組み込まれる。
【0002】
[0002]本発明は産業ロボットの分野に関し、より詳細には製造環境で動作するロボットのためのコントローラであって、ロボットがその作業空間における周囲の物体と衝突するのを防止するコントローラに関する。
【背景技術】
【0003】
[0003]ロボットは、典型的な製造環境において、もはや珍しい存在ではない。産業ロボットは、製品を製造するために多くの産業で使用される。例えば航空宇宙産業では、ロボットは、翼アセンブリおよび胴体などの構成要素に取り組むべく使用されている。現在では、様々なエンドエフェクタおよび工具を備えたロボットが、製造環境の周囲でワークピースをかなりの速度で移動させている。同じ製造環境において使用されるロボットが多くなればなるほど、ロボットまたはその工具あるいはエンドエフェクタと、ロボットの作業空間における他の物体、さらには同じロボットの他の部分との間の衝突の可能性が高くなる。いかなる衝突も、衝突に関わったロボットおよび他の物体に対する重大な損傷の原因になり、そのロボットに関連するすべての製造プロセスにおける望ましくない多額の修理費およびダウンタイムをもたらし得る。
【0004】
[0004]ロボットが新しい動作のためにプログラムされ、また、ロボットが最初に作業空間でオンラインにされると、ロボットが既に動作中である場合より高い衝突の危険が存在する。ロボットは、最初は、ロボットおよび作業空間のコンピュータ支援設計(CAD)モデルを使用してオフラインでプログラムされる。ロボットの工具の工具中心点(TCP)の経路は、ロボットが製造操作を遂行し得るようにプログラムされる。しかしながら作業空間の模擬CADモデルは、実際の作業空間と厳密に同じではないことがあり得る。この問題に対処するために、ほとんどの産業ロボットマニピュレータは、手動モードすなわち「教示」モードを提供し、オペレータは、教示ペンダントまたは同様の遠隔制御デバイスを使用してロボットを制御することができる。教示モード動作は、「タッチアップ」、すなわちオフラインで作成されたロボットプログラムを調整して、オフラインプログラミングソフトウェアおよび完成作業空間によって使用される模擬CADモデル間の揺れを考慮するためにしばしば使用される。教示モード動作は、新しいロボット作業空間のコミッショニング中に頻繁に使用され、人間のオペレータがロボットを直接制御するため、作業空間におけるロボット、ツーリング、ワークピースおよび他の構成要素間の衝突の著しく高い危険をもたらす。航空宇宙などのいくつかの産業では、再加工には費用が掛かり、また、製造スケジュールが厳しいため、ワークピースの価値が高いと、衝突の危険が許容不可能に高くなる。
【0005】
[0005]衝突による損傷を防止するために、いくつかのロボット製造者は、ロボットの関節軸の各々に引き出される電流を監視して、衝突の可能性があることを示す規定量を超える電流を各関節アクチュエータが引き出すことを検出する衝突検出方法を提供する。しかしながら正規の加速および減速も同じくより大きい電流を引き出すことになり、通常、オペレータが手回しで電流監視感度を調整しなければならないため、この手法は完全には信頼することができない。ロボット製造者によって提供される別のオプションは、
図1に示されるように、ゾーンに基づく監視特徴10であり、ユーザは、単純な多角形のキープ-インおよびキープ-アウト領域20を画定することができる。動作中、ロボットコントローラ30は、教示モードにある間、および通常の動作中の両方で、ロボット50が作業表面60に対して移動する際に、ロボット50の様々な要素40を監視し、ロボットの動きがキープ-アウト領域20に入るか、あるいはキープ-イン領域(図示せず)から離れると、直ちにロボット50を停止させる。しかしながらこのゾーンに基づく手法は、この手法によって監視することができる環境のタイプが限定される。航空宇宙産業においては、翼アセンブリまたは胴体などの湾曲した大きい構成要素が一般的であり、それは、単純なゾーンに基づく手法は、教示モード動作の間、ロボットの衝突を回避するためには適切ではないことを意味する。また、多くの航空機は、入口ダクトのような特徴を有し、ロボットエンドエフェクタは、これらのダクトの内側での操作(例えばコーティングまたはデコーティング操作)のために使用され得る。画定され得るゾーンの数に対する実際的な制限が存在し、また、各ゾーンが単純な凸状多面体であり、孔のような複雑性をサポートしないため(すなわちトーラスはオプションではない)、このような領域をゾーンに基づく手法で保護することはほとんど不可能であろう。センサに基づく他の手法は、ロボットに接触センサを設けなければならないことがあり、これは、ロボットのすべての部分を保護するには費用禁止的であり得る。3Dレーザスキャナのような非接触センサを使用してロボットおよびその環境が走査され得るが、幾何形状体の部分がセンサから隠される場合に生じる「陰」のため、常にロボットのすべての部分を見ることは不可能であり得る。
【発明の概要】
【発明が解決しようとする課題】
【0006】
[0006]当分野においては、教示モードの間、複雑な形状の周囲の物体とのロボットの衝突を防止する必要性が存在する。
【課題を解決するための手段】
【0007】
[0007]センサに基づく手法およびゾーンに基づく手法の両方の限界に対処するために、教示ペンダントコマンド、ロボットの現在の状態、およびロボットの過去の位置の最近の履歴に基づいてロボットの動きを予測することを含む新しい手法が開発された。この手法では、教示モード動作の間、ロボットの動きを監視し、かつ、衝突を予測して防止するために、パーソナルコンピュータがロボットコントローラに接続される。ロボットの実際の作業空間の正確な表現である環境の模擬表現が使用される。この模擬表現は、三次元(3D)CADモデル、3D走査データまたはその両方の組合せからのものであってもよい。環境の模擬表現が使用され、オペレータが教示ペンダントを使用してロボットを制御する間、衝突が差し迫っているかどうかを決定するために、ロボットの現在の位置と予測位置の間の衝突チェックが実施される。ロボットシステムは、教示モードの間、衝突を回避することができる。教示モードは、好ましくは、ジョグモード、ステップモードおよびランモードを含むいくつかのサブモードを有し、また、システムは、3つのすべてのモードで動作する。
【0008】
[0008]ジョグモードでは、オペレータは、教示ペンダント上のボタンを押してロボットの各関節を移動させることができる。別法として、オペレータは、ボタンを使用して工具を作業空間の周囲に移動させることも可能である。いずれの場合においても、ソフトウェアは、ボタンの押下を「聴いて」、ロボットが数ミリ秒(この時間期間の長さは設定可能である)の時間スパンにわたってどこへ移動するかを予測し、かつ、ロボットの予測経路上で衝突チェックを実施する。衝突が予測されると、ロボットのオーバライド速度がオペレータによって設定された望ましい速度から減速される。ロボットがそのまま障害物にさらに接近すると、ロボットのオーバライド速度は完全停止に至るまで減速し続ける。しかしながらオペレータがロボットを衝突することにはならない任意の方向へ移動させる場合(例えば壁が障害物である場合、壁に沿って、あるいは壁から離れる方向に)、ロボットの速度が加速され、指示された方向への動きを許容する。
【0009】
[0009]通常、ステップモードでは、オペレータは、「ステップ」ボタンを押してロボットをステップモードにすることにより、教示ペンダントプログラムを介してステップすることができ、次に、「前進」または「後退」キーによって、所望の方向に一度にプログラム中の1ステップずつ、または命令行ずつ実行するようにロボットに命令する。このモードでは、ソフトウェアは、ロボットの現在の状態およびロボットの最近の履歴を使用してロボットの動きを予測する。教示ペンダントプログラムにはロボットの未来の行動に関する完全な情報が含まれているが、この情報は必ずしもロボット製造者によってアクセスが可能にはなされていない。例えばロボットが過去の数ミリ秒(この時間期間の長さは設定可能である)にわたって円弧を描いて移動した場合、ソフトウェアは、動きはこの円形経路に沿って継続することになることを予測することになる。この経路は、次に、数秒間(これも設定可能である)にわたって予想され、衝突が事前チェックされることになる。予測された衝突は、すべてロボットのオーバライド速度を減速させることになる。しかしながらロボットの動きが予測経路から逸脱し始めると、ソフトウェアは、その予測に対する「確信を失う」ことになり、また、ロボットの任意の部分と衝突幾何形状体の間の最も近い距離に頼り始めることになり、衝突幾何形状体は、環境またはロボット自体の別の部分であってもよい(例えばロボットは、ロボットが自身のベース中に保持している工具にぶつかることがあり得る)。衝突までの最も近い距離が所定の第1の閾値(設定可能)の真下まで短くなると、ロボットのオーバライド速度がオペレータによって設定された所望の速度から減速され、ロボットが所定の第2のもっと小さい閾値に到達すると、最終的にはロボットを停止させる。より短い閾値距離に到達する前にロボットが停止されると、オペレータは、シフトキーおよび/またはデッドマンを解放することによってプログラムを停止する。オペレータは、次に、ジョグキーを使用して手動で後退させるか、あるいは別のステップモードコマンドを恐らくは逆に実行することができる。ロボットがより短い距離閾値よりもさらに接近すると、ユーザは、シフトキーおよびデッドマンを同じく保持している間、教示ペンダントGUI上の仮想ボタンを押すことによってオーバライドモードを起動しなければならない。好ましくはパスワード保護が使用される。これは、オーバライドモードに入るようにソフトウェアに命令する。このモードでは、ロボットの最高速度が著しく減速され、オペレータによる衝突状態からの極めて低速での後退を許容する。ロボットが衝突状態から抜け出ると、教示ペンダントGUIを使用してオーバライドモードが不能にされ、正規の動作を再開することができる。
【0010】
[0010]ランモードでは、オペレータは、ステップモードと同様の教示ペンダントプログラムを実行することができるが、ロボットは、ユーザが教示ペンダントキーを解放することによって実行を停止するまで連続的に命令行を実行する。さもなければ予測および衝突回避は、上で説明したステップモードと全く同じように働く。
【0011】
[0011]より詳細には、本発明はロボットシステムを対象とし、ロボットシステムは、好ましくは、物体を含む環境中の実際の経路に沿って移動させるためのマニピュレータアームを含むロボットを備え、物体およびロボットは衝突幾何形状体を構成する。ロボットは、好ましくは、ベースと、工具を保持するように構成されたマニピュレータアームとを有する。ベースは、統合軸と呼ばれることもある、マニピュレータアームを環境内の異なる位置に配置するように構成される回転または並進関節などの1つまたは複数の関節を備えることができる。マニピュレータアームは、工具を経路に沿った所望の位置に置くことができる少なくとも1つの関節を有する。ロボットは、教示ペンダント中に入力されるオペレータ入力を受け取るように構成されたオペレータインタフェースを含む教示ペンダントを備える。インタフェースは、キーが付いたキーパッドを有する。オペレータは、ロボットのマニピュレータアームの動きを実際の経路に沿って直接制御することができ、あるいはキーを使用して命令を入力することによって任意の追加統合軸を制御することができる。
【0012】
[0012]ロボットシステムは、教示モードにある間、衝突を回避することができる。教示モードは、好ましくは、ジョグモード、ステップモードおよびランモードを含むいくつかのサブモードを有し、また、システムは、3つのすべてのモードで動作する。
【0013】
[0013]一実施形態では、コントローラは、オペレータがジョグモードでキーを使用してロボットを直接制御する間、衝突が防止されるよう、ロボットの何らかの構成要素が衝突幾何形状体に接近するとロボットの速度を減速させるように構成される。同様に、コントローラは、オペレータが直交モードでロボットを直接制御する場合、ロボットの動きを予測するように構成され、キーは、直交空間における工具中心点を制御するように構成される。
【0014】
[0014]別の実施形態では、ロボットは、プログラムステップおよび加速パラメータを有するプログラムに従って移動するように構成される。コントローラは、さらに、現在のプログラムステップの現在の目的位置、ロボットの速度および加速パラメータに基づいて、予測経路に沿ったロボットの動きを予測するとともに、衝突が防止されるよう、ロボットが予測経路に沿って衝突幾何形状体に接近するとロボットの速度を減速させるように構成される。
【0015】
[0015]別の実施形態では、教示ペンダントはキーを有し、また、コントローラは、オペレータがキーを押している限り、プログラムのステップを実行し続けるように構成される。オペレータがキーを押している間、ロボットと、予測経路に沿った衝突の最も近いポイントとの間の距離が計算され、また、計算された距離に比例してロボットの速度が減速される。
【0016】
[0016]動作中、マニピュレータアームを有するロボットと、追加関節を備えることができるベースと、オペレータインタフェースを有する教示ペンダントと、コンピュータおよび関連するハードウェアおよびソフトウェアを有する、ロボットおよび環境の仮想表現を含むロボットコントローラとを含むロボットシステムは、衝突を回避するための以下の方法を使用する。衝突幾何形状体を構成する物体を含む環境中の実際の経路に沿ってマニピュレータアームが移動される。オペレータ入力が教示ペンダント中に入力され、それによりオペレータは、ロボットの動きを実際の経路に沿って直接制御することができる。ロボットの動きの最近の履歴が記録される。教示ペンダント中に入力された入力、およびロボットの動きの最近の履歴に基づいてロボットの予測経路が計算される。オペレータが教示ペンダントを使用して手動でロボットを制御する間、ロボットの構成要素と衝突幾何形状体の間の実時間衝突チェックが予測経路を使用して実施される。
【0017】
[0017]また、方法は、好ましくは、オペレータがジョグモードでキーを使用してロボットを直接制御する間、ロボットが環境中の物体に接近するとロボットの速度を減速させ、衝突を防止するステップを同じく含む。ロボットは、プログラムステップおよび加速パラメータを有するプログラムに従って移動され、また、ロボットの動きは、現在のプログラムステップの現在の目的位置、ロボットの速度および加速パラメータに基づいて予測される。衝突が防止されるよう、ロボットの何らかの構成要素が環境中の物体に接近するとロボットの速度が減速される。
【0018】
[0018]別の実施形態では、方法は、プログラムステップを有するプログラムに従ってロボットを移動させるステップと、ロボットがプログラムの各ステップを実行する際にロボットの動きを予測するステップとを含む。ロボットの工具中心点の可能性ある経路が計算され、また、必要なロボット位置が実際の位置の履歴に対して比較される。経路がロボットの実際の動きと十分に類似していることが見出されると、その経路に基づいて、ロボットの動きが未来に向けて予想される。衝突が防止されるよう、ロボットの何らかの構成要素が環境中の物体に接近することが予測されるとロボットの速度が減速される。ロボットと、ロボットと衝突幾何形状体の間の衝突の最も近いポイントとの間の距離が計算され、また、計算された距離に比例してロボットの速度が減速される。
【0019】
[0019]本発明の追加目的、特徴および利点は、同様の参照数表示はいくつかの図面における対応する部分を表す図面に関連してなされる、好ましい実施形態についての以下の詳細な説明からより容易に明らかになるであろう。
【図面の簡単な説明】
【0020】
【
図1】[0020]従来技術による、ロボットおよびロボットコントローラを含むロボットシステムの略図である。
【
図2】[0021]本発明の好ましい実施形態による、ロボットを含むロボットシステムの略図である。
【
図3】[0022]
図2のロボットシステムからの教示ペンダントの大写し図である。
【
図4】[0023]本発明によるロボットの一部を示す図である。
【
図5】[0024]本発明による、ワークピースの近傍のロボットを示す図である。
【
図6】[0025]本発明の好ましい実施形態による、ロボットの一部の動きを示す図である。
【
図7A】[0026]本発明の好ましい実施形態によるフローチャートである。
【
図7B】本発明の好ましい実施形態によるフローチャートである。
【発明を実施するための形態】
【0021】
[0027]本明細書においては本発明の詳細な実施形態が開示される。しかしながら開示される実施形態は、様々な代替形態で具体化され得る本発明の例示的なものにすぎないことを理解されたい。図は必ずしもスケール通りではなく、いくつかの特徴は、特定の構成要素の詳細を示すために誇張され、あるいは最小化されていることがあり得る。したがって本明細書において開示される特定の構造的および機能的詳細は、本開示を制限するものとして解釈してはならず、当業者に本発明を使用するべく教示するための単なる体表的な土台として解釈されるべきである。図についての上記説明は、図面をより完全に理解するために提供されたものである。しかしながら実施形態は、示される厳密な構造および構成に限定されないことを理解されたい。以下では様々な実施形態の設計および使用が詳細に考察されるが、本発明は、広範囲にわたる様々な文脈で具体化され得る多くの発明概念を提供することを認識されたい。本明細書において考察される特定の態様および実施形態は、本発明を構築し、かつ、使用する方法の単なる例証にすぎず、本発明の範囲を制限するものではない。本開示における本発明の可能な実施形態および文脈のすべてを含むことは不可能であるか、あるいは非実際的であろう。本開示を読めば、当業者には本発明の多くの代替実施形態が明らかであろう。
【0022】
[0028]最初に
図2を参照すると、本発明の好ましい実施形態によるロボットシステム100全体が示される。システム100は、ロボット110、ロボットコントローラ120、オペレータ135によって使用され得る教示ペンダント130、およびパーソナルコンピュータ140の4つの主要構成要素を含む。ロボット110は、作業空間すなわち作業環境151における、工場の床などの表面155に取り付けられたベース150を含む。示されていないが、ベースが1つまたは複数の並進または回転ステージを備える他の構成も可能である。下部サポート156は、矢印157によって示されるように、下部サポート156がベース150に対して第1の関節158の周りを回転することができるようにベース150の上に取り付けられる。上部サポート160は、矢印163によって示されるように、下部サポート156に対して第2の関節164の周りを回転するように取り付けられる。上部サポート160は、下部サポート156を前腕リンク165に接続する。前腕リンク165は、矢印167によって示されるように、第3の関節166の周りを回転するよう、ピボット可能に取り付けられ、また、アームサポート168に対して伸びるか、または後退するように同じく設計される。したがってロボット110は6自由度で移動することができ、また、ロボット110は、前腕165の手関節で一致する3つの回転関節を同じく含むが、このような関節は
図2では明確に見ることはできない。この構造によれば、エンドエフェクタまたは工具170は、アクチュエータ172などの様々なアクチュエータによって任意の所望の位置に置かれ得る。上記に基づいて、ロボット110は、複数の構成要素、例えばベース150、前腕165および工具170を含むことを理解されたい。工具170などのロボット110の構成要素は、物体177を含む環境151中の実際の経路175に沿って様々な所望の位置181、182、183、184、185および186へ移動される。ロボット110および物体177は衝突幾何形状体を構成する。ロボットコントローラ120はコンピュータを含むことができ、あるいは関連するハードウェアおよびソフトウェア(個別にラベルが振られていない)を有するコンピュータ140に接続され得る。好ましくはソフトウェアはコンピュータ140上で走り、ロボット110の関節位置および関節速度を監視する。本発明に従って修正され得る、商用的に入手することができるソフトウェアプログラムは、BattelleのPathPlan(商標)ソフトウェアパッケージである。
【0023】
[0029]
図3に最も良好に示されるように、教示ペンダント130はオペレータインタフェース200を含み、いくつかのキーは、前進キー210および後退キー220を含む。教示モード動作の間、ジョグモード、ステップモードおよびランモードなどのロボット110を制御するいくつかのモードが提供される。ジョグモードでは、ロボット110は、オペレータインタフェース200中の教示ペンダントキーを使用して手動で動き回され得る。個別の関節158、164、166(ならびにアーム165の手関節で一致する関節)は関節モード制御で移動され、あるいはロボットの工具中心点170は、直交モード制御で直交空間中を移動され得る。他の教示ペンダントモードを同じく使用して、ステップモードおよびランモードを含む教示ペンダント130を使用してロボット110が制御され得る。ステップモードでは、オペレータ135は、教示ペンダント130上の前進キー210または後退キー220を押すことによって所望の方向にロボットプログラムの1行を実行することができる。ランモードでは、前進キーまたは後退キー210、220を押さえつけることにより、キー210、220が解放されるまで複数の命令行が連続的に実行される。
【0024】
[0030]ジョグモードでは、教示ペンダントキーがオペレータ135によって押されることを制御アルゴリズムが監視し、かつ、それに応じてロボットの動きを予測する。関節モードでは、アルゴリズムは、ロボット110の個別のリンクがどこを移動することになるかを予測するために、指定された軸の命令された関節速度を統合することによってロボットの動きを予想する。
図4は、ロボットアームの仮想表現を示したものである。ベース300はアーム310をピボットで支持し、アーム310はエンドエフェクタ320を支持する。エンドエフェクタ320の位置および動きは、部分的にはアーム310およびエンドエフェクタ320の長さ、およびそれらの間に形成される角度に基づいて予測され得る(順運動学)。
【0025】
[0031]直交モードでは、アルゴリズムは、
図5に示されるように、直交空間におけるロボットの動きの経路を予想する。
図5は、ワークピース450の近傍にアーム410などのマニピュレータアームを有するロボット400の仮想表現を示したものである。エンドエフェクタ470は、初期の位置に実線で示される。コントローラ120は、さらに、オペレータ135がジョグモードでオペレータインタフェース200のキーを使用してロボット400を直接制御する間、衝突が防止されるよう、アーム410が衝突幾何形状体(すなわちワークピース450)に接近するとアーム410の速度を減速させるように構成される。ロボット400がロボットのy-軸に沿って直線で移動するように命令されると(例えば教示ペンダント130上の+Yキーを使用して)、アルゴリズムはこの経路を計算し、かつ、それを数秒の未来に向けて予想する。矢印480によって示されるこの予想された経路に沿ったロボットの位置がワークピース450または別の障害物などの何かと衝突する場合、ロボット400のレンダリングがコンピュータ140上に提示されて衝突の可能性を警告し、また、アルゴリズムは、ある範囲のオーバライド速度を介してロボット400の速度の所望の速度からの減速を開始する。ロボット400がワークピース450に接近し続けると、ロボット400が停止するまでオーバライド速度が減速される。予測された衝突を含まない動き(ワークピースに接近し得るが、ワークピースには向かわない、例えば直線の端に沿った動きを含む)は、アルゴリズムにロボット400の速度を加速して所望の値に戻させることになる。例えばワークピース450から遠ざかるロボット400の移動は所望の速度で実施されることになり、一方、ワークピース450に向かうロボット400の移動はオーバライド速度で実施されることになる。
【0026】
[0032]
図2および
図6を参照すると、コントローラ120は、実際の経路650に沿った工具170の動き、およびロボット110の関連する位置の最近の履歴を記録し、ペンダント130中に入力された入力および工具170の動きの最近の履歴に基づいて、工具170のための予測経路660を仮想表現で展開し、また、オペレータ135が教示ペンダント130を使用してロボット110を手動で制御する間、予測経路660と衝突幾何形状体の間の実時間衝突チェックを実施するように構成される。ステップモードでは、オペレータ135は、各ステップまたはプログラム行を教示ペンダントプログラムから逐次実行し、各ポイント611、612におけるロボットの位置をチェックすることができる。このモードの間、教示ペンダントプログラムコマンドへのアクセスが不可能である場合、
図6に示されるように、ロボットの動きの最近の履歴を使用し、かつ、その履歴を予測された動きに対して比較し、それによりアルゴリズムの予測に対する確信レベルを決定する経路予測手法が使用される。例えば610における教示ペンダントプログラムにおいて、初期時間t
0に等しい時間における直近のプログラムステップNで開始し、アルゴリズムは、ロボットの工具中心位置が2つのステップ611および612によって実際の経路650に沿って、670で示される、雑音をフィルタ除去するための各ステップ間の少なくともδ距離だけ移動されるまで待機する。アルゴリズムが3つのステップのための十分なデータを有すると、アルゴリズムは、工具中心点サンプルを当てはめるために最適適合円弧および最適適合直線線分を計算する。アルゴリズムは、次に、各サンプルポイントで逆運動学を実施し、計算された工具中心点位置を達成するために必要なロボット110の関節角度θを決定する。初期関節角度θ
0はt
0において知られているため、無矛盾逆運動解のみがt
1およびt
2に対して選択される(例えば肘がフリップされる代替構成は考察から除外され得る)。次にロボット位置の履歴が計算された位置に対して比較され、類似性測度が決定される。とりわけ実際のロボットデータと計算されたロボットデータの間に異なる数のサンプルが存在する場合、速度が変化し得る2つの一時的シーケンスの間の類似性を測定するために広く使用されている動的時間伸縮法などの方法を同じく使用してロボット位置の履歴が解析され得る。2つのデータストリームが十分に類似している場合、選択された経路を使用して、数秒だけ未来のロボットの動きが予測され、また、衝突がチェックされる。衝突が予測される場合、ロボットの速度が所望の速度からオーバライド速度へ、あるいはある範囲のオーバライド速度を介して減速される。
図6では、例えば円形経路660は、線形経路665と比較すると最も良好にデータと適合するが、実際のロボット位置履歴が計算された逆運動学解と十分に類似している場合、アルゴリズムはこの経路のみを選択することになる。これが真である場合、アルゴリズムは、円形経路660が真の経路である高い確信を有する。
【0027】
[0033]アルゴリズムが十分なデータサンプルを有するまで、あるいはアルゴリズムがロボットの経路の確信のある予測に到達し得ない場合(例えば工具中心位置経路が線形予想経路665または円形予想経路660のいずれとも一致しない関節移動をロボットが実行している場合)、ロボット110と衝突幾何形状体(ロボット110自体を含む)の間の最も近い距離を使用してロボットの速度が加減される。ロボット110が予め規定された閾値より近い場合、速度はゼロに向かって減速されることになる。ロボット110が第2のもっと小さい閾値より近くに接近すると、速度は、衝突の危険を除去するためにゼロに設定されるか、あるいは十分にゼロの近く(例えばオペレータにとってはデッドホールトのように見えるか、あるいは感じられる0.01%)に設定されることになる。ランモードでは、ロボットが動作している間、必ずしも十分なデータがロボット製造者によって明らかにされないため、経路予測は困難である。この理由により、アルゴリズムは、最も近い距離を利用して、ロボット110がその環境または自身と衝突するまでの近さの程度を追跡し、ステップモードおよびジョグモードのようにロボットのオーバライド速度を加減する。
【0028】
[0034]
図7Aおよび
図7Bは、衝突回避アルゴリズム700のためのフローチャートを示したものである。アルゴリズム700はループで動作し、ロボット状態データ(関節位置および速度、ボタン押下などの制御フラグ、プログラム実行フラグ、等々)が各サーボ時間ステップでロボットコントローラ120から取得される。フローチャート全体は、ループの1つの対話中に取られる行動を記述し、ステップ702で始まる。ロボット状態データが704で取得されると、ソフトウェアアルゴリズム700は、3D CADおよび/または3D走査データから生成された模擬環境に対してロボット110をチェックする。衝突が予測されると、アルゴリズムは、
図7Bのフローチャートの続きに示されるように、ステップ796でオーバライド速度Sを0にクランプすることによってロボット110を停止させる。衝突が予測されない場合、アルゴリズム700は、712で、コントローラ120からの論理フラグを使用して、オペレータ135が教示ペンダント130上でプログラムを走らせているかどうかを決定し、これは、ステップモードまたはランモードのいずれかを示すことになる。プログラムを走らせていない場合、オペレータ135はジョグモードを使用していることになり、その場合、アルゴリズム700は、教示ペンダントジョグボタン(例えばJ1+、J1-、等々であって、J1はロボットの第1の関節、すなわちベース、関節である)が押されているかどうかを決定する。714でどのキーも押されていない場合、ロボット110は、オーバライド速度を0にクランプすることによって停止状態で維持される(
図7Bの796における経路C)。ジョグボタンが押されている場合、アルゴリズム700は、716で、コントローラ120からの関連する論理フラグを調べることにより、関節モードが使用されているかどうかを決定する。間接モードでは、718で、コントローラデータから関節速度が測定される。直交モードでは、工具中心点が、オペレータ135によって、オペレータインタフェース200のキーを使用して直交空間中で直線的に移動される。キー押下は方向に変換され、次に逆運動学が実施され、予想されたロボット位置720を決定するために使用され得る計算された関節速度を決定する。コントローラ120は、オペレータ135が直交モードでロボット110を直接制御する際に、アームまたは工具中心点の動きを予測するように構成される。関節モードおよび直交モードのいずれにおいても、ロボットの位置は、720で、計算または測定された関節速度に基づいて、未来に向けて予想され、また、725でアルゴリズムの次の部分に引き渡される(
図7Bに示される)。
【0029】
[0035]
図7Aに示される他の主要な経路は、ステップモードおよびランモードのためのものである。ロボット110は、プログラムステップおよび加速パラメータを有するプログラムに従って工具170を移動させるように構成され、コントローラ120は、現在のプログラムステップの現在の目的位置、工具170の速度および加速パラメータに基づいて、予測経路660に沿った工具170の動きを予測するように構成される。コントローラ120は、さらに、衝突が防止されるよう、ロボット110の何らかの構成要素が予測経路660に沿って衝突幾何形状体に接近すると工具170の速度を減速させるように構成される。プログラムが走っている場合、アルゴリズム700は、730で、動きを計画するための十分なデータがロボットコントローラ120から入手することができるかどうかを決定する。これは、現在のプログラムステップ、ロボット110の現在の目的位置、加速および減速パラメータ、等々を含むことができる。この情報が入手可能である場合、ロボットの動きの正確な予測が可能であり、また、720でロボット位置が未来に向けて予想され、また、
図7Bに725で示されるように、アルゴリズムの経路Aの部分に引き渡される。730でこのデータを入手できない場合、これはより一般的な場合であり、アルゴリズム700は、732で、ステップモードまたはランモードのどのモードがアクティブであるかを決定する。ランモードがアクティブである場合、アルゴリズム700は755へ移動し、
図7Bの経路Bに示されるステップ742で、ロボット110、環境151および自身の間の衝突までの計算された最短距離の使用に頼る。ステップ742で最短距離が計算されると、744で、最短距離が構成閾値未満である場合、単調減少関数に基づいてクランピング係数が低減される。しかしながら732でステップモードがアクティブである場合、アルゴリズム700は、734で制御フラグに基づいて、関節モードがアクティブであるか、あるいは直交モードがアクティブであるかどうかを決定する。関節モードがアクティブである場合、明確に画定された明白な経路が直交空間に存在しないことになるため、アルゴリズム700は、755で最短距離手法に頼る。しかしながら734で直交モードがアクティブである場合、736でロボットの現在の状態が記録され、また、アルゴリズム700は、次に738で、ロボットの動きを予測するための十分なサンプルが記録されたかどうかを決定する。既に考察したように、線650または円弧665の予測には、通常、高品質推定のための最少数のサンプルが必要であるが、実際の数は、ロボット110に利用することができる動きオプション、ロボットの制御アルゴリズム700およびサンプル中の雑音の量によって決まる。十分なサンプルを入手することができない場合、アルゴリズム700は、755で最短距離手法に頼る。十分なサンプルが存在する場合、アルゴリズム700は、740で、様々な動きオプション(例えば直線、円、等々)をサンプルに最も良好に当てはめ、これらのサンプルを達成するために、既知の開始状態に基づいて必要な逆運動解を計算し、また、逆運動解の各セットをロボット関節位置の実際の履歴に対して比較する。742で、計算された逆運動解の1つのセットがロボット位置の実際の履歴に十分に類似している場合、アルゴリズム700は、ロボット110が関連する経路を実行しているであろうことの高い確信を有する。次に725で、予想された逆運動解が
図7Bの経路Aに引き渡され、上で考察したジョグモードと同様、特異性および衝突がチェックされる。計算された経路がロボット位置の実際の履歴に十分に類似していない場合、アルゴリズム700は、
図7Bの経路Bで説明される最短距離手法に頼る。アルゴリズム700のすべての経路が完了すると、実行は最初の702に戻り、コントローラ120から新しいデータが取得される。
【0030】
[0036]通常、
図7Bの経路A、BおよびCでは、所望のオーバライド速度を安全な値にクランプするために使用されるクランピング係数が計算される。経路Aでは、クランピング係数は、760で100%に設定され、次に764で、予想された位置の特異性がチェックされる。ロボットコントローラ120は、各ロボット特異性を別様に処理することができ、また、何が起こるかを決定するには、一般的にはコントローラ120からの情報が不十分であるため、ロボットの作業空間151におけるこれらの位置では、ロボットの動きはその予測がより困難であり、したがって特異性は重要である。さらに、特異性の周囲ではロボットの関節は極めて速やかに移動することができ、衝突の防止をますます困難にする。これらの危険を軽減するために、ロボットの関節が過剰に速く移動するのを防止し、また、反応するための追加時間をアルゴリズム700に提供するべく、特異性の周囲ではロボットの速度が766で自動的に減速される。
【0031】
[0037]経路Aに沿った特異性のチェックが完了すると、アルゴリズム700は、次に768で、予想されたロボット位置に対する衝突の可能性をチェックする。何らかの可能性が検出されると、770で、差し迫った衝突までの時間に基づいてクランピング係数が低減される。衝突が起こり得るまでの時間が短いほど、より大きく低減される。非線形関数を含む様々な関数プロファイルが可能であるが、
図7Bには線形関数の最も単純な事例が示される。衝突チェックが完了すると、次にクランピング係数が最後のブロックに引き渡され、そこでクランピング係数を使用してロボット110の所望のオーバライド速度がクランプされる。クランピング係数が100%であり、特異性すなわち衝突が検出されなかったことを意味する場合、780でオーバライド速度が所望の速度に設定される。クランピング係数が低減されている場合、所望の速度は、所望の速度がこの値を超える場合に限り、この値にクランプされる。これは、その速度が「安全」であると見なされる場合、すなわちその速度がクランピング係数未満である場合、オペレータ135はロボット110を所望の速度でジョグ操作することができることを意味する。アルゴリズム700は、次にステップ790で最初(ステップ702)に戻る。
【0032】
[0038]本発明の好ましい実施形態を参照して説明したが、本発明の精神を逸脱することなく、様々な変更および/または修正が本発明に対して加えられ得ることは容易に理解されよう。例えば航空宇宙産業における航空機の部品に取り組んでいるロボットの制御が参照されるが、本発明は、衝突に巻き込まれ得る部分を有する任意の移動ロボットに適用することができる。一般に、本発明には、以下の特許請求の範囲によってのみ制限されることが意図される。