(57)【要約】      （修正有）【課題】  視覚センサを有し、ロボットハンドによって任意形状物体を適切に把持することを可能とするロボットによる任意形状物体の把持方法を提供する。【解決手段】  視覚センサで取得した画像情報を基にして把持対象物を所定の単純形状に当てはめ（ステップＳ１）、その大きさと向きを求め（ステップＳ３）、種別に応じてその単純形状の向きと大きさからロボットハンドの把持姿勢を設定する（ステップＳ１１、２１、３１）。求めた把持姿勢からロボットハンドの手首位置を算出し（ステップＳ１３）、逆運動学解析により、アーム、胴体の目標姿勢を求め（ステップＳ１５）、モータを制御して目標姿勢を得（ステップＳ１７）、把持を行う（ステップＳ１９）。【選択図】  図４
2006130580.tif 000002
【特許請求の範囲】
【請求項１】
視覚センサと、多指・多関節を有するロボットハンドとを有するロボットによる任意形状物体の把持方法であって、
視覚センサで取得した対象物体の画像から画像認識により、対象物体の主軸方位と大きさ、位置、姿勢情報を得る工程と、
求めた主軸方位、大きさ、位置、姿勢情報に基づいて把持開始時点の前記ロボットハンドの目標姿勢を設定する工程と、
物体の大きさに応じて前記目標姿勢を調整する工程と、
物体中心位置に基づいてハンドの手首位置を計算する工程と、
逆運動学手法によりロボットのアーム、胴体の目標姿勢を計算する工程と、
求めた目標姿勢に基づいてロボットの各関節を動作させる工程とを備えていることを特徴とするロボットによる任意形状物体の把持方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットによって任意の形状の物体を把持する方法に関し、特に、視覚センサによって対象物の形状を認識して物体を把持する方法に関する。
【背景技術】
【０００２】
産業用ロボットなどでは、通常、把持対象物・処理内容が限定されており、対象物に応じたロボットハンドの形状や把持制御が行われている。さらに、把持対象物を単品から複数に拡大し、それぞれに応じた処理を行わせる技術として視覚センサを用いたロボットハンドがある（例えば、特許文献１、２参照。）
【０００３】
特許文献１の技術は、ハンドの指中心軸と、光学式の距離センサ、視覚センサの光軸を一致させることで、座標変換演算を不要としてハンドの動作速度の向上を図ったものである。特許文献２の技術は、ロボットハンドに対象物であるワークを撮像する撮像手段を配置し、撮像した画像を基にしてワークの位置、形状を算出してハンドの把持姿勢制御を行うものである。
【特許文献１】特開平６−３１６６６号公報
【特許文献２】特開２００３−９４３６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これらの技術では、把持対象物がロボットハンドによる把持を想定した把持部を持っていたり、ロボットハンドでの把持に適した形態をとっていることが前提となっている。しかしながら、ロボットハンドの適用範囲をさらに拡大していく場合、任意の形状を有する多様な物体を適切に把持する動作を行う必要が出てくる。
【０００５】
そこで本発明は、視覚センサを有し、ロボットハンドによって任意形状物体を適切に把持することを可能とするロボットによる任意形状物体の把持方法を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係るロボットによる任意形状物体の把持方法は、視覚センサと、多指・多関節を有するロボットハンドとを有するロボットによる任意形状物体の把持方法であって、（１）視覚センサで取得した対象物体の画像から画像認識により、対象物体の主軸方位と大きさ、位置、姿勢情報を得る工程と、（２）求めた主軸方位、大きさ、位置、姿勢情報に基づいて把持開始時点のロボットハンドの目標姿勢を設定する工程と、（３）物体の大きさに応じてこの目標姿勢を調整する工程と、（４）物体中心位置に基づいてハンドの手首位置を計算する工程と、（５）逆運動学手法によりロボットのアーム、胴体の目標姿勢を計算する工程と、（６）求めた目標姿勢に基づいてロボットの各関節を動作させる工程とを備えていることを特徴とする。
【０００７】
物体の主軸方位に応じてロボットのハンドの目標姿勢を設定し、この目標姿勢が得られるように、アーム、胴体の目標姿勢を逆運動学手法によって逆算し、各目標姿勢が得られるよう各関節を動作させることで把持開始点にロボットの各指を移動させて把持動作を行わせる。
【発明の効果】
【０００８】
本発明によれば、視覚センサで取得した対象物体の画像を基にしてハンドの目標姿勢を設定し、その目標姿勢が得られるよう制御を行うので、適切な姿勢で対象物を包み込んで把持することができる。このため、視覚センサによる対象物体の位置測定に誤差がある場合や、対象物体を単純形状に当てはめた場合の当てはめた形状と本来の形状との相違が大きな場合であっても、物体を適切に把持することができ、任意形状物体を適切に把持することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、添付図面を参照して本発明の好適な実施の形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の参照番号を附し、重複する説明は省略する。
【００１０】
図１は本発明に係るロボットによる任意形状物体の把持方法が適用されるロボットハンド１の構成を示す図であり、図２は、その制御系、つまり、本発明に係るロボットによる任意形状物体の把持方法を実行する制御系を示すブロック構成図である。そして、図３は、このロボットハンド１を備えるロボット１００の概略構成図である。
【００１１】
本実施形態のロボットハンド１は、母指１０、示指１１、中指１２、薬指１３の４指からなる。母指１０は、４つの関節ごとにそれぞれモータ１４が配置された４自由度のリンク系であり、根元に６軸力センサ１５が配置されている。この６軸力センサ１５は、互いに直交する３軸方向のそれぞれに沿う方向の力と、各軸方向回りの力を独立に検出可能なセンサである。他の３指１１〜１３は、最先端の関節を除く３つの関節ごとにそれぞれモータ１４が配置され、最先端の関節は、隣接する関節と連動する構成とされている（連動関節１７）。したがって、４関節でそれぞれ３自由度のリンク系を構成する。ロボットハンド１全体の自由度は１３となる。各指１１〜１３の根元にはそれぞれ母指１０と同様に６軸力センサ１５が配置されている。これらの各指の先端１０ｔ〜１３ｔは、曲面形状の弾性体で構成されている。さらに、各関節には、関節の曲げ角度を検出するためのエンコーダポテンションメータ１６が配置されている。
【００１２】
このロボットハンド１は、図３に示されるように、アーム７によって、ロボット１００の胴体８に取り付けられている。胴体８は、左右にアーム７を有し、頭部に視覚センサであるカメラアイ３を備えている。アーム７にもモータとエンコーダポテンションメータが配置され、ロボットハンド１を所望の位置に移動させることが可能な構成となっている。
【００１３】
制御系は、ＲＡＭ、ＲＯＭ、ＣＰＵ等で構成される制御ＥＣＵ２を中心に構成されており、把持対象物の画像を撮影するカメラアイ３の出力画像から画像認識によって対象物の形状・位置を認識する画像認識部２０と、認識結果を基にして把持位置・把持姿勢を計算する把持姿勢演算部２１と、ロボットハンド１の動きを制御するハンド制御部２２とを有している。ハンド制御部２２には、上述した各６軸力センサ１５と、エンコーダポテンションメータ１６の各出力信号が入力され、モータドライバ４により、各モータ１４の動きを制御する。
【００１４】
制御系は、このような構成に限られるものではなく、指示された姿勢となるようロボットハンド１の動きを制御する制御部と、画像認識装置や把持姿勢の演算部を、別体としてもよい。また、ハードウェア的に区分されていてもソフトウェア的に区分されていてもよい。
【００１５】
続いて、このロボットハンド１によって把持対象物を把持する際の制御方法を具体的に説明する。図４は、制御処理のメインフローチャートである。
【００１６】
最初に、カメラアイ３から入力された画像情報を基にして、画像認識部２０が画像認識により、把持対象物を所定の単純形状のいずれかに当てはめる（ステップＳ１）。例えば、直方体（立方体を含む）、円柱、楕円球（真円球を含む）のうちいずれかの単純形状への当てはめ（近似）を行う。この当てはめは、テンプレートマッチング、特徴抽出、相関演算等によって行うことができる。単純形状に当てはめたら、当てはめた単純形状の大きさと向きを求める（ステップＳ３）。
【００１７】
ステップＳ５では、当てはめた単純形状の種別を判別し、判別した単純形状に応じてステップＳ１１、Ｓ２１、Ｓ３１へと分岐させる。
【００１８】
ステップＳ１１では、当てはめた単純形状が直方体の場合のハンド１の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図５に示す。図６に示すようにロボット座標系（ロボット１００の胴体８に固定された座標系である。）をΣｒ、ロボットハンド１の局部座標系をΣｈで表すものとする。また、当てはめた直方体９０の互いに隣接する三面の法線方向をＶ１、Ｖ２、Ｖ３とする。
【００１９】
対向する２面の組み合わせのうちその距離が最も長い２面の法線方向が主軸とされ（ステップＳ１１０）、この主軸方向から把持方向を決める（ステップＳ１１１）。具体的には、主軸方向がＺｒ方向に略一致する場合には、横からの把持を選択し、水平面内に位置する場合には、上からの把持を選択する。
【００２０】
把持方向が決定したら、把持方向に応じて分岐する（ステップＳ１１２）。上方からの把持の場合には、ステップＳ１１３に移行して、ハンド姿勢を決定する。ハンド姿勢を表す行列をＲｈとすると、この場合の姿勢は次式（１）により表される。
【数１】
2006130580.tif 000003
ここで、（Ｘｈｘ，Ｘｈｙ，Ｘｈｚ）はロボット座標系から見たロボットハンド１の局部座標系のＸ軸方向ベクトルＸｈであり、（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）はロボット座標系から見た法線ベクトルＶ１を示す。Ｙｈ、Ｚｈ、Ｖ２、Ｖ３についても同様である。
【００２１】
すなわち、上方把持の場合には、図６（ａ）に示されるように、鉛直上向きの法線ベクトルＶ１とハンド座標系のＹ軸（ハンド１の手のひらに垂直な方向）とを逆向きで平行に位置させる。そして、ハンド座標系のＺ軸（ハンド１をのばした際の示指１１、中指１２、薬指１３の延長方向）を法線ベクトルＶ３に、残るＸ軸を法線ベクトルＶ２に一致させる。
【００２２】
一方、側方からの把持の場合には、ステップＳ１１４に移行して、ハンド姿勢を決定する。この場合の姿勢は次式（２）により表される。
【数２】
2006130580.tif 000004
【００２３】
すなわち、側方把持の場合には、図６（ｂ）に示されるように、主軸方向に一致する法線ベクトルＶ１（鉛直上向き）とハンド座標系のＸ軸とを一致させる。そして、ハンド座標系のＹ軸を法線ベクトルＶ２に、残るＺ軸を法線ベクトルＶ３に一致させる。以上により、当てはめた単純形状が直方体のときの把持時のロボットハンド１の姿勢が求まる。
【００２４】
ステップＳ２１では、当てはめた単純形状が円柱の場合のハンド１の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図７に示す。ここで、円柱９１の主軸方向を図８に示されるようにＶ０とする。ロボット座標系、ハンド座標系は、図６に示される直方体把持の場合と同様である。
【００２５】
まず、円柱９１の主軸方向と直径の長さの比を基にして把持方向を決定する（ステップＳ２１１）。例えば、円柱９１の主軸方向の長さが十分に長く、その太さが一定の範囲にあり、円柱９１の側壁を把持できる条件にあるときは円柱９１の側方からの把持とし、それ以外の場合には、円柱９１の端面からの把持を選択する。
【００２６】
把持方向が決定したら、把持方向に応じて分岐する（ステップＳ２１２）。端面からの把持の場合には、ステップＳ２１３に移行して、まず、図８（ａ）に示されるように、ハンド座標系のＹｈ軸方向を主軸方向Ｖ０に一致させる。
【数３】
2006130580.tif 000005
ここで、（Ｖ０ｘ，Ｖ０ｙ，Ｖ０ｚ）はロボット座標系から見た主軸ベクトルＶ０を表している。次に、指先方向つまりＺ軸方向ベクトルｚｈを求める（ステップＳ２１４）。図９（ａ）に示されるように、まず、円柱９１の上端面を含む平面Ｐを規定すると、この平面は、この上端面の中心Ｃの座標を（ｘｃ，ｙｃ，ｚｃ）とすると、次式（４）で表せる。
【数４】
2006130580.tif 000006
ロボットの肩の中心Ａから鉛直線を下ろし、その線が平面Ｐと交わる点をＢ点とすると、ロボット座標系におけるＡ点とＢ点のｘ、ｙ座標は一致する（ｘＡ＝ｘＢ、ｙＡ＝ｙＢ）。一方、Ｂ点は平面Ｐ上に存在するから、そのｚ座標ｚＢは、（４）式より
【数５】
2006130580.tif 000007
で表せる。このＢ点とＣ点を結ぶ方向の単位ベクトルをｚｈに設定する。このｚｈの座標は、以下の（６）式から算出される。
【数６】
2006130580.tif 000008
【００２７】
残る、Ｘ軸方向の単位ベクトルｘｈは、ベクトルｙｈとベクトルｚｈの外積として以下の（７）式により計算される（ステップＳ２１５）。これにより、ハンド１の姿勢が求まる。
【数７】
2006130580.tif 000009
【００２８】
円柱９１の直径が小さい場合には、上述の手法により求めたハンド１の姿勢により、図１０（ａ）に示されるように、物体に接触する際の母指１０と対向する中指１２の高さが略一致するため、確実に把持を行うことができる。しかし、円柱９１の直径が大きい場合には、上述の手法により求めたハンド１の姿勢では、物体を挟み込めるぐらいにハンド１の母指１０と中指１２の間隔を開くと、円柱９１に母指１０が接触した時点では、母指１０の高さと中指１２の高さとの差が大きくなり、中指１２が円柱９１に接触しない。このため、把持に失敗してしまう。
【００２９】
そこで円柱の直径ｄを所定のしきい値ｄthと比較する（ステップＳ２１６）。円柱の直径ｄがしきい値ｄth未満の場合には、求めた姿勢で把持を行うことができると判定して姿勢設定処理を終了する。一方、円柱の直径ｄがしきい値ｄth以上の場合には、ハンド姿勢の調整処理を行う。これは、母指１０、中指１２を結ぶ線分が円柱９１の頂面と平行になるようハンド１の手首を回転させることで行う（図１１参照）。具体的には、まず、順運動学的な手法によって母指１０先端の位置Ｅと、中指１２先端の位置Ｆとを算出する（ステップＳ２１７）。ここでは、中指１２の場合を例にとって説明するが、母指１０の場合も同様である。図１２に示されるように中指１２の各関節のリンク座標系を設定する。指の各関節角度がわかれば、順運動学的手法によって以下の式（８）によって指先ｊの位置が算出できる。
【数８】
2006130580.tif 000010
ここで、ｓＴ４は、ハンド座標系Σｓから指先の座標系Σ４への４×４斉次変換行列であり、関節角度θ１〜θ４の関数である。これを母指１０についても行う。
【００３０】
母指１０先端の位置Ｅと、中指１２先端の位置Ｆから調整角θadjを求める（ステップＳ２１８）。ここで、母指１０の先端位置Ｅのロボット座標系における位置座標を（ｘＥ，ｙＥ，ｚＥ）とし、中指１２の先端位置Ｆのロボット座標系における位置座標を（ｘＦ，ｙＦ，ｚＦ）とすると、図１１に示される調整角θadjは、次式（９）により算出される。
【数９】
2006130580.tif 000011
【００３１】
得られた調整角θadjだけロボットハンド１をｘｈ軸回りで点Ｃを中心に回転させて新しいハンド位置を求める（ステップＳ２１９）。新しいハンド位置Ｒｈnewは次式（１０．１）（１０．２）により算出される。
【数１０】
2006130580.tif 000012
【００３２】
一方、側方からの把持の場合には、ステップＳ２２１に移行して、まず、図８（ｂ）に示されるように、ハンド座標系のＸｈ軸方向を主軸方向Ｖ０に一致させる。
【数１１】
2006130580.tif 000013
次に、指先方向つまりＺ軸方向ベクトルｚｈを求める（ステップＳ２２２）。まず、円柱９１の中心Ｃ点を含む平面Ｐを図９（ｂ）に示されるように、規定する。この平面は、上述の式（４）で表せる。
【００３３】
一方、横からの把持の場合には、物体の中心よりハンド１を外側に配置する必要があることから、ロボット１００の肩の中心からＡ点を胴体８方向へ距離Ｄだけシフトさせる。そして、シフトさせたＡ点から鉛直線を下ろし、その線が平面Ｐと交わる点をＢ点とする。このｂ点とＣ点を結ぶ方向の単位ベクトルをｚｈに設定する。このｚｈは、（５）（６）式から求めることができる。
【００３４】
残る、Ｙ軸方向の単位ベクトルｙｈは、ベクトルｚｈとベクトルｘｈとの外積として以下の（１２）式により計算される（ステップＳ２２３）。これにより、ハンド１の姿勢が求まる。
【数１２】
2006130580.tif 000014
【００３５】
ステップＳ３１では、当てはめた単純形状が楕円球の場合のハンド１の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図１３に示す。まず、図１４に示されるように、ｙｈ軸を鉛直下向き、つまり、ｙｒ軸と逆向きに設定する（ステップＳ３１１）。次に、ｚｈを設定する（ステップＳ３１２）。このｚｈの設定手法は、上述した円柱の端面指示の場合と同様に（４）〜（６）式による。この場合のＣ点は、楕円球の頂点である。Ｘ軸方向の単位ベクトルｘｈは、ベクトルｙｈとベクトルｚｈの外積として上述の（７）式により計算される（ステップＳ３１３）。これにより、ハンド１の姿勢が求まる。
【００３６】
楕円球の場合もその直径が大きい場合には、ここで求めたハンド１の姿勢では把持がうまく行えない可能性がある。そこで、ステップＳ３１４〜Ｓ３１７では、上述のステップＳ２１６〜Ｓ２１９と同様の手法によってハンド姿勢の調整を行う。ここで、ステップＳ３１７においては、ステップＳ２１９と異なり、ロボットハンド１をｘｈ軸回りで球の中心を中心に回転させる点のみが相違する。これにより、楕円球の場合にも適切な把持姿勢が求まる。
【００３７】
ステップＳ１１、３１、４１により、ロボットハンド１の姿勢を設定したら、ステップＳ１３へと移行して、ロボットハンド１の手首位置を算出する。包み込み把持における中心座標点をＣ（ｘＣ，ｙＣ，ｚＣ）とする。これは、直方体を把持する場合には、ロボットハンド１に対向する面の中心点であり、円柱を端面把持する場合はその端面の中心であり、円柱を側方把持する場合と楕円球を把持する場合は、その中心である。手首位置ｗのロボット座標系Σｒにおける位置座標をｗ（ｘｗ，ｙｗ，ｚｗ）とすると、手首位置座標ｗは式（１３）から求まる。
【数１３】
2006130580.tif 000015
【００３８】
求めた手首位置座標ｗとハンド姿勢から逆運動学解析により、アーム７、胴体８の目標姿勢を求める（ステップＳ１５）。求めた目標姿勢に応じて各モータ１４を制御することで目標把持姿勢を得る（ステップＳ１７）。そして、６軸力センサ１５の出力から算出した把持力が目標値となるようモータ１４の動作を制御することで把持を行う（ステップＳ１９）。把持後は、別のプログラムに移行し、対象物の移動や姿勢変更等所定の動作を実行する。
【００３９】
このように物体（対象物）の主軸方位を求めて、そこから直接ロボットハンド１の目標姿勢を決定しているため、物体上における把持点を予め規定する必要がない。そして、物体の大きさに応じてハンド１姿勢の微調整を行っているため、物体を確実、かつ、対称的に把持することができる。また、適切な姿勢を設定することで、物体と指とを多点で接触させる包み込み把持を行うことができ、より確実な把持が可能となる。
【００４０】
また、当てはめる単純形状と物体の実際の形状とが相違している場合でも、物体表面に把持点を配置しておらず、これを包み込む位置にロボットハンド１を配置しているため、確実に把持を行うことができ、把持に失敗するケースが少なくなる。したがって、比較的複雑な形状を有する物体の場合でも確実に把持を行うことができるという利点がある。また、把持点を設定する必要がないため、姿勢設定を行うプログラムサイズを小さくし、かつ、高速で設定を行うことができる。このため、ロボットハンド１の応答性も向上する。
【００４１】
さらに、当てはめた形状と実際の形状とに多少の差異があっても、把持力が目標値となるよう制御して把持を行うことで、その差異を吸収することができるため、当てはめの精度を高精度とする必要がなく、物体を適切に把持することができる。
【００４２】
ここでは、対象物を直方体、楕円球、円柱のいずれかに当てはめたうえで把持点を決定する手法を説明したが、当てはめる単純形状はこの３つに限られるものではなく、また、この３つが必須となるものでもない。
【００４３】
また、指は４指に限られず、対向する２指以上があれば、２指、３指あるいは５指以上であってもよい。また、対向する指の組み合わせは、上述したように１指−多指の組み合わせに限られるものではなく、２指−２指や２指−３指等の組み合わせとしてもよい。
【００４４】
把持姿勢の設定方法は、上述した処理ルーチンに限られるものではなく、ロボットハンドの指の配置、その可動範囲に応じて適宜設定すればよい。
【図面の簡単な説明】
【００４５】
【図１】本発明に係るロボットによる任意形状物体の把持方法が適用されるロボットハンドの構成を示す図である。
【図２】本発明に係るロボットによる任意形状物体の把持方法を実行する制御系を示すブロック構成図である。
【図３】図１のロボットハンドを有するロボット１００の概略構成図である。
【図４】本発明に係る把持方法の制御処理のメインフローチャートである。
【図５】直方体の場合のハンド姿勢決定処理を示すフローチャートである。
【図６】直方体を把持する場合のハンド姿勢を示す図である。
【図７】円柱の場合のハンド姿勢決定処理を示すフローチャートである。
【図８】円柱を把持する場合のハンド姿勢を示す図である。
【図９】円柱を把持する場合のｚ軸方向ベクトルｚｈの設定手法を説明する図である。
【図１０】円柱を上から把持した場合の直径による把持点の相違を説明する図である。
【図１１】ハンドの傾きの調整手法を説明する図である。
【図１２】指のリンク座標系を説明する図である。
【図１３】楕円球の場合のハンド姿勢決定処理を示すフローチャートである。
【図１４】楕円球を把持する場合のハンド姿勢を示す図である。
【符号の説明】
【００４６】
１…ロボットハンド、３…カメラアイ、４…モータドライバ、７…アーム、８…胴体、９…対象物、１０…母指、１１…示指、１２…中指、１３…薬指、１４…モータ、１５…６軸力センサ、１６…エンコーダポテンションメータ、１７…連動関節、２０…画像認識部、２１…把持姿勢演算部、２２…ハンド制御部、１００…ロボット、Σｒ…ロボット座標系、Σｓ…ハンド座標系。
【図１】
2006130580.tif 000016
【図２】
2006130580.tif 000017
【図３】
2006130580.tif 000018
【図４】
2006130580.tif 000019
【図５】
2006130580.tif 000020
【図６】
2006130580.tif 000021
【図７】
2006130580.tif 000022
【図８】
2006130580.tif 000023
【図９】
2006130580.tif 000024
【図１０】
2006130580.tif 000025
【図１１】
2006130580.tif 000026
【図１２】
2006130580.tif 000027
【図１３】
2006130580.tif 000028
【図１４】
2006130580.tif 000029