(57)【要約】【課題】把持位置姿勢がアームおよびハンドの可動範囲外となるのを可及的に避けることを可能にする。【解決手段】位置姿勢計測センサによって計測された把持対象物の位置姿勢およびデータベースに格納された前記把持対象物の形状情報に基づいて、前記把持対象物に関する把持位置姿勢が、少なくとも２つの関節を有するアームおよび前記アームの先端に設けられた把持機構の可動範囲外である否かを判定するステップと、前記アームおよび前記把持機構の可動範囲外である場合に、前記把持位置姿勢を修正することにより前記アームおよび前記把持機構の可動範囲内に修正された把持位置姿勢が存在するか否かを演算するステップと、存在する場合に前記修正された把持位置姿勢となるように前記アームおよび前記把持機構を制御するステップと、を備えたことを特徴とする。【選択図】図１
2009056513.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの関節を有するアームと、
前記アームの先端に設けられ把持対象物を把持するための把持機構と、
前記把持対象物の位置姿勢を計測する位置姿勢計測センサと、
前記把持対象物の形状情報が格納されたデータベースと、
前記位置姿勢計測センサの出力および前記データベースに格納された形状情報に基づいて、前記把持対象物に関する把持位置姿勢が前記アームおよび前記把持機構の可動範囲外である否かを判定し、前記アームおよび前記把持機構の可動範囲外である場合に、前記把持位置姿勢を修正することにより前記アームおよび前記把持機構の可動範囲内に修正された把持位置姿勢が存在するか否かを演算し、存在する場合に前記修正された把持位置姿勢となるように前記アームおよび前記把持機構を制御する演算制御装置と、
を備えたことを特徴とする把持位置姿勢決定システム。
【請求項２】
前記データベースには、複数種類の基本立体と、前記基本立体の対称面／対称軸／対称点と、前記アームの可動範囲と、前記把持機構の形状および可動範囲とが格納されており、
前記演算制御装置は、前記位置姿勢計測センサの出力に基づいて、前記把持対象物を複数の前記基本立体から選択された単一の基本立体または複数の基本立体を組み合わせた仮想立体と見なし、前記基本立体または前記仮想立体に基づいて前記修正された把持位置姿勢を演算することを特徴とする請求項１記載の把持位置姿勢決定システム。
【請求項３】
前記把持位置姿勢の修正は、前記把持機構と前記把持対象物との接触面積の大きさに基づいて行うことを特徴とする請求項１または２記載の把持位置姿勢決定システム。
【請求項４】
前記演算制御装置は、前記把持機構が前記把持対象物を把持したときの把持点を原点とする新たな座標系を設定し、前記新たな座標系における前記把持位置姿勢の３つの位置成分と３つの姿勢成分を修正したときの把持位置姿勢を、前記把持機構と前記把持対象物との接触面積が大きい順に順位づけし、前記順位に従って前記把持位置姿勢の３つの位置成分と３つの姿勢成分を修正し、修正した把持位置姿勢が可動範囲内にあるか否か判定することを特徴とする請求項３記載の把持位置姿勢決定システム。
【請求項５】
前記演算制御装置は、前記把持位置姿勢の３つの位置成分と３つの姿勢成分を一度に修正するのではなく、前記接触面積の大きさに応じて数成分に分けて修正することを特徴とする請求項４記載の把持位置姿勢決定システム。
【請求項６】
前記把持位置姿勢の修正は、前記アームの関節の可動限界時における関節角度と、前記修正したときの把持位置姿勢を実現する、前記アームの関節角度との差の絶対値の、前記関節に対する和が最小となるように行うことを特徴とする請求項４または５記載の把持位置姿勢決定システム。
【請求項７】
位置姿勢計測センサによって計測された把持対象物の位置姿勢およびデータベースに格納された前記把持対象物の形状情報に基づいて、前記把持対象物に関する把持位置姿勢が、少なくとも２つの関節を有するアームおよび前記アームの先端に設けられた把持機構の可動範囲外である否かを判定するステップと、
前記アームおよび前記把持機構の可動範囲外である場合に、前記把持位置姿勢を修正することにより前記アームおよび前記把持機構の可動範囲内に修正された把持位置姿勢が存在するか否かを演算するステップと、
存在する場合に前記修正された把持位置姿勢となるように前記アームおよび前記把持機構を制御するステップと、
を備えたことを特徴とする把持位置姿勢決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持位置姿勢決定システムおよび把持位置姿勢決定方法に関する。
【背景技術】
【０００２】
従来、任意の位置姿勢に配置された様々な形状の把持対象物をロボットが把持し搬送する作業が行われている。様々な形状を持つ把持対象物の把持位置姿勢を簡単に計算する方法の一つに、把持対象物を基本立体に当てはめ、各基本立体について定義された把持位置姿勢をその把持対象物に適用する方法が知られている（例えば、特許文献１参照）。この特許文献１に記載の技術は、把持対象物とロボットのハンドとの相対位置姿勢は基本立体の大きさ等を用いて計算され、この相対位置姿勢を実現するためのロボットのアームの関節角度がハンドと把持対象物との相対位置姿勢を用いて計算される。もし、ある把持位置姿勢を実現する関節角度がアームの可動範囲外だった場合は、数種類の計算された、把持対象物とハンドとの相対位置姿勢の中から可動範囲内のものを選択する。数種類の相対位置姿勢は、初めに算出された相対把持位置姿勢を基本立体の対称軸まわりに回転させることによって得ていた。
【特許文献１】特開２００５−１６９５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１には、算出された数種類の把持位置姿勢すべてがアームおよびハンドの可動範囲外だった場合の対処が記されていない。
【０００４】
本発明は、上記事情を考慮してなされたものであって、把持位置姿勢がアームおよびハンドの可動範囲外となるのを可及的に避けることのできる把持位置姿勢決定システムおよび把持位置姿勢決定方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の１態様による把持位置姿勢決定システムは、少なくとも２つの関節を有するアームと、前記アームの先端に設けられ把持対象物を把持するための把持機構と、前記把持対象物の位置姿勢を計測する位置姿勢計測センサと、前記把持対象物の形状情報が格納されたデータベースと、前記位置姿勢計測センサの出力および前記データベースに格納された形状情報に基づいて、前記把持対象物に関する把持位置姿勢が前記アームおよび前記把持機構の可動範囲外である否かを判定し、前記アームおよび前記把持機構の可動範囲外である場合に、前記把持位置姿勢を修正することにより前記アームおよび前記把持機構の可動範囲内に修正された把持位置姿勢が存在するか否かを演算し、存在する場合に前記修正された把持位置姿勢となるように前記アームおよび前記把持機構を制御する演算制御装置と、を備えたことを特徴とする。
【０００６】
また、本発明の他の１態様による把持位置姿勢決定方法は、位置姿勢計測センサによって計測された把持対象物の位置姿勢およびデータベースに格納された前記把持対象物の形状情報に基づいて、前記把持対象物に関する把持位置姿勢が、少なくとも２つの関節を有するアームおよび前記アームの先端に設けられた把持機構の可動範囲外である否かを判定するステップと、前記アームおよび前記把持機構の可動範囲外である場合に、前記把持位置姿勢を修正することにより前記アームおよび前記把持機構の可動範囲内に修正された把持位置姿勢が存在するか否かを演算するステップと、存在する場合に前記修正された把持位置姿勢となるように前記アームおよび前記把持機構を制御するステップと、を備えたことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、把持位置姿勢がアームおよびハンドの可動範囲外となるのを可及的に避けることができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の一実施形態を詳細に説明する。
【０００９】
本発明の一実施形態の把持対象物の把持位置姿勢決定システムは、図２に示す、ロボットに適用される。このロボット１００は、本体１１０と、本体１１０に一端が取り付けられたアーム１と、このアーム１の他端に設けられたハンド２と、位置姿勢計測センサ３と、力覚センサ４と、データベース５と、演算制御装置６とを備えている。アーム１には少なくとも２つの関節が設けられており、把持対象物の位置姿勢へハンド２を移動できる機構を有している。この機構は６以上の自由度を有している。ハンド２は、アーム１に接続されるフランジ２ａと、このフランジ２ａに設けられた少なくとも２本の指２ｂを有している。この少なくとも２本の指２ｂは、把持対象物を挟むまたは包み込む機構を有している。この機構には、例えば、周知の平行二指ハンドや多関節ハンドが該当する。
【００１０】
また、位置姿勢計測センサ３は把持対象物の三次元の位置姿勢を計測することができるセンサで、例えば、ステレオカメラやレーザレンジセンサなどを指す。力覚センサ４は、把持力を計測するために用いる。力覚センサ４の装着部位はハンド２の各指２ｂの腹のような、把持力を検知できる部位に設けられる。力覚センサ４としては、例えばシート型の圧力センサ等が用いられる。データベース５には、把持対象物の形状情報が格納されている。格納された情報については後述する。演算制御装置６は、アーム１、ハンド２、位置姿勢計測センサ３、力覚センサ４、およびデータベース５との間で通信し、アーム１およびハンド２を制御する。
【００１１】
このようなロボット１００において、図３に示す直方体６０を、従来の方法（例えば特許文献１に記載された方法）を用いて把持を行う場合には、ハンド２の把持面と直方体６０の所定の面およびその対向面とが平行な把持位置姿勢となるようにハンド２を移動させ把持する。そして、直方体６０のある側面側からの把持位置姿勢Ｐ１では、手首関節が可動範囲外であると、その把持位置姿勢から９０度回転させた把持位置姿勢Ｐ２で把持しようと試みる。そしてこの場合も手首関節が可動範囲外であると、その把持位置姿勢Ｐ２から９０度回転させた把持位置姿勢Ｐ３で把持しようと試みる。そしてこの場合も手首関節が可動範囲外であると、その把持位置姿勢Ｐ３から９０度回転させた把持位置姿勢Ｐ４で把持しようと試みる。
【００１２】
しかし、この従来の方法を用いる場合には、図４（ａ）、４（ｂ）に示すように、把持位置姿勢Ｐ１、Ｐ２では手首関節が可動範囲外となり、把持位置姿勢Ｐ３、Ｐ４ではそこへ手先が全く届かない場合がある。このようにすべての把持位置姿勢がアーム１およびハンド２の可動範囲外となる場合が生じる。以下、アーム１およびハンド２をマニピュレータとも云う。
【００１３】
そこで本発明者達は、例えば、図５に示すように、直方体６０の所定の面およびその対向面に平行な把持位置姿勢から、ハンド２の把持位置姿勢を直方体６０の所定の面およびその対向面に対して傾けるようにシフトさせれば、可動範囲内に入ることに気づいた。すなわち、本実施形態においては、事前に教示または算出された把持位置姿勢がアーム１およびハンド２の可動範囲外であった場合に、把持位置姿勢をシフト（修正）することにより可動範囲内の把持位置姿勢が存在するか否か演算し、アーム１およびハンド２を制御する演算制御装置６を設けた構成となっている。
【００１４】
次に、図６を参照して座標系の定義を述べる。本実施形態の把持位置姿勢決定システムが適用されるロボット１００には、アーム１に関するアーム座標系Σａと、ハンド座標系Σｈとがある。アーム座標系Σａは、その原点をアーム１の台座に指定する。座標軸の向きは任意とする。ハンド座標系Σｈは、原点を、ハンド２の各指と把持対象物との接触面から法線を引き、法線の交点を原点に取るまた平行二指ハンドの場合は、各指と把持対象物の接触点との中点を原点に取る。座標軸の向きは、ハンド２のフランジ面２ａからハンド座標系Σｈの原点へ向かうベクトルをｚ軸、原点から降ろした指２ｂへの垂直ベクトルをｘ軸とし、ｚ軸およびｘ軸と右手系をなすようなベクトルをｙ軸とする。本明細書においては、把持位置姿勢とは、アーム座標系Σａから見たハンド座標系Σｈの位置姿勢を指す。
【００１５】
次に、本実施形態に係る演算制御装置６の構成を図７に示す。この演算制御装置６は、位置姿勢処理部６１と、把持位置姿勢計算部６２と、アーム制御部６３と、ハンド制御部６４とを備えている。位置姿勢処理部６１は、位置姿勢計測センサ３からの送られてくる画像データや位置姿勢データを処理する。把持位置姿勢計算部６２は、位置姿勢処理部６１によって処理されたデータおよびデータベース５に格納されている把持対象物の形状情報に基づいて、把持位置姿勢を計算する。アーム制御部６３は、把持位置姿勢計算部６２によって計算された把持位置姿勢に基づいてアーム１のモータドライバ１１を介してモータ１２を制御する。ハンド制御部６４は把持位置姿勢計算部６２によって計算された把持位置姿勢に基づいてハンド２のモータドライバ２１を介してモータ２２を制御する。
【００１６】
次に、把持位置姿勢計算部６２の入出力を、図８を参照して説明する。把持位置姿勢計算部６２の入力は、センサ情報Ｄ１、把持位置姿勢計算部６２が持つ事前知識Ｄ２、作業前に人間がデータベース５へ格納する知識Ｄ３、の三種類を有する。センサ情報Ｄ１は、把持対象物の位置姿勢Ｄ１１を有する。これは、アーム座標系Σａからみた把持対象物の三次元の位置姿勢を指す。この位置姿勢は位置姿勢処理部６１が生成する。
【００１７】
把持位置姿勢計算部６２が持つ事前知識Ｄ２は、基本立体（後述する）の表現Ｄ２１、基本立体の把持位置姿勢計算方法Ｄ２２、アーム１の可動範囲Ｄ２３、ハンド２の形状Ｄ２４、およびハンド２の可動範囲Ｄ２５を有する。
【００１８】
データベース５へ格納する知識Ｄ３は、把持対象物が属する基本立体Ｄ３１、基本立体（Ｄ３１）の概寸Ｄ３２、基本立体（Ｄ３１）の把持位置姿勢Ｄ３３、を有する。
【００１９】
次に、把持位置姿勢計算部６２が持つ事前知識Ｄ２について詳しく述べる。
【００２０】
基本立体の表現Ｄ２１には、基本立体の種類、基本立体のパラメータの定義、基本立体の対称軸／面／点が含まれる。
【００２１】
基本立体の種類
本実施形態においては、基本立体は、図９に示すように、柱、錐、球、回転体、押出し立体の５種類と定義する。柱には、円柱と、楕円柱と、三角柱と、四角柱と、五角柱と、六角柱と、七角柱と、八角柱とがある。なお、九角柱以上は円柱として扱う。錘には、円錐と、楕円錘と、三角錘と、四角錘と、五角錘と、六角錘と、七角錘と、八角錘とがある。なお、九角錘以上は円錐として扱う。球には、真球（主軸の値がすべておなじ値）と、楕円球（３つの主軸の値のうち少なくとも１つの値が異なる）とがある。回転体には、図１０に示すように、３６０度回転させることにより形成される円回転体と、ｎ（０＜ｎ＜３６０）度回転体とがある。押出し形状には、図１１に示すように、垂直押出し、軌道押出しがある。
【００２２】
柱、錐、回転体は、更に、凸立体、凹立体、中空立体に分けられる（図９参照）。例えば、図１２に示すように、円柱は、凸円柱、凹円柱（例えばコップなどを表す）、中空円柱（例えばパイプなどを表す）に分けられ、図１３に示すように、円錐は、凸円錐、凹円錐、中空円錐に分けられる。なお、本実施形態においては、凸円錐には、円錐の頂部がカットされた立体も含む。上記の例からわかるように、本実施形態においては、凹立体とは、ある一定の厚みを持つようにくりぬかれた立体を指す。厚みが異なるようにくりぬかれた立体はくりぬき部を無視して凸立体とみなす。凸立体、凹立体、中空立体は把持位置姿勢をシフトさせる方向の決定（詳細は後述する）に必要となる。押出し立体でも凹立体や中空立体が存在するが、図１のステップＳ６で後述するように、位置姿勢成分を三成分に分けることが難しい、すなわち断面形状によって接触面積が大きくなる方向が変わるが、その接触面積の計算が手計算では難しいので、本実施形態では扱わないことにする。ちなみに多面体は、柱（六面体）、錐（四面体）、球（八面体以上）に近似する。
【００２３】
基本立体の単体またはその組み合わせで多くの物体の形状を表現できる。図１４に示すように食器を例にとると、例えばボウルは凹回転体、マグカップは円柱と軌道押出しの組み合わせで表され、角皿は凹９０度回転体と凹四角柱の組み合わせで表され、フォークは直方体二つの組み合わせで表される。
【００２４】
基本立体のパラメータ
図１５にいくつかの基本立体のパラメータを示す。例えば、凸四角柱は、幅、奥行き、高さがパラメータとなり、凹五角錘は底面の辺長、厚さ、高さがパラメータとなり、真球は直径がパラメータとなる。中空円柱と凹円柱の組み合わせは、それぞれの高さおよび直径がパラメータとなる。押出し体は軌道と断面形状がパラメータとなる。押出し体の軌道の指定方法は、軌道の軌跡の点列、曲線／直線の式、等が考えられる。また押出し体の断面形状のパラメータ表現が可能な場合は、断面形状も記述する。パラメータは、把持対象物の形状の近似の精度に合わせて変化させてよい。図１６に示すように、形状を高い精度で近似すれば算出される把持位置姿勢も形状により沿ったものとなり、形状を低い精度で近似すれば算出される把持位置姿勢は簡易的なものとなる。
【００２５】
また、図１５に基本立体座標系Σｂ０の定義も示す。基本立体座標系Σｂ０は、ｚ軸の＋方向に重心が重なり、かつ円柱など対称軸をもつ物体は対称軸とｚ軸とが重なるようにする。基本立体座標系Σｂ０のｘ、ｙ軸は、底面がある基本立体の場合は物体の底面を含むように定義する。さらに凹物体の場合、凹部分がｚ軸方向に存在するものと定義する。また、物体を複数の基本立体で表現する場合は、物体座標系を定義し、物体座標系から見た基本立体座標系Σｂ０の位置姿勢も定義する。
【００２６】
基本立体の対称軸／対称面／対称点
図１７に基本立体の対称軸／対称面／対称点の例を数点示す。角柱、角錐、ｎ度回転体の場合は、対称軸まわりｎ度ごと（６角柱の場合は６０度ごと）に対称とする。例えば、凹円回転体の場合は回転軸が対称軸となる。凸四角柱には３つの対称面が存在し、凹四角柱には２つの対称面が存在し、真球は中心が対称点となる。押出し体は押出し面の形状や軌道によって対称軸／面／点が異なるので、各押出し体に特有な対称軸／面／点を指定する。
【００２７】
図８に示す把持位置姿勢計算方法Ｄ２２は、任意の方法でよい。本実施形態の把持位置姿勢決定システムは基本立体の情報を用いるので、把持位置姿勢計算方法も基本立体の幾何的特徴を用いた方法が本実施形態の把持位置姿勢決定システムに適している。また、マニピュレータの可動範囲Ｄ２３は、各関節軸について最小角度、最大角度を指定する。ハンド２の形状Ｄ２４は、ハンド２と把持対象物との干渉を計算するために用いる。ハンド２の可動範囲Ｄ２５は、把持位置姿勢をシフトできる範囲を計算するために用いる。平行二指ハンドであれば最大、最小把持幅を指定する。
【００２８】
把持対象物が属する基本立体の選定は、情報作成者が任意に選択できる。また、一つまたは複数の基本立体を指定できるが、そのときに本実施形態においては、一つの基本立体を把持することに留意する。例えばフォークの柄と先（三又に分かれている部分）の間を把持させたければ柄と先を一つの基本立体と定義する。また、フォークの先全部を把持させたければ、フォークの先三つを一つの直方体と定義する。把持対象物の概寸には、各基本立体のパラメータの数値を入力する。把持位置姿勢は、前述の把持位置姿勢計算方法がインストールされていない場合に用いる。
【００２９】
次に、本実施形態の把持位置姿勢決定システムの決定処理を、図１を参照して説明する。
【００３０】
初めに、把持対象物の基本立体への当てはめを行う（ステップＳ１）。当てはめは、位置姿勢計測センサ３から得た把持対象物の位置姿勢を位置姿勢処理部６１が処理して行う。続いて、把持位置姿勢の計算を把持位置姿勢計算部６２によって行う（ステップＳ２）。その後、ステップＳ２で算出された把持位置姿勢を実現するアーム１の関節角度が可動範囲内か可動範囲外かを判定する（ステップＳ３）。この判定は把持位置姿勢計算部６２によって行う。可動範囲内と判定された場合はステップＳ４へ進み、可動範囲外と判定された場合はスッテプＳ６へ進む。
【００３１】
可動範囲内と判定された場合、可動範囲内の把持位置姿勢となるように、アーム制御部６３を介してへアーム１を制御する（ステップＳ４）。その後、ステップＳ５に進み、把持位置姿勢計算部６２が算出した把持幅となるように、ハンド制御部６４を介してハンド２を制御する。このとき、すべての指を同時に動かし始めることとする。上記把持幅となるように移動後、把持位置姿勢が誤差０の位置姿勢からずれていたり、把持幅が誤差０の幅とずれていたりした場合に対応するため、力覚センサ４を用いて把持幅の微調整を行う。このようにして把持対象物を把持する。
【００３２】
可動範囲外と判定された場合、スッテプＳ６以降のステップが行われる。これらのステップでは、スッテプＳ２で算出された把持位置姿勢をシフトさせて可動範囲内の位置姿勢を算出する。把持位置姿勢をシフトさせるとは、現在の把持位置姿勢を基準としてシフト量（ｘ、ｙ、ｚ、ｒｘ、ｒｙ、ｒｚ）となるように把持位置姿勢を変化させることを指す。ここで、ｘ、ｙ、ｚは、それぞれ基準座標系のｘ軸方向、ｙ軸方向、ｚ軸方向へのシフト量を示し、ｒｘ、ｒｙ、ｒｚは、基準座標系のｘ軸周りの回転、基準座標系のｙ軸周りの回転、基準座標系のｚ軸周りの回転を指す。ここで、基準座標系とは回転させる前の座標系を意味し、周知のロール、ピッチ、ヨー回転のような回転後の座標系ではない。
【００３３】
シフト量の自由度が六種類（六成分）あるため、シフトされた把持位置姿勢の種類が膨大となる。この把持位置姿勢の膨大な探索空間を、本実施形態では分割して探索する。このため、本実施形態においては探索の計算量を削減できる。本実施形態では、六成分すべてを一度にシフトさせるのではなく、いくつかの成分ずつシフトさせて探索する。本実施形態のステップＳ６では、六成分を三成分ずつの２組に分ける。分ける方法は後述する。続いて、六成分中の分けられた２組のうちの一組の三成分だけをシフトする（ステップＳ７）。その後、ステップＳ８で、シフトされた把持位置姿勢が新規の把持位置姿勢か否かが判定される。新規の把持位置姿勢と判定された場合は、後述するステップＳ１０に進む。新規の把持位置姿勢と判定された場合は、ステップＳ９に進み、マニピュレータの可動範囲内か可動範囲外かを判定する。
【００３４】
ステップＳ９において、可動範囲と判定された場合は、ステップＳ４に進み、前述した処理が行われる。マニピュレータの可動範囲内での把持位置姿勢が発見できない場合は、ステップＳ１０に進む。ステップＳ１０では、残りの組の三成分をシフトする。このシフトされた把持位置姿勢が新規の把持位置姿勢か否かの判定がステップＳ１１において、判定される。ステップＳ１１において、新規の把持位置姿勢と判定された場合は、ステップＳ１２に進む。ステップＳ１２において、上記シフトされた把持位置姿勢がマニピュレータの可動範囲内か否かが判定される。ステップＳ１２において、可動範囲内と判定された場合は、ステップＳ４に進み、前述した処理が行われる。ステップＳ１２において、可動範囲外と判定された場合は、ステップＳ１０に戻り、前述した処理が行われる。なお、ステップＳ１１において、新規の把持位置姿勢でないと判定された場合は、ステップＳ１３に進み、把持対象物が把持不能であるとして把持位置姿勢決定処理を終了する。
【００３５】
次に、図１に示す各ステップの処理について具体的に説明する。
【００３６】
把持位置姿勢の計算（ステップＳ２）
任意の方法で、把持位置姿勢を算出する。算出された把持位置姿勢をアーム１が実現するときの関節角度が、アーム１の可動範囲外だった場合は、ハンド２と把持対象物とが接触している部位が属する基本立体の対称軸／対称面／対称点まわりに把持位置姿勢を移動させ、可動範囲内かチェックする。もし、すべての把持位置姿勢が可動範囲外だった場合は、可動限界時の関節角度と把持位置姿勢を実現する関節角度との差の和θoverが最少の把持位置姿勢を選択する。この和θoverは、以下の式で表される。
【数１】
2009056513.tif 000003
ここで、Ｒは可動範囲外の関節の集合とする。
【００３７】
位置姿勢成分６つを２組に分割（ステップＳ６）
分割に用いる指標として、ハンド２と把持対象物との接触面積を用いる。本実施例ではハンド２と把持対象物との接触面積が高いほど安定に（把持時に物体を倒さないで、搬送中に物体を落とさないで）把持できると定義する。接触面積の定義は、把持位置姿勢計算部６２が算出した把持幅へハンド２を閉じるときに、ハンド２と把持対象物とが接触し始めた時の接触面積とする。接触面積の例を図１８（ａ）乃至１８（ｃ）に示す。図１８（ａ）乃至図１８（ｃ）においては、把持動作前のハンド２の指２ｂを斜線で表示している。図１８（ａ）では、理想状態の把持動作時のハンド２の２本の指２ｂの接触面との位置ずれが０なので、把持動作時にハンド２と把持対象物が面で接触する。よって、接触面積は後述する図１８（ｂ）、１８（ｃ）と比べて大きい。一方、図１８（ｂ）ではハンド２が図１８（ａ）の場合に比べて傾いているので、把持動作時にハンド２の指２ｂと把持対象物とが点または線で接触する。よって、接触面積は図１８（ａ）の場合と比べて小さい。図１８（ｃ）ではハンド２の位置がずれているので、把持動作時にハンド２の片方の指２ｂと把持対象物とが接触する。よって、接触面積は図１８（ａ）の場合と比べて小さい。
【００３８】
図１に示すステップＳ２で算出された把持位置姿勢が最も接触面積が大きく、かつハンド座標系Σｈの原点が基本立体座標系Σｂ０の原点となるべく一致すると仮定して、以下の通り説明する。
【００３９】
シフト量の六成分を二つに分割するときの手順は、以下の三つのステップを有する。
１．ステップＳ２で算出された把持位置姿勢を基準としてハンド２の位置姿勢をある成分の±方向にシフトさせる。
２．シフト前後におけるハンド２と把持対象物との接触面積の変化をチェックする。
３．接触面積の減少が少ない成分から三成分ずつに分割する。
【００４０】
次に、分割の詳細な手順を、図１９乃至図２９を参照して説明する。
【００４１】
シフトさせる方向を決定するために、図１９に示すステップＳ６０１では新たな座標系Σｓｆｔを設定する。座標系Σｓｆｔの設定方法の一例を図２０に示す。まず、ハンド座標系Σｈおよび基本立体座標系Σｂｏを定義する（図２０（ａ））。続いて、新たな座標系Σｓｆｔの原点を、現在の把持位置に設定する（図２０（ｂ））。新たな座標系Σｓｆｔの各軸の向きを、基本立体座標系Σｂｏかハンド座標系Σｈに合わせる（図２０（ｂ））。その後、ハンド座標系Σｈの±ｚ方向にハンド２をシフトさせた場合（図２０（ｃ））と、基本立体座標系Σｂｏの±ｚ方向にハンド２をシフトさせた場合（図２０（ｄ））との二タイプについて接触面積の変化を調べ、減少量が少ない座標系のｚ軸を新たな座標系Σｓｆｔのｚ軸に採用する。シフトさせる範囲はハンド２の腹と基本立体が接触しつつ、腹以外の面が基本立体と接触していない範囲とする。
【００４２】
本実施形態においては、把持の種類を、図２１に示すように、（１）凸部分の対向する平面（回転体の側面同士、柱や錐の上面と底面など）を把持する場合、（２）凹部分を把持する場合、（３）凸部分の対向しない平面を把持する場合の三種類に大別する。さらに（１）の場合を、（１−１）側面同士を把持する場合と、（１−２）底面と上面を把持する場合の二つに別ける。ちなみに、回転体の側面や錐の上面など平面が存在しない場合は把持（１−１）に示すように側面同士を把持する。上面と底面が存在する場合は把持（１−２）に示すように、上面と底面を把持してもよい。
【００４３】
本実施形態においては、上面と底面接触面積の変化をおおまかに把握するため、変化を下記の四段階に分類する。（Ａ）プラス方向、マイナス方向へ変化させると接触面積が増える。（Ｂ）接触面積が全く変わらない。（Ｃ）接触面積が所定値以上増えたり減ったりする。（Ｄ）接触面積が減る。（Ｃ）は接触面積の増減の総和が所定値以下になった場合は、（Ｂ）と同じとみなすことができる。よって、接触面積の減少量が少ない順番は、１番目が（Ａ）、２番目が（Ｂ）と（Ｃ）、３番目が（Ｄ）となる。
【００４４】
次に、柱を把持する場合の接触面積の変化を調べた。図２２に示すように、把持（１−１）のとき、ハンド座標系の場合は（Ｂ：円柱）又は（Ｃ：角柱）となり、基本立体座標系の場合は（Ｂ）となり、接触面積の減少量はどちらの座標系でも同じになる。把持（１−２）のとき、ハンド座標系の場合は（Ｃ）となり、物体座標系の場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。把持（２）のとき、ハンド座標系の場合は（Ｂ）、物体座標系の場合は（Ｂ）となり、接触面積の減少量はどちらの座標系でも同じになる。把持（３）のとき、ハンド座標系の場合は（Ｂ）、物体座標系の場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。
【００４５】
よって、把持（１−２）または把持（３）の場合はハンド座標系のｚ軸を新たな座標系のｚ軸とする。把持（１−１）または把持（２）のようにどちらの座標系も減少量が同じ場合は、基本立体の種類にかかわらず、基本立体座標系のｚ軸を新たな座標系のｚ軸とする。理由は、基本立体座標系を採用したほうが、搬送時のハンド２と把持対象物とのバランスをより安定に保てるからである。
【００４６】
次に、図２３（ａ）乃至２３（ｃ）を参照して、座標系と重心のずれ量との関係を説明する。ハンド２と把持対象物との接触面積が大きいという理由で図１に示すステップＳ２において、図２３（ａ）に示すような把持位置姿勢を算出した場合を考える。このとき、ハンド座標系Σｈのｚ軸に新たな座標系Σｓｆｔのｚ軸の向きを合わせた座標系を設定した場合は、図２３（ｂ）に示すように、ハンド座標系Σｈのある軸（例えばｚ軸）方向にハンド２をシフトさせたとき、シフト前とシフト後の重心のずれ量がどの並進方向（ｘ、ｙ方向）も大きくなる。よって、どのような姿勢で把持対象物を搬送しても、ハンド２と把持対象物とのバランスが崩れる。
【００４７】
一方、図２３（ｃ）に示すように、基本立体座標系Σｂｏのｚ軸に新たな座標系Σｓｆｔのｚ軸の向きを合わせた場合は、例えば新たな座標系のΣｓｆｔのｚ軸方向にハンド２をシフトさせたとき、シフト前とシフト後の重心のずれ量がシフトさせていない並進方向（ｘ、ｙ方向）は０になる。よって、把持対象物を図２３（ａ）に示す姿勢を保ったまま移動させるとき、図２３（ｃ）に示すように、搬送時にハンド２と把持対象物とのバランスが崩れない場合がある。
【００４８】
錐、回転体を把持する場合の接触面積の変化
図２４に示すように、把持（１−１）のとき、ハンド座標系Σｈの場合は（Ｂ：円錐、円回転体）又は（Ｃ：角錐、ｎ角回転体）となり、基本立体座標系Σｂｏの場合（Ｂ）となり、接触面積の減少量はどちらの座標系でも同じになる。把持（１−２）のとき、ハンド座標系Σｈの場合は（Ｃ）となり、基本立体座標系Σｂｏの場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。把持（２）のとき、ハンド座標系Σｈの場合は（Ｂ）となり、基本立体座標系Σｂｏの場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。把持（３）のとき、ハンド座標系Σｈの場合は（Ｂ）となり、基本立体座標系Σｂｏの場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。
【００４９】
よって、錐、回転体を把持するとき、把持（１−２）、（２）、（３）の場合はハンド座標系のｚ軸を新たな座標系のｚ軸とする。把持（１−１）のようにどちらの座標系も減少量が同じ場合は、基本立体座標系のｚ軸を新たな座標系のｚ軸とする。
【００５０】
球を把持する場合の接触面積の変化
図２５に示すように、把持（１−１）のとき、ハンド座標系Σｈの場合は（Ｂ）となり、基本立体座標系Σｂｏの場合も（Ｂ）となり、接触面積の減少量はどちらの座標系でも同じになる。把持（１−２）のとき、ハンド座標系Σｈの場合は（Ｃ）となり、基本立体座標系Σｂｏの場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。把持（２）は、球の凹立体を想定していないので考慮しない。把持（３）のとき、ハンド座標系Σｈの場合は（Ｂ）となり、基本立体座標系Σｂｏの場合は（Ｄ）となり、ハンド座標系の接触面積の減少量の方が少ない。
【００５１】
よって、球を把持するとき、把持（１−２）または把持（３）の場合はハンド座標系のｚ軸を新たな座標系のｚ軸とする。把持（１−１）のようにどちらの座標系も減少量が同じ場合は、柱または錘等のときは、基本立体座標系のｚ軸を新たな座標系のｚ軸としていた。しかし球の場合、基本立体座標系のｚ軸方向のシフト範囲がハンド座標系のシフト範囲より著しく小さい。これは、基本立体座標系のｚ軸方向へシフトさせた場合、シフトしてすぐハンド２の腹面と上面または底面とのエッジで把持するようになる。エッジのみの接触はシフト範囲に含めない。このため、特例としてハンド座標系を新たな座標系のｚ軸とする。ちなみに、ハンド２の形状は指の長さの方が指の幅より長いことを前提している。
【００５２】
押出し立体を把持する場合の接触面積の変化
（ａ）垂直押出し立体の場合
図１のステップＳ２で算出された把持位置姿勢のうち、把持位置姿勢をシフトできる位置姿勢を、図２６に示すように、（ｉ）垂直押出し立体の側面からハンド２がアプローチする把持位置姿勢、（ｉｉ）上面と底面を持つ把持位置姿勢、の二種類に限定する。理由は、垂直押出し立体の上面からアプローチする把持位置姿勢の場合は断面の形状によって接触面積が異なるからである。詳しく説明すると、垂直押出し物体の断面の形状が複雑である（単純な断面を持つ押出し立体は、柱とみなされる）ため、側面の形状が複雑になり、上面からアプローチすると側面のどの部分を持つかで接触面積が異なってしまい、三成分ずつに分けることが難しくなるからである。また、押出し立体では凹立体を考えないため、ハンド２と把持対象物との接触関係が（２）となる把持は考慮しない。よってハンド２と把持対象物との接触関係は把持（１−１）、把持（１−２）、および把持（３）だけを考慮する。断面の形状が指定されておらず、把持（１−１）か把持（３）かわからない場合は、把持（３）とみなす。
【００５３】
次に、ハンド座標系のｚ軸方向、垂直押出し立体座標系のｚ軸方向にハンド２をシフトさせた場合の垂直押出し立体とハンド２の腹との接触面積の変化を、図２７を参照して説明する。把持（１−１）、すなわち、把持（ｉ）のとき、接触面積の増減はハンド座標系のｚ軸方向にシフトさせた場合は（Ｃ）となり、垂直押出し立体座標系のｚ軸方向にシフトさせた場合は（Ｂ）になる。接触面積の減少量はハンド座標系のｚ軸方向と垂直押し出し立体座標系のｚ軸方向とで同じなので、柱や錐の場合と同様に、垂直押出し立体座標系のｚ軸を新しい座標系のｚ軸とする。
【００５４】
把持（１−２）すなわち把持（ｉｉ）のとき、接触面積の増減は、ハンド座標系のｚ軸方向にシフトさせた場合は（Ｃ）となり、垂直押出し立体座標系のｚ軸方向にシフトさせた場合は（Ｄ）になる。接触面積の減少量はハンド座標系の±ｚ軸方向にシフトさせたほうが少ないので、ハンド座標系のｚ軸を新しい座標系のｚ軸とする。
【００５５】
把持（３）すなわち把持（ｉ）のとき、接触面積の減少量は、ハンド座標系のｚ軸方向にシフトさせた場合は（Ｂ）となり、垂直押出し立体座標系のｚ軸方向にシフトさせた場合は（Ｂ）になる。接触面積の減少量はハンド座標系と垂直押し出し立体座標系とで同じなので、垂直押出し立体座標系のｚ軸を新しい座標系のｚ軸とする。
【００５６】
（ｂ）軌道押出し立体の場合
まず、本実施形態においては、軌道押出し立体を微小な垂直押出し立体の集合と定義する。次に、図１に示すステップＳ２で算出された把持位置姿勢のうち、把持位置姿勢をシフトできる位置姿勢を、上記垂直押出し立体の側面とハンド２の腹とが接触する把持位置姿勢に限定する。図２８に示すように、かさの柄の左端と右端を持つ場合のような複数の垂直押出し立体とハンド２が接触する把持位置姿勢はシフトの対象としない。
【００５７】
微小押出し物体の上面と底面を把持することができないので、ハンド２と把持対象物との接触関係を示す把持（１−２）は考慮しない。また、押出し立体では凹立体を考えないため、把持（２）も考慮しない。よってハンド２と把持対象物との接触関係は把持（１−１）および把持（３）だけを考慮する。断面の形状が指定されておらず、把持（１−１）か把持（３）かがわからない場合は、把持（３）とみなす。そして、ハンド座標系のｚ軸方向、垂直押出し立体座標系のｚ軸方向にハンド２をシフトさせた場合の上記垂直押出し立体とハンド２の腹との接触面積の変化を調べる。
【００５８】
把持（１−１）のとき、接触面積の変化は、垂直押出し体の把持（１−１）と同様になる。よって垂直押出し立体座標系のｚ軸を新しい座標系のｚ軸とする。
【００５９】
把持（３）のとき、接触面積の変化も垂直押出し体の（３）と同様になる。よって垂直押出し立体座標系のｚ軸を新しい座標系のｚ軸とする。
【００６０】
次に、新しい座標系のｘ、ｙ軸の向きの設定を、図２９（ａ）乃至図２９（ｃ）を参照して説明する。まず、図２９（ａ）に示すように、ハンド座標系Σｈと、基本立体座標系Σｂ０を定義する。図２９（ｂ）に示すように、新しい座標系Σｓｆｔのｚ軸をハンド座標系Σｈのｚ軸に合わせた場合は、新しい座標系Σｓｆｔのｘ軸、ｙ軸の向きはハンド座標系Σｈのｘ軸、ｙ軸の向きと同じとする。図２９（ｃ）に示すように、新しい座標系Σｓｆｔのｚ軸を基準立体座標系Σｂ０のｚ軸に合わせた場合は、新しい座標系Σｓｆｔのｘ軸の向きを、ハンド座標系Σｈのｘ軸を基準立体座標系のｘｙ平面へ投影したベクトルの向きとあわせる。ｙ軸は新しい座標系が右手系をなすように設定する。
【００６１】
以上説明したようにして、図１９に示すステップＳ６０１の座標系の設定がおこなわれる。
【００６２】
次に、設定した座標系を用いて図１のステップＳ２で算出された把持位置姿勢の六成分を、三成分ずつ２組に分割する。分割時には、先述した（把持対象物とハンド２との）接触面積をチェックする。チェックの方法を以下に示す。新しい座標系Σｓｆｔの六成分（ｘ、ｙ、ｚ、ｒｘ、ｒｙ、ｒｚ）のうち一成分をプラス方向、マイナス方向へ変化させたときの接触面積が、シフト前の把持位置姿勢における接触面積より増えたか減ったかを比較する。シフトさせる範囲はハンド２の腹と基本立体が接触しつつ、腹以外の面が基本立体と接触していない範囲とする。プラス方向、マイナス方向へ変化させたときの接触面積の増減を、以下の四段階に分類する。（Ａ）接触面積が増える。（Ｂ）接触面積が所定値以上変わらない。（Ｃ）接触面積が所定値以上増えたり減ったりする。（Ｄ）接触面積が減る。この比較を、（ａ）ｘ成分を変化させた場合、（ｂ）ｙ成分を…、（ｃ）ｚ…、（ｄ）ｒｘ…、（ｅ）ｒｙ…、（ｆ）ｒｚ成分を変化させた場合の六回行う（図１９のステップＳ６０２、Ｓ６０３、Ｓ６０４、Ｓ６０５、Ｓ６０６）。
【００６３】
この比較結果に基づいて、（ａ）から（ｆ）の場合を、（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）の順、すなわち接触面積の減少が少ない順に並び換える（図１９のステップＳ６０７）。その後、上位三成分を第一グループ、下位三成分を第二グループとする（図１９のステップＳ６０８）。同順位のものがあり三成分ずつに分けられない場合は、四成分以上ある方の同順位のものの中から適当に選択して三成分ずつとする。また、二成分×３個等の別の分割にしてもよい。
【００６４】
上記の分割方法を適用することで、ハンド２と把持対象物との接触面積が大きい（言い換えると、把持の安定度が高く、安定に把持できる）シフト方向と、接触面積が少ない（言い換えると安定に把持できない）シフト方向に分けることができる。このように、本実施形態においては、接触面積が大きい方向の三成分をシフトさせて解を探索することにより、次のステップで安定に把持できる把持位置姿勢から優先して探索できることになる。すなわち、本実施形態においては、まず、一番目の三成分をシフトし、可動範囲内の把持位置姿勢を発見する（ステップＳ７〜ステップＳ９）。
【００６５】
三成分をシフトして可動範囲内の把持位置姿勢を探索する様子を図３０に示す。
【００６６】
ステップＳ２で算出された和θoverが最小な把持位置姿勢を始点にして、把持位置姿勢をシフトする。シフト方向は、ステップＳ６（位置姿勢成分６つを２分割するステップ）で決定された座標系の方向とする。シフトさせる範囲はハンド２の腹と基本立体が接触しつつ、腹以外の面が基本立体と接触していない範囲とする。把持対象物が複数の基本立体から構成されている場合は、現在接触している基本立体以外の基本立体との接触もチェックし、それをシフトさせる範囲に反映させることが望ましい。
【００６７】
探索方法には、コストを考慮した深さ優先探索（縦型探索）を採用する。この方法は、コストが少ない方向（本実施形態においては、可動範囲内へ近くなる方向）を選んで探索を進めていき、行き止まりになったら探索点を一つ後退させる方法である。この探索方法の探索手順を、図３１を参照して説明する。
【００６８】
図３１のステップＳ７１０１〜Ｓ７１０５は現探索点が可動範囲内かチェックするフェーズ、ステップＳ７２０１〜Ｓ７４０６は次の探索点を決定する（言い換えると、探索方向を決定する）フェーズになる。ステップＳ７２０１〜Ｓ７２０９は現探索点に隣接するセルをチェックする。探索が行き止まりになった場合に実行されるステップＳ７３０１〜Ｓ７３０５は、探索点を後退させる。探索点を後退させても未探索セルが存在しない場合に実行されるステップＳ７４０１〜Ｓ７４０６は、探索点を隣接しない未探索の点へジャンプさせる。
【００６９】
まず、探索点をspiとする。探索スタート時は探索点の変数spiに探索始点sp０を代入する（ステップＳ７１０１）。次に、現在の探索点spiにおける、可動限界時の関節角度と把持位置姿勢を実現する関節角度と差の絶対値の和θover（θover_ｉとする）を計算する（ステップＳ７１０３）。和θover_ｉの計算には、現在の探索点spiが指す把持位置姿勢を実現するアーム１の関節角度を用いる。和θover_ｉが０（すべての関節角が可動範囲内）ならば、探索点spiが示す把持位置姿勢を解とし、探索を終了する（ステップＳ７１０４〜Ｓ７１０５）。
【００７０】
ステップＳ７１０４において、和θover_ｉが０でないならば、探索点spiに隣接する探索点spij（最大６点）を定義する（ステップＳ７２０１）。そして、隣接する探索点spijのうち未探索のものをspijyとする（ステップＳ７２０２）。もし、未探索点spijyの要素数が０でないならば、この未探索点spijyにおける和θover（θover_ijy）を計算する（ステップＳ７２０４）。要素数が０ならば、探索点を一つ後退させる（ステップＳ７３０１）。そして、未探索点spijyにおける和θover_ijyの最小値をθover_ijy_minとする（ステップＳ７２０５）。もし、和の最小値θover_ijy_minが現在の探索点spiにおける和θover_ｉより小さければ（ステップＳ７２０６）、和の最小値θover_ijy_minに対応する未探索点spijyが現在の探索点spiより解（可動範囲内の把持位置姿勢）に近づくと判断する。次の探索点を、和の最小値θover_ijy_minに対応する未探索点spijyとし（ステップＳ７２０８、Ｓ７２０９）、ステップＳ７１０２へ戻る。
【００７１】
もし、和の最小値θover_ijy_minがθover_iより大きいか、または等しければ、現在の探索点spiに隣接するすべての探索点が解から遠ざかるか、または変わらないと判断する。未探索点spijyを探索済とし（ステップＳ７２０７）、探索点を一つ後退させる（ステップＳ７３０１）。探索点を後退させた結果、ステップＳ７３０３でｉ＜０になった場合は、現在の探索点spiから探索始点sp０に隣接するすべての探索点が探索済になっている。そこで、これらの探索点と隣接していない点へ探索点をジャンプする。ジャンプの方法を以下に示す。
【００７２】
まず、探索始点sp０からの距離（グリッド距離）が最も近い未探索点spminを選択する（ステップＳ７４０１）。未探索点spminの要素数が１つの場合は、未探索点spminを新たな探索点とする（ステップＳ７４０３、Ｓ７４０４）。未探索点spminの要素数が２つ以上ある場合は（ステップＳ７４０２）、和θover_iが最少になる未探索点spminを採用する（ステップＳ７４０５、７４０６）。
【００７３】
探索空間のすべての探索点を探索してもθover＝０となる探索点が見つからなかった場合は、解なしとし（ステップＳ７３０５）、探索を終了する。
【００７４】
上記の探索手順を踏むと可動範囲に近い探索点を重点的に探索できるので、可動範囲内の把持位置姿勢を少ない探索コストで発見することができる。
【００７５】
ｒｘ方向へシフト（Σｓｆｔのｘ軸周りに回転）させると、並進成分が０でない場合は、図３２に示すように、並進成分がずれてしまう。これを防止するために、回転成分（ｒｘ、ｒｙ、ｒｚ）をシフトさせるときは一時的に設定した座標系Σｓｆｔを把持中心へ移動させ、その座標系周りに回転させる。
【００７６】
上記探索方法で、一番目の三成分をシフトさせても、可動範囲内に把持位置姿勢を見出すことができなかった場合は、図１のステップＳ１０に進み、二番目の三成分をシフトし、可動範囲内の把持位置姿勢を発見する（ステップＳ１０〜Ｓ１２）。この時の探索の開始点を、一番目の三成分をシフトさせて探索したときの（ステップＳ７〜Ｓ９）で発見された、可動範囲に最も近い把持位置姿勢Ｐ1*とする。例えば一番目の三成分がｒｘ方向、ｚ方向、ｙ方向の場合、可動範囲に最も近い位置姿勢はＰ1*＝（0,y*,z*,rx,0,0）になる。一番目の三成分の探索と同様に二番目の三成分を探索する。もしθover＝０となる探索点が見つかったらそれを解とし探索を終了する。
【００７７】
探索点すべてを探索してもθover＝０となる探索点が見つからなかった場合は、探索の開始点を変更する。変更点は、一番目の三成分の探索で、可動範囲に二番目に近い把持位置姿勢p2*とする。変更後、再探索する。把持位置姿勢Ｐ2*を開始点にしてもθover＝０の探索点が見つからない場合は、把持位置姿勢Ｐ3*、Ｐ4*、・・・と開始点を変更して探索を繰り返す。すべての把持位置姿勢Ｐｉ*を（ｉ＝１，２，・・・）を開始点にしてもθover＝０となる探索点が見つからない場合は、解なしとし、探索を終了する。
【００７８】
以上説明したように、本実施形態によれば、算出された把持位置姿勢がマニピュレータの可動範囲外でも、代替の把持位置姿勢が決定できる可能性が高い。このため、把持位置姿勢がアームおよびハンドの可動範囲外となるのを可及的に避けることができる。特に、固定マニピュレータの場合は移動マニピュレータと比べて可動範囲が狭いため、代替の把持位置姿勢が算出できることのメリットは大きい。
【００７９】
また、多くの移動マニピュレータの場合、マニピュレータの可動範囲外の場合は台車を動かして算出された把持位置姿勢を実現しようとする。ただし台車を移動させた場合のほとんどは移動誤差が含まれるので、物体とハンド間の相対位置姿勢を計測しなおす必要が生じる。ここで本実施形態を用いると台車移動や位置姿勢の再計測が可及的に避けることができるので、これらに必要な時間を節約できる。
【００８０】
さらに、ロボットが家庭やオフィス環境で机上の片付けなどのハンドリング作業を行う場合、そのロボットの使用者はロボットの専門家でない。ロボットの専門家でない人の多くは人間と同等の合理的な動きをロボットに期待するので、家庭やオフィスで働くロボットの合理的な動きは重要である。一方、人間が把持対象物を把持するときに最適な把持位置姿勢をとれないときは足を動かさずにその近辺の準最適な把持位置姿勢へ腕を動かすことが多いが、これまでのロボットの多くは最適な把持位置姿勢のみを実現しようとして台車移動等を行ってしまう。ここで本実施形態を用いると人間の動きと似た動きをロボットに実行させることができるため、本実施形態の把持位置姿勢決定システムは家庭やオフィスで働くロボットに有用である。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施形態による把持位置姿勢決定システムの決定処理を示すフローチャート。
【図２】一実施形態の把持位置姿勢決定システムが適用されるロボットを示す模式図。
【図３】従来技術の把持方法を説明する図。
【図４】従来技術の問題点を説明する図。
【図５】一実施形態の把持位置姿勢決定システムの把持位置姿勢のシフトを説明する図。
【図６】アームとハンドの座標系を説明する図。
【図７】一実施形態の把持位置姿勢の決定に用いる制御系を示すブロック図。
【図８】一実施形態に係る把持位置姿勢計算部への入出力を説明する図。
【図９】一実施形態に用いられる基本立体の例を示す図。
【図１０】回転体の例を説明する図。
【図１１】押出し体の一例を示す図。
【図１２】凸円柱、凹円柱、中空円柱の例を示す図。
【図１３】凸円錐、凹円錐、中空円錐の例を示す図。
【図１４】基本立体を用いた食器の表現の一例を示す図。
【図１５】基本立体のパラメータの例を示す図。
【図１６】基本立体のパラメータのバリエーションを説明する図。
【図１７】基本立体の対称軸／対称面／対称点の例を説明する図。
【図１８】ハンドと把持対象物との位置関係（把持状態）による接触面積の違いを説明する図。
【図１９】位置姿勢成分６つを２分割する手順を示すフローチャート。
【図２０】新たな座標系Σｓｆｔの設定方法を説明する図。
【図２１】把持の種類を説明する図。
【図２２】把持の違いによる直方体の接触面積の変化を説明する図。
【図２３】新たな座標系の定義と重心のずれ量との関係を説明する図。
【図２４】把持の違いによる回転体の接触面積の変化を説明する図。
【図２５】把持の違いによる球の接触面積の変化を説明する図。
【図２６】垂直押出し物体で扱う把持位置姿勢を説明する図。
【図２７】把持の違いによる垂直押出し物体の接触面積の変化を説明する図。
【図２８】軌道押出し物体で扱う把持位置姿勢を説明する図。
【図２９】新しい座標系の軸の向きの定義を説明する図。
【図３０】シフトの概要を説明する図。
【図３１】把持位置姿勢の探索手順を示すフローチャート。
【図３２】新しい座標系Σｓｆｔの一時移動する必要性を説明する図。
【符号の説明】
【００８２】
１  アーム
２  ハンド
２ａ  フランジ
２ｂ  指
３  位置姿勢計測センサ
５  データベース
６  演算制御装置
１００  ロボット
１１０  本体
【図１】
2009056513.tif 000004
【図２】
2009056513.tif 000005
【図３】
2009056513.tif 000006
【図４】
2009056513.tif 000007
【図５】
2009056513.tif 000008
【図６】
2009056513.tif 000009
【図７】
2009056513.tif 000010
【図８】
2009056513.tif 000011
【図９】
2009056513.tif 000012
【図１０】
2009056513.tif 000013
【図１１】
2009056513.tif 000014
【図１２】
2009056513.tif 000015
【図１３】
2009056513.tif 000016
【図１４】
2009056513.tif 000017
【図１５】
2009056513.tif 000018
【図１６】
2009056513.tif 000019
【図１７】
2009056513.tif 000020
【図１８】
2009056513.tif 000021
【図１９】
2009056513.tif 000022
【図２０】
2009056513.tif 000023
【図２１】
2009056513.tif 000024
【図２２】
2009056513.tif 000025
【図２３】
2009056513.tif 000026
【図２４】
2009056513.tif 000027
【図２５】
2009056513.tif 000028
【図２６】
2009056513.tif 000029
【図２７】
2009056513.tif 000030
【図２８】
2009056513.tif 000031
【図２９】
2009056513.tif 000032
【図３０】
2009056513.tif 000033
【図３１】
2009056513.tif 000034
【図３２】
2009056513.tif 000035