(57)【要約】【課題】部品の面取り処理の有無にかかわらず部品の軸芯のズレを補正することができるロボット装置を得ること。【解決手段】ロボット１と、ロボット１の先端に取り付けられる力覚センサ１０１と、力覚センサ１０１に取り付けられ、第１部品を把持可能な把持部１０４と、ロボット１が第１部品を第２部品へ挿入する作業を行うときに、力覚センサ１０１により計測された計測結果を用いて、第１部品の第２部品への挿入方向と逆の方向に第１部品に荷重が生じるようにロボット１を制御するロボットコントローラ２と、挿入方向に直交する面内の軸を回転軸とするロボット１の先端の回転角度である動作角度に基づいて、ロボット１の動作を制御する演算器３と、を備え、演算器３は、第１の方向を回転方向とする動作角度が許容回転角度を超えた場合に、ロボット１を停止させ、ロボット１の先端を第１の方向と逆まわりの方向に回転させる。【選択図】図１
2020142324.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、
前記ロボットの先端に取り付けられる力覚センサと、
前記力覚センサに取り付けられ、第１部品を把持可能な把持部と、
前記ロボットが前記第１部品を第２部品へ挿入する作業を行うときに、前記力覚センサにより計測された計測結果を用いて、前記第１部品の前記第２部品への挿入方向と逆の方向に前記第１部品に荷重が生じるように前記ロボットを制御するロボットコントローラと、
前記挿入方向に直交する面内の軸を回転軸とする前記ロボットの先端の回転角度である動作角度に基づいて、前記ロボットの動作を制御する演算器と、
を備え、
前記演算器は、第１の方向を回転方向とする前記動作角度が許容回転角度を超えた場合に、前記ロボットを停止させ、前記ロボットを停止させた後に、前記ロボットの先端を第１の方向と逆まわりの方向に回転させるように前記ロボットを制御することを特徴とするロボット装置。
【請求項２】
前記ロボットコントローラは、前記第１部品の第２部品への挿入方向と逆の方向に前記第１部品に荷重が生じかつ前記第１部品にモーメントが生じないように前記ロボットを制御することを特徴とする請求項１に記載のロボット装置。
【請求項３】
ロボットと、前記ロボットの先端に取り付けられる力覚センサと、前記力覚センサに取り付けられ、第１部品を把持可能な把持部と、を備えるロボット装置における前記第１部品の軸芯と前記第１部品が挿入される第２部品の軸芯とのズレを補正する自動補正方法であって、
前記ロボットが前記第１部品を第２部品へ挿入する作業を行うときに、前記力覚センサにより計測された計測結果を用いて、前記第１部品の前記第２部品への挿入方向と逆の方向に前記第１部品に荷重が生じるように前記ロボットを制御する第１のステップと、
前記挿入方向に直交する面内の軸を回転軸とする前記ロボットの先端の回転角度である動作角度に基づいて、前記ロボットの動作を制御する第２のステップと、
を含み、
前記第２のステップでは、第１の方向を回転方向とする前記動作角度が許容回転角度を超えた場合に、前記ロボットを停止させ、前記ロボットを停止させた後に、前記ロボットの先端を第１の方向と逆まわりの方向に回転させるように前記ロボットを制御することを特徴とする自動補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組立作業を行うロボット装置および自動補正方法に関する。
【背景技術】
【０００２】
近年の生産現場における生産形態は、多品種少量生産から、生産機種および生産量の変化に対応可能である変種変量生産へと移行している。このような生産形態の変遷に応じて、汎用性の高い設備が求められている。汎用性の高い設備を実現するために、ロボットが多用されている。ここで言うロボットとは、予め教示された動作を再現することで動作するティーチングプレイバック式のロボット、直交するスライド軸により構成される直交ロボットなどを指す。
【０００３】
このようなロボットは、生産現場において部品組立工程の組立作業で使用される。部品組立工程では、例えば、挿入すべき部品である挿入部品を、挿入先である相手部品へ挿入する作業が行われる。このようなロボットは、予め動作順序がプログラミングされることにより、動作位置を教示され、決められた動作を繰り返し作業する。しかし、ロボットによる部品組立作業では、ロボットが繰り返し行う作業における位置の再現性のばらつき、温度変化によるロボットおよび設備の熱膨張等の影響で、挿入部品の軸芯と相手部品の軸芯との間に位置ズレが生じ、挿入部品が相手部品に干渉することがある。以下、挿入部品の軸芯と相手部品の軸芯との間に生じるズレを、単に部品の軸芯のズレとも呼ぶ。
【０００４】
挿入部品が相手部品に干渉する課題を解決するために、干渉検知と干渉回避の２つの技術が用いられる。干渉検知は、一般的に、ロボットの先端に力覚センサを取り付け、力覚センサにより検出された反力を用いて干渉の有無を検知することにより、行われる。干渉回避の方法としては、一般的に、挿入部品の角部に面取り処理を行い、挿入方向に対して斜めの方向に、干渉時の反力を発生させ、挿入方向に直交する方向に発生する反力の分力を力覚センサで検知する方法がとられる。この方法では、力覚センサにより検知された分力が小さくなるようにロボットを動かす制御プログラムをロボットコントローラに搭載しておき、ロボットコントローラが制御プログラムに基づいてロボットの動作を制御する。または、力覚センサで検知した分力を小さくするようにロボットの動作を補正するコンプライアンス機構が用いられる。
【０００５】
例えば、特許文献１には、挿入部品と相手部品との軸芯のズレを、挿入部品を平行移動させることにより、補正する技術が開示されている。特許文献１に記載の技術では、水平多関節ロボットの先端に力覚センサを取り付け、力覚センサの下部には、ロボットが把持する挿入部品を平行移動させることが可能なリモートセンターコンプライアンス機構を取り付けている。特許文献１に記載の技術では、挿入部品または相手部品の角部を面取り加工しておき、力覚センサで反力を検知し、反力のうち挿入方法と直交する方向の分力を小さくするようにリモートセンターコンプライアンス機構により挿入部品を平行移動させることにより、部品の軸芯のズレを補正している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２４１７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１の技術では、反力の分力を用いて部品の軸芯のズレを補正しているので、挿入部品および相手部品のうち少なくとも一方の接触角部に面取り処理が施されている必要がある。このため、挿入部品にも相手部品にも、面取り処理が施されていない場合には、部品の軸芯のズレを補正することができないという問題ある。
【０００８】
本発明は、上記に鑑みてなされたものであって、部品の面取り処理の有無にかかわらず部品の軸芯のズレを補正することができるロボット装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明にかかるロボット装置は、ロボットと、ロボットの先端に取り付けられる力覚センサと、力覚センサに取り付けられ、第１部品を把持可能な把持部と、を備える。また、ロボット装置は、ロボットが第１部品を第２部品へ挿入する作業を行うときに、力覚センサにより計測された計測結果を用いて、第１部品の第２部品への挿入方向と逆の方向に第１部品に荷重が生じるようにロボットを制御するロボットコントローラ、を備える。さらに、ロボット装置は、挿入方向に直交する面内の軸を回転軸とするロボットの先端の回転角度である動作角度に基づいて、ロボットの動作を制御する演算器、を備える。演算器は、第１の方向を回転方向とする動作角度が許容回転角度を超えた場合に、ロボットを停止させ、ロボットを停止させた後に、ロボットの先端を第１の方向と逆まわりの方向に回転させるようにロボットを制御する。
【発明の効果】
【００１０】
本発明によれば、部品の面取り処理の有無にかかわらず部品の軸芯のズレを補正することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるロボット装置の機能構成例を示す図
【図２】実施の形態１のロボット装置の外観を模式的に示す図
【図３】実施の形態１の処理回路の構成例を示す図
【図４】実施の形態１のロボット装置における部品の軸芯の自動補正処理の手順の一例を示すフローチャート
【図５】軸芯が平行にずれた場合の実施の形態１のロボット装置の自動補正動作の一例を示す図
【図６】軸芯が平行にずれた場合の実施の形態１のロボット装置の自動補正動作の一例を示す図
【図７】軸芯が平行にずれた場合の実施の形態１のロボット装置の自動補正動作の一例を示す図
【図８】軸芯が平行にずれた場合の実施の形態１のロボット装置の自動補正動作の一例を示す図
【図９】軸芯が傾いた場合の実施の形態１のロボット装置の自動補正動作の一例を示す図
【図１０】実施の形態２のロボット装置の外観を模式的に示す図
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態にかかるロボット装置および自動補正方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１にかかるロボット装置１００の機能構成例を示す図である。図２は、ロボット装置１００の外観を模式的に示す図である。ロボット装置１００は、図１および図２に示すように、垂直多関節ロボットであるロボット１と、ロボット１の先端に取り付けられた力覚センサ１０１と、力覚センサ１０１の下面に取り付けられたチャック駆動部１０２と、チャック駆動部１０２の下部に取り付けられ、２つを１組としたチャック１０３とを備える。図２では１つのチャック１０３に符号を付しているが、チャック駆動部１０２の下部には２つのチャック１０３が設けられている。２つのチャック１０３は、第１部品である挿入部品５０１を挟み込んで把持することが可能である。チャック駆動部１０２と２つのチャック１０３とは、挿入部品５０１を挟み込み、挟み込んだ状態で回転させることが可能な把持部１０４を構成する。ロボット装置１００は、さらに、ロボット１の動作を制御するロボットコントローラ２と、ロボットコントローラ２に接続される演算器３とを備える。
【００１４】
ロボット装置１００は、組立作業を行うことが可能である。具体的には、ロボット装置１００は、挿入部品５０１を、挿入部品５０１に対応した挿入部を有する第２部品である相手部品５０２に、挿入することが可能である。相手部品５０２は、相手部品取付台５０３により固定されている。ここでは、相手部品５０２が相手部品取付台５０３に載置されて固定される例を説明するが、相手部品５０２が動きにくいものである場合などには相手部品取付台５０３を設けなくてもよい。
【００１５】
図２に示すように、ロボット１とロボットコントローラ２は接続ケーブル３０１で接続され、力覚センサ１０１とロボットコントローラ２は接続ケーブル３０２で接続され、ロボットコントローラ２と演算器３は、接続ケーブル３０３で接続されている。なお、図１および図２に示した例では、演算器３を、ロボット装置１００の構成要素としているが、演算器３は、ロボットコントローラ２に接続可能であればよく、ロボット装置１００の外部の装置であってもよい。
【００１６】
また、実施の形態では、直交座標系であるＸＹＺ座標系を、図２に示すように、紙面の奥から手前に向かう方向をＸ軸のプラス方向とし、Ｘ軸に直交し、紙面の左から右に向かう方向をＹ軸のプラス方向とし、紙面の下から上へ向かう方向をＺ軸のプラス方向として定義する。また、図２に示すように、Ｚ軸のマイナス方向が鉛直下向きであるとする。
【００１７】
次に、ロボット装置１００を構成する各構成要素の詳細について説明する。まず、垂直多関節ロボットであるロボット１について説明する。図１に示すように、ロボット１は、各軸に対応するサーボモータ１１−１〜１１−６を備える。図１では、ロボット１が６軸の関節を有する例を示している。ロボット１は、各軸に対応するサーボモータ１１−１〜１１−６によって各関節が回転することにより、ロボット１の先端の位置および姿勢を自由に変更することができる。
【００１８】
なお、ここでは、ロボット１は、図２に示す下方向であるマイナスＺ方向を挿入方向とした部品の挿入の作業だけでなく、マイナスＹ方向などの水平方向を挿入方向とした部品の挿入も可能なように、すなわち汎用性を高めるために、６軸の垂直多関節ロボットを例に挙げている。しかしながら、ロボット１は、６軸の垂直多関節ロボットに限定されず、ロボット１の備える軸の数は６に限定されず、５であってもよいし、７以上であってもよい。また、部品の挿入方向が限定される場合には、ロボット１の備える軸の数は、４以下であってもよい。ロボット１は、前工程で搬送された挿入部品５０１をチャック１０３で把持し、把持した挿入部品５０１を、相手部品５０２の上方へ移動させて下降させることができ、Ｘ軸およびＹ軸を中心に回転する機構があれば良い。
【００１９】
次に力覚センサ１０１について説明する。力覚センサ１０１は、ロボット１の先端に作用する荷重すなわち反力とロボット１の先端のモーメントとを計測できるセンサである。力覚センサ１０１は、反力に関しては、挿入部品５０１の挿入方向の逆方向に発生する力を計測できれば良い。例えば、図２に示すように、相手部品５０２の上方から挿入部品５０１を挿入する場合、挿入方向はマイナスＺ方向であるから、力覚センサ１０１は、反力としてプラスＺ方向に発生する力を検出できれば良い。力覚センサ１０１は、モーメントに関しては、挿入方向に直交する平面において挿入部品５０１がずれる方向に対し直交する該平面内の軸を中心に発生するモーメントを検出できれば良い。例えば、図２に示すように、挿入方向がマイナスＺ方向であるとき、挿入動作で挿入部品５０１がＸ軸方向（±Ｘ方向）にずれる場合、Ｙ軸方向を中心に発生するモーメントＭｙが検知できればよい。力覚センサ１０１は、計測した荷重およびモーメントを、計測結果として接続ケーブル３０２を介して周期的にロボットコントローラ２へ送信する。
【００２０】
次にチャック駆動部１０２について説明する。チャック駆動部１０２は力覚センサ１０１の下面に取り付けられており、２つのチャック１０３を、それぞれプラスＹ方向とマイナスＹ方向に動作させることが可能な駆動部品である。チャック駆動部１０２は、チャック１０３を駆動できれば特に機構の限定はないが、例えば、圧縮エアを供給できる環境であればエアで動作するエアチャックを使用したり、モータで動作させる電動チャックを使用したりすることができる。チャック駆動部１０２の筐体は、アルミをはじめとした金属の材質で形成されることが望ましい。その理由として、挿入部品５０１が後述の相手部品５０２との接触時に受ける反力が、チャック１０３およびチャック駆動部１０２を介して力覚センサ１０１に伝わるため、樹脂部品などの弾性変形量が多い材質を筐体に用いると、挿入部品５０１に実際に作用している反力を力覚センサ１０１で正確に検知することが困難になるためである。
【００２１】
次にチャック１０３について説明する。チャック１０３は挿入部品５０１を把持するための部品である。詳細には、図２に示した例では、２つのチャック１０３が、挿入部品５０１にそれぞれプラスＹ方向およびマイナスＹ方向から近づくことにより、挿入部品５０１を挟んで把持する。チャック１０３の材質はアルミなど、樹脂部品よりも弾性変形量が少ない材質が望ましい。その理由は、チャック駆動部１０２と同様に、挿入部品５０１が相手部品５０２との接触時に受ける反力がチャック１０３およびチャック駆動部１０２を介して荷重を検出する力覚センサ１０１に伝わるため、弾性変形量が多い材質にすると、挿入部品５０１に実際に作用している反力を力覚センサ１０１で正確に検知することが困難になるためである。
【００２２】
チャック１０３と挿入部品５０１との接触面積について説明する。チャック１０３が挿入部品５０１を把持しているときには重力により挿入部品５０１に鉛直方向下向きに力が働く。また、挿入動作で挿入部品５０１が相手部品５０２と干渉した場合には、相手部品５０２との接触により挿入部品５０１は反力を受ける。これらの場合のように、挿入部品５０１が、力を受けると、挿入部品５０１がチャック１０３の表面を滑ることがある。挿入部品５０１がチャック１０３の表面を滑ると、挿入部品５０１が、Ｘ軸、Ｙ軸またはＺ軸まわりに回転したり、チャック１０３から脱落したりすることもある。チャック１０３と挿入部品５０１との接触面積は、上述した回転、脱落が生じないように決定されることが望ましい。また、挿入部品５０１と接触するチャック１０３の接触面には、滑り止め防止のために、図示しないウレタンゴムなどの弾性体を取り付けてもよい。ウレタンゴムなどの弾性体を取り付けることにより、挿入部品５０１の傷防止にもなる。ただし、弾性体が厚すぎると、上述したように、反力が弾性体の弾性変形で力覚センサ１０１に正確に伝わらない可能性がある。このため、力覚センサ１０１における反力の検知の精度に問題が生じない範囲で、挿入部品５０１の滑りおよび傷の発生の状況に応じて、弾性体の厚さを調整する必要がある。
【００２３】
次に、挿入部品５０１について説明する。挿入部品５０１の材質は、挿入部品５０１が相手部品５０２との接触時に受ける反力を力覚センサ１０１に伝えることができるものであれば、特に制約はない。挿入部品５０１の形状についても特に制約はないが、例えば、円柱形状、四角柱形状などとすることができる。挿入部品５０１の形状が円柱形状であれば、円形状の上面および下面がそれぞれプラスＺ方向およびマイナスＺ方向を向いた状態で、チャック１０３によって把持されることが望ましい。挿入部品５０１の形状が四角柱状であれば、特に向きに制約はないが、できれば下面が相手部品５０２の上面と平行となるようにチャック１０３により把持されているとよい。挿入部品５０１の下面の角部は面取りが無く、倣い面が無い形状でよいが、面取り処理がされていてもよい。
【００２４】
次に、相手部品５０２について説明する。相手部品５０２は挿入部品５０１が挿入される挿入部を有する部品である。相手部品５０２の挿入部は、挿入部品５０１が勘合するように設けられた挿入部品５０１の形状にあった穴であってもよいし、挿入部品５０１が挿入される周辺に挿入部品５０１が勘合するように突起が設けられた部分であってもよい。相手部品５０２の材質は、挿入動作時に挿入部品５０１に反力を発生させるものであれば、特に制約はない。なお、挿入部品５０１と接触する相手部品５０２の挿入部の上部の角は面取りが無く、倣い面が無い形状でよいが、面取り処理されていてもよい。相手部品５０２は、挿入部品５０１の挿入動作時に、反力などで動いたり、傾いたりしないように相手部品取付台５０３などで固定されていることが望ましい。
【００２５】
次に相手部品取付台５０３について説明する。相手部品取付台５０３は相手部品５０２が動かないように固定するための部品である。材質は、挿入動作時に挿入部品５０１に反力を発生できるのであれば、特に制約はない。
【００２６】
次に、ロボットコントローラ２について説明する。図１に示すように、ロボットコントローラ２は、動作制御部２１、送受信部２２および設定受付部２３を備える。送受信部２２は、力覚センサ１０１から接続ケーブル３０２を介して計測結果を受信し、受信した計測結果を動作制御部２１へ出力する。送受信部２２は、受信した計測結果を、接続ケーブル３０３を介して演算器３へ送信する。送受信部２２は、動作制御部２１から出力される後述する動作指令を、ロボット１へ接続ケーブル３０１を介して送信する。送受信部２２は、接続ケーブル３０３を介して演算器３から受信した後述する指令を動作制御部２１へ出力する。
【００２７】
設定受付部２３は、作業者からのロボット１の動作に関する設定を行うための設定情報の入力を受け付ける。作業者からの入力として受け付けることが可能な設定情報は、一般的なロボット１の動作制御において設定可能な情報を例示することができるが、本実施の形態では、後述するように、挿入動作を行う際の、挿入部品５０１における荷重およびモーメントの目標値となる設定値を含む。設定受付部２３は、受け付けた設定情報を動作制御部２１へ出力する。設定受付部２３は、キーボード、マウス、タッチパネル、ボタンなどの入力手段である。また、ロボットコントローラ２は、作業者へ情報を提示するための図示しない表示部を備えていてもよい。表示部と設定受付部２３が一体化されてタッチパネルにより実現されてもよい。
【００２８】
動作制御部２１は、ロボット１を制御するためのロボットプログラム、および設定受付部２３から入力される設定情報に基づいて、ロボット１の先端を目標とする位置および角度とするように、ロボット１の各関節に内蔵されたサーボモータ１１−１〜１１−６を制御するための動作指令を生成する。動作制御部２１は、生成した動作指令を、送受信部２２を介してロボット１へ送信する。このようにして、動作制御部２１は、ロボット１の動作を制御する。ロボット１の先端を目標とする位置および角度とするための、ロボット１の動作制御に関しては、一般的な技術を用いることができるため、詳細な説明を省略する。なお、動作制御部２１は、力覚センサ１０１の計測結果に基づいて、挿入部品５０１における荷重、モーメントが、作業者により入力された上述した設定値となるように、フィードバック制御する機能を有する。さらに、動作制御部２１は、サーボモータ１１−１〜１１−６の回転角度を検出する図示しないエンコーダによる検出結果を、送受信部２２を介してエンコーダから受信し、エンコーダにより検出された回転角度を用いてフィードバック制御を行う。この場合、送受信部２２は、エンコーダによる検出結果を、演算器３へ送信してもよい。また、動作制御部２１は、演算器３から、送受信部２２を介して受信した指令に基づいて、ロボット１を動作させる機能も有する。
【００２９】
次に、演算器３について説明する。演算器３は、ロボット１の先端の回転角度である動作角度に基づいて、ロボット１の動作を、ロボットコントローラ２を介して制御する。演算器３は、図１に示すように、送受信部３１、動作角度判定部３２および回転制御部３３を備える。送受信部３１は、接続ケーブル３０３を介して、ロボットコントローラ２から、力覚センサ１０１の計測結果を受信し、受信した計測結果を動作角度判定部３２へ出力する。さらに、送受信部３１は、接続ケーブル３０３を介して、ロボットコントローラ２から、エンコーダによる検出結果を受信し、受信した検出結果を動作角度判定部３２へ出力してもよい。送受信部３１は、回転制御部３３から出力される指令を、接続ケーブル３０３を介して、ロボットコントローラ２へ送信する。
【００３０】
動作角度判定部３２は、ロボット１の動作角度と許容回転角度を比較し、ロボット１の動作角度が許容回転角度を超過した場合、回転制御部３３へその旨を通知する。本実施の形態では、動作角度は、挿入方向に直交する面内の軸を回転軸とするロボット１の先端の回転角度である。動作角度は、例えば、以下のように算出される。ロボットコントローラ２は、ロボット１の各関節のエンコーダによる検出結果に基づいて、ロボット１の先端の角度を算出する。ロボットコントローラ２は、この算出を一定周期で繰り返し行っており、算出結果は演算器３に送信される。演算器３は、回転開始時の算出結果を回転開始角度として記憶し、ロボットコントローラ２から新たな算出結果を受信すると、受信した算出結果と回転開始角度との差を動作角度として算出する。そして、演算器３は、動作角度と許容回転角度を比較する。動作角度の算出方法はこの例に限定されない。許容回転角度は、あらかじめ定められていてもよいし、作業者により設定されてもよい。作業者により設定される場合、ロボットコントローラ２が作業者からの入力を受け付けて演算器３へ送信してもよいし、演算器３が入力手段を有して、入力手段により作業者からの入力を受け付けてもよい。
【００３１】
回転制御部３３は、動作角度判定部３２から、ロボット１の動作角度が許容回転角度を超過したことを通知されると、後述する回転制御を実施する。
【００３２】
ここで、ロボットコントローラ２および演算器３のハードウェア構成について説明する。ロボットコントローラ２の送受信部２２、演算器３の送受信部３１は、送信機および受信機であり、通信回路により実現される。ロボットコントローラ２の設定受付部２３は、上述したようにキーボードなどの入力手段により実現される。
【００３３】
ロボットコントローラ２の動作制御部２１、演算器３の動作角度判定部３２および回転制御部３３は、処理回路により実現される。処理回路は、プロセッサを備える回路であってもよいし、専用ハードウェアであってもよい。
【００３４】
処理回路がプロセッサを備える回路である場合、処理回路は例えば図３に示した構成の処理回路である。図３は、本実施の形態の処理回路の構成例を示す図である。図３に示す処理回路４００は、プロセッサ４０１およびメモリ４０２を備える。動作制御部２１、動作角度判定部３２および回転制御部３３が、図３に示した処理回路４００によって実現される場合、プロセッサ４０１が、メモリ４０２に格納されたプログラムを読み出して実行することにより、これらが実現される。すなわち、動作制御部２１、動作角度判定部３２および回転制御部３３が図３に示した処理回路４００によって実現される場合、これらの機能は、ソフトウェアであるプログラムを用いて実現される。メモリ４０２はプロセッサ４０１の作業領域としても使用される。プロセッサ４０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。メモリ４０２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリー等の不揮発性または揮発性の半導体メモリ、磁気ディスク等が該当する。
【００３５】
動作制御部２１、動作角度判定部３２および回転制御部３３を実現する処理回路が専用ハードウェアである場合、処理回路は、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。なお、動作制御部２１、動作角度判定部３２および回転制御部３３は、プロセッサを備える処理回路および専用ハードウェアを組み合わせて実現されてもよい。動作制御部２１、動作角度判定部３２および回転制御部３３は、それぞれが複数の処理回路により実現されてもよい。
【００３６】
次に、本実施の形態のロボット装置１００における部品の軸芯の自動補正方法について説明する。図４は、本実施の形態のロボット装置１００における部品の軸芯の自動補正処理の手順の一例を示すフローチャートである。図４に示す自動補正処理は、ロボット装置１００の組立作業において、チャック１０３が挿入部品５０１を挟み込み、挿入部品５０１が相手部品５０２の上方に位置するようにチャック１０３が移動したときに開始される。挿入部品５０１が相手部品５０２の上方に位置するようにチャック１０３が移動したときに開始される動作を、以下、挿入部品５０１を相手部品５０２へ挿入する作業とも呼ぶ。ロボット装置１００の組立作業において、チャック１０３が挿入部品５０１を挟み込み、挿入部品５０１が相手部品５０２の上方に位置するようにチャック１０３が移動するまでのロボット装置１００の動作は、一般的なロボット装置における動作と同様であるため、詳細な説明を省略する。
【００３７】
本実施の形態の自動補正処理は、挿入部品５０１を相手部品５０２へ挿入する作業において実行される。自動補正処理の実行中は、力覚センサ１０１に作用する荷重がプラスＺ方向に発生するように設定され、力覚センサ１０１に発生するモーメントが０（ゼロ）Ｎｍとなるように設定される。これらの荷重およびモーメントに関する設定は、上述したように、例えば、ロボットコントローラ２が、作業者から設定情報として受け付ける。また、力覚センサ１０１より下に取り付けられた部品、すなわちチャック駆動部１０２、チャック１０３および挿入部品５０１の自重および重心位置を考慮し、重力によって力覚センサ１０１に発生する荷重およびモーメントはあらかじめキャンセルしておく。このキャンセルは、例えば、力覚センサ１０１を用いるロボット１の一般的な機能であるキャリブレーション機能により実現することができる。キャリブレーション機能は、ロボット１にチャック駆動部１０２およびチャック１０３を取り付けた状態で、ロボット１によって様々な角度にチャック１０３を振り、その時の力覚センサ１０１に発生する荷重およびモーメントから、チャック駆動部１０２およびチャック１０３の重量と重心位置をロボットコントローラが推定する機能であり、この機能を用いて、重力によって力覚センサ１０１に発生する荷重およびモーメントはあらかじめキャンセルしておくことができる。重力によって力覚センサ１０１に発生する荷重およびモーメントをキャンセルする方法はこの例に限定されない。
【００３８】
図４に示すように、ロボット装置１００では、まず、動作角度判定部３２が、ロボット１の動作角度を算出する（ステップＳ１）。次に、動作角度判定部３２が、ロボット１の動作角度が許容回転角度を超過しているか否かを判断する（ステップＳ２）。
【００３９】
ロボット１の動作角度が許容回転角度を超過していない場合（ステップＳ２  Ｎｏ）、処理はステップＳ１へ戻る。ロボット１の動作角度が許容回転角度を超過している場合（ステップＳ２  Ｙｅｓ）、ロボット装置１００は、ロボット１の回転を停止させる（ステップＳ３）。詳細には、演算器３の動作角度判定部３２が、ロボット１の動作角度が許容回転角度を超過したことを回転制御部３３へ通知し、回転制御部３３が、ロボット１の動作を停止させるための指令である動作停止指令を生成して送受信部３１を介してロボットコントローラ２へ送信する。ロボットコントローラ２は、動作停止指令を受信すると、ロボット１の動作を停止させる。これにより、ロボット１の回転が停止する。
【００４０】
上述したように、ロボット１では、力覚センサ１０１に作用する荷重がプラスＺ方向に発生するように設定され、力覚センサ１０１に発生するモーメントが０Ｎｍとなるように設定されている。このため、ロボット１は、力覚センサ１０１により計測された計測結果に基づいて、力覚センサ１０１に作用する荷重が０Ｎの間は力覚センサ１０１に作用する荷重がプラスＺ方向に発生するように、ロボット１の先端をマイナスＺ方向に移動させ続ける。すなわち、ロボットコントローラ２は、ロボット１が挿入部品５０１を相手部品５０２へ挿入する作業を行うときに、力覚センサ１０１により計測された計測結果を用いて、挿入部品５０１の相手部品５０２への挿入方向と逆の方向に挿入部品５０１に荷重が生じかつ挿入部品５０１にモーメントが生じないようにロボット１を制御する。なお、ロボットコントローラ２は、挿入部品５０１の相手部品５０２への挿入方向と逆の方向に挿入部品５０１に荷重が生じるように制御すればよく、挿入部品５０１にモーメントが生じないようにロボット１を制御することは必須ではない。ロボットコントローラ２は、例えば、挿入部品５０１にある程度のモーメントが生じることを許容してもよい。部品の軸芯のズレ、すなわち挿入部品５０１の軸芯と相手部品５０２の軸芯とのズレが無い場合には、挿入部品５０１はそのまま上方から相手部品５０２に挿入される。
【００４１】
一方、後述するように、部品の軸芯のズレが生じると、挿入部品５０１が相手部品５０２と干渉することにより、挿入部品５０１にモーメントが働き力覚センサ１０１によってモーメントが計測される。ロボット１は、設定にしたがって、力覚センサ１０１により計測されたモーメントを０Ｎｍとするようにロボット１の先端を回転させるように制御するものの、ロボット１の先端をマイナスＺ方向に移動させる制御も継続されるためロボット１の先端は回転し続ける。本実施の形態では、ロボット１が許容回転角度を超えて回転し続けることのないように、演算器３は、ロボット１の動作角度が許容回転角度を超えると動作停止指令をロボット１へ送信することにより、ロボット１を停止させる。
【００４２】
ステップＳ３の後、ロボット装置１００は、ロボット１を、ロボット１がそれまで回転していた方向と反対方向に回転させる（ステップＳ４）。詳細には、回転制御部３３は、ロボット１を、ロボット１がそれまで回転していた方向と反対方向に回転させることを指示する回転指令を生成し、送受信部３１を介してロボットコントローラ２へ送信する。これにより、ロボットコントローラ２は、ロボット１を反対方向に回転させるよう制御する。
【００４３】
ロボット装置１００は、挿入部品５０１を挿入する作業が終了したか否かを判断し（ステップＳ５）、作業が終了した場合（ステップＳ５  Ｙｅｓ）、自動補正処理を終了する。作業が終了していない場合（ステップＳ５  Ｎｏ）、ロボット装置１００は、ステップＳ４の処理を繰り返す。すなわち、ロボット装置１００は、ロボット１を反対方向に回転させ続ける。挿入部品５０１を挿入する作業が終了したか否かの判断は、ロボットコントローラ２により行われる。具体的な判断の方法は、ロボットを用いた一般的な部品の挿入動作における終了の判断と同様である。例えば、ロボットコントローラ２は、力覚センサ１０１により計測された荷重およびモーメントが、一定時間以上変化しなくなり、かつ、力覚センサ１０１により計測された荷重がプラスＺ方向である場合に、挿入部品５０１を挿入する作業の終了と判断する。なお、図４には図示していないが、ステップＳ２でＮｏとなりステップＳ１が繰り返されている間に、ロボットコントローラ２が、挿入部品５０１を挿入する作業が終了したと判断した場合にも、同様に、自動補正処理を終了する。この場合には、自動補正処理による補正が行われずに、すなわち部品の軸芯のズレが生じずに作業が終了したことになる。
【００４４】
以上説明したように、本実施の形態の自動補正方法は、ロボット１が挿入部品５０１を相手部品５０２へ挿入する作業を行うときに、力覚センサ１０１により計測された計測結果を用いて、挿入部品５０１の相手部品５０２への挿入方向と逆の方向に挿入部品５０１に荷重が生じるようにロボット１を制御する第１のステップを含む。さらに、本実施の形態の自動補正方法は、ロボット１の動作角度に基づいて、ロボット１の動作を制御する第２のステップを含む。
【００４５】
なお、ロボット１の高さ方向すなわちＺ方向の動作原点は、挿入部品５０１の下面、すなわち挿入部品５０１の相手部品５０２と接触する面の付近に設定することが望ましい。これにより、ロボット１は、挿入部品５０１の下面付近を中心に、Ｘ軸、Ｙ軸、Ｘ軸のそれぞれの軸まわりに回転動作することができる。
【００４６】
次に、上述した自動補正処理を、部品の軸芯のズレの具体例を挙げて説明する。部品の軸芯のズレの要因は、それぞれの部品の加工ばらつき、ロボット１の位置の誤差、ロボット１の角度の誤差、室温変化等による相手部品取付台５０３の熱膨張など、原因は多岐にわたる。しかし、これらの原因で発生する部品の軸芯のズレは、次の２つに分類される。
（１）軸芯が平行にずれた場合
（２）軸芯が傾いた場合
【００４７】
図２に示した例では、上記の（１）は、挿入部品５０１の底面の中心と相手部品５０２の穴の中心がずれる場合に相当する。図２に示した例では、挿入部品５０１は、相手部品５０２の挿入部である穴に挿入される。挿入部品５０１の底面の中心を通り挿入部品５０１の高さ方向に延びる線を挿入部品５０１の軸芯とし、相手部品５０２の穴中心を通り相手部品５０２の高さ方向に延びる線を相手部品５０２の軸芯とする。なお、ここでは、各部品の高さ方向は、正しく挿入され各部品に誤差のない理想的な状態における挿入方向であるとする。
【００４８】
図２に示した例では、上記の（２）は、挿入部品５０１がＸ軸まわりに回転することにより、挿入部品５０１の軸芯が相手部品５０２の軸芯とずれることに相当する。
【００４９】
まず、上記（１）の軸芯が平行にずれた場合について図面を用いて説明する。図５から図８は、軸芯が平行にずれた場合の本実施の形態のロボット装置１００の自動補正動作の一例を示す図である。まず、図５の左図に示すように、挿入部品５０１が相手部品５０２の上方に位置しており、挿入部品５０１が相手部品５０２に接触していない状態で、ロボット１は、下降すなわちマイナスＺ方向への移動を開始する。これは、上述した通り、力覚センサ１０１にプラスＺ方向に作用するようにロボット１を制御するように設定されており、力覚センサ１０１で計測される荷重が０Ｎであることから、ロボットコントローラ２が、ロボット１をマイナスＺ方向へ移動させるように制御するためである。
【００５０】
ロボット１がそのまま下降の動作を続けると、軸芯が平行にずれているため、図５の右図に示すように、相手部品５０２と接触する。図５に示した例では、挿入部品５０１が相手部品５０２の穴より右側すなわちプラスＹ方向にずれているため、挿入部品５０１は、相手部品５０２の穴の右側の角部と接触する。このような接触６０２が生じると、挿入部品５０１は、中心より右側の接触箇所に反力を受けるため、Ｘ軸まわりモーメント＋Ｍｘが発生する。なお、Ｘ軸まわりのモーメントは、反時計まわりをプラスとする。これにより、ロボット１は、反時計まわりの回転方向６０１に回転する。すなわち、この例は、挿入方向はマイナスＺ方向であり、挿入方向に直交する面内の軸であるＸ軸を回転軸としてロボット１の先端が回転する。
【００５１】
ロボット１は、反時計まわりに回転することにより、図６の左図に示すように傾く。このとき、挿入部品５０１は、相手部品５０２の接触箇所で、傾いた方向と同じ方向である滑り方向６０３に滑る。挿入部品５０１が、滑り方向６０３に滑ることにより、図６の右図に示すように、挿入部品５０１の左側の角部が、相手部品５０２の穴の左側の側面と接触する。このような接触６０４が生じた状態では、挿入部品５０１の右側の角部は、相手部品５０２の、穴の右側の角部の上に載っており、挿入部品５０１の左側の角部は相手部品５０２の穴の左側の側面に接触している。このため、この時も、＋Ｍｘのモーメントが発生している。そのため、ロボット１は、モーメントを０Ｎｍにする動作を行うが、下降動作も行っているため、図７の左図に示すように、さらに反時計方向に回転し続ける。
【００５２】
一方、演算器３は、図４を用いて説明したように、ロボット１の動作角度が許容回転角度を超えるかどうかを判断しているため、ロボット１が反時計方向に回転し続けて動作角度が許容回転角度を超えると、図４のステップＳ２でＹｅｓと判断され、ロボット装置１００は、ロボット１の回転を停止させる。その後、図７の右図に示すように、図４のステップＳ４で述べた動作により、回転方向６０１と反対の方向である回転方向６０５にロボット１が回転する。
【００５３】
これらの動作、すなわち、ロボット１を下降させ続けることにより挿入部品５０１を相手部品５０２に押し付けて回転させ許容回転角度を超えると反対側に回転させる動作を行うことで、図８の左図に示すように、挿入部品５０１の軸芯と相手部品５０２の軸芯が一致する。軸芯が一致するため、図８の右図に示すように、ロボット１が下降することにより、挿入部品５０１を相手部品５０２に挿入することができる。
【００５４】
次に、上記（２）の軸芯が傾いた場合について図面を用いて説明する。図９は、軸芯が傾いた場合の本実施の形態のロボット装置１００の自動補正動作の一例を示す図である。図９の左図に示すように、図９では、挿入部品５０１の軸芯が反時計まわりの方向に傾いた例を示している。（１）の軸芯が平行にずれた場合と同様に、挿入部品５０１が相手部品５０２の上方に位置しており、挿入部品５０１が相手部品５０２に接触していない状態で、ロボット１は、下降を開始する。その後、図９の右図に示すように、挿入部品５０１の下面の右側の角部が、相手部品５０２の右側の角部と接触する。このような接触６０６が生じると、挿入部品５０１は、中心より右側の接触箇所に反力を受けるため、Ｘ軸まわりモーメント＋Ｍｘが発生する。これにより、ロボット１は、反時計まわりの回転方向６０１に回転する。その後の、動作は、図６、図７および図８に示した動作と同様である。
【００５５】
以上のように、（１）軸芯が平行にずれた場合、および（２）軸芯が傾いた場合のいずれの場合も、図４に示した自動補正処理により、軸芯のズレを補正して挿入部品５０１を相手部品５０２に挿入することができる。なお、図５から図９に示した例では、挿入部品５０１の軸芯が、相手部品５０２の軸芯に対して、Ｘ方向に平行にずれる例およびＸ軸まわりに回転する方向に傾く例を説明した。ロボット装置１００の構成によっては、Ｘ方向に平行なズレとＸ軸まわりに回転する方向の傾きの替わりに、Ｙ方向に平行なズレとＹ軸まわりに回転する方向の傾きが生じる場合がある。このような場合には、上述した説明のＸ軸をＹ軸に読み替えて、同様に、演算器３が、Ｙ軸周りの動作角度が許容回転角度を超えた場合に、ロボット１を停止させた後に反対方向に回転させる制御を行えばよい。
【００５６】
また、ロボット１として垂直多関節ロボットを用いる場合、ロボット１の動作の自由度が高い。このため、挿入部品５０１の軸芯が相手部品５０２の軸芯に対して、Ｘ方向に平行なズレとＸ軸まわりに回転する方向の傾きに加え、さらにＹ軸方向に平行にずれたり、Ｙ軸を中心に回転した方向に傾いたりすることも考えられる。このような場合には、Ｙ軸まわりの動作角度についても許容回転角度を設定し、演算器３が、Ｘ軸と同様に、Ｙ軸まわりの動作角度が許容回転角度を超えた場合に、ロボット１を停止させた後に反対方向に回転させる制御を行えばよい。この場合には、Ｘ軸、Ｙ軸のそれぞれについて独立に上述した制御を独立して実施すればよい。Ｘ軸まわりの動作角度のみが許容回転角度を超えた場合にはＸ軸まわりに関して上述した動作が実施され、Ｙ軸まわりの動作角度のみが許容回転角度を超えた場合にはＹ軸まわりに関して上述した動作が実施され、Ｘ軸まわりおよびＹ軸まわりの両方の動作角度が許容回転角度を超えた場合に、Ｘ軸まわりおよびＹ軸まわりの両方に関して上述した動作が実施される。
【００５７】
なお、以上の説明では、演算器３をロボットコントローラ２とは別に備える例を説明したが、ロボットコントローラ２が本実施の形態の演算器３の機能を有していてもよい。
【００５８】
以上のように、本実施の形態では、ロボットコントローラ２が、ロボット１を、挿入方向に移動させつつモーメントが打ち消されるように制御する。そして、演算器３が、ロボット１の動作角度が許容回転角度を超えた場合に、ロボット１を、停止させ、その後に反対方向に回転させるように制御するようにした。このため、部品の面取り処理の有無にかかわらず部品の軸芯のズレを補正することができる。また、本実施の形態では、上述した動作により軸芯のズレを補正するため、部品の軸芯が平行にずれた場合だけでなく、軸芯が傾いた場合であっても、部品の軸芯のズレを補正することができる。
【００５９】
実施の形態２．
次に、本発明にかかる実施の形態２のロボット装置１００の動作を説明する。本実施の形態のロボット装置１００の構成は、実施の形態１と同様である。以下、実施の形態１と異なる点を主に説明し、実施の形態１と重複する説明を省略する。
【００６０】
図１０は、実施の形態２のロボット装置１００の外観を模式的に示す図である。実施の形態１では、挿入部品５０１は、チャック１０３に挟まれた状態で上から下へ移動することにより、相手部品５０２に挿入される。すなわち、実施の形態１では、挿入部品５０１の挿入方向は鉛直方向であった。これに対し、本実施の形態では、挿入部品５０１は、図１０に示すように、水平方向に移動することにより、相手部品５０２に挿入される。すなわち、実施の形態２では、挿入部品５０１の挿入方向は水平方向である。
【００６１】
図１０に示した例のように、挿入部品５０１の挿入方向が水平方向である場合であっても、実施の形態１と同様の自動補正処理を実施することで、部品の軸芯のズレを補正することができる。具体的には、ロボットコントローラ２を、力覚センサ１０１で計測される荷重がプラスＹ方向の値となり力覚センサ１０１で計測されるモーメントが０Ｎｍとなるようにロボット１を制御するように、設定しておく。ロボットコントローラ２は、実施の形態１のＺ軸をＹ軸と読み替えた場合と同様の動作を行う。これにより、ロボットコントローラ２は、自動補正処理を開始すると、ロボット１をマイナスＹ方向に移動させる。部品の軸芯のズレにより挿入部品５０１と相手部品５０２が接触すると、ロボット１が回転を始める。ロボット１の動作角度が、許容回転角度を超えると、実施の形態１と同様に、演算器３が、ロボットコントローラ２を介して、ロボット１を、停止させその後に反対方向に回転させるように制御する。
【００６２】
これにより、挿入部品５０１の挿入方向が水平方向であっても、実施の形態１と同様に、部品の面取り処理の有無にかかわらず部品の軸芯のズレを補正することができる。
【００６３】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６４】
１  ロボット、２  ロボットコントローラ、３  演算器、１１−１〜１１−６  サーボモータ、２１  動作制御部、２２，３１  送受信部、２３  設定受付部、３２  動作角度判定部、３３  回転制御部、１００  ロボット装置、１０１  力覚センサ、１０２  チャック駆動部、１０３  チャック、１０４  把持部、３０１〜３０３  接続ケーブル、５０１  挿入部品、５０２  相手部品、５０３  相手部品取付台。
【図１】
2020142324.tif 000003
【図２】
2020142324.tif 000004
【図３】
2020142324.tif 000005
【図４】
2020142324.tif 000006
【図５】
2020142324.tif 000007
【図６】
2020142324.tif 000008
【図７】
2020142324.tif 000009
【図８】
2020142324.tif 000010
【図９】
2020142324.tif 000011
【図１０】
2020142324.tif 000012