(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024151883
(43)【公開日】2024-10-25
(54)【発明の名称】主従ロボットシステム
(51)【国際特許分類】
B25J 3/00 20060101AFI20241018BHJP
【FI】
B25J3/00 A
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023065660
(22)【出願日】2023-04-13
(71)【出願人】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】100121821
【弁理士】
【氏名又は名称】山田 強
(74)【代理人】
【識別番号】100125575
【弁理士】
【氏名又は名称】松田 洋
(72)【発明者】
【氏名】寺下 昇吾
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707HS27
3C707HT40
3C707JS02
3C707JS03
3C707JT05
3C707KS33
3C707KX10
3C707LV13
3C707LV15
3C707LV19
3C707MS14
3C707MS29
(57)【要約】
【課題】主従ロボットシステムにおいて、主ロボットの姿勢を従ロボットの姿勢に一致させる際に、ユーザが主ロボットの動作軌道を予測しやすくする。
【解決手段】ユーザが加えた外力により姿勢が変更される主ロボット(20)と、主ロボットの姿勢に一致するように姿勢が制御される従ロボット(30)と、主ロボット及び従ロボットを制御する制御部(26,36)と、を備える主従ロボットシステム(10)であって、主ロボット及び従ロボットは、相対回転可能に連結された複数のリンク(22a~22f)と、隣り合うリンクをそれぞれ相対回転させる複数の軸(J1~J6)とを備え、制御部は、主ロボットの姿勢と従ロボットの姿勢とのずれを解消する際に、主ロボットの全ての複数の軸を複数のグループに分けてグループの単位で順番に主ロボットの軸を駆動して、主ロボットの姿勢を従ロボットの姿勢に一致させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザが加えた外力により姿勢が変更される主ロボットと、前記主ロボットの姿勢に一致するように姿勢が制御される従ロボットと、前記主ロボット及び前記従ロボットを制御する制御部と、を備える主従ロボットシステムであって、
前記主ロボット及び前記従ロボットは、相対回転可能に連結された複数のリンクと、隣り合う前記リンクをそれぞれ相対回転させる複数の軸とを備え、
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの全ての前記複数の軸を複数のグループに分けて前記グループの単位で順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる、主従ロボットシステム。
【請求項2】
前記複数のグループは、それぞれ前記主ロボットの前記軸を1つのみ含む、請求項1に記載の主従ロボットシステム。
【請求項3】
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの先端側の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる、請求項1又は2に記載の主従ロボットシステム。
【請求項4】
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの基端側の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる、請求項1又は2に記載の主従ロボットシステム。
【請求項5】
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボット及び前記従ロボットの互いに対応する前記軸の回転位置の相違が小さい方の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる、請求項1又は2に記載の主従ロボットシステム。
【請求項6】
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボット及び前記従ロボットの互いに対応する前記軸の回転位置の相違が大きい方の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる、請求項1又は2に記載の主従ロボットシステム。
【請求項7】
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記ユーザが指定した前記グループの順番で前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる、請求項1又は2に記載の主従ロボットシステム。
【請求項8】
前記制御部により指示された情報を表示する表示部を備え、
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの前記軸を駆動する前に、駆動する前記軸を前記表示部により表示させる、請求項1又は2に記載の主従ロボットシステム。
【請求項9】
前記制御部により指示された情報を表示する表示部を備え、
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの駆動中の前記軸を前記表示部により表示させる、請求項1又は2に記載の主従ロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが加えた外力により姿勢が変更される主ロボットと、主ロボットの姿勢に一致するように姿勢が制御される従ロボットと、を備える主従ロボットシステムに関する。
【背景技術】
【0002】
作業者が操作した操作ロボットの姿勢に一致するように対象ロボットの姿勢を制御する直接制御モードと、検出部で検出した外力の大きさが予め設定されている閾値を超えた場合に、検出した外力の方向に予め設定されている動作単位で対象ロボットの姿勢を制御する詳細制御モードとを切り替えるロボットの教示システムがある。例えば、特許文献1に記載の教示システムでは、詳細制御モードにおいて、操作ロボットの姿勢と対象ロボットの姿勢とが乖離している場合に、操作ロボットの姿勢を対象ロボットの姿勢に一致させている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1に記載の教示システムでは、操作ロボット(主ロボット)の姿勢を対象ロボット(従ロボット)の姿勢に一致させる際に、操作ロボットの姿勢が急激に変化するおそれがあり、作業者は操作ロボットの動作軌道を予測しにくい。
【0005】
本発明は、こうした課題を解決するためになされたものであり、その主たる目的は、主従ロボットシステムにおいて、主ロボットの姿勢を従ロボットの姿勢に一致させる際に、ユーザが主ロボットの動作軌道を予測しやすくすることにある。
【課題を解決するための手段】
【0006】
上記課題を解決するための第1の手段は、
ユーザが加えた外力により姿勢が変更される主ロボットと、前記主ロボットの姿勢に一致するように姿勢が制御される従ロボットと、前記主ロボット及び前記従ロボットを制御する制御部と、を備える主従ロボットシステムであって、
前記主ロボット及び前記従ロボットは、相対回転可能に連結された複数のリンクと、隣り合う前記リンクをそれぞれ相対回転させる複数の軸とを備え、
前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの全ての前記複数の軸を複数のグループに分けて前記グループの単位で順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。
【0007】
上記構成によれば、主従ロボットシステムは、ユーザが加えた外力により姿勢が変更される主ロボットと、前記主ロボットの姿勢に一致するように姿勢が制御される従ロボットと、前記主ロボット及び前記従ロボットを制御する制御部と、を備えている。このため、ユーザが主ロボットに外力を加えて主ロボットの姿勢を変更する操作を行うことにより、従ロボットの姿勢を主ロボットの姿勢に一致させるように制御すること(以下、「主従ロボット操作」という)ができる。なお、制御部は、主ロボットに設けられて主ロボットを制御する第1制御部と、従ロボットに設けられて従ロボットを制御する第2制御部とを含んでいてもよい。また、制御部は、主ロボット又は従ロボットに設けられて、主ロボット及び従ロボットを制御する1つの制御部であってもよい。
【0008】
ここで、主従ロボット操作を開始する前に、主ロボットの姿勢と従ロボットの姿勢とがずれていることがある。また、主ロボットの姿勢に従ロボットの姿勢を一致させない状態で従ロボットの姿勢を微調整(変更)すると、主ロボットの姿勢と従ロボットの姿勢とにずれが生じる。また、主ロボットの型式(形状)と従ロボットの型式(形状)とが異なる場合に、主従ロボット操作を実行する間に、主ロボットの姿勢と従ロボットの姿勢とにずれが生じることがある。これらの場合に、主ロボットの姿勢を従ロボットの姿勢に一致させる動作(以下、「姿勢一致動作」という)を単純に実行すると、主ロボットの姿勢が急激に変化し、ユーザは主ロボットの動作軌道を予測しにくい。前記主ロボット及び前記従ロボットが、相対回転可能に連結された複数のリンクと、隣り合う前記リンクをそれぞれ相対回転させる複数の軸とを備えており、例えば主ロボットの全軸を同時に駆動して主ロボットの全軸の回転位置を従ロボットの全軸の回転位置に一致させると、ユーザは主ロボットの動作軌道を予測しにくい。
【0009】
この点、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの全ての前記複数の軸を複数のグループに分けて前記グループの単位で順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。このため、姿勢一致動作を行う際に、主ロボットの全軸を同時に駆動するのではなく、主ロボットの全軸を複数のグループに分けて1グループずつ順番に駆動することができる。したがって、姿勢一致動作において、主ロボットの姿勢を段階的に変化させることができ、ユーザは主ロボットの動作軌道を予測しやすくなる。
【0010】
第2の手段では、前記複数のグループは、それぞれ前記主ロボットの前記軸を1つのみ含む。こうした構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの複数の軸を1軸ずつ順番に駆動することができる。したがって、主ロボットの姿勢をさらに段階的に変化させることができ、ユーザは主ロボットの動作軌道をさらに予測しやすくなる。
【0011】
第3の手段では、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの先端側の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。こうした構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの姿勢の変化が小さい軸から大きい軸へ順番に駆動することができる。したがって、ユーザは主ロボットの姿勢の変化が順番に大きくなると予測することができ、ユーザの安全を図りやすくなる。
【0012】
第4の手段では、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの基端側の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。こうした構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの姿勢の変化が大きい軸から小さい軸へ順番に駆動することができる。したがって、ユーザは、主ロボットの姿勢の変化が順番に小さくなると予測することができ、姿勢一致動作が終了した状態の主ロボットの姿勢を予測しやすくなる。また、ユーザは、姿勢一致動作が始まったことを、早い段階で気付きやすくなり、主ロボットから離れる等の対策を早めに取りやすくなる。
【0013】
第5の手段では、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボット及び前記従ロボットの互いに対応する前記軸の回転位置の相違が小さい方の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。こうした構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの軸の回転量が小さい軸から大きい軸へ順番に駆動することができる。したがって、ユーザは主ロボットの軸の回転量が順番に大きくなると予測することができ、ユーザの安全を図りやすくなる。
【0014】
第6の手段では、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボット及び前記従ロボットの互いに対応する前記軸の回転位置の相違が大きい方の前記軸を含む前記グループから順番に前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。こうした構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの軸の回転量が大きい軸から小さい軸へ順番に駆動することができる。したがって、ユーザは、主ロボットの軸の回転量が順番に小さくなると予測することができ、姿勢一致動作が終了した状態の主ロボットの姿勢を予測しやすくなる。また、ユーザは、姿勢一致動作が始まったことを、早い段階で気付きやすくなり、主ロボットから離れる等の対策を早めに取りやすくなる。
【0015】
第7の手段では、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記ユーザが指定した前記グループの順番で前記主ロボットの前記軸を駆動して、前記主ロボットの姿勢を前記従ロボットの姿勢に一致させる。こうした構成によれば、ユーザは主ロボットの軸を駆動する順番を自由に指定することができ、例えば姿勢一致動作において障害物をよける動作等をさせやすくなる。また、ユーザは、主ロボットの軸を駆動する順番を自分で指定しているため、主ロボットの動作軌道を予測しやすくなる。
【0016】
第8の手段では、前記制御部により指示された情報を表示する表示部を備え、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの前記軸を駆動する前に、駆動する前記軸を前記表示部により表示させる。
【0017】
上記構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの駆動される軸が予め表示部により表示されるため、ユーザは主ロボットの動作軌道を予測しやすくなる。
【0018】
第9の手段では、前記制御部により指示された情報を表示する表示部を備え、前記制御部は、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、前記主ロボットの駆動中の前記軸を前記表示部により表示させる。
【0019】
上記構成によれば、前記主ロボットの姿勢と前記従ロボットの姿勢とのずれを解消する際に、主ロボットの駆動中の軸が表示部により表示されるため、軸の回転量が少ない場合であってもユーザは駆動中の軸を認識しやすくなる。
【図面の簡単な説明】
【0020】
【
図2】主従ロボット操作が行われた場合の各軸の角度を示す図。
【
図3】第1実施形態の姿勢一致動作の手順を示すフローチャート。
【
図4】姿勢一致動作の変更例の手順を示すフローチャート。
【
図5】第2実施形態の姿勢一致動作の手順を示すフローチャート。
【
図6】姿勢一致動作の変更例の手順を示すフローチャート。
【
図7】第3実施形態の姿勢一致動作の手順を示すフローチャート。
【
図8】第4実施形態の姿勢一致動作の手順を示すフローチャート。
【発明を実施するための形態】
【0021】
(第1実施形態)
以下、マスタロボットと、スレーブロボットと、制御部とを備える主従ロボットシステムに具現化した第1実施形態について、図面を参照しつつ説明する。
【0022】
図1に示すように、主従ロボットシステム10は、マスタロボット20とスレーブロボット30とを備えている。
【0023】
マスタロボット20(主ロボット)は、例えば6軸の垂直多関節型ロボットであり、基台(ベース)21とアーム22とを備えている。アーム22の隣り合うリンクは、回転軸(関節)を介して相対回転可能に連結されている。各軸(各関節)は、各軸に対応する各モータにより減速機等を介して駆動される。
【0024】
詳しくは、マスタロボット20は、基台21(リンク)上に、設置面に垂直な回転軸である第1軸(J1)を介してショルダ22aが水平方向に回転可能に連結されている。ショルダ22a(リンク)には、設置面に平行な回転軸である第2軸(J2)を介して上方に延びる下アーム22bの下端部が垂直方向に回転可能に連結されている。下アーム22b(リンク)の先端部には、設置面に平行な回転軸である第3軸(J3)を介して第1上アーム22cが垂直方向に回転可能に連結されている。
【0025】
第1上アーム22c(リンク)の先端部には、第3軸と直交する回転軸である第4軸(J4)を介して第2上アーム22dが捻り回転可能に連結されている。第2上アーム22d(リンク)の先端部には、設置面に平行な回転軸である第5軸(J5)を介して手首22eが垂直方向に回転可能に連結されている。手首22e(リンク)には、第5軸と直交する回転軸である第6軸(J6)を介してフランジ22fが捻り回転可能に連結されている。
【0026】
アーム22の先端、詳しくはフランジ22f(リンク)には、ハンド23が取り付けられている。ハンド23は、例えば一対の爪を備えており、一対の爪の間隔を拡大及び縮小する開閉動作を行う。
【0027】
基台21の内部には、後述する微調整操作の履歴を記憶する記憶部25、及びマスタロボット20及びハンド23の動作を制御する制御部26が設けられている。制御部26は、CPU、ROM、RAM、駆動回路、及び入出力インターフェース等を備えるコンピュータとして構成されている。
【0028】
マスタロボット20の各軸J1~J6(各関節)には、各軸J1~J6(各モータ)の回転角度(回転位置)を検出するエンコーダ(図示略)がそれぞれ設けられている。すなわち、エンコーダは、アーム22の制御点の位置及び方向(以下、「アーム22の姿勢」という)を検出する。制御点は、アーム22の先端(フランジ22f)の中央と、一対の爪の中間(TCP:Tool Center Position)とから選択可能である。
【0029】
マスタロボット20の各軸J1~J6には、ブレーキ(図示略)が設けられている。ブレーキは、各軸J1~J6を制動して、各軸J1~J6の回転角度が変更されることを規制する。
【0030】
制御部26は、アーム22に作用する外力に従って、アーム22の姿勢を制御する。詳しくは、制御部26は、アーム22に作用する重力及び摩擦力のみを補償するトルクを各軸に対応するモータにより発生させ、アーム22を外力に従って動作させる柔軟制御を行う。そして、制御部26は、アーム22に作用する外力がなくなった時のアーム22の姿勢を保持する。すなわち、マスタロボット20は、ユーザが加えた外力によりアーム22の姿勢を変更して保持可能である。本実施形態では、ユーザは、ダイレクトティーチによりアーム22を直接掴んで移動させることができ、そしてアーム22の姿勢を保持することができる(ダイレクトティーチモード)。制御部26は、マスタロボット20の各軸J1~J6のエンコーダの検出結果を、スレーブロボット30の制御部36へ送信する。
【0031】
マスタロボット20には、ケーブル29によってスレーブロボット30が接続されている。スレーブロボット30(従ロボット)は、例えばマスタロボット20と同型(例えば6軸の垂直多関節型)でマスタロボット20よりも大型のロボットである。スレーブロボット30は、安全柵G内に設置されている。スレーブロボット30は、マスタロボット20よりも大型であること、マスタロボット20と形状が若干異なることを除いて、マスタロボット20と同様の構成を備えている。スレーブロボット30は、基台(ベース)31とアーム32とを備えている。アーム32の先端には、ハンド(図示略)が取り付けられる。スレーブロボット30の各軸(対応軸)は、マスタロボット20の各軸J1~J6に対応している。
【0032】
基台31の内部には、スレーブロボット30及びハンドの動作を制御する制御部36が設けられている。制御部36は、CPU、ROM、RAM、駆動回路、及び入出力インターフェース等を備えるコンピュータとして構成されている。制御部26と制御部36とはケーブル29を介して通信可能であり、互いに情報を送受信する。
【0033】
スレーブロボット30の各軸(各関節)には、各軸の回転角度を検出するエンコーダ(図示略)がそれぞれ設けられている。すなわち、エンコーダは、アーム32の制御点の位置及び方向(以下、「アーム32の姿勢」という)を検出する。制御点は、アーム32の先端の中央と、例えば一対の爪の中間(TCP:Tool Center Position)とから選択可能である。
【0034】
スレーブロボット30の各軸には、ブレーキ(図示略)が設けられている。ブレーキは、各軸を制動して、各軸の角度が変更されることを規制する。
【0035】
制御部36は、スレーブロボット30の各軸(各関節)の角度を、マスタロボット20の対応する各軸(各関節)の角度に一致させるように、スレーブロボット30の各軸に対応するモータを制御する。すなわち、制御部36は、ユーザがマスタロボット20に外力を加えてマスタロボット20の姿勢を変更する操作を行うことにより、スレーブロボット30の姿勢をマスタロボット20の姿勢に一致させるように制御する(以下、「主従ロボット操作」という)。
【0036】
詳しくは、制御部36は、マスタロボット20の各軸のエンコーダ、及びスレーブロボット30の各軸のエンコーダの検出結果に基づいて、スレーブロボット30の各軸に対応するモータをフィードバック制御する。すなわち、スレーブロボット30の各軸は、マスタロボット20の各軸に倣った動きを追従して行う。制御部36は、スレーブロボット30の各軸のエンコーダの検出結果を、マスタロボット20の制御部26へ送信する。なお、マスタロボット20の制御部26及びスレーブロボット30の制御部36により、制御部が構成されている。
【0037】
図2に示すように、主従ロボット操作が行われることにより、マスタロボット20の各軸の角度θ1~θ6に、スレーブロボット30の各軸の角度θ1~θ6が一致させられる。
【0038】
図1に戻り、マスタロボット20には、操作器40が接続されている。操作器40は、ティーチングペンダント、タブレット端末、スマートフォン、ノートPC、PC等である。例えば操作器40は、ユーザによるタッチ操作を受け付けるとともに制御部26により指示された情報を表示するタッチパネルにより構成された表示部41を備えている。ユーザは、操作器40を操作することにより、制御部26,36によりマスタロボット20及びスレーブロボット30を制御させる。なお、操作器40は、キーボード(操作キー)等を備え、ユーザによるキー操作を受け付けてもよい。
【0039】
操作器40は、ユーザによる操作により主従ロボット操作の開始が指示された場合に、制御部26,36により主従ロボット操作を開始させる。このとき、制御部26は、主従ロボット操作を開始する前に、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる動作(以下、「姿勢一致動作」という)を実行する。
【0040】
また、操作器40は、スレーブロボット30のアーム32を最少単位又は微小単位で動かすインチング動作をユーザが実行可能にする。ユーザは、操作器40を操作して、アーム32の姿勢を変更する単位を、例えば0.1~1.0[mm]に設定可能である。ユーザは、操作器40を操作することにより、制御部26,36を介してアーム32の姿勢を設定した単位でインチング動作させる(以下、「微調整操作」という)。このとき、制御部26は、微調整操作の履歴を記憶部25に記憶させる。なお、操作器40、記憶部25、制御部26、及び制御部36により、微調整部が構成されている。すなわち、微調整部は、マスタロボット20の姿勢にスレーブロボット30の姿勢を一致させない状態でユーザがスレーブロボット30の姿勢を微調整する微調整操作を可能にするとともに、微調整操作の履歴を記憶する。制御部26は、微調整操作中に、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれ量が所定ずれ量を超えた場合も、姿勢一致動作を実行する。
【0041】
制御部26は、姿勢一致動作を実行する前に、操作器40の表示部41により姿勢一致動作の操作画像を表示させる。操作画像には、姿勢一致動作の開始をユーザが許可する操作を受け付ける画像が含まれている。制御部26は、姿勢一致動作の開始を許可するユーザの操作を表示部41により受け付けたことを条件として、姿勢一致動作を開始する。姿勢一致動作の開始を許可するユーザの操作は、例えば「動作許可ボタン」と「OKボタン」とを同時に押し続ける操作である。
【0042】
ここで、姿勢一致動作において、マスタロボット20の各軸J1~J6の角度をスレーブロボット30の対応する各軸の角度に単純に一致させると、マスタロボット20の各軸J1~J6の角度が急激に変化し、ユーザはマスタロボット20の動作軌道を予測しにくい。例えば、マスタロボット20の全軸J1~J6を同時に駆動してマスタロボット20の全軸J1~J6の回転位置をスレーブロボット30の対応する全軸の回転位置にそれぞれ一致させると、ユーザはマスタロボット20の動作軌道を予測しにくい。
【0043】
この点、制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の全ての軸J1~J6を複数のグループに分けてグループの単位で順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。複数のグループは、それぞれマスタロボット20の軸を1つのみ含んでいてもよいし、複数含んでいてもよい。マスタロボット20の軸を駆動するグループの順番は、マスタロボット20のアーム22の先端側(J16側)の軸を含むグループから順番、マスタロボット20及びスレーブロボット30の互いに対応する軸の回転位置の相違が小さい方の軸を含むグループから順番等を採用することができる。
【0044】
図3は、姿勢一致動作の手順を示すフローチャートである。この一連の処理は、姿勢一致動作の開始を許可するユーザの操作を表示部41により受け付けたことを条件として、制御部26により実行される。ここでは、複数のグループは、それぞれマスタロボット20の軸を1つのみ含んでいる。すなわち、制御部26は、姿勢一致動作において、マスタロボット20の軸J1~J6を軸の単位で(1軸ずつ)順番に駆動する。
【0045】
まず、n=6とする(S10)。マスタロボット20及びスレーブロボット30のn軸同士の回転位置が相違するか否か判定する(S11)。例えば、n=6の場合、マスタロボット20の6軸の回転位置とスレーブロボット30の6軸の回転位置との差の絶対値が、正の第1閾値よりも大きいか否か判定する。第1閾値は、回転位置が相違するとみなすことができる正の回転角度であり、例えば1[°]である。なお、マスタロボット20のn軸の回転位置とスレーブロボット30のn軸の回転位置との比に基づいて、n軸同士の回転位置が相違するか否か判定することもできる。この判定において、マスタロボット20及びスレーブロボット30のn軸同士の回転位置が相違しないと判定した場合(S11:NO)、S15の処理へ進む。
【0046】
一方、S11の判定において、マスタロボット20及びスレーブロボット30のn軸同士の回転位置が相違すると判定した場合(S11:YES)、マスタロボット20のn軸の動作を操作器40の表示部41により表示させる(S12)。例えば、マスタロボット20の動作を示すシミュレーション画像を操作器40の表示部41により表示させ、マスタロボット20のn軸の回転位置をスレーブロボット30のn軸の回転位置に一致させる動作の動画を表示する。なお、マスタロボット20のシミュレーション画像を操作器40の表示部41により表示させ、n軸を色表示したり点滅表示させたりすることで、マスタロボット20のn軸が動作(駆動)することを表示してもよい。続いて、マスタロボット20のn軸を駆動する(S13)。詳しくは、マスタロボット20のn軸の回転位置をスレーブロボット30のn軸の回転位置に一致させる(近付ける)方向へ、マスタロボット20のn軸を回転させる。要するに、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸を駆動する前に、駆動する軸を操作器40の表示部41により表示させる。
【0047】
続いて、マスタロボット20及びスレーブロボット30のn軸同士の回転位置が一致しているか否か判定する(S14)。例えば、n=6の場合、マスタロボット20の6軸の回転位置とスレーブロボット30の6軸の回転位置との差の絶対値が、正の第2閾値よりも小さいか否か判定する。第2閾値は、回転位置が一致したとみなすことができる正の回転角度であり、上記第1閾値よりも小さく、例えば0.1[°]である。なお、マスタロボット20のn軸の回転位置とスレーブロボット30のn軸の回転位置との比に基づいて、n軸同士の回転位置が一致したか否か判定することもできる。この判定において、マスタロボット20及びスレーブロボット30のn軸同士の回転位置が一致していないと判定した場合(S14:NO)、S14の判定を繰り返す。
【0048】
一方、マスタロボット20及びスレーブロボット30のn軸同士の回転位置が一致していると判定した場合(S14:YES)、nから1を引いた値を新しいnの値とする(S15)。すなわち、nを1減少(デクリメント)させる。
【0049】
続いて、nが1よりも小さいか否か判定する(S16)。すなわち、マスタロボット20の6軸(先端の軸)から1軸(基端の軸)まで、マスタロボット20の軸の回転位置をスレーブロボット30の対応する軸の回転位置に一致させる動作が終了したか否か判定する。この判定において、nが1よりも小さくないと判定した場合(S16:NO)、S11の処理から再度実行する。要するに、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の先端側の軸(先端側の軸を含むグループ)から順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。一方、nが1よりも小さいと判定した場合(S16:YES)、この一連の処理を終了する(END)。
【0050】
以上詳述した本実施形態は、以下の利点を有する。
【0051】
・制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の全ての軸J1~J6を複数のグループに分けてグループの単位で順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。このため、姿勢一致動作を行う際に、マスタロボット20の全軸J1~J6を同時に駆動するのではなく、マスタロボット20の全軸J1~J6を複数のグループに分けて1グループずつ順番に駆動することができる。したがって、姿勢一致動作において、マスタロボット20の姿勢を段階的に変化させることができ、ユーザはマスタロボット20の動作軌道を予測しやすくなる。
【0052】
・複数のグループは、それぞれマスタロボット20の軸を1つのみ含む。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の複数の軸を1軸ずつ順番に駆動することができる。したがって、マスタロボット20の姿勢をさらに段階的に変化させることができ、ユーザはマスタロボット20の動作軌道をさらに予測しやすくなる。
【0053】
・制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の先端側の軸を含むグループから順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の姿勢の変化が小さい軸J6から姿勢の変化が大きい軸J1へ順番に駆動することができる。したがって、ユーザはマスタロボット20の姿勢の変化が順番に大きくなると予測することができ、ユーザの安全を図りやすくなる。
【0054】
・マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の駆動される軸が予め操作器40の表示部41により表示されるため、ユーザはマスタロボット20の動作軌道を予測しやすくなる。
【0055】
なお、第1実施形態を、以下のように変更して実施することもできる。第1実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0056】
図4に示すように、制御部26は、
図3の処理を以下のように変更して実施することもできる。S10の処理に代えてn=1とし(S20)、S15の処理に代えてn←n+1とし(S25)、S16の処理に代えてnが6よりも大きいか否か判定する(S26)。S21~S24の処理はS11~S14の処理と同様である。すなわち、制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の基端側の軸J1を含むグループから順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させることもできる。
【0057】
上記構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の姿勢の変化が大きい軸J1から姿勢の変化が小さい軸J6へ順番に駆動することができる。したがって、ユーザは、マスタロボット20の姿勢の変化が順番に小さくなると予測することができ、姿勢一致動作が終了した状態のマスタロボット20の姿勢を予測しやすくなる。また、ユーザは、姿勢一致動作が始まったことを、早い段階で気付きやすくなり、マスタロボット20から離れる等の対策を早めに取りやすくなる。
【0058】
さらに、複数のグループは、それぞれマスタロボット20の軸を1つのみ含む。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の複数の軸を1軸ずつ順番に駆動することができる。したがって、マスタロボット20の姿勢をさらに段階的に変化させることができ、ユーザはマスタロボット20の動作軌道をさらに予測しやすくなる。
【0059】
(第2実施形態)
以下、主従ロボットシステム10の第2実施形態について説明する。本実施形態では、マスタロボット20の全ての軸J1~J6を分けた複数のグループは、それぞれマスタロボット20の軸を2つ(複数)含んでいる。1グループは軸J1,J2(基端から連続する2つの軸)を含み、2グループは軸J3,J4(1グループの軸に連続する2つの軸)を含み、3グループは軸J5,J6(2グルーブの軸に連続する2つの軸)を含んでいる。スレーブロボット30の全ての軸も、マスタロボット20のグループに対応したグループに分けられている。その他の構成については、第1実施形態と同様である。なお、第1実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0060】
図5は、姿勢一致動作の手順を示すフローチャートである。この一連の処理は、姿勢一致動作の開始を許可するユーザの操作を表示部41により受け付けたことを条件として、制御部26により実行される。ここでは、制御部26は、姿勢一致動作において、マスタロボット20の軸J1~J6をグループの単位で(2軸ずつ)順番に駆動する。
【0061】
まず、k=3とする(S30)。マスタロボット20及びスレーブロボット30のkグループの対応軸同士の回転位置が相違するか否か判定する(S31)。例えば、k=3の場合、マスタロボット20の6軸の回転位置とスレーブロボット30の6軸の回転位置との差の絶対値が、正の第1閾値よりも大きいか否か判定する。さらに、マスタロボット20の5軸の回転位置とスレーブロボット30の5軸の回転位置との差の絶対値が、正の第1閾値よりも大きいか否か判定する。この判定において、マスタロボット20及びスレーブロボット30のkグループの対応軸同士の回転位置がいずれも相違しないと判定した場合(S31:NO)、S35の処理へ進む。
【0062】
一方、S31の判定において、マスタロボット20及びスレーブロボット30のkグループの対応軸同士の回転位置のいずれかが相違すると判定した場合(S31:YES)、マスタロボット20のkグループに含まれる全軸の動作を操作器40の表示部41により表示させる(S32)。続いて、マスタロボット20のkグループに含まれる全軸を駆動する(S33)。詳しくは、マスタロボット20のkグループに含まれる各軸の回転位置をスレーブロボット30のkグループに含まれる対応軸の回転位置に一致させる(近付ける)方向へ、マスタロボット20のkグループに含まれる各軸を回転させる。要するに、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸を駆動する前に、駆動する軸を操作器40の表示部41により表示させる。
【0063】
続いて、マスタロボット20及びスレーブロボット30のkグループの対応軸同士の回転位置が一致しているか否か判定する(S34)。例えば、k=3の場合、マスタロボット20の6軸の回転位置とスレーブロボット30の6軸の回転位置との差の絶対値が、正の第2閾値よりも小さいか否か判定する。さらに、マスタロボット20の5軸の回転位置とスレーブロボット30の5軸の回転位置との差の絶対値が、上記第1閾値よりも小さい正の第2閾値よりも小さいか否か判定する。この判定において、マスタロボット20及びスレーブロボット30のkグループのいずれかの対応軸同士の回転位置が一致していないと判定した場合(S34:NO)、S34の判定を繰り返す。
【0064】
一方、マスタロボット20及びスレーブロボット30のkグループのいずれの対応軸同士の回転位置も一致していると判定した場合(S34:YES)、kから1を引いた値を新しいkの値とする(S35)。すなわち、kを1減少(デクリメント)させる。
【0065】
続いて、kが1よりも小さいか否か判定する(S36)。すなわち、マスタロボット20の3グループ(先端の2つの軸J6,J5を含むグループ)から1グループ(基端の2つの軸J1,J2を含むグループ)まで、マスタロボット20の軸の回転位置をスレーブロボット30の対応する軸の回転位置に一致させる動作が終了したか否か判定する。この判定において、kが1よりも小さくないと判定した場合(S36:NO)、S31の処理から再度実行する。要するに、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の先端側の軸J6,J5を含むグループから順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。一方、kが1よりも小さいと判定した場合(S36:YES)、この一連の処理を終了する(END)。
【0066】
以上詳述した本実施形態は、以下の利点を有する。ここでは、第1実施形態と異なる利点のみを述べ、第1実施形態と同様の利点は省略する。
【0067】
・制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、2つ(複数)の軸を含むグループの単位で順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。このため、姿勢一致動作において、マスタロボット20の姿勢を段階的に変化させつつ、マスタロボット20の軸を1軸ずつ順番に駆動する場合と比較してマスタロボット20の姿勢をスレーブロボット30の姿勢に速く一致させることができる。
【0068】
・制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の先端側の軸J6,J5を含む3グループから順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の姿勢の変化が小さい3グループから姿勢の変化が大きい1グループへ順番に駆動することができる。したがって、ユーザはマスタロボット20の姿勢の変化が順番に大きくなると予測することができ、ユーザの安全を図りやすくなる。
【0069】
なお、第2実施形態を、以下のように変更して実施することもできる。第2実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0070】
図6に示すように、制御部26は、
図5の処理を以下のように変更して実施することもできる。S30の処理に代えてk=1とし(S40)、S35の処理に代えてk←k+1とし(S45)、S36の処理に代えてkが3よりも大きいか否か判定する(S46)。S41~S44の処理はS31~S34の処理と同様である。すなわち、制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の基端側の軸J1,J2を含む1グループから順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させることもできる。
【0071】
上記構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の姿勢の変化が大きい1グループから姿勢の変化が小さい3グループへ順番に駆動することができる。したがって、ユーザは、マスタロボット20の姿勢の変化が順番に小さくなると予測することができ、姿勢一致動作が終了した状態のマスタロボット20の姿勢を予測しやすくなる。また、ユーザは、姿勢一致動作が始まったことを、早い段階で気付きやすくなり、マスタロボット20から離れる等の対策を早めに取りやすくなる。
【0072】
また、マスタロボット20の全ての軸J1~J6を分けた複数のグループは、それぞれマスタロボット20の軸を3つ(複数)含んでいてもよい。1グループは軸J1,J2,J3(基端から連続する3つの軸)を含み、2グループは軸J4,J5,J6(1グループの軸に連続する3つの軸)を含んでいてもよい。スレーブロボット30の全ての軸も、マスタロボット20のグループに対応したグループに分けられている。そして、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の姿勢の変化が小さい2グループから姿勢の変化が大きい1グループへ順番に駆動することができる。また、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の姿勢の変化が大きい1グループから姿勢の変化が小さい2グループへ順番に駆動することもできる。これらの構成によれば、姿勢一致動作において、マスタロボット20の姿勢を段階的に変化させつつ、マスタロボット20の軸を2軸ずつ順番に駆動する場合と比較してマスタロボット20の姿勢をスレーブロボット30の姿勢に速く一致させることができる。
【0073】
(第3実施形態)
以下、主従ロボットシステム10の第3実施形態について説明する。本実施形態では、制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20及びスレーブロボット30の互いに対応する軸の回転位置の相違が小さい方の軸を含むグループから順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。その他の構成については、第1実施形態と同様である。なお、第1実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0074】
図7は、姿勢一致動作の手順を示すフローチャートである。この一連の処理は、姿勢一致動作の開始を許可するユーザの操作を表示部41により受け付けたことを条件として、制御部26により実行される。ここでは、複数のグループは、それぞれマスタロボット20の軸を1つのみ含んでいる。すなわち、制御部26は、姿勢一致動作において、マスタロボット20の軸J1~J6を軸の単位で(1軸ずつ)順番に駆動する。
【0075】
まず、n=1とする(S50)。マスタロボット20において駆動する軸(駆動軸)の順番を決定する(S51)。詳しくは、マスタロボット20及びスレーブロボット30の対応軸同士の回転位置の相違が小さい方の軸から、早い順番の駆動軸に決定する。例えば、6軸同士の回転位置の差の絶対値が最も小さければ6軸を1番の駆動軸とし、3軸同士の回転位置の差の絶対値が2番目に小さければ3軸を2番の駆動軸とする。なお、マスタロボット20の軸の回転位置とスレーブロボット30の対応軸の回転位置との比に基づいて、対応軸同士の回転位置の相違の大小を判定することもできる。
【0076】
続いて、マスタロボット20の駆動軸の動作を操作器40の表示部41により表示させる(S52)。マスタロボット20の駆動軸を駆動する(S53)。詳しくは、マスタロボット20の駆動軸の回転位置をスレーブロボット30の対応軸の回転位置に一致させる(近付ける)方向へ、マスタロボット20の駆動軸を回転させる。要するに、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸を駆動する前に、駆動する軸を操作器40の表示部41により表示させる。
【0077】
続いて、マスタロボット20の駆動軸及びスレーブロボット30の対応軸の回転位置が一致しているか否か判定する(S54)。この判定において、マスタロボット20の駆動軸及びスレーブロボット30の対応軸の回転位置が一致していないと判定した場合(S54:NO)、S54の判定を繰り返す。
【0078】
一方、マスタロボット20の駆動軸及びスレーブロボット30の対応軸の回転位置が一致していると判定した場合(S54:YES)、nに1を加えた値を新しいnの値とする(S55)。すなわち、nを1増加(インクリメント)させる。
【0079】
続いて、nが6よりも大きいか否か判定する(S56)。すなわち、マスタロボット20の6つの軸について、マスタロボット20の駆動軸の回転位置をスレーブロボット30の対応軸の回転位置に一致させる動作が終了したか否か判定する。この判定において、nが6よりも大きくないと判定した場合(S56:NO)、S51の処理から再度実行する。一方、nが6よりも大きいと判定した場合(S56:YES)、この一連の処理を終了する(END)。
【0080】
上記構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸の回転量が小さい軸から大きい軸へ順番に駆動することができる。したがって、ユーザはマスタロボット20の軸の回転量が順番に大きくなると予測することができ、ユーザの安全を図りやすくなる。
【0081】
なお、S51の処理において、マスタロボット20及びスレーブロボット30の対応軸同士の回転位置の相違が大きい方の軸から、早い順番の駆動軸に決定してもよい。例えば、6軸同士の回転位置の差の絶対値が最も大きければ6軸を1番の駆動軸とし、3軸同士の回転位置の差の絶対値が2番目に大きければ3軸を2番の駆動軸とする。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸の回転量が大きい軸から小さい軸へ順番に駆動することができる。したがって、ユーザは、マスタロボット20の軸の回転量が順番に小さくなると予測することができ、姿勢一致動作が終了した状態のマスタロボット20の姿勢を予測しやすくなる。また、ユーザは、姿勢一致動作が始まったことを、早い段階で気付きやすくなり、マスタロボット20から離れる等の対策を早めに取りやすくなる。
【0082】
(第4実施形態)
以下、主従ロボットシステム10の第4実施形態について説明する。本実施形態では、マスタロボット20の全ての軸J1~J6を分けた複数のグループは、それぞれマスタロボット20の軸を2つ(複数)含んでいる。1グループは軸J1,J2(基端から連続する2つの軸)を含み、2グループは軸J3,J4(1グループの軸に連続する2つの軸)を含み、3グループは軸J5,J6(2グルーブの軸に連続する2つの軸)を含んでいる。スレーブロボット30の全ての軸も、マスタロボット20のグループに対応したグループに分けられている。その他の構成については、第3実施形態と同様である。なお、第3実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0083】
図8は、姿勢一致動作の手順を示すフローチャートである。この一連の処理は、姿勢一致動作の開始を許可するユーザの操作を表示部41により受け付けたことを条件として、制御部26により実行される。ここでは、制御部26は、姿勢一致動作において、マスタロボット20の軸J1~J6をグループの単位で(2軸ずつ)順番に駆動する。
【0084】
まず、k=1とする(S60)。マスタロボット20において駆動するグループ(駆動グループ)の順番を決定する(S61)。詳しくは、マスタロボット20及びスレーブロボット30の対応軸同士の回転位置の相違が小さい方の軸を含むグループから、早い順番の駆動グループに決定する。例えば、6軸同士の回転位置の差の絶対値と5軸同士の回転位置の差の絶対値との和が最も小さければ3グループを1番の駆動グループとし、3軸同士の回転位置の差の絶対値と4軸同士の回転位置の差の絶対値との和が2番目に小さければ2グルーブを2番の駆動グループとする。なお、マスタロボット20の軸の回転位置とスレーブロボット30の対応軸の回転位置との比に基づいて、対応軸同士の回転位置の相違の大小を判定することもできる。
【0085】
続いて、マスタロボット20の駆動グループに含まれる全軸の動作を操作器40の表示部41により表示させる(S62)。マスタロボット20の駆動グループに含まれる全軸を駆動する(S63)。詳しくは、マスタロボット20の駆動グループの各軸の回転位置をスレーブロボット30の対応軸の回転位置に一致させる(近付ける)方向へ、マスタロボット20の駆動グループの各軸を回転させる。要するに、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸を駆動する前に、駆動する軸を操作器40の表示部41により表示させる。
【0086】
続いて、マスタロボット20の駆動グループの軸及びスレーブロボット30の対応軸の回転位置が一致しているか否か判定する(S64)。この判定において、マスタロボット20の駆動グループの軸及びスレーブロボット30の対応軸の回転位置が一致していないと判定した場合(S64:NO)、S64の判定を繰り返す。
【0087】
一方、マスタロボット20の駆動グループの軸及びスレーブロボット30の対応軸の回転位置が一致していると判定した場合(S64:YES)、kに1を加えた値を新しいkの値とする(S65)。すなわち、kを1増加(インクリメント)させる。
【0088】
続いて、kが3よりも大きいか否か判定する(S66)。すなわち、マスタロボット20の6つの軸を分けた3つのグループについて、マスタロボット20の駆動グループの軸の回転位置をスレーブロボット30の対応軸の回転位置に一致させる動作が終了したか否か判定する。この判定において、kが3よりも大きくないと判定した場合(S66:NO)、S61の処理から再度実行する。一方、kが3よりも大きいと判定した場合(S66:YES)、この一連の処理を終了する(END)。
【0089】
以上詳述した本実施形態は、以下の利点を有する。ここでは、第3実施形態と異なる利点のみを述べ、第3実施形態と同様の利点は省略する。
【0090】
・制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、2つ(複数)の軸を含むグループの単位で順番にマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる。このため、姿勢一致動作において、マスタロボット20の姿勢を段階的に変化させつつ、マスタロボット20の軸を1軸ずつ順番に駆動する場合と比較してマスタロボット20の姿勢をスレーブロボット30の姿勢に速く一致させることができる。
【0091】
・マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸の回転量が小さいグループから大きいグループへ順番に駆動することができる。したがって、ユーザはマスタロボット20の軸の回転量が順番に大きくなると予測することができ、ユーザの安全を図りやすくなる。
【0092】
なお、S61の処理において、マスタロボット20及びスレーブロボット30の対応軸同士の回転位置の相違が大きい方の軸を含むグループから、早い順番の駆動グループに決定してもよい。例えば、6軸同士の回転位置の差の絶対値と5軸同士の回転位置の差の絶対値との和が最も大きければ3グループを1番の駆動グループとし、3軸同士の回転位置の差の絶対値と4軸同士の回転位置の差の絶対値との和が2番目に大きければ2グルーブを2番の駆動グループとする。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸の回転量が大きいグループから小さいグループへ順番に駆動することができる。したがって、ユーザは、マスタロボット20の軸の回転量が順番に小さくなると予測することができ、姿勢一致動作が終了した状態のマスタロボット20の姿勢を予測しやすくなる。また、ユーザは、姿勢一致動作が始まったことを、早い段階で気付きやすくなり、マスタロボット20から離れる等の対策を早めに取りやすくなる。
【0093】
また、マスタロボット20の全ての軸J1~J6を分けた複数のグループは、それぞれマスタロボット20の軸を3つ(複数)含んでいてもよい。1グループは軸J1,J2,J3(基端から連続する3つの軸)を含み、2グループは軸J4,J5,J6(1グループの軸に連続する3つの軸)を含んでいてもよい。スレーブロボット30の全ての軸も、マスタロボット20のグループに対応したグループに分けられている。そして、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸の回転量が小さいグループから大きいグループへ順番に駆動することができる。また、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の軸の回転量が大きいグループから小さいグループへ順番に駆動することができる。これらの構成によれば、姿勢一致動作において、マスタロボット20の姿勢を段階的に変化させつつ、マスタロボット20の軸を2軸ずつ順番に駆動する場合と比較してマスタロボット20の姿勢をスレーブロボット30の姿勢に速く一致させることができる。
【0094】
また、S61の処理において、マスタロボット20及びスレーブロボット30の対応軸同士の回転位置の相違が小さい方の軸から順に、早い順番の駆動グループに含ませてもよい。例えば、6軸同士の回転位置の差の絶対値が最も小さく、3軸同士の回転位置の差の絶対値2番目に小さければ、6軸及び3軸を1番の駆動グループとする。こうした構成によれば、対応軸同士の回転位置の相違に基づいて駆動グループを作成し、作成した駆動グループを順番に駆動することができる。なお、S61の処理において、マスタロボット20及びスレーブロボット30の対応軸同士の回転位置の相違が大きい方の軸から順に、早い順番の駆動グループに含ませてもよい。
【0095】
(第5実施形態)
以下、主従ロボットシステム10の第5実施形態について説明する。制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、ユーザが指定したグループの順番でマスタロボット20の軸を駆動して、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させてもよい。各グループに含める軸は、ユーザが任意に設定することができる。ユーザは、操作器40を操作することにより、各グループに含める軸、及び姿勢一致動作において駆動するグループの順番を指定することができる。例えば、マスタロボット20の全ての軸J1~J6を分けた複数のグループは、それぞれマスタロボット20の軸を1つのみ含んでいる。
【0096】
上記構成によれば、ユーザはマスタロボット20の軸を駆動する順番を自由に指定することができ、例えばマスタロボット20の近辺に障害物が存在する場合に、姿勢一致動作においてマスタロボット20に障害物をよける動作等をさせやすくなる。また、ユーザは、マスタロボット20の軸を駆動する順番を自分で指定しているため、マスタロボット20の動作軌道を予測しやすくなる。
【0097】
なお、マスタロボット20の全ての軸J1~J6を分けた複数のグループは、それぞれマスタロボット20の軸を2つ(複数)含んでいてもよいし、マスタロボット20の軸を3つ(複数)含んでいてもよい。
【0098】
(他の変更例)
第1~第5実施形態及びその変更例を、以下のように変更して実施することもできる。第1~第5実施形態及びその変更例と同一の部分については、同一の符号を付すことにより説明を省略する。
【0099】
・制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、駆動する軸と共に、あるいは駆動する軸に代えて、マスタロボット20の駆動中の軸を操作器40の表示部41により表示させてもよい。こうした構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20の駆動中の軸が表示部41により表示されるため、軸の回転量が少ない場合であってもユーザは駆動中の軸を認識しやすくなる。なお、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、駆動する軸及び駆動中の軸のいずれも表示部41により表示させないようにすることもできる。
【0100】
・マスタロボット20は、ユーザがマスタロボット20に外力を加えているか否か判定する判定部を備えていてもよい。判定部は、例えば各軸に対応するモータの電流値を測定し、電流値に比例するトルクを算出することにより、外力の大きさと方向と(外力の有無)を判定する。そして、制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、ユーザがマスタロボット20に外力を加えていないと判定部により判定されたことを条件として、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる、といった構成を採用することもできる。なお、モータにトルクセンサを設け、トルクセンサの検出結果からトルクを算出することもできる。
【0101】
上記構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、ユーザがマスタロボット20に外力を加えていない場合に、マスタロボット20の姿勢がスレーブロボット30の姿勢に一致させられる。一方、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、ユーザがマスタロボット20に外力を加えている場合には、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる制御が実行されない。したがって、ユーザがマスタロボット20に外力を加えている場合に、マスタロボット20の姿勢がユーザの意図と異なる姿勢に変えられることを抑制することができ、ユーザが違和感を覚えることを抑制することができる。
【0102】
・マスタロボット20は、ユーザがマスタロボット20に触れているか否か判定する判定部を備えていてもよい。判定部は、例えばアーム22に設けられた静電容量センサ等の検出結果に基づいて、ユーザがマスタロボット20に触れているか否か判定する。そして、制御部26は、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、マスタロボット20に触れていないと判定部により判定されたことを条件として、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる、といった構成を採用することもできる。
【0103】
上記構成によれば、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、ユーザがマスタロボット20に触れていない場合に、マスタロボット20の姿勢がスレーブロボット30の姿勢に一致させられる。一方、マスタロボット20の姿勢とスレーブロボット30の姿勢とのずれを解消する際に、ユーザがマスタロボット20に触れている場合には、マスタロボット20の姿勢をスレーブロボット30の姿勢に一致させる制御が実行されない。したがって、ユーザがマスタロボット20に触れている場合に、マスタロボット20の姿勢がユーザの意図と異なる姿勢に変えられることを抑制することができ、ユーザが違和感を覚えることを抑制することができる。
【0104】
・インチングモードは、ユーザが操作器40により微調整操作を入力する構成に限らず、特開2019-55458号公報に記載された詳細制御モードの構成により実現することもできる。
【0105】
・制御部は、マスタロボット20又はスレーブロボット30に設けられて、マスタロボット20及びスレーブロボット30を制御する1つの制御部であってもよい。
【0106】
・マスタロボット20の型式(形状)とスレーブロボット30の型式(形状)とが異なる場合に、主従ロボット操作を実行する間に、マスタロボット20の姿勢とスレーブロボット30の姿勢とにずれが生じることがある。この場合に、制御部26は姿勢一致動作を実行してもよい。
【0107】
・マスタロボット20とスレーブロボット30とは、同形状で大きさのみ異なるロボットであってもよい。また、マスタロボット20とスレーブロボット30とは、形状及び大きさが同一のロボットであってもよい。
【0108】
なお、上記の各実施形態及びその変更例を、組み合わせ可能な範囲で組み合わせて実施することもできる。
【符号の説明】
【0109】
10…主従ロボットシステム、20…マスタロボット(主ロボット)、22…アーム、22a…ショルダ(リンク)、22b…下アーム(リンク)、22c…第1上アーム(リンク)、22d…第2上アーム(リンク)、22e…手首(リンク)、22f…フランジ(リンク)、26…制御部、30…スレーブロボット(従ロボット)、32…アーム、36…制御部、J1…軸、J2…軸、J3…軸、J4…軸、J5…軸、J6…軸。