(57)【要約】【課題】ダイレクトティーチング時の操作性を向上させることができるロボットの制御方法を提供する。【解決手段】実施形態のロボット１の制御方法は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボット１を制御する制御方法であって、ロボット１の動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域（Ｒ）を設定し、ロボット１に設定されている監視点（Ｐ）が近傍領域（Ｒ）に到達したときの外力を基準外力（Ｆｉｎｃ）として記憶し、監視点（Ｐ）の現在位置が近傍領域（Ｒ）内である場合、現在の外力（Ｆｃｕｒ）と基準外力（Ｆｉｎｃ）とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。【選択図】図３
2020049592.tif 000002
【特許請求の範囲】
【請求項１】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点が前記近傍領域に到達したときの外力を基準外力として記憶し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定することを特徴とするロボットの制御方法。
【請求項２】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
ロボットに設定されている監視点の現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定することを特徴とするロボットの制御方法。
【請求項３】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点の現在位置を起点とし、前記ロボットの原点から当該現在位置への向きとなる仮想的な外力を基準外力として設定し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定することを特徴とするロボットの制御方法。
【請求項４】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点の現在位置から所定の距離だけ移動した仮想的な位置のうち、最も境界位置に近くなる最接近位置を設定し、
監視点の現在位置を起点とし、当該現在位置から前記最接近位置に向かう仮想的な外力を基準外力として設定し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定することを特徴とするロボットの制御方法。
【請求項５】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積を求め、
求めた内積値が０以上であれば動作範囲外から離れる向きであると判定する一方、内積値が負であれば動作範囲外へ向かう方向であると判定することを特徴とする請求項１から３のいずれか一項記載のロボットの制御方法。
【請求項６】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項１から５のいずれか一項記載のロボットの制御方法。
【請求項７】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項１から５のいずれか一項記載のロボットの制御方法。
【請求項８】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に前記離脱容易度の絶対値と境界位置において０となり境界位置から離れるほど１に近づく接近度とを乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項１から５のいずれか一項記載のロボットの制御方法。
【請求項９】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が０以上であるときには現在の外力に前記離脱容易度を乗算した変換外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項１から５のいずれか一項記載のロボットの制御方法。
【請求項１０】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が０以上であるときには現在の外力に前記離脱容易度を乗算した変換外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項１から５のいずれか一項記載のロボットの制御方法。
【請求項１１】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が０以上であるときには現在の外力に前記離脱容易度を乗算した変換外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に前記離脱容易度の絶対値と境界位置において０となり境界位置から離れるほど１に近づく接近度とを乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項１から５のいずれか一項記載のロボットの制御方法。
【請求項１２】
現在位置が前記動作範囲の境界位置に到達した場合、現在の外力が動作範囲外へ向かう方向である場合には、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向の場合には、現在の外力に基づいて位置指令を更新することを特徴とする請求項１から１１のいずれか一項記載のロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトティーチングが可能なロボットを制御する制御方法に関する。
【背景技術】
【０００２】
近年、ロボットの教示手法として、作業者がロボットのアームを直接的に操作することにより与えられた外力に基づいて位置指令を更新しながら教示するいわゆるダイレクトティーチングが採用されつつある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０８−２１６０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなダイレクトティーチングでは、加えられた外力の大きさと方向とに基づいて位置指令を更新する位置制御が行われており、基本的には、与えられた外力の向きに、与えられた外力の大きさに応じて例えば手先位置の位置指令を更新する制御が行われている。このとき、ティーチング時にロボットが動作範囲から外れてしまうとロボットのアームに過度な負荷が掛かったり周辺装置に接触したりするおそれがあることから、動作範囲外に近づいたとき、外力の大きさに対する移動量を相対的に小さくすることにより、つまりは、ロボットを移動させる際の感触が重くなるようにすることにより、動作範囲外に近づいていることを認識させて操作ミスが起きないようにしていた。
【０００５】
しかしながら、動作範囲の境界位置に近づいた場合に感触を重くするように制御すると、動作範囲の境界位置の近傍領域では常に感触が重くなってしまい、脱出方向つまりは動作範囲外の近傍から離脱する方向に動かそうとしても感触が重いままとなってしまうことから、近傍領域における操作性が低下するとともに、離脱すること自体も困難になるという問題がある。
【０００６】
また、アームが動作範囲の境界位置に到達してしまった際にはエラーとしてロボットを停止させることになるものの、停止させた状態から再びダイレクトティーチングを行うためには、停止したアームを別の制御手段によって動作範囲内まで移動させる必要があり、ダイレクトティーチング中に動作範囲外へ到達する度に使用者へ煩雑な操作を強いることになる。
【０００７】
そして、ロボットの周囲に安全柵等を配置せず、作業者とロボットとが協力して働くことを可能とする協働ロボットは、安全面への配慮から従来の一般的な産業用ロボットよりも関節部の可動範囲が狭くなっていたり、特定の姿勢を取ることが禁止されていたりする等、従来の産業用ロボットに比べて動作範囲が狭い傾向があるため、ダイレクトティーチング中には動作範囲の境界位置の近傍で移動させたり、境界位置の近傍から離脱することが必要になる状況が増えることが想定される。そのため、動作範囲外の近傍から容易に離脱できるようにすることも求められる。
【０００８】
本発明は上記事情に鑑みてなされたものであり、その目的は、ダイレクトティーチング時の操作性を向上させることができるロボットの制御方法を提供する。
【課題を解決するための手段】
【０００９】
請求項１に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、ロボットに設定されている監視点が近傍領域に到達したときの外力を基準外力として記憶し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。
【００１０】
ダイレクトティーチングでは、作業者がアーム等に触れながらロボットの姿勢を変化させている。このとき、ロボットの姿勢は制御装置によって把握できるため、ロボットに設定されている監視点の現在位置は、ロボットの現在の姿勢から特定することができる。また、ダイレクトティーチングが可能な構成の場合、力覚センサやトルクセンサ等によって外力を検出することができるため、加えられた外力の向きおよび大きさも特定することができる。
【００１１】
ダイレクトティーチング時に動作範囲外に到達してしまうことを抑制するためには、近傍領域内での移動を制限することが効果的であると考えられる。その一方で、近傍領域内での移動を全て制限してしまうと、近傍領域から離脱したい場合の移動までも制限されてしまい操作性が悪化することになる。そのため、動作範囲外に到達してしまうことを抑制する場合には、近傍領域から離脱する方向への移動については容易となるようにすることが望ましい。
【００１２】
ただし、動作範囲は、ロボットのアームが届く範囲内ではあるものの、その全域ではなく、例えば周辺設備に接触しない範囲が設定されることがある。そのため、現在位置から最も近い境界位置から離脱しようとした際に別の境界位置に近づいてしまう可能性がある。つまり、動作範囲外の近傍からの離脱を容易とするためには、どの方向であれば動作範囲外に出てしまうことを抑制できるか、つまりは、どの方向を基準とすればよいかが重要となる。
【００１３】
そこで、監視点が近傍領域に到達したときの外力を基準外力として記憶しておき、監視点の現在位置が近傍領域内である場合には、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。これにより、まず、現在の移動方向が移動を制限すべき方向であるか否かを判定することができる。
【００１４】
また、監視点が近傍領域に到達したときの外力の向きは、監視点のそれまでの移動方向に倣った方向であることから、その移動方向は、監視位置が移動してきた経路つまりは近傍領域から離脱する際に障害物等がない方向を指し示している。そのため、近傍領域への到達時の外力の向きを基準とすれば、近傍領域つまりは動作範囲外の近傍から離脱したい場合において周辺設備等への接触を避けることができる方向であると考えられる。そのため、到達時の外力とは逆向きの方向を、当該近傍領域からの離脱が容易な方向として判定すなわち特定することができる。
【００１５】
このように、当該近傍領域からの離脱が容易となる方向を判定する際、近傍領域に到達した時点の外力の向きを基準として採用することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【００１６】
請求項２に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。
【００１７】
近傍領域は、動作範囲外の近傍ではあるものの、その近傍領域内でロボットの姿勢を変化させること、つまりは、監視点が移動することが必要になる場合も想定される。そして、近傍領域内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域から離脱するのが容易になる方向も変化すると考えられる。
【００１８】
そこで、現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【００１９】
このように、現在位置を起点として最も近い境界位置への方向を動作範囲外へ向かう方向と設定し、その方向に向いた基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【００２０】
あるいは、最も近い境界位置が例えば壁面等の平面によって形成されている場合には、現在位置を起点としてその平面に垂直な方向を動作範囲外へ向かう方向と設定し、その方向に向いた基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することによっても、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【００２１】
したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【００２２】
請求項３に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
ロボットに設定されている監視点の現在位置を起点とし、ロボットの原点から当該現在位置への向きとなる仮想的な外力を基準外力として設定し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。
【００２３】
動作範囲は、ロボットのアームが届く範囲として設定されることがある。そのため、動作範囲の境界位置では、ロボットのアームが延びきった状態であることも想定される。換言すると、ロボットのアームが縮む方向は、動作範囲外から離脱する方向であると考えられる。そして、例えばロボットのアームのリーチ限界が定められているのであれば、ロボットの原点に向かう方向がアームを縮める方向となり、最も離脱が容易な方向と考えることができる。
【００２４】
そこで、現在位置を起点とし、原点から現在位置に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、基準外力の大きさは、上記したように例えば予め基準値を設定したり、例えば現在の外力の大きさを便宜的に利用したりすることができる。
【００２５】
このように、現在位置を起点として原点から現在位置に向かう方向の基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【００２６】
請求項４に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、ロボットに設定されている監視点の現在位置から所定の距離だけ移動した仮想的な位置のうち、最も境界位置に近くなる最接近位置を設定し、監視点の現在位置を起点とし、当該現在位置から最接近位置に向かう仮想的な外力を基準外力として設定し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。
【００２７】
近傍領域は、動作範囲外の近傍ではあるものの、その近傍領域内でロボットの姿勢を変化させること、つまりは、監視点が移動することが必要になる場合も想定される。そして、近傍領域内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域から離脱するのが容易になる方向も変化すると考えられる。
【００２８】
そこで、現在位置から所定の距離だけ移動した仮想位置を演算により複数求め、現在位置を起点として最接近位置に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、基準外力の大きさは、上記したように例えば予め基準値を設定したり、例えば現在の外力の大きさを便宜的に利用したりすることができる。
【００２９】
このように、最も境界位置に近くなる仮想的な最接近位置を設定し、現在位置を起点として最接近位置に向かう方向の基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【００３０】
請求項５に記載した発明では、現在の外力のベクトルと基準外力の逆ベクトルとの内積を求め、求めた内積値が０以上であれば動作範囲外から離れる向きであると判定する一方、内積値が負であれば動作範囲外へ向かう方向であると判定する。２つのベクトルの内積をとった場合、方向が一致していれば正の値となり、方向が逆向きであれば負の値となる。そのため、基準外力の逆ベクトルとの内積値が負である場合には、現在の外力が基準外力の向きつまりは動作範囲外へ向かう向きであることが分かるとともに、内積値が０以上であれば現在の外力が動作範囲外への向きではないことが分かる。したがって、内積値を用いることにより、当該近傍領域からの離脱が容易となる方向を容易に判定することができる。
【００３１】
請求項６に記載した発明では、現在の外力のベクトルと基準外力の逆ベクトルとの内積をとることにより、基準外力と同じ向きにおいて最も小さい負の値となり、基準外力と逆向きにおいて最も大きい正の値となる内積値を、離脱容易度として求める。
【００３２】
上記したように、内積値は、２つのベクトルの方向が一致していれば正の１となり最大値となる一方、方向が逆向きであれば負の−１となり最小値となる。また、内積値は、２つのベクトルの方向が直交する状態で０になる。そのため、離脱容易度が正負または０のいずれであるかによって、まず、動作範囲外へ向かう向きであるか否かを判定することができる。
【００３３】
そして、離脱容易度が正である場合には外力が動作範囲外から離脱する方向であり、離脱容易度が０である場合には外力が動作範囲外へは向かっていない状態であることから、移動を制限する必要は無いと考えられる。一方、離脱容易度が負である場合には、外力が動作範囲外へ向かう方向であることから、動作範囲外にでないようにするために移動を制限することが望ましいと考えられる。
【００３４】
そのため、離脱容易度が０以上であるときには、現在の外力に基づいて位置指令を更新することによりその方向への移動を制限せず、離脱容易度が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度を乗算した変換外力に基づいて位置指令を更新することにより、境界位置に近づくほど外力を低減して移動を制限することができる。これにより、動作範囲外へ向かう移動を制限することで動作範囲外に到達してしまうことを抑制できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。
【００３５】
請求項７に記載した発明では、離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新することで動作範囲外から離脱する方向への移動を制限しない一方、離脱容易度が負であるときには、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することにより、その方向への移動を禁止する。これにより、動作範囲外へ向かう移動が禁止されて動作範囲外に到達してしまうことを防止できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。
【００３６】
請求項８に記載した発明では、離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において０となり境界位置から離れるほど１に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。これにより、まず、動作範囲外から離脱する方向へは容易に移動することができるようになる。
【００３７】
さて、基準外力と同じ方向は、監視点がそれまで移動してきた方向であり、作業者はその方向に監視点を移動させたいと考えていることになる。その場合、その方向への移動を制限してしまうと、教示作業に不都合が生じる可能性がある。そのため、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動を許容するとともに、基準外力の向きから外れるほど外力の低減度合いを大きくして移動の制限を強くする。また、移動の制限は、接近度によって境界位置に近づくほど強くする。
【００３８】
これにより、動作範囲外から離脱する方向へは容易に移動することができるようになるとともに、動作範囲外へ向かう方向については、近傍領域への到達時と同じ方向であれば移動が許容されるため教示作業に不都合が生じる可能性を低減でき、到達時の方向からずれるにつれて移動の制限を強くすることにより、意図せずに動作範囲外に到達してしまうことを抑制できる。
【００３９】
請求項９に記載した発明では、離脱容易度が０以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度を乗算した変換外力に基づいて位置指令を更新する。
【００４０】
上記したように、基準外力の向きは監視点がそれまで移動してきた方向であり、その逆向きの方向は、接触等を回避した状態で移動することができる領域であると考えられる。そのため、現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新することにより、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。また、動作範囲外への方向については移動を制限することから、動作範囲外に到達してしまうことを抑制することができる。
【００４１】
請求項１０に記載した発明では、離脱容易度が０以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に０を乗算した変換外力に基づいて位置指令を更新する。これにより、上記したように基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。また、動作範囲外への方向については移動が規制されることから、動作範囲外に到達してしまうことを防止することができる。
【００４２】
請求項１１に記載した発明では、離脱容易度が０以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において０となり境界位置から離れるほど１に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。
【００４３】
これにより、上記したように、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができるとともに、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動が許容されるとともに、基準外力の向きから外れるほど、また、境界位置に近づくほど移動の制限が強くなることから、動作範囲外に到達してしまうことを防止することができる。
【００４４】
請求項１２に記載した発明では、現在位置が動作範囲の境界位置に到達した場合、現在の外力が動作範囲外へ向かう方向である場合には、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向の場合には、現在の外力に基づいて位置指令を更新する。これにより、内積値を求める演算を行わなくても動作範囲外への移動を禁止することができ、動作範囲外に到達してしまうことを防止することができる。
【図面の簡単な説明】
【００４５】
【図１】第１実施形態によるロボットの構成を模式的に示す図
【図２】動作範囲の一例を模式的に示す図
【図３】判定処理の流れを示す図
【図４】近傍領域に到達した状態の一例を模式的に示す図
【図５】低減パターンＡを説明するための図
【図６】低減パターンＢを説明するための図
【図７】低減パターンＣを説明するための図
【図８】低減パターンＤを説明するための図
【図９】低減パターンＥを説明するための図
【図１０】低減パターンＦを説明するための図
【図１１】第２実施形態による方向の判定態様を模式的に示す図
【図１２】第３実施形態による方向の判定態様を模式的に示す図
【図１３】第４実施形態による方向の判定態様を模式的に示す図
【発明を実施するための形態】
【００４６】
以下、複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一符号を付して説明する。
（第１実施形態）
以下、第１実施形態について、図１から図１０を参照しながら説明する。
図１に示すように、本実施形態のロボット１は、複数のアームを有する垂直多関節型のいわゆる６軸ロボットであり、コントローラ２によって制御されている。本実施形態では、ロボット１は、周囲に安全柵等が配置されない状態で作業者が作業する場所の近傍に設置され、作業者と協力して働く協働ロボットを想定している。
【００４７】
このロボット１は、ベース１ａ上に第１軸（Ｊ１）を介して連結されているショルダ１ｂ、ショルダ１ｂに第２軸（Ｊ２）を介して連結されている下アーム１ｃ、下アーム１ｃに第３軸（Ｊ３）を介して連結されている第一上アーム１ｄ、第一上アーム１ｄに第４軸（Ｊ４）を介して連結されている第二上アーム１ｅ、第二上アーム２ｅに第５軸（Ｊ５）を介してオフセットして連結されている手首１ｆ、手首１ｆに第６軸（Ｊ６）を介して連結されているフランジ１ｇを備えている。
【００４８】
本実施形態では、フランジ１ｇの中心位置をロボット１の姿勢の変化を監視するための監視点（Ｐ）として設定している。この監視点（Ｐ）は、例えばロボット１のベース１ａの中心を原点（Ｏ）として設置面に平行なＸ軸およびＹ軸と設置面に垂直なＺ軸とを有する３次元座標系を想定すると、その座標（Ｐｘ，Ｐｙ，Ｐｚ）とフランジ１ｇの回転成分（Ｒｘ，Ｒｙ，Ｒｚ）とにより表現される６次元直交座標系で求めることができる。
【００４９】
また、ロボットの１の監視点（Ｐ）に加わる外力は、３次元座標系における各方向への大きさ成分（Ｆｘ，Ｆｙ、Ｆｚ）とモーメント（Ｍｘ，Ｍｙ，Ｍｚ）とにより表現される６次元直交座標系で求めることができる。ただし、本実施形態ではロボット１の監視点（Ｐ）をフランジ１ｇつまりは最も先端となる部分の位置で規定しているため便宜的に先端力と称しているが、この先端力は、必ずしもロボット１の先端部分に加わる外力だけを示している訳ではなく、ロボット１の監視点（Ｐ）に与えられている現在の外力を示すものとして定義している。
【００５０】
このロボット１は、フランジ１ｇに作業用のツール３が取り付けられ、コントローラ２によって姿勢が制御されながら動作する。このとき、コントローラ２は、周知のようにロボット１の関節部に設けられている図示しないモータを回転駆動することにより、ロボット１を任意の姿勢に制御する。
【００５１】
このコントローラ２は、ロボット１に設けられている図示しない力覚センサやトルクセンサ等によりロボット１に加わる外力を検出可能に構成されているとともに、作業者がロボット１のアーム等に直接的に触れて姿勢を変化させることにより作業位置を教示するダイレクトティーチングが可能に構成されている。
【００５２】
また、コントローラ２は、詳細は後述するが、ロボット１の監視点（Ｐ）の移動方向に応じて外力を低減する、つまりは、作業者が動かしたときの感触を重くするための処理を実行する。つまり、本実施形態では、ロボット１を制御する制御装置に、外力を低減する処理（図３参照）を実行させている。
【００５３】
次に、上記した構成の作用について説明する。
ロボット１には、アームが物理的に到達可能な範囲や周辺構造等に接触しないための範囲として、予め動作範囲が設定されている。この動作範囲は、例えば図２に平面視にて示すように、原点（Ｏ）からの距離によって設定されており、所定の距離に設定されている境界線（Ｌｂ）を含んで原点（Ｏ）に近い側（以下、内側と称する）が動作範囲内となり、境界線（Ｌｂ）よりも原点（Ｏ）から遠い側（以下、外側と称する）が動作範囲外となる。つまり、境界線（Ｌｂ）は、動作範囲の境界位置を示している。この動作範囲は、関節角のリミットや特異点、リーチ限界など、ロボットの構成や動作環境の都合上禁止したい位置や姿勢などについても同様に設定することができる。
【００５４】
また、本実施形態では、境界線（Ｌｂ）の内側であって所定の距離差（ΔＬ）だけ離間した位置に内側境界線（Ｌｃ）が設定されており、これら境界線（Ｌｂ）と内側境界線（Ｌｂ）との間の範囲つまりは動作範囲を縮小近似した範囲が、境界線（Ｌｂ）の近傍且つ内側に設定される近傍領域（Ｒ）となる。なお、図２では平面視にて動作範囲を示しているが、ロボット１の監視点（Ｐ）が上下方向にも移動する場合には、動作範囲や近傍領域（Ｒ）は立体的なものとなる。また、近傍領域（Ｒ）は、境界線（Ｌｂ）を超えない範囲であれば、境界線（Ｌｂ）を含んで設定することもできる。
【００５５】
さて、前述のように、ダイレクトティーチングを行う場合には、動作範囲外への接近度合いに応じてロボットを移動させるために必要となる外力を大きくすることにより、つまりは、ロボットを移動させる際の感触を重くすることにより、動作範囲外への侵入を防ぐことができ、操作性が向上すると考えられる。
【００５６】
ただし、その場合には、動作範囲の境界位置の近傍では常に感触が重くなってしまい、脱出方向つまりは動作範囲外から離間する方向に動かそうとしても感触が重いままになっており、操作性が低下するという問題がある。また、動作範囲外まで到達しないようにするためにはロボットを停止させる必要があるが、停止させた状態から再びダイレクトティーチングを行うためには別の制御手段でアームを動作範囲内まで移動させる必要があり、動作範囲外へ到達する度に煩雑な操作を強いることになる。
【００５７】
そして、ロボット１のような協働ロボットの場合、安全面への配慮から関節部の可動範囲が狭くなっていたり、特定の姿勢を取ることが禁止されていたりする等、動作範囲が狭くなっている傾向があり、ダイレクトティーチング中に動作範囲外の近傍領域や動作範囲の境界位置からの脱出することが必要になる状況が増えることが想定される。
【００５８】
そこで、本実施形態では、コントローラ２において図３に示す処理を実行している。この処理は、端的に言えば、ロボット１の監視点（Ｐ）を移動させる際に必要となる外力ここでは先端力を、その向きに応じて調整する処理である。
【００５９】
具体的には、コントローラ２は、ダイレクトティーチングが開始されると、処理を同時に実行し、現在の先端力（Ｆｃｕｒ）を取得し（Ｓ１）、アームの回転角度等に基づいて現在の監視点（Ｐ）の現在位置を求め（Ｓ２）、監視点（Ｐ）の現在位置が、動作範囲内であって且つ近傍領域よりも内側、つまりは、近傍領域（Ｒ）よりも原点（Ｏ）側であるか否かを判定する（Ｓ３）。
【００６０】
コントローラ２は、現在位置が近傍領域よりも内側であると判定した場合には（Ｓ３：ＹＥＳ）、近傍フラグ（ｉｎｃＦｌａｇ）をＯＦＦして０とする（Ｓ４）。この近傍フラグ（ｉｎｃＦｌａｇ）は、監視点（Ｐ）が近傍領域（Ｒ）に到達した際にＯＮされて１になり、監視点（Ｐ）が近傍領域（Ｒ）から離脱した際にＯＦＦされて０になる。近傍フラグ（ｉｎｃＦｌａｇ）をＯＦＦにした後、コントローラ２は、先端力の低減度合いを示す低減係数（α）を１に設定する（Ｓ５）。この低減係数（α）は、詳細については後述するが、０〜１の数値であって外力を低減する度合いを示している。なお、ステップＳ５で低減係数（α）＝１としているのは、外力を低減しないことを意味する。
【００６１】
そして、コントローラ２は、先端力（Ｆｃｕｒ）に低減係数（α）を乗算することにより変換先端力（ＣＦｃｕｒ）を求め（Ｓ６）、変換先端力（ＣＦｃｕｒ）の方向に位置指令を更新する（Ｓ７）。つまり、コントローラ２は、加えられた先端力（Ｆｃｕｒ）に低減係数（α）を加味することにより、監視点（Ｐ）を移動させる際に必要となる外力の大きさを調整している。ただし、現在位置が近傍領域よりも内側である場合には、α＝１つまりは先端力を低減しないように制御している。この変換先端力（ＣＦｃｕｒ）は、値が大きくなるほど移動に必要な力は少なくなり、値が小さくなるほど移動に必要な外力は多くなる。
【００６２】
さて、アームが移動して例えば図４に近傍領域到達として示すように監視点（Ｐ）が近傍領域（Ｒ）に到達すると、コントローラ２は、監視点（Ｐ）の現在位置が近傍領域よりも内側ではなくなったことから（Ｓ３：ＮＯ）、近傍フラグ（ｉｎｃＦｌａｇ）が１であるか否かを判定する（Ｓ８）。なお、図４に示す破線の矢印Ｓは、監視点（Ｐ）の現在の移動方向を示している。
【００６３】
続いて、コントローラ２は、最初に近傍領域（Ｒ）に到達した時点では近傍フラグ（ｉｎｃＦｌａｇ）が０であることから（Ｓ８：ＮＯ）、近傍フラグ（ｉｎｃＦｌａｇ）をＯＮして１とした後（Ｓ９）、近傍領域（Ｒ）への到達時の先端力（Ｆｃｕｒ）を、６次元直交座標系で求まる到達時先端力（Ｆｉｎｃ）として記憶する（Ｓ１０）。この到達時先端力（Ｆｉｎｃ）は、本実施形態における基準外力に相当する。
【００６４】
続いて、コントローラ２は、離脱容易度（ｅ）を、現在の先端力（Ｆｃｕｒ）と到達時先端力（Ｆｉｎｃ）の逆向きとなる逆先端力（−Ｆｉｎｃ）との内積を取ることにより求める（Ｓ１１）。つまり、離脱容易度（ｅ）は、現在の外力のベクトルと基準外力の逆ベクトルとの内積値として求まる値である。この離脱容易度（ｅ）は、平易に言えば、監視点（Ｐ）を移動させる際に必要となる力の大きさを調整するためのパラメータであり、監視点（Ｐ）が近傍領域（Ｒ）内である場合の制御に用いられる。なお、内積は、回転成分を除いて、３次元座標系の成分のみで内積をとることもできる。これは、他の実施形態も同様である。
【００６５】
監視点（Ｐ）が到達時先端力（Ｆｉｎｃ）と同じ方向に移動している場合には、その方向は動作範囲外に接近する方向であり、到達時先端力（Ｆｉｎｃ）とは逆向きに移動している場合には、その方向は動作範囲外の近傍から離脱する方向であると考えられる。そのため、近傍領域（Ｒ）内においては、動作範囲外に出ないようにするためには到達時先端力（Ｆｉｎｃ）の向きへの移動は抑制すべきであると考えられる。
【００６６】
一方、一方、動作範囲外の近傍からの離脱を容易にするためには到達時先端力（Ｆｉｎｃ）とは逆向きへの移動は抑制する必要がないと考えられるとともに、動作範囲外へ移動するために要する外力よりも動作範囲の境界線（Ｌｂ）から離脱する向きへ移動するために要する外力を相対的に小さくすれば、離脱すべき方向が触覚的に且つ直感的に認識でき、スムーズに動作範囲外の近傍から離脱できると考えられる。
【００６７】
そのため、コントローラ２は、離脱容易度（ｅ）を、現在の先端力（Ｆｃｕｒ）と到達時先端力（Ｆｉｎｃ）の逆向きとなる逆先端力（−Ｆｉｎｃ）との内積によって求めている。内積を取ることにより求められた離脱容易度（ｅ）は、離脱が容易となる方向つまりは到達時とは逆向きになるほど１に近づき、離脱が困難あるいは移動を制限したい向きつまりは到達時と同じ方向になるほど−１に近づくことになる。より具体的には、離脱容易度（ｅ）は、０であれば到達時先端力（Ｆｉｎｃ）と垂直方向であることを示し、０よりも大きければ動作範囲外から離脱する方向であることを示し、０よりも小さければ動作範囲外に向かう方向であることを示している。
【００６８】
換言すると、離脱容易度（ｅ）が０、正または負のいずれであるかによって、監視点（Ｐ）の移動方向が動作範囲外へ向かう方向であるか否かを判定することができる。そのため、コントローラ２は、ステップＳ１０において離脱容易度（ｅ）を求めることにより、監視点（Ｐ）の移動方向が動作範囲外へ向かう方向であるか否かを判定している。なお、近傍領域に到達した最初の時点では先端力（Ｆｃｕｒ）と到達時先端力（Ｆｉｎｃ）とは一致した状態となっている。
【００６９】
離脱容易度（ｅ）を求めた後、コントローラ２は、低減係数（α）を求める（Ｓ１２）。この低減係数（α）は、上記したように０〜１の範囲をとる数値であって、現在の先端力（Ｆｃｕｒ）に乗算することにより、外力をどの程度低減するかの度合いを示している。より具体的には、低減係数（α）＝１の場合には、外力は低減されず、与えられた外力の大きさに対応付けられている所定の距離だけ移動するように位置指令が更新され、操作時の感触は変わらないことになる。一方、低減係数（α）が１未満となった場合には、外力が低減され、同じ外力であっても相対的に短い距離だけ移動するように位置指令が更新され、操作時の感触が相対的に重たくなる。
【００７０】
このように低減係数（α）を現在の先端力（Ｆｃｕｒ）に乗算することにより、監視点（Ｐ）の現在位置が近傍領域（Ｒ）内である場合において、動作範囲外に向かう方向には移動し難くしたり、動作範囲外から離脱する方向には移動し易くしたりすることができる。
【００７１】
ところで、離脱容易度（ｅ）は、上記したように−１〜＋１までの数値を取ることから、その値そのものが、離脱が容易となる方向を示すパラメータとして、あるいは、衝突等を回避することができるように誘導すべき方向を示すパラメータとして用いることができるという利点がある。例えば、離脱容易度（ｅ）が正である場合には、現在の外力に単純に離脱容易度（ｅ）を乗算することにより、動作範囲外の方向への移動を制限しつつ、近傍領域（Ｒ）から離脱する方向への移動を制限しないようにすることが可能となる。
【００７２】
その一方で、現在の移動方向は作業者が望んでいる方向であることから、動作範囲外へ向かう方向への移動を制限することは必ずしも作業者の希望に添ったものにはならない状況も考えられる。かといって、動作範囲外まで到達してしまうと前述のようにエラーとしてロボット１が停止してしまうことから、動作範囲外に到達してしまうことは避けるべきである。しかし、操作時の感触を相対的に重くしても移動させること自体は可能であることも想定され、動作範囲外に到達してしまう状況も考えられる。
【００７３】
また、ロボット１のような協働ロボットは、安全面への配慮から従来の一般的な産業用ロボットよりも関節部の可動範囲が狭くなっていたり、特定の姿勢を取ることが禁止されていたりする等、従来の産業用ロボットに比べて動作範囲が狭い傾向にあるため、意図せずに動作範囲外まで移動させてしまう可能性が想定される。
【００７４】
そして、これらの状況は、近傍領域（Ｒ）の大きさ、つまりは、境界位置からの距離（ΔＬ）によっても変化すると考えられる。そのため、本実施形態では、様々な状況に対応すべく、低減係数（α）を以下に説明する複数のパターンによって算出可能にしている。以下、各パターンを低減パターンＡ〜Ｆと称して個別に説明する。ただし、これらの低減パターンＡ〜Ｆは、いずれか１つを採用することもできるが、例えば現在位置と境界位置との間の距離に応じてパターンを変更する等、複数のパターンを採用することもできる。
【００７５】
＜低減パターンＡ：図５参照＞
低減パターンＡでは、離脱容易度（ｅ）が０以上であるときには、現在の外力（Ｆｃｕｒ）に基づいて位置指令を更新する。より具体的には、離脱容易度（ｅ）が０以上であるときには、低減係数（α）＝１とし、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）と同じになるように、つまりは、外力を低減しない状態となるようにする。
【００７６】
一方、離脱容易度（ｅ）が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度（ｋ）とすると、低減係数（α）＝ｋとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に接近度（ｋ）を乗算した値とになるように、つまりは、外力を低減した状態となるようにする。
【００７７】
この場合、変換外力（ＣＦｃｕｒ）が取り得る範囲は、図５に破線にて示すように、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも内側に向かう方向であれば、現在の外力（Ｆｃｕｒ）に即したものとなる。このとき、現在の外力（Ｆｃｕｒ）に基づいて位置指令が更新されることから、動作範囲外の近傍から動作範囲内に戻る方向であれば操作時の感触が重たくなることがなく、一定に軽い状態となる。
【００７８】
また、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも外側に向かう方向であれば、変換外力（ＣＦｃｕｒ）が取り得る範囲は、現在の外力（Ｆｃｕｒ）に接近度（ｋ）を乗算した範囲となる。このとき、現在の外力（Ｆｃｕｒ）よりも低減された変換外力（ＣＦｃｒｕ）に基づいて位置指令が更新されることになるため、動作範囲外に向かう向きであれば、操作時の感触が相対的に且つ一定で重たくなる。
【００７９】
このように動作範囲外に近づくほど操作時の感触を重たくすることにより、動作範囲外に向かう移動を物理的に制限することができるとともに、動作範囲外に近づいていることを作業者に認識させることができ、その方向への移動を避けるあるいは慎重に行うようになることから、動作範囲外に出てしまうおそれを低減できる。そして、動作範囲外から離脱する方向への移動は制限されないため、動作範囲外からの離脱も容易に行うことができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、境界位置からの距離差（ΔＬ）がある程度大きく、近傍領域（Ｒ）内での移動が想定される場合等に特に有意となる。
【００８０】
＜低減パターンＢ：図６参照＞
低減パターンＢでは、離脱容易度（ｅ）が０以上であるときには、低減パターンＡと同様に、現在の外力（Ｆｃｕｒ）に基づいて位置指令を更新し、外力を低減しない状態となるようにする。一方、離脱容易度（ｅ）が負であるときには、低減係数（α）＝０とする。
【００８１】
この場合、変換外力（ＣＦｃｕｒ）が取り得る範囲は、図６に破線にて示すように、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも内側に向かう方向であれば、現在の外力（Ｆｃｕｒ）に応じたものとなる。一方、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも外側に向かう方向であれば、変換外力（ＣＦｃｕｒ）が０になることから、その方向への移動が規制されることになる。
【００８２】
このように動作範囲外に向かう方向への移動を規制することにより、動作範囲外に到達してしまうことを制限することができるとともに、動作範囲外の方向への移動であることを作業者に認識させることができ、その方向への移動を止めるようになることから、動作範囲外に出てしまうことを抑制できる。そして、動作範囲外から離脱する方向への移動は制限されないため、動作範囲外からの離脱も容易に行うことができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、境界位置からの距離差（ΔＬ）が小さい場合等に特に有意となる。
【００８３】
＜低減パターンＣ：図７参照＞
低減パターンＣでは、離脱容易度（ｅ）が０以上であるときには、低減パターンＡと同様に、現在の外力（Ｆｃｕｒ）に基づいて位置指令を更新し、外力を低減しない状態となるようにする。
【００８４】
一方、離脱容易度（ｅ）が負であるときには、低減係数（α）＝｜ｅ｜・ｋとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に離脱容易度（ｅ）の絶対値（｜ｅ｜）と接近度（ｋ）とを乗算した値となるように、つまりは、外力を低減した状態となるようにする。
【００８５】
この場合、変換外力（ＣＦｃｕｒ）が取り得る範囲は、図７に破線にて示すように、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも内側に向かう方向であれば、現在の外力（Ｆｃｕｒ）に応じたものとなる。一方、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも外側に向かう方向であれば、近傍領域（Ｒ）への到達時の移動方向（Ｓ）と同じ向きであればある程度の移動が許容され、移動方向（Ｓ）から外れるほどその移動が制限されることになる。
【００８６】
このように動作範囲外に向かう方向への移動を移動方向（Ｓ）との関係に基づいて制限することにより、感触が重たくなることで動作範囲外に到達してしまうことを制限しつつ、移動方向（Ｓ）つまりは作業者が望む方向への移動をある程度許容することができる。また、動作範囲外から離脱する方向への移動は制限されないため、動作範囲外からの離脱も容易に行うことができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、近傍領域（Ｒ）においてある程度の移動を許容したい場合に特に有意である。
【００８７】
＜低減パターンＤ：図８参照＞
低減パターンＤでは、離脱容易度（ｅ）が０以上であるときには、低減係数（α）＝ｅとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に離脱容易度（ｅ）を乗算した値となるようにし、現在の外力（Ｆｃｕｒ）を低減した変換外力（ＣＦｃｕｒ）に基づいて位置指令を更新する状態となるようにする。
【００８８】
一方、離脱容易度（ｅ）が負であるときには、低減係数（α）＝ｋとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に接近度（ｋ）とを乗算した値となるように、つまりは、外力を低減した状態となるようにする。
【００８９】
この場合、変換外力（ＣＦｃｕｒ）が取り得る範囲は、図８に破線にて示すように、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも内側に向かう方向であれば、移動方向（Ｓ）と逆向きの方向においては現在の外力（Ｆｃｕｒ）に応じて位置指令が更新される一方、移動方向（Ｓ）と逆向きの方向からずれるほど低減された状態で位置指令が更新される。つまり、移動方向（Ｓ）と逆向きの方向への移動は制限されない一方、移動方向（Ｓ）と逆向きの方向からずれるほど移動が制限される。
【００９０】
一方、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも外側に向かう方向であれば、変換外力（ＣＦｃｕｒ）が取り得る範囲は、現在の外力（Ｆｃｕｒ）に接近度（ｋ）を乗算した範囲となる。このとき、現在の外力（Ｆｃｕｒ）よりも低減された変換外力（ＣＦｃｒｕ）に基づいて位置指令が更新されることになるため、動作範囲外に向かう向きであれば、操作時の感触が相対的に且つ一定で重たくなる。
【００９１】
このように動作範囲外に向かう方向への移動を制限しつつ、動作範囲外から離脱する方向への移動については到達時の移動方向（Ｓ）と逆向きへの移動を最も容易となるようにすることにより、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、近傍領域（Ｒ）に到達してしまった際に早期あるいは緊急的に離脱させる場合に特に有意となる。
【００９２】
＜低減パターンＥ：図９参照＞
低減パターンＥでは、離脱容易度（ｅ）が０以上であるときには、低減係数（α）＝ｅとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に離脱容易度（ｅ）を乗算した値となるようにし、現在の外力（Ｆｃｕｒ）を低減した変換外力（ＣＦｃｕｒ）に基づいて位置指令を更新する状態となるようにする。一方、離脱容易度（ｅ）が負であるときには、低減係数（α）＝０とする。
【００９３】
この場合、変換外力（ＣＦｃｕｒ）が取り得る範囲は、図９に破線にて示すように、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも内側に向かう方向であれば、移動方向（Ｓ）と逆向きの方向においては現在の外力（Ｆｃｕｒ）に応じて位置指令が更新される一方、移動方向（Ｓ）と逆向きの方向からずれるほど低減された状態で位置指令が更新される。つまり、移動方向（Ｓ）と逆向きの方向への移動は制限されない一方、移動方向（Ｓ）と逆向きの方向からずれるほど移動が制限される。そして、動作範囲外に向かう方向への移動が規制されることになる。
【００９４】
このように動作範囲外に向かう方向への移動を規制しつつ、動作範囲外から離脱する方向への移動については到達時の移動方向（Ｓ）と逆向きへの移動を最も容易となるようにすることができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性が低下することも抑制できる。このような制御方法は、近傍領域（Ｒ）に到達してしまった際に早期あるいは緊急的に離脱させる場合に特に有意となる。
【００９５】
＜低減パターンＦ：図１０参照＞
低減パターンＥでは、離脱容易度（ｅ）が０以上であるときには、低減係数（α）＝ｅとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に離脱容易度（ｅ）を乗算した値となるようにし、現在の外力（Ｆｃｕｒ）を低減した変換外力（ＣＦｃｕｒ）に基づいて位置指令を更新する状態となるようにする。
【００９６】
一方、離脱容易度（ｅ）が負であるときには、低減係数（α）＝｜ｅ｜・ｋとすることにより、ステップＳ６において算出される変換外力（ＣＦｃｕｒ）が現在の外力（Ｆｃｕｒ）に離脱容易度（ｅ）の絶対値（｜ｅ｜）と接近度（ｋ）とを乗算した値となるように、つまりは、外力を低減した状態となるようにする。
【００９７】
この場合、変換外力（ＣＦｃｕｒ）が取り得る範囲は、図１０に破線にて示すように、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも内側に向かう方向であれば、移動方向（Ｓ）と逆向きの方向においては現在の外力（Ｆｃｕｒ）に応じて位置指令が更新される一方、移動方向（Ｓ）と逆向きの方向からずれるほど低減された状態で位置指令が更新される。つまり、移動方向（Ｓ）と逆向きの方向への移動は制限されない一方、移動方向（Ｓ）と逆向きの方向からずれるほど移動が制限される。
【００９８】
そして、現在の外力（Ｆｃｕｒ）が近傍領域（Ｒ）への到達時の移動方向（Ｓ）に垂直な面（ｅ＝０）よりも外側に向かう方向であれば、移動方向（Ｓ）と同じ向きであればある程度の移動が許容され、移動方向（Ｓ）から外れるほどその移動が制限されることになる。
【００９９】
このように動作範囲外に向かう方向への移動、および、動作範囲外から離脱する方向への移動を移動方向（Ｓ）との関係に基づいて制限することにより、感触が重たくなることで動作範囲外に到達してしまうことを制限しつつ、移動方向（Ｓ）つまりは作業者が望む方向への移動をある程度許容することができる。また、動作範囲外から離脱する方向への移動については到達時の移動方向（Ｓ）と逆向きへの移動が最も容易となるようにすることができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性が低下することも抑制できる。このような制御方法は、近傍領域（Ｒ）においてある程度の移動を許容したい場合に特に有意となる。
【０１００】
なお、図３の処理には示していないが、監視点（Ｐ）の現在位置が動作範囲の境界位置に到達した場合には、低減係数（α）を求めることなく、現在の外力（Ｆｃｕｒ）が動作範囲外へ向かう方向であれば現在の外力（Ｆｃｕｒ）に０を乗算した変換外力（Ｆｃｕｒ＝０）に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向であれば現在の外力（Ｆｃｕｒ）に基づいて位置指令を更新する。これにより、動作範囲外に出てしまうことを迅速に防止することができる。
【０１０１】
このようにして低減係数（α）を求めた後、コントローラ２は、図３に示すように、ステップＳ６に移行して変換外力（ＣＦｃｕｒ）を求め、求めた変換外力（ＣＦｃｕｒ）に基づいて位置指令を更新した後（Ｓ７）、ステップＳ１に移行して処理を繰り返すことにより、監視点（Ｐ）を移動させるために要する外力の調整、つまりは、必要に応じた外力の低減を行っている。
【０１０２】
以上説明した制御方法によれば、次のような効果を得ることができる。
ロボット１の制御方法は、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、ロボットに設定されている監視点が近傍領域に到達したときの外力を基準外力として記憶し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。
【０１０３】
ダイレクトティーチングでは、作業者がアーム等に触れながらロボットの姿勢を変化させている。このとき、ロボットの姿勢は制御装置によって把握できるため、ロボットに設定されている監視点の現在位置は、ロボットの現在の姿勢から特定することができる。また、ダイレクトティーチングが可能な構成の場合、力覚センサやトルクセンサ等によって外力を検出することができるため、加えられた外力の向きおよび大きさも特定することができる。
【０１０４】
ダイレクトティーチング時に動作範囲外に到達してしまうことを抑制するためには、近傍領域内での移動を制限することが効果的であると考えられる。その一方で、近傍領域内での移動を全て制限してしまうと、近傍領域から離脱したい場合の移動までも制限されてしまい操作性が悪化することになる。そのため、動作範囲外に到達してしまうことを抑制する場合には、近傍領域から離脱する方向への移動については容易となるようにすることが望ましい。
【０１０５】
ただし、動作範囲は、ロボットのアームが届く範囲内ではあるものの、その全域ではなく、例えば周辺設備に接触しない範囲が設定されることがある。そのため、現在位置から最も近い境界位置から離脱しようとした際に別の境界位置に近づいてしまう可能性がある。つまり、動作範囲外の近傍からの離脱を容易とするためには、どの方向であれば動作範囲外に出てしまうことを抑制できるか、つまりは、どの方向を基準とすればよいかが重要となる。
【０１０６】
そこで、監視点が近傍領域に到達したときの外力を基準外力として記憶しておき、監視点の現在位置が近傍領域内である場合には、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。これにより、まず、現在の移動方向が移動を制限すべき方向であるか否かを判定することができる。
【０１０７】
また、監視点が近傍領域に到達したときの外力の向きは、監視点のそれまでの移動方向に倣った方向であることから、その移動方向は、監視位置が移動してきた経路つまりは近傍領域から離脱する際に障害物等がない方向を指し示している。そのため、近傍領域への到達時の外力の向きを基準とすれば、近傍領域つまりは動作範囲外の近傍から離脱したい場合において周辺設備等への接触を避けることができる方向、すなわち、離脱が容易となる方向を特定することができる。
【０１０８】
このように、当該近傍領域からの離脱が容易となる方向を判定する際、近傍領域に到達した時点の外力の向きを基準として採用することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うこと等により、意図せずに動作範囲外に到達してしまうことを抑制でき、エラーによって教示作業が中断されることを防止することができる等、ダイレクトティーチング時の操作性を向上させることができるようになる。
【０１０９】
そして、近傍領域に到達した時点の外力の向きを基準としていることにより、監視点（Ｐ）の移動位置を細かく記憶する必要が無いことから、処理の負荷が過度に増加することを抑制することができる。これは、教示中に例えば手が震えたり多少行き過ぎた位置から戻したりすることによって直近の移動経路が動作範囲外側から内側に向かうといった状況が想定されるダイレクトティーチングにおいて特に有意となる。
【０１１０】
また、ロボット１の制御方法は、現在の外力のベクトルと基準外力の逆ベクトルとの内積を求め、求めた内積値が０以上であれば動作範囲外から離れる向きであると判定する一方、内積値が負であれば動作範囲外へ向かう方向であると判定する。２つのベクトルの内積をとった場合、方向が一致していれば正の値となり、方向が逆向きであれば負の値となる。
【０１１１】
そのため、基準外力の逆ベクトルとの内積値が負である場合には、現在の外力が基準外力の向きつまりは動作範囲外へ向かう向きであることが分かるとともに、内積値が０以上であれば現在の外力が動作範囲外への向きではないことが分かる。したがって、内積値を用いることにより、当該近傍領域からの離脱が容易となる方向を容易に判定することができる。
【０１１２】
また、ロボット１の制御方法は、現在の外力のベクトルと基準外力の逆ベクトルとの内積をとることにより、基準外力と同じ向きにおいて最も小さい負の値となり、基準外力と逆向きにおいて最も大きい正の値となる内積値を、離脱容易度として求める。この場合、離脱容易度が正である場合には外力が動作範囲外から離脱する方向であり、離脱容易度が０である場合には外力が動作範囲外へは向かっていない状態であることから、移動を制限する必要は無いと考えられる。一方、離脱容易度が負である場合には、外力が動作範囲外へ向かう方向であることから、動作範囲外にでないようにするために移動を制限することが望ましいと考えられる。
【０１１３】
そのため、離脱容易度が０以上であるときには、現在の外力に基づいて位置指令を更新することによりその方向への移動を制限せず、離脱容易度が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度を乗算した変換外力に基づいて位置指令を更新することで、境界位置に近づくほど外力を低減して移動を制限する。
【０１１４】
この場合、変換先端力（ＣＦｃｕｒ）は、離脱が容易となる向きほど大きくなることから移動する際の感触が相対的に軽くなる一方、離脱が困難となる向きほど小さくなることから移動する際の感触が相対的に重くなる。これにより、動作範囲外へ向かう移動を制限することで動作範囲外に到達してしまうことを抑制できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。また、これにより、動作範囲外とならないようにするためにはどちらの向きに移動させればよいかを、触覚的に容易に示すことができる。
【０１１５】
また、ロボット１の制御方法は、離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新することで動作範囲外から離脱する方向への移動を制限しない一方、離脱容易度が負であるときには、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することにより、その方向への移動を禁止する。これにより、動作範囲外へ向かう移動が禁止されて動作範囲外に到達してしまうことを防止できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。
【０１１６】
また、ロボット１の制御方法は、離脱容易度が０以上であるときには現在の外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において０となり境界位置から離れるほど１に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。これにより、まず、動作範囲外から離脱する方向へは容易に移動することができるようになる。
【０１１７】
さて、基準外力と同じ方向は、監視点がそれまで移動してきた方向であり、作業者はその方向に監視点を移動させたいと考えていることになる。その場合、その方向への移動を制限してしまうと、教示作業に不都合が生じる可能性がある。そのため、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動を許容するとともに、基準外力の向きから外れるほど外力の低減度合いを大きくして移動の制限を強くする。また、移動の制限は、接近度によって境界位置に近づくほど強くする。
【０１１８】
これにより、動作範囲外から離脱する方向へは容易に移動することができるようになるとともに、動作範囲外へ向かう方向については、近傍領域への到達時と同じ方向であれば移動が許容されるため教示作業に不都合が生じる可能性を低減でき、到達時の方向からずれるにつれて移動の制限を強くすることにより、意図せずに動作範囲外に到達してしまうことを抑制できる。
【０１１９】
また、ロボット１の制御方法は、離脱容易度が０以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に境界位置において０となり境界位置から離れるほど１に近づく接近度を乗算した変換外力に基づいて位置指令を更新する。
【０１２０】
上記したように、基準外力の向きは監視点がそれまで移動してきた方向であり、その逆向きの方向は、接触等を回避した状態で移動することができる領域であると考えられる。そのため、現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新することにより、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。
【０１２１】
つまり、到達時の外力の向きとは逆向きであるほど外力の低減度合いを小さくすることにより、到達時の外力の向きとは逆向き、つまりは、現在位置まで移動する際に通過した位置の向きに対しては移動が抑制されず、感触が重たくなることがないため、操作性が低下することがなく、また、動作範囲外の近傍からの離脱も容易になる。また、動作範囲外への方向については、動作範囲外に近づくほど感触が重たくなって移動が抑制され、意図せずに動作範囲外に到達してしまうことを抑制できる。
【０１２２】
また、ロボット１の制御方法は、離脱容易度が０以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に０を乗算した変換外力に基づいて位置指令を更新する。これにより、上記したように基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。また、動作範囲外への方向については移動が規制されることから、動作範囲外に到達してしまうことを防止することができる。
【０１２３】
また、ロボット１の制御方法は、離脱容易度が０以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において０となり境界位置から離れるほど１に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。
【０１２４】
これにより、上記したように、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができるとともに、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動が許容されるとともに、基準外力の向きから外れるほど、また、境界位置に近づくほど移動の制限が強くなることから、動作範囲外に到達してしまうことを防止することができる。また、現在の外力が到達時の外力の向きに近いほど、外力の低減度合い大きくすることにより、相対的にアームが重くなったと感じることになるため、動作範囲外に近づいていることを作業者に体感で認識させることもできる。
【０１２５】
また、ロボット１の制御方法は、現在位置が動作範囲の境界位置に到達した場合、現在の外力が動作範囲外へ向かう方向である場合には、現在の外力に０を乗算した変換外力に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向の場合には、現在の外力に基づいて位置指令を更新する。これにより、内積値を求める演算を行わなくても動作範囲外への移動を禁止することができ、動作範囲外に到達してしまうことを防止することができる。
【０１２６】
（第２実施形態）
以下、第２実施形態について、図１１を参照しながら説明する。第２実施形態によるロボット１の制御方法は、境界位置の形状または境界位置までの距離に基づいて当該近傍領域からの離脱が容易となる方向を判定する点において第１実施形態と異なっている。なお、ロボット１の構成は第１実施形態と共通するため同一符号を付して詳細な説明は省略する。
【０１２７】
近傍領域（Ｒ）は、動作範囲外の近傍ではあるものの、その近傍領域内でロボット１の姿勢を変化させること、つまりは、近傍領域内で監視点（Ｐ）が移動することが必要になる場合も想定される。そして、近傍領域（Ｒ）内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域（Ｒ）から離脱するのが容易になる方向も変化すると考えられる。
【０１２８】
そこで、本実施形態では、現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【０１２９】
この場合、図１１に距離パターンとして示すように、監視点（Ｐ）の現在位置に最も近い境界位置上の近接点（Ｐ１）を特定すると、現在位置から近接点（Ｐ１）への方向が動作範囲外へ向かう方向となる。そして、現在位置を起点とし、その方向に向いた仮想的な基準外力（ｖＦ)を設定し、現在の外力例えば先端力（Ｆｃｕｒ）と基準外力（ｖＦ)とを比較することにより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、第１実施形態のように先端力（Ｆｃｕｒ）と基準外力（ｖＦ)との内積を取ることにより、現在の移動方向を判定することができるが、内積をとる以外の手法により現在の移動方向を判定することもできる。
【０１３０】
このように、監視点（Ｐ）の現在位置と近接点（Ｐ１）とに基づいて、つまりは、現在位置と境界位置との距離に基づいて現在の移動方向を判定することにより、第１実施形態と同様に、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【０１３１】
あるいは、図１１に形状パターンとして示すように、最も近い境界位置が例えば壁面等の平面によって形成されている場合には、現在位置を起点としてその平面に例えば垂直な方向を動作範囲外へ向かう方向と設定し、その方向に向いた基準外力（ｖＦ）に基づいて当該近傍領域からの離脱が容易となる方向を判定することによっても、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【０１３２】
したがって、第１実施形態と同様に例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。また、近傍領域（Ｒ）内で監視点（Ｐ）の現在位置が変化した場合であっても、その変化に追従して、移動を制限すべき方向と離脱が容易となる方向とを特定することができる。
【０１３３】
この場合、第１実施形態で説明した低減パターンＡ〜Ｆと組み合わせることもできる。例えば、第１実施形態で説明した到達時先端力（Ｆｉｎｃ）の代わりに仮想的な基準外力（ｖＦ）を用いて処理を行うことにより、本実施形態による制御方法においても、第１実施形態で説明した各低減パターンＡ〜Ｆによる作用および効果を同様に得ることができる。
【０１３４】
（第３実施形態）
以下、第３実施形態について、図１２を参照しながら説明する。第３実施形態によるロボット１の制御方法は、ロボットの原点から当該現在位置への向きとなる仮想的な外力に基づいて当該近傍領域からの離脱が容易となる方向を判定する点において第１実施形態と異なっている。なお、ロボット１の構成は第１実施形態と共通するため同一符号を付して詳細な説明は省略する。
【０１３５】
近傍領域（Ｒ）は、動作範囲外の近傍ではあるものの、その近傍領域内でロボット１の姿勢を変化させること、つまりは、近傍領域内で監視点（Ｐ）が移動することが必要になる場合も想定される。そして、近傍領域（Ｒ）内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域（Ｒ）から離脱するのが容易になる方向も変化すると考えられる。
【０１３６】
また、動作範囲は、ロボットのアームが届く範囲として設定されることがある。そのため、動作範囲の境界位置では、ロボットのアームが延びきった状態であることも想定される。換言すると、ロボットのアームが縮む方向は、動作範囲外から離脱する方向であると考えられる。そして、例えばロボットのアームのリーチ限界が定められているのであれば、ロボットの原点（Ｏ）に向かう方向がアームを縮める方向となり、最も離脱が容易な方向と考えることができる。
【０１３７】
そこで、本実施形態では、ロボット１に設定されている監視点（Ｐ）の現在位置を起点とし、ロボット１の原点（Ｏ）から当該現在位置への向きとなる仮想的な外力を基準外力（ｖＦ）として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【０１３８】
この場合、図１２に示すように、監視点（Ｐ）の現在位置と原点とを通る仮想線（ｖＬ）を設定し、現在位置を起点として仮想線（ｖＬ）に沿って現在位置よりも外側に向かう方向が動作範囲外へ向かう方向となる。そのため、現在位置を起点とし、その方向に向いた仮想的な基準外力（ｖＦ)を設定し、現在の外力例えば先端力（Ｆｃｕｒ）と基準外力（ｖＦ)とを比較することにより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、第１実施形態のように先端力（Ｆｃｕｒ）と基準外力（ｖＦ)との内積を取ることにより、現在の移動方向を判定することができるが、内積をとる以外の手法により現在の移動方向を判定することもできる。
【０１３９】
このように、現在位置を起点とし、現在位置と原点（Ｏ）とを通る仮想線（ｖＬ）に沿った基準外力（ｖＦ）に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。これにより、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【０１４０】
したがって、第１実施形態と同様に例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。また、近傍領域（Ｒ）内で監視点（Ｐ）の現在位置が変化した場合であっても、その変化に追従して、移動を制限すべき方向と離脱が容易となる方向とを特定することができる。
【０１４１】
この場合、第１実施形態で説明した低減パターンＡ〜Ｆと組み合わせることもできる。例えば、第１実施形態で説明した到達時先端力（Ｆｉｎｃ）の代わりに仮想的な基準外力（ｖＦ）を用いて処理を行うことにより、本実施形態による制御方法においても、第１実施形態で説明した各低減パターンＡ〜Ｆによる作用および効果を同様に得ることができる。
（第４実施形態）
以下、第４実施形態について、図１３を参照しながら説明する。第４実施形態によるロボット１の制御方法は、現在位置から移動したと仮定した場合における境界位置との距離に基づいて当該近傍領域からの離脱が容易となる方向を判定する点において第１実施形態と異なっている。なお、ロボット１の構成は第１実施形態と共通するため同一符号を付して詳細な説明は省略する。
【０１４２】
近傍領域（Ｒ）は、動作範囲外の近傍ではあるものの、その近傍領域（Ｒ）内でロボットの姿勢を変化させること、つまりは、監視点（Ｐ）が移動することが必要になる場合も想定される。そして、近傍領域（Ｒ）内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域（Ｒ）から離脱するのが容易になる方向も変化すると考えられる。
【０１４３】
そこで、本実施形態では、ロボット１に設定されている監視点（Ｐ）の現在位置から所定の距離だけ移動した仮想位置（ｖＰ）のうち、最も境界位置に近くなる最接近位置（ｖＰ）を設定し、監視点（Ｐ）の現在位置を起点とし、当該現在位置から最接近位置（ｖＰ）に向かう仮想的な外力を基準外力（ｖＦ）として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【０１４４】
具体的には、図１３に示すように、現在位置を中心とした例えば仮想円（ｖＣ）を設定し、仮想円（ｖＣ）上に複数の仮想位置（ｖＰ０〜ｖＰｎ）を設定し、各仮想位置（ｖＰ０〜ｖＰｎ）のうち境界位置に最も近くなる例えば仮想位置（ｖＰ０）を最接近位置として特定する。これは、監視点（Ｐ）の現在位置から最接近位置に向かった場合が、最も動作範囲外になり易いと考えられるためである。
【０１４５】
そして、現在位置を起点として最接近位置に向かう仮想的な基準外力（ｖＦ）を設定し、現在の外力と基準外力とを比較することより当該近傍領域からの離脱が容易となる方向を判定することにより、動作範囲外へ出やすい方向つまりは移動を制限すべき方向に加えて、離脱が容易となる方向をも特定することができる。
【０１４６】
したがって、第１実施形態と同様に例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。また、近傍領域（Ｒ）内で監視点（Ｐ）の現在位置が変化した場合であっても、その変化に追従して、移動を制限すべき方向と離脱が容易となる方向とを特定することができる。
【０１４７】
この場合、第１実施形態で説明した低減パターンＡ〜Ｆと組み合わせることもできる。例えば、第１実施形態で説明した到達時先端力（Ｆｉｎｃ）の代わりに仮想的な基準外力（ｖＦ）を用いて処理を行うことにより、本実施形態による制御方法においても、第１実施形態で説明した各低減パターンＡ〜Ｆによる作用および効果を同様に得ることができる。
【０１４８】
（その他の実施形態）
実施形態ではフランジ１ｇの中心位置をロボット１の監視点（Ｐ）として設定する例を示したが、ロボット１の監視点（Ｐ）は、フランジ１ｇの中心位置に限らず、アーム、ツール３の任意の位置に設定することができる。ロボット１の形状やアームの外形等は機械的に定まっており、また、作業に用いるツール３の形状も予め特定することができる。そして、機械的に形状が特定できれば、任意の位置に設定した監視点（Ｐ）は、ロボット１の姿勢に基づいて特定することができる。
【０１４９】
そのため、監視点（Ｐ）を任意の位置に設定した場合であっても現在位置や加えられた外力を特定でき、上記した制御方法を用いてロボット１を制御することができる。つまり、動作範囲外への侵入を監視する監視点（Ｐ）は、先端以外の任意の部位（肩、肘など）にとることもできる。先端力に応じて先端位置を移動させる際、目標位置から関節角度を求める（逆運動学計算）過程で、各リンク位置を求めているため、監視位置を各リンク座標系上の位置としてあらかじめ与えておくことで、先端に伴って移動する監視位置を求めることができる。例えば、監視部位をロボットの凸部に設定しておくことにより、ロボット周囲の障害物への衝突防止にも貢献できる。
【０１５０】
また、コントローラ２のように、上記した制御方法を実施可能な制御装置によりロボット１を制御することによっても、同様に、ダイレクトティーチング時に操作性が低下することを抑制できる。
【０１５１】
実施形態では監視点（Ｐ）の現在位置を６次元座標で特定する例を示したが、監視点（Ｐ）の現在位置やロボット１の姿勢あるいは動作範囲を一意に定められるパラメータであれば、他の座標系を用いることもできる。例えば、Ｔ型変数やＪ型変数を用いてソフトウェアで上限等のリミットを設定して動作範囲を規定することができる。
【符号の説明】
【０１５２】
図面中、１はロボット、２はコントローラ（制御装置）を示す。
【図１】
2020049592.tif 000003
【図２】
2020049592.tif 000004
【図３】
2020049592.tif 000005
【図４】
2020049592.tif 000006
【図５】
2020049592.tif 000007
【図６】
2020049592.tif 000008
【図７】
2020049592.tif 000009
【図８】
2020049592.tif 000010
【図９】
2020049592.tif 000011
【図１０】
2020049592.tif 000012
【図１１】
2020049592.tif 000013
【図１２】
2020049592.tif 000014
【図１３】
2020049592.tif 000015