(57)【特許請求の範囲】
【請求項１】
ワークを把持可能なハンドを備えたロボットを制御するロボット制御装置であって、
ロボットに加わる外乱の推定値を求める外乱推定部と、
ワークの荷重がロボットに伝達されない状態とワークの全荷重がハンドを介してロボットに伝達される状態との間の状態遷移が発生することを認識する遷移認識部と、
ロボット及びハンドの状態を表す状態空間内に、前記遷移認識部が認識した前記状態遷移の開始時点でのロボット及びハンドの状態を内包した領域を定義する領域定義部と、
ロボット及びハンドの状態が、前記領域定義部によって定義された前記領域の内側に位置しているかどうかを判定する位置判定部と、
前記推定値と所定の閾値とを比較することによって、ロボットが障害物に衝突したかどうかを判定する衝突判定部と、を有し、
前記衝突判定部は、ロボット及びハンドの状態が前記領域の内側に位置している場合には、前記推定値と第１の閾値とを比較し、ロボット及びハンドの状態が前記領域の外側に位置している場合には、前記推定値と、前記第１の閾値とは異なる第２の閾値と、を比較する、ロボット制御装置。
【請求項２】
前記外乱推定部が、ロボットを駆動するサーボモータの回転速度及びトルクの少なくともいずれか一方を用いて前記推定値を求める、請求項１に記載のロボット制御装置。
【請求項３】
前記外乱推定部は、ロボットの動作プログラムから取得したワークの質量を表すパラメータ値を用いて前記推定値を求める、請求項１または２に記載のロボット制御装置。
【請求項４】
前記衝突判定部は、ロボット及びハンドの状態が前記領域の内側から外側に移動した後は、前記位置判定部の判定結果によらずに前記推定値と前記第２の閾値とを比較する、請求項１〜３のいずれか１つに記載のロボット制御装置。
【請求項５】
前記領域の形状が、ハンドがワークを把持した後に移動する方向を考慮して決定される、請求項１〜４のいずれか１つに記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットが障害物と衝突したかどうかを判定する際の誤判定を防止するロボット制御装置に関する。
【背景技術】
【０００２】
従来のロボット制御装置のなかには、ロボットの可動部が障害物と衝突したかどうかを判定する衝突判定部を備えたものがある。従来のロボット制御装置の衝突判定部は、ロボットの可動部に加わる外乱トルクをサーボモータの回転速度及び駆動トルク等に基づいて推定し、外乱トルクの推定値を予め定めた閾値と比較することで、衝突の有無を判定している。これに関連して、特許文献１の衝突検出方法では、オブザーバが推定した外乱トルクから摩擦トルク及び重力の影響によるトルク等を減じることで、障害物との接触及び衝突による外乱トルクを算出している。
【０００３】
ところで、サーボモータの駆動トルクは、ロボットがワークを把持しているかどうかに応じて、ワークの重量の分だけ変化することが知られている。従って、外乱トルクを正確に推定するためには、推定計算に用いられる各種パラメータのうちのワークの重量に関連するパラメータの数値を、ロボットがワークを把持しているかどうかに応じて切り替える必要がある。さらに、ロボットがワークを把持していても、ワークの荷重がロボットに完全に伝達されない場合があることに留意すべきである。この点について、ロボットがテーブルに置かれたワークを持ち上げる場面を例に挙げて説明する。この場面では、ロボットがワークを把持していても、ワークがテーブルから反力を受けている間は、ワークの荷重がロボットに一切伝達されないか、或いはワークの荷重の一部のみがハンドを介してロボットに伝達されることになる。その後、ワークがロボットによって持ち上げられてテーブルの上面を離れる瞬間に、ワークの全荷重がハンドを介してロボットに伝達されることになる。
【０００４】
従って、従来の衝突判定方法では、ロボットがワークを把持してからワークがテーブルを離れるまでの間は、ロボットに加わる外乱を正確に推定することが困難であった。同様に、ロボットがワークをテーブルに置く場面では、ワークがテーブルに接触してからロボットがワークを解放するまでの間は、ロボットに加わる外乱を正確に推定することが困難であった。以上のように、従来の衝突検出方法では、ワークの荷重がロボットに伝達されない状態及びワークの全荷重がロボットに伝達される状態のいずれか一方から他方への状態遷移が進行する間は、ロボットに加わる外乱を正確に推定することが困難であった。そのため、上記の状態遷移が進行する間は、ロボットが障害物に衝突したかどうかを誤って判定してしまう虞があった。
【０００５】
これに関連して、ロボットの作業空間内の領域ごとに設定された別々の閾値を用いて衝突の有無を判定する衝突判定方法が公知である。例えば、特許文献２には、溶接ロボットが溶接工程を実行する領域内では、溶接電極の溶着判定用の閾値を使用し、それ以外の領域内では、アーム又はエンドエフェクタの衝突判定用の別の閾値を使用する衝突判定方法が提案されている。また、特許文献３には、サーボモータの位置、速度、及び加速度等から求めたモータトルク予想値が所定値を超える場合により大きい閾値を衝突判定に使用する衝突判定方法が提案されており、特許文献４には、ロボットの動作速度に応じた可変の閾値を衝突判定に使用する衝突判定方法が提案されている。しかし、これらの衝突判定方法を使用しても、上記の状態遷移が進行する間の誤判定を防止することはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−２４２４０６号公報
【特許文献２】特開平１１−２９１１９０号公報
【特許文献３】特開２０１３−１６９６０９号公報
【特許文献４】特開２００１−３５３６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ワークの荷重がロボットに伝達されない状態、及びワークの全荷重がハンドを介してロボットに伝達される状態のいずれか一方から他方への状態遷移が進行する間も、ロボットが障害物に衝突したかどうかの誤判定を防止できるロボット制御装置が求められている。
【課題を解決するための手段】
【０００８】
本発明の第１の態様によれば、ワークを把持可能なハンドを備えたロボットを制御するロボット制御装置であって、ロボットに加わる外乱の推定値を求める外乱推定部と、ワークの荷重がロボットに伝達されない状態とワークの全荷重がハンドを介してロボットに伝達される状態との間の状態遷移が発生することを認識する遷移認識部と、ロボット及びハンドの状態を表す状態空間内に、上記の状態遷移の開始時点でのロボット及びハンドの状態を内包した領域を定義する領域定義部と、ロボット及びハンドの状態が、領域定義部によって定義された領域の内側に位置しているかどうかを判定する位置判定部と、外乱の推定値と所定の閾値とを比較することによって、ロボットが障害物に衝突したかどうかを判定する衝突判定部と、を有し、衝突判定部は、ロボット及びハンドの状態が上記の領域の内側に位置している場合には、外乱の推定値と第１の閾値とを比較し、ロボット及びハンドの状態が上記の領域の外側に位置している場合には、外乱の推定値と、第１の閾値とは異なる第２の閾値と、を比較する、ロボット制御装置が提供される。
本発明の第２の態様によれば、第１の態様において、外乱推定部は、ロボットを駆動するサーボモータの回転速度及びトルクの少なくともいずれか一方を用いて外乱の推定値を求める、ロボット制御装置が提供される。
本発明の第３の態様によれば、第１又は第２の態様において、外乱推定部が、ロボットの動作プログラムから取得したワークの質量を表すパラメータ値を用いて外乱の推定値を求める、ロボット制御装置が提供される。
本発明の第４の態様によれば、第１〜第３の態様のいずれか１つにおいて、衝突判定部は、ロボット及びハンドの状態が上記の領域の内側から外側に遷移した後は、位置判定部の判定結果によらずに外乱の推定値と第２の閾値とを比較する、ロボット制御装置が提供される。
本発明の第５の態様によれば、第１〜第４の態様のいずれか１つにおいて、上記の領域の形状が、ハンドがワークを把持した後に移動する方向を考慮して決定される、ロボット制御装置が提供される。
【発明の効果】
【０００９】
本発明の第１の態様によれば、ロボット及びハンドの状態が領域定義部によって定義される領域の内側に位置するかどうかに応じて衝突判定用の閾値が切り替えられる。従って、第１の態様によれば、ワークの荷重がロボットに伝達されない状態及びワークの全荷重がハンドを介してロボットに伝達される状態のいずれか一方から他方への状態遷移が進行する間も、ロボットが障害物に衝突したかどうかの誤判定を防止することができる。
本発明の第２の態様によれば、外乱の推定計算に用いる情報を取得するための専用の検出器をロボット側に設ける必要が無くなるので、ロボット制御装置を含むロボットシステムの構成を簡素化することができる。
本発明の第３の態様によれば、ロボット制御装置がワークの質量に関する情報を外部から取得する必要が無くなるので、ロボット制御装置を含むロボットシステムの構成を簡素化することができる。
本発明の第４の態様によれば、ロボット及びハンドの状態が領域定義部によって定義される領域の外側に一旦遷移してから当該領域の内側に再び遷移するような場合であっても、ロボットが障害物に衝突したかどうかをワーク搬送工程の全期間を通じて正確に判定できるようになる。
本発明の第５の態様によれば、領域定義部によって定義される領域を縮小して、上記の状態遷移の開始時点でのロボット及びハンドの状態に近づけることができるので、上記の状態遷移が進行する間の衝突判定部による誤判定を防止できるとともに、上記の状態遷移の前後における衝突判定の精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の１つの実施形態によるロボット制御装置を含むロボットシステムの構成を示すブロック図である。
【図２】図１中のロボットの外観を示す側面図である。
【図３】図１のロボットシステムによる例示的なワーク搬送工程の手順を示すフローチャートである。
【図４】図１中の外乱推定部が算出した外乱トルクの推定値の時間変化の一例を示すグラフである。
【図５】図３中のステップＳ３０２が完了した時点におけるロボット及びワークの状態を示す側面図である。
【図６】図３中のステップＳ３０４が完了した時点におけるロボット及びワークの状態を示す側面図である。
【図７】図３中のステップＳ３０６が完了した時点におけるロボット及びワークの状態を示す側面図である。
【図８】図３中のステップＳ３０７が完了した時点におけるロボット及びワークの状態を示す側面図である。
【図９】図３中のステップＳ３０９が完了した時点におけるロボット及びワークの状態を示す側面図である。
【図１０】図３中のステップＳ３１０が実行されている最中のロボット及びワークの状態を示す側面図である。
【図１１】図１のロボットシステムによる他のワーク搬送工程の手順を示すフローチャートである。
【図１２】図１１中のステップＳ１１１０が完了した時点におけるロボット及びワークの状態を示す側面図である。
【図１３】図１１中のステップＳ１１１１が実行されている最中のロボット及びワークの状態を示す側面図である。
【図１４】閾値切替領域の変形例をロボット及びワークと一緒に示す第１の側面図である。
【図１５】閾値切替領域の変形例をロボット及びワークと一緒に示す第２の側面図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を、図面を参照して詳細に説明する。各図面において、同様の構成要素には同様の符号が付与されている。なお、以下の記載は、特許請求の範囲に記載される発明の技術的範囲や用語の意義等を限定するものではない。
【００１２】
図１〜図１５を参照して、本発明の１つの実施形態のロボット制御装置について説明する。図１は、本実施形態の例示的なロボット制御装置１を含むロボットシステムＳの構成を示すブロック図である。本例のロボットシステムＳは、種々のワークをロボットの動作によって搬送する自動化システムである。本例のロボットシステムＳがワークを搬送する工程を以下ではワーク搬送工程と称することがある。図１のように、本例のロボットシステムＳは、アームＡ及びハンドＨを備えたロボットＲを含んでおり、本例のロボット制御装置１は、ロボット２の各部の動作を制御する機能を有している。さらに、本例のロボット制御装置１は、ロボットＲの可動部に加わる外乱の推定値を算出する外乱推定機能、及びロボットＲの可動部が障害物と衝突したかどうかを判定する衝突判定機能等を有している。
【００１３】
図２は、図１中のロボット２の外観を示す側面図である。図２のように、本例のロボット２は、複数のリンクＬが直列に連結された構造を有するアームＡと、アームＡの先端部に取り付けられたハンドＨと、を備えた垂直多関節ロボットである。ロボット２の軸数は図中の例のみに限定されない。図２のように、本例のハンドＨは、搬送対象のワークＷを把持可能な一対のグリッパＧ，Ｇを備えている。以下では、各グリッパＧにおけるワークＷとの接触面を含む所定の部分を各グリッパＧの「接触部Ｃ」と称することがある。ただし、各グリッパＧにおけるワークＷとの接触面のみが各グリッパＧの接触部Ｃとされる場合もある。そして、本例のロボット２は、予め用意された動作プログラムＰＧに従って、ハンドＨで把持したワークＷを所定の作業空間内の第１の位置から第２の位置まで搬送するように動作する。ここで、ロボット２の作業空間内の第１の位置は、例えば、当該作業空間内に設置されたテーブルＴの上面であり、第２の位置は、例えば、当該作業空間内に設置された他のテーブルの上面である。
【００１４】
再び図１を参照すると、本例のロボット２のアームＡは、その軸数に応じた個数のサーボモータ２１を備えており、各サーボモータ２１はロータリーエンコーダ等のセンサ（図示しない）を内蔵している。各サーボモータ２１のセンサは、各サーボモータ２１の回転方向、回転角度、及び回転速度等のフィードバック情報を生成してロボット制御装置１の外乱推定部１２に送信する。また、本例のハンドＨは、一対のグリッパＧ，Ｇが互いに近接する方向、及び互いに離反する方向に移動するように一対のグリッパＧ，Ｇを駆動する駆動部２２を備えている。本例の駆動部２２は、油圧又は空気圧のような流体圧によって一対のグリッパＧ，Ｇを駆動する。
【００１５】
引き続き図１を参照すると、本例のロボット制御装置１は、記憶部１０、パラメータ取得部１１、外乱推定部１２、遷移認識部１３、領域定義部１４、位置判定部１５、衝突判定部１６、及び動作指令部１７等を備えている。ロボット制御装置１の各部について以下に詳細に説明する。本例の記憶部１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含む記憶装置である。本例の記憶部１０には、予め用意されたロボットの動作プログラムＰＧに加えて、後述する第１の閾値ｖ1及び第２の閾値ｖ2等が格納されている。
【００１６】
続いて、本例のパラメータ取得部１１は、ロボット２の可動部に加わる外乱の推定計算に使用される種々のパラメータのうちのワークＷに関連するパラメータの数値を動作プログラムＰＧから取得する機能を有している。ワークＷに関連する上記のパラメータを以下では「ワークパラメータ」と称することがある。ワークパラメータには、少なくともワークＷの重量が含まれる。必要に応じて、ワークパラメータには、ワークＷの質量中心及び慣性行列等がさらに含まれうる。図１のように、パラメータ取得部１１が取得した数値は、外乱推定部１２に送信される。なお、ワークパラメータの数値は、動作プログラムＰＧから取得される代わりに、種々の入力装置を介して使用者から入力されてもよい。この場合、ワークパラメータの数値は種々の信号の形態で入力されうる。例えば、ハンドＨがワークＷを把持していない状態は、質量０、質量中心０、慣性行列０という形態で入力されうる。
【００１７】
続いて、本例の外乱推定部１２は、パラメータ取得部１１から取得したワークパラメータの数値、サーボモータ２１に内蔵されたセンサ又は他の検出器から取得したフィードバック情報、及びロボット２のリンクＬの力学的パラメータの数値等に基づいて、ロボット２に加わる外乱の推定値を算出する機能を有している。上記のフィードバック情報には、サーボモータ２１の回転速度及び駆動トルクのうちの少なくともいずれか一方が含まれる。ただし、上記のフィードバック情報は、外乱の推定計算に有用な情報であれば、いかなる情報であってもよい。上記の力学的パラメータには、例えば、ロボット２の各リンクＬの位置関係、質量、質量中心、及び慣性行列等が含まれうる。図１のように、外乱推定部１２が算出した外乱の推定値は、衝突判定部１６に送信される。
【００１８】
続いて、本例の遷移認識部１３は、ワークＷの荷重がロボット２に伝達されない状態、及びワークＷの全荷重がハンドＨを介してロボットに伝達される状態のいずれか一方から他方への状態遷移が発生することを認識する機能を有している。前者の状態の一例として、ロボット２のハンドＨが、テーブルＴの上面に置かれたワークＷを把持しているものの、ハンドＨからワークＷに鉛直方向上向きの力が一切作用していない状態が挙げられる（例えば、図７を参照）。また、後者の状態の一例として、ロボット２のハンドＨがワークＷを把持しており、かつ、ワークＷがテーブルＴの上面から鉛直方向上向きに離間している状態が挙げられる（例えば、図８を参照）。
【００１９】
本例の遷移認識部１３は、動作プログラムＰＧを解析することによって、上記の状態遷移が発生することを認識するとともに、上記の状態遷移が開始するタイミング及び位置等のデータを生成する。図１のように、遷移認識部１３が生成したデータは、領域定義部１４に送信される。なお、遷移認識部１３は、動作プログラムＰＧを解析する代わりに、使用者が種々の入力装置を用いて入力した信号を解析することによって、上記の状態遷移の発生を認識することもできる。さらに、遷移認識部１３は、外乱推定部１２に入力されたワークパラメータの数値を解析することによって、上記の状態遷移の発生を認識することもできる。
【００２０】
続いて、本例の領域定義部１４は、ロボット２及びハンドＨの状態を表す空間内に、後述する閾値切替領域Ｒを定義する機能を有している。上記の空間のことを以下では状態空間と称することがある。本例の状態空間は、典型的には、ハンドＨの三次元位置を表す座標空間である。ただし、本例の状態空間は、三次元空間の次元に加えて、或いは三次元空間の次元の代わりに、時間の次元やロボット２の各軸周りの回転角度の次元、ハンドＨのグリッパＧの可動位置の次元その他ロボット２及びハンドＨの状態を規定しうるあらゆる変数の次元を含んでいてもよい。また、本例の閾値切替領域Ｒは、ロボット２及びハンドＨの状態空間の一部を占める部分領域であり、上記の状態遷移が開始する時点でのロボット２及びハンドＨの状態を内包した部分領域である。本例の閾値切替領域Ｒは、典型的には、上記の状態遷移が開始する時点でハンドＨにおける各グリッパＧの接触部Ｃが占める三次元空間を内包した三次元空間である。このような閾値切替領域Ｒの典型例が、図６〜図１０等に示されている。本例の領域定義部１４は、閾値切替領域Ｒの位置とハンドＨの現在位置の比較が容易になるように、ロボット２のベースＢに対して固定された直交三次元座標系で表されるハンドＨの任意の点の位置を状態として採用して、閾値切替領域Ｒを定義することが好ましい。ただし、ロボット２がライントラッキングを実行する場合、すなわち、ロボット２がコンベア上を移動するワークＷに追従して動作する場合には、ワークＷに対して固定されかつロボット２に対して移動する直交三次元座標系で表されるハンドＨの任意の点の位置を採用してもよい。さらに、領域定義部１４は、空間の次元に加えて時間の次元を含む状態空間に閾値切替領域を定義してもよい。この場合には、例えば、所定の時間が経過したら消滅する閾値切替領域Ｒが定義されうる。
【００２１】
位置判定部１５及び衝突判定部１６に関連して後述するように、本例では、ハンドＨにおける各グリッパＧの接触部Ｃが閾値切替領域Ｒの内側に位置しているかどうかに応じて、ロボット２の衝突判定に使用される閾値が切り替えられる。閾値切替領域Ｒの形状は図６〜図１０等に図示された例のみに限定されない。ただし、後述する位置判定部１５による判定が容易になるように、閾値切替領域Ｒは半球又は直方体等の簡素な形状を有することが好ましい。閾値切替領域Ｒの形状に関するデータは予め記憶部１０等に格納されうる。ただし、領域定義部１４は、予め定めた形状の閾値切替領域Ｒをロボット２及びハンドＨの状態空間内に定義する代わりに、ハンドＨがワークＷを把持した後のハンドＨの移動経路を加味した形状の閾値切替領域Ｒを定義することもできる（図１４及び図１５を参照）。この場合、領域定義部１４は、動作プログラムＰＧを解析してハンドＨの移動経路を特定する。さらに、領域定義部１４は、使用者がユーザインタフェースを介して指定した形状の閾値切替領域Ｒを定義することもできる。図１のように、領域定義部１４によって定義された閾値切替領域Ｒに関するデータは、位置判定部１５に送信される。
【００２２】
続いて、本例の位置判定部１５は、ロボット２及びハンドＨの現在の状態が、上記の状態空間において閾値切替領域Ｒの内側に位置しているかどうかを判定する機能を有している。より具体的に、本例の位置判定部１５は、ハンドＨにおける各グリッパＧの接触部Ｃが現時点で閾値切替領域Ｒの内側に位置しているかどうかを判定しうる。この際、位置判定部１５は、ロボット２のベースＢに対して固定された任意の直交三次元座標系を用いて、ハンドＨの各点の位置と閾値切替領域Ｒの各点の位置とを比較する。そして、位置判定部１５は、それら位置を比較した比較結果に基づいて、各グリッパＧの接触部Ｃが閾値切替領域Ｒの内側に位置しているかどうかを判定する。この際、位置判定部１５は、ハンドＨの現在位置を特定するための情報として、サーボモータ２１のセンサから取得した回転角度に関する情報を参照しうる。ただし、位置判定部１５は、サーボモータ２１のセンサ又は他の検出器からハンドＨの現在位置を示す別の情報を取得することもできる。なお、位置判定部１５が採用する判定方法は上記の方法に限定されず、閾値切替領域Ｒの形状及び配置等に応じた最適な判定方法が選択されうる。図１のように、位置判定部１５による判定結果は、衝突判定部１６に送信される。
【００２３】
続いて、本例の衝突判定部１６は、外乱推定部１２が算出した外乱の推定値と、予め定めた閾値と、を比較することによって、ロボット２が何らかの障害物に衝突したかどうかを判定する機能を有している。この際、本例の衝突判定部１６は、ロボット２及びハンドＨの現在の状態が、上記の状態空間内で閾値切替領域Ｒの内側に位置している場合には、外乱の推定値と第１の閾値とを比較して衝突の有無を判定する。他方、本例の衝突判定部１６は、ロボット２及びハンドＨの現在の状態が、上記の状態空間内で閾値切替領域Ｒの内側に位置していない場合には、外乱の推定値と、第１の閾値とは異なる第２の閾値と、を比較して衝突の有無を判定する。より具体的に、本例の衝突判定部１６は、ハンドＨにおける両グリッパＧ，Ｇの接触部Ｃ，Ｃが閾値切替領域Ｒの内側に位置している場合には（図７及び図８を参照）、外乱の推定値と第１の閾値ｖ1とを比較して衝突の有無を判定する。他方、衝突判定部１６は、両グリッパＧ，Ｇの接触部Ｃ，Ｃが閾値切替領域Ｒの内側に位置していない場合、すなわち、いずれか一方又は両方のグリッパＧ，Ｇの接触部Ｃ，Ｃが少なくとも部分的に閾値切替領域Ｒの外側に位置している場合には（図９及び図１０を参照）、外乱の推定値と、第１の閾値ｖ1とは異なる第２の閾値ｖ2と、を比較して衝突の有無を判定する。第１の閾値ｖ1及び第２の閾値ｖ2は、予め記憶部１０等に格納されている。これら閾値ｖ1，ｖ2は一定の数値であってもよいし、ロボット２の各部の姿勢及び移動速度等に応じて動的に変化する数値であってもよい。図１のように、衝突判定部１６による判定結果は、動作指令部１７に送信される。
【００２４】
このように、本例の衝突判定部１６は、ロボット２及びハンドＨの現在の状態が状態空間内で閾値切替領域Ｒの内側に位置しているかどうかに応じて衝突判定に用いる閾値を切り替えている。従って、上記の状態遷移が進行する期間中の衝突判定に適した閾値、及びそれ以外の期間中の衝突判定に適した閾値を試験的に求めておき、前者の閾値を第１の閾値ｖ１として記憶部１０等に格納するとともに後者の閾値を第２の閾値ｖ２として記憶部１０等に格納しておけば、上記の状態遷移が進行する間に、ロボット２が障害物と衝突したかどうかの誤判定を防止することができる。このようにして求めた第１の閾値ｖ1及び第２の閾値ｖ2が、図４のグラフ中に例示されている。ただし、第１の閾値ｖ1及び第２の閾値ｖ2の大小関係は、図中の例のみに限定されない。以上のように、本実施形態のロボット制御装置１によれば、上記の状態遷移が進行する期間中に、衝突判定部１６による誤判定を防止することができる。
【００２５】
再び図１を参照すると、本例の動作指令部１７は、衝突判定部１６の判定結果に対応するロボット２の動作指令を生成する機能を有している。より具体的に、動作指令部１７は、外乱の推定値が閾値以上であるとの判定結果を受信した場合には、ワークＷの搬送を停止すべきとの動作指令、又は障害物を回避してワークＷを搬送すべきとの動作指令を生成する。他方、動作指令部１７は、外乱の推定値が閾値未満であるとの判定結果を受信した場合には、動作プログラムＰＧに従ってワークＷの搬送を継続すべきとの動作指令を生成する。図１のように、動作指令部１７によって生成された動作指令は、ロボット２におけるアームＡのサーボモータ２１及びハンドＨの駆動部２２に送信される。
【００２６】
次に、図１のロボットシステムＳによるワーク搬送工程について説明する。図３は、図１のロボットシステムＳによる例示的なワーク搬送工程の手順を示すフローチャートである。図３のように、ステップＳ３０１では、ロボット制御装置１の外乱推定部１２が、ロボット２に加わる外乱の推定を開始する。より具体的に、ステップＳ３０１では、外乱推定部１２が、ロボット２のサーボモータ２１に加わる外乱トルクの推定計算を開始する。これ以降、外乱推定部１２は、外乱トルクの推定計算を所定の周期で繰り返し実行する。図４は、外乱推定部１２が算出した外乱トルクの推定値（Ｔd）の時間変化Ｃ４１の一例を示すグラフである。図４のグラフには、衝突判定部１６による衝突判定に使用される閾値の時間変化Ｃ４２が示されている。
【００２７】
本例の外乱推定部１２は、サーボモータ２１の駆動トルク（Ｔ0）から加速トルク（Ｔa）及び摩擦トルク（Ｔf）を減じて外乱トルクの推定値（Ｔd）を算出しうる。すなわち、外乱推定部１２は、以下の数式（１）を用いて外乱トルクの推定値（Ｔd）を算出しうる。
【数１】
0005893684.tif 000002
ここで、加速トルク（Ｔa）は、ロボット２の可動部のイナーシャに起因するトルクであり、摩擦トルク（Ｔf）は、ロボット２の可動部に作用する摩擦力に起因トルクである。図４のグラフには、外乱トルクの推定値（Ｔd）の絶対値が示されている。
【００２８】
図４から分かるように、外乱トルクの推定値（Ｔd）のグラフは、時間ｔ4以前の期間及び時間ｔ5以降の期間では概ね一定であるものの、時間ｔ4と時間ｔ5の間では急激なピークを形成している。このようなピークが形成される理由について以下に説明する。先ず、図４のグラフ中の時間ｔ4は、ハンドＨのグリッパＧ，ＧがテーブルＴ上のワークＷを把持する時点を表している。ただし、この時点では、ハンドＨグリッパＧ，ＧからワークＷに鉛直方向上向きの力が作用していない。すなわち、この時点では、ワークＷの荷重がロボット２に伝達されていない。それにもかかわらず、本例の外乱推定部１２は、時間ｔ4以降は、ワークＷの全荷重がハンドＨを介してロボット２に伝達されているものと見做して外乱トルクの推定値（Ｔd）を算出している。より具体的に、本例の外乱推定部１２は、時間ｔ4以降は、ロボット２の質量とワークＷの質量の合計値から得られる加速トルク（Ｔa）を用いて外乱トルクの推定値（Ｔd）を算出している（上記の数式（１）を参照）。従って、外乱トルクの推定値（Ｔd）は、ハンドＨが時間ｔ4でワークＷを把持してからワークＷがテーブルＴを離れるまでの間は、実際にサーボモータ２１に加わる外乱トルクから大きく乖離することになる。その結果、外乱トルクの推定値（Ｔd）の時間変化Ｃ４０のグラフが時間ｔ4と時間ｔ5の間で急激なピークを形成することになる。
【００２９】
再び図３を参照すると、ステップＳ３０２では、ロボット２が、テーブルＴに置かれたワークＷに対してハンドＨを位置決めする。図５は、ステップＳ３０２が完了した時点におけるロボット２及びワークＷの状態を示す側面図である。図５から分かるように、ステップＳ３０２では、一対のグリッパＧ，Ｇの各々の接触部ＣがワークＷの側面と対向するように、ハンドＨがワークＷに対して位置決めされる。ステップＳ３０２が完了した時点は、図３のグラフ中の時間ｔ1に対応している。図４から分かるように、時間ｔ1を含む一定の期間中は、予め定めた第２の閾値ｖ２が、衝突判定部１６による衝突判定に使用されている。次いで、ステップＳ３０３では、ロボット制御装置１の遷移認識部１３が、ワークＷの荷重がロボット２に伝達されない状態からワークＷの全荷重がハンドＨを介してロボット２に伝達される状態への状態遷移が発生することを認識する。
【００３０】
次いで、ステップＳ３０４では、ロボット制御装置１の領域定義部１４が、所定の形状の閾値切替領域Ｒをロボット２の作業空間内に定義する。図６は、ステップＳ３０４が完了した時点におけるロボット２及びワークＷの状態を示す側面図である。図６から分かるように、ステップＳ３０４で定義された閾値切替領域Ｒは、テーブルＴ上のワークＷが占める空間を内包するようにテーブルＴ上に仮想的に配置された半球状の形態を有している。ステップＳ３０４が完了した時点は、図３のグラフ中の時間ｔ2に対応している。次いで、ステップＳ３０５では、ロボット制御装置１の衝突判定部１６が、それまで衝突判定に使用していた第２の閾値ｖ２を、第２の閾値ｖ２よりも大きい第１の閾値ｖ１に切り替える。ステップＳ３０５が完了した時点は、図３のグラフ中の時間ｔ２と概ね等しい時間ｔ3に対応している。
【００３１】
次いで、ステップＳ３０６では、ハンドＨが一対のグリッパＧ，ＧでワークＷを把持する。図７は、ステップＳ３０６が完了した時点におけるロボット２及びワークＷの状態を示す側面図である。ステップＳ３０６が完了した時点は、図３のグラフ中の時間ｔ4に対応している。上述した通り、この時点では、ワークＷの荷重がロボット２に伝達されていない。次いで、ステップＳ３０７では、ロボット２が、ワークＷを鉛直方向上向きに持ち上げる。図８は、ステップＳ３０７が完了した時点におけるロボット２及びワークＷの状態を示す側面図である。図８から分かるように、ステップＳ３０７が完了した時点では、ワークＷがテーブルＴの上面から離間しているので、ワークＷの全荷重がハンドＨを介してロボット２に伝達されている。ステップＳ３０７が完了した時点は、図３のグラフの時間ｔ5に対応している。
【００３２】
次いで、ステップＳ３０８では、ロボット制御装置１の位置判定部１５が、ハンドＨにおける各グリッパＧの接触部Ｃが閾値切替領域Ｒの境界を通過したかどうかを判定する。そして、いずれか一方又は両方のグリッパＧ，Ｇの接触部Ｃ，Ｃが少なくとも部分的に閾値切替領域Ｒの境界を通過したら（ステップＳ３０８のＹＥＳ）、後述するステップＳ３０９が実行される。他方、どちらのグリッパＧ，Ｇの接触部Ｃ，Ｃも閾値切替領域Ｒの境界を通過していない場合は（ステップＳ３０８のＮＯ）、同様の判定が繰り返し実行される。次いで、ステップＳ３０９では、ロボット制御装置１の衝突判定部１６が、それまで衝突判定に使用していた第１の閾値ｖ１を第２の閾値ｖ２に切り替える。図９は、ステップＳ３０９が完了した時点におけるロボット２及びワークＷの状態を示す側面図である。ステップＳ３０９が完了した時点は、図３のグラフの時間ｔ6に対応している。次いで、ステップＳ３１０では、ロボット２がワークＷを上述した第２の位置まで搬送する。図１０は、ステップＳ３１０が実行されている最中のロボット２及びワークＷの状態を示す側面図である。図１０に示される時点は、図３のグラフの時間ｔ7に対応している。
【００３３】
以上のように、本実施形態のロボット制御装置１によれば、ハンドＨにおける両グリッパＧ，Ｇの接触部Ｃ，Ｃが閾値切替領域Ｒの内側に位置しているかどうかに応じて衝突判定用の閾値が切り替えられる。従って、ワークＷの荷重がロボット２に伝達されない状態（図７を参照）からワークＷの全荷重がハンドＨを介してロボット２に伝達される状態（図８を参照）への状態遷移が進行する間に、ロボット２が障害物と衝突したかどうかの誤判定を防止することができる。すなわち、本実施形態のロボット制御装置１によれば、上記の状態遷移が進行する間に、ロボット２が障害物と衝突したかどうかの誤判定を防止することができる。なお、図５〜図１０等に図示した例では、ロボット２がテーブルＴに置かれたワークＷを持ち上げる動作について説明したものの、本実施形態のロボット制御装置１は、ロボット２がハンドＨで把持したワークＷをテーブルＴに置くように動作する場合も、同様の手順でロボット２の衝突判定を実行しうる。
【００３４】
次に、図１のロボットシステムＳによるワーク搬送工程の変形例について説明する。図１１は、図１のロボットシステムＳによる他のワーク搬送工程の手順を示すフローチャートである。図３と図１１を比較すると分かるように、図１１におけるステップＳ１１０１〜ステップＳ１１０９の手順は、図３０におけるステップＳ３０１〜ステップＳ３０９の手順と同様である。また、図１１のステップＳ１１０２、Ｓ１１０４、Ｓ１１０６、Ｓ１１０７、及びＳ１１０９が完了した時点におけるロボット２及びワークＷの状態は、図５、図６、図７、図８、及び図９にそれぞれ示される状態と同様である。さらに、図１１のステップＳ１１０２、Ｓ１１０４、Ｓ１１０５、Ｓ１１０６、Ｓ１１０７、及びＳ１１０９が完了した時点は、図４のグラフ中の時間ｔ1、ｔ2、ｔ3、ｔ4、ｔ5、及びｔ6にそれぞれ対応している。そのため、以下では、図１１のステップＳ１１１０〜Ｓ１１１１の手順のみについて説明する。
【００３５】
図１１のように、ステップＳ１１１０では、ロボット制御装置１の領域定義部１４が、ステップＳ１１０４で既に定義した閾値切替領域Ｒを作業空間から消去する。図１２は、ステップＳ１１１０が完了した時点におけるロボット２及びワークＷの状態を示す側面図である。次いで、ステップＳ１１１１では、ロボット２がワークＷを上述した第２の位置まで搬送する。図１３は、ステップＳ１１１１が実行されている最中のロボット２及びワークＷの状態を示す側面図である。このように、本例では、いずれか一方又は両方のグリッパＧ，Ｇの接触部Ｃ，Ｃが少なくとも部分的に閾値切替領域Ｒの境界を通過したら（ステップＳ１１０８のＹＥＳ）、それまで衝突判定に使用されていた第１の閾値ｖ１が第２の閾値ｖ２に切り替えられるとともに（ステップＳ１１０９を参照）、ステップＳ１１０４で既に定義された閾値切替領域Ｒが消去される（ステップＳ１１１０を参照）。従って、一旦ステップＳ１１１０が実行された後は、ロボット制御装置１の衝突判定部１６が、位置判定部１５の判定結果によらずに第２閾値ｖ２を使用して衝突判定を実行することになる。これにより、いずれか一方又は両方のグリッパＧ，Ｇの接触部Ｃ，Ｃが閾値切替領域Ｒの外側に移動してから閾値切替領域Ｒの内側に再び移動するような場合であっても、ロボット２が障害物と衝突したかどうかをワーク搬送工程の全期間を通じて正確に判定できるようになる。
【００３６】
次に、上記のステップＳ３０４及びステップＳ１１０４で定義される閾値切替領域Ｒの変形例について説明する。図１４及び図１５は、閾値切替領域Ｒの変形例をロボット２及びワークＷと一緒に示す側面図である。図１４は、図７と同様に、図４のグラフ中の時間ｔ4におけるロボット２及びワークＷの状態を示しており、図１５は、図８と同様に、図４のグラフ中の時間ｔ5におけるロボット２及びワークＷの状態を示している。図１４のように、本例の閾値切替領域Ｒは、テーブルＴ上のワークＷが占める空間を内包するようにテーブルＴ上に仮想的に配置された柱状の形態を有している。このような閾値切替領域Ｒの形状は、ハンドＨがワークＷを把持した後に移動する方向を考慮して決定されている。より具体的に、本例では、ハンドＨがテーブルＴ上のワークを把持した後に鉛直方向の上向きに移動することを考慮して（図１５を参照）、テーブルＴの上面から鉛直方向上向きに延在する柱状の形態を有する閾値切替領域Ｒを定義している。
【００３７】
このようにして閾値切替領域Ｒの形状を決定すれば、閾値切替領域Ｒの寸法を縮小してワークＷの寸法に近づけることができるので、上記の状態遷移が進行する間も衝突判定部１６による誤判定を防止できることに加えて、上記の状態遷移の前後における衝突判定部の判定精度を向上させることができる。なお、閾値切替領域Ｒの形状は、領域定義部１４によって自動的に決定されてもよいし、種々のユーザインタフェースを介して使用者によって指定されてもよい。前者の場合には、領域定義部１４が動作プログラムＰＧを解析してハンドＨの移動経路を特定しうる。
【００３８】
本発明は、上記の実施形態のみに限定されるものではなく、特許請求の範囲に記載された範囲内で種々改変されうる。例えば、上記の実施形態では流体圧駆動方式のハンドが例示されているものの、本発明のロボット制御装置によって制御されるロボットは、サーボモータによって駆動されるサーボ駆動式のハンドを備えてもよいし、磁力又は真空吸着力等によってワークを吸着する吸着式のハンドを備えてもよい。
【符号の説明】
【００３９】
１    ロボット制御装置
１０    記憶部
１１    パラメータ取得部
１２    外乱推定部
１３    遷移認識部
１４    領域定義部
１５    位置判定部
１６    衝突判定部
１７    動作指令部
２    ロボット
２１    サーボモータ
２２    駆動部
Ａ    アーム
Ｂ    ベース
Ｃ    接触部
Ｇ    グリッパ
Ｈ    ハンド
Ｌ    リンク
ＰＧ    動作プログラム
Ｒ    閾値切替領域
ｖ1    第１の閾値
ｖ2    第２の閾値
Ｗ    ワーク
Ｓ    ロボットシステム
Ｔ    テーブル
【図１】
0005893684.tif 000003
【図２】
0005893684.tif 000004
【図３】
0005893684.tif 000005
【図４】
0005893684.tif 000006
【図５】
0005893684.tif 000007
【図６】
0005893684.tif 000008
【図７】
0005893684.tif 000009
【図８】
0005893684.tif 000010
【図９】
0005893684.tif 000011
【図１０】
0005893684.tif 000012
【図１１】
0005893684.tif 000013
【図１２】
0005893684.tif 000014
【図１３】
0005893684.tif 000015
【図１４】
0005893684.tif 000016
【図１５】
0005893684.tif 000017