<第1実施形態>
以下、本発明の第1実施形態について、図面を参照して説明する。
<ロボットシステムの構成>
まず、ロボットシステム1の構成について説明する。
図1は、第1実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、ロボット20と、ロボット制御装置30を備える。
ロボット20は、アームと、アームを支持する支持台を備える単腕ロボットである。
単腕ロボットは、この一例における1本のアーム(腕)を備えるロボットである。なお、ロボット20は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、2本以上のアームを備えるロボットである。なお、複腕ロボットのうち、2本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット20は、2本のアームを備える双腕ロボットであってもよく、3本以上のアームを備える複腕ロボットであってもよい。
アームは、エンドエフェクターEと、マニピュレーターMと、力検出部21を備える。
エンドエフェクターEは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターEは、当該指部を備えるエンドエフェクターに代えて、磁石や治具等によって物体を持ち上げることが可能な他のエンドエフェクターであってもよい。
エンドエフェクターEは、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、エンドエフェクターEは、ロボット制御装置30から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。また、エンドエフェクターEは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
マニピュレーターMは、7つの関節を備える。また、7つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターMを備えるアームは、7軸垂直多関節型のアームである。アームは、支持台と、エンドエフェクターEと、マニピュレーターMと、マニピュレーターMが備える7つの関節それぞれのアクチュエーターとによる連携した動作によって7軸の自由度の動作を行う。なお、アームは、6軸以下の自由度で動作する構成であってもよく、8軸以上の自由度で動作する構成であってもよい。
アームが7軸の自由度で動作する場合、アームは、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これによりアームは、例えば、動作が滑らかになり、更にアームの周辺に存在する物体との干渉を容易に回避することができる。また、アームが7軸の自由度で動作する場合、アームの制御は、アームが8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
マニピュレーターMが備える7つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置30から取得される制御信号に基づいて、マニピュレーターMを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターMが備える7つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
力検出部21は、エンドエフェクターEとマニピュレーターMの間に備えられる。力検出部21は、例えば、力センサーである。力検出部21は、エンドエフェクターE、又はエンドエフェクターEにより把持された物体に作用した力やモーメント(トルク)を検出する。力検出部21は、検出した力やモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置30へ出力する。
力検出情報は、ロボット制御装置30によるアームの力検出情報に基づく制御に用いられる。力検出情報に基づく制御は、例えば、インピーダンス制御等のコンプライアンス制御のことである。なお、力検出部21は、トルクセンサー等のエンドエフェクターE、又はエンドエフェクターEにより把持された物体に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
力検出部21は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、力検出部21とロボット制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
なお、ロボット20は、上記において説明した機能部に加えて、1以上の撮像部を備える構成であってもよい。この一例では、ロボット20が撮像部を備えない場合について説明する。
ロボット制御装置30は、ロボット20に制御信号を送信することにより、ロボット20を動作させる。これにより、ロボット制御装置30は、ロボット20に所定の作業を行わせる。なお、ロボット制御装置30は、ロボット20の外部に設置される構成に代えて、ロボット20に内蔵される構成であってもよい。
<ロボットが行う所定の作業の概要>
以下、第1実施形態においてロボット20が行う所定の作業の概要について説明する。
図1において、ロボット20は、エンドエフェクターEによって第1対象物を予め把持している。なお、ロボット20は、予め第1対象物を把持しておらず、所定の給材領域に配置された第1対象物を把持する構成であってもよい。
第1対象物は、第2対象物が有する1以上の挿入部のそれぞれに挿入することが可能な部位を1以上有する物体である。なお、当該部位は、第1対象物の全体であってもよい。例えば、第1対象物は、基板が有する穴に挿入することが可能なピンを2本有する電子部品である。以下では、一例として、第1対象物が、2本のピンとしてピンP1とピンP1の長さよりも短い長さのピンP2とを有するコンデンサーEPである場合について説明する。なお、ロボット制御装置30は、第1対象物がピンP1とピンP2とのうちいずれか一方又は両方であるとして、以下において説明する処理を実行する構成であってもよい。また、第1対象物は、電子部品に代えて、産業用の部品や部材、装置等であってもよく、生体等であってもよい。
第2対象物は、第1対象物の少なくとも一部を挿入することが可能な1以上の挿入部を有する物体である。例えば、第2対象物は、電子部品が有するピンを挿入可能な穴を、当該挿入部として1以上有する基板である。以下では、一例として、第2対象物が、第1対象物の一例であるコンデンサーEPが有するピンP1とピンP2とのそれぞれを挿入することが可能な2つの穴を有する基板Bである場合について説明する。図1では、基板Bは、治具Gによって支持されている。
なお、第2対象物は、基板Bに代えて、産業用の部品や部材、装置等であってもよく、生体等であってもよい。また、図1では、基板Bは、ロボット20の接地面(例えば、床面)に設けられた治具Gによって支持されているが、壁面や天井面等の他の位置に設けられた治具Gによって支持されている構成であってもよい。
ロボット20は、所定の作業として、コンデンサーEPが有するピンP1を、基板Bが有する2つの穴のうちの一方の穴である穴H1に挿入する。そして、ピンP1を穴H1に挿入した後、ロボット20は、ピンP1を穴H1に挿入した状態を保ったまま、コンデンサーEPが有するピンP2を、基板Bが有する2つの穴のうちの穴H1と異なる穴H2に挿入する。すなわち、穴H1及び穴H2はそれぞれ、第2対象物が備える挿入部の一例である。
<ロボット制御装置が行う処理の概要>
以下、第1実施形態におけるロボット20に所定の作業を行わせるためにロボット制御装置30が行う処理の概要について説明する。
この一例において、コンデンサーEPが有するピンP1の先端部には、当該先端部とともに動く1つ目のTCP(Tool Center Point)である制御点T1が設定される。制御点T1には、ピンP1の位置及び姿勢を表す三次元局所座標系が設定される。当該三次元局所座標系の原点は、制御点T1、すなわちピンP1の先端部の位置を表す。また、当該三次元局所座標系の各座標軸の方向は、制御点T1、すなわちピンP1の先端部の姿勢を表す。
また、コンデンサーEPが有するピンP2の先端部には、当該先端部とともに動く2つ目のTCPである制御点T2が設定される。制御点T2には、ピンP2の位置及び姿勢を表す三次元局所座標系が設定される。当該三次元局所座標系の原点は、制御点T2、すなわちピンP2の先端部の位置を表す。また、当該三次元局所座標系の各座標軸の方向は、制御点T2、すなわちピンP2の先端部の姿勢を表す。
ロボット制御装置30は、予め記憶された穴H1と穴H2とのそれぞれの位置を示す情報である位置情報に基づいて、アームによりコンデンサーEPを移動させることにより、ピンP1の制御点T1を所定の待機位置である第1待機位置に移動させ、制御点T1の姿勢を所定の待機姿勢にさせる。第1待機位置は、所定の作業においてロボット制御装置30がロボット20に行わせる動作のうち、コンデンサーEPを基板Bに近づける動作である第1挿入動作における制御点T1の始点を示す位置である。
穴H1の位置は、この一例において、ピンP1が挿入される側の基板Bの面上における穴H1の中心の位置のことである。なお、穴H1の位置は、これに代えて、穴H1に対応付けられた他の位置であってもよい。また、穴H2の位置は、この一例において、ピンP2が挿入される側の基板Bの面上における穴H2の中心の位置のことである。なお、穴H2の位置は、これに代えて、穴H2に対応付けられた他の位置であってもよい。
なお、当該位置情報は、穴H1と穴H2とのそれぞれの位置を示す情報に代えて、基準となる位置である基準位置から穴H1と穴H2とのそれぞれの位置までの相対的な位置を示す情報であってもよい。例えば、ロボット20が架台に設置されている場合であり、ロボット20が設置されている架台と基板Bを支持している治具Gが設置されている架台とが異なる架台であった場合、ロボット制御装置30に予め記憶されている位置情報が示す穴H1と穴H2とのそれぞれの位置と、現在の穴H1と穴H2とのそれぞれの位置とは、振動等によってずれてしまうことがある。
この場合、治具Gが設置されている架台に基準位置を設け、当該基準位置から穴H1と穴H2とのそれぞれまでの相対的な位置を示す情報を予めロボット制御装置30に記憶させておくことにより、ロボット制御装置30は、当該基準位置のみを改めて記憶させることによって、穴H1と穴H2とのそれぞれの位置を改めて記憶させることなく、所定の作業を行うことができる。その結果、ユーザーは、ロボット制御装置30に所定の作業において穴H1と穴H2とのそれぞれの位置を記憶させる作業に要する時間を短縮することができる。
なお、ロボット制御装置30は、ダイレクトティーチングによって基準位置が記憶させられる構成であってもよく、基準位置にマーカーを貼付し、当該マーカーを撮像部により撮像することによって基準位置を検出する構成であってもよい。ダイレクトティーチングは、概要を説明すると、力検出部21から取得した力検出情報に基づく制御によって、ユーザーがエンドエフェクターEを把持し、所望の位置にTCPを移動させ、移動させた後の当該TCPの位置をロボット制御装置30に記憶させることである。
ロボット制御装置30は、アームにより制御点T1を第1挿入動作における始点である第1待機位置に移動させた後、ロボット20に第1挿入動作を行わせることによりコンデンサーEPを基板Bに近づけさせ始める。具体的には、ロボット制御装置30は、アームによりコンデンサーEPをコンデンサーEPと基板Bとが近づく方向である第1方向に移動させ始める。第1挿入動作が行われている間、ロボット制御装置30は、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したか否かを力検出情報に基づいて判定することを繰り返す。ロボット制御装置30は、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触していないと力検出情報に基づいて判定し続けている限り、ロボット20に第1挿入動作を継続させ続ける。そして、ロボット制御装置30は、アームによりピンP1を穴H1に挿入させる。
一方、ロボット制御装置30は、第1挿入動作が行われている間に、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと力検出情報に基づいて判定した場合、アームによりコンデンサーEPと基板Bとを離間させる。これにより、ロボット制御装置30は、基板Bが備える穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触した場合にコンデンサーEP及び基板Bを変形させてしまうことを抑制することができる。
また、ロボット制御装置30は、コンデンサーEPと基板Bとを離間させる際、過去に制御点T1が第1待機位置に待機したタイミングのうちの直近のタイミングにおける第1待機位置とは異なる位置を新たな第1待機位置として、当該第1待機位置に制御点T1を移動させる。これにより、ロボット制御装置30は、コンデンサーEPと基板Bとを離間させるとともに、過去の第1待機位置と穴H1の位置との相対的な位置関係を、新たな第1待機位置と穴H1との相対的な位置関係に変化させる。すなわち、ロボット制御装置30は、第1挿入動作における制御点T1の始点を、コンデンサーEPと基板Bとを離間させるたびに、コンデンサーEPと基板Bとを離間させるとともに、過去の当該始点とは異なる始点に変更させる。そして、ロボット制御装置30は、ロボット20に再び第1挿入動作を行わせることにより、コンデンサーEPを基板Bに近づけさせる。
このように、ロボット制御装置30は、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと力検出情報に基づいて判定した場合であっても、アームによりコンデンサーEPを基板Bに近づけることとコンデンサーEPを基板Bから離間させることとを繰り返すことによって、コンデンサーEPと基板Bとのうちいずれか一方又は両方を変形させてしまうことを抑制しつつ、ピンP1を穴H1に挿入することができる。
ピンP1が穴H1に挿入された後、ロボット制御装置30は、ピンP1を穴H1に挿入した状態を保ったまま、アームにより制御点T2を第1待機位置と異なる位置である第2待機位置に移動させる。第2待機位置は、所定の作業においてロボット制御装置30がロボット20に行わせる動作のうち、ピンP1を穴H1に挿入した状態を保ったまま、コンデンサーEPを基板Bに近づける動作である第2挿入動作における制御点T2の始点を示す位置である。
ロボット制御装置30は、アームにより制御点T2を第2挿入動作における始点である第2待機位置に移動させた後、ロボット20に第2挿入動作を行わせることによりコンデンサーEPを基板Bに近づけさせ始める。具体的には、ロボット制御装置30は、アームによりコンデンサーEPをコンデンサーEPと基板Bとが近づく方向である第1方向に移動させ始める。第2挿入動作が行われている間、ロボット制御装置30は、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したか否かを力検出情報に基づいて判定することを繰り返す。ロボット制御装置30は、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触していないと力検出情報に基づいて判定し続けている限り、ロボット20に第2挿入動作を継続させ続ける。そして、ロボット制御装置30は、アームによりピンP2を穴H2に挿入させる。
一方、ロボット制御装置30は、第2挿入動作が行われている間に、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したと力検出情報に基づいて判定した場合、ピンP1を穴H1に挿入した状態を保ったまま、アームによりコンデンサーEPと基板Bとを離間させる。これにより、ロボット制御装置30は、基板Bが備える穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触した場合にコンデンサーEPと基板Bのうちいずれか一方又は両方を変形させてしまうことを抑制することができる。
また、ロボット制御装置30は、ピンP1を穴H1に挿入した状態を保ったままコンデンサーEPと基板Bとを離間させる際、過去に制御点T2が第2待機位置に待機したタイミングのうちの直近のタイミングにおける第2待機位置とは異なる位置を新たな第2待機位置として、当該第2待機位置に制御点T2を移動させる。これにより、ロボット制御装置30は、ピンP1を穴H1に挿入した状態を保ったままコンデンサーEPと基板Bとを離間させるとともに、過去の第2待機位置と穴H2の位置との相対的な位置関係を、新たな第2待機位置と穴H2との相対的な位置関係に変化させる。すなわち、ロボット制御装置30は、第2挿入動作における制御点T2の始点を、コンデンサーIPと基板Bとを離間させるたびに、ピンP1を穴H1に挿入した状態を保ったままコンデンサーEPと基板Bとを離間させるとともに、過去の当該始点とは異なる始点に変更させる。そして、ロボット制御装置30は、ピンP1を穴H1に挿入した状態を保ったままロボット20に再び第2挿入動作を行わせることにより、コンデンサーEPを基板Bに近づけさせる。
このように、ロボット制御装置30は、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したと力検出情報に基づいて判定した場合であっても、アームによりコンデンサーEPと基板Bとを近づけることと離間させることとを繰り返すことによって、コンデンサーEPと基板Bとの両方を変形させてしまうことを抑制しつつ、ピンP2を穴H2に挿入することができる。
これらの結果、ロボット制御装置30は、コンデンサーEPと基板Bとのうちいずれか一方又は両方を変形させてしまうことを抑制しつつ、アームにより、ピンP1を穴H1に挿入させるとともに、ピンP2を穴H2に挿入させることができる。
第1実施形態では、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと力検出情報に基づいて判定した場合、及び穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したと力検出情報に基づいて判定した場合に、ロボット制御装置30がコンデンサーEPと基板Bとを離間させる処理について詳しく説明する。
<コンデンサーと基板の概要>
以下、図2〜図4を参照し、コンデンサーEPと基板Bとのそれぞれの概要について説明する。図2は、コンデンサーEPの面のうちのピンP1及びピンP2の両方が設けられた面と水平な方向からコンデンサーEPを見た場合のコンデンサーEPの一例を示す図である。コンデンサーEPには、当該面から当該面に直交する方向にピンP1が設けられている。ピンP1の当該面から先端部までの長さは、長さL1(単位は、例えば、ミリメートル)である。長さL1は、例えば、32ミリメートルである。なお、長さL1は、これに代えて、他の長さであってもよい。
また、コンデンサーEPには、当該面から当該面に直交する方向にピンP2が設けられている。ピンP2の当該面から先端部までの長さは、長さL2(単位は、例えば、ミリメートル)である。長さL2は、例えば、22ミリメートルである。なお、長さL2は、これに代えて、他の長さであってもよい。
ピンP1の直径は、直径φ1(単位は、例えば、ミリメートル)である。直径φ1は、例えば、0.6ミリメートルである。なお、直径φ1は、これに代えて、他の直径であってもよい。
また、ピンP2の直径は、直径φ2(単位は、例えば、ミリメートル)である。直径φ2は、例えば、0.6ミリメートルである。なお、直径φ2は、これに代えて、他の直径であってもよく、直径φ1と異なる直径であってもよい。
また、ピンP1とピンP2との間の距離は、距離L3(単位は、例えば、ミリメートル)である。距離L3は、例えば、10ミリメートルである。なお、距離L3は、これに代えて、他の距離であってもよい。
なお、コンデンサーEPは、ピンが1本だけ設けられる構成であってもよく、ピンが3本以上設けられる構成であってもよい。また、ピンP1の長さとピンP2の長さとは、同じ長さであってもよい。
図3は、基板Bの面のうちのピンP1が挿入される側の面の一例を示す図である。また、図4は、図3に示した基板Bの側面図である。図3及び図4に示したように、基板Bには、直径が直径φ3(単位は、例えば、ミリメートル)の穴H1と、直径が直径φ4(単位は、例えば、ミリメートル)の穴H2とが形成されている。
直径φ3は、例えば、0.8ミリメートルである。なお、直径φ3は、これに代えて、他の直径であってもよい。直径φ4は、例えば、0.8ミリメートルである。なお、直径φ4は、これに代えて、他の直径であってもよい。また、穴H1の中心から穴H2の中心までの距離は、距離L3である。
また、基板Bの面のうちのピンP1が挿入される側の面の形状は、長方形である。当該長方形の短辺の長さは、長さL4(単位は、例えば、ミリメートル)である。長さL4は、例えば、45ミリメートルである。なお、長さL4は、これに代えて、他の長さであってもよい。当該長方形の長辺の長さは、長さL5(単位は、例えば、ミリメートル)である。長さL5は、例えば、60ミリメートルである。なお、長さL5は、これに代えて、他の長さであってもよい。
また、ピンP1の穴が延伸する方向における基板Bの厚さは、厚さL6(単位は、例えば、ミリメートル)である。厚さL6は、例えば、1ミリメートルである。なお、厚さL6は、これに代えて、他の厚さであってもよい。
<ロボット制御装置のハードウェア構成>
以下、図5を参照し、ロボット制御装置30のハードウェア構成について説明する。図5は、ロボット制御装置30のハードウェア構成の一例を示す図である。ロボット制御装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備える。また、ロボット制御装置30は、通信部34を介してロボット20と通信を行う。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。
CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部32は、ロボット制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部32は、ロボット制御装置30が処理する各種情報や画像、プログラム、穴H1の位置と穴H2の位置とのそれぞれを示す位置情報、第1待機位置情報及び第2待機位置情報等を格納する。ここで、第1待機位置情報及び第2待機位置情報について説明する。
第1待機位置情報は、第1待機位置から穴H1の位置までの相対的な位置を示す情報と、ロボット20による所定の作業において繰り返し行われる第1挿入動作の実行順を示す情報とが対応付けられた情報を含む。例えば、当該実行順が0である場合に当該実行順を示す情報に対応付けられる位置であって第1待機位置から穴H1の位置までの相対的な位置を示す情報は、1回目の第1挿入動作における位置であって第1待機位置から穴H1の位置までの相対的な位置を示す情報である。また、当該実行順が1である場合に当該実行順を示す情報に対応付けられる位置であって第1待機位置から穴H1の位置までの相対的な位置を示す情報は、2回目の第1挿入動作における位置であって第1待機位置から穴H1の位置までの相対的な位置を示す情報である。すなわち、ロボット制御装置30は、位置情報が示す穴H1の位置と、第1待機位置情報に基づいて、第1挿入動作をロボット20に行わせるたびに、第1挿入動作の実行順に応じた第1待機位置を特定し、制御点T1を当該第1待機位置へ移動させる。
また、第2待機位置情報は、第2待機位置から穴H2の位置までの相対的な位置を示す情報と、ロボット20による所定の作業において繰り返し行われる第2挿入動作の実行順を示す情報とが対応付けられた情報を含む。例えば、当該実行順が0である場合に当該実行順を示す情報に対応付けられる位置であって第2待機位置から穴H2の位置までの相対的な位置を示す情報は、1回目の第2挿入動作における位置であって第2待機位置から穴H2の位置までの相対的な位置を示す情報である。また、当該実行順が1である場合に当該実行順を示す情報に対応付けられる位置であって第2待機位置から穴H2の位置までの相対的な位置を示す情報は、2回目の第2挿入動作における位置であって第2待機位置から穴H2の位置までの相対的な位置を示す情報である。すなわち、ロボット制御装置30は、位置情報が示す穴H2の位置と、第2待機位置情報に基づいて、第2挿入動作をロボット20に行わせるたびに、第2挿入動作の実行順に応じた第2待機位置を特定し、制御点T2を当該第2待機位置へ移動させる。
入力受付部33は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部33は、タッチパネルとして表示部35と一体に構成されてもよい。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
<ロボット制御装置の機能構成>
以下、図6を参照し、ロボット制御装置30の機能構成について説明する。図6は、ロボット制御装置30の機能構成の一例を示す図である。ロボット制御装置30は、記憶部32と、制御部36を備える。
制御部36は、ロボット制御装置30の全体を制御する。制御部36は、力検出情報取得部40と、接触判定部42と、位置情報読出部44と、待機位置情報読出部46と、ロボット制御部48を備える。制御部36が備えるこれらの機能部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することにより実現される。また、これらの機能部のうち一部又は全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
力検出情報取得部40は、力検出部21から力検出情報を取得する。
接触判定部42は、力検出情報取得部40が取得した力検出情報に基づいて、第2対象物が備える挿入部(例えば、上述の穴H1及び穴H2)と異なる位置に第1対象物が接触したか否かを判定する。
位置情報読出部44は、記憶部32から位置情報を読み出す。
待機位置情報読出部46は、記憶部32から第1待機位置情報及び第2待機位置情報を読み出す。
ロボット制御部48は、力検出情報取得部40が取得した力検出情報と、接触判定部42が判定した判定結果と、位置情報読出部44が記憶部32から読み出した位置情報と、待機位置情報読出部46が記憶部32から読み出した第1待機位置情報及び第2待機位置情報との一部又は全部に基づいて、ロボット20を動作させる。
<ロボット制御装置がロボットに所定の作業を行わせる処理>
以下、図7を参照し、第1実施形態におけるロボット制御装置30がロボット20に所定の作業を行わせる処理について説明する。図7は、第1実施形態におけるロボット制御装置30がロボット20に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
位置情報読出部44は、記憶部32から位置情報を読み出す(ステップS100)。次に、待機位置情報読出部46は、記憶部32から第1待機位置情報及び第2待機位置情報を読み出す(ステップS110)。次に、ロボット制御部48は、ステップS100において位置情報読出部44が記憶部32から読み出した位置情報が示す穴H1の位置と、待機位置情報読出部46が記憶部32から読み出した第1待機位置情報とに基づいて、制御点T1を初回の第1待機位置へ移動させるとともに、第1待機位置における制御点T1の姿勢を所定の待機姿勢と一致させる(ステップS120)。そして、ロボット制御部48は、第1挿入動作の実行順を示す情報が0を示すように初期化し、当該情報を記憶する。ここで、図8を参照し、ステップS120の処理について説明する。
図8は、制御点T1が1回目の第1挿入動作における第1待機位置に移動した場合のコンデンサーEPと基板Bとの状態の一例を示す図である。図8に示したように、1回目の第1挿入動作における第1待機位置は、基板Bの面のうちのピンP1が挿入される側の面に直交する方向に延伸する穴H1の中心軸CA上において、当該面からコンデンサーEP側に向かって距離L7(単位は、例えば、ミリメートル)だけ離れた位置である。距離L7は、例えば、10ミリメートルである。なお、距離L7は、これに代えて、他の距離であってもよい。
また、所定の待機姿勢は、第1挿入動作において、コンデンサーEPをコンデンサーEPと基板Bとが近づく方向である第1方向に移動させた場合に、ピンP1を穴H1に挿入させることが可能な姿勢である。具体的には、所定の待機姿勢は、ピンP1の中心軸であってピンP1が設けられたコンデンサーEPの面に直交する方向に延伸する中心軸と、中心軸CAとが一致する姿勢である。すなわち、第1挿入動作における第1方向は、この一例において、中心軸CAに沿ってコンデンサーEPと基板Bとが近づく方向である。
次に、ロボット制御部48は、ロボット20に第1挿入動作を開始させる(ステップS130)。ここで、図9を参照し、ステップS130の処理について説明する。図9は、第1挿入動作が開始された直後のコンデンサーEPと基板Bとの状態の一例を示す図である。図9に示したように、ロボット制御部48は、アームによりコンデンサーEPをコンデンサーEPと基板Bとが近づく方向である第1方向F1に沿って移動させ始める。第1方向F1は、前述したように、中心軸CAに沿ってコンデンサーEPと基板Bとが近づく方向である。また、第1挿入動作において、ロボット制御部48は、力検出情報取得部40が力検出部21から取得した力検出情報に基づく制御によって第1挿入動作を行う。
次に、接触判定部42は、力検出情報取得部40が力検出部21から取得した力検出情報に基づいて、ステップS130から開始された第1挿入動作において、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したか否かを判定する(ステップS140)。接触判定部42は、力検出部21から取得した力検出情報に基づいて、ピンP1が設けられたコンデンサーEPの面に直交する方向の力であってピンP1に加わった力が、所定の第1閾値以上であると判定した場合、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと判定する。第1閾値は、ピンP1が座屈し始める荷重未満の力である。一方、接触判定部42は、力検出部21から取得した力検出情報に基づいて、ピンP1が設けられたコンデンサーEPの面に直交する方向の力であってピンP1に加わった力が、所定の第1閾値未満であると判定した場合、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触していないと判定する。穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触していないと接触判定部42が判定した場合(ステップS140−No)、ロボット制御部48は、第1挿入動作を終了させるための条件である第1終了条件が満たされたか否かを判定する(ステップS145)。ここで、図10を参照し、第1終了条件について説明する。
図10は、第1終了条件が満たされている場合におけるコンデンサーEPと基板Bとの状態の一例を示す図である。第1終了条件は、この一例において、前述の中心軸CA上における制御点T1の位置が、基板Bの面のうちのピンP1が挿入される側の面から第1方向F1側に距離L8(単位は、例えば、ミリメートル)以上離れていることである。図10に示した例では、中心軸CA上における制御点T1の位置は、当該面から第1方向F1側に距離L8だけ離れている。距離L8は、例えば、10ミリメートルである。なお、距離L8は、これに代えて、他の距離であってもよい。また、第1終了条件は、これに代えて、他の条件であってもよい。
ステップS145において、第1終了条件が満たされていないとロボット制御部48が判定した場合(ステップS145−No)、接触判定部42は、ステップS140に遷移し、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したか否かを再び判定する。一方、第1終了条件が満たされたと判定した場合(ステップS145−Yes)、ロボット制御部48は、第1方向F1に向かう制御点T1の移動を停止させ、第1挿入動作を終了させる。そして、ロボット制御部48は、ステップS100において位置情報読出部44が記憶部32から読み出した位置情報が示す穴H2の位置と、ステップS110において待機位置情報読出部46が記憶部32から読み出した第2待機位置情報に基づいて、制御点T2を、1回目の第2待機位置へ移動させる(ステップS150)。
一方、ステップS140において、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと接触判定部42が判定した場合(ステップS140−Yes)、ロボット制御部48は、所定の作業における第1挿入動作の実行順を示す情報が示す実行順を、1だけ増加させる。そして、ロボット制御部48は、ステップS100において位置情報読出部44が記憶部32から読み出した位置情報が示す穴H1の位置と、ステップS110において待機位置情報読出部46が記憶部32から読み出した第1待機位置情報と、当該実行順を示す情報とに基づいて、当該情報が示す実行順に応じた第1待機位置を特定する。ロボット制御部48は、特定した第1待機位置に基づいて、アームによりコンデンサーEPを、コンデンサーEPと基板Bとが離れる方向のうち第1方向と逆の方向以外の方向に移動させることにより、コンデンサーEPと基板Bとを離間させるとともに、制御点T1を当該第1待機位置に移動させる第1離間動作をロボット20に行わせる(ステップS180)。ステップS180において第1離間動作が行われた後、ロボット制御部48は、ステップS130に遷移し、再び第1挿入動作を開始する。ここで、図11及び図12を参照し、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触した場合におけるコンデンサーEPと基板Bとの状態と、ステップS180における第1離間動作とについて説明する。
図11は、穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触した場合におけるコンデンサーEPと基板Bとの状態の一例を示す図である。コンデンサーEPのピンP1は、ステップS130において制御点T1を1回目の第1挿入動作における第1待機位置に移動させた場合であっても、アームの剛性による誤差や、基板Bが設置された位置に関する誤差等の誤差によって、ピンP1が穴H1とは異なる位置に接触してしまう場合がある。図11に示した状態は、このような誤差によってピンP1が穴H1とは異なる位置に接触してしまった状態の一例を示している。ステップS140において、図11に示したように穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと接触判定部42が判定した場合、ロボット制御部48は、図12に示すように、ステップS180において第1離間動作を行う。
図12は、第1離間動作が行われた後のコンデンサーEPと基板Bとの状態の一例を示す図である。図12に示したように、ロボット制御部48は、制御点T1(すなわち、コンデンサーEP)を、コンデンサーEPと基板Bとが離れる方向のうち第1方向と逆の方向(すなわち、中心軸CAに沿った方向)以外の方向F2に移動させることにより、コンデンサーEPと基板Bとを離間させるとともに、制御点T1を前回の第1待機位置と異なる第1待機位置に移動させる第1離間動作をロボット20に行わせる。当該第1待機位置は、1回目の第1挿入動作における第1待機位置の場合と同様に、基板Bの面のうちのピンP1が挿入される側の面から第1方向F1と逆の方向側に距離L7だけ離れた位置である。しかし、第1離間動作の後において、当該面上を第1方向に向かって見た場合、次の(今回の)第1待機位置の当該面上に射影される位置は、前回の第1挿入動作における第1待機位置の当該面上に射影される位置と異なる位置である。なお、図12に示した例では、第1離間動作が行われた後、当該面上を第1方向F1に向かって見た場合、第1待機位置の当該面上に射影される位置が、当該面上に穴H1の中心と一致している。
また、ロボット制御部48は、第1離間動作において、制御点T1を、制御点T1が接触していた位置であって穴H1と異なる位置から移動の軌跡を直線にして、コンデンサーEPと基板Bとが離れる方向のうち第1方向F1と逆の方向以外の方向に移動させ、コンデンサーEPと基板Bとを離間させる。これにより、ロボット制御部48は、コンデンサーEPを、コンデンサーEPと基板Bとを離間させてから、コンデンサーEPと基板Bとが近づく方向に再び移動させ始める位置(すなわち、第1待機位置)まで移動させるのに要する時間を短縮することができる。なお、ロボット制御部48は、第1離間動作において、制御点T1を、制御点T1が接触していた位置であって穴H1と異なる位置から移動の軌跡を直線以外の軌跡にして、コンデンサーEPと基板Bとが離れる方向のうち第1方向F1と逆の方向以外の方向に移動させ、コンデンサーEPと基板Bとを離間させる構成であってもよい。
また、この一例において、第1挿入動作と第1離間動作とを2回以上行う場合、すなわち、穴H1と異なる位置へのコンデンサーEP(のピンP1)の接触、及びコンデンサーEPと基板Bとの離間を2回以上行う場合、ロボット制御部48は、図13に示すように、第1待機位置情報に基づいて、第1待機位置を螺旋状の軌跡に沿って変化させる。当該螺旋状の軌跡は、第1待機位置の軌跡のうち、基板Bの面のうちのピンP1が挿入される側の面上に第1待機位置を射影した場合における軌跡である。図13は、第1挿入動作と第1離間動作とを2回以上行う場合に、第1挿入動作を行うたびに変化する第1待機位置であって基板BのピンP1を挿入される側の面上に射影される位置の一例を、穴H1の中心を原点とした二次元グラフにプロットした図である。
図13に示したように、初回の第1挿入動作における第1待機位置を示す点PP0は、当該二次元グラフにおける原点に位置している。また、2回目の第1挿入動作における第1待機位置を示す点PP1は、当該二次元グラフにおける原点からX軸の正の方向及びY軸の正の方向にずれた点に位置している。また、3回目の第1挿入動作における第1待機位置を示す点PP1は、当該二次元グラフにおける点PP1からX軸の負の方向及びY軸の正の方向にずれた点に位置している。図13に示した二次元グラフには、このような第1待機位置を示す点が20点プロットされている。なお、点PP20は、19回目の第2挿入動作における第1待機位置を示す点である。このように、ロボット制御部48は、第1挿入動作を行うたびに、第1待機位置情報に基づいて、第1待機位置を螺旋状の軌跡に沿って変化させる。
ステップS150の処理が行われた後、ロボット制御部48は、第2挿入動作を開始する(ステップS155)。ここで、図14及び図15を参照し、ステップS150において制御点T2が1回目の第2挿入動作における第2待機位置に移動した後のコンデンサーEPと基板Bとの状態と、ステップS155の処理とについて説明する。
図14は、ステップS150において制御点T2が1回目の第2挿入動作における第2待機位置に移動した後のコンデンサーEPと基板Bとの状態の一例を示す図である。図14に示したように、1回目の第2挿入動作における第2待機位置は、基板Bの面のうちのピンP2が挿入される側の面に直交する方向に延伸する穴H2の中心軸CA2上において、当該面からコンデンサーEP側に向かって距離L8(単位は、例えば、ミリメートル)だけ離れた位置である。距離L8は、例えば、5ミリメートルである。なお、距離L8は、これに代えて、他の距離であってもよい。
図15は、第2挿入動作が開始された直後のコンデンサーEPと基板Bとの状態の一例を示す図である。図15に示したように、ロボット制御部48は、アームによりコンデンサーEPをコンデンサーEPと基板Bとが近づく方向である第1方向F1に沿って移動させ始める。第1方向F1は、前述したように、中心軸CAに沿ってコンデンサーEPと基板Bとが近づく方向であるとともに、中心軸CA2に沿ってコンデンサーEPと基板Bとが近づく方向である。また、第2挿入動作において、ロボット制御部48は、力検出情報取得部40が力検出部21から取得した力検出情報に基づく制御によって第2挿入動作を行う。
次に、接触判定部42は、力検出情報取得部40が力検出部21から取得した力検出情報に基づいて、ステップS155から開始された第2挿入動作において、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したか否かを判定する(ステップS160)。接触判定部42は、力検出部21から取得した力検出情報に基づいて、ピンP2が設けられたコンデンサーEPの面に直交する方向の力であってピンP2に加わった力が、所定の第2閾値以上であると判定した場合、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したと判定する。第2閾値は、ピンP2が座屈し始める荷重未満の力である。一方、接触判定部42は、力検出部21から取得した力検出情報に基づいて、ピンP2が設けられたコンデンサーEPの面に直交する方向の力であってピンP2に加わった力が、所定の第2閾値未満であると判定した場合、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触していないと判定する。穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触していないと接触判定部42が判定した場合(ステップS160−No)、ロボット制御部48は、第2挿入動作を終了させるための条件である第2終了条件が満たされたか否かを判定する(ステップS165)。ここで、図16を参照し、第2終了条件について説明する。
図16は、第2終了条件が満たされている場合におけるコンデンサーEPと基板Bとの状態の一例を示す図である。第2終了条件は、この一例において、前述の中心軸CA2上における制御点T2の位置が、基板Bの面のうちのピンP2が挿入される側の面から第1方向F1側に距離L9(単位は、例えば、ミリメートル)以上離れていることである。図16に示した例では、中心軸CA2上における制御点T2の位置は、当該面から第1方向F1側に距離L9だけ離れている。距離L9は、例えば、10ミリメートルである。なお、距離L9は、これに代えて、他の距離であってもよい。また、第2終了条件は、これに代えて、他の条件であってもよい。
ステップS165において、第2終了条件が満たされていないとロボット制御部48が判定した場合(ステップS165−No)、接触判定部42は、ステップS160に遷移し、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したか否かを再び判定する。一方、第2終了条件が満たされたと判定した場合(ステップS165−Yes)、ロボット制御部48は、第1方向F1に向かう制御点T2の移動を停止させ、第2挿入動作を終了させる。そして、ロボット制御部48は、基板BのピンP1及びピンP2が挿入される側の面と、コンデンサーEPのピンP1及びピンP2が設けられている面とが接面するまでコンデンサーEPを第1方向F1に移動させる第3挿入動作をロボット20に行わせ(ステップS170)、第1エンドエフェクターE1にコンデンサーEPを離させてからアームを所定の終了位置に移動させて処理を終了する。なお、ステップS170において、ロボット制御部48は、基板BのピンP1及びピンP2が挿入される側の面と、コンデンサーEPのピンP1及びピンP2が設けられている面とが接面との間の間隔が所定の間隔と一致するまで、コンデンサーEPを第1方向F1に移動させる第3挿入動作をロボット20に行わせる構成であってもよい。
ここで、図17を参照し、ステップS170における第3挿入動作について説明する。図17は、第3挿入動作が行われた後のコンデンサーEPと基板Bとの状態の一例を示す図である。図17に示したように、ロボット制御部48は、第3挿入動作において、基板BのピンP1及びピンP2が挿入される側の面と、コンデンサーEPのピンP1及びピンP2が設けられている面とが接面するまでコンデンサーEPを第1方向F1に移動させる。これにより、ロボット制御部48は、コンデンサーEPと基板Bとを完全に組み付けることができる。なお、第3挿入動作は、これに代えて、他の動作であってもよい。
一方、ステップS160において、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したと接触判定部42が判定した場合(ステップS160−Yes)、ロボット制御部48は、所定の作業における第2挿入動作の実行順を示す情報が示す実行順を、1だけ増加させる。そして、ロボット制御部48は、ステップS100において位置情報読出部44が記憶部32から読み出した位置情報が示す穴H2の位置と、ステップS110において待機位置情報読出部46が記憶部32から読み出した第2待機位置情報と、当該実行順を示す情報とに基づいて、当該情報が示す実行順に応じた第2待機位置を特定する。ロボット制御部48は、特定した第2待機位置に基づいて、アームによりコンデンサーEPを、コンデンサーEPと基板Bとが離れる方向のうち第1方向と逆の方向以外の方向に移動させることにより、コンデンサーEPと基板Bとを離間させるとともに、制御点T2を当該第2待機位置に移動させる第2離間動作をロボット20に行わせる(ステップS190)。ステップS190において第2離間動作が行われた後、ロボット制御部48は、ステップS150に遷移し、再び第2挿入動作を開始する。ここで、図18〜図20を参照し、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触した場合におけるコンデンサーEPと基板Bとの状態と、ステップS190における第2離間動作とについて説明する。
図18は、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触した場合におけるコンデンサーEPと基板Bとの状態の一例を示す図である。コンデンサーEPのピンP2は、ステップS150において制御点T2を1回目の第2挿入動作における第2待機位置に移動させた場合であっても、アームの剛性による誤差や、基板Bが設置された位置に関する誤差等の誤差によって、ピンP1が穴H1とは異なる位置に接触してしまう場合がある。図18に示した状態は、このような誤差によってピンP2が穴H2とは異なる位置に接触してしまった状態の一例を示している。この場合、図19に示したように、ロボット制御部48は、ピンP1を回転軸として制御点T2を回転させることにより、コンデンサーEPを第1方向に移動させてピンP2を穴H2に挿入することができる位置まで制御点T2の位置を移動させることができる。図19は、図18に示した状態におけるコンデンサーEPと基板Bとを、基板Bの面のうちのピンP1及びピンP2が挿入される側と反対側の面を第1方向F1と逆の方向から見た底面図である。図19に示した矢印CFは、ピンP1を回転軸として制御点T2を回転させた場合における制御点T2の軌跡を表している。ステップS160において、穴H2とは異なる位置にコンデンサーEP(のピンP2)が接触したと接触判定部42が判定した場合、ロボット制御部48は、図20に示すように、ステップS190において第2離間動作を行う。
図20は、第2離間動作が行われた後のコンデンサーEPと基板Bとの状態の一例を示す図である。図20に示したように、ロボット制御部48は、制御点T2(すなわち、コンデンサーEP)を、コンデンサーEPと基板Bとが離れる方向のうち第1方向と逆の方向(すなわち、中心軸CA2に沿った方向)以外の方向に移動させることにより、コンデンサーEPと基板Bとを離間させるとともに、制御点T2を前回の第2待機位置と異なる第2待機位置に移動させる第2離間動作をロボット20に行わせる。例えば、ロボット制御部48は、制御点T2を第1方向F1と逆の方向に移動するようにコンデンサーEPを基板Bから離間させるとともに、ピンP1を回転軸として制御点T2を回転させる。図20に示した矢印F4は、この制御点T2の回転の方向を表している。当該第2待機位置は、1回目の第2挿入動作における第2待機位置の場合と同様に、基板Bの面のうちのピンP2が挿入される側の面から第1方向F1と逆の方向側に距離L10だけ離れた位置である。しかし、第2離間動作の後において、当該面上を第1方向から見た場合、次の(今回の)第2待機位置の当該面上に射影される位置は、前回の第2挿入動作における第2待機位置の当該面上に射影される位置と異なる位置である。なお、図20に示した例では、第2離間動作が行われた後、当該面上を第1方向F1に向かって見た場合、第2待機位置の当該面上に射影される位置が、当該面上に穴H2の中心と一致している。
また、ロボット制御部48は、第2離間動作において、制御点T2を、制御点T2が接触していた位置であって穴H2と異なる位置から移動の軌跡を直線にして、コンデンサーEPと基板Bとが離れる方向のうち第1方向F1と逆の方向以外の方向に移動させ、コンデンサーEPと基板Bとを離間させる。これにより、ロボット制御部48は、コンデンサーEPを、コンデンサーEPと基板Bとを離間させてから、コンデンサーEPと基板Bとが近づく方向に再び移動させ始める位置(すなわち、第2待機位置)まで移動させるのに要する時間を短縮することができる。なお、ロボット制御部48は、第2離間動作において、制御点T2を、制御点T2が接触していた位置であって穴H2と異なる位置から移動の軌跡を直線以外の軌跡にして、コンデンサーEPと基板Bとが離れる方向のうち第1方向F1と逆の方向以外の方向に移動させ、コンデンサーEPと基板Bとを離間させる構成であってもよい。
以上のように、ロボット制御装置30は、コンデンサーEPと基板Bの両方を変形させてしまうことを抑制しつつ、コンデンサーEPのピンP1を基板Bの穴H1に挿入するとともに、コンデンサーEPのピンP2を基板Bの穴H2に挿入することができる。特に、この一例におけるコンデンサーEPのピンP1及びピンP2のようなピンは、4〜5ニュートン程度の力が加わることによって座屈してしまう場合がある。ロボット制御装置30は、ロボット20により、このような折れやすいピンを座屈させずに穴に挿入させることできる。このため、ロボット制御装置30(又はロボット制御装置30を内蔵したロボット20)は、部品や製品の組み立て工場等において不良品を作り出さない作業を行うことができ、その結果、作業効率や生産性を向上させることができる。
ここで、発明者の実験によると、ロボット20がピンP1を穴H1と異なる位置に接触させずに穴H1に挿入させるとともに、ピンP2を穴H2と異なる位置に接触させずに穴H2に挿入させることに成功した場合、ロボット20がピンP1を穴H1に挿入させるとともにピンP2を穴H2に挿入させるのに要する時間の平均は、1.05秒である。当該実験を複数回行った場合、ロボット20がピンP1を穴H1に挿入させるとともにピンP2を穴H2に挿入させるのに要する時間は、複数回行われた当該実験のそれぞれ毎に異なる。そのため、当該平均は、当該実験を複数回行った際に得られた複数の実験結果の平均である。
また、当該実験によると、ロボット20が1回目の第1挿入動作によって0.8ミリメートルだけ穴H1からずれた位置にピンP1を接触させた場合において、ロボット20がピンP1を穴H1に挿入させるとともにピンP2を穴H2に挿入させるのに要する時間の平均は、10.66秒である。当該実験を複数回行った場合、ロボット20が1回目の第1挿入動作によって0.8ミリメートルだけ穴H1からずれた位置にピンP1を接触させた際に行われる第1挿入動作の回数と、第4挿入動作の回数とはそれぞれ、複数回行われた当該実験のそれぞれ毎に異なる。そのため、当該平均は、当該実験を複数回行った際に得られた複数の実験結果の平均である。
なお、第1実施形態において、力検出部21は、第1挿入動作及び第2挿入動作を行う前に、力検出部21が検出している力を0に初期化する構成であってもよい。
また、ロボット制御装置30は、アームにより基板BをコンデンサーEPと基板Bとが近づく方向に移動させ、基板Bが備える穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したか否かを力検出情報に基づいて判定し、基板Bが備える穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと判定した場合、コンデンサーEPと基板Bとを離間させる構成であってもよい。この場合、エンドエフェクターEは、コンデンサーEPに代えて、基板Bを把持する。
また、ロボット制御装置30は、ロボット20が複腕ロボットである場合、1本目のアームが備えるエンドエフェクターによりコンデンサーEPを把持し、2本目のアームが備えるエンドエフェクターにより基板Bを把持し、2本のアームによりコンデンサーEPと基板BとをコンデンサーEPと基板Bとが互いに近づく方向に移動させ、基板Bが備える穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したことを力検出情報に基づいて判定し、基板Bが備える穴H1とは異なる位置にコンデンサーEP(のピンP1)が接触したと判定した場合、コンデンサーEPと基板Bとを離間させる構成であってもよい。
また、ロボット制御装置30は、ロボットシステム1又はロボット20が撮像部を備えている場合、撮像部により基板BのピンP1及びピンP2が挿入される側の面を含む撮像画像を撮像し、撮像した当該撮像画像に基づいて、穴H1と穴H2とのそれぞれの位置を検出する構成であってもよい。この場合、制御部36は、位置情報読出部44を備えていなくてもよい。
また、ロボット制御装置30は、ロボットシステム1又はロボット20が撮像部を備えている場合であり、アームにより基板BをコンデンサーEPと基板Bとが近づく方向に移動させる場合、撮像部によりコンデンサーEPのピンP1及びピンP2を含む撮像画像を撮像し、撮像した当該撮像画像に基づいて、制御点T1と制御点T2とのそれぞれの位置を検出する構成であってもよい。
また、ロボット制御装置30は、ロボットシステム1又はロボット20が撮像部を備えている場合であり、ロボット20が複腕ロボットであって、1本目のアームが備えるエンドエフェクターによりコンデンサーEPを把持し、2本目のアームが備えるエンドエフェクターにより基板Bを把持し、2本のアームによりコンデンサーEPと基板BとをコンデンサーEPと基板Bとが互いに近づく方向に移動させる場合、撮像部によりコンデンサーEPのピンP1及びピンP2、及び基板Bの穴H1及び穴H2を含む撮像画像を撮像し、撮像した当該撮像画像に基づいて、制御点T1及び制御点T2、又は穴H1及び穴H2との少なくとも一方の位置を検出する構成であってもよい。
また、第1対象物と第2対象物との組み合わせは、コンデンサーEPと基板Bとの組み合わせに代えて、互いに嵌合される2つの対象物の組み合わせであれば如何なる組み合わせであってもよい。
<第2実施形態>
以下、本発明の第2実施形態について、図面を参照して説明する。なお、第2実施形態におけるロボット20の構成は、第1実施形態におけるロボット20の構成と同様な構成であるため、説明を省略する。
<ロボットが行う所定の作業の概要>
以下、第2実施形態においてロボット20が行う所定の作業の概要について説明する。
図21は、第2実施形態に係るロボットシステム1の構成の一例を示す図である。図21において、第2実施形態におけるロボット20は、第1実施形態におけるロボット20と同様に、エンドエフェクターEによって第1対象物を予め把持している。なお、ロボット20は、予め第1対象物を把持しておらず、所定の給材領域に配置された第1対象物を把持する構成であってもよい。
第2実施形態では、第1対象物が、通信用の接続ケーブルにおける雄型のコネクター(プラグ又はジャック)PL1である場合について説明する。なお、第1対象物は、コネクターPL1に代えて、産業用の部品や部材、装置等であってもよく、生体等であってもよい。
また、第2実施形態では、第2対象物が、通信用の接続ケーブルにおける雌型のコネクター(レセプタクル)であって、第1実施形態の一例である雄型のコネクターと接続されるコネクターPL2である場合について説明する。図1では、コネクターPL2は、治具G2によって支持されている。なお、第2対象物は、コネクターPL2に代えて、産業用の部品や部材、装置等であってもよく、生体等であってもよい。また、図21では、コネクターPL2は、ロボット20の接地面(例えば、床面)に設けられた治具G2によって支持されているが、壁面や天井面等の他の位置に設けられた治具G2によって支持されている構成であってもよい。
この一例において、ロボット20は、所定の作業として、コネクターPL1を、コネクターPL2が備える挿入部PL21に挿入する。
<ロボット制御装置が行う処理の概要>
以下、第2実施形態におけるロボット20に所定の作業を行わせるためにロボット制御装置30が行う処理の概要について説明する。
以下では、一例として、ロボット制御装置30がアームを動かす場合の基準となる三次元座標系であるロボット座標系のY軸の正の方向と、コネクターPL1を挿入部PL21に挿入させる方向である第1方向F5とが一致するようにコネクターPL2を治具G2によって支持させる場合について説明する。すなわち、挿入部PL21に挿入されたコネクターPL1を挿入部PL21から引き抜く方向と逆の方向(第1方向F5)は、当該Y軸の正の方向と一致している。なお、コネクターPL1を挿入部PL21に挿入させる方向が、他の方向と一致するようにコネクターPL2を治具G2によって支持させてもよい。
また、この一例おいて、コネクターPL1の先端部の中心には、当該中心とともに動くTCPである制御点T3が設定される。コネクターPL1の先端部は、コネクターPL1の端部のうちの挿入部PL21に挿入する側の端部のことである。コネクターPL1の先端部は、治具G2に支持されたコネクターPL2が備える挿入部PL21にコネクターPL1が挿入された状態において第1方向F5と直交する面を有する。当該面の形状は、例えば、長方形である。すなわち、この一例におけるコネクターPL1の先端部の中心は、当該長方形の図心のことである。
制御点T3には、コネクターPL1の位置及び姿勢を表す三次元局所座標系が設定される。当該三次元局所座標系の原点は、制御点T3、すなわちコネクターPL1の先端部の中心の位置を表す。また、当該三次元局所座標系の各座標軸の方向は、制御点T3、すなわちコネクターPL1の先端部の中心の姿勢を表す。例えば、制御点T3には、コネクターPL1が挿入部PL21に挿入されている状態において、当該三次元局所座標系のZ軸の正の方向が、ロボット座標系のY軸の正の方向と一致するように当該三次元局所座標系が設定される。
ロボット制御装置30は、予め記憶部32に記憶されたコネクターPL2の挿入部PL21の位置を示す情報である位置情報に基づいて、アームによりコネクターPL1を移動させることにより、コネクターPL1の制御点T3を所定の待機位置である第3待機位置に移動させ、制御点T3の姿勢を所定の待機姿勢にさせる。第3待機位置は、所定の作業においてロボット制御装置30がロボット20に行わせる動作のうち、コネクターPL1をコネクターPL2に近づける動作である第4挿入動作における制御点T3の始点を示す位置である。また、所定の待機姿勢は、この一例において、制御点T3に設定された三次元局所座標系のZ軸の正の方向がロボット座標系のY軸の正の方向と一致する姿勢である。
また、挿入部PL21の位置は、この一例において、挿入部PL21の先端部の中心の位置によって表される。挿入部PL21の先端部は、挿入部PL21の端部のうちのコネクターPL1が挿入される側の端部のことである。挿入部PL21の先端部は、治具G2に支持された状態において第1方向F5と直交する面を有する。当該面の形状は、例えば、長方形である。すなわち、この一例における挿入部PL21の先端部の中心は、当該長方形の図心のことである。なお、挿入部PL21の位置は、これに代えて、当該図心に対応付けられた他の位置であってもよい。
なお、予め記憶部32に記憶されたコネクターPL2の挿入部PL21の位置を示す情報である位置情報は、挿入部PL21の位置を示す情報に代えて、基準となる位置である基準位置から挿入部PL21の位置までの相対的な位置を示す情報であってもよい。例えば、ロボット20が架台に設置されている場合であり、ロボット20が設置されている架台とコネクターPL2を支持している治具G2が設置されている架台とが異なる架台であった場合、ロボット制御装置30に予め記憶されている位置情報が示す挿入部PL21の位置と、現在の挿入部PL21の位置とは、振動等によってずれてしまうことがある。また、ロボット制御装置30に挿入部PL21の位置を記憶させる教示を行う場合、周囲に干渉してしまう他の物体が存在している等の理由により当該教示が行えないことがある。
この場合、治具G2が設置されている架台に基準位置を設け、当該基準位置から挿入部PL21までの相対的な位置を示す情報を予めロボット制御装置30に記憶させておくことにより、ロボット制御装置30は、当該基準位置のみを改めて記憶させることによって、所定の作業を行うことができる。その結果、ユーザーは、ロボット制御装置30に、挿入部PL21の位置を記憶させることなく、所定の作業を行わせることができる。
ロボット制御装置30は、アームにより制御点T3を第4挿入動作における始点である第3待機位置に移動させた後、ロボット20に第4挿入動作を行わせることによりコネクターPL1をコネクターPL2に近づけさせ始める。具体的には、ロボット制御装置30は、アームによりコネクターPL1をコネクターPL1とコネクターPL2とが近づく方向である第1方向F5に移動させ始める。第4挿入動作が行われている間、ロボット制御装置30は、挿入部PL21とは異なる位置にコネクターPL1が接触したか否かを力検出情報に基づいて判定することを繰り返す。ロボット制御装置30は、挿入部PL21とは異なる位置にコネクターPL1が接触していないと力検出情報に基づいて判定し続けている限り、ロボット20に第4挿入動作を継続させ続ける。そして、ロボット制御装置30は、アームによりコネクターPL1を挿入部PL21に挿入させる。
一方、ロボット制御装置30は、第4挿入動作が行われている間に、挿入部PL21とは異なる位置にコネクターPL1が接触したと力検出情報に基づいて判定した場合、アームによりコネクターPL1とコネクターPL2とを離間させる。これにより、ロボット制御装置30は、コネクターPL2が備える挿入部PL21とは異なる位置にコネクターPL1が接触した場合にコネクターPL1及びコネクターPL2を変形させてしまうことを抑制することができる。
また、ロボット制御装置30は、コネクターPL1とコネクターPL2とを離間させる際、過去に制御点T3が第3待機位置に待機したタイミングのうちの直近のタイミングにおける第3待機位置とは異なる位置を新たな第3待機位置として、当該第3待機位置に制御点T3を移動させる。これにより、ロボット制御装置30は、コネクターPL1とコネクターPL2とを離間させるとともに、過去の第3待機位置と挿入部PL21の位置との相対的な位置関係を、新たな第3待機位置と挿入部PL21との相対的な位置関係に変化させる。すなわち、ロボット制御装置30は、第4挿入動作における制御点T3の始点を、コネクターPL1とコネクターPL2とを離間させるたびに、コネクターPL1とコネクターPL2とを離間させるとともに、過去の当該始点とは異なる始点に変更させる。そして、ロボット制御装置30は、ロボット20に再び第4挿入動作を行わせることにより、コネクターPL1をコネクターPL2に近づけさせる。
このように、ロボット制御装置30は、挿入部PL21とは異なる位置にコネクターPL1が接触したと力検出情報に基づいて判定した場合であっても、アームによりコネクターPL1をコネクターPL2に近づけることとコネクターPL1をコネクターPL2から離間させることとを繰り返すことによって、コネクターPL1とコネクターPL2とのうちいずれか一方又は両方を変形させてしまうことを抑制しつつ、コネクターPL1を挿入部PL21に挿入することができる。
第2実施形態では、挿入部PL21とは異なる位置にコネクターPL1が接触したと力検出情報に基づいて判定した場合に、ロボット制御装置30がコネクターPL1とコネクターPL2とを離間させる処理について詳しく説明する。
<コネクターの規格の具体例>
以下、図22を参照し、コネクターPL1及びコネクターPL2の規格の具体例について説明する。図22は、コネクターPL1及びコネクターPL2の規格の具体例を示す図である。図22に示したように、コネクターPL1及びコネクターPL2の規格は、例えば、USB−A型やHDMI(High-Definition Multimedia Interface、登録商標)である。
コネクターPL1及びコネクターPL2の規格がUSB−A型である場合、コネクターPL1をコネクターPL2の挿入部PL21に挿入するのに要する圧力は、例えば、10〜15ニュートンである。また、この圧力を発生させるためにエンドエフェクターEがコネクターPL1の把持に要する圧力である把持圧力は、例えば、10.3ニュートンである。
また、コネクターPL1及びコネクターPL2の規格がHDMI(登録商標)である場合、コネクターPL1をコネクターPL2の挿入部PL21に挿入するのに要する圧力は、例えば、40〜45ニュートンである。また、この圧力を発生させるためにエンドエフェクターEがコネクターPL1の把持に要する圧力である把持圧力は、例えば、14ニュートンである。
なお、コネクターPL1及びコネクターPL2の規格は、USB−A型やHDMI(登録商標)に代えて、他の規格であってもよい。
<ロボット制御装置のハードウェア構成及び機能構成>
第2実施形態におけるロボット制御装置30のハードウェア構成及び機能構成は、第1実施形態におけるロボット制御装置30のハードウェア構成及び機能構成と同様な構成であるため、説明を省略する。
<ロボット制御装置がロボットに所定の作業を行わせる処理>
以下、図23を参照し、第2実施形態におけるロボット制御装置30がロボット20に所定の作業を行わせる処理について説明する。図23は、第2実施形態におけるロボット制御装置30がロボット20に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
位置情報読出部44は、記憶部32から位置情報を読み出す(ステップS300)。次に、待機位置情報読出部46は、記憶部32に予め記憶された第3待機位置情報を記憶部32から読み出す(ステップS110)。ここで、第3待機位置情報について説明する。第3待機位置情報は、第3待機位置から挿入部PL21の位置までの相対的な位置を示す情報と、ロボット20による所定の作業において繰り返し行われる第4挿入動作の実行順を示す情報とが対応付けられた情報を含む。例えば、当該実行順が0である場合に当該実行順を示す情報に対応付けられる位置であって第3待機位置から挿入部PL21の位置までの相対的な位置を示す情報は、1回目の第4挿入動作における位置であって第3待機位置から挿入部PL21の位置までの相対的な位置を示す情報である。また、当該実行順が1である場合に当該実行順を示す情報に対応付けられる位置であって第3待機位置から挿入部PL21の位置までの相対的な位置を示す情報は、2回目の第4挿入動作における位置であって第3待機位置から挿入部PL21の位置までの相対的な位置を示す情報である。すなわち、ロボット制御装置30は、位置情報が示す挿入部PL21の位置と、第3待機位置情報に基づいて、第4挿入動作をロボット20に行わせるたびに、第4挿入動作の実行順に応じた第3待機位置を特定し、制御点T3を当該第3待機位置へ移動させる。
次に、ロボット制御部48は、ステップS300において位置情報読出部44が記憶部32から読み出した位置情報が示す挿入部PL21の位置と、ステップS310において待機位置情報読出部46が記憶部32から読み出した第3待機位置情報とに基づいて、アームを動作させ、制御点T3を初回の第3待機位置へ移動させるとともに、第3待機位置における制御点T3の姿勢を、前述の所定の待機姿勢と一致させる(ステップS320)。そして、ロボット制御部48は、第4挿入動作の実行順を示す情報が0を示すように初期化し、当該情報を記憶する。ここで、図24を参照し、ステップS320の処理について説明する。
図24は、制御点T3が1回目の第4挿入動作における第3待機位置に移動した場合のコネクターPL1とコネクターPL2との状態の一例を示す図である。図24に示した三次元座標系は、前述したロボット座標系である。図24に示したように、1回目の第4挿入動作における第3待機位置は、コネクターPL1の姿勢が所定の姿勢である場合において、挿入部PL21の先端部が有する面からのロボット座標系におけるY軸の負の方向に向かって距離L11(単位は、例えば、ミリメートル)だけ離れた位置である。距離L11は、例えば、10ミリメートルである。なお、距離L11は、これに代えて、他の距離であってもよい。
次に、ロボット制御部48は、ロボット20に第4挿入動作を開始させる(ステップS330)。ここで、図25を参照し、ステップS330の処理について説明する。図25は、第4挿入動作が開始された直後のコネクターPL1とコネクターPL2との状態の一例を示す図である。図25に示した三次元座標系は、前述したロボット座標系である。図25に示したように、ロボット制御部48は、アームによりコネクターPL1をコネクターPL1とコネクターPL2とが近づく方向である第1方向F5に沿って移動させ始める。第1方向F1は、前述したように、この一例において、ロボット座標系におけるY軸の正の方向である。また、第4挿入動作において、ロボット制御部48は、力検出情報取得部40が力検出部21から取得した力検出情報に基づく制御によって第4挿入動作を行う。
次に、接触判定部42は、力検出情報取得部40が力検出部21から取得した力検出情報に基づいて、ステップS330から開始された第4挿入動作において、挿入部PL21とは異なる位置にコネクターPL1が接触したか否かを判定する(ステップS340)。接触判定部42は、力検出部21から取得した力検出情報に基づいて、コネクターPL1に対して第1方向F5と逆の方向に加わった力が、所定の第3閾値以上であると判定した場合、挿入部PL21とは異なる位置にコネクターPL1が接触したと判定する。第3閾値は、コネクターPL1を挿入部PL21に挿入する際に必要な最小の力(例えば、図22に示した必要挿入圧力)より大きな力である。例えば、コネクターPL1とコネクターPL2の規格が、図22に示したUSB−A型の場合、第3閾値は、10ニュートンよりも大きな力である。一方、接触判定部42は、力検出部21から取得した力検出情報に基づいて、コネクターPL1に対して第1方向F5と逆の方向に加わった力が、所定の第3閾値未満であると判定した場合、挿入部PL21とは異なる位置にコネクターPL1が接触していないと判定する。挿入部PL21とは異なる位置にコネクターPL1が接触していないと接触判定部42が判定した場合(ステップS340−No)、ロボット制御部48は、第4挿入動作を終了させるための条件である第3終了条件が満たされたか否かを判定する(ステップS345)。ここで、図26を参照し、第3終了条件について説明する。
図26は、第3終了条件が満たされている場合におけるコネクターPL1とコネクターPL2との状態の一例を示す図である。図26に示した三次元座標系は、前述したロボット座標系である。第3終了条件は、この一例において、制御点T3のロボット座標系におけるY軸に沿った方向における位置が、挿入部PL21の先端部が有する面から第1方向F5側に距離L11(単位は、例えば、ミリメートル)以上離れていることである。図26に示した例では、制御点T3の位置は、当該面から当該Y軸に沿って第1方向F5側に距離L11だけ離れている。距離L11は、例えば、5ミリメートルである。なお、距離L11は、これに代えて、他の距離であってもよい。また、第3終了条件は、これに代えて、他の条件であってもよい。
ステップS345において、第3終了条件が満たされていないとロボット制御部48が判定した場合(ステップS345−No)、接触判定部42は、ステップS340に遷移し、挿入部PL21とは異なる位置にコネクターPL1が接触したか否かを再び判定する。一方、第3終了条件が満たされたと判定した場合(ステップS345−Yes)、ロボット制御部48は、第1方向F5に向かう制御点T3の移動を停止させ、第4挿入動作を終了させる。そして、ロボット制御部48は、コネクターPL1がコネクターPL2に完全に挿入されるまでコネクターPL1を第1方向F5に移動させる第5挿入動作をロボット20に行わせ(ステップS350)、第1エンドエフェクターE1にコネクターPL1を離させてからアームを所定の終了位置に移動させて処理を終了する。ここで、図27を参照し、ステップS350における第5挿入動作について説明する。
図27は、第5挿入動作が行われた後のコネクターPL1とコネクターPL2との状態の一例を示す図である。図27に示した三次元座標系は、前述したロボット座標系である。
図27に示したように、ロボット制御部48は、第5挿入動作において、アームによりコネクターPL1を、コネクターPL1がコネクターPL2に完全に挿入するまで第1方向F5に移動させる。これにより、ロボット制御部48は、コネクターPL1とコネクターPL2とを完全に接続することができる。なお、第5挿入動作は、これに代えて、他の動作であってもよい。
一方、ステップS340において、挿入部PL21とは異なる位置にコネクターPL1が接触したと接触判定部42が判定した場合(ステップS340−Yes)、ロボット制御部48は、所定の作業における第4挿入動作の実行順を示す情報が示す実行順を、1だけ増加させる。そして、ロボット制御部48は、ステップS300において位置情報読出部44が記憶部32から読み出した位置情報が示す挿入部PL21の位置と、ステップS310において待機位置情報読出部46が記憶部32から読み出した第3待機位置情報と、当該実行順を示す情報とに基づいて、第4挿入動作が行われた回数に応じた第3待機位置を特定する。ロボット制御部48は、特定した第3待機位置に基づいて、アームによりコネクターPL1を、コネクターPL1とコネクターPL2とが離れる方向のうち第1方向F5と逆の方向(この一例において、ロボット座標系のY軸の負の方向)以外の方向に移動させることにより、コネクターPL1とコネクターPL2とを離間させるとともに、制御点T3を当該第3待機位置に移動させる第3離間動作をロボット20に行わせる(ステップS360)。ステップS360において第3離間動作が行われた後、ロボット制御部48は、ステップS330に遷移し、再び第4挿入動作を開始する。ここで、図28及び図29を参照し、挿入部PL21とは異なる位置にコネクターPL1が接触した場合におけるコネクターPL1とコネクターPL2との状態と、ステップS360における第3離間動作とについて説明する。
図28は、挿入部PL21とは異なる位置にコネクターPL1が接触した場合におけるコネクターPL1とコネクターPL2との状態の一例を示す図である。コネクターPL1の挿入部PL21は、ステップS320において制御点T3を1回目の第4挿入動作における第3待機位置に移動させた場合であっても、アームの剛性による誤差や、基板Bが設置された位置に関する誤差等の誤差によって、コネクターPL1が挿入部PL21とは異なる位置に接触してしまう場合がある。図28に示した状態は、このような誤差によってコネクターPL1が挿入部PL21とは異なる位置に接触してしまった状態の一例を示している。ステップS340において、挿入部PL21とは異なる位置にコネクターPL1が接触したと接触判定部42が判定した場合、ロボット制御部48は、図29に示すように、ステップS360において第3離間動作を行う。
図29は、第3離間動作が行われた後のコネクターPL1とコネクターPL2との状態の一例を示す図である。図29に示したように、ロボット制御部48は、制御点T3(すなわち、コネクターPL1)を、コネクターPL1とコネクターPL2とが離れる方向のうち第1方向F5と逆の方向(この一例において、ロボット座標系のY軸の負の方向)以外の方向F6に移動させることにより、コネクターPL1とコネクターPL2とを離間させるとともに、制御点T3を前回の第3待機位置と異なる第3待機位置に移動させる第3離間動作をロボット20に行わせる。当該第3待機位置は、1回目の第4挿入動作における第3待機位置の場合と同様に、挿入部PL21の先端部が有する面からロボット座標系のY軸に沿って第1方向F5と逆の方向側に距離L11だけ離れた位置である。しかし、第3離間動作の後において、当該面上を第1方向F5に向かって見た場合、第3待機位置の当該面上に射影される位置は、1回目の第4挿入動作における第3待機位置の当該面上に射影される位置と異なる位置である。
また、ロボット制御部48は、第3離間動作において、制御点T3を、制御点T3が接触していた位置であって挿入部PL21と異なる位置から移動の軌跡を直線にして、コネクターPL1とコネクターPL2とが離れる方向のうち第1方向F5と逆の方向以外の方向に移動させ、コネクターPL1とコネクターPL2とを離間させる。これにより、ロボット制御部48は、コネクターPL1を、コネクターPL1とコネクターPL2とを離間させてから、コネクターPL1とコネクターPL2とが近づく方向に再び移動させ始める位置(すなわち、第3待機位置)まで移動させるのに要する時間を短縮することができる。なお、ロボット制御部48は、第3離間動作において、制御点T3を、制御点T3が接触していた位置であって挿入部PL21と異なる位置から移動の軌跡を直線以外の軌跡にして、コネクターPL1とコネクターPL2とが離れる方向のうち第1方向F5と逆の方向以外の方向に移動させ、コネクターPL1とコネクターPL2とを離間させる構成であってもよい。
また、この一例において、第4挿入動作と第3離間動作とを2回以上行う場合、すなわち、挿入部PL21と異なる位置へのコネクターPL1の接触、及びコネクターPL1とコネクターPL2との離間を2回以上行う場合、ロボット制御部48は、前述の図13に示すように、第3待機位置情報に基づいて、第3待機位置を螺旋状の軌跡に沿って変化させる。制御点T3を螺旋状に移動させる処理については、図13における制御点T1を螺旋状に移動させる処理と同様な処理であるため、説明を省略する。
なお、第2実施形態において、力検出部21は、第4挿入動作を行う前に、力検出部21が検出している力を0に初期化する構成であってもよい。
また、ロボット制御装置30は、第1実施形態における第1離間動作と第2離間動作のうちいずれか一方又は両方が実行させる回数に上限を設定している構成であってもよい。例えば、第1離間動作が実行させる回数の上限が3回の場合、ロボット制御装置30は、4回目の第1離間動作が実行させる際に、当該第1離間動作を実行させずにエラーを表示部35に表示させる構成であってもよい。
また、ロボット制御装置30は、第2実施形態における第3離間動作が実行させる回数に上限を設定している構成であってもよい。例えば、第3離間動作が実行させる回数の上限が3回の場合、ロボット制御装置30は、4回目の第3離間動作が実行させる際に、当該第3離間動作を実行させずにエラーを表示部35に表示させる構成であってもよい。
以上のように、ロボット制御装置30は、コネクターPL1とコネクターPL2の両方を変形させてしまうことを抑制しつつ、コネクターPL1を挿入部PL21に挿入することができる。このため、ロボット制御装置30(又はロボット制御装置30を内蔵したロボット20)は、部品や製品の組み立て工場等において不良品を作り出さない作業を行うことができ、その結果、作業効率や生産性を向上させることができる。
なお、ロボット制御装置30は、アームによりコネクターPL2をコネクターPL1とコネクターPL2とが近づく方向に移動させ、挿入部PL21とは異なる位置にコネクターPL1が接触したか否かを力検出情報に基づいて判定し、挿入部PL21とは異なる位置にコネクターPL1が接触したと判定した場合、コネクターPL1とコネクターPL2とを離間させる構成であってもよい。この場合、エンドエフェクターEは、コネクターPL1に代えて、コネクターPL2を把持する。
また、ロボット制御装置30は、ロボット20が複腕ロボットである場合、1本目のアームが備えるエンドエフェクターによりコネクターPL1を把持し、2本目のアームが備えるエンドエフェクターによりコネクターPL2を把持し、2本のアームによりコネクターPL1とコネクターPL2とをコネクターPL1とコネクターPL2とが互いに近づく方向に移動させ、挿入部PL21とは異なる位置にコネクターPL1が接触したことを力検出情報に基づいて判定し、挿入部PL21とは異なる位置にコネクターPL1が接触したと判定した場合、コネクターPL1とコネクターPL2とを離間させる構成であってもよい。
また、ロボット制御装置30は、ロボットシステム1又はロボット20が撮像部を備えている場合、撮像部により挿入部PL21の先端部が有する面を含む撮像画像を撮像し、撮像した当該撮像画像に基づいて、挿入部PL21の位置を検出する構成であってもよい。この場合、制御部36は、位置情報読出部44を備えていなくてもよい。
また、ロボット制御装置30は、ロボットシステム1又はロボット20が撮像部を備えている場合であり、アームによりコネクターPL2をコネクターPL1とコネクターPL2とが近づく方向に移動させる場合、撮像部によりコネクターPL1の先端部が有する面を含む撮像画像を撮像し、撮像した当該撮像画像に基づいて、制御点T3の位置を検出する構成であってもよい。
また、ロボット制御装置30は、ロボットシステム1又はロボット20が撮像部を備えている場合であり、ロボット20が複腕ロボットであって、1本目のアームが備えるエンドエフェクターによりコネクターPL1を把持し、2本目のアームが備えるエンドエフェクターによりコネクターPL2を把持し、2本のアームによりコネクターPL1とコネクターPL2とをコネクターPL1とコネクターPL2とが互いに近づく方向に移動させる場合、撮像部によりコネクターPL1の先端部が有する面、及び挿入部PL21の先端部が有する面を含む撮像画像を撮像し、撮像した当該撮像画像に基づいて、制御点T3又は挿入部PL21の少なくとも一方の位置を検出する構成であってもよい。
また、第1対象物と第2対象物との組み合わせは、コネクターPL1とコネクターPL2との組み合わせに代えて、互いに嵌合される2つの対象物の組み合わせであれば如何なる組み合わせであってもよい。
以上説明したように、第1実施形態及び第2実施形態におけるロボット20(又はロボットシステム1)は、アームにより第1対象物又は第2対象物の少なくとも一方を第1対象物と第2対象物とが近づく方向に移動させ、第2対象物が備える挿入部とは異なる位置に第1対象物が接触したことを力検出部21の出力(この一例において、力検出情報)に基づいて判定した場合、第1対象物と第2対象物とを離間させる。これにより、ロボット20は、第2対象物が備える挿入部とは異なる位置に第1対象物が接触した場合に第1対象物及び第2対象物を変形させてしまうことを抑制することができる。
また、ロボット20は、第2対象物が備える挿入部とは異なる位置に第1対象物が接触したと判定した場合、第1対象物と第2対象物とが離れる方向のうち第1対象物と第2対象物とが近づく方向と逆の方向以外の方向に、第1対象物又は第2対象物の少なくとも一方を移動させ、第1対象物と第2対象物とを離間させる。これにより、ロボット20は、第1対象物又は第2対象物の少なくとも一方を、第1対象物と第2対象物とが離間する前後において異なる位置から第1対象物と第2対象物とが近づく方向に移動させることができる。
また、ロボット20は、第2対象物が備える挿入部とは異なる位置に第1対象物が接触したと判定した場合、第1対象物又は第2対象物の少なくとも一方を、第2対象物が備える挿入部とは異なる位置から移動の軌跡を直線にして、第1対象物と第2対象物とが離れる方向のうち第1対象物と第2対象物とが近づく方向と逆の方向以外の方向に移動させ、第1対象物と第2対象物とを離間させる。これにより、ロボット20は、第1対象物又は第2対象物の少なくとも一方を、第1対象物と第2対象物とを離間させてから、第1対象物と第2対象物とが近づく方向に再び移動させ始める位置まで移動させるのに要する時間を短縮することができる。
また、ロボット20は、第2対象物の挿入部と異なる位置への第1対象物の接触、及び第1対象物と第2対象物との離間を2回以上行う場合、第1対象物と第2対象物とが近づく方向から見て、第1対象物又は第2対象物の少なくとも一方を螺旋状に移動させる。これにより、ロボット20は、第1対象物と第2対象物とが近づく方向に移動させ始める位置であって第1対象物と第2対象物の挿入部との相対的な位置を螺旋状に変化させながら第1対象物が第2対象物の挿入部に挿入することが可能な位置を探すことができる。
また、ロボット20は、アームにより電子部品又は第2対象物の少なくとも一方を電子部品と第2対象物とが近づく方向に移動させ、第2対象物が備える挿入部とは異なる位置に電子部品が接触したことを力検出器の出力に基づいて判定した場合、電子部品と第2対象物とを離間させる。これにより、ロボット20は、第2対象物が備える挿入部とは異なる位置に電子部品が接触した場合に電子部品及び第2対象物を変形させてしまうことを抑制することができる。
また、ロボット20は、基準となる位置である基準位置を教示することにより、第1対象物又は第2対象物の少なくとも一方を第1対象物と第2対象物とが近づく方向に移動させる。これにより、ロボット20は、基準位置を教示することにより第1対象物又は第2対象物の少なくとも一方を第1対象物と第2対象物とが近づく方向に移動させることができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット制御装置30)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。