<第一の実施の形態>
以下、図に示した実施の形態に基づき、本発明を説明する。図1に示すように、本実施の形態の角度検出装置1は、建設機械Cにおける作業装置Wの各部の角度検出を行うべく建設機械Cに適用されている。なお、角度検出装置1は、建設機械C以外の装置、機械におけるリンクの相対角度検出に利用可能である。
具体的には、角度検出装置1は、可動部材Mの末端のリンクである旋回体3に取り付けられて旋回体3以外の他のリンクである作業装置Wを撮影可能なカメラ4と、カメラ4が撮影した画像に基づいて隣り合うリンク同士の相対角度を検出する角度検出部5と、角度検出部5が検出した前記角度に基づいて、前記旋回体3に対する作業装置Wの姿勢を特定する姿勢特定部6とを備えて構成されている。
建設機械Cは、クローラ2aを備えて走行可能な走行体2と、走行体2の上方に旋回可能に連結される可動部材Mとを備えている。可動部材Mは、走行体2に旋回可能に連結される旋回体3と、旋回体3に上下方向に揺動可能に連結される作業装置Wとを備えている。作業装置Wは、本例では、旋回体3に上下方向揺動可能に連結されるブーム7と、ブーム7に上下方向に揺動可能に連結されるアーム8と、アーム8に上下方向に揺動可能に連結されるアタッチメント9とを備えている。
そして、建設機械Cは、図示したところでは、アタッチメント9をバケットとしているが、バケットのほか、作業の用途に応じてブレーカー、カッター、グラップル等に変更できる。可動部材Mは、旋回体3、ブーム7、アーム8およびアタッチメント9のそれぞれをリンクとして、これらを相対回転可能に直列に連結した多関節のリンク機構として構成されている。そして、可動部材Mは、旋回体3を末端のリンクとし、それ以外の作業装置Wであるブーム7、アーム8およびアタッチメント9を他のリンクとしている。
なお、可動部材Mを構成するリンクの数は、2以上であればよく、可動部材Mを旋回体とし、作業装置Wをクレーンとして、建設機械Cを可動部材Mが二つのリンクで構成されるクレーン車としてもよい。また、本例では、角度検出装置1を建設機械Cにおける可動部材Mの相対角度検出に利用しているが、可動部材Mは建設機械Cの上部構造に限られず、直列に相対回転可能に連結される複数のリンクで構成されていればよい。
カメラ4は、CCD(電荷結合素子、図示せず)とレンズ(図示せず)、焦点調節部(図示せず)を備えたCCDカメラとして構成され、本例では、旋回体3のキャビン3a内に作業装置Wの全体を撮影できるように設置されている。具体的には、カメラ4は、作業装置Wを真後ろからではなく、図2に示すように、作業装置Wの側面も撮影できるように旋回体3に取り付けられている。なお、カメラ4は、可動部材Mの末端のリンクである旋回体3も部分的あるいは全体を撮影できるように設置されてもよく、旋回体3のキャビン3a外に取り付けてもよい。
また、カメラ4は、あらかじめ設定される撮影範囲をあらかじめ決められたフレームレートで常時撮影し続け、この撮影した画像を電気信号に変換して角度検出部5へ出力するようになっている。なお、カメラ4はCCDカメラとして構成される以外にもCMOS(Complementary Metal OxideSemiconductor)を利用したカメラを使用できる。
角度検出部5は、カメラ4が撮影した画像をグレースケールの画像に変換後に二値化処理し、エッジ画像を取得するエッジ画像取得部51と、エッジ画像取得部51の処理によって得られたエッジ画像の座標系を作業装置Wを真横から見た画像の座標系へ変換する射影変換部52と、射影変換部52により変換された変換画像をハフ変換してから作業装置Wの各リンクであるブーム7、アーム8およびアタッチメント9のエッジを抽出するエッジ抽出部53と、エッジ抽出部53で抽出したエッジから旋回体3に対するブーム7の相対角度θ1(図7参照)、ブーム7に対するアーム8の相対角度θ2およびアーム8に対するアタッチメント9の相対角度θ3を求める角度演算部54と備えて構成されている。
まず、角度検出部5は、カメラ4によって撮影され、カメラ4のレンズ歪等による歪をキャリブレーション処理によって較正された画像を取得して、エッジ画像取得部51によって処理する。エッジ画像取得部51は、カメラ4が撮影した画像をたとえば256階調の輝度値で表現されるグレースケールの画像に変換し、さらに、画像を二値化処理して二値化画像を得て、エッジ画像処理をしてエッジ画像を得る。カメラ4が撮影した図3に示した作業装置Wの画像をエッジ画像取得部51によって処理すると、図4に示すエッジのみで表現される画像が得られる。
射影変換部52は、エッジ画像取得部51の処理によって得たエッジ画像の座標系を、作業装置Wを真横から見た側面画像の座標系へ変換する。この射影変換部52によって図4に示すエッジ画像を処理すると、作業装置Wのブーム7、アーム8およびアタッチメント9の作動面、つまり、ブーム7、アーム8およびアタッチメント9が動作する平面を貫く方向となる真横から見た図5に示した画像が得られる。なお、エッジ画像を座標変換してもエッジが白線で示される画像が得られるが、図中への符号や引き出し線を記載する関係で、説明の便宜上、図5中では実際とは画像を白黒反転として記載しており、以下、図6、図7、図8、図9および図14においても同様とする。
なお、射影変換部52の射影変換処理では、実際に画像を得る必要はなく、変換後のエッジの座標情報を取得できればよい。なお、具体的には、射影変換部52は、カメラ4の撮影した画像座標を射影変換行列を用いて処理するが、この座標変換行列は、予めカメラ4で作業装置Wを撮影して射影変換行列を予め求めておけばよい。
エッジ抽出部53は、座標変換後のエッジ画像をハフ変換によりブーム7、アーム8およびアタッチメント9のエッジを抽出する。エッジ抽出部53は、まず、ブーム7についてのみエッジを抽出する。つづいて、こうして得られたブーム7のエッジから角度演算部54での処理で旋回体3に対するブーム7の相対角度θ1が得られ、さらに、姿勢特定部6がブーム7の姿勢を特定する。このブーム7の姿勢が特定された後、エッジ抽出部53は、ブーム7の姿勢に基づいてアーム8のエッジを抽出する。そして、アーム8について前述のように姿勢が特定された後、エッジ抽出部53は、アタッチメント9のエッジを抽出するようになっている。つまり、本例では、角度検出部5は、可動部材Mの末端のリンクである旋回体3に近いリンクから順に相対角度を求め、姿勢特定部6の処理によって姿勢が特定されると、次のリンクの相対角度を求めるようになっている。
よって、まず、エッジ抽出部53は、ブーム7のエッジを抽出する。ブーム7は、旋回体3に対して上下方向へ揺動可能に連結されており、ブーム7は旋回体3に連結軸7aを中心として揺動可能とされている。そして、ブーム7の連結軸7a側端の下端のエッジE1は、図6中太線に示すように、ブーム7の旋回体3に対する連結軸7aを中心とした回転によって常に連結軸7aから一定の半径R1だけ離れて位置するはずである。つまり、エッジE1を延長した仮想線に連結軸7aの中心から垂らした垂線の長さは、必ず、R1となる。また、カメラ4の撮影範囲は固定されているので、連結軸7aの位置は、撮影範囲外であって撮影されずとも定位置であり、射影変換後の座標系にあってもその座標は不動である。カメラ4で撮影した画像から連結軸7aが撮影されていなくとも、ブーム7と旋回体3の位置関係からブーム7の回転中心である連結軸7aの位置を予め知ることができ、連結軸7aの射影変換後の座標は既知である。図7に示すように、ブーム7の作動面上にx軸とy軸を採ると、連結軸7aから地面へ垂らした垂線の地面との交点を原点Oとすると、連結軸7aの高さは設計値であり既知であるので、高さをL0とすると、連結軸7aの中心座標は(L0,0)となる。そして、射影変換後のエッジ画像をハフ変換によってブーム7の直線のエッジが複数得られても、これらのエッジ或いはこれらエッジを延長して得られた直線と連結軸7aの中心座標からの距離が半径R1に等しいエッジを選択すれば、ブーム7のエッジを抽出できる。
前述したように、半径R1は、設計値であり、この設計値を利用してエッジを抽出できるが、以下の手順によって、連結軸7aの中心座標とエッジまでの半径R1を設定してもよい。まず、ブーム7と旋回体3の相対角度を変えて、ブーム7をカメラ4で撮影した画像を少なくとも三つ得て、これら三つの画像から座標変換後のブーム7のエッジを得る。これら三つのエッジの内接円を求め、この内接円の半径をエッジ抽出のための半径R1とし、内接円の中心座標を連結軸7aの中心座標として設定してもよい。このように、カメラ4で撮影した画像を処理して連結軸7aの中心座標とエッジ抽出のための半径R1を設定すると、より、精緻にブーム7のエッジを抽出可能である。
また、本例では、建設機械Cが走行中或いは旋回体3や作業装置Wが駆動中であると、建設機械Cが振動してカメラ4に振動が伝達される。すると、無振動でカメラ4がブーム7を撮影した画像に対して振動中のカメラ4がブーム7を撮影した場合の画像中のブーム7の位置がオフセットされる場合がある。そこで、半径R1に対して閾値Δr1を設定して、図8に示すように、連結軸7aの中心座標からエッジ或いはエッジの延長線までの距離が半径R1を中心として閾値Δr1で設定される範囲R1±Δr1内にあるエッジを選択する。そして、抽出したエッジのうち、一番長いエッジをブーム7のエッジE1として抽出する。このように、本例では、連結軸7aの中心座標からエッジまで距離が半径R1を中心として閾値Δr1で設定される範囲R1±Δr1内にあるエッジをブーム7のエッジとして抽出する。そのため、閾値Δr1で振動によるオフセット分を吸収してカメラ4が振動してもブーム7のエッジを正確に抽出できる。さらに、エッジ抽出部53は、エッジまで距離が半径R1を中心として閾値Δr1で設定される範囲R1±Δr1内にあるエッジが複数ある場合には、一番長いものをブーム7のエッジとして抽出する。一番長いエッジをブーム7のエッジとして抽出すると、ブーム7のエッジの誤抽出を防止でき、より確実にブーム7のエッジの抽出が可能となる。つまり、前述のエッジ抽出部53の処理を行うと、角度検出に利用するブーム7のエッジE1を精度よく抽出できるのである。
つづいて、角度演算部54は、エッジ抽出部53により選択されたエッジE1から旋回体3に対するブーム7の相対角度θ1を検出する。具体的には、角度演算部54は、図9に示すように、画像の水平軸Hから時計回りに見てエッジE1までの間の角度θ1’を求める。図9中でエッジを延長すると延長されたエッジと画像の縁との交点によって、延長されたエッジの画像内での高さyと幅xが求まるので、この高さyと幅xからθ1’=tan−1(y/x)を演算してθ1’が求まる。角度θ1’は、旋回体3に対してエッジが画像内で水平となる場合を0度として求められる。ブーム7のエッジE1は旋回体3側端の下端のエッジであり、ブーム7とアーム8とを回転可能に連結する連結軸8aと連結軸7aとを結ぶ直線とエッジE1とが平行ではない。ブーム7の旋回体3に対する相対角度θ1は前記直線と旋回体3とのなす角度であるため、角度θ1’を求めた後、角度θ1’を相対角度θ1へ変換する。角度θ1’と相対角度θ1は、所定の角度差だけずれを持っており、設計値であるため、角度差は既知であり、角度θ1’が分かれば一義的に相対角度θ1を求め得る。本例では、角度θ1’と相対角度θ1との関係をテーブル化しており、角度演算部54は、角度θ1’を求めた後、テーブルを参照して相対角度θ1を求めるが、角度差が既知であるので角度θ1’に角度差を加算して相対角度θ1を求めてもよい。なお、相対角度θ1は、地面に対して連結軸7aと連結軸8aを結ぶ直線が水平となる状態となる角度を0度として扱っている。
姿勢特定部6は、前述の角度検出部5によって検出されたブーム7の旋回体3に対する相対角度θ1から連結軸8aの中心座標を求めて、ブーム7の姿勢を特定する。ブーム7の連結軸7aから連結軸8aまでの距離L1は、設計値であるので既知である。そして、角度検出部5によって、相対角度θ1が検出されているので、ブーム7の作動面上において、連結軸8aの中心座標を(x2,y2)とし、既知である連結軸7aの中心座標を(L0,0)とする。すると、x2=L0+L1・cosθ1、y2=L1・sinθ1となる。よって、姿勢特定部6は、相対角度θ1と距離L1を利用してブーム7の姿勢を特定して連結軸8aの中心座標を求め得る。このようにして連結軸8aの中心座標が求まると、角度検出部5のエッジ抽出部53は、連結軸8aの中心座標を用いてブーム7のエッジを抽出する処理と同様の処理を行ってアーム8のエッジを検出する。なお、姿勢特定部6は、連結軸8aの中心座標だけではなく、ブーム7の重心座標を求めてもよい。ブーム7の重心から連結軸7aまでの距離は設計値であり既知であるから連結軸8aの中心座標と同様に求められる。
エッジ抽出部53は、連結軸8aの中心座標を利用して、アーム8のエッジを抽出する。アーム8は、ブーム7に対して上下方向へ揺動可能に連結されており、アーム8はブーム7に連結軸8aを中心として揺動可能とされている。そして、アーム8の連結軸8a側端の下端のエッジE2は、図6中太線で示すように、アーム8のブーム7に対する連結軸8aを中心とした回転によって常に連結軸8aから一定の半径R2だけ離れて位置する。つまり、エッジE2を延長した仮想線に連結軸8aの中心から垂らした垂線の長さは、必ず、R2となる。したがって、エッジ抽出部53は、ブーム7のエッジを検出する処理と同様に、ハフ変換後の前記エッジ画像をからアーム8の直線のエッジが複数得られても、これらのエッジ或いはこれらエッジを延長して得られた直線と連結軸8aの中心座標からの距離が半径R2に等しいエッジを選択すれば、アーム8のエッジを抽出できる。なお、この処理において使用する連結軸8aの中心座標と半径R2は、前述と同様に、アーム8とブーム7の相対角度を変えて撮影した画像を三つ以上取得し、アーム8のエッジの内接円を求めて設定してもよい。また、本例では、先程と同様に、カメラ4の振動によるエッジが画像中でオフセットされてもエッジE2の抽出が可能なように、半径R2に対して閾値Δr2を設定してある。よって、連結軸8aの中心座標からエッジ或いはエッジの延長線までの距離が半径R2を中心として閾値Δr2で設定される範囲R2±Δr2内にあるエッジを選択する。
このように選択されたエッジが複数ある場合、エッジ長、エッジ或いはエッジの延長線と連結軸8aの中心座標までの距離と半径R2とのずれ量、エッジ端と連結軸8aの中心座標までの距離の三つの尺度で評価してエッジE2を抽出する。具体的には、それぞれのエッジについて、エッジ長が長い程良い点数をつけ、前記ずれ量が少ない程良い点数をつけ、さらに、エッジ端までの距離が短い程良い点数をつけ、これら点数の総合点が最も高い点数のエッジをエッジE2として抽出する。このようにスコアリングによる評価を行ってアーム8のエッジE2を抽出すると高精度で真のアーム8のエッジE2を抽出できる。なお、スコアリングによる評価を行わず、ブーム7のエッジ抽出と同様の処理によってアーム8のエッジE2を抽出してもよい。また、エッジ抽出部53は、連結軸8aの至近のブーム7の下端のエッジE12を抽出する。
つづいて、角度演算部54は、アーム8のエッジE2とブーム7のエッジE12からブーム7に対するアーム8の相対角度θ2を検出する。具体的には、角度演算部54は、図9に示すように、エッジE2とエッジE12は直線であり、両者の交点における両者のなす角度であって、エッジE12から時計回りに見て両者のなす角度θ2’を求める。図9中でエッジE2とエッジE12の座標と傾きのデータが得られるので、これらの情報からθ2’が求まる。角度θ2’は、ブーム7のエッジE12とアーム8のエッジE2のなす角度であり、本例では、エッジE2は、アーム8とアタッチメント9とを回転可能に連結する連結軸9aと連結軸8aとを結ぶ直線と平行ではなく、エッジE12は、連結軸8aと連結軸7aとを結ぶ直線も平行ではない。したがって、アーム8のブーム7に対する相対角度θ2は、連結軸9aと連結軸8aとを結ぶ直線と、連結軸8aと連結軸7aとを結ぶ直線とのなす角度であるため、角度θ2’を求めた後、角度θ2’を相対角度θ2へ変換する。角度θ2’と相対角度θ2は、所定の角度差だけずれを持っており、設計値であるため、角度差は既知であり、角度θ2’が分かれば一義的に相対角度θ2を求め得る。本例では、角度θ2’と相対角度θ2との関係をテーブル化しており、角度演算部54は、角度θ2’を求めた後、テーブルを参照して相対角度θ2を求めるが、角度差が既知であるので角度θ2’に角度差を加算して相対角度θ2を求めてもよい。
このように相対角度θ2が求まると、姿勢特定部6は、相対角度θ2から連結軸9aの中心座標を求めて、アーム8の姿勢を特定する。アーム8の連結軸9aから連結軸8aまでの距離L2は、設計値であるので既知である。そして、角度検出部5によって、相対角度θ2が検出されているので、アーム8の作動面上において、連結軸9aの中心座標を(x3,y3)とすると、既知である連結軸8aの中心座標(x2,y2)とする。すると、x3=x2+L2・cos(θ1+θ2)、y2=y2−L2・sin(θ1+θ2)となる。よって、姿勢特定部6は、相対角度θ2と距離L2を利用してアーム8の姿勢を特定して連結軸9aの中心座標を求め得る。また、姿勢特定部6は、アーム8に対してアタッチメント9を駆動するためのレバー10とアーム8とを回転可能に連結する連結軸10aの中心座標を求める。なお、姿勢特定部6は、連結軸9aの中心座標だけではなく、アーム8の重心座標を求めてもよい。アーム8の重心から連結軸8aまでの距離は設計値であり既知であるから連結軸9aの中心座標と同様に求められる。
連結軸10aの中心座標が求まると、エッジ抽出部53は、連結軸10aの中心座標を利用して、アタッチメント9とアーム8の相対角度θ3を求めるために、アタッチメント9のエッジを抽出する。本例では、相対角度θ3を求める際には、射影変換する前のエッジ画像を利用する。アタッチメント9は、この場合、バケットであり、エッジ抽出部53は、図10中で太線で示すように、アタッチメント9の上端と下端のエッジE31,E32を抽出する。
つづいて、角度演算部54は、まず、連結軸10aから各エッジE31,E32までの上下方向の距離H2,H3を求めて、アーム8に対するアタッチメント9の相対角度θ3を検出する。角度演算部54は、連結軸10aとエッジE31との距離H2と、連結軸10aとエッジE32との距離H3の値の組み合わせに対して、相対角度θ3は一対一の関係にあり、これら距離H2,H3から相対角度θ3を求める。アタッチメント9の長さは既知であり、連結軸10aに対して上下方向の距離H2,H3が得られれば、アタッチメント9のアーム8の相対角度θ3を知りえる。また、本例ではアタッチメント9がバケットであり、上端外形が側方から見て円形をしているために、アタッチメント9がアーム8に対して相対角度θ3が変化するように姿勢を変えても連結軸10aとアタッチメント9の上端のエッジE31の距離H2が変化しない場合もある。他方、アタッチメント9がアーム8に対して相対角度θ3が変化するように姿勢を変えると連結軸10aとアタッチメント9の下端のエッジE32の距離H3は、必ず変化する。しかし、アタッチメント9が、たとえば、鉛直下方から旋回体側に30度傾いた状態と、鉛直下方から反旋回体側へ30度傾いた状態とで、下端のエッジE32は同じ高さ位置ある。そのため、アタッチメント9の下端のエッジE32の距離H3だけで相対角度θ3を検出すると、アタッチメント9が旋回体側へ傾いているのか反旋回体側へ傾いているのか分からない。そこで、本例では、連結軸10aから各エッジE31,E32までの上下方向の二つの距離H2,H3から相対角度θ3を求めるので、アタッチメント9が姿勢を変えて相対角度θ3が変化するとこれを正確に検出できる。なお、アタッチメント9がバケットではなく、アーム8とブーム7の相対角度θ2の検出処理と同様に、アタッチメント9とアーム8の双方のエッジの抽出によって相対角度θ3を検出できる場合には、アーム8とブーム7の相対角度θ2の検出処理と同様の処理を行ってもよい。したがって、図6中でアタッチメント9のバケットの側方上端の直線のエッジE33と、アーム8のエッジE22を抽出してこれらのなす角度を求めて相対角度θ3を求めるようにしてもよい。
このように相対角度θ3が求まると、姿勢特定部6は、相対角度θ3からアタッチメント9の姿勢を特定でき、たとえば、アタッチメント9の重心位置や先端位置を把握できる。たとえば、アタッチメント9の先端座標を求めたい場合、アタッチメント9の先端からアーム8の連結軸9aまでの距離L3は、設計値であるので既知である。そして、角度検出部5によって、相対角度θ3が検出されているので、アタッチメント9の作動面上において、アタッチメント9の先端座標を(x4,y4)とすると、既知である連結軸9aの中心座標(x3,y3)とする。すると、x4=x3+L3・cos(θ1+θ2+θ3)、y4=y3−L3・sin(θ1+θ2+θ3)となる。よって、姿勢特定部6は、相対角度θ3と距離L3を利用してアタッチメント9の姿勢を特定して先端座標を求め得る。アタッチメント9の重心座標についても連結軸9aから重心までの距離は既知であるから、先端座標と同様に求め得る。
このように、角度検出部5は、可動部材Mにおける末端のリンクである旋回体3に一番近い作業装置Wのリンクであるブーム7の旋回体3に対する相対角度θ1を求める。そして、姿勢特定部6がブーム7の姿勢を特定すると、角度検出部5は、次に、旋回体3に二番目に近いアーム8のブーム7に対する相対角度θ2を求める。さらに、姿勢特定部6がアーム8の姿勢を特定すると、角度検出部5は、次に、旋回体3から一番遠いアタッチメント9のアーム8に対する相対角度θ3を求める。つまり、角度検出部5は、可動部材Mにおける末端のリンクである旋回体3に一番近い作業装置Wのリンクから順番に相対角度を検出する。
本実施の形態における角度検出装置1のハードウェア資源の構成について説明すると、この角度検出装置1は、図11に示すように、ハードウェアとしてはカメラ4と、カメラ4から出力される信号を増幅する増幅器とアナログ/デジタル変換器を含んで構成される画像インターフェース60と、角度検出装置1における処理を実行するCPU(Central Prossesing Unit)61と、前述の角度検出装置1における処理を行うためCPU61が実行するアプリケーションやオペレーティングシステム等のプログラムを格納するROM(Read Only Memory)62と、上記CPUに記憶領域を提供するRAM(Random Access Memory)63とを備えて構成されればよい。なお、角度検出装置1の各部における構成は、CPU61の角度検出装置1の処理を行うためアプリケーションプログラムの実行により実現できる。
以上、角度検出装置1の構成について説明したが、以下、角度検出装置1の角度検出処理手順を図12のフローチャートの一例に基づいて説明する。
まず、角度検出装置1は、角度検出のため、まず、カメラ4で撮影範囲を撮影する(ステップS1)。次に、カメラ4で撮影した画像に対して前述のエッジ画像処理と射影変換を行ってエッジ画像を得る(ステップS2)。
つづいて、エッジ画像からブーム7のエッジを抽出し(ステップS3)、旋回体3に対するブーム7の相対角度θ1を求める(ステップS4)。さらに、相対角度θ1から連結軸8aの中心座標を演算する(ステップS5)。
さらに、エッジ画像からアーム8とブーム7のエッジを抽出し(ステップS6)、ブーム7に対するアーム8の相対角度θ2を求める(ステップS7)。そして、相対角度θ2から連結軸9aの中心座標を演算する(ステップS8)。
つづいて、エッジ画像からアタッチメント9の上端と下端のエッジを抽出し(ステップS9)、アーム8に対するアタッチメント9の相対角度θ3を求める(ステップS10)。さらに、相対角度θ3からアタッチメント9の先端の座標を演算する(ステップS11)。以上、ステップS1からステップS11までの処理を所定周期で繰り返し行って、相対角度θ1,θ2,θ3を連続して検出可能である。
このように構成された角度検出装置1は、可動部材Mのうち末端のリンク(旋回体3)に取付けられるカメラ4で他のリンク(ブーム7、アーム8およびアタッチメント9)を撮影し、その撮影した画像から他のリンク7,8,9の相対角度θ1,θ2,θ3を求める。このように角度検出装置1は、センサ類を用いないので、センサ類の故障の心配もなく、カメラ4の設置個所は自由度が高く安全な場所に設置できるので厳しい使用環境にも耐えられる。また、角度検出装置1では、ブーム等の姿勢の特定に際してマーカー位置データとブーム等の座標を照合する必要がないので、膨大なマップ位置データの保有が不要となり、大容量のメモリを必要としない。よって、角度検出装置1のコストも低減できる。なお、本例では、各リンク3,7,8,9が揺動可能に連結されているが、首振り可能に連結されていても、同じ画像処理によって相対角度を検出できる。
また、本例では、角度検出装置1は、求めた相対角度θ1,θ2,θ3から他のリンクの姿勢を特定できるので、角度検出装置1が適用される建設機械Cのリンクの重心位置が求められ、ZMPの演算に必要な角度情報が得られる。
さらに、本例では、可動部材Mが三つ以上のリンク3,7,8,9を有し、角度検出部5は、末端のリンク3から一番近いリンク7の相対角度θ1を求め、末端のリンク3から二番目以降の近いリンク8,9については、姿勢特定部6により特定された一つ手前のリンク7,8の姿勢に基づいて相対角度θ2,θ3を求めるようになっている。
このように角度検出装置1が構成されると、相対角度検出対象のリンク8より末端のリンク3側へ一つ手前の姿勢を特定して、末端のリンク3に近いリンク7から順に相対角度θ2を求められる。このように、他のリンク7,8,9について順にリンク8,9の相対角度θ2,θ3の検出と姿勢の特定を行えば、可動部材Mが多数のリンクを有する場合にあっても、全リンクの相対角度θ1,θ2,θ3を簡単に検出できるのである。
また、本例の角度検出装置1にあっては、角度検出部5がカメラ4で撮影した前記画像を処理して、他のリンク7,8,9のエッジを検出し、相対角度θ1,θ2,θ3を求める。よって、このように構成された角度検出装置1は、カメラ4で撮影した連続画像からではなく、一つの画像から相対角度θ1,θ2,θ3を検出できるので、時間をかけずにタイムリーに角度検出できる。
さらに、本例の角度検出装置1にあっては、可動部材Mが末端のリンクを建設機械Cの旋回体3とし、他のリンクを建設機械Cの旋回体3に回転自在に連結される作業装置Wとし、カメラ4が旋回体3のキャビン3a内に設置されるようになっている。このように相対角度検出に必要な画像を撮影するカメラ4がキャビン3a内に収容されるので、カメラ4が建設機械Cの外部環境から保護される。よって、本例の角度検出装置1にあっては、カメラ4が風雨に晒されず、土木工事作業中の石や土砂の飛来からも保護されるので、安定した相対角度検出が可能となる。
<第二の実施の形態>
第二の実施の形態の角度検出装置80にあっては、図13に示すように、角度検出部81の構造および処理が第一の実施の形態の角度検出装置1の角度検出部5の構造及び処理と異なり、そのほかの構成及び処理は同一である。よって、以下では、構成の異なる角度検出部81について詳しく説明し、同一の構成については詳しい説明を省略する。また、この角度検出部81にあっても、建設機械Cに適用されており、カメラ4は旋回体3のキャビン3a内に設置されている。
角度検出部81は、カメラ4が撮影した画像をグレースケールの画像に変換後に二値化処理して二値化画像を得る二値化処理部82と、二値化画像の座標系を作業装置Wを真横から見た画像の座標系へ変換する射影変換部83と、射影変換後の二値化画像から連結軸7a,8a,9aが撮影されている領域を抽出する領域抽出部84と、領域抽出部84で抽出した連結軸7a,8a,9a,10a,10bから旋回体3に対するブーム7の相対角度θ1、ブーム7に対するアーム8の相対角度θ2およびアーム8に対するアタッチメント9の相対角度θ3を求める角度演算部85と備えて構成されている。なお、連結軸10aは、アタッチメント9をアーム8に対して回転駆動するレバー10とアーム8の連結軸であり、連結軸10bは、アタッチメント9とレバー10の連結軸である。
まず、角度検出部81は、カメラ4が撮影し、カメラ4のレンズ歪等による歪をキャリブレーション処理によって較正された画像は、エッジ画像取得部51によって処理する。二値化処理部82は、カメラ4が撮影した画像をたとえば256階調の輝度値で表現されるグレースケールの画像に変換し、さらに、画像を二値化処理して二値化画像を得る。
射影変換部83は、二値化処理部82の処理によって得た二値化画像の座標系を、作業装置Wを真横から見た側面画像の座標系へ変換する。この射影変換部83によって処理すると、作業装置Wのブーム7、アーム8およびアタッチメント9の作動面を貫く方向となる真横から見た図14に示した画像が得られる。
なお、射影変換部83の射影変換処理では、実際に画像を得る必要はなく、変換後のエッジの座標情報を取得できればよい。なお、具体的には、射影変換部52は、カメラ4の撮影した画像座標を射影変換行列を用いて処理するが、この座標変換行列は、予めカメラ4で作業装置Wを撮影して射影変換行列を予め求めておけばよい。
領域抽出部84は、本例では連結軸7a,8a,9a,10a,10bを予め決められた箇所としてこれらが撮影されている領域をたとえばMSER法(Maximally Stable Extermal Regions)などの特徴ベースマッチングによる領域抽出処理を行って抽出する。連結軸7a,8aは、旋回体3とブーム7、ブーム7とアーム8の結合ピンであり、これらの特徴とマッチングする領域を抽出する。なお、MSER法以外の領域抽出法を用いて、連結軸7a,8aの領域を抽出してもよい。また、連結軸7aは、旋回体3とブーム7との連結軸7aであり、射影変換後における座標は既知であるので、カメラ4で連結軸7aを撮影せずともよい。
連結軸8aと連結軸7aの距離L1は、図14に示すように、連結軸7aの座標はカメラ4の画像を射影変換すると定点であり不動であるから、ブーム7がどのような姿勢をとっても一定であり、設計値で有るから既知である。よって、連結軸8aは、連結軸7aの中心座標から距離L1を半径として円周上に存在するので、領域抽出の際に連結軸8aの特徴に一致する領域であって、連結軸7aからの距離がL1である領域は連結軸8aが撮影されている領域となる。また、本例では、建設機械Cが走行中或いは旋回体3や作業装置Wが駆動中であると、建設機械Cが振動してカメラ4に振動が伝達される。すると、無振動でカメラ4が連結軸8aを撮影した画像に対して振動中のカメラ4が連結軸8aを撮影した場合の画像中の連結軸8aの位置がオフセットされる場合がある。そこで、半径L1に対して閾値ΔL1を設定して、連結軸7aの中心座標から距離が範囲L1±ΔL1内にあって連結軸8aと一致する特徴を持つ画像領域を抽出する。そのため、閾値ΔL1で振動によるオフセット分を吸収してカメラ4が振動しても画像において連結軸8aが写っている領域を正確に抽出できる。
連結軸8aの中心座標から連結軸9aまでの距離L2は既知である。連結軸9aは、連結軸8aから距離L2だけ離れた位置に存在するため、連結軸9aの特徴が一致する領域のうち連結軸8aを中心として半径L2の円周上にある領域が連結軸9aの撮影されている領域となる。そこで、領域抽出部84は、連結軸8aの領域が抽出されると、連結軸8aの領域の中心座標を求め、この中心座標から距離L2だけ離れた位置にあって連結軸9aと一致する特徴を持つ領域を選択すれば連結軸9aが撮影されている領域を抽出できる。より詳細には、半径L2に対して閾値ΔL2を設定して、連結軸8aの中心座標から距離が範囲L2±ΔL2内にあって連結軸9aと一致する特徴を持つ画像領域を抽出する。そのため、閾値ΔL2でカメラ4の振動によるオフセット分を吸収してカメラ4が振動しても画像において連結軸9aが写っている領域を正確に抽出できる。さらに、領域抽出部84は、連結軸9aの領域抽出が済むと、続いて、連結軸10a,10bの撮影されている領域を抽出する。アーム8に対してアタッチメント9が姿勢を変えても、連結軸9aの中心座標に対して連結軸10a,10bは、一定距離を保ったままである。よって、領域抽出部84は、連結軸9aの連結軸8aに対する領域抽出と連結軸8aの連結軸7aに対する領域抽出と同様の手法で連結軸10a,10bの領域を抽出すればよい。この連結軸10a,10bの領域抽出にあっても、距離に対して閾値を設定してカメラ4の振動による連結軸10a,10bの位置のオフセットを吸収するようにすればよい。
つづいて、角度演算部85は、ブーム7の回転中心である連結軸7aと領域抽出部84により抽出された箇所である連結軸8aの中心座標を通る直線を求め、この直線の画像に対する傾きから旋回体3とブーム7の相対角度θ1を検出する。さらに、角度演算部85は、アーム8の回転中心である連結軸8aと領域抽出部84により抽出された箇所である連結軸9aの中心座標を通る直線を求め、この直線と連結軸7a,8aの中心座標を通る直線とのなす角度を求めてアーム8とブーム7の相対角度θ2を検出する。そして、角度演算部85は、アタッチメント9の回転中心である連結軸10aと領域抽出部84により抽出された連結軸10bの中心座標を通る直線を求め、この直線と連結軸8a,9aの中心座標を通る直線とのなす角度θ3”を求める。この角度θ3”とアーム8とアタッチメント9の相対角度θ3は、一対一の関係にあり、予めこの関係をテーブル化しておき、角度θ3”からテーブルを利用すれば相対角度θ3を求められる。
なお、本例では、領域抽出部84が、旋回体3とブーム7の回転軸である連結部7a、ブーム7とアーム8の回転軸である連結軸8a、アーム8とアタッチメント9の回転軸である連結軸9a、アーム8とレバー10の回転軸である連結軸10a、アタッチメント9とレバー10の回転軸である連結軸10bの領域を予め決められた箇所として抽出するので、一度に領域抽出可能である。
領域抽出部84が連結軸8a,9a,10a,10bでなく、他所を予め決められた箇所として抽出する場合は、第一の実施の形態と同様に処理するようにすればよい。つまり、領域抽出部84による領域抽出により連結軸7aと連結軸7aから一定距離はなれたブーム7の連結軸8a以外の部位の領域を抽出する。次に、連結軸7aと連結軸7aから一定距離はなれたブーム7の連結軸8a以外の部位の領域の座標から角度演算部85が旋回体3とブーム7の相対角度θ1を求めて、姿勢特定部6でブーム7における連結軸8aの中心座標を求める。連結軸7aとブーム7の連結軸8aの任意の部位を通る直線と画像の水平軸とのなす角度と旋回体3のブーム7の相対角度θ1とは一対一の関係を有しているので、この関係をテーブル化しておけば簡単に相対角度θ1を演算できる。連結軸8aの中心座標が求めると、領域抽出部84は、連結軸8aとアーム8の任意の部位までの既知の距離とから前記部位の領域抽出を行えば、角度演算部85で連結軸8aと前記部位との直線を得てアーム8とブーム7のなす相対角度θ2を求められる。連結軸8aとアーム8の任意の部位を通る直線と連結軸7aとブーム7の任意の部位を通る直線のなす角度と、ブーム7とアーム8の相対角度θ2とは一対一の関係を有しているので、この関係をテーブル化しておけば簡単に相対角度θ2を演算できる。さらに、相対角度θ2が求まれば、姿勢特定部6が連結軸9a,10aの中心座標を求められ、領域抽出部84は、連結軸10aから任意の距離はなれたレバー10の任意の部位の領域を抽出でき、角度演算部85は、連結軸10aとレバー10の任意の部位とからアタッチメント9とアーム8の相対角度θ3を求められる。連結軸8aとアーム8の任意の部位を通る直線とレバー10の連結軸10aとレバー10の任意の部位を通る直線のなす角度と、アーム8とアタッチメント9の相対角度θ3とは一対一の関係を有しているので、この関係をテーブル化しておけば簡単に相対角度θ3を演算できる。このようにすれば、領域抽出する部位を予め決めておけば、連結軸7a,8a,9a,10a,10b以外の部位を領域抽出する部位として設定しても相対角度θ1,θ2,θ3を求められ、各部の姿勢も特定できる。領域抽出する部位を連結軸7a,8a,9a,10a,10bとする場合には、角度演算部85と姿勢特定部6の処理を交えず、領域抽出部84は単独の処理で連結軸7a,8a,9a,10a,10bの領域抽出が可能である。
また、本例では、射影変換部83により、画像の座標系を作業装置Wを真横から見た座標系へ変換しているが、射影変換部83による座標変換を省略してもよい。射影変換部83による座標変換を行わずとも、領域抽出部84で抽出したいブーム7の任意の箇所のカメラ4によって撮影した画像内での連結軸7aに対する軌跡は、カメラ4でブーム7を旋回体3に対して回転させて撮影すれば予め把握できる。よって、射影変換部83によって座標変換しなくとも、ブーム7の任意の箇所の軌跡上に特徴点が一致する部分を領域抽出部84で抽出すれば、得たい領域を抽出できる。この領域と連結軸7aとを結ぶ直線が画像の水平軸となす角度は、ブーム7と旋回体3との相対角度θ1と一対一の関係を有しているので、角度演算部85は、前記直線と水平軸とのなす角度から相対角度θ1を求められる。相対角度θ1が得られれば、カメラ4が撮影する画像中での連結軸8aの座標が求められ、連結軸8aの座標が分かれば、アーム8がブーム7に対して回転する場合においてアーム8の領域抽出部84にて抽出したい箇所が画像中でどのような軌跡を描くのかが分かる。よって、領域抽出部84は、アーム8の任意の箇所の領域を抽出可能である。このように、射影変換部83による座標変換を省略しても、ブーム7と旋回体3との相対角度θ1を検出でき、相対角度θ1が検出できれば、アーム8とブーム7との相対角度θ2を検出できる。つまり、順を追って領域抽出と角度検出を順を追って行えば、相対角度θ1,θ2,θ3が求まるのである。
このように、角度検出部81によって相対角度θ1,θ2,θ3が求まると、姿勢特定部6は、第一の実施の形態と同様に、ブーム7、アーム8およびアタッチメント9の姿勢の特定が可能である。
第二の実施の形態における角度検出装置80のハードウェア資源の構成についても第一の実施の形態の角度検出装置1と同様に構成されており、角度検出装置80の各部における構成は、CPU61の角度検出装置80の処理を行うためアプリケーションプログラムの実行により実現できる。
以上、角度検出装置80の構成について説明したが、以下、角度検出装置1の角度検出処理手順を図15のフローチャートの一例に基づいて説明する。
まず、角度検出装置80は、角度検出のため、まず、カメラ4で撮影範囲を撮影する(ステップS21)。次に、カメラ4で撮影した画像に対して前述の二値化処理を行って二値化画像を得る(ステップS22)。さらに、二値化画像の座標を射影変換を行う(ステップS23)。
つづいて、射影変換後の二値化画像から予め決められた箇所である連結軸8a,9a,10a,10bの領域抽出を行って(ステップS24)、相対角度θ1,θ2,θ3を求める(ステップS25)。
最後に、得られた相対角度θ1,θ2,θ3からブーム7、アーム8およびアタッチメント9の姿勢を特定する(ステップS26)。
以上、ステップS21からステップS26までの処理を所定周期で繰り返し行って、相対角度θ1,θ2,θ3の角度検出とブーム7、アーム8およびアタッチメント9の姿勢の特定を連続して行う。
なお、領域抽出する箇所が連結軸8a,9a,10a,10bでない場合、図15に示すように、ステップS22で二値化画像を得たのち、第一の実施の形態のフローチャートと同様に、ブーム7の予め決められた箇所を抽出して(ステップS31)、旋回体3に対するブーム7の相対角度θ1を求めて(ステップS32)、相対角度θ1から連結軸8aの中心座標を求める(ステップS33)。続いて、連結軸8aの座標からアーム8の予め決められた箇所の領域を抽出して(ステップS34)、ブーム7に対するアーム8の相対角度θ2を求める(ステップS35)。そして、相対角度θ2から連結軸10aの中心座標を求めて(ステップS36)、アタッチメント9の予め決められた箇所の領域を抽出して(ステップS37)、アーム8に対するアタッチメント9の相対角度θ3を求め(ステップS38)、相対角度θ3からアタッチメント9の先端の座標を求める(ステップS39)。このようにすれば、領域抽出する箇所が連結軸8a,9a,10a,10bでない場合にも相対角度θ1,θ2,θ3の角度検出とブーム7、アーム8およびアタッチメント9の姿勢の特定を連続して行える。
このように構成された角度検出装置80は、可動部材Mのうち末端のリンク(旋回体3)に取付けられるカメラ4で他のリンク(ブーム7、アーム8およびアタッチメント9)を撮影し、その撮影した画像から他のリンク7,8,9の相対角度θ1,θ2,θ3を求める。このように角度検出装置80は、センサ類を用いないので、センサ類の故障の心配もなく、カメラ4の設置個所は自由度が高く安全な場所に設置できるので厳しい使用環境にも耐えられる。また、角度検出装置80では、ブーム等の姿勢の特定に際してマーカー位置データとブーム等の座標を照合する必要がないので、膨大なマップ位置データの保有が不要となり、大容量のメモリを必要としない。よって、角度検出装置80のコストも低減できる。なお、本例では、各リンク3,7,8,9が揺動可能に連結されているが、首振り可能に連結されていても、同じ画像処理によって相対角度を検出できる。
また、本例では、角度検出装置80は、求めた相対角度θ1,θ2,θ3から他のリンクの姿勢を特定できるので、角度検出装置1が適用される建設機械Cのリンクの重心位置が求められ、ZMPの演算に必要な角度情報が得られる。
角度検出装置80は、各リンク7,8,9の回転軸である連結軸7a,8a,9a,10a,10bを予め決められた箇所として領域抽出すれば、各リンク7,8,9の姿勢を特定せずとも、相対角度θ1,θ2,θ3を求められる。なお、本例にあっても、可動部材Mが三つ以上のリンク3,7,8,9を有し、角度検出部5は、末端のリンク3から一番近いリンク7の相対角度θ1を求め、末端のリンク3から二番目以降の近いリンク8,9については、姿勢特定部6により特定された一つ手前のリンク7,8の姿勢に基づいて相対角度θ2,θ3を求められる。よって、この角度検出装置80にあっても、第一の実施の形態の角度検出装置1と同様に、可動部材Mが多数のリンクを有する場合にあっても、全リンクの相対角度θ1,θ2,θ3を簡単に検出できる。
また、本例の角度検出装置80にあっては、角度検出部81がカメラ4で撮影した前記画像を処理して、カメラ4が撮影した画像から他のリンク7,8,9の予め決められた箇所を抽出し、箇所と他のリンク7,8,9における回転中心7a,8a,10aとを結ぶ直線を求め、この直線に基づいて相対角度θ1,θ2,θ3を求める。よって、このように構成された角度検出装置80は、カメラ4で撮影した連続画像からではなく、一つの画像から相対角度θ1,θ2,θ3を検出できるので、時間をかけずにタイムリーに角度検出できる。
さらに、本例の角度検出装置80にあっても、可動部材Mが末端のリンクを建設機械Cの旋回体3とし、他のリンクを建設機械Cの旋回体3に回転自在に連結される作業装置Wとし、カメラ4が旋回体3のキャビン3a内に設置されるようになっている。このように相対角度検出に必要な画像を撮影するカメラ4がキャビン3a内に収容されるので、カメラ4が建設機械Cの外部環境から保護される。よって、本例の角度検出装置80にあっては、カメラ4が風雨に晒されず、土木工事作業中の石や土砂の飛来からも保護されるので、安定した相対角度検出が可能となる。
以上で、本発明の実施の形態についての説明を終えるが、本発明の範囲は図示されまたは説明された詳細そのものには限定されないのは勿論である。