(57)【特許請求の範囲】
【請求項１】
第１ロボットアームと、第２ロボットアームと、前記第１ロボットアームを制御する第１制御装置と、前記第２ロボットアームを制御する第２制御装置と、前記第１ロボットアームに設けられて前記第１ロボットアームに加えられる外力を検出する第１センサと、前記第２ロボットアームに設けられて前記第２ロボットアームに加えられる外力を検出する第２センサと、を備え、
前記第１制御装置は、前記第１センサの検出出力に基づき前記第１ロボットアームに外力が加えられたことを検出した場合、前記第１ロボットアームをマスター状態に設定し、第１マスター設定完了情報を第２制御装置に送信し、前記第１センサによって取得した外力に基づいて前記第１ロボットアームを運動させる第１軌道を算出し、算出された前記第１軌道を前記第２制御装置に送信し、算出された前記第１軌道によって前記第１ロボットアームを駆動し、
前記第２制御装置は、前記第２センサの検出出力に基づき前記第２ロボットアームに外力が加えられたことを検出していない状態のときに前記第１マスター設定完了情報を前記第１制御装置から受信した場合、前記第２ロボットアームをスレーブ状態に設定し、前記第１制御装置から受信した前記第１軌道に基づいて前記第２ロボットアームを運動させる第２軌道を算出し、算出された前記第２軌道によって前記第２ロボットアームを駆動する
ことを特徴とするロボットアームシステム。
【請求項２】
前記第２制御装置は、前記第２センサの検出出力に基づき前記第２ロボットアームに外力が加えられたことを検出した場合、前記第２ロボットアームをマスター状態に設定し、第２マスター設定完了情報を第１制御装置に送信し、前記第２センサによって取得した外力に基づいて前記第２ロボットアームを運動させる第３軌道を算出し、算出された前記第３軌道を前記第１制御装置に送信し、算出された前記第３軌道によって前記第２ロボットアームを駆動し、
前記第１制御装置は、前記第１センサの検出出力に基づき前記第１ロボットアームに外力が加えられたことを検出していない状態のときに前記第２マスター設定完了情報を前記第２制御装置から受信した場合、前記第１ロボットアームをスレーブ状態に設定し、前記第２制御装置から受信した前記第３軌道に基づいて前記第１ロボットアームを運動させる第４軌道を算出し、算出された前記第４軌道によって前記第１ロボットアームを駆動する
ことを特徴とする請求項１に記載のロボットアームシステム。
【請求項３】
ワークを把持可能な複数のロボットアームと、
複数の前記ロボットアームで前記ワークを把持した状態において、一の前記ロボットアームに対して直接教示による外力が加えられた場合、前記外力が加えられた前記ロボットアームをマスター状態に設定し、他の前記ロボットアームをスレーブ状態に設定する設定部と、前記マスター状態に設定された前記ロボットアームであるマスターアームについて前記外力によって運動する第１軌道を算出し、前記スレーブ状態に設定された前記ロボットアームであるスレーブアームの第２軌道を前記第１軌道に基づいて算出する処理部と、前記第１軌道に基づいて前記マスターアームを運動させ、前記第２軌道に基づいて前記スレーブアームを運動させる運動制御部と、を有する制御装置と、
を備え、
前記スレーブアームに対して直接教示によるスレーブ側外力が加えられた場合、
前記処理部は、前記スレーブアームに加えられた前記スレーブ側外力によって変化する前記ワークの変位及び姿勢変化量を算出し、算出結果に基づいて前記マスターアームの第３軌道を算出し、前記第３軌道に基づいて前記スレーブアームの第４軌道を算出し、
前記運動制御部は、前記第３軌道に基づいて前記マスターアームを運動させ、前記第４軌道に基づいて前記スレーブアームを運動させる
ことを特徴とするロボットアームシステム。
【請求項４】
前記第２軌道は、前記スレーブアームが前記マスターアームに追従して運動する軌道である
ことを特徴とする請求項３に記載のロボットアームシステム。
【請求項５】
前記第３軌道及び前記第４軌道は、前記マスターアームと前記スレーブアームとで前記ワークの位置及び姿勢を変化させる軌道である
ことを特徴とする請求項３又は４に記載のロボットアームシステム。
【請求項６】
前記制御装置は、複数の前記ロボットアーム毎に設けられ、互いに通信可能である
ことを特徴とする請求項３から請求項５のうちいずれか一項に記載のロボットアームシステム。
【請求項７】
第１ロボットアームと、第２ロボットアームと、前記第１ロボットアームを制御する第１制御装置と、前記第２ロボットアームを制御する第２制御装置と、前記第１ロボットアームに設けられて前記第１ロボットアームに加えられる外力を検出する第１センサと、前記第２ロボットアームに設けられて前記第２ロボットアームに加えられる外力を検出する第２センサとを備えるロボットアームシステムにおけるロボットアームの教示方法であって、
前記第１制御装置は、前記第１センサの検出出力に基づき前記第１ロボットアームに外力が加えられたことを検出した場合、前記第１ロボットアームをマスター状態に設定し、第１マスター設定完了情報を第２制御装置に送信し、前記第１センサによって取得した外力に基づいて前記第１ロボットアームを運動させる第１軌道を算出し、算出された前記第１軌道を前記第２制御装置に送信し、算出された前記第１軌道によって前記第１ロボットアームを駆動し、
前記第２制御装置は、前記第２センサの検出出力に基づき前記第２ロボットアームに外力が加えられたことを検出していない状態のときに前記第１マスター設定完了情報を前記第１制御装置から受信した場合、前記第２ロボットアームをスレーブ状態に設定し、前記第１制御装置から受信した前記第１軌道に基づいて前記第２ロボットアームを運動させる第２軌道を算出し、算出された前記第２軌道によって前記第２ロボットアームを駆動する
ことを特徴とするロボットアームの教示方法。
【請求項８】
ワークを把持可能な複数のロボットアームの教示方法であって、
複数の前記ロボットアームで一の前記ワークを把持した状態において、一の前記ロボットアームに対して直接教示による外力が加えられた場合、前記外力が加えられた前記ロボットアームをマスター状態に設定し、他の前記ロボットアームをスレーブ状態に設定することと、
前記マスター状態に設定された前記ロボットアームであるマスターアームの前記外力による第１軌道を算出し、前記第１軌道に基づいて前記スレーブ状態に設定された前記ロボットアームであるスレーブアームの第２軌道を算出することと、
算出された前記第１軌道に基づいて前記マスターアームを運動させ、前記第２軌道に基づいて前記スレーブアームを運動させることと、
前記スレーブアームに対して直接教示によるスレーブ側外力が加えられた場合、前記スレーブアームに加えられた前記スレーブ側外力によって変化する前記ワークの変位及び姿勢変化量を算出し、算出結果に基づいて前記マスターアームの第３軌道を算出し、前記第３軌道に基づいて前記スレーブアームの第４軌道を算出することと、
前記第３軌道に基づいて前記マスターアームを運動させ、前記第４軌道に基づいて前記スレーブアームを運動させること、
を含むことを特徴とするロボットアームの教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のロボットアームを有するロボットアームシステム及びロボットアームの教示方法に関する。
【背景技術】
【０００２】
複数のロボットアームによりワークを把持するロボットアームシステムがある。このようなロボットアームシステムにおいては、ロボットアームを直接教示する教示作業が行われている。直接教示は、教示者がロボットアームを直接動かした場合に、ロボットアームに生じる力をセンサにより検出し、センサの検出結果に基づいて、教示者によるロボットアームの動きを再現する手法である。
【０００３】
特許文献１には、マスターアームとスレーブアームとが予め設定された双腕ロボットアームを制御装置が制御する技術が記載されている。特許文献１に記載の双腕ロボットアームでは、教示作業を行う場合、制御装置は、マスターアームに搭載された力センサの検出結果からマスターアームの軌道を算出し、当該マスターアームの軌道に基づいて他方のスレーブアームの軌道を算出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１２０１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、スレーブアームの力センサで検知した検出結果はスレーブアームの軌道修正にしか用いられず、マスターアームには適用されない。このため、教示作業を行う場合の作業効率が低下する可能性がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、マスターアーム及びスレーブアームが設定される複数のロボットアームに対して教示作業を行う場合の作業効率の低下を抑制することが可能なロボットアームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、第１ロボットアームと、第２ロボットアームと、前記第１ロボットアームを制御する第１制御装置と、前記第２ロボットアームを制御する第２制御装置と、前記第１ロボットアームに設けられて前記第１ロボットアームに加えられる外力を検出する第１センサと、前記第２ロボットアームに設けられて前記第２ロボットアームに加えられる外力を検出する第２センサと、を備え、前記第１制御装置は、前記第１センサの検出出力に基づき前記第１ロボットアームに外力が加えられたことを検出した場合、前記第１ロボットアームをマスター状態に設定し、第１マスター設定完了情報を第２制御装置に送信し、前記第１センサによって取得した外力に基づいて前記第１ロボットアームを運動させる第１軌道を算出し、算出された前記第１軌道を前記第２制御装置に送信し、算出された前記第１軌道によって前記第１ロボットアームを駆動し、前記第２制御装置は、前記第２センサの検出出力に基づき前記第２ロボットアームに外力が加えられたことを検出していない状態のときに前記第１マスター設定完了情報を前記第１制御装置から受信した場合、前記第２ロボットアームをスレーブ状態に設定し、前記第１制御装置から受信した前記第１軌道に基づいて前記第２ロボットアームを運動させる第２軌道を算出し、算出された前記第２軌道によって前記第２ロボットアームを駆動することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、マスターアーム及びスレーブアームが設定される複数のロボットアームに対して教示作業を行う場合の作業効率の低下を抑制することが可能となる、という効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るロボットアームシステムを示す斜視図
【図２】実施の形態１に係る制御装置の一例を示すブロック図
【図３】実施の形態１に係る第１制御部及び第２制御部のハードウェア構成を示す図
【図４】実施の形態１に係る第１制御部及び第２制御部のハードウェア構成を示す図
【図５】実施の形態１に係るロボットアームシステムの教示動作の一部を示すフローチャート
【図６】実施の形態１に係るロボットアームシステムの教示動作を示す斜視図
【図７】実施の形態１に係るロボットアームシステムの教示動作の一部を示すフローチャート
【図８】実施の形態１に係る第１ロボットアーム及び第２ロボットアームの構成を模式的に示す図
【図９】実施の形態２に係るロボットアームシステムの教示動作を示す斜視図
【図１０】実施の形態２に係るロボットアームシステムの教示動作の一部を示すフローチャート
【図１１】ロボットアームシステムの他の例を示す斜視図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態に係るロボットアームシステム及びロボットアームの教示方法を図面に基づいて詳細に説明する。なお、実施の形態により本発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、実施の形態１に係るロボットアームシステム１００を示す斜視図である。図１に示すように、ロボットアームシステム１００は、ワーク５０を把持可能な第１ロボットアーム１０及び第２ロボットアーム２０と、第１ロボットアーム１０を制御する制御装置である第１制御装置３０と、第２ロボットアーム２０を制御する制御装置である第２制御装置４０とを備えている。
【００１２】
第１ロボットアーム１０は、室内又は室外の水平な床面に載置される基台１１と、第１関節部１２と、第１腕部１３と、第２関節部１４と、第２腕部１５と、ワーク５０を把持する把持部１６とを有している。なお、基台１１が載置される床面は、水平に限定するものではなく、水平面に対して傾いていてもよい。
【００１３】
第１関節部１２は、基台１１と第１腕部１３とを連結する。第１関節部１２には、第１軸部１７が設けられている。第１軸部１７は、中実状の構成である円柱状又は中空状の構成である円筒状に形成されている。第１腕部１３は、第１軸部１７の軸線周りに回動可能に設けられている。第１関節部１２は、モータを含む駆動部を有する。駆動部は、第１軸部１７の軸線周り方向の駆動力を第１腕部１３に付与する。第１関節部１２には、トルクセンサ１２ａが設けられている。トルクセンサ１２ａは、第１関節部１２に加えられた力を検出し、検出結果を第１制御装置３０に送信する。
【００１４】
第２関節部１４は、第１腕部１３と第２腕部１５とを連結する。第２関節部１４には、第２軸部１８が設けられている。第２軸部１８は、円柱状又は円筒状に形成されている。第１腕部１３及び第２腕部１５は、第２軸部１８の軸線周りに回動可能に設けられている。第２関節部１４は、モータを含む駆動部を有する。駆動部は、第２軸部１８の軸線周り方向の駆動力を第２腕部１４に付与する。第２関節部１４には、トルクセンサ１４ａが設けられている。トルクセンサ１４ａは、第２関節部１４に加えられた力を検出し、検出結果を第１制御装置３０に送信する。
【００１５】
把持部１６は、連結部１９を介して第２腕部１５に連結されている。把持部１６は、ワーク５０を把持するために開いた部分を有している。把持部１６は、鉛直方向に平行な回転軸の軸線周りに回転可能に設けられている。図１では、把持部１６の開いた部分が鉛直方向の下方に向けて配置されており、把持部１６がワーク５０を吊り下げた状態で把持している。把持部１６は、ワーク５０を把持した状態で回転可能である。
【００１６】
第２ロボットアーム２０は、第１ロボットアーム１０と同様の構成である。すなわち、第２ロボットアーム２０は、室内又は室外の水平な床面に載置される基台２１と、第１関節部２２と、第１腕部２３と、第２関節部２４と、第２腕部２５と、ワーク５０を把持する把持部２６とを有している。
【００１７】
第１関節部２２は、基台２１と第１腕部２３とを連結する。第１関節部２２には、第１軸部２７が設けられている。第１軸部２７は、円柱状又は円筒状に形成されている。第１腕部２３は、第１軸部２７の軸線周りに回動可能に設けられている。第１関節部２２は、モータを含む駆動部を有する。駆動部は、第１軸部２７の軸線周り方向の駆動力を第１腕部２３に付与する。第１関節部２２には、トルクセンサ２２ａが設けられている。トルクセンサ２２ａは、第１関節部２２に加えられた力を検出し、検出結果を第２制御装置４０に送信する。
【００１８】
第２関節部２４は、第１腕部２３と第２腕部２５とを連結する。第２関節部２４には、第２軸部２８が設けられている。第２軸部２８は、円柱状又は円筒状に形成されている。第１腕部２３及び第２腕部２５は、第２軸部２８の軸線周りに回動可能に設けられている。第２関節部２４は、モータを含む駆動部を有する。駆動部は、第２軸部２８の軸線周り方向の駆動力を第２腕部２４に付与する。第２関節部２４には、トルクセンサ２４ａが設けられている。トルクセンサ２４ａは、第２関節部２４に加えられた力を検出し、検出結果を第２制御装置４０に送信する。
【００１９】
把持部２６は、連結部２９を介して第２腕部２５に連結されている。把持部２６は、鉛直方向の下方に向けて配置されている。把持部２６は、鉛直方向に平行な回転軸の軸線周りに回転可能に設けられている。
【００２０】
図２は、実施の形態１に係る制御装置の一例を示すブロック図である。図２に示すように、制御装置である第１制御装置３０及び第２制御装置４０は、同様の構成とすることができる。図２では、第１制御装置３０及び第２制御装置４０の対応する部分については、符号を並列に付した状態で示している。
【００２１】
第１制御装置３０は、第１ロボットアーム１０の制御状態を設定する設定部３１と、第１ロボットアーム１０の軌道を算出可能な処理部３２と、処理部３２によって算出された軌道に基づいて第１ロボットアーム１０の運動制御を行う運動制御部３３と、第１ロボットアーム１０の制御に用いられる情報を記憶する記憶部３４と、第２制御装置４０を含む外部との間で通信を行う通信部３５とを有している。
【００２２】
設定部３１は、第１ロボットアーム１０を、ニュートラル状態、マスター状態及びスレーブ状態のいずれかの制御状態に設定する。ニュートラル状態は、第１ロボットアーム１０及び第２ロボットアーム２０に直接教示の外力が加えられていない場合の制御状態である。マスター状態及びスレーブ状態は、第１ロボットアーム１０及び第２ロボットアーム２０の少なくとも一方に対して直接教示の外力が加えられた場合の制御状態である。
【００２３】
マスター状態は、第１ロボットアーム１０の軌道を処理部３２が算出し、算出結果に基づいて運動制御部３３が第１ロボットアーム１０の運動を制御する状態である。スレーブ状態は、通信部３５において受信した第２ロボットアーム２０の軌道に基づいて処理部３２が第１ロボットアーム１０の軌道を算出し、算出結果に基づいて運動制御部３３が第１ロボットアーム１０の運動を制御する状態である。
【００２４】
第２制御装置４０は、第２ロボットアーム２０の制御状態を設定する設定部４１と、第２ロボットアーム２０の軌道を算出可能な処理部４２と、当該処理部４２によって算出された軌道に基づいて第２ロボットアーム２０の運動制御を行う運動制御部４３と、第２ロボットアーム２０の制御に用いられる情報を記憶する記憶部４４と、第１制御装置３０を含む外部との間で通信を行う通信部４５とを有している。
【００２５】
設定部４１は、第２ロボットアーム２０を、ニュートラル状態、マスター状態及びスレーブ状態のいずれかの制御状態に設定する。ニュートラル状態は、第１ロボットアーム１０及び第２ロボットアーム２０に直接教示の外力が加えられていない場合の制御状態である。マスター状態及びスレーブ状態は、第１ロボットアーム１０及び第２ロボットアーム２０の少なくとも一方に対して直接教示の外力が加えられた場合の制御状態である。
【００２６】
マスター状態は、第２ロボットアーム２０の軌道を処理部４２が算出し、算出結果に基づいて運動制御部４３が第２ロボットアーム２０の運動を制御する状態である。スレーブ状態は、通信部４５が受信した第１ロボットアーム１０の軌道に基づいて処理部４２が第２ロボットアーム２０の軌道を算出し、算出結果に基づいて運動制御部４３が第２ロボットアーム２０の運動を制御する状態である。スレーブ状態にあるロボットアームは、マスター状態にあるロボットアームの動作に追従して運動する。
【００２７】
第１制御装置３０及び第２制御装置４０は、通信部３５及び通信部４５によって互いに通信可能に設けられている。第１制御装置３０は、第１ロボットアーム１０に内蔵された構成であってもよいし、第１ロボットアーム１０の外部に設けられた構成であってもよい。第２制御装置４０は、第２ロボットアーム２０に内蔵された構成であってもよいし、第２ロボットアーム２０の外部に設けられた構成であってもよい。
【００２８】
第１制御装置３０及び第２制御装置４０は、設定部３１、処理部３２、運動制御部３３、記憶部３４及び通信部３５の各機能が、処理回路により実現される。処理回路は、専用のハードウェアであってもよいし、メモリに格納されるプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。
【００２９】
図３及び図４は、実施の形態１に係る第１制御装置３０及び第２制御装置４０のハードウェア構成を示す図である。図３に示すように、第１制御装置３０及び第２制御装置４０を構成する処理回路が専用のハードウェアである場合、処理回路は、単一回路、複合回路、プログラム化したプロセッサー、並列プログラム化したプロセッサー、ＡＳＩＣ、ＦＰＧＡ、又はこれらを組み合わせたものが該当する。設定部３１、処理部３２、運動制御部３３、記憶部３４及び通信部３５の各機能を個別の処理回路で実現してもよいし、各部の機能をまとめて処理回路で実現してもよい。
【００３０】
図４に示すように、第１制御装置３０及び第２制御装置４０を構成する処理回路がＣＰＵの場合、設定部３１、処理部３２、運動制御部３３、記憶部３４及び通信部３５の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアやファームウェアはプログラムとして記述され、メモリ３０Ａ，４０Ａに格納される。処理回路は、メモリ３０Ａ，４０Ａに記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、メモリ３０Ａ，４０Ａは、処理回路が、第１ロボットアーム１０及び第２ロボットアーム２０でワーク５０を把持した状態で、第１ロボットアーム１０に対して直接教示による外力Ｆ１が加えられた場合、第１ロボットアーム１０をマスター状態に設定し、第２ロボットアーム２０をスレーブ状態に設定し、第１ロボットアーム１０について外力Ｆ１によって運動する第１軌道を算出し、第２ロボットアーム２０の第２軌道を第１軌道に基づいて算出し、第１軌道に基づいて第１ロボットアーム１０を運動させ、第２軌道に基づいて第２ロボットアーム２０を運動させる動作が結果的に実行されることになるプログラムを格納する。ここで、メモリ３０Ａ，４０Ａとは、不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、及びＤＶＤのうち少なくとも１つが該当する。記憶部３４がメモリ３０Ａ，４０Ａであってもよい。
【００３１】
次に、上記のように構成されたロボットアームシステム１００の教示動作を説明する。図５は、実施の形態１に係るロボットアームシステム１００の教示動作の一部を示すフローチャートである。以下、第１ロボットアーム１０の把持部１６と第２ロボットアーム２０の把持部２６とで一のワーク５０を把持した状態における教示動作を説明する。
【００３２】
第１ロボットアーム１０及び第２ロボットアーム２０の双方に直接教示の外力が加えられていない場合、設定部３１は、制御対象の第１ロボットアーム１０をニュートラル状態に設定する。また、設定部４１は、制御対象の第２ロボットアーム２０をニュートラル状態に設定する。これにより、第１ロボットアーム１０及び第２ロボットアーム２０のすべてのロボットアームがニュートラル状態に設定される（ステップＳ０１）。
【００３３】
第１ロボットアーム１０及び第２ロボットアーム２０をニュートラル状態に設定した後、設定部３１は、トルクセンサ１２ａ，１４ａの検出結果に基づいて、直接教示の外力が加えられたか否かを判断する。また、設定部４１は、トルクセンサ２２ａ，２４ａの検出結果に基づいて、直接教示の外力が加えられたか否かを判断する（ステップＳ０２）。
【００３４】
第１ロボットアーム１０に直接教示の外力が加えられることにより、トルクセンサ１２ａ及び１４ａの検出結果が変化する。また、ワーク５０を介して第２ロボットアーム２０側に力が伝達された場合、トルクセンサ２２ａ及び２４ａの検出結果が変化する。この場合、直接教示の外力が加えられたトルクセンサ１２ａ及び１４ａの検出結果の変化量は、ワーク５０を介して間接的に外力が加えられたトルクセンサ２２ａ及び２４ａの検出結果の変化量よりも大きくなる。設定部３１は、当該変化を検出することにより、第１ロボットアーム１０に外力Ｆ１が加えられたことを判断することができる。
【００３５】
第２ロボットアーム２０に直接教示の外力が加えられることにより、トルクセンサ２２ａ及び２４ａの検出結果が変化する。また、ワーク５０を介して第１ロボットアーム１０側に力が伝達された場合、トルクセンサ１２ａ及び１４ａの検出結果が変化する。この場合、直接教示の外力が加えられたトルクセンサ２２ａ及び２４ａの検出結果の変化量は、ワーク５０を介して間接的に外力が加えられたトルクセンサ１２ａ及び１４ａの検出結果の変化量よりも大きくなる。設定部４１は、当該変化を検出することにより、第２ロボットアーム２０に外力Ｆ１が加えられたことを判断することができる。
【００３６】
制御対象である第１ロボットアーム１０及び第２ロボットアーム２０に対して直接教示の外力が加えられた場合（ステップＳ０２のＹｅｓ）、設定部３１及び４１は、直接教示の外力が加えられたロボットアームをマスター状態に設定する（ステップＳ０３）。
【００３７】
図６は、実施の形態１に係るロボットアームシステム１００の教示動作を示す斜視図である。図６に示す場合、直接教示の外力Ｆ１が第１ロボットアーム１０に加えられている。外力Ｆ１が加えられることにより、トルクセンサ１２ａ及び１４ａの検出結果が変化する。
【００３８】
この場合、設定部３１は、当該変化を検出することにより、第１ロボットアーム１０に外力Ｆ１が加えられたと判断し（ステップＳ０２のＹｅｓ）、第１ロボットアーム１０をマスター状態に設定する（ステップＳ０３）。これにより、最初に直接教示の外力Ｆ１が加えられた第１ロボットアーム１０がマスター状態に設定される。以下、第１ロボットアーム１０がマスター状態に設定される場合について説明する。なお、第２ロボットアーム２０に外力Ｆ１が加えられ、当該第２ロボットアーム２０がマスター状態に設定される場合についても同様の説明が可能である。
【００３９】
設定部３１は、第１ロボットアーム１０をマスター状態に設定した場合、当該第１ロボットアーム１０をマスター状態に設定した旨の情報であるマスター設定完了情報を、通信部３５を介して他の制御装置に送信する（ステップＳ０４）。実施の形態１では、図６に示すように、通信部３５を介して、マスター設定完了情報６１を第２制御装置４０に送信する。
【００４０】
一方、設定部４１は、ステップＳ０２において、トルクセンサ１２ａ及び１４ａの検出結果と、トルクセンサ２２ａ及び２４ａの検出結果とにより、第２ロボットアーム２０に直接教示の外力Ｆ１が加えられていないと判断する（ステップＳ０２のＮｏ）。そして、設定部４１は、通信部４５において他の制御装置である第１制御装置３０からマスター設定完了情報を受信したか否かを判断する（ステップＳ０５）。
【００４１】
通信部４５がマスター設定完了情報６１を受信していない場合（ステップＳ０５のＮｏ）、制御装置３０，４０は、上記ステップＳ０２以降の動作を繰り返し行う。通信部４５が上記のマスター設定完了情報６１を受信した場合（ステップＳ０５のＹｅｓ）、設定部４１は、第２ロボットアーム２０をスレーブ状態に設定する（ステップＳ０６）。これにより、外力Ｆ１が加えられた第１ロボットアーム１０がマスター状態に設定され、第１ロボットアーム１０以外のロボットアームである第２ロボットアーム２０がスレーブ状態に設定される。
【００４２】
なお、第２ロボットアーム２０に対して外力Ｆ１が加えられた場合、上記ステップＳ０３及びステップＳ０４を設定部４１が行い、上記ステップＳ０５及びステップＳ０６を設定部３１が行う。以下、マスター状態に設定されたロボットアームをマスターアームと表記し、スレーブ状態に設定されたロボットアームをスレーブアームと表記する。
【００４３】
次に、第１ロボットアーム１０及び第２ロボットアーム２０の制御状態が設定された後、第１ロボットアーム１０及び第２ロボットアーム２０を運動させる動作を説明する。図７は、実施の形態１に係るロボットアームシステム１００の教示動作の一部を示すフローチャートである。図７では、マスターアーム側の第１制御装置３０と、スレーブアーム側の第２制御装置４０とで個別に動作を説明する。第１制御装置３０と第２制御装置４０とでマスターアーム側及びスレーブアーム側が上記とは逆の場合においても、同様の説明が可能である。
【００４４】
図７に示すように、まず、マスターアーム側の第１制御装置３０において、処理部３２は、外力Ｆ１に基づいてマスターアームである第１ロボットアーム１０の第１軌道を算出する（ステップＳ１１）。ステップＳ１１において、処理部３２は、第１ロボットアーム１０と第２ロボットアーム２０との間の共通制御点が外力Ｆ１により並進運動する軌道を算出し、算出結果を第１軌道とする。
【００４５】
図８は、実施の形態１に係る第１ロボットアーム１０及び第２ロボットアーム２０の構成を模式的に示す図である。図８に示すように、実施の形態１では、把持部１６及び把持部２６によって把持されるワーク５０の重心位置が共通制御点５１に設定されている。共通制御点５１は、ワーク５０の重心位置に限定するものではなく、把持部１６による把持位置と把持部２６による把持位置との中間位置が共通制御点５１に設定されてもよい。
【００４６】
処理部３２は、第１軌道を算出した後、算出結果を通信部３５からスレーブアーム側の第２制御装置４０に送信する（ステップＳ１２）。
【００４７】
一方、スレーブアーム側の第２制御装置４０では、通信部４５において、第１制御装置３０からの第１軌道を受信したか否かを判断する（ステップＳ２１）。第２制御装置４０は、第１軌道を受信しない場合（ステップＳ２１のＮｏ）、第１軌道を受信するまで当該判断を繰り返す。
【００４８】
通信部４５において第１軌道を受信した場合（ステップＳ２１のＹｅｓ）、処理部４２は、受信した第１軌道に基づいて、スレーブアームである第２ロボットアーム２０の第２軌道を算出する（ステップＳ２２）。第２軌道は、スレーブアームである第２ロボットアーム２０がマスターアームである第１ロボットアーム１０に追従して運動する軌道である。
【００４９】
処理部４２において第２軌道が算出された場合、第１制御装置３０の運動制御部３３は、マスターアームである第１ロボットアーム１０を第１軌道に基づいて運動させる（ステップＳ１３）。また、第２制御装置４０の運動制御部４３は、スレーブアームである第２ロボットアーム２０を、第２軌道に基づいて運動させる（ステップＳ２３）。運動制御部３３及び４３は、ステップＳ１３及びステップＳ２３を同期させて行わせる。つまり、第１ロボットアーム１０の運動と第２ロボットアーム２０の運動とを同期させて行わせる。これにより、第１ロボットアーム１０の運動に第２ロボットアーム２０の運動が追従することになる。この場合、ワーク５０は、第１ロボットアーム１０及び第２ロボットアーム２０の運動によって並進運動する。
【００５０】
以上、実施の形態１に係るロボットアームシステム１００は、一のロボットアームである第１ロボットアーム１０に直接教示の外力Ｆ１を加える場合、外力Ｆ１が加えられた第１ロボットアーム１０がマスター状態となり、第１ロボットアーム１０以外のロボットアームである第２ロボットアーム２０がスレーブ状態となる。このため、マスターアーム及びスレーブアームが設定される複数のロボットアームのうちどのロボットアームに直接教示の外力Ｆ１を加える場合でも、複数のロボットアームを協調して運動させることが可能である。これにより、直接教示の外力を加える対象となるロボットアームを柔軟に選択可能であるため、複数のロボットアームに対して教示作業を行う場合の作業効率の低下を抑制できる。
【００５１】
実施の形態２．
図９は、実施の形態２に係るロボットアームシステム１００の教示動作を示す斜視図である。図９に示すように、実施の形態２では、実施の形態１と同一のロボットアームシステム１００を用いて教示動作を行う場合を説明する。実施の形態２では、第１ロボットアーム１０がマスターアームに設定され、第２ロボットアーム２０がスレーブアームに設定された状態で運動している場合において、図９に示すように、スレーブアームである第２ロボットアーム２０にスレーブ側外力Ｆ２が加えられた場合の動作を説明する。
【００５２】
図１０は、実施の形態２に係るロボットアームシステム１００の教示動作の一部を示すフローチャートである。図１０では、マスターアーム側の第１制御装置３０と、スレーブアーム側の第２制御装置４０とで個別に動作を説明する。第１制御装置３０と第２制御装置４０とでマスターアーム側及びスレーブアーム側が上記とは逆の場合においても、同様の説明が可能である。
【００５３】
図１０に示すように、まず、スレーブアーム側の第２制御装置４０において、設定部４１は、スレーブ側外力Ｆ２についての外力情報をマスターアーム側の第１制御装置３０に送信する（ステップＳ４１）。設定部４１は、図９に示すように、トルクセンサ２２ａ及び２４ａの検出結果を含む外力情報６２を送信する。
【００５４】
一方、マスターアーム側の第１制御装置３０では、通信部３５において、第２制御装置４０からの外力情報６２を受信したか否かを判断する（ステップＳ３１）。第１制御装置３０は、外力情報６２を受信しない場合（ステップＳ３１のＮｏ）、当該外力情報６２を受信するまで当該判断を繰り返す。
【００５５】
通信部３５において外力情報６２を受信した場合（ステップＳ３１のＹｅｓ）、処理部３２は、受信した外力情報６２に基づいて、ワーク５０の変位及び姿勢変化量を算出する（ステップＳ３２）。第１ロボットアーム１０及び第２ロボットアーム２０が運動している状態において、第２ロボットアーム２０にスレーブ側外力Ｆ２が加えられた場合、ワーク５０の位置及び姿勢が変化する。つまり、運動制御部３３の制御によって第１ロボットアーム１０からワーク５０に加えられる力と、外力情報６２によってワーク５０に加えられる力とにより、ワーク５０の位置及び姿勢が変化する。ステップＳ３２において、処理部３２は、スレーブ側外力Ｆ２によるワーク５０の位置及び姿勢の変化量、つまり、変位及び姿勢変化量を算出する。ワーク５０の変位については、処理部３２は、実施の形態１において説明した共通制御点５１を基準とした変位を算出する。処理部３２は、ワーク５０の姿勢変化量については、ＸＹＺ３次元座標系を設定し、共通制御点５１を基準点としたＸ軸回り、Ｙ軸回り、Ｚ軸回りの姿勢変化量を算出する。
【００５６】
変位及び姿勢変化量を算出した後、処理部３２は、算出結果に基づいて、マスターアームである第１ロボットアーム１０の第３軌道を算出する（ステップＳ３３）。第３軌道は、第２ロボットアーム２０との間でワーク５０を算出結果に応じて位置及び姿勢を変化させるための第１ロボットアーム１０の軌道である。処理部３２は、第３軌道を算出した後、算出結果６３を通信部３５からスレーブアーム側の第２制御装置４０に送信する（ステップＳ３４）。
【００５７】
スレーブアーム側の第２制御装置４０では、外力情報６２を送信した後、通信部４５において第１制御装置３０からの第３軌道を受信したか否かを判断する（ステップＳ４２）。第２制御装置４０は、第３軌道を受信しない場合（ステップＳ４２のＮｏ）、当該第３軌道を受信するまで当該判断を繰り返す。
【００５８】
通信部４５において第３軌道を受信した場合（ステップＳ４２のＹｅｓ）、処理部４２は、受信した第３軌道に基づいて、スレーブアームである第２ロボットアーム２０の第４軌道を算出する（ステップＳ４３）。第４軌道は、第１ロボットアーム１０との間でワーク５０を算出結果に応じて位置及び姿勢を変化させるための第２ロボットアーム２０の軌道である。
【００５９】
処理部４２において第４軌道が算出された場合、第１制御装置３０の運動制御部３３は、マスターアームである第１ロボットアーム１０を第３軌道に基づいて運動させる（ステップＳ３５）。また、第２制御装置４０の運動制御部４３は、スレーブアームである第２ロボットアーム２０を、第４軌道に基づいて運動させる（ステップＳ４４）。運動制御部３３及び４３は、ステップＳ３５及びステップＳ４４を同期させて行わせる。つまり、第１ロボットアーム１０の運動と第２ロボットアーム２０の運動とを同期させて行わせる。これにより、第１ロボットアーム１０の運動に第２ロボットアーム２０の運動が追従することになる。この場合、第１ロボットアーム１０及び第２ロボットアーム２０の運動によって、ワーク５０の位置及び姿勢が変化する。
【００６０】
以上、実施の形態２に係るロボットアームシステム１００は、マスターアーム及びスレーブアームが設定された状態で、スレーブアームにスレーブ側外力Ｆ２が加えられる場合であっても、マスターアーム側でスレーブアームに加えられた外力Ｆを反映させた第３軌道が算出され、当該第３軌道に基づいてマスターアームの運動が制御される。これにより、マスターアームとスレーブアームとを切り替える必要が無いため、複数のロボットアームに対して教示作業を行う場合の作業効率の低下を抑制できる。
【００６１】
本発明の技術範囲は上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更を加えることができる。実施の形態１では、第１ロボットアーム１０及び第２ロボットアーム２０の運動によってワーク５０を並進運動させ、実施の形態２では、第１ロボットアーム１０及び第２ロボットアーム２０の運動によって、ワーク５０の位置及び姿勢を変化させる場合を例に挙げて説明したが、これに限定するものではない。実施の形態１において、第１ロボットアーム１０及び第２ロボットアーム２０の運動によって、ワーク５０の位置及び姿勢を変化させてもよい。また、実施の形態２において、第１ロボットアーム１０及び第２ロボットアーム２０の運動によってワーク５０を並進運動させてもよい。
【００６２】
また、実施の形態１及び実施の形態２では、第１制御装置３０が第１ロボットアーム１０を制御し、第２制御装置４０が第２ロボットアーム２０を制御し、第１制御装置３０と第２制御装置４０との間で互いに通信可能な構成である制御装置を例に挙げて説明したが、これに限定するものではない。
【００６３】
図１１は、ロボットアームシステムの他の例を示す斜視図である。図１１に示すロボットアームシステム２００は、１つの制御装置１３０を備え、当該制御装置１３０によって第１ロボットアーム１０及び第２ロボットアーム２０の両方を制御する構成である。他の構成については、ロボットアームシステム１００と同様である。図１１に示すロボットアームシステム２００のように、１つの制御装置１３０によって複数のロボットアームを制御する構成であってもよい。
【００６４】
上記のロボットアームシステム１００，２００は、ワーク５０を把持するロボットアームが、第１ロボットアーム１０及び第２ロボットアーム２０の２つのロボットアームを備える構成を説明したが、これに限定するものではなく、３つ以上のロボットアームを備える構成であってもよい。
【００６５】
上記のロボットアームシステム１００，２００は、トルクセンサ１２ａ，１４ａ，２２ａ，２４ａによって第１ロボットアーム１０及び第２ロボットアーム２０に加えられる力を検出する構成を説明したが、これに限定するものではない。ロボットアームシステム１００，２００は、トルクセンサ１２ａ，１４ａ，２２ａ，２４ａに代えて、又はトルクセンサ１２ａ，１４ａ，２２ａ，２４ａに加えて、図１又は図１１に示すように、連結部１９，２９に力覚センサ１９ａ，２９ａを有する構成であってもよい。この場合、力覚センサ１９ａは、把持部１６に加えられた外力を検出し、検出結果を第１制御装置３０送信する。また、力覚センサ２９ａは、把持部２６に加えられた力を検出し、検出結果を第２制御装置４０送信する。この構成により、ロボットアームシステム１００，２００は、第１ロボットアーム１０及び第２ロボットアーム２０に加えられる力を検出することができる。また、ロボットアームシステム１００，２００は、トルクセンサ１２ａ，１４ａ，２２ａ，２４ａ及び力覚センサ１９ａ，２９ａに代えて、第１関節部１２，２２及び第２関節部１４，２４に設けられたモータの電流値の変化を検出することにより、第１ロボットアーム１０及び第２ロボットアーム２０に外力が加えられたことを検出する構成であってもよい。
【符号の説明】
【００６６】
Ｆ１  外力、Ｆ２  スレーブ側外力、１０  第１ロボットアーム、１１，２１  基台、１２，２２  第１関節部、１２ａ，１４ａ，２２ａ，２４ａ  トルクセンサ、１３，２３  第１腕部、１４，２４  第２関節部、１５，２５  第２腕部、１６，２６  把持部、１７，２７  第１軸部、１８，２８  第２軸部、１９，２９  連結部、１９ａ，２９ａ  力覚センサ、２０  第２ロボットアーム、３０  第１制御装置、３１，４１  設定部、３２，４２  処理部、３３，４３  運動制御部、３４，４４  記憶部、３５，４５  通信部、４０  第２制御装置、５０  ワーク、５１  共通制御点、６１  マスター設定完了情報、６２  外力情報、１００，２００  ロボットアームシステム、１３０  制御装置。
【図１】
0006671226.tif 000002
【図２】
0006671226.tif 000003
【図３】
0006671226.tif 000004
【図４】
0006671226.tif 000005
【図５】
0006671226.tif 000006
【図６】
0006671226.tif 000007
【図７】
0006671226.tif 000008
【図８】
0006671226.tif 000009
【図９】
0006671226.tif 000010
【図１０】
0006671226.tif 000011
【図１１】
0006671226.tif 000012