(57)【要約】      （修正有）【課題】人間の動作に良好に追従することができるロボット及びロボットの制御方法を提供する。【解決手段】複数のリンク部材１１と、リンク部材１１を連結する関節部材１２と、関節部材１２に設けられ、関節部材１２に所定の関節トルクを発生させるモータ１３と、連結されたリンク部材１１の先端に設けられた先端部材１４と、関節トルクを設定する制御回路１６と、を有し、制御回路１６は、外力によって各関節部材１２に負荷される負荷トルクに応じて、負荷トルクと供に、関節トルクを生成する自己発生トルクを生成し、負荷トルク及び自己発生トルクに基づいて関節トルクを生成する。【選択図】図１
2009113147.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンク部材と、
前記リンク部材を連結する関節部材と、
前記関節部材に設けられ、前記関節部材に所定の関節トルクを発生させるモータと、
連結された前記リンク部材の先端に設けられた先端部材と、
前記関節トルクを設定する制御回路と、を有し、
前記制御回路は、外力によって前記各関節部材に負荷される負荷トルクと共に、前記関節トルクを生成する自己発生トルクを生成し、
前記負荷トルク及び前記自己発生トルクに基づいて前記関節トルクを生成する
ロボット。
【請求項２】
前記制御回路は、
前記リンク部材及び前記先端部材の相対位置に応じて算出される仮想反力トルクと前記負荷トルクの大きさ及び向きに応じて前記自己発生トルクを生成する
請求項１記載のロボット。
【請求項３】
前記制御回路は、
前記仮想反力トルクと前記負荷トルクの向きが逆方向であり、かつ、前記仮想反力トルクが前記負荷トルクよりも大きいときは、前記自己発生トルクを、前記負荷トルクと逆向きで、かつ、同じ大きさに設定し、前記関節トルクを零に設定する
請求項２記載のロボット。
【請求項４】
前記制御回路は、
前記仮想反力トルクと前記負荷トルクの向きが同じ方向であるときは、前記自己発生トルクを零に設定し、前記関節トルクを前記負荷トルクに設定する
請求項２又は３記載のロボット。
【請求項５】
前記制御回路は、
前記仮想反力トルクの向きと前記外部トルクが逆向きであり、かつ、前記仮想反力トルクが前記外部トルクよりも小さいときは、前記自己発生トルクを前記仮想反力トルクに設定し、前記関節トルクを前記外部トルク及び前記仮想反力トルクを足し合わせた値に設定する
請求項２乃至４のうちいずれか１項に記載のロボット。
【請求項６】
前記外力を検出する力センサを備え、
前記負荷トルクは、前記力センサによって検出された前記外力に応じて、順運動学に基づいて求められる
請求項１乃至５のうちいずれか１項に記載のロボット。
【請求項７】
前記外力は、人間が当該ロボットに接触することにより当該ロボットに作用する力である
請求項１乃至６のうちいずれか１項に記載のロボット。
【請求項８】
外力を検出する工程と、
前記外力によって前記関節部材に負荷される負荷トルクに応じて、ロボットに自然な動作を表出させるために仮想的に設定される自己発生トルクを設定する工程と、
前記負荷トルク及び前記自己発生トルクに基づいて前記関節部材に関節トルクを発生させる工程と、を有する
ロボットの制御方法。
【請求項９】
前記自己発生トルクを生成する工程では、前記リンク部材及び前記先端部材の相対位置に応じて算出される仮想反力トルクと前記負荷トルクの向きに応じて前記自己発生トルクを生成する
請求項８記載のロボットの制御方法。
【請求項１０】
前記自己発生トルクを生成する工程では、前記仮想反力トルクと前記負荷トルクの向きが逆方向であり、かつ、前記仮想反力トルクが前記負荷トルクよりも大きいときは、前記自己発生トルクを、前記負荷トルクと逆向き、かつ、同じ大きさに設定し、前記関節トルクを零に設定する
請求項９記載のロボットの制御方法。
【請求項１１】
前記自己発生トルクを生成する工程では、前記仮想反力トルクと前記負荷トルクの向きが同じ方向であるときは、前記自己発生トルクを零に設定し、前記関節トルクを前記負荷トルクの値に設定する
請求項９又は１０記載のロボットの制御方法。
【請求項１２】
前記自己発生トルクを生成する工程では、前記仮想反力トルクの向きと前記負荷トルクが逆向きであり、かつ、前記仮想反力トルクが前記負荷トルクよりも小さいときは、前記自己発生トルクを前記仮想反力トルクに設定し、前記関節トルクを前記負荷トルク及び前記仮想反力トルクを足し合わせた値に設定する
請求項９乃至１１のうちいずれか１項に記載のロボットの制御方法。
【請求項１３】
前記自己発生トルクを生成する工程では、前記負荷トルクを、前記外力に応じて順運動学に基づいて求める
請求項８乃至１２のうちいずれか１項に記載のロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及びロボットの制御方法に関する。
【背景技術】
【０００２】
従来より、人間と空間を共有しながら人間の作業支援等を行う人間共存型ロボットが知られている。人間共存型ロボットとしては、（１）人間からの力や動作に合わせて動作形態を変化させる人間追従や、（２）自己干渉を含む環境による干渉を回避するための環境回避、（３）作業内容に応じて作業を遂行する作業遂行、といった機能を果たすことが求められる。
【０００３】
非特許文献１には、各機能を満足させるように力ベクトルを算出し、この力ベクトルに基づいてロボットの各関節に負荷するトルクを制御することが開示されている。具体的には、人間追従のために設定される人間追従トルク、環境による干渉を回避するために設定される環境回避トルク、及びタスクを実行するために設定される作業遂行トルクを、それぞれ別々の算出方法で求める。そして、これらを足し合わせた合成トルクに基づいて、ロボットの各関節に負荷するトルクを設定する（非特許文献１、図３参照）。
【非特許文献１】菅岩泰亮、中村卓磨、九谷俊行、菅野重樹著、「人間共存ロボットの接触適応行動」、第２４回日本ロボット学会学術講演論文、２００６年９月１４日、３Ｋ１４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１に開示されたロボット及びロボットの制御方法では、環境回避トルクは、ロボットの身体同士の距離等に応じて一様に作用するよう構成されている。すなわち、従来のロボット及びロボットの制御方法では、人間追従トルクの大きさや方向に関わらず環境回避トルクが作用していた。そのため、図４に示すように、ロボットのロボットボディ４１と、リンク部材４２が接近すると、環境回避トルクによって、ロボットボディ４１とリンク部材４２が離れる方向に、各関節部材４４、４５（矢印方向）に制御トルクが負荷される。これにより、ロボットのリンク部材４３に触れているだけの人間に対しても、環境回避トルクが作用することで、ロボットから人間に力が負荷されることとなる。
【０００５】
このように、従来のロボット及びロボットの制御方法では、姿勢を維持していれば人間に対して力を作用させることがないような場合であっても、環境回避トルクが作用することで、人間が予期しない動きをロボットに表出させてしまうことがあった。
【課題を解決するための手段】
【０００６】
本発明に係るロボットに１態様は、複数のリンク部材と、前記リンク部材を連結する関節部材と、前記関節部材に設けられ、前記関節部材に所定の関節トルクを発生させるモータと、連結された前記リンク部材の先端に設けられた先端部材と、前記関節トルクを設定する制御回路と、を有し、前記制御回路は、外力によって前記各関節部材に負荷される負荷トルクと供に、前記関節トルクを生成する自己発生トルクを生成し、前記負荷トルク及び前記自己発生トルクに基づいて前記関節トルクを生成する、ことを特徴とする。
【０００７】
このように、外力によって各関節に生じる負荷トルクを考慮して自己発生トルクを設定することにより、人間からロボットに負荷される外力に応じて、人間に作用する力を調整することができる。これにより、人間から加わる外力に応じて自己発生トルクを生成することで、人間が予期しない動きをロボットに表出させることを防止することができる。
【０００８】
また、上記のロボットにおいて、前記制御回路は、前記リンク部材及び前記先端部材の相対位置に応じて算出される仮想反力トルクと前記負荷トルクの向きに応じて前記自己発生トルクを生成する、ことを特徴とする。このように、自己発生トルクを設定するために用いられる仮想反力トルクを算出することによって、負荷トルク及び仮想反力トルクに応じて自己発生トルクを生成することができる。
【０００９】
また、上記のロボットにおいて、前記制御回路は、前記仮想反力トルクと前記負荷トルクの向きが逆方向であり、かつ、前記仮想反力トルクが前記負荷トルクよりも大きいときは、前記自己発生トルクを、前記負荷トルクと逆向き、かつ、同じ大きさを有する値に設定し、前記関節トルクを零に設定する、ことを特徴とする。このように、仮想反力トルクと、負荷トルクの向きが逆方向であり、かつ、自己発生トルクが負荷トルクよりも大きいときは、関節トルクを零に設定することで、ロボットに殆ど力を負荷していないような人間に対し、ロボットから人間にとって不意な力を作用させることを防止することができる。
【００１０】
また、上記のロボットにおいて、前記制御回路は、前記仮想反力トルクと前記負荷トルクの向きが同じ方向であるときは、前記自己発生トルクを零に設定し、前記関節トルクを前記負荷トルクに設定する、ことを特徴とする。このように、前記仮想反力トルクと、前記負荷トルクの向きが同方向であるときは、仮想反力トルクを作用させる必要がないため、ロボットの動作が、人間が意図した以上の速さで動作することを防止することができる。
【００１１】
また、上記のロボットにおいて、前記制御回路は、前記仮想反力トルクの向きと前記外部トルクが逆向きであり、かつ、前記仮想反力トルクが前記外部トルクよりも小さいときは、前記自己発生トルクを前記仮想反力トルクに設定し、前記関節トルクを前記外部トルク及び前記仮想反力トルクを足し合わせた値に設定する、ことを特徴とする。このように、仮想反力トルクの向きと、外部トルクが逆向きであり、かつ、仮想反力トルクが外部トルクよりも小さいときは、関節トルクを外部トルク及び仮想反力トルクを足し合わせた値に設定することで、人間の動作にロボットを追従させると共に、ロボットに生じる自己干渉を回避することができる。
【００１２】
また、上記のロボットにおいて、前記外力を検出する力センサを備え、前記負荷トルクは、前記力センサによって検出された前記外力に応じて、順運動学に基づいて求められる、ことを特徴とする。このように、順運動学によって環境回避や人間追従の演算処理を行うことで、個別の制御則を用意する手間を省くことができる。
【００１３】
また、上記のロボットにおいて、前記外力は、人間が当該ロボットに接触することにより当該ロボットに作用する力である、ことを特徴とする。このように、人間からロボットに負荷される外力に応じて、ロボットを制御することで、ロボットを人間の動作に自然な動きで追従させることができる。
【００１４】
本発明に係るロボットの制御方法の１態様は、外力を検出する工程と、前記外力によって前記関節部材に負荷される負荷トルクに応じて、ロボットに自然な動作を表出させるために仮想的に設定される自己発生トルクを設定する工程と、前記負荷トルク及び前記自己発生トルクに基づいて前記関節部材に関節トルクを発生させる工程と、を有することを特徴とする。このように、外力によって各関節に生じる負荷トルクを考慮して自己発生トルクを設定することにより、人間からロボットに負荷される外力に応じて、人間に作用する力を制御することができる。
【００１５】
また、上記のロボットの制御方法において、更に、前記リンク部材及び前記先端部材の相対位置に応じて算出される仮想反力トルクと前記負荷トルクの向きに応じて前記自己発生トルクを生成する、ことを特徴とする。このように、自己発生トルクを設定するために用いられる仮想反力トルクを算出することによって、仮想反力トルク及び負荷トルクに基づいて自己発生トルクを生成することができる。
【００１６】
また、上記のロボットの制御方法において、前記自己発生トルクを生成する工程では、前記仮想反力トルクと前記負荷トルクの向きが逆方向であり、かつ、前記仮想反力トルクが前記負荷トルクよりも大きいときは、前記自己発生トルクを、前記負荷トルクと逆向き且つ同じ大きさに設定し、前記関節トルクを零に設定する、ことを特徴とする。これにより、ロボットに殆ど力を負荷していないような人間に対し、ロボットから人間にとって不意な力を作用させることを防止することができる。
【００１７】
また、上記のロボットの制御方法において、前記自己発生トルクを生成する工程では、前記仮想反力トルクと前記負荷トルクの向きが同じ方向であるときは、前記自己発生トルクを零に設定し、前記関節トルクを前記負荷トルクの値に設定する、ことを特徴とする。これにより、ロボットの動作が、人間が意図した以上の速さで動作することを防止することができる。
【００１８】
また、上記のロボットの制御方法において、前記自己発生トルクを生成する工程では、前記仮想反力トルクの向きと前記負荷トルクが逆向きであり、かつ、前記仮想反力トルクが前記負荷トルクよりも小さいときは、前記自己発生トルクを前記仮想反力トルクに設定し、前記関節トルクを前記負荷トルク及び前記仮想反力トルクを足し合わせた値に設定する、ことを特徴とする。これにより、人間の動作にロボットを追従させると共に、ロボットに生じる自己干渉を回避することができる。
【００１９】
また、上記のロボットの制御方法において、前記自己発生トルクを生成する工程では、前記負荷トルクを、前記外力に応じて順運動学に基づいて求める、ことを特徴とする。このように、順運動学によって環境回避や人間追従の演算処理を行うことで、個別の制御則を用意する手間を省くことができる。
【発明の効果】
【００２０】
本発明に係るロボットによれば、ロボットに接触している人間が意図しない動作をロボットに表出させることを防止することで、自然な動作を表出させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、添付した図面を参照して本発明の実施の形態について説明する。
【００２２】
本実施形態に係るロボットは、例えば、人間の動作に追従するよう構成された人間共存型ロボットに適用される。このような人間共存型ロボットにおいては、人間がロボットに対して負荷する外力に対して動作を追従させる人間追従、障害物や自己干渉等を回避するための環境回避、及び所定のタスクを実行させるための作業遂行といった機能を備えている。本実施形態の説明では、所定のタスクを実行させるための作業遂行についての制御については言及しないこととする。しかしながら、作業遂行の機能については、適宜所定の制御則を本発明と組み合わせることで、実施することができる。
【００２３】
図１は、本発明の実施形態に係るロボットの構成を示す概要図である。図１に示すように、本発明に係るロボット１０は、複数のリンク部材１１と、リンク部材１１を連結する関節部材１２と、関節部材１２に設けられ、関節部材１２に所定の関節トルクを発生させるモータ１３と、連結されたリンク部材１１の先端に設けられた先端部材１４と、先端部材１４に加えられる外力を検出する力センサ１５と、制御トルクを算出する制御回路１６と、を有している。
【００２４】
隣接するリンク部材１１は、関節部材１２によって連結されている。リンク部材１１及び関節部材１２は、交互に連結され、開ループリンク機構を構成している。モータ１３は、関節部材１２毎に設けられ、関節部材１２に所定の関節トルクを発生させるよう構成されている。関節トルクの制御は、例えば、モータ１３を直流サーボモータによって構成し、この直流サーボモータに流れる電流を制御することにより、電流に比例した関節トルクを発生させることができる。また、モータ１３に減速器を組み合わせ、減速器の減速比を制御することによって、関節トルクを調整することもできる。また、各関節部材１２や先端部材１４には、位置検出を行う位置センサであるエンコーダ（図示せず）が設けられている。エンコーダは、リンク部材１１や先端部材１４の位置を検出し、制御回路１６に出力するよう構成されている。
【００２５】
連結されたリンク部材１１の先端には、先端部材１４が設けられている。先端部材１４には、力センサ１５が設けられている。力センサ１５は、人間から先端部材１４に負荷される外力ＦEXTを検出するよう構成されている。力センサ１５によって検出された外力ＦEXTは、制御回路１６に出力される。制御回路１６は、力センサ１５、関節毎に設けられたモータ１３、及びエンコーダに接続されている。また、制御回路１６には、エンコーダによって検出されたそれぞれの部材の位置情報が入力される。制御回路１６は、それぞれの部材の位置関係に基づいて、部材同士のなす角度θを算出する。制御回路１６は、入力されるパラメータである外力ＦEXT及び部材同士のなす角度θに基づいて、関節毎に設定される制御トルクである関節トルクＴSUMを算出する。そして、制御回路１６は、算出された関節トルクＴSUMをそれぞれのモータ１３に出力する。
【００２６】
図２は、本発明の実施形態に係るロボットが有する制御回路の構成を示す図である。なお、図２は、関節毎に設定されるそれぞれの関節トルクＴSUMの演算処理について示してある。制御回路１６は、外力ＦEXTによって各関節部材１２に負荷される負荷トルクＴEXTに応じて、ロボットに自然な動作を表出させるために仮想的に設定される自己発生トルクＴSELF1を生成し、負荷トルクＴEXT及び前記自己発生トルクＴSELF1に基づいて関節トルクＴSUMを生成するよう構成されている。ここで、負荷トルクＴEXTは、検出した外力から計算される実際にロボットに発生しているトルクである。自己発生トルクＴSELF1は、仮想反力に応じて算出される仮想的なトルクである。関節トルクＴSUMは、負荷トルクＴEXT及び自己発生トルクＴSELF1に応じて生成される仮想的なトルクである。
【００２７】
算出された関節トルクＴSUMは、ロボットに与える角速度を設定するための制御トルクである。例えば、ロボットの関節を、単純に関節トルクＴSUMに比例した角速度で制御する。ただし、実際のモータに与えるモータートルクは、ロボットの自重やロボットに負荷される外力を考慮した上で、設定された角速度を実現するのに必要なだけ出力される。以下の説明において、関節トルクＴSUMは、関節毎に設けられたモータ１３を制御する制御トルクを示す。また、外力ＦEXTによって各関節に負荷されるトルクを負荷トルクＴEXTとして示す。
【００２８】
制御回路１６は、関節トルクＴSUMを設定するための条件となる仮想反力トルクＴSELFを算出する。この仮想反力トルクＴSELFは、リンク部材１１及び先端部材１４の相対位置に応じて算出される仮想反力ＦSELFに基づいて生成される。制御回路１６は、負荷トルクＴEXT及び仮想反力トルクＴSELFの大小関係や向きに応じて、ロボットに自然な動作を表出させるために仮想的に設定される自己発生トルクＴSELF1を生成する。そして、この自己発生トルクＴSELF1及び負荷トルクＴEXTに基づいて、関節トルクＴSUMを設定する。
【００２９】
制御回路１６は、仮想反力演算部２１、順運動学演算部２２、及びトルク合成部２３、及び関節角速度調整部２４、仮想反力トルク生成部２６、及び負荷トルク生成部２７を備えている。仮想反力演算部２１は、ロボット１０を構成するリンク部材１１等の部材同士の距離に応じて、仮想反力トルク（ＴSELF）を算出するよう構成されている。仮想反力演算部２１は、それぞれのエンコーダによって検出された位置から求められる角度θが入力されている。なお、エンコーダが直接それぞれの部材同士のなす角度θを検出するように構成されている場合には、エンコーダによって検出された角度θが直接仮想反力演算部２１に入力される。
【００３０】
順運動学演算部２２は、角関節部材１２に設けられたエンコーダによって検出された位置情報に基づいて算出された部材同士のなす角度θが入力される。順運動学演算部２２は、入力された部材同士のなす角度θを用いて、ロボット１０の姿勢によって定まるヤコビ行列Ｊを算出する。
【００３１】
ここで、仮想仕事の原理より、各関節に負荷される力ＦとトルクＴの関係は、ヤコビ行列Ｊを用いて以下の式によって表すことができる。
【００３２】
【数１】
2009113147.tif 000003
仮想反力トルク生成部２６は、順運動学演算部２２によって求められたヤコビ行列Ｊお呼び仮想反力ＦSELFを用いて、仮想反力（ＦSELF）を発生させるために、関節に負荷するべき関節毎の仮想反力トルクＴSELFを、以下の式によって算出する。
【００３３】
【数２】
2009113147.tif 000004
これと同様に、負荷トルク生成部２７は、順運動学演算部２２によって求められたヤコビ行列Ｊ及び力センサ１５によって検出された外力ＦEXTを用いて、外力ＦEXTに追従させるために関節に負荷するべき関節毎の負荷トルクＴEXTを、以下の式によって算出する。
【００３４】
【数３】
2009113147.tif 000005
トルク合成部２３は、仮想反力トルク生成部２６よって求められた仮想反力トルクＴSELFと、負荷トルク生成部２７によって求められた負荷トルクＴEXTに基づいて、関節毎に設けられたモータ１３に設定する関節トルクＴSUMを算出する。このトルク合成部２３によって生成された関節トルクＴSUMは、関節角速度調整部２４に出力される。関節角速度調整部２４は、与えられた関節トルクＴSUMに応じて出力信号のゲインを調整することにより、関節トルクＴSUMを関節角速度目標値に設定する。関節角速度調整部２４の出力信号は、モータアンプ２５に出力される。モータアンプ２５は、入力された制御信号に応じて、モータ１３の出力する電流値を制御する。これにより、モータ１３に所定の関節トルクＴSUMが設定される。なお、モータアンプ２５は、制御回路１６に設けられていても、モータ１３毎に設けられていてもよい。ここで、モータ１３は、設定された関節トルクＴSUMを単純に出力しているのではない。モータ１３によって生成されるモータートルクは、ロボット自身の自重や、外力などを考慮した上で、関節トルクＴSUMに応じた角速度を実現できるトルクを出力するよう制御される。
【００３５】
図３は、本発明の実施形態に係るロボットのトルク合成部の演算処理を示す図である。トルク合成部２３は、負荷トルクＴEXTに応じて（条件１〜３）、自己発生トルクＴSELF1を設定するよう構成されている。なお、この条件１〜３は、仮想反力トルクＴSELFと、負荷トルクＴEXTの大小関係や向きによって場合分けされている。
【００３６】
（条件１）に示すように、仮想反力トルクＴSELFと負荷トルクＴEXTが同じ向きである（ＴEXT×ＴSELF≧０）場合には、自己発生トルクＴSELF1を０に設定する。そして、設定された自己発生トルクＴSELF1と負荷トルクＴEXTを足し合わせて関節トルクＴSUMを生成する。すなわち、条件１では、関節トルクＴSUMは、負荷トルクＴEXTに設定される。
【００３７】
（条件２）に示すように、仮想反力トルクＴSELFと負荷トルクＴEXTの向きが反対であり（ＴEXT×ＴSELF＜０）、且つ、仮想反力トルクＴSELFが負荷トルクＴEXTよりも小さい場合（ＴEXT＞ＴSELF）には、自己発生トルクＴSELF1を、前述した仮想反力トルクＴSELFと同じ大きさ及び向きを有するように設定する。そして、設定された自己発生トルクＴSELF1及び負荷トルクＴEXTを足し合わせて関節トルクＴSUMを生成する。
【００３８】
（条件３）に示すように、仮想反力トルクＴSELFと負荷トルクＴEXTの向きが反対であり（ＴEXT×ＴSELF＜０）、且つ、仮想反力トルクＴSELFが負荷トルクＴEXTよりも大きい場合（ＴEXT＞ＴSELF）には、自己発生トルクＴSELF1を−ＴEXTに設定し、関節トルクＴSUMを０に設定する。そして、設定された自己発生トルクＴSELF1と負荷トルクＴEXTを足し合わせて関節トルクＴSUMを生成する。すなわち、条件３では、関節トルクＴSUMは、０に設定される。
【００３９】
このように、本実施形態に係るロボット１０は、負荷トルクＴEXTの向きや大きさに応じて、自己発生トルクＴSELF1を生成する。（条件１）のように、仮想反力トルクＴSELFと負荷トルクＴEXTの向きが同じ向きである場合（ＴEXT×ＴSELF≧０）には、リンク部材１１に自己干渉が生じないため、自己干渉を回避させるためにトルクを発生させる必要がない。そのため、関節トルクＴSUMを負荷トルクＴEXTに設定する。これにより、外力に応じた速度でロボット１０の動作を追従させることができる。
【００４０】
また、（条件３）のように、仮想反力トルクＴSELFと負荷トルクＴEXTの向きが反対であり（ＴEXT×ＴSELF＜０）、且つ、仮想反力トルクＴSELFが負荷トルクＴEXTよりも大きい場合（ＴEXT＜ＴSELF）には、自己干渉を回避するためのトルクを発生させると、接触している人間に不要な力を負荷してしまうおそれがある。そのため、このような場合には、自己発生トルクＴSELF1を負荷トルクＴEXTと同じ大きさで逆向きのトルク（−ＴEXT）に設定し、関節トルクＴSUMを０に設定する。これにより、ロボット１０に触れているだけのような人間に対して、その人間が予期しないような力をロボット１０が人間に加えてしまうことを防止することができる。
【００４１】
また、（条件２）のように、仮想反力トルクＴSELFと負荷トルクＴEXTの向きが反対であり（ＴEXT×ＴSELF＜０）、且つ、仮想反力トルクＴSELFが負荷トルクＴEXTよりも小さい場合（ＴEXT＞ＴSELF）には、負荷トルクＴEXT及び自己発生トルクＴSELF1を足し合わせて関節トルクＴSUMを生成する。これによって、自己干渉を回避しながら、ロボットの動作を人間の動作に追従させる。
【００４２】
このように、人間から加わる外力に応じて、関節トルクＴSUMを制御することにより、人間が予期しないような動作をロボットが表出してしまうことを防止することができる。これにより、ロボット１０に自然な動作を表出させることができる。
【００４３】
また、力センサ１５を先端部材１４に設け、負荷トルクＴEXTを検出された外力ＦEXTに基づいて、順運動学によって求めることで、負荷トルクＴEXTの演算を簡易化し、順運動学によって環境回避や人間追従の演算処理を行うことで、個別の制御則を用意する手間を省くことができる。
【００４４】
なお、本発明は、上記に示された実施の形態に限られず、いわゆる当業者によって種々の設計変更を行うことができるのは勿論である。例えば、力センサは、関節毎に設けるように構成することもできる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態に係るロボットの構成を示す概要図である。
【図２】本発明の実施形態に係るロボットが有する制御回路の構成を示す図である。
【図３】本発明の実施形態に係るロボットの制御方法を示す図である。
【図４】従来のロボットの問題点を示す図である。
【符号の説明】
【００４６】
１０    ロボット
１１    リンク部材
１２    関節部材
１３    モータ
１４    先端部材
１５    力センサ
１６    制御回路
１７    エンコーダ
２１    仮想反力演算部
２２    順運動学演算部
２３    トルク合成部
２４    関節角速度調整部
２５    モータアンプ
２６    仮想反力トルク生成部
２７    負荷トルク生成部
４１    ロボットボディ
４２、４３    リンク部材
ＦEXT    外力
Ｊ    ヤコビ行列
ＴEXT    負荷トルク
ＴSELF    仮想反力トルク
ＴSELF1    自己発生トルク
ＴSUM    関節トルク
【図１】
2009113147.tif 000006
【図２】
2009113147.tif 000007
【図３】
2009113147.tif 000008
【図４】
2009113147.tif 000009