(57)【要約】【課題】力覚センサで検出できる閾値を大きく設定した場合であっても、小さな外力でロボットを好適に制御できるようなインピーダンス制御方法などを提供する。【解決手段】ロボット１側に、複数のアーム１０と、人間の腕を載置する載置台１１ａと、載置台１１ａを介して入力される外力を検出する力覚センサ１３と、アーム先端１０ａに対する載置台１１ａ上の腕の変位を検出する変位検出センサ１２とを設け、この変位検出センサ１２で検出された変位、および、力覚センサ１３で検出された外力を入力値としてロボットをインピーダンス制御する。【選択図】  図４
2004358575.tif 000002
【特許請求の範囲】
【請求項１】
複数のアームと、このアームの先端に作用する外部環境の外力を検出する力覚センサとを具備してなるロボットと、このロボットをインピーダンス制御するインピーダンス制御装置を備えたロボットシステムにおいて、
前記ロボットに、アームの先端に対する外部環境の変位を検出する変位検出センサを設け、この変位検出センサで検出された変位および前記力覚センサで検出された外力を入力値として前記ロボットをインピーダンス制御することを特徴とするロボットシステム。
【請求項２】
さらに、外部環境に接触する接触部材を設け、この接触部材を介して入力される外部環境の外力を前記力覚センサで検出するとともに、この接触部材をアームの先端に対して変位可能に構成し、この接触部材の変位を前記変位検出センサで検出する請求項１に記載のロボットシステム。
【請求項３】
前記制御手段が、外部環境の剛性係数の増大に伴って増大する粘性係数を用いてインピーダンス制御するものである請求項１に記載のロボットシステム。
【請求項４】
複数のアームと、このアームの先端に作用する外部環境の外力を検出する力覚センサと、アームの先端に対する外部環境の変位を検出する変位検出センサと、を具備してなるロボットを制御するロボットのインピーダンス制御方法において、
前記変位検出センサで検出された変位および力覚センサで検出された外力を入力値として前記ロボットをインピーダンス制御することを特徴とするロボットのインピーダンス制御方法。
【請求項５】
前記ロボットが、さらに、外部環境に接触する接触部材を設けるものであり、この接触部材を介して入力される外部環境の外力を前記力覚センサで検出するとともに、この接触部材をアームの先端に対して変位可能に構成し、この接触部材の変位を前記変位検出センサで検出する請求項４に記載のロボットのインピーダンス制御方法。
【請求項６】
前記制御が、外部環境の剛性係数の増大に伴って増大する粘性係数を用いてインピーダンス制御するものである請求項４に記載のロボットのインピーダンス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボットのインピーダンス制御に関するもので、より詳しくは、大きな外力を必要とすることなくロボットを制御できるようにしたインピーダンス制御方法などに関する。
【０００２】
【従来の技術】
人間との協働作業に好適に使用されるロボットの制御方法として、下記の特許文献１に記載されるようなインピーダンス制御方法が知られている。
【０００３】
【特許文献１】
特開２００１―０３８６６４号公報
【０００４】
このインピーダンス制御は、ロボットのアームの動きに硬さや柔らかさを持たせるようにしたもので、Ｆをロボットアームの先端に作用する外力、Ｍをインピーダンス特性における慣性係数、Ｄをインピーダンス特性における粘性係数、Ｋをインピーダンス特性における剛性係数、ｐ、ｐ’、ｐ”をそれぞれ算出すべきロボットアームの先端の位置、速度、加速度とした場合、
【０００５】
Ｍｐ”＋Ｄｐ’＋Ｋｐ＝Ｆ      （式１）
【０００６】
なる関係式によって制御させるものである。なお、ここで外力Ｆはロボットアームの先端に設けられた力覚センサによって検出されるものであり、また、慣性係数Ｍ、粘性係数Ｄ、剛性係数Ｋはパーソナルコンピュータなどのインピーダンス制御装置によってあらかじめ入力されているものである。そして、この関係式によってロボットアームの先端の位置ｐ、速度ｐ’、加速度ｐ”を算出し、この算出された位置ｐにロボットアームの先端が位置するように、サーボドライバを介してアクチュエータへ速度ｐ’に関する信号を出力するようにしたものである。
【０００７】
【発明が解決しようとする課題】
ところで、このようなインピーダンス制御に用いられる式１に入力される値は、力覚センサで検出された外力Ｆのみである。このため、このようにインピーダンス制御されるロボットを、例えば、人間の腕を下から支持してその動きを補助するような介護用ロボットとして使用する場合、次のような問題を生じる。すなわち、力覚センサで検出しうる力の閾値を大きく設定した場合、その閾値を超える大きな力を加えなければその外力を検出することができない。ところが、被介護者には、通常そのような大きな力が備わっていないため、結果としてそのロボットを駆動させることができない。一方、力覚センサで検出しうる力の閾値を小さく設定した場合は、被介護者の力に対応した小さな力を検出できるものの、今度は被介護者の腕に震えが生じた場合や、もしくは、外部からノイズが入り込んだ場合、これに敏感に反応してしまってロボットの動きが不自然なものになってしまう。このため、従来のインピーダンス制御では、使用状態に対応して力覚センサの閾値を設定するのが非常に困難であった。
【０００８】
また、従来のインピーダンス制御では、ロボットの慣性係数Ｍ、粘性係数Ｄ、剛性係数Ｋの値を大きく設定すると、アームの動きが重くなるため、ロボットアームの先端に大きな力を加えなければアームを駆動できない。このため、被介護者のような力の弱い者ではこのアームを駆動させることができなくなる。一方、これらの値を小さく設定すると、小さな力やノイズにアームが敏感に反応してしまうという問題を有していた。
【０００９】
さらに、別の問題点として、ロボットアームの先端を高い剛性を持って人間が保持した場合、インピーダンス制御特有の問題として、ロボットのアームに振動を生じさせてしまうという問題が存在する。これを解決すべく、従来では、ロボットの慣性係数Ｍ、粘性係数Ｄの値を大きく設定して、ロボットアームの動きに重い特性や硬い特性を持たせるようにしているが、このようにすれば、大きな外力を加えなければロボットアームを駆動できなくなり、被介護者用のロボットとしては不適切なものになるという問題を生じていた。
【００１０】
そこで、本発明は上記課題に着目してなされたもので、力覚センサで検出できる力の閾値に依存することなく、また、慣性係数Ｍや粘性係数Ｄを大きく設定した場合であってロボットアームを好適に駆動制御できるようなロボットのインピーダンス制御方法などを提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は、上記課題を解決するために、ロボット側に、複数のアームと、このアームに作用する外部環境の外力を検出する力覚センサと、アームと外部環境との変位を検出する変位検出センサとを具備し、この変位検出センサで検出された変位および前記力覚センサで検出された外力を入力値としてインピーダンス制御を行うように構成したものである。
【００１２】
このように構成すれば、例えば、ノイズの影響を受けないように力覚センサの閾値を大きくした場合であっても、閾値を大きくすることによって検出できなくなった小さな力に代わって外部環境の変位を入力するため、小さな力でロボットをインピーダンス制御することができる。また、アームの振動を防止すべく慣性係数Ｍや粘性係数Ｄを大きく設定した場合であっても、同様に、外部環境との変位を入力するようにしているため、小さな力によって生ずる変位に対応したロボットをインピーダンス制御することができる。
【００１３】
そして、この外部環境との変位を検出する際、外部環境と接触する接触部材を設け、この接触部材を介して入力される外部環境の外力を力覚センサで検出するとともに、この接触部材をアームの先端に対して変位可能に構成し、この接触部材の変位を変位検出センサで検出する。そして、これらの外力や変位を入力値としてインピーダンス制御する。
【００１４】
このように構成すれば、外部環境の外力を検出するための接触部材と、外部環境の変位を検出するための接触部材をそれぞれ個別に設ける場合に比べて、簡単な構成で外力や変位を検出することができる。
【００１５】
さらに、インピーダンス制御を行う際、外部環境の剛性係数の増大に伴ってロボット側の粘性係数を増大させるようにする。
【００１６】
このように構成すれば、例えば、人間とロボットが協働作業をするような場合、人間の固い動きに対応してロボットの動きに硬さを持たせることができ、また、逆に人間の柔らかい動きに対応してロボットの動きに柔らかさを持たせることができる。
【００１７】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。図１は、本実施形態におけるロボット１およびインピーダンス制御装置２から成るロボットシステム１００を示したものであり、図２はそのロボット１のアーム先端１０ａの拡大図を示したものである。また、図３および図４はインピーダンス制御のブロック図および制御線図を示したものである。
【００１８】
このロボット１は、図１および図２に示すように、人間の腕を載置するための載置部材１１と、複数の関節１４によって接続された複数のアーム１０とを備えてなるもので、このアーム１０の先端１０ａに、外部環境の外力を検出する力覚センサ１３と、アーム先端１０ａに対する腕の変位を検出する変位検出センサ１２とを設ける。また、周知のように、この関節１４内には、各アーム１０を移動させるためのアクチュエータを有する。
【００１９】
この載置部材１１は、人間の肘から手首までの腕部分を載置するための載置台１１ａと、アーム先端１０ａに取り付けられたベース部材１１ｃと、これら載置台１１ａとベース部材１１ｃとを連結する連結部材１１ｂを備える。そして、この載置台１１ａ、連結部材１１ｂ、ベース部材１１ｃによって平行リンクを構成している。
【００２０】
この載置台１１ａは、人間の腕の部分を載置するチャネル状の部材によって構成されるもので、人間の腕をベルトなどで拘束することなく上方から自由に腕を載置できるように構成している。そして、その載置台１１ａと腕との摩擦によって、この載置台１１ａを動かせるようにしている。
【００２１】
ベース部材１１ｃは、この載置台１１ａに対向して設けられる平面状のもので、その上面に連結部材１１ｂと変位検出センサを設ける。
【００２２】
連結部材１１ｂは、載置台１１ａとベース部材１１ｃとに設けられるもので、載置台１１ａおよびベース部材１１ｃに回動可能に取り付け、これによって平行リンクを構成する。そして、この回動領域を所定の範囲に規制することによって、載置台１１ａを所定の範囲内でｘ方向、ｙ方向、ｚ方向へ変位できるようにしている。
【００２３】
変位検出センサ１２は、棒状のスティック１２ａと、このスティック１２ａの傾動角度を検出しうる図示しないエンコーダをベース１２ｃの内部に備えてなる。そして、そして、このベース１２ｃをベース部材１１ｃ上に固定して取り付けるとともに、そのスティック１２ａの先端部１２ｂを載置台１１ａの裏側に回動可能に取り付ける。そして、載置台１１ａの変位に伴ってそのスティック１２ａを傾動変位させ、載置台１１ａ上の腕の変位をｘ方向、ｙ方向、ｚ方向に検出する。
【００２４】
一方、力覚センサ１３は、ベース部材１１ｃとアーム先端１０ａとの間に設けられ、載置台１１ａを介して入力された外部環境のｘ方向、ｙ方向、ｚ方向の外力を検出する。この力覚センサ１３は、本実施形態ではｘ方向、ｙ方向、ｚ方向の外力を検出するものであるが、さらにｘ軸回り、ｙ軸回り、ｚ軸回りのトルクも加えた検出を行えるようなものを用いても良い。
【００２５】
一方、インピーダンス制御装置２は、パーソナルコンピュータやサーボドライバなどを具備してなるもので、内蔵するＣＰＵやメモリ、およびキーボードなどの入力手段などを用いて、図３に示す変位検出手段２０、外力検出手段２１、パラメータ設定手段２２、演算手段２３、制御手段２４を機能させる。
【００２６】
変位検出手段２０は、載置部材１１に取り付けられた変位検出センサ１２からの信号に基づいてスティック１２の先端部１２ｂの座標位置を検出する。この検出は、あらかじめサンプリング時間を設定し、このサンプル時間毎に変位検出センサ１２のエンコーダの変位角度θｉ（ｉ＝ｘ、ｙ、ｚ）を読み出すことによって行う。そして、これによりスティック先端部１２ｂの座標ｐ０
【００２７】
ｘ軸方向；ｐ０＝Ｌｓｉｎθｘ＋ｐ      （式２）
ｙ軸方向；ｐ０＝Ｌｓｉｎθｙ＋ｐ      （式３）
ｚ軸方向；ｐ０＝Ｌｃｏｓθｚ＋ｐ      （式４）
【００２８】
を算出する。なお、ここでＬはスティック１２ａの長さであり、ｐはアーム先端１０ａの座標であって初期状態で設定された座標もしくは、ロボット１の制御中において演算によって求められる座標である。
【００２９】
外力検出手段２１は、アーム先端１０ａに設けられた力覚センサ１３からの入力信号に基づいて外部環境の外力を検出する。この外力の検出についても同様に、あらかじめサンプリング時間を設定し、このサンプリング時間毎に力覚センサ１３の信号を読み出して、ｘ軸方向、ｙ軸方向、ｚ軸方向の外力Ｆｉ（ｉ＝ｘ、ｙ、ｚ）を検出する。この力覚センサ１３で検出できる外力の閾値は、ノイズの影響によるロボット１の誤動作を防止できる程度の大きさに設定される。
【００３０】
パラメータ設定手段２２は、インピーダンス制御に用いられる慣性係数Ｍ、粘性係数Ｄ、剛性係数Ｋなどのパラメータを設定するもので、後述する式９の慣性係数Ｍ、粘性係数Ｄ、剛性係数Ｋなどを設定する。このパラメータの設定は、パーソナルコンピュータのキーボードを用いて入力され、もしくは、外部環境のロボットへの作用状態に対応して設定される。このロボットへの作用状態に対応するパラメータの設定方法としては、例えば、外部環境をバネとみなしてその剛性係数Ｋｈを算出し、その剛性係数Ｋｈに比例してロボット１側の粘性係数Ｄを設定する方法などが考えられる。このパラメータの設定方法に関して詳述する。
【００３１】
まず、外部環境がロボット１に外力を加える場合、その外部環境の力の平衡点（外力がゼロとなる座標）は常に移動するため、外部環境を、平衡点の移動するバネとみなして、
【００３２】
Ｆ（ｔ）＝Ｋｈ（ｐ（ｔ）―ｐ１（ｔ））      （式５）
【００３３】
と仮定する。なお、ここでＦは外部環境の外力、ｐ１は外部環境の平衡点である。また、ｐは外部環境とロボットの接触位置における座標であり、スティック１２ａの先端部１２ｂの座標である。
【００３４】
ところで、外部環境が低速で変位する場合、サンプリング時間内においては、平衡点の移動は微少範囲にとどまると仮定することができるため（ｐ１（ｔ）≒ｐ１（ｔ−ｔｓ））、隣接サンプリング時間における平衡点の移動を無視することができる。よって、時刻ｔにおける式５から時刻（ｔ−ｔｓ）における式５を引くことにより、
【００３５】
ΔＦ（ｔ）＝ＫｈΔｐ（ｔ）      （式６）
【００３６】
なる関係式が得られる。これにより、外部環境の平衡点の項ｐ１（ｔ）を消去し、外部環境の剛性係数Ｋｈを推定する。
【００３７】
一方、外部環境が高速に変位する場合、サンプリング時間における平衡点の移動を無視することができないため、アーム先端１０ａの速度ｖを考慮した式
【００３８】
Δｐ（ｔ）＝ｐ（ｔ）―ｐ（ｔ−ｔｓ）―ｔｓｖ（ｔ−ｔｓ）      （式７）
【００３９】
を用いる。なお、このｐについては、ロボット１のコンプライアンスを考慮するようにしても良く、この場合、式７のｐは下式のｐ＊に置換される。
【００４０】
ｐ＊（ｔ）＝ｐ（ｔ）＋Ｃｅｎｄ（ｔ）Ｆ（ｔ）      （式８）
（Ｃｅｎｄ（ｔ）；ロボット１のコンプライアンス行列）
【００４１】
そして、式６を用いて逐次最小二乗法などで外部環境の剛性係数Ｋｈを推定する。
【００４２】
そして、このようにして得られた外部環境の剛性係数Ｋｈに対応してロボットの粘性係数を変化させる場合、図５に示すように、外部環境の剛性係数Ｋｈとロボットの粘性係数Ｄにあらかじめ比例関係を持たせて記憶しておき、これによって剛性係数の増加に伴った粘性係数Ｄを算出する。
【００４３】
このようにすれば、例えば、人間がロボット１に支持されながら重量物を保持するような場合、人間がしっかりとその運搬物を持つ（Ｋｈが増大した状態）ことでロボット１側にもその動きに対応した硬さ（粘性係数Ｄが増大した状態）を持たせることができ、また、逆に、軽量物を軽く保持する（Ｋｈが減少した状態）ような場合、人間側のしなやかな運動に伴ってロボット１側もしなやかさ（粘性係数Ｄが減少した状態）を持たせることができる。
【００４４】
演算手段２３は、このように変位検出手段２０によって検出されたスティック先端部１２ｂの座標および外力検出手段２１によって検出された外力を入力値として、また、パラメータ設定手段２２によって設定された慣性係数Ｍ、粘性係数Ｄ、剛性係数Ｋを用いてアーム先端１０ａの位置ｐ、速度ｐ’、加速度ｐ”を演算する。この演算は、インピーダンス特性の微分方程式である下記の式９を用いて行われる。
【００４５】
Ｍｐ”＋Ｄｐ’＋Ｋ（ｐ−ｐ０）＝Ｆ      （式９）
【００４６】
制御手段２４は、このように算出された速度ｐ’に関する信号をサーボドライバを介してアクチュエータに出力し、フェードバック制御によってこの算出された位置ｐにアーム先端１０ａを移動させるように制御する。
【００４７】
次に、ロボット１の制御方法について図４の制御線図を用いて説明する。
【００４８】
まず、ロボット１を制御するに際して、あらかじめ、パーソナルコンピュータの入力手段などを用いてインピーダンス制御の際の慣性係数Ｍ、粘性係数Ｄ、弾性係数Ｋを設定しておく。そして、この状態で載置部材１１に人間の腕を載置し、パーソナルコンピュータからの指令によって、サンプリング時間毎に変位検出センサ１２の変位値および力覚センサ１３の外力を検出する。そして、これらの変位値および外力を入力値とし、式９用いて、アーム先端１０ａの位置ｐ、速度ｐ’、加速度ｐ”を算出する。そして、この算出された速度ｐ’をサーボドライバを介してアクチュエータに出力し、アーム先端１０ａの位置をその算出された位置ｐに移動させるようフィードバック制御する。この制御においては、インピーダンス特性の微分方程式を用いているため、（ｐ−ｐ０）の項がゼロに近づくようにアーム先端１０ａが移動する。すなわち、スティック１２ａの角度θｉ（ｉ＝ｘ、ｙ、ｚ）がゼロとなるようにアーム先端１０ａが動き、これによって、人間の腕の動きに追従するようになる。
【００４９】
このように本実施形態によれば、インピーダンス制御を用いたロボット１の制御方法において、従来のように力覚センサ１３で検出される外力だけを入力値とするのではなく、変位検出センサ１２で検出される外部環境とアーム先端１２ａとの変位も入力値として用いるようにしたので、力覚センサ１３で検出しうる外力の閾値を大きく設定した場合であっても、変位検出センサ１２で変位を検出させ、その変位をゼロに近づけるようにアームを駆動することができるようになる。これにより、小さな力でロボット１をインピーダンス制御することができ、しかも、力覚センサ１３へ入り込むノイズの影響を少なくすることができる。また、アームの振動を防止するために慣性係数Ｍや粘性係数Ｄを大きく設定した場合であっても、同様に、外部環境との変位を入力するようにしているため、小さな力でロボットをインピーダンス制御することができる。
【００５０】
また、この実施形態では、載置部材１１ａを介して外部環境の外力とその変位を検出するようにしたので、それぞれの力覚センサ１３および変位検出センサ１２毎に別個の接触部材を設けて外力や変位を検出する場合に比べて、簡単な構成でその外力や変位を検出することができる。また、単一の載置部材１１ａを介して外部環境の同一部位からの外力と変位を検出するので、それぞれ対応のとれた外力と変位を用いてインピーダンス制御することができる。
【００５１】
さらに、この実施形態では、ロボット１側の粘性係数Ｄを設定するに際して、外部環境の剛性係数Ｋｈを算出し、その剛性係数Ｋｈに比例するような粘性係数Ｄを用いるようにしたので、人間の固い動きに対応してロボット１側にも固い動きを持たせることができ、また、逆に人間の柔らかい動きに対応してロボット１側にも柔らかい動きを持たせることができる。
【００５２】
なお、本発明は上記実施形態に限定されることなく、種々変更して実施することができる。
【００５３】
例えば、上記実施形態では、変位検出センサ１２として長さの伸縮しないスティック１２ａを用いたものを例に挙げて説明したが、これに限らず、スティック１２ａの長さが伸縮するものを用いて同様の構成を実現することができる。この場合、そのスティックの内部に伸縮するバネとその伸縮長さを検出するフォトセンサを設け、エンコーダとともにこの検出した伸縮した長さに関する情報を用いてスティック先端部の座標を検出すると良い。そして、上記実施形態の平行リンクである載置部材１１に代えて、その伸縮するスティックの上に別の載置台を設け、これにより外部環境の変位を検出する。
【００５４】
また、上記実施形態では、棒状のスティック１２ａを有する変位検出センサ１２を用いて説明したが、これに限らず、ｘ方向、ｙ方向、ｚ方向への変位を検出できるような構成であればどのような構成であっても良い。例えば、表面を露出させたボールを外部環境に接触させて、ｘ方向、ｙ方向の変位を検出できるようにするとともに、このボールをｚ方向へも変位させてそのｚ方向の変位も検出できるようにしても良い。
【００５５】
また、本実施形態では、介護用のロボット１として外部環境である人間の腕を支持するようなアプリケーションを例に挙げて説明したが、これに限らず、インピーダンス制御の入力として外力と変位を好適に使用できるものであれば、どのようなアプリケーションに利用しても良い。
【００５６】
【発明の効果】
本発明では、ロボット側に、複数のアームと、アームの先端に作用する外部環境の外力を検出する力覚センサと、アームの先端に対する外部環境の変位を検出する変位検出センサとを設け、この変位検出センサで検出された変位および前記力覚センサで検出された外力を入力値としてロボットをインピーダンス制御するように構成したので、力覚センサで検出できる閾値を大きく設定した場合であっても、小さな力でロボットをインピーダンス制御することができる。また、アームの振動を防止すべく慣性係数Ｍや粘性係数Ｄを大きく設定した場合であっても、同様に、外部環境との変位を入力するようにしているため、小さな力によって生ずる変位に対応したロボットをインピーダンス制御することができる。
【図面の簡単な説明】
【図１】本実施の形態におけるロボットシステムの概観図
【図２】同形態におけるアーム先端近傍の拡大図
【図３】同形態におけるブロック図
【図４】同形態における制御線図
【図５】ロボット側の粘性係数と外部環境の剛性係数との関係を示す図
【符号の説明】
１・・・ロボット
２・・・インピーダンス制御装置
１０・・・アーム
１０ａ・・・アーム先端
１２・・・変位検出センサ
１３・・・力覚センサ
２４・・・制御手段
１００・・・ロボットシステム
【図１】
2004358575.tif 000003
【図２】
2004358575.tif 000004
【図３】
2004358575.tif 000005
【図４】
2004358575.tif 000006
【図５】
2004358575.tif 000007