特許第5893684号(P5893684)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許5893684衝突判定部による誤判定を防止するロボット制御装置
<>
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000003
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000004
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000005
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000006
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000007
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000008
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000009
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000010
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000011
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000012
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000013
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000014
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000015
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000016
  • 特許5893684-衝突判定部による誤判定を防止するロボット制御装置 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5893684
(24)【登録日】2016年3月4日
(45)【発行日】2016年3月23日
(54)【発明の名称】衝突判定部による誤判定を防止するロボット制御装置
(51)【国際特許分類】
   B25J 19/02 20060101AFI20160310BHJP
【FI】
   B25J19/02
【請求項の数】5
【全頁数】15
(21)【出願番号】特願2014-141716(P2014-141716)
(22)【出願日】2014年7月9日
(65)【公開番号】特開2016-16490(P2016-16490A)
(43)【公開日】2016年2月1日
【審査請求日】2015年6月17日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100102819
【弁理士】
【氏名又は名称】島田 哲郎
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100182660
【弁理士】
【氏名又は名称】三塚 武宏
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100159684
【弁理士】
【氏名又は名称】田原 正宏
(72)【発明者】
【氏名】小栗 健一郎
【審査官】 中田 善邦
(56)【参考文献】
【文献】 特開2008−183680(JP,A)
【文献】 特開平11−320477(JP,A)
【文献】 特開2001−353687(JP,A)
【文献】 特開2006−123012(JP,A)
【文献】 特開2010−069585(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J1/00−21/02
(57)【特許請求の範囲】
【請求項1】
ワークを把持可能なハンドを備えたロボットを制御するロボット制御装置であって、
ロボットに加わる外乱の推定値を求める外乱推定部と、
ワークの荷重がロボットに伝達されない状態とワークの全荷重がハンドを介してロボットに伝達される状態との間の状態遷移が発生することを認識する遷移認識部と、
ロボット及びハンドの状態を表す状態空間内に、前記遷移認識部が認識した前記状態遷移の開始時点でのロボット及びハンドの状態を内包した領域を定義する領域定義部と、
ロボット及びハンドの状態が、前記領域定義部によって定義された前記領域の内側に位置しているかどうかを判定する位置判定部と、
前記推定値と所定の閾値とを比較することによって、ロボットが障害物に衝突したかどうかを判定する衝突判定部と、を有し、
前記衝突判定部は、ロボット及びハンドの状態が前記領域の内側に位置している場合には、前記推定値と第1の閾値とを比較し、ロボット及びハンドの状態が前記領域の外側に位置している場合には、前記推定値と、前記第1の閾値とは異なる第2の閾値と、を比較する、ロボット制御装置。
【請求項2】
前記外乱推定部が、ロボットを駆動するサーボモータの回転速度及びトルクの少なくともいずれか一方を用いて前記推定値を求める、請求項1に記載のロボット制御装置。
【請求項3】
前記外乱推定部は、ロボットの動作プログラムから取得したワークの質量を表すパラメータ値を用いて前記推定値を求める、請求項1または2に記載のロボット制御装置。
【請求項4】
前記衝突判定部は、ロボット及びハンドの状態が前記領域の内側から外側に移動した後は、前記位置判定部の判定結果によらずに前記推定値と前記第2の閾値とを比較する、請求項1〜3のいずれか1つに記載のロボット制御装置。
【請求項5】
前記領域の形状が、ハンドがワークを把持した後に移動する方向を考慮して決定される、請求項1〜4のいずれか1つに記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットが障害物と衝突したかどうかを判定する際の誤判定を防止するロボット制御装置に関する。
【背景技術】
【0002】
従来のロボット制御装置のなかには、ロボットの可動部が障害物と衝突したかどうかを判定する衝突判定部を備えたものがある。従来のロボット制御装置の衝突判定部は、ロボットの可動部に加わる外乱トルクをサーボモータの回転速度及び駆動トルク等に基づいて推定し、外乱トルクの推定値を予め定めた閾値と比較することで、衝突の有無を判定している。これに関連して、特許文献1の衝突検出方法では、オブザーバが推定した外乱トルクから摩擦トルク及び重力の影響によるトルク等を減じることで、障害物との接触及び衝突による外乱トルクを算出している。
【0003】
ところで、サーボモータの駆動トルクは、ロボットがワークを把持しているかどうかに応じて、ワークの重量の分だけ変化することが知られている。従って、外乱トルクを正確に推定するためには、推定計算に用いられる各種パラメータのうちのワークの重量に関連するパラメータの数値を、ロボットがワークを把持しているかどうかに応じて切り替える必要がある。さらに、ロボットがワークを把持していても、ワークの荷重がロボットに完全に伝達されない場合があることに留意すべきである。この点について、ロボットがテーブルに置かれたワークを持ち上げる場面を例に挙げて説明する。この場面では、ロボットがワークを把持していても、ワークがテーブルから反力を受けている間は、ワークの荷重がロボットに一切伝達されないか、或いはワークの荷重の一部のみがハンドを介してロボットに伝達されることになる。その後、ワークがロボットによって持ち上げられてテーブルの上面を離れる瞬間に、ワークの全荷重がハンドを介してロボットに伝達されることになる。
【0004】
従って、従来の衝突判定方法では、ロボットがワークを把持してからワークがテーブルを離れるまでの間は、ロボットに加わる外乱を正確に推定することが困難であった。同様に、ロボットがワークをテーブルに置く場面では、ワークがテーブルに接触してからロボットがワークを解放するまでの間は、ロボットに加わる外乱を正確に推定することが困難であった。以上のように、従来の衝突検出方法では、ワークの荷重がロボットに伝達されない状態及びワークの全荷重がロボットに伝達される状態のいずれか一方から他方への状態遷移が進行する間は、ロボットに加わる外乱を正確に推定することが困難であった。そのため、上記の状態遷移が進行する間は、ロボットが障害物に衝突したかどうかを誤って判定してしまう虞があった。
【0005】
これに関連して、ロボットの作業空間内の領域ごとに設定された別々の閾値を用いて衝突の有無を判定する衝突判定方法が公知である。例えば、特許文献2には、溶接ロボットが溶接工程を実行する領域内では、溶接電極の溶着判定用の閾値を使用し、それ以外の領域内では、アーム又はエンドエフェクタの衝突判定用の別の閾値を使用する衝突判定方法が提案されている。また、特許文献3には、サーボモータの位置、速度、及び加速度等から求めたモータトルク予想値が所定値を超える場合により大きい閾値を衝突判定に使用する衝突判定方法が提案されており、特許文献4には、ロボットの動作速度に応じた可変の閾値を衝突判定に使用する衝突判定方法が提案されている。しかし、これらの衝突判定方法を使用しても、上記の状態遷移が進行する間の誤判定を防止することはできない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平4−242406号公報
【特許文献2】特開平11−291190号公報
【特許文献3】特開2013−169609号公報
【特許文献4】特開2001−353687号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ワークの荷重がロボットに伝達されない状態、及びワークの全荷重がハンドを介してロボットに伝達される状態のいずれか一方から他方への状態遷移が進行する間も、ロボットが障害物に衝突したかどうかの誤判定を防止できるロボット制御装置が求められている。
【課題を解決するための手段】
【0008】
本発明の第1の態様によれば、ワークを把持可能なハンドを備えたロボットを制御するロボット制御装置であって、ロボットに加わる外乱の推定値を求める外乱推定部と、ワークの荷重がロボットに伝達されない状態とワークの全荷重がハンドを介してロボットに伝達される状態との間の状態遷移が発生することを認識する遷移認識部と、ロボット及びハンドの状態を表す状態空間内に、上記の状態遷移の開始時点でのロボット及びハンドの状態を内包した領域を定義する領域定義部と、ロボット及びハンドの状態が、領域定義部によって定義された領域の内側に位置しているかどうかを判定する位置判定部と、外乱の推定値と所定の閾値とを比較することによって、ロボットが障害物に衝突したかどうかを判定する衝突判定部と、を有し、衝突判定部は、ロボット及びハンドの状態が上記の領域の内側に位置している場合には、外乱の推定値と第1の閾値とを比較し、ロボット及びハンドの状態が上記の領域の外側に位置している場合には、外乱の推定値と、第1の閾値とは異なる第2の閾値と、を比較する、ロボット制御装置が提供される。
本発明の第2の態様によれば、第1の態様において、外乱推定部は、ロボットを駆動するサーボモータの回転速度及びトルクの少なくともいずれか一方を用いて外乱の推定値を求める、ロボット制御装置が提供される。
本発明の第3の態様によれば、第1又は第2の態様において、外乱推定部が、ロボットの動作プログラムから取得したワークの質量を表すパラメータ値を用いて外乱の推定値を求める、ロボット制御装置が提供される。
本発明の第4の態様によれば、第1〜第3の態様のいずれか1つにおいて、衝突判定部は、ロボット及びハンドの状態が上記の領域の内側から外側に遷移した後は、位置判定部の判定結果によらずに外乱の推定値と第2の閾値とを比較する、ロボット制御装置が提供される。
本発明の第5の態様によれば、第1〜第4の態様のいずれか1つにおいて、上記の領域の形状が、ハンドがワークを把持した後に移動する方向を考慮して決定される、ロボット制御装置が提供される。
【発明の効果】
【0009】
本発明の第1の態様によれば、ロボット及びハンドの状態が領域定義部によって定義される領域の内側に位置するかどうかに応じて衝突判定用の閾値が切り替えられる。従って、第1の態様によれば、ワークの荷重がロボットに伝達されない状態及びワークの全荷重がハンドを介してロボットに伝達される状態のいずれか一方から他方への状態遷移が進行する間も、ロボットが障害物に衝突したかどうかの誤判定を防止することができる。
本発明の第2の態様によれば、外乱の推定計算に用いる情報を取得するための専用の検出器をロボット側に設ける必要が無くなるので、ロボット制御装置を含むロボットシステムの構成を簡素化することができる。
本発明の第3の態様によれば、ロボット制御装置がワークの質量に関する情報を外部から取得する必要が無くなるので、ロボット制御装置を含むロボットシステムの構成を簡素化することができる。
本発明の第4の態様によれば、ロボット及びハンドの状態が領域定義部によって定義される領域の外側に一旦遷移してから当該領域の内側に再び遷移するような場合であっても、ロボットが障害物に衝突したかどうかをワーク搬送工程の全期間を通じて正確に判定できるようになる。
本発明の第5の態様によれば、領域定義部によって定義される領域を縮小して、上記の状態遷移の開始時点でのロボット及びハンドの状態に近づけることができるので、上記の状態遷移が進行する間の衝突判定部による誤判定を防止できるとともに、上記の状態遷移の前後における衝突判定の精度を向上させることができる。
【図面の簡単な説明】
【0010】
図1】本発明の1つの実施形態によるロボット制御装置を含むロボットシステムの構成を示すブロック図である。
図2図1中のロボットの外観を示す側面図である。
図3図1のロボットシステムによる例示的なワーク搬送工程の手順を示すフローチャートである。
図4図1中の外乱推定部が算出した外乱トルクの推定値の時間変化の一例を示すグラフである。
図5図3中のステップS302が完了した時点におけるロボット及びワークの状態を示す側面図である。
図6図3中のステップS304が完了した時点におけるロボット及びワークの状態を示す側面図である。
図7図3中のステップS306が完了した時点におけるロボット及びワークの状態を示す側面図である。
図8図3中のステップS307が完了した時点におけるロボット及びワークの状態を示す側面図である。
図9図3中のステップS309が完了した時点におけるロボット及びワークの状態を示す側面図である。
図10図3中のステップS310が実行されている最中のロボット及びワークの状態を示す側面図である。
図11図1のロボットシステムによる他のワーク搬送工程の手順を示すフローチャートである。
図12図11中のステップS1110が完了した時点におけるロボット及びワークの状態を示す側面図である。
図13図11中のステップS1111が実行されている最中のロボット及びワークの状態を示す側面図である。
図14】閾値切替領域の変形例をロボット及びワークと一緒に示す第1の側面図である。
図15】閾値切替領域の変形例をロボット及びワークと一緒に示す第2の側面図である。
【発明を実施するための形態】
【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の閾値v1及び第2の閾値v2等が格納されている。
【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の閾値v1とを比較して衝突の有無を判定する。他方、衝突判定部16は、両グリッパG,Gの接触部C,Cが閾値切替領域Rの内側に位置していない場合、すなわち、いずれか一方又は両方のグリッパG,Gの接触部C,Cが少なくとも部分的に閾値切替領域Rの外側に位置している場合には(図9及び図10を参照)、外乱の推定値と、第1の閾値v1とは異なる第2の閾値v2と、を比較して衝突の有無を判定する。第1の閾値v1及び第2の閾値v2は、予め記憶部10等に格納されている。これら閾値v1,v2は一定の数値であってもよいし、ロボット2の各部の姿勢及び移動速度等に応じて動的に変化する数値であってもよい。図1のように、衝突判定部16による判定結果は、動作指令部17に送信される。
【0024】
このように、本例の衝突判定部16は、ロボット2及びハンドHの現在の状態が状態空間内で閾値切替領域Rの内側に位置しているかどうかに応じて衝突判定に用いる閾値を切り替えている。従って、上記の状態遷移が進行する期間中の衝突判定に適した閾値、及びそれ以外の期間中の衝突判定に適した閾値を試験的に求めておき、前者の閾値を第1の閾値vとして記憶部10等に格納するとともに後者の閾値を第2の閾値vとして記憶部10等に格納しておけば、上記の状態遷移が進行する間に、ロボット2が障害物と衝突したかどうかの誤判定を防止することができる。このようにして求めた第1の閾値v1及び第2の閾値v2が、図4のグラフ中に例示されている。ただし、第1の閾値v1及び第2の閾値v2の大小関係は、図中の例のみに限定されない。以上のように、本実施形態のロボット制御装置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が算出した外乱トルクの推定値(Td)の時間変化C41の一例を示すグラフである。図4のグラフには、衝突判定部16による衝突判定に使用される閾値の時間変化C42が示されている。
【0027】
本例の外乱推定部12は、サーボモータ21の駆動トルク(T0)から加速トルク(Ta)及び摩擦トルク(Tf)を減じて外乱トルクの推定値(Td)を算出しうる。すなわち、外乱推定部12は、以下の数式(1)を用いて外乱トルクの推定値(Td)を算出しうる。
【数1】
ここで、加速トルク(Ta)は、ロボット2の可動部のイナーシャに起因するトルクであり、摩擦トルク(Tf)は、ロボット2の可動部に作用する摩擦力に起因トルクである。図4のグラフには、外乱トルクの推定値(Td)の絶対値が示されている。
【0028】
図4から分かるように、外乱トルクの推定値(Td)のグラフは、時間t4以前の期間及び時間t5以降の期間では概ね一定であるものの、時間t4と時間t5の間では急激なピークを形成している。このようなピークが形成される理由について以下に説明する。先ず、図4のグラフ中の時間t4は、ハンドHのグリッパG,GがテーブルT上のワークWを把持する時点を表している。ただし、この時点では、ハンドHグリッパG,GからワークWに鉛直方向上向きの力が作用していない。すなわち、この時点では、ワークWの荷重がロボット2に伝達されていない。それにもかかわらず、本例の外乱推定部12は、時間t4以降は、ワークWの全荷重がハンドHを介してロボット2に伝達されているものと見做して外乱トルクの推定値(Td)を算出している。より具体的に、本例の外乱推定部12は、時間t4以降は、ロボット2の質量とワークWの質量の合計値から得られる加速トルク(Ta)を用いて外乱トルクの推定値(Td)を算出している(上記の数式(1)を参照)。従って、外乱トルクの推定値(Td)は、ハンドHが時間t4でワークWを把持してからワークWがテーブルTを離れるまでの間は、実際にサーボモータ21に加わる外乱トルクから大きく乖離することになる。その結果、外乱トルクの推定値(Td)の時間変化C40のグラフが時間t4と時間t5の間で急激なピークを形成することになる。
【0029】
再び図3を参照すると、ステップS302では、ロボット2が、テーブルTに置かれたワークWに対してハンドHを位置決めする。図5は、ステップS302が完了した時点におけるロボット2及びワークWの状態を示す側面図である。図5から分かるように、ステップS302では、一対のグリッパG,Gの各々の接触部CがワークWの側面と対向するように、ハンドHがワークWに対して位置決めされる。ステップS302が完了した時点は、図3のグラフ中の時間t1に対応している。図4から分かるように、時間t1を含む一定の期間中は、予め定めた第2の閾値vが、衝突判定部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のグラフ中の時間t2に対応している。次いで、ステップS305では、ロボット制御装置1の衝突判定部16が、それまで衝突判定に使用していた第2の閾値vを、第2の閾値vよりも大きい第1の閾値vに切り替える。ステップS305が完了した時点は、図3のグラフ中の時間t2と概ね等しい時間t3に対応している。
【0031】
次いで、ステップS306では、ハンドHが一対のグリッパG,GでワークWを把持する。図7は、ステップS306が完了した時点におけるロボット2及びワークWの状態を示す側面図である。ステップS306が完了した時点は、図3のグラフ中の時間t4に対応している。上述した通り、この時点では、ワークWの荷重がロボット2に伝達されていない。次いで、ステップS307では、ロボット2が、ワークWを鉛直方向上向きに持ち上げる。図8は、ステップS307が完了した時点におけるロボット2及びワークWの状態を示す側面図である。図8から分かるように、ステップS307が完了した時点では、ワークWがテーブルTの上面から離間しているので、ワークWの全荷重がハンドHを介してロボット2に伝達されている。ステップS307が完了した時点は、図3のグラフの時間t5に対応している。
【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を第2の閾値vに切り替える。図9は、ステップS309が完了した時点におけるロボット2及びワークWの状態を示す側面図である。ステップS309が完了した時点は、図3のグラフの時間t6に対応している。次いで、ステップS310では、ロボット2がワークWを上述した第2の位置まで搬送する。図10は、ステップS310が実行されている最中のロボット2及びワークWの状態を示す側面図である。図10に示される時点は、図3のグラフの時間t7に対応している。
【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のグラフ中の時間t1、t2、t3、t4、t5、及びt6にそれぞれ対応している。そのため、以下では、図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が第2の閾値vに切り替えられるとともに(ステップS1109を参照)、ステップS1104で既に定義された閾値切替領域Rが消去される(ステップS1110を参照)。従って、一旦ステップS1110が実行された後は、ロボット制御装置1の衝突判定部16が、位置判定部15の判定結果によらずに第2閾値vを使用して衝突判定を実行することになる。これにより、いずれか一方又は両方のグリッパG,Gの接触部C,Cが閾値切替領域Rの外側に移動してから閾値切替領域Rの内側に再び移動するような場合であっても、ロボット2が障害物と衝突したかどうかをワーク搬送工程の全期間を通じて正確に判定できるようになる。
【0036】
次に、上記のステップS304及びステップS1104で定義される閾値切替領域Rの変形例について説明する。図14及び図15は、閾値切替領域Rの変形例をロボット2及びワークWと一緒に示す側面図である。図14は、図7と同様に、図4のグラフ中の時間t4におけるロボット2及びワークWの状態を示しており、図15は、図8と同様に、図4のグラフ中の時間t5におけるロボット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】
本発明は、上記の実施形態のみに限定されるものではなく、特許請求の範囲に記載された範囲内で種々改変されうる。例えば、上記の実施形態では流体圧駆動方式のハンドが例示されているものの、本発明のロボット制御装置によって制御されるロボットは、サーボモータによって駆動されるサーボ駆動式のハンドを備えてもよいし、磁力又は真空吸着力等によってワークを吸着する吸着式のハンドを備えてもよい。
【符号の説明】
【0039】
1 ロボット制御装置
10 記憶部
11 パラメータ取得部
12 外乱推定部
13 遷移認識部
14 領域定義部
15 位置判定部
16 衝突判定部
17 動作指令部
2 ロボット
21 サーボモータ
22 駆動部
A アーム
B ベース
C 接触部
G グリッパ
H ハンド
L リンク
PG 動作プログラム
R 閾値切替領域
1 第1の閾値
2 第2の閾値
W ワーク
S ロボットシステム
T テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15