(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023104413
(43)【公開日】2023-07-28
(54)【発明の名称】直接教示装置及び直接教示方法
(51)【国際特許分類】
B25J 9/16 20060101AFI20230721BHJP
G05B 19/42 20060101ALI20230721BHJP
【FI】
B25J9/16
G05B19/42 J
G05B19/42 L
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022005382
(22)【出願日】2022-01-18
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】大川 陽一
(72)【発明者】
【氏名】杉本 広大
(72)【発明者】
【氏名】田原 鉄也
【テーマコード(参考)】
3C269
3C707
【Fターム(参考)】
3C269AB33
3C269BB11
3C269CC09
3C269MN07
3C269MN14
3C269MN16
3C269MN29
3C269PP15
3C269SA02
3C707BS12
3C707JU02
3C707KS21
3C707KS35
3C707KT01
3C707KV01
3C707LS03
3C707LU07
3C707LU10
3C707MS29
(57)【要約】
【課題】制御の安定性を向上させる。
【解決手段】トルクを検知するトルク検知部4と、アームR1に対する操作に従動するようにアームR1を駆動するための演算を行う従動制御指令値演算部と、アームR1の所定部位の位置、姿勢、これらから演算される変量の少なくとも一つを制御するための演算を行う位置姿勢制御部114と、アームR1を駆動する駆動制御部115と、駆動制御部115の制御パラメータを管理するパラメータ管理部117と、パラメータ管理部117が設定する制御パラメータを切替える切替部116と、を備え、パラメータ管理部117は、所定部位の移動が制約される第1条件では第1制御パラメータを設定し、第2条件では第2制御パラメータを設定し、駆動制御部115は、第1制御パラメータ及び第2制御パラメータのいずれが設定された場合でも前記切替部によるパラメータの切替えを行う前から構成を変更せずにアームR1を駆動する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ロボットが有するアームが操作された際に前記アームに加わるトルクを検知するトルク検知部と、
前記トルク検知部による検知結果に基づいて、前記アームに対する操作に従動するように前記アームを駆動するための演算を行う従動制御指令値演算部と、
前記アームの所定部位の位置及び姿勢並びにこれらから演算される変量の少なくとも一つを制御するための演算を行う位置姿勢制御部と、
前記トルク検知部による検知結果、前記従動制御指令値演算部の演算結果及び前記位置姿勢制御部の演算結果に基づいて、前記アームを駆動する駆動制御部と、
前記駆動制御部に設定する制御パラメータを管理するパラメータ管理部と、
前記パラメータ管理部が前記駆動制御部に設定する制御パラメータを、第1制御パラメータと、前記第1制御パラメータとは異なる第2制御パラメータとの間で切替える切替部と、を備え、
前記パラメータ管理部は、前記所定部位の移動が制約される第1条件では前記第1制御パラメータを前記駆動制御部に設定し、前記第1条件とは異なる第2条件では前記第2制御パラメータを前記駆動制御部に設定し、
前記駆動制御部は、前記第1制御パラメータ及び前記第2制御パラメータのいずれが設定された場合でも前記切替部による前記第1制御パラメータと前記第2制御パラメータとの切替えを行う前から構成を変更せずに前記アームを駆動する
ことを特徴とする直接教示装置。
【請求項2】
前記駆動制御部は、トルク制御によって前記アームを駆動することを特徴とする請求項1記載の直接教示装置。
【請求項3】
前記所定部位の位置及び姿勢の少なくとも一方を演算する位置姿勢演算部と、
前記第1条件に対応し、前記所定部位の位置及び姿勢の少なくとも一方を拘束する制約を演算する位置姿勢目標演算部とを、更に備え、
前記位置姿勢制御部は、前記位置姿勢演算部の演算結果と、前記位置姿勢目標演算部の演算結果に基づいて前記アームを制御するための演算を行う
ことを特徴とする請求項1又は2記載の直接教示装置。
【請求項4】
前記所定部位の速度を演算する速度演算部を備え、
前記第1条件は、前記所定部位の移動速度の制約を含む
ことを特徴とする請求項1又は2記載の直接教示装置。
【請求項5】
前記所定部位の位置を演算する位置姿勢演算部を更に備え、
前記第1条件は、前記所定部位の位置の移動範囲の制約を含む
ことを特徴とする請求項1又は2記載の直接教示装置。
【請求項6】
前記所定部位の位置及び姿勢の少なくとも一方を演算する位置姿勢演算部を更に備え、
前記切替部は、前記位置姿勢演算部の演算結果に基づいて、前記制御パラメータを前記第1制御パラメータと前記第2制御パラメータとの間で切替える
ことを特徴とする請求項1、2及び4のいずれか1項記載の直接教示装置。
【請求項7】
前記アームの前記所定部位の速度を演算する速度演算部を更に備え、
前記切替部は、前記速度演算部の演算結果に基づいて、前記制御パラメータを前記第1制御パラメータと前記第2制御パラメータとの間で切替える
ことを特徴とする請求項1、2、3及び5のいずれか1項記載の直接教示装置。
【請求項8】
前記駆動制御部は、前記従動制御指令値演算部による演算結果及び前記位置姿勢制御部による演算結果を合成する合成部と、前記合成部による合成結果及び前記トルク検知部による検知結果に基づいて、前記アームを駆動する駆動トルクを制御するトルク制御部と、を有する
ことを特徴とする請求項2記載の直接教示装置。
【請求項9】
前記トルク検知部による検知結果に基づいて前記アームに加えられた操作力を検知する操作力検知部と、
合成部と、を備え、
前記位置姿勢制御部は、前記所定部位の移動が前記第1条件に対応するように前記アームを駆動するための演算を行い、
前記従動制御指令値演算部は、第1従動制御指令値演算部及び第2従動制御指令値演算部を有し、
前記第1従動制御指令値演算部は、前記トルク検知部による検知結果に基づいて、前記アームに対する操作に従動するように前記アームを駆動するための演算を行い、
前記第2従動制御指令値演算部は、前記操作力検知部による検知結果に基づいて、前記アームに対する操作に従動するように前記アームを駆動するための演算を行い、
前記合成部は、前記第2従動制御指令値演算部による演算結果及び前記位置姿勢制御部による演算結果を合成し、
前記駆動制御部は、前記切替部による前記第1制御パラメータと前記第2制御パラメータとの間での切替えに連動して切替えられる、前記第1従動制御指令値演算部による演算結果及び前記合成部による合成結果の一方と、前記トルク検知部による検知結果と、に基づいて、前記アームを駆動する
ことを特徴とする請求項2記載の直接教示装置。
【請求項10】
前記切替部は、前記位置姿勢演算部が演算する情報に含まれる値が、第1閾値に対して大きい値から小さい値へ変化したことに基づいて前記制御パラメータを前記第1制御パラメータ及び前記第2制御パラメータの一方から他方へ切替え、前記位置姿勢演算部が演算する情報に含まれる値が、前記第1閾値よりも大きい第2閾値に対して小さい値から大きい値へ変化したことに基づいて前記制御パラメータを前記第1制御パラメータ及び前記第2制御パラメータの他方から一方へ切替える
ことを特徴とする請求項6記載の直接教示装置。
【請求項11】
前記切替部は、前記速度演算部が演算する情報に含まれる値が、第1閾値に対して大きい値から小さい値へ変化したことに基づいて前記制御パラメータを前記第1制御パラメータ及び前記第2制御パラメータの一方から他方へ切替え、前記速度演算部が演算する情報に含まれる値が、前記第1閾値よりも大きい第2閾値に対して小さい値から大きい値へ変化したことに基づいて前記制御パラメータを前記第1制御パラメータ及び前記第2制御パラメータの他方から一方へ切替える
ことを特徴とする請求項7記載の直接教示装置。
【請求項12】
トルク検知部と、従動制御指令値演算部と、位置姿勢制御部と、駆動制御部と、前記駆動制御部に設定する制御パラメータを管理するパラメータ管理部と、切替部と、を備えた装置が行うロボットの直接教示方法であって、
前記トルク検知部が、前記ロボットが有するアームが操作された際に前記アームに加わるトルクを検知するステップと、
前記従動制御指令値演算部が、前記トルク検知部による検知結果に基づいて、前記アームに対する操作に従動するように前記アームを駆動するための演算を行うステップと
前記位置姿勢制御部が、前記アームの所定部位の位置及び姿勢並びにこれらから演算される変量の少なくとも一つを制御するための演算を行うステップと、
前記駆動制御部が、前記トルク検知部による検知結果、前記従動制御指令値演算部の演算結果及び前記位置姿勢制御部の演算結果に基づいて、前記アームを駆動するステップと、
前記切替部が、前記パラメータ管理部が前記駆動制御部に設定する制御パラメータを、第1制御パラメータと、前記第1制御パラメータとは異なる第2制御パラメータとの間で切替えるステップと、を備え、
前記パラメータ管理部は、前記所定部位の移動が制約される第1条件では前記第1制御パラメータを前記駆動制御部に設定し、前記第1条件とは異なる第2条件では前記第2制御パラメータを前記駆動制御部に設定し、
前記駆動制御部は、前記第1制御パラメータ及び前記第2制御パラメータのいずれが設定された場合でも前記切替部による前記第1制御パラメータと前記第2制御パラメータとの切替えを行う前から構成を変更せずに前記アームを駆動する
ことを特徴とする直接教示方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットアームの直接教示を行う直接教示装置及び直接教示方法に関する。
【背景技術】
【0002】
一般に、産業用のロボットでは、ロボットに作業をさせるために、前もって教示(ティーチング)と呼ばれる作業が実施される。従来、このロボットの教示を行う方法の1つとして、直接教示(ダイレクト教示)と呼ばれる方法が開示されている(例えば特許文献1及び非特許文献1参照)。特許文献1に記載の直接教示装置は、操作者がアームを操作している状態のまま通常直接教示と制約(制限)付き直接教示を切替え可能としている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-202383号公報
【非特許文献2】Kodai Sugimoto, Koji Shimizu, Tetsuya Tabaru; Lead-Through Programming of Robotic Manipulators by Joint Torque Control, Proc. of the SICE Annual Conference 2020, pp. 462-466, 2020)
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1で示した各関節単位でのトルク制御(各軸トルク制御)による直接教示動作は、操作感を軽くできる一方で、位置姿勢の拘束といった制約付き直接教示動作における制約性能を上げるのが難しいという課題がある。
これは、位置の制約付き直接教示では位置姿勢を扱う必要があるが、関節単位の駆動制御部だけでは、課された位置姿勢の制約を満たすように制御演算することは、実行不可能であるためである。したがって、この制約機能を実行するためには、メイン制御部に制約付き直接教示を実現する制御演算部を追加する必要がある。
これは、各軸トルク制御による直接教示動作に対して、フィードバック制御をメイン制御部に追加する構成となるが、これは制御系全体での一巡伝達関数の制御ゲインが増大することに相当する。メイン制御部にフィードバック制御が追加されたことにより一巡伝達関数の制御ゲインが増大したとき、制御系全体が安定に動作するためには、駆動制御部の制御ゲインを相対的に下げる必要が生じる。
また、一般的にメイン制御部と関節制御部の間には通信遅延があるため、メイン制御部におけるフィードバック制御が通信遅延による位相遅れを伴うことも、制御系全体の安定性を劣化させる要因となりうる。
このような要因により、安定な動作を実現するためには駆動制御部の制御ゲインを上げることが難しくなる。しかしながら、メイン制御部におけるフィードバック制御を有効にした場合に合わせた制御パラメータ設定では、制約のない通常の直接教示動作時には、ゲインが小さいことなどによって操作感が劣化する問題が生じる。
【0005】
本開示は、従来よりも制御の安定性を向上させることができる直接教示装置及び直接教示方法を提供することを目的としている。
【課題を解決するための手段】
【0006】
本開示の直接教示装置は、ロボットが有するアームが操作された際にアームに加わるトルクを検知するトルク検知部と、トルク検知部による検知結果に基づいて、アームに対する操作に従動するようにアームを駆動するための演算を行う従動制御指令値演算部と、アームの所定部位の位置及び姿勢並びにこれらから演算される変量の少なくとも一つを制御するための演算を行う位置姿勢制御部と、トルク検知部による検知結果、従動制御指令値演算部の演算結果及び位置姿勢制御部の演算結果に基づいて、アームを駆動する駆動制御部と、駆動制御部に設定する制御パラメータを管理するパラメータ管理部と、パラメータ管理部が駆動制御部に設定する制御パラメータを、第1制御パラメータと、第1制御パラメータとは異なる第2制御パラメータとの間で切替える切替部と、を備え、パラメータ管理部は、所定部位の移動が制約される第1条件では第1制御パラメータを駆動制御部に設定し、第1条件とは異なる第2条件では第2制御パラメータを駆動制御部に設定し、駆動制御部は、第1制御パラメータ及び第2制御パラメータのいずれが設定された場合でも切替部による第1制御パラメータと第2制御パラメータとの切替えを行う前から構成を変更せずにアームを駆動することを特徴とするものである。
【発明の効果】
【0007】
本開示によれば、上記のように構成したので、制約の条件に応じた適当なパラメータを用いてアームを駆動することが可能となり、制御系のゲインの増大を抑制してアームの動作の安定性を向上させることができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1に係るロボットを示す斜視図である。
【
図2】実施の形態1に係る直接教示装置を示すブロック図である。
【
図3】実施の形態1の変形例に係る直接教示装置を示すブロック図である。
【
図4】実施の形態1に係る直接教示装置が行う処理を示すフローチャートである。
【
図5】実施の形態2に係る直接教示装置を示すブロック図である。
【
図6】実施の形態2の変形例に係る直接教示装置を示すブロック図である。
【
図7】実施の形態3に係る直接教示装置を示すブロック図である。
【
図8】実施の形態4に係る直接教示装置を示すブロック図である。
【
図9】実施の形態4に係る位置姿勢制御演算部の処理を示すブロック図である。
【
図10】実施の形態5に係る直接教示装置を示すブロック図である。
【
図11】実施の形態7に係るアームの動作角度とゲインとの関係を示すグラフである。
【発明を実施するための形態】
【0009】
以下、本開示の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るロボットを示す斜視図である。実施の形態1に係るロボットが有するロボットアームR1(アーム)は、互いに相対移動可能な複数のリンクを備えている。例えば、ロボットアームR1は、リンクL1と、リンクL1に対して回動可能に支持されているリンクL2と、リンクL2に対して回動可能に支持されているリンクL3と、リンクL3に対して回動可能に支持されているリンクL4と、リンクL4に対して回動可能に支持されているリンクL5と、リンクL5に対して回動可能に支持されているリンクL6と、リンクL6に対して回動可能に支持されているエンドエフェクタE1と、を備えている。また、ロボットアームR1は、リンクL1とリンクL2との間に関節J1が、リンクL2とリンクL3との間に関節J2が、リンクL3とリンクL4との間に関節J3が、リンクL4とリンクL5との間に関節J4が、リンクL5とリンクL6との間に関節J5が、リンクL6とエンドエフェクタE1との間に関節J6が、それぞれ形成されて、6軸のロボットアームとして構成されている。
【0010】
また、ロボットアームR1は、作業を事前に直接教示するための直接教示装置100Aを備えている。例えば、操作者は、ロボットアームR1の直接教示を行う際、ロボットアームR1の所定部位を手動で操作することで、ロボットアームR1に当該所定部位の動作を教示する。具体的には、操作者は、ロボットアームR1の直接教示を行う際、エンドエフェクタE1、及び、リンクL2~L6の任意の部位を手動で操作することで、ロボットアームR1にエンドエフェクタE1の動作を教示する。直接教示装置100Aは、例えば、制御によりエンドエフェクタE1の位置が操作者の意図する位置姿勢となった場合に、その際のエンドエフェクタE1の位置姿勢を教示点として記録する。この直接教示装置100Aにより記録された教示点は、ロボットが作業する際に使用される。
【0011】
直接教示装置100Aは、ロボット制御装置1Aと、駆動源2と、エンコーダ3と、トルク検知部4と、を備えている。ロボット制御装置1Aは、メイン制御部11Aと、関節制御部12Aと、を有している。例えば、直接教示装置100Aは、関節J1~J6のそれぞれに対応する複数の、関節制御部12A、駆動源2、エンコーダ3及びトルク検知部4を有している。駆動源2は、供給された駆動電流を駆動力に変換する。駆動源2は、例えば、モータによって構成される。例えば、ロボットアームR1は、駆動源2で発生した駆動力が減速機(不図示)を介して各リンクに伝達されることにより動作する。
【0012】
エンコーダ3は、対応する関節の動作角度を検出する。例えば、エンコーダ3は、対応する関節を形成する2つのリンクの、基準となる相対位置からの相対回動角度である動作角度を検出する。エンコーダ3によって検出された各関節の動作角度に基づいて、後述する位置姿勢演算部112によってロボットアームR1の所定部位、例えば、エンドエフェクタE1の位置が演算される。このため、エンコーダ3は、ロボットアームR1の所定部位の位置に関する情報を取得しているといえる。なお、エンコーダ3は、実施の形態1において、位置情報取得部を構成する。
また、位置情報取得部は、エンコーダを用いて検出された各関節の動作角度に基づいた位置に限らず、カメラ等の撮像器によってロボットアームR1の所定部位を撮像し、位置に関する情報を取得するものであってもよい。
【0013】
トルク検知部4は、操作者によりロボットアームR1が操作された際に、ロボットアームR1に加わるトルクを検知する。例えば、トルク検知部4は、駆動源2であるモータの駆動軸に取付けられたトルクセンサを用いて計測されたトルク計測値τを検知する。また、トルク検知部4は、トルクセンサを用いて直接計測されたトルクを検知するものに限らず、駆動源2に供給された電流値又は関節の動作角度θの計測値から間接的にトルクを算出するトルクオブザーバを用いてトルクを検知するものであってもよい。トルク検知部4が検知するトルクには、操作者により加えられた操作力(外力)以外にも、ロボットアームR1の重力に起因する成分の推定値、トルクセンサのオフセット値等の静的な外乱が含まれている。
【0014】
メイン制御部11Aは、各関節制御部12A、各駆動源2、各エンコーダ3及び各トルク検知部4と通信線や電力線を介して電気的に接続されており、各エンコーダ3及びトルク検知部4からの情報に基づいて各関節制御部12Aに指令値を出力することによって、各駆動源2を制御する。このように構成されて、実施の形態1に係る直接教示装置100Aは、ロボットアームR1の直接教示を可能としている。
【0015】
また、直接教示装置100Aは、エンドエフェクタE1の位置姿勢や移動速度を操作者が任意に決定可能な通常直接教示(通常直接教示)と、エンドエフェクタE1の位置姿勢や移動速度に予め設定された制約を課す制約付きの直接教示(制約付き直接教示)と、を選択的に行うことが可能である。なお、実施の形態1において、エンドエフェクタE1の位置姿勢とは、3次元空間におけるエンドエフェクタE1の先端又は任意の点の位置(座標)及びエンドエフェクタE1の姿勢(向き、回動位置)のうちの少なくとも一方を意味する。また、実施の形態1において、エンドエフェクタE1の位置姿勢のことを、単にエンドエフェクタE1の位置ともいう。
【0016】
制約付き直接教示は、ロボットアームR1の所定部位、例えば、3次元空間におけるエンドエフェクタE1の位置が取りうる値に制約を課す位置制約、エンドエフェクタE1の取りうる姿勢に制約を課す姿勢制約、エンドエフェクタE1の移動速度が予め定めた所定の値を超過しないよう制約を課す速度制約等を課しながら直接教示を行うものである。
【0017】
図2は、実施の形態1に係る直接教示装置100Aを示すブロック図である。メイン制御部11Aは、従動制御指令値演算部111(従動演算部)、位置姿勢演算部112、速度演算部113、位置姿勢速度制御部114(位置姿勢制御部)、切替部116及びパラメータ管理部117を備えており、また、関節制御部12Aは、駆動制御部115を備えている。なお、
図2では、関節制御部12A、駆動源2、エンコーダ3及びトルク検知部4をそれぞれ1つのみ記載し、他の関節制御部12A、駆動源2、エンコーダ3及びトルク検知部4については、図示及び説明を省略する。メイン制御部11Aの機能は、システムLSI(Large-Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。なお、パラメータ管理部は、後述する機能を実現できるならば、必ずしもメイン制御部に備えられている必要はない。
【0018】
従動制御指令値演算部111は、トルク検知部4により検知されたトルクに従うロボットアームR1の動きを実現するための従動制御指令値を算出する。従動制御指令値演算部111は、トルクの計測値のうち重力に起因する成分の推定値とセンサのオフセット値といった静的な外乱の和を従動制御指令値として演算する。これにより、関節制御部12Aがゼロトルク制御(操作者がエンドエフェクタE1を含む、リンクL2~L7の任意の部位を移動させる際に必要な力が、ゼロ又は非常に小さな値となるようなトルクの制御)を行うことができる。このように、従動制御指令値演算部111は、トルク検知部4による検知結果に基づいて、ロボットアームR1に対する操作に従動するようにロボットアームR1を駆動するための演算を行っている。
【0019】
ゼロトルク制御により、操作者がロボットアームR1の任意の部位に外力を加えるとそれを打ち消すようにロボットアームR1が動くので、結果として操作者により加えられた外力方向にロボットアームR1の任意の部位が移動する。この一連の動作により、直接教示装置100Aは、操作者により加えられた外力に従ってロボットアームR1の任意の部位が移動する制御を実現できる。なお、以下の説明において、トルク検知部4に基づいて検知された外力に従うロボットアームR1の動きを実現するための制御を、従動制御という。
【0020】
位置姿勢演算部112は、エンコーダ3から取得した情報、具体的には、ロボットアームR1が有する関節毎の動作角度の現在値の情報に基づいて、エンドエフェクタE1の位置及び姿勢のうち少なくとも一方の現在値を演算する。ロボットアームR1が有する関節毎の動作角度の現在値は、関節座標系で表されており、位置姿勢演算部112は、関節毎の動作角度の現在値を直交座標系で表されたエンドエフェクタE1の位置及び姿勢の現在値に変換する。速度演算部113は、位置姿勢演算部112で算出したエンドエフェクタE1の位置及び姿勢の現在値に基づいて、エンドエフェクタE1の移動速度を演算する。
【0021】
位置姿勢速度制御部114は、位置姿勢演算部112で算出されたエンドエフェクタE1の位置または姿勢の現在値および速度演算部113で算出されたエンドエフェクタE1の移動速度や、加速度のような位置の時間二階微分値といった、位置や姿勢から四則演算や時間微分などの演算によって算出される変量の少なくとも一つが、課されている制約を満足するような制御量(制約制御量)を演算する。例えば、エンドエフェクタE1の位置の現在値をある仮想平面上や仮想曲面上に拘束するような制約を課す制御を行う場合を考える。この場合、エンドエフェクタE1の位置が、拘束目標である仮想平面や仮想曲面に漸近するように制御量を演算することにより、エンドエフェクタE1の位置をその仮想平面上や仮想曲面上に拘束しようとする。例えば、この位置姿勢速度制御部114は、エンドエフェクタE1の位置や移動速度を制約する制約付き直接教示を行う場合に有効な有効状態となり、通常直接教示を行う場合は無効な無効状態となる。有効状態及び無効状態は、例えば制約制御量の送信を行う/停止する、制約制御量と同時に有効状態/無効状態の区別を駆動制御部に送信するといった方法で行われる。
【0022】
駆動制御部115は、従動制御指令値と位置姿勢速度制御部114からの制約制御量に基づいて駆動源2を駆動する。これにより、駆動制御部115は、トルク検知部4による検知結果及びエンコーダ3によって取得された関節の動作角度に基づいて、操作者によるロボットアームR1に対する操作に従動するようにロボットアームR1を駆動する。駆動制御部115は、従動制御指令値と制約制御量のいずれの信号も受信するが、通常直接教示を行うモード(第2モード)では従動制御指令値を使用し、制約付き直接教示を行うモード(第1モード)では従動制御指令値および制約制御量を併用する。
【0023】
また、実施の形態1において、第1モードにおいてロボットアームR1の所定部位の移動の制約の条件を第1条件、第2モードにおいてロボットアームR1の所定部位の移動の制約の条件を第2条件とする。例えば、第1条件は、ロボットアームR1の所定部位の移動速度の制約を含む。また、例えば、第1条件は、ロボットアームR1の所定部位の移動範囲の制約を含む。このように、駆動制御部115は、第1モードにおいて、所定部位の移動が制約される第1条件に基づきロボットアームR1を駆動し、第2モードにおいて、第1条件とは異なる第2条件に基づき、ロボットアームR1を駆動する。なお、第2条件は、第1条件と異なるもので、第1条件よりも制約が少ないものであればよく、例えば、第2条件は、ロボットアームR1の所定部位の移動の制約がないものを含む。
【0024】
切替部116は、通常直接教示と制約付き直接教示とのいずれを選択されたかに連動して、パラメータ管理部117が駆動制御部115に設定する制御パラメータを、第1制御パラメータと、第1制御パラメータとは異なる第2制御パラメータとの間で切替える。言い換えると、切替部116は、位置姿勢速度制御部114の有効状態/無効状態に連動して、パラメータ管理部117に格納された制御パラメータを切替える。切替部116によって制御パラメータが切替えられることによって、駆動制御部115の動作が第1モードと第2モードとの間で切替えられる。第1制御パラメータ及び第2制御パラメータの詳細は後述する。
【0025】
通常直接教示と制約付き直接教示との選択は、例えば、操作者がHMI(Human Machine Interface)やモード切替えスイッチといった入力装置(不図示)によって、通常直接教示か制約付き直接教示かを指定することにより行う。または、特許文献1に記載の発明のように、操作者がロボットアームR1を操作している状態で、位置情報取得部によって取得されたロボットアームR1の所定部位の位置や移動速度に基づいて、通常直接教示と制約付き直接教示の切替えを判定できる制御装置によって、第1モードか第2モードかを指定することにより行う。
【0026】
パラメータ管理部117は、駆動制御部115に設定する制御ゲイン等の複数の制御パラメータの情報を保持(記憶)している。パラメータ管理部117は、切替部116の設定(選択)結果に応じて、通常直接教示を行う場合と制約付き直接教示を行う場合とで、異なる制御パラメータを駆動制御部115に設定(出力)する。パラメータ管理部117が保持するパラメータには、従動制御指令値に対する制御ゲインの大きさや、駆動制御部115において位置姿勢速度制御部の算出結果である制約制御量に対する制御ゲインの大きさを決定するパラメータを含んでいる。
【0027】
通常直接教示の場合、パラメータ管理部117は、駆動制御部115に対して、軽い操作感の実現に適した従動制御指令値に対する制御ゲインを決定するパラメータを設定する。また、通常直接教示の場合、駆動制御部115は制約制御量の信号を使用しないため、パラメータ管理部117は、制約制御量の信号を無効とするような、制約制御量に対する制御ゲインを決定するパラメータを設定する。一方、制約付き直接教示の場合、パラメータ管理部117は、従動制御だけでなく位置や速度の制約を満たす制約制御を実現するために、従動制御指令値と制約制御量を併用し、駆動源2に出力する駆動電流を決定する。このとき、メイン制御部11Aにフィードバック制御を追加したことによる一巡伝達関数のゲインが増大した影響を考慮して、駆動制御部115における従動制御指令値に対する制御ゲインの大きさを決定するパラメータは、安定な動作の実現に適した値とする必要がある。そのため、従動制御指令値に対する制御ゲインは、通常直接教示の場合の方が、制約付き直接教示の場合よりも高い値となる。
【0028】
次に、
図3を参照して、制約付き直接教示の場合の駆動制御部115の具体的な一例について説明する。
図3は、実施の形態1に係る直接教示装置100Aの具体例を示すブロック図である。従動制御指令値は、通常直接教示と同様にゼロトルク制御を行うための指令値として使用される。一方、制約制御量の物理量は、この値に基づいてエンドエフェクタE1の位置及び移動速度が制約を満たすようにロボットアームR1が動作をするための駆動源2のトルクである。駆動制御部115内で制約制御量に制御ゲインを乗じることにより、駆動源2が駆動するための電流が発生する。
【0029】
駆動制御部115は、トルク制御部118A1と、制約制御量に制御ゲインを乗じるゲイン118A2と、を有している。トルク制御部118A1は、トルク検知部4による検知結果及び従動制御指令値演算部111による演算結果に基づいて、操作者によるロボットアームR1に対する操作に従動するようにロボットアームR1を駆動するための電流値を演算する。例えば、通常直接教示を行うモードでは、ロボットアームR1の任意の部位を移動させる際の軽い操作感(操作力)を実現するために適したトルク制御部118A1の制御ゲインがパラメータ管理部117によって設定される。またゲイン118によって制御制約量に乗じる制御ゲインは、制御制約量を使用した制御を無効とするために、0が設定される。一方、制約付き直接教示を行う第1モードでは、トルク制御部118A1のゲインは、制御の安定性を確保するために、通常直接教示を行う第2モードの場合よりも小さな値が設定される。また、制約制御量に対する制御ゲインをパラメータ管理部117により0以外の値に設定することにより、共通の制御手段で従動制御指令値および制約制御量を併用することができる。
ここで制御手段とは、駆動制御部115に入力される指令値を実現するために構成された、制御器の構成を指す。例えば
図3では、駆動制御部115は、トルク検知部4による検知結果が、駆動制御部115に入力される従動制御指令値と一致するように制御するトルク制御部118A1と、制約制御量に対応するトルクを発生させるためのゲイン118A2から構成されている。このようにトルクを介して制御を行う場合、駆動制御部115の制御手段はトルク制御となる。仮に駆動制御部115が、ゲイン118A2の代わりに、制約制御量で指定された各関節の位置と、エンコーダで検知された位置とが一致するような位置制御器を持つのであれば、駆動制御部115の制御手段は、トルク制御と位置制御を組み合わせたものとなる。
実施の形態1において、第1モードと第2モードでは、駆動制御部115の制御手段を切替えずに、使用する。言い換えると、駆動制御部115は、第1制御パラメータ及び第2制御パラメータのいずれが設定された場合でも、切替部116によるパラメータの切替えを行う前から制御器の構成を変更せずにロボットアームR1を駆動する。すなわち、第1モードではトルク制御を使用するが、第2モードでは制御器の構成を変更し、位置制御や速度制御を併用するといった切替えは、本実施の形態では行わない。
【0030】
なお、駆動制御部115が、第1モードにおいて駆動源2を駆動する際に用いるパラメータ(制御パラメータ)を第1パラメータ(第1制御パラメータ)、第2モードにおいて駆動源2を駆動する際に用いるパラメータ(制御パラメータ)を第2パラメータ(第2制御パラメータ)ともいう。第1パラメータ及び第2パラメータは、駆動制御部115におけるゲインの大きさに係るパラメータである。具体的には、第1パラメータ及び第2パラメータは、駆動源2に対してモードに応じた駆動電流を出力するためのパラメータであり、例えば、上記の通り、制約移動量に対する制御ゲインである。また、第1パラメータ及び第2パラメータは、制約移動量に対する制御ゲインに限定されない。
【0031】
第1パラメータ及び第2パラメータは、通常直接教示を行う場合よりも制約付き直接教示を行う場合の制御系全体での一巡伝達関数の制御ゲインの増大を抑制することが可能なパラメータであればよく、例えば、第1パラメータ及び第2パラメータは、従動制御指令値に対するゲインの大きさであってもよいし、駆動制御部において位置姿勢速度制御部の算出結果である制約制御量に対するゲインの大きさを決定するパラメータであってもよい。また、第1パラメータ及び第2パラメータは、トルク検知部により検知されたトルクに含まれる高周波成分を除去するためのローパスフィルタの時定数であってもよいし、操作者により加えられた外力に従って動く際の外力に対する不感帯を決定するパラメータであってもよいし、駆動源2を駆動させるための電流から共振周波数帯成分を除去するためのノッチフィルタのパラメータであってもよいし、これらのパラメータのうち複数のパラメータの組合せであってもよい。
【0032】
次に、直接教示装置100Aが行う処理について説明する。直接教示装置100Aは、処理を開始すると、まずトルク検知部4によってロボットアームR1に加わるトルクを検知する(ステップST1)。次に、直接教示装置100Aは、従動制御指令値演算部111によって従動制御指令値を算出する(ステップST2)。次に、直接教示装置100Aは、駆動制御部115が第1モードであるか否かを判定する(ステップST3)。言い換えると、直接教示装置100Aは、駆動制御部115が第1パラメータによって駆動源2を制御する状態であるか否かを判定する。例えば、直接教示装置100Aは、切替部116によって、ロボットアームR1が制約付き直接教示が行われる状態であるか否かを判定する。
【0033】
ステップST3の処理において、直接教示装置100Aは、駆動制御部115を第1モードとする状態でない場合、言い換えると、ロボットアームR1が制約付き直接教示を行う状態でない場合(ステップST3のNO)、即ち通常直接教示を行う状態である場合、切替部116によって第2パラメータを選択し、第2モードである駆動制御部115により第2パラメータを用いて駆動源2を駆動することを決定する(ステップST10)。
【0034】
また、ステップST3の処理において、直接教示装置100Aは、駆動制御部115を第1モードとする状態である場合、言い換えると、ロボットアームR1が制約付き直接教示を行う状態である場合(ステップST3のYES)、切替部116によって第1パラメータを選択し、第1モードである駆動制御部115により第1パラメータを用いて駆動源2を駆動することを決定する(ステップST4)。
【0035】
ステップST4の処理を行うと、直接教示装置100Aは、エンコーダ3によって関節の動作角度を検知し(ステップST5)、エンコーダ3によって検知した関節の動作角度に基づいて位置姿勢演算部112及び速度演算部113がエンドエフェクタE1の位置及び移動速度を演算し(ステップST6、ステップST7)、位置姿勢速度制御部114によって制約制御量を演算する。
【0036】
ステップST7又はステップST10の処理を行うと、直接教示装置100Aは、演算された従動制御指令値及び制約制御量と、第1パラメータ及び第2パラメータのうち選択された一方と、に基づいて、駆動制御部115によって駆動源2へ出力する電流値を演算し(ステップST8)、駆動源2に電流を出力する(ステップST9)
【0037】
以上のように、実施の形態1に係る直接教示装置100Aは、ロボットアームR1が操作された際にロボットアームR1に加わるトルクを検知するトルク検知部4と、トルク検知部4による検知結果に基づいて、ロボットアームR1に対する操作に従動するようにロボットアームR1を駆動するための演算を行う従動制御指令値演算部111と、ロボットアームR1の所定部位の位置及び姿勢並びにこれらから演算される変量の少なくとも一つを制御するための演算を行う位置姿勢速度制御部114と、トルク検知部4による検知結果、従動制御指令値演算部111の演算結果及び位置姿勢速度制御部114の演算結果に基づいて、ロボットアームR1を駆動する駆動制御部115と、駆動制御部115に設定する制御パラメータを管理するパラメータ管理部117と、パラメータ管理部117が駆動制御部115に設定する制御パラメータを、第1制御パラメータと、第1制御パラメータとは異なる第2制御パラメータとの間で切替える切替部116と、を備え、パラメータ管理部117は、ロボットアームR1の所定部位の移動が制約される第1条件では第1制御パラメータを駆動制御部115に設定し、第1条件とは異なる第2条件では第2制御パラメータを駆動制御部115に設定し、駆動制御部115は、第1制御パラメータ及び第2制御パラメータのいずれが設定された場合でも同一の構成でロボットアームR1を駆動する。
【0038】
これにより、直接教示装置100Aは、トルク検知部4に基づいて検知された操作者の操作力に従いながら、制約が満たされたロボットアームR1の動きの実現が可能となる。なお、直接教示装置100Aは、位置姿勢速度制御部114によって、エンドエフェクタE1の位置の制御及び移動速度の制御のいずれか一方が可能であればよく、必ずしもこれら両方の制御を行うものに限定されない。
【0039】
また、制約制御量は、例えば、関節毎の電流の指令値とし、トルク制御部が出力する電流指令値との合成値を、アームを駆動するための電流の指令値としてもよい。また、制約制御量を関節毎の角速度の指令値とし、駆動制御部内で速度制御を実施した結果の電流値を、トルク制御部が出力する電流指令値と合算し、ロボットアームを駆動するための電流の指令値としてもよい。
【0040】
ここで、実施の形態1の効果について説明する。一般に、実施の形態1のような関節制御部は、メイン制御部よりも低遅延で制御できるため、ゲインを上げやすい。そのため、駆動制御部でゼロトルク制御を行う通常直接教示の場合は、トルク制御を高いゲインで行う方が操作者の操作負担が少なく性能上有利である。一方、制約付き直接教示の場合、制約であるエンドエフェクタE1等の位置や移動速度のフィードバック制御演算をメイン制御部に追加するため、制御系全体の一巡伝達関数のゲインの増加を考慮して、安定な動作を実現する駆動制御部の制御パラメータを設定したほうが性能上有利である。
【0041】
実施の形態1に係る直接教示装置100Aは、制約の条件に応じた適当なパラメータを用いてアームを駆動することが可能となり、従来に対し、制約を課さない通常直接教示を行う場合には軽い操作感で動かすことができ、アームの位置や速度の制御を同時に行う機能が有効な制約付き直接教示を行う場合には制御系のゲインの増大を抑制して安定性を向上させ、全体の性能向上が図られた直接教示動作を実現できる。
【0042】
また、一般に、各関節単位でのトルク制御(各軸トルク制御)による直接教示動作は、操作感を軽く出来る一方で、位置姿勢の拘束といった制約付き直接教示動作における制約性能を上げるのが難しいという課題がある。これは、ロボットアームの所定部位の位置の制約付き直接教示において、関節単位の駆動制御部だけでは、課された位置の制約を満たすように制御演算することは、実行不可能であるためである。したがって、この制約機能を実行するためには、メイン制御部に制約付き直接教示を実現する制御演算部を追加する必要がある。
【0043】
例えば、エンドエフェクタE1の位置をZ軸方向に拘束して直接教示動作を行う場合、上位のメイン制御部において拘束位置からの位置偏差を抑制するような制御指令値を算出し、関節制御部によって関節毎の駆動制御を実行することにより、位置の制約付き直接教示動作を実現することが可能である。関節制御部が位置姿勢を制御できないためフィードバック制御をメイン制御部に追加する構成となるが、これは制御系全体での一巡伝達関数の制御ゲインが増大することに相当する。メイン制御部にフィードバック制御が追加されたことにより一巡伝達関数の制御ゲインが増大したとき、制御系全体が安定に動作するためには、駆動制御部の制御ゲインを相対的に下げる必要が生じる。また、一般的にメイン制御部と関節制御部の間には通信遅延があるため、メイン制御部におけるフィードバック制御が通信遅延による位相遅れを伴うことも、制御系全体の安定性を劣化させる要因となりうる。
【0044】
このような要因により、安定な動作を実現するためには駆動制御部の制御ゲインを上げることが難しくなる。しかしながら、メイン制御部におけるフィードバック制御を有効にした場合に合わせた制御パラメータ設定では、拘束を課さない直接教示動作時には、ゲインが小さいことなどによって操作感が劣化する問題が生じる。なお、同様な課題は位置の制約付きの直接教示以外でも、位置や速度の制御を同時に行う機能を持つ直接教示で起こりうる。例えば操作者の安全のために、アームの手先の速度や各関節の角速度を所定の値以下に制御したい場合、メイン制御部での速度フィードバック制御を介して速度を制御することが必要であり、同様の課題が生じる。
【0045】
したがって、制約付き直接教示を行う際には、関節制御部12Aで各軸トルク制御を行う場合、メイン制御部11AでエンドエフェクタE1の位置を拘束に追従させる制約制御量を演算する必要がある。メイン制御部11Aにフィードバック制御を追加したことによって一巡伝達関数ゲインが増大した影響を考慮して、安定な動作を実現する制御パラメータを関節制御部12Aに設定する必要がある。一方、通常直接教示を行う際は、軽い操作感が重要であり、これを達成するには各関節単位で外力に従うアーム動作を実現するようにトルクを制御することに適した制御パラメータが設定されているほうが性能上好ましい。
【0046】
このように、制約付き直接教示時と通常直接教示時とで、関節制御部の制御パラメータに求められる要件が異なるため、実施の形態1に係る直接教示装置100Aは、関節制御部の制御パラメータを制約付き直接教示時と通常直接教示時の各々の場合に適した値に切替えるように構成されている。
また、駆動制御部115の制御手段を、通常直接教示と制約付き直接教示とにおいて切替えないことによって、次のような効果がある。一般に、駆動制御部115内の制御手段を切替える際は、切替え時間が駆動制御部115内の制御周期に対して無視できないほど大きいために、動作中に切替えると、切替え中のロボットアームR1の急停止や、切替え直後におけるロボットアームR1の急動作する懸念がある。これを防止するために、ロボットアームR1を完全に一旦停止させるか、制御手段に応じて制御対象の状態変数に対する適切な初期値の設定が必要である。つまり、ロボットアームR1の動作中に制御手段が切替わる場合には、ロボットアームR1が急動作や急停止することによる、性能劣化だけでなく危険防止を考慮した処理が別途必要となる。一方、本開示によれば、第1モードと第2モードを切替える際には、制御手段の切替えを伴わずに制御パラメータのみを切替えるため、性能劣化や危険防止を考慮した、適切な初期値を検討する必要はない。そのため、制御手段の切替えに伴う特別な処理は不要となる。
これにより、直接教示装置100Aは、通常直接教示と制約付き直接教示とにおいてゲインを適切な値とすることで、操作者の操作負担の軽減と動作の安定性の向上の各々の場合に適した制御の実現を可能としている。つまり、アームの位置や速度の制御を必要としない通常の直接教示動作時は、軽い操作感で動かすことができ、また、アームの位置や速度の制御を同時に行う機能が有効な制約付き直接教示実施中は、全体の性能向上が図られている直接教示装置及び直接教示方法の提供がなされる。
【0047】
なお、上述した制約付き直接教示の説明では、エンドエフェクタE1の位置及び移動速度に課された制約の種類について言及していないが、課された制約の種類が複数あり、直接教示の実施中にそれらを自動的に切替えてもよい。例えば、通常直接教示からエンドエフェクタE1の3次元空間における位置に制約が課された直接教示に切替えた後に、エンドエフェクタE1の向きに制約が課された直接教示に切替えることを指す。この場合、3次元空間における位置の制約付き直接教示と向きの制約付き直接教示とでは、安定性を含む全体の性能向上が図られたパラメータが異なる可能性がある。その場合は、3次元空間における位置の制約付き直接教示から向きの制約付き直接教示に切替える際は、パラメータを切替える。
【0048】
実施の形態2.
以下、
図2を参照して、実施の形態2について説明する。実施の形態2に係る直接教示装置100Bは、実施の形態1に係る直接教示装置100Aに対して、関節制御部における処理が異なるが、他に内容については実施の形態1に係る直接教示装置100Aと同様であるため、重複した説明を省略する。
【0049】
図5は、実施の形態2に係る直接教示装置100Bを示すブロック図である。実施の形態2に係る直接教示装置100Bは、関節制御部12Bを備えており、関節制御部12Bは、駆動制御部115Bを有し、駆動制御部115Bは、トルク制御部118Bを有している。実施の形態2に係る直接教示装置100Bは、駆動制御部115B内で従動制御指令値と制約制御量を合成部で合成し、その値を指令値としてトルクの制御を行う。トルク制御部118Bは、従動制御指令値演算部111による演算結果と、位置姿勢演算部112及び位置姿勢速度制御部114による演算結果と、を合成する合成部と、合成部による合成結果及びトルク検知部4による検知結果に基づいて、ロボットアームR1を駆動する駆動トルクを制御するトルク制御部118Bと、を有している。
【0050】
切替部116からの信号によって、直接教示装置100Bが制約を課さない通常直接教示と制約付き直接教示を切替わることに連動して、パラメータ管理部117がトルク制御部118Bのゲインの大きさを決定するパラメータを切替える。トルク制御部118Bのゲインは、通常直接教示を行う場合には軽い操作感で動かすことができ、制約付き直接教示を行う場合には安定性を考慮した全体としての性能向上が実現するように決定される。なお、合成部は、通常直接教示で制約制御量を合成せず、制約付き直接教示では合成するように切替えることで、位置姿勢速度制御部114の有効/無効を切り換えるようにしてもよい。
【0051】
このように、直接教示装置100Bでは、従動制御指令値および制約制御量が、駆動制御部115Bにおけるトルクの制御に使用されるため、従動制御指令値および制約制御量の合成値を満足するような電流値がトルク制御部118Bから出力される。また、実施の形態1に係る直接教示装置100Aにおいて、制約制御量は、トルクのフィードバック制御に使用せずに制御補償要素として使用するために、従動制御指令値と制約制御量を満たすための駆動制御部115の特性を独立して設定できるのに対し、実施の形態2に係る直接教示装置100Bでは、従動制御指令値と制約制御量を1つの信号にまとめてトルクの制御を行うので、パラメータがトルクの制御のゲインだけでよいために設定が簡便という特徴がある。
【0052】
図6は、実施の形態2の変形例に係る直接教示装置100Cを示すブロック図である。実施の形態2の変形例に係る直接教示装置100Cは、従動制御指令値と制約制御量の合成をメイン制御部11C内で行う。例えば、直接教示装置100Cは、メイン制御部11Cが、従動制御指令値演算部111による演算結果及び位置姿勢速度制御部114による演算結果を合成すると共に、当該合成結果を関節制御部12Cの駆動制御部115Cへ出力する合成部119を有しており、駆動制御部115Cは、合成部119からの入力信号及びトルク検知部による検知結果に基づいて、駆動源2を制御する。この構成によって、メイン制御部11Cから関節制御部12Cへの指令値を一つにまとめることができる。なお、この場合でも、制約制御量の合成の有無を切替部116からの信号によって切替えることで、位置姿勢速度制御部114の有効/無効を切り換えるようにしてもよい。
【0053】
実施の形態3.
以下、
図7を参照して、実施の形態3について説明する。実施の形態3に係る直接教示装置100Dは、実施の形態1に係る直接教示装置100Aに対して、複数の従動制御指令値演算部を有し、制約の有無に応じて従動制御指令値演算部を切替える点が異なる。
【0054】
図7は、実施の形態3に係る直接教示装置100Dを示すブロック図である。実施の形態3に係る直接教示装置100Dは、外力検知部120と、第1従動制御指令値演算部121aと、第2従動制御指令値演算部121bと、第2従動制御指令値演算部121bの演算結果及び位置姿勢速度制御部114の演算結果を合成して従動制御指令値切替部123に出力する合成部122と、従動制御指令値切替部123と、を備えている。従動制御指令値演算部を、制約を課さない通常直接教示と制約付き直接教示によって、第1従動制御指令値演算部121a(第1従動演算部)と第2従動制御指令値演算部121b(第2従動演算部)とに切替える。第1従動制御指令値演算部121aは、実施の形態1における従動制御指令値演算部111と同様であり、トルク検知部4による検知結果に基づいて、ロボットアームR1に対する操作に従動するようにロボットアームR1を駆動するための演算を行う。
【0055】
第2従動制御指令値演算部121bは、外力検知部120(操作力検知部)により検知された外力に従うアームの動きを実現するための従動制御指令値を算出する。言い換えると、第2従動制御指令値演算部121bは、外力検知部120による検知結果に基づいて、ロボットアームR1に対する操作に従動するようにロボットアームR1を駆動するための演算を行う。外力検知部120は、トルク検知部4により検知されたトルクに基づいて、操作者によりロボットアームR1に加えられた外力(操作力)を検知する。なお、トルク検知部4により検知されるトルクは、センサの構造等によっては、操作者によりロボットアームR1に加えられた外力だけではなく、重力に起因する成分が重畳されている場合がある。そこで、このような場合には、外力検知部120は、重力に起因する成分を算出し、検知した外力から当該重力に起因する成分を差し引くことで、外力成分のみを算出する。これは一般に、重力補償と呼ばれる。
【0056】
切替部116Dからの信号によって、関節制御部12Dの制御パラメータが制約を課さない通常直接教示と制約付き直接教示によって切替わることに連動して、従動制御指令値の算出に使用する従動制御指令値演算部を切替える。制約の有無によって、性能を満たすために適した従動制御指令値が異なる場合があるためであり、切替部116Dからの信号に応じて第1従動制御指令値演算部121aと第2従動制御指令値演算部121bとを切替えることにより、本開示の効果がより発揮できる。
【0057】
性能を満たすために最適な従動制御指令値が異なる場合とは、制約付き直接教示では、制約制御量との干渉を抑制するような従動制御指令値の演算が必要となる場合である。一例として、エンドエフェクタE1の位置をある仮想直線上に拘束するような制約付き直接教示を行う場合を説明する。拘束目標となる仮想直線から外れる方向の外力が加えられたとき、ロボットアームR1がその外力に従うように演算された従動制御指令値と、位置の制約を満たすための制約制御量とは、互いに干渉するため、全体としての性能が劣化する場合がある。このときは、外力のうち、制約を逸脱しようとする方向を無効とした値に従うロボットアームR1の動きを実現するための従動制御指令値を、第2従動制御指令値演算部121bの出力値とすることにより、全体としての性能向上が期待できる。
【0058】
合成部122は、第2従動制御指令値演算部121bからの従動制御指令値と、位置姿勢速度制御部114からの制約制御量を合成する。従動制御指令値切替部123は、切替部116Dからの信号に応じて第1従動制御指令値演算部121aによる従動制御指令値、及び合成部122による合成結果の一方を駆動制御部115Dに出力する。駆動制御部115Dは、切替部116Dによる第1モードと第2モードとの間での切替えに連動して切替えられる、第1従動制御指令値演算部121aによる従動制御指令値及び合成部122による合成結果の一方と、トルク検知部4による検知結果と、に基づいて、駆動源2を駆動する。
【0059】
実施の形態4.
以下、
図8及び
図9を参照して、実施の形態4について説明する。実施の形態4に係る直接教示装置100Eは、実施の形態1に係る直接教示装置100Aに対して、速度演算部を用いずにロボットアームR1の制御を行う点が異なる。
【0060】
図8は、実施の形態4に係る直接教示装置100Eを示すブロック図である。エンドエフェクタE1の位置を拘束目標に拘束しながら制約付き直接教示をする場合、エンドエフェクタE1の移動速度のフィードバック制御を実施しない。
【0061】
実施の形態4に係る直接教示装置100Eは、位置姿勢制御部114Eを備えており、位置姿勢制御部114Eは、位置姿勢目標演算部124と、位置姿勢制御演算部125と、を有している。位置姿勢目標演算部124は、エンドエフェクタE1の位置に対する制約目標(拘束目標)を取得(演算)する。
【0062】
位置姿勢制御演算部125は、位置姿勢制御演算部125により算出された位置姿勢が位置姿勢目標演算部124により取得された制約目標に従うロボットアームR1の動きを算出する。
図9は、位置姿勢制御演算部125の処理を示すブロック図である。位置姿勢制御演算部125では、まず、位置姿勢制御演算部125が算出したエンドエフェクタE1の位置と、制約目標との偏差を算出する。次いで、算出された偏差にゲインを掛ける。この値は、直交座標系で表された値であるため、関節座標系で表された値に変換するために、ヤコビ行列Jの逆行列J
-1を乗算することにより、関節毎の値を算出する。
【0063】
なお、図示した実施の形態4における位置姿勢制御演算部125による算出結果(制約制御量)の物理量は、関節毎のトルクとし、制約制御量にゲインを乗じた値とトルク制御部が出力する電流指令値との合成値を、アームを駆動するための電流の指令値とする。ここで、拘束目標とは、例えば、エンドエフェクタE1の拘束先である。拘束目標としては、例えば、拘束点、拘束軸及び拘束面がある。
【0064】
拘束点は、エンドエフェクタE1の位置を拘束するする任意のある一点である。拘束軸は、ある仮想直線又は仮想曲線にエンドエフェクタE1の位置を拘束する際に指定する仮想軸(線)である。拘束面は、ある仮想平面又は仮想曲面にエンドエフェクタE1の位置を拘束する際に指定する仮想面である。
【0065】
エンドエフェクタE1の向きに対する拘束目標としては、例えば、拘束方向、拘束回転軸(1つ)及び拘束回転軸(2つ)がある。拘束方向は、エンドエフェクタE1の向き(姿勢)が、ある一つの方向に沿うように拘束する際に指定する姿勢(方向)である。拘束回転軸(1つ)は、エンドエフェクタE1の向きを、ある1つの回転軸線に沿ってのみ変更することが許容される拘束を行う際の回転軸線である。
【0066】
拘束回転軸(2つ)は、エンドエフェクタE1の向きを、ある2つの回転軸に沿って変更することが許容される拘束を行う際の回転軸線である。なお、拘束目標は1つに限らず複数でもよい。
【0067】
このように、実施の形態4に係る直接教示装置100Eでは、位置姿勢目標演算部124(制約位置演算部)が、第1条件に応じたエンドエフェクタE1の位置を演算し、位置姿勢制御演算部125が、位置姿勢目標演算部124による演算結果と、エンコーダ3が取得した動作角度によって位置姿勢演算部112が演算したエンドエフェクタE1の位置の現在値と、に基づいて、エンドエフェクタE1の移動が第1条件に対応するようにロボットアームR1を駆動するための演算を行っている。これにより、実施の形態4に係る直接教示装置100Eは、エンドエフェクタE1の位置の拘束目標を満たす直接教示動作を実現することができる。このように、制約がエンドエフェクタE1の位置のみの場合、速度制御部を必ずしも使用しなくてもよい。
【0068】
なお、このようにエンドエフェクタE1の位置に制約を課す場合、制約制御量をエンドエフェクタE1の位置を制約としているので、関節毎の動作角度の指令値とし、駆動制御部内で位置制御を実施した結果の電流値を、トルク制御部が出力する電流指令値と合算し、ロボットアームR1を駆動するための電流値の指令としてもよい。駆動制御部内で位置制御を実施した結果の電流値を、トルク制御部が出力する電流指令値と合算し、アームを駆動するための電流の指令値としてもよい。また、各関節の動作角度の指令値を時間微分した値とし、駆動制御部ではロボットアームR1の関節毎の角速度の現在値が制約制御量となるように速度制御を行ってもよい。同様に、制約制御量を各関節の動作角度の指令値の時間二階微分値として、駆動制御部ではロボットアームR1の関節毎の角加速度の現在値が制約制御量となるように加速度制御を行ってもよい。
【0069】
実施の形態5.
以下、
図10を参照して、実施の形態5について説明する。実施の形態5に係る直接教示装置100Fは、実施の形態1に係る直接教示装置100Aに対して、エンドエフェクタE1の移動速度を所定の閾値以下となるよう制限を掛けながら直接教示可能である点が異なる。
【0070】
図10は、実施の形態5に係る直接教示装置100Fを示すブロック図である。実施の形態5に係る直接教示装置100Fは、位置姿勢制御部の処理を不要とし、その図示を省略している。また、速度制御部114Fは、速度目標演算部128及び速度制御演算部129を有している。
【0071】
速度目標演算部128は、エンドエフェクタE1の移動速度に対する制約目標(拘束目標)を取得する。
【0072】
速度制御演算部129は、速度演算部113により算出された速度が速度目標演算部128により取得された制約目標に従うロボットアームR1の動きを算出する。速度制御演算部129では、エンドエフェクタE1の移動速度の現在値が制約目標内に含まれるように、エンドエフェクタE1の移動速度の現在値を減速させる動きとなるトルク値を算出する。そのために、速度制御演算部129では、制約目標とエンドエフェクタE1の移動速度の現在値との偏差を算出し、算出した偏差にゲインを乗じる。この処理で算出された値は、直交座標系で表された値であるため、関節座標系で表された値に変換するために、ヤコビ行列の逆行列を乗算することにより、関節毎のトルクを算出する。
【0073】
なお、実施の形態5における速度制御演算部129による算出結果(制約制御量)の物理量は、関節毎のトルクとし、制約制御量にゲインを乗じた値とトルク制御部が出力する電流指令値との合成値を、ロボットアームR1を駆動するための電流の指令値とする。
【0074】
また、直接教示装置は、別途、速度監視部(不図示)を設け、エンコーダ3によって取得された関節の動作角度に基づいて、エンドエフェクタE1の移動速度が上限を超えそうになったら切替部116に切替え指示を出すように構成されていてもよい。その場合、直接教示開始時は、制約を課さない直接教示で制御開始するが、エンドエフェクタE1の移動速度が閾値近傍に達したと判定する判定値を超過すると、切替部116が制約付き直接教示をするように設定される。エンドエフェクタE1の移動速度が、再び判定値未満になると、切替部116は制約を課さない通常直接教示となるように設定される。この他、画像センサを用い、ロボットアームR1が障害物に接近したら切替部116に切替え指示を出すのでもよい。
【0075】
このように、実施の形態5に係る直接教示装置100Fでは、エンドエフェクタE1の移動速度に対する制約を満たす直接教示動作を実現することができる。このように、制約がエンドエフェクタE1の移動速度のみである場合、位置姿勢制御演算部を必ずしも使用しなくてもよい。
【0076】
実施の形態6.
以下、実施の形態6について説明する。実施の形態6に係る直接教示装置は、実施の形態1に係る直接教示装置100Aに対して、制約付き直接教示を行う際に、エンドエフェクタE1の位置が、予め定めた作業範囲内に収まるように制限を掛けながら直接教示をする点が異なる。
【0077】
実施の形態6に係る直接教示装置は、エンドエフェクタE1の移動速度のフィードバック制御を実施しないため、速度演算部および速度制御部の処理を不要とする。実施の形態6に係る直接教示装置は、エンドエフェクタE1の位置姿勢監視部を備えており、エンドエフェクタE1の位置が所定の作業範囲内を超えそうになったら切替部に切替え指示を出す。すなわち、エンコーダ3によって取得された関節の動作角度に基づいて、エンドエフェクタE1の位置が、所定の作業範囲の境界値であることを示す閾値近傍に達したと判定する判定値を超過すると、切替部が制約付き直接教示となるように設定される。例えば、直接教示開始時は制約を課さない直接教示で制御開始するが、位置姿勢が閾値近傍に達したと判定する判定値を超過すると、切替部が制約付き直接教示をするように設定される。このとき位置姿勢制御部は、エンドエフェクタE1の位置が、予め定めた作業範囲外に出ないように、作業範囲の内側に押し返すようなトルクを算出し、制約制御量として出力する。一方、エンドエフェクタE1の位置が再び判定値未満になると、切替部は、制約を課さない通常直接教示となるように設定される。
【0078】
実施の形態7.
以下、
図11を参照して、実施の形態7について説明する。実施の形態7に係る直接教示装置は、実施の形態6に係る直接教示装置に対して、駆動制御部のパラメータ切替える構成が異なる。
【0079】
直接教示中に通常直接教示と制約付き直接教示とが切替わる場合、駆動制御部のパラメータが急激に変化することにより、アーム動作が不安定になることがある。例えば、実施の形態5で説明した速度監視をする場合、速度が判定値付近を行き来すると、アームを駆動するための電流に対し、制約の有無および制御パラメータの切替えが高周期で変化することに起因するチャタリングが発生し、アーム動作が不安定になることがある。これを防止するためには、切替部の動作にヒステリシスを設ける手段がある。他には、制約有無によってゲインが急激に変化しないように、制約の有無を切替える閾値近傍では、トルク指令値に応じて、制御ゲインを連続的に変化する遷移領域を設ける。
【0080】
図11は、実施の形態7に係るアームの動作角度とゲインとの関係を示すグラフであり、制御ゲインに対して、ヒステリシスおよび連続的に変化する遷移領域を設けた場合の、制御ゲインの変化を示したものである。実施の形態7に係る直接教示装置は、例えば、エンコーダ3が取得した関節の動作角度の値が、第1閾値に対して大きい値から小さい値へ変化したことに基づいて、駆動制御部を第1モード及び第2モードの一方から他方へ切替え、関節の動作角度の値が、第1閾値よりも大きい第2閾値に対して小さい値から大きい値へ変化したことに基づいて駆動制御部を第1モード及び第2モードの他方から一方へ切替える。
【0081】
なお、ここで述べたパラメータ切替え方法は、限られた制約の種類に限定されるものではなく、エンドエフェクタE1の位置、エンドエフェクタE1の移動速度のいずれの場合でも適用される。例えば、実施の形態5で説明した速度監視をする場合などに有用である。
【0082】
なお、本開示はその開示の範囲内において、上述した実施の形態の任意の構成要素の変形、組合せ若しくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【0083】
1A :ロボット制御装置
2 :駆動源
3 :エンコーダ
4 :トルク検知部
11A~11F:メイン制御部
12A~12D:関節制御部
100A~100F:教示装置
111 :従動制御指令値演算部
112 :位置姿勢演算部
113 :速度演算部
114 :位置姿勢速度制御部
114E :位置姿勢制御部
114F :速度制御部
115 :駆動制御部
115C~115D:駆動制御部
116 :切替部
116D :切替部
117 :パラメータ管理部
118 :ゲイン
118A1 :トルク制御部
118A2 :ゲイン
118B :トルク制御部
119 :合成部
120 :外力検知部
121a :第1従動制御指令値演算部
121b :第2従動制御指令値演算部
122 :合成部
123 :従動制御指令値切替部
124 :位置姿勢目標演算部
125 :位置姿勢制御演算部
128 :速度目標演算部
129 :速度制御演算部
E1 :エンドエフェクタ
J :ヤコビ行列
J1~J6 :関節
L1~L6 :リンク
R1 :ロボットアーム