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

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

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許-ロボットの制御方法 図1
  • 特許-ロボットの制御方法 図2
  • 特許-ロボットの制御方法 図3
  • 特許-ロボットの制御方法 図4
  • 特許-ロボットの制御方法 図5
  • 特許-ロボットの制御方法 図6
  • 特許-ロボットの制御方法 図7
  • 特許-ロボットの制御方法 図8
  • 特許-ロボットの制御方法 図9
  • 特許-ロボットの制御方法 図10
  • 特許-ロボットの制御方法 図11
  • 特許-ロボットの制御方法 図12
  • 特許-ロボットの制御方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-17
(45)【発行日】2023-04-25
(54)【発明の名称】ロボットの制御方法
(51)【国際特許分類】
   B25J 9/22 20060101AFI20230418BHJP
   G05B 19/42 20060101ALI20230418BHJP
【FI】
B25J9/22 Z
G05B19/42 D
【請求項の数】 12
(21)【出願番号】P 2018181640
(22)【出願日】2018-09-27
(65)【公開番号】P2020049592
(43)【公開日】2020-04-02
【審査請求日】2021-09-13
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】佐藤 晶則
(72)【発明者】
【氏名】河地 勇登
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開2017-77600(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
G05B 19/42 - 19/46
(57)【特許請求の範囲】
【請求項1】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点が前記近傍領域に到達したときの外力を基準外力として記憶し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、
前記近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新することを特徴とするロボットの制御方法。
【請求項2】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点の現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、
前記近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新することを特徴とするロボットの制御方法。
【請求項3】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点の現在位置を起点とし、前記ロボットの原点から当該現在位置への向きとなる仮想的な外力を基準外力として設定し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、
前記近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新することを特徴とするロボットの制御方法。
【請求項4】
与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、
前記ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、
前記ロボットに設定されている監視点の現在位置から所定の距離だけ移動した仮想的な位置のうち、最も境界位置に近くなる最接近位置を設定し、
監視点の現在位置を起点とし、当該現在位置から前記最接近位置に向かう仮想的な外力を基準外力として設定し、
前記監視点の現在位置が前記近傍領域内である場合、現在の外力と前記基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、
前記近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新することを特徴とするロボットの制御方法。
【請求項5】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積を求め、
求めた内積値が0以上であれば動作範囲外から離れる向きであると判定する一方、内積値が負であれば動作範囲外へ向かう方向であると判定することを特徴とする請求項1から3のいずれか一項記載のロボットの制御方法。
【請求項6】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項1から5のいずれか一項記載のロボットの制御方法。
【請求項7】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項1から5のいずれか一項記載のロボットの制御方法。
【請求項8】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に前記離脱容易度の絶対値と境界位置において0となり境界位置から離れるほど1に近づく接近度とを乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項1から5のいずれか一項記載のロボットの制御方法。
【請求項9】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が0以上であるときには現在の外力に前記離脱容易度を乗算した変換外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項1から5のいずれか一項記載のロボットの制御方法。
【請求項10】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が0以上であるときには現在の外力に前記離脱容易度を乗算した変換外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項1から5のいずれか一項記載のロボットの制御方法。
【請求項11】
現在の外力のベクトルと前記基準外力の逆ベクトルとの内積をとることにより、前記基準外力と同じ向きにおいて最も小さい負の値となり、前記基準外力と逆向きにおいて最も大きい正の値となる内積値を離脱容易度として求め、
前記離脱容易度が0以上であるときには現在の外力に前記離脱容易度を乗算した変換外力に基づいて位置指令を更新し、前記離脱容易度が負であるときには、現在の外力に前記離脱容易度の絶対値と境界位置において0となり境界位置から離れるほど1に近づく接近度とを乗算した変換外力に基づいて位置指令を更新することを特徴とする請求項1から5のいずれか一項記載のロボットの制御方法。
【請求項12】
現在位置が動作範囲の境界位置に到達した場合、現在の外力が動作範囲外へ向かう方向である場合には、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向の場合には、現在の外力に基づいて位置指令を更新することを特徴とする請求項1から11のいずれか一項記載のロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ダイレクトティーチングが可能なロボットを制御する制御方法に関する。
【背景技術】
【0002】
近年、ロボットの教示手法として、作業者がロボットのアームを直接的に操作することにより与えられた外力に基づいて位置指令を更新しながら教示するいわゆるダイレクトティーチングが採用されつつある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平08-216074号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなダイレクトティーチングでは、加えられた外力の大きさと方向とに基づいて位置指令を更新する位置制御が行われており、基本的には、与えられた外力の向きに、与えられた外力の大きさに応じて例えば手先位置の位置指令を更新する制御が行われている。このとき、ティーチング時にロボットが動作範囲から外れてしまうとロボットのアームに過度な負荷が掛かったり周辺装置に接触したりするおそれがあることから、動作範囲外に近づいたとき、外力の大きさに対する移動量を相対的に小さくすることにより、つまりは、ロボットを移動させる際の感触が重くなるようにすることにより、動作範囲外に近づいていることを認識させて操作ミスが起きないようにしていた。
【0005】
しかしながら、動作範囲の境界位置に近づいた場合に感触を重くするように制御すると、動作範囲の境界位置の近傍領域では常に感触が重くなってしまい、脱出方向つまりは動作範囲外の近傍から離脱する方向に動かそうとしても感触が重いままとなってしまうことから、近傍領域における操作性が低下するとともに、離脱すること自体も困難になるという問題がある。
【0006】
また、アームが動作範囲の境界位置に到達してしまった際にはエラーとしてロボットを停止させることになるものの、停止させた状態から再びダイレクトティーチングを行うためには、停止したアームを別の制御手段によって動作範囲内まで移動させる必要があり、ダイレクトティーチング中に動作範囲外へ到達する度に使用者へ煩雑な操作を強いることになる。
【0007】
そして、ロボットの周囲に安全柵等を配置せず、作業者とロボットとが協力して働くことを可能とする協働ロボットは、安全面への配慮から従来の一般的な産業用ロボットよりも関節部の可動範囲が狭くなっていたり、特定の姿勢を取ることが禁止されていたりする等、従来の産業用ロボットに比べて動作範囲が狭い傾向があるため、ダイレクトティーチング中には動作範囲の境界位置の近傍で移動させたり、境界位置の近傍から離脱することが必要になる状況が増えることが想定される。そのため、動作範囲外の近傍から容易に離脱できるようにすることも求められる。
【0008】
本発明は上記事情に鑑みてなされたものであり、その目的は、ダイレクトティーチング時の操作性を向上させることができるロボットの制御方法を提供する。
【課題を解決するための手段】
【0009】
請求項1に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、ロボットに設定されている監視点が近傍領域に到達したときの外力を基準外力として記憶し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新する。
【0010】
ダイレクトティーチングでは、作業者がアーム等に触れながらロボットの姿勢を変化させている。このとき、ロボットの姿勢は制御装置によって把握できるため、ロボットに設定されている監視点の現在位置は、ロボットの現在の姿勢から特定することができる。また、ダイレクトティーチングが可能な構成の場合、力覚センサやトルクセンサ等によって外力を検出することができるため、加えられた外力の向きおよび大きさも特定することができる。
【0011】
ダイレクトティーチング時に動作範囲外に到達してしまうことを抑制するためには、近傍領域内での移動を制限することが効果的であると考えられる。その一方で、近傍領域内での移動を全て制限してしまうと、近傍領域から離脱したい場合の移動までも制限されてしまい操作性が悪化することになる。そのため、動作範囲外に到達してしまうことを抑制する場合には、近傍領域から離脱する方向への移動については容易となるようにすることが望ましい。
【0012】
ただし、動作範囲は、ロボットのアームが届く範囲内ではあるものの、その全域ではなく、例えば周辺設備に接触しない範囲が設定されることがある。そのため、現在位置から最も近い境界位置から離脱しようとした際に別の境界位置に近づいてしまう可能性がある。つまり、動作範囲外の近傍からの離脱を容易とするためには、どの方向であれば動作範囲外に出てしまうことを抑制できるか、つまりは、どの方向を基準とすればよいかが重要となる。
【0013】
そこで、監視点が近傍領域に到達したときの外力を基準外力として記憶しておき、監視点の現在位置が近傍領域内である場合には、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。これにより、まず、現在の移動方向が移動を制限すべき方向であるか否かを判定することができる。
【0014】
また、監視点が近傍領域に到達したときの外力の向きは、監視点のそれまでの移動方向に倣った方向であることから、その移動方向は、監視位置が移動してきた経路つまりは近傍領域から離脱する際に障害物等がない方向を指し示している。そのため、近傍領域への到達時の外力の向きを基準とすれば、近傍領域つまりは動作範囲外の近傍から離脱したい場合において周辺設備等への接触を避けることができる方向であると考えられる。そのため、到達時の外力とは逆向きの方向を、当該近傍領域からの離脱が容易な方向として判定すなわち特定することができる。
【0015】
このように、当該近傍領域からの離脱が容易となる方向を判定する際、近傍領域に到達した時点の外力の向きを基準として採用することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【0016】
請求項2に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新する。
【0017】
近傍領域は、動作範囲外の近傍ではあるものの、その近傍領域内でロボットの姿勢を変化させること、つまりは、監視点が移動することが必要になる場合も想定される。そして、近傍領域内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域から離脱するのが容易になる方向も変化すると考えられる。
【0018】
そこで、現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【0019】
このように、現在位置を起点として最も近い境界位置への方向を動作範囲外へ向かう方向と設定し、その方向に向いた基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【0020】
あるいは、最も近い境界位置が例えば壁面等の平面によって形成されている場合には、現在位置を起点としてその平面に垂直な方向を動作範囲外へ向かう方向と設定し、その方向に向いた基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することによっても、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【0021】
したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【0022】
請求項3に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定しロボットに設定されている監視点の現在位置を起点とし、ロボットの原点から当該現在位置への向きとなる仮想的な外力を基準外力として設定し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新する。
【0023】
動作範囲は、ロボットのアームが届く範囲として設定されることがある。そのため、動作範囲の境界位置では、ロボットのアームが延びきった状態であることも想定される。換言すると、ロボットのアームが縮む方向は、動作範囲外から離脱する方向であると考えられる。そして、例えばロボットのアームのリーチ限界が定められているのであれば、ロボットの原点に向かう方向がアームを縮める方向となり、最も離脱が容易な方向と考えることができる。
【0024】
そこで、現在位置を起点とし、原点から現在位置に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、基準外力の大きさは、上記したように例えば予め基準値を設定したり、例えば現在の外力の大きさを便宜的に利用したりすることができる。
【0025】
このように、現在位置を起点として原点から現在位置に向かう方向の基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【0026】
請求項4に記載した発明は、与えられた外力に基づいて位置指令を更新しながら教示を行うダイレクトティーチングが可能なロボットを制御する制御方法であって、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、ロボットに設定されている監視点の現在位置から所定の距離だけ移動した仮想的な位置のうち、最も境界位置に近くなる最接近位置を設定し、監視点の現在位置を起点とし、当該現在位置から最接近位置に向かう仮想的な外力を基準外力として設定し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定し、近傍領域からの離脱が容易となる方向への移動に要する外力が小さくなるように位置指令を更新する。
【0027】
近傍領域は、動作範囲外の近傍ではあるものの、その近傍領域内でロボットの姿勢を変化させること、つまりは、監視点が移動することが必要になる場合も想定される。そして、近傍領域内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域から離脱するのが容易になる方向も変化すると考えられる。
【0028】
そこで、現在位置から所定の距離だけ移動した仮想位置を演算により複数求め、現在位置を起点として最接近位置に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、基準外力の大きさは、上記したように例えば予め基準値を設定したり、例えば現在の外力の大きさを便宜的に利用したりすることができる。
【0029】
このように、最も境界位置に近くなる仮想的な最接近位置を設定し、現在位置を起点として最接近位置に向かう方向の基準外力に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【0030】
請求項5に記載した発明では、現在の外力のベクトルと基準外力の逆ベクトルとの内積を求め、求めた内積値が0以上であれば動作範囲外から離れる向きであると判定する一方、内積値が負であれば動作範囲外へ向かう方向であると判定する。2つのベクトルの内積をとった場合、方向が一致していれば正の値となり、方向が逆向きであれば負の値となる。そのため、基準外力の逆ベクトルとの内積値が負である場合には、現在の外力が基準外力の向きつまりは動作範囲外へ向かう向きであることが分かるとともに、内積値が0以上であれば現在の外力が動作範囲外への向きではないことが分かる。したがって、内積値を用いることにより、当該近傍領域からの離脱が容易となる方向を容易に判定することができる。
【0031】
請求項6に記載した発明では、現在の外力のベクトルと基準外力の逆ベクトルとの内積をとることにより、基準外力と同じ向きにおいて最も小さい負の値となり、基準外力と逆向きにおいて最も大きい正の値となる内積値を、離脱容易度として求める。
【0032】
上記したように、内積値は、2つのベクトルの方向が一致していれば正の1となり最大値となる一方、方向が逆向きであれば負の-1となり最小値となる。また、内積値は、2つのベクトルの方向が直交する状態で0になる。そのため、離脱容易度が正負または0のいずれであるかによって、まず、動作範囲外へ向かう向きであるか否かを判定することができる。
【0033】
そして、離脱容易度が正である場合には外力が動作範囲外から離脱する方向であり、離脱容易度が0である場合には外力が動作範囲外へは向かっていない状態であることから、移動を制限する必要は無いと考えられる。一方、離脱容易度が負である場合には、外力が動作範囲外へ向かう方向であることから、動作範囲外にでないようにするために移動を制限することが望ましいと考えられる。
【0034】
そのため、離脱容易度が0以上であるときには、現在の外力に基づいて位置指令を更新することによりその方向への移動を制限せず、離脱容易度が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度を乗算した変換外力に基づいて位置指令を更新することにより、境界位置に近づくほど外力を低減して移動を制限することができる。これにより、動作範囲外へ向かう移動を制限することで動作範囲外に到達してしまうことを抑制できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。
【0035】
請求項7に記載した発明では、離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新することで動作範囲外から離脱する方向への移動を制限しない一方、離脱容易度が負であるときには、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することにより、その方向への移動を禁止する。これにより、動作範囲外へ向かう移動が禁止されて動作範囲外に到達してしまうことを防止できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。
【0036】
請求項8に記載した発明では、離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において0となり境界位置から離れるほど1に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。これにより、まず、動作範囲外から離脱する方向へは容易に移動することができるようになる。
【0037】
さて、基準外力と同じ方向は、監視点がそれまで移動してきた方向であり、作業者はその方向に監視点を移動させたいと考えていることになる。その場合、その方向への移動を制限してしまうと、教示作業に不都合が生じる可能性がある。そのため、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動を許容するとともに、基準外力の向きから外れるほど外力の低減度合いを大きくして移動の制限を強くする。また、移動の制限は、接近度によって境界位置に近づくほど強くする。
【0038】
これにより、動作範囲外から離脱する方向へは容易に移動することができるようになるとともに、動作範囲外へ向かう方向については、近傍領域への到達時と同じ方向であれば移動が許容されるため教示作業に不都合が生じる可能性を低減でき、到達時の方向からずれるにつれて移動の制限を強くすることにより、意図せずに動作範囲外に到達してしまうことを抑制できる。
【0039】
請求項9に記載した発明では、離脱容易度が0以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度を乗算した変換外力に基づいて位置指令を更新する。
【0040】
上記したように、基準外力の向きは監視点がそれまで移動してきた方向であり、その逆向きの方向は、接触等を回避した状態で移動することができる領域であると考えられる。そのため、現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新することにより、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。また、動作範囲外への方向については移動を制限することから、動作範囲外に到達してしまうことを抑制することができる。
【0041】
請求項10に記載した発明では、離脱容易度が0以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に0を乗算した変換外力に基づいて位置指令を更新する。これにより、上記したように基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。また、動作範囲外への方向については移動が規制されることから、動作範囲外に到達してしまうことを防止することができる。
【0042】
請求項11に記載した発明では、離脱容易度が0以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において0となり境界位置から離れるほど1に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。
【0043】
これにより、上記したように、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができるとともに、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動が許容されるとともに、基準外力の向きから外れるほど、また、境界位置に近づくほど移動の制限が強くなることから、動作範囲外に到達してしまうことを防止することができる。
【0044】
請求項12に記載した発明では、現在位置が動作範囲の境界位置に到達した場合、現在の外力が動作範囲外へ向かう方向である場合には、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向の場合には、現在の外力に基づいて位置指令を更新する。これにより、内積値を求める演算を行わなくても動作範囲外への移動を禁止することができ、動作範囲外に到達してしまうことを防止することができる。
【図面の簡単な説明】
【0045】
図1】第1実施形態によるロボットの構成を模式的に示す図
図2】動作範囲の一例を模式的に示す図
図3】判定処理の流れを示す図
図4】近傍領域に到達した状態の一例を模式的に示す図
図5】低減パターンAを説明するための図
図6】低減パターンBを説明するための図
図7】低減パターンCを説明するための図
図8】低減パターンDを説明するための図
図9】低減パターンEを説明するための図
図10】低減パターンFを説明するための図
図11】第2実施形態による方向の判定態様を模式的に示す図
図12】第3実施形態による方向の判定態様を模式的に示す図
図13】第4実施形態による方向の判定態様を模式的に示す図
【発明を実施するための形態】
【0046】
以下、複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一符号を付して説明する。
(第1実施形態)
以下、第1実施形態について、図1から図10を参照しながら説明する。
図1に示すように、本実施形態のロボット1は、複数のアームを有する垂直多関節型のいわゆる6軸ロボットであり、コントローラ2によって制御されている。本実施形態では、ロボット1は、周囲に安全柵等が配置されない状態で作業者が作業する場所の近傍に設置され、作業者と協力して働く協働ロボットを想定している。
【0047】
このロボット1は、ベース1a上に第1軸(J1)を介して連結されているショルダ1b、ショルダ1bに第2軸(J2)を介して連結されている下アーム1c、下アーム1cに第3軸(J3)を介して連結されている第一上アーム1d、第一上アーム1dに第4軸(J4)を介して連結されている第二上アーム1e、第二上アーム2eに第5軸(J5)を介してオフセットして連結されている手首1f、手首1fに第6軸(J6)を介して連結されているフランジ1gを備えている。
【0048】
本実施形態では、フランジ1gの中心位置をロボット1の姿勢の変化を監視するための監視点(P)として設定している。この監視点(P)は、例えばロボット1のベース1aの中心を原点(O)として設置面に平行なX軸およびY軸と設置面に垂直なZ軸とを有する3次元座標系を想定すると、その座標(Px,Py,Pz)とフランジ1gの回転成分(Rx,Ry,Rz)とにより表現される6次元直交座標系で求めることができる。
【0049】
また、ロボットの1の監視点(P)に加わる外力は、3次元座標系における各方向への大きさ成分(Fx,Fy、Fz)とモーメント(Mx,My,Mz)とにより表現される6次元直交座標系で求めることができる。ただし、本実施形態ではロボット1の監視点(P)をフランジ1gつまりは最も先端となる部分の位置で規定しているため便宜的に先端力と称しているが、この先端力は、必ずしもロボット1の先端部分に加わる外力だけを示している訳ではなく、ロボット1の監視点(P)に与えられている現在の外力を示すものとして定義している。
【0050】
このロボット1は、フランジ1gに作業用のツール3が取り付けられ、コントローラ2によって姿勢が制御されながら動作する。このとき、コントローラ2は、周知のようにロボット1の関節部に設けられている図示しないモータを回転駆動することにより、ロボット1を任意の姿勢に制御する。
【0051】
このコントローラ2は、ロボット1に設けられている図示しない力覚センサやトルクセンサ等によりロボット1に加わる外力を検出可能に構成されているとともに、作業者がロボット1のアーム等に直接的に触れて姿勢を変化させることにより作業位置を教示するダイレクトティーチングが可能に構成されている。
【0052】
また、コントローラ2は、詳細は後述するが、ロボット1の監視点(P)の移動方向に応じて外力を低減する、つまりは、作業者が動かしたときの感触を重くするための処理を実行する。つまり、本実施形態では、ロボット1を制御する制御装置に、外力を低減する処理(図3参照)を実行させている。
【0053】
次に、上記した構成の作用について説明する。
ロボット1には、アームが物理的に到達可能な範囲や周辺構造等に接触しないための範囲として、予め動作範囲が設定されている。この動作範囲は、例えば図2に平面視にて示すように、原点(O)からの距離によって設定されており、所定の距離に設定されている境界線(Lb)を含んで原点(O)に近い側(以下、内側と称する)が動作範囲内となり、境界線(Lb)よりも原点(O)から遠い側(以下、外側と称する)が動作範囲外となる。つまり、境界線(Lb)は、動作範囲の境界位置を示している。この動作範囲は、関節角のリミットや特異点、リーチ限界など、ロボットの構成や動作環境の都合上禁止したい位置や姿勢などについても同様に設定することができる。
【0054】
また、本実施形態では、境界線(Lb)の内側であって所定の距離差(ΔL)だけ離間した位置に内側境界線(Lc)が設定されており、これら境界線(Lb)と内側境界線(Lb)との間の範囲つまりは動作範囲を縮小近似した範囲が、境界線(Lb)の近傍且つ内側に設定される近傍領域(R)となる。なお、図2では平面視にて動作範囲を示しているが、ロボット1の監視点(P)が上下方向にも移動する場合には、動作範囲や近傍領域(R)は立体的なものとなる。また、近傍領域(R)は、境界線(Lb)を超えない範囲であれば、境界線(Lb)を含んで設定することもできる。
【0055】
さて、前述のように、ダイレクトティーチングを行う場合には、動作範囲外への接近度合いに応じてロボットを移動させるために必要となる外力を大きくすることにより、つまりは、ロボットを移動させる際の感触を重くすることにより、動作範囲外への侵入を防ぐことができ、操作性が向上すると考えられる。
【0056】
ただし、その場合には、動作範囲の境界位置の近傍では常に感触が重くなってしまい、脱出方向つまりは動作範囲外から離間する方向に動かそうとしても感触が重いままになっており、操作性が低下するという問題がある。また、動作範囲外まで到達しないようにするためにはロボットを停止させる必要があるが、停止させた状態から再びダイレクトティーチングを行うためには別の制御手段でアームを動作範囲内まで移動させる必要があり、動作範囲外へ到達する度に煩雑な操作を強いることになる。
【0057】
そして、ロボット1のような協働ロボットの場合、安全面への配慮から関節部の可動範囲が狭くなっていたり、特定の姿勢を取ることが禁止されていたりする等、動作範囲が狭くなっている傾向があり、ダイレクトティーチング中に動作範囲外の近傍領域や動作範囲の境界位置からの脱出することが必要になる状況が増えることが想定される。
【0058】
そこで、本実施形態では、コントローラ2において図3に示す処理を実行している。この処理は、端的に言えば、ロボット1の監視点(P)を移動させる際に必要となる外力ここでは先端力を、その向きに応じて調整する処理である。
【0059】
具体的には、コントローラ2は、ダイレクトティーチングが開始されると、処理を同時に実行し、現在の先端力(Fcur)を取得し(S1)、アームの回転角度等に基づいて現在の監視点(P)の現在位置を求め(S2)、監視点(P)の現在位置が、動作範囲内であって且つ近傍領域よりも内側、つまりは、近傍領域(R)よりも原点(O)側であるか否かを判定する(S3)。
【0060】
コントローラ2は、現在位置が近傍領域よりも内側であると判定した場合には(S3:YES)、近傍フラグ(incFlag)をOFFして0とする(S4)。この近傍フラグ(incFlag)は、監視点(P)が近傍領域(R)に到達した際にONされて1になり、監視点(P)が近傍領域(R)から離脱した際にOFFされて0になる。近傍フラグ(incFlag)をOFFにした後、コントローラ2は、先端力の低減度合いを示す低減係数(α)を1に設定する(S5)。この低減係数(α)は、詳細については後述するが、0~1の数値であって外力を低減する度合いを示している。なお、ステップS5で低減係数(α)=1としているのは、外力を低減しないことを意味する。
【0061】
そして、コントローラ2は、先端力(Fcur)に低減係数(α)を乗算することにより変換先端力(CFcur)を求め(S6)、変換先端力(CFcur)の方向に位置指令を更新する(S7)。つまり、コントローラ2は、加えられた先端力(Fcur)に低減係数(α)を加味することにより、監視点(P)を移動させる際に必要となる外力の大きさを調整している。ただし、現在位置が近傍領域よりも内側である場合には、α=1つまりは先端力を低減しないように制御している。この変換先端力(CFcur)は、値が大きくなるほど移動に必要な力は少なくなり、値が小さくなるほど移動に必要な外力は多くなる。
【0062】
さて、アームが移動して例えば図4に近傍領域到達として示すように監視点(P)が近傍領域(R)に到達すると、コントローラ2は、監視点(P)の現在位置が近傍領域よりも内側ではなくなったことから(S3:NO)、近傍フラグ(incFlag)が1であるか否かを判定する(S8)。なお、図4に示す破線の矢印Sは、監視点(P)の現在の移動方向を示している。
【0063】
続いて、コントローラ2は、最初に近傍領域(R)に到達した時点では近傍フラグ(incFlag)が0であることから(S8:NO)、近傍フラグ(incFlag)をONして1とした後(S9)、近傍領域(R)への到達時の先端力(Fcur)を、6次元直交座標系で求まる到達時先端力(Finc)として記憶する(S10)。この到達時先端力(Finc)は、本実施形態における基準外力に相当する。
【0064】
続いて、コントローラ2は、離脱容易度(e)を、現在の先端力(Fcur)と到達時先端力(Finc)の逆向きとなる逆先端力(-Finc)との内積を取ることにより求める(S11)。つまり、離脱容易度(e)は、現在の外力のベクトルと基準外力の逆ベクトルとの内積値として求まる値である。この離脱容易度(e)は、平易に言えば、監視点(P)を移動させる際に必要となる力の大きさを調整するためのパラメータであり、監視点(P)が近傍領域(R)内である場合の制御に用いられる。なお、内積は、回転成分を除いて、3次元座標系の成分のみで内積をとることもできる。これは、他の実施形態も同様である。
【0065】
監視点(P)が到達時先端力(Finc)と同じ方向に移動している場合には、その方向は動作範囲外に接近する方向であり、到達時先端力(Finc)とは逆向きに移動している場合には、その方向は動作範囲外の近傍から離脱する方向であると考えられる。そのため、近傍領域(R)内においては、動作範囲外に出ないようにするためには到達時先端力(Finc)の向きへの移動は抑制すべきであると考えられる。
【0066】
一方、動作範囲外の近傍からの離脱を容易にするためには到達時先端力(Finc)とは逆向きへの移動は抑制する必要がないと考えられるとともに、動作範囲外へ移動するために要する外力よりも動作範囲の境界線(Lb)から離脱する向きへ移動するために要する外力を相対的に小さくすれば、離脱すべき方向が触覚的に且つ直感的に認識でき、スムーズに動作範囲外の近傍から離脱できると考えられる。
【0067】
そのため、コントローラ2は、離脱容易度(e)を、現在の先端力(Fcur)と到達時先端力(Finc)の逆向きとなる逆先端力(-Finc)との内積によって求めている。内積を取ることにより求められた離脱容易度(e)は、離脱が容易となる方向つまりは到達時とは逆向きになるほど1に近づき、離脱が困難あるいは移動を制限したい向きつまりは到達時と同じ方向になるほど-1に近づくことになる。より具体的には、離脱容易度(e)は、0であれば到達時先端力(Finc)と垂直方向であることを示し、0よりも大きければ動作範囲外から離脱する方向であることを示し、0よりも小さければ動作範囲外に向かう方向であることを示している。
【0068】
換言すると、離脱容易度(e)が0、正または負のいずれであるかによって、監視点(P)の移動方向が動作範囲外へ向かう方向であるか否かを判定することができる。そのため、コントローラ2は、ステップS10において離脱容易度(e)を求めることにより、監視点(P)の移動方向が動作範囲外へ向かう方向であるか否かを判定している。なお、近傍領域に到達した最初の時点では先端力(Fcur)と到達時先端力(Finc)とは一致した状態となっている。
【0069】
離脱容易度(e)を求めた後、コントローラ2は、低減係数(α)を求める(S12)。この低減係数(α)は、上記したように0~1の範囲をとる数値であって、現在の先端力(Fcur)に乗算することにより、外力をどの程度低減するかの度合いを示している。より具体的には、低減係数(α)=1の場合には、外力は低減されず、与えられた外力の大きさに対応付けられている所定の距離だけ移動するように位置指令が更新され、操作時の感触は変わらないことになる。一方、低減係数(α)が1未満となった場合には、外力が低減され、同じ外力であっても相対的に短い距離だけ移動するように位置指令が更新され、操作時の感触が相対的に重たくなる。
【0070】
このように低減係数(α)を現在の先端力(Fcur)に乗算することにより、監視点(P)の現在位置が近傍領域(R)内である場合において、動作範囲外に向かう方向には移動し難くしたり、動作範囲外から離脱する方向には移動し易くしたりすることができる。
【0071】
ところで、離脱容易度(e)は、上記したように-1~+1までの数値を取ることから、その値そのものが、離脱が容易となる方向を示すパラメータとして、あるいは、衝突等を回避することができるように誘導すべき方向を示すパラメータとして用いることができるという利点がある。例えば、離脱容易度(e)が正である場合には、現在の外力に単純に離脱容易度(e)を乗算することにより、動作範囲外の方向への移動を制限しつつ、近傍領域(R)から離脱する方向への移動を制限しないようにすることが可能となる。
【0072】
その一方で、現在の移動方向は作業者が望んでいる方向であることから、動作範囲外へ向かう方向への移動を制限することは必ずしも作業者の希望に添ったものにはならない状況も考えられる。かといって、動作範囲外まで到達してしまうと前述のようにエラーとしてロボット1が停止してしまうことから、動作範囲外に到達してしまうことは避けるべきである。しかし、操作時の感触を相対的に重くしても移動させること自体は可能であることも想定され、動作範囲外に到達してしまう状況も考えられる。
【0073】
また、ロボット1のような協働ロボットは、安全面への配慮から従来の一般的な産業用ロボットよりも関節部の可動範囲が狭くなっていたり、特定の姿勢を取ることが禁止されていたりする等、従来の産業用ロボットに比べて動作範囲が狭い傾向にあるため、意図せずに動作範囲外まで移動させてしまう可能性が想定される。
【0074】
そして、これらの状況は、近傍領域(R)の大きさ、つまりは、境界位置からの距離(ΔL)によっても変化すると考えられる。そのため、本実施形態では、様々な状況に対応すべく、低減係数(α)を以下に説明する複数のパターンによって算出可能にしている。以下、各パターンを低減パターンA~Fと称して個別に説明する。ただし、これらの低減パターンA~Fは、いずれか1つを採用することもできるが、例えば現在位置と境界位置との間の距離に応じてパターンを変更する等、複数のパターンを採用することもできる。
【0075】
<低減パターンA:図5参照>
低減パターンAでは、離脱容易度(e)が0以上であるときには、現在の外力(Fcur)に基づいて位置指令を更新する。より具体的には、離脱容易度(e)が0以上であるときには、低減係数(α)=1とし、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)と同じになるように、つまりは、外力を低減しない状態となるようにする。
【0076】
一方、離脱容易度(e)が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度(k)とすると、低減係数(α)=kとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に接近度(k)を乗算した値とになるように、つまりは、外力を低減した状態となるようにする。
【0077】
この場合、変換外力(CFcur)が取り得る範囲は、図5に破線にて示すように、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも内側に向かう方向であれば、現在の外力(Fcur)に即したものとなる。このとき、現在の外力(Fcur)に基づいて位置指令が更新されることから、動作範囲外の近傍から動作範囲内に戻る方向であれば操作時の感触が重たくなることがなく、一定に軽い状態となる。
【0078】
また、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも外側に向かう方向であれば、変換外力(CFcur)が取り得る範囲は、現在の外力(Fcur)に接近度(k)を乗算した範囲となる。このとき、現在の外力(Fcur)よりも低減された変換外力(CFcru)に基づいて位置指令が更新されることになるため、動作範囲外に向かう向きであれば、操作時の感触が相対的に且つ一定で重たくなる。
【0079】
このように動作範囲外に近づくほど操作時の感触を重たくすることにより、動作範囲外に向かう移動を物理的に制限することができるとともに、動作範囲外に近づいていることを作業者に認識させることができ、その方向への移動を避けるあるいは慎重に行うようになることから、動作範囲外に出てしまうおそれを低減できる。そして、動作範囲外から離脱する方向への移動は制限されないため、動作範囲外からの離脱も容易に行うことができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、境界位置からの距離差(ΔL)がある程度大きく、近傍領域(R)内での移動が想定される場合等に特に有意となる。
【0080】
<低減パターンB:図6参照>
低減パターンBでは、離脱容易度(e)が0以上であるときには、低減パターンAと同様に、現在の外力(Fcur)に基づいて位置指令を更新し、外力を低減しない状態となるようにする。一方、離脱容易度(e)が負であるときには、低減係数(α)=0とする。
【0081】
この場合、変換外力(CFcur)が取り得る範囲は、図6に破線にて示すように、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも内側に向かう方向であれば、現在の外力(Fcur)に応じたものとなる。一方、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも外側に向かう方向であれば、変換外力(CFcur)が0になることから、その方向への移動が規制されることになる。
【0082】
このように動作範囲外に向かう方向への移動を規制することにより、動作範囲外に到達してしまうことを制限することができるとともに、動作範囲外の方向への移動であることを作業者に認識させることができ、その方向への移動を止めるようになることから、動作範囲外に出てしまうことを抑制できる。そして、動作範囲外から離脱する方向への移動は制限されないため、動作範囲外からの離脱も容易に行うことができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、境界位置からの距離差(ΔL)が小さい場合等に特に有意となる。
【0083】
<低減パターンC:図7参照>
低減パターンCでは、離脱容易度(e)が0以上であるときには、低減パターンAと同様に、現在の外力(Fcur)に基づいて位置指令を更新し、外力を低減しない状態となるようにする。
【0084】
一方、離脱容易度(e)が負であるときには、低減係数(α)=|e|・kとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に離脱容易度(e)の絶対値(|e|)と接近度(k)とを乗算した値となるように、つまりは、外力を低減した状態となるようにする。
【0085】
この場合、変換外力(CFcur)が取り得る範囲は、図7に破線にて示すように、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも内側に向かう方向であれば、現在の外力(Fcur)に応じたものとなる。一方、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも外側に向かう方向であれば、近傍領域(R)への到達時の移動方向(S)と同じ向きであればある程度の移動が許容され、移動方向(S)から外れるほどその移動が制限されることになる。
【0086】
このように動作範囲外に向かう方向への移動を移動方向(S)との関係に基づいて制限することにより、感触が重たくなることで動作範囲外に到達してしまうことを制限しつつ、移動方向(S)つまりは作業者が望む方向への移動をある程度許容することができる。また、動作範囲外から離脱する方向への移動は制限されないため、動作範囲外からの離脱も容易に行うことができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、近傍領域(R)においてある程度の移動を許容したい場合に特に有意である。
【0087】
<低減パターンD:図8参照>
低減パターンDでは、離脱容易度(e)が0以上であるときには、低減係数(α)=eとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に離脱容易度(e)を乗算した値となるようにし、現在の外力(Fcur)を低減した変換外力(CFcur)に基づいて位置指令を更新する状態となるようにする。
【0088】
一方、離脱容易度(e)が負であるときには、低減係数(α)=kとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に接近度(k)とを乗算した値となるように、つまりは、外力を低減した状態となるようにする。
【0089】
この場合、変換外力(CFcur)が取り得る範囲は、図8に破線にて示すように、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも内側に向かう方向であれば、移動方向(S)と逆向きの方向においては現在の外力(Fcur)に応じて位置指令が更新される一方、移動方向(S)と逆向きの方向からずれるほど低減された状態で位置指令が更新される。つまり、移動方向(S)と逆向きの方向への移動は制限されない一方、移動方向(S)と逆向きの方向からずれるほど移動が制限される。
【0090】
一方、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも外側に向かう方向であれば、変換外力(CFcur)が取り得る範囲は、現在の外力(Fcur)に接近度(k)を乗算した範囲となる。このとき、現在の外力(Fcur)よりも低減された変換外力(CFcru)に基づいて位置指令が更新されることになるため、動作範囲外に向かう向きであれば、操作時の感触が相対的に且つ一定で重たくなる。
【0091】
このように動作範囲外に向かう方向への移動を制限しつつ、動作範囲外から離脱する方向への移動については到達時の移動方向(S)と逆向きへの移動を最も容易となるようにすることにより、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性を向上させることができる。このような制御方法は、近傍領域(R)に到達してしまった際に早期あるいは緊急的に離脱させる場合に特に有意となる。
【0092】
<低減パターンE:図9参照>
低減パターンEでは、離脱容易度(e)が0以上であるときには、低減係数(α)=eとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に離脱容易度(e)を乗算した値となるようにし、現在の外力(Fcur)を低減した変換外力(CFcur)に基づいて位置指令を更新する状態となるようにする。一方、離脱容易度(e)が負であるときには、低減係数(α)=0とする。
【0093】
この場合、変換外力(CFcur)が取り得る範囲は、図9に破線にて示すように、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも内側に向かう方向であれば、移動方向(S)と逆向きの方向においては現在の外力(Fcur)に応じて位置指令が更新される一方、移動方向(S)と逆向きの方向からずれるほど低減された状態で位置指令が更新される。つまり、移動方向(S)と逆向きの方向への移動は制限されない一方、移動方向(S)と逆向きの方向からずれるほど移動が制限される。そして、動作範囲外に向かう方向への移動が規制されることになる。
【0094】
このように動作範囲外に向かう方向への移動を規制しつつ、動作範囲外から離脱する方向への移動については到達時の移動方向(S)と逆向きへの移動を最も容易となるようにすることができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性が低下することも抑制できる。このような制御方法は、近傍領域(R)に到達してしまった際に早期あるいは緊急的に離脱させる場合に特に有意となる。
【0095】
<低減パターンF:図10参照>
低減パターンEでは、離脱容易度(e)が0以上であるときには、低減係数(α)=eとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に離脱容易度(e)を乗算した値となるようにし、現在の外力(Fcur)を低減した変換外力(CFcur)に基づいて位置指令を更新する状態となるようにする。
【0096】
一方、離脱容易度(e)が負であるときには、低減係数(α)=|e|・kとすることにより、ステップS6において算出される変換外力(CFcur)が現在の外力(Fcur)に離脱容易度(e)の絶対値(|e|)と接近度(k)とを乗算した値となるように、つまりは、外力を低減した状態となるようにする。
【0097】
この場合、変換外力(CFcur)が取り得る範囲は、図10に破線にて示すように、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも内側に向かう方向であれば、移動方向(S)と逆向きの方向においては現在の外力(Fcur)に応じて位置指令が更新される一方、移動方向(S)と逆向きの方向からずれるほど低減された状態で位置指令が更新される。つまり、移動方向(S)と逆向きの方向への移動は制限されない一方、移動方向(S)と逆向きの方向からずれるほど移動が制限される。
【0098】
そして、現在の外力(Fcur)が近傍領域(R)への到達時の移動方向(S)に垂直な面(e=0)よりも外側に向かう方向であれば、移動方向(S)と同じ向きであればある程度の移動が許容され、移動方向(S)から外れるほどその移動が制限されることになる。
【0099】
このように動作範囲外に向かう方向への移動、および、動作範囲外から離脱する方向への移動を移動方向(S)との関係に基づいて制限することにより、感触が重たくなることで動作範囲外に到達してしまうことを制限しつつ、移動方向(S)つまりは作業者が望む方向への移動をある程度許容することができる。また、動作範囲外から離脱する方向への移動については到達時の移動方向(S)と逆向きへの移動が最も容易となるようにすることができる。したがって、ダイレクトティーチング時の操作ミスを抑制できるとともに、操作性が低下することも抑制できる。このような制御方法は、近傍領域(R)においてある程度の移動を許容したい場合に特に有意となる。
【0100】
なお、図3の処理には示していないが、監視点(P)の現在位置が動作範囲の境界位置に到達した場合には、低減係数(α)を求めることなく、現在の外力(Fcur)が動作範囲外へ向かう方向であれば現在の外力(Fcur)に0を乗算した変換外力(Fcur=0)に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向であれば現在の外力(Fcur)に基づいて位置指令を更新する。これにより、動作範囲外に出てしまうことを迅速に防止することができる。
【0101】
このようにして低減係数(α)を求めた後、コントローラ2は、図3に示すように、ステップS6に移行して変換外力(CFcur)を求め、求めた変換外力(CFcur)に基づいて位置指令を更新した後(S7)、ステップS1に移行して処理を繰り返すことにより、監視点(P)を移動させるために要する外力の調整、つまりは、必要に応じた外力の低減を行っている。
【0102】
以上説明した制御方法によれば、次のような効果を得ることができる。
ロボット1の制御方法は、ロボットの動作範囲の境界位置の内側に当該境界位置の近傍であることを示す近傍領域を設定し、ロボットに設定されている監視点が近傍領域に到達したときの外力を基準外力として記憶し、監視点の現在位置が近傍領域内である場合、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。
【0103】
ダイレクトティーチングでは、作業者がアーム等に触れながらロボットの姿勢を変化させている。このとき、ロボットの姿勢は制御装置によって把握できるため、ロボットに設定されている監視点の現在位置は、ロボットの現在の姿勢から特定することができる。また、ダイレクトティーチングが可能な構成の場合、力覚センサやトルクセンサ等によって外力を検出することができるため、加えられた外力の向きおよび大きさも特定することができる。
【0104】
ダイレクトティーチング時に動作範囲外に到達してしまうことを抑制するためには、近傍領域内での移動を制限することが効果的であると考えられる。その一方で、近傍領域内での移動を全て制限してしまうと、近傍領域から離脱したい場合の移動までも制限されてしまい操作性が悪化することになる。そのため、動作範囲外に到達してしまうことを抑制する場合には、近傍領域から離脱する方向への移動については容易となるようにすることが望ましい。
【0105】
ただし、動作範囲は、ロボットのアームが届く範囲内ではあるものの、その全域ではなく、例えば周辺設備に接触しない範囲が設定されることがある。そのため、現在位置から最も近い境界位置から離脱しようとした際に別の境界位置に近づいてしまう可能性がある。つまり、動作範囲外の近傍からの離脱を容易とするためには、どの方向であれば動作範囲外に出てしまうことを抑制できるか、つまりは、どの方向を基準とすればよいかが重要となる。
【0106】
そこで、監視点が近傍領域に到達したときの外力を基準外力として記憶しておき、監視点の現在位置が近傍領域内である場合には、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。これにより、まず、現在の移動方向が移動を制限すべき方向であるか否かを判定することができる。
【0107】
また、監視点が近傍領域に到達したときの外力の向きは、監視点のそれまでの移動方向に倣った方向であることから、その移動方向は、監視位置が移動してきた経路つまりは近傍領域から離脱する際に障害物等がない方向を指し示している。そのため、近傍領域への到達時の外力の向きを基準とすれば、近傍領域つまりは動作範囲外の近傍から離脱したい場合において周辺設備等への接触を避けることができる方向、すなわち、離脱が容易となる方向を特定することができる。
【0108】
このように、当該近傍領域からの離脱が容易となる方向を判定する際、近傍領域に到達した時点の外力の向きを基準として採用することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。したがって、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うこと等により、意図せずに動作範囲外に到達してしまうことを抑制でき、エラーによって教示作業が中断されることを防止することができる等、ダイレクトティーチング時の操作性を向上させることができるようになる。
【0109】
そして、近傍領域に到達した時点の外力の向きを基準としていることにより、監視点(P)の移動位置を細かく記憶する必要が無いことから、処理の負荷が過度に増加することを抑制することができる。これは、教示中に例えば手が震えたり多少行き過ぎた位置から戻したりすることによって直近の移動経路が動作範囲外側から内側に向かうといった状況が想定されるダイレクトティーチングにおいて特に有意となる。
【0110】
また、ロボット1の制御方法は、現在の外力のベクトルと基準外力の逆ベクトルとの内積を求め、求めた内積値が0以上であれば動作範囲外から離れる向きであると判定する一方、内積値が負であれば動作範囲外へ向かう方向であると判定する。2つのベクトルの内積をとった場合、方向が一致していれば正の値となり、方向が逆向きであれば負の値となる。
【0111】
そのため、基準外力の逆ベクトルとの内積値が負である場合には、現在の外力が基準外力の向きつまりは動作範囲外へ向かう向きであることが分かるとともに、内積値が0以上であれば現在の外力が動作範囲外への向きではないことが分かる。したがって、内積値を用いることにより、当該近傍領域からの離脱が容易となる方向を容易に判定することができる。
【0112】
また、ロボット1の制御方法は、現在の外力のベクトルと基準外力の逆ベクトルとの内積をとることにより、基準外力と同じ向きにおいて最も小さい負の値となり、基準外力と逆向きにおいて最も大きい正の値となる内積値を、離脱容易度として求める。この場合、離脱容易度が正である場合には外力が動作範囲外から離脱する方向であり、離脱容易度が0である場合には外力が動作範囲外へは向かっていない状態であることから、移動を制限する必要は無いと考えられる。一方、離脱容易度が負である場合には、外力が動作範囲外へ向かう方向であることから、動作範囲外にでないようにするために移動を制限することが望ましいと考えられる。
【0113】
そのため、離脱容易度が0以上であるときには、現在の外力に基づいて位置指令を更新することによりその方向への移動を制限せず、離脱容易度が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度を乗算した変換外力に基づいて位置指令を更新することで、境界位置に近づくほど外力を低減して移動を制限する。
【0114】
この場合、変換先端力(CFcur)は、離脱が容易となる向きほど大きくなることから移動する際の感触が相対的に軽くなる一方、離脱が困難となる向きほど小さくなることから移動する際の感触が相対的に重くなる。これにより、動作範囲外へ向かう移動を制限することで動作範囲外に到達してしまうことを抑制できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。また、これにより、動作範囲外とならないようにするためにはどちらの向きに移動させればよいかを、触覚的に容易に示すことができる。
【0115】
また、ロボット1の制御方法は、離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新することで動作範囲外から離脱する方向への移動を制限しない一方、離脱容易度が負であるときには、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することにより、その方向への移動を禁止する。これにより、動作範囲外へ向かう移動が禁止されて動作範囲外に到達してしまうことを防止できるとともに、動作範囲外から離脱する方向へは容易に移動することができる。
【0116】
また、ロボット1の制御方法は、離脱容易度が0以上であるときには現在の外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において0となり境界位置から離れるほど1に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。これにより、まず、動作範囲外から離脱する方向へは容易に移動することができるようになる。
【0117】
さて、基準外力と同じ方向は、監視点がそれまで移動してきた方向であり、作業者はその方向に監視点を移動させたいと考えていることになる。その場合、その方向への移動を制限してしまうと、教示作業に不都合が生じる可能性がある。そのため、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動を許容するとともに、基準外力の向きから外れるほど外力の低減度合いを大きくして移動の制限を強くする。また、移動の制限は、接近度によって境界位置に近づくほど強くする。
【0118】
これにより、動作範囲外から離脱する方向へは容易に移動することができるようになるとともに、動作範囲外へ向かう方向については、近傍領域への到達時と同じ方向であれば移動が許容されるため教示作業に不都合が生じる可能性を低減でき、到達時の方向からずれるにつれて移動の制限を強くすることにより、意図せずに動作範囲外に到達してしまうことを抑制できる。
【0119】
また、ロボット1の制御方法は、離脱容易度が0以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に境界位置において0となり境界位置から離れるほど1に近づく接近度を乗算した変換外力に基づいて位置指令を更新する。
【0120】
上記したように、基準外力の向きは監視点がそれまで移動してきた方向であり、その逆向きの方向は、接触等を回避した状態で移動することができる領域であると考えられる。そのため、現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新することにより、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。
【0121】
つまり、到達時の外力の向きとは逆向きであるほど外力の低減度合いを小さくすることにより、到達時の外力の向きとは逆向き、つまりは、現在位置まで移動する際に通過した位置の向きに対しては移動が抑制されず、感触が重たくなることがないため、操作性が低下することがなく、また、動作範囲外の近傍からの離脱も容易になる。また、動作範囲外への方向については、動作範囲外に近づくほど感触が重たくなって移動が抑制され、意図せずに動作範囲外に到達してしまうことを抑制できる。
【0122】
また、ロボット1の制御方法は、離脱容易度が0以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に0を乗算した変換外力に基づいて位置指令を更新する。これにより、上記したように基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができる。また、動作範囲外への方向については移動が規制されることから、動作範囲外に到達してしまうことを防止することができる。
【0123】
また、ロボット1の制御方法は、離脱容易度が0以上であるときには現在の外力に離脱容易度を乗算した変換外力に基づいて位置指令を更新し、離脱容易度が負であるときには、現在の外力に離脱容易度の絶対値と境界位置において0となり境界位置から離れるほど1に近づく接近度とを乗算した変換外力に基づいて位置指令を更新する。
【0124】
これにより、上記したように、基準外力の逆向きの方向への移動が最も制限されない状態となり、動作範囲外の近傍から離脱する際により安全な経路に誘導することができるとともに、動作範囲外へ向かう方向については、基準外力と同じ方向であればある程度の移動が許容されるとともに、基準外力の向きから外れるほど、また、境界位置に近づくほど移動の制限が強くなることから、動作範囲外に到達してしまうことを防止することができる。また、現在の外力が到達時の外力の向きに近いほど、外力の低減度合い大きくすることにより、相対的にアームが重くなったと感じることになるため、動作範囲外に近づいていることを作業者に体感で認識させることもできる。
【0125】
また、ロボット1の制御方法は、現在位置が動作範囲の境界位置に到達した場合、現在の外力が動作範囲外へ向かう方向である場合には、現在の外力に0を乗算した変換外力に基づいて位置指令を更新することで当該方向への移動を禁止する一方、境界位置から離間する方向の場合には、現在の外力に基づいて位置指令を更新する。これにより、内積値を求める演算を行わなくても動作範囲外への移動を禁止することができ、動作範囲外に到達してしまうことを防止することができる。
【0126】
(第2実施形態)
以下、第2実施形態について、図11を参照しながら説明する。第2実施形態によるロボット1の制御方法は、境界位置の形状または境界位置までの距離に基づいて当該近傍領域からの離脱が容易となる方向を判定する点において第1実施形態と異なっている。なお、ロボット1の構成は第1実施形態と共通するため同一符号を付して詳細な説明は省略する。
【0127】
近傍領域(R)は、動作範囲外の近傍ではあるものの、その近傍領域内でロボット1の姿勢を変化させること、つまりは、近傍領域内で監視点(P)が移動することが必要になる場合も想定される。そして、近傍領域(R)内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域(R)から離脱するのが容易になる方向も変化すると考えられる。
【0128】
そこで、本実施形態では、現在位置から最も近い境界位置の形状、または当該境界位置までの距離に基づいて、現在位置を起点として動作範囲外に向かう仮想的な外力を基準外力として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【0129】
この場合、図11に距離パターンとして示すように、監視点(P)の現在位置に最も近い境界位置上の近接点(P1)を特定すると、現在位置から近接点(P1)への方向が動作範囲外へ向かう方向となる。そして、現在位置を起点とし、その方向に向いた仮想的な基準外力(vF)を設定し、現在の外力例えば先端力(Fcur)と基準外力(vF)とを比較することにより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、第1実施形態のように先端力(Fcur)と基準外力(vF)との内積を取ることにより、現在の移動方向を判定することができるが、内積をとる以外の手法により現在の移動方向を判定することもできる。
【0130】
このように、監視点(P)の現在位置と近接点(P1)とに基づいて、つまりは、現在位置と境界位置との距離に基づいて現在の移動方向を判定することにより、第1実施形態と同様に、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【0131】
あるいは、図11に形状パターンとして示すように、最も近い境界位置が例えば壁面等の平面によって形成されている場合には、現在位置を起点としてその平面に例えば垂直な方向を動作範囲外へ向かう方向と設定し、その方向に向いた基準外力(vF)に基づいて当該近傍領域からの離脱が容易となる方向を判定することによっても、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。
【0132】
したがって、第1実施形態と同様に例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。また、近傍領域(R)内で監視点(P)の現在位置が変化した場合であっても、その変化に追従して、移動を制限すべき方向と離脱が容易となる方向とを特定することができる。
【0133】
この場合、第1実施形態で説明した低減パターンA~Fと組み合わせることもできる。例えば、第1実施形態で説明した到達時先端力(Finc)の代わりに仮想的な基準外力(vF)を用いて処理を行うことにより、本実施形態による制御方法においても、第1実施形態で説明した各低減パターンA~Fによる作用および効果を同様に得ることができる。
【0134】
(第3実施形態)
以下、第3実施形態について、図12を参照しながら説明する。第3実施形態によるロボット1の制御方法は、ロボットの原点から当該現在位置への向きとなる仮想的な外力に基づいて当該近傍領域からの離脱が容易となる方向を判定する点において第1実施形態と異なっている。なお、ロボット1の構成は第1実施形態と共通するため同一符号を付して詳細な説明は省略する。
【0135】
近傍領域(R)は、動作範囲外の近傍ではあるものの、その近傍領域内でロボット1の姿勢を変化させること、つまりは、近傍領域内で監視点(P)が移動することが必要になる場合も想定される。そして、近傍領域(R)内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域(R)から離脱するのが容易になる方向も変化すると考えられる。
【0136】
また、動作範囲は、ロボットのアームが届く範囲として設定されることがある。そのため、動作範囲の境界位置では、ロボットのアームが延びきった状態であることも想定される。換言すると、ロボットのアームが縮む方向は、動作範囲外から離脱する方向であると考えられる。そして、例えばロボットのアームのリーチ限界が定められているのであれば、ロボットの原点(O)に向かう方向がアームを縮める方向となり、最も離脱が容易な方向と考えることができる。
【0137】
そこで、本実施形態では、ロボット1に設定されている監視点(P)の現在位置を起点とし、ロボット1の原点(O)から当該現在位置への向きとなる仮想的な外力を基準外力(vF)として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【0138】
この場合、図12に示すように、監視点(P)の現在位置と原点とを通る仮想線(vL)を設定し、現在位置を起点として仮想線(vL)に沿って現在位置よりも外側に向かう方向が動作範囲外へ向かう方向となる。そのため、現在位置を起点とし、その方向に向いた仮想的な基準外力(vF)を設定し、現在の外力例えば先端力(Fcur)と基準外力(vF)とを比較することにより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、第1実施形態のように先端力(Fcur)と基準外力(vF)との内積を取ることにより、現在の移動方向を判定することができるが、内積をとる以外の手法により現在の移動方向を判定することもできる。
【0139】
このように、現在位置を起点とし、現在位置と原点(O)とを通る仮想線(vL)に沿った基準外力(vF)に基づいて当該近傍領域からの離脱が容易となる方向を判定することにより、現在の移動方向が移動を制限すべき方向であるか否かに加えて、離脱が容易となる方向をも特定することができる。これにより、例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。
【0140】
したがって、第1実施形態と同様に例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。また、近傍領域(R)内で監視点(P)の現在位置が変化した場合であっても、その変化に追従して、移動を制限すべき方向と離脱が容易となる方向とを特定することができる。
【0141】
この場合、第1実施形態で説明した低減パターンA~Fと組み合わせることもできる。例えば、第1実施形態で説明した到達時先端力(Finc)の代わりに仮想的な基準外力(vF)を用いて処理を行うことにより、本実施形態による制御方法においても、第1実施形態で説明した各低減パターンA~Fによる作用および効果を同様に得ることができる。
(第4実施形態)
以下、第4実施形態について、図13を参照しながら説明する。第4実施形態によるロボット1の制御方法は、現在位置から移動したと仮定した場合における境界位置との距離に基づいて当該近傍領域からの離脱が容易となる方向を判定する点において第1実施形態と異なっている。なお、ロボット1の構成は第1実施形態と共通するため同一符号を付して詳細な説明は省略する。
【0142】
近傍領域(R)は、動作範囲外の近傍ではあるものの、その近傍領域(R)内でロボットの姿勢を変化させること、つまりは、監視点(P)が移動することが必要になる場合も想定される。そして、近傍領域(R)内で現在位置が変化した場合には、現在位置から動作範囲外へ向かう方向、換言すると、近傍領域(R)から離脱するのが容易になる方向も変化すると考えられる。
【0143】
そこで、本実施形態では、ロボット1に設定されている監視点(P)の現在位置から所定の距離だけ移動した仮想位置(vP)のうち、最も境界位置に近くなる最接近位置(vP)を設定し、監視点(P)の現在位置を起点とし、当該現在位置から最接近位置(vP)に向かう仮想的な外力を基準外力(vF)として設定し、現在の外力と基準外力とを比較することより、当該近傍領域からの離脱が容易となる方向を判定する。この場合、動作範囲外へ向かう方向であるか否かを判定するためには、基準外力の向きが重要であってその大きさはそれほど重要ではないと考えられる。そのため、基準外力の大きさは、例えば予め基準値を設定しておくことができるし、例えば現在の外力の大きさを便宜的に利用することもできる。
【0144】
具体的には、図13に示すように、現在位置を中心とした例えば仮想円(vC)を設定し、仮想円(vC)上に複数の仮想位置(vP0~vPn)を設定し、各仮想位置(vP0~vPn)のうち境界位置に最も近くなる例えば仮想位置(vP0)を最接近位置として特定する。これは、監視点(P)の現在位置から最接近位置に向かった場合が、最も動作範囲外になり易いと考えられるためである。
【0145】
そして、現在位置を起点として最接近位置に向かう仮想的な基準外力(vF)を設定し、現在の外力と基準外力とを比較することより当該近傍領域からの離脱が容易となる方向を判定することにより、動作範囲外へ出やすい方向つまりは移動を制限すべき方向に加えて、離脱が容易となる方向をも特定することができる。
【0146】
したがって、第1実施形態と同様に例えば動作範囲外へ向かう方向である場合には移動を制限し、離脱が容易となる方向であれば移動を制限しない等の制御を行うことができるようになり、ダイレクトティーチング時の操作性を向上させることができる。また、近傍領域(R)内で監視点(P)の現在位置が変化した場合であっても、その変化に追従して、移動を制限すべき方向と離脱が容易となる方向とを特定することができる。
【0147】
この場合、第1実施形態で説明した低減パターンA~Fと組み合わせることもできる。例えば、第1実施形態で説明した到達時先端力(Finc)の代わりに仮想的な基準外力(vF)を用いて処理を行うことにより、本実施形態による制御方法においても、第1実施形態で説明した各低減パターンA~Fによる作用および効果を同様に得ることができる。
【0148】
(その他の実施形態)
実施形態ではフランジ1gの中心位置をロボット1の監視点(P)として設定する例を示したが、ロボット1の監視点(P)は、フランジ1gの中心位置に限らず、アーム、ツール3の任意の位置に設定することができる。ロボット1の形状やアームの外形等は機械的に定まっており、また、作業に用いるツール3の形状も予め特定することができる。そして、機械的に形状が特定できれば、任意の位置に設定した監視点(P)は、ロボット1の姿勢に基づいて特定することができる。
【0149】
そのため、監視点(P)を任意の位置に設定した場合であっても現在位置や加えられた外力を特定でき、上記した制御方法を用いてロボット1を制御することができる。つまり、動作範囲外への侵入を監視する監視点(P)は、先端以外の任意の部位(肩、肘など)にとることもできる。先端力に応じて先端位置を移動させる際、目標位置から関節角度を求める(逆運動学計算)過程で、各リンク位置を求めているため、監視位置を各リンク座標系上の位置としてあらかじめ与えておくことで、先端に伴って移動する監視位置を求めることができる。例えば、監視部位をロボットの凸部に設定しておくことにより、ロボット周囲の障害物への衝突防止にも貢献できる。
【0150】
また、コントローラ2のように、上記した制御方法を実施可能な制御装置によりロボット1を制御することによっても、同様に、ダイレクトティーチング時に操作性が低下することを抑制できる。
【0151】
実施形態では監視点(P)の現在位置を6次元座標で特定する例を示したが、監視点(P)の現在位置やロボット1の姿勢あるいは動作範囲を一意に定められるパラメータであれば、他の座標系を用いることもできる。例えば、T型変数やJ型変数を用いてソフトウェアで上限等のリミットを設定して動作範囲を規定することができる。
【符号の説明】
【0152】
図面中、1はロボット、2はコントローラ(制御装置)を示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13