(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】ロボットシステム
(51)【国際特許分類】
B25J 9/22 20060101AFI20231212BHJP
【FI】
B25J9/22 A
(21)【出願番号】P 2019200627
(22)【出願日】2019-11-05
【審査請求日】2022-09-14
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】鄭 詮翰
(72)【発明者】
【氏名】佐藤 貴之
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開昭59-157715(JP,A)
【文献】特開2018-126798(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
(57)【特許請求の範囲】
【請求項1】
ロボットと、
前記ロボットの所定の可動部位に装着されたハンドガイド装置であって、該ハンドガイド装置に加わる外力を表す操作情報を出力するハンドガイド装置と、
前記操作情報に基づいて前記ロボットの動作制御を行うロボット制御装置と、を備え、
前記ロボット制御装置は、
前記ハンドガイド装置に加わる
所定の時間毎の外力の積分値
の変化量、
前記操作情報に基づいて前記所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質のうちの少なくとも一つの情報に基づいて前記操作情報に対する前記ロボットの応答性を調整する調整部を備える、ロボットシステム。
【請求項2】
前記調整部は、前記ハンドガイド装置に加わる
前記所定の時間毎の外力の積分値
の変化量に基づいて、前記所定の可動部位の加速動作時における前記応答性を調整する、請求項1に記載のロボットシステム。
【請求項3】
前記調整部は、前記ハンドガイド装置に加わる
前記所定の時間毎の
外力の積分値に増加がある場合に、前記操作情報に対する前記ロボットの応答性を高める、請求項1又は2に記載のロボットシステム。
【請求項4】
前記調整部は、
前記操作情報に基づいて前記所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質に基づいて、前記所定の可動部位の減速動作時における前記応答性を調整する、請求項1に記載のロボットシステム。
【請求項5】
前記調整部は、前記往復運動の回数又は前記往復運動が収束するまでの時間に基づいて前記所定の可動部位の減速動作時における前記応答性を調整する、請求項4に記載のロボットシステム。
【請求項6】
前記調整部は、前記往復運動の回数又は前記往復運動が収束するまでの時間が所定の閾値を超える場合に、前記操作情報に対する前記ロボットの応答性を低下させる、請求項5に記載のロボットシステム。
【請求項7】
前記調整部は、前記少なくとも一つの情報と、前記ハンドガイド装置による前記ロボットに対する操作状態を表す状態情報とに基づいて前記応答性の学習を実行する学習制御部を備える、請求項1に記載のロボットシステム。
【請求項8】
前記学習制御部は、
前記少なくとも一つの情報を用いて報酬を算出する報酬算出部と、
前記報酬と前記状態情報とに基づいて価値関数を更新する価値関数更新部と、を備え、
前記調整部は前記価値関数の出力に基づいて前記応答性を調整する、請求項7に記載のロボットシステム。
【請求項9】
前記調整部は、前記ハンドガイド装置に加わる
前記所定の時間毎の外力の積分値
の変化量に基づいて、前記所定の可動部位の加速動作時における前記応答性を学習する、請求項8に記載のロボットシステム。
【請求項10】
前記報酬算出部は、前記ハンドガイド装置に加わる
前記所定の時間毎の
外力の積分値に増加がある場合に、前記報酬を減少させる、請求項9に記載のロボットシステム。
【請求項11】
前記調整部は、
前記操作情報に基づいて前記所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質に基づいて、前記所定の可動部位の減速動作時における前記応答性を学習する、請求項8に記載のロボットシステム。
【請求項12】
前記報酬算出部は、前記往復運動の回数又は前記往復運動が収束するまでの時間に基づいて前記報酬を算出する、請求項11に記載のロボットシステム。
【請求項13】
前記報酬算出部は、前記往復運動の回数又は前記往復運動が収束するまでの時間が所定の閾値を超える場合に、前記報酬を減少させる、請求項12に記載のロボットシステム。
【請求項14】
力センサを備えるロボットを制御可能な制御装置であって、
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
前記ロボットに外力が加えられた際に、前記力センサが出力する外力に関する情報を取得し、
前記外力に関する情報に基づいて、所定の時間毎の合力の変化量を導出し、
前記合力の変化量に基づいて、外力に対するロボットの応答性を変化させる、制御装置。
【請求項15】
前記少なくとも1つのプロセッサは、
前記合力の変化量に基づいて、前記ロボットの加速動作時における前記応答性を変化させる、請求項14に記載の制御装置。
【請求項16】
前記少なくとも1つのプロセッサは、
前記合力の変化量が増加傾向にあるときに、前記ロボットの応答性を高め、
前記合力の変化量が減少傾向にあるときに、前記ロボットの応答性を低くする、請求項14または15に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムに関する。
【背景技術】
【0002】
ロボットに搭載したハンドガイド装置をオペレータが直接操作してロボットに対する教示を行う、いわゆるダイレクトティーチングが知られている(例えば、特許文献1参照)。ダイレクトティーチングに関して、特許文献2は、「オペレータ70は操作ハンドル4を把持した状態で誘導操作を開始する。この状態において、動作状態判定手段65は、
図3に示す状態遷移図と
図4に示す遷移条件のテーブルに基づいて、ロボット操作状態が「加速状態」であると判定する。この判定を受けてモデル変更手段66は、インピーダンスモデル部61の粘性係数B、慣性係数Mを加速の操作感に適した所定の値に設定する。さらにオペレータ70は操作ハンドル4を把持したまま誘導操作を継続する。この状態において、動作状態判定手段65は、
図3に示す状態遷移図と
図4に示す遷移条件のテーブルに基づいて、ロボット操作状態が「一定速度状態」であると判定する。この判定を受けてモデル変更手段66は、インピーダンスモデル部61の粘性係数B、慣性係数Mを移動の操作感に適した所定の値に設定する。」と記載する(特許文献2、段落0014-0015)。
【0003】
また、ダイレクトティーチングに関し、特許文献2は、「本発明では、前述したように求められる仮想力と、移動基準座標系と、並進移動か回転移動かどうかの移動方法とに基づいて、力制御作用力算出部24が力制御作用力を算出する。そして、力制御部25を用いて、力制御作用力に基づいた力制御によるダイレクトティーチをおこなう。これにより、同じ力を作用させた場合であっても、力を作用させる位置によって操作感を変えることが可能となる。
図4を用いて説明した場合には、力センサ座標系の原点に近い位置で力を作用させた方が、同じ力を作用させてもダイレクトティーチ時の動きを小さくすることができる。」と記載する(特許文献2、段落0046)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-177279号公報
【文献】特開2008-110406号公報
【文献】特開2012-157946号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ハンドガイド装置を用いた操作はオペレータが直感的にストレスなく実行できることが望ましいが、実際の作業においては、ハンドガイド装置の操作に対する応答が遅すぎると感じたり、逆に速すぎると感じるなど、オペレータの思う通りにロボットを動かすことができない場合がある。また、ハンドガイド装置の操作に対する応答が遅すぎると感じたり、逆に速すぎると感じるのは人によって異なる。ハンドガイド装置の操作に対するロボットの応答性をオペレータにとって望ましい状態に自動的に設定可能なロボットシステムが望まれている。
【課題を解決するための手段】
【0006】
本開示の一態様は、ロボットと、前記ロボットの所定の可動部位に装着されたハンドガイド装置であって、該ハンドガイド装置に加わる外力を表す操作情報を出力するハンドガイド装置と、前記操作情報に基づいて前記ロボットの動作制御を行うロボット制御装置と、を備え、前記ロボット制御装置は、前記ハンドガイド装置に加わる所定の時間毎の外力の積分値の変化量、前記操作情報に基づいて前記所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質のうちの少なくとも一つの情報に基づいて前記操作情報に対する前記ロボットの応答性を調整する調整部を備える、ロボットシステムである。
【発明の効果】
【0007】
上記構成によれば、ハンドガイド装置の操作に対するロボットの応答性をオペレータにとって望ましい状態に自動的に設定することができる。
【0008】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0009】
【
図1】ロボットシステムの全体構成を表す構成図である。
【
図2】第1実施形態に係るロボットシステムの機能ブロックである。
【
図3】比例係数の調整に関する第1の例を説明する図である。
【
図4】比例係数の調整に関する第1の例における処理を表すフローチャートである。
【
図5】比例係数の調整に関する第2の例を説明する図である。
【
図6】比例係数の調整に関する第2の例における処理を表すフローチャートである。
【
図7】第2実施形態に係るロボットシステムの機能ブロックである。
【
図8】比例係数の学習動作の第1の例における学習処理を表すフローチャートである。
【
図9】比例係数の学習動作の第2の例における学習処理を表すフローチャートである。
【
図11】ロボットの加速動作時における速度推移の一例を表すグラフである。
【
図12】ロボットの加速動作時における速度推移の他の例を表すグラフである。
【
図13】ロボットを目標位置に停止させる場合の速度推移の例を表すグラフである。
【発明を実施するための形態】
【0010】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0011】
第1実施形態
図1は第1実施形態に係るロボットシステム1の全体構成を表す構成図であり、
図2はロボットシステム1の機能ブロックである。
図1及び
図2に示すように、ロボットシステム1は、ロボット10と、ロボット10の所定の可動部位である手首部先端に装着されたハンドガイド装置3と、ロボット10の動作を制御するロボット制御装置50とを備える。ハンドガイド装置3は、操作ハンドル4と、外力検出部5としての力センサとを備える。操作ハンドル4は、力センサを介してロボット10の手首部先端に連結されている。この構成において、オペレータOPは、ハンドガイド装置3を操作してロボット10に対するハンドガイド(いわゆるダイレクトティーチング)を行うことができる。
【0012】
ロボット10は、本実施形態では多関節ロボットであるが、他のタイプのロボットが用いられても良い。なお、ロボット制御装置50は、CPU、ROM、RAM、記憶装置、操作部、表示部、入出力インタフェース、ネットワークインタフェース等を有する一般的なコンピュータとしての構成を有していても良い。
【0013】
図2に示されるように、ハンドガイド装置3において、外力検出部5は、操作ハンドル4に加えられる外力を検出し、検出結果としての操作情報を送信部6を介してロボット制御装置50に有線又は無線により送信する。操作情報は、例えば、外力検出部5としての力センサに固定した座標系における3次元方向の力の大きさ及び各軸回りのモーメントである。外力検出部5としての力センサのロボット10に対する位置(すなわち、力センサのロボット座標系における位置及び姿勢)はロボット制御装置50において既知なので、操作情報としての3次元方向の力の情報は、ロボット座標系における3次元の情報として取り扱うことができる。
【0014】
図2に示すように、ロボット制御装置50は、ハンドガイド装置3からの操作情報を受信する受信部51と、情報取得部52と、操作情報に対するロボット10の応答性を表す比例係数を調整する調整部53と、調整部53により調整される比例係数に応じてロボット10の動作を制御する機能を有する動作制御部55とを備える。情報取得部52は、受信部51により受信される操作情報及び動作制御部55において取得されるロボット10の制御に関する情報に基づいて、ハンドガイド装置3に加わる外力の積分値、所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質のうちの少なくとも一つの情報を生成する。調整部53は、情報取得部52により生成された情報に基づいて、ハンドガイド装置3に加えられる外力の大きさに対するロボット10の速度を決定する比例係数を調整する。
【0015】
ダイレクトティーチングにおいては、オペレータOPがハンドガイド装置3の操作ハンドル4に力を加えることで、ロボット10を動かす。操作ハンドル4に加わる力に対するロボット10の応答性は、例えばロボット10の動作速度を、力の大きさに比例した値とするやり方で決定される。なお、安全上の観点で速度の上限値は設けても良い。比例係数が大きければオペレータOPは、小さな力でロボット10を動かすことができるので、ロボット10の動作が軽く感じられる。他方、比例係数が小さければ大きな力が必要なので、オペレータOPは、ロボット10の動作が重く感じられる。本実施形態に係る調整部53は、ハンドガイド中に情報取得部52により生成される情報に基づいて、オペレータOPにとってロボットの望ましい応答性が得られるように比例係数を調整する。
【0016】
以下、調整部53による比例係数の決定に関する2つの例を説明する。比例係数の決定に関する第一の例では、
図3に示すように、オペレータOPが操作ハンドル4を操作してロボット10をある方向(図中矢印方向)に移動させる動作(すなわち、加速動作時)を想定する。なお、加速動作時であるか否かは、例えば、ロボット10の動作速度がゼロから上昇し始めるような動作状態を検出することで決定することができる。上述したように、オペレータOPは、小さな力でロボット10を動かすことができれば軽いと感じ(この場合、比例係数は小さい)、他方大きな力が必要であると重く感じる(この場合、比例係数は大きい)。したがって、ハンドガイド中にハンドガイド装置3にいつも大きな力がかかるときや、加わる力に増加傾向がみられるときは、操作者がロボット10をもっと速く動かしたいと感じていると考えることができる。そこで、第1の例では、あるサンプリング周期ごとに力を検出し、その積分値を求める。そして、所定の時間毎の積分値の時間推移を観察し、積分値または積分値の増加量が大きいときは、力に対する速度の比例係数を大きくすることで、オペレータにとって望ましい応答性を実現するようにする。
【0017】
図4は、比例係数の決定に関する第1の例における動作を表すフローチャートである。
図4に示す動作は、ロボット制御装置50のCPUによる制御の下で実行される。なお、
図4の処理は、オペレータOPによるロボット制御装置50に対する所定の操作により起動されても良いし、ロボット制御装置50においてハンドガイドに伴うロボット10の所定の可動部位の加速動作が検出された時に自動的に起動されても良い。ステップS11では、オペレータOPによるハンドガイド装置3を用いた操作が行われる。情報取得部52は、ハンドガイド装置3から受信される操作情報に基づいて、操作ハンドル4に加えられる3次元方向(XYZ方向)の合力及びモーメントを取得し、それらの所定の時間毎の積分値を求める(ステップS12)。例えば、所定の時間は、直前3秒間である。
【0018】
図12は、
図3のようにオペレータOPが操作ハンドル4を介してロボット10をある方向に移動させる場合において、応答特性がオペレータOPにとって比較的望ましい場合のロボット10の動作速度の推移の例を表す図である。
図12の動作速度の推移の例では、ロボット10の動作速度が比較的早い段階で一定の速度まで立ち上がり、その後速度が一定となる(オペレータが操作ガイドを一定の力で操作している)状態が続いている。このような速度の推移は、オペレータOPが応答性に特に違和感を持っていないことを示すと考えることができる。
【0019】
次に、
図3のようにオペレータOPが操作ハンドル4を介してロボット10をある方向に移動させる場合において、速度の推移が
図11に示すようなものである場合を想定する。この場合、速度が上昇する状態が比較的長い時間に亘って続いていることから、オペレータOPがロボット10の応答性(つまり移動速度)に不足を感じ、操作ハンドル4を加える力を強め続けていると考えることができる。なお、調整部53は、合力に比例係数をかけて動作速度を決定するものとする。比例係数の初期値は、調整部53の記憶部54に予め設定されているものとする。この初期値としては、経験値に基づく値が設定されていても良く、或いは、ロボット制御装置50に対する操作によりオペレータOPが設定可能であっても良い。
【0020】
なお、本実施形態では、ロボット10の動作速度を、ハンドガイド装置3に加わる外力に比例係数を乗じた値に設定するので、
図11及び
図12(
図13についても同様)に示した動作速度の推移は、ハンドガイド装置3に加わっている外力の推移と等価である。
【0021】
図11のような速度推移の状態と、
図12のような速度推移の状態とは、合力の所定の時間ごと(例えば、3秒間隔)の積分値の変化により区別することができる。
図11のような速度推移の状況では、一例として、所定時間t
nにおける積分値と所定時間t
n+1における積分値とを比較すると、所定時間毎の合力の積分値は増加する。他方、
図12のような速度推移の状況では速度が素早く上昇することから、一例として所定時間t
nにおける積分値と所定時間t
n+1における積分値とを比較すると、合力の所定時間毎の積分値は増加傾向を示さない。
【0022】
以上を踏まえ、ステップS13では、調整部53は、合力の積分値が増加する場合には(S13:YES)、記憶部に記憶されている比例係数を増加させる(ステップS14)。他方、合力の積分値が増加を示さない場合には(S13:NO)、調整部53は比例係数を減少させる(ステップS15)。なお、ステップS15では、比例係数を減少させずに現状値を維持するようにしても良い。ロボット制御装置50は、以上のような比例係数の調整動作をハンドガイド装置3に対する操作が行われている間継続する(S16:YES)。ハンドガイド装置3に対する操作が停止(S16:NO)すると、本処理は終了する。
【0023】
以上の比例係数調整処理によれば、
図3のようにオペレータOPが操作ハンドル4を介してロボット10をある方向に移動させる場合(すなわち、加速動作時)において、比例係数をオペレータOPにとって望ましい値に自動的に設定することが可能である。なお、以上説明した比例係数の決定に関する第一の例は、ロボット10の所定の可動部位の加速動作時における一定時間内の加速状態に基づいて比例係数を調整する動作であると言うこともできる。
【0024】
次に、調整部53による比例係数の決定に関する第二の例を説明する。比例係数の決定に関する第二の例では、
図5に示すように、ロボット10を減速させてある目標位置P
1に停止させる(位置決めする)動作を想定する。なお、ロボット10がこのような減速動作に入っているか否かは、ロボット10がある一定の速度で動いている状態から減速を開始する動作を検出することで決定することができる。ハンドガイド中にロボットがある点を中心として往復する(行ったり来たりを繰り返す)ことが一般に想定される回数より多い場合、或いは、このような往復運動が収束するまでの時間が一般に想定される時間より長い場合は、ロボット10の応答性が高いためオペレータOPがうまく位置決めできていないと考えることができる。したがって、このような状況の場合には、オペレータOPがロボットの応答性が速すぎると感じていると見なし、力に対する速度の比例係数を小さくする。
【0025】
図6は、比例係数の決定に関する第2の例における動作を表すフローチャートである。
図6に示す動作は、ロボット制御装置50のCPUによる制御の下で実行される。なお、
図6の処理は、ロボット制御装置50に対するオペレータOPによる所定の操作により起動されても良いし、ロボット制御装置50においてハンドガイドに伴うロボット10の所定の可動部位の減速動作が検出された時に自動的に起動されても良い。ステップS21では、オペレータOPによるハンドガイド装置3を用いた操作が行われる。ここでは、オペレータが、概ね一定の速度で移動させていたロボット10を減速させて目標位置P
1に停止させるような操作を想定する。次に、情報取得部52は、ハンドガイド装置3から受信される操作情報に基づいて、操作ハンドル4に加えられる3次元方向(XYZ方向)の合力及びモーメントを取得し、それらの所定時間内での積分値を求める(ステップS22)。例えば、所定の時間は、直前3秒間である。
【0026】
次に、調整部53は、合力の所定時間毎の積分値に基づいて、ある位置(目標位置P1)に停止するまでの往復回数または往復運動が収束するまでの時間(以下、収束時間と称する場合がある)が、例えば所定の閾値よりも大きい(増えている)か否かを判定する(ステップS23)。ここで、所定の閾値は、このようにある位置にロボットを停止させる操作が行われる場合の経験値に基づく通常に値、或いは、前回このようなロボットを停止させる動作(往復運動)が行われた場合における往復回数や収束時間が設定されても良い。
【0027】
ここで、ロボット10(所定の可動部位)を目標位置に停止させる場合の往復回数或いは収束時間を求める手法について
図13を参照して説明する。ロボット10を目標位置に停止させる操作における往復運動を伴うロボット10の動作速度(すなわち、ハンドガイド装置3に加えられる力)は、
図13に示すように、速度0を中心としてプラス方向及びマイナス方向(位置P
1を規準とする互いに反対の方向)に波型に変化すると考えられる。したがって、このような速度変化におけるプラス側の速度の積分値101(合力のプラス方向の積分値)と、速度変化におけるマイナス側の速度の積分値103(合力のマイナス方向の積分値)をそれぞれ求め、プラス側の積分値101とマイナス側の積分値103の各々が所定の閾値を超えている場合には、往復運動の回数が通常想定される場合よりも多い状態(及び収束時間が通常想定される時間よりも長い状態)を示すと考えることができる。なお、ここでは、ロボット10(所定の可動部位)の動作速度に基づき目標位置に停止するまでの往復回数や収束時間を求める例について説明したが、ロボット10(所定の可動部位)の位置情報を用いて往復回数や収束時間を求めても良い。例えば、オペレータOPがロボット10を目標位置に停止させる際のロボット10(所定の可動部位)の位置の時間変化も、目標位置を中心としてある方向においてプラス方向とマイナス方向に波型に変化して次第に収束する態様となると考えることができる。この場合、動作速度の時間変化に基づく上述した計算手法と同様のやり方でロボット10の位置の時間変化に基づいて往復回数や収束時間を求めることができる。或いは、ロボットの位置の時間変化のグラフに基づいてプラス側及びマイナス側のピークを検出して往復回数や収束時間を求めことも可能である。なお、往復運動の回数や収束時間は、ロボット10の所定の可動部位の動作軌跡から求めても良い。
【0028】
ステップS23において、往復運動の回数または収束時間が所定の閾値よりも大きい(増えている)場合(S23:YES)、オペレータOPにとって応答性が高いと感じる状態であるとみなせるため、調整部53は、比例係数を減少させる(ステップS24)。他方、往復運動の回数または時間が所定の閾値以下の場合(S23:NO)、オペレータOPにとって応答性が低いと感じる状態であるとみなせるため、調整部53は、比例係数を増加させる(ステップS25)。ロボット制御装置50は、以上のような比例係数の調整動作をハンドガイド装置3に対する操作が行われている間継続する(S26:YES)。ハンドガイド装置3に対する操作が停止(S26:NO)すると、本処理は終了する。
【0029】
以上の比例係数調整処理によれば、
図5に示すように、ロボット10を減速させてある目標位置P
1に停止させる(位置決めする)動作において、比例係数をオペレータOPにとって望ましい値に自動的に設定することが可能である。比例係数の決定に関する第二の例は、ロボット10の所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質(或いは、一定時間内の減速状態)に基づいて比例係数を調整する動作であると言うこともできる。なお、調整部53は、ロボット10の加速動作時における比例係数と、減速動作時における比例係数とを別々に記憶するように構成されていても良い。
【0030】
第1実施形態では比例係数を増加或いは減少させる判定を行う基準として力の合力の積分値を用いているので、より安定してオペレータの意図を比例係数の調整に反映できることとなる。
【0031】
第2実施形態
次に第2実施形態に係るロボットシステム1Aについて説明する。第2実施形態に係るロボットシステム1Aは、第1実施形態における調整部53が学習により比例係数を調整するように構成されたシステムである。
図7は、ロボットシステム1Aの機能ブロック図である。以下では、説明の重複を避けるため、ロボットシステム1Aにおける比例係数の学習に焦点を当てて説明を行う。
【0032】
図7に示されるように、ロボットシステム1Aは、ロボット10と、ハンドガイド装置3と、ハンドガイド装置3からの操作情報に応じてロボット10の動作を制御するロボット制御装置50Aとを備える。ロボット制御装置50Aは、受信部51と、ハンドガイド装置3によるロボット10に対する操作状態を表す状態情報を取得する状態情報取得部60と、比例係数を調整する調整部53Aと、動作制御部55とを備える。状態情報取得部60は、ハンドガイド装置3から受信した操作情報と、動作制御部55によるロボット10の制御に関する情報に基づいて、ハンドガイド装置3によるロボット10に対する操作状態を表す状態情報を取得する。
【0033】
調整部53Aは、学習制御部80を備える。学習制御部80は、ハンドガイド装置3に加わる外力の積分値、ロボット10の所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質のうちの少なくとも一つの情報(以下、判定データと記す)と、状態情報取得部60が取得する状態情報とに基づいて操作情報に対するロボットの応答性の学習を実行し、オペレータOPにとってロボット10の望ましい応答性を決定する学習モデルを構築する。
【0034】
学習制御部80は、入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習(機械学習)を行う機能を有する。機械学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」および「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング: Deep Learning)」と呼ばれる手法がある。本実施形態では、学習制御部80による機械学習に「強化学習」を適用することとする。
【0035】
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法を学ぶものである。一例として、強化学習を実現するアルゴリズムとして、Q学習について説明するが、Q学習に限定されるものではない。
【0036】
Q学習は、或る環境状態sの下で、行動aを選択する価値Q(s,a)を学習する方法である。つまり、或る状態sのとき、価値Q(s,a)の最も高い行動aを最適な行動として選択すればよい。しかし、最初は、状態sと行動aとの組合せについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、或る状態sの下で様々な行動aを選択し、その時の行動aに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Q(s,a)を学習していく。Q学習においては、行動の結果の価値Qの更新は、例えば、次の式(1)にしたがって行われる。
【0037】
【0038】
上記の式(1)において、stは、時刻tにおける環境の状態を表し、atは、時刻tにおける行動を表す。行動atにより、状態はst+1に変化する。Rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態st+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
【0039】
上述した式(1)は、試行atの結果、帰ってきた報酬rt+1を元に、状態stにおける行動atの評価値Q(st,at)を更新する方法を表している。すなわち、状態sにおける行動aの評価値Q(st,at)よりも、報酬rt+1+行動aによる次の状態における最良の行動max aの評価値Q(st+1,max at+1)の方が大きければ、Q(st,at)を大きくし、反対に小さければ、Q(st,at)を小さくすることを示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【0040】
ここで、Q(s,a)の計算機上での表現方法は、すべての状態行動ペア(s,a)に対して、その値をテーブルとして保持しておく方法と、Q(s,a)を近似するような関数を用意する方法がある。後者の方法では、前述の式(1)は、確率勾配降下法等の手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、ニューラルネットワークを用いることができる。本実施形態では、Q(s,a)を近似関数で表現する手法をとる。
【0041】
具体的には、学習制御部80は、状態情報取得部60により取得されるロボット10の操作状態を表す状態情報に基づいて判定データを生成する判定データ生成部81と、判定データを用いて報酬を算出する報酬算出部82と、ロボット10に対する操作状態を表す状態情報と報酬とに基づいて応答性を調整するための価値関数を更新する価値関数更新部83とを備える。
【0042】
状態情報取得部60は、ハンドガイド装置3によるロボット10に対する操作状態を表す状態情報として、
(1)ハンドガイド装置3に加わるX,Y,Z方向の力、及び、X,Y,Z周りのモーメント、
(2)ハンドガイド装置3のX、Y、Z位置又は速度、及び、X,Y,Z周りの角度又は角速度
の少なくとも一つを取得する。
【0043】
学習制御部80による比例係数の学習動作の例を2例説明する。学習制御部80による学習動作の第一の例は、第1実施形態における調整部53による比例係数の決定の第1の例と同様に、
図3に示すように、オペレータOPが操作ハンドル4を操作してロボット10をある方向(図中矢印方向)に移動させる(加速させる)場面を想定する。
図8は、比例係数の学習動作の第1の例を表すフローチャートである。なお、本動作例の場合には、第1実施形態における調整部53による比例係数の決定の第1の例と同様に、ある特定の時間内での積分値または積分値の増加量が大きいときは、力に対する速度の比例係数を大きくする方向に学習を行うことで、オペレータにとって望ましい応答性を実現するようにする。
【0044】
はじめに、オペレータOPによりハンドガイド装置3を用いたハンドガイドによる操作が行われる(ステップS31)。次に、判定データ生成部81は、状態情報取得部60から得られる情報に基づいて、操作ハンドル4に加えられる3次元方向(XYZ方向)の合力及びモーメントを取得し、それらの所定時間内での積分値を求める(ステップS32)。例えば、所定の時間は、直前3秒間である。
【0045】
図11及び
図12を参照して第1実施形態において説明した分析内容に基づき、ステップS33では、報酬算出部82は、合力の積分値が増加する場合には(S33:YES)、報酬生成部81は、現在の比例係数の設定状態(エージェントの行動)が望ましくないとみなし報酬を減少させる(ステップS34)。他方、合力の積分値が増加を示さない場合には(S33:NO)、報酬生成部81は、現在の比例係数の設定状態(エージェントの行動)が望ましいとみなし報酬を増加させる(ステップS35)。
【0046】
次に、価値関数更新部83は、状態情報取得部60から提供される状態情報と報酬とに基づいて価値関数を更新する(ステップS36)。ロボット制御装置50Aは、S31からS36に至る価値関数の更新ステップをハンドガイド装置3に対する操作が停止するまで所定の時間間隔で繰り返し実行する(S37:YES)。以上の動作により、価値関数の出力がオペレータにとって望ましい応答性を得る値に次第に収束し、その結果、オペレータOPにとって望ましい応答性を実現する比例係数を得る学習モデルが構築されることとなる。ハンドガイド装置3に対する操作が終了すると(S37:NO)、本学習処理は終了する。
【0047】
価値関数更新部83は、一例として、
図10に示すような、状態情報と報酬とに基づいて比例係数を増加させる行動の価値を表す値と、比例係数を減少させる行動の価値を表す値とを出力する行動価値関数85として構成されていても良い。この場合、調整部53Aは、これらの行動価値に応じて比例係数を、例えば所定の増減ステップで増加又は減少させる。このような行動価値関数85は、一例として、Q関数を多層ニューラルネットワークを用いて表現する手法であるDQN(Deep Q-network)を用いて実現することができる。この場合、多層ニューラルネットワークの入力部に状態情報を入力し、多層ニューラルネットワークの出力として、比例係数を増加させる行動の価値と、比例係数を減少させる行動の価値とを得る構成とする。多層ニューラルネットワークを用いた行動価値関数の更新では、多層ニューラルネットワークの各重みを、誤差逆伝搬法(バックプロパゲーション)により調整(学習)していく。
【0048】
次に、学習制御部80による比例係数の学習動作の第二の例を説明する。学習制御部80による学習動作の第二の例は、第1実施形態における調整部53による比例係数の決定の第2の例と同様に、
図5に示すように、ロボット10を減速させてある目標位置P
1に停止させる(位置決めする)動作を想定する。なお、本動作例の場合には、第1実施形態における調整部53による比例係数の決定の第2の例と同様に、所定の可動部位が所定の位置に往復運動を伴って停止する場合の動作の性質(往復運動の回数又は前記往復運動が収束するまでの時間)に基づいて学習を行うことで、オペレータにとって望ましい応答性を実現するようにする。
【0049】
図9は、比例係数の学習動作の第二の例を表すフローチャートである。はじめに、オペレータOPによりハンドガイド装置3を用いたハンドガイドによる操作が行われる(ステップS41)。ここでは、オペレータが、概ね一定の速度で移動させていたロボット10を減速させて目標位置に停止させるような操作を想定する。次に、判定データ生成部81は、状態情報取得部60から得られる情報に基づいて、操作ハンドル4に加えられる3次元方向(XYZ方向)の合力及びモーメントを取得し、それらの所定時間内での積分値を求める(ステップS42)。例えば、所定の時間は、直前3秒間である。
【0050】
判定データ生成部81は、合力の所定時間毎の積分値に基づいて、ある位置(目標位置P1)に停止するまでの往復回数または往復運動が収束するまでの時間を生成する。そして、報酬算出部82は、ある位置(目標位置P1)に停止するまでの往復回数または往復運動が収束するまでの時間が所定の閾値よりも大きい(或いは増えている)か否かを判定する(ステップS43)。ここで、所定の閾値は、このようにある位置にロボットを停止させる操作が行われる場合の経験値に基づく通常に値、或いは、前回にこのようなロボットを停止させる動作(往復運動)が行われた場合における往復回数や往復運動が収束するまでの時間が設定されても良い。
【0051】
図13を参照して第1実施形態において説明した分析内容に基づき、ステップS43において、往復運動の回数または収束時間が所定の閾値よりも大きい(増えている)場合(S43:YES)、オペレータOPにとって応答性が高すぎると感じる状態であり、現在の比例係数の設定状態(エージェントの行動)が望ましくないとみなし、報酬算出部82は報酬を減少させる(ステップS44)。他方、往復運動の回数または収束時間が所定の閾値以下の場合(S43:NO)、現在の比例係数の設定状態(エージェントの行動)が望ましとみなし報酬を増加させる(ステップS45)。
【0052】
次に、価値関数更新部83は、状態情報取得部60から提供される状態情報と報酬とに基づいて価値関数を更新する(ステップS46)。なお、本動作例の場合においても、価値関数の更新は、
図10に示した行動価値関数85により実行される。ロボット制御装置50Aは、S41からS46に至る価値関数の更新ステップをハンドガイド装置3に対する操作が停止するまで所定の時間間隔で繰り返し実行する(S47:YES)。以上の動作により、価値関数の出力がオペレータにとって望ましい応答性を得る値に次第に収束し、その結果、オペレータOPにとって望ましい応答性を実現する比例係数を得る学習モデルが構築されることとなる。ハンドガイド装置3に対する操作が終了すると(S47:NO)、本学習処理は終了する。なお、調整部53Aは、ロボット10の加速動作時における比例係数と、減速動作時における比例係数とを別々に記憶するように構成されていても良い。
【0053】
第2実施形態では報酬を増加或いは減少させる判定を行う基準として力の合力の積分値を用いているので、より安定してオペレータの意図を学習に反映できることとなる。
【0054】
以上説明した各実施形態の構成によれば、ハンドガイド装置の操作に対するロボットの応答性をオペレータにとって望ましい状態に自動的に設定可能なロボットシステムが実現される。
【0055】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【0056】
上述の各実施形態において、調整部が保持する比例係数の初期値(例えば、高めの値、低めの値等)をオペレータ毎に設定及び記憶できるようにしても良い。この場合、比例係数が最適値へ収束するまでの時間をより短くすることが可能となり得る。
【0057】
図2、
図7に示したロボット制御装置の機能ブロックは、ロボット制御装置のCPUが、記憶装置に格納された各種ソフトウェアを実行することで実現されても良く、或いは、ASIC(Application Specific Integrated IC)等のハードウェアを主体とした構成により実現されても良い。
【0058】
上述した実施形態における
図4、
図6、
図8、
図9に示した比例係数調整処理、学習処理等を実行するプログラムは、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
【符号の説明】
【0059】
1、1A ロボットシステム
3 ハンドガイド装置
4 操作ハンドル
5 外力検出部
6 送信部
10 ロボット
50、50A ロボット制御装置
52 情報取得部
53,53A 調整部
55 動作制御部
80 学習制御部
81 判定データ生成部
82 報酬算出部
83 価値関数更新部
85 行動価値関数