以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.本実施形態の手法
まず本実施形態の手法について説明する。上述したように、近年ではロボット制御において力制御が要求される場合がある。力制御においては、ロボットの実際の機械的な特性にかかわらず、あたかもユーザーの指定する特性を有するようにロボットを制御することが可能になる。
しかし、実際にロボットを管理、制御する一般ユーザーにとっては、所定の動作を行わせる場合にロボットの機械的な特性(例えば質量m、粘性μ、弾性k)をどのような値に設定すればよいかを知ることは容易ではない。所定の動作をユーザー自身が行う場合に、どのような力加減が適切であるかということは直感的に理解できたとしても、そのような感覚的な理解に基づいて、当該所定の動作をロボットに実行させる際のパラメーターを設定することは困難である。
これに対して、実際の作業対象物にロボットを接触させて力を加え、その反応を調べ、力制御による振動が最小となるように力覚制御パラメーターを調整するという手法も考えられる。
ただし、この手法はロボットを実際の作業対象物に接触させる必要があり、作業対象物が無い状態での教示をすることができない。或いは、作業対象物を破損させる可能性もある。更には、動きを伴う動作、例えば対象物を運搬する際に対応する力覚パラメーターを教示することができないという問題がある。
よって、特許文献1や特許文献2では、ユーザーがロボットに設けられたハンドル機構を把持して上記所定動作を行い、その際の力覚センサーからのセンサー情報である力覚値を用いて制御パラメーターを決定する手法が開示されている。このようにすれば、パラメーターを決定する際には、力加減を理解しているユーザーにより作業が行われるため、作業対象物の破損等の可能性を抑止しつつ、直感的にパラメーターを決定することが可能になる。
しかしながら、特許文献1及び特許文献2では、ロボットにはハンドル機構が設けられ、ユーザーは当該ハンドルを把持して所望の動作を行うことになる。よって、当該ハンドルを用いてユーザーが行った作業は、実際にロボットに再現させたい作業とは異なる特性を持つことになる。例えば、ドライバーを用いてねじ等を締める作業をロボットに行わせたい場合、ユーザーが教示すべきはドライバーを手で把持して回転させる作業を行う時の力である。しかしハンドル機構を用いた場合、当該ハンドル機構は作業の回転軸(ドライバー長手方向に対応する軸)とは一致しないことが想定され、結果としてハンドル機構による作業は直接ドライバーを把持する作業とは異なるモーメントを発生させてしまう。
つまり、ユーザーによる作業で、ロボットに対する教示を行う場合においては、ハンドル機構を用いることは好ましくないと言える。具体的には、ハンドル機構を用いて行った作業による力覚情報をそのまま用いてしまえば、上述した理由により適切な教示を行うことができない。また、ハンドル機構を用いた上で適切な教示を行おうとすると、ユーザーがハンドル機構による影響を考慮して力の入れ加減を調整する必要が生じたり、力覚情報から制御パラメーターを設定する際に何らかの補正処理を行う必要が生じてしまう。
また特許文献1では、ユーザーによる教示時に用いられる第1の力覚センサーと、設定されたパラメーターによる力制御を行ってロボットを動作させる動作時に用いられる第2の力覚センサーの2つが必要になる。よって、高価な力覚センサーを教示用と動作用とで別途設ける必要があり、コスト等に問題が残る。
また特許文献2では、1つの力覚センサーを教示時と動作時の両方に共通で用いる。教示時には、ユーザーがハンドルを介して与えた力と、ユーザーが行った作業によりエンドエフェクターに対して発生する力の両方を力覚センサーが検出することになる。ここでエンドエフェクターに対して発生する力とは、例えばエンドエフェクターが作業対象物に加えた力の反力等である。このような状況でユーザーによる教示を適切に行うには、2つの力を適切に分離して、ユーザーがハンドルを介して与えた力を抽出し、当該力に基づいてパラメーターを決定する必要があり、特許文献2では並進力をモーメントに変換する機構を用いている。つまり、特許文献2では並進モーメント変換機構が必要となり、構造が複雑になってしまうという課題がある。また、当該並進モーメント変換機構が設けられることで、力覚センサーが検出する力覚値のうちのモーメント(例えばMx,My,Mz)についてはエンドエフェクターにはたらく力の検出に用いることができない。つまり、特許文献2の手法では、力制御を行う際に力覚値の一部を利用することができないという課題もあると考えられる。ここで力覚値の一部とは、例えば並進3軸、モーメント3軸の6軸力覚センサーであればモーメント3軸である。
そこで本出願人は、ロボットに作業対象物又は作業台を模擬させるロボット制御を行う手法を提案する。その場合、当該ロボットに対して加えられるユーザー作業による力を、ロボットに設けられた力覚センサーにより検出し、検出した力覚情報(力覚値)に基づいて、力制御に用いる制御パラメーターを決定する。
ここで、ロボットが作業台を模擬するとは、例えば図1(B)に示したように、ロボットが作業対象物を支持する制御に対応する。また、ロボットが作業対象物を模擬するとは、例えば図2(B)に示したようにロボットのアームのエンドエフェクターを、作業対象物の表面に対応する位置に移動させる制御に対応する。
以下、第1の実施形態では作業台を模擬する例を説明し、第2の実施形態では作業対象物を模擬する例を説明する。なお、第1の実施形態において力覚情報から制御パラメーターを設定する手法の一例として、LPC分析(線形予測分析)処理を行うものについて説明するが、本実施形態はこれに限定されず、種々のパラメーター設定手法を用いることが可能である。
2.第1の実施形態
ロボットに作業台を模擬させる第1の実施形態について説明する。具体的にはロボットのシステム構成例を説明した後、教示モードにおいて用いられる、ロボットに作業台を模擬させる具体的な手法について説明する。その後、力覚情報に基づいて制御パラメーターを設定する処理の一例として線形予測分析処理について説明する。
2.1 システム構成例
図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での処理の詳細は後述する。なお、図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からの出力に基づいて、各関節のモーターに対する制御信号を生成、送信する。
モード切替部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は、力覚情報や制御パラメーターを記憶するものに限定されず、他の情報を記憶してもよい。
2.2 教示モードの詳細
教示モードにおけるロボットの制御手法について説明する。本実施形態でロボットに行わせたい作業は、例えば図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の処理の詳細については後述する。
2.3 力覚情報に基づく制御パラメーター設定処理の一例
力覚情報に基づく制御パラメーターの設定処理として、線形予測分析処理を行う例について説明する。なお、本実施形態では教示時に取得された力覚情報に基づいて、どのように制御パラメーターを設定するかは任意であり、線形予測分析処理以外の処理を用いることも可能である。
2.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が実際に検出する反力の符号を反転させた値とした場合を考慮して差分情報としており、値の正方向の取り方によっては差分ではなく加算処理の結果等を用いることになる。
2.3.2 線形予測分析処理
線形予測分析処理の考え方を図9に示す。取得された力覚情報を周波数軸に変換した図が右側上段となる。線形予測分析処理とは、力覚情報に基づいて、変調特性を表すLPC係数と、真の力を表す予測残差を求める処理であり、LPC係数とは右側中段に示したように、力覚情報のスペクトラムのエンベロープに対応するものである。つまり図9に示したように、求められた予測残差に対して、求められたLPC係数に対応する変調を加えることで、観測値の周波数特性が求められることになる。つまり、図10に示したように、線形予測分析処理の結果のうち、LPC係数から制御変調部分が推定され、予測残差から真の力が推定される。本実施形態の処理と、線形予測分析処理の考え方を対応させたものが図11である。
線形予測分析処理では、具体的には観測値から自己共分散を求め、それにより作られるYule-Walker方程式を解くことで、LPC係数を求める処理を行うことになる。Yule-Walker方程式を高速で解くためには、Levinson-Durbinアルゴリズム等が知られている。なお、線形予測分析処理自体は公知のものであるため、詳細な説明は省略する。
2.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次の線形予測分析処理を行ったことになる)。
なお、残差のパワーの絶対値、あるいは、残差のパワーと入力のパワーの比などは、入力データの特性に強く依存するために、最適な次数の推定に用いるのは適切ではない。よって、上述した例のように、複数の次数でそれぞれ残差に基づく情報を求め、それらの比較処理を行って次数を推定するとよい。
2.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次以上の線形予測分析処理を用いて本実施形態の手法を実現可能であり、且つ、上述した変形例のように線形予測分析処理の次数を可変に設定する手法が有用であることがわかる。
以上の本実施形態では、ロボットは図3に示したように、力覚センサー10と、力覚センサー10からのセンサー情報に基づいて、ロボット制御を行う制御部100と、記憶部200を含む。そして、制御部100は、教示モードでは、ロボットに作業対象物又は作業台を模擬させるロボット制御を行い、記憶部200は、教示モードにおいて得られたセンサー情報を、動作モードにおいて使用される制御パラメーターの設定用情報として記憶する。
これにより、ロボットに作業台又は作業対象物を模擬させて得られたセンサー情報(力覚情報)を制御パラメーターの設定用情報として記憶することが可能になる。作業台を模擬する制御は図1(B)を用いた上述したものが考えられる。また、作業対象物を模擬する制御は図2(B)等を用いて第2の実施形態で後述する。ロボットに作業台等を模擬させることで、特許文献1,2のようにハンドル等の機構を用いてロボットに力を加えることがなくなるため、ロボットに実行させたい作業による力を適切に教示することが可能になる。その際、ロボットが力制御用に有している力覚センサー10を利用可能であるため、別途教示用の力覚センサーを用意する必要がなく、コスト等の面で有利である。
また、制御部100は、動作モードでは、教示モードでのセンサー情報に基づいて設定された制御パラメーターと、動作モードでの力覚センサーからのセンサー情報とに基づいて、ロボット制御として力制御を行ってもよい。
これにより、教示モードで取得したセンサー情報から制御パラメーターを設定しておき、動作モードでは当該制御パラメーターと動作モード時のセンサー情報から力制御を行うことが可能になる。つまり上述したように、本実施形態での力覚センサー10は、教示モードでは制御パラメーターの設定に用いられ、動作モードでは力制御に用いられるものであり、センサーの共通化が可能である。
また、制御部100は、教示モードでのセンサー情報に基づいて、制御パラメーターとしてデジタルフィルターのフィルター係数を設定し、動作モードでは、設定したフィルター係数を用いたデジタルフィルター処理により、力制御を行ってもよい。
これにより、力制御をデジタルフィルター処理により実行すること、及び上記制御パラメーターとしてデジタルフィルターのフィルター係数を設定することが可能になる。例えば、力制御としてインピーダンス制御を行う場合には、図7(C)の制御変調部分に示したように、ロボットがあたかも質量m,粘性μ,弾性kを有するかのように振る舞わせる。そして、図7(C)の機械的な構造は、外部からの力に対して変調を加えるものであり、一般的に線形な変調特性は上式(2)で表され図8(A)のIIRフィルターで実現可能であることが知られている。つまりインピーダンス制御をデジタルフィルターで構成することは原理的に可能なことであり、これはインピーダンス制御に限定されない力制御に一般化する(フィルターを3次以上のものに一般化することに対応)ことも可能である。よって本実施形態では、力制御をデジタルフィルター処理で行うものとし、その場合の上記制御パラメーターは当該デジタルフィルターのフィルター係数とする。
また、制御部100は、教示モードでのセンサー情報に基づいて、制御パラメーターとしてロボットの作業力を設定し、設定した作業力と、動作モードでの力覚センサーからのセンサー情報とに基づいて、デジタルフィルターに対する入力情報を設定してもよい。
これにより、制御パラメーターとしてフィルター係数だけでなく作業力(上述してきた「真の力」に対応し、線形予測分析処理の結果のうちの予測残差に対応)を用いることが可能になる。図7(B)に示したように、本実施形態では作業者の特性を真の力を発生させる部分と、制御変調部分とによりモデル化している。制御変調部分は上述したデジタルフィルターにより実現されるが、図7(B)のモデルに従えば、真の力を発生させる部分も適切に制御パラメーターに反映しなければ、作業者の作業をロボットに再現させることはできない。そこで本実施形態では、真の力については、制御変調部分に対応するデジタルフィルターの入力値として用いるものとしている。
また、動作モードにおいて、ロボットが作業対象物に与える力を力覚センサーのセンサー情報として取得する場合に、制御部100は、作業力と、動作モードでの力覚センサー10からのセンサー情報との差分情報をデジタルフィルターに対する入力情報として設定してもよい。
ここで、動作モードでの力覚センサー10からのセンサー情報とは、ロボット(狭義にはロボットのエンドエフェクター)が作業対象物に加えた力を検出した情報であると定義し、その場合の入力情報をセンサー情報と作業力の差分情報としている。ただし、力覚センサー10のセンサー情報を作業対象物からロボットに加えられた力(ロボットが加えた力の反力)とする実施例も当然考えられ、本実施形態でもセンサー情報をそのように定義してもよい。その場合、上記定義とはセンサー情報の値の正方向が反転するため、入力情報としてはセンサー情報と作業力の加算情報を用いることになる。
これにより、上記作業力(真の力)と、動作モードでのセンサー情報の差分情報を、デジタルフィルターの入力として用いることが可能になる。上述したように、作業力を考慮しなければ図7(B)の作業者を再現する制御パラメーターとしては不十分である。また、実際の動作時のセンサー情報(力覚情報)を用いなければ、そもそも力制御として不適切となる。よって、この両方を適切に用いることが必要であるところ、上式(2)等を考慮すれば、作業力とセンサー情報の差分情報(差分に基づき得られる情報であり、差分そのものに限定されない)をデジタルフィルターの入力とするとよい。
また、制御部100は、デジタルフィルター処理として、2次のデジタルフィルターを用いた処理を行ってもよい。
これにより、質量項、粘性項、弾性項を考慮した図7(C)のようなモデルに対応する制御、すなわち力制御のうち特にインピーダンス制御を実行することが可能になる。
また、制御部100は、デジタルフィルター処理として、3次以上のデジタルフィルターを用いた処理を行ってもよい。
これにより、インピーダンス制御に限定されず、より一般化した力制御を行うことが可能になる。3次以上とした場合、図7(C)のような機械的な構造と対応づけることは困難になるが、一般的なデジタルフィルターは次数を大きくするほど、より細かな特性を表現可能になる。つまり、デジタルフィルターを3次以上とすれば、質量、バネ、ダンパーからなる図7(C)の構造に限定されない、より複雑な特性も再現可能になると考えられる。
また、制御部100は、教示モードでのセンサー情報に対して線形予測分析処理を行うことで、制御パラメーターを求めてもよい。
これにより、センサー情報から制御パラメーターを求める際に、線形予測分析処理を用いることが可能になる。従来、線形予測分析処理は音声分野で広く用いられていたが、ロボットの制御パラメーターの設定に用いることは考えられていなかった。しかし上述したように、ロボットを図7(B)のようにモデル化するのであれば、制御パラメーターの設定処理とは、観測値(教示モードでのセンサー情報)から真の力と変調特性とを分離して、それぞれを特定する処理に落とし込むことが可能であり,当該処理は線形予測分析処理により実現可能である。なお、このような手法が実現可能であることは、シミュレーションデータを用いて上述したとおりである。
また、制御部100は、作業者が作業を行う作業対象物を、ロボットのアームのエンドエフェクターが作業台として支持する制御を、ロボットに作業台を模擬させるロボット制御として行ってもよい。
これにより、ロボットが作業台を模擬するロボット制御として、図1(B)に示した制御等を行うことが可能になる。具体的には、エンドエフェクターが作業対象物を支持するだけでなく、当該エンドエフェクターの空間的な位置、姿勢を固定する制御を行ってもよく、その場合固い(力を加えても移動、変形が少ない)作業台を用いた場合と同様の環境を作業者に提供することができる。ただし、作業台を模擬するロボット制御はこれに限定されない。
また以上の本実施形態は、教示モードでは、ロボットを作業台として、作業台であるロボットに支持される作業対象物に対する作業者の作業による力を力覚センサー10のセンサー情報として取得する処理、又はロボットを作業対象物とする作業者の作業による力を、力覚センサー10のセンサー情報として取得する処理を行い、動作モードでは、教示モードにおいて取得したセンサー情報と、動作モードにおいて力覚センサーから取得したセンサー情報とに基づいて、ロボット制御を行うロボットに適用可能である。
これにより、教示モードで取得したセンサー情報に基づいて、動作モードでのロボット制御を行うロボットを実現することができる。なお、教示モードにおいては、ロボットは作業対象物を支持するか、或いはロボット自身が作業対象物となることで、ロボットが有する力覚センサー10により、作業者の作業による力を検出可能であるものとする。
3.第2の実施形態
第2の実施形態として、図2(B)に示したようにロボットが作業対象物を模擬する例について説明する。
3.1 システム構成例
図23に本実施形態に係るロボットのシステム構成例を示す。第1の実施形態で説明した図3と比較すると、制御部100に模擬力出力部185と、転置ヤコビアン処理部190が追加された構成となっている。その他の構成については、第1の実施形態と同様であるため、詳細な説明は省略する。
模擬力出力部185は、ロボットが模擬している作業対象物により発生する力を模擬した模擬力情報を生成、出力する。例えば、作業対象物は質量を有するため重力がはたらくことになる。模擬力出力部185は、作業対象物の特性(重力の例であれば質量の値)に基づいて、重力等の模擬力を出力する。ただし、模擬力は重力に限定されるものではない。
転置ヤコビアン処理部190は、模擬力出力部185により出力された模擬力情報に対して転置ヤコビアンによる処理を行って、制御情報を生成する。詳細については後述する。
なお、模擬力出力部185及び転置ヤコビアン処理部190は、教示時にアクティブとなるものであり、力制御を行う動作時には非アクティブである。
3.2 教示モードの詳細
本実施形態での教示モードの詳細について説明する。本実施形態では、ロボットに対して図2(A)に示したような動作を行わせることを考えており、そのための制御パラメーターをユーザー作業による教示で設定するものである。図2(A)は双腕ロボットを用いて作業対象物を把持する作業であり、例えば作業対象物を持ち上げて他の場所へ移動する作業に適用することができる。このような作業では、作業対象物に対してロボット(教示時には作業者)が与える力は、作業対象物に対する内力となり、第1の実施形態の作業台のような作業対象物以外の物体に対して伝達されることがない。
つまり、図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での処理は、トルク分配としてロボット制御において広く知られているものであり、これ以上の詳細な説明は省略する。
以上が、本実施形態における教示モードの詳細である。第1の実施形態と比べた場合、ロボットの模擬対象が作業台ではなく作業対象物となる点が異なるが、ユーザー作業により力覚情報を取得した後の処理については第1の実施形態と同様に考えることができる。図25に本実施形態の処理の流れを示す。この処理が開始されると、まず作業対象物による模擬力を発生させる(ステップS201)。その後の処理であるステップS202〜ステップS208については、上述したとおり図4のステップS101〜ステップS107と同様である。
なお、模擬力としては単純な重力以外の力を発生させてもよい。例えば、作業対象物が中空の箱と、当該箱の内部に収納された収納物から構成されているような場合、箱の内部で収納物が倒れたり、転がったりすることではたらく力が変化する。例えば、収納物が転倒すれば、箱との衝突時には瞬間的に大きな力がはたらくことになる。また、収納物の箱内部での位置が変化すれば、作業対象物全体としての質量が一定であっても重量バランスは変動する。具体的には作業対象物の一方側に比べて他方側が重くなるといったことが考えられる。そこで模擬力としては、これらの力に対応した力を発生させるものとしてもよい。上記例であれば、瞬間的に重力方向へはたらく力を大きくしたり、複数のエンドエフェクターでそれぞれ異なる力を発生させることで重量バランスの変化に対応させることが考えられる。このように、模擬力としてさまざまな力を発生させれば、作業時のユーザーの動特性に関する情報を多く取得することができるため、より適切な制御パラメーターの設定を行うことが可能になる。
その他の例としては、重力方向に大きい力を発生させてもよく、その場合作業対象物が滑り落ちそうになった際のユーザーの作業特性を力覚情報として取得することが可能である。或いは、作業対象物を移動させる際に壁等に衝突させた場合には、当該衝突による力が作業対象物に加わることになる。例えば、箱状の作業対象物の上面が衝突すれば重力方向への力となるし、底面が衝突すれば重力方向とは反対方向の力となる。そのような力を模擬力とした場合のユーザーの作業特性を力覚情報として取得すれば、ロボット制御中に衝突等の予期せぬ事態が生じた際に、作業対象物の落下等の深刻な事態の発生を抑止できる。また、別の例としては、作業対象物の質量だけでなく、粘性や弾性を考慮して模擬力を発生させてもよい。例えば上述の衝突のように、作業対象物の外部からの力を模擬力とする際には、粘性や弾性を考慮することで、作業対象物を理想的な剛体とした場合とは異なる模擬力を発生させることができる。なお、模擬力は上述した力に限定されるものではなく、種々の力を発生させることが可能である。具体的には、実際のロボット制御の場面において、作業対象物にはたらくことが想定される力を模擬力とすることが有用である。
以上の本実施形態では、ロボットの制御部100は、ロボットの第1のアームのエンドエフェクターと、ロボットの第2のアームのエンドエフェクターを、作業者が作業を行う作業対象物の表面に対応する位置に設定する制御を、ロボットに作業対象物を模擬させるロボット制御として行う。
これにより、図2(B)等に示したようなロボット制御により、ロボットに作業対象物を模擬させることが可能になる。なお、本実施形態ではアームが2本の例を示したが、アームが3本以上であってもよく、その場合作業者は両手の他、胸等で作業対象物を支持したり、複数の作業者が協調して作業をすることで教示を行うことが考えられる。ロボットのエンドエフェクターで作業対象物の表面全てを再現することは困難であるが、少なくとも力を加える箇所にエンドエフェクターが位置する制御を行えば、作業者による教示が可能である。
また、制御部100は、図23に示したように、作業対象物により発生する力を模擬した模擬力情報を出力する模擬力出力部185を含み、制御部100は、出力された模擬力情報に基づく作業対象物の運動に対応させて、作業対象物の表面に対応するエンドエフェクターの位置を設定する制御を、ロボットに作業対象物を模擬させるロボット制御として行ってもよい。
これにより、作業対象物により発生する模擬力を考慮して、作業対象物を模擬するロボット制御を行うことが可能になる。上述したように、模擬力を重力とすれば、作業対象物を模擬するロボット制御とは、重力に対応する力を持って重力方向にエンドエフェクターを移動させようとする制御となる。このようにすれば、作業者のロボットに対する作業(例えばロボットを空間状に固定する作業)は、あたかも所定の質量を有する作業対象物を落下しないように把持する作業であるかのように考えることができ、図2(A)のような作業をロボットに行わせる際の教示に用いることができる。上述したように、模擬力としてより複雑な力を発生させることで、作業者の特性を細かく取得するような変形例も実行可能である。
以上、本発明を適用した2つの実施の形態1〜2およびその変形例について説明したが、本発明は、各実施の形態1〜2やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施の形態1〜2や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施の形態1〜2や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。