以下、本発明の実施形態を図面に基づいて説明する。
まず、図1〜図4を参照して、本発明の一実施形態によるロボット装置100の構造(構成)について説明する。なお、本実施形態では、日常生活(環境)において用いられる生活支援ロボットに本発明を適用した例について説明する。
図1に示すように、本実施形態によるロボット装置100は、ユーザの指示に基づいてロボットアーム10の先端に装着された多指ハンド部20により把持対象物110を把持して持ち上げ、指定された位置に把持対象物110を移動させる機能を有する。
ロボット装置100は、ロボットアーム10と、ロボットアーム10の先端に装着された多指ハンド部20と、把持対象物110および把持対象物110の周辺を検出する視覚センサ30と、ロボット装置100の動作制御を行う制御装置40とを備えている。なお、視覚センサ30は、本発明の「検出手段」の一例であるとともに、制御装置40は、本発明の「制御部」の一例である。
ロボットアーム10は、複数のアーム(リンク)11および各アーム11を接続する関節部12を含んでいる。各関節部12には図示しないモータがそれぞれ設けられており、各関節部12は接続されたアーム11を所定の駆動方向(関節軸回りの回転方向)に駆動するように構成されている。これにより、ロボットアーム10は、たとえば6自由度の動きが可能な構成を有する。
多指ハンド部20は、ロボットアーム10の先端に装着されているとともに、等角度間隔で配置された3本の指部21、22および23を含んでいる。3本の指部21、22および23は、同一の構成を有するとともに、先端(指先)にそれぞれ力センサ21a、22aおよび23aを有している。また、各指部21、22および23は、それぞれ、根元側の関節部21b、22bおよび23bと、中間部の関節部21c、22cおよび23cとを有する。各指部21、22および23は、これらの関節部(21b〜23bおよび21c〜23c)に設けられた図示しないモータにより、所定の駆動方向(関節軸回りの回転方向)に駆動されるように構成されている。したがって、指部21、22および23は、それぞれ、根元側の関節部21b、22bおよび23bの関節軸回りと、中間部の関節部21c、22cおよび23cの関節軸回りとで駆動可能な構成を有するので、これらの指部21、22および23の自由度は、それぞれ、2自由度である。
力センサ21a、22aおよび23aは、それぞれ、指部21、22および23の指先に加えられた外力(負荷)を検出する圧力センサにより構成されている。この力センサ21a、22aおよび23aにより、把持対象物110と指部21、22および23との接触を検出することが可能なように構成されている。また、力センサ21a、22aおよび23aの検出信号は、制御装置40に出力されるように構成されている。
視覚センサ30は、把持対象物110および把持対象物110の周囲を撮像するカメラにより構成されている。視覚センサ30により撮像される画像データは、制御装置40により取り込まれるように構成されている。
制御装置40は、アーム制御部41と、ハンド制御部42と、画像処理部43と、アーム姿勢演算部44と、ハンド姿勢演算部45と、把持形態選択部46と、関節トルク演算部47とを含んでいる。また、制御装置40には、ロボット装置100の動作制御を行うための作業動作プログラム48が記憶されている。なお、画像処理部43は、本発明の「情報取得手段」の一例であるとともに、把持形態選択部46は、本発明の「把持形態データベース」の一例である。
アーム制御部41は、ロボットアーム10の各部の動作制御を行う機能を有する。具体的には、アーム制御部41は、アーム姿勢演算部44から出力されたロボットアーム10の動作命令にしたがって、ロボットアーム10のそれぞれの関節部12を駆動させるように構成されている。
ハンド制御部42は、多指ハンド部20の各指部21〜23の姿勢制御を行う機能を有する。具体的には、ハンド制御部42は、ハンド姿勢演算部45から出力された動作命令にしたがって、指部21の関節部21bおよび関節部21cと、指部22の関節部22bおよび関節部22cと、指部23の関節部23bおよび関節部23cとをそれぞれ駆動するように構成されている。また、ハンド制御部42は、力センサ21a、22aおよび23aの出力に基づいて力制御(インピーダンス制御)を行うことにより、把持対象物110に対していわゆる柔らかい接触が可能となり、把持対象物110に対して衝撃を与えずに把持することが可能である。
画像処理部43は、視覚センサ30により撮像された画像データを取り込み、画像データを画像処理することにより、把持対象物110の位置情報、姿勢(向き)情報、および、把持対象物110の輪郭などの形状情報を取得することが可能なように構成されている。
アーム姿勢演算部44は、作業動作プログラム48による移動経路にしたがって把持開始位置から把持終了位置(把持対象物110の移動先)まで把持対象物110を移動させるためのロボットアーム10の姿勢を算出するように構成されている。そして、アーム姿勢演算部44は、算出した姿勢を取るようにロボットアーム10を移動させるための動作命令(各関節部12の動作命令)をアーム制御部41に出力するように構成されている。
ハンド姿勢演算部45は、把持形態選択部46に記憶された把持対象物110の把持形態に基づいて、各指部21、22および23の姿勢を算出するとともに、算出した姿勢を取るように各指部21、22および23を移動させるための動作命令(6つの関節部21b〜23bおよび21c〜23cに対する動作命令)をハンド制御部42に出力するように構成されている。
把持形態選択部46には、多指ハンド部20による把持対象物110の複数の把持形態の情報と、複数の把持形態に関連する情報とが記憶されている。ここで、把持形態の情報は、把持対象物110に対する多指ハンド部20の相対的な位置(把持位置)の情報と、姿勢(多指ハンド部20の向き、把持姿勢)の情報と、指の配置(各指部21〜23の姿勢)の情報とを含んでいる。また、把持形態に関連する情報は、把持対象物110の想定質量(把持対象物110について想定される質量)の情報と、把持対象物110を把持するのに必要な把持力の情報とを含んでいる。把持形態選択部46は、把持対象物110の位置情報、姿勢情報および形状情報に基づいて、把持対象物110に対して多指ハンド部20が取り得る把持形態の候補を複数抽出するように構成されている。
ここで、把持形態の具体例について説明する。図2に示すように、単純形状物111を把持対象物110とした場合には、たとえば2種類で6通りの把持形態を例示することができる。すなわち、単純形状物111についての把持形態には、単純形状物111の長辺111a側に1本の指部21を配置するとともに残りの2本の指部22および23を長辺111b側に配置して把持する把持形態A−1(A)と、単純形状物111の長辺111a側に2本の指部21および23を配置するとともに他の指部22を長辺111b側に配置して把持する把持形態B−1(B)とが含まれる。これらの2種類(AおよびB)の把持形態は、3本の指部21〜23の配置の相違によってそれぞれ3パターン(A−1、A−2およびA−3と、B−1、B−2およびB−3)に分けることができるので、2種類で6通りの把持形態となる。なお、単純形状物111は、本発明の「把持対象物」の一例である。
また、図3に示すように、カップ112を把持対象物110とした場合には、たとえば3種類で9通りの把持形態を例示することができる。すなわち、上方からカップ112の円筒状外側面を周方向に沿って把持する把持形態C−1と、側方からカップ112の円筒状外側面を挟むように両側から把持する把持形態D−1と、側方からカップ112の取手部を把持する把持形態E−1との3種類の把持形態を例示することができる。これらの3種類の把持形態についても、3本の指部21〜23の配置の相違によってそれぞれ3パターン(図示せず)に分けることができるので、3種類で9通りの把持形態となる。なお、カップ112は、本発明の「把持対象物」の一例である。
上記のように把持対象物110毎に複数の把持形態が存在する場合に、各々の把持形態に対応する多指ハンド部20の姿勢およびロボットアーム10の姿勢を求める際には、多指ハンド部20に設定された座標系と、把持対象物110に設定された座標系とを関連付ける相対的な座標変換行列を用いる。具体的には、この座標変換行列と、把持対象物110の位置情報、姿勢情報および形状情報とに基づいて、ハンド姿勢演算部45により各把持形態における多指ハンド部20の指部21〜23姿勢を算出するとともに、アーム姿勢演算部44によりロボットアーム10の姿勢を算出するように構成されている。
また、図1に示すように、関節トルク演算部47は、把持対象物110の把持形態に対応して把持形態選択部46に記憶されている多指ハンド部20の把持姿勢の情報および指部21〜23の配置の情報と、把持形態選択部46に記憶された把持対象物110の想定質量の情報と、必要な把持力の情報とに基づいて、指部21〜23のそれぞれの関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルク(関節部にかかる負荷トルク)を算出するように構成されている。そして、関節トルク演算部47は、算出した多指ハンド部20の関節トルクに基づいて、把持形態選択部46により抽出された複数の把持形態の候補の中から1つの把持形態を選択するように構成されている。
作業動作プログラム48は、ロボットアーム10および多指ハンド部20の作業動作を指令するプログラムである。この作業動作プログラム48には、把持対象物110の複数のパターンの移動経路の情報が含まれている。この移動経路の情報は、把持開始点を始点として、把持終了点まで把持対象物110が移動される経路が設定された情報である。この移動経路は、障害物などの周囲環境を考慮して、1つまたは複数の中継点を経由することにより障害物と接触するのを回避しながら把持対象物110を移動させる経路設定が可能なように構成されている。また、作業動作プログラム48により把持対象物110の移動経路が与えられると、アーム姿勢演算部44およびハンド姿勢演算部45により、この移動経路の把持開始点、中継点および把持終了点の各位置における多指ハンド部20の把持姿勢(把持対象物110に対する向き)を決定することができるので、把持開始点、中継点および把持終了点の各位置における多指ハンド部20の把持姿勢を実現するためのロボットアーム10の姿勢を算出することが可能である。
ここで、把持対象物110を把持開始点から中継点を介して目標位置(把持終了点)へ移動させる場合には、把持開始点、中継点および把持終了点のそれぞれにおいて多指ハンド部20の把持姿勢(把持対象物110に対する姿勢)が一定であるとは限らず、把持対象物110を把持したまま多指ハンド部20の姿勢(把持姿勢)が変化する場合がある。
たとえば、図4の上段に示すように、長手方向が上下方向(Z方向)となるように単純形状物111を把持した後、中継点では単純形状物111(多指ハンド部20)を反時計方向に90度回動させて長手方向を水平方向にし、把持終了点で元の把持姿勢に戻すように移動経路に沿って把持姿勢が変化するような場合がある。このとき、把持形態A−1で把持した場合には、把持開始点(把持形態A−1)で多指ハンド部20の3本の指部21〜23により側方から略均等に支えていた単純形状物111の重量を、中継点では下側(長辺111a側)に配置される1本の指部21によって支える必要がある。したがって、この中継点(把持形態A−1)における指部21の関節部21bおよび21c(図1参照)の関節トルクは、把持開始点および把持終了点の状態よりも増大する。この中継点における指部21の関節部21bおよび21cの関節トルクが多指ハンド部20(指部21の関節部21bおよび21c)の許容関節トルクを超える場合には、中継点で把持状態を維持することができなくなる可能性がある。
一方、図4の下段に示すように、同じ移動経路について把持形態B−1で把持した場合には、単純形状物111の長辺111a側(下側)に2本の指部21および23が配置されるので、中継点において下側に配置される2本の指部21および23によって単純形状物111の重量を支えることができる。したがって、この中継点における指部21(関節部21bおよび21c)および指部23(関節部23bおよび23c)の関節トルクは、把持形態B−1(把持開始点および把持終了点)よりは大きくなるものの、把持形態A−1(中継点)よりも小さくなる。これにより、把持形態A−1では中継点で許容関節トルクを超えてしまう場合にも、把持形態B−1の場合には多指ハンド部20の関節トルクが許容関節トルク以下の範囲に収まる場合がある。この場合には、中継点においても単純形状物111の把持状態を維持することができる。
ここで、把持形態A−1では、中継点における指部21(関節部21bおよび21c)の関節トルクが移動経路全体における関節トルクの最大値であるとする。また、把持形態B−1では、中継点における指部23(関節部23bおよび23c)の関節トルクが移動経路全体における関節トルクの最大値であるとする。このときの関節トルク(最大値)を比較すれば、把持形態A−1よりも把持形態B−1の方が関節トルク(最大値)が小さくなるので、移動経路全体を考慮すると把持形態B−1の方が多指ハンド部20(指部21〜23)に対する負荷(関節トルク)の最大値が小さくなる。したがって、図4に示す移動経路で単純形状物111を移動させる場合には、把持形態A−1よりも把持形態B−1の方が望ましいということができる。このように、把持開始点や把持終了点で類似する把持形態(A−1およびB−1)であったとしても、移動経路の全体における多指ハンド部20の関節トルクは各把持形態で同一ではない場合もあるため、移動経路全体にわたって関節トルクを比較するのは適切な把持形態を選択する上で有効であると言える。
以上のように、多指ハンド部20により把持対象物110を移動させる作業を行う場合には、多指ハンド部20による把持状態を維持するために、移動経路全体にわたって多指ハンド部20の関節トルクが許容関節トルクを超えないことが必要となる。また、移動経路の全体における多指ハンド部20の関節トルクの最大値が小さい方が、多指ハンド部20(指部21〜23)に対する負荷(関節トルク)の最大値が小さくなるので、より確実な把持を行うことが可能であるとともに、多指ハンド部20の各関節部にかかる負担を小さくすることが可能である。
上記のような点を考慮して、本実施形態では、制御装置40は、把持形態選択部46により抽出された複数の把持形態の候補の内から、移動経路の各点(把持開始点、中継点および把持終了点)における多指ハンド部20の関節トルクに基づいて、1つの把持形態を選択するように構成されている。より具体的には、制御装置40は、複数の把持形態の候補の各々について、関節トルク演算部47により移動経路の各点(把持開始点、中継点および把持終了点)における多指ハンド部20の各関節部21b〜23bおよび21c〜23cの関節トルクを算出する。そして、算出された関節トルクに基づいて、制御装置40は、関節トルク演算部47により移動経路の各点(把持開始点、中継点および把持終了点)における各関節部21b〜23bおよび21c〜23cの関節トルクが多指ハンド部20の許容関節トルク以下で、かつ、関節トルクの最大値の最も小さい把持形態を選択するように構成されている。
次に、図2、図4および図5を参照して、本実施形態によるロボット装置100の動作時の制御装置40の処理フローを説明する。なお、本実施形態では、制御装置40の作業動作プログラム48に基づいてロボット装置100の把持動作が行われる。
まず、図5に示すように、ステップS1において、視覚センサ30により撮像された画像データに基づき、制御装置40の画像処理部43により把持対象物110の位置情報、姿勢情報および形状情報が取得される。
次に、ステップS2において、取得された把持対象物110の位置情報、姿勢情報および形状情報に基づいて、把持形態選択部46により、把持対象物110に対して多指ハンド部20が取り得る把持形態の候補が複数抽出される。なお、このステップS2の後のステップS3〜ステップS9の処理は、複数の把持形態の候補のそれぞれについて実行される。たとえば図2の把持対象物(単純形状物111)の場合には、把持形態A−1〜A−3およびB−1〜B−3が候補として抽出される。
ステップS3では、抽出された把持形態の候補の各々について、制御装置40により、多指ハンド部20によって把持形態(把持位置、把持姿勢および指部21〜23の配置)を実現するための情報が把持形態選択部46から取得される。具体的には、その把持形態(候補)について、多指ハンド部20に設定された座標系と、把持対象物110に設定された座標系とを関連付ける相対的な座標変換行列が把持形態選択部46から取得される。また、制御装置40により、把持形態選択部46から把持対象物110の想定質量(把持対象物110について想定される質量)の情報と、把持対象物110を把持するのに必要な把持力の情報とが取得される。
次に、ステップS4において、制御装置40により作業動作プログラム48から把持対象物110の移動経路が取得される。これにより、把持対象物110の把持開始点、中継点および把持終了点が決定される。そして、制御装置40のアーム姿勢演算部44およびハンド姿勢演算部45により、把持対象物110の位置情報、姿勢情報および形状情報と、座標変換行列とに基づいて、移動経路の把持開始点、中継点および把持終了点のそれぞれにおける多指ハンド部20の把持姿勢が算出される。
移動経路における多指ハンド部20の把持姿勢が算出されると、ステップS5において、制御装置40の関節トルク演算部47により、把持開始点、中継点および把持終了点のそれぞれにおける把持姿勢の情報と、指部21〜23の配置の情報と、把持対象物110の想定質量と、必要な把持力の情報とに基づいて、多指ハンド部20の各関節部21b〜23bおよび21c〜23cの関節トルクが算出される。たとえば、図4の把持形態A−1の例では、把持開始点および把持終了点における把持姿勢について、多指ハンド部20の各関節部21b〜23bおよび21c〜23cの6つの関節トルクの値が算出されるとともに、中継点における把持姿勢について、多指ハンド部20の各関節部21b〜23bおよび21c〜23cの6つの関節トルクの値が算出される。
ステップS6では、制御装置40の関節トルク演算部47により、算出された関節トルクが多指ハンド部20(関節部21b〜23bおよび21c〜23c)の許容関節トルクよりも大きいか否かが判断される。算出された関節トルクに、多指ハンド部20の許容関節トルクよりも大きい値が含まれる場合には、ステップS8に進む。この場合には、移動経路を通過する過程で関節トルクが許容関節トルクを上回ることに起因して把持対象物110の把持状態を維持することができない可能性があるので、その把持形態は、ステップS8において候補から除外される。一方、算出された関節トルクの全て(把持開始点、中継点および把持終了点のそれぞれにおける各関節部21b〜23bおよび21c〜23cの関節トルク)が多指ハンド部20の許容関節トルク以下となる場合には、ステップS7に進む。
ステップS7では、関節トルク演算部47により、把持開始点、中継点および把持終了点のそれぞれにおける各関節部21b〜23bおよび21c〜23cの全ての関節トルクの内から、関節トルクの最大値が算出される。すなわち、把持開始点から中継点を経由して把持終了点に至る移動経路を通過する全過程で最大となる関節トルクの値が取得される。たとえば、図4の把持形態A−1の例では、中継点における指部21の関節部21bまたは21cの関節トルクが最大値として取得されるとともに、図4の把持形態B−1の例では、中継点における指部23の関節部23bまたは23c(または、指部21の関節部21bまたは21c)の関節トルクが最大値として取得される。
把持形態の候補について、ステップS7において関節トルクの最大値が算出されるか、または、ステップS8において把持形態の候補から除外されると、ステップS9に進む。ステップS9では、制御装置40により、ステップS2において抽出された全ての把持形態の候補について、関節トルクの最大値の算出(または把持形態の候補からの除外)処理が行われたか否かが判断される。関節トルクの最大値の算出(または把持形態の候補からの除外)処理が行われていない把持形態(候補)が存在する場合には、ステップS3に戻り、抽出された全ての把持形態の候補について関節トルクの最大値の算出(または把持形態の候補からの除外)処理が行われるまで繰り返される。
以上のステップS3〜S9までの処理が把持形態(候補)毎に実行されると、除外された候補を除く全ての把持形態について、多指ハンド部20の許容関節トルク以下で、かつ、移動経路の全体で最大となる関節トルクの値(その把持形態での関節トルクの最大値)が算出される。たとえば、図2の例では、把持形態A−1〜A−3および把持形態B−1〜B−3のそれぞれについて、多指ハンド部20の許容関節トルク以下で、かつ、移動経路の全体で最大となる関節トルクの値(その把持形態での関節トルクの最大値)が算出される。
そして、図5に示すように、ステップS10では、制御装置40の関節トルク演算部47により、把持動作を行う把持形態が選択される。具体的には、各把持形態について、ステップS7において算出された関節トルクの最大値が比較されることにより、関節トルクの最大値が最も小さい把持形態が選択される。これにより、把持対象物110の移動経路の全過程(把持開始点、中継点および把持終了点)において多指ハンド部20(関節部21b〜23bおよび21c〜23c)の許容関節トルクを超えることがなく、かつ、多指ハンド部20(関節部21b〜23bおよび21c〜23c)に対する負荷(関節トルクの最大値)が最も小さくなる把持形態が選択される。
把持形態が選択されると、ステップS11に進み、制御装置40により、実際の動作制御が行われる。すなわち、移動経路の把持開始点、中継点および把持終了点のそれぞれにおいて、算出された多指ハンド部20の位置および姿勢となるように、アーム姿勢演算部44からアーム制御部41に対して各関節部12の動作命令が出力される。また、選択された把持形態による把持動作が行われるように、把持形態選択部46からハンド姿勢演算部45を介して、選択された把持形態に対応する指部21〜23の動作命令がハンド制御部42に対して出力される。そして、アーム制御部41により、実際にロボットアーム10が駆動されるとともに、ハンド制御部42により、多指ハンド部20の指部21〜23が力センサ21a〜23aの出力に基づく力制御(インピーダンス制御)によって駆動されることにより把持対象物110がいわゆる柔らかい接触で把持され、その後、把持開始点から中継点を経由して把持終了点まで把持状態を維持したまま把持対象物110が移動される。
本実施形態では、上記のように、把持対象物110の位置情報および形状情報に基づいて多指ハンド部20による把持形態の候補を複数抽出する把持形態選択部46と、抽出された複数の把持形態の候補についての多指ハンド部20の関節トルクに基づいて、抽出された複数の把持形態の候補の中から1つの把持形態を選択する関節トルク演算部47とを含む制御装置40を設けることによって、多指ハンド部20の関節トルクに基づいて把持対象物110の把持形態を決定することができる。これにより、多指ハンド部20に加わる関節トルクが許容範囲を超えない把持形態を選択することができるので、把持対象物110の把持状態を維持することが可能な把持形態を選択することができる。
また、本実施形態では、上記のように、制御装置40を、把持形態選択部46により抽出された複数の把持形態の候補の各々に対して、関節トルク演算部47により、把持開始点、中継点および把持終了点を含む移動経路における多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクに基づいて、1つの把持形態を選択するように構成することによって、移動経路の全体にわたって多指ハンド部20に加わる関節トルクが許容関節トルクを超えない把持形態を選択することができるので、把持対象物110を把持して移動させる動作全体にわたって、把持状態を維持し続けることが可能な把持形態を選択することができる。
また、本実施形態では、上記のように、制御装置40を、抽出された複数の把持形態の候補の各々に対して、関節トルク演算部47により、移動経路における多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクの最大値を算出するとともに、関節トルクの最大値の最も小さい把持形態を選択するように構成することによって、移動経路の全体にわたって、把持状態を維持するための多指ハンド部20に対する負荷(関節トルク)の最大値が最も小さい把持形態を選択することができるので、把持対象物110の把持状態を維持しながら、多指ハンド部20の負担の最も小さい把持形態を選択することができる。
また、本実施形態では、上記のように、制御装置40を、抽出された複数の把持形態の候補の各々に対して、関節トルク演算部47により、移動経路における多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクが多指ハンド部20の許容関節トルク以下であるか否かを判断するとともに、多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクが多指ハンド部20の許容関節トルク以下であると判断した場合に、多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクの最大値を算出するように構成する。このように構成することによって、把持形態の候補の各々について、移動経路における多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクが多指ハンド部20の許容関節トルク以下となる条件の下で関節トルクの最大値が算出されるので、多指ハンド部20による把持が可能な許容関節トルク以下となる把持形態の候補のみを対象として、多指ハンド部20に対する負荷(関節トルクの最大値)の最大値が最も小さい把持形態を選択することができる。
また、本実施形態では、上記のように、制御装置40を、多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクが多指ハンド部20の許容関節トルクよりも大きいと判断した場合には、多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクの最大値を算出せずに、把持形態の候補から外すように構成することによって、ある把持形態の候補について、多指ハンド部20の許容関節トルクを超える関節トルクが算出された場合には、以降の関節トルクの最大値の算出処理を行うことなく、次の把持形態の候補についての関節トルクの算出を行うことができる。これにより、制御装置40の処理負荷を軽減して効率的に把持形態の選択を行うことができる。
また、本実施形態では、上記のように、制御装置40を、抽出された複数の把持形態の候補についての多指ハンド部20の関節トルクに基づいて、抽出された把持形態の候補の中から1つの把持形態を選択するように構成することによって、多指ハンド部20の関節トルクに基づいて、多指ハンド部20に加わる関節トルクが許容関節トルクを超えない把持形態を選択することができる。
また、本実施形態では、上記のように、制御装置40を、把持形態選択部46により、把持対象物110の位置情報および形状情報に加えて姿勢情報にも基づいて多指ハンド部20による把持形態の候補を複数抽出するように構成することによって、把持対象物110の位置情報および形状情報のみならず、把持対象物110の姿勢情報にも基づいて把持形態を選択することができるので、より適切な把持形態を選択することができる。
また、本実施形態では、上記のように、制御装置40を、多指ハンド部20による把持形態に関する情報が記憶された把持形態選択部46により、把持形態の中から把持対象物110の位置情報および形状情報に基づいて多指ハンド部20による把持形態の候補を複数抽出するように構成することによって、把持形態に関する情報が記憶された把持形態選択部46から複数の把持形態の候補を抽出することができるので、個々の把持対象物110に応じて制御装置40が複数の把持形態を算出する必要がない。この結果、把持形態を選択する際の制御装置40の処理負荷を軽減して、高速な処理動作を行うことができる。
また、本実施形態では、上記のように、制御装置40を、把持対象物110の位置情報および形状情報に基づいて移動経路における多指ハンド部20の把持姿勢の情報を取得するとともに、移動経路における把持姿勢の情報と、把持対象物110に対する多指ハンド部20の指部21〜23の配置の情報と、把持対象物110の想定質量の情報と、必要な把持力の情報とに基づいて、移動経路における多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクの最大値を算出するとともに、関節トルクの最大値の最も小さい把持形態を選択するように構成する。このように構成することによって、多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクを算出するために必要な情報が把持形態選択部46に記憶されているので、制御装置40は、把持対象物110の位置情報および形状情報に基づいて移動経路における多指ハンド部20の把持姿勢を決定すれば、容易に、間接トルク演算部47により移動経路における多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクを算出することができる。この結果、容易に、関節トルクの最大値の最も小さい把持形態を選択することができる。
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
たとえば、上記一実施形態では、本発明を生活支援ロボットとして用いるロボット装置100に適用した例を示したが、本発明はこれに限られない。本発明は、ロボットアームおよび多指ハンド部を備える装置であれば、生活支援ロボット以外のロボット装置に適用可能である。たとえば、本発明を各種の産業用ロボット装置に適用してもよい。
また、上記一実施形態では、本発明の検出手段の一例として視覚センサ(カメラ)を設けるとともに、本発明の情報取得手段の一例として画像処理部を設けた例を示したが、本発明はこれに限られない。本発明では、視覚センサ(カメラ)以外にも、ユーザがキーボードなどの入力装置により把持対象物の位置座標を入力するように構成してもよい。また、視覚センサおよび画像処理部とタッチパネルとを組み合わせて、ユーザがタッチパネルの画面上で把持対象物を選択するように構成してもよい。この他、視覚センサ以外の距離センサなどを用いて把持対象物の位置情報を取得してもよいし、たとえば圧力センサをアレイ状に配置して、圧力センサ(アレイ)上に置かれた把持対象物の位置情報を取得するように構成してもよい。
また、上記一実施形態では、たとえば単純形状物111の把持形態として、把持形態A−1およびB−1の2種類6通り(指部21〜23の配置の相違によってそれぞれ3パターン、合計6通り)の把持形態の例(図2参照)を示し、カップ112の把持形態として、把持形態C−1、D−1およびE−1の3種類(9通り)の把持形態の例(図3参照)を示したが、本発明はこれに限られない。上記した把持形態は一例であり、本発明では、上記以外の把持形態で把持するように構成してもよい。把持形態は、1つの把持対象物について複数の把持形態の内から選択可能であれば、何種類あってもよい。
また、上記一実施形態では、アーム姿勢演算部44と、ハンド姿勢演算部45と、関節トルク演算部47とを含む制御装置40を設けた例を示したが、本発明はこれに限られない。本発明では、これらのアーム姿勢演算部44と、ハンド姿勢演算部45と、関節トルク演算部47とをまとめて、単一の演算部によってロボット装置の全ての演算を行うように構成してもよい。同様に、アーム制御部41とハンド制御部42とをまとめて、単一の動作制御部によってロボット装置の全ての動作制御を行うように構成してもよい。
また、上記一実施形態では、ロボット装置に1本のロボットアームおよび1つの多指ハンド部のみを設けた例を示したが、本発明はこれに限られない。本発明では、ロボットアームおよび多指ハンド部が複数設けられていてもよい。また、1本のロボットアームに複数の多指ハンド部が設けられていてもよい。
また、上記一実施形態では、2自由度の指部を3本有する6自由度の多指ハンド部を設けた例を示したが、本発明では、多指ハンド部の指の自由度および本数はこれに限られない。本発明では、多指ハンド部に2本の指部を設けてもよいし、多指ハンド部に4本以上の指部を設けてもよい。また、指部は、1自由度としてもよいし、3自由度以上としてもよい。また、多指ハンド部の形状や、多指ハンド部の各指部の関節部のそれぞれの位置なども上記一実施形態における構成以外の構成としてもよい。
また、上記一実施形態では、6自由度のロボットアームを設けた例を示したが、本発明はこれに限られない。本発明では、6自由度以外のロボットアームを用いてもよい。同様に、ロボットアームの形状や、ロボットアームの関節部の位置なども上記一実施形態における構成以外の構成としてもよい。
また、上記一実施形態では、把持対象物の位置情報、姿勢情報および形状情報に基づいて把持形態の複数の候補を抽出するように構成した例を示したが、本発明はこれに限られない。本発明では、少なくとも把持対象物の位置情報および形状情報に基づいて把持形態の複数の候補を抽出するように構成すればよい。したがって、把持対象物の姿勢情報に基づくことなく、把持対象物の位置情報および形状情報のみに基づいて把持形態の候補を抽出してもよいし、把持対象物の位置情報および形状情報に加えて、把持対象物の姿勢情報以外の情報にも基づいて把持形態の候補を抽出してもよい。
また、上記一実施形態では、把持開始点、中継点および把持終了点を含む移動経路の各点(各位置)における多指ハンド部の各関節部の関節トルクに基づいて、把持形態を選択するように構成した例を示したが、本発明はこれに限られない。移動経路によっては中継点を含まない場合もあるので、本発明では、把持開始点および把持終了点における多指ハンド部の各関節部の関節トルクに基づいて、把持形態を選択してもよい。また、本発明では、把持開始点、中継点および把持終了点以外の、たとえば把持開始点から中継点への移動中の多指ハンド部の各関節部の関節トルクにも基づいて、把持形態を選択するように構成してもよい。
また、上記一実施形態では、多指ハンド部20の全ての関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクに基づいて、把持形態を選択するように構成した例を説明したが、本発明はこれに限られない。本発明では、たとえば関節部21b〜23bの関節トルクまたは関節部21c〜23cの関節トルクに基づいて、把持形態を選択するように構成してもよい。
また、上記一実施形態では、多指ハンド部20の各関節部(関節部21b〜23bおよび関節部21c〜23c)の関節トルクが多指ハンド部20の許容関節トルク以下で、かつ、関節トルクの最大値の最も小さい把持形態を選択するように構成した例を示したが、本発明はこれに限られない。本発明では、各関節部の関節トルクが多指ハンド部の許容関節トルク以下となる把持形態の内から、任意の把持形態を選択するように構成してもよい。
また、上記一実施形態では、本発明の把持形態データベースの一例である把持形態選択部46を制御装置40が含むように構成した例を示したが、本発明はこれに限られない。たとえば、把持形態データベースを外部のサーバに設けるとともに、制御装置が外部のサーバにアクセスして、把持形態や把持形態に関する情報を取得するように構成してもよい。
また、上記一実施形態におけるロボット装置100の動作時の処理フローにおいては、ステップS3〜S9までの処理を複数の把持形態の候補についてそれぞれ実行することによって各把持形態(候補)の関節トルクの最大値を算出し、その後、ステップS10で関節トルクの最大値を比較することによって1つの把持形態を選択するように構成した例を示したが、本発明はこれに限られない。本発明では、把持形態毎に関節トルクの最大値を比較して、最後に残った把持形態を採用(選択)するように構成してもよい。すなわち、1〜4までの把持形態が存在した場合に、把持形態1と2とを比較して把持形態1の方が関節トルクの最大値が小さければ、把持形態2を候補から除外するとともに、次に把持形態1と3とを比較する。これを繰り返すことにより、最後に残った把持形態(関節トルクの最大値が最も小さい把持形態)を採用(選択)するように構成してもよい。
また、上記一実施形態では、多指ハンド部の関節トルクに基づいて把持形態を選択するように構成した例を示したが、本発明はこれに限られない。たとえば、把持対象物の形状と把持形態との関係によっては、ロボット装置の周囲の障害物と把持対象物とが接触しやすい場合がある。このため、把持形態毎に障害物との接触のし易さを評価するとともに、多指ハンド部の関節トルクに加えて、把持形態による障害物との接触し易さに関する情報に基づいて把持形態を選択するように構成してもよい。