(58)【調査した分野】(Int.Cl.,DB名)
前記外乱推定部が、ロボットを駆動するサーボモータの回転速度及びトルクの少なくともいずれか一方を用いて前記推定値を求める、請求項1に記載のロボット制御装置。
前記外乱推定部は、ロボットの動作プログラムから取得したワークの質量を表すパラメータ値を用いて前記推定値を求める、請求項1または2に記載のロボット制御装置。
前記衝突判定部は、ロボット及びハンドの状態が前記領域の内側から外側に移動した後は、前記位置判定部の判定結果によらずに前記推定値と前記第2の閾値とを比較する、請求項1〜3のいずれか1つに記載のロボット制御装置。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を、図面を参照して詳細に説明する。各図面において、同様の構成要素には同様の符号が付与されている。なお、以下の記載は、特許請求の範囲に記載される発明の技術的範囲や用語の意義等を限定するものではない。
【0012】
図1〜
図15を参照して、本発明の1つの実施形態のロボット制御装置について説明する。
図1は、本実施形態の例示的なロボット制御装置1を含むロボットシステムSの構成を示すブロック図である。本例のロボットシステムSは、種々のワークをロボットの動作によって搬送する自動化システムである。本例のロボットシステムSがワークを搬送する工程を以下ではワーク搬送工程と称することがある。
図1のように、本例のロボットシステムSは、アームA及びハンドHを備えたロボットRを含んでおり、本例のロボット制御装置1は、ロボット2の各部の動作を制御する機能を有している。さらに、本例のロボット制御装置1は、ロボットRの可動部に加わる外乱の推定値を算出する外乱推定機能、及びロボットRの可動部が障害物と衝突したかどうかを判定する衝突判定機能等を有している。
【0013】
図2は、
図1中のロボット2の外観を示す側面図である。
図2のように、本例のロボット2は、複数のリンクLが直列に連結された構造を有するアームAと、アームAの先端部に取り付けられたハンドHと、を備えた垂直多関節ロボットである。ロボット2の軸数は図中の例のみに限定されない。
図2のように、本例のハンドHは、搬送対象のワークWを把持可能な一対のグリッパG,Gを備えている。以下では、各グリッパGにおけるワークWとの接触面を含む所定の部分を各グリッパGの「接触部C」と称することがある。ただし、各グリッパGにおけるワークWとの接触面のみが各グリッパGの接触部Cとされる場合もある。そして、本例のロボット2は、予め用意された動作プログラムPGに従って、ハンドHで把持したワークWを所定の作業空間内の第1の位置から第2の位置まで搬送するように動作する。ここで、ロボット2の作業空間内の第1の位置は、例えば、当該作業空間内に設置されたテーブルTの上面であり、第2の位置は、例えば、当該作業空間内に設置された他のテーブルの上面である。
【0014】
再び
図1を参照すると、本例のロボット2のアームAは、その軸数に応じた個数のサーボモータ21を備えており、各サーボモータ21はロータリーエンコーダ等のセンサ(図示しない)を内蔵している。各サーボモータ21のセンサは、各サーボモータ21の回転方向、回転角度、及び回転速度等のフィードバック情報を生成してロボット制御装置1の外乱推定部12に送信する。また、本例のハンドHは、一対のグリッパG,Gが互いに近接する方向、及び互いに離反する方向に移動するように一対のグリッパG,Gを駆動する駆動部22を備えている。本例の駆動部22は、油圧又は空気圧のような流体圧によって一対のグリッパG,Gを駆動する。
【0015】
引き続き
図1を参照すると、本例のロボット制御装置1は、記憶部10、パラメータ取得部11、外乱推定部12、遷移認識部13、領域定義部14、位置判定部15、衝突判定部16、及び動作指令部17等を備えている。ロボット制御装置1の各部について以下に詳細に説明する。本例の記憶部10は、ROM(Read Only Memory)及びRAM(Random Access Memory)等を含む記憶装置である。本例の記憶部10には、予め用意されたロボットの動作プログラムPGに加えて、後述する第1の閾値v
1及び第2の閾値v
2等が格納されている。
【0016】
続いて、本例のパラメータ取得部11は、ロボット2の可動部に加わる外乱の推定計算に使用される種々のパラメータのうちのワークWに関連するパラメータの数値を動作プログラムPGから取得する機能を有している。ワークWに関連する上記のパラメータを以下では「ワークパラメータ」と称することがある。ワークパラメータには、少なくともワークWの重量が含まれる。必要に応じて、ワークパラメータには、ワークWの質量中心及び慣性行列等がさらに含まれうる。
図1のように、パラメータ取得部11が取得した数値は、外乱推定部12に送信される。なお、ワークパラメータの数値は、動作プログラムPGから取得される代わりに、種々の入力装置を介して使用者から入力されてもよい。この場合、ワークパラメータの数値は種々の信号の形態で入力されうる。例えば、ハンドHがワークWを把持していない状態は、質量0、質量中心0、慣性行列0という形態で入力されうる。
【0017】
続いて、本例の外乱推定部12は、パラメータ取得部11から取得したワークパラメータの数値、サーボモータ21に内蔵されたセンサ又は他の検出器から取得したフィードバック情報、及びロボット2のリンクLの力学的パラメータの数値等に基づいて、ロボット2に加わる外乱の推定値を算出する機能を有している。上記のフィードバック情報には、サーボモータ21の回転速度及び駆動トルクのうちの少なくともいずれか一方が含まれる。ただし、上記のフィードバック情報は、外乱の推定計算に有用な情報であれば、いかなる情報であってもよい。上記の力学的パラメータには、例えば、ロボット2の各リンクLの位置関係、質量、質量中心、及び慣性行列等が含まれうる。
図1のように、外乱推定部12が算出した外乱の推定値は、衝突判定部16に送信される。
【0018】
続いて、本例の遷移認識部13は、ワークWの荷重がロボット2に伝達されない状態、及びワークWの全荷重がハンドHを介してロボットに伝達される状態のいずれか一方から他方への状態遷移が発生することを認識する機能を有している。前者の状態の一例として、ロボット2のハンドHが、テーブルTの上面に置かれたワークWを把持しているものの、ハンドHからワークWに鉛直方向上向きの力が一切作用していない状態が挙げられる(例えば、
図7を参照)。また、後者の状態の一例として、ロボット2のハンドHがワークWを把持しており、かつ、ワークWがテーブルTの上面から鉛直方向上向きに離間している状態が挙げられる(例えば、
図8を参照)。
【0019】
本例の遷移認識部13は、動作プログラムPGを解析することによって、上記の状態遷移が発生することを認識するとともに、上記の状態遷移が開始するタイミング及び位置等のデータを生成する。
図1のように、遷移認識部13が生成したデータは、領域定義部14に送信される。なお、遷移認識部13は、動作プログラムPGを解析する代わりに、使用者が種々の入力装置を用いて入力した信号を解析することによって、上記の状態遷移の発生を認識することもできる。さらに、遷移認識部13は、外乱推定部12に入力されたワークパラメータの数値を解析することによって、上記の状態遷移の発生を認識することもできる。
【0020】
続いて、本例の領域定義部14は、ロボット2及びハンドHの状態を表す空間内に、後述する閾値切替領域Rを定義する機能を有している。上記の空間のことを以下では状態空間と称することがある。本例の状態空間は、典型的には、ハンドHの三次元位置を表す座標空間である。ただし、本例の状態空間は、三次元空間の次元に加えて、或いは三次元空間の次元の代わりに、時間の次元やロボット2の各軸周りの回転角度の次元、ハンドHのグリッパGの可動位置の次元その他ロボット2及びハンドHの状態を規定しうるあらゆる変数の次元を含んでいてもよい。また、本例の閾値切替領域Rは、ロボット2及びハンドHの状態空間の一部を占める部分領域であり、上記の状態遷移が開始する時点でのロボット2及びハンドHの状態を内包した部分領域である。本例の閾値切替領域Rは、典型的には、上記の状態遷移が開始する時点でハンドHにおける各グリッパGの接触部Cが占める三次元空間を内包した三次元空間である。このような閾値切替領域Rの典型例が、
図6〜
図10等に示されている。本例の領域定義部14は、閾値切替領域Rの位置とハンドHの現在位置の比較が容易になるように、ロボット2のベースBに対して固定された直交三次元座標系で表されるハンドHの任意の点の位置を状態として採用して、閾値切替領域Rを定義することが好ましい。ただし、ロボット2がライントラッキングを実行する場合、すなわち、ロボット2がコンベア上を移動するワークWに追従して動作する場合には、ワークWに対して固定されかつロボット2に対して移動する直交三次元座標系で表されるハンドHの任意の点の位置を採用してもよい。さらに、領域定義部14は、空間の次元に加えて時間の次元を含む状態空間に閾値切替領域を定義してもよい。この場合には、例えば、所定の時間が経過したら消滅する閾値切替領域Rが定義されうる。
【0021】
位置判定部15及び衝突判定部16に関連して後述するように、本例では、ハンドHにおける各グリッパGの接触部Cが閾値切替領域Rの内側に位置しているかどうかに応じて、ロボット2の衝突判定に使用される閾値が切り替えられる。閾値切替領域Rの形状は
図6〜
図10等に図示された例のみに限定されない。ただし、後述する位置判定部15による判定が容易になるように、閾値切替領域Rは半球又は直方体等の簡素な形状を有することが好ましい。閾値切替領域Rの形状に関するデータは予め記憶部10等に格納されうる。ただし、領域定義部14は、予め定めた形状の閾値切替領域Rをロボット2及びハンドHの状態空間内に定義する代わりに、ハンドHがワークWを把持した後のハンドHの移動経路を加味した形状の閾値切替領域Rを定義することもできる(
図14及び
図15を参照)。この場合、領域定義部14は、動作プログラムPGを解析してハンドHの移動経路を特定する。さらに、領域定義部14は、使用者がユーザインタフェースを介して指定した形状の閾値切替領域Rを定義することもできる。
図1のように、領域定義部14によって定義された閾値切替領域Rに関するデータは、位置判定部15に送信される。
【0022】
続いて、本例の位置判定部15は、ロボット2及びハンドHの現在の状態が、上記の状態空間において閾値切替領域Rの内側に位置しているかどうかを判定する機能を有している。より具体的に、本例の位置判定部15は、ハンドHにおける各グリッパGの接触部Cが現時点で閾値切替領域Rの内側に位置しているかどうかを判定しうる。この際、位置判定部15は、ロボット2のベースBに対して固定された任意の直交三次元座標系を用いて、ハンドHの各点の位置と閾値切替領域Rの各点の位置とを比較する。そして、位置判定部15は、それら位置を比較した比較結果に基づいて、各グリッパGの接触部Cが閾値切替領域Rの内側に位置しているかどうかを判定する。この際、位置判定部15は、ハンドHの現在位置を特定するための情報として、サーボモータ21のセンサから取得した回転角度に関する情報を参照しうる。ただし、位置判定部15は、サーボモータ21のセンサ又は他の検出器からハンドHの現在位置を示す別の情報を取得することもできる。なお、位置判定部15が採用する判定方法は上記の方法に限定されず、閾値切替領域Rの形状及び配置等に応じた最適な判定方法が選択されうる。
図1のように、位置判定部15による判定結果は、衝突判定部16に送信される。
【0023】
続いて、本例の衝突判定部16は、外乱推定部12が算出した外乱の推定値と、予め定めた閾値と、を比較することによって、ロボット2が何らかの障害物に衝突したかどうかを判定する機能を有している。この際、本例の衝突判定部16は、ロボット2及びハンドHの現在の状態が、上記の状態空間内で閾値切替領域Rの内側に位置している場合には、外乱の推定値と第1の閾値とを比較して衝突の有無を判定する。他方、本例の衝突判定部16は、ロボット2及びハンドHの現在の状態が、上記の状態空間内で閾値切替領域Rの内側に位置していない場合には、外乱の推定値と、第1の閾値とは異なる第2の閾値と、を比較して衝突の有無を判定する。より具体的に、本例の衝突判定部16は、ハンドHにおける両グリッパG,Gの接触部C,Cが閾値切替領域Rの内側に位置している場合には(
図7及び
図8を参照)、外乱の推定値と第1の閾値v
1とを比較して衝突の有無を判定する。他方、衝突判定部16は、両グリッパG,Gの接触部C,Cが閾値切替領域Rの内側に位置していない場合、すなわち、いずれか一方又は両方のグリッパG,Gの接触部C,Cが少なくとも部分的に閾値切替領域Rの外側に位置している場合には(
図9及び
図10を参照)、外乱の推定値と、第1の閾値v
1とは異なる第2の閾値v
2と、を比較して衝突の有無を判定する。第1の閾値v
1及び第2の閾値v
2は、予め記憶部10等に格納されている。これら閾値v
1,v
2は一定の数値であってもよいし、ロボット2の各部の姿勢及び移動速度等に応じて動的に変化する数値であってもよい。
図1のように、衝突判定部16による判定結果は、動作指令部17に送信される。
【0024】
このように、本例の衝突判定部16は、ロボット2及びハンドHの現在の状態が状態空間内で閾値切替領域Rの内側に位置しているかどうかに応じて衝突判定に用いる閾値を切り替えている。従って、上記の状態遷移が進行する期間中の衝突判定に適した閾値、及びそれ以外の期間中の衝突判定に適した閾値を試験的に求めておき、前者の閾値を第1の閾値v
1として記憶部10等に格納するとともに後者の閾値を第2の閾値v
2として記憶部10等に格納しておけば、上記の状態遷移が進行する間に、ロボット2が障害物と衝突したかどうかの誤判定を防止することができる。このようにして求めた第1の閾値v
1及び第2の閾値v
2が、
図4のグラフ中に例示されている。ただし、第1の閾値v
1及び第2の閾値v
2の大小関係は、図中の例のみに限定されない。以上のように、本実施形態のロボット制御装置1によれば、上記の状態遷移が進行する期間中に、衝突判定部16による誤判定を防止することができる。
【0025】
再び
図1を参照すると、本例の動作指令部17は、衝突判定部16の判定結果に対応するロボット2の動作指令を生成する機能を有している。より具体的に、動作指令部17は、外乱の推定値が閾値以上であるとの判定結果を受信した場合には、ワークWの搬送を停止すべきとの動作指令、又は障害物を回避してワークWを搬送すべきとの動作指令を生成する。他方、動作指令部17は、外乱の推定値が閾値未満であるとの判定結果を受信した場合には、動作プログラムPGに従ってワークWの搬送を継続すべきとの動作指令を生成する。
図1のように、動作指令部17によって生成された動作指令は、ロボット2におけるアームAのサーボモータ21及びハンドHの駆動部22に送信される。
【0026】
次に、
図1のロボットシステムSによるワーク搬送工程について説明する。
図3は、
図1のロボットシステムSによる例示的なワーク搬送工程の手順を示すフローチャートである。
図3のように、ステップS301では、ロボット制御装置1の外乱推定部12が、ロボット2に加わる外乱の推定を開始する。より具体的に、ステップS301では、外乱推定部12が、ロボット2のサーボモータ21に加わる外乱トルクの推定計算を開始する。これ以降、外乱推定部12は、外乱トルクの推定計算を所定の周期で繰り返し実行する。
図4は、外乱推定部12が算出した外乱トルクの推定値(T
d)の時間変化C41の一例を示すグラフである。
図4のグラフには、衝突判定部16による衝突判定に使用される閾値の時間変化C42が示されている。
【0027】
本例の外乱推定部12は、サーボモータ21の駆動トルク(T
0)から加速トルク(T
a)及び摩擦トルク(T
f)を減じて外乱トルクの推定値(T
d)を算出しうる。すなわち、外乱推定部12は、以下の数式(1)を用いて外乱トルクの推定値(T
d)を算出しうる。
【数1】
ここで、加速トルク(T
a)は、ロボット2の可動部のイナーシャに起因するトルクであり、摩擦トルク(T
f)は、ロボット2の可動部に作用する摩擦力に起因トルクである。
図4のグラフには、外乱トルクの推定値(T
d)の絶対値が示されている。
【0028】
図4から分かるように、外乱トルクの推定値(T
d)のグラフは、時間t
4以前の期間及び時間t
5以降の期間では概ね一定であるものの、時間t
4と時間t
5の間では急激なピークを形成している。このようなピークが形成される理由について以下に説明する。先ず、
図4のグラフ中の時間t
4は、ハンドHのグリッパG,GがテーブルT上のワークWを把持する時点を表している。ただし、この時点では、ハンドHグリッパG,GからワークWに鉛直方向上向きの力が作用していない。すなわち、この時点では、ワークWの荷重がロボット2に伝達されていない。それにもかかわらず、本例の外乱推定部12は、時間t
4以降は、ワークWの全荷重がハンドHを介してロボット2に伝達されているものと見做して外乱トルクの推定値(T
d)を算出している。より具体的に、本例の外乱推定部12は、時間t
4以降は、ロボット2の質量とワークWの質量の合計値から得られる加速トルク(T
a)を用いて外乱トルクの推定値(T
d)を算出している(上記の数式(1)を参照)。従って、外乱トルクの推定値(T
d)は、ハンドHが時間t
4でワークWを把持してからワークWがテーブルTを離れるまでの間は、実際にサーボモータ21に加わる外乱トルクから大きく乖離することになる。その結果、外乱トルクの推定値(T
d)の時間変化C40のグラフが時間t
4と時間t
5の間で急激なピークを形成することになる。
【0029】
再び
図3を参照すると、ステップS302では、ロボット2が、テーブルTに置かれたワークWに対してハンドHを位置決めする。
図5は、ステップS302が完了した時点におけるロボット2及びワークWの状態を示す側面図である。
図5から分かるように、ステップS302では、一対のグリッパG,Gの各々の接触部CがワークWの側面と対向するように、ハンドHがワークWに対して位置決めされる。ステップS302が完了した時点は、
図3のグラフ中の時間t
1に対応している。
図4から分かるように、時間t
1を含む一定の期間中は、予め定めた第2の閾値v
2が、衝突判定部16による衝突判定に使用されている。次いで、ステップS303では、ロボット制御装置1の遷移認識部13が、ワークWの荷重がロボット2に伝達されない状態からワークWの全荷重がハンドHを介してロボット2に伝達される状態への状態遷移が発生することを認識する。
【0030】
次いで、ステップS304では、ロボット制御装置1の領域定義部14が、所定の形状の閾値切替領域Rをロボット2の作業空間内に定義する。
図6は、ステップS304が完了した時点におけるロボット2及びワークWの状態を示す側面図である。
図6から分かるように、ステップS304で定義された閾値切替領域Rは、テーブルT上のワークWが占める空間を内包するようにテーブルT上に仮想的に配置された半球状の形態を有している。ステップS304が完了した時点は、
図3のグラフ中の時間t
2に対応している。次いで、ステップS305では、ロボット制御装置1の衝突判定部16が、それまで衝突判定に使用していた第2の閾値v
2を、第2の閾値v
2よりも大きい第1の閾値v
1に切り替える。ステップS305が完了した時点は、
図3のグラフ中の時間t2と概ね等しい時間t
3に対応している。
【0031】
次いで、ステップS306では、ハンドHが一対のグリッパG,GでワークWを把持する。
図7は、ステップS306が完了した時点におけるロボット2及びワークWの状態を示す側面図である。ステップS306が完了した時点は、
図3のグラフ中の時間t
4に対応している。上述した通り、この時点では、ワークWの荷重がロボット2に伝達されていない。次いで、ステップS307では、ロボット2が、ワークWを鉛直方向上向きに持ち上げる。
図8は、ステップS307が完了した時点におけるロボット2及びワークWの状態を示す側面図である。
図8から分かるように、ステップS307が完了した時点では、ワークWがテーブルTの上面から離間しているので、ワークWの全荷重がハンドHを介してロボット2に伝達されている。ステップS307が完了した時点は、
図3のグラフの時間t
5に対応している。
【0032】
次いで、ステップS308では、ロボット制御装置1の位置判定部15が、ハンドHにおける各グリッパGの接触部Cが閾値切替領域Rの境界を通過したかどうかを判定する。そして、いずれか一方又は両方のグリッパG,Gの接触部C,Cが少なくとも部分的に閾値切替領域Rの境界を通過したら(ステップS308のYES)、後述するステップS309が実行される。他方、どちらのグリッパG,Gの接触部C,Cも閾値切替領域Rの境界を通過していない場合は(ステップS308のNO)、同様の判定が繰り返し実行される。次いで、ステップS309では、ロボット制御装置1の衝突判定部16が、それまで衝突判定に使用していた第1の閾値v
1を第2の閾値v
2に切り替える。
図9は、ステップS309が完了した時点におけるロボット2及びワークWの状態を示す側面図である。ステップS309が完了した時点は、
図3のグラフの時間t
6に対応している。次いで、ステップS310では、ロボット2がワークWを上述した第2の位置まで搬送する。
図10は、ステップS310が実行されている最中のロボット2及びワークWの状態を示す側面図である。
図10に示される時点は、
図3のグラフの時間t
7に対応している。
【0033】
以上のように、本実施形態のロボット制御装置1によれば、ハンドHにおける両グリッパG,Gの接触部C,Cが閾値切替領域Rの内側に位置しているかどうかに応じて衝突判定用の閾値が切り替えられる。従って、ワークWの荷重がロボット2に伝達されない状態(
図7を参照)からワークWの全荷重がハンドHを介してロボット2に伝達される状態(
図8を参照)への状態遷移が進行する間に、ロボット2が障害物と衝突したかどうかの誤判定を防止することができる。すなわち、本実施形態のロボット制御装置1によれば、上記の状態遷移が進行する間に、ロボット2が障害物と衝突したかどうかの誤判定を防止することができる。なお、
図5〜
図10等に図示した例では、ロボット2がテーブルTに置かれたワークWを持ち上げる動作について説明したものの、本実施形態のロボット制御装置1は、ロボット2がハンドHで把持したワークWをテーブルTに置くように動作する場合も、同様の手順でロボット2の衝突判定を実行しうる。
【0034】
次に、
図1のロボットシステムSによるワーク搬送工程の変形例について説明する。
図11は、
図1のロボットシステムSによる他のワーク搬送工程の手順を示すフローチャートである。
図3と
図11を比較すると分かるように、
図11におけるステップS1101〜ステップS1109の手順は、
図30におけるステップS301〜ステップS309の手順と同様である。また、
図11のステップS1102、S1104、S1106、S1107、及びS1109が完了した時点におけるロボット2及びワークWの状態は、
図5、
図6、
図7、
図8、及び
図9にそれぞれ示される状態と同様である。さらに、
図11のステップS1102、S1104、S1105、S1106、S1107、及びS1109が完了した時点は、
図4のグラフ中の時間t
1、t
2、t
3、t
4、t
5、及びt
6にそれぞれ対応している。そのため、以下では、
図11のステップS1110〜S1111の手順のみについて説明する。
【0035】
図11のように、ステップS1110では、ロボット制御装置1の領域定義部14が、ステップS1104で既に定義した閾値切替領域Rを作業空間から消去する。
図12は、ステップS1110が完了した時点におけるロボット2及びワークWの状態を示す側面図である。次いで、ステップS1111では、ロボット2がワークWを上述した第2の位置まで搬送する。
図13は、ステップS1111が実行されている最中のロボット2及びワークWの状態を示す側面図である。このように、本例では、いずれか一方又は両方のグリッパG,Gの接触部C,Cが少なくとも部分的に閾値切替領域Rの境界を通過したら(ステップS1108のYES)、それまで衝突判定に使用されていた第1の閾値v
1が第2の閾値v
2に切り替えられるとともに(ステップS1109を参照)、ステップS1104で既に定義された閾値切替領域Rが消去される(ステップS1110を参照)。従って、一旦ステップS1110が実行された後は、ロボット制御装置1の衝突判定部16が、位置判定部15の判定結果によらずに第2閾値v
2を使用して衝突判定を実行することになる。これにより、いずれか一方又は両方のグリッパG,Gの接触部C,Cが閾値切替領域Rの外側に移動してから閾値切替領域Rの内側に再び移動するような場合であっても、ロボット2が障害物と衝突したかどうかをワーク搬送工程の全期間を通じて正確に判定できるようになる。
【0036】
次に、上記のステップS304及びステップS1104で定義される閾値切替領域Rの変形例について説明する。
図14及び
図15は、閾値切替領域Rの変形例をロボット2及びワークWと一緒に示す側面図である。
図14は、
図7と同様に、
図4のグラフ中の時間t
4におけるロボット2及びワークWの状態を示しており、
図15は、
図8と同様に、
図4のグラフ中の時間t
5におけるロボット2及びワークWの状態を示している。
図14のように、本例の閾値切替領域Rは、テーブルT上のワークWが占める空間を内包するようにテーブルT上に仮想的に配置された柱状の形態を有している。このような閾値切替領域Rの形状は、ハンドHがワークWを把持した後に移動する方向を考慮して決定されている。より具体的に、本例では、ハンドHがテーブルT上のワークを把持した後に鉛直方向の上向きに移動することを考慮して(
図15を参照)、テーブルTの上面から鉛直方向上向きに延在する柱状の形態を有する閾値切替領域Rを定義している。
【0037】
このようにして閾値切替領域Rの形状を決定すれば、閾値切替領域Rの寸法を縮小してワークWの寸法に近づけることができるので、上記の状態遷移が進行する間も衝突判定部16による誤判定を防止できることに加えて、上記の状態遷移の前後における衝突判定部の判定精度を向上させることができる。なお、閾値切替領域Rの形状は、領域定義部14によって自動的に決定されてもよいし、種々のユーザインタフェースを介して使用者によって指定されてもよい。前者の場合には、領域定義部14が動作プログラムPGを解析してハンドHの移動経路を特定しうる。
【0038】
本発明は、上記の実施形態のみに限定されるものではなく、特許請求の範囲に記載された範囲内で種々改変されうる。例えば、上記の実施形態では流体圧駆動方式のハンドが例示されているものの、本発明のロボット制御装置によって制御されるロボットは、サーボモータによって駆動されるサーボ駆動式のハンドを備えてもよいし、磁力又は真空吸着力等によってワークを吸着する吸着式のハンドを備えてもよい。