(57)【特許請求の範囲】
【請求項１】
ロボットアームを有し、人と協働して物体を搬送するロボットであって、
上記ロボットアームに備えられて上記物体を保持する保持部と、
上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部とを備え、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うロボット。
【請求項２】
上記接触検知部は、上記ロボットアームと上記物体とが接触した方向を検知し、
上記接触検知部が検知した方向が、上記ロボットアームが上記物体を保持する方向である場合のみ、上記保持動作選択部が、上記人が上記ロボットアームにかけている力の情報によって、上記方向を制限した動作又は上記制限の無い動作を選択する請求項１に記載のロボット。
【請求項３】
上記接触検知部は、上記人が上記ロボットアームにかけている力の方向を検知し、
上記接触検知部が検知した方向が、上記保持部が上記物体を保持する際の最終接近動作において接近する方向であるときには、上記保持動作選択部が上記方向を制限した動作を選択し、上記接触検知部が検知した方向が、上記保持部が上記物体を保持する際の最終接近動作において接近する方向ではないときには、上記保持動作選択部が上記方向の制限の無い動作を選択する請求項１又は２に記載のロボット。
【請求項４】
上記接触状況検知部で検知した上記物体と上記保持部との距離が閾値よりも小さいときには、上記保持動作選択部が上記方向を制限した動作を選択し、上記接触状況検知部で検知した上記物体と上記保持部との距離が上記閾値以上のときには、上記保持動作選択部が上記方向の制限の無い動作を選択する請求項１又は２に記載のロボット。
【請求項５】
上記保持部は、吸着パッドを有するハンドである請求項１又は２に記載のロボット。
【請求項６】
上記ロボットアームは、柔軟性のある構造を持つ請求項１又は２に記載のロボット。
【請求項７】
上記ロボットアームは、空気圧人工筋を用いるアクチュエータである請求項１又は２に記載のロボット。
【請求項８】
上記保持動作選択部が上記方向を制限した動作を選択したときは、上記保持部が上記物体を保持する際の最終接近動作において接近する方向のみに動作する請求項１又は２に記載のロボット。
【請求項９】
上記保持動作選択部は、上記接触状況検知部により検知された接触状況と上記接触検知部が検知した方向とを基に、上記ロボットアームの上記保持部のうち上記物体に相対する面に対し垂直をなす方向と、上記接触検知部が検知した方向とがなす角度が閾値よりも小さいときに、上記ロボットアームが上記物体を保持する方向であると判断する、請求項２に記載のロボット。
【請求項１０】
上記保持動作選択部は、上記接触状況検知部により検知された接触状況と上記接触検知部が検知した方向とを基に、上記人が上記ロボットアームにかけている力の方向が、上記保持部のうち上記物体に相対する面の上記物体のうち保持部に相対する面に最も近い１点と、上記物体のうち上記保持部に相対する面との距離が最短距離となる方向と、上記保持部のうち上記物体に相対する面の垂線とがなす角度が、閾値よりも小さい状態を維持しながら、上記物体のうち上記保持部に相対する面と上記保持部のうち上記物体に相対する面とが近づく方向であるとき、最終接近動作において接近する方向であると判断する、請求項３に記載のロボット。
【請求項１１】
上記保持動作選択部が上記方向の制限の無い動作を選択したときは、上記ロボットアームが動作可能な全方向に動作する請求項１又は２に記載のロボット。
【請求項１２】
ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御装置であって、
上記ロボットアームに備えられた保持部で上記物体を保持するとき、上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時のロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部とを備え、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した人協調動作と、制限の無い人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するロボットの制御装置。
【請求項１３】
ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御方法であって、
上記ロボットアームに備えられた保持部で、上記物体を保持するとき、上記保持部と上記物体との接触を接触検知部で検知し、
上記物体と上記保持部との距離を接触時の接触状況として接触状況検知部で検知し、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を保持動作選択部で切替え、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作制御部で動作させ、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した人協調動作と、制限のない人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するロボットの制御方法。
【請求項１４】
ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御プログラムであって、
コンピュータを、
上記ロボットアームに備えられた保持部で、上記物体を保持するとき、上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部として機能させ、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した人協調動作と、制限のない人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するように機能させるためのロボット用制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の搬送をアシストする、パワーアシスト型のロボット、ロボットの動作を制御するロボットの制御装置及び制御方法、並びに、ロボット用制御プログラムに関する。
【背景技術】
【０００２】
近年、介護ロボット又は家事支援ロボットなどの家庭用ロボットが盛んに開発されるようになってきた。また、産業用ロボットでも、セル生産工場の広がりなどから、人と協働するロボットの開発が盛んに行われている。このような人と協働するアシストロボットは、従来のように人間の居るエリアとロボット用の作業エリアとを区切って動作するロボットとは異なり、人間と共生する必要がある。このため、従来の産業用ロボットなどとは異なる安全性が求められる。さらに、物体搬送において人と協働して作業を行うパワーアシストロボットは、物体を搬送しているときと、物体を搬送していないときとが存在し、これらの２状態を安全に切り替える必要がある。物体を搬送していない状態から物体を搬送する状態に切り替えるためには、ロボットが保持のために物体に接触する必要がある。しかしながら、パワーアシストロボットにおいてロボットを物体に接触させると、接触により、人の意図しない方向の力が力検出部に検出される。このように、人の意図しない方向の力が検出されると、ロボットが意図しない方向に動作したり、又は、ロボットを物体に押し当てる動作が難しかったりと、従来のアシストロボットでは、安全の面から問題があった。【０００３】
このような物体を保持するパワーアシストロボットにおいて、従来技術は、操作力の向きによってアシスト装置の動作に方向制限をかけて、保持物体（ワーク）を目標に沿いやすく動作するよう制御する制御方法を開示している（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４４３６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、保持物体を保持する際に、安全に接触するための動作が規定されておらず、物体を保持する際の安全性に課題があった。また、特許文献１の技術では、保持物体を保持するとき、予め定められた目標軌道の方向が必要である。よって、人が操作しつつ、さらに、その場の状況に応じて人が操作を変更する、パワーアシストロボットでの物体の保持において、特許文献１の技術を適用するのは難しいという課題があった。【０００６】
本発明の目的は、上記従来の課題を解決し、物体を保持する際にロボットを安全に操作しつつ物体を保持出来る、ロボット、ロボットの制御装置及び制御方法、並びに、ロボット用制御プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は以下のように構成する。【０００８】
本発明の１つの態様によれば、ロボットアームを有し、人と協働して物体を搬送するロボットであって、
上記ロボットアームに備えられて上記物体を保持する保持部と、
上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部とを備え、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うロボットを提供する。
【０００９】
これらの概括的かつ特定の態様は、システム、方法、コンピュータプログラム並びにシステム、方法及びコンピュータプログラムの任意の組み合わせにより実現してもよい。
【発明の効果】
【００１０】
本発明の上記態様によれば、人と協働して物体を搬送するロボットにおいて、物体を保持する際に保持物体とロボットアームとの接触が発生しても、物体を安全に保持することができるロボットが可能となる。
【図面の簡単な説明】
【００１１】
本発明のこれらと他の目的と特徴は、添付された図面についての好ましい実施形態に関連した次の記述から明らかになる。この図面においては、
【図１】図１は、本発明の第１実施形態におけるロボットシステムの概要を示す図であり、
【図２】図２は、本発明の第１実施形態におけるロボットシステムの構成を示す図であり、
【図３】図３は、本発明の第１実施形態におけるロボットの制御装置及び制御対象であるロボットの一部を示すブロック図であり、
【図４】図４は、本発明の第１実施形態における保持動作選択部の動作ステップを示すフローチャートであり、
【図５Ａ】図５Ａは、本発明の第１実施形態におけるロボットと保持物体の位置関係の一例を示す平面図であり、
【図５Ｂ】図５Ｂは、本発明の第１実施形態におけるロボットと保持物体の位置関係の上記一例を示す斜視図であり、
【図６Ａ】図６Ａは、本発明の第１実施形態におけるロボットと保持物体の位置関係の別の例を示す平面図であり、
【図６Ｂ】図６Ｂは、本発明の第１実施形態におけるロボットと保持物体の位置関係の上記別の例を示す斜視図であり、
【図７】図７は、本発明の第１実施形態における制御装置の動作ステップを示すフローチャートであり、
【図８】図８は、本発明の第１実施形態における空気圧人工筋をアクチュエータとしたロボットシステムの概要を示す図であり、
【図９】図９は、本発明の第１実施形態における弾性膨張収縮構造体の構造及び動作を示す図であり、
【図１０Ａ】図１０Ａは、本発明の第１実施形態におけるロボットアームが保持物体を保持する方向の一例を示す図であり、
【図１０Ｂ】図１０Ｂは、本発明の第１実施形態におけるロボットアームが保持物体を保持する方向の一例を示す図であり、
【図１１Ａ】図１１Ａは、本発明の第１実施形態におけるハンド構造のロボットアームが保持物体を保持する方向の一例を示す図であり、
【図１１Ｂ】図１１Ｂは、本発明の第１実施形態におけるハンド構造のロボットアームが保持物体を保持する方向の一例を示す図であり、
【図１２Ａ】図１２Ａは、本発明の第１実施形態におけるロボットアームが保持物体を保持する際の最終接近動作方向の一例を示す図であり、
【図１２Ｂ】図１２Ｂは、本発明の第１実施形態におけるロボットアームが保持物体を保持する際の最終接近動作方向の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００１３】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００１４】
本発明の第１態様によれば、ロボットアームを有し、人と協働して物体を搬送するロボットであって、
上記ロボットアームに備えられて上記物体を保持する保持部と、
上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部とを備え、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うロボットを提供する。
【００１５】
本発明の上記態様によれば、人と協働して物体を搬送するロボットにおいて、物体を保持する際に保持物体とロボットアームとの接触が発生しても、ロボットアームを安全に動作させて物体を安全に保持することができる。
【００１６】
本発明の第２態様によれば、上記接触検知部は、上記ロボットアームと上記物体とが接触した方向を検知し、
上記接触検知部が検知した方向が、上記ロボットアームが上記物体を保持する方向である場合のみ、上記保持動作選択部が、上記人が上記ロボットアームにかけている力の情報によって、上記方向を制限した人協調動作又は上記制限の無い人協調動作を選択する第１の態様に記載のロボットを提供する。
【００１７】
本発明の上記態様によれば、上記ロボットアームが上記物体と接触したときでかつ人が保持を目的として接触したときには、上記保持動作選択部による選択動作で邪魔されることがなく、上記ロボットアームを円滑に動作させて物体を安全に保持することができ、上記人が上記ロボットアームを上記物体を保持する方向に移動させて上記物体に対する上記保持部の位置ずれを修正させるときでも、上記保持動作選択部による選択動作で邪魔されることがなく、上記ロボットアームを円滑に動作させて物体を安全に保持することができる。
【００１８】
本発明の第３態様によれば、上記接触検知部は、上記人が上記ロボットアームにかけている力の方向を検知し、
上記接触検知部が検知した方向が、上記保持部が上記物体を保持する際の最終接近動作において接近する方向であるときには、上記保持動作選択部が上記方向を制限した動作を選択し、上記接触検知部が検知した方向が、上記保持部が上記物体を保持する際の最終接近動作において接近する方向ではないときには、上記保持動作選択部が上記方向の制限の無い動作を選択する第１又は２の態様に記載のロボットを提供する。
【００１９】
本発明の上記態様によれば、物体の保持のために物体と接触したことにより人の意図しない方向の力が接触検知部に検出されても、動作方向が物体に接近する方向に制限されているため、安定的な接近動作を実現でき、保持対象物体を保持部で確実に保持することができると同時に、人がロボットアームを物体を保持する方向だけではなく、他の方向に力をかけてロボットアームを移動させることにより、物体に対するハンドなどの保持部の位置ずれを修正するときでも、保持動作選択部による選択動作で邪魔されることがなく、ロボットアームを円滑に動作させて物体を安全に保持することができる。
【００２０】
本発明の第４態様によれば、上記接触状況検知部で検知した上記物体と上記保持部との距離が閾値よりも小さいときには、上記保持動作選択部が上記方向を制限した動作を選択し、上記接触状況検知部で検知した上記物体と上記保持部との距離が上記閾値以上のときには、上記保持動作選択部が上記方向の制限の無い動作を選択する第１〜３のいずれか１つの態様に記載のロボットを提供する。
【００２１】
本発明の上記態様によれば、ロボットアームは保持対象物体の近傍にあり、最終接近動作を行えば保持対象物体を保持部で確実に保持することができる場合（上記物体と上記保持部との距離が上記閾値よりも小さいとき）には、物体の保持のために物体と接触したことにより人の意図しない方向の力が接触検知部に検出されても、動作方向が物体に接近する方向に制限されているため、安定的な接近動作を実現でき、保持対象物体を保持部で確実に保持することができ、ロボットアームが保持対象物体の近傍にはない場合（上記物体と上記保持部との距離が上記閾値以上のとき）には、任意の方向にロボットアームの位置が修正可能であるため、保持対象物体を保持部で確実に保持することができる。
【００２２】
本発明の第５態様によれば、上記保持部は、吸着パッドを有するハンドである第１〜４のいずれか１つの態様に記載のロボットを提供する。
【００２３】
本発明の上記態様によれば、物体を保持する目的で吸着パッドを保持対象である物体に接触させたとき、必要な吸着圧を出すためにはただ接触させている状態ではなく、多少押しつける動作が必要となる場合が多い。このような場合でも、接触検知部によって物体とロボットアームの保持部との接触が検知された際に、ロボットアームが動作を一旦停止し、その後、保持動作選択部が、人がロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを適切に選択し、選択された動作を動作制御部によって実現することで、保持対象物体を保持部で確実に保持することができる。
【００２４】
本発明の第６態様によれば、上記ロボットアームは、柔軟性のある構造を持つ第１〜５のいずれか１つの態様に記載のロボットを提供する。
【００２５】
本発明の上記態様によれば、特に、ロボットアームが柔軟性のある構造を持つ場合、人がロボットアームに力をかけていると、ロボットアームの本来の位置よりも少し先の位置に、ロボットアームが実際に位置しており、手を離すと、ロボットアームが本来の位置に戻る傾向がある。このような場合でも、接触検知部によって物体とロボットアームとの接触が検知された際に、ロボットアームが動作を一旦停止し、その後、保持動作選択部が、人がロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを適切に選択し、選択された動作を動作制御部によって実現することで、保持対象物体を保持部で確実に保持することができる。
【００２６】
本発明の第７態様によれば、上記ロボットは、空気圧人工筋を用いるアクチュエータである第１〜５のいずれか１つの態様に記載のロボットを提供する。
【００２７】
本発明の上記態様によれば、ロボットは、空気圧人工筋を用いるアクチュエータである場合、柔軟性持つ構造であるため、上記第５の態様と同様な効果を奏することができる。
【００２８】
本発明の第８態様によれば、上記保持動作選択部が上記方向を制限した動作を選択したときは、上記保持部が上記物体を保持する際の最終接近動作において接近する方向のみに動作する第１〜７のいずれか１つの態様に記載のロボットを提供する。
【００２９】
本発明の上記態様によれば、ロボットアームは、物体の保持のために物体と接触したことにより人の意図しない方向の力が接触検知部に検知されても、動作方向が物体に接近する方向に制限されているため、安定的な接近動作を実現でき、保持対象物体を保持部で確実に保持することができる。
【００３０】
本発明の第９態様によれば、上記接触検知部は、上記ロボットアームの上記保持部のうち上記物体に相対する面に対し垂直をなす方向と、上記接触検知部が検知した方向とがなす角度が閾値よりも小さいときに、上記ロボットアームが上記物体を保持する方向であると検知する第２の態様に記載のロボットを提供する。
本発明の上記態様によれば、人が物体の保持のためにロボットアームを物体と接触させた場合に、物体と保持部との相対関係が保持可能な範囲であれば、完全に相対する面が接触出来ていなくても保持する方向であると検知することにより、ロボットアームと物体が接触する際の人の動作が不完全であっても安定的な接近動作を実現でき、保持対象物体を保持部で確実に保持することができる。
本発明の第１０態様によれば、上記接触検知部は、上記人が上記ロボットアームにかけている力の方向が、上記保持部のうち上記物体に相対する面の上記物体のうち保持部に相対する面に最も近い１点と、上記物体のうち上記保持部に相対する面との距離が最短距離となる方向と、上記保持部のうち上記物体に相対する面の垂線とがなす角度が、閾値よりも小さい状態を維持しながら、上記物体のうち上記保持部に相対する面と上記保持部のうち上記物体に相対する面とが近づく方向であるとき、最終接近動作において接近する方向であると検知する第３の態様に記載のロボットを提供する。
【００３１】
本発明の上記態様によれば、人が物体の保持のためにロボットアームを物体に接近させる場合に、人が接近方向と多少ずれた方向にロボットアームを動作させても、保持が可能な方向であれば保持可能な方向と検知することで、安定的な接近動作を実現でき、保持対象物体を保持部で確実に保持することができる。
本発明の第１１態様によれば、上記保持動作選択部が上記方向の制限の無い動作を選択したときは、上記ロボットアームが動作可能な全方向に動作する第１〜１０のいずれか１つの態様に記載のロボットを提供する。
【００３２】
本発明の上記態様によれば、ロボットアームは、保持対象物体とロボットアームの保持部が物体に接近する方向に保持部が移動しても保持できる位置関係にない場合には方向の制限のない動作が選択されることにより、任意の方向にロボットアームの位置が修正可能であるため、保持対象物体を保持部で確実に保持することができる。
【００３３】
本発明の第１２態様によれば、ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御装置であって、
上記ロボットアームに備えられた保持部で上記物体を保持するとき、上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部とを備え、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した人協調動作と、制限の無い人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するロボットの制御装置を提供する。
【００３４】
本発明の上記態様によれば、人と協働して物体を搬送するロボットにおいて、物体を保持する際に保持物体とロボットアームとの接触が発生しても、ロボットアームを安全に動作させて物体を安全に保持することができる。
【００３５】
本発明の第１３態様によれば、ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御方法であって、
上記ロボットアームに備えられた保持部で、上記物体を保持するとき、上記保持部と上記物体との接触を接触検知部で検知し、
上記物体と上記保持部との距離を接触時の接触状況として接触状況検知部で検知し、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を保持動作選択部で切替え、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作制御部で動作させ、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した人協調動作と、制限のない人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するロボットの制御方法を提供する。
【００３６】
本発明の上記態様によれば、人と協働して物体を搬送するロボットにおいて、物体を保持する際に保持物体とロボットアームとの接触が発生しても、ロボットアームを安全に動作させて物体を安全に保持することができる。
【００３７】
本発明の第１４態様によれば、ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御プログラムであって、
コンピュータを、
上記ロボットアームに備えられた保持部で、上記物体を保持するとき、上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部として機能させ、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記人が上記ロボットアームにかけている力の情報によって、停止継続動作と、方向を制限した人協調動作と、制限のない人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するように機能させるためのロボット用制御プログラムを提供する。
【００３８】
本発明の上記態様によれば、人と協働して物体を搬送するロボットにおいて、物体を保持する際に保持物体とロボットアームとの接触が発生しても、ロボットアームを安全に動作させて物体を安全に保持することができる。
【００３９】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００４０】
（第１実施形態）
図１は、本発明の第１実施形態にかかるロボットシステム１００の概要を示す図である。
【００４１】
ロボットシステム１００のロボット２０は、ロボットアーム２１を備えるとともに、Ｌ字状のハンドル３６を備えている。人９１がハンドル３６を持ってロボットアーム２１を操作することで、ロボットアーム２１が動作し、人９１と協働して物体３０を搬送することができる。さらに、ロボットアーム２１は、保持部の一例として機能するハンド２２を先端に備えていて、ハンド２２で物体３０を保持しつつ搬送する機能を持つ。人９１がロボットアーム２１を操作しつつ物体３０をロボットアーム２１で搬送することで、ロボット２０は、物体搬送のアシストアームとして機能する。
【００４２】
図２は、本発明の第１実施形態にかかるロボットシステム１００の構成を示す図である。
【００４３】
ロボットシステム１００は、制御装置５０と、制御対象であるロボット２０とにより構成されている。
【００４４】
制御装置５０は、この第１実施形態では、一例として、一般的なパーソナルコンピュータにより構成されており、制御装置５０は、制御プログラム４０と、入出力ＩＦ４１とで構成されている。入出力ＩＦ（インターフェース）４１は、パーソナルコンピュータのＰＣＩバスなどの拡張スロットに接続された、例えば、Ｄ／Ａボードと、Ａ／Ｄボードと、カウンタボードとなどを備えるように構成されている。
【００４５】
制御装置５０は、入力部の一例としての入出力ＩＦ４１を介して、ロボット機構部６の各リンクマニピュレータを駆動するモータドライバ２４と接続され、そのモータドライバ２４に制御信号を送る。
【００４６】
ロボット２０は、上記したように、ロボットアーム２１を備えている。ロボットアーム２１の構造については後述する。
【００４７】
ロボットアーム２１の動作を制御する制御装置５０が実行されることにより、ロボットアーム２１の各関節部の後述するエンコーダ７より出力される各関節角度情報を検出し、入出力ＩＦ４１のカウンタボードを通じて制御装置５０に取り込まれ、取り込まれた各関節角度情報に基づき制御装置５０によって各関節部の回転動作での制御指令値が算出される。算出された各制御指令値は、入出力ＩＦ４１のＤ／Ａボードを通じて、ロボットアーム２１の各関節部を駆動制御するためのモータドライバ２４に与えられ、モータドライバ２４から送られた各制御指令値に従って、ロボットアーム２１の各関節部のモータ２３が駆動される。このモータドライバ２４とモータ２３とで駆動部の一例として機能する。また、エンコーダ７は、角度情報を出力する角度検出部の一例として機能する。
【００４８】
ロボットアーム２１は、一例として、３自由度の多リンクマニピュレータであり、先端には、ハンド２２の取り付けが可能である。ロボットアーム２１は、ハンド２２が取り付けられている第３リンク３１と、第３リンク３１を先端に有する第２リンク３２と、第２リンク３２の基端に先端が回転可能に連結される第１リンク３３と、第１リンク３３の基端が回転可能に連結支持され床９０に固定される台部３４とを備えている。さらに、人９１が持って操作を行うハンドル３６が、第３リンク３１の先端に、力検出部の一種である力センサ２５を介して取り付けられている。
【００４９】
ロボットアーム２１は、直交するｘ軸とｙ軸とを含むｘｙ平面内で正逆回転する第１関節軸３５−１と、同じくｘｙ平面内で正逆回転する第２関節軸３５−２と、同じくｘｙ平面内で正逆回転する第３関節軸３５−３とを備えて構成されている。第１関節軸３５−１と第２関節軸３５−２と第３関節軸３５−３とは、それぞれ、ロボットアーム２１の第１関節と第２関節と第３関節との回転軸である。この結果、ロボットアーム２１は、第１関節軸３５−１から第３関節軸３５−３の合計３個の軸周りにそれぞれ独立して回転可能として、上記３自由度の多リンクマニピュレータを構成している。
【００５０】
各軸の回転部分を構成する各関節部には、各関節部を構成する一対の部材（例えば、回動側部材と、該回動側部材を支持する支持側部材）のうちの一方の部材に備えられ、かつ後述するモータドライバ２４により駆動制御される回転駆動装置の一例としてのモータ２３（実際には、ロボットアーム２１の各関節部の内部に配設されている）と、モータ２３の回転軸の回転位相角（すなわち、関節角）を検出するエンコーダ７（実際には、ロボットアーム２１の各関節部の内部に配設されている）とを備える。よって、各関節部を構成する一方の部材に備えられたモータ２３の回転軸が、各関節部の他方の部材に連結されて上記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【００５１】
図３は、本発明の第１実施形態にかかるロボット２０の制御装置５０及び制御対象であるロボット２０の一部を示すブロック図である。
【００５２】
ロボット２０の制御装置５０は、少なくとも、接触検知部１１と、接触状況検知部１３と、保持動作選択部１４と、力制御部１２とを備えて構成している。接触検知部１１は、ハンド２２と物体３０との接触を検知する。接触状況検知部１３は、物体３０とロボット２０（ハンド２２）との距離を接触時の接触状況の一例として検知する。保持動作選択部１４は、接触状況検知部１３により検知された接触状況によって保持時のロボットアームの動作を切替える。力制御部１２は、人９１がロボットアーム２１にかけた力に応じてロボットアーム２１を動作させる。よって、接触検知部１１によって接触が検知された際に、ロボットアーム２１が一旦停止し、その後、保持動作選択部１４は、ロボットアーム２１と接触した物体３０との距離もしくは人９１がロボットアーム２１にかけている力もしくはその両方の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを選択し、選択された動作を力制御部１２によって実現することで保持動作を行う。
【００５３】
より詳しくは、制御装置５０は、目標軌道生成部１と、目標位置加算部８と、方向制限部５と、逆運動学計算部４と、目標角加速度計算部２と、目標関節トルク計算部３と、出力誤差計算部９と、修正目標角加速度計算部１０と、力制御部１２と、接触検知部１１と、接触状況検知部１３と、保持動作選択部１４とを備えて構成している。また、ロボット２０は、ロボットアーム２１で構成されるロボット機構部６と、エンコーダ７と、力センサ２５と、ハンド２２とを備え構成している。また、制御装置５０に対しては、エンコーダ７で計測されたロボット２０からの関節角度計測情報と、力検出部の一例である力センサ２５で計測されかつ人がハンドル２２にかけた力情報（力ベクトルＦ）と、ハンド２２の保持の有無の情報とが入力される。
【００５４】
目標軌道生成部１は、目標とするロボット２０の動作を実現するための目標位置ベクトルｒｄを目標位置加算部８に出力する。目標とするロボット２０の動作は、目的とする作業に応じて、事前に、それぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイントごとの目標位置ｒｄｔ＝［ｒｄｔ１，ｒｄｔ２］Ｔ（ｒｄ０、ｒｄ１、ｒｄ２、・・・）が目標軌道生成部１内の記憶部に記録されている。そして、目標位置生成部１は、それぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイントごとの位置（ｒｄ０、ｒｄ１、ｒｄ２、・・・）の情報を基に多項式補間を使用し、各ポイント間の軌道を補完し、目標位置ベクトルｒｄ＝［ｒｄ１，ｒｄ２］Ｔを生成する。
【００５５】
目標位置加算部８は、目標軌道生成部１から出力された目標位置角度ベクトルｒｄと力制御部１２から出力された補正目標位置ベクトルΔｒｄとが入力され、修正目標位置ベクトルｒｄｍ＝ｒｄ＋Δｒｄを計算し、計算で求められた値を逆運動学計算部４に出力する。
【００５６】
力制御部１２は、動作制御部の一例として機能し、方向制限部５の出力である方向制限力情報（方向制限力ベクトルＦｒｓ）を基に、補正目標位置ベクトルΔｒｄを算出して目標位置加算部８に出力する。力制御部１２は、インピーダンス制御法又はコンプライアンス制御法等の力制御手法により、補正目標位置ベクトルΔｒｄを算出する。人９１がロボットアーム２１に取り付けられたハンドル３６にかけた力を、力検出部の一種である力センサ２５で検出し、検出した力を基に力制御部１２が補正目標位置ベクトルΔｒｄを算出して出力する。このような方法で、人９１がかけた力の方向にロボットアーム２１が動作する、人協調動作を実現することができる。
【００５７】
方向制限部５は、保持動作選択部１４から出力された制限方向情報と、力センサ２５から出力された力情報（力ベクトルＦ）とが入力され、方向制限力ベクトルＦｒｓを力制御部１２に出力する。方向制限部５は、後述する保持動作選択部１４から出力される制限方向情報に基づき、方向制限力ベクトルＦｒｓのうち、制限をかける方向の成分については０で置き換える情報を出力する。方向制限部５は、制限をかけない方向の成分については、力センサ２５から入力された値をそのまま出力する。ロボット機構部６の動作を停止させる場合には、保持動作選択部１４からの全方向制限信号に基づき、制限部５は、全ての方向に制限をかけるため、全ての方向の成分について０で置き換える情報を出力する。逆に、ロボット機構部６を自由に動作させる場合には、保持動作選択部１４からの信号に基づき、制限部５は、全ての方向に制限をかけないため、全ての方向の成分について力センサ２５から入力された値をそのまま出力する。
【００５８】
一例として、保持動作選択部１４から出力された情報がｘ方向の場合、すなわちｘ方向には制限をかけて、ｙ方向には動作する場合を説明する。力センサ２５の出力である力情報Ｆｓは、ｘ方向の情報とｙ方向の情報とを持つ力ベクトルＦｓ＝［Ｆｓ１，Ｆｓ２］Ｔである。方向制限部５においては、力ベクトルＦｓの内、制限をかけるｘ方向の力ベクトルＦｓ１は０で置き換える。方向制限部５においては、ｙ方向については、制限をかけないので力ベクトルＦｓ２をそのまま利用する。これで、方向制限力ベクトルＦｒｓ＝［０，Ｆｓ２］Ｔが算出され、算出した値を方向制限部５から力制御部１２に出力する。また、保持動作選択部１４から出力された情報がｘ方向とｙ方向との場合、すなわちｘ方向とｙ方向との両方に制限をかけて停止動作させる場合、方向制限部５においては、力ベクトルＦｓの内、制限をかけるｘ方向とｙの方向の力ベクトルＦｓ１及びＦｓ２をそれぞれ０で置き換える。よって、方向制限力ベクトルＦｒｓ＝［０，０］Ｔが算出され、算出した値を方向制限部５から力制御部１２に出力する。
【００５９】
逆運動学計算部４は、目標位置加算部８から出力された修正目標位置ベクトルｒｄｍが入力され、目標角度ベクトルｑｄｍを計算で求めて、目標角加速度計算部２と出力誤差計算部９とに出力する。目標角度ベクトルｑｄｍは、ロボット２０の幾何学情報から計算される。
【００６０】
出力誤差計算部９は、逆運動学計算部４１から出力された目標角度ベクトルｑｄｍとエンコーダ７の出力ｑとが入力され、角度誤差ベクトルｑｅ＝ｑｄｍ−ｑを計算し、出力誤差の一例として角度誤差ベクトルｑｅを修正目標角加速度計算部１０に出力する。
【００６１】
目標角加速度計算部２は、逆運動学計算部４が出力した目標角度ベクトルｑｄｍが入力され、目標角加速度
【数１】
0005942311.tif 000002
を修正目標角加速度計算部１０に出力する。
【００６２】
修正目標角加速度計算部１０は、目標角加速度計算部２の出力である目標角加速度
【数２】
0005942311.tif 000003
と出力誤差計算部９の出力である角度誤差ベクトルｑｅとが入力され、制御指令値の一例として修正目標角加速度
【数３】
0005942311.tif 000004
を目標関節トルク計算部３に出力する。
【００６３】
目標関節トルク計算部３は、修正目標角加速度計算部１０の出力である修正目標角加速度
【数４】
0005942311.tif 000005
と目標関節トルク計算部３の記憶部に予め記憶しているダイナミクスパラメータとから、目標関節トルクτｄを演算し、目標関節トルクτｄをロボット機構部６のモータドライバ２４に出力する。目標関節トルクτｄの演算方法の一例として、以下の式で目標関節トルクτｄを算出する。
【００６４】
【数５】
0005942311.tif 000006
【数６】
0005942311.tif 000007
は、それぞれ、物体３０及びロボット２０のダイナミクスパラメータからなる係数行列であり、
【数７】
0005942311.tif 000008
は物体３０及びロボット２０の質量にかかる重力項である。
【００６５】
目標関節トルクτｄは、Ｄ／Ａボードなどの入出力ＩＦ４１を介してモータドライバ２４にトルク目標値として入力され、各関節軸３５に備え付けられたモータ２３がそれぞれ独立して正逆回転駆動されて、ロボット機構部６のロボットアーム２１が動作する。
【００６６】
ロボット機構部６のロボットアーム２１が動作した結果、ロボット２０の関節角度は変化し、その関節角度ｑを検出するエンコーダ７から検出した結果が、入出力ＩＦ４１を介して出力誤差計算部９と接触状況検知部１３とに入力される。
【００６７】
接触検知部１１は、ロボットアーム２１が外界の物体３０に接触したこと及び、接触の方向を検知し、接触検知信号を接触状況検知部１３と保持動作選択部１４とに出力する。接触検知信号には接触した方向の情報が含まれる。接触の検知方法は、一例として、ロボットアーム２１に付けられた接触検知センサ２６又は近接センサ等が挙げられる。また、モータ２３の電流値などから接触を検知する方法もある。例えばロボットアーム２１に取り付けてある後述の吸着パッド２２ａに、いくつかの接触検知センサ２６を取り付け、どの接触検知センサ２６が検知したかによって、接触方向は容易に検出可能である(図２参照)。
【００６８】
接触状況検知部１３は、接触検知部１１から接触検知信号が入力され、入力された接触検知信号に基づき、接触状況情報を保持動作選択部１４に出力する。接触状況情報には、接触した物体３０と停止したロボット２０のハンド２２との距離、人９１がロボット２０のロボットアーム２１にかけている力の方向、及び／又は、ロボットアーム２１（ハンド２２）と接触物体３０とが接触した方向などがある。
【００６９】
物体３０とロボット２０のハンド２２との距離とは、ロボット２０のハンド２２が物体３０に衝突（物体保持のために接触）した後にロボット２０の動作が一旦停止した時点での、物体３０とロボット２０のハンド２２との距離を指す。この距離は、ハンド２２に取り付けた距離センサなどを用いて直接計測して、距離センサから接触状況検知部１３に入力されることにより、接触状況検知部１３で求めてもよい。代わりに、エンコーダ７から接触状況検知部１３に入力される関節角度ｑに基づき、衝突時のハンド２２の位置と停止時のハンド２２の位置とを接触状況検知部１３で比較して、上記距離を求めてもよい。人９１がロボット２０のロボットアーム２１にかけている力の方向は、力センサ２５で検知した人９１がロボットアーム２１にかけている力の情報を基に、接触状況検知部１３で求めることができる。力の方向は、力センサ２５の情報である力ベクトルＦｓ＝［Ｆｓ１，Ｆｓ２］Ｔにおいて
【数８】
0005942311.tif 000009
とすれば算出可能である。
【００７０】
保持動作選択部１４は、接触状況検知部１３から入力された接触状況情報を基に、保持動作として、「停止継続動作」と、「方向を制限した人協調動作」と、「方向制限の無い人協調動作」との３つの動作から１つの動作を選択する。保持動作選択部１４が「停止継続動作」を選択した場合は、全方向の情報を制限信号として方向制限部５に出力する。また、保持動作選択部１４が「方向を制限した人協調動作」を選択した場合は、制限する方向の情報を、制限信号（制限方向情報）として、方向制限部５に出力する。ただし、ロボット２０が物体３０に衝突した後、ロボット２０がその動作を一旦停止してから保持動作を選択することになる。このため、保持動作選択部１４は、接触検知部１１から接触検知信号が入力されたら、予め決められた時間（例えば１秒）は、必ずロボット２０の停止動作のために、全方向の制限信号を方向制限部５に出力する。その後、保持動作選択部１４は、接触状況検知部１３から入力された接触状況情報を基に、３つの保持動作から選択した保持動作を行うための制限信号（制限方向情報）を、方向制限部５に出力する。さらに、ロボットアーム２１のハンド情報が入力され、ハンド２２が閉、すなわち、ハンド２２が物体３０を保持したという情報を保持動作選択部１４で受け取ると、保持動作選択部１４からの制限信号の出力を終了する。
【００７１】
ここで、保持動作とは、一例として、吸着動作を意味する。具体的には、物体３０を吸着可能な吸着パッド２２ａをハンド２２に装着するとともに、吸着パッド２２ａに圧力センサ２２ｂを設けている。そして、圧力センサ２２ｂにより、物体３０の保持、すなわち、吸着パッド２２ａに物体３０が吸着されることによる吸引力の変化を検出して、吸着パッド２２ａに物体３０が吸着されたか否かを検出し、検出結果を、ハンド２２の保持の有無の情報として、圧力センサ２２ｂから制御装置５０に出力する。
【００７２】
保持動作選択部１４の具体的動作を以下に述べる。ロボットアーム２１のハンド２２が保持物体３０と接触した後、ハンド２２と保持物体３０とがほぼ接触した状態で停止動作している場合、これ以上、ロボットアーム２１のハンド２２を物体３０に押しつける動作を行うと、ハンド２２と物体３０との間に押しつけ力が過大に発生して危険である。このため、このような動作を行わないために、保持動作選択部１４は人協調動作を選択せず、停止継続動作するのが望ましい。そこで、接触状況情報の内、接触した物体３０と停止したロボット２０のハンド２２との距離の情報が予め決められた閾値未満であると保持動作選択部１４で判断した場合は、保持動作選択部１４は停止継続動作を選択する。閾値は、吸着パッド２２ａが物体を確実に保持できる吸着パッド２２ａと物体３０の相対距離を予め実験等により求めておき、保持動作選択部１４の記憶部に記憶しておく。
【００７３】
また、接触した方向が、ハンド２２が保持する方向とは異なる場合は、保持のために接触したのではなく、ロボットアーム２１が、保持を目的とした物体３０とは異なる周辺環境にぶつかったと判断するか、もしくは、衝突した対象は、保持を目的とした物体３０ではあるが、ロボットアーム２１と物体３０の位置関係が保持に適切な位置にないと保持動作選択部１４で判断し、保持動作選択部１４は人協調動作を選択せず、停止継続動作をするのが望ましい。そこで、接触状況情報の内、接触した方向が、ハンド２２の保持する方向とは異なると保持動作選択部１４で判断した場合は、保持動作選択部１４は停止継続動作を選択する。
【００７４】
接触した方向が、ハンド２２が保持する方向かどうかの保持動作選択部１４での判断の一例として、図２の接触検知センサ２６により接触した方向を検知した例を元に説明する。吸着パッド２２ａが物体を保持をするときに物体と接触する方向はｙ軸負の方向であり、吸着パッド２２ａの下面が吸着面である。そこで、接触検知センサ２６を、吸着パッド２２ａの吸着面を含むいくつかの方向に向けて取り付けておく。吸着面に取り付けた接触検知センサ２６が接触を検知した場合、接触状況検知部１３から、物体と接触した方向がｙ軸負の方向であることが接触検知信号として入力されるので、接触した方向が、ハンド２２が保持する方向と一致することが保持動作選択部１４で判断できる。また、例えば、吸着パッド２２ａの側面であるｘ軸正の方向に取り付けられた接触検知センサ２６が接触を検知した場合、接触状況検知部１３から、物体と接触した方向がｘ軸正の方向であることが接触検知信号として入力されるので、接触した方向が、ハンド２２が保持する方向と異なることが保持動作選択部１４で判断できる。
【００７５】
さらに、接触した方向が、ハンド２２が保持する方向かどうかの保持動作選択部１４での判断の一例として、図１０Ａ及び図１０Ｂの例を基に説明する。
図１０Ａの例では、接触した方向（実線ｃ）はｙ軸正の方向であることが、接触検知信号として接触状況検知部１３から保持動作選択部１４に入力される。一方、吸着パッド２２ａの吸着面（破線ａ）と直交する方向（破線ｂ）はｙ軸方向と一致しておらず、接触した方向が、ハンド２２が保持する方向と一致しているとはいえない。しかし、多少角度がずれた状態で吸着パッド２２ａを物体３０に押しつけても、吸着パッド２２ａにより物体３０の保持が可能である。そこで、吸着パッド２２ａの吸着面と直交する方向（破線ｂ）と接触した方向（実線ｃ）とのなす角度（保持部のうち物体３０に相対する面に対し垂直をなす方向と、接触検知部１１が検知した方向とがなす角度）、すなわち、破線ｂと破線ｄとのなす角度θ１の閾値（保持方向判断用閾値）を実験等で予め決めておき、保持動作選択部１４の記憶部に記憶しておく。図１０Ａの場合、角度θ１が閾値（保持方向判断用閾値）以内であるので、吸着パッド２２ａにより物体３０を保持可能であり、接触した方向が、ハンド２２が保持する方向と一致すると保持動作選択部１４で判断する。
【００７６】
一方、図１０Ｂの例では、吸着パッド２２ａの吸着面と直交する方向（破線ｂ）と接触した方向（実線ｃ）のなす角度、すなわち、破線ｂと破線ｄのなす角度θ２が閾値を超えているので、接触した方向が、ハンド２２が保持する方向と一致しないと保持動作選択部１４で判断する。
ハンド２２としては、吸着パッド２２ａに限定されるものではなく、一般的な保持動作を行うハンド２２でも同様である。図１１Ａと図１１Ｂとは、それぞれハンド２２を例に説明する。
【００７７】
図１１Ａは、図１０Ａと同じく、接触した方向が、ハンド２２が保持する方向と一致すると保持動作選択部１４で判断する例である。ハンド２２がチャック２２ｂの構造の場合、吸着パッド２２ａの吸着面のようなハンド２２と物体３０との明確な接着面はないが、物体３０に相対する面に相当する面として、チャック２２ｂのＬ字状の屈曲部２２ｃの回転支点同士を結ぶ破線ａを含む面がある。これは、物体３０をまっすぐに保持した場合に、物体３０のうちハンド２２の根本に最も近くハンド２２に相対する面と略平行となる面である。この面に対して垂直となる破線ｂと接触した方向（実線ｃ）のなす角度、すなわち破線ｂと破線ｄとのなす角度θ３が閾値以内である場合は保持可能であるため、接触した方向が、ハンド２２が保持する方向と一致すると保持動作選択部１４で判断する。
図１１Ｂも同様に、破線ａを含む面に対して垂直となる破線ｂを定義し、破線ｂと破線ｄのなす角θ４が閾値以上であるため、接触した方向が、ハンド２２が保持する方向と一致しないと保持動作選択部１４で判断する。
【００７８】
次に、物体３０と停止したロボット２０のハンド２２との距離が上記閾値以上であると保持動作選択部１４が判断した場合について述べる。
【００７９】
図５Ａ及び図５Ｂは、物体３０とハンド２２とが接触した後、ロボット２０が停止動作している状態でハンド２２で物体３０を保持しようとする人９１とロボットアーム２１と物体３０との位置の一例を示す平面図及び斜視図である。図５Ａ及び図５Ｂに示す様に、ハンド２２の保持面（一例として吸着面）全体が物体３０に対して正対する位置にある場合、人９１はハンド２２の保持面を物体３０に押し当てる方向（保持方向）（図５Ｂのｙ方向の負の方向）のみに動かすだけでよいため、人９１は主にｙ方向の負の方向に力をかける。吸着パッド２２ａで物体を保持する際に、保持する直前のロボットアームの動作方向、すなわち、最終接近動作の方向は保持面（吸着面）を物体に押し当てる方向、すなわち、図５の例ではｙ方向の負の方向になるはずである。そこで、接触停止後、人９１がｙ方向の負の方向すなわちハンド２２の保持面を物体３０に押し当てる方向（保持方向）のみに力をかけている場合は、ハンド２２が物体３０に対して保持しようと近づく方向、すなわち図５Ｂのｙ方向にのみに動作するよう制限した人協調動作（「方向を制限した人協調動作」）を保持動作選択部１４により選択する。すなわち、制限方向ｘの情報を制限方向情報として出力する。
【００８０】
このように、人９１がロボット２０のロボットアーム２１に物体３０を保持する方向に力をかけてロボット２０のロボットアーム２１を移動させて、物体３０をハンド２２で保持するとき、「方向を制限した人協調動作」を保持動作選択部１４により選択するようにしている。このため、保持動作選択部１４による適切な選択動作により、ロボット２０のロボットアーム２１を円滑に動作させて物体３０を安全に保持することができる。
さらに、人９１がロボット２０のロボットアーム２１にかけている力の方向が、最終接近動作の方向であるかどうかの保持動作選択部１４による判断の例を、図１２Ａ及び図１２Ｂにより説明する。
【００８１】
図１２Ａでは、吸着パッド２２ａのうち物体３０に相対する面は、吸着パッド２２ａの吸着面（破線ａ）である。また、物体３０のうち吸着パッド２２ａの吸着面に相対する面は、物体３０の上面（灰色塗りつぶし面）３０ｂである。吸着面のうち物体３０の上面３０ｂに最も近い一点（点ｄ）と物体３０の上面３０ｂとの距離が最短距離となる方向は、点ｄから物体３０の上面３０ｂにおろした垂線（実線ｅ）の方向である。この実線ｅと平行である破線ｆと吸着パッド２２ａの吸着面のうち物体３０に相対する面の垂線（破線ｃ）とのなす角度θ５が閾値（保持方向判断用閾値）よりも小さく、この状態を維持したまま、吸着面と物体３０の上面３０ｂとが接近する方向に移動する方向が、最終接近動作において接近する方向である。言い換えれば、図１２Ａにおいて、角度θ５は、保持部のうち物体３０に相対する面の物体３０のうち保持部に相対する面に最も近い１点と、物体３０のうち保持部に相対する面との距離が最短距離となる方向と、保持部のうち物体３０に相対する面の垂線とがなす角度である。人９１がロボット２０のロボットアーム２１にかけている力の方向にロボットアーム２１は移動するため、例えば人９１がかけている力の方向が破線ｆと平行でかつ力のベクトルのＹ成分が負であれば、最終接近動作において接近する方向であると保持動作選択部１４で判断する。また、人９１がかけている力の方向が破線ｃと平行でも力のベクトルのＹ成分が正の場合、物体３０のうち吸着パッド２２ａの吸着面に相対する面との距離が最短距離となる方向と、吸着パッド２２ａの吸着面のうち物体３０に相対する面の垂線とがなす角度θ５が、閾値（保持方向判断用閾値）よりも小さい状態を維持するが、物体３０のうち吸着パッド２２ａの吸着面に相対する面と吸着パッド２２ａの吸着面のうち物体３０に相対する面が遠ざかる方向なので、接近する方向ではないと保持動作選択部１４で判断する。また、図１２Ａの状態から図１２ＢのＦの方向に人９１が力をかけた場合、物体３０のうち吸着パッド２２ａの吸着面に相対する面との距離が最短距離となる方向と、吸着パッド２２ａの吸着面のうち物体３０に相対する面の垂線とがなす角度が、閾値（保持方向判断用閾値）よりも大きくなってしまうので、やはり、最終接近動作において接近する方向ではないと保持動作選択部１４で判断する。
【００８２】
また、別の例を示す。図６Ａ及び図６Ｂは、物体３０とハンド２２とが接触した後、ロボット２０が停止動作している状態でハンド２２で物体３０を保持しようとする人９１とロボットアーム２１と物体３０との位置の一例を示す平面図及び斜視図である。図６Ａ及び図６Ｂの場合、ハンド２２の保持面全体が物体３０と正対していないため、人９１は、ハンド２２の保持面が物体３０の上面の上方に位置する様に、ハンド２２を移動させる必要がある。そのため、人９１は、図６Ａ及び図６Ｂの例では、ｘ方向の負の方向にも力をかける必要がある。そこで、物体３０とハンド２２とが接触してロボット２０が停止動作した後、人９１が、ハンド２２の保持面を物体３０に押し当てる方向（保持方向）のみではなく、他の方向に力をかけている場合は、人９１がハンド２２の保持位置を修正しようとしていると保持動作選択部１４で判断して、全方向に動作する人協調動作（「方向制限の無い人協調動作」）を保持動作選択部１４により選択する。この例では、制限はかけないため、何も出力しない。
【００８３】
このように、人９１がロボット２０のロボットアーム２１を物体３０を保持する方向だけではなく、他の方向に力をかけてロボット２０のロボットアーム２１を移動させることにより、物体３０に対するハンド２２の位置ずれを修正するときでも、保持動作選択部１４による選択動作で邪魔されることがなく、ロボット２０のロボットアーム２１を円滑に動作させて物体３０を安全に保持することができる。
【００８４】
保持動作選択部１４の実際の動作ステップについて、図４のフローチャートに基づいて説明する。
【００８５】
まず、ステップＳ１０では、保持動作選択部１４は、接触検知部１１から接触検知信号が入力されているかどうかの確認を行う。入力が無い場合はＳ１０を繰り返す。
【００８６】
以下、ステップＳ１０において、接触検知部１１から保持動作選択部１４に接触検知信号が入力されている場合について説明する。
【００８７】
次いで、ステップＳ１１では、保持動作選択部１４は、ロボット２０の停止動作のために、全方向制限信号（停止信号）を方向制限部５に出力する。これにより、方向制限部５から方向制限力ベクトルＦｒｓ＝［０，０］Ｔが力制御部１２に出力される。その後、目標位置加算部８から目標関節トルク計算部３まで、それぞれ、情報が入出力され、適宜、演算等を行うなどして、停止動作用の目標関節トルクτｄを算出する。算出した停止動作用の目標関節トルクτｄを停止信号として、目標関節トルク計算部３からモータドライバ２４に出力して、ロボット２０がその動作を一旦停止する。
【００８８】
次いで、ステップＳ１２では、保持動作選択部１４で、内蔵するタイマーを用いて、所定時間を経過したかどうかを確認する。保持動作選択部１４が所定時間経過していないと判断した場合は、Ｓ１１に戻って、ロボット２０の停止動作を継続する為に、全方向制限信号を保持動作選択部１４から方向制限部５に出力する。
【００８９】
以下、ステップＳ１２において、保持動作選択部１４が所定時間（例えば、数秒）を経過したと判断した場合について説明する。
【００９０】
次いで、ステップＳ１３では、保持動作選択部１４が、接触状況情報からロボット２０のロボットアーム２１と接触物体３０と接触した方向が予め定められた保持方向かどうかを判断する。
【００９１】
以下、ステップＳ１３において、保持動作選択部１４が接触した方向が予め定められた保持方向であると判断した場合について説明する。
【００９２】
次いで、ステップＳ１４では、保持動作選択部１４が、接触状況情報から、ロボット２０と接触物体３０との距離が予め決められた閾値以上かどうかを判断する。
【００９３】
以下、ステップＳ１４において、ロボット２０と接触物体３０との距離が閾値以上であると保持動作選択部１４で判断した場合について説明する。
【００９４】
次いで、ステップＳ１５では、接触状況情報から、人９１がかけている力が、ハンド２２を物体３０に押し当てる方向（保持方向）のみかどうかを、保持動作選択部１４により確認する。人９１がかけている力がハンド２２を物体３０に押し当てる方向（保持方向）のみであると保持動作選択部１４で判断した場合には、ステップＳ１６に進む。そうでない場合には、ステップＳ２１に進む。
【００９５】
以下、ステップＳ１５において、人９１がかけている力がハンド２２を物体３０に押し当てる方向（保持方向）のみであると保持動作選択部１４で判断した場合について説明する。
【００９６】
次いで、ステップＳ１６では、ロボット２０の動作方向を保持方向のみに制限した人協調動作（「方向を制限した人協調動作」）を保持動作選択部１４により選択する。
【００９７】
次いで、ステップＳ１７では、ステップＳ１６で選択した「方向を制限した人協調動作」に基づき、制限をかける方向の情報である制限信号（制限方向情報）を保持動作選択部１４から方向制限部５に出力する。
【００９８】
次いで、ステップＳ１８では、吸着パッド２２ａの圧力センサ２２ｂからの情報などを基に、ハンド２２が物体３０を保持したかどうかの確認（判断）を保持動作選択部１４により行う。保持動作選択部１４により保持していないと判断した場合は、ステップＳ１７に戻り、保持動作選択部１４により制限信号の出力を続ける。
【００９９】
以下、ステップＳ１８において、ハンド２２が物体３０を保持したと保持動作選択部１４により判断したときについて説明する。
【０１００】
次いで、ステップＳ１９では、保持動作選択部１４による制限信号の出力を終了する。
【０１０１】
以上のステップＳ１０〜ステップＳ１９の動作により、保持動作選択部１４は、ハンド２２と物体３０とが接触した後、制限信号を出力し、保持動作選択部１４による制限信号の出力が終了するまでの動作が可能となる。
【０１０２】
また、ステップＳ１５において、人９１がかけている力が、ハンド２２を物体３０に押し当てる方向（保持方向）のみではないと保持動作選択部１４により判断された場合について説明する。
【０１０３】
次いで、ステップＳ２１では、動作方向を全方向、すなわち、方向制限無しの人協調動作を保持動作選択部１４により選択する。
【０１０４】
次いで、ステップＳ１９では、ステップＳ１５において方向制限無しの人協調動作を保持動作選択部１４により選択したので、保持動作選択部１４により制限信号の出力を終了する。
【０１０５】
以上のステップＳ１０〜ステップＳ１５、ステップＳ２１、ステップＳ１９の動作により、保持動作選択部１４は、ハンド２２と物体３０とが接触した後、方向制限を一旦停止した後、方向制限無しの人協調動作（「方向制限の無い人協調動作」）を保持動作選択部１４により選択し、保持動作選択部１４による制限信号の出力が終了するまでの動作が可能となる。
【０１０６】
以下、ステップＳ１４において、閾値未満の場合について説明する。
【０１０７】
次いで、ステップＳ２０では、保持動作選択部１４により停止継続動作を選択する。この場合、制限方向は全方向となる。
【０１０８】
次いで、ステップＳ１７では、ステップＳ１６で選択した「方向を制限した人協調動作」に基づき、制限方向の信号を保持動作選択部１４から方向制限部５に出力する。
【０１０９】
次いで、ステップＳ１８では、吸着パッド２２ａの圧力センサ２２ｂからの情報などを基に、ハンド２２が物体３０を保持したかどうかの確認（判断）を保持動作選択部１４により行う。保持動作選択部１４により保持していないと判断した場合は、ステップＳ１７に戻り、保持動作選択部１４により制限信号の出力を続ける。
【０１１０】
以下、ステップＳ１８において、ハンド２２が物体３０を保持したと保持動作選択部１４により判断したときについて説明する。
【０１１１】
次いで、ステップＳ１９では、保持動作選択部１４による制限信号の出力を終了する。
【０１１２】
以上のステップＳ１０〜ステップＳ１４、ステップＳ１７〜ステップＳ２０の動作により、保持動作選択部１４は、ハンド２２と物体３０とが接触した後、制限信号を出力してロボット２０が停止動作し、保持動作選択部１４による制限信号の出力が終了するまでの動作が可能となる。
【０１１３】
以下、ステップＳ１３において、保持動作選択部１４が接触した方向が予め定められた保持方向ではないと判断した場合について説明する。
【０１１４】
次いで、ステップＳ２０では、保持動作選択部１４により停止継続動作を選択する。この場合、制限方向は全方向となる。
【０１１５】
以下、ステップＳ１７〜Ｓ１９は上記と同様である。
【０１１６】
以上のステップＳ１０〜ステップＳ１３、ステップＳ１７〜ステップＳ２０の動作により、保持動作選択部１４は、ハンド２２と物体３０とが接触した後、制限信号を出力してロボット２０が停止動作し、保持動作選択部１４による制限信号の出力が終了するまでの動作が可能となる。
【０１１７】
以上の原理に基づく制御装置５０の制御プログラム４０の実際の動作ステップについて、図７のフローチャートに基づいて説明する。
【０１１８】
まず、ステップＳ３１では、エンコーダ７の出力である関節角度ｑが、制御プログラム４０（の出力誤差計算部９と接触状況検知部１３と）に取り込まれる。
【０１１９】
次いで、ステップＳ３２では、力センサ２５の出力である力ベクトルＦが、制御プログラム４０（の方向制限部５）に取り込まれる。
【０１２０】
次いで、ステップＳ３３では、ハンド２２の情報（例えば、圧力センサ２２ｂの検出情報）が制御プログラム４０（の保持動作選択部１４）に取り込まれる。
【０１２１】
次いで、ステップＳ３４では、目標軌道生成部１において目標位置ベクトルｒｄを生成して目標位置加算部８に出力する。
【０１２２】
次いで、ステップＳ３５では、接触検知部１１が、ロボット２０が外界環境に接触しているかどうか確認（検知）する。
【０１２３】
以下、ステップＳ３５において、接触検知部１１が接触を確認（検知）している場合について説明する。
【０１２４】
次いで、ステップＳ３６において、接触検知部１１は、接触検知信号を接触状況検知部１３と保持動作選択部１４とに出力する。
【０１２５】
次いで、ステップＳ３７において、接触状況検知部１３は、接触検知部１１からの接触検知信号に基づき、接触状況情報を保持動作選択部１４に出力する。
【０１２６】
次いで、ステップＳ３８において、保持動作選択部１４は、接触検知部１１からの接触検知信号と、接触状況検知部１３からの接触状況情報とに基づき、ロボット２０の保持動作を選択し、制限方向情報を方向制限部５に出力する。
【０１２７】
次いで、ステップＳ３９において、方向制限部５は、保持動作選択部１４から入力された制限方向情報と、力センサ２５からの力ベクトルＦとに基づき、方向制限力ベクトルＦｒｓを算出して、力制御部１２に出力する。
【０１２８】
次いで、ステップＳ４０において、力制御部１２は、方向制限部５から入力された方向制限力ベクトルＦｒｓに基づき、補正目標位置ベクトルΔｒｄを算出して目標位置加算部８に出力する。
【０１２９】
次いで、ステップＳ４１において、目標位置加算部８は、目標軌道生成部１からの目標位置ベクトルｒｄと目標位置加算部８からの補正目標位置ベクトルΔｒｄとを加算して、修正目標位置ベクトルｒｄｍを計算して、逆運動学計算部４に出力する。
【０１３０】
次いで、ステップＳ４２において、逆運動学計算部４は、目標位置加算部８からの修正目標位置ベクトルｒｄｍに基づき目標角度ベクトルｑｄｍを計算して、目標角加速度計算部２と出力誤差計算部９とに出力する。
【０１３１】
次いで、ステップＳ４３において、出力誤差計算部９は、逆運動学計算部４からの目標角度ベクトルｑｄｍとエンコーダ７の出力ｑとに基づき、角度誤差ベクトルｑｅを計算して修正目標角加速度計算部１０に出力する。
【０１３２】
次いで、ステップＳ４４において、目標角加速度計算部２は、逆運動学計算部４からの目標角度ベクトルｑｄｍに基づき、目標角加速度
【数９】
0005942311.tif 000010
を計算して修正目標角加速度計算部１０に出力する。
【０１３３】
次いで、ステップＳ４５において、修正目標角加速度計算部１０は、出力誤差計算部９からの角度誤差ベクトルｑｅと目標角加速度計算部２からの目標角加速度
【数１０】
0005942311.tif 000011
とに基づき、
修正目標角加速度
【数１１】
0005942311.tif 000012
を計算して目標関節トルク計算部３に出力する。
【０１３４】
次いで、ステップＳ４６において、目標関節トルク計算部３は、修正目標角加速度計算部１０からの修正目標角加速度
【数１２】
0005942311.tif 000013
と目標関節トルク計算部３の記憶部に予め記憶しているダイナミクスパラメータとに基づき、目標関節トルクτｄを演算してロボット機構部６のモータドライバ２４に出力する。
【０１３５】
次いで、ステップＳ４７において、目標関節トルク計算部３からの目標関節トルクτｄが、入出力ＩＦ４１を通じて、モータドライバ２４に入力され、モータ２３をそれぞれ駆動して、ロボット２０が動作する。
【０１３６】
以上のステップＳ３１〜ステップＳ４７が、制御の計算ループとして繰り返し実行されることにより、ロボット２０の動作制御が実現する。
【０１３７】
以下、ステップＳ３５において、接触検知部１１が接触を確認していない場合について説明する。
【０１３８】
次いで、ステップＳ３９において、方向制限部５は、保持動作選択部１４から入力された制限方向情報と、力センサ２５からの力ベクトルＦとに基づき、方向制限力ベクトルＦｒｓを算出して、力制御部１２に出力する。ただし、接触検知部１１が接触を確認（検知）していない場合、保持動作選択部１４は何も出力していないため、方向制限部５はどの方向にも制限せず、方向制限力ベクトルは、力センサ２５から入力された力ベクトルＦと同値となる。
【０１３９】
以下、ステップＳ４０〜ステップＳ４７は、上記説明と同様である。
【０１４０】
以上のステップＳ３１〜ステップＳ３５、ステップＳ３９〜ステップＳ４７が制御の計算ループとして繰り返し実行されることにより、ロボット２０の動作制御が実現する。
【０１４１】
以上のように、上記第１実施形態の上記制御装置５０は、目標軌道生成部１と、目標位置加算部８と、方向制限部５と、逆運動学計算部４と、目標角加速度計算部２と、目標関節トルク計算部３と、出力誤差計算部９と、修正目標角加速度計算部１０と、力制御部１２と、接触検知部１１と、接触状況検知部１３と、保持動作選択部１４とを備え、モータ２３のトルク制御を行うロボット２０を構成する。保持動作選択部１４と方向制限部５とにより、人９１がロボットアーム２１に物体３０を保持させる際に人協調動作の方向を制限したり、ロボットアーム２１を停止動作したりの選択を行う。これにより、物体３０の保持を目的としてロボットアーム２１を物体３０に接触させる際にも安全なロボット２０の制御が可能となる。
【０１４２】
なお、第１実施形態では、ロボット２０が物体３０に接触した後にロボット２０が停止動作する際に、ロボット２０のハンド２２が、物体３０との接触位置からずれた位置に停止すること（すなわち、ロボット２０が物体３０に衝突した後にロボット２０の動作が一旦停止した時点で、物体３０とロボット２０のハンド２２との間に距離があること）を記載している。しかしながら、これは、人９１の力によってロボットアーム２１自体が変形する場合に、そのようなずれの発生が、より顕著となる。一例として、アクチュエータとしてモータ２３のような柔軟性を持たない剛体の構造ではなく、柔軟性を持つ構造、例えば、空気圧人工筋１０１を用いたロボット２０Ｂを考える。このようなロボット２０Ｂでは、アクチュエータ自体が柔軟性を持ち、人９１の力によってロボットアーム２１が押されたときにロボットアーム２１のハンド２２の位置がある程度動かされることになる。すなわち、人９１がロボット２０Ｂに力をかけてロボット２０Ｂを動作させた場合、人９１が力を抜くと、ロボット２０Ｂの位置が多少変化する。よって、ロボット２０Ｂが物体３０に衝突したときのロボット２０Ｂのハンド２２の位置と、その後、ロボット２０Ｂが停止動作した際のハンド２２の位置とが変わるケースが多い。このため、第１実施形態を適用することが有効となる。以下、第１実施形態の変形例として、具体的に説明する。
【０１４３】
図８は、第１実施形態の変形例において、空気圧人工筋１０１をアクチュエータとして用いたロボット２０Ｂの一例である。ロボット２０Ｂは、３自由度のロボットアームであって、直交するｘ軸とｙ軸とを含むｘｙ平面内で正逆回転する第１関節軸３５−１と、同じくｘｙ平面内で正逆回転する第２関節軸３５−２と、同じくｘｙ平面内で正逆回転する第２関節軸３５−３とを備えて構成されている。図８において、１０１−１ａ、１０１−１ｂ、１０１−２ａ、１０１−２ｂ、１０１−３ａ、１０１−３ｂ（これらは個別の弾性膨張収縮構造体に対する参照符号であり、代表的に弾性膨張収縮構造体すなわち空気圧人工筋を指し示すときには参照符号１０１で示す。）は弾性膨張収縮構造体である。
【０１４４】
各弾性膨張収縮構造体１０１は、図９に示すように、ゴム材料で構成され駆動部として機能する、管状の中空弾性体１０２の外表面に、材料的には伸びにくい樹脂又は金属の繊維コードで網目状に編んだ変形方向規制部材１０３が配設される。変形方向規制部材１０３は、管状弾性体１０２の膨張による半径方向の変形が、半径方向と直交する軸方向の長さの収縮に変換される一方、管状弾性体１０２の収縮による半径方向の変形が、軸方向の長さの膨張に変換されるように構成される。管状弾性体１０２の両端部は、封止部材１０４でそれぞれ気密封止する。一方の封止部材１０４に備えられた管状の流体通過部材５は、内部に圧縮性流体が通過する流体の流路を有し、流体通過部材１０５を通して中空弾性体２の中空内部に対して流体の注入あるいは注出が可能となる。流体通過部材１０５を通じて空気等の圧縮性流体が、中空の管状弾性体１０２に供給される。
【０１４５】
供給された圧縮性流体により内圧を管状弾性体１０２の内部空間に与えると、管状弾性体１０２が主に半径方向に膨張しようとする。しかしながら、変形方向規制部材１０３の作用により、管状弾性体１０２の中心軸方向の運動に変換され、全長が収縮するため、直動駆動の空気圧人工筋として利用可能である。
【０１４６】
図８に戻り、ロボット２０は、１組の弾性膨張収縮構造体１を関節軸３５−１又は３５−２又は３５−３を支点に対向するように配設する。１組の弾性膨張収縮構造体１０１のうちのどちらか一方の弾性膨張収縮構造体１０１が収縮し、他方の弾性膨張収縮構造体１０１が伸張する。そして、支点（関節軸３５−１又は３５−２又は３５−３）を介して力が作用して、関節軸３５−１又は３５−２又は３５−３の軸が回転する拮抗型駆動構造とすることにより、関節軸３５−１又は３５−２又は３５−３での正逆回転運動を実現することができる。具体的には、弾性膨張収縮構造体１０１−１ａと弾性膨張収縮構造体１０１−１ｂとの拮抗駆動により第１関節軸３５−１は、正逆回転駆動する。弾性膨張収縮構造体１０１−２ａと弾性膨張収縮構造体１０１−２ｂとの拮抗駆動により第２関節軸３５−２は、正逆回転駆動する。弾性膨張収縮構造体１０１−３ａと弾性膨張収縮構造体１０１−３ｂとの拮抗駆動により第３関節軸３５−３は、正逆回転駆動する。
【０１４７】
下端が床９０に固定された棒状の支持部材１１６の上端には、第１関節軸３５−１と同心に回転できる支持体１１９が回転自在に支持されている。支持部材１１６の下端部の固定面側には、支持部材１１６の長手方向と直交して延びる棒状の支持体１１８が固定されている。支持体１１９と支持体１１８との間には、弾性膨張収縮構造体１０１−１ａ及び１０１−１ｂのそれぞれの端部が回転自在に連結されている。よって、弾性膨張収縮構造体１０１−１ａ及び１０１−１ｂの拮抗駆動により、第１関節軸３５−１の軸回りにｘｙ面内で支持体１１９が正逆回転する。この結果、支持体１１９に連結された第１リンク３３の第１リンク用支持部材（図示せず）を正逆回転できる。第１リンク用支持部材は、第１リンク３３に対して、支持体１１８の支持部材１１６に対する固定方法と同様に、第１リンク３３の長手方向と直交して延びる棒状の部材として固定されている。第１リンク３３の基端は、第１リンク用支持部材と共に、支持体１１９に固定されて、支持体１１９と第１リンク３３と第１リンク用支持部材とが一体的に回転可能となっている。第１リンク３３の第１リンク用支持部材は、図８においては支持体１１９の背後にあって隠れているため、図示を省略する。
【０１４８】
第２リンク３２の長手方向に直交して第２リンク３２の基端に固定された第２リンク用支持部材１３１が、第１リンク３３の先端に回転可能に連結されている。第２リンク用支持部材１３１と第１リンク用支持部材との間には、弾性膨張収縮構造体１０１−２ａ及び１０１−２ｂのそれぞれの端部が回転自在に連結されている。
【０１４９】
第３リンク３１の長手方向に直交して第３リンク３１の基端に固定された第３リンク用支持部材１３２が、第２リンク３２の先端に回転可能に連結されている。第３リンク用支持部材１３２と第２リンク用支持部材１３１との間には、弾性膨張収縮構造体１０１−３ａ及び１０１−３ｂのそれぞれの端部が回転自在に連結されている。よって、弾性膨張収縮構造体１０１−３ａ及び１０１−３ｂの拮抗駆動により、第３関節軸３５−３の軸回りにｘｙ面内で第３リンク３１と第３リンク用支持部材１３２とハンド２２とが正逆回転する。
【０１５０】
圧力センサ１０９−１ａ，１０９−１ｂは、弾性膨張収縮構造体１０１−１ａ、１０１−１ｂのそれぞれの内部圧力を計測する。具体的には、圧力センサ１０９−１ａ，１０９−１ｂは、弾性膨張収縮構造体１０１−１ａ、１０１−１ｂのそれぞれの流体通過部材５（流体注入出口）に配設され、それぞれの弾性膨張収縮構造体１０１−１ａ、１０１−１ｂ内の圧力を計測する。同じく、弾性膨張収縮構造体１０１−２ａ、１０１−２ｂ、１０１−３ａ、１０１−３ｂにも内部状態計測部の一例である圧力センサ１０９−２ａ，１０９−２ｂ、１０９−３ａ，１０９−３ｂが配設されて、同様に機能する（一部、図示省略）。
【０１５１】
弾性膨張収縮構造体１０１−１ａ及び１０１−１ｂと、弾性膨張収縮構造体１０１−２ａ及び１０１−２ｂと、弾性膨張収縮構造体１０１−３ａ及び１０１−３ｂとには、それぞれ、３ポート流量比例電磁弁１２７Ａ，１２７Ｂと空気圧調整ユニット１２６とを介して、空気圧源１２５が接続されている（一部、図示省略）。
【０１５２】
以上のような構造とすれば、弾性膨張収縮構造体１０１をアクチュエータとして用いたロボット２０Ｂとして基本的な機能を実現することができる。
【０１５３】
上記第１実施形態によれば、人９１と協働して物体３０を搬送するロボット２０，２０Ｂにおいて、物体３０を保持する際に保持物体３０とロボット２０，２０Ｂのロボットアーム２１との接触が発生しても、物体３０を安全に保持することができるロボット２０，２０Ｂが可能となる。
【０１５４】
特に、ロボットのロボットアームのアクチュエータが柔軟性を有する場合、人が手でつかんでロボットのロボットアームに力をかけていると、柔らかいロボットのロボットアームの本来の位置よりも少し先の位置に、ロボットのロボットアームが実際に位置しており、手を離すと、ロボットのロボットアームが本来の位置に戻る。すると、たとえ、ロボットのロボットアームの先端の吸着パッドを保持対象物体に接触させて停止させても、ロボットのロボットアームから手を離すと、ロボットアームが後退して吸着パッドと保持対象物体との間に隙間ができて、保持対象物体を吸着パッドで吸着できないという課題が従来はあった。
【０１５５】
これに対して、本発明の第１実施形態によれば、接触検知部１１によって物体３０とロボット２０，２０Ｂのロボットアーム２１との接触が検知された際に、ロボット２０，２０Ｂのロボットアーム２１が動作を一旦停止し、その後、保持動作選択部１４は、ロボットアーム２１と接触した物体３０との距離もしくは人９１がロボットアーム２１にかけている力もしくはその両方の情報によって、停止継続動作と、方向を制限した動作と、方向の制限の無い動作とのうち１つを適切に選択し、選択された動作を力制御部１２によって実現することで、保持対象物体３０をハンド２２の吸着パッド２２ａで確実に吸着して保持することができる。
【０１５６】
上記第１実施形態では、一例として３軸のロボットアーム２１を例に説明を行ったが、これに限られるわけではなく、軸数はこれに限られるわけではなく、また、全ての軸に同様に適用することに限られるわけでもなく、限定した軸にのみ適用することも可能である。
【０１５７】
また、上記第１実施形態では、接触状況情報として、ロボット２０のロボットアーム２１に接触した物体３０と停止したロボット２０のハンド２２との距離、及び、人９１がロボット２０のロボットアーム２１にかけている力の方向との両方を用いて、保持動作選択部１４が選択する説明を行っている。しかしながら、これに限られるわけではなく、どちらか一方又は別の情報を用いることも可能である。
【０１５８】
また、上記第１実施形態では、人９１の力によって目標位置がずれるロボット２０Ｂとして、空気圧人工筋１０１を用いたロボット２０Ｂの説明を行っている。しかしながら、これに限られるわけではなく、例えば、人９１の力によってたわむ程度の長い梁を持ったフレキシブルアーム、又は、手先にバネを取り付けてコンプライアンスを持たせたロボット等にも適用可能である。
【０１５９】
なお、本発明を第１実施形態及び変形例に基づいて説明してきたが、本発明は、上記の第１実施形態及び変形例に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１６０】
上記制御装置５０の一部又は全部は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。上記ＲＡＭ又はハードディスクユニットには、コンピュータプログラムが記憶されている。上記マイクロプロセッサが、上記コンピュータプログラムにしたがって動作することにより、各部は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１６１】
例えば、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施形態又は変形例における制御装置を構成する要素の一部又は全部を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、ロボットアームを有しかつ人と協働して物体を搬送するロボットの制御プログラムであって、コンピュータに、
上記ロボットアームに備えられた保持部で、上記物体を保持するとき、上記保持部と上記物体との接触を検知する接触検知部と、
上記物体と上記保持部との距離を接触時の接触状況として検知する接触状況検知部と、
上記接触状況検知部により検知された接触状況によって保持時の上記ロボットアームの動作を切替える保持動作選択部と、
上記人が上記ロボットアームにかけた力に応じて上記ロボットアームを動作させる動作制御部として機能させ、
上記接触検知部によって接触が検知された際に、上記ロボットアームが一旦停止し、その後、上記保持動作選択部は、上記ロボットアームと接触した上記物体との距離もしくは上記人が上記ロボットアームにかけている力もしくはその両方の情報によって、停止継続動作と、方向を制限した人協調動作と、制限のない人協調動作とのうち１つを選択し、選択された動作を上記動作制御部によって実現することで保持動作を行うよう制御するように機能させるためのロボット用の制御プログラムである。
【０１６２】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスク、磁気ディスク、又は、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。
【０１６３】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１６４】
なお、上記様々な実施形態又は変形例のうちの任意の実施形態又は変形例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０１６５】
本発明のロボット、ロボットの制御装置及び制御方法、並びに、ロボット用制御プログラムは、物体を保持するロボットアームの手先位置の軌道制御等の位置制御を行う、ロボット、ロボットの制御装置及び制御方法、並びに、ロボット用制御プログラムとして有用である。また、ロボットアームに限らず、生産設備等における物体を保持する機構を持った装置、その装置の制御装置及び制御方法、並びに、制御プログラムとしても適用が可能である。
本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。
【図１】
0005942311.tif 000014
【図２】
0005942311.tif 000015
【図３】
0005942311.tif 000016
【図４】
0005942311.tif 000017
【図５Ａ】
0005942311.tif 000018
【図５Ｂ】
0005942311.tif 000019
【図６Ａ】
0005942311.tif 000020
【図６Ｂ】
0005942311.tif 000021
【図７】
0005942311.tif 000022
【図８】
0005942311.tif 000023
【図９】
0005942311.tif 000024
【図１０Ａ】
0005942311.tif 000025
【図１０Ｂ】
0005942311.tif 000026
【図１１Ａ】
0005942311.tif 000027
【図１１Ｂ】
0005942311.tif 000028
【図１２Ａ】
0005942311.tif 000029
【図１２Ｂ】
0005942311.tif 000030