以下、本発明の実施形態について添付図面を参照しながら以下の順に説明する。なお、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
(1)ロボットの構成:
(2)制御装置の構成:
(3)ネジ挿入処理:
(4)教示位置:
(5)他の実施形態:
(1)ロボットの構成:
図1は本発明の一実施形態にかかるロボット1の斜視図である。図1に示すように、ロボット1は、アーム10とエンドエフェクターとを備える。アーム10は、3個の曲げ関節B1〜B3と3個のねじり関節R1〜R3とを有する6軸アームである。曲げ関節B1〜B3とは、アーム10を構成する部材同士が、アーム10の長さ方向に直交する軸を中心に回転する関節である。ねじり関節R1〜R3とは、アーム10を構成する部材同士が、アーム10の長さ方向の軸を中心に回転する関節である。アーム10は、曲げ関節B1〜B3とねじり関節R1〜R3とを動作させるための駆動部としてのモーター(不図示)を備えている。
ドライバー21を含むエンドエフェクターは、アーム10の先端に装着されている。エンドエフェクターには、ドライバー21とアーム10との間に位置する力覚センサーPが備えられている。力覚センサーPは、当該力覚センサーPに作用する3軸の力と、当該3軸まわりに作用するトルクに応じた力およびトルクを出力するセンサーである。本実施形態においては、力覚センサーPの一方側の面(アーム10と反対側の面)にはドライバー21が備えられている。従って、ドライバー21に作用する3軸の力と、3軸周りに作用するトルクに応じた力およびトルクを出力することができる。
なお、ドライバー21は、ビットを備えており、ビット周りに設けられた円筒状のカバー内の気圧を低下させることにより、ビットに対してネジを吸着させることができる(図1において不図示)。従って、ドライバー21にネジが吸着された状態においては、ネジに作用する力やトルクは実質的にドライバー21に作用する力やトルクと同等であり、ビットに吸着されたネジに対して力やトルクが作用する場合、力覚センサーPは、ネジに対して作用する力やトルクに応じた力やトルクを出力することもできる。なお、ドライバー21やネジが外部の物体に接触し、外部の物体に及ぼす力およびトルクは、外部の物体からドライバー21やネジに作用する力やトルクと向きが異なり大きさが等しい物理量である。そこで、力覚センサーPはいずれを検出していると見なすこともできるが、ここでは、ドライバー21やネジが外部の物体に及ぼす力およびトルクが力覚センサーPの出力となる例について説明する。
さらに、ドライバー21は、ビットに吸着したネジを回転させることでネジを回転させることができる。従って、ネジをネジ穴の開口部に配置させてドライバー21のビットを回転させると、ネジがネジ穴に挿入される。アーム10は、各関節B1〜B3、R1〜R3を回転させることによって所定の範囲にドライバー21を配置させ、所定の姿勢(角度)にすることができる。本実施形態においてはロボット1の設置スペース付近にアーム10の作業スペースが設けられており、図示しない搬送装置によってネジ穴Hを有するワークWを搬送し、作業スペース内においてワークWを固定することができる。作業スペース内には、ネジの供給装置Fが配置されており、ロボット1は、ドライバー21の先端を供給装置Fに移動させてビットに対してネジを吸着させることでドライバー21にネジを供給することができる。
ロボット1は、力覚センサーPの出力に基づいてアーム10を駆動してドライバー21の位置や姿勢を変化させることができる。本実施形態においては、ドライバー21のビットにネジを吸着した状態において、ロボット1がドライバー21を移動させると、ネジはドライバー21とともに任意の位置に移動する。また、ロボット1はドライバー21にネジが吸着された状態でネジ穴Hの開口部までネジを移動させ、ビットによってネジを回転させることによってワークWの各ネジ穴Hにネジを挿入する。従って、本実施形態において、挿入物はネジ、被挿入物はワークW、挿入穴はネジ穴Hであり、可動部は、アーム10である。
(2)制御装置の構成:
本実施形態においてロボット1は制御装置40によって制御される。従って、ロボット1と制御装置40とでロボットシステムを構成する。制御装置40は、制御部40aとドライバーコントローラー40bとを有している。制御部40aおよびドライバーコントローラー40bは、図示しないプログラムの実行部(CPU,RAM,ROM等)を備えている。また、制御部40aおよびドライバーコントローラー40bは、図示しないインタフェースを介して信号の入出力を行う。ロボット1やドライバー21に対する電力源は種々の電力源を利用可能であり、本実施形態において制御部40aは、商用電力源から電力の供給を受け、アーム10が備える各モーターに対して電力を供給する。ドライバー21には、商用電力源から電力が供給されている。
制御部40aは、ロボット1のエンドエフェクターに装着された力覚センサーPの出力に基づいて、アーム10が備える各モーターを制御するための制御信号と、電力を供給する。また、制御部40aは、真空ポンプ40cに接続されている。真空ポンプ40cは、ドライバー21のカバー内の気圧を低下させることが可能であり、制御部40aが出力する制御信号に応じて駆動する。すなわち、制御部40aは、真空ポンプ40cを制御することにより、ドライバー21のビットに対するネジの吸着を制御することができる。さらに、ドライバーコントローラー40bは、ロボット1の力覚センサーPに装着されたドライバー21に対して、ビットの回転等を制御するための制御信号を出力する。また、ドライバー21は、ビットに作用しているトルクを示す信号を出力する。
次に、制御部40aの構成をより詳細に説明する。図2は制御部40aの機能ブロック図である。制御部40aは、予め決められたプログラムを実行することによってロボット1を駆動する。力制御部41,位置制御部42は当該プログラムによって実現される機能を模式的に示している。
本実施形態において、制御部40aは、アーム10の関節B1〜B3とねじり関節R1〜R3のそれぞれに対応するモーターに対して制御信号を出力する。力制御部41は、エンドエフェクターに設けられた力覚センサーPからの出力が目標力となるように、アーム10の各関節を制御する。すなわち、力制御部41は、力覚センサーPの出力を取得してドライバー21(またはネジ)が他の物体に及ぼしている力を検出する。そして、当該検出された力が目標力ではない場合、力制御部41は、当該目標力が検出される状態を実現するために必要なアーム10の駆動量(モーターの制御量)を算出し、モーターに対して制御信号を出力することにより、モーターを制御量に従って動作させる。当該モーターの制御量は、種々の手法によって決定されて良く、例えば、インピーダンス制御によって制御量が決められる構成等が採用可能である。むろん、力制御部41は、力覚センサーPから出力されるトルクを目標トルクにするように、アーム10を制御しても良い。
位置制御部42は、予め設定されたTCP(Tool Center Point:アーム10とともに移動する基準部位)の位置が目標位置となり、TCPを有する部位の姿勢が目標姿勢となるように、アーム10の各関節を制御する。すなわち、ロボット1において、TCPの位置は予め決められたロボット座標系(図1に示す直交xyz座標系)において定義される。TCPを有する部位の姿勢はTCPに原点を有し、ドライバー21に対して固定された局所座標系における軸の方向に基づいて決定される。局所座標系は種々の定義が可能であるが、例えば、ビットが延びる方向の1軸と当該方向に垂直な2軸とによって定義可能である。
TCPは、種々の部位に設定可能であるが、本実施形態においては、ドライバー21のビットに取り付けられたネジの先端の中央点に設定されている。図3は、ドライバー21が備える円筒状のカバー21aを示す図であり、当該図3においては、カバー21aをビット21bが延びる方向で切断し、ビット21bおよびネジ30とともに示している。
可動範囲内でTCPが任意の座標に位置し、任意の姿勢になるために必要な各アーム10の動作は予め特定されている。位置制御部42は、ロボット座標系におけるTCPの目標位置および目標姿勢が特定されると、当該目標位置および目標姿勢に基づいてアーム10の駆動量(モーターの制御量)を算出する。そして、位置制御部42は、モーターに対して制御信号を出力することにより、モーターを制御量に従って動作させる。むろん、当該制御においては、PID(Proportional-Integral-Derivative)制御等のフィードバック制御によってモーターの制御量が取得されても良い。
以上の構成より、制御部40aは、ドライバー21またはネジ30が他の物体に及ぼす力が目標力になるようにアーム10を制御することができる。また、制御部40aは、ドライバー21に取り付けられたネジ30のTCPを目標位置に移動させ、TCPを基準としてドライバー21を目標姿勢にさせることができる。
(3)ネジ挿入処理:
次に、本実施形態において制御装置40がロボット1を制御してワークWのネジ穴Hに対してネジ30を挿入してネジ締めを行わせる際のネジ挿入処理を説明する。図4は、ネジ挿入処理を示すフローチャートである。ネジ挿入処理が開始される前においては、処理中に必要となる目標位置や目標姿勢等が予め教示されている。すなわち、本実施形態において、ロボット1は、供給装置Fからネジ30の供給を受け、ネジ30をドライバー21に吸着させた状態でネジ30をワークWのネジ穴Hに移動させてネジ30をネジ穴に挿入する作業を繰り返す。この作業を実行できるように、各作業の開始位置が教示位置として教示され、開始位置における姿勢が教示姿勢として教示されている。
このように教示が行われた状態において、制御部40aがネジ挿入処理を開始すると、まず、位置制御部42がネジ供給位置へドライバー21を移動させる(ステップS100)。すなわち、位置制御部42は、モーターに制御信号を出力し、アーム10を駆動してネジ30の供給装置Fの上方(z軸方向の正方向)における教示位置にドライバー21を移動させる。また、位置制御部42は、モーターに制御信号を出力し、アーム10を駆動して、ドライバー21の姿勢を教示姿勢にさせる。
次に、位置制御部42は、ドライバー21にネジ30を供給する(ステップS105)。すなわち、位置制御部42は、モーターに制御信号を出力し、アーム10を駆動してドライバー21のカバー21aの開口部を供給装置Fのネジ30に近づける。また、制御部40aは、真空ポンプ40cに制御信号を出力し、ドライバー21のカバー21aの内部の気圧を低下させる。この結果、ネジ30がビット21b側に吸着される。
次に、位置制御部42は、ドライバー21を挿入開始位置へ移動させ、ネジ30を傾斜させる(ステップS110)。すなわち、図1に示すワークWにはネジ穴Hが複数個形成されており、各ネジ穴Hへのネジ30を挿入する際の作業の開始位置として、各ネジ穴Hの上方の位置が教示されている。そこで、位置制御部42は、ワークWが有する複数のネジ穴Hの中で、ネジ30がまだ挿入されていないネジ穴Hを選択する。そして、位置制御部42は、モーターに制御信号を出力してアーム10を駆動し、選択されたネジ穴Hに対するネジ30の挿入開始位置として教示された位置にドライバー21を移動させる。
また、位置制御部42は、モーターに制御信号を出力し、アーム10を駆動して、ドライバー21を教示された姿勢にする。本実施形態において当該教示された姿勢は、ネジ穴Hの中心軸に対して傾斜した姿勢である。図5は、ネジ30をワークWのネジ穴Hに挿入する作業の開始前における挿入開始位置と姿勢を模式的に示す図である(カバー21aは省略)。図5に示すように、挿入開始位置は、当該挿入開始位置からz軸の負方向にネジ30を移動させた場合に、ネジ30の先端がネジ穴Hに進入する確率が高い位置に設定されている。また、ネジ穴Hの中心軸AHに対してネジ30の中心軸Asが角度θ(例えば7°)だけ傾斜するように、傾斜角が設定されている。なお、ドライバー21の挿入開始位置への移動と傾斜は同時であっても良いし、いずれか一方が先に行われてもよい。
ドライバー21が挿入開始位置に移動し、ネジ30が傾斜したら、制御部40aは、力覚センサーPに制御信号を出力し、力覚センサーPをリセットする(ステップS115)。すなわち、ステップS110にて設定された姿勢で力覚センサーPの出力結果が既定値(例えば0)になるようにセンサーをリセットする。
次に力制御部41は、x軸方向およびy軸方向における目標力を0、z軸の負方向の目標力を既定値に設定する(ステップS120)。すなわち、力制御部41は、力覚センサーPからの出力に基づいて、x軸方向、y軸方向およびz軸方向の力であるFx(N)、Fy(N)およびFz(N)を取得する。そして、力制御部41は、FxおよびFyに基づいて、x−y平面における合力が0になるようにアーム10を制御する。なお、本実施形態においては、ネジ穴Hにネジ30を挿入する際にネジ穴Hの中心軸に沿ってネジ30が進む方向が挿入方向である。従って、本実施形態において、本実施形態においてz軸の負方向は挿入方向に平行であり、x軸方向およびy軸方向は挿入方向と直交する。
具体的には、力制御部41は、FxおよびFyが0でない場合、力覚センサーPの出力であるFxおよびFyがともに0になるために必要なアーム10の駆動量(モーターの制御量)を算出する。そして、力制御部41がモーターに対して制御信号を出力することにより、モーターを制御量に従って動作させ、力覚センサーPからの出力を0にする。
図7は、x−y平面における合力がFx1(すなわち、Fy=0)である例を示している。すなわち、図7に示す例において、ネジ30は、ネジ穴Hの開口部(z軸の正方向の端部)に形成されたテーパーに接点30aにて接触しており、ネジ30が挿入方向(z軸の負方向)に移動することによってネジ30がテーパーから反作用を受ける。ここでは、当該接点30aからネジ30が受ける反作用がx軸の負方向を向いた大きさFx1の力である例を想定する。
図7に示すように、ネジ30はカバー21a内の気圧が小さくなることでビット21bに吸着されているため、ネジ30に作用した力Fx1は、ビット21bやカバー21aを介して力覚センサーPに伝わる。そして、接点30aからネジ30に作用する反作用と、ドライバー21が接点30aに及ぼしている力は逆向きで大きさが等しい力である。従って、力覚センサーPからは、Fx=Fx1(x軸方向の力)、Fy=0が出力される。この場合、力制御部41は、モーターに対して制御信号を出力してアーム10を駆動し、Fx1と逆方向(すなわち、x軸の負方向)に僅かにドライバー21を移動させる。この結果、ネジ30の接点30aがネジ穴Hの開口部におけるテーパーから離れるが、ネジ30が接点30aから離れた瞬間、ネジ30に対してx−y平面に平行な方向の力が作用しなくなる。このため、力覚センサーPの出力においてFx=Fy=0となり、力制御部41は、力覚センサーPの出力が目標力になったと見なし、x−y平面に平行な方向の位置または力に関する制御を中断する。
このような制御の過程において、力制御部41は、z軸方向の力Fzが既定の値になるようにアーム10を制御する。具体的には、力制御部41は、z軸方向の力Fzが既定の大きさ(例えば6N)であり、z軸の負方向に向いた力Fz1になるために必要なアーム10の駆動量(モーターの制御量)を算出する。そして、力制御部41がモーターに対して制御信号を出力することにより、モーターを制御量に従って動作させ、力覚センサーPからの出力がFz1になるように調整する。力Fzの既定の大きさは、種々の要素に基づいて特定されて良く、例えば、ドライバー21の重さ等に基づいて決められる。
次に、位置制御部42は、ネジ30の単位時間あたりの挿入速度でz方向に移動させる(ステップS125)。すなわち、本実施形態においてワークWのネジ穴Hに挿入されるネジ30は、既定の規格に従って製造されたネジであり、一回転あたりの挿入方向への移動距離、すなわち、リードが規格に従って製造されている。従って、ドライバー21の回転速度が決定すると、当該回転速度でネジ30が回転しながらネジ穴Hに挿入される際に挿入方向に移動する速度が決まる。
具体的には、ネジ30のリードをL(mm/回転)、ドライバーの1秒あたりの回転速度をR(rps)とした場合に、当該回転速度でネジ30を回転させると1秒あたりにR×L(mm)の距離だけネジ穴Hに挿入される。そこで、本実施形態においては、ネジ30がネジ穴Hに挿入される速度に合わせてドライバー21がz軸の負方向(挿入方向)に移動するように位置制御を行う。
具体的には、ドライバーコントローラー40bは、ドライバー21に制御信号を出力し、ドライバー21を予め決められた回転速度Rで回転させる。また、位置制御部42は、ネジ30のリードLと回転速度Rとの積を速度Vとして取得する。さらに、位置制御部42は、モーターに制御信号を出力し、アーム10を駆動してドライバー21をz軸の負方向に速度Vで移動させる。
なお、位置制御部42は、各種の制御の結果、ドライバー21(ネジ30)の移動速度が速度Vになるように制御する。従って、力制御部41の制御によって挿入方向に速度vfで移動する場合、位置制御部42は、さらにV−vfの速度が加えられることで結果としてドライバー21(ネジ30)の移動速度が速度Vとなるように、アーム10を駆動する。例えば、力制御による速度vfが((z軸方向の目標力−力覚センサーPの出力)/ダンパー)で得られる場合、ネジ30がネジ穴Hに接触するなどして力覚センサーPの出力が変化すると力制御による速度vfも変化する。なお、ダンパーはインピーダンス制御等における仮想粘性係数である。
より具体的な例としては、例えばネジ30の種類がM1であり、リードLが0.25mm、回転速度Rが13.3rpsである場合、力制御時の挿入方向の速度Vは、約3.3mm/sec(=13.3×0.25)である。この場合において、インピーダンスパラメーター(仮想慣性係数m(N/(mm/s2))、仮想粘性係数d(N/(mm/s))の数値としては、例えば、Fxについてm=0.001,d=1、Fyについてm=0.001,d=1、Fzについてm=0.005,d=5とする例が挙げられる。また、インピーダンスパラメーター(仮想弾性係数k(N/mm)の数値を、全て0(Fxについて0、Fyについて0、Fzについて0)、挿入方向の目標力の数値を3(N)とする例が挙げられる。
さらに、ネジ30の種類がM1〜M39の場合において、以下の例を採用し得る。すなわち、力制御時の挿入方向の速度として、1〜20(mm/sec)、インピーダンスパラメーター(仮想慣性係数m、仮想粘性係数d)の数値(m(N/(mm/s2))、d(N/(mm/s)を、Fxについてm=0.0005〜0.002,d=0.5〜2、Fyについてm=0.0005〜0.002,d=0.5〜2、Fzについてm=0.001〜0.01,d=1〜10、インピーダンスパラメーター(仮想弾性係数k(N/mm))の数値として、全て0、挿入方向の目標力の数値を0(N)より大きくかつ40(N)以下の値とする例が挙げられる。
位置制御部42は、当該変化に合わせてドライバー21(ネジ30)の移動速度を制御し、ドライバー21(ネジ30)の移動速度を速度Vとする。この構成によれば、図6に示すように、ビット21bが回転速度Rで回転しながらネジ30の先端に設定されたTCPがz軸の負方向に速度Vで移動する。なお、図6においてカバー21aは省略されている。なお、速度制御は、ネジ30が挿入される際の速度がVとなるように制御されていれば良く、位置制御による速度と力制御による速度の和によってV+Vfで移動することが許容されており、ネジ30が他の物体に接触した場合やz軸方向に作用する力が目標力になった場合に移動速度がVとなるような制御が採用されてもよく、種々の構成を採用可能である。
そして、ネジ30がネジ穴Hに到達し、ネジ30の溝がネジ穴Hの溝にかみ合い始めるとネジ30が回転しながらネジ穴Hに挿入されていくが、ネジ30のリードLとドライバー21の回転速度Rの積がVであるため、ドライバー21がz軸の負方向に移動する速度Vは変化せずにネジ30がネジ穴Hに挿入されていく。むろん、速度Vでのドライバー21の移動は、ネジ30がネジ穴Hに挿入されている間に実行されればよく、ネジ30がネジ穴Hに達する直前まで速度Vよりも高速に移動され、ネジ穴Hに達する段階で速度Vとなってもよい。
このように、本例の制御においては、ステップS125において、ドライバー21が回転しながらドライバー21とともにネジ30が速度Vでz軸の負方向に移動され、さらに、ネジ30が他の物体に接触すると、アーム10がz軸の負方向に力Fz1を作用させる。従って、ネジ30がネジ穴Hの溝にかみ合っており、ネジ30に対してz軸の負方向に力を作用させることができる状態において、ネジ30にはz軸の負方向に力Fz1が作用し続け、これとともにドライバー21によって回転される。さらに、ネジ30がテーパーに接触した後、x−y平面方向の力を0にするためにネジ30がx−y平面内でテーパーと逆側に僅かに移動すると、ネジ30がz軸の負方向に移動する。ネジ30がz軸の負方向に移動すると、再度ネジ30に対してテーパーからx−y平面方向の力が作用するため、当該力を0にする制御が行われてネジ30がx−y平面内でテーパーと逆側に僅かに移動する。
本実施形態においては、このような動作が繰り返されるため、ネジ30がテーパーの表面に沿ってテーパーを避けながらz軸の負方向に徐々に挿入される。すなわち、ネジ穴の壁面に接触しながらネジ30がネジ穴に挿入される倣い制御が実行される。そして、ネジ30の先端がテーパーよりも奥側に達すると、ネジ30が回転されているためにネジ30がネジ穴Hに挿入されていく。すなわち、アーム10はz軸の負方向に移動され、この過程においてアーム10の姿勢は変化しないが、ネジ30はネジ穴Hの溝に噛み合うため、ネジ30がテーパーよりも奥側に達するとネジ30の中心軸に対する傾斜は徐々に小さくなる。そして、やがてネジ30の軸は、ネジ穴Hの中心軸と平行になってネジ穴Hに挿入されていく。図8は、ネジ30の先端がネジ穴Hのテーパーよりも奥側(z軸負方向)に挿入されている過程を示す図である。
このような制御が実行されている状況において、ドライバーコントローラー40bは、ネジ締め完了を検知したか否かを判定する(ステップS130)。すなわち、ドライバーコントローラー40bは、ドライバー21からの出力信号に基づいてビット21bに作用するトルクを検出可能であり、既定の閾値以上のトルクが既定の期間ビット21bに作用した場合、ネジ締めが完了したことを検知する。なお、ドライバー21において、ネジ30とビット21bの接触部はカバー21aの内側に配置されている(例えば、図3参照)。そこで、ドライバー21においては、ネジ30のネジ締めが完了する前にビット21bがビット21bの長さ方向にネジ30を押し出しながら移動する(または、カバー21aがビット21bの長さ方向に沿ってドライバー21側に退避する)構成を備えている。
ステップS130において、ネジ締め完了を検知したと判定されない場合(ネジ30が挿入穴に最後まで挿入されていない場合)、位置制御部42および力制御部41は、ネジ締め完了を検知したと判定されるまで待機する(ステップS120,S125の制御を続ける)。なお、ネジ締め完了が検知される前に、ネジ締めの失敗が検知された場合(例えば、ビット21bからのネジ30の脱落が検知された場合)には、例えば、ステップS100に戻って同一のネジ穴について処理を行うなどの処理が行われる。
ステップS130において、ネジ締め完了を検知したと判定された場合、位置制御部42および力制御部41は、位置制御と力制御を終了する(ステップS135)。次に、制御部40aは、全ネジ穴Hに対してネジ30の挿入が終了したか否かを判定する(ステップS140)。すなわち、ワークWに形成されたネジ穴Hの数は予め決まっているため、制御部40aは、全てのネジ穴Hに対してネジ30の挿入が完了したか否かを判定し、完了すると判定されるまでステップS100以降の処理を繰り返す。
以上の構成によれば、ネジ穴Hにネジ30を挿入する際に失敗する確率を低減することが可能である。例えば、ネジ30に作用する力の法線方向にネジ30を向けるような従来の構成において、ネジ30がネジ穴Hのテーパーに接触すると、ネジ30がテーパーの法線方向に向いてしまい、移動不能になる場合がある。しかし、本実施形態によれば、ネジ30がテーパーの法線方向に向くことは抑制される。さらに、本実施形態においては、ネジ30がテーパーに接触しても、テーパーを回避してネジ30がネジ穴Hに挿入されるように倣い制御が行われる。従って、ネジ30のネジ穴Hに対する挿入が失敗する確率を低減することができる。
さらに、本実施形態においては、ネジ30を傾斜させてネジ穴Hに近づけるため、挿入穴の中心軸上に他の部材が存在してもその部材を避けた位置を利用してネジ穴にネジ30を近づけ、ネジ穴に挿入することが可能である。図9は、このようなネジ穴Hを有するワークWの例を示す図である。図9に示すように、ワークWは、中空の6面体の1面を除去した形状であり、側面S1にネジ穴Hが形成されている。当該ネジ穴Hの中心軸D上には反対側の側面S2が存在するため、ネジ穴Hの中心軸上にドライバー21やネジ30を配置してネジ30をネジ穴Hに挿入するのは困難である。
しかし、本実施形態においては、ネジ30を傾斜させてネジ穴Hに近づけ、ネジ30をネジ穴Hに挿入することができる。従って、ネジ穴Hの中心軸上に存在する側面S2を避けてネジ30をネジ穴Hに近づけ、挿入することができる。そして、このようにネジ30を傾斜させ、ネジ穴Hの中心軸に対してネジ30の軸が平行ではない状態でネジ30をネジ穴Hに挿入させようとした場合、力制御部41による制御がなければネジ30がテーパーに接触することにより、ネジ30の挿入が失敗しやすくなることが考えられる。しかし、本実施形態においては、力制御部41による制御でテーパーを回避しながらネジ30をネジ穴Hの奥側に進めることができる。従って、失敗の確率を高めることなくネジ30をネジ穴Hに挿入することが可能である。
(4)教示位置:
次に、本実施形態におけるネジ30の挿入開始位置としての教示位置を詳細に説明する。既定の作業を繰り返すロボットにおいては、通常、作業の要所毎における可動部の位置や姿勢を教示する。工業製品としてのロボットにおいては、製造誤差や経時変化等によって可動部の位置に誤差が生じ得る。教示位置や教示姿勢は、通常、種々の要素に基づいて特定されるが、一般的には、作業の成功確率が最も高くなるように教示位置および教示姿勢が決められる。
ネジ30をネジ穴Hに挿入する作業においては、一般的には、ネジ30の軸がネジ穴Hの中心軸に平行になるようにネジ30の姿勢が教示される。また、中心軸に平行な視線方向でネジ穴Hを見た場合の中央にネジ30の中心が配置されるように教示位置が設定される。図10は、テーパーTを有するネジ穴Hをz軸方向に沿って見た状態を示している。図10においては、中心軸(z軸の方向)に平行な視線方向でネジ穴Hを見た場合の中央を符号Oによって示している。
ネジ30をネジ穴Hの中心軸に対して傾斜させない場合、当該中央Oを教示位置とすると、ネジ30の挿入作業の成功確率が最も高くなる。しかし、ネジ30が傾斜された状態でネジ穴Hに向けて移動される構成においては、図7に示すようにネジ30におけるネジ穴H側の端部(挿入穴側の端部:ビット21bと反対側の端部)がテーパーに最初に接触し得る。このため、中央Oが理想的な教示位置とはならないことが判明した。
すなわち、当該中央Oから変位方向に変位した位置に教示位置が設定される構成が好ましいことが判明した。具体的には、ネジ30のネジ穴H側の端部がネジ穴Hの中心軸に対して傾斜する方向を変位方向とし中央Oから変位方向に変位した位置が教示位置となる構成が好ましい。なお、ここで、ネジ30のネジ穴H側の端部がネジ穴Hの中心軸に対して傾斜する方向は、ネジ穴Hの中心軸に垂直な方向で定義されている。例えば、図5に示す例において、ネジ30のネジ穴H側の端部Pe(本例ではTCPと一致)がネジ穴Hの中心軸Asに対して傾斜する傾斜方向はθ方向(回転中心を基準にした回転方向)ではなく、x−y平面内で定義される。従って、図5に示す例では、破線で示す矢印Dxが傾斜方向である。また、ネジ30のネジ穴H側の端部Peはネジ穴H側の一点であれば良く、ネジ30の中心軸Asがネジ穴Hの中心軸AH上に存在する場合と、傾斜した場合とで差異が生じるように、例えば、ネジ30の中心軸As上に定義されれば良い。
変位方向への変位量は、例えば、種々の変位量に変位させて挿入動作を繰り返し、成功および失敗の統計を取得するなどして特定可能である。図10においては、中央Oからの変位量をx軸方向にdx、y軸方向にdyとして挿入動作を試行する際の位置Ptが示されている。表1は、このようにx軸方向にdx、y軸方向にdyだけ変位させた位置Ptを挿入開始位置としてネジ30をネジ穴Hに挿入する動作を繰り返し、ネジ30が適正に挿入された確率を算出した結果を示している。
すなわち、表1では、変位量をx軸方向、y軸方向のそれぞれに0.2mm毎に変化させて確率を算出している。なお、この例において使用されたネジ30はM1.2×2mmの並目、SUS製のネジであり、ワークWは鉄製である。
ここでは、表1において成功率が100%となる変位量に着目する。成功率100%となる変位量のy軸方向における変化に着目すると、dy=0.0mmを中心としてy軸方向に対称に分布している(dx=−0.2,dy=−0.2は例外)。例えば、dx=0.0mmにおいて、成功率が100%である分布はdyが−0.4mm〜0.4mmの範囲に分布しており、その分布中心のdyは0.0mmである。従って、y軸方向の変位量は0が好ましい。
一方、dyが0.0mmである場合における成功率のx軸方向の分布に着目すると、成功率100%はdxが−0.2mmから0.8mmの範囲に分布している。従って、成功率100%の分布の分布中心はdx=0.3mmである。このため、dy=0.0mm、dx=0.3mmの位置を教示位置とすれば、ネジ30を傾斜させる本実施形態におけるネジ30の挿入の成功率を最も高くすることができる。
以上のように、変位方向にずれた位置を挿入開始位置としてネジ30を挿入する作業を複数の位置で複数回実施し、当該変位方向内で成功率が所定の確率(本例では100%であるが80%等であっても良い。)以上となる変位量の分布を特定し、当該分布の中心(本例ではdx=0.3mm)を教示位置とする構成を採用すれば、ネジ30を傾斜させる構成において、ネジ30を傾斜させない構成と同等の成功率でネジ30をワークWに対して挿入させることが可能である。なお、ネジ30を傾斜させた場合において成功率が100%となる変位量の分布は、ネジ30を傾斜させない場合において成功率が100%となる変位量の分布よりも広い。従って、ネジ30を傾斜させた場合、挿入開始位置の教示が厳密でなかったとしても、ネジ30を傾斜させない場合と比較してネジ30の挿入が成功する確率を高い確率とすることができる。
(5)他の実施形態:
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、制御装置は、ロボットに内蔵されていても良いし、ロボットの設置場所と異なる場所、例えば外部のサーバ等に備えられていても良い。さらに、制御装置が複数のロボットを制御するように構成されていても良い。むろん、制御装置が複数の装置に分散して配置されていても良い。例えば、制御装置の一部がロボットに内蔵され、他の一部がロボットの外部のサーバ等に配置されていても良い。
さらに、上述の実施形態の一部の構成が省略されてもよいし、処理の順序が変動または省略されてもよい。例えば、力覚センサーのリセットがネジ1個毎に行われるのではなく、複数のネジの作業について1回リセットが行われる構成であっても良い。
さらに、ロボットは可動部を有していればよく、ロボットは可動部を動作させることによって任意の機能を実現することができればよい。可動部は、ロボットの設置位置に対して相対的に移動し、姿勢が変化するように構成されていれば良く、その自由度(可動軸の数等)は任意である。少なくとも、挿入物を挿入穴の中心軸に対して傾斜させて挿入物を挿入穴に挿入することができればよい。従って、ロボットの態様は限定されず、軸の数やアームの数、エンドエフェクターの態様等は種々の態様を採用可能である。
また、可動部は、当該可動部が駆動されることにより、可動部の動作に伴って挿入物を移動させることができればよい。従って、挿入物は可動部や可動部に設けられたエンドエフェクター等に取り付けられるように構成されていれば良く、取り付けの態様は種々の態様を採用可能である。例えば、気圧や磁力等を利用した吸着や把持、挟持等やこれらの組み合わせによって挿入物が可動部や可動部に設けられたエンドエフェクター等に取り付けられる構成を実現可能である。可動部に対して挿入物を取り付けるための装置(例えば、吸着のための装置やエンドエフェクター等)は、可動部が有していても良いし、着脱可能であっても良い。
被挿入物は、挿入物が挿入される挿入穴を有する物体であれば良く、挿入物が挿入可能であれば形状や材質等は任意である。被挿入物は、挿入物の挿入動作が開始される前に、予め決められた位置に配置されていれば良く、その姿勢等は種々の姿勢であって良い。例えば、上述の図1に示す例において、被挿入物としてのワークWの姿勢が図1に示す姿勢と異なっており、ネジ穴Hの中心軸がx軸方向やy軸方向、他の方向を向いていても良い。
挿入穴は、挿入物を挿入可能な部位であれば良く、例えば、被挿入物に形成された穴等が挿入穴となり得る。挿入穴は、挿入物が挿入される形状であるため、挿入穴の中心軸に平行な視線方向で挿入穴を眺めた場合、挿入穴の内壁が挿入物の外壁に接するような形状等になるが、挿入物を挿入穴に挿入した後に挿入物が挿入穴内で移動しないようにするためには、挿入穴の内壁が挿入物の外壁よりも僅かに大きく形状がほぼ同一である構成が好ましい。
また、挿入穴の挿入方向は、当該挿入方向に沿って挿入物が移動した場合に挿入物が挿入される方向であり、主に直線方向が想定されるが、曲線に沿った方向(例えば、トーラス体の一部を挿入する挿入穴等)も想定し得る。
挿入物は、被挿入物の挿入穴に対して挿入される物体であれば良く、被挿入物の挿入穴に挿入可能であれば形状や材質等は任意である。挿入物は、挿入穴に挿入される前に可動部によって移動可能になっていれば良く、供給装置等によって可動部に供給されても良い。挿入は、組み立ての一部であっても良いし、締結の一部であっても良い。後者がネジによって行われる場合、挿入のために挿入物が移動する移動方向は挿入方向のみではなく、挿入穴の中心を軸とした回転方向にも移動し得る。
挿入物の中心軸に対する傾斜は、少なくとも挿入物が挿入穴の内壁に接触する場合において実現されていれば良く、挿入物の挿入穴への挿入が開始された場合(例えば、ネジ締めのため動作が開始された場合)には、傾斜していても良いし、傾斜した状態が終了しても良いし、傾斜角が徐々に0に近づいても良い。むろん、挿入物を挿入方向に対して傾斜させない状態で倣い制御を行う構成が採用されてもよく、この場合においても高い成功確率で挿入物を被挿入物に挿入することができる。
制御部は、可動部を制御することによって挿入物を移動させることができればよく、当該移動に伴って挿入物の姿勢を変化させることができればよい。従って、制御部としては、例えば、複数の自由度を有する可動部に対して変形や回転等の制御指示を行い、モーターやアクチュエーター等の駆動部を駆動する制御部が挙げられる。
制御部における制御は、少なくとも、挿入物の移動と挿入物の姿勢の調整(傾斜)と挿入物の挿入穴への挿入とを行うための可動部の制御が含まれていれば良く、可動部の位置と姿勢との少なくとも一方が変化する制御によって実現可能である。むろん、制御の際の制御目標は、種々の目標を採用可能であり、可動部や挿入物を目標位置まで移動させる位置制御や、可動部や挿入物に作用する力が目標力になるように可動部や挿入物を動作させる力制御、可動部や挿入物に作用する加速度が目標加速度になるように可動部や挿入物を動作させる加速度制御等であっても良いし、複数の制御の組み合わせであっても良い。
制御の具体例として、挿入物を挿入穴へ挿入する間に、制御部が、挿入物において挿入穴の挿入方向に作用する力が、挿入方向と直交する方向に作用する力よりも大きくなるように制御する構成であっても良い。すなわち、制御部は、制御によって可動部を駆動することが可能であり、当該駆動の結果、可動部の位置や可動部に作用する力が変化する。このような制御によれば、挿入物に作用する力を制御して、挿入物の挿入方向に作用する力が、当該挿入方向と直交する方向に作用する力よりも大きい力となるように制御することができる。
そして、挿入物において、挿入方向と直交する方向に作用する力よりも大きい力を挿入方向に作用させると、挿入物に対して、挿入方向に移動させるための力、すなわち、挿入物を挿入穴に挿入させるための力を作用させることができる。また、挿入方向に直交する方向に作用する力が0であれば挿入物が他の物体に接触した場合に他の物体と逆側に移動し、挿入方向に直交する方向に作用する力が0より大きければ多くの場合その力に応じて挿入物が当該直交方向に移動し得る。
図11においては、図7と同様の状態において、ネジ30が他の物体から受ける力ではなく、アーム10の駆動によってビット21bがTCPに作用させている力をFx3、Fx4として示している。すなわち、アーム10の駆動により、ビット21bにはz方向の力Fx4が作用している。従って、ビット21bは、力Fx4によってネジ30をネジ穴Hに挿入する。
また、本例では、ビット21bに作用するx方向の力がFx3(y方向の力は0)となるようにアーム10が制御されている。当該力Fx3が0であれば、ネジ30がテーパーに対して接点30aで接触したとしてもその反作用を打ち消すようにアーム10が制御されるため、ネジ30がテーパーを回避し、ネジ30が他の物体の接触に対して他の物体の逆側に移動して当該他の物体を回避しているように動作する。また、テーパーの接点30aから受ける反作用と同一の方向に向けた0より大きい力Fx3をTCPに作用させると、テーパーなどの物体を回避するようにアーム10が制御される。
このように、挿入物に着目した場合に、挿入穴の挿入方向に作用する力が挿入方向と直交する方向に作用する力より大きい状態は、各種の目標力によって実現可能である。すなわち、アーム10に連動する任意の部位(図11に示すネジ30の接点30aやTCP)に作用する力は、演算によって変換可能であるため、アーム10に連動する任意の部位に作用する力を目標力とすることができる。従って、図11に示したTCPに対する目標力が直接的に定義されて制御装置40が力制御を行っている構成に限定されず、どのような部位に対してどのような目標力が設定されて制御が行われてもよい。そして、挿入物に着目した場合に、挿入穴の挿入方向に作用する力が挿入方向と直交する方向に作用する力より大きいのであれば、挿入穴の中心軸に対して傾斜させて挿入物を挿入穴に接触させた後に、挿入物を挿入穴に挿入するための制御を行うことができる。
以上のように、挿入物の挿入方向への移動を妨げる他の物体が挿入物に接触したとしても、挿入物が当該物体を避ける。そして、挿入方向への力が挿入方向に直交する方向の力よりも大きいことにより、他の物体を避けながら挿入物が挿入穴に挿入されるように制御することができる。なお、挿入物を挿入穴へ挿入する間は、挿入物が挿入穴に挿入され始めてから挿入が完了するまでの間の少なくとも一部の期間であればよく、例えば、挿入物としてのネジが挿入穴としてのネジ穴のテーパーに接触している間等であってもよい(以下同様)。
さらに、制御の具体例として、制御部が、可動部に設けられた力検出部からの出力を目標力にさせる力制御部を備えてもよい。すなわち、可動部(または可動部とともに移動する挿入物)が他の物体に接触すると、当該他の物体から可動部に力が及ぼされ、可動部から他の物体に力を及ぼす。これらの力は互いに逆向きであり同一の大きさである。力検出部は、可動部が他の物体に及ぼす力を検出することができる。
そして、制御部が可動部を移動させるための力を当該可動部に作用させると、その結果として可動部が他の物体に及ぼす力が変化し得る。従って、制御部が可動部の位置等を制御すると、力検出部からの出力が変化し得る。このため、制御部は、可動部の位置等を制御することにより、力検出部からの出力が特定の目標力になるように可動部を制御することができる。
なお、力検出部は可動部に設けられており、可動部に作用する力を検出するが、ここでは、可動部とともに移動する挿入物を挿入穴に対する挿入する際の制御が行われるため、力検出部において検出する力は挿入物に作用する力と実質的に同等であることが好ましい。すなわち、吸着等によって挿入物が可動部に対して実質的に一体化されることにより、可動部とともに挿入物が移動する構成においては、力検出部によって検出する力は挿入物に作用する力と実質的に同等と見なすことができる。
そして、以上のように、可動部の制御として力制御を実行可能である構成において、挿入物を挿入穴へ挿入する間に、力制御部が、挿入方向を向いた力を目標力にする構成であっても良い。この構成によれば、力制御部は、可動部を介して挿入物に対して、挿入方向を向いた力が作用するように可動部を制御することができる。この結果、挿入物が挿入穴に挿入されるように可動部を制御することが可能になる。なお、力検出部からの出力が、可動部から他の物体に及ぼす力ではなく、他の物体からの反作用としての力であれば、目標力の向きは逆向き(従って、挿入方向の逆向きを向いた力)になる。
さらに、挿入方向を向いた力を目標力とする構成において、挿入方向と直交する方向に目標力を設定しても良い。例えば、挿入物を挿入穴へ挿入する間に、力制御部が、挿入方向と直交する方向における目標力を0にする構成が採用されてもよい。すなわち、挿入方向と直交する方向から可動部(または挿入物)に他の物体が接触していなければ、挿入方向と直交する方向に関して力検出部で検出される力は0である。従って、この状況において挿入方向と直交する方向の目標力を0にしても実質的に意味は無い。
一方、挿入方向と直交する方向から可動部(または挿入物)に他の物体が接触すると、挿入方向と直交する方向に作用する力として力検出部から有限の値(≠0)が出力される。従って、このように、挿入方向と直交する方向から可動部(または挿入物)に他の物体が接触している状況において、挿入方向と直交する方向の目標力を0にすると有限の値を0にするように可動部が駆動されることになる。この結果、可動部は、可動部(または挿入物)に接触している他の物体を避ける移動を行うように制御される。
なお、当該制御によって、挿入方向と直交する方向から可動部(または挿入物)に他の物体が接触しない状態になると、力検出部からの出力は0(すなわち目標力)になり、目標力による可動部の制御が行われない状態になる。このため、挿入方向において、当該挿入方向を向いた力が目標力となっていることにより、挿入方向への移動を妨げる物体(ネジ穴のテーパー等)に可動部(または挿入物)が接触している状態においては、当該物体を避けながら挿入物が挿入方向に徐々に挿入されるように制御される。すなわち、挿入穴の壁面に接触しながら挿入物が挿入穴に挿入される倣い制御が実行される。
さらに、挿入方向を向いた力を目標力とする構成において、力以外の他の物理量を用いて倣い制御が実行されてもよい。例えば、制御部が、可動部とともに移動する基準部位の位置を目標位置に移動させる位置制御部を備える構成を採用可能である。すなわち、可動部とともに移動する基準部位が目標位置に移動されると、当該基準部位を目標位置にすることで可動部や挿入物の位置を制御する位置制御が実行されることになる。なお、基準部位は、当該基準部位の位置が制御部によって把握され、任意の座標系で任意の位置に移動され得る部位である。基準部位としては、例えば、可動部において設定されたTCP(Tool Center Position)や、エンドエフェクターの重心、挿入物の特定の部位(ネジの先端等)など、種々の部位が想定可能である。
このように位置制御が可能な状況において、挿入物を挿入穴へ挿入する間に、位置制御部が、基準部位の位置を目標位置に移動させる制御を行う構成が採用されてもよい。この構成によれば、挿入方向に向いた力が挿入物に作用している状態において、可動部(または挿入物)が挿入を妨げる物体に接触したとしても、基準部位が目標位置に移動されることにより、当該物体に接触した状態で静止することを回避できる可能性が高くなる。当該物体を回避して挿入が行われるならば、当該物体の回避を繰り返すなどして物体の回避と挿入物の挿入とが進む状況となり得る。この場合、倣い制御が行われているといえる。
位置制御においては、種々の目標位置を設定することが可能であるが、例えば、少なくとも、挿入方向と直交する方向であって、挿入物の挿入を妨げる物体が存在しない方向に目標位置を変化させる構成であれば、挿入物の挿入方向への移動を妨げる物体に挿入物が接触していたとしても、当該物体を回避する確率を高めることができる。また、可動部(または挿入物)を予め決められた速度で移動させる制御によって位置制御が実現されても良い。
なお、位置制御における目標位置は種々の手法によって決定されて良く、例えば、挿入物としてのネジを挿入穴としてのネジ穴に挿入する例において、ネジにおいて挿入穴の中心方向に向いた(挿入方向に直角な方向の)大きな力が作用している場合、ネジがネジ穴のテーパーに接触していると推定される。一方、ネジにおいて挿入穴の中心方向に向いた力が小さい場合ネジ穴に入り始めたと考えられる。従って、挿入穴の中心方向に向いた力が大きい場合にその力の方向に移動する移動制御が行われれば、テーパーからネジが逃げるが、挿入方向には力が作用しているためテーパーに沿って奥にネジが移動する。このため、倣い制御が実現される。むろん、挿入方向を向いた力が目標力になっている状態で倣い制御が行われるためには、他にも種々の制御が採用可能であり、種々の位置制御や速度制御等が組み合わされる構成等が採用されてもよい。
さらに、可動部(または挿入物)を予め決められた速度で移動させるために設定される基準部位の位置の速度は、ドライバーの単位時間あたりの回転数とネジのリードとの積に基づいて決められていれば良く、積の値自体が速度であっても良いし、積の値に対してマージンが設けられた値が速度であっても良い。なお、マージンとしては、種々の例が挙げられ、例えば、積の0.5倍以上、2倍以下の値を速度とする構成が採用されてもよい。すなわち、積の0.5倍未満の速度であるとネジの挿入速度が遅くなり効率が悪くなり、また、ネジの挿入が失敗する確率が増加してしまう。一方、積の2倍を超える速度であるとネジやネジ穴に作用する力が増加し、また、ネジの挿入が失敗する確率が増加してしまう。単位時間は、秒単位であっても良いし分単位であっても良く種々の単位を採用可能である。