IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セイコーエプソン株式会社の特許一覧

<>
  • 特開-教示方法および教示装置 図1
  • 特開-教示方法および教示装置 図2
  • 特開-教示方法および教示装置 図3
  • 特開-教示方法および教示装置 図4
  • 特開-教示方法および教示装置 図5
  • 特開-教示方法および教示装置 図6
  • 特開-教示方法および教示装置 図7
  • 特開-教示方法および教示装置 図8
  • 特開-教示方法および教示装置 図9
  • 特開-教示方法および教示装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024005429
(43)【公開日】2024-01-17
(54)【発明の名称】教示方法および教示装置
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240110BHJP
   G05B 19/42 20060101ALI20240110BHJP
【FI】
B25J9/22 A
G05B19/42 D
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022105606
(22)【出願日】2022-06-30
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】萩尾 賢昭
(72)【発明者】
【氏名】小林 稔
【テーマコード(参考)】
3C269
3C707
【Fターム(参考)】
3C269AB33
3C269BB09
3C269CC09
3C269KK08
3C269MN07
3C269MN14
3C269MN16
3C269MN21
3C269MN23
3C269MN42
3C269QB02
3C269QC01
3C269QC03
3C269QC10
3C269QD02
3C269QD10
3C269QE07
3C269QE08
3C269QE10
3C269QE12
3C269QE26
3C269SA01
3C269SA04
3C269SA19
3C269SA21
3C707BS12
3C707CX01
3C707DS01
3C707HS27
3C707JU03
3C707KS17
3C707KS20
3C707KS21
3C707KS22
3C707KS24
3C707KX10
3C707LS15
3C707LS20
3C707LU01
3C707LV07
3C707MT02
3C707MT04
(57)【要約】
【課題】迅速かつ正確に教示を行うことができる教示方法および教示装置を提供すること。
【解決手段】ロボットアームを有するロボットに対して教示を行う教示方法であって、前記ロボットアームの教示動作中に、前記ロボットアームに設定される制御点の移動速度が所定の第1速度以下、または、前記制御点の角速度が所定の第1角速度以下である第1状態となった場合の前記制御点の位置または姿勢を記憶する第1工程と、記憶した前記制御点である特定制御点の数がN(Nは、2以上の任意の整数)以上となった場合、前記特定制御点を包含する領域を設定する第2工程と、前記領域内に教示候補点を設定する第3工程と、を有することを特徴とする教示方法。
【選択図】図7
【特許請求の範囲】
【請求項1】
ロボットアームを有するロボットに対して教示を行う教示方法であって、
前記ロボットアームの教示動作中に、前記ロボットアームに設定される制御点の移動速度が所定の第1速度以下、または、前記制御点の角速度が所定の第1角速度以下である第1状態となった場合の前記制御点の位置または姿勢を記憶する第1工程と、
記憶した前記制御点である特定制御点の数がN(Nは、2以上の任意の整数)以上となった場合、前記特定制御点を包含する領域を設定する第2工程と、
前記領域内に教示候補点を設定する第3工程と、を有することを特徴とする教示方法。
【請求項2】
前記第3工程で設定された前記教示候補点を表示する第4工程を有する請求項1に記載の教示方法。
【請求項3】
前記第4工程では、前記教示候補点を前記領域とともに表示する請求項2に記載の教示方法。
【請求項4】
前記第2工程では、前記特定制御点を包含する最小の球を前記領域として設定し、
前記第3工程では、前記球の表面に前記教示候補点を設定する請求項1または2に記載の教示方法。
【請求項5】
前記第2工程では、各前記特定制御点を頂点とする図形を前記領域として設定し、
前記第3工程では、前記教示候補点を前記図形の重心の位置に設定する請求項1または2に記載の教示方法。
【請求項6】
前記第3工程では、前記領域内において、前記特定制御点が偏在する部分に、前記教示候補点を優先的に設定する請求項1または2に記載の教示方法。
【請求項7】
前記第1工程では前記第1状態が継続する時間が所定の時間以上となる場合の前記制御点の位置または姿勢を記憶する請求項1または2に記載の教示方法。
【請求項8】
ロボットアームを有するロボットに対し、教示を行う教示装置であって、
前記ロボットアームの教示動作中に、前記ロボットアームに設定される制御点の移動速度が所定の第1速度以下、または、前記制御点の角速度が所定の第1角速度以下である第1状態となった場合の前記制御点の位置または姿勢を記憶する記憶部と、
前記記憶部に記憶された前記制御点である特定制御点の数がN(Nは、2以上の任意の整数)以上となった場合、前記特定制御点を包含する領域を設定する領域設定部と、
前記領域内に教示候補点を設定する教示候補点設定部と、を備えることを特徴とする教示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教示方法および教示装置に関する。
【背景技術】
【0002】
近年、工場では人件費の高騰や人材不足により、ロボットアームを有するロボットを用いて製造、加工、組み立て等の作業が行われるようになり、人手で行われてきた作業の自動化が加速している。
【0003】
ロボットに所定の決められた作業内容の作業を行わせるに際しては、例えば特許文献1に示すような教示装置を用いて、事前にロボットに作業内容を教示する教示方法が知られている。特許文献1に記載されている教示方法では、作業者がロボットアームを作業時に動作させたい位置および姿勢とし、教示装置に設けられた教示ボタンを押すことにより、そのときのロボットアームの位置および姿勢を記憶する。これにより、作業内容に対応した動作プログラムを生成する、すなわち、教示が行われる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006-142480号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、熟練度が低い作業者が教示を行う場合、教示中にロボットアームを所望の位置および姿勢に移動させることは困難であるため、迅速かつ正確な教示を行うことが難しい。
【課題を解決するための手段】
【0006】
本発明の適用例にかかる教示方法は、ロボットアームを有するロボットに対して教示を行う教示方法であって、
前記ロボットアームの教示動作中に、前記ロボットアームに設定される制御点の移動速度が所定の第1速度以下、または、前記制御点の角速度が所定の第1角速度以下である第1状態となった場合の前記制御点の位置または姿勢を記憶する第1工程と、
記憶した前記制御点である特定制御点の数がN(Nは、2以上の任意の整数)以上となった場合、前記特定制御点を包含する領域を設定する第2工程と、
前記領域内に教示候補点を設定する第3工程と、を有する。
【0007】
本発明の適用例にかかる教示装置は、ロボットアームを有するロボットに対し、教示を行う教示装置であって、
前記ロボットアームの教示動作中に、前記ロボットアームに設定される制御点の移動速度が所定の第1速度以下、または、前記制御点の角速度が所定の第1角速度以下である第1状態となった場合の前記制御点の位置または姿勢を記憶する記憶部と、
前記記憶部に記憶された前記制御点である特定制御点の数がN(Nは、2以上の任意の整数)以上となった場合、前記特定制御点を包含する領域を設定する領域設定部と、
前記領域内に教示候補点を設定する教示候補点設定部と、を備える。
【図面の簡単な説明】
【0008】
図1図1は、本発明の教示方法を実行する教示装置の第1実施形態を備えるロボットシステムの全体構成を示す図である。
図2図2は、図1に示すロボットシステムのブロック図である。
図3図3は、図2に示す教示装置のブロック図である。
図4図4は、図1に示すロボットシステムの教示動作中の状態を示す斜視図である。
図5図5は、本発明の教示方法において記憶した特定制御点を示す模式図である。
図6図6は、本発明の教示方法において設定した領域を示す模式図である。
図7図7は、本発明の教示方法において表示するシミュレーション画像の一例を示す図である。
図8図8は、本発明の教示方法の一例を示すフローチャートである。
図9図9は、本発明の教示装置の第2実施形態が設定する領域および教示候補点を示す模式図である。
図10図10は、本発明の教示装置の第3実施形態が実行する教示方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の教示方法および教示装置を添付図面に示す好適な実施形態に基づいて詳細に説明する。
【0010】
<第1実施形態>
図1は、本発明の教示方法を実行する教示装置の第1実施形態を備えるロボットシステムの全体構成を示す図である。図2は、図1に示すロボットシステムのブロック図である。図3は、図2に示す教示装置のブロック図である。図4は、図1に示すロボットシステムの教示動作中の状態を示す斜視図である。図5は、本発明の教示方法において記憶した特定制御点を示す模式図である。図6は、本発明の教示方法において設定した領域を示す模式図である。図7は、本発明の教示方法において表示するシミュレーション画像の一例を示す図である。図8は、本発明の教示方法の一例を示すフローチャートである。
【0011】
なお、以下では、説明の便宜上、ロボットアームについては、図1中の基台11側を「基端」、その反対側、すなわち、エンドエフェクター20側を「先端」とも言う。
【0012】
図1に示すように、ロボットシステム100は、ロボット1と、ロボット1の各部の作動を制御する制御装置3と、本発明の教示装置4と、を備える。
【0013】
まず、ロボット1について説明する。
図1に示すロボット1は、本実施形態では単腕の6軸垂直多関節ロボットであり、基台11と、ロボットアーム10と、を有する。また、ロボットアーム10の先端部にエンドエフェクター20を装着することができる。なお、エンドエフェクター20は、ロボット1の構成要件であってもよく、ロボット1とは別部材、すなわち、ロボット1の構成要件でなくてもよい。
【0014】
なお、ロボット1は、図示の構成に限定されず、例えば、双腕型の多関節ロボットであってもよい。また、ロボット1は、水平多関節ロボットであってもよい。
【0015】
基台11は、ロボットアーム10をその基端側において、駆動可能に支持する支持体であり、例えば工場内の床に固定されている。ロボット1は、基台11が中継ケーブルを介して制御装置3と電気的に接続されている。なお、ロボット1と制御装置3との接続は、図1に示す構成のように有線による接続に限定されず、例えば、無線による接続であってもよい。また、インターネット等のネットワークを介して接続されていてもよい。
【0016】
本実施形態では、ロボットアーム10は、第1アーム12と、第2アーム13と、第3アーム14と、第4アーム15と、第5アーム16と、第6アーム17とを有し、これらのアームが基台11側からこの順に連結されている。なお、ロボットアーム10が有するアームの数は、6つに限定されず、例えば、1つ、2つ、3つ、4つ、5つまたは7つ以上であってもよい。また、各アームの全長等の大きさは、それぞれ、特に限定されず、適宜設定可能である。
【0017】
基台11と第1アーム12とは、関節171を介して連結されている。そして、第1アーム12は、基台11に対し、鉛直軸方向に延びる第1回動軸を回動中心とし、その第1回動軸回りに回動可能となっている。このように、第1回動軸は、基台11が固定される床の床面の法線と一致しており、ロボットアーム10の全体が第1回動軸の軸回りに正方向・逆方向のいずれへも回転することができる。
【0018】
第1アーム12と第2アーム13とは、関節172を介して連結されている。そして、第2アーム13は、第1アーム12に対し、水平方向に延びる第2回動軸を回動中心として回動可能となっている。
【0019】
第2アーム13と第3アーム14とは、関節173を介して連結されている。そして、第3アーム14は、第2アーム13に対し、水平方向に延びる第3回動軸を回動中心として回動可能となっている。第3回動軸は、第2回動軸と平行である。
【0020】
第3アーム14と第4アーム15とは、関節174を介して連結されている。そして、第4アーム15は、第3アーム14に対し、第3アーム14の中心軸方向と平行な第4回動軸を回動中心として回動可能となっている。第4回動軸は、第3回動軸と直交している。
【0021】
第4アーム15と第5アーム16とは、関節175を介して連結されている。そして、第5アーム16は、第4アーム15に対して第5回動軸を回動中心として回動可能となっている。第5回動軸は、第4回動軸と直交している。
【0022】
第5アーム16と第6アーム17とは、関節176を介して連結されている。そして、第6アーム17は、第5アーム16に対して第6回動軸を回動中心として回動可能となっている。第6回動軸は、第5回動軸と直交している。
【0023】
第6アーム17は、ロボットアーム10の中で最も先端側に位置するロボット先端部となっている。この第6アーム17は、ロボットアーム10の駆動により、エンドエフェクター20ごと変位することができる。
【0024】
図1に示すエンドエフェクター20は、ワーク200または工具を把持することができる把持部を有する構成である。第6アーム17にエンドエフェクター20を装着した状態では、エンドエフェクター20の先端部は、制御点TCPとなる。
【0025】
また、第6アーム17の内部には、例えば水晶振動子を備えた構造の速度センサー18および角速度センサー19が設置されている。速度センサー18は、制御点TCPの移動速度V、すなわちXYZ座標における絶対速度=(Vx+Vy+Vz)の3乗根を検出することができる(図4参照)。角速度センサー19は、制御点TCPの角速度ωを検出することができる。制御点TCPの角速度ωとは、制御点TCPに設定された座標系を規定するX軸回りの角速度ωx、Y軸回りの角速度ωyおよびZ軸回りの角速度ωzの3乗根で求められる(図4参照)。
【0026】
速度センサー18および角速度センサー19で検出された情報は、制御装置3へ送られる。すなわち、速度センサー18および角速度センサー19からの各信号は、通信部33を介して制御部31へ送られ、所定の信号処理がなされる。また、速度センサー18および角速度センサー19からの各信号は、制御装置3を経由して教示装置4の制御部41へも送られ、所定の信号処理がなされる。これにより、教示装置4は、制御点TCPの移動速度Vおよび角速度ωを検出、算出することができる。
【0027】
ロボット1は、駆動部としてのモーターM1、モーターM2、モーターM3、モーターM4、モーターM5およびモーターM6と、エンコーダーE1、エンコーダーE2、エンコーダーE3、エンコーダーE4、エンコーダーE5およびエンコーダーE6とを備える。モーターM1は、関節171に内蔵され、基台11に対し第1アーム12を前記第1回動軸回りに回転させる。モーターM2は、関節172に内蔵され、第1アーム12と第2アーム13とを前記第2回動軸回りに相対的に回転させる。モーターM3は、関節173に内蔵され、第2アーム13と第3アーム14とを前記第3回動軸回りに相対的に回転させる。モーターM4は、関節174に内蔵され、第3アーム14と第4アーム15とを前記第4回動軸回りに相対的に回転させる。モーターM5は、関節175に内蔵され、第4アーム15と第5アーム16とを前記第5回動軸回りに相対的に回転させる。モーターM6は、関節176に内蔵され、第5アーム16と第6アーム17とを前記第6回動軸回りに相対的に回転させる。
【0028】
また、エンコーダーE1は、関節171に内蔵され、モーターM1の位置を検出する。エンコーダーE2は、関節172に内蔵され、モーターM2の位置を検出する。エンコーダーE3は、関節173に内蔵され、モーターM3の位置を検出する。エンコーダーE4は、関節174に内蔵され、モーターM4の位置を検出する。エンコーダーE5は、第5アーム16に内蔵され、モーターM5の位置を検出する。エンコーダーE6は、第6アーム17に内蔵され、モーターM6の位置を検出する。なお、ここで言う「位置を検出」とは、モーターの回転角すなわち正逆を含む回転量および角速度を検出することを言い、当該検出された情報を「位置情報」と言う。
【0029】
図2に示すように、モータードライバーD1~モータードライバーD6は、それぞれ、対応するモーターM1~モーターM6に接続され、これら各モーターの駆動を制御する。モータードライバーD1~モータードライバーD6は、それぞれ、関節171、関節172、関節173、関節174、第5アーム16および第6アーム17に内蔵されている。
【0030】
エンコーダーE1~エンコーダーE6、モーターM1~モーターM6およびモータードライバーD1~モータードライバーD6は、それぞれ、制御装置3と電気的に接続されている。エンコーダーE1~エンコーダーE6で検出されたモーターM1~モーターM6の位置情報、すなわち、回転量は、制御装置3に電気信号として送信される。そして、この位置情報に基づいて、制御装置3は、図2に示すモータードライバーD1~モータードライバーD6に制御信号を出力し、モーターM1~モーターM6を駆動させる。すなわち、ロボットアーム10を制御するということは、モーターM1~モーターM6の駆動を制御して、ロボットアーム10に属する第1アーム12~第6アーム17の作動を制御することである。
【0031】
ロボットアーム10の先端部には、エンドエフェクター20を着脱可能に装着することができる。本実施形態では、エンドエフェクター20は、互いに接近離間可能な一対の爪部を有し、各爪部によりワーク200または工具(図示せず)を把持、解除するハンドで構成される。このエンドエフェクター20に装着された力検出器は、両爪部でワーク200を把持した際の把持力の反力の大きさや向きを検出することができる。
【0032】
なお、エンドエフェクター20としては、図示の構成に限定されず、例えば吸着部を有し、該吸着部の吸着によりワーク200または工具を把持する構成のものであってもよい。また、エンドエフェクター20としては、例えば、研磨機、研削機、切削機、スプレーガン、レーザー光照射器、ドライバー、レンチ等の工具であってもよい。
【0033】
次に、制御装置3および教示装置4について説明する。
図1に示すように、制御装置3は、本実施形態では、ロボット1と離れた位置に設置されている。ただし、この構成に限定されず、制御装置3は、基台11に内蔵されていてもよい。また、制御装置3は、ロボット1の駆動を制御する機能を有し、前述したロボット1の各部と電気的に接続されている。制御装置3は、制御部31と、記憶部32と、通信部33と、を有する。これらの各部は、例えばバスを介して相互に通信可能に接続されている。
【0034】
制御部31は、例えば、CPU(Central Processing Unit)で構成され、記憶部32に記憶されている動作プログラム等の各種プログラムを読み出し、実行する。制御部31で生成された信号は、通信部33を介してロボット1の各部に送信され、ロボット1の各部からの信号は、通信部33を介して制御部31で受信される。制御部31で受信された信号は、所定の処理が施され、記憶部に32に記憶され、あるいはロボットアーム10の動作の制御や教示作業に利用される。このような制御部31により、ロボットアーム10が所定の作業を所定の条件で実行することができる。
【0035】
記憶部32は、制御部31で実行される各種プログラム等を保存する。記憶部32としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等を有する構成のものが挙げられる。
【0036】
通信部33は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて他の機器との間で信号の送受信を行う。この場合、図示しないサーバーを介して通信を行ってもよく、また、インターネット等のネットワークを介して通信を行ってもよい。
【0037】
教示装置4は、本発明の教示方法を実行するための装置である。教示装置4は、作業(作業動作)の開始前にロボットアーム10の作業動作プログラムを作成する。すなわち、教示装置4は、教示を行う装置である。教示の種類としては、直接教示、間接教示が挙げられる。
【0038】
直接教示は、作業時に行わせたい動作にあわせて、ユーザーまたは作業者(以下単に「ユーザー」と言う。)が直接、ロボットアーム10に力を加えて移動させつつ、ロボットアーム10の位置および姿勢を記憶して作業動作プログラムを作成することを言う。
【0039】
間接教示は、作業時に行わせたい動作にあわせて、ユーザーが教示装置4を用いてロボットアーム10またはシミュレーション上で仮想ロボットアームを移動させつつ、ロボットアーム10または仮想ロボットアームの位置および姿勢を記憶して作業動作プログラムを作成することを言う。
【0040】
本発明は、直接教示、間接教示のいずれにも適用することができるが、以下では、直接教示を行う場合を例に挙げて説明する。
【0041】
図1に示すように、教示装置4は、表示部であるディスプレイ40と、入力操作部44と、を有し、本実施形態では、ノート型パソコンで構成される。
【0042】
入力操作部44は、キーボードおよび図示しないマウスで構成され、ユーザーがこれらを適宜操作することによって、各種情報の入力操作が行われる。後述する教示ボタンの押下は、例えば、キーボード上の任意のキー、例えばエンターキーを押すことにより実行され、あるいはディスプレイ40上の適正な位置にカーソルまたはポインタを合わせた状態で、マウスをクリック操作することにより実行される。なお、教示ボタンは、入力操作部44とは別の箇所に設置されていてもよい。
【0043】
ディスプレイ40は、例えば、液晶、有機EL等により構成され、各種表示画面をカラーまたはモノクロで表示することができる。なお、教示装置4は、ノート型パソコンに限らず、デスクトップ型パソコン、タブレット型端末でもよい。
【0044】
図3に示すように、教示装置4は、制御部41と、表示制御部43と、記憶部45と、通信部46と、を有する。
制御部41は、例えば、CPU(Central Processing Unit)等の少なくとも1つのプロセッサーで構成され、記憶部45に記憶されている教示プログラム等の各種プログラムを読み出し、実行する。制御部41は、後述するように、領域設定部42Aおよび教示候補点設定部42Bを兼ねており、本発明の教示方法を実行する部分である。制御部41が行う制御については、後に詳述する。
【0045】
表示制御部43は、ディスプレイ40の作動を制御する機能を有する。表示制御部43は、CPUやGPU等の少なくとも1つのプロセッサーで構成され、記憶部45に記憶されているプログラムを読み出し、実行する。これにより、ディスプレイ40に表示される表示情報を指定することができる。この表示情報としては、例えば、図7に示すシミュレーション画像Ds等が挙げられる。
【0046】
記憶部45としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等を有する構成のものが挙げられる。また、記憶部45には、本発明の教示方法を実行するためのプログラムが記憶されている。また、記憶部45には、本発明の教示方法を実行中、後述する特定制御点TCPxの位置および姿勢等が記憶される。
【0047】
通信部46は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて制御装置3との間で信号の送受信を行う。この場合、図示しないサーバーを介して通信を行ってもよく、また、インターネット等のネットワークを介して通信を行ってもよい。通信部46は、記憶部45に記憶された動作プログラムに関する情報等を制御装置3に送信する。また、通信部46は、記憶部32に記憶された情報を受信し、記憶部45に当該情報を記憶することもできる。
【0048】
次に、教示中のロボットアーム10の動作(教示動作)の一例について、図4を用いて説明する。なお、図4では、制御点TCPの移動経路を矢印Rで示している。
【0049】
まず、ユーザーは、ロボットアーム10の所定部位を把持するなどして、制御点TCPを開始位置P1に位置するようロボットアーム10の位置および姿勢を変化させる。次いで、ユーザーが、制御点TCPが開始位置P1に位置したと判断した場合、図示しない教示ボタンを押下し、そのときのロボットアーム10の位置および姿勢を記憶する。次いで、制御点TCPを目的位置P2に位置するようロボットアーム10の位置および姿勢を変化させる。次いで、ユーザーが、制御点TCPが目的位置P2に位置したと判断した場合、図示しない教示ボタンを押下し、そのときのロボットアーム10の位置および姿勢を記憶する。このようにして、教示装置4は、作業動作プログラムを生成する。
【0050】
このような教示においては、例えば、熟練度が低いユーザー、教示操作に慣れていないユーザー、作業内容、作業条件またはワーク200等の作業対象物が大幅に変更された場合にそれに伴って変更されたユーザー、教示を短時間で行うという時間的制約を課されているユーザー(以下、「熟練度が低いユーザー」で代表する)が、上記動作を行う場合がある。
【0051】
このように、熟練度が低いユーザーは、例えば、目的位置P2付近で適切な位置がわからず迷ってしまったり、適正な位置の把握に長時間を要したりすることがある。この場合、制御点TCPの軌跡は、目的位置P2付近で何度も屈曲したり折り返したりして、複雑な線となる。このような動作を行うと、教示により多くの時間がかかってしまう。本発明では、以下に述べる方法でこの問題を解決することができる。以下、詳細に説明する。
【0052】
制御部41は、教示動作中に、制御点TCPの速度および角速度を算出し、モニターする。すなわち、制御部41は、教示動作中に、速度センサー18および角速度センサー19が検出した情報に基づいて制御点TCPの移動速度Vおよび制御点TCPの角速度ωを随時算出し、モニターする。ここで、制御点TCPの移動速度Vは、先端座標系における絶対速度=(Vx+Vy+Vz)の3乗根である。制御点TCPの角速度ωは、制御点TCPに設定された座標系を規定するX軸回りの角速度ωx、Y軸回りの角速度ωyおよびZ軸回りの角速度ωzの3乗根である。
【0053】
制御部41では、算出された移動速度Vは、所定の閾値、すなわち第1速度V1と比較され、算出された角速度ωは、所定の閾値、すなわち第1角速度ω1と比較される。なお、第1速度V1および第1角速度ω1は、記憶部45に予め記憶されており、適時読み出されて前記の比較に用いられる。
【0054】
移動速度Vが所定の第1速度V1以下となったとき、または、角速度ωが所定の第1角速度ω1以下となったときの状態を第1状態という。第1速度V1および第1角速度ω1は、それぞれ、予め定められた値であり、制御点TCPの移動速度または回転速度が減速し、停止に至る状態、またはほぼ停止したとみなせる状態を想定した、低い値である。
【0055】
本実施形態では、第1状態は、V≦V1およびω≦ω1のうちのいずれかを満足した状態である。ただし、この構成に限定されず、V≦V1およびω≦ω1の双方を満足した状態を第1状態としてもよい。
【0056】
なお、本実施形態では、制御点TCPの移動速度Vおよび制御点TCPの角速度ωは、速度センサー18および角速度センサー19からの情報を用いて算出しているが、これに限られない。例えば、速度センサー18および角速度センサー19を用いず、エンコーダーE1~エンコーダーE6が検出した経時的な位置情報から、制御点TCPの移動速度Vおよび制御点TCPの角速度ωを算出することもできる。
【0057】
教示動作において制御点TCPを目的位置P2に位置させるに際し、第1状態が複数発生すると、ユーザーは、教示すべき位置の位置決めを迷っている、または、教示すべき位置がわからない状態にあるという可能性が高い。
【0058】
制御部41は、第1状態となった場合の制御点TCPの位置およびそのときのロボットアーム10の姿勢を記憶部45に記憶する。ロボットアーム10の姿勢は、そのときのエンコーダーE1~エンコーダーE6が検出した位置情報から算出することができる。以下では、制御点TCPの位置およびそのときのロボットアーム10の姿勢を記憶部45に記憶することを、単に、「制御点TCPの位置および姿勢を記憶する」と言う。また、記憶した制御点TCPを、以下では、特定制御点TCPxと言う(xは、正の整数)。例えば、1回目に記憶した制御点TCPが特定制御点TCP1であり、2回目に記憶した制御点TCPが特定制御点TCP2である。
【0059】
なお、本発明では、上記に限らず、制御点TCPの位置およびロボットアーム10の姿勢のいずれか一方のみを記憶部45等に記憶してもよい。
【0060】
図5および図6に示すように、制御部41は、特定制御点TCPxの数がN(Nは、2以上の任意の整数)以上となった場合、記憶した全ての特定制御点TCPxを包含する領域Aを設定する。Nは、予め定められた固有の値であっても、ユーザーが適宜設定可能であってもよく、図示の構成ではN=5となっている。本発明では、Nの値は、特に限定されない。Nが大きければ大きい程、より適正な領域Aを設定することができるが、領域Aが肥大化する傾向があり、また領域Aの設定に時間がかかるおそれがある。このようなことを考慮して、Nは、3以上35以下とするのが好ましく、4以上20以下とするのがより好ましい。なお、Nは、記憶部45に記憶され、適時読み出されて領域Aの設定開始の判断に利用される。
【0061】
図6に示すように、本実施形態では、領域Aは、全ての特定制御点TCPxを包含する最小の球である。球による領域Aは、その単純な形状から、領域を把握し易いという利点があり、また、領域の有効性もより高い。
【0062】
なお、領域Aは、記憶した全ての特定制御点TCPxを包含していなくてもよい。例えば、1つだけ比較的大きく離れている特定制御点TCPxを除外して、残りの特定制御点TCPxを包含する形状であってもよい。また、領域Aの形状としては、球に限定されず、例えば、楕円球、円柱、円すい、円すい台、その他の回転体、正多面体、直方体等の多面体であってもよい。また、領域Aは、3次元形状に限定されず、2次元形状であってもよい。
【0063】
このように、制御部41は、記憶部45に記憶された特定制御点TCPxの数がN(Nは、2以上の任意の整数)以上となった場合、記憶した特定制御点TCPxを包含する領域Aを設定する領域設定部42Aを有する。
【0064】
特定制御点TCPxを包含する領域Aは、ユーザーが教示点の位置決めを迷っている領域であるということができる。換言すれば、領域Aは、目的位置P2を包含するかまたは目的位置P2に極めて近い領域であるということができる。そして、領域A内のどこかに、真の目的位置P2が存在する可能性が高い。
【0065】
図6に示すように、制御部41は、領域A内に少なくとも1つの教示候補点PAを設定する。教示候補点PAは、教示の候補となる点、例えば、目的位置P2の候補となる点である。図示の構成では、領域A内の最も外側、すなわち、表面に教示候補点PAを設定している。また、本実施形態では、3つの教示候補点PAを設定している。以下、3つの教示候補点PAを、上方から下方に向かって順に教示候補点PA1、教示候補点PA2および教示候補点PA3とし、これら各教示候補点PA1、PA2およびPA3を総称して、教示候補点PAと言う。
【0066】
本発明において、設定する教示候補点PAの数は、特に限定されず、領域Aの形状や大きさ等の条件を考慮して適宜決定される。教示候補点PAの数は、多ければ多い程、目的位置P2に合致したより適正な教示候補点PAを設定することができるが、数が多すぎるとユーザーによる選択判断の妨げまたは長時間化となるおそれがある。このようなことを考慮して、球による領域Aの場合、教示候補点PAの数は、2以上20以下とするのが好ましく、3以上12以下とするのがより好ましい。
【0067】
本実施形態では、領域Aの表面のうち、特定制御点TCPxが偏在している部分に優先的に教示候補点PAを設定する。例えば、領域Aの中心から各特定制御点TCPxに向かう直線を設定し、各直線が領域Aの表面と交わる点またはその内側直近の部位に、予め定められた間隔で教示候補点PAを設定することができる。これにより、無駄がなく、有効性、妥当性が高い教示候補点PAを設定することができる。
【0068】
なお、上記構成では、領域Aの表面に教示候補点PAを設定しているが、本発明ではこれに限定されず、領域Aの中心部や、中心部と表面との間、例えば中点に教示候補点PAを設定してもよく、これらを組み合わせて設定してもよい。
【0069】
また、領域Aの表面または内部に複数の教示候補点PAを設定する場合、領域Aの表面または内部に各教示候補点PAを均等に分散して設定してもよい。
【0070】
また、上記構成では、3つの教示候補点PA1、PA2およびPA3を設定しているが、本発明ではこれに限定されず、例えば、教示候補点PAを1つ、2つ、または4つ以上設定してもよい。
【0071】
このように、制御部41は、領域A内に教示候補点PAを設定する教示候補点設定部42Bを有する。
【0072】
また、教示候補点PA1、教示候補点PA2および教示候補点PA3ごとに、ロボットアーム10の姿勢も算出する。この算出は、例えば、特定制御点TCPxにおけるロボットアーム10の姿勢に基づいてなされる。すなわち、各特定制御点TCPxと、教示候補点PA1~教示候補点PA3との位置関係と、特定制御点TCPxにおけるロボットアーム10の姿勢と、教示候補点PA1~教示候補点PA3におけるロボットアーム10の姿勢とに相関性があるものとし、各関節171~176の角度を推定することができる。
【0073】
また、特定制御点TCPxにおけるロボットアーム10の姿勢は、エンドエフェクター20の中心軸、または、第6回動軸が特定制御点TCPxを通過する領域Aの接線と垂直な方向となる向きとされる。
【0074】
特定制御点TCPxにおけるロボットアーム10の姿勢は、教示候補点PA1~教示候補点PA3の姿勢の平均、すなわち、教示候補点PA1~教示候補点PA3における各関節171~176の角度の平均の姿勢であることが好ましい。これにより、姿勢の算出を正確かつ迅速に行うことができる。なお、近い2つの教示候補点PAにおける各関節171~176の角度の平均の姿勢であってもよい。この場合、姿勢の算出をさらに、正確かつ迅速に行うことができる。
【0075】
表示制御部43は、図7に示すようなシミュレーション画像Dsをディスプレイ40に表示するようディスプレイ40の作動を制御する。シミュレーション画像Dsは、ロボットアーム10に対応する仮想ロボットアーム10Aを3次元の画像として表示したものであり、その画像に重ねて、領域Aと、教示候補点PA1、PA2、PA3と、選択ボタンB1、選択ボタンB2および選択ボタンB3とが表示される。
【0076】
選択ボタンB1は、教示候補点PA1を選択するためのボタンである。選択ボタンB2は、教示候補点PA2を選択するためのボタンである。選択ボタンB3は、教示候補点PA3を選択するためのボタンである。
【0077】
選択ボタンB1、B2またはB3の押下は、例えば、ディスプレイ40のシミュレーション画像Ds上に表示されている「登録」と記されたボタンの中から選択された所定のボタンの位置にカーソルまたはポインタを合わせ、この状態でマウスのクリック操作を行うことにより実行される。また、キーボード上の任意のキー例えばエンターキーを押すことにより実行されてもよい。
【0078】
また、仮想ロボットアーム10Aは、教示候補点PA1に制御点TCPが位置している場合の姿勢と、教示候補点PA2に制御点TCPが位置している場合の姿勢と、教示候補点PA3に制御点TCPが位置している場合の姿勢とが表示される。
【0079】
このような教示候補点PA、特に複数の教示候補点PA1~PA3を表示することにより、ユーザーは、教示動作において、教示点の位置決めを迷っているか、または、教示すべき位置がわからない状態であっても、提示された教示候補点PAを見て、選択ボタンB1~B3のいずれかを選択することにより、適正な教示点、例えば、目的位置P2を設定することができる。よって、ユーザーは、迅速な教示を行うことができる。さらに、教示候補点PAとともにロボットアーム10の姿勢を連想することができる仮想ロボットアーム10Aを表示することにより、選択ボタンB1~B3の選択をより正確に行うことができる。
【0080】
以上説明したように、教示装置4は、ロボットアーム10を有するロボット1に対し、教示を行う装置である。また、教示装置4は、ロボットアーム10の教示動作中に、ロボットアーム10に設定される制御点TCPの移動速度Vが所定の第1速度V1以下、または、制御点TCPの角速度ωが所定の第1角速度ω1以下である第1状態となった場合の制御点TCPの位置または姿勢を記憶する記憶部45と、記憶部45に記憶された制御点TCPである特定制御点TCPxの数がN(Nは、2以上の任意の整数)以上となった場合、特定制御点TCPxを包含する領域Aを設定する領域設定部42Aと、領域A内に教示候補点PAを設定する教示候補点設定部42Bと、を備える。これにより、熟練度が低いユーザーが教示を行う場合であっても、設定された教示候補点PAを選択することで容易に位置決めを行うことができ、迅速かつ正確な教示を行うことができる。
【0081】
なお、本実施形態では設定した教示候補点PAを表示部に表示する構成であったが、本発明ではこれに限定されず、表示部への表示以外の方法で、ユーザーに報知してもよい。
【0082】
例えば、教示動作中に、制御点TCPが教示候補点PAに接触または接近した場合、その旨を音声により報知する方法、ロボット1の所定箇所に設置されたランプを点灯して報知する方法などが挙げられる。
【0083】
次に、図8に示すフローチャートを用いて教示装置4を用いた本発明の教示方法の一例について説明する。以下の説明では、教示動作を開始した直後から説明する。なお、以下のステップS101~ステップS105およびステップS107は、制御部41によって実行され、ステップS106は、表示制御部43により実行される。このうち、ステップS104は、領域設定部42Aにより実行され、ステップS105は、教示候補点設定部42Bにより実行される。
【0084】
まず、ステップS101において、第1状態となったか否かを判断する。すなわち、制御点TCPの、移動速度Vが所定の第1速度V1以下となったか、または、角速度ωが所定の第1角速度ω1以下となったかを判断する。換言すれば、V≦V1およびω≦ω1のうちのいずれか一方を満足したか否かを判断する。
【0085】
ステップS101において、第1状態となったと判断した場合、ステップS102において、第1状態となったときの制御点TCPの位置および姿勢が記憶部45に記憶される。記憶された制御点TCPを特定制御点TCPxともいう。また、記憶した特定制御点TCPxの個数も併せて記憶される。本ステップS102が、教示動作中、制御点TCPの移動速度Vが所定の第1速度V1以下、または、制御点TCPの角速度ωが所定の第1角速度ω1以下の第1状態となった場合の制御点TCPを特定制御点TCPxとしてその位置または姿勢を記憶する第1工程である。
【0086】
一方、ステップS101において、第1状態ではないと判断した場合、ステップS107に移行し、教示が完了したか否かを判断する。ステップS107における判断は、例えば、図示しない教示完了ボタンが押されたか否かに基づいてなされる。
【0087】
ステップS107において、完了していないと判断された場合には、ステップS101に戻り、完了したと判断された場合は、本プログラムは終了する。
【0088】
次いで、ステップS103において、特定制御点TCPxの数が所定の数N(Nは、2以上の任意の整数)に達したか否かを判断する。ステップS103において、特定制御点TCPxの数がNに達したと判断した場合、ステップS104に移行し、テップS103において、特定制御点TCPxの数がNに達していないと判断した場合、ステップS107に移行する。
【0089】
ステップS104では、記憶したN個の各特定制御点TCPxを包含する領域Aを設定する。本実施形態では、領域Aは、特定制御点TCPxを包含する最小の球である。言い換えると、最小の球とは、記憶された特定制御点TCPxの全てまたは一部を包含し、かつ、その体積が最小となる球のことである。本ステップS104が、記憶した特定制御点TCPxの数がN(Nは、2以上の任意の整数)以上となった場合、記憶した各特定制御点TCPxを包含する領域Aを設定する第2工程である。
【0090】
次いで、ステップS105において、領域A内に教示候補点PAを所定数設定する。教示候補点を設定するとは、すなわち、教示候補点を求めることであり、後述するステップS106において表示させる教示候補点を準備することである。教示候補点PAは、教示の候補となる点、例えば、目的位置P2の候補となる点である。本実施形態では、領域Aの表面に教示候補点PAを設定する。本ステップS105が、領域A内に教示候補点PAを設定する第3工程である。
【0091】
次いで、ステップS106において、図7に示すようなシミュレーション画像Dsをディスプレイ40に表示する。シミュレーション画像Dsには、仮想ロボットアーム10Aと共に、領域Aと、教示候補点PA1、PA2、PA3と、選択ボタンB1、選択ボタンB2および選択ボタンB3とが表示される。本ステップS106が、第3工程で設定された教示候補点PAをディスプレイ40に表示する第4工程である。
【0092】
そして、ユーザーが選択ボタンB1~B3のいずれかを押すことにより、教示が完了する。
【0093】
以上説明したように、本発明の教示方法は、ロボットアーム10を有するロボット1に対して教示を行う教示方法であって、ロボットアーム10の教示動作中に、ロボットアーム10に設定される制御点TCPの移動速度が所定の第1速度以下、または、制御点TCPの角速度が所定の第1角速度以下である第1状態となった場合の制御点TCPの位置または姿勢を記憶する第1工程と、記憶した制御点TCPである特定制御点TCPxの数がN(Nは、2以上の任意の整数)以上となった場合、特定制御点TCPxを包含する領域Aを設定する第2工程と、領域A内に教示候補点PAを設定する第3工程と、を有することを特徴とする。これにより、熟練度が低いユーザーが教示を行う場合であっても、設定された教示候補点PAを選択することで容易に位置決めを行うことができ、よって迅速かつ正確な教示を行うことができる。
【0094】
また、本発明の教示方法は、第3工程で設定された教示候補点PAを表示する第4工程を有する。これにより、ユーザーは、教示候補点PAを視覚により容易に把握することができ、教示をより迅速かつ正確に行うことができる。
【0095】
また、第4工程では、教示候補点PAを領域Aとともに表示する。これにより、教示候補点PAの領域Aに対する相対的な位置を把握することができ、教示候補点PAの選択をより正確に行うことができる。その結果、より迅速かつ正確な教示を行うことができる。
【0096】
また、第2工程では、特定制御点TCPxを包含する最小の球を領域Aとして設定し、第3工程では、球の表面に教示候補点PAを設定する。領域Aを、各特定制御点TCPxを包含する最小の球とすることにより、領域Aの形状を把握し易く、より有効性の高い領域を設定することができる。教示候補点PAを球の表面に設定することにより、教示候補点PAを把握し易く、また教示候補点PAの有効性、妥当性をより高めることができる。
【0097】
また、第3工程では、領域A内において、特定制御点TCPxが偏在する部分に、教示候補点PAを優先的に設定する。これにより、教示候補点PAの有効性、妥当性をより高めることができる。
【0098】
<第2実施形態>
図9は、本発明の教示装置の第2実施形態が設定する領域および教示候補点を示す模式図である。
【0099】
以下、この図を参照しつつ本発明の教示方法および教示装置の第2実施形態について説明するが、以下では、第1実施形態との相違点を中心に説明し、同様の事項については説明を省略する。
【0100】
図9に示すように、領域Aは、特定制御点TCPxを頂点とする図形である。図示の構成では、領域Aは、4つの特定制御点TCPxを頂点とする四面体である。この場合、教示候補点PAを四面体の重心の位置に設定する。
【0101】
すなわち、第2工程では、各特定制御点TCPxを頂点とする図形を領域Aとして設定し、第3工程では、教示候補点PAを図形の重心の位置に設定する。これにより、領域Aをさらに無駄なく小さく設定することができる。また、教示候補点PAを図形の重心の位置に設定することにより、教示候補点PAの有効性、妥当性をより高めることができる。
【0102】
なお、教示候補点PAは、四面体による領域Aの表面や内部に設定してもよい。
また、特定制御点TCPxの数は、4つに限定されず、例えば、8つの特定制御点TCPxを有する場合、これらを頂点とする六面体を領域Aとすることができる。
【0103】
第2実施形態において、設定する教示候補点PAの数は、特に限定されず、2以上であってもよい。教示候補点PAの数は、多ければ多い程、目的位置P2に合致したより適正な教示候補点PAを設定することができるが、数が多すぎるとユーザーによる選択判断の妨げまたは長時間化となるおそれがある。このようなことを考慮して、教示候補点PAの数は、1以上20以下とするのが好ましく、1以上12以下とするのがより好ましい。
【0104】
<第3実施形態>
図10は、本発明の教示装置の第3実施形態が実行する教示方法の一例を示すフローチャートである。
【0105】
以下、この図を参照しつつ本発明の教示方法および教示装置の第3実施形態について説明するが、以下では、第1実施形態との相違点を中心に説明し、同様の事項については説明を省略する。
【0106】
本実施形態では、図8に示すフローチャートにおいて、ステップS101とステップS102との間にステップS101’を有する。図10に示すように、ステップS101’では、第1状態となってから所定の時間Tが経過したか否かを判断する。すなわち、第1状態が時間T以上継続したか否かを判断する。時間Tは、適宜設定可能であるが、ユーザーが迷っているとみなせる程度の時間、例えば0.4秒以上とされる。場合によっては、時間Tを、0.5秒以上、または1.0秒以上とすることもできる。
【0107】
例えば、ユーザーが、目的位置P2付近において、力を入れ過ぎて誤って制御点TCPを往復動または揺動などさせてしまった場合、制御点TCPの移動方向が反転する際に一瞬第1状態となるが、その継続時間は極めて短く、時間T未満であるため、当該制御点TCPは特定制御点TCPxとして記憶されない。これにより、意図しない特定制御点TCPxの設定が排除され、特定制御点TCPxおよびそれに基づく領域Aの有効性、妥当性を高めることができる。よって、教示候補点PAの有効性、妥当性をさらに高めることができる。
【0108】
ステップS101’において、時間Tが経過したと判断した場合、ステップS102へ移行し、その制御点TCPを特定制御点TCPxとして、位置および姿勢を記憶する。ステップS101’において、時間Tが経過せずに第1状態ではなくなったと判断した場合、ステップS107に移行する。
【0109】
このように、本実施形態では、第1工程では前記第1状態が継続する時間が所定の時間T以上となる場合の制御点TCPの位置または姿勢を記憶する。これにより、さらに特定制御点TCPxの有効性を高めることができ、その結果、教示候補点PAの有効性をさらに高めることができる。
【0110】
以上、本発明の教示方法および教示装置を図示の各実施形態について説明したが、本発明は、これに限定されるものではない。各実施形態における構成を、適宜組み合わせたり置換したりすることができる。また、教示方法には、任意の工程が付加されていてもよい。また、教示装置の各部は、同様の機能を発揮し得る任意の構造物と置換することができる。また、任意の構造体が付加されていてもよい。また、本発明は、各実施形態の特徴を組み合わせたものであってもよい。
【符号の説明】
【0111】
1…ロボット、3…制御装置、4…教示装置、10…ロボットアーム、10A…仮想ロボットアーム、11…基台、12…第1アーム、13…第2アーム、14…第3アーム、15…第4アーム、16…第5アーム、17…第6アーム、18…速度センサー、19…角速度センサー、20…エンドエフェクター、31…制御部、32…記憶部、33…通信部、40…ディスプレイ、41…制御部、42A…領域設定部、42B…教示候補点設定部、43…表示制御部、44…入力操作部、45…記憶部、46…通信部、100…ロボットシステム、171…関節、172…関節、173…関節、174…関節、175…関節、176…関節、200…ワーク、A…領域、B1…選択ボタン、B2…選択ボタン、B3…選択ボタン、D1…モータードライバー、D2…モータードライバー、D3…モータードライバー、D4…モータードライバー、D5…モータードライバー、D6…モータードライバー、Ds…シミュレーション画像、E1…エンコーダー、E2…エンコーダー、E3…エンコーダー、E4…エンコーダー、E5…エンコーダー、E6…エンコーダー、M1…モーター、M2…モーター、M3…モーター、M4…モーター、M5…モーター、M6…モーター、P1…開始位置、P2…目的位置、PA…教示候補点、PA1…教示候補点、PA2…教示候補点、PA3…教示候補点、TCP…制御点、TCPx…特定制御点、R…矢印
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10