以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.本実施形態の手法
まず本実施形態の手法について説明する。上述したように、近年ではロボット制御において力制御が要求される場合がある。力制御においては、ロボットの実際の機械的な特性にかかわらず、あたかもユーザーの指定する特性を有するようにロボットを制御することが可能になる。
しかし、実際にロボットを管理、制御する一般ユーザーにとっては、所定の動作を行わせる場合にロボットの機械的な特性(例えば質量m、粘性μ、弾性k)をどのような値に設定すればよいかを知ることは容易ではない。所定の動作をユーザー自身が行う場合に、どのような力加減が適切であるかということは直感的に理解できたとしても、そのような感覚的な理解に基づいて、当該所定の動作をロボットに実行させる際のパラメーターを設定することは困難である。
これに対して、実際の作業対象物にロボットを接触させて力を加え、その反応を調べ、力制御による振動が最小となるように力覚制御パラメーターを調整するという手法も考えられる。
ただし、この手法はロボットを実際の作業対象物に接触させる必要があり、作業対象物が無い状態での教示をすることができない。或いは、作業対象物を破損させる可能性もある。更には、動きを伴う動作、例えば対象物を運搬する際に対応する力覚パラメーターを教示することができないという問題がある。
よって、特許文献1や特許文献2では、ユーザーがロボットに設けられたハンドル機構を把持して上記所定動作を行い、その際の力覚センサーからのセンサー情報である力覚値を用いて制御パラメーターを決定する手法が開示されている。このようにすれば、パラメーターを決定する際には、力加減を理解しているユーザーにより作業が行われるため、作業対象物の破損等の可能性を抑止しつつ、直感的にパラメーターを決定することが可能になる。
しかしながら、特許文献1や特許文献2に開示された手法、或いはその他の手法により、ロボットに実行させる作業に対応する力覚情報を取得することができたとしても、実際にロボットを動作させるには当該力覚情報から制御パラメーターを求める必要がある。それにも関わらず、特許文献1、2等の従来手法では、力覚情報に基づいて作業者の作業を再現するとの記述があるに過ぎず、具体的な再現手法が何ら示されていない。
そこで本出願人は、取得した力覚情報に対して線形予測分析処理を行うことで、ロボット制御に用いられる制御パラメーターを設定する手法を提案する。線形予測分析処理は、音声認識等の分野において広く用いられるものである。具体的には、音声は声帯の振動により発生した信号に対して、舌の位置や口の形等で決定される共鳴特性による変調が加えられた結果として、外部に出力されるというモデル化を行う。そして、観測値(人から発せられる音声)に基づいて、真の力(声帯の振動による信号)と、変調部分(共鳴特性)とを分離、推定する処理として線形予測分析処理が行われる。
線形予測分析処理自体は公知の手法ではあるが、それをロボット制御、特に力覚情報を対象とすることで制御パラメーターを設定するという全く異なる分野に適用する例は従来手法には見られない。そもそも、ロボットの力制御においては上式(1)に示したように2次の常微分方程式に基づく制御を想定しており、3次以上の高次の処理が可能である(音声分野であれば線形予測分析処理の次数は10次程度で良好な結果が得られることが知られている)線形予測分析処理をロボット分野に適用するという考えは知られているものとは言えない。
しかし、作業者を後述する図7(B)のようにモデル化すれば、作業者の特性を表現する制御パラメーターの設定に線形予測分析処理を用いることは可能と考えられる。また、制御変調部分をデジタルフィルターで実現するとすれば、線形予測分析処理の結果のうちのLPC(Linear Predictive Coding)係数は、そのままフィルター係数として用いることができるため、容易にロボット制御を実現できるという利点もある(例えば、上式(1)のm,μ,kが決定できたとしても、そこからフィルター係数を求めるには変換処理が必要となる)。さらにm,μ,kという機械的な特性に制限されない、高次での力制御を行うこともできるため、より高精度のロボット制御が可能である。
以下、本実施形態の処理装置やロボットの具体的なシステム構成例を説明した後、線形予測分析処理の詳細について説明する。また、本実施形態の手法で対象とする力覚情報の取得手法は特定のものに限定されるものではないが、その一例としてロボットに作業対象物又は作業台を模擬させる手法についても説明する。
2.システム構成例
図26に本実施形態に係る処理装置のシステム構成例を示す。処理装置は、取得部31と、分析処理部33と、パラメーター設定部35を含む。ただし、処理装置は図26の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
取得部31は、力覚センサー10からのセンサー情報を取得する。ただし取得部31は、図26に示したように直接力覚センサー10と接続するものに限定されず、力覚センサー10に接続された他の装置を介して、センサー情報を取得してもよい。分析処理部は、取得部31が取得した力覚情報に対して線形予測分析処理を行う。線形予測分析処理の詳細については後述する。パラメーター設定部35は、線形予測分析処理に基づいて、ロボットの力制御に用いる制御パラメーターを設定する。
ここで、処理装置はロボットに含まれる(ロボットが処理装置そのものではなく、処理装置で実行される処理を行う構成を含む場合も考えられる)ものであってもよいし、ロボットとは別体として設けられてもよい。例えば、本実施形態の処理装置がサーバーシステムとして実現されてもよく、その場合ネットワークを介して取得した力覚情報に対して線形予測分析処理を行って制御パラメーターを設定し、当該制御パラメーターをネットワークを介して出力する処理を行うことが考えられる。なお、本実施形態における「パラメーターの設定」とは単にパラメーターの値を決定する処理を表すものであってもよいが、それに限定されず、設定された制御パラメーターを用いてロボットに対して制御信号を送信する処理等まで含むものであってもよい。
以下、処理装置がロボットに含まれる具体例を説明する。図3に本実施形態に係るロボットのシステム構成例を示す。ロボットは、力覚センサー10と、アーム20と、制御部100と、記憶部200を含む。ただし、ロボット及びロボットを構成する各部は図3の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
力覚センサー10は、ロボットが出している力の反力として受けている力やモーメントを検出するセンサーである。この力覚センサー10は、通常、ロボットのアーム20の手首部分に取り付けられ、検出された力やモーメントは、センサー情報として、インピーダンス制御等の各種の力制御に用いられる。また本実施形態においては、力制御の実行時だけでなく、制御パラメーターを設定するための教示時においても、ユーザーの作業により与えられた力を検出するために用いられる。
アーム20は、種々の構成により実現でき、一般的には柔軟な動作を可能にするため、複数の関節を有することが想定される。また、アーム20にはハンド(把持部)等、種々のエンドエフェクターを取り付けることが可能である。ロボットに含まれるアーム20は1つ(単腕のロボット)に限定されるものではなく、双腕ロボット等、複数のアームを含んでもよい。
制御部100は、力覚センサー10からの力覚情報に基づいて、アーム20等の制御を行う。制御部100は、LPC分析処理部110と、低域通過フィルター120と、力覚制御フィルター130と、逆ヤコビアン処理部140と、軌道生成部150と、インバースキネマティクス処理部160と、モーター制御部170と、モード切替部180を含む。
LPC分析処理部110は、教示時に処理を行うものであり、力覚センサー10からの力覚情報に対して線形予測分析処理を行って、その結果であるLPC係数と予測残差を求める。求めたLPC係数は力覚制御フィルター130に出力され、予測残差は低域通過フィルター120に出力される。LPC分析処理部110が、図26の分析処理部33に対応することになる。LPC分析処理部110での処理の詳細は後述する。なお、図7(B)を用いて後述するように、真の力を発生させる部分と当該真の力に対して変調を加える部分とから構成されるモデルにより作業者をモデル化した場合に、ここでのLPC係数とは、変調部分を表すパラメーターとなり、予測残差とは真の力を表すパラメーターとなる。これについては、図9、図10等を用いて後述する。
低域通過フィルター120は、LPC分析処理部110から出力された予測残差に対して、低域通過フィルター処理を行い、フィルター処理の結果を力覚制御フィルター130に出力する。なお、LPC分析処理部110において予測残差が精度よく求められる場合には、制御部100から低域通過フィルター120を省略する構成としてもよい。
力覚制御フィルター130は、動作時に処理を行うものであり、力覚センサー10からの力覚情報に基づいて力制御を行う。力覚制御フィルター130のフィルター係数は、教示時にLPC分析処理部110において求められたLPC係数が用いられる。また、本実施形態での力覚制御フィルター130への入力は、力覚センサー10からの力覚情報をそのまま用いるのではなく、低域通過フィルター120の出力と力覚情報との差分情報が用いられることになる。力制御をデジタルフィルターを用いて実行する手法については後述する。
逆ヤコビアン処理部140は、力覚制御フィルター130の出力に対して逆ヤコビアンによる処理を行う。力覚制御フィルター130は、力に関する入力値に基づいて位置に関する情報を取得する。例えば、力覚制御フィルター130が2次のフィルターであれば、当該力覚制御フィルター130を用いた処理は、上式(1)のfを入力としてxを求める処理に対応するものとなる。ここで、力覚制御フィルター130の出力は例えばロボットの手先の位置、姿勢に対応する。それに対して、一般的にロボットの制御は各関節に対応するモーター(広義にはアクチュエーター)の制御により行われる。つまり、力覚制御フィルター130の出力(例えば手先の3次元位置x,y,zと、各軸まわりの回転u,v,w)を、各関節の関節角θに変換するインバースキネマティクス処理が必要となり、ここでは当該インバースキネマティクス処理を逆ヤコビアンにより実現する例を考えている。
軌道生成部150は、ロボットの目標軌道(移動経路)を生成する。ここでの目標軌道は例えば手先位置であることを想定しているため、上記の逆ヤコビアン処理部140と同様に、各関節の関節角に変換する処理が必要となり、当該処理はインバースキネマティクス処理部160により行われる。つまり、軌道生成部150及びインバースキネマティクス処理部160により、目標となる移動経路を生成するとともに、関節角情報に変換する。しかし、それだけではロボットが本来有する機械的な特性による制御となるため、所望の特性を持つかのように振る舞わせるために、力覚制御フィルター130及び逆ヤコビアン処理部140からの出力値を補正情報として用いることになる。なお、教示時には力制御を行う必要はないため、力覚制御フィルター130や逆ヤコビアン処理部140は非アクティブとなっており、インバースキネマティクス処理部160からの出力を補正せずに用いればよい。
モーター制御部170は、インバースキネマティクス処理部160からの出力、及び逆ヤコビアン処理部140からの出力に基づいて、各関節のモーターに対する制御信号を生成、送信する。
なお、図26のパラメーター設定部35は、LPC分析処理部110(分析処理部33)の結果を用いてデジタルフィルターを構成する力覚制御フィルター130に対応すると考えられるが、上述したように本実施形態のパラメーター設定は、設定されたパラメーターを用いてロボットに制御指示を行う処理も含むものと定義している。その点を考慮すると、低域通過フィルター120や。逆ヤコビアン処理部140、モーター制御部170等もパラメーター設定部35に対応するものとしてもよい。
モード切替部180は、教示時(教示モード)か動作時(動作モード)かに応じて、力覚センサー10からの力覚情報の出力先を切り替える。具体的には、教示時には力覚情報は制御パラメーターの設定に用いられるため、LPC分析処理部110に対して出力される。或いは、力覚情報は記憶部200に出力され、LPC分析処理部110に対しては記憶部200から力覚情報が出力されるものであってもよい。一方、動作時には力覚情報は力覚制御フィルター130に対する入力の1つとして用いられるため、力覚制御フィルター130(或いはその前段の差分を求める処理部)に対して出力される。
記憶部200は、制御部100等のワーク領域となるもので、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。記憶部200は、教示時に取得された力覚情報(センサー情報)を記憶する。また図3に示したように、LPC分析処理部110で求められた制御パラメーターを記憶してもよい。図3の例ではLPC分析処理部110で求められたLPC係数と予測残差を記憶するものとしたがこれには限定されない。例えば、図3のように低域通過フィルター120での処理後の情報をフィルター入力とする例であれば、低域通過フィルター120の出力値を記憶するものとしてもよい。また記憶部200は、力覚情報や制御パラメーターを記憶するものに限定されず、他の情報を記憶してもよい。
図26の取得部31は、記憶部200に対応するものとしてもよい。或いは、図3のモード切替部180や、図3には不図示であるが、制御部100に含まれ力覚センサー10とのインターフェースとなるインターフェース部が取得部31に対応するものとしてもよい。
3.線形予測分析処理
次に線形予測分析処理について説明する。具体的には処理の概要、具体的な処理内容、変形例について説明し、最後にシミュレーションデータによる補足説明を行う。
3.1 線形予測分析処理の概要
図5にユーザーによる作業で得られた力覚情報の例を示す。ここではコネクタをはめ込む作業(例えば図6)を行っており、縦軸下方向がコネクタをはめ込む方向の力であり、横軸が時間を表す。図5からわかるように、初期の押し込み時には単純に摩擦力がはたらくため、ほぼ一定の力で押し込むことになる。その後、コネクタがツメを持つ構造であったため、当該ツメのかみ合わせの際に大きな力を加えている。そして、押し込む力はツメが山を越える部分で最大となり、山を越えると小さくなる。作業をしているユーザーは、山を越えたことを検知して、押し込み力を徐々に解放することになる。
本実施形態では、図5に示したような力覚情報に基づいて、制御パラメーターを設定することになる。この力覚情報は、狭義には力覚値の時間変化を表す情報である。制御パラメーターを設定するためのモデル化について、図7(A)〜図7(C)に模式図を示す。教示時には、図7(A)に示したように、作業者は作業対象物との間で、作業力と反力の作用の元で作業を行う。この作業者の特性を完全に表現するパラメーターが設定可能であれば、当該パラメーターを用いることで、教示時の作業者の作業を、ロボットにより完全に再現することが可能になる。しかし、作業者の特性は非常に複雑であり、そのようなパラメーター設定は現実的ではない。
そこで本実施形態では、図7(B)に示したように、加えたい真の力(真の変位と表現してもよい)を発生させる部分と、当該真の力に対して制御変調を加える部分とから、作業者が構成されるというモデル化を行う。特に力制御をインピーダンス制御で実現するとすれば、図7(B)の制御変調部分は質量m,粘性μ,弾性kで表されるため、図7(C)に示したようにモデル化できる。
或いは、ロボットの力制御が一般的に図7(C)のモデルを用いて行われているという点からスタートして、図7(B)のように一般化できると考えてもよい。広く用いられている力制御では、ロボットがあたかも質量m,粘性μ,弾性kという特性を有するかのように振る舞わせる。その際、図7(C)に示したm,μ,kから構成される部分は、それ自体が力を発生させるものではなく、入力された力を変調するものであるため、当該変調部分とは別に、力を発生させる部分を持つものとしてモデル化を行うことは自然である。つまり、ロボットの力制御が図7(C)のモデルを用いる以上、作業者のモデル化も図7(B)の形で行われると考えるのは自然と言える。
そして、図7(B)のようにモデル化をした場合、真の力は制御変調部分による変調を受けて、作業力として外部に出力され、例えば力覚センサー10等で検出される。このようなケースにおいて、出力された(つまりは変調後の)情報に基づいて、真の力と変調特性とを求める手法は、音声認識等の分野において線形予測分析処理として広く知られている。音声の分野では、声帯の振動により真の力が発生され、それが舌の位置や口の開け方等で決定される変調特性(共鳴特性)による変調を受けて、音として外部に出力されるという考え方が広く用いられており、単純でありながら精度のよいモデル化であることが知られている。
本実施形態では、取得した力覚情報は、作業者が出力した力であることを想定しているため、当該力覚情報に対して線形予測分析処理を行い、真の力と制御変調部分の特性を求める。ここで力覚情報とは、狭義には、教示時に記憶した力覚センサー10からの力覚情報である。図7(C)がインピーダンス制御に対応することからも明らかなように、求めた制御変調部分の特性に従ってロボットの力制御を行うことで、ロボットがあたかも所望の(ここでは作業者の作業を再現する)特性を持つように制御を行うことができる。
ここで、線形な変調特性は、一般的に下式(2)に示したような(m+1)次の線形和モデルで表現できることが知られており、下式(2)のモデルが図8(A)に示したような無限インパルス応答(IIR)フィルタとして実現できることも知られている。つまり、線形予測分析処理により制御変調部分の特性が決定された場合には、当該制御変調部分を図8(A)のフィルターにより実現すればよい。このフィルターが図3に示した力覚制御フィルター130に対応する。なお、線形予測分析処理での次数は、精度や効率を考えなければ、原理上任意に設定可能であるが、次数を2次とした場合には、下式(3)及び図8(B)に示したように、m,μ,kに対応する通常のインピーダンス制御を行うものになる。
デジタルフィルターのフィルター係数は、線形予測分析処理により制御変調部分の特性として取得されるLPC係数を用いればよい。このフィルター係数は、デジタルフィルターの次数を2次とした場合であっても、質量m,粘性μ,弾性kという物理的な特性の値と一致するものではないため、m,μ,kを求める必要がある場合には、何らかの変換処理が必要となる。ただし、通常の力制御においては、デジタルフィルターが構成できれば、当該デジタルフィルターがどのような物理特性に対応するかを意識する必要はないため、m,μ,kを求めなくてもよい。
また、上式(2)、(3)に対して、図8(A)、図8(B)のデジタルフィルターは予測残差enが考慮されていない。作業者の作業を再現するするためには、制御変調部分を再現するだけでなく、真の力についても再現することが望まれるところ、図8(A)、図8(B)のフィルターだけでは真の力の考慮が足りないことになる。そこで本実施形態では、図8(A)、図8(B)のデジタルフィルターの入力の1つとして予測残差en(或いは予測残差に対して低域通過フィルター120を作用させた情報)を用いるものとする。具体的には、図3のブロック図に示したように、動作時の力覚センサー10からの力覚情報(f)と、予測残差enに基づく情報との差分情報を、図8(A)、図8(B)のデジタルフィルターの入力とする。なお、ここでは予測残差enはロボットのエンドエフェクターが作業対象物に与えた力、すなわち力覚センサー10が実際に検出する反力の符号を反転させた値とした場合を考慮して差分情報としており、値の正方向の取り方によっては差分ではなく加算処理の結果等を用いることになる。
3.2 線形予測分析処理
線形予測分析処理の考え方を図9に示す。取得された力覚情報を周波数軸に変換した図が右側上段となる。線形予測分析処理とは、力覚情報に基づいて、変調特性を表すLPC係数と、真の力を表す予測残差を求める処理であり、LPC係数とは右側中段に示したように、力覚情報のスペクトラムのエンベロープに対応するものである。つまり図9に示したように、求められた予測残差に対して、求められたLPC係数に対応する変調を加えることで、観測値の周波数特性が求められることになる。つまり、図10に示したように、線形予測分析処理の結果のうち、LPC係数から制御変調部分が推定され、予測残差から真の力が推定される。本実施形態の処理と、線形予測分析処理の考え方を対応させたものが図11である。
線形予測分析処理では、具体的には観測値から自己共分散を求め、それにより作られるYule-Walker方程式を解くことで、LPC係数を求める処理を行うことになる。Yule-Walker方程式を高速で解くためには、Levinson-Durbinアルゴリズム等が知られている。なお、線形予測分析処理自体は公知のものであるため、詳細な説明は省略する。
3.3 変形例
上述したように、線形予測分析処理においては次数を任意に設定可能である。よって、インピーダンス制御に対応する制御を行う場合には次数を2次にすればよい。或いは次数Nとして固定値を用いて線形予測分析処理を行ってもよい。線形予測分析処理の次数はデジタルフィルターの段数に対応し、デジタルフィルターの段数が多くなればなるほど、作業者の力覚情報の周波数特性を正確に表現できる。つまり運動方程式にこだわらなければ、2次よりも大きな次数のデジタルフィルターを用いることにより、より作業者の力覚に近い制御を実現することが可能となる。
しかし、Nを固定値とした場合には、十分な精度が得られない場合や、精度は十分であるが次数が過剰であり効率的でない場合があり得る。図8(A)や図8(B)で上述したIIRフィルターは全極型のフィルターであり、全極型デジタルフィルターの原理より、その次数がNの時、そのフィルターは最大N/2個の極(つまりピーク)を持ち得る。つまり、入力波形(ここでは力覚情報の周波数軸での波形)のスペクトラム包絡のピークがPである時、分析次数Nを2Pとすることにより、その周波数特性のスペクトラム包絡を、IIRフィルターで表現することができる。
具体例を図12(A)〜図13(H)に示す。なお、図12(A)〜図13(H)については、http://hil.t.u-tokyo.ac.jp/~sagayama/applied-acoustics/2009/C1-LPC.pdfに開示されている資料を参照したものである。図12(A)のA1が入力波形であり、B1が線形予測分析処理の結果求められた推定結果である。以下図12(B)〜図13(H)についてもAi(i=2〜16)が入力波形、Biが推定結果に対応する。ここで図12(A)〜図12(H)は線形予測分析処理の次数が1次〜8次の例であり、図13(A)〜図13(H)がそれぞれ9,10,12,14,16,18,22,26次の例である。
図12(A)等で対象としている入力波形は5つのピークC1〜C5を有する。これに対して1次〜8次の例では、次数が上がるほど、推定結果が入力波形のスペクトラム包絡に近づくことがわかるが、8次であっても5つのピーク全てを十分表現し切れていない。
そして、図13(A)の9次の例でも、C1やC3付近では推定結果がピークに対応しきれていないのに対して、図13(B)の10次の例であれば、ある程度入力波形と推定結果のピークの位置が対応していると考えられる。その後、図13(C)以降に示したように、次数を大きくするほど精度が高くなるが、12次より大きくした場合に、1次〜10次の変化に比べて、劇的な改善は見られない。
線形予測分析処理の次数を大きくすれば、それだけ処理負荷が増大するし、線形予測分析処理の結果から構成されるデジタルフィルターの段数が増加することで、フィルター処理での遅延も長くなってしまう。つまり、Nを十分大きい値として推定精度を確保することは当然として、所与の次数である程度の(例えば誤差が問題とならない程度の精度で)線形予測分析処理を行うことができるのであれば、それよりも大きい次数での線形予測分析処理をできるだけ避けるという観点も有用といえる。
そこで線形予測分析処理の変形例としては、次数Nを固定にするのではなく、可変に設定してもよい。音声分野で線形予測分析処理を行う場合には、10次程度でよい結果が得られることが広く知られているため、次数を可変にすることはあまり行われないが、線形予測分析処理をロボット制御に適用する際には、所望の作業によって特性が大きく異なるため、本変形例を用いる利点が大きい。
次数を可変にする手法は例えば2つ考えられる。第1の手法では、入力信号である力覚情報(図9左側)が得られた場合に、図9の右側上段に示したように当該力覚情報に対して周波数分析を行う。周波数軸上での情報が取得されれば、そこからピーク数Pを検出し、上述の原理に従いN=2Pとして次数Nを設定すればよい。なお、信号波形からのピークの検出は、信号処理の分野で種々の手法が知られているため、詳細な説明は省略する。
また、第2の手法では、残差の飽和度合いに基づいてNを設定する。上述の説明のように、分析次数が大きくなるに伴い、線形予測の精度が高まり残差が小さくなる。しかし、その残差は、上述したように、ある次数(2P)を超えると、ほぼ飽和する。従って、残差のパワーの変化の割合を見ることにより、最適な分析次数Nを推定することができる。
残差の飽和する次数を求める手法は種々考えられる。例えば、N次の線形予測分析を行い、残差の平均振幅と、入力の平均振幅の比を求めるとともに、(N+1)次の線形予測分析を行い、残差の平均振幅と、入力の平均振幅の比を求める。そして上記の2つの残差の比が所定の範囲、例えば1.0±0.1の範囲外の場合、Nをインクリメントして再度処理を行う。また上記の2つの残差の比が所定の範囲、例えば1.0±0.1の範囲内の場合、その際の値を用いてIIRフィルターを構成する(つまり、結果としてN次の線形予測分析処理を行ったことになる)。
なお、残差のパワーの絶対値、あるいは、残差のパワーと入力のパワーの比などは、入力データの特性に強く依存するために、それ単体で最適な次数の推定に用いるのは適切ではない。よって、上述した例のように、複数の次数でそれぞれ残差に基づく情報を求め、それらの比較処理を行って次数を推定するとよい。
3.4 シミュレーションデータによる補足説明
次に、上述の線形予測分析処理に基づく、ロボット制御のパラメーター設定が実現可能であることを、シミュレーションデータを用いて説明する。具体的には図14に示したように、仮想的な真の力を設定し、それに対して所与の物理特性(m,μ,k)に対応する変調を加えた情報を観測データとし、当該観測データに対して線形予測分析処理を行う。ここでは、シミュレーションであるため真の力、及びm,μ,k(具体的にはそれらにより決定されるデジタルフィルターのフィルター係数)の値は既知である。つまり、上記の観測データから、真の力とフィルター係数を推定し、それらが正解データに近いものとなれば、上述した手法は実現可能であると言える。
ここでは、m,μ,kの正解データとして、m=10、μ=20、k=30という値を設定した。その場合、図8(B)に示したデジタルフィルターのフィルター係数は、C0=9.900168*10^(-6)、C1=1.979902、C2=-0.9801987となり、当該デジタルフィルターのインパルス応答は図15に示したものとなる。
また、仮想作業として図6に示したように穴にピンを差し込む作業を考える。この場合、穴にピンが挿入されるに従って摩擦力が大きくなると考えられるため、理想的な真の力は図16(A)に示したものとなる。また、実際には摩擦力の変動によりランダムな力が加わると考えられるため、図16(A)の力に対して最大1/8の大きさの乱数を加えた図16(B)を真の力とする場合についてもシミュレーションする。
そして、上述のデジタルフィルターと図16(A)の力から求められたデータが図17(A)、デジタルフィルターと図16(B)の力から求められたデータが図17(B)である。人間による作業では、力の加減が行われるため、力の増減はゆっくり行われることになり、作業時のランダムな反力については、それを受け流すように制御が行われる。つまり、デジタルフィルターとして上述の特性を有するものを考え、観測データとして図17(A)或いは図17(B)を用いることは妥当であると言える。
図17(A)を観測データとして線形予測分析処理を行った結果が図18(A)である。図18(A)は予測残差(つまり真の力の推定結果)であり、LPC係数(フィルター係数)は、C0=1.463516*10^(-7)、C1=1.999323、C2=-0.9994181である。これからわかるように、制御変調部分に対応するフィルター係数も、上記正解データに近い値が推定でき、真の力の推定値である図18(A)も、正解データ図16(A)に近い特性が得られている。
同様に図17(B)を観測データとして線形予測分析処理を行った結果が図18(B)である。図18(B)は予測残差であり、LPC係数(フィルター係数)は、C0=1.425839*10^(-7)、C1=1.999343、C2=-0.9994374である。これからわかるようにランダムノイズを考慮した場合においても、制御変調部分に対応するフィルター係数も、上記正解データに近い値が推定でき、真の力の推定値である図18(B)も、正解データ図16(B)に近い特性が得られている。
以上の結果から、上述した本実施形態の手法は実現が可能であると言うことができる。
次に、線形予測分析処理の次数と推定精度の関係についてのシミュレーションを説明する。図19が正解データとして用意したデジタルフィルターのインパルス応答であり、このデジタルフィルターは図20の「シミュレーション仮定値」に示したC0〜C4の値をフィルター係数とする4次のフィルターである。
そして、図21(B)が正解データとして用意した真の力であり、図19のフィルターと図21(B)の真の力から取得される観測データが図21(A)である。ここでは、図21(A)の観測データに対して、複数の次数での線形予測分析処理を行っている。シミュレーションの結果のうち、フィルター係数を図20の表、推定した真の力を図22(A)〜図22(C)に示す。図20の残差平均値が推定誤差を表すものであり、小さいほど推定精度が高いことになる。
2次の線形予測分析処理では、図22(A)を見ればわかるように、正解データである図21(B)とは大きく異なる値となっており、図20からも誤差が大きく、適切な推定ではないと言える。
それに対して、3次の線形予測分析処理では、フィルター係数自体は次数の違いもあり正解データとは異なるものの、図22(B)からわかるように図21(B)の正解データを十分再現できており、適切な推定である。また、4次の線形予測分析処理についても図20や図22(C)から明らかなように適切な推定であり、5次以上についても同様である。
現実の処理においては、正解データを知ることができない以上、正解の次数とは異なる次数の線形予測分析処理を行うこと自体には何ら問題はない。図20、図22(A)〜図22(C)のシミュレーションデータが示しているのは、3次以上の次数であっても本実施形態の手法は実現可能である点、ある次数以上であれば適切な結果が得られるのに、それより小さい次数では適切な結果が得られないことがあるという点、所与の次数で適切であるならば、当該所与の次数より次数を大きくしても、精度向上の効果は大きくないという点、である。
つまり以上のシミュレーションデータから、2次或いは3次以上の線形予測分析処理を用いて本実施形態の手法を実現可能であり、且つ、上述した変形例のように線形予測分析処理の次数を可変に設定する手法が有用であることがわかる。
4.力覚情報の取得手法の一例
特許文献1及び特許文献2では、ロボットにはハンドル機構が設けられ、ユーザーは当該ハンドルを把持して所望の動作を行うことになる。よって、当該ハンドルを用いてユーザーが行った作業は、実際にロボットに再現させたい作業とは異なる特性を持つことになる。例えば、ドライバーを用いてねじ等を締める作業をロボットに行わせたい場合、ユーザーが教示すべきはドライバーを手で把持して回転させる作業を行う時の力である。しかしハンドル機構を用いた場合、当該ハンドル機構は作業の回転軸(ドライバー長手方向に対応する軸)とは一致しないことが想定され、結果としてハンドル機構による作業は直接ドライバーを把持する作業とは異なるモーメントを発生させてしまう。
つまり、ユーザーによる作業で、ロボットに対する教示を行う場合においては、ハンドル機構を用いることは好ましくないと言える。具体的には、ハンドル機構を用いて行った作業による力覚情報をそのまま用いてしまえば、上述した理由により適切な教示を行うことができない。また、ハンドル機構を用いた上で適切な教示を行おうとすると、ユーザーがハンドル機構による影響を考慮して力の入れ加減を調整する必要が生じたり、力覚情報から制御パラメーターを設定する際に何らかの補正処理を行う必要が生じてしまう。
また特許文献1では、ユーザーによる教示時に用いられる第1の力覚センサーと、設定されたパラメーターによる力制御を行ってロボットを動作させる動作時に用いられる第2の力覚センサーの2つが必要になる。よって、高価な力覚センサーを教示用と動作用とで別途設ける必要があり、コスト等に問題が残る。
また特許文献2では、1つの力覚センサーを教示時と動作時の両方に共通で用いる。教示時には、ユーザーがハンドルを介して与えた力と、ユーザーが行った作業によりエンドエフェクターに対して発生する力(例えばエンドエフェクターが作業対象物に加えた力の反力等)の両方を力覚センサーが検出することになる。このような状況でユーザーによる教示を適切に行うには、2つの力を適切に分離して、ユーザーがハンドルを介して与えた力を抽出し、当該力に基づいてパラメーターを決定する必要があり、特許文献2では並進力をモーメントに変換する機構を用いている。つまり、特許文献2では並進モーメント変換機構が必要となり、構造が複雑になってしまうという課題がある。また、当該並進モーメント変換機構が設けられることで、力覚センサーが検出する力覚値のうちのモーメント(例えばMx,My,Mz)についてはエンドエフェクターにはたらく力の検出に用いることができない。つまり、特許文献2の手法では、力制御を行う際に力覚値の一部(例えば並進3軸、モーメント3軸の6軸力覚センサーであればモーメント3軸)を利用することができないという課題もあると考えられる。
そこで本出願人は、力覚情報を取得する手法の一例として、ロボットに作業対象物又は作業台を模擬させるロボット制御を行う手法を提案する。その場合、当該ロボットに対して加えられるユーザー作業による力を、ロボットに設けられた力覚センサーにより検出し、検出した力覚情報(力覚値)に基づいて、力制御に用いる制御パラメーターを決定する。
ここで、ロボットが作業台を模擬するとは、例えば図1(B)に示したように、ロボットが作業対象物を支持する制御に対応する。また、ロボットが作業対象物を模擬するとは、例えば図2(B)に示したようにロボットのアームのエンドエフェクターを、作業対象物の表面に対応する位置に移動させる制御に対応する。以下、図面等を用いて具体的に説明する。
4.1 作業台を模擬する例
ロボットに作業台を模擬させることで、力覚情報を適切に取得する手法について説明する。ここでロボットに行わせたい作業は、例えば図1(A)に示したような作業であり、ここでは作業対象物を溝に押し込む作業である。ただし本実施形態の手法は、図1(A)に示した作業に限定されず、作業台に支持された作業対象物に対する作業について広く適用可能である。
ロボットに図1(A)の動作を行わせるための制御パラメーターを設定する場合、上述したようにロボットのアーム20にハンドルを設けることは好ましくない。また、図1(A)の例であれば、作業対象物の下(例えば凹部を有する物体の下)に力覚センサーを配置し、ユーザーによる押し込み作業を行うことでも、所望の力覚情報を取得することは可能であるが、教示のための力覚センサーを用意する必要が生じてしまう。教示はロボットの製造業者が行うのではなく、ロボットの購入者が行う場合も十分考えられ、その場合に購入者に対してロボットとは別に教示用の力覚センサー等の準備を強いることは、利便性やコストの観点から好ましいとは言えない。
そこで本出願人は、ロボットが有する力覚センサー10を利用した教示手法を提案する。本実施形態では、ロボットは力制御を行うことを想定しているため、手首等の位置に力覚センサー10を有する。この力覚センサー10を教示に用いるものとすれば、ロボットとは別に教示用のセンサーを用意する必要はない。
しかし、ロボットに対して図1(A)の姿勢をとらせ、ユーザーがロボットに対して力を加えるものとすると、その作業にハンドルを用いれば上述した課題が生じるし、仮にハンドルを用いないとしても、特許文献2のようにユーザー作業による力と、作業対象物からの反力とを分離する処理が必要となる。
そこで本実施形態では、ロボットは作業台を模擬するものとする。具体的には、ロボットはアーム20やエンドエフェクターを用いて、図1(B)に示したように作業対象物(図1(B)の例では、押し込み対象となる筒状の物体と、当該筒状物が押し込まれる溝を有する物体の両方を含む)を支持する。
このようにすれば、従来手法のようにユーザーがロボットのアームを動かす必要はなく、ロボットとは関係なくユーザー自身が作業を行えばよい。つまり、本実施形態により得られた力覚情報は、ロボットに実行させたい作業との対応が非常によくとれていることが期待される。
また、作業台を模擬する際のロボット制御も容易に実現できる。ユーザーによる作業は、ロボットに実行させたい作業と同様の環境で行うことが好ましいため、作業台を模擬するのであれば作業台の特性に対応した制御を行うことになる。しかし、一般的に作業台が大きく凹んだり傾いたりすることは作業の効率上考えにくく、実際の作業台が多少の弾性があったり、姿勢変化が生じたりするとしても、作業台を模擬するロボットはあたかも剛体の作業台であるかのように、手先の位置姿勢を不変とするような制御を行えば十分である。その際も、完全に手先の位置姿勢を不変にする必要はなく、作業を行うユーザーに影響を与えない程度であればよい。具体的には、実際の作業台を用いた作業と、作業台を模擬したロボットを用いた作業とで、感覚的な差異が大きくない程度であればよい。よって一例としては、ロボットの手先の位置姿勢をフィードバックし、位置姿勢の変化を0に近づける方向のフィードバック制御を行うことが考えられる。なお、ここで示した作業台を模擬するロボット制御は一例であり、他の制御により作業台を模擬することを妨げない。
上述したように、教示時には力制御を行う必要はないため、力覚制御フィルター130や逆ヤコビアン処理部140は非アクティブであり、力覚センサー10からの力覚情報は制御パラメーターの設定に用いられる。
また、教示時の力覚情報を用いた制御パラメーターの設定は、教示時に行われるものであってもよいが、それに限定されない。例えば、教示時の力覚情報は記憶部200に随時記憶しておき、動作モード開始までの所与のタイミングにおいて、LPC分析処理部110、低域通過フィルター120による処理を行って制御パラメーターを設定してもよい。一例としては、マシンパワーに余裕のある時間帯にバッチ処理的に実行するものであってもよい。
図4に本実施形態の教示処理の流れを示す。教示処理が開始されると、まず力覚情報の記録を開始する(ステップS101)。これはモード切替部180において、力覚情報を記憶部200に出力するモードに設定する処理に対応する。そして、ユーザー(作業者)による作業を受け付け、その際の力覚情報を記憶し(ステップS102)、作業終了時に、力覚情報の記憶も終了する(ステップS103)。
そして記録した力覚情報に基づいてLPC分析を行い(ステップS104)、その結果得られたLPC係数をフィルター係数とするデジタルフィルターを構成する(ステップS105)。また、LPC分析により得られた予測残差に対して、適宜低域通過フィルター処理を行って作業力(デジタルフィルターに対する入力の1つ)を求める(ステップS106,ステップS107)。なお、ステップS104〜ステップS107の処理は上述した線形予測分析処理、及びその結果に基づく制御パラメーターの設定処理に対応する。
4.2 作業対象物を模擬する例
次に、ロボットに作業対象物を模擬させることで、力覚情報を適切に取得する手法について説明する。図23にこの場合のロボットのシステム構成例を示す。上述した図3と比較すると、制御部100に模擬力出力部185と、転置ヤコビアン処理部190が追加された構成となっている。その他の構成については、図3と同様であるため、詳細な説明は省略する。
模擬力出力部185は、ロボットが模擬している作業対象物により発生する力を模擬した模擬力情報を生成、出力する。例えば、作業対象物は質量を有するため重力がはたらくことになる。模擬力出力部185は、作業対象物の特性(重力の例であれば質量の値)に基づいて、重力等の模擬力を出力する。ただし、模擬力は重力に限定されるものではない。
転置ヤコビアン処理部190は、模擬力出力部185により出力された模擬力情報に対して転置ヤコビアンによる処理を行って、制御情報を生成する。詳細については後述する。
なお、模擬力出力部185及び転置ヤコビアン処理部190は、教示時にアクティブとなるものであり、力制御を行う動作時には非アクティブである。
ここでは、ロボットに対して図2(A)に示したような動作を行わせることを考えており、そのための制御パラメーターをユーザー作業による教示で設定するものである。図2(A)は双腕ロボットを用いて作業対象物を把持する作業であり、例えば作業対象物を持ち上げて他の場所へ移動する作業に適用することができる。このような作業では、作業対象物に対してロボット(教示時には作業者)が与える力は、作業対象物に対する内力となり、上述した作業台のような作業対象物以外の物体に対して伝達されることがない。
つまり、図2(A)の動作を作業者が教示する場合には、ロボットが作業台等の作業対象物以外の物体を模擬したとしても、当該ロボットの力覚センサーは何ら適切な力覚情報を検出することができない。よって本実施形態では、図2(B)に示したようにロボットが作業対象物を模擬し、教示を行うユーザーはロボット(狭義にはロボットのエンドエフェクター)が作業対象物であるものとして図2(A)に対応する作業を行う。
この場合、ロボットは図2(B)に示したように、当該ロボットのエンドエフェクターが作業対象物の表面に対応する位置となるように制御される。ただし、作業対象物の大きさだけを再現したのでは不十分である。例えば作業対象物を持ち上げる場合、作業対象物が重い場合には、作業対象物が軽い場合に比べて当該作業対象物を挟み込む力は大きくなるはずであり、本実施形態での教示(及び制御パラメーターの設定)はそれら作業対象物の特性を考慮して行われなければ意味がない。
そこで本実施形態では、作業対象物の特性を考慮して、当該作業対象物により発生する力である模擬力を求める。この処理は図23に示した模擬力出力部185で行われる。模擬力としては例えば上述した重力が考えられ、ロボットが重力が作用する作業対象物を模擬する場合、エンドエフェクターにおいて重力に対応する力を発生させればよいことになる。図2(B)の例であって、作業対象物の重量が均等であるとの条件であれば、2つのエンドエフェクターにそれぞれ重力方向にmg/2の力を発生させれば、その合力は質量mの作業対象物にはたらく重力の模擬力とすることができる。
この場合、作業者がロボットに全く力を加えなければ、ロボットのエンドエフェクターは重力方向へ移動することになる。そして、作業者がロボットのエンドエフェクターが移動しないように力を加えれば、それは質量mの作業対象物を把持する作業を教示していることに他ならない。つまり本実施形態では、模擬力に応じて運動しようとしているエンドエフェクターに対する作業者の応答を力覚情報として取得し、取得した力覚情報に基づいて制御パラメーターを設定することになる。
なお、上述したように模擬力はエンドエフェクターが発生させるべき力として求められることが想定される。それに対して、一般的な多関節ロボットは各関節のモーターを制御する。つまり、エンドエフェクターで発生させるべき所望の力が取得された場合、当該力の発生に必要な各関節のトルクを求める必要が生じる。
ここでロボット制御で用いられるヤコビアンは、図24のJに示したように、関節の微少変位を手先の微少変位に変換するものである。具体的には、関節角の変位に対してJを作用させることで、手先位置の変位を求めるものとなる。つまり、ヤコビアンはある関節がトルクを発生した場合、当該トルクが手先においてどの方向の力として作用するかを求めるものと言うことができる。これはつまり、図24に示したように手先での力unがわかった場合には当該力に転置ヤコビアンJTを作用させれば、当該力の発生に必要な各関節のトルクを求めることができることになる。本実施形態では、図23の転置ヤコビアン処理部190がこれに対応し、模擬力出力部185から出力された模擬力情報(エンドエフェクターにおける力)に転置ヤコビアンによる処理を行い、各関節のトルクを求めている。なお、転置ヤコビアン処理部190での処理は、トルク分配としてロボット制御において広く知られているものであり、これ以上の詳細な説明は省略する。
以上が、作業対象物を模擬する場合の教示モードの詳細である。作業台を模擬する場合と比べた場合、ロボットの模擬対象が作業台ではなく作業対象物となる点が異なるが、ユーザー作業により力覚情報を取得した後の処理については作業台を模擬する例と同様に考えることができる。図25に上記処理の流れを示す。この処理が開始されると、まず作業対象物による模擬力を発生させる(ステップS201)。その後の処理であるステップS202〜ステップS208については、上述したとおり図4のステップS101〜ステップS107と同様である。
なお、模擬力としては単純な重力以外の力を発生させてもよい。例えば、作業対象物が中空の箱と、当該箱の内部に収納された収納物から構成されているような場合、箱の内部で収納物が倒れたり、転がったりすることではたらく力が変化する。例えば、収納物が転倒すれば、箱との衝突時には瞬間的に大きな力がはたらくことになる。また、収納物の箱内部での位置が変化すれば、作業対象物全体としての質量が一定であっても重量バランスは変動する。具体的には作業対象物の一方側に比べて他方側が重くなるといったことが考えられる。そこで模擬力としては、これらの力に対応した力を発生させるものとしてもよい。上記例であれば、瞬間的に重力方向へはたらく力を大きくしたり、複数のエンドエフェクターでそれぞれ異なる力を発生させることで重量バランスの変化に対応させることが考えられる。このように、模擬力としてさまざまな力を発生させれば、作業時のユーザーの動特性に関する情報を多く取得することができるため、より適切な制御パラメーターの設定を行うことが可能になる。
その他の例としては、重力方向に大きい力を発生させてもよく、その場合作業対象物が滑り落ちそうになった際のユーザーの作業特性を力覚情報として取得することが可能である。或いは、作業対象物を移動させる際に壁等に衝突させた場合には、当該衝突による力が作業対象物に加わることになる。例えば、箱状の作業対象物の上面が衝突すれば重力方向への力となるし、底面が衝突すれば重力方向とは反対方向の力となる。そのような力を模擬力とした場合のユーザーの作業特性を力覚情報として取得すれば、ロボット制御中に衝突等の予期せぬ事態が生じた際に、作業対象物の落下等の深刻な事態の発生を抑止できる。また、別の例としては、作業対象物の質量だけでなく、粘性や弾性を考慮して模擬力を発生させてもよい。例えば上述の衝突のように、作業対象物の外部からの力を模擬力とする際には、粘性や弾性を考慮することで、作業対象物を理想的な剛体とした場合とは異なる模擬力を発生させることができる。なお、模擬力は上述した力に限定されるものではなく、種々の力を発生させることが可能である。具体的には、実際のロボット制御の場面において、作業対象物にはたらくことが想定される力を模擬力とすることが有用である。
5.本実施形態の具体例
以上の本実施形態では、処理装置は図26に示したように、力覚センサー10からのセンサー情報を取得する取得部31と、取得したセンサー情報に対して線形予測分析処理を行う分析処理部33と、線形予測分析処理に基づいて、ロボットの力制御に使用する制御パラメーターを設定するパラメーター設定部35と、を含む。
これにより、力覚センサー10からのセンサー情報に対して線形予測分析処理を行うことで、ロボットの力制御に用いる制御パラメーターを設定することが可能になる。上述したように、従来手法ではロボットが再現すべき力覚情報を取得する手法は開示されていたが、当該力覚情報をどのように用いて作業を再現するかは示されていなかった。そこで本実施形態では、図7(B)等のモデルを用いることで、線形予測分析処理を用いて制御パラメーター(図10、図11等に示した例であれば、真の力に関するパラメーターと、変調特性を表すパラメーター)を設定するものとした。
また、ロボットが、図8(A)や図8(B)等のデジタルフィルター処理により力制御を行う場合に、パラメーター設定部35は、制御パラメーターとして、デジタルフィルター処理に用いられるデジタルフィルターのフィルター係数を設定してもよい。
これにより、力制御をデジタルフィルター処理により実行すること、及び上記制御パラメーターとしてデジタルフィルターのフィルター係数を設定することが可能になる。例えば、力制御としてインピーダンス制御を行う場合には、図7(C)の制御変調部分に示したように、ロボットがあたかも質量m,粘性μ,弾性kを有するかのように振る舞わせる。そして、図7(C)の機械的な構造は、外部からの力に対して変調を加えるものであり、一般的に線形な変調特性は上式(2)で表され図8(A)のIIRフィルターで実現可能であることが知られている。つまりインピーダンス制御をデジタルフィルターで構成することは原理的に可能なことであり、これはインピーダンス制御に限定されない力制御に一般化する(フィルターを3次以上のものに一般化することに対応)ことも可能である。よって本実施形態では、力制御をデジタルフィルター処理で行うものとし、その場合の上記制御パラメーターは当該デジタルフィルターのフィルター係数とする。
また、パラメーター設定部35は、分析処理部33での線形予測分析処理の結果として取得されるLPC係数を、デジタルフィルター処理に用いられるデジタルフィルターのフィルター係数として設定してもよい。
これにより、線形予測分析処理の結果のうちLPC係数をデジタルフィルターのフィルター係数として用いることが可能になる。上述したように、線形の変調特性はIIRフィルターで実現可能であり、線形予測分析処理の結果であるLPC係数は、変調特性をIIRフィルターで実現する際のフィルター係数として用いることができる。つまり、単純に力制御をデジタルフィルター化するというだけでは、機械的な特性(m,μ,k等)をフィルター係数(C0,C1,C2等)に変換する処理が必要になるが、本実施形態では線形予測分析処理を用いるものとしているため、当該変換処理を考慮することなく、線形予測分析処理の結果をそのままフィルター係数として利用可能となる。
また、パラメーター設定部35は、分析処理部33での線形予測分析処理の結果として取得される予測残差に基づいて求められる情報を、ロボットの作業力を表す制御パラメーターとして設定してもよい。
これにより、制御パラメーターとしてフィルター係数だけでなく作業力(上述してきた「真の力」に対応し、線形予測分析処理の結果のうちの予測残差に対応)を用いることが可能になる。図7(B)に示したように、本実施形態では作業者の特性を真の力を発生させる部分と、制御変調部分とによりモデル化している。制御変調部分は上述したデジタルフィルターにより実現されるが、図7(B)のモデルに従えば、真の力を発生させる部分も適切に制御パラメーターに反映しなければ、作業者の作業をロボットに再現させることはできない。そこで本実施形態では、予測残差に基づいて求められる作業力を、真の力として制御パラメーターに組み込んでいる。なお、図3等に示したように、求めた作業力は制御変調部分に対応するデジタルフィルターの入力値として用いることが考えられ、場合によってはパラメーター設定部35において、そのような制御を指示してもよい。
また、パラメーター設定部35は、予測残差に対して低域通過フィルター処理を施し、低域通過フィルター処理後の予測残差を、ロボットの作業力を表す制御パラメーターとして設定してもよい。
これにより、予測残差をそのまま用いるのではなく、低域通過フィルター処理(例えば図3の低域通過フィルター120を作用させる処理)によるノイズ低減等を行って制御パラメーターとすることが可能になる。線形予測分析処理の結果のうち予測残差については、処理対象に強く依存することが知られているため、取得したセンサー情報によっては、ロボットで再現したい作業の特性を適切に反映しない可能性もある。よって低域通過フィルター120を用いることで、より高精度のパラメーター設定を行ってもよい。
また、分析処理部33は、取得したセンサー情報に対して、3次以上の線形予測分析処理を行ってもよい。さらに、パラメーター設定部35は、分析処理部33での3次以上の線形予測分析処理に基づいて、3次以上の常微分方程式によるロボットの力制御を行うための制御パラメーターを設定してもよい。
これにより、高次の線形予測分析処理を行うことで、高次の常微分方程式に対応したロボット制御を行うこと等が可能になる。2次の常微分方程式とは上式(1)の一般的な運動方程式に対応し、その場合には常微分方程式の係数はm,μ,kとなるため直感的に理解しやすいものとなる。従来の力制御においては、ロボットに所定の機械的、物理的な特性を持たせたい、という観点からスタートするため、その特性の表現には当然のように運動方程式が用いられ、直感的に理解が困難である3次以上の常微分方程式を対象とするものはほとんど見られなかった。ロボットの剛性が低いことから、ロボットが振動するという仮定を取り入れて、当該振動を表す次数を追加する従来例もあるが、あくまで特定の要素を決めうちにして次数を追加するに過ぎず、柔軟に高次の常微分方程式を対象とする例は見られない。その点、本実施形態のように線形予測分析処理を用いるのであれば、その処理を2次に限定して利用する必要はなく、3次以上に拡張可能である。そもそも、ロボットを図7(C)に示したような質量、ダンパー、バネでモデル化するのも、理想的な状況を仮定しただけであり、実際のロボットはより複雑な特性を示すのが一般的であることを考慮すれば、2次に限定しない高次の力制御を行う利点は非常に大きいと言える。
また、分析処理部33は、取得したセンサー情報に対して、2次の線形予測分析処理を行ってもよい。
これにより、線形予測分析処理を行った上で、上式(1)の運動方程式に対応する力制御を行うことも可能になる。線形予測分析処理の変形例として説明したように、ある次数で精度よく線形予測分析処理が行えるのであれば、それよりも大きい次数の処理を無理に行う利点は大きくない。つまり、所与の力覚情報を対象とした際に、2次の線形予測分析処理で精度が確保できる場合には、3次以上の処理が可能であるからといって高次の処理にこだわる必要はなく、必要十分な2次の線形予測分析処理を行えばよい。
また、取得部31は、ロボットを作業台として、作業台であるロボットに支持される作業対象物に対する作業者の作業による力に対応するセンサー情報、又はロボットを作業対象物とする作業者の作業による力に対応するセンサー情報を取得し、分析処理部33は、作業者の作業による力に対応するセンサー情報に対して、線形予測分析処理を行い、パラメーター設定部35は、線形予測分析処理に基づいて、作業者の作業による力に対応するロボットの力制御を行うための制御パラメーターを設定してもよい。
これにより、取得するセンサー情報の具体例として、図1(B)や図2(B)に示したように、ロボットに作業台や作業対象物を模擬させることで得られるセンサー情報を用いることが可能になる。このようにすることで、特許文献1、2の手法と比較した場合に、ハンドル等の機構を用いることがなくなるため、容易に且つ高精度で所望の作業を教示することができ、取得部31の取得するセンサー情報も、より作業の特性を反映したものとすることができる。
また、以上の本実施形態は、力覚センサー10と、力覚センサー10からのセンサー情報を取得する取得部31と、取得したセンサー情報に対して線形予測分析処理を行う分析処理部33と、線形予測分析処理に基づいて、ロボットの力制御を行うための制御パラメーターを設定するパラメーター設定部35を含むロボットに適用できる。
これにより、ロボット自身が、内部で線形予測分析処理及び制御パラメーターの設定を行って、当該制御パラメーターに基づいた制御に従って動作することが可能になる。なお、このようなロボットの構成例としては図3に示したものが考えられ、図3の構成とした場合に、取得部31、分析処理部33、パラメーター設定部35がどのブロックに対応するかは上述したとおりである。
なお、本実施形態の処理装置、ロボット等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態の処理装置、ロボット等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。