(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023128823
(43)【公開日】2023-09-14
(54)【発明の名称】ロボット制御装置及びロボットシステム
(51)【国際特許分類】
B25J 19/06 20060101AFI20230907BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022033451
(22)【出願日】2022-03-04
(71)【出願人】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】崎元 直樹
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707BS10
3C707HS27
3C707KS35
3C707MS07
(57)【要約】
【課題】ロボットのアームに取り付けられる工具に掛かる負荷に基づいて状況を把握し、適切に衝突を検知することができるロボット制御装置及びロボットシステムを提供する。
【解決手段】ロボット20の動作を制御するロボット制御装置100であって、ロボット制御装置100は、ロボットに掛かるトルクを監視するトルク監視部120と、ロボットのアームに取り付けられる工具30を駆動させるスピンドルモータ31に掛かる負荷を算出する負荷算出部130と、スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する衝突検知閾値設定部140と、少なくとも監視されているトルクと設定された衝突検知閾値とに基づいて、ロボットの衝突を判定する衝突判定部150と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ロボットの動作を制御するロボット制御装置であって、
前記ロボットに掛かるトルクを監視するトルク監視部と、
前記ロボットのアームに取り付けられる工具を駆動させるスピンドルモータに掛かる負荷を算出する負荷算出部と、
前記スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する衝突検知閾値設定部と、
少なくとも前記監視されているトルクと前記設定された衝突検知閾値とに基づいて、前記ロボットの衝突を判定する衝突判定部と、を備える、
ロボット制御装置。
【請求項2】
前記衝突検知閾値設定部は、前記工具がワークに接して実行される作業中か否かに応じて、前記衝突検知閾値を設定する、
請求項1に記載のロボット制御装置。
【請求項3】
前記衝突検知閾値設定部は、前記工具がワークに接して実行される作業中でない非作業中に対応する第1閾値、前記作業中に対応する第2閾値、及び前記スピンドルモータに掛かる負荷率に応じた閾値のいずれかを設定する、
請求項1又は2に記載のロボット制御装置。
【請求項4】
前記負荷算出部は、所定期間においてサンプリングされた複数の前記スピンドルモータに掛かる負荷に基づいて、前記スピンドルモータに掛かる負荷を算出し、
前記衝突検知閾値設定部は、前記算出されたスピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する、
請求項1から3のいずれか一項に記載のロボット制御装置。
【請求項5】
ロボットのアームに取り付けられる工具を駆動させるスピンドルモータと、
前記スピンドルモータを制御するスピンドルモータ制御装置と、
前記ロボットの動作を制御するとともに前記スピンドルモータ制御装置に動作指示するロボット制御装置と、を備え、
前記ロボット制御装置は、
前記ロボットに掛かるトルクを監視するトルク監視部と、
前記スピンドルモータに掛かる負荷を算出する負荷算出部と、
前記スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する衝突検知閾値設定部と、
少なくとも前記監視されているトルクと前記設定された衝突検知閾値とに基づいて、前記ロボットの衝突を判定する衝突判定部と、を含む、
ロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御装置及びロボットシステムに関する。
【背景技術】
【0002】
近年、産業界において、多くのロボットが普及している。当該ロボットは、例えば、電子部品及び機械部品の組み立て、溶接及び搬送等に用いられたり、金属、鋳物、樹脂及び木材等を加工する際に用いられたりして、製造工程の効率化及び自動化が図られている。
【0003】
例えば、アーム先端にエンドエフェクタとして切削工具が取り付けられたロボットでは、鋳物のバリ取りや溶接ビートを切削する。このとき、ロボットがワークや周辺の障害物に衝突すると、アーム先端に取り付けられた切削工具やロボット等が損傷してしまう。このため、ロボットとワークや周辺の障害物との衝突を適切に検知し、すばやくロボットを停止させることが好ましい。
【0004】
特許文献1では、付加的なセンサを用いずにロボットが周辺物に衝突したことを検知し、ロボット及び周辺物の破損を防止するロボット制御装置に関する技術が開示されている。特許文献1に記載のロボット制御装置は、例えば、バリ取りやハンド開閉等、ロボットに行わせる作業に応じて必要な駆動トルクを演算し、当該駆動トルクと各関節を駆動するモータの電流とに基づいて衝突の判別を行う。
【0005】
また、特許文献2では、ロボットのハンドに衝撃力を検出する力センサを備えて、検出した衝撃力の大きさに応じて衝突を判定するロボットの衝突検出装置に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003-25272号公報
【特許文献2】特開平4-19093号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載のロボット制御装置では、例えば、切削中における衝突を検知しようとすると、切削における衝撃と区別する必要があるため、衝突を検知したと判定する閾値を高く設定する必要がある。これにより、衝突の検知が遅れて、すばやくロボットを停止させることができない。その結果、切削工具やロボット等が損傷してしまう可能性がある。
【0008】
また、特許文献2に記載のロボットの衝突検出装置のように、状況をすばやく把握するために力センサを備えることも考えられるが、ロボットと障害物等との衝突を適切に検知するためには、複数の力センサを備える必要があり、高コストになってしまう。
【0009】
そこで、本発明は、ロボットのアームに取り付けられる工具に掛かる負荷に基づいて状況を把握し、適切に衝突を検知することができるロボット制御装置及びロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一態様に係るロボット制御装置は、ロボットの動作を制御するロボット制御装置であって、ロボットに掛かるトルクを監視するトルク監視部と、ロボットのアームに取り付けられる工具を駆動させるスピンドルモータに掛かる負荷を算出する負荷算出部と、スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する衝突検知閾値設定部と、少なくとも監視されているトルクと設定された衝突検知閾値とに基づいて、ロボットの衝突を判定する衝突判定部と、を備える。
【0011】
この態様によれば、負荷算出部は、ロボットのアームに取り付けられる工具を駆動させるスピンドルモータに掛かる負荷を算出することによって状況を把握し、衝突検知閾値設定部は、スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する。そして、衝突判定部は、少なくとも監視されているトルクと設定された衝突検知閾値とに基づいて、ロボットの衝突を判定する。その結果、ロボットの衝突を適切に検知して、すばやくロボットを停止させることできるため、アームに取り付けられた切削工具やロボット等の損傷を軽減及び防止することができる。
【0012】
上記態様において、衝突検知閾値設定部は、工具がワークに接して実行される作業中か否かに応じて、衝突検知閾値を設定してもよい。
【0013】
この態様によれば、衝突検知閾値設定部は、工具がワークに接して実行される作業中か否かに応じて、衝突検知閾値を設定するため、作業中における工具への負荷を考慮して、作業中及び非作業中におけるロボットの衝突を適切に検出することができる。
【0014】
上記態様において、衝突検知閾値設定部は、工具がワークに接して実行される作業中でない非作業中に対応する第1閾値、作業中に対応する第2閾値、及びスピンドルモータに掛かる負荷率に応じた閾値のいずれかを設定してもよい。
【0015】
この態様によれば、衝突検知閾値設定部は、非作業中に対応する第1閾値、作業中に対応する第2閾値、及び負荷率に応じた閾値のいずれかを設定するため、作業中における工具への負荷をさらに詳細に考慮して、作業中及び非作業中におけるロボットの衝突をより適切に検出することができる。
【0016】
上記態様において、負荷算出部は、所定期間においてサンプリングされた複数のスピンドルモータに掛かる負荷に基づいて、スピンドルモータに掛かる負荷を算出し、衝突検知閾値設定部は、算出されたスピンドルモータに掛かる負荷に応じた衝突検知閾値を設定してもよい。
【0017】
この態様によれば、負荷算出部は、所定期間においてサンプリングされた複数のスピンドルモータに掛かる負荷に基づいて、スピンドルモータに掛かる負荷を算出するため、適切に状況を把握することができる。そして、衝突検知閾値設定部は、算出されたスピンドルモータに掛かる負荷に応じて、適切な衝突検知閾値を設定するため、ロボットの衝突をより適切に検出することができる。
【0018】
本発明の一態様に係るロボットシステムは、ロボットのアームに取り付けられる工具を駆動させるスピンドルモータと、スピンドルモータを制御するスピンドルモータ制御装置と、ロボットの動作を制御するとともにスピンドルモータ制御装置に動作指示するロボット制御装置と、を備え、ロボット制御装置は、ロボットに掛かるトルクを監視するトルク監視部と、スピンドルモータに掛かる負荷を算出する負荷算出部と、スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する衝突検知閾値設定部と、少なくとも監視されているトルクと設定された衝突検知閾値とに基づいて、ロボットの衝突を判定する衝突判定部と、を含む。
【0019】
この態様によれば、ロボット制御装置において、負荷算出部は、ロボットのアームに取り付けられる工具を駆動させるスピンドルモータに掛かる負荷を算出することによって状況を把握し、衝突検知閾値設定部は、スピンドルモータに掛かる負荷に応じた衝突検知閾値を設定する。そして、衝突判定部は、少なくとも監視されているトルクと設定された衝突検知閾値とに基づいて、ロボットの衝突を判定する。その結果、ロボットの衝突を適切に検知して、すばやくロボットを停止させることできるため、アームに取り付けられた切削工具やロボット等の損傷を軽減及び防止することができる。
【発明の効果】
【0020】
本発明によれば、ロボットのアームに取り付けられる工具に掛かる負荷に基づいて状況を把握し、適切に衝突を検知することができるロボット制御装置及びロボットシステムを提供することができる。
【図面の簡単な説明】
【0021】
【
図1】本発明の一実施形態に係るロボットシステム10の概要を示す構成図である。
【
図2】本発明の一実施形態に係るロボットシステム10における各機能を示す機能ブロック図である。
【
図3】切削作業におけるスピンドルモータに掛かる負荷に関する電流波形の一具体例を示す図である。
【
図4】スピンドルモータに掛かる負荷に応じて設定される衝突検知閾値の一具体例を示す図である。
【
図5】スピンドルモータに掛かる負荷に応じて、衝突検知閾値が設定されるタイミングの一具体例を示す図である。
【
図6】本発明の一実施形態に係るロボットシステム10に含まれるロボット制御装置100が実行するロボットの衝突検知方法M100を示すフローチャートである。
【
図7】スピンドルモータに掛かる負荷に応じて、衝突検知閾値が設定されるタイミングの他の具体例を示す図である。
【発明を実施するための形態】
【0022】
以下、本発明の好適な実施形態について、添付図面を参照しながら具体的に説明する。なお、以下で説明する実施形態は、あくまで、本発明を実施するための具体的な一例を挙げるものであって、本発明を限定的に解釈させるものではない。また、説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する場合がある。
【0023】
<一実施形態>
[ロボットシステムの構成]
図1は、本発明の一実施形態に係るロボットシステム10の概要を示す構成図である。
図1に示されるように、ロボットシステム10は、ロボット20と、切削工具30と、スピンドルモータ31と、スピンドルモータ制御装置32と、ロボット制御装置100とを備える。
【0024】
ロボット20は、アームの先端にエンドエフェクタとして取り付けられた切削工具30を備えており、例えば、鋳物のバリ取りや溶接ビートの切削を行う産業用ロボットである。ロボット20は、ロボット制御装置100からの動作指示に基づいて、複数のサーボモータ21により各軸を回転させてアームを移動及び回転させて、切削工具30を適切な位置及び角度に移動させる。
【0025】
切削工具30は、例えば、エンドミルや正面フライス等を含み、スピンドルモータ31によって駆動し、鋳物のバリ取りや溶接ビートの切削を行う。
【0026】
スピンドルモータ31は、スピンドルモータ制御装置32によって制御され、切削工具30を駆動させる。
【0027】
スピンドルモータ制御装置32は、ロボット制御装置100からの回転開始指令によって指令された回転速度及び回転時間等に基づいて、スピンドルモータ31が回転するようにスピンドルモータ31を制御する。また、スピンドルモータ制御装置32は、スピンドルモータ31の回転時における電流値をスピンドルモータ31に掛かる負荷として、ロボット制御装置100に通知する。
【0028】
ロボット制御装置100は、ロボット20の動作を制御する。具体的には、ロボット制御装置100は、ロボット20における複数のサーボモータ21を制御することにより各軸を回転させてアームを移動及び回転させる。これにより、ロボット制御装置100は、ロボット20について、適切な位置姿勢となるように制御している。
【0029】
また、上述したように、ロボット制御装置100は、スピンドルモータ制御装置32に、スピンドルモータ31を回転させるように指令することにより、ロボット20のアームの先端に取り付けられた切削工具30の動作も制御している。
【0030】
さらに、ロボット制御装置100は、ロボット20の衝突を検知すれば、当該ロボット20及び切削工具30を停止させるように制御する。
【0031】
[ロボットの衝突検知について]
以下に、ロボット20の衝突を検知する機能について、詳しく説明する。
図2は、本発明の一実施形態に係るロボットシステム10における各機能を示す機能ブロック図である。
図2に示されるように、ロボット20の動作を制御するロボット制御装置100は、サーボモータ制御部110と、トルク監視部120と、負荷算出部130と、衝突検知閾値設定部140と、衝突判定部150と、記憶部160とを含む。
【0032】
サーボモータ制御部110は、ロボット20のアームを移動及び回転させるように、ロボット20の各軸を回転させる複数のサーボモータ21を制御する。具体的には、サーボモータ制御部110は、ロボット20の位置姿勢が所望の位置及び角度になるように、複数のサーボモータ21をどのように駆動させるか(位置、速度及び回転力等)について、必要な出力(電力)等を含む指令を送る。複数のサーボモータ21は、サーボモータ制御部110からの指令に基づいて駆動するが、実際に、どのように駆動したかについては、エンコーダによって、複数のサーボモータ21の位置、速度及び回転力等の情報が検出される。
【0033】
トルク監視部120は、ロボット20に掛かるトルクを監視する。具体的には、トルク監視部120は、上述したエンコーダによって検出された複数のサーボモータ21の情報に基づいて、ロボット20に掛かるトルクを監視する。すなわち、トルク監視部120は、実際に、複数のサーボモータ21がどのように駆動しているか(位置、速度及び回転力等)に基づいて、ロボット20に掛かるトルクを監視し、当該ロボット20の位置姿勢を含む状況を把握する。
【0034】
負荷算出部130は、ロボット20のアームに取り付けられる切削工具30を駆動させるスピンドルモータ31に掛かる負荷を算出する。具体的には、負荷算出部130は、スピンドルモータ31の回転時における電流値をスピンドルモータ31に掛かる負荷として、スピンドルモータ制御装置32を介して取得すればよい。例えば、負荷算出部130は、ロボット20が鋳物等の加工物を切削中(作業中)であれば、スピンドルモータ31の回転速度等に応じた電流値を取得し、切削中でなければ、スピンドルモータ31は停止しているため、0又は僅かな電流値(待機電流など)を取得する。
【0035】
衝突検知閾値設定部140は、負荷算出部130によって算出されたスピンドルモータ31に掛かる負荷に応じた衝突検知閾値を設定する。例えば、ロボット20に掛かるトルクは、ロボット20の位置姿勢や動作等に応じて掛かるものであって、通常、ロボット20の衝突がない場合には、各軸の回転角度やアームの位置及び傾き等を含むロボット20の位置姿勢等に基づいてロボット20に掛かるトルクを算出して、その値を推定することができる(推定トルク)。一方、ロボット20が障害物等に衝突した場合には、実際にロボット20に掛かるトルクは、上述したロボット20の衝突がない場合の推定トルクよりも大きくなる。
【0036】
ここで、ロボット20の衝突を検知したと判定できる衝突検知閾値を適切に設定すれば、ロボット20に掛かるトルクと当該設定された衝突検知閾値とを比較することにより、ロボット20が障害物等に衝突したことを検知することができる。また、実際にロボット20に掛かるトルクと、上述したロボット20の衝突がない場合の推定トルクとの差が大きくなった場合、ロボット20の衝突を検知したと判定するようにしても構わない。このようにロボット20の衝突を検知したと判定する場合には、当該差に対応する衝突検知閾値を設定すればよい。
【0037】
ただし、ロボット20に掛かるトルクは、ロボット20が鋳物等の加工物を切削中である場合、切削中でない場合に比べて大きくなるため、切削中か否かに応じて、ロボット20の衝突検知であると判定する衝突検知閾値を適切に設定する必要がある。
【0038】
すなわち、衝突検知閾値設定部140は、切削中か否かに応じて、衝突検知閾値を設定する。例えば、衝突検知閾値設定部140は、負荷算出部130によって算出されたスピンドルモータ31に掛かる負荷に基づいて、切削中か否かを判定し、当該判定に応じた衝突検知閾値を設定すればよい。
【0039】
図3は、切削作業におけるスピンドルモータに掛かる負荷に関する電流波形の一具体例を示す図である。
図3に示されるように、スピンドルモータ31の電流値は、急激に上昇してS点において最大となり、電流値が高いレベルを維持した状態で変動し、その後、急激に下降してE点において最小となっている。
【0040】
つまり、スピンドルモータ31の電流値が急激に上昇して、高いレベルを維持した状態で変動している期間は、切削中であり、電流値が0近郊で安定している期間は、切削中でない非切削中であることが分かる。
【0041】
ここで、衝突検知閾値設定部140は、負荷算出部130によって算出されたスピンドルモータ31に掛かる負荷に基づいて、切削中か否かを判定し、当該判定に応じた衝突検知閾値を設定すればよい。例えば、非切削中に対応する衝突検知閾値を第1閾値、及び切削中に対応する衝突検知閾値を第2閾値(第1閾値<第2閾値)として、予め適切な衝突検知閾値を記憶部160に記憶していても構わない。
【0042】
また、ロボット20において実際に切削作業を実行して、切削中及び非切削中におけるスピンドルモータ31に掛かる負荷に対応するロボット20に掛かるトルクをトルク監視部120によって収集し、当該収集されたロボット20に掛かるトルクに基づいて適切な衝突検知閾値を記憶部160に記憶しても構わない。例えば、切削中における、スピンドルモータ31に掛かる最大負荷と最小負荷、及びロボット20に掛かるトルクに基づく衝突検知閾値(第2閾値)を記憶部160に記憶する。また、非切削中における、ロボット20に掛かるトルクに基づく衝突検知閾値(第1閾値)を記憶部160に記憶する。
【0043】
なお、第1閾値及び第2閾値は、例えば、切削する対象となるワークの材質、切削する位置、及びロボット20や切削工具30の種類等の条件に応じて設定されるものであるため、これらの条件が変更される際に、記憶部160を更新するようにしても構わない。具体的には、異なる種類のワークを切削する際、最初の1回は、ロボット20に掛かるトルクをトルク監視部120によって収集して、適切な衝突検知閾値(第1閾値及び第2閾値)を算出すればよい。
【0044】
さらに、例えば、切削中においては、切削位置や角度、切削量及びタイミング等に応じて、スピンドルモータ31に掛かる負荷が異なったり、変動したりする場合があり、当該負荷に応じてロボット20に掛かるトルクにも影響がある。このため、切削中は、スピンドルモータ31に掛かる負荷に応じて、ロボット20に掛かるトルクに基づく衝突検知閾値をさらに詳細に設定することが好ましい。
【0045】
衝突検知閾値設定部140は、上述したように、例えば、非切削中に対応する衝突検知閾値を第1閾値、及び切削中に対応する衝突検知閾値を第2閾値(第1閾値<第2閾値)として設定し、さらに、スピンドルモータ31に掛かる負荷率に応じた閾値を設定する。ここで、第1閾値は、非切削中に対応する衝突検知閾値であって、ロボット20の衝突を検知する閾値のうち下限閾値であり、第2閾値は、切削中に対応する衝突検知閾値であって、ロボット20の衝突を検知する閾値のうち上限閾値であるとする。そして、スピンドルモータ31に掛かる負荷率に応じた閾値は、下記(数1)を用いて算出すればよい。
スピンドルモータ31に掛かる負荷率に応じた閾値=(第2閾値-第1閾値)×負荷率+第1閾値 ・・・(数1)
【0046】
さらに、スピンドルモータ31に掛かる負荷率は、例えば、スピンドルモータ31の回転開始から回転停止までの期間を所定期間単位で複数の区間に区切り、各区間におけるスピンドルモータ31に掛かる負荷(例えば、最大負荷及び最小負荷等)と、当該スピンドルモータ31が有する規定値(例えば、製品仕様として許容される最大負荷及び最小負荷等)とに基づいて、下記(数2)を用いて算出すればよい。
スピンドルモータ31に掛かる負荷率=(所定期間における最大負荷と最小負荷との差)/(予め規定された最大負荷と最小負荷との差) ・・・(数2)
【0047】
所定期間単位で複数の区間に区切られて、各区間におけるスピンドルモータ31に掛かる負荷(例えば、最大負荷及び最小負荷等)は、例えば、過去の実績として、メモリ等の記憶部に記憶され、スピンドルモータ31に掛かる負荷率を算出する際に用いられている。
【0048】
図4は、スピンドルモータに掛かる負荷に応じて設定される衝突検知閾値の一具体例を示す図である。
図4に示されるように、衝突検知閾値設定部140は、非切削中の場合には第1閾値(下限閾値)、上記(数2)を用いて算出された負荷率が90%以上の場合には第2閾値(上限閾値)、及び負荷率が10%以上90%未満の場合には上記(数1)を用いて算出されるスピンドルモータ31に掛かる負荷率に応じた閾値を、衝突検知閾値として設定する。
【0049】
なお、ここでは、スピンドルモータ31に掛かる負荷率を10%単位として、上記(数2)を用いて算出された結果の端数を繰り上げることとしているため、衝突検知閾値設定部140は、負荷率が10%未満の場合には負荷率を10%として算出された閾値を、衝突検知閾値として設定する。これにより、細かく頻繁に衝突検知閾値が変化することを回避し、演算処理や判定処理を簡略化することができるが、10%単位に限定されるものではない。例えば、ロボット20の衝突における当該ロボット20に掛かるトルクの変化が微細なものであれば、上記(数2)を用いて算出された結果について、10%よりも小さい単位で有効にし、要求される精度等に応じて適宜設定するようにすればよい。
【0050】
図5は、スピンドルモータに掛かる負荷に応じて、衝突検知閾値が設定されるタイミングの一具体例を示す図である。
図5に示されるように、スピンドルモータ31に掛かる負荷に応じた衝突検知閾値が設定され、ロボット20に掛かる実トルクと推定トルクとの差が当該衝突検知閾値を超えるか否かによって、ロボット20の衝突が判定される。
【0051】
具体的には、負荷算出部130は、各所定期間Tにおいて、サンプリングされた複数のスピンドルモータ31に掛かる負荷に基づいて、スピンドルモータ31に掛かる負荷を算出する。各所定期間Tにおいてサンプリングされた複数のスピンドルモータ31に掛かる負荷のうち、最大負荷と最小負荷とを抽出することによって、上記(数2)を用いて、各所定期間Tにおけるスピンドルモータ31に掛かる負荷を算出する。そして、衝突検知閾値設定部140は、負荷算出部130によって算出された各所定期間Tにおけるスピンドルモータ31に掛かる負荷に基づいて、上記(数1)を用いて、各所定期間Tにおける衝突検知閾値を設定する。すなわち、衝突検知閾値は、所定期間T毎に設定(更新)されることになる。
【0052】
図3に示されたように、スピンドルモータ31に掛かる負荷は、切削中に高いレベルで急激に変動するため、それに追従するように衝突検知閾値を設定すれば、ロボット20の衝突検知に関わる演算処理及び判定処理が複雑になったり、衝突検知閾値が急激に変動したりすることによって、適切に衝突検知を判定できない可能性がある。このため、上述したように、負荷算出部130は、各所定期間Tにおいて、サンプリングされた複数のスピンドルモータ31に掛かる負荷に基づいて、スピンドルモータ31に掛かる負荷を算出することによって、適切なタイミング(所定期間T毎)で衝突検知閾値を設定すること好ましい。なお、所定期間Tは、スピンドルモータ31に掛かる負荷の変動等を考慮して設定すればよい。
【0053】
[ロボットの衝突検知方法]
次に、ロボットの衝突を検知する方法について、具体的に詳しく説明する。
【0054】
図6は、本発明の一実施形態に係るロボットシステム10に含まれるロボット制御装置100が実行するロボットの衝突検知方法M100を示すフローチャートである。
図6に示されるように、ロボットの衝突検知方法M100は、ステップS110~S180を含み、各ステップは、ロボット制御装置100に含まれるプロセッサによって実行される。
【0055】
ステップS110では、ロボット制御装置100は、ロボットが切削中か否かを判定する。具体例としては、衝突検知閾値設定部140は、負荷算出部130によって算出されたスピンドルモータ31に掛かる負荷に基づいて、切削中か否かを判定する。
【0056】
ステップS110で非切削中であると判定された場合、ロボット制御装置100は、衝突検知閾値に第1閾値(下限閾値)を設定する(ステップS120)。
【0057】
ステップS110で切削中であると判定された場合、ロボット制御装置100は、スピンドルモータに掛かる負荷率を算出する(ステップS130)。具体例としては、衝突検知閾値設定部140は、スピンドルモータ31の回転開始から回転停止までのうちの各区間におけるスピンドルモータ31の最大負荷及び最小負荷と、当該スピンドルモータ31が有する規定値としての最大負荷及び最小負荷等とに基づいて、上述した(数2)を用いて算出すればよい。
【0058】
ステップS140では、ロボット制御装置100は、ステップS130で算出された負荷率を判定する。
【0059】
ステップS140で負荷率が90%以上であると判定された場合、ロボット制御装置100は、衝突検知閾値に第2閾値(上限閾値)を設定する(ステップS150)。
【0060】
ステップS140で負荷率が90%未満であると判定された場合、ロボット制御装置100は、衝突検知閾値にステップS130で算出された負荷率に応じた閾値を設定する(ステップS160)。具体例としては、衝突検知閾値設定部140は、上述した(数1)を用いて算出された閾値を衝突検知閾値に設定すればよい。
【0061】
ステップS170では、ロボット制御装置100は、ロボットに掛かる実トルクと推定トルクとの差を判定する。具体例としては、衝突判定部150は、トルク監視部120によって監視されている実際にロボット20に掛かるトルク(実トルク)と、ロボット20の衝突がない場合のロボット20の位置姿勢等に基づいて算出されるロボット20に掛かるトルク(推定トルク)との差について、ステップS120、S150又はS160で設定された衝突検知閾値と比較する。
【0062】
ステップS170で当該差が衝突検知閾値未満であると判定された場合、ロボット制御装置100は、ステップS110の処理に戻る。具体的には、衝突判定部150は、ロボット20の衝突を検知していないと判定する。
【0063】
ステップS170で当該差が衝突検知閾値以上であると判定された場合、ロボット制御装置100は、ロボットの衝突を検知したと判定する(ステップS180)。具体的には、衝突判定部150は、ロボット20が障害物等に衝突したことを検知する。そして、ロボット制御装置100は、ロボット20及び切削工具30を停止するように制御する。
【0064】
以上のように、本発明の一実施形態に係るロボット制御装置100、ロボットシステム10及びロボットの衝突検知方法M100によれば、負荷算出部130は、ロボット20のアームに取り付けられる切削工具30を駆動させるスピンドルモータ31に掛かる負荷を算出することによって状況を把握し、衝突検知閾値設定部140は、スピンドルモータ31に掛かる負荷に応じた衝突検知閾値を設定する。そして、衝突判定部150は、少なくとも監視されているロボット20に掛かるトルクと衝突検知閾値設定部140によって設定された衝突検知閾値とに基づいて、ロボット20の衝突を判定する。その結果、ロボット20の衝突を適切に検知して、すばやくロボット20を停止させることできるため、アームに取り付けられた切削工具30やロボット等の損傷を軽減及び防止することができる。
【0065】
なお、本実施形態では、
図5を用いて説明したように、衝突検知閾値は、所定期間T毎に設定(更新)されていたが、さらに、リアルタイムに検出されたスピンドルモータ31に掛かる負荷を考慮するようにしても構わない。上述したように、所定期間Tは、適宜設定すればよいが、所定期間Tにおいてスピンドルモータ31に掛かる負荷をサンプリングし、当該所定期間Tにおける負荷率及び衝突検知閾値を算出すると、所定期間T毎に算出された衝突検知閾値を設定(更新)するまでに、タイムラグが生じる場合がある。このため、衝突検知閾値を現時点の状況により適した値となるように、リアルタイムに検出されたスピンドルモータ31に掛かる負荷を考慮して、負荷率及び衝突検知閾値を算出する。
【0066】
図7は、スピンドルモータに掛かる負荷に応じて、衝突検知閾値が設定されるタイミングの他の具体例を示す図である。
図7に示されるように、スピンドルモータ31に掛かる負荷を反映した衝突検知閾値が設定されている。
【0067】
具体的に、スピンドルモータ31に掛かる負荷率は、例えば、スピンドルモータ31の回転開始から回転停止までの期間を所定期間単位で複数の区間に区切り、各区間におけるスピンドルモータ31に掛かる負荷(例えば、最大負荷及び最小負荷等)に、さらに、リアルタイムに検出されたスピンドルモータ31に掛かる負荷を考慮する。そして、上述した(数2)と同様に、当該スピンドルモータ31が有する規定値(例えば、製品仕様として許容される最大負荷及び最小負荷等)とに基づいて、下記(数3)を用いて算出すればよい。
スピンドルモータ31に掛かる負荷率={(所定期間における2つの負荷)/2と所定期間における最小負荷との差}/(予め規定された最大負荷と最小負荷との差) ・・・(数3)
【0068】
なお、所定期間における2つの負荷とは、例えば、所定期間の複数区間においてそれぞれ取得されたスピンドルモータ31に掛かる負荷のうち、連続する2つの負荷、及び現在の負荷と現在からt秒前や直近の負荷を含んでもよい。
【0069】
このように、リアルタイムに検出されたスピンドルモータ31に掛かる負荷を考慮することによって、スピンドルモータ31に掛かる負荷を反映した衝突検知閾値が設定され、より適切に現時点の状況を把握することができる。その結果、より適切に衝突検知閾値を設定することができ、ロボット20の衝突をより適切に検出することができる。
【0070】
なお、本実施形態では、ロボット20のアームに取り付けられるエンドエフェクタとして切削工具30を例に挙げて、ロボット20が鋳物のバリ取りや溶接ビートを切削することを説明したが、これに限定されるものではない。例えば、ロボット20のアームに、エンドエフェクタとして適切な工具を取り付けて、穴あけ、面取り、エミンドル(切削加工の一種)、研磨、リーマ(穴あけの仕上げ)、カッティング等に、本発明を適用しても構わない。
【0071】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【0072】
10…ロボットシステム、20…ロボット、21…サーボモータ、30…切削工具、31…スピンドルモータ、32…スピンドルモータ制御装置、100…ロボット制御装置、110…サーボモータ制御部、120…トルク監視部、130…負荷算出部、140…衝突検知閾値設定部、150…衝突判定部、160…記憶部、M100…ロボットの衝突検知方法、S110~S180…ロボットの衝突検知方法M100の各ステップ