(57)【要約】【課題】  ロボット装置による物品の組立において、対象物の形状が多様でも、位置決め装置を用いることなく、物品の組立成功の確率を高めることができるロボットシステムを提供する。【解決手段】  嵌合部品となるワークを所定量傾け、嵌合部品となるワークを被嵌合部品となるワークに挿入する際、嵌合部品となるワークの面の一部と被嵌合部品となるワークとの面の一部を、複数回接触させて組立を行うロボットシステムを採用した。【選択図】  図５
2019217593.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームにエンドエフェクタが装着され、前記エンドエフェクタによって第１の対象物を保持し、前記第１の対象物と第２の対象物とを接触させながら作業を行うロボットシステムであって、
前記エンドエフェクタの位置を検出する位置検出手段と、
前記エンドエフェクタにかかる力を検出する力検出手段と、
前記ロボットシステムを制御する制御装置と、を有し、
前記制御装置は、
前記位置検出手段の検出値から、前記エンドエフェクタにより保持された前記第１の対象物を所定量傾け、
前記第１の対象物と前記第２の対象物とを接触させ、
前記力検出手段の検出値を基に、前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させ、
前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させながら、前記第１の対象物を移動させ、
前記第１の対象物の第２の面の一部と、前記第２の対象物の第２の面の一部とを接触させることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムにおいて、
前記制御装置は、
前記第１の対象物の第２の面の一部と、前記第２の対象物の第２の面の一部とを接触させながら、前記第１の対象物を前記第２の対象物に挿入することを特徴とするロボットシステム。
【請求項３】
請求項２に記載のロボットシステムにおいて、
前記制御装置は、
前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させる際、前記第１の対象物を回転させ、
前記回転の角度が、前記所定量より小さい場合、作業を一時停止することを特徴とするロボットシステム。
【請求項４】
請求項１または請求項２に記載のロボットシステムにおいて、
前記第１の対象物を所定量傾ける際、前記第１の対象物において、所定のコーナ部が前記第２の対象物に最も近くなるように傾けることを特徴とするロボットシステム。
【請求項５】
ロボットアームにエンドエフェクタが装着され、前記エンドエフェクタによって第１の対象物を保持し、前記第１の対象物と第２の対象物とを接触させながら作業を行うロボットシステムの制御方法であって、
前記ロボットシステムは、
前記エンドエフェクタの位置を検出する位置検出手段と、
前記エンドエフェクタにかかる力を検出する力検出手段と、
前記ロボットシステムを制御する制御装置と、を有し、
前記制御装置は、
前記位置検出手段の検出値から、前記エンドエフェクタにより保持された前記第１の対象物を所定量傾ける傾倒工程と
前記第１の対象物と前記第２の対象物とを接触させる第１の接触工程と、
前記力検出手段の検出値を基に、前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させる第２の接触工程と、
前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させながら、前記第１の対象物を移動させる移動工程と、
前記第１の対象物の第２の面の一部と、前記第２の対象物の第２の面の一部とを接触させる第３の接触工程と、を有していることを特徴とする制御方法。
【請求項６】
請求項５に記載のロボットシステムにおいて、
前記制御装置は、
前記第１の対象物の第２の面の一部と、前記第２の対象物の第２の面の一部とを接触させながら、前記第１の対象物を前記第２の対象物に挿入することを特徴とする制御方法。
【請求項７】
請求項６に記載の制御方法において、
前記制御装置は、
前記第２の接触工程において、
前記第１の対象物を回転させ、前記回転の角度が、前記所定量より小さい場合、作業を一時停止する一時停止工程を有することを特徴とする制御方法。
【請求項８】
請求項６または請求項７に記載の制御方法において、
前記傾倒工程を行う際、前記第１の対象物において、所定のコーナ部が前記第２の対象物に最も近くなるように傾けることを特徴とする制御方法。
【請求項９】
ロボットアームにエンドエフェクタが装着され、前記エンドエフェクタによって第１の対象物を保持し、前記第１の対象物と第２の対象物とを接触させながら作業を行うロボットシステムを用いた物品の組立方法であって、
前記ロボットシステムは、
前記エンドエフェクタの位置を検出する位置検出手段と、
前記エンドエフェクタにかかる力を検出する力検出手段と、
前記ロボットシステムを制御する制御装置と、を有し、
前記制御装置は、
前記位置検出手段の検出値から、前記エンドエフェクタにより保持された前記第１の対象物を所定量傾ける傾倒工程と
前記第１の対象物と前記第２の対象物とを接触させる第１の接触工程と、
前記力検出手段の検出値を基に、前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させる第２の接触工程と、
前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させながら、前記第１の対象物を移動させる移動工程と、
前記第１の対象物の第２の面の一部と、前記第２の対象物の第２の面の一部とを接触させる第３の接触工程と、
前記第１の対象物を前記第２の対象物に挿入する挿入工程と、を有すること特徴とする物品の組立方法。
【請求項１０】
請求項５から請求項９のいずれか１項に記載の制御方法または物品の組立方法を実行可能な制御プログラム。
【請求項１１】
請求項１０に記載の制御プログラムを記録した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットシステムに関する。
【背景技術】
【０００２】
近年生産現場での生産自動化において、消費者ニーズの多様化により多種多様な対象物を把持し、別の対象物に組み付けを行い、物品を組み立てることができるロボット装置が必要とされている。しかしながら、ロボット装置で物品を組み立てる場合、組立成功の確率を高める為には、ロボット装置により動作せられる対象物と、被組立対象物との相対位置を正確に管理する必要がある。そのため被組立対象物の位置を正確に位置決めする位置決め装置が必要となるが、コストアップの要因となるので、このような特別な装置を用いることなく、組立成功の確率を高める事が求められている。
【０００３】
そこで特許文献１に記載の技術では、ハンドにより把持された嵌合部品を所定量傾け、嵌合部品の１つのコーナ部を被嵌合部品の開口部に挿入する。そして嵌合部品をＹ方向に移動させ、コーナ部を被嵌合部品の内面に接触させ、そこから嵌合備品をＸ方向に移動させる。こうすることで嵌合部品のコーナ部と、被嵌合部品の開口部のコーナ部とを一致させることができる。そして一致させた両者のコーナ部を基準として嵌合部品の傾きを戻せば、位置決め装置を用いることなく嵌合部品の挿入面と開口部の位置を合わせることができ、組立成功の確率を高めることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１２５９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１に記載の技術では、嵌合部品と被嵌合部品の相対位置を両者のコーナ部を一致させることで合わせている。ゆえに、嵌合部品と被嵌合部品のコーナ部が角型のものなら問題ないが、丸みを帯びていると、両者のコーナ部を合わせることが困難となり、組立成功の確率が下がってしまう。
【０００６】
本発明は、このような課題に鑑みてなされた物であり、ロボット装置による物品の組立において、対象物の形状が多様でも、位置決め装置を用いることなく、物品の組立成功の確率を高めることができるロボットシステムを提供する。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために本発明は、ロボットアームにエンドエフェクタを装着し、前記エンドエフェクタによって第１の対象物を保持し、前記第１の対象物と前記第２の対象物とを接触させながら作業を行うロボットシステムであって、前記エンドエフェクタの位置を検出する位置検出手段と、前記エンドエフェクタにかかる力を検出する力検出手段と、
前記ロボットシステムを制御する制御装置と、を有し、前記制御装置は、前記位置検出手段の検出値から前記第１の対象物を所定量傾け、前記第１の対象物と前記第２の対象物とを接触させ、前記力検出手段の検出値を基に、前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させ、前記第１の対象物の第１の面の一部と、前記第２の対象物の第１の面の一部とを接触させながら、前記第１の対象物を移動させ、前記第１の対象物の第２の面の一部と、前記第２の対象物の第２の面の一部とを接触させることを特徴とするロボットシステム。
【発明の効果】
【０００８】
本発明によれば、嵌合部品となるワークと被嵌合部品となるワークとの面の一部を接触させることで組立を行っている。これによりワークの相対位置を両者の面により合わせることができ、コーナ部の形状によらず、かつ位置決め装置を用いることなく、物品の組立成功の確率を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態におけるロボットシステム１０００の概略図である。
【図２】第１の実施形態におけるロボットアーム本体２００の概略図である。
【図３】第１の実施形態におけるロボットシステム１０００の制御ブロック図である。
【図４】第１の実施形態における制御フローチャートである。
【図５】図４の各ステップにおける状態図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施形態はあくまでも一例であり、細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更できる。また、本実施形態で取り上げる数値は参考数値であって本発明を限定するものではない。
【００１１】
（第１の実施形態）
図１は、ロボットシステム１０００の全体の概略を示している。図１（ａ）より、ロボットシステム１０００は、ロボットアーム本体２００、エンドエフェクタ３００、架台６００、制御装置４００、外部入力装置５００を備えている。
【００１２】
ロボットアーム本体２００は架台６００上に設置されており、ロボットアーム本体２００の先端には、エンドエフェクタ３００を備えている。本実施形態ではエンドエフェクタ３００として、２つの指部を備えたロボットハンドを例に説明する。なお、本実施形態では指部を備えたロボットハンドを例にとるが、例えば指部の代わりに吸着機構を設けワークＷａの保持を行うエンドエフェクタ等、ワークに作業を行うことができる機構を用いても良い。
【００１３】
制御装置４００はマイクロプロセッサなどから成るＣＰＵなどによって構成されている。制御装置４００には外部入力装置５００が接続され、さらに配線２５０を介してロボットアーム本体２００及びエンドエフェクタ３００に接続されている。
【００１４】
ユーザにより外部入力装置５００を用いて指令値を制御装置４００に入力し、制御装置４００からの制御値がロボットアーム本体２００及びエンドエフェクタ３００に渡されることで動作の制御が行われる。
【００１５】
また制御装置４００は、ロボットアーム本体２００の各種動作に応じて対応する駆動部を制御するためのプログラムや、それらの制御に必要なデータ等を記憶したＲＯＭを有する。さらにロボットアーム本体２００を制御する上で必要なデータ、設定値、プログラム等を展開するとともにＣＰＵの作業領域として使用するＲＡＭを備えている。
【００１６】
外部入力装置５００をはじめとする外部機器は汎用入出力インターフェイスＩ／Ｏなどによって接続されている。外部入力装置５００の例としてはティーチングペンダント等が挙げられる。
【００１７】
なお外部入力装置５００には、ロボットアーム本体２００の関節の姿勢（位置や角度）、あるいはエンドエフェクタ３００の基準位置などを移動させるための操作キーを含む操作部が配置される。外部入力装置５００の操作部で何らかの操作が行われると、制御装置４００は配線２５０を介してロボットアーム本体２００及びエンドエフェクタ３００の動作を制御する。
【００１８】
また、架台上にはワークＷａとワークＷｂが所定の位置に載置されている。ワークＷａは矩形状のワークであり、エンドエフェクタ３００により把持される。ワークＷｂも矩形状であるが、ワークＷａが挿入される開口部が設けられており、この開口部にワークＷａが挿入され、物品が組み立てられる。
【００１９】
ワークＷａおよびワークＷｂの位置は、不図示の供給装置によって、おおよその位置を管理された上で配置される。また、ワークＷｂはワークＷａの挿入中、動かないよう固定されているものとする。
【００２０】
図１（ｂ）はロボットアーム本体２００を操作し、エンドエフェクタ３００でワークＷａは把持した際の図である。図１（ｃ）はエンドエフェクタ３００により把持したワークＷａをワークＷｂに挿入している図である。
【００２１】
このようにロボットアーム本体２００及びエンドエフェクタ３００を操作し、ワークＷａをワークＷｂに挿入することで物品の組立を行う。
【００２２】
図２はロボットアーム本体２００を詳しく説明した図である。
【００２３】
図２よりロボットアーム本体２００は、複数リンク、例えばシリアルリンク形式で複数の関節（６軸）を介して相互に接続した構成を有する。ロボットアーム本体２００のリンク１０、２０、３０、４０、５０、および６０は、関節１１、２１、３１、４１、５１、および６１を介して駆動される。駆動源として各々の関節には後述するモータ２１０（図３）、を有している。
【００２４】
また、各関節１１、２１、３１、４１、５１、６１には回転角度が検出できるようエンコーダ２２０（図３）が各々設けられている。
【００２５】
同図より、ロボットアーム本体２００の基台１００とリンク１０はＺ軸方向の回転軸の周りで回転する関節１１で接続されている。関節１１は、例えば初期姿勢から約±１８０度の可動範囲を有するものとする。
【００２６】
ロボットアーム本体２００のリンク１０とリンク２０は関節２１で接続されている。関節２１の回転軸は、図示の状態ではＹ軸方向に一致している。この関節２１は、例えば初期姿勢から約±８０度の可動範囲を有するものとする。
【００２７】
ロボットアーム本体２００のリンク２０とリンク３０は関節３１で接続されている。この関節３１の回転軸は、図示の状態ではＹ軸方向に一致している。関節３１は、例えば初期姿勢から約±７０度の可動範囲を有するものとする。
【００２８】
ロボットアーム本体２００のリンク３０とリンク４０とは、関節４１で接続されている。この関節４１の回転軸は、図示の状態ではＸ軸方向に一致している。関節４１は、例えば初期姿勢から約±１８０度の可動範囲を有するものとする。
【００２９】
ロボットアーム本体２００のリンク４０とリンク５０は関節５１で接続されている。関節５１の回転軸はＹ軸方向に一致している。この関節５１は、初期姿勢から約±１２０度の可動範囲を有するものとする。
【００３０】
ロボットアーム本体２００のリンク５０とリンク６０は関節６１で接続されている。関節６１の回転軸はＸ軸方向に一致している。この関節６１は、初期姿勢から約±２４０度の可動範囲を有するものとする。
【００３１】
以上のように、本実施形態では、関節１１、４１、６１の回転軸は、各々が結合する２つのリンクの中心軸（図２中の１点鎖線）と、平行に配置されて、この２つのリンクの回転軸廻りの（相対）角度を変化させることができるよう配置されている。
【００３２】
一方、関節２１、３１、および５１の回転軸は、これら各々が結合する２つのリンクの中心軸（図２中の１点鎖線）の交差する（相対）角度を変化させることができるよう配置されている。
【００３３】
また、ロボットアーム本体２００の先端に接続されるエンドエフェクタ３００は生産ラインにおいて組み立て作業や移動作業を行うためのロボットハンドが適用されている。
【００３４】
このエンドエフェクタ３００は、リンク６０に対してビス止めなどの半固定的な手段によって装着されるか、あるいは、ラッチ止めなどの着脱手段によって装着可能であるものとする。
【００３５】
特に、エンドエフェクタ３００が着脱可能である場合は、ロボットアーム本体２００を制御して、ロボットアーム本体２００自身の動作によって、供給位置に配置された他のエンドエフェクタ３００を着脱ないし交換する方式も考えられる。
【００３６】
さらに本実形態では、関節１１〜６１の駆動をフィードバック制御できるように各関節にそれぞれトルクセンサ２３０とエンコーダ２２０が各々配置してある。（図３）
配線２５０は図２中で示した破線である。制御装置４００から引き出され、ロボットアーム本体２００の各関節に設けられたモータ２１０、エンコーダ２２０、トルクセンサ２３０に電気を供給する。また、エンドエフェクタ３００の指部を開閉するための不図示の駆動機構にも電気を供給する。
【００３７】
図３は本実施形態におけるロボットシステム１０００の制御ブロック図である。制御装置４００が後述の制御プログラムを実行することにより、ロボットアーム本体２００の各部及びエンドエフェクタ３００が制御される。
【００３８】
なお、エンドエフェクタ３００も図２に示したブロック図と同様なブロック図で制御されている。以下、図２、図３を参照して説明する。
【００３９】
図３より、外部入力装置５００から指令値を制御装置４００に出力し、制御装置４００ではロボットアーム本体２００の各関節１１〜６１に設けられたモータ２１０の制御値を作成する。
【００４０】
ロボットアーム本体２００の制御値は、モータドライバ２０５を介し、ロボットアーム本体２００の各関節に設けられたモータ２１０に供給される。
【００４１】
そしてロボットアーム本体２００が動作した際に、各関節に設けられたエンコーダ２２０とトルクセンサ２３０から検出される値を制御装置４００に返す。これによりロボットアーム本体２００のフィードバック制御が可能となる。
【００４２】
本実施形態におけるロボットアーム本体２００は６軸の多関節ロボットであり、その各関節にはそれぞれモータ、トルクセンサ、エンコーダ等による駆動伝達系が配されている。これらはロボットアーム本体２００によって実行する作業、移動軌跡によって適宜制御される。
【００４３】
ここでは説明の便宜上、モータ２１０、トルクセンサ２３０、エンコーダ２２０によって代表して説明するが、実際の動作においては、ロボットアーム本体２００の所望の動作を実現すべく各関節の駆動伝達系が適宜制御されるものとする。
【００４４】
上述のエンコーダ２２０、トルクセンサ２３０は、各関節１１〜６１の内部に配置されたモータ２１０あるいはさらに減速機（不図示）から成る駆動系の駆動軸上の所定位置に配置される。
【００４５】
そして、モータ２１０により各関節１１〜６１を駆動してその角度を変化させると、駆動時により、変化した各リンクの位置をエンコーダ２２０が検出し、各リンクに加わったトルクの値をトルクセンサ２３０が検出する。
【００４６】
このエンコーダ２２０、トルクセンサ２３０の出力を制御装置４００に返し、各関節１１〜６１の駆動にフィードバックする事で、各リンク１０〜６０における位置とトルクの制御を行うことができる。
【００４７】
さらに各トルクセンサ２３０の値からエンドエフェクタ３００で発生する力を計算で求める事ができ、ワークＷａに印加する荷重をエンドエフェクタ３００で発生する力として求め制御装置４００にフィードバックする事が可能である。
【００４８】
なお、エンコーダ２２０、トルクセンサ２３０の構造や配置位置の詳細は不図示であるが、公知の構造を利用するものとし、詳細な説明は割愛する。
【００４９】
ＲＯＭには、各種動作に応じてエンドエフェクタ３００およびロボットアーム本体２００に対応する駆動部を制御するための制御プログラムや、それらの制御に必要なデータ等が格納されている。これらロボットシステムを制御する上で必要なデータ、設定値、制御プログラム等をＣＰＵがＲＡＭで展開する。
【００５０】
また汎用入出力インターフェイスＩ／Ｏにはティーチングペンダント等の外部入力装置５００が接続されている。これによりユーザが直接ロボットアーム本体３００を動作させることができる。
【００５１】
以上の構成をとることで、ロボットアーム本体２００の制御に関して、エンドエフェクタ３００の位置を制御する位置制御モードと、エンドエフェクタ３００にかかる荷重と方向を制御する力制御モードと、を実行させることができる。
【００５２】
位置制御モードは、エンドエフェクタ３００を、事前に教示した位置（図１の座標ＸＹＺ）へ移動させるようロボットアーム本体２００の各関節１１〜６１の制御を行うものである。
【００５３】
なお、上記モータエンコーダ２２２とトルクセンサ２３０は、位置検出手段および力検出手段の一例であり、用途に応じて適宜別の機構を用いて良い。
【００５４】
力制御モードは、位置の指令を行わず、エンドエフェクタ３００に力と方向の指令値を与え、手先にその方向に動かした際、その力が常に発生するようロボットアーム本体２００の各関節１１〜６１を制御するものである。
【００５５】
エンドエフェクタ３００の位置の教示の方法は、主に３つのパターンが想定される。１つ目のパターンは、ロボットシステム１０００の各装置設計の寸法から算出する方法である。
【００５６】
２つ目のパターンは、実際のロボットシステム１０００を用いて、ロボットアーム本体２００の姿勢を、外部入力装置５００などを用いて変化させ、現物のワークに合わせて教示する方法である。
【００５７】
３つ目のパターンは、ロボットアーム本体２００のトルクセンサ２３０の検出値を用いてロボットアーム本体２００が外力に倣って姿勢を変化させる制御にした状態にする。そしてユーザがロボットアーム本体２００に直接、力を加えて姿勢を変化させて教示する方法がある。
【００５８】
続いて、上述したロボットシステム１０００を用いた、組立動作の制御方法について詳述する。
【００５９】
図４に本実施形態における組立動作を行うためのフローチャート、図５に図４のフローにおける各ステップの状態図を示す。以下、図４、図５を用いて説明する。
【００６０】
図４より、前提条件として、まずエンドエフェクタ３００によりワークＷａはすでに所定の姿勢で把持され、ワークＷｂの上空に位置し、ワークＷｂは不図示の載置台に固定されて載置されている状態から説明する。
【００６１】
また図５では、説明の簡略化のため、エンドエフェクタ３００及びロボットアーム本体２００の図示は割愛し、ワークＷａ、ワークＷｂの動きのみを図示し説明する。また座標８０１はエンドエフェクタ３００のローカル座標、座標８０２はロボットシステム１０００全体におけるエンドエフェクタ３００の位置を表すワールド座標である。
【００６２】
座標８０１を用いてワークＷａを傾け、座標８０２を用いてワークＷａを任意の空間における所定の位置に移動させる。
【００６３】
図４より、まずＳ４０１でワークＷａをワークＷｂの上空に移動させ、ワークＷａを組み立て開始位置に移動させる（図５（ａ））。ワークＷａが組立開始位置に移動したかどうかは、エンコーダ２２０の検出値より判断する。
【００６４】
次にＳ４０２でエンドエフェクタ３０２を所定量傾け、ワークＷａを所定量、傾倒させる。まず座標８０１のＸ軸を中心に位置制御モードで所定角度ΘＸ、回転するようロボットアーム本体２００に指令を与え、ワークＷａの姿勢を変更する（図５（ｂ））。
【００６５】
次に座標８０２のＹ軸を中心に位置制御モードで所定角度ΘＹ、回転するようロボットアーム本体２００に指令を与え、ワークＷａの姿勢を変更する（図５（ｃ））。
【００６６】
次に座標８０２のＺ軸を中心に位置制御モードで所定角度ΘＺ、回転するようロボットアーム本体２００に指令を与え、ワークＷａの姿勢を変更する（図５（ｄ））。
【００６７】
以上の姿勢変更により、ワークＷａの所定のコーナ部Ｐが、座標８０１のＺ軸において一番下の位置になり、ワークＷａにおいて最もワークＷｂに近い部分となる。
【００６８】
本実施形態では、コーナ部Ｐの位置出しをラフに行っており、回転させる各角度はある程度大きな角度が必要であり、１５度〜２５度程度必要である。これによりワークＷａのコーナ部Ｐが座標８０１のＺ軸において確実に一番下にすることができる。
【００６９】
こうすることで、ワークＷａを再現性良く把持するために正確な位置へワークＷａを配置する必要が無くなり、ワークＷａの位置決め装置を使う必要が無くなる。これによりロボットシステム１０００のコストを下げることができる。
【００７０】
次にＳ４０３で、ロボットアーム本体２００に対してワークＷａを座標８０１の−Ｚ方向へ移動させる指令値を与え、ワークＷａをワークＷｂに接近させる。この際、ロボットアーム本体２００の制御モードは力制御モードで行う。
【００７１】
ワークＷａを−Ｚ方向に移動させた結果、ワークＷａとワークＷｂがＳ点で接触する。その際、コーナ部ＰがワークＷｂの開口部Ｈに侵入した状態で、Ｓ点でＺ方向に力ＦＺが発生する（図５（ｅ））。この力ＦＺをＳ４０４で、ロボットアーム本体２００のトルクセンサ２２２を用いて検出する。
【００７２】
Ｓ４０４で力ＦＺが検出されない場合は、Ｓ４０４：ＮｏとなりＳ４０５に進む。Ｓ４０５では、ワークＷａが予め設定していたＺ軸における位置よりも下の位置になったか検出する。Ｓ４０５：Ｎｏならば、Ｓ４０３の直前まで戻り、ワークＷａの移動を再度行う。
【００７３】
Ｓ４０５：Ｙｅｓならば、何らかの理由によりワークＷａとワークＷｂとが接触しない位置で作業を行っていると判定し、組立失敗として作業一時停止し、終了する。接触を検知できない理由としては、エンドエフェクタ３００がワークＷａを脱落させたまま動作を続行した事や、ワークＷｂが所定の位置に配置されていないことなどが考えられる。
【００７４】
Ｓ４０４：Ｙｅｓならば、ワークＷａとワークＷｂが問題なく所定の位置で接触したと判定し、Ｓ４０６へ進む。
【００７５】
Ｓ４０６では、ロボットアーム本体２００にワークＷａを、Ｚ軸を中心に回転させる指令を出す。この際、回転角度としてＳ４０２で回転させたΘＺとは反対の−ΘＺを指令し、ワークＷａの姿勢を戻すよう回転させる（図５（ｆ））。
【００７６】
そしてＳ４０７では、ロボットアーム本体２００に対して、座標８０２のＸ軸での回転の指令と、座標８０２のＹ方向への移動の指令を行う（図５（ｇ））。
【００７７】
座標８０２のＸ軸での回転の指令は、Ｓ４０２で指令した回転角度ΘＸとは逆の値である−ΘＸの値を指令する。これにより、ワークＷａの姿勢を変更する。
【００７８】
そして座標８０２のＹ方向へ移動させる指令をロボットアーム本体２００に出力する。その際の指令値として、例えば、座標８０２のＹ方向に１０Ｎ検出されるまで移動、というような指令を出す。
【００７９】
これにより、ワークＷａの面７０１の一部と、ワークＷｂの開口部Ｈの内面の面７０２の一部とを、コーナ部Ｐで接触している状態から、面同士が接触しワークＷａとワークＷｂとが倣った状態にすることができる。
【００８０】
この際、接触させて倣わせる面はワークＷａのような矩形の部品であれば、面７０３よりも面７０１のような長辺側から接触させる方が組立を容易に確実に行う事ができ好ましい。
【００８１】
Ｓ４０８では、ワークＷａの姿勢変更が完了し、面７０１の一部がワークＷｂの面７０２の一部に接触し倣った状態になっているかどうかを判定する。判定の方法はワークＷａの姿勢の変化が生じているかどうかで行う。
【００８２】
方法としては、予め設定した時間内にワークＷａの姿勢変化の量が閾値に達すれば姿勢変更が完了したと判定、Ｓ４０８：ＹｅｓよりＳ４１０に移行する。閾値としては、Ｓ４０２で姿勢変更を行った際の各角度ΘＸ、ΘＹの絶対値が設定されている。
【００８３】
予め設定した時間内にワークＷａの姿勢変化の量が閾値に達しなければ、Ｓ４０８：ＮｏよりＳ４０９に進む。
【００８４】
４０９では、Ｓ４０６からＳ４０９における現在のループの回数が予め設定された回数であるかどうか判定する。ループの回数が所定回数より小さければ、Ｓ４０９：ＮｏよりＳ４０６の直前まで戻り、ワークＷａの姿勢変化動作を再度行う。
【００８５】
ループの回数が、所定回数に達すれば何らかの理由により姿勢変化が行えないと判定する。ワークＷａの姿勢変更が行えない理由として、ワークＷａとワークＷｂがかじってしまった場合が考えられる。
【００８６】
かじりの原因としてはワークＷａとワークＷｂの両者の面の一部が倣う前にワークＷａがワークＷｂに深く挿入されることが考えられる。これによりワークＷａがワークＷｂの開口部Ｈに引っかかり、姿勢の変更が出来なくなってしまう。
【００８７】
このかじりの検知をＳ４０８、Ｓ４０９で行う。Ｓ４０９：Ｙｅｓであれば、Ｓ４１０へ進み、かじり状態からの復帰動作を行う。
【００８８】
Ｓ４１０では、当初指令していた力制御モードの方向の指令値に対して逆向きの方向に指令値を与え、位置制御モードに切り換え、座標８０１の＋Ｚ方向への指令値を与える。これによりワークＷａを開口部Ｈから出すことができ、かじりの解消を行うことができる。
【００８９】
その際、かじりが解消されたかどうかも判定する。この場合、あらかじめかじり解消動作の時間を設定しておく。この時間内にワークＷａを座標８０１のＺ方向において、所定の位置まで戻すことができたら、かじりが解消したとして、Ｓ４０６の直前まで戻る。この際Ｓ４０９で判定したループ回数をリセットしておく。
【００９０】
Ｓ４１０で所定の位置までにワークＷａの位置を戻すことができなければ、かじりは解消できないとし、組立失敗として作業を一時停止し、終了する。
【００９１】
Ｓ４０８：Ｙｅｓであれば、Ｓ４１１に進む。Ｓ４１１では、まずワークＷａを座標８０２の−Ｘ方向へ移動させる指令をロボットアーム本体２００に出力する（図５（ｈ））。その際の指令値として、例えば、座標８０２の−Ｘ方向に１０Ｎ検出されるまで移動、というような指令を出す。このとき、ワークＷａの面７０１とワークＷｂの開口部Ｈの内面７０２とを接触させながらワークＷａを移動させる。
【００９２】
そして、ロボットアーム本体２００に対して、座標８０２のＹ軸での回転の指令を行う（図５（ｉ））。座標８０２のＹ軸での回転の指令は、Ｓ４０２で指令した回転角度ΘＹとは逆の値である−ΘＹの値を指令する。これにより、ワークＷａの姿勢をＳ４０１のときと同じ姿勢に変更する。
【００９３】
そしてＳ４１２、Ｓ４１３で、Ｓ４０８、Ｓ４０９と同様な方法で、ワークＷａが所定の時間内に角度が変更されたかを、Ｓ４１１〜Ｓ４１３のループ回数と共に判定し、ワークＷａとワークＷｂとのかじりを検出する。
【００９４】
Ｓ４１３：ＹｅｓでワークＷａとワークＷｂのかじりが検出されたら、Ｓ４１４に進み、Ｓ４１０と同様な方法でかじり状態からの復帰動作を行う。かじりから復帰したら、Ｓ４１１の直前まで戻って、再度ワークＷａの姿勢変化動作を行い、Ｓ４１４：Ｎｏによりかじりから復帰できないと判定したら、組立を終了する。
【００９５】
以上により、ワークＷａとワークＷｂを、ワークＷａの面７０３の一部と、ワークＷｂの開口部Ｈの内面７０４とが接触した状態にする。これにより、ワークＷａの姿勢がワークＷｂの開口部Ｈと位相が一致した状態となる。
【００９６】
そして４１５で、ロボットアーム本体２００に対して座標８０１の−Ｚ方向への移動を指令し、ワークＷａを−Ｚ方向に押し込みワークＷｂに挿入する。
【００９７】
そしてＳ４１６で、Ｓ４１５での押し付け動作により、所定の力ＦＺが検出されたかどうかを検出する。力ＦＺが検出されればＳ４１６：Ｙｅｓより、正しく組み付けが完了したとして動作を終了する。力ＦＺが検出されなければ、Ｓ４０１の直前まで戻り、再度ワークＷａの嵌合を行う。
【００９８】
Ｓ４１６において、本実施形態では、所定の力を検出することで、組立完了の判定を行ったが、これに限られない。例えば、ワークＷａの位置が座標８０１において所定の位置に位置しているかどうかで判定しても良い。
【００９９】
またＳ４１６のときでは、ワークＷａはワークＷｂに嵌合されているため、姿勢が拘束されているはずであり、ワークＷａの姿勢変化は小さいはずである。そこで力制御モードで座標８０２のＸ、Ｙ、Ｚ軸のそれぞれの方向に力を加えて判定する。座標８０２のＸ、Ｙ、Ｚ軸のそれぞれの方向に力を加えた時の、ワークＷａの姿勢の変化が閾値よりも小さければ正しく嵌合されたと判定し、閾値よりも大きければ正しく嵌合されていないと判定しても良い。
【０１００】
また、上述したＳ４０８、Ｓ４１２におけるワークＷａの姿勢変化の判定において、変化させたワークＷａの角度量で判定したがこれに限られない。例えば、ロボットアーム本体２００を力制御モードにし、接触させた面に垂直な方向に力指令値を与える。そしてワークＷａが垂直な方向に移動することなく、ワークＷａにかかる荷重が上昇すればワークＷａの面の一部とワークＷｂの面の一部とが接触していると判定できる。
【０１０１】
以上本実施形態によれば、ワークの組立を行う際、嵌合部品となるワークＷａと被嵌合部品となるワークＷｂの両者の複数の面の一部を接触させて、挿入時の両者の相対位置を合わせている。これにより、ワークのコーナ部の形状によらず、かつワークの位置決め装置を用いることなく挿入時の相対位置を確実に合わせることができ、ワークの組立成功の確率をロボットシステムのコストを上げることなく高めることができる。
【０１０２】
また、ワークＷａの第１の面の一部とワークＷｂの第１の面の一部とを接触させながら、ワークＷａの第２の面の一部とワークＷｂの第２の面の一部とを接触させている。これによりワークＷａの姿勢を戻す際、ワークＷａがワークＷｂに乗り上げてしまうことを低減することができ、ワークの組立成功の確率をさらに高めることができる。
【０１０３】
上述した第１の実施形態の処理手順は具体的には制御装置４００により実行されるものである。従って上述した機能を実行可能なソフトウェアの制御プログラムおよびそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１０４】
また、上記実施形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ或いはＲＡＭであり、ＲＯＭ或いはＲＡＭに制御プログラムが格納される場合について説明したが、本発明はこのような形態に限定されるものではない。本発明を実施するための制御プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【０１０５】
（その他の実施形態）
第１の実施形態では、ワークＷａがある程度位置出しされて載置されている場合を例に説明したが、これに限られない。例えば、ワークｗａがバラ積みされて供給されている状態である。
【０１０６】
この場合、ワークＷａのコーナ部の位置を管理する事ができないので、カメラ等の撮像装置を用いてバラ積みの状態のワークＷａから、エンドエフェクタ３００で把持が可能なワークＷａの位置、および姿勢を認識して把持動作を行う。
【０１０７】
これにより、ワークＷａを個別に配置するという作業が必要無くなり、ロボットシステムのさらなるコストダウンが見込まれる。
【０１０８】
また第１の実施形態で説明した、Ｓ４０２でのコーナ部Ｐの位置出しの確認を、撮像装置を用いて行うことができる。
【０１０９】
上記第１の実施形態では、ロボットアーム本体２００が６つの関節を有する６関節ロボットである場合を説明したが、関節の数はこれに限定されるものではない。ロボットアーム本体２００の形式として、垂直多軸構成を示したが、パラレルリンク型など異なる形式のロボットアーム本体２００の関節においても上記と同等の構成を実施することができる。
【０１１０】
また上記第１の実施形態では、Ｓ４０６からＳ４１５にかけてワークＷａの面の一部をワークＷｂの開口部Ｈの内面の一部に接触させる際、Ｓ４０２で傾けた角度量と絶対値が同じ角度量で行っていたがこれに限らない。例えば、ワーク同士の面を接触させる際、所定の方向に所定の力が検出されるまでワークＷａを回転させる指令を出すことでＳ４０６からＳ４１５の処理を達成できる。この場合Ｓ４０２で傾けた角度量とＳ４０６からＳ４１５で傾けた量は異なっていても良い。つまり、Ｓ４０１でワーク同士の位置関係に多少のバラツキがあっても組付可能とすることができる。
【符号の説明】
【０１１１】
１０、２０、３０、４０、５０、６０  リンク
１１、２１、３１、４１、５１、６１  関節
１００  基台
２００  ロボットアーム本体
２０５  モータドライバ
２１０  モータ
２２０  エンコーダ
２３０  トルクセンサ
２５０  配線
３００  エンドエフェクタ
４００  制御装置
５００  外部入力装置
６００  架台
７０１、７０３  ワークＷａの面
７０２、７０４  ワークＷｂの内面
１０００  ロボットシステム
Ｗａ、Ｗｂ  ワーク
Ｐ  コーナ部
Ｈ  ワークＷｂの開口部
【図１】
2019217593.tif 000003
【図２】
2019217593.tif 000004
【図３】
2019217593.tif 000005
【図４】
2019217593.tif 000006
【図５】
2019217593.tif 000007