説明

ロボット教示装置、該装置のコントローラ、およびプログラム

【課題】教示用アームを使用する従来技術のロボット教示装置においては、教示用アームの指示具を教示しようとしている作業点に移動させようとした際、教示用アームの可動範囲を越えているために指示具が所望の作業点に届かない場合、教示作業者は、該指示具が教示しようとしている作業点に届くようロボットを動作させるために、教示用アームからプログラミングペンダントに持ち替えて手動でプログラミングペンダントを操作しなければならず、面倒であった。
【解決手段】例えば、ロボットに取り付けられた教示用アームの余裕に関係した余裕度を求め、求めた余裕度が所望の閾値以下である場合に、当該余裕が小さくならないようにロボットの動作を制御するロボット教示装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本願発明の一実施形態は、ティーチングプレイバック方式の産業用ロボットにおいて、教示用アームを使用して該ロボットのエンドエフェクタの位置姿勢を教示するための装置およびプログラムに関する。
【背景技術】
【0002】
ティーチングプレイバック方式の産業用ロボットにおいてエンドエフェクタの位置姿勢を教示する手法として、現在、幾つかの手法が存在する。
プログラミングペンダントと呼ばれるボックス型の操作装置を主に使用する手法がある。この手法において、教示作業者は、プログラミングペンダント上の軸操作スイッチを押してロボットを所望なように動作させ、エンドエフェクタを作業対象物の作業位置などに移動させてエンドエフェクタの位置と姿勢とをロボットコントローラに記憶させていた。しかし、このように軸操作スイッチを押してロボットを操作するのは熟練が必要であり、またいくら操作に熟練していてもエンドエフェクタの移動速度を変更したり、正確な作業位置にエンドエフェクタを移動させるのは時間がかかってしまうという難点があった。さらに、スイッチを押し間違えてロボットを作業対象物へぶつけてしまうといった難点もあった。
【0003】
ロボットの先端を教示作業者が直接把持してその先端を作業位置に移動させることで教示を行うダイレクトティーチングと呼ばれる手法がある。しかし、この手法は、教示作業者の操作力を計測するための高価な力センサが必要となり、安定な力制御を実現するためには大きな操作力を加えなければならず、精密な位置の調整が難しいといった難点があった。
【0004】
教示作業者が指示棒を持ち、3次元距離センサ等で指示棒の先端の位置を計測することで教示を行う手法がある。しかし、この手法は、3次元距離センサの座標系からロボット座標系までの座標変換をする間にセンサの分解能による誤差、センサの設置誤差、及びロボットの設置誤差等様々な誤差が生じるために正確に位置を計測することができず、これら誤差を取り除くためには複雑なキャリブレーションが必要になるといった難点があった。
【0005】
そして、これらの難点を克服した手法として、ロボットの先端に着脱可能な教示用アームを取り付け、教示用アームの指示具によってエンドエフェクタの位置姿勢を教示する手法がある(例えば、特許文献1または2参照)。図9は、従来技術のロボット教示装置を示す図である。図9において、1はロボットであり、このロボットの先端部1bには教示用アーム4が装着されている。この手法では、教示作業者が教示用アーム4を直接把持して動かし、教示時の教示用アーム4の指示具48の位置姿勢に基づいて実際の作業時のロボット1のエンドエフェクタの位置姿勢を教示している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−276275号公報(図1、項4)
【特許文献2】特開平3−19782号公報(図1)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、教示用アームを使用する従来技術のロボット教示装置においては、教示用アームの指示具を教示しようとしている作業点に移動させようとした際、教示用アームの可動範囲を越えているために指示具が所望の作業点に届かない場合、教示作業者は、該指示具が教示しようとしている作業点に届くようロボットを動作させるために、一旦教示用アームから手を離し、プログラミングペンダントに持ち替えて手動でプログラミングペンダントを操作した後に再度教示アームを持たなければならず、面倒であった。このような持ち替えをできるだけ少なくするためには、可動範囲が広い教示用アーム、即ち、大きな教示用アームを使用すればよいのであるが、大きな教示用アームは操作性が悪く着脱も困難であるため、現実的には、教示用アームはあまり大きくすることができない。
【課題を解決するための手段】
【0008】
本願発明の一実施形態は、作業時にロボットに取り付けられるエンドエフェクタの位置姿勢を、前記ロボットに取り付けられた教示用アームを使用して教示するロボット教示装置であって、以下の特徴を有したものである。
【0009】
前記教示用アームは少なくとも1つの回転関節と少なくとも2つのリンクとを有し、前記教示用アームの回転関節の各々には2つのリンクが接続され、前記2つのリンクは当該回転関節を中心に回転することが可能であり、前記2つのリンクがなす角度は上限及び下限を有し、前記教示用アームのリンクのうちの1つのリンクは前記エンドエフェクタの位置姿勢を指示するための指示部を有し、前記指示部の位置姿勢を記憶することによって前記エンドエフェクタの位置姿勢は教示され、前記指示部を有するリンクに外力が加わることに応答して前記指示部は移動し、前記指示部が移動することに従って前記教示用アームのリンクのうちの少なくとも1つのリンクは回転する。
【0010】
また、前記ロボットは少なくとも1つの回転関節又は直動関節と少なくとも2つのリンクとを有し、前記ロボットの回転関節又は直動関節の各々には2つのリンクが接続され、前記ロボットの回転関節に接続された2つのリンクはモータによって当該回転関節を中心に回転し、前記ロボットの直動関節に接続された2つのリンクのうちの一方のリンクはモータによって伸縮し、前記ロボットのリンクの各々は外力が加わることに応答して回転も伸縮もしないようにされ、前記ロボットのリンクのうちの1つのリンクは教示用アームを取り付けるための教示用アーム取り付け部を有し、前記ロボットのリンクのうちの少なくとも1つが回転又は伸縮することに従って前記教示用アーム取り付け部は移動する。
【0011】
そして、前記装置は、
前記教示用アームの回転関節の各々に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数である回転関節の余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクのなす角度の上限又は下限の角度との差が小さいことを示す前記回転関節の余裕度を求め、前記教示用アームの回転関節のうちの少なくとも1つの回転関節に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数であるリンクの余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクが一直線となったときの当該2つのリンクのなす角度との差が小さいことを示す前記リンクの余裕度を求め、求めた前記回転関節の余裕度と前記リンクの余裕度とを乗算することによって教示用アームの余裕度を求める手段と、
前記教示用アームの余裕度が所望の閾値以下である場合に、前記指示部の現在の位置と所定時間前の位置との差に基づいて前記指示部が移動した方向を求める手段と、
前記ロボットのモータに入力される信号であって求めた前記方向に前記教示用アーム取り付け部を移動させるための前記信号を生成する手段と
を備えている。
【0012】
前記教示用アームは、少なくとも1つの直動関節を更に備えていてもよい。この場合、前記直動関節の各々には2つのリンクが接続され、前記2つのリンクのうちの一方のリンクは伸縮することが可能であり、伸縮することによって変化する当該リンクの長さは上限及び下限を有し、前記指示部が移動することに従って前記教示用アームのリンクのうちの少なくとも1つのリンクは回転又は伸縮することになる。
【0013】
また、この場合、前記余裕度を求める手段は、更に、前記教示用アームの直動関節の各々に関して、当該直動関節に接続されたリンクのうちの一方のリンクの長さの関数である直動関節の余裕度であって、該余裕度が小さいことは当該リンクの現在の長さと当該リンクの長さの上限又は下限の長さとの差が小さいことを示す前記直動関節の余裕度を求め、求めた前記回転関節の余裕度と求めた前記リンクの余裕度と求めた前記直動関節の余裕度とを乗算することによって前記教示用アームの余裕度を求めることになる。
【0014】
前記信号を生成する前記手段は、前記教示用アームの余裕度が前記所望の閾値以下である場合に前記信号を生成してもよい。当該手段は、更に、求めた前記方向と求めた前記教示用アームの余裕度に基づいて、前記教示用アーム取り付け部を移動させる速度であって該速度の大きさは前記教示用アームの余裕度が小さくなるにつれ大きくなる前記速度を求め、前記速度に基づいて前記信号を生成してもよい。
【0015】
本願発明の別の一実施形態は、作業時にロボットに取り付けられるエンドエフェクタの位置姿勢を、前記ロボットに取り付けられた教示用アームを使用して教示するロボット教示装置のコントローラである。このコントローラは、上述の手段を備えている。
【0016】
本願発明の別の一実施形態は、作業時にロボットに取り付けられるエンドエフェクタの位置姿勢を、前記ロボットに取り付けられた教示用アームを使用して教示するためのプログラムである。このプログラムが計算機上で実行されることにより、当該計算機は上述の手段として機能することになる。
【発明の効果】
【0017】
本願発明の一実施形態によると、ロボットに取り付けられた教示用アームの指示部を移動させたとき、教示用アームの余裕度がある閾値以下になると、ロボットの教示用アーム取り付け部は教示用アームを移動させた方向に自動的に移動することになる。従って、教示用アーム取り付け部を移動させなければ届かない作業点に指示部を移動させたい場合でも、プログラミングペンダントに持ち替えることなく、シームレスに指示部をその作業点へ移動させ続けることができるため、面倒な操作を省くことができ、教示時間を短縮できるといった効果が得られることになる。
【図面の簡単な説明】
【0018】
【図1】本願発明の一実施形態に係るロボット教示装置を含むシステムの外観図
【図2】本願発明の一実施形態に係るロボット教示装置における教示用アームの例を示す図
【図3】本願発明の一実施形態に係るロボット教示装置を使用したときのロボットの動作を示す図
【図4】本願発明の一実施形態に係るロボット教示装置におけるコントローラのブロック図
【図5】回転関節の余裕度の例示的な計算手法を示す図
【図6】直動関節の余裕度の例示的な計算手法を示す図
【図7】リンクの余裕度の例示的な計算手法を示す図
【図8】リンクの余裕度の例示的な代替計算手法を示す図
【図9】従来技術のロボット教示装置の概略図
【発明を実施するための形態】
【0019】
以下、本願発明の実施形態について図を参照して説明する。
【実施例】
【0020】
図1は、本願発明の一実施形態に係るロボット教示装置を含むシステムの外観図である。「ロボット教示装置」とは、作業時のロボットの動作を設定するために、該ロボットの動作を教示するとき(教示時)に使用される装置のことである。以下の説明において、「この実施形態に係るロボット教示装置」という用語は、「コントローラ200の一部、プログラミングペンダント300、及び教示用アーム400を含む装置」を意味するものとして使用しているが、ロボット教示装置が含むものをこれらに限定する意図はない。なお、「ロボットの動作」を教示することの一例は、後述する「エンドエフェクタの位置姿勢」を教示することである。
【0021】
「ロボット」とは、人の代わりに何らかの作業を行う装置のことであり、この実施形態に係るロボット教示装置において使用するロボット100は、ロボット教示装置を使用して動作を教示した後、教示した該動作を再生することによって自動作業を行う方式(ティーチングプレイバック方式)の産業用ロボットであるものとする。しかしながら、ロボット100として、人の代わりに何らかの作業を行う別の装置を使用してもよい。この実施形態に係るロボット教示装置において、教示作業者は、教示用アーム400を使用してロボット100に取り付けられるエンドエフェクタ(図示せず)の作業時の位置姿勢を教示することができる。なお、「エンドエフェクタ」とは、物を掴むハンド(グリッパ)や、バリ取りを行うグラインダ等、産業用ロボットの作業対象物に何らかの作業を行う装置のことである。エンドエフェクタは作業時にロボット100に取り付けられていればよく、教示時には取り外すことができる。また「作業時」とは、エンドエフェクタが作業対象物に何らかの作業を実際に行うときを意味している。
【0022】
ロボット100は、少なくとも1つの回転関節又は直動関節と少なくとも2つのリンクとを有している。ロボット100の回転関節又は直動関節の各々には2つのリンクが接続されている。回転関節の場合、ロボット100の回転関節に接続された2つのリンクはモータによって当該回転関節を中心に回転する。この回転関節の軸には、当該関節を中心とするリンクの回転角度(以後、「関節角度」とする)を検出するためのエンコーダ等の角度検出センサを取り付けることができる。この角度検出センサは、検出された関節角度を示す角度検出信号を出力する。出力された角度検出信号はコントローラ200に入力される。この角度検出信号に基づいて、ロボット100のある回転関節について、当該関節に接続された2つのリンクのなす角度を求めることができる。
一方、直動関節の場合、ロボット100の直動関節に接続された2つのリンクのうちの一方のリンクはモータによって伸縮する。この直動関節の軸には、伸縮することによって変化するリンクの長さを検出するための長さ検出センサを取り付けることができる。この長さ検出センサは、検出されたリンクの長さを示す長さ検出信号を出力する。出力された長さ検出信号はコントローラ200に入力される。
モータはコントローラ(制御装置)200によって制御される。また、モータは関節が有することができる。また、ロボット100のリンクの各々は外力が加わることに応答して回転も伸縮もしないようにされている。ロボット100のリンクのうちの1つのリンクは教示用アーム400を取り付けるための教示用アーム取り付け部130を有している(図3を参照)。図1に示すロボット教示装置では、教示用アーム取り付け部130を有するリンクは、ロボット100が備えるリンクのうちの該ロボットの先端に最も近いリンクであるロボット先端リンク110である。ここではロボット先端リンク110の回転の中心となる軸の方向111に教示用アーム400を取り付けているが、この軸に対して垂直方向に取り付けてもよい。また必ずしも先端部分に取り付ける必要はなく、例えばロボット先端リンク110の根元部分に取り付けてもよい。ロボット100のリンクのうちの少なくとも1つが回転又は伸縮することに従って教示用アーム取り付け部130は移動する。なお、この実施形態に係るロボット教示装置において、ロボット100は6自由度構成である。
【0023】
「プログラミングペンダント」とは、情報を表示するためのディスプレイ及び情報を入力するための複数のボタンの一方又は双方を備えており、これら情報に基づく信号を送受信する装置である。また、プログラミングペンダントは、上記ディスプレイ又はボタンを使用して、ロボットを手動で動作させる機能、ロボット教示装置におけるモードを変更する機能、及び教示したロボットの動作を確認し編集する機能等を有している。モードの例としては、ロボットの動作を教示するためのモード(教示時のモード)、教示した該動作を確認し編集するモード、及び教示した該動作を再生させるモード(作業時のモード)等が挙げられる。教示した動作の編集の例としては、上記ボタンを使用して、教示した該動作の一部を修正すること、教示した該動作の一部を複製又は削除すること、及び教示した該動作の一部と一部との間に条件分岐を設定すること等が挙げられる。この実施形態に係るロボット教示装置におけるプログラミングペンダント300は、コントローラ200に接続されており、コントローラ200に対して上記信号を入出力する。また、プログラミングペンダント300は、上記ボタンを使用して該ロボット教示装置におけるパラメータを変更する機能を更に有していてもよい。パラメータの例としては、後述の教示用アームの余裕度の閾値E0、回転関節の余裕度に関係したAmin_i、Amax_i、a1_i、及びa2_i、直動関節の余裕度に関係したBmin_k、Bmax_k、b1_k、及びb2_k、並びにリンクの余裕度に関係したw1及びw2等が挙げられる。
【0024】
「教示用アーム」とは、教示時にロボットに取り付けられ教示作業者が操作することにより、作業時のロボットの動作を教示するための装置のことである。この実施形態に係るロボット教示装置における教示用アーム400は、少なくとも1つの回転関節と少なくとも2つのリンクとを有している。教示用アーム400の回転関節の各々には2つのリンクが接続されている。これら2つのリンクは当該回転関節を中心に回転することが可能である。但し、これら2つのリンクがなす角度は上限及び下限を有している。教示用アーム400は、少なくとも1つの直動関節を更に備えていてもよい。教示用アーム400の直動関節の各々には2つのリンクが接続されている。これら2つのリンクのうちの一方のリンクは伸縮することが可能である。但し、伸縮することによって変化する当該リンクの長さは上限及び下限を有している。教示用アーム400のリンクのうちの1つのリンクは、エンドエフェクタの位置姿勢を指示するための指示部430を有している(図2を参照)。エンドエフェクタの位置姿勢は、指示部430の位置姿勢を記憶することによって教示される。なお、エンドエフェクタ及び指示部の姿勢とは、これらの向いている方向に基づいて定められるもので、例えば、これらの向いている方向の三次元的な角度であることができる。指示部430を有するリンクに外力が加わることに応答して該指示部は移動する。指示部430を有するリンクは更に把持部410を有することができ(図2を参照)、該把持部を教示作業者が把持し移動させることで、当該リンクに外力を加えることができる。指示部430が移動することに従って教示用アーム400のリンクのうちの少なくとも1つのリンクは回転又は伸縮する。教示用アーム400の回転関節及び直動関節も、ロボット100に関して上述したような角度検出センサ及び長さ検出センサを有することができる。
【0025】
図2(a)および(b)は、教示用アーム400の例を示した図である。図2(a)はシリアルリンク型のアームの例を示し、図2(b)はパラレルリンク型のアームの例を示している。図2において、符号J1〜J6はリンクの可能な回転方向を示している。これらアームの例はどちらも6自由度構成を使用しているが、教示用アーム400は、ロボットの作業用途に応じて、3自由度や4自由度等の他の自由度構成を使用することができ、ロボット100とは異なる自由度構成を使用することができる。教示作業者は、把持部410を把持して操作し、ロボットのエンドエフェクタの作業時の位置と姿勢とを指示部430の位置と姿勢とによって指示することができる。なお、これらアームの例において指示部430は該アームの先端に位置しているが、指示部430は該アームの他の場所に位置してもよい。また、これらアームの例における手首機構は、図2に示すように、該手首機構を構成する関節に関するリンクの可能な回転方向J4〜J6が直交するように設計されており、手首機構をこのように設計すると特異姿勢になりにくく一般的に操作性が良い。教示用アーム400は取り付け治具120を介してロボット100に取り付けることができる。このとき、できるだけ取り付け誤差が小さくなるように位置決めピン等で精度よく取り付けることができるような機構を使用してもよい。教示作業者がスイッチ420を押すと、コントローラ200は該スイッチを押した時の指示部430の位置姿勢を記憶することができる。なお、以降の説明では、この実施形態に係るロボット教示装置は図2(a)に示すシリアルリンク型のアームを使用するものする。
【0026】
ここで、図3を参照して、本願発明の一実施形態に係るロボット教示装置を使用したときのロボット100の動作について説明する。なお、図3で示すロボット100及び教示用アーム400は、図1で示すロボット100及び図2で示す教示用アーム400を概略的に示したものである。最初、ロボット100及び教示用アーム400が図3(a)で示す状態にあるとする。次に、教示作業者が把持部410を持ち、該把持部を矢印411の方向へ移動させ、教示用アーム400が図3(b)で示す状態になったとする。このとき、従来技術のロボット教示装置において、教示作業者が把持部410を矢印411の方向へ更に移動させると、ロボット100は動作しないので、ついには教示用アーム400は可動限界に達し、把持部410を該方向へ移動させることができなくなってしまっていた。なお、教示用アーム400が可動限界に達することは、該アームの関節のうちの少なくとも1つの関節に関して、リンクが限界に達していることを意味する。より詳細には、当該少なくとも1つの関節が回転関節である場合、当該回転関節に接続された2つのリンクのなす角度は該角度の上限又は下限に達しているか、又は、当該2つのリンクのなす角度は当該2つのリンクが一直線となるときの角度、例えば、180度に達していることを意味し、当該関節が直動関節である場合、当該直動関節に接続されたリンクの長さは該長さの上限又は下限に達していることを意味する。従って、従来技術のロボット教示装置において、教示用アーム400が可動限界に達したときの指示部430よりも遠くにある作業点に関する教示を行いたい場合、指示部430が該作業点に届くようにロボット100を動作させるために、教示作業者は教示用アーム400からプログラミングペンダント300に持ち替えて該ペンダントを手動で操作する必要があった。
【0027】
しかし、この実施形態に係るロボット教示装置においては、そのような場合でも教示作業者は教示用アーム400からプログラミングペンダント300に持ち替える必要はない。なぜなら、この実施形態に係るロボット教示装置において、ロボット100は教示用アーム400が可動限界に達しないように自動的に動作するため、教示作業者は把持部410を移動させつづけることができるからである。なお、教示用アーム400が可動限界に達したときにロボット100を自動的に動作させてもよく、この場合も教示作業者は把持部410を移動させ続けることができる。より詳細に言うと、この実施形態に係るロボット教示装置において、ロボット100は、教示用アーム400の可動限界までの余裕(以後、「教示用アームの余裕」とする)が小さくなったとき、例えば教示用アーム400が図3(b)で示す状態になったときに、該余裕がこれ以上小さくならないように、この実施形態においては大きくなるように、教示用アーム取り付け部130を矢印131の方向、即ち把持部410を移動させた矢印411の方向と同じ方向に移動させるように自動的に動作する。教示用アーム取り付け部130の移動により、ロボット100及び教示用アーム400は、例えば図3(c)で示す状態になる。図3(c)における教示用アームの余裕は図3(b)における教示用アームの余裕よりも大きくなっている。なお、図3(c)は、ロボット100の自動的な動作が開始された時点で教示作業者が把持部410を静止させた場合の例示的な図である。この実施形態に係るロボット教示装置において、教示作業者は、ロボット100の自動的な動作の開始に関わらず把持部410を移動させつづけることができる。なお、教示用アームの余裕が一定に保たれるようにロボット100を自動的に動作させてもよい。また、教示用アームの余裕がなくなったとき、即ち、教示用アーム400が可動限界に達したときに、該余裕が大きくなるようにロボット100を自動的に動作させてもよい。以後、上述したような、ロボット100の「教示用アームの余裕が小さくならないようにするための動作」のことを、ロボット100の「可動限界回避動作」とする。
【0028】
図4は、本願発明の一実施形態に係るコントローラ200のブロック図である。コントローラ200は、教示処理手段210及び220と、自動的な可動限界回避動作に関係する手段230〜250と、モータ制御手段260とを含んでいる。また、コントローラ200は、CPU等の計算装置と、メモリ等の記憶装置と、所望の信号を送受信するための入出力装置とを備えた計算機であることができる。ここで、所望の信号は、上記モータや上記センサ、プログラミングペンダント300等とのシリアル通信で利用される信号を含むことができる。この計算機は、プログラムを使用することによって上記手段として機能させることができる。より詳細には、記憶装置に記憶された上記プログラムを前記計算装置が実行することにより、入出力装置は信号を受信し、計算装置は受信した信号に基づき値を計算し、記憶装置は計算した値を記憶することができる。入出力装置は、更に、計算した値に基づき信号を送信することができる。
【0029】
教示作業者が把持部410を持って操作する際、指示部430の位置及び姿勢を検出するために、ロボット100の各軸の角度検出センサと教示用アーム400の各軸の角度検出センサとから、角度検出信号が先端位置姿勢計算手段210へ取り込まれる。ロボット100及び教示用アーム400の一方又は双方が直動関節を含んでいる場合は、長さ検出信号が更に取り込まれる。先端位置姿勢計算手段210は、コントローラ200の制御周期毎に、取り込んだこれら角度検出信号及び長さ検出信号に基づいてロボット100及び教示用アーム400の関節角度及びリンク長さを求め、求めたこれら関節角度及びリンク長さから順運動学演算によって指示部430の位置及び姿勢を示すための位置姿勢データを計算し記憶する。この位置姿勢データは、例えば、指示部430の位置を示す座標(X, Y, Z)および姿勢を示す姿勢角(α, β, γ)、または位置を示す座標(X, Y, Z)および姿勢を示す3×3の姿勢行列(R)を含んでいる。教示作業者が記憶用スイッチ420を押した時に、計算されたこの位置姿勢データは教示データとして教示位置姿勢記憶手段220に送られ、教示位地姿勢記憶手段220はこの教示データを記憶する。プログラミングペンダント300は、記憶された教示データを教示位置姿勢記憶手段220から読み込んで表示することが可能である。
【0030】
次に、本願発明の一実施形態に係るコントローラ200の特徴である、ロボット100に可動限界回避動作を自動的に行わせる手法について説明する。
コントローラ200においては、まず、余裕度計算手段230が、ロボット100に取り付けられた教示用アームの余裕に関係する教示用アームの余裕度を求める。コントローラ200において、教示用アームの余裕度は0から1の範囲の値をとり、教示用アームの余裕が十分大きい場合は1、該余裕が小さくなるにつれ0に近づき、該余裕がない場合、例えば、教示用アーム400のある関節においてリンクがこれ以上回転できない状態になった場合、リンクがこれ以上伸縮できない状態になった場合、又は、ある関節においてリンクが伸びきった状態になった場合は0をとるものしている。
【0031】
次に、ロボット位置変更速度計算手段240及びロボット位置変更指令生成手段250が、余裕度計算手段240が求めた教示用アームの余裕度に基づいて、教示用アームの余裕が小さくならないようにロボット100の動作を制御する。より詳細には、ロボット位置変更速度計算手段240は、余裕度計算手段230が計算した余裕度とあらかじめ決められた所望の閾値とを比較する。余裕度が閾値より大きいことは、ロボット100が静止したままでよいことを示す。余裕度が閾値以下であることは、ロボット100が可動限界回避動作を行わなければならないことを示す。もし、余裕度がある閾値以下になった場合、ロボット位置変更速度計算手段240は、教示用アームの余裕がこれ以上小さくならないように、教示用アーム取り付け部130の移動方向と移動速度を計算する。そして、ロボット位置変更速度計算手段240によって計算された移動方向及び移動速度に応じて、ロボット位置変更指令生成手段250は教示用アーム取り付け部130の移動先の位置(以下、「目標位置」とする)を計算して該部分をこの目標位置に移動させるための指令を生成する。その後、モータ制御手段260にこの指令が渡され、この指令に基づいて、ロボット100のモータに入力される信号が生成される。この信号が当該モータへと実際に送られることによりロボット100が動作して、教示用アーム取り付け部130の位置は更新される。
【0032】
このような手法に従うと、図3に関連して説明したように、教示用アームの余裕が小さくなるとロボット100は可動限界回避動作を自動的に行うため、教示用アーム400が可動限界に達することはない。従って、教示作業者は指示部430が教示したい作業点に届くまで把持部410を移動させつづけることができる。なお、この実施形態において、教示用アーム取り付け部130に関して移動方向、移動速度、及び目標位置を計算しているが、教示用アーム400が可動限界に達しないように、ロボット100の別の場所に関してこれらを計算することができる。また、上記閾値E0は、教示用アーム400が可動限界に達したときにロボット100が自動的に動作するように、例えば0に設定してもよく、この場合も教示作業者は指示部430が教示したい作業点に届くまで把持部410を移動させつづけることができる。
ここで、余裕度計算手段230による教示用アームの余裕度の例示的計算手法を図5から8を参照して説明する。
【0033】
図5を参照して、教示用アームの余裕度の第1の計算手法を説明する。この計算手法において、教示用アームの余裕度は、ある回転関節に関するリンクの回転に関係した余裕、例えば、該リンクが回転できなくなるまでの余裕を示す回転関節の余裕度を計算することで計算される。回転関節の余裕度は、当該回転関節に接続された2つのリンクのなす現在の角度の関数であることができる。当該余裕度は、ある範囲の数値として、例えば0から1までの値として表すことができ、値が小さいほど余裕がない、即ち、上記現在の角度と当該2つのリンクのなす角度の上限又は下限である角度との差が小さいことを示すことができる。図5(a)は教示用アーム400のリンクのうちのある回転関節i450に接続された2つのリンク451及び452を示している。回転関節450の余裕度Es_iは、リンク451とリンク452とがなす角度θiに基づく、以下の関数であることができる。
【0034】
【数1】

【0035】
図5(b)にこの関数のグラフを示す。この関数は、上記の下限及び上限の角度を示すパラメータAmin_i及びAmax_i、並びにパラメータa1_i及びa2_iに基づいて定義することができる。ここで、上記パラメータAmin_i及びAmax_iは、回転関節及びリンクの構造上の限界に対応した値であることができるし、そうではなく所望の値であることもできる。この関数において、回転関節450の余裕度Es_iは、角度θiが各軸関節角度リミットを超えた場合(Amin_i>θi又はAmax_i<θi)は0をとり、該リミット内(Amin_i≦θi≦Amax_i)の場合は角度θiに応じて0から1の値をとることになる。a1_iとa2_iのパラメータは所望の値をあらかじめ設定することができる。これらパラメータa1_i及びa2_iは不感帯を設けるためのものであり、この不感帯が存在することにより、ロボットが常に動きつづけるようなぎくしゃくした動きを防ぐことができる。回転関節450の余裕度Es_iを教示用アームの余裕度とすることができる。また、複数の回転関節の余裕度を各回転関節の余裕度の積として定義することができ、この積を教示用アームの余裕度とすることができる。例えば、教示用アーム400が6つの回転関節からなる場合、関節全体の余裕度Esは以下の式で求めることができる。
【0036】
Es=Es_1×Es_2×Es_3×Es_4×Es_5×Es_6
このような関節全体の余裕度Esを教示用アームの余裕度とすることができる。
図6を参照して、教示用アームの余裕度の第2の計算手法を説明する。この計算手法において、教示用アームは直動関節を含むものと仮定しており、教示用アームの余裕度は、ある直動関節に関するリンクの伸縮に関係した余裕、例えば、該リンクが伸縮できなくなるまでの余裕を示す直動関節の余裕度を計算することで計算される。直動関節の余裕度は、当該関節に接続されたリンクのうちの一方のリンクの現在の長さの関数であることができる。当該余裕度は、ある範囲の数値として、例えば0から1までの値として表すことができ、値が小さいほど余裕がない、即ち、上記現在の長さと当該リンクの長さの上限又は下限の長さとの差が小さいことを示すことができる。図6(a)は教示用アーム400のリンクのうちのある直動関節k460に接続された2つのリンク461及び462を示している。直動関節460の余裕度Ed_kは、リンク462の長さδkに基づく、以下の関数であることができる。
【0037】
【数2】

【0038】
図6(b)にこの関数のグラフを示す。この関数は、図6(b)で示すように、上記の下限及び上限の長さを示すパラメータBmin_k及びBmax_k、並びにパラメータb1_k及びb2_kに基づいて定義することができる。ここで、上記のパラメータBmin_k及びBmax_kは、直動関節及びリンクの構造上の限界に対応した値であることができるし、そうではなく所望の値であることもできる。図6(b)に示す関数において、直動関節460の余裕度Ed_kは、距離δkが各軸関節距離リミットを超えた場合(Bmin_k>δk又はBmax_k<δk)は0をとり、該リミット内(Bmin_k≦δk≦Bmax_k)の場合は距離δkに応じて0から1の値をとることになる。b1_kとb2_kのパラメータは所望の値をあらかじめ設定することができる。これらパラメータb1_k及びb2_kは、回転関節の余裕度に関して上述したように、不感帯を設けるためのものである。直動関節460の余裕度Ed_kを教示用アームの余裕度とすることができる。また、各直動関節の余裕度の積を教示用アームの余裕度とすることができることは、回転関節の余裕度と同様である。むろん、回転関節の余裕度と直動関節の余裕度との積を教示用アームの余裕度としてもよい。
【0039】
図7を参照して、教示用アームの余裕度の第3の計算手法を説明する。この計算手法において、教示用アームの余裕度は、ある関節に接続された2つのリンクが伸びきるまでの余裕を示すリンクの余裕度を計算することで計算される。リンクの余裕度は、当該回転関節に接続された2つのリンクのなす現在の角度の関数であることができる。当該余裕度は、ある範囲の数値として、例えば0から1までの値として表すことができ、値が小さいほど余裕がない、即ち、上記現在の角度と当該2つのリンクが一直線となったときの当該2つのリンクのなす角度との差が小さいことを示すことができる。なお、当該2つのリンクが一直線となることは、当該2つのリンクが伸びきったことを意味する。また、「当該2つのリンクが一直線となったときの当該2つのリンクのなす角度」は、この実施形態においては180度であるが、当該2つのリンクが伸びきったことを表すために実用上十分であれば、179.9度や180.1度、場合によっては170度や190度等、180度からずれた角度であってもよい。なお、これら角度が例示にすぎないことは言うまでもない。以下、図2(a)に示したシリアルリンク型のアームにおける関節440に関するリンクの余裕度を例として、この計算手法を説明する。なお、別の関節に関してリンクの余裕度を計算してもよいことはいうまでもない。図7(a)は関節440に接続された2つのリンク442及び443を示している。なお、このアームの関節440及び関節441は、それぞれ人間の肘の関節及び肩の関節とみなすことができるので、以後、リンク442を前腕、リンク443を上腕と呼ぶことにする。リンクの余裕度Ewは、前腕442と上腕443とがなす角度θの関数であることができる。この関数は、所望のパラメータw1に基づいて定義することができる。リンクの余裕度Ewは、以下の数式に従い求めることができる。
【0040】
【数3】

【0041】
図7(b)にこの関数のグラフを示す。なお、上式の「180」は「当該2つのリンクが一直線となったときの当該2つのリンクのなす角度」、即ちこの実施形態においては180度を表す値である。繰り返すが、この値は、実用上十分であれば、180度からずれた角度を表す値であってもよい。この実施形態においてθ=180であることは、前腕442と上腕443とが一直線となったこと、即ち前腕442と上腕443とが伸びきったことを示している。パラーメータw1は、不感帯を設けるためのものである。このリンクの余裕度を、教示用アームの余裕度とすることができる。また、複数の関節に関するリンクの余裕度の積を教示用アームの余裕度とすることができることは、関節の余裕度と同様である。
【0042】
図8を参照して、教示用アームの余裕度の第4の計算手法を説明する。この計算手法は、上記リンクの余裕度の代替計算手法である。この代替計算手法も、図2(a)に示したシリアルリンク型のアームにおける関節440に関するリンクの余裕度を例として説明する。図8(a)において、点444は、上記アームにおける回転方向J3に関する回転の軸を示し、点445は、上記アームにおける回転方向J4、J5、及びJ6に関する回転の軸の交点を示している。点446は、点444を通り上腕443と垂直な直線と、点445を通り上腕443と平行な直線との交点を示している。ここで、Lを点444から点445までの距離とし、hを点445から点446までの距離とし、wを点446から点444までの距離とすると、
w2=L2−h2=0
の時、上腕443と前腕442とが伸びきった状態となる。従って、リンクの余裕度Ewは、以下の数式に従い求めることができる。
【0043】
【数4】

【0044】
図8(b)にこの関数のグラフを示す。w2はあらかじめパラメータとして適当な値を設定しておく。このパラメータも不感帯を設けるためのものである。なお、上式のLは教示用アームの設計に基づき求めることができ、h及びwは関節からの角度検出信号に基づき求めることができる。
【0045】
以上、教示用アームの余裕度の幾つかの例示的計算手法を説明した。しかしながら、教示用アームの余裕度の計算手法は上記計算手法に限られるものではない。ここで示した余裕度を組み合わせて、例えば、上記回転関節の余裕度と上記リンクの余裕度とを乗算することによって教示用アームの余裕度を求めてもよい。この場合、教示用アームの余裕度は
E=Es×Ew
に従って計算されたEとなる。更に、教示用アームの余裕度は、例えばよく知られている可操作度などの指標を用いて計算するなど、様々な手法を使用して計算することができる。なお、この実施形態においては、教示用アームの余裕度として上述のEを使用するものとする。
【0046】
次に、この実施形態に係るコントローラ200におけるロボット位置変更速度計算手段240による教示用アーム取り付け部130の移動方向と移動速度とを計算する手法をより詳細に説明する。ロボット位置変更速度計算手段240は、コントローラ200の制御周期毎に、まず、余裕度計算手段230から教示用アームの余裕度Eを取得し、所望な値である閾値E0と比較する。コントローラ200おける移動方向と移動速度の計算は、教示用アームの余裕度Eが閾値E0以下である場合にのみ、該制御周期毎に行われる。この実施形態において、移動方向は移動方向単位ベクトルz=(zx, zy, zz)Tを求めることにより計算される。移動方向単位ベクトルzは、ロボット100及び教示用アーム400の角度検出センサから該制御周期毎に取得される角度検出信号に基づいて計算される。先端位置姿勢計算手段210で計算された指示部430の位置の座標(X, Y, Z)のうち、現在の制御周期に計算された座標と過去の制御周期、例えば現在の制御周期の一制御周期前の制御周期に計算された座標とを該手段から取得し、これらの差ΔX=(Δx, Δy, Δz)Tを計算し、更に、この差ΔXに基づいて移動方向単位ベクトルzを計算する。コントローラ110において、移動方向単位ベクトルzは以下の式に従い計算される。
【0047】
【数5】

【0048】
また、移動速度V=(Vx, Vy, Xz)は、移動方向単位ベクトルzに基づいて計算することができ、その大きさは教示用アームの余裕度Eが小さくなるにつれて大きくなる値であることができる。コントローラ200において、ロボット位置変更速度計算手段240は、移動最大速度VL、比率K、および操作方向単位ベクトルzに基づいて、以下の式に従って移動速度Vを計算する。
【0049】
V=(VL×K)z
上式において、移動最大速度VLはあらかじめ設定した教示時のロボットの動作に関する最大速度のパラメータである。また比率Kは、閾値E0と余裕度Eに基づいてロボット位置変更速度計算手段240によって計算されるものであり、教示用アームの余裕度Eが小さくなるにつれて移動速度Vの大きさが大きくなるようにするためのパラメータである。この比率Kは、コントローラ200においては以下の式に従い計算される。
【0050】
K=(E0−E)/E0
なお、この数式はE0≧Eのときのみ計算される。
次に、この実施形態に係るコントローラ200におけるロボット位置変更指令生成手段250による教示用アーム取り付け部130の目標位置を計算する手法をより詳細に説明する。ロボット位置変更指令生成手段250は、コントローラ200の制御周期毎に、まず、ロボット位置変更速度計算手段240によって移動方向と移動速度が計算されたかを判定する。コントローラ200における目標位置の計算は、移動方向と移動速度が計算されている場合にのみ、該制御周期毎に行われる。この実施形態において目標位置は、該目標位置を示す座標Xrを計算することで計算される。ロボット位置変更指令生成手段250は、制御周期毎の教示用アーム取り付け部130の位置の座標を記憶する。記憶されるこの座標として、以下で説明する計算された目標位置の座標Xrをそのまま使用することも、図示しない経路でロボット100の角度検出センサより取得した角度検出信号に基づいて計算された座標を使用することもできる。目標位置の座標Xrは、ロボット位置変更速度計算手段240で現在の制御周期に計算された移動速度Vと、過去の制御周期、例えば現在の制御周期の一制御周期前の制御周期における教示用アーム取り付け部130の位置の座標X0と、制御周期に関係する時間、例えば一制御周期の時間Tsとに基づいて、以下の式に従って計算される。
【0051】
Xr=X0+V×Ts
この目標位置の座標Xrに教示用アーム取り付け部130が移動するように、モータ制御手段260がロボット100の各軸モータを制御し、該ロボットを動作させる。目標位置の座標Xrは、上述したように移動方向と移動速度が計算されている場合にのみ、即ち、余裕度Eが閾値E0以下である場合にのみ求められるわけであるから、教示用アーム取り付け部130の移動は、余裕度Eが閾値E0より大きくなったときに自動的に停止することになる。なお、この実施形態において、コントローラ200に含まれる各手段は上述のようにコントローラ200の制御周期を基準として動作しているが、別の制御周期を基準として動作してもよく、手段ごとに制御周期の時間や該周期の開始のタイミングが異なっていてもよい。
【0052】
このような手法に従うと、ロボット100は、教示作業者が把持部410を移動させた方向と同じ方向に適切な速度で教示用アーム取り付け部130が移動するように自動的に動作することになる。そのため、教示用アームの余裕がこれ以上小さくならないようにすることができる。従って、ロボット100は教示用アーム400が可動限界に達することを回避するように自動的に動作するので、教示作業者は、教示用アーム400の可動限界を気にせずに、例えばリンクが回転できない状態になったりリンクが伸びきった状態になったりすることを気にせずに、教示作業を継続して行うことができる。その結果、教示作業時間を短縮することができ、該作業者の負担を軽減することが可能となる。なお、教示用アーム400が可動限界に達したときにロボット100が自動的に動作するようにした場合も、教示作業者が把持部410を移動させた方向と同じ方向に適切な速度で教示用アーム取り付け部130が移動することは同様である。
【符号の説明】
【0053】
100 ロボット
110 ロボット先端リンク
111 ロボット先端リンクの回転の中心となる軸の方向
120 教示用アーム取り付け治具
130 ロボットの教示用アーム取り付け部
131 ロボットの教示用アーム取り付け部の移動方向の例
200 コントローラ
210 先端位置姿勢計算手段
220 教示位置姿勢記憶手段
230 余裕度計算手段
240 ロボット位置変更速度計算手段
250 ロボット位置変更指令生成手段
260 モータ制御手段
300 プログラミングペンダント
400 教示用アーム
410 教示用アームの把持部
411 教示用アームの把持部の移動方向の例
420 教示用アームの記憶用スイッチ
430 教示用アームの指示部
440 肘の関節とみなせる関節
441 肩の関節とみなせる関節
442 肘の関節とみなせる関節に接続された前腕とみなせるリンク
443 肘の関節とみなせる関節に接続された上腕とみなせるリンク
450 ある回転関節i
451 回転関節iに接続されたリンク
452 回転関節iに接続されたリンク
460 ある直動関節k
461 直動関節kに接続されたリンク
462 直動関節kに接続されたリンク

【特許請求の範囲】
【請求項1】
作業時にロボットに取り付けられるエンドエフェクタの位置姿勢を、前記ロボットに取り付けられた教示用アームを使用して教示するロボット教示装置であって、
前記教示用アームは少なくとも1つの回転関節と少なくとも2つのリンクとを有し、前記教示用アームの回転関節の各々には2つのリンクが接続され、前記2つのリンクは当該回転関節を中心に回転することが可能であり、前記2つのリンクがなす角度は上限及び下限を有し、前記教示用アームのリンクのうちの1つのリンクは前記エンドエフェクタの位置姿勢を指示するための指示部を有し、前記指示部の位置姿勢を記憶することによって前記エンドエフェクタの位置姿勢は教示され、前記指示部を有するリンクに外力が加わることに応答して前記指示部は移動し、前記指示部が移動することに従って前記教示用アームのリンクのうちの少なくとも1つのリンクは回転し、
前記ロボットは少なくとも1つの回転関節又は直動関節と少なくとも2つのリンクとを有し、前記ロボットの回転関節又は直動関節の各々には2つのリンクが接続され、前記ロボットの回転関節に接続された2つのリンクはモータによって当該回転関節を中心に回転し、前記ロボットの直動関節に接続された2つのリンクのうちの一方のリンクはモータによって伸縮し、前記ロボットのリンクの各々は外力が加わることに応答して回転も伸縮もしないようにされ、前記ロボットのリンクのうちの1つのリンクは教示用アームを取り付けるための教示用アーム取り付け部を有し、前記ロボットのリンクのうちの少なくとも1つが回転又は伸縮することに従って前記教示用アーム取り付け部は移動し、
前記装置は、
前記教示用アームの回転関節の各々に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数である回転関節の余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクのなす角度の上限又は下限の角度との差が小さいことを示す前記回転関節の余裕度を求め、前記教示用アームの回転関節のうちの少なくとも1つの回転関節に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数であるリンクの余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクが一直線となったときの当該2つのリンクのなす角度との差が小さいことを示す前記リンクの余裕度を求め、求めた前記回転関節の余裕度と前記リンクの余裕度とを乗算することによって教示用アームの余裕度を求める手段と、
前記教示用アームの余裕度が所望の閾値以下である場合に、前記指示部の現在の位置と所定時間前の位置との差に基づいて前記指示部が移動した方向を求める手段と、
前記ロボットのモータに入力される信号であって求めた前記方向に前記教示用アーム取り付け部を移動させるための前記信号を生成する手段と
を備えた、ロボット教示装置。
【請求項2】
前記教示用アームは、少なくとも1つの直動関節を更に備え、前記直動関節の各々には2つのリンクが接続され、前記2つのリンクのうちの一方のリンクは伸縮することが可能であり、伸縮することによって変化する当該リンクの長さは上限及び下限を有し、前記指示部が移動することに従って前記教示用アームのリンクのうちの少なくとも1つのリンクは回転又は伸縮し、
前記余裕度を求める手段は、更に、前記教示用アームの直動関節の各々に関して、当該直動関節に接続されたリンクのうちの一方のリンクの長さの関数である直動関節の余裕度であって、該余裕度が小さいことは当該リンクの現在の長さと当該リンクの長さの上限又は下限の長さとの差が小さいことを示す前記直動関節の余裕度を求め、求めた前記回転関節の余裕度と求めた前記リンクの余裕度と求めた前記直動関節の余裕度とを乗算することによって前記教示用アームの余裕度を求める、
請求項1に記載のロボット教示装置。
【請求項3】
前記信号を生成する前記手段は、前記教示用アームの余裕度が前記所望の閾値以下である場合に前記信号を生成し、当該手段は、更に、求めた前記方向と求めた前記教示用アームの余裕度に基づいて、前記教示用アーム取り付け部を移動させる速度であって該速度の大きさは前記教示用アームの余裕度が小さくなるにつれ大きくなる前記速度を求め、前記速度に基づいて前記信号を生成する、請求項1又は2に記載のロボット教示装置。
【請求項4】
作業時にロボットに取り付けられるエンドエフェクタの位置姿勢を、前記ロボットに取り付けられた教示用アームを使用して教示するロボット教示装置のコントローラであって、
前記教示用アームは少なくとも1つの回転関節と少なくとも2つのリンクとを有し、前記教示用アームの回転関節の各々には2つのリンクが接続され、前記2つのリンクは当該回転関節を中心に回転することが可能であり、前記2つのリンクがなす角度は上限及び下限を有し、前記教示用アームのリンクのうちの1つのリンクは前記エンドエフェクタの位置姿勢を指示するための指示部を有し、前記指示部の位置姿勢を記憶することによって前記エンドエフェクタの位置姿勢は教示され、前記指示部を有するリンクに外力が加わることに応答して前記指示部は移動し、前記指示部が移動することに従って前記教示用アームのリンクのうちの少なくとも1つのリンクは回転し、
前記ロボットは少なくとも1つの回転関節又は直動関節と少なくとも2つのリンクとを有し、前記ロボットの回転関節又は直動関節の各々には2つのリンクが接続され、前記ロボットの回転関節に接続された2つのリンクはモータによって当該回転関節を中心に回転し、前記ロボットの直動関節に接続された2つのリンクのうちの一方のリンクはモータによって伸縮し、前記ロボットのリンクの各々は外力が加わることに応答して回転も伸縮もしないようにされ、前記ロボットのリンクのうちの1つのリンクは教示用アームを取り付けるための教示用アーム取り付け部を有し、前記ロボットのリンクのうちの少なくとも1つが回転又は伸縮することに従って前記教示用アーム取り付け部は移動し、
前記コントローラは、
前記教示用アームの回転関節の各々に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数である回転関節の余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクのなす角度の上限又は下限の角度との差が小さいことを示す前記回転関節の余裕度を求め、前記教示用アームの回転関節のうちの少なくとも1つの回転関節に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数であるリンクの余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクが一直線となったときの当該2つのリンクのなす角度との差が小さいことを示す前記リンクの余裕度を求め、求めた前記回転関節の余裕度と前記リンクの余裕度とを乗算することによって教示用アームの余裕度を求める手段と、
前記教示用アームの余裕度が所望の閾値以下である場合に、前記指示部の現在の位置と所定時間前の位置との差に基づいて前記指示部が移動した方向を求める手段と、
前記ロボットのモータに入力される信号であって求めた前記方向に前記教示用アーム取り付け部を移動させるための前記信号を生成する手段と
を備えた、ロボット教示装置のコントローラ。
【請求項5】
作業時にロボットに取り付けられるエンドエフェクタの位置姿勢を、前記ロボットに取り付けられた教示用アームを使用して教示するためのプログラムであって、
前記教示用アームは少なくとも1つの回転関節と少なくとも2つのリンクとを有し、前記教示用アームの回転関節の各々には2つのリンクが接続され、前記2つのリンクは当該回転関節を中心に回転することが可能であり、前記2つのリンクがなす角度は上限及び下限を有し、前記教示用アームのリンクのうちの1つのリンクは前記エンドエフェクタの位置姿勢を指示するための指示部を有し、前記指示部の位置姿勢を記憶することによって前記エンドエフェクタの位置姿勢は教示され、前記指示部を有するリンクに外力が加わることに応答して前記指示部は移動し、前記指示部が移動することに従って前記教示用アームのリンクのうちの少なくとも1つのリンクは回転し、
前記ロボットは少なくとも1つの回転関節又は直動関節と少なくとも2つのリンクとを有し、前記ロボットの回転関節又は直動関節の各々には2つのリンクが接続され、前記ロボットの回転関節に接続された2つのリンクはモータによって当該回転関節を中心に回転し、前記ロボットの直動関節に接続された2つのリンクのうちの一方のリンクはモータによって伸縮し、前記ロボットのリンクの各々は外力が加わることに応答して回転も伸縮もしないようにされ、前記ロボットのリンクのうちの1つのリンクは教示用アームを取り付けるための教示用アーム取り付け部を有し、前記ロボットのリンクのうちの少なくとも1つが回転又は伸縮することに従って前記教示用アーム取り付け部は移動し、
前記プログラムが計算機上で実行されると、当該計算機は、
前記教示用アームの回転関節の各々に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数である回転関節の余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクのなす角度の上限又は下限の角度との差が小さいことを示す前記回転関節の余裕度を求め、前記教示用アームの回転関節のうちの少なくとも1つの回転関節に関して、当該回転関節に接続された2つのリンクのなす現在の角度の関数であるリンクの余裕度であって、該余裕度が小さいことは前記現在の角度と当該2つのリンクが一直線となったときの当該2つのリンクのなす角度との差が小さいことを示す前記リンクの余裕度を求め、求めた前記回転関節の余裕度と前記リンクの余裕度とを乗算することによって教示用アームの余裕度を求める手段と、
前記教示用アームの余裕度が所望の閾値以下である場合に、前記指示部の現在の位置と所定時間前の位置との差に基づいて前記指示部が移動した方向を求める手段と、
前記ロボットのモータに入力される信号であって求めた前記方向に前記教示用アーム取り付け部を移動させるための前記信号を生成する手段と
として機能する、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−224745(P2011−224745A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2010−98298(P2010−98298)
【出願日】平成22年4月21日(2010.4.21)
【出願人】(000006622)株式会社安川電機 (2,482)
【Fターム(参考)】