(57)【要約】【課題】  ロボットに弾性部材を有する機械機構が設けられた場合にも、適切な制御を行うロボット及びロボット制御方法等を提供すること。【解決手段】  ロボットは、アーム１２０と、アーム１２０に設けられた力覚センサー１０と、力覚センサー１０を介してアーム１２０に設けられ、弾性部材を有する機械機構（例えばハンド１１０）と、機械機構の位置及び姿勢の目標値の補正値を求める補正部４０と、補正値に基づいて目標値を補正し、補正後の目標値に基づいてアーム１２０を制御する制御部８０とを含み、力覚センサー１０は検出した力に関するセンサー情報を出力し、補正部４０は力覚センサー１０が出力したセンサー情報を用いて、力に基づく弾性部材の変位に対応する補正値を求め、制御部８０は補正後の目標値に基づいて、弾性部材の変位をキャンセルするアーム１２０の制御を行う。【選択図】      図３
2013119133.tif 000002
【特許請求の範囲】
【請求項１】
アームと、
前記アームに設けられた力覚センサーと、
前記力覚センサーを介して前記アームに設けられ、弾性部材を有する機械機構と、
前記機械機構の位置及び姿勢の目標値の補正値を求める補正部と、
前記補正値に基づいて前記目標値を補正し、補正後の前記目標値に基づいて前記アームを制御する制御部と、
を含み、
前記力覚センサーは、
前記力覚センサーが検出した力に関するセンサー情報を出力し、
前記補正部は、
前記力覚センサーが出力したセンサー情報を用いて、前記力に基づく前記弾性部材の変位に対応する前記補正値を求め、
前記制御部は、
補正後の前記目標値に基づいて、前記弾性部材の前記変位をキャンセルする前記アームの制御を行うことを特徴とするロボット。
【請求項２】
請求項１において、
前記機械機構は、
前記ロボットのエンドエフェクター部であり、
前記補正部は、
前記力覚センサーが出力した前記センサー情報を用いて、前記力に基づく前記エンドエフェクター部の前記変位に対応する前記補正値を求め、
前記制御部は、
補正後の前記目標値に基づいて、前記エンドエフェクター部の前記変位をキャンセルする前記アームの制御を行うことを特徴とするロボット。
【請求項３】
請求項１又は２において、
前記力覚センサーが出力した前記センサー情報を用いて、前記機械機構の前記位置及び前記姿勢の前記目標値の第２の補正値を出力する力制御部を含み、
前記制御部は、
前記補正値及び前記第２の補正値に基づいて前記目標値を補正し、補正後の前記目標値に基づいて前記ロボットを制御することを特徴とするロボット。
【請求項４】
請求項３において、
前記力制御部は、
前記機械機構が外力ｆを変換して力Ｆとして前記力覚センサーに伝達する場合に、前記センサー情報に対して前記機械機構での変換の逆変換を行なう外力検知部を含み、
前記力制御部は、
前記外力検知部からの出力信号に基づいて前記第２の補正値を求めることを特徴とするロボット。
【請求項５】
請求項４において、
前記力制御部は、
デジタルフィルター処理により、前記逆変換、及び前記第２の補正値を求める処理を行うことを特徴とするロボット。
【請求項６】
請求項５において、
前記外力検知部は、
第ｎ（ｎは３以上の整数）のタイミングにおける前記センサー情報の値をＦｎ、第ｎ−１のタイミングにおける中間パラメーターをｘｎ−１とし、前記デジタルフィルター処理の係数パラメーターをα及びβとした場合に、
ｘｎ＝αＦｎ＋βｘｎ−１により、前記第ｎのタイミングにおける前記中間パラメーターｘｎを求めるとともに、
求められた前記中間パラメーターｘｎ、前記第ｎ−１のタイミングで求められた前記中間パラメーターｘｎ−１及び第ｎ−２のタイミングで求められた前記中間パラメーターｘｎ−２と、前記デジタルフィルター処理の前記係数パラメーターＣ０，Ｃ１，Ｃ２から、
ｆｎ＝｛ｘｎ−（Ｃ１ｘｎ−１＋Ｃ２ｘｎ−２）｝／Ｃ０により、前記第ｎのタイミングにおける前記逆変換の後の前記センサー情報ｆｎを求めることを特徴とするロボット。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記補正部は、
第２のデジタルフィルター処理により、前記補正値を求める処理を行うことを特徴とするロボット。
【請求項８】
請求項７において、
第ｋ（ｋは２以上の整数）のタイミングにおける、前記センサー情報の値をＦｋ、前記補正値を表す前記第２のデジタルフィルター処理の出力値をｘｋとし、第ｋ−１のタイミングにおける前記第２のデジタルフィルター処理の出力値をｘｋ−１とし、前記第２のデジタルフィルター処理の係数パラメーターをα及びβとした場合に、
前記補正部は、
前記第ｋのタイミングにおける前記補正値ｘｋをｘｋ＝αＦｋ＋βｘｋ−１により求めることを特徴とするロボット。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記機械機構の前記位置及び前記姿勢の前記目標値を出力する目標値出力部を含むことを特徴とするロボット。
【請求項１０】
アーム、前記アームに設けられた力覚センサー、及び前記力覚センサーを介して前記アームに設けられ、弾性部材を有する機械機構を含むロボットを制御するロボット制御方法であって、
前記力覚センサーが検出した力に関するセンサー情報を用いて、前記力に基づく前記弾性部材の変位に対応する補正値を求め、
前記補正値に基づいて前記ロボットの目標値を補正し、補正後の前記目標値に基づいて前記弾性部材の前記変位をキャンセルする前記アームの制御を行うことを特徴とするロボット制御方法。
【請求項１１】
アーム、前記アームに設けられた力覚センサー、及び前記力覚センサーを介して前記アームに設けられ、弾性部材を有する機械機構を含むロボットを制御するロボット制御方法であって、
前記力覚センサーが検出した力に関するセンサー情報を用いて、前記力に基づく前記弾性部材の変位をキャンセルする前記アームの制御を行うことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及びロボット制御方法等に関する。
【背景技術】
【０００２】
従来、センシング部に対してはたらく力をセンサー情報として取得する力覚センサーと、当該力覚センサーを用いた種々のシステムが知られている。
【０００３】
ロボット制御の分野ではインピーダンス制御に代表される力制御を行うシステムが考えられる。インピーダンス制御とは、ロボットのマニピュレーターを、その実際の質量・粘性特性・弾性特性に係わらず、あたかも作業に適した値を持つかのように動作させる制御手法である。具体的には、マニピュレーターに設けられた力覚センサーから得られる力情報に基づいて運動方程式の解を求め、マニピュレーターをその解に従って動作させることになる。
【０００４】
インピーダンス制御を行うことで、位置の制御に加えて力の制御を行うことができるため、物体の表面をなぞる、ある物体を他の物体に嵌め合わせる、柔物体を破壊しないように把持する等の場面に対応することが可能になる。
【０００５】
特許文献１には、非常に複雑な系においても精度よくインピーダンス制御を行う手法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−３２０４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
通常のロボットでは、アームの先に設けられたエンドエフェクター部（例えばハンド等）は、剛性の高いものが用いられる。剛性の低いものではエンドエフェクター部の空間的位置（具体的にはロボットの手先位置等）の制御において精度を高くすることが困難となってしまうためである。しかし、エンドエフェクター部が高剛性であると、当該エンドエフェクター部と作業者等との衝突を特に考慮した制御が求められる。
【０００８】
また、特許文献１等のインピーダンス制御を行なうことで、見かけ上ロボットを柔らかくする（例えば見かけ上の弾性、粘性等を低くする）ことが可能である。しかし、この柔らかい特性はあくまでインピーダンス制御により実現しているに過ぎず、インピーダンス制御を行なっている制御部が何らかの理由で動作を停止してしまえば、ロボットが本来持つ機械的な特性が現れることになる。つまり、制御部の停止時にはロボットの剛性は高くなるため、この場合にもエンドエフェクター部と作業者等との衝突を特に考慮した制御が必要となる点に変わりはない。
【０００９】
これに対して、エンドエフェクター部に剛性の低いものを用いることで、衝突等を回避する必要性を下げることができるため、この点に関しては制御が容易となる。しかし、この場合にはロボットの手先位置精度が低くなる。さらに、剛性の低いエンドエフェクターにおいて外力が変調され、力覚センサーでの外力検知精度も劣化してしまうこともあり、ロボットの動作に支障をきたす可能性がある。
【００１０】
本発明の幾つかの態様によれば、ロボットに弾性部材を有する機械機構が設けられた場合にも、適切な制御を行うロボット及びロボット制御方法等を提供することができる。
【課題を解決するための手段】
【００１１】
本発明の一態様は、アームと、前記アームに設けられた力覚センサーと、前記力覚センサーを介して前記アームに設けられ、弾性部材を有する機械機構と、前記機械機構の位置及び姿勢の目標値の補正値を求める補正部と、前記補正値に基づいて前記目標値を補正し、補正後の前記目標値に基づいて前記アームを制御する制御部と、を含み、前記力覚センサーは、前記力覚センサーが検出した力に関するセンサー情報を出力し、前記補正部は、前記力覚センサーが出力したセンサー情報を用いて、前記力に基づく前記弾性部材の変位に対応する前記補正値を求め、前記制御部は、補正後の前記目標値に基づいて、前記弾性部材の前記変位をキャンセルする前記アームの制御を行うロボットに関係する。
【００１２】
本発明の一態様では、ロボットはアームと、アームに設けられた力覚センサーと、力覚センサーを介してアームに設けられ、弾性部材を有する機械機構を含む。この場合に、力覚センサーのセンサー情報に基づいて、弾性部材の変形をキャンセルするロボット制御を行なう。よって、機械機構が外力を受ける場合には目標値からのズレが発生することが想定されるが、当該ズレを抑えることが可能になり、機械機構をあたかも高剛性であるかのように制御すること等が可能になる。そのため、機械機構の位置制御での精度向上等を図ることができる。
【００１３】
また、本発明の一態様では、前記機械機構は、前記ロボットのエンドエフェクター部であり、前記補正部は、前記力覚センサーが出力した前記センサー情報を用いて、前記力に基づく前記エンドエフェクター部の前記変位に対応する前記補正値を求め、前記制御部は、補正後の前記目標値に基づいて、前記エンドエフェクター部の前記変位をキャンセルする前記アームの制御を行ってもよい。
【００１４】
これにより、機械機構がロボットのエンドエフェクター部である場合にも対応することが可能になる。
【００１５】
また、本発明の一態様では、前記力覚センサーが出力した前記センサー情報を用いて、前記機械機構の前記位置及び前記姿勢の前記目標値の第２の補正値を出力する力制御部を含み、前記制御部は、前記補正値及び前記第２の補正値に基づいて前記目標値を補正し、補正後の前記目標値に基づいて前記ロボットを制御してもよい。
【００１６】
これにより、機械機構を高剛性であるかのように見せる等の制御に加えて、インピーダンス制御等の力制御を行なうことが可能になる。
【００１７】
また、本発明の一態様では、前記力制御部は、前記機械機構が外力ｆを変換して力Ｆとして前記力覚センサーに伝達する場合に、前記センサー情報に対して前記機械機構での変換の逆変換を行なう外力検知部を含み、前記力制御部は、前記外力検知部からの出力信号に基づいて前記第２の補正値を求めてもよい。
【００１８】
これにより、外力ｆを正確に求めることが可能になり、インピーダンス制御等の力制御を適切に行うこと等が可能になる。
【００１９】
また、本発明の一態様では、前記力制御部は、デジタルフィルター処理により、前記逆変換、及び前記第２の補正値を求める処理を行ってもよい。
【００２０】
これにより、処理のデジタルフィルター化が可能になり、ハードウェアー化や安定性の判定を容易にすること等が可能になる。
【００２１】
また、本発明の一態様では、前記外力検知部は、第ｎ（ｎは３以上の整数）のタイミングにおける前記センサー情報の値をＦｎ、第ｎ−１のタイミングにおける中間パラメーターをｘｎ−１とし、前記デジタルフィルター処理の係数パラメーターをα及びβとした場合に、ｘｎ＝αＦｎ＋βｘｎ−１により、前記第ｎのタイミングにおける前記中間パラメーターｘｎを求めるとともに、求められた前記中間パラメーターｘｎ、前記第ｎ−１のタイミングで求められた前記中間パラメーターｘｎ−１及び第ｎ−２のタイミングで求められた前記中間パラメーターｘｎ−２と、前記デジタルフィルター処理の前記係数パラメーターＣ０，Ｃ１，Ｃ２から、ｆｎ＝｛ｘｎ−（Ｃ１ｘｎ−１＋Ｃ２ｘｎ−２）｝／Ｃ０により、前記第ｎのタイミングにおける前記逆変換の後の前記センサー情報ｆｎを求めてもよい。
【００２２】
これにより、具体的なデジタルフィルターを設定した上で、上記の処理を行うことが可能になる。
【００２３】
また、本発明の一態様では、前記補正部は、第２のデジタルフィルター処理により、前記補正値を求める処理を行ってもよい。
【００２４】
これにより、機械機構を高剛性であるかのように見せる等の制御についても、デジタルフィルター化が可能になる。
【００２５】
また、本発明の一態様では、第ｋ（ｋは２以上の整数）のタイミングにおける、前記センサー情報の値をＦｋ、前記補正値を表す前記第２のデジタルフィルター処理の出力値をｘｋとし、第ｋ−１のタイミングにおける前記第２のデジタルフィルター処理の出力値をｘｋ−１とし、前記第２のデジタルフィルター処理の係数パラメーターをα及びβとした場合に、前記補正部は、前記第ｋのタイミングにおける前記補正値ｘｋをｘｋ＝αＦｋ＋βｘｋ−１により求めてもよい。
【００２６】
これにより、具体的なデジタルフィルターを設定した上で、上記の処理を行うことが可能になる。
【００２７】
また、本発明の一態様では、前記機械機構の前記位置及び前記姿勢の前記目標値を出力する目標値出力部を含んでもよい。
【００２８】
これにより、ロボット制御に用いられる目標値を設定すること等が可能になる。
【００２９】
また、本発明の他の態様は、アーム、前記アームに設けられた力覚センサー、及び前記力覚センサーを介して前記アームに設けられ、弾性部材を有する機械機構を含むロボットを制御するロボット制御方法であって、前記力覚センサーが検出した力に関するセンサー情報を用いて、前記力に基づく前記弾性部材の変位に対応する補正値を求め、前記補正値に基づいて前記ロボットの目標値を補正し、補正後の前記目標値に基づいて前記弾性部材の前記変位をキャンセルする前記アームの制御を行うロボット制御方法に関係する。
【００３０】
また、本発明の他の態様は、アーム、前記アームに設けられた力覚センサー、及び前記力覚センサーを介して前記アームに設けられ、弾性部材を有する機械機構を含むロボットを制御するロボット制御方法であって、前記力覚センサーが検出した力に関するセンサー情報を用いて、前記力に基づく前記弾性部材の変位をキャンセルする前記アームの制御を行うロボット制御方法に関係する。
【図面の簡単な説明】
【００３１】
【図１】力覚センサーの構成例。
【図２】力覚センサーの先に機械機構が設けられる具体例。
【図３】第１の実施形態のロボットの構成例。
【図４】図４（Ａ）、図４（Ｂ）はロボットの一例。
【図５】機械機構のモデル化の例。
【図６】機械機構における変調を説明する図。
【図７】機械機構をダンパー及びバネ等を用いて構成する例。
【図８】図８（Ａ）〜図８（Ｃ）は第１の実施形態の力制御を説明する図。
【図９】補正処理に用いられるデジタルフィルターの例。
【図１０】第１の実施形態における処理を説明するフローチャート。
【図１１】第２の実施形態のロボットの構成例。
【図１２】補正処理に用いられるデジタルフィルターの他の例。
【図１３】補正処理に用いられるデジタルフィルターの他の例。
【図１４】図１４（Ａ）〜図１４（Ｃ）は力制御についての説明図。
【図１５】図１５（Ａ）、図１５（Ｂ）はコンプライアンス制御についての説明図。
【図１６】図１６（Ａ）、図１６（Ｂ）はインピーダンス制御についての説明図。
【図１７】機械機構の特性と力制御により実現された特性との関係を説明する図。
【図１８】外力検知部での処理を説明するためのフローチャート。
【図１９】インピーダンス制御を説明するフローチャート。
【発明を実施するための形態】
【００３２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３３】
１．本実施形態の手法
まず本実施形態の手法について説明する。まず、低剛性の機械機構を用いる理由、及びそれに伴い考慮すべき事項について、第１の実施形態での手法として説明する。その後、第１の実施形態の手法と一般的なインピーダンス制御等とを組み合わせる手法、及びその際に考慮すべき事項について、第２の実施形態出の手法として説明する。
【００３４】
１．１  第１の実施形態の手法
本実施形態で用いられる力覚センサーの構成例を図１に示す。力覚センサーには種々の構成が考えられるが、基本的には外力によるセンシング部の微小な変形を、何らかの手法により測定することで外力を検知する。変形の測定手法には、歪みゲージを用いる手法、静電センサーを用いる手法、光学センサーを用いる手法、水晶素子等の圧電素子を用いる手法等が考えられる。
【００３５】
図１に示したように、力覚センサーの機械的な構造を模式化することで、力覚センサーをモデル化することができる。力覚センサーの等価質量項をｍ０、等価粘性項をμ０、等価弾性項をｋ０とすると、その特性は下式（１）のように表すことができる。
【００３６】
【数１】
2013119133.tif 000003
【００３７】
ここで、ｘは変形測定手法（具体例は上述したとおり）により測定されたセンシング部の変形（変位）を表し、Ｆは力覚センサーの受けた外力を表す。つまり、力覚センサーの等価質量項ｍ０、等価粘性項μ０、等価弾性項ｋ０は設計により知ることができるため、変位ｘを測定することにより、上式（１）から外力Ｆを取得することができる。力覚センサーはセンサー情報としてＦを出力する。
【００３８】
しかし、実際には弾性項ｋ０が相対的に非常に大きく作られるため、時間微分項は相対的に小さくなり、一般的には運動方程式を明示的に考慮する必要はない。弾性項が相対的に大きくないと（つまり力覚センサーが非常に硬く作られないと）、センシング部の変形が大きくなってしまうため、それに伴い力覚センサーの先に設けられた構造物の空間的位置が変動してしまうためである。例えばロボットであれば、力覚センサーの先にハンドが設けられることが想定されるが、力覚センサーが硬くないとハンドの空間的位置、つまりロボットの手先位置が変動することになり、手先位置制御の精度が劣化することになる。
【００３９】
以上のことから、力覚センサーをモデル化したものを図１に示したものの、本実施形態においてはこのようなモデルまで考慮する必要はなく、力覚センサーのセンシング部の変形はないものとして取り扱ってもよい。本実施形態において問題となるのは機械機構の剛性に伴うものである。
【００４０】
本実施形態のロボットは図２に示したように、アームを有し、当該アームに力覚センサーが設けられるとともに、その力覚センサーに機械機構が設けられる。そして、本実施形態の機械機構は剛性が低いものである（例えば機械機構が弾性部材を有する等、柔構造物により構成される場合が考えられる）。剛性の低い機械機構を用いることで、当該機械機構が持つ機械的な特性が現れた場合であっても、作業者等との衝突による影響を抑止することが可能になる。ここで機械機構が有する「弾性部材」とは、機械機構の一部に含まれる剛体ではない柔構造物、機械機構を構成する部材すべてが柔構造物であれば機械機構全体、または機械機構の可動部などである。
【００４１】
しかし、機械機構（例えばエンドエフェクター部であり狭義にはハンド等）の剛性が低い場合には、当該機械機構の位置制御の精度が低くなってしまう。そのため、ロボットによる作業（例えば所定位置間でのワークの移動等）に支障をきたす可能性がある。
【００４２】
そこで本出願人は、剛性の低い機械機構を用いた場合であっても、適切な制御を行う手法を提案する。具体的には、力覚センサーで検出したセンサー情報に基づいて機械機構の変位（変形）を求め、求めた変位をキャンセルするような制御を行う。詳細については図８（Ａ）〜図８（Ｃ）を用いて後述するが、変位をキャンセルすることになるため、例えばロボットが静止状態にある場合には、機械機構の空間的位置（ロボットの手先位置）を一定に保つことが可能になる。つまり、外力を受けたとしても手先位置が変化しないことになるため、見かけ上高剛性を実現することができ、手先位置精度を向上させることができる。なお、ロボットが移動中であれば、機械機構の変位とは目標軌道からのずれ量に対応するため、変位をキャンセルする制御を行なうことで、外力を受けても目標軌道から外れないような制御となる。この場合にも見かけ上高剛性を実現できることに変わりはない。
【００４３】
また、力覚センサーのセンサー情報から機械機構の変位を求めるために、本実施形態においては機械機構の特性をモデル化する。詳細については後述する。
【００４４】
以上の手法について、第１の実施形態において詳述する。具体的には、まずシステム構成例について述べ、次に機械機構のモデル化について説明する。その後、力制御の手法について述べて、当該力制御をデジタルフィルターにより実現する手法について説明する。最後に、第１の実施形態での処理の詳細を、フローチャートを用いて説明する。
【００４５】
１．２  第２の実施形態の手法
上述した手法により、機械機構の位置制御の精度を向上させつつ、機械機構の本来持つ機械的特性が現れる場合であっても衝突等の影響を抑止することが可能になる。しかし、この制御では柔構造物を見かけ上高剛性にするものであり、物体の表面をなぞる等の動作を行なうことは困難である。よって、そのような動作を行う場合には、さらにインピーダンス制御を組み合わせるとよい。
【００４６】
この場合、機械機構の剛性が力覚センサーに比べて低いことが問題となる。なぜなら、機械機構に対して加えられた外力ｆは、機械機構による変換（変調）を受け、力Ｆとして力覚センサーに伝えられる。一例としては、機械機構が柔構造物であれば、ｆによるエネルギーの一部が当該柔構造物の変形に用いられることで、力覚センサーに伝わる力Ｆは外力ｆに比べて小さくなるケース等が考えられる。
【００４７】
力覚センサーの出力値であるＦに関して、力覚センサー自身の変形等は考慮しなくてもよいことは上述したとおりである。つまり、機械機構から力覚センサーに伝えられた力は正確にセンサー情報に反映されると考えてよい。しかし、システムが実際に取得したいのは力Ｆではなく変換前の外力ｆである。なぜなら、インピーダンス制御はハンドが処理対象となるワークに与える力に基づいて行われるべきであり、その力は反力としてワークからハンドに伝わる力に等しく、図２の外力ｆに他ならない。つまり、力覚センサーのセンサー情報をそのまま用いたのでは、所望の力制御は行えないことになり好ましくない。
【００４８】
そこで本出願人は、力覚センサーからのセンサー情報に対して、機械機構での変換の逆変換に相当する補正処理を行う手法を提案する。この手法を用いることで、力覚センサーのセンサー情報から外力を正確に検知することが可能になり、外力に基づいたインピーダンス制御を適切に行うことができる。
【００４９】
以上の手法について、第２の実施形態において詳述する。具体的には、まずシステム構成例について述べ、次にセンサー情報を補正して外力を検知する手法について説明する。その後、インピーダンス制御の手法について述べて、最後に第２の実施形態での処理の詳細を、フローチャートを用いて説明する。
【００５０】
２．第１の実施形態
２．１  システム構成例
本実施形態のロボットの構成例を図３に示す。ロボットは、力覚センサー１０と、補正部４０と、目標値出力部６０と、制御部８０と、ロボット本体１００とを含む。なお本実施形態のロボットは図３の構成には限定されず、その一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００５１】
力覚センサー１０については上述したとおりである。
【００５２】
補正部４０は、力覚センサー１０からのセンサー情報に基づいて機械機構（狭義にはハンド１１０）の変位（変形）に対応する補正値を求め、目標値出力部６０に出力する。補正値を求める手法については後述する。なお、図２のような構成の場合、機械機構（ハンド１１０）やアーム１２０等の自重、姿勢等により力覚センサー１０において外力以外の力を検知してしまうことが考えられる。よって補正部４０は、センサー情報に対して自重姿勢補正等の前処理を行った情報を取得し、それに基づいて補正値を求めてもよい。
【００５３】
目標値出力部６０は、アーム１２０（狭義にはアーム１２０を駆動するマニピュレーター）のフィードバック制御の目標値を出力する。この目標値に基づいてアーム１２０のフィードバック制御が実現される。多関節のロボット本体１００を有するロボット等を例に取れば、この目標値は、ロボット本体１００の関節角情報などである。ロボット本体１００の関節角情報は、例えばアーム１２０のリンク機構における各関節の角度（ジョイント軸とジョイント軸のなす角度）を表す情報である。
【００５４】
目標値出力部６０は、軌道生成部６２とインバースキネマティクス処理部６４を含むことができる。軌道生成部６２は、機械機構の軌道情報を出力する。軌道情報は、ロボットのエンドエフェクター部（エンドポイント）の位置情報（ｘ，ｙ，ｚ）と、各座標軸回りでの回転角度情報（ｕ，ｖ，ｗ）を含むことができる。インバースキネマティクス処理部６４は、軌道生成部６２からの軌道情報に基づいてインバースキネマティクス処理を行い、例えばロボット本体１００の関節角情報を目標値として出力する。インバースキネマティクス処理は、関節を有するロボット本体１００の動きを計算する処理であり、ロボットのエンドエフェクター部の位置姿勢などから関節角情報等を逆運動学により計算する処理である。
【００５５】
制御部８０は、目標値出力部６０からの目標値に基づいて、アーム１２０のフィードバック制御を行う。具体的には、補正部４０からの補正値に基づく補正処理の結果出力された目標値に基づいて、アーム１２０のフィードバック制御を行う。例えば目標値と、ロボット本体１００からのフィードバック信号に基づいて、アーム１２０のフィードバック制御を行う。
【００５６】
ロボット本体１００は、ハンド１１０（機械機構）と、アーム１２０を含む。具体的には、図２に示したようにアーム１２０に力覚センサー１０が設けられ、力覚センサー１０の先にハンド１１０が設けられることが想定される。なお、ロボットは図３に不図示のモーター制御部を有してもよく、モーター制御部は例えばアーム１２０等の関節角を設定する。制御部８０は、ロボット本体１００のハンド１１０やアーム１２０等を制御することになるが、実際には関節角情報の値を目標値として取得し、当該目標値に基づいてモーター制御部を制御することになる。
【００５７】
図４（Ａ）に本実施形態のロボットの例を示す。このロボットは、制御装置３００（情報処理装置）とロボット本体３１０（図１のロボット本体１００）とを含む。制御装置３００はロボット本体３１０の制御処理を行う。具体的には、動作シーケンス情報（シナリオ情報）に基づいてロボット本体３１０を動作させる制御を行う。ロボット本体３１０は、アーム３２０及びハンド（把持部）３３０を有する。そして制御装置３００からの動作指示にしたがって動作する。例えば、図示しないパレットに載せられたワークを把持したり、移動するなどの動作を行う。また、図示しない撮像装置で取得された撮像画像情報に基づいて、ロボットの姿勢やワークの位置などの情報が検出され、検出された情報が制御装置３００に送られる。
【００５８】
本実施形態において制御を行なうシステム（補正部４０、目標値出力部６０、制御部８０等）は例えば図４（Ａ）の制御装置３００に設けられ、例えば制御装置３００のハードウェアーやプログラムによりロボット制御システムが実現される。そして本実施形態のロボットに含まれる制御システムによれば、制御装置３００などの制御ハードウェアーに対する性能要求を低減できると共に、ロボット本体３１０を高い応答性で動作させることが可能になる。なお図４（Ａ）は単腕型の例であるが、双腕型等の多腕型のロボットであってもよい。
【００５９】
また、本実施形態のロボットは図４（Ａ）に限定されず、図４（Ｂ）のような構成であってもよい。図４（Ｂ）に示したように、ロボットはロボット本体３１０（アーム３２０及びハンド３３０を有する）、及びロボット本体３１０を支えるベースユニット部を含み、当該ベースユニット部に制御装置３００が格納される。図４（Ｂ）のロボットでは、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、移動は人手で行われてもよいし、車輪を駆動するモーターを設け当該モーターを制御装置３００により制御することで行なってもよい。
【００６０】
つまり、本実施形態のロボットは、大きく分けるとロボット本体３１０（及び力覚センサー１０）と、制御装置３００（図３で示した補正部４０、目標値出力部６０、制御部８０等）の２つを含むことになるが、これらの空間的、機能的な関係性については自由な設定が可能である。例えば、図４（Ｂ）のようにロボット本体３１０と制御装置３００が一体として形成され、移動時にも一体として移動するものであってもよい。図４（Ｂ）の場合には、ロボット本体３１０と制御装置３００は近い位置に設けられるため制御信号等のやり取りが容易である。また、制御装置３００は、一体として形成されたロボット本体３１０以外の制御を行うことは考えにくいため、そのロボット本体３１０に特化した構成をとることができ、コスト削減や性能向上等が期待できる。
【００６１】
或いは、図４（Ａ）に示したように、ロボット本体３１０と制御装置３００が別体として設けられてもよい。この場合には、ロボット本体３１０と制御装置３００を離れた位置に設けることができる。溶接等、ロボットを用いた作業現場に人が近づくことが危険な状況も多く、遠隔制御を容易に実現できる構成には利点がある。また、一体形成されないため空間的な制約を受けにくく、後からロボット本体３１０（或いはそれに含まれる何らかのパーツ）を追加する等の拡張にも対応しやすい。
【００６２】
なお、ロボットという用語は広く解釈することが可能である。上述してきたようにロボット本体３１０と制御装置３００の両方を含むものとしてもよいし、ロボット本体３１０及びそれと一体形成された部分に限定してもよい。このような限定をした場合、ロボットという用語により表される部分は、図４（Ｂ）の例では上述したものと同様にロボット本体３１０及び制御装置３００を含むが、図４（Ａ）の例であればロボット本体３１０を指し制御装置３００を含まない。或いは、ロボットという用語により表される部分はロボット本体３１０を指すものであり、制御装置３００を含まないものとしてもよい。つまり、ロボット本体３１０をロボットと表現し、当該ロボットの他に補正部４０、制御部８０等に対応する構成要件を含むシステムとして形成された発明等についても、本発明の範囲に含まれるものと考えられる。
【００６３】
２．２  機械機構のモデル化
機械機構の特性をモデル化することで、力覚センサー１０でのセンサー情報に基づいて機械機構の変位を求める手法について説明する。
【００６４】
機械機構のモデル化の手法は種々考えられるが、本実施形態では図５に示したように、質量ｍの物体が粘性係数μのダンパーと、弾性係数ｋのバネによって力覚センサー１０に接続されている構造で近似する。このようにモデル化することで、図６に示したように、機械機構での変換は下式（２）で表されることになる。
【００６５】
【数２】
2013119133.tif 000004
【００６６】
ここで、ｘが機械機構の変位を表すものである。よって、上式（２）は運動方程式に他ならない。これについては、図５に示したように機械機構を、質量を持つ物体・ダンパー・バネからなる構造物と捉えた結果と考えることができる。或いは、機械機構の特性は、下式（３）のようにｘ及びｘの１〜Ｎ階微分項の線形結合により表現することができるが、下式（３）の２階微分項までを用いた近似式と捉えることもできる。
【００６７】
【数３】
2013119133.tif 000005
【００６８】
なお、図５は機械機構をモデル化するにあたっての近似のための概念図であり、実際にはこのようにダンパーやバネ等からなる構造とは限らない。つまり、上述したとおり上式（２）はあくまで機械機構の特性を近似した式であり、実際の特性とは異なる。これは上式（３）を用いた説明からもわかることである。
【００６９】
通常、このような近似をしたからといって、その後の制御において精度等の問題が生じることは考えにくい。しかし、近似での誤差が問題となるのであれば、図７に示したように実際の機械機構をダンパーとバネから構成してしまえばよい。機械機構の形状等を考えれば、この場合にも上式（２）は機械機構の特性を完全に反映しているとは言えないが、ダンパー及びバネから構成されない機械機構を用いた場合に比べれば近似による誤差を小さくすることが可能になる。
【００７０】
次に、力覚センサー１０に伝わる変換後の力Ｆとの関係を考える。ここで力覚センサー１０が固定されているものと仮定すれば、力Ｆは外力ｆから慣性項を引いたものに等しく、下式（４）により表される。
【００７１】
【数４】
2013119133.tif 000006
【００７２】
上式（２）及び（４）から下式（５）が導かれる。
【００７３】
【数５】
2013119133.tif 000007
【００７４】
上式（５）は、言い換えれば図５のＣ１で示した面における力の釣り合いを表したものである。外力ｆが図５のＣ２で示した物体にはたらいたとき、機械機構の挙動を考慮するのであれば、Ｃ２の物体による慣性の影響は無視できないため上式（２）のように慣性項を含めた関係式が取得される。しかし、Ｃ１で示した面での力の釣り合いを考える場合（つまり力覚センサー１０に伝わる力を考える場合）、Ｃ２の物体はＣ１の面と物理的に直接接続されていない以上、当該Ｃ２の物体による慣性は考慮しなくてもよく、それを表したものが上式（４）である。或いは、Ｃ１の面が受ける力は、物理的に接続されているダンパー及びバネから受けるものに限定されると捉えてもよく、そのように考えれば直接上式（５）を導くこともできる。
【００７５】
いずれにせよ、上式（５）から、Ｆとｘの関係が決定される。つまり、センサー情報Ｆを入力として、上式（５）の微分方程式を解くことで、変位に対応する情報ｘを求めることができる。
【００７６】
２．３  本実施形態における力制御
上式（５）から求められた変位ｘに基づいてロボット（アーム１２０）を制御する手法について、図８（Ａ）〜図８（Ｃ）を用いて説明する。図８（Ａ）のような本実施形態の機械機構（図８（Ａ）はモデル化した機械機構を表すものであってもよいし、実際の構造を表すものであってもよい）では、機械機構の剛性が低いため外力を受けることで図８（Ｂ）のように変形を起こす。
【００７７】
本実施形態では、図８（Ｂ）のようにｘだけ押し込まれたのであれば、その変位をキャンセルするようにロボット本体１００自体（或いはアーム１２０自体）をｘだけ前進させる制御を行う。このようにすることで、加えられた外力に対応する力でロボット本体１００が応答することになる。ロボット本体１００の制御が十分高速であれば、図８（Ｂ）のように変位が生じている時間は短くできるため、あたかもロボットの手先（機械機構、ハンド１１０）は一定の位置にとどまり続ける制御ができる。つまり「変位をキャンセルする」とは、外力が加えられた位置（たとえばロボットの手先）が、あたかも一定の位置にとどまり続けているかのごとく見えるように制御することである。たとえば、ハンド１１０に弾性部材がある場合、そのハンド１１０に外力が加えられたり加えられていた外力が変化したりすれば、そのハンド１１０の外力が加えられた位置は移動する（変位する）はずであるが、このハンド１１０の外力が加えられた位置をあたかも移動しないかのごとく見えるように制御することである。
【００７８】
外力が加えられたとしても、手先位置が変動しないのであるから、これは見かけ上ロボット（或いはそのハンド１１０）を高剛性としていることに他ならない。
【００７９】
ロボットが図３に示したように、補正部４０と、目標値出力部６０と、制御部８０を含むのであれば、補正部４０において変位ｘに相当する補正値を求め、目標値出力部６０で補正値に基づいて目標値を補正した上で、制御部８０で補正後の目標値に基づく制御を行う構成を取ることになる。
【００８０】
以上では説明を簡略化するために、補正値としてｘという１つの値を用いて説明したが、３次元的な挙動が可能なロボットを用いるのであれば、ｘは３次元ベクトル等で表現されることになり、ロボット本体１００をｘの逆ベクトルに相当する距離及び方向に移動させる制御を行うことになる。
【００８１】
また、上式（５）から求められるｘは機械機構をモデル化した場合の仮想的な変位を表すものであって、実際の手先位置そのものであるとは限らない。しかし、ｘと実際の手先位置とは、多くの場合単純な関係にあり、ｘから実際の手先位置への変換は容易であると考えられる。この場合、補正部４０では上式（５）からｘを求めた上で、さらに実際の手先位置への変換処理を行い、その結果を補正値として出力することになる。なお、ｘから実際の手先位置への変換については、機械機構の構造に依存するものであり、一般化等は困難であるため詳細な説明については省略する。
【００８２】
２．４  デジタルフィルター化
上述したように、Ｆから変位ｘを求めるためには、上式（５）の線形常微分方程式を解くことになる。従来、線形常微分方程式の解を求めるにはＮｅｗｔｏｎ法やＲｕｎｇｅ−Ｋｕｔｔａ法等が用いられていた。しかし、これらの手法はハードウェアー化に適さず、安定性の判定も難しい。そこで本出願人は、線形常微分方程式を解く手法としてデジタルフィルターを用いる。
【００８３】
ここで、常微分方程式の解を求めるというステップを、入力値（力覚センサーのセンサー情報）の入力に対して解（上式（５）で言えば変位ｘ）を出力するフィルターであると捉えるならば、上式（５）の形から、１極のアナログフィルターとして考えることができる。
【００８４】
つまり、常微分方程式の解はアナログフィルターの出力として求めることができるのであるから、当該アナログフィルターをデジタルフィルター化することで、常微分方程式をデジタルフィルターにより解くことが可能になる。
【００８５】
アナログフィルターのデジタルフィルター化の手法は種々知られているが、例えばImpulse Invariance法を用いればよい。これは、アナログフィルターのインパルスレスポンスを離散時間Ｔでサンプルした値と同じインパルスレスポンスを与えるデジタルフィルターを考える手法である。Impulse Invariance法については公知の手法であるため詳細な説明は省略する。
【００８６】
以上の結果、常微分方程式の解はデジタルフィルターの出力として求めることが可能になる。上式（５）であれば、図９に示したように１極のデジタルフィルターとなる。図９において、ｄは１サンプル分の遅延であり、αとβはフィルターの係数である。図９のフィルターは下式（６）で表される。
【００８７】
ｘｎ＝αＦｎ＋βｘｎ−１  ・・・・・（６）
デジタルフィルターによる処理であれば、ハードウェアー化は容易であるし、安定性の判定も容易である。デジタルフィルターの安定性は、デジタルフィルターの極が単位円の内側にあるか否かにより容易に判定可能だからである。
【００８８】
なお、α、βの各フィルター係数は、機械機構の特性により決定され、この場合には質量項ｍ、粘性項μ及び弾性項ｋ（場合によっては、以上のものに加えてデジタルフィルターの駆動周波数Ｔを用いてもよい）により決定される。機械機構（ハンド１１０）の特性は設計により既知であるため、フィルター係数は事前に求めておくことができる。また、複数のハンド１１０を付け替えることを考えた場合にも、それぞれのハンド特性に対応するフィルター係数を求めておけば、当該フィルター係数を切り替えることで容易に対応が可能であるため、Ｒｕｎｇｅ−Ｋｕｔｔａ法等の従来手法に比べて優位である。
【００８９】
２．５  処理の詳細
図１０のフローチャートを用いて、補正部４０での処理について説明する。この処理が開始されると、まず力覚センサー１０からのセンサー情報の取得待ちを行う（Ｓ１０１）。待ち時間は力覚センサー１０のセンサー情報出力レートに応じて決まるものである。なお、ここでは力覚センサー１０のセンサー情報の出力１回ごとに、補正部４０での補正処理が行われるものとする。ただし、消費電力の軽減等を図る場合等には、複数回の出力ごとに処理を行なってもよい。
【００９０】
入力待ちの後に、センサー情報を取得する（Ｓ１０２）。センサー情報は上述したように力Ｆ（機械機構による変調後の外力）に相当する。そして、取得した力Ｆに基づいて補正処理を行う（Ｓ１０３）。具体的には、変位に相当する情報ｘの過去の値（ｘｎ−１）を更新し、更新後のｘｎ−１とＦｎとから現在のｘの値（ｘｎ）を求める。その際用いられるα、βはデジタルフィルターのフィルター係数であり、機械機構をモデル化した際の特性であるｍ，μ，ｋ等から決定される。その後、求めたｘｎを補正値として出力し（Ｓ１０４）、処理を終了するかの判定を行う（Ｓ１０５）。Ｓ１０５でＮｏの場合はＳ１０１に戻り処理を継続する。Ｓ１０５でＹｅｓの場合は処理を終了する。
【００９１】
出力された補正値ｘｎは目標値の補正処理に用いられる。なお、目標値の設定処理や、補正後の目標値に基づくロボット制御等については、公知の技術であるためフローチャートを用いた説明は省略する。
【００９２】
以上の本実施形態では、ロボットは図３に示したように、アーム１２０と、アーム１２０に設けられた力覚センサー１０と、力覚センサー１０を介してアーム１２０に設けられ弾性部材を有する機械機構（狭義にはハンド１１０）と、機械機構の位置及び姿勢の目標値の補正値を求める補正部４０と、補正値に基づいて目標値を補正し、補正後の目標値に基づいてアーム１２０を制御する制御部８０を含む。この場合に、力覚センサー１０は検出した力に対応するセンサー情報を出力し、補正部４０は力覚センサー１０が出力したセンサー情報を用いて、力に基づく弾性部材の変位に対応する補正値を求め、制御部８０は補正後の目標値に基づいて、弾性部材の変位をキャンセルするアーム１２０の制御を行う。
【００９３】
ここで、機械機構の位置及び姿勢の目標値とは、ロボット本体１００の制御における目標値であり、外乱や駆動時の誤差が全くない等の理想的な状況においては、機械機構は目標値どおりの位置及び姿勢を取ることになる。なお、機械機構の位置及び姿勢の目標値は、例えば空間座標での３軸の座標値（ｘｙｚ）と、各軸周りの回転（ｕｖｗ）であるが、これに限定されず、機械機構に対してｘｙｚｕｖｗに対応する位置及び姿勢を取らせる関節角情報であってもよい。本実施形態の手法では、目標値に対して補正値により補正処理を行なって補正後の目標値を求め、当該補正後の目標値に基づいてロボット本体１００（狭義にはアーム１２０）のフィードバック制御に用いられる値が決定される。フィードバック制御に用いられる値は、補正後の目標値をそのまま用いてもよいし、何らかの処理を行った結果を用いてもよい。フィードバック制御に用いられる値は、ロボット本体１００の関節角情報が用いられることが一般的ではあるが、ハンドの位置（ｘｙｚ）や各軸周りでの角度（ｕｖｗ）等であることを妨げない。なお、図３に示したように、目標値出力部６０が、軌道生成部６２と、インバースキネマティクス処理部６４を含むのであれば、軌道生成部６２で位置情報（ｘｙｚｕｖｗ）として目標軌道を設定し、当該目標軌道に対してインバースキネマティクス処理部６４でインバースキネマティクス処理を行うことで関節角情報に変換することが考えられる。
【００９４】
補正値は弾性部材の変位に相当するため、位置に相当する情報であることが想定されるが、所定の処理（具体的にはインバースキネマティクス処理）を施した結果である関節角情報であってもよい。一般的には、目標軌道（位置及び姿勢の目標値）と、位置情報である補正値とを用いて補正処理を行い、その結果に対してインバースキネマティクス処理を施すことが想定される。このようにすれば、インバースキネマティクス処理が１回で済むためである。しかし、例えば目標値の設定処理と、補正値を求める処理とで、処理タイミングや処理レートが異なる場合等では、補正部４０の側にもインバースキネマティクス処理部を設け、目標軌道、及び弾性部材の変位に対してそれぞれインバースキネマティクス処理を行い、得られた関節角情報同士で補正処理を行なってもよい。
【００９５】
つまり、「目標値」、「補正値」、「補正後の目標値」、及び「フィードバック制御に用いられる値」は、それぞれ位置に関する情報であってもよいし、関節角に関する情報であってもよい。一例は上述したように、位置情報として設定した目標値に対して、変位（位置情報）である補正値による補正処理を行い、位置情報として補正後の目標値を求める。そして、補正後の目標値に対してインバースキネマティクス処理を行なって関節角情報を求め、当該関節角情報をフィードバック制御に用いる値とすることが考えられる。
【００９６】
また、機械機構の弾性部材とは、図７に示したように実際にバネ等の機械的な構造を有するものであってもよいし、そのような機械的構造を持たないが全体として剛性が低いものであってもよい。
【００９７】
これにより、弾性部材を有する（具体的には剛性の低い）機械機構が設けられたロボットにおいても、当該機械機構をあたかも高剛性であるかのように制御することが可能になり、手先位置制御の精度向上等が可能になる。さらに、機械機構が本来持つ特性が低剛性である（弾性部材を有し、例えば柔構造物である）ため、力制御が停止して、本来の特性が現れてしまった場合にも、衝突等による影響を抑止することが可能になる。具体的には図８（Ａ）〜図８（Ｃ）を用いて説明したように、外力によりｘだけ機械機構が変形した場合には、当該ｘに対応する分だけロボット１００を移動させることで、ロボット１００の手先位置を一定に保つ（厳密には目標値に対応する位置に沿うように制御する）ことになる。
【００９８】
また、機械機構はロボットのエンドエフェクター部（狭義にはハンド１１０）であってもよい。この場合、補正部４０は力覚センサー１０が出力したセンサー情報を用いて、外力に基づくエンドエフェクター部の変位に対応する補正値を求める。そして、制御部８０は補正後の目標値に基づいて、エンドエフェクター部の変位をキャンセルする制御を行う。
【００９９】
これにより、機械機構がロボットのエンドエフェクター部である場合にも、本実施形態の手法を適用することが可能になる。図４のような一般的な産業用ロボット等を考えた場合、作業対象（例えばワーク）との接触を伴う部位は、専らハンド３３０等のエンドエフェクター部であることが想定される。よってエンドエフェクター部を、弾性部材を有する構造とすること、及びそれに伴う手先位置精度の劣化を補うことは非常に重要であるといえる。
【０１００】
また、補正部４０は第２のデジタルフィルター処理により、補正値を求める処理を行ってもよい。
【０１０１】
ここで、第２のデジタルフィルター処理とは、後述する第２の実施形態での力制御部のデジタルフィルター処理との区別のために「第２の」としているに過ぎず、本実施形態において述べたデジタルフィルター処理のことを指す。
【０１０２】
これにより、本実施形態において補正値を求める処理をデジタルフィルターにより実現することが可能になる。補正値は上式（５）の微分方程式の解として求められるが、Ｒｕｎｇｅ−Ｋｕｔｔａ法等を用いたのではハードウェアー化や安定性の判定等が困難であったのに対し、デジタルフィルターを用いることでこのような問題に対処が可能となる。具体的には、機械機構の特性（例えばｍ，μ，ｋ等）からフィルター係数を求め、求めたフィルター係数を用いてデジタルフィルターを用いた処理を行えばよい。機械機構の特性は設計段階で決まるものであるから、フィルター係数の事前計算が可能である。また、機械機構が付け替え可能な場合であっても、複数のフィルター係数の組を記憶しておき、適切なものを用いることで容易に対処可能となる。
【０１０３】
また、第ｋ（ｋは２以上の整数）のタイミングにおける、センサー情報の値をＦｋとし、補正値を表す第２のデジタルフィルター処理の出力値をｘｋとする。さらに、第ｋ−１のタイミングにおける前記第２のデジタルフィルター処理の出力値をｘｋ−１とし、第２のデジタルフィルター処理の係数パラメーターをα及びβとする。この場合に、補正部４０は第ｋのタイミングにおける補正値ｘｋをｘｋ＝αＦｋ＋βｘｋ−１により求めてもよい。
【０１０４】
これにより、図９に示したデジタルフィルターにより補正値を求めることが可能になる。上述したように機械機構をモデル化することで、センサー情報に対応するＦと、変位ｘとの関係は上式（５）により表される。ここからデジタルフィルターを導くには、例えば上式（５）をアナログフィルターとして捉えた上で、Impulse Invariance法等によりデジタルフィルター化すればよい。デジタルフィルター化した際の具体的な式は上式（６）のようになる。
【０１０５】
また、ロボットは図３に示したように、機械機構の位置及び姿勢の目標値を出力する目標値出力部６０を含んでもよい。
【０１０６】
これにより、目標値を設定することが可能となる。目標値の詳細及び目標値出力部６０の構成例については上述したとおりである。なお、目標値出力部６０が軌道生成部６２を含む場合に、目標軌道の設定に関しては種々の手法が適用可能である。例えば、アーム１２０等の移動回数・移動距離を少なくするアルゴリズムや、衝突を回避するアルゴリズム、把持物体が落下した場合の影響を抑止するアルゴリズム等に基づいて目標軌道が設定されてもよい。なお、本実施形態の機械機構は弾性部材を有するため、高剛性の機械機構を用いる場合に比べて衝突回避のためのマージン等を少なく設定すること等ができる。よって、本実施形態の構成・手法により衝突回避アルゴリズムにおける処理を簡略化すること等も可能になる場合がありえる。
【０１０７】
３．第２の実施形態
３．１  システム構成例
本実施形態のロボットの構成例を図１１に示す。本実施形態のロボットは、力覚センサー１０と、力制御部２０と、補正部４０と、補正値合成部５０と、目標値出力部６０と、制御部８０と、ロボット本体１００を含む。なお本実施形態のロボットは図１１の構成には限定されず、その一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【０１０８】
力覚センサー１０、補正部４０、制御部８０及びロボット本体１００については、第１の実施形態と同様であるため詳細な説明は省略する。また、目標値出力部６０についても、目標値の補正処理のために取得する補正値が異なるのみであり、他の構成等については同様であるため詳細な説明は省略する。
【０１０９】
力制御部２０は、力覚センサー１０からのセンサー情報に基づいて力制御（力覚制御）を行って、目標値の第２の補正値（補正部４０での補正値とは異なる）を出力する。更に具体的には、力制御部２０は、力覚センサー１０からのセンサー情報（力情報、モーメント情報）に基づいてインピーダンス制御（或いはコンプライアンス制御）を行う。
【０１１０】
力制御部２０は、インピーダンス処理部２２と、制御パラメーター記憶部２４と、外力検知部２６を含むことができる。インピーダンス処理部２２は、力制御としてインピーダンス制御を行う。インピーダンス制御の具体的な手法については後述する。制御パラメーター記憶部２４は、力制御（インピーダンス制御）において用いられる制御パラメーターを記憶する。
【０１１１】
外力検知部２６は、センサー情報（取得後に自重姿勢補正等の前処理を行った情報も含む）に対して補正処理を行う。外力検知部２６では、機械機構が受けた外力ｆが、当該機械機構により力Ｆに変換され力覚センサー１０に伝えられたことを想定し、機械機構での変換の逆変換に相当する補正処理を行い、外力ｆを求める。機械機構自身及び機械機構での変換についてはモデル化を行い、それに基づいて逆変換を求めることになる。詳細については後述する。
【０１１２】
補正値合成部５０は、補正部４０で求められた補正値（第１の補正値）と、力制御部で求められた第２の補正値とを合成し、合成後の補正値を目標値出力部６０に出力する。
【０１１３】
３．２  外力検知手法
外力検知部２６での外力検知手法について説明する。ここでは第１の実施形態で上述したとおり、機械機構による変調を図６のようにモデル化し、モデル化により導かれた上式（２）及び（５）を用いる。
【０１１４】
ここで求めたいのは、センサー情報に対応するＦから外力ｆを求める手法であるが、ｆとＦの関係は上式（２）及び（５）により記述することができる。具体的には、機械機構での変換とは、ｆを入力とし、上式（２）、（５）に基づいてＦを出力する系と捉えることができる。よって、逆変換とは、Ｆを入力とし、上式（５）、（２）に基づいてｆを求める系と捉えればよい。具体的には、センサー情報としてＦを取得し、上式（５）の微分方程式を解いてｘを求める。そして、求めたｘを上式（２）に代入しｆを求めればよい。
【０１１５】
なお、第１の実施形態において上式（５）の線形常微分方程式をデジタルフィルター化したように、Ｆからｆを求める処理についてもデジタルフィルター化が可能である。まず、上式（２）の線形常微分方程式（運動方程式）は図１２に示したように２極のデジタルフィルターとなる。図１２において、Ｃ０，Ｃ１，Ｃ２はフィルターの係数であり、これを式に表したものが下式（７）である。
【０１１６】
ｘｎ＝Ｃ０ｆｎ＋Ｃ１ｘｎ−１＋Ｃ２ｘｎ−２  ・・・・・（７）
なお、Ｃ０、Ｃ１、Ｃ２の各フィルター係数は、機械機構の特性により決定され、この場合には質量項ｍ、粘性項μ及び弾性項ｋ（場合によっては、以上のものに加えてデジタルフィルターの駆動周波数Ｔを用いてもよい）により決定される。フィルター係数を事前に求めておくことができる点、複数のハンド１１０を付け替えることを考えた場合にもフィルター係数を切り替えることで容易に対応が可能である点についても第１の実施形態と同様である。
【０１１７】
なお、上式（６）、（７）を変形することにより下式（８）にまとめることができる。
【０１１８】
Ｃ０ｆｎ＝αＦｎ＋βｘｎ−１−（Ｃ１ｘｎ−１＋Ｃ２ｘｎ−２）  ・・・・・（８）
上式（８）を図示したものが図１２である。図１２のデジタルフィルターを用いることで、力覚センサー１０で検知した力Ｆを入力とし、機械機構の受けた外力ｆを出力とする補正処理（逆変換）を実現することができる。
【０１１９】
３．３  インピーダンス制御の具体例
次に、インピーダンス制御の具体例について説明する。ここでのインピーダンス制御は、外力検知部２６で求められた外力ｆに基づいて、インピーダンス処理部２２において行われる。
【０１２０】
図１４（Ａ）は、ロボットの左のアームＡＬ、右のアームＡＲで物体ＯＢを挟んで移動している様子を示している。例えば、位置制御だけでは、物体を落としたり、破壊してしまうおそれがある、力制御によれば、柔軟な物体や脆い物体を、図１４（Ａ）のように両側から適切な力で挟んで移動させることが可能になる。
【０１２１】
また、力制御によれば、図１４（Ｂ）に示すように、不確実性のある物体の表面ＳＦをアームＡＭ等でなぞることが可能になる。このような制御は位置制御だけでは実現不能である。また、力制御によれば、図１４（Ｃ）に示すように、粗い位置決めの後に、探って位置合わせをして、物体ＯＢを穴部ＨＬにはめ込むことも可能になる。
【０１２２】
しかしながら、バネなどの実際の機械部品による力制御では、用途が限られるという問題がある。また、このような機械部品による力制御では、特性の動的な切り替えが困難である。
【０１２３】
一方、モーターのトルクを制御するトルク制御は簡単であるが、位置精度が悪くなるという問題がある。また、異常時に衝突などの問題が生じる。例えば図１４（Ａ）において、異常事態が起きて、物体ＯＢを落としてしまった場合に、トルク制御では、釣合うべき反力が無くなるため、左右のアームＡＬ、ＡＲが衝突してしまうなどの問題が生じる。
【０１２４】
これに対して、インピーダンス制御（コンプライアンス制御）は、制御が複雑にはなるが、汎用性や安全性が高いという利点がある。
【０１２５】
図１５（Ａ）、図１５（Ｂ）は、インピーダンス制御の１つであるコンプライアンス制御を説明する図である。コンプライアンスはバネ定数の逆数を意味し、バネ定数が硬さを表すのに対して、コンプライアンスは柔らかさを意味する。ロボットと環境との間に相互作用が働くときに、機械的柔軟性であるコンプライアンスを与える制御をコンプライアンス制御と呼ぶ。
【０１２６】
例えば図１５（Ａ）では、ロボットのアームＡＭには力覚センサーＳＥが取り付けられている。このロボットのアームＡＭは、力覚センサーＳＥで得られたセンサー情報（力・トルク情報）に応じて姿勢が変わるようにプログラムされている。具体的には、図１５（Ａ）のＡ１に示す仮想的なバネが、あたかもアームＡＭの先端に取り付けられているかのようにロボットを制御する。
【０１２７】
例えばＡ１に示すバネのバネ定数が１００ｋｇ／ｍであったとする。これを図１５（Ｂ）のＡ２に示すように５ｋｇの力で押せば、Ａ３に示すようにバネは５ｃｍだけ縮む。逆に言えば、５ｃｍだけ縮んでいれば、５ｋｇの力で押されているといえる。つまり、力情報と位置情報とが対応づけられている。
【０１２８】
コンプライアンス制御では、このＡ１に示す仮想的なバネがアームＡＭの先端に取り付けられているかのような制御が行われる。具体的には、ロボットは、力覚センサーＳＥの入力に応答して動作し、Ａ２に示す５ｋｇの加重に対して、Ａ３に示すように５ｃｍだけ後退するように制御され、力情報に対応して位置情報が変化するように制御される。
【０１２９】
このような単純なコンプライアンス制御では時間項を含まないが、時間項を含み、その２次の項までを考慮した制御が、インピーダンス制御である。具体的には、２次の項は質量項であり、１次の項は粘性項であり、インピーダンス制御のモデルは下式（９）に示すような運動方程式で表すことができる。
【０１３０】
【数６】
2013119133.tif 000008
【０１３１】
上式（９）において、ｍＩは質量、μＩは粘性係数、ｋＩは弾性係数、ｆは力（外力検知部２６での逆変換処理により取得された外力）、ｕは目標位置からの変位である。またｕの１次微分、２次微分は、各々、速度、加速度に対応する。インピーダンス制御では、上式（９）の特性をアームの先端であるエンドエフェクター部に持たせるための制御系を構成する。即ち上式（９）で表される仮想質量、仮想粘性係数、仮想弾性係数を、あたかもアームの先端が持っているかのように制御を行う。
【０１３２】
このように、インピーダンス制御は、アームの先端の質量に粘性要素と弾性要素が各方向に接続されるモデルにおいて、目的として設定された粘性係数と弾性係数で物体に接触するようにする制御である。
【０１３３】
例えば図１６（Ａ）に示すように、ロボットのアームＡＬ、ＡＲで物体ＯＢをつかんで、軌道ＴＲに沿って移動させる制御を考える。この場合に、軌道ＴＲＬは、物体ＯＢの左側の内側に設定された点ＰＬが通る軌道であり、インピーダンス制御を想定して決定された仮想的な左手の軌道である。また軌道ＴＲＲは、物体ＯＢの右側の内側に設定された点ＰＲが通る軌道であり、インピーダンス制御を想定して決定された仮想的な右手の軌道である。この場合に、アームＡＬは、アームＡＬの先端と点ＰＬの距離差に応じた力が発生するように制御される。またアームＡＲは、アームＡＲの先端と点ＰＲの距離差に応じた力が発生するように制御される。このようにすれば、物体ＯＢを柔らかくつかみながら移動させるインピーダンス制御を実現できる。そして、インピーダンス制御では、図１６（Ａ）のＢ１に示すように物体ＯＢが落下する事態が生じたとしても、アームＡＬ、ＡＲは、Ｂ２、Ｂ３に示すように、その先端が点ＰＬ、ＰＲの位置で止まるように制御される。即ち、仮想的な軌道が衝突軌道でなければ、アームＡＬ、ＡＲが衝突するのを防止できる。
【０１３４】
また図１６（Ｂ）のように、物体の表面ＳＦをなぞるように制御する場合にも、インピーダンス制御では、アームＡＭの先端に対して、仮想的な軌道ＴＲＶＡと先端との距離差ＤＦに応じた力が働くように制御される。従って、アームＡＭを、力を加えながら表面ＳＦをなぞるような制御が可能になる。
【０１３５】
以上のインピーダンス制御を行うことで、図１７に示したように、あたかも質量ｍＩ、粘性μＩ、弾性ｋＩを持つかのようにロボット１００を制御することができる。本来、ハンド１１０（機械機構）は剛性が低いため、ハンド１１０の現実の特性（ｍ、μ、ｋ）を無視できず、ロボット１００全体としては、制御により見かけ上取得した特性（ｍＩ、μＩ、ｋＩ）と、機械機構の現実の特性（ｍ、μ、ｋ）とを合成した特性が現れるように思える。
【０１３６】
しかし第１の実施形態で述べたとおり、補正部４０での処理によりハンド１１０はあたかも高剛性であるように振る舞うため、機械機構の特性（ｍ、μ、ｋ）については考慮する必要がない。よって、制御における目標特性（ｍＩ、μＩ、ｋＩ）を所望の特性とすればよい。
【０１３７】
なお、上式（９）についても補正部４０での補正処理や、外力検知部２６での逆変換と同様にデジタルフィルター化することができる。
【０１３８】
３．４  処理の詳細
本実施形態の処理について図１８、図１９のフローチャートを用いて説明する。図１８が外力検知処理を説明するフローチャートである。この処理が開始されると、まず力覚センサー１０からのセンサー情報の取得待ちを行う（Ｓ２０１）。待ち時間は力覚センサー１０のセンサー情報出力レートに応じて決まるものである。なお、ここでは力覚センサー１０のセンサー情報の出力１回ごとに、外力検知部２６での取得処理及び補正処理が行われるものとする。ただし、消費電力の軽減等を図る場合等には、複数回の出力ごとに処理を行なってもよい。
【０１３９】
入力待ちの後に、センサー情報を取得する（Ｓ２０２）。センサー情報は上述したように力Ｆ（機械機構による変調後の外力）に相当する。そして、取得した力Ｆに基づいて補正処理を行う（Ｓ２０３）。ここで、ｘは中間パラメーターであり、物理的には機械機構の変形（変位）に相当するものである。具体的には、ｘの過去の値（ｘｎ−１とｘｎ−２）を更新し、更新後のｘｎ−１とＦｎとから現在のｘの値（ｘｎ）を求める。そして、求めたｘｎと、更新したｘｎ−１、ｘｎ−２とからｆｎを求めることになる。
【０１４０】
その後、求めたｆｎを補正済みの外力として出力し（Ｓ２０４）、処理を終了するかの判定を行う（Ｓ２０５）。Ｓ２０５でＮｏの場合はＳ２０１に戻り処理を継続する。Ｓ２０５でＹｅｓの場合は処理を終了する。
【０１４１】
図１９はインピーダンス処理部２２でのインピーダンス制御を説明するフローチャートである。この処理が開始されると、まず外力検知部２６からの外力値ｆｎの出力のタイミング待ちを行った上で、外力ｆｎを取得する（Ｓ３０１，３０２）。そして、取得したｆｎに基づいて線形常微分方程式（運動方程式）の解を求める。運動方程式は、２階の線形常微分方程式であるため、図１２に示したものと同様に２極のデジタルフィルターで処理することができる。具体的には、第２の補正値に対応する出力値をｙとしたときに、ｙの過去の値（ｙｎ−１とｙｎ−２）を更新し、更新後のｙｎ−１及びｙｎ−２とｆｎとから現在のｙの値（ｙｎ）を求める（Ｓ３０３）。この際、インピーダンス制御の目標特性（ｍＩ、μＩ、ｋＩ）等から決まるデジタルフィルター係数Ｃ０’，Ｃ１’，Ｃ２’を用いる。
【０１４２】
その後、求めたｙｎを第２の補正値として出力し（Ｓ３０４）、処理を終了するかの判定を行う（Ｓ３０５）。Ｓ３０５でＮｏの場合はＳ３０１に戻り処理を継続する。Ｓ３０５でＹｅｓの場合は処理を終了する。
【０１４３】
図１８及び図１９の処理が行われた後に、補正値合成部５０において補正値ｘｎ（ｙｎに対応するタイミングにおいて、図１０の処理により求められたもの）と、第２の補正値ｙｎを合成し、合成後の補正値を目標値出力部６０に出力する。なお、目標値の設定処理や、補正後の目標値に基づくロボット制御等については、公知の技術であるためフローチャートを用いた説明は省略する。
【０１４４】
以上の本実施形態では、ロボットは図１１に示したように、力覚センサー１０が出力したセンサー情報に基づいて、機械機構の位置及び姿勢の目標値の第２の補正値を出力する力制御部２０を含む。そして制御部８０は、補正値（補正部４０で求めたもの）、及び力制御部２０で求められた第２の補正値に基づいて目標値を補正し、補正後の目標値に基づいてアーム１２０を制御する。
【０１４５】
ここで、第２の補正値とは、ロボットの力制御に用いられるものであり、目標値の補正処理に用いられること等は補正部４０で求められる補正値と同様である。また、第２の補正値が位置情報であってもよいし、関節角情報であってもよい点も同様である。ただし、補正部４０の補正値は、機械機構の特性（μ，ｋ）に基づいて上式（５）から求められるのに対し、第２の補正値はロボット１００に見かけ上持たせたい目標特性（例えばｍＩ、μＩ、ｋＩ）に基づいて上式（９）から求められる点は異なる。
【０１４６】
これにより、第１の実施形態の手法に加えて他の力制御部（例えばインピーダンス制御）を行なうことが可能になる。第１の実施形態の手法も力覚センサー１０からのセンサー情報に基づく制御ではあるが、あくまで柔構造物を固く見せるためのものであり、力制御が求められる典型的な状況（物体の表面をなぞる等）への対応は考慮されていない。よって、インピーダンス制御等を組み合わせることでより柔軟な制御が可能となる。第１の実施形態の手法も、本実施形態のインピーダンス制御も、目標値に対する補正値を出力するという点で共通であるため、これらの組み合わせは容易に実現できる。例えば、図１１に示したように補正値合成部５０を設け、それぞれから求められた補正値を合成し、合成後の値を目標値出力部６０に出力すればよい。
【０１４７】
また、力制御部２０は図１１に示したように、機械機構が外力ｆを変換して力Ｆとして力覚センサー１０に伝達する場合に、センサー情報に対して機械機構での変換の逆変換を行なう外力検知部２６を含んでもよい。そして力制御部２０は、外力検知部２６からの出力信号に基づいて第２の補正値を求める。
【０１４８】
これにより、力覚センサー１０で検知した信号から外力ｆを正確に求めることが可能になる。本実施形態の機械機構は弾性部材を有し剛性が低いため、当該機械機構による外力ｆへの変換（変調）が無視できない。図２に示したような構成であれば、機械機構が外力ｆを受けたとしても、力覚センサー１０が受ける力は変調によりＦになってしまうはずである。しかし、インピーダンス制御に必要なのは機械機構（手先等のエンドエフェクター部）にはたらく力であるから、Ｆではなくｆである。よって、力制御部２０ではセンサー情報Ｆから外力ｆを求める処理を行うことが望ましく、具体的には外力検知部２６において機械機構での変換の逆変換を行なうことになる。なお、この場合でも機械機構をモデル化すると処理が容易となり、モデル化手法は第１の実施形態と同様のものを用いることができる。よって上式（２）、（４）、（５）等は外力検知部２６での処理でも共通であり、具体的には上式（５）と上式（２）により、Ｆからｆを求めることができる。
【０１４９】
また、力制御部２０はデジタルフィルター処理により、逆変換、及び第２の補正値を求める処理を行ってもよい。
【０１５０】
これにより、逆変換処理（外力検知部２６での処理）と、第２の補正値を求める処理（インピーダンス処理部２２での処理）をデジタルフィルター化することが可能になる。逆変換については上述したとおり上式（２）及び（５）を解く処理であり、共に線形常微分方程式であるため、補正部４０での処理と同様にデジタルフィルター化できる。また、第２の補正値は上式（９）の線形常微分方程式の解ｕとして求められるのであるから、同様にデジタルフィルター化が可能である。デジタルフィルター化する利点は、上述したようにハードウェアー化や安定性の判定等を容易にする点にある。
【０１５１】
また、外力検知部２６は、上式（６）に示したように、第ｎ（ｎは３以上の整数）のタイミングにおけるセンサー情報の値をＦｎ、第ｎ−１のタイミングにおける中間パラメーターをｘｎ−１とし、デジタルフィルター処理の係数パラメーターをα及びβとした場合に、ｘｎ＝αＦｎ＋βｘｎ−１により、第ｎのタイミングにおける中間パラメーターｘｎを求めてもよい。そして、上式（７）に示したように、求められたｘｎ、第ｎ−１のタイミングで求められた中間パラメーターｘｎ−１及び第ｎ−２のタイミングで求められた中間パラメーターｘｎ−２と、デジタルフィルター処理の係数パラメーターＣ０，Ｃ１，Ｃ２から、ｆｎ＝｛ｘｎ−（Ｃ１ｘｎ−１＋Ｃ２ｘｎ−２）｝／Ｃ０により、第ｎのタイミングにおける補正処理後のセンサー情報（外力）ｆｎを求める。
【０１５２】
ここで、中間パラメーターｘは機械機構の弾性部材の変位に相当するものである。よって、外力検知部２６に対応するデジタルフィルター処理の途中までは、補正部４０に対応するデジタルフィルター処理と同様のものになる。そのため、場合によっては補正部４０に対応するデジタルフィルターと、外力検知部２６に対応するデジタルフィルターを共通化する構成としてもよい。
【０１５３】
これにより、上式（６）、（７）に基づいてＦから外力ｆを求めることが可能になる。この処理をデジタルフィルター化したものが図１３である。外力ｆを正確に求めることで、その後のインピーダンス処理等を適切に行うことができる。
【０１５４】
以上、本発明を適用した２つの実施の形態１〜２およびその変形例について説明したが、本発明は、各実施の形態１〜２やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施の形態１〜２や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施の形態１〜２や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。
【符号の説明】
【０１５５】
１０  力覚センサー、２０  力制御部、２２  インピーダンス処理部、
２４  制御パラメーター記憶部、２６  外力検知部、４０  補正部、
５０  補正値合成部、６０  目標値出力部、６２  軌道生成部、
６４  インバースキネマティクス処理部、８０  制御部、１００  ロボット本体、
１１０  ハンド、１２０  アーム、３００  制御装置、３１０  ロボット本体、
３２０  アーム、３３０  ハンド
【図１】
2013119133.tif 000009
【図２】
2013119133.tif 000010
【図３】
2013119133.tif 000011
【図４】
2013119133.tif 000012
【図５】
2013119133.tif 000013
【図６】
2013119133.tif 000014
【図７】
2013119133.tif 000015
【図８】
2013119133.tif 000016
【図９】
2013119133.tif 000017
【図１０】
2013119133.tif 000018
【図１１】
2013119133.tif 000019
【図１２】
2013119133.tif 000020
【図１３】
2013119133.tif 000021
【図１４】
2013119133.tif 000022
【図１５】
2013119133.tif 000023
【図１６】
2013119133.tif 000024
【図１７】
2013119133.tif 000025
【図１８】
2013119133.tif 000026
【図１９】
2013119133.tif 000027