(58)【調査した分野】(Int.Cl.,DB名)
互いに回転可能に連結された複数のアームを駆動することにより予め定められている作業サイクルを繰り返し実行可能な多関節型のロボットを制御するためのロボットシステムであって、
前記ロボットの各軸にそれぞれ設けられ、各軸を駆動するためのモータおよび前記モータの出力を出力軸側に連結されている前記アームに伝達する歯車機構を有する複数の駆動部と、
複数の前記駆動部に対し、当該駆動部の前記モータを駆動するための駆動指令を個別に出力する指令出力手段と、
前記作業サイクル中に複数の前記駆動部に対して前記駆動指令が出力されたか否かを個別に判定する判定手段と、
複数の前記駆動部のうち前記作業サイクル中に前記駆動指令が出力されていないと判定された前記駆動部に対し、当該駆動部の前記モータを駆動するための補助駆動指令を出力する補助指令出力手段と、
を備えることを特徴とするロボットシステム。
前記作業サイクルには、前記アームを予め設定される教示点間で移動させる際、前記アームの移動軌跡を相対的に重視した作業動作と、前記アームの移動速度を相対的に重視した移動動作とが含まれ、
前記判定手段は、前記アームの移動が前記作業動作あるいは前記移動動作のいずれであるかをさらに判定し、
前記補助指令出力手段は、前記作業サイクル内の前記移動動作中に、前記歯車機構の歯の噛み合い位置を少なくとも1歯以上移動させる補助駆動指令を出力することを特徴とする請求項1記載のロボットシステム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、ロボット等の産業機器は、一般的に予め耐用年数が想定されており、その耐用年数に耐えうる設計がなされている。具体的には、上記したように複数の駆動部を有する多関節型のロボットの場合、各駆動部の耐用年数が概ね一致するように設計されている。
しかしながら、実際にロボットを設置して予め定められている作業サイクルを繰り返し実行させた際、上記したように耐用年数が概ね一致するはずの駆動部のうち特定の駆動部が想定よりも短い期間で故障し、ロボット全体としての耐用年数の低下を招くことがあった。
【0005】
本発明は、上記事情に鑑みてなされたものであり、その目的は、複数の駆動部を備える多関節型のロボットにおいて特定の駆動部における故障を抑制し、ロボットの耐用年数の低下を招くおそれを低減することができるロボットシステムを提供することにある。
【課題を解決するための手段】
【0006】
発明者は、故障したロボットを調査した結果、想定よりも短い期間で故障する駆動部が作業サイクル中に動作していない駆動部に集中していることを見いだした。多関節型のロボットの場合、様々な作業を実行する可能性があることから汎用性を考慮して複数の駆動部が設けられているものの、作業内容によっては全く動作しない駆動部も存在する。ただし、駆動部が動作しなければ歯車機構も動作しないことから、歯車機構の歯が摩耗したり破損したりするおそれは小さく、一般論で言えば、動作していない駆動部に故障が集中する状況は考えにくい。そこで、発明者は、駆動部に故障が生じる過程をさらに詳細に解析した結果、動作していない駆動部に故障が集中するのは、作業内容に対して可動軸の構成に冗長性のある多関節型のロボットに特有の現象であることを見いだした。
【0007】
多関節型のロボットにおいては、他の駆動部の動作やアームの移動に起因する振動が動作していない駆動部に伝達される。そして、ロボットは予め定められている作業サイクルを繰り返し実行することから、動作していない駆動部には繰り返し振動が伝達されることになる。その振動は、動作していない駆動部の歯車機構にも伝達される。歯車機構の潤滑剤としては粘度が比較的大きい潤滑油が一般的に用いられており、その潤滑油は、歯車機構が動作していない状況では固体に近い性質となっている。このため、歯車機構に振動が伝達されると、その振動によって潤滑油が部分的に欠落し、歯車機構の歯の間に潤滑油が存在しない欠落領域が比較的小さい範囲でまず発生する。この欠落領域は、作業サイクルが繰り返し実行されることによって、すなわち、振動が繰り返し伝達されることによって徐々に拡大していく。その際、噛み合った歯同士が直接的に接触する状態となり、その状態でさらに振動が繰り返し伝達された結果、直接的に接触した歯が損傷し、駆動部の故障を招いていたのである。
【0008】
そこで、請求項1記載の発明では、ロボットシステムは、多関節型のロボットの各軸を駆動するためのモータおよび当該モータの出力を伝達するための歯車機構を有する複数の駆動部に対し、作業サイクル中に各駆動部に対して駆動指令が出力されたか否かを個別に判定し、作業サイクル中に駆動指令が出力されていないと判定された駆動部に対し、当該駆動部のモータを駆動させるための補助駆動指令を出力する。つまり、作業サイクル中には本来であれば動作しない駆動部を動作させている。
【0009】
これにより、駆動部つまりは歯車機構が動作すれば潤滑剤がその都度拡散され、発生した欠落領域に他の部位から潤滑剤が補填されることから発生した欠落領域の補修、欠落領域の拡大の防止、ならびに、潤滑剤が補填されることから欠落領域の発生そのものの抑制が可能となる。その結果、歯車機構の歯が直接的に接触することが無くなり、ロボットの動作に伴って振動が伝達されたとしても歯車の損傷や破損等が生じるおそれを低減することができる。したがって、複数の駆動部を備える多関節型のロボットにおいて特定の駆動部における故障が抑制され、ロボットの耐用年数の低下を招くおそれを低減することができる。
【0010】
請求項2記載の発明では、アームを予め設定される教示点間で移動させる際にアームの移動軌跡を相対的に重視した作業動作とアームの移動速度を相対的に重視した移動動作とのうち、移動動作中に、歯車機構の歯の噛み合い位置を少なくとも1歯以上移動させる補助駆動指令を出力する。なお、作業動作とは、アームを教示点間で移動させる際、ワークを掴んだり組み付けたりする等の作業を行うために移動軌跡を相対的に重視してアームを滑らかに移動させる制御を行うときの動作であり、一般的にはCP(Continuous Path)動作と呼ばれている。また、移動動作とは、アームを教示点間で移動させる際、移動速度を相対的に重視して教示点間を素早く移動させる制御を行うときの動作、換言すると、軌跡をそれほど重視しない動作であり、一般的にはPTP(Point To Point)動作と呼ばれている。以下、便宜的に、作業動作をCP動作、移動動作をPTP動作と称する。
【0011】
上記したように作業サイクル中に動作しなかった駆動部を動作させることでその駆動部の故障を抑制することができるものの、ロボットの場合、いつ駆動部を動作させるかを考慮する必要がある。すなわち、ロボットは所定の作業サイクルを繰り返し実行することから、例えば一回の作業サイクルが終了する毎に対象となる駆動部を動作させると、次の作業サイクルを実行するまでに本来の作業では不要な時間を要することになり、作業を行うために要する時間(以下、タクトタイムと称する)が長くなる。そして、タクトタイムが長くなると、所定の作業量をこなすためには余分に時間が掛かる一方、予め作業時間が決められている場合には実行可能な作業サイクル数が低下することになり、生産効率が低下する。このため、ロボットにおいては、タクトタイムに影響を与えないように対象となる駆動部を動作させることが求められる。
【0012】
さて、ロボットの作業サイクルに上記したCP動作やPTP動作が含まれることは一般的に知られている。このため、タクトタイムに影響を与えることなく、また、ロボットの本来の作業に影響を与えることなく(アームの軌跡に大きな影響を与えることなく)駆動部を動作させるには、PTP動作中に動作させることがまず考えられる。しかし、潤滑剤を満遍なく拡散させるために例えば歯車機構の歯の噛み合い位置を一回転させるような動作を行わせると、アームが大きく移動してしまい、いくら軌跡をそれほど重視していないPTP動作中といえども、アームやハンドあるいはハンドに保持されたワーク等が周辺設備に衝突するおそれがある。つまり、どの時期に駆動部を動作させればよいかは、PTP動作中であればよいといった単純な問題ではない。
【0013】
ここで、発明者による解析結果が有効活用されることになる。すなわち、発明者によって、潤滑剤の欠落領域が上記したように比較的小さい範囲でまず発生すること、さらに、発生当初の欠落領域が1歯未満程度の大きさであることが見いだされている。このため、発生当初の欠落領域に潤滑剤を拡散させるためには、潤滑剤が欠落していない部位に噛み合わせればよいこと、すなわち、歯車機構の歯の噛み合い位置を1歯以上移動させればよいことが明らかになった。換言すると、発生当初の欠落領域に対処するためには、アームを大きく動かす必要がないことが明らかになった。さらに、噛み合い位置を1歯以上動かせばよいことから、PTP動作中に十分実施可能であると考えられる。
【0014】
このような解析結果の裏付けに基づいて、請求項2記載のロボットシステムでは、対象となる駆動部を、PTP動作中に歯車機構の歯の噛み合い位置を1歯以上移動させるように動作させている。これにより、発生当初の欠落領域に潤滑剤を拡散させることが可能となり、欠落領域の拡大を抑制することができるとともに、駆動部が動作すれば潤滑剤が拡散されることから、欠落領域の発生そのものを抑制することができる。また、潤滑剤を拡散させるための動作はPTP動作中に実施可能な動作であることから、PTP動作中に駆動部の動作が完了する。したがって、タクトタイムが長くなる等の影響を与えることが無く、生産効率が低下するおそれを抑制することができる。
【0015】
請求項3記載の発明では、判定手段は、作業サイクル中に複数のPTP動作が存在する場合、最も動作時間の長いPTP動作を判定し、補助指令出力手段は、最も動作時間の長いPTP動作中に補助駆動指令を出力する。動作時間が長ければ、補助駆動指令により動作させた駆動部を確実に本来の位置まで戻すことができるようになることに加えて、そのPTP動作中での噛み合い位置の移動量の増加を図ることができるので、欠落領域の発生および拡大をさらに抑制することができる。
【0016】
請求項4記載の発明では、ワークを移送していないと判定された期間に補助駆動指令を出力する。ロボットは、与えられた指令に基づいて動作することから、通常は対象となるワークがどのようなものであるかを自身で把握することができない。そこで、ワークを移送していないと判定された時期に補助駆動指令を出力することにより、本来の作業サイクルでは想定していない駆動部が動作したとしても、その動作に起因してワークが設備装置に衝突する等の不具合を生じさせることがない。
【発明を実施するための形態】
【0018】
(第1実施形態)
以下、本発明の第1実施形態について、
図1〜
図6を参照しながら説明する。
図1に示すように、一般的な産業用に用いられるロボットシステム1は、多関節型のロボット2、ロボット2を制御するコントローラ3、コントローラ3に接続されたティーチングペンダント4を備えている。
【0019】
ロボット2は、いわゆる6軸の垂直多関節型ロボットとして周知の構成を備えており、ベース5上に、Z方向の軸心を持つ第1軸(J1)を介してショルダ6が水平方向に回転可能に連結されている。ショルダ6には、Y方向の軸心を持つ第2軸(J2)を介して上方に延びる下アーム7の下端部が垂直方向に回転可能に連結されている。下アーム7の先端部には、Y方向の軸心を持つ第3軸(J3)を介して第一上アーム8が垂直方向に回転可能に連結されている。第一上アーム8の先端部には、X方向の軸心を持つ第4軸(J4)を介して第二上アーム9が捻り回転可能に連結されている。第二上アーム9の先端部には、Y方向の軸心を持つ第5軸(J5)を介して手首10が垂直方向に回転可能に連結されている。手首10には、X方向の軸心を持つ第6軸(J6)を介してフランジ11が捻り回転可能に連結されている。
【0020】
ベース5、ショルダ6、下アーム7、第一上アーム8、第二上アーム9、手首10およびフランジ11は、ロボット2のアームとして機能し、アームの先端となるフランジ11には、図示は省略するが、ハンド(エンドエフェクタとも呼ばれる)が取り付けられる。ハンドは、例えば図示しないワークを保持して移送したり、ワークを加工する工具等が取り付けられる。ロボット2に設けられている各軸(J1〜J6)には、それぞれに対応して駆動部23(
図2参照)が設けられている。
【0021】
コントローラ3は、
図2に示すように、CPU12、ROM13およびRAM14、駆動回路15、位置検出回路16等を備えている。CPU12は、ROM13あるいはRAM14等に記憶されているプログラムに基づいてコントローラ3全体を制御するとともに、周知のように、ロボット2に予め定められている作業サイクルを繰り返し実行させるための各種の指令を出力する。このCPU12は、指令部17、判定部18および補助指令部19を有している。これら指令部17、判定部18および補助指令部19は、本実施形態ではCPU12により実行されるプログラムによってソフトウェア的に構成されている。なお、指令部17、判定部18および補助指令部19は、ハードウェア的に構成してもよい。
【0022】
指令部17は、ロボット2の駆動部23を動作させるための駆動指令、つまり、モータ20(
図2参照)を駆動するための実行命令を各駆動部23に対して個別に出力する。指令部17は、特許請求の範囲に記載した指令手段を構成している。
判定部18は、作業サイクル中にロボットの駆動部23に対して駆動指令が出力されたか否かを個別に判定するとともに、作業サイクル中のアームの移動が作業動作(前述したCP動作)あるいは移動動作(前述したPTP動作)のいずれであるか、PTP動作中にワークを保持しているか否かをさらに判定する。判定部18は、特許請求の範囲に記載した判定手段を構成している。以下、作業動作をCP動作、移動動作をPTP動作と称して説明する。
【0023】
補助指令部19は、作業サイクル中に駆動指令が出力されていないと判定された駆動部23に対してモータを駆動するための補助駆動指令を出力する。本実施形態では、補助駆動指令として、後述する減速機22の歯車機構の歯の噛み合い位置を1歯以上移動させることができる補助駆動指令を出力する。この場合、例えば一般的な構成のロボット2では、第4軸(J4)のギア比=100、第5軸(J5)の中心からハンド先端までの距離=200mmとすると、モータを1回転(モータの出力軸が1回転。歯車機構を一回転させるわけではない)させることでハンドの先端は最大で約13mm(2π÷100×200=4π)しか動作しない。補助指令部19は、特許請求の範囲に記載した補助指令手段を構成している。
【0024】
駆動回路15は、CPU12から出力された指令をロボット2に与えるための電気信号に変換する例えばインバータ回路等により構成されている。ロボット2は、第1軸J1〜第6軸J6をそれぞれ駆動するための複数のモータ20、および各モータ20に対応して設けられているエンコーダ21を備えている。位置検出回路16は、モータ20の回転位置を検出するエンコーダ21からの信号が入力され、モータ20の回転位置を検出する。CPU12は、位置検出回路16で検出したモータ20の回転位置に基づいて、モータ20をフィードバック制御する。
【0025】
ロボット2では、モータ20の出力は、減速機22を介してアームに伝達される。これらモータ20および減速機22は、駆動部23を構成している。なお、
図2では、各駆動部23によって駆動されるショルダ6、下アーム7、第一上アーム8、第二上アーム9、手首10およびフランジ11を便宜的にアームと示している。本実施形態では、減速機22としていわゆる波動歯車装置を採用している。
【0026】
この減速機22は、
図3に示すように、内周面に内歯30が形成された円環状の剛性内歯歯車31、この剛性内歯歯車31の内側に同心状に設けられ、外歯32を有する可撓性外歯歯車33を備えている。可撓性外歯歯車33は、図示は省略するが周知のように全体形状としてカップ状に形成されており、カップ状の底部に出力軸が取り付けられる。また、剛性内歯歯車31の内歯30と可撓性外歯歯車33の外歯32との間には、潤滑剤としての潤滑油W(
図5参照)が充填されている。この潤滑油Wは、一般的に比較的粘性が高く、剛性内歯歯車31と可撓性外歯歯車33とが動作していれば歯車間に拡散して潤滑剤として機能する一方、動作していない状態では、固体に近い状態となる。なお、潤滑剤としては、油性のものに限らず、他のものであっても良い。
【0027】
外歯32の内周側にはウエーブベアリング34が配設されている。このウエーブベアリング34は、可撓性外輪35、可撓性内輪36、可撓性外輪35と可撓性内輪36との間に配列された複数個のボール37とから構成されている。ウエーブベアリング34の内側、つまり可撓性内輪36の内周には、楕円形の剛性カム38が固定されている。この剛性カム38には、モータ20の出力軸を連結するためのキー溝39付きの嵌合孔40が形成されている。
【0028】
このような構成の減速機22は、ウエーブベアリング34の可撓性内輪36および可撓性外輪35が楕円形に撓められ、可撓性外輪35が楕円形に撓むことによって、外歯32形成部分が楕円形に撓められる。その結果、楕円形に撓んだ部分の長径方向両端部の2箇所において、外歯32が部分的に剛性内歯歯車31の内歯30に噛み合うようになる。そして、剛性カム38がモータ20により回転駆動されると、可撓性外歯歯車33の楕円形に撓んだ部分の長径部分が周方向に移動し、外歯32の内歯30に対する噛み合い位置が周方向に移動する。このとき、外歯32が内歯30よりも例えば2枚少なく設定されているので、噛み合い位置の移動に伴って、剛性内歯歯車31と可撓性外歯歯車33との間で相対的な回転が発生する。そして、可撓性外歯歯車33が出力軸となってモータ20の減速回転が取り出される。
【0029】
図1に示すように、ティーチングペンダント4は、例えば薄型の略矩形箱状に形成されており、概ね使用者が携帯あるいは所持して操作可能な程度の大きさとなっている。ティーチングペンダント4には、各種キースイッチやタッチパネルが設けられており、使用者は、それらキースイッチやタッチパネル等により種々の入力操作を行う。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチ等の操作により入力された操作信号等の情報はティーチングペンダント4からコントローラ3へ送信される。
【0030】
ここで、ロボット2が実行する作業サイクルについて説明する。
作業サイクルは、予め定められている教示点を経由して、例えばワークの移送等を繰り返し行う作業である。例えば
図4は、教示点P1を初期位置として、教示点P2まで移動した後、教示点P3にてワークをピックアップし、ワークを保持した状態で教示点P2、P1を経由した後、教示点P4にてワークをプレースする作業サイクルを模式的に示している。より具体的には、教示点P1−P2間ではアームが水平方向に大きく移動し、教示点P2−P3間およびP1−P4間ではアームが垂直に移動している。
【0031】
この場合、アームが水平移動する際には例えば第1軸(J1)が駆動され、アームが垂直移動する際には例えば第2軸(J2)、第3軸(J3)や第5軸(J5)が駆動されるものとする。また、アームが水平方向に大きく移動する教示点P1−P2間では、移動速度を重視したPTP動作が行われ、ワークを所定位置からピックアップする教示点P2−P3間およびワークを所定位置にプレースする教示点P1−P4間では、位置決めの正確性を増すために移動軌跡を重視したCP動作が行われているものとする。
【0032】
この
図4に示す作業サイクルでは、アームを捻る動作(第4軸(J4)を駆動する動作)が必要ないため、第4軸(J4)は動作していない。換言すると、第4軸(J4)に対応して設けられている駆動部23には、作業サイクル中に駆動指令が出力されていない。以下、本実施形態では第4軸(J4)に対応して設けられている駆動部23のように作業サイクル中に動作しない駆動部23を、便宜的に非動作駆動部と称し、動作しない状態を非動作状態と称する。
【0033】
さて、非動作駆動部では、作業サイクルが繰り返し実行されると、
図5(a)〜(d)に示すように、剛性内歯歯車31の内歯30と可撓性外歯歯車33の外歯32とが直接接触する可能性のある状態となるおそれがある。具体的には、内歯30と外歯32との間に充填されている潤滑油Wは、通常であれば
図5(a)に示すように拡散しているものの、非動作状態が続くと潤滑油Wが徐々に固体に近い状態となる。その状態で作業サイクルが繰り返し実行されると、つまり、非動作駆動部に他の駆動部23やロボット2自体からの振動が伝達されると、
図5(b)に示すように、概ね1歯未満程度の大きさで潤滑油Wが部分的に欠落し、欠落領域Rが形成される。この
図5(b)は、発生当初の欠落領域Rの状態を示している。
【0034】
この状態でさらに作業サイクルが繰り返し実行されると、欠落領域Rは、
図5(c)に示すように徐々に拡大していく。このように欠落領域Rが大きくなると、内歯30と外歯32とが直接的に接触するようになる。そして、作業サイクルが繰り返し実行され、振動が伝達されると、内歯30と外歯32とが接触を繰り返すようになり、その結果として、
図5(d)に示すように、例えば内歯30が欠ける等の破損部位Kが形成される。この状態では、破損部位Kがあることから、例えば作業サイクルが変更されて非動作駆動部が駆動されるようになると正常に動作せず、故障となってしまう。
【0035】
このように、多関節型のロボット2では、特定の駆動部23が全く動作しない状態で作業サイクルが繰り返し実行されることがあり、動作していないことから本来であれば耐用年数に影響がないと思われるその駆動部23において、耐用年数が反って低下してしまうという現象が起こり得る。そして、この現象は、作業内容に対して駆動軸が冗長性を備えた構成となっている多関節型のロボット2に特有の問題である。
【0036】
そこで、ロボットシステム1は、以下のようにしてこの問題に対処している。以下、作業サイクル中の処理の流れとともに説明する。
図6に示す各変数の意味は以下の通りであり、また、上記したように本実施形態では非作動軸として第4軸(J4)を想定しているため第4軸(
図6では「4軸目」と記載する)を対象として説明する。
・N:第4軸を動作させるための駆動指令の出力(補助駆動指令の出力)を、作業サイクル中の何番目のPTP動作で行うか。なお、N=0の場合はどのPTP動作にも該当しないため、補助駆動指令の出力は行われない。
【0037】
・F:第4軸(J4)が動作したか否かを示すフラグ。作業サイクル開始時に0にリセットされ、第4軸が動作すると1にセットされる。
・M:作業サイクル中の何回目のPTP動作であるかを表すカウンタ。MとNとを比較して、PTP動作中に第4軸(J4)を動作させるか否かを判定する。
・N1:次の作業サイクルにおいて、何回目のPTP動作で補助駆動指令を出力するのかを示す変数。本実施形態では、一番動作時間が長いPTP動作が選択される。
・TMAX:作業サイクル中における最も動作時間の長いPTP動作の動作時間を格納するための変数。
・H:ハンド(エンドエフェクタ)でワークを保持していない状態(ワークを移送していない状態)でPTP動作が行えたか否かを示すフラグ。作業サイクル開始時に0にリセットされ、非保持中にPTP動作が行えれば1にセットされる。非保持中のPTP動作にて優先的に補助駆動指令を出力するために参照する。
【0038】
・T:実行されるPTP動作の動作時間を格納するための変数。
ロボットシステム1のコントローラ3は、
図6に示す処理を繰り返し実行しており、作業サイクルを開始すると、Nを0とし(S1)、Fを0とし(S2)、Mを0とし(S3)、N1を0とし(S4)、TMASを0とし(S5)、Hを0とする(S6)ことで、各変数を初期化する。続いて、コントローラ3は、実行命令が動作命令(モータ20を駆動するための駆動指令)であるか否かを判定し(S7)、動作命令でない場合には(S7:NO)、ステップS11に移行する。なお、実行命令としては、動作命令以外に、フローを分岐する制御命令等があるが、説明の簡略化のために、ここでは制御命令については詳細な説明を省略する。
【0039】
コントローラ3は、ステップS7において実行命令が動作命令であると判定すると(S7:YES)、4軸目が動作するか否かを判定し(S8)、4軸目が動作する場合には(S8:YES)、Fを1とする(S9)。これにより、この作業サイクル中には4軸目が動作することが示される。一方、4軸目が動作しない場合には(S8:NO)、Fを1とすることなくステップS10に移行して、当該動作における起動補完方法がPTPであるか否か、すなわち、PTP動作であるか否かを判定する。そして、PTP動作でなければ(S10:NO)、ステップS11に移行する。
【0040】
これに対して、コントローラ3は、起動補完方法がPTPである場合には(S10:YES)、MをM+1とインクリメントして(S17)、今回のPTP動作が作業サイクル中の何番目のPTP動作であるかを記憶する。なお、ステップS9でF=1つまり4軸目が動作する場合であってもPTP動作であれば(S10:YES)ステップS17に移行するのは、そのPTP動作の動作時間等を予め計測しておき、今後の作業サイクルにおいて補助駆動指令の出力対象となるかを判定するためである。
【0041】
続いて、コントローラ3は、M=Nであるかを判定し(S18)、今回はN=0、M=1であるため(S18:NO)、Tに動作時間(今回のPTP動作の動作時間)を記憶する(S20)。続いて、エンドエフェクタIOがOFFであるか否かを判定し(S21)、エンドエフェクタIOがOFF、つまり、エンドエフェクタが開放されてワークを保持していない状態であれば(S21:YES)、現時点ではH=0であるので(S22:YES)、Hを1とし(S23)、N1に現在のMを代入し(S24)、TMAXに現在のTを代入した後(S25)、ステップS11に移行する。つまり、今回のPTP動作がワークを保持していない状態で行えたことを記憶する(Hを1とする)とともに、現時点でのTをPTP動作の最大の動作時間として記憶する(TMAX←Tとする)。なお、Tは、ステップS25において初期化される。
【0042】
一方、コントローラ3は、エンドエフェクタIOがOFFでない場合には(S21:NO)、現時点ではH=0であるので(S26:YES)、つまり、ワークを保持していない状態のPTP動作が現時点ではまだ特定されていないので、TがTMAXを超えていれば(S27:YES)、ステップS24、S25を実行した後、ステップS11に移行する。これにより、今回のPTP動作はワークを保持している状態で行われたものであるものの、補助駆動指令の出力することが可能なPTP動作として一旦記憶する。
【0043】
ステップS11に移行すると、コントローラ3は、1サイクルが終了したか否かを判定し、1サイクルが終了していなければ(S11:NO)、次の行(次の命令)を実行し(S15)、ステップS7に移行して、上記したように4軸目が動作するか、PTP動作であるか等の判定を繰り返す。そして、PTP動作(S10:YES)中にエンドエフェクタIOがOFF(S21:YES)であって、ステップS22においてH=0でなければ、すなわち、過去にワークを保持しない状態で行われたPTP動作があってH=1とされている場合には(S22:NO)、今回のTがTMAXを超えていれば(S27:YES)、N1にMを代入することで(S24)、補助駆動命令を出力する対象とうなるPTP動作の順番を、より動作時間の長いものに更新する。そして、現在のTをTMAXに代入する(S25)。なお、過去に計測したPTP動作の動作時間のほうが今回の動作時間よりも長ければ、つまり、TがTMAXを超えていなければ(S27:NO)、そのままステップS11に移行するので、PTP動作の順番は更新されない。また、エンドエフェクタIOがOFFでない場合において(S21:NO)、H=0でなければ(S26:NO)、つまり、既にワークを保持しない状態で実行されたPTP動作を特定してH=1とされていれば、やはりPTP動作の順番を更新することなく、ステップS11に移行する。
【0044】
このように、コントローラ3は、作業サイクル中の各PTP動作について、その動作時間とワークを保持しているか否かを判定し、動作時間が長いもの、また、ワークを保持していないものを優先して、何番目のPTP動作が補助駆動命令を出力するものとして適当であるかを判定している。
さて、コントローラ3は、ステップS11において1サイクルが終了したと判定すると(S11:YES)、F=0であるかを判定する(S12)。つまり、その作業サイクル中に4軸目が動作したか否かを判定する。そして、F=0でなければ(S12:NO)、作業サイクル中に4軸目が動作していることから、Nを0に初期化した後(S14)、次のサイクルを実行して(S16)、ステップS2に移行する。
【0045】
これに対して、コントローラ3は、F=0であれば(S12:YES)、NにN1を代入して(S13)、つまり、次の作業サイクルで4軸目を動作させるためのPTP動作の順番を記憶して、次のサイクルを実行し(S16)、ステップS2に移行する。そして、次の作業サイクルにおいて、PTP動作が行われた際(S10:YES)、MをM+1として(S17)、つまり、PTP動作の順番を作業サイクルの開始からインクリメントしていき、M=Nとなったとき(S18:YES)、すなわち、前回の作業サイクルで記憶した順番のPTP動作のときに、4軸目を動作させる(S19)。これにより、PTP動作中、且つ、ワークを保持していないことを優先した状態で、4軸目が動作する。
【0046】
このように、ロボットシステム1では、本来の作業サイクルでは動作しない非動作駆動部である第4軸(J4)に対応する駆動部23を動作させることにより、非動作状態で振動が伝達されることにより発生する欠落領域Rに対して、発生当初には潤滑油Wを補充することができ、また、非動作駆動部を駆動させて潤滑油Wの拡散を促進しておくことで、欠落領域Rの発生そのものを抑制している。
【0047】
以上説明した本実施形態によれば、次のような効果を奏する。
作業サイクル中に各軸が動作したか否か、つまり、各駆動部23に対して駆動指令(動作命令)が出力されたか否かを判定し、駆動指令が出力されていないと判定された駆動部23である非動作駆動部に対し、当該駆動部23のモータ20を駆動させるための補助駆動指令(動作命令)を出力する。これにより、本来の作業サイクル中には動作しない駆動部23つまりは減速機22が動作し、その動作に伴って減速機22内の潤滑油Wの拡散が促進され、欠落領域Rの発生および拡大が抑制される。すなわち、剛性内歯歯車31と可撓性外歯歯車33の歯が直接的に接触することが無くなる。したがって、非動作駆動部に振動が伝達されたとしても、歯の損傷や破損等が生じるおそれが低減され、非動作駆動部つまり特定の駆動部23における故障の発生を抑制でき、ロボットの耐用年数の低下を招くおそれを低減することができる。
【0048】
非動作駆動部を剛性内歯歯車31と可撓性外歯歯車33との噛み合い位置が1歯以上移動するように動作させているので、
図5に示したような発生当初の欠落領域Rに潤滑油Wを拡散させることができ、欠落領域Rの拡大を抑制することができる。また、駆動部23が動作すれば潤滑油Wの拡散が促進されることから、欠落領域Rの発生そのものを抑制することができる。
【0049】
このとき、PTP動作中に非動作駆動部を動作させているので、タクトタイムが長くなる等の影響を与えることが無く、また、潤滑油Wを拡散させるためには上記したように、噛み合い位置を1歯以上移動させればよいのでPTP動作中に確実に駆動部23の動作を完了させることができ、生産効率が低下するおそれを抑制することができる。また、PTP動作中に動作させるので、ロボット2の本来のアームの軌跡に影響を与えることがない。
【0050】
作業サイクル中に複数のPTP動作が存在する場合、最も動作時間の長いPTP動作を判定し、最も動作時間の長いPTP動作中に補助駆動指令を出力するようにしたので、動作時間が長ければ、補助駆動指令により動作させた駆動部23を確実に本来の位置まで戻すことができるため、本来の作業に影響を与えることがない。また、動作時間が長ければ、そのPTP動作中での噛み合い位置の移動量を増加させることができるので、欠落領域Rの発生およびその拡大をより一層抑制することができる。
【0051】
ワークを保持していない(移送していない)PTP動作を優先して補助駆動指令を出力するようにしたので、本来の作業サイクルでは想定していない駆動部23が動作したとしても、その動作に起因してワークが設備装置に衝突する等の不具合を生じさせることがない。
本実施形態では、作業サイクル毎に非動作駆動部に対して補助駆動指令を出力するようにしているので、作業サイクル毎に駆動部23が駆動され、潤滑油Wが拡散する。この場合、一般的には作業サイクルは1分程度と考えられるので、欠落領域Rが発生する前に非動作駆動部が動作する状態をすることができ、欠落領域Rの発生をより確実に予防することができる。
【0052】
(第2実施形態)
第1実施形態では6軸の垂直多関節型ロボットを例示したが、
図7に示すような4軸の水平多関節型ロボットに適用してもよい。なお、第1実施形態と実質的に共通する部位には同一の符号を付し、詳細な説明は省略する。
【0053】
図7に示すように、ロボットシステム61を構成するロボット62は、設置面に固定されるベース63と、このベース63上にZ方向の軸心を持つ第1軸(J61)を中心に回転可能に連結された第一アーム64と、第一アーム64の先端部上にZ方向の軸心を持つ第2軸(J62)を中心に回転可能に連結された第二アーム65と、第二アーム65の先端部に上下動可能(矢印A方向)で且つZ方向の軸心を持つ第3軸(J63)を中心に回転可能に設けられたシャフト66とから構成されている。シャフト66の先端部(下端部)には、ツールなどを取り付けるためのフランジ67が位置決めされて着脱可能に取り付けられるようになっている。
【0054】
このような構成においても、第1実施形態の
図6と同様の処理を行うことにより、複数の軸に対応して設けられている駆動部23が非動作駆動部であるか否かを判定し、作業サイクル中のPTP動作中に補助駆動指令を出力することにより、欠落領域Rの拡大や発生そのものを抑制することができる等、第1実施形態と同様の効果を得ることができる。
【0055】
(その他の実施形態)
本発明は上記した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
各実施形態では減速機22として波動歯車装置を例示したが、歯車を利用するものでれば他の構成のものであっても本発明を適用することができる。
第1実施形態では第4軸(J4)を対象としたが、他の軸を対象として
図6と同様の処理を実行することにより、ロボット2に設けられている複数の駆動部23の全てに対して非動作駆動部と判定された場合には動作させることができるようになり、第1実施形態と同様の効果を得ることができる。
【0056】
もちろん、全ての軸を対象として個別に
図6と同様の処理を行い、非動作駆動部と判定された全ての駆動部23に対して同一の作業サイクル中に個別に補助駆動指令を出力するようにしてもよい。その場合、複数の非動作駆動部が特定された場合には、同一のPTP動作中に補助駆動指令を出力してもよいし、異なるPTP動作でそれぞれ補助駆動指令を出力するようにしてもよい。
【0057】
各実施形態では減速機22の歯車機構の歯を1歯以上移動させるような補助駆動指令を出力するようにしたが、補助駆動指令を出力するPTP動作の動作時間に応じて、その移動量を帳調整するようにしてもよい。例えば、PTP動作の動作時間が長ければ、移動量を大きくしてもよい。これは、動作時間が長ければPTP動作が終了するまでに本来の噛み合い位置に戻すことができるためである。このようにすれば、潤滑油Wの拡散をさらに促進でき、欠落領域Rの発生より確実に予防できるようになる。
【0058】
各実施形態では潤滑油Wとして非動作状態では個体に近い性質を有するものを例示したが、常時液体の性質を有するものであってもよい。この場合、潤滑油Wの量が減少した部位すなわち潤滑油Wが切れた部位が欠落領域Rに相当すると考えればよいことから、
図6と同様の処理を実行することにより、各実施形態と同様の効果を得ることができる。
【0059】
第1実施形態では6軸ロボット、第2実施形態では4軸ロボットを例示したが、例えば7軸ロボットなど軸数が異なるロボットであっても本発明を適用することができる。
各実施形態では駆動部23に対して駆動指令が出力されたか否かを判定するようにしたが、エンコーダ21により検出されるモータ20の回転位置から間接的にモータ20が駆動されたか否かを判定する構成としてもよい。