ロボットによる任意形状物体の把持方法
【課題】 視覚センサを有し、ロボットハンドによって任意形状物体を適切に把持することを可能とするロボットによる任意形状物体の把持方法を提供する。
【解決手段】 視覚センサで取得した画像情報を基にして把持対象物を所定の単純形状に当てはめ(ステップS1)、その大きさと向きを求め(ステップS3)、種別に応じてその単純形状の向きと大きさからロボットハンドの把持姿勢を設定する(ステップS11、21、31)。求めた把持姿勢からロボットハンドの手首位置を算出し(ステップS13)、逆運動学解析により、アーム、胴体の目標姿勢を求め(ステップS15)、モータを制御して目標姿勢を得(ステップS17)、把持を行う(ステップS19)。
【解決手段】 視覚センサで取得した画像情報を基にして把持対象物を所定の単純形状に当てはめ(ステップS1)、その大きさと向きを求め(ステップS3)、種別に応じてその単純形状の向きと大きさからロボットハンドの把持姿勢を設定する(ステップS11、21、31)。求めた把持姿勢からロボットハンドの手首位置を算出し(ステップS13)、逆運動学解析により、アーム、胴体の目標姿勢を求め(ステップS15)、モータを制御して目標姿勢を得(ステップS17)、把持を行う(ステップS19)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボットによって任意の形状の物体を把持する方法に関し、特に、視覚センサによって対象物の形状を認識して物体を把持する方法に関する。
【背景技術】
【0002】
産業用ロボットなどでは、通常、把持対象物・処理内容が限定されており、対象物に応じたロボットハンドの形状や把持制御が行われている。さらに、把持対象物を単品から複数に拡大し、それぞれに応じた処理を行わせる技術として視覚センサを用いたロボットハンドがある(例えば、特許文献1、2参照。)
【0003】
特許文献1の技術は、ハンドの指中心軸と、光学式の距離センサ、視覚センサの光軸を一致させることで、座標変換演算を不要としてハンドの動作速度の向上を図ったものである。特許文献2の技術は、ロボットハンドに対象物であるワークを撮像する撮像手段を配置し、撮像した画像を基にしてワークの位置、形状を算出してハンドの把持姿勢制御を行うものである。
【特許文献1】特開平6−31666号公報
【特許文献2】特開2003−94367号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
これらの技術では、把持対象物がロボットハンドによる把持を想定した把持部を持っていたり、ロボットハンドでの把持に適した形態をとっていることが前提となっている。しかしながら、ロボットハンドの適用範囲をさらに拡大していく場合、任意の形状を有する多様な物体を適切に把持する動作を行う必要が出てくる。
【0005】
そこで本発明は、視覚センサを有し、ロボットハンドによって任意形状物体を適切に把持することを可能とするロボットによる任意形状物体の把持方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係るロボットによる任意形状物体の把持方法は、視覚センサと、多指・多関節を有するロボットハンドとを有するロボットによる任意形状物体の把持方法であって、(1)視覚センサで取得した対象物体の画像から画像認識により、対象物体の主軸方位と大きさ、位置、姿勢情報を得る工程と、(2)求めた主軸方位、大きさ、位置、姿勢情報に基づいて把持開始時点のロボットハンドの目標姿勢を設定する工程と、(3)物体の大きさに応じてこの目標姿勢を調整する工程と、(4)物体中心位置に基づいてハンドの手首位置を計算する工程と、(5)逆運動学手法によりロボットのアーム、胴体の目標姿勢を計算する工程と、(6)求めた目標姿勢に基づいてロボットの各関節を動作させる工程とを備えていることを特徴とする。
【0007】
物体の主軸方位に応じてロボットのハンドの目標姿勢を設定し、この目標姿勢が得られるように、アーム、胴体の目標姿勢を逆運動学手法によって逆算し、各目標姿勢が得られるよう各関節を動作させることで把持開始点にロボットの各指を移動させて把持動作を行わせる。
【発明の効果】
【0008】
本発明によれば、視覚センサで取得した対象物体の画像を基にしてハンドの目標姿勢を設定し、その目標姿勢が得られるよう制御を行うので、適切な姿勢で対象物を包み込んで把持することができる。このため、視覚センサによる対象物体の位置測定に誤差がある場合や、対象物体を単純形状に当てはめた場合の当てはめた形状と本来の形状との相違が大きな場合であっても、物体を適切に把持することができ、任意形状物体を適切に把持することが可能となる。
【発明を実施するための最良の形態】
【0009】
以下、添付図面を参照して本発明の好適な実施の形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の参照番号を附し、重複する説明は省略する。
【0010】
図1は本発明に係るロボットによる任意形状物体の把持方法が適用されるロボットハンド1の構成を示す図であり、図2は、その制御系、つまり、本発明に係るロボットによる任意形状物体の把持方法を実行する制御系を示すブロック構成図である。そして、図3は、このロボットハンド1を備えるロボット100の概略構成図である。
【0011】
本実施形態のロボットハンド1は、母指10、示指11、中指12、薬指13の4指からなる。母指10は、4つの関節ごとにそれぞれモータ14が配置された4自由度のリンク系であり、根元に6軸力センサ15が配置されている。この6軸力センサ15は、互いに直交する3軸方向のそれぞれに沿う方向の力と、各軸方向回りの力を独立に検出可能なセンサである。他の3指11〜13は、最先端の関節を除く3つの関節ごとにそれぞれモータ14が配置され、最先端の関節は、隣接する関節と連動する構成とされている(連動関節17)。したがって、4関節でそれぞれ3自由度のリンク系を構成する。ロボットハンド1全体の自由度は13となる。各指11〜13の根元にはそれぞれ母指10と同様に6軸力センサ15が配置されている。これらの各指の先端10t〜13tは、曲面形状の弾性体で構成されている。さらに、各関節には、関節の曲げ角度を検出するためのエンコーダポテンションメータ16が配置されている。
【0012】
このロボットハンド1は、図3に示されるように、アーム7によって、ロボット100の胴体8に取り付けられている。胴体8は、左右にアーム7を有し、頭部に視覚センサであるカメラアイ3を備えている。アーム7にもモータとエンコーダポテンションメータが配置され、ロボットハンド1を所望の位置に移動させることが可能な構成となっている。
【0013】
制御系は、RAM、ROM、CPU等で構成される制御ECU2を中心に構成されており、把持対象物の画像を撮影するカメラアイ3の出力画像から画像認識によって対象物の形状・位置を認識する画像認識部20と、認識結果を基にして把持位置・把持姿勢を計算する把持姿勢演算部21と、ロボットハンド1の動きを制御するハンド制御部22とを有している。ハンド制御部22には、上述した各6軸力センサ15と、エンコーダポテンションメータ16の各出力信号が入力され、モータドライバ4により、各モータ14の動きを制御する。
【0014】
制御系は、このような構成に限られるものではなく、指示された姿勢となるようロボットハンド1の動きを制御する制御部と、画像認識装置や把持姿勢の演算部を、別体としてもよい。また、ハードウェア的に区分されていてもソフトウェア的に区分されていてもよい。
【0015】
続いて、このロボットハンド1によって把持対象物を把持する際の制御方法を具体的に説明する。図4は、制御処理のメインフローチャートである。
【0016】
最初に、カメラアイ3から入力された画像情報を基にして、画像認識部20が画像認識により、把持対象物を所定の単純形状のいずれかに当てはめる(ステップS1)。例えば、直方体(立方体を含む)、円柱、楕円球(真円球を含む)のうちいずれかの単純形状への当てはめ(近似)を行う。この当てはめは、テンプレートマッチング、特徴抽出、相関演算等によって行うことができる。単純形状に当てはめたら、当てはめた単純形状の大きさと向きを求める(ステップS3)。
【0017】
ステップS5では、当てはめた単純形状の種別を判別し、判別した単純形状に応じてステップS11、S21、S31へと分岐させる。
【0018】
ステップS11では、当てはめた単純形状が直方体の場合のハンド1の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図5に示す。図6に示すようにロボット座標系(ロボット100の胴体8に固定された座標系である。)をΣr、ロボットハンド1の局部座標系をΣhで表すものとする。また、当てはめた直方体90の互いに隣接する三面の法線方向をV1、V2、V3とする。
【0019】
対向する2面の組み合わせのうちその距離が最も長い2面の法線方向が主軸とされ(ステップS110)、この主軸方向から把持方向を決める(ステップS111)。具体的には、主軸方向がZr方向に略一致する場合には、横からの把持を選択し、水平面内に位置する場合には、上からの把持を選択する。
【0020】
把持方向が決定したら、把持方向に応じて分岐する(ステップS112)。上方からの把持の場合には、ステップS113に移行して、ハンド姿勢を決定する。ハンド姿勢を表す行列をRhとすると、この場合の姿勢は次式(1)により表される。
【数1】
ここで、(Xhx,Xhy,Xhz)はロボット座標系から見たロボットハンド1の局部座標系のX軸方向ベクトルXhであり、(V1x,V1y,V1z)はロボット座標系から見た法線ベクトルV1を示す。Yh、Zh、V2、V3についても同様である。
【0021】
すなわち、上方把持の場合には、図6(a)に示されるように、鉛直上向きの法線ベクトルV1とハンド座標系のY軸(ハンド1の手のひらに垂直な方向)とを逆向きで平行に位置させる。そして、ハンド座標系のZ軸(ハンド1をのばした際の示指11、中指12、薬指13の延長方向)を法線ベクトルV3に、残るX軸を法線ベクトルV2に一致させる。
【0022】
一方、側方からの把持の場合には、ステップS114に移行して、ハンド姿勢を決定する。この場合の姿勢は次式(2)により表される。
【数2】
【0023】
すなわち、側方把持の場合には、図6(b)に示されるように、主軸方向に一致する法線ベクトルV1(鉛直上向き)とハンド座標系のX軸とを一致させる。そして、ハンド座標系のY軸を法線ベクトルV2に、残るZ軸を法線ベクトルV3に一致させる。以上により、当てはめた単純形状が直方体のときの把持時のロボットハンド1の姿勢が求まる。
【0024】
ステップS21では、当てはめた単純形状が円柱の場合のハンド1の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図7に示す。ここで、円柱91の主軸方向を図8に示されるようにV0とする。ロボット座標系、ハンド座標系は、図6に示される直方体把持の場合と同様である。
【0025】
まず、円柱91の主軸方向と直径の長さの比を基にして把持方向を決定する(ステップS211)。例えば、円柱91の主軸方向の長さが十分に長く、その太さが一定の範囲にあり、円柱91の側壁を把持できる条件にあるときは円柱91の側方からの把持とし、それ以外の場合には、円柱91の端面からの把持を選択する。
【0026】
把持方向が決定したら、把持方向に応じて分岐する(ステップS212)。端面からの把持の場合には、ステップS213に移行して、まず、図8(a)に示されるように、ハンド座標系のYh軸方向を主軸方向V0に一致させる。
【数3】
ここで、(V0x,V0y,V0z)はロボット座標系から見た主軸ベクトルV0を表している。次に、指先方向つまりZ軸方向ベクトルzhを求める(ステップS214)。図9(a)に示されるように、まず、円柱91の上端面を含む平面Pを規定すると、この平面は、この上端面の中心Cの座標を(xc,yc,zc)とすると、次式(4)で表せる。
【数4】
ロボットの肩の中心Aから鉛直線を下ろし、その線が平面Pと交わる点をB点とすると、ロボット座標系におけるA点とB点のx、y座標は一致する(xA=xB、yA=yB)。一方、B点は平面P上に存在するから、そのz座標zBは、(4)式より
【数5】
で表せる。このB点とC点を結ぶ方向の単位ベクトルをzhに設定する。このzhの座標は、以下の(6)式から算出される。
【数6】
【0027】
残る、X軸方向の単位ベクトルxhは、ベクトルyhとベクトルzhの外積として以下の(7)式により計算される(ステップS215)。これにより、ハンド1の姿勢が求まる。
【数7】
【0028】
円柱91の直径が小さい場合には、上述の手法により求めたハンド1の姿勢により、図10(a)に示されるように、物体に接触する際の母指10と対向する中指12の高さが略一致するため、確実に把持を行うことができる。しかし、円柱91の直径が大きい場合には、上述の手法により求めたハンド1の姿勢では、物体を挟み込めるぐらいにハンド1の母指10と中指12の間隔を開くと、円柱91に母指10が接触した時点では、母指10の高さと中指12の高さとの差が大きくなり、中指12が円柱91に接触しない。このため、把持に失敗してしまう。
【0029】
そこで円柱の直径dを所定のしきい値dthと比較する(ステップS216)。円柱の直径dがしきい値dth未満の場合には、求めた姿勢で把持を行うことができると判定して姿勢設定処理を終了する。一方、円柱の直径dがしきい値dth以上の場合には、ハンド姿勢の調整処理を行う。これは、母指10、中指12を結ぶ線分が円柱91の頂面と平行になるようハンド1の手首を回転させることで行う(図11参照)。具体的には、まず、順運動学的な手法によって母指10先端の位置Eと、中指12先端の位置Fとを算出する(ステップS217)。ここでは、中指12の場合を例にとって説明するが、母指10の場合も同様である。図12に示されるように中指12の各関節のリンク座標系を設定する。指の各関節角度がわかれば、順運動学的手法によって以下の式(8)によって指先jの位置が算出できる。
【数8】
ここで、sT4は、ハンド座標系Σsから指先の座標系Σ4への4×4斉次変換行列であり、関節角度θ1〜θ4の関数である。これを母指10についても行う。
【0030】
母指10先端の位置Eと、中指12先端の位置Fから調整角θadjを求める(ステップS218)。ここで、母指10の先端位置Eのロボット座標系における位置座標を(xE,yE,zE)とし、中指12の先端位置Fのロボット座標系における位置座標を(xF,yF,zF)とすると、図11に示される調整角θadjは、次式(9)により算出される。
【数9】
【0031】
得られた調整角θadjだけロボットハンド1をxh軸回りで点Cを中心に回転させて新しいハンド位置を求める(ステップS219)。新しいハンド位置Rhnewは次式(10.1)(10.2)により算出される。
【数10】
【0032】
一方、側方からの把持の場合には、ステップS221に移行して、まず、図8(b)に示されるように、ハンド座標系のXh軸方向を主軸方向V0に一致させる。
【数11】
次に、指先方向つまりZ軸方向ベクトルzhを求める(ステップS222)。まず、円柱91の中心C点を含む平面Pを図9(b)に示されるように、規定する。この平面は、上述の式(4)で表せる。
【0033】
一方、横からの把持の場合には、物体の中心よりハンド1を外側に配置する必要があることから、ロボット100の肩の中心からA点を胴体8方向へ距離Dだけシフトさせる。そして、シフトさせたA点から鉛直線を下ろし、その線が平面Pと交わる点をB点とする。このb点とC点を結ぶ方向の単位ベクトルをzhに設定する。このzhは、(5)(6)式から求めることができる。
【0034】
残る、Y軸方向の単位ベクトルyhは、ベクトルzhとベクトルxhとの外積として以下の(12)式により計算される(ステップS223)。これにより、ハンド1の姿勢が求まる。
【数12】
【0035】
ステップS31では、当てはめた単純形状が楕円球の場合のハンド1の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図13に示す。まず、図14に示されるように、yh軸を鉛直下向き、つまり、yr軸と逆向きに設定する(ステップS311)。次に、zhを設定する(ステップS312)。このzhの設定手法は、上述した円柱の端面指示の場合と同様に(4)〜(6)式による。この場合のC点は、楕円球の頂点である。X軸方向の単位ベクトルxhは、ベクトルyhとベクトルzhの外積として上述の(7)式により計算される(ステップS313)。これにより、ハンド1の姿勢が求まる。
【0036】
楕円球の場合もその直径が大きい場合には、ここで求めたハンド1の姿勢では把持がうまく行えない可能性がある。そこで、ステップS314〜S317では、上述のステップS216〜S219と同様の手法によってハンド姿勢の調整を行う。ここで、ステップS317においては、ステップS219と異なり、ロボットハンド1をxh軸回りで球の中心を中心に回転させる点のみが相違する。これにより、楕円球の場合にも適切な把持姿勢が求まる。
【0037】
ステップS11、31、41により、ロボットハンド1の姿勢を設定したら、ステップS13へと移行して、ロボットハンド1の手首位置を算出する。包み込み把持における中心座標点をC(xC,yC,zC)とする。これは、直方体を把持する場合には、ロボットハンド1に対向する面の中心点であり、円柱を端面把持する場合はその端面の中心であり、円柱を側方把持する場合と楕円球を把持する場合は、その中心である。手首位置wのロボット座標系Σrにおける位置座標をw(xw,yw,zw)とすると、手首位置座標wは式(13)から求まる。
【数13】
【0038】
求めた手首位置座標wとハンド姿勢から逆運動学解析により、アーム7、胴体8の目標姿勢を求める(ステップS15)。求めた目標姿勢に応じて各モータ14を制御することで目標把持姿勢を得る(ステップS17)。そして、6軸力センサ15の出力から算出した把持力が目標値となるようモータ14の動作を制御することで把持を行う(ステップS19)。把持後は、別のプログラムに移行し、対象物の移動や姿勢変更等所定の動作を実行する。
【0039】
このように物体(対象物)の主軸方位を求めて、そこから直接ロボットハンド1の目標姿勢を決定しているため、物体上における把持点を予め規定する必要がない。そして、物体の大きさに応じてハンド1姿勢の微調整を行っているため、物体を確実、かつ、対称的に把持することができる。また、適切な姿勢を設定することで、物体と指とを多点で接触させる包み込み把持を行うことができ、より確実な把持が可能となる。
【0040】
また、当てはめる単純形状と物体の実際の形状とが相違している場合でも、物体表面に把持点を配置しておらず、これを包み込む位置にロボットハンド1を配置しているため、確実に把持を行うことができ、把持に失敗するケースが少なくなる。したがって、比較的複雑な形状を有する物体の場合でも確実に把持を行うことができるという利点がある。また、把持点を設定する必要がないため、姿勢設定を行うプログラムサイズを小さくし、かつ、高速で設定を行うことができる。このため、ロボットハンド1の応答性も向上する。
【0041】
さらに、当てはめた形状と実際の形状とに多少の差異があっても、把持力が目標値となるよう制御して把持を行うことで、その差異を吸収することができるため、当てはめの精度を高精度とする必要がなく、物体を適切に把持することができる。
【0042】
ここでは、対象物を直方体、楕円球、円柱のいずれかに当てはめたうえで把持点を決定する手法を説明したが、当てはめる単純形状はこの3つに限られるものではなく、また、この3つが必須となるものでもない。
【0043】
また、指は4指に限られず、対向する2指以上があれば、2指、3指あるいは5指以上であってもよい。また、対向する指の組み合わせは、上述したように1指−多指の組み合わせに限られるものではなく、2指−2指や2指−3指等の組み合わせとしてもよい。
【0044】
把持姿勢の設定方法は、上述した処理ルーチンに限られるものではなく、ロボットハンドの指の配置、その可動範囲に応じて適宜設定すればよい。
【図面の簡単な説明】
【0045】
【図1】本発明に係るロボットによる任意形状物体の把持方法が適用されるロボットハンドの構成を示す図である。
【図2】本発明に係るロボットによる任意形状物体の把持方法を実行する制御系を示すブロック構成図である。
【図3】図1のロボットハンドを有するロボット100の概略構成図である。
【図4】本発明に係る把持方法の制御処理のメインフローチャートである。
【図5】直方体の場合のハンド姿勢決定処理を示すフローチャートである。
【図6】直方体を把持する場合のハンド姿勢を示す図である。
【図7】円柱の場合のハンド姿勢決定処理を示すフローチャートである。
【図8】円柱を把持する場合のハンド姿勢を示す図である。
【図9】円柱を把持する場合のz軸方向ベクトルzhの設定手法を説明する図である。
【図10】円柱を上から把持した場合の直径による把持点の相違を説明する図である。
【図11】ハンドの傾きの調整手法を説明する図である。
【図12】指のリンク座標系を説明する図である。
【図13】楕円球の場合のハンド姿勢決定処理を示すフローチャートである。
【図14】楕円球を把持する場合のハンド姿勢を示す図である。
【符号の説明】
【0046】
1…ロボットハンド、3…カメラアイ、4…モータドライバ、7…アーム、8…胴体、9…対象物、10…母指、11…示指、12…中指、13…薬指、14…モータ、15…6軸力センサ、16…エンコーダポテンションメータ、17…連動関節、20…画像認識部、21…把持姿勢演算部、22…ハンド制御部、100…ロボット、Σr…ロボット座標系、Σs…ハンド座標系。
【技術分野】
【0001】
本発明はロボットによって任意の形状の物体を把持する方法に関し、特に、視覚センサによって対象物の形状を認識して物体を把持する方法に関する。
【背景技術】
【0002】
産業用ロボットなどでは、通常、把持対象物・処理内容が限定されており、対象物に応じたロボットハンドの形状や把持制御が行われている。さらに、把持対象物を単品から複数に拡大し、それぞれに応じた処理を行わせる技術として視覚センサを用いたロボットハンドがある(例えば、特許文献1、2参照。)
【0003】
特許文献1の技術は、ハンドの指中心軸と、光学式の距離センサ、視覚センサの光軸を一致させることで、座標変換演算を不要としてハンドの動作速度の向上を図ったものである。特許文献2の技術は、ロボットハンドに対象物であるワークを撮像する撮像手段を配置し、撮像した画像を基にしてワークの位置、形状を算出してハンドの把持姿勢制御を行うものである。
【特許文献1】特開平6−31666号公報
【特許文献2】特開2003−94367号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
これらの技術では、把持対象物がロボットハンドによる把持を想定した把持部を持っていたり、ロボットハンドでの把持に適した形態をとっていることが前提となっている。しかしながら、ロボットハンドの適用範囲をさらに拡大していく場合、任意の形状を有する多様な物体を適切に把持する動作を行う必要が出てくる。
【0005】
そこで本発明は、視覚センサを有し、ロボットハンドによって任意形状物体を適切に把持することを可能とするロボットによる任意形状物体の把持方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係るロボットによる任意形状物体の把持方法は、視覚センサと、多指・多関節を有するロボットハンドとを有するロボットによる任意形状物体の把持方法であって、(1)視覚センサで取得した対象物体の画像から画像認識により、対象物体の主軸方位と大きさ、位置、姿勢情報を得る工程と、(2)求めた主軸方位、大きさ、位置、姿勢情報に基づいて把持開始時点のロボットハンドの目標姿勢を設定する工程と、(3)物体の大きさに応じてこの目標姿勢を調整する工程と、(4)物体中心位置に基づいてハンドの手首位置を計算する工程と、(5)逆運動学手法によりロボットのアーム、胴体の目標姿勢を計算する工程と、(6)求めた目標姿勢に基づいてロボットの各関節を動作させる工程とを備えていることを特徴とする。
【0007】
物体の主軸方位に応じてロボットのハンドの目標姿勢を設定し、この目標姿勢が得られるように、アーム、胴体の目標姿勢を逆運動学手法によって逆算し、各目標姿勢が得られるよう各関節を動作させることで把持開始点にロボットの各指を移動させて把持動作を行わせる。
【発明の効果】
【0008】
本発明によれば、視覚センサで取得した対象物体の画像を基にしてハンドの目標姿勢を設定し、その目標姿勢が得られるよう制御を行うので、適切な姿勢で対象物を包み込んで把持することができる。このため、視覚センサによる対象物体の位置測定に誤差がある場合や、対象物体を単純形状に当てはめた場合の当てはめた形状と本来の形状との相違が大きな場合であっても、物体を適切に把持することができ、任意形状物体を適切に把持することが可能となる。
【発明を実施するための最良の形態】
【0009】
以下、添付図面を参照して本発明の好適な実施の形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の参照番号を附し、重複する説明は省略する。
【0010】
図1は本発明に係るロボットによる任意形状物体の把持方法が適用されるロボットハンド1の構成を示す図であり、図2は、その制御系、つまり、本発明に係るロボットによる任意形状物体の把持方法を実行する制御系を示すブロック構成図である。そして、図3は、このロボットハンド1を備えるロボット100の概略構成図である。
【0011】
本実施形態のロボットハンド1は、母指10、示指11、中指12、薬指13の4指からなる。母指10は、4つの関節ごとにそれぞれモータ14が配置された4自由度のリンク系であり、根元に6軸力センサ15が配置されている。この6軸力センサ15は、互いに直交する3軸方向のそれぞれに沿う方向の力と、各軸方向回りの力を独立に検出可能なセンサである。他の3指11〜13は、最先端の関節を除く3つの関節ごとにそれぞれモータ14が配置され、最先端の関節は、隣接する関節と連動する構成とされている(連動関節17)。したがって、4関節でそれぞれ3自由度のリンク系を構成する。ロボットハンド1全体の自由度は13となる。各指11〜13の根元にはそれぞれ母指10と同様に6軸力センサ15が配置されている。これらの各指の先端10t〜13tは、曲面形状の弾性体で構成されている。さらに、各関節には、関節の曲げ角度を検出するためのエンコーダポテンションメータ16が配置されている。
【0012】
このロボットハンド1は、図3に示されるように、アーム7によって、ロボット100の胴体8に取り付けられている。胴体8は、左右にアーム7を有し、頭部に視覚センサであるカメラアイ3を備えている。アーム7にもモータとエンコーダポテンションメータが配置され、ロボットハンド1を所望の位置に移動させることが可能な構成となっている。
【0013】
制御系は、RAM、ROM、CPU等で構成される制御ECU2を中心に構成されており、把持対象物の画像を撮影するカメラアイ3の出力画像から画像認識によって対象物の形状・位置を認識する画像認識部20と、認識結果を基にして把持位置・把持姿勢を計算する把持姿勢演算部21と、ロボットハンド1の動きを制御するハンド制御部22とを有している。ハンド制御部22には、上述した各6軸力センサ15と、エンコーダポテンションメータ16の各出力信号が入力され、モータドライバ4により、各モータ14の動きを制御する。
【0014】
制御系は、このような構成に限られるものではなく、指示された姿勢となるようロボットハンド1の動きを制御する制御部と、画像認識装置や把持姿勢の演算部を、別体としてもよい。また、ハードウェア的に区分されていてもソフトウェア的に区分されていてもよい。
【0015】
続いて、このロボットハンド1によって把持対象物を把持する際の制御方法を具体的に説明する。図4は、制御処理のメインフローチャートである。
【0016】
最初に、カメラアイ3から入力された画像情報を基にして、画像認識部20が画像認識により、把持対象物を所定の単純形状のいずれかに当てはめる(ステップS1)。例えば、直方体(立方体を含む)、円柱、楕円球(真円球を含む)のうちいずれかの単純形状への当てはめ(近似)を行う。この当てはめは、テンプレートマッチング、特徴抽出、相関演算等によって行うことができる。単純形状に当てはめたら、当てはめた単純形状の大きさと向きを求める(ステップS3)。
【0017】
ステップS5では、当てはめた単純形状の種別を判別し、判別した単純形状に応じてステップS11、S21、S31へと分岐させる。
【0018】
ステップS11では、当てはめた単純形状が直方体の場合のハンド1の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図5に示す。図6に示すようにロボット座標系(ロボット100の胴体8に固定された座標系である。)をΣr、ロボットハンド1の局部座標系をΣhで表すものとする。また、当てはめた直方体90の互いに隣接する三面の法線方向をV1、V2、V3とする。
【0019】
対向する2面の組み合わせのうちその距離が最も長い2面の法線方向が主軸とされ(ステップS110)、この主軸方向から把持方向を決める(ステップS111)。具体的には、主軸方向がZr方向に略一致する場合には、横からの把持を選択し、水平面内に位置する場合には、上からの把持を選択する。
【0020】
把持方向が決定したら、把持方向に応じて分岐する(ステップS112)。上方からの把持の場合には、ステップS113に移行して、ハンド姿勢を決定する。ハンド姿勢を表す行列をRhとすると、この場合の姿勢は次式(1)により表される。
【数1】
ここで、(Xhx,Xhy,Xhz)はロボット座標系から見たロボットハンド1の局部座標系のX軸方向ベクトルXhであり、(V1x,V1y,V1z)はロボット座標系から見た法線ベクトルV1を示す。Yh、Zh、V2、V3についても同様である。
【0021】
すなわち、上方把持の場合には、図6(a)に示されるように、鉛直上向きの法線ベクトルV1とハンド座標系のY軸(ハンド1の手のひらに垂直な方向)とを逆向きで平行に位置させる。そして、ハンド座標系のZ軸(ハンド1をのばした際の示指11、中指12、薬指13の延長方向)を法線ベクトルV3に、残るX軸を法線ベクトルV2に一致させる。
【0022】
一方、側方からの把持の場合には、ステップS114に移行して、ハンド姿勢を決定する。この場合の姿勢は次式(2)により表される。
【数2】
【0023】
すなわち、側方把持の場合には、図6(b)に示されるように、主軸方向に一致する法線ベクトルV1(鉛直上向き)とハンド座標系のX軸とを一致させる。そして、ハンド座標系のY軸を法線ベクトルV2に、残るZ軸を法線ベクトルV3に一致させる。以上により、当てはめた単純形状が直方体のときの把持時のロボットハンド1の姿勢が求まる。
【0024】
ステップS21では、当てはめた単純形状が円柱の場合のハンド1の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図7に示す。ここで、円柱91の主軸方向を図8に示されるようにV0とする。ロボット座標系、ハンド座標系は、図6に示される直方体把持の場合と同様である。
【0025】
まず、円柱91の主軸方向と直径の長さの比を基にして把持方向を決定する(ステップS211)。例えば、円柱91の主軸方向の長さが十分に長く、その太さが一定の範囲にあり、円柱91の側壁を把持できる条件にあるときは円柱91の側方からの把持とし、それ以外の場合には、円柱91の端面からの把持を選択する。
【0026】
把持方向が決定したら、把持方向に応じて分岐する(ステップS212)。端面からの把持の場合には、ステップS213に移行して、まず、図8(a)に示されるように、ハンド座標系のYh軸方向を主軸方向V0に一致させる。
【数3】
ここで、(V0x,V0y,V0z)はロボット座標系から見た主軸ベクトルV0を表している。次に、指先方向つまりZ軸方向ベクトルzhを求める(ステップS214)。図9(a)に示されるように、まず、円柱91の上端面を含む平面Pを規定すると、この平面は、この上端面の中心Cの座標を(xc,yc,zc)とすると、次式(4)で表せる。
【数4】
ロボットの肩の中心Aから鉛直線を下ろし、その線が平面Pと交わる点をB点とすると、ロボット座標系におけるA点とB点のx、y座標は一致する(xA=xB、yA=yB)。一方、B点は平面P上に存在するから、そのz座標zBは、(4)式より
【数5】
で表せる。このB点とC点を結ぶ方向の単位ベクトルをzhに設定する。このzhの座標は、以下の(6)式から算出される。
【数6】
【0027】
残る、X軸方向の単位ベクトルxhは、ベクトルyhとベクトルzhの外積として以下の(7)式により計算される(ステップS215)。これにより、ハンド1の姿勢が求まる。
【数7】
【0028】
円柱91の直径が小さい場合には、上述の手法により求めたハンド1の姿勢により、図10(a)に示されるように、物体に接触する際の母指10と対向する中指12の高さが略一致するため、確実に把持を行うことができる。しかし、円柱91の直径が大きい場合には、上述の手法により求めたハンド1の姿勢では、物体を挟み込めるぐらいにハンド1の母指10と中指12の間隔を開くと、円柱91に母指10が接触した時点では、母指10の高さと中指12の高さとの差が大きくなり、中指12が円柱91に接触しない。このため、把持に失敗してしまう。
【0029】
そこで円柱の直径dを所定のしきい値dthと比較する(ステップS216)。円柱の直径dがしきい値dth未満の場合には、求めた姿勢で把持を行うことができると判定して姿勢設定処理を終了する。一方、円柱の直径dがしきい値dth以上の場合には、ハンド姿勢の調整処理を行う。これは、母指10、中指12を結ぶ線分が円柱91の頂面と平行になるようハンド1の手首を回転させることで行う(図11参照)。具体的には、まず、順運動学的な手法によって母指10先端の位置Eと、中指12先端の位置Fとを算出する(ステップS217)。ここでは、中指12の場合を例にとって説明するが、母指10の場合も同様である。図12に示されるように中指12の各関節のリンク座標系を設定する。指の各関節角度がわかれば、順運動学的手法によって以下の式(8)によって指先jの位置が算出できる。
【数8】
ここで、sT4は、ハンド座標系Σsから指先の座標系Σ4への4×4斉次変換行列であり、関節角度θ1〜θ4の関数である。これを母指10についても行う。
【0030】
母指10先端の位置Eと、中指12先端の位置Fから調整角θadjを求める(ステップS218)。ここで、母指10の先端位置Eのロボット座標系における位置座標を(xE,yE,zE)とし、中指12の先端位置Fのロボット座標系における位置座標を(xF,yF,zF)とすると、図11に示される調整角θadjは、次式(9)により算出される。
【数9】
【0031】
得られた調整角θadjだけロボットハンド1をxh軸回りで点Cを中心に回転させて新しいハンド位置を求める(ステップS219)。新しいハンド位置Rhnewは次式(10.1)(10.2)により算出される。
【数10】
【0032】
一方、側方からの把持の場合には、ステップS221に移行して、まず、図8(b)に示されるように、ハンド座標系のXh軸方向を主軸方向V0に一致させる。
【数11】
次に、指先方向つまりZ軸方向ベクトルzhを求める(ステップS222)。まず、円柱91の中心C点を含む平面Pを図9(b)に示されるように、規定する。この平面は、上述の式(4)で表せる。
【0033】
一方、横からの把持の場合には、物体の中心よりハンド1を外側に配置する必要があることから、ロボット100の肩の中心からA点を胴体8方向へ距離Dだけシフトさせる。そして、シフトさせたA点から鉛直線を下ろし、その線が平面Pと交わる点をB点とする。このb点とC点を結ぶ方向の単位ベクトルをzhに設定する。このzhは、(5)(6)式から求めることができる。
【0034】
残る、Y軸方向の単位ベクトルyhは、ベクトルzhとベクトルxhとの外積として以下の(12)式により計算される(ステップS223)。これにより、ハンド1の姿勢が求まる。
【数12】
【0035】
ステップS31では、当てはめた単純形状が楕円球の場合のハンド1の目標姿勢の決定処理を行う。具体的な処理のフローチャートを図13に示す。まず、図14に示されるように、yh軸を鉛直下向き、つまり、yr軸と逆向きに設定する(ステップS311)。次に、zhを設定する(ステップS312)。このzhの設定手法は、上述した円柱の端面指示の場合と同様に(4)〜(6)式による。この場合のC点は、楕円球の頂点である。X軸方向の単位ベクトルxhは、ベクトルyhとベクトルzhの外積として上述の(7)式により計算される(ステップS313)。これにより、ハンド1の姿勢が求まる。
【0036】
楕円球の場合もその直径が大きい場合には、ここで求めたハンド1の姿勢では把持がうまく行えない可能性がある。そこで、ステップS314〜S317では、上述のステップS216〜S219と同様の手法によってハンド姿勢の調整を行う。ここで、ステップS317においては、ステップS219と異なり、ロボットハンド1をxh軸回りで球の中心を中心に回転させる点のみが相違する。これにより、楕円球の場合にも適切な把持姿勢が求まる。
【0037】
ステップS11、31、41により、ロボットハンド1の姿勢を設定したら、ステップS13へと移行して、ロボットハンド1の手首位置を算出する。包み込み把持における中心座標点をC(xC,yC,zC)とする。これは、直方体を把持する場合には、ロボットハンド1に対向する面の中心点であり、円柱を端面把持する場合はその端面の中心であり、円柱を側方把持する場合と楕円球を把持する場合は、その中心である。手首位置wのロボット座標系Σrにおける位置座標をw(xw,yw,zw)とすると、手首位置座標wは式(13)から求まる。
【数13】
【0038】
求めた手首位置座標wとハンド姿勢から逆運動学解析により、アーム7、胴体8の目標姿勢を求める(ステップS15)。求めた目標姿勢に応じて各モータ14を制御することで目標把持姿勢を得る(ステップS17)。そして、6軸力センサ15の出力から算出した把持力が目標値となるようモータ14の動作を制御することで把持を行う(ステップS19)。把持後は、別のプログラムに移行し、対象物の移動や姿勢変更等所定の動作を実行する。
【0039】
このように物体(対象物)の主軸方位を求めて、そこから直接ロボットハンド1の目標姿勢を決定しているため、物体上における把持点を予め規定する必要がない。そして、物体の大きさに応じてハンド1姿勢の微調整を行っているため、物体を確実、かつ、対称的に把持することができる。また、適切な姿勢を設定することで、物体と指とを多点で接触させる包み込み把持を行うことができ、より確実な把持が可能となる。
【0040】
また、当てはめる単純形状と物体の実際の形状とが相違している場合でも、物体表面に把持点を配置しておらず、これを包み込む位置にロボットハンド1を配置しているため、確実に把持を行うことができ、把持に失敗するケースが少なくなる。したがって、比較的複雑な形状を有する物体の場合でも確実に把持を行うことができるという利点がある。また、把持点を設定する必要がないため、姿勢設定を行うプログラムサイズを小さくし、かつ、高速で設定を行うことができる。このため、ロボットハンド1の応答性も向上する。
【0041】
さらに、当てはめた形状と実際の形状とに多少の差異があっても、把持力が目標値となるよう制御して把持を行うことで、その差異を吸収することができるため、当てはめの精度を高精度とする必要がなく、物体を適切に把持することができる。
【0042】
ここでは、対象物を直方体、楕円球、円柱のいずれかに当てはめたうえで把持点を決定する手法を説明したが、当てはめる単純形状はこの3つに限られるものではなく、また、この3つが必須となるものでもない。
【0043】
また、指は4指に限られず、対向する2指以上があれば、2指、3指あるいは5指以上であってもよい。また、対向する指の組み合わせは、上述したように1指−多指の組み合わせに限られるものではなく、2指−2指や2指−3指等の組み合わせとしてもよい。
【0044】
把持姿勢の設定方法は、上述した処理ルーチンに限られるものではなく、ロボットハンドの指の配置、その可動範囲に応じて適宜設定すればよい。
【図面の簡単な説明】
【0045】
【図1】本発明に係るロボットによる任意形状物体の把持方法が適用されるロボットハンドの構成を示す図である。
【図2】本発明に係るロボットによる任意形状物体の把持方法を実行する制御系を示すブロック構成図である。
【図3】図1のロボットハンドを有するロボット100の概略構成図である。
【図4】本発明に係る把持方法の制御処理のメインフローチャートである。
【図5】直方体の場合のハンド姿勢決定処理を示すフローチャートである。
【図6】直方体を把持する場合のハンド姿勢を示す図である。
【図7】円柱の場合のハンド姿勢決定処理を示すフローチャートである。
【図8】円柱を把持する場合のハンド姿勢を示す図である。
【図9】円柱を把持する場合のz軸方向ベクトルzhの設定手法を説明する図である。
【図10】円柱を上から把持した場合の直径による把持点の相違を説明する図である。
【図11】ハンドの傾きの調整手法を説明する図である。
【図12】指のリンク座標系を説明する図である。
【図13】楕円球の場合のハンド姿勢決定処理を示すフローチャートである。
【図14】楕円球を把持する場合のハンド姿勢を示す図である。
【符号の説明】
【0046】
1…ロボットハンド、3…カメラアイ、4…モータドライバ、7…アーム、8…胴体、9…対象物、10…母指、11…示指、12…中指、13…薬指、14…モータ、15…6軸力センサ、16…エンコーダポテンションメータ、17…連動関節、20…画像認識部、21…把持姿勢演算部、22…ハンド制御部、100…ロボット、Σr…ロボット座標系、Σs…ハンド座標系。
【特許請求の範囲】
【請求項1】
視覚センサと、多指・多関節を有するロボットハンドとを有するロボットによる任意形状物体の把持方法であって、
視覚センサで取得した対象物体の画像から画像認識により、対象物体の主軸方位と大きさ、位置、姿勢情報を得る工程と、
求めた主軸方位、大きさ、位置、姿勢情報に基づいて把持開始時点の前記ロボットハンドの目標姿勢を設定する工程と、
物体の大きさに応じて前記目標姿勢を調整する工程と、
物体中心位置に基づいてハンドの手首位置を計算する工程と、
逆運動学手法によりロボットのアーム、胴体の目標姿勢を計算する工程と、
求めた目標姿勢に基づいてロボットの各関節を動作させる工程とを備えていることを特徴とするロボットによる任意形状物体の把持方法。
【請求項1】
視覚センサと、多指・多関節を有するロボットハンドとを有するロボットによる任意形状物体の把持方法であって、
視覚センサで取得した対象物体の画像から画像認識により、対象物体の主軸方位と大きさ、位置、姿勢情報を得る工程と、
求めた主軸方位、大きさ、位置、姿勢情報に基づいて把持開始時点の前記ロボットハンドの目標姿勢を設定する工程と、
物体の大きさに応じて前記目標姿勢を調整する工程と、
物体中心位置に基づいてハンドの手首位置を計算する工程と、
逆運動学手法によりロボットのアーム、胴体の目標姿勢を計算する工程と、
求めた目標姿勢に基づいてロボットの各関節を動作させる工程とを備えていることを特徴とするロボットによる任意形状物体の把持方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2006−130580(P2006−130580A)
【公開日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願番号】特願2004−319642(P2004−319642)
【出願日】平成16年11月2日(2004.11.2)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願日】平成16年11月2日(2004.11.2)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]