〔実施形態1〕
(清掃システムの概要)
本実施形態に係る清掃システム5の概要を図2に基づいて説明する。図2は、清掃システム5の概要を示す図である。清掃システム5は、管PIの表面を清掃するためのシステムであり、制御装置1と清掃装置2を含む。制御装置1は、清掃装置2の動作を制御する装置である。清掃装置2は、制御装置1の制御に従って動作する、管PIの清掃装置である。図2の上側には清掃装置2の斜視図を示し、同図の下側には清掃装置2の側面図を示している。
管PIは、直線状の管であり、水平方向に等間隔で複数列配列している。また、管PIは垂直方向に複数段配列している。本実施形態では、管PIが、焼却炉の廃熱を利用した発電に用いられるボイラ(図示せず)の配管、すなわち上述のボイラ水管である例を説明する。無論、清掃システム5は、清掃装置2がその上を走行することができる程度の強度を有し、少なくとも一部分が直線状であるものであれば、ボイラ水管以外の管の清掃にも用いることができる。
図示のように清掃装置2は、本体部21、クローラ22、ホースリール23、およびホース24を備え、本体部21の内部にはパンタグラフ25が収容されている。また、図2の側面図に示すように、パンタグラフ25の先端部には放水口26が設けられている。また、本体部21の前方側端部には収容部27が設けられている。
図2には、左側のクローラ22のみを示しているが、クローラ22は本体部21を挟んで左右対称な位置に一組設けられている。クローラ22は、清掃装置2を前進、後進、および水平面内で回転させる走行装置として機能する。クローラ22の代わりに車輪などの他種の走行装置を適用してもよい。
ホースリール23はホース24を巻きつけるものであり、ホース24は放水口26に管PIの洗浄用の液体(例えば水)を送液する管である。パンタグラフ25は、リンク機構により伸縮するようになっており、清掃時には本体部21の下方に向かってパンタグラフ25を伸ばし、移動時には収縮させることができる。また、放水口26は、ホース24に接続されており、ホース24から送られてきた洗浄用の液体を側方に向かって放出する。
つまり、清掃装置2は、パンタグラフ25を伸長させて、放水口26を清掃したい管PIの側方に位置させ、この状態でホース24から送られてきた洗浄用の液体を放水口26に送り込むことにより、水圧で管PIを洗浄する構成となっている。なお、管PIを清掃する方式は任意であり、例えばブラシなどの清掃具を管PIに押し当てて清掃する構成としてもよい。
清掃装置2は、清掃したい管PIの間にパンタグラフ25を降ろして清掃を行うため、清掃の前段階として、清掃したい管PIの間に移動する必要がある。この移動を自動で行うために、清掃装置2の収容部27の内部には撮影装置と近接センサが設けられている(何れも図2には図示せず)。
そして、制御装置1は、撮影装置が撮影した画像と近接センサの検出値を取得し、これらに基づいて清掃装置2の制御を行う。これにより、清掃装置2を清掃すべき管PIの間に自動で移動させて、清掃装置2に管PIの清掃を行わせることができるようになっている。
(制御装置の構成)
制御装置1の構成を図1に基づいて説明する。図1は、制御装置1の要部構成の一例を示すブロック図である。図示のように、制御装置1は、制御装置1の各部を統括して制御する制御部10と、制御装置1が使用する各種データを記憶する記憶部11を備えている。また、制御装置1は、制御装置1が他の装置と通信するための通信部12と、制御装置1に対する各種データの入力を受け付ける入力部13と、制御装置1が各種データを出力するための出力部14と、を備えている。そして、制御部10には、管検出部101、角度特定部102、ずれ量算出部103および移動制御部104が含まれている。
管検出部101は、清掃装置2に取り付けられた撮影装置により撮影された画像から管PIを検出する。画像は通信部12または入力部13を介して取得すればよい。そして、角度特定部102は、管検出部101が検出した管PIの傾斜角度を特定する。
ずれ量算出部103は、清掃装置2の左右対称な位置に取り付けられた、管PIを検出する一組の近接センサの検出値に基づいて、清掃装置2の所定の基準位置からのずれ量を算出する。本実施形態では、上記基準位置が、平行に隣接して配列された2本の管PIの中央位置(2本の管PIから等距離にある位置)であり、ずれ量算出部103が清掃装置2の左右方向の中央位置と上記中央位置とのずれ量を算出する例を説明する。
無論、基準位置は適宜定めておけばよく、この例に限られない。例えば、管PIの中央位置を基準位置とし、清掃装置2の左右方向の中央位置と管PIの中央位置とのずれ量を算出してもよい。
移動制御部104は、角度特定部102が特定する傾斜角度、およびずれ量算出部103が算出するずれ量の何れかまたは両方に基づいて清掃装置2の移動制御を行う。詳細は後述するが、移動制御部104は、例えば清掃装置2の向きを変える旋回制御や、清掃装置2を隣接する管PIの中央位置に移動させる制御を行う。なお、ここでは、制御装置2の位置が変わらないような旋回制御も移動制御の範疇に含まれるとする。
以上のように、制御装置1は、管PIの表面を清掃する清掃装置2に取り付けられた撮影装置により撮影された画像から管PIを検出する管検出部101と、管検出部101が検出した管PIの傾斜角度を特定する角度特定部102と、特定された傾斜角度に基づいて清掃装置2の移動制御を行う移動制御部104と、を備える。
清掃装置2に取り付けられた撮影装置により撮影された画像に写る管PIの傾斜角度は、清掃装置2が管PIに対してどのような向きとなっているかを反映している。そして、清掃装置2が管PIに対してどのような向きとなっているかが特定できれば、清掃装置2を管PIに対して所定の向きとなるように方向転換させたり、清掃装置2を管PIに沿って移動させたり、清掃装置2を管PIと垂直な方向に移動させたりすることも可能になる。
よって、上記の構成によれば、撮影装置により撮影された画像に基づく、清掃装置2の移動制御が実現できる。また、上記の構成は、停止位置修正用アーム等の特別な構成が必要ないという点で、特許文献1の技術と比べて汎用性が高い。したがって、上記の構成によれば、清掃装置2の汎用的な移動制御が実現できるという効果を奏する。
(管検出と傾斜角度特定の概要)
図3は、制御装置1による管検出と傾斜角度特定の概要を示す図である。図2には、管PI上に位置する清掃装置2の上面図と、清掃装置2が備える撮影装置271により撮影された画像IMGを示している。なお、清掃装置2の外観は図2よりも簡略化している。これは図3以降の図面においても同様である。
図3に示す清掃装置2は、管PIの延伸方向に対して、清掃装置2の前方側が左側に傾いている。また、清掃装置2の前方部には、撮影装置271が設けられている。この撮影装置271は、図2の収容部27内に収容されており、清掃装置2の下方側を撮影するように配置されている。撮影装置271は、管PIの輪郭線が認識できるような画像を撮影できるものであればよく、例えば深度カメラ等であってもよい。
このような状態で清掃装置2が備える撮影装置271により撮影された画像IMGでは、図示のように管PIが右上がりに傾斜して写る。詳細は後述するが、管検出部101は、画像IMGから、管PIの外縁を構成する線分L1を検出する。そして、角度特定部102は、管検出部101が検出した線分L1の線分L2に対する傾斜角度を、管PIの傾斜角度として特定する。なお、線分L2は、画像IMGの上辺および下辺に垂直な線分である。
清掃装置2の前後方向と、管PIの延伸方向とが平行である場合、つまり検出した管の外縁を構成する線分が線分L2と平行である場合にはΔθはゼロとなる。このΔθがゼロとなる方向を基準として、例えば右側の傾きを正、左側の傾きを負として管の傾斜角度を表すことができる。この場合、図3のように、清掃装置2の前方側が左側に傾いているときにΔθは正の値となり、清掃装置2の前方側が右側に傾いているときにはΔθは負の値となる。
(管検出の具体例)
図4は、制御装置1による管検出の具体例を示す図である。図4に示すIMG1は、撮影装置271により撮影された画像である。この画像IMG1においては、領域A1およびA2等において、本来は直線状であるはずの管の外縁部が歪んで曲線状になっている。撮影装置271のレンズが広角レンズである場合にはこのような歪が生じる。なお、画像IMG1の左下隅および右下隅に写り込んでいるのは近接センサである。
歪は管検出の妨げとなるため、図4の例では、管の検出に先立ち、管検出部101は、画像IMG1に対して歪補正を行い、歪が補正された画像IMG2を生成している。画像IMG2では、領域A1およびA2に対応する領域A1’およびA2’における管の外縁部が直線状になっている。発生する歪のパターンは撮影装置271に依存するから、例えば撮影装置271で事前にチェックパターンを撮影し、撮影されたチェックパターンの歪が解消するような補正パラメータを作成しておけばよい。このような補正パラメータを用いれば歪の補正が可能である。
また、図4に示すIMG3も撮影装置271により撮影された画像であるが、この画像IMG3の領域A3等には干渉縞が生じている。このようなノイズも管検出の妨げとなることがある。このため、管検出部101は、管の検出に先立ってノイズ除去を行ってもよい。図4に示す画像IMG4は、画像IMG3に対してノイズ除去処理を行ったものである。画像IMG4は干渉縞がない鮮明な画像となっている。
ノイズ除去方法としては任意のものが適用できる。例えば、バイラテラルフィルタによりノイズを除去してもよい。バイラテラルフィルタは、ノイズを除去すると共に、画像中のエッジ部分は顕著に残すフィルタであるため、管検出の前処理に用いるノイズ除去フィルタとして好適である。
以上のような歪補正およびノイズ除去を行った画像から、管検出部101は、管の外縁を構成する線分を検出する。この線分の検出には、種々のエッジ検出法を適用することができる。例えば、管検出部101は、Canny法によりエッジ検出を行ってもよい。Canny法では、対象となる画像をグレースケールに変換した後、変換後の画像における輝度変化が閾値以上となる部分をエッジとして検出する。
図4には、画像IMG4からCanny法でエッジ検出した結果を示すエッジ画像IMG5を示している。エッジ画像IMG5は、管の外縁部を含む各種のエッジが白色の線分で表され、エッジ以外の部分が黒の背景部となった二値化画像である。
この後、管検出部101は、エッジ画像IMG5から直線を検出する。検出された直線には、管の外縁部のエッジも含まれているので、直線を検出する処理は管を検出する処理であるといえる。
エッジ画像IMG5から直線を検出する方法は任意である。例えば、管検出部101は、ハフ(Hough)変換により直線を検出してもよい。この場合、管検出部101は、検出すべき直線の式をρ=xcosθ+ysinθと表して、エッジの画素(エッジ画像IMG5における白色画素)が所定数以上乗っている直線の(ρ,θ)の組、すなわち極座標を求める。
これにより、エッジ画像IMG5に含まれる所定の長さ以上の各直線(所定数以上の白色画素からなる各直線)が極座標(ρ,θ)で表される。なお、検出したい管の外縁部以外の直線ができるだけ検出されないようにするため、エッジ画像IMG5のうち管の外縁部以外のものが写り込む画像端部を避けて直線検出を行うことが好ましい。直線の検出対象領域は予め定めておけばよい。
次に、角度特定部102が、管検出部101が検出した直線から、管の傾斜角度を特定する。より詳細には、角度特定部102は、極座標(ρ,θ)で表される直線が、xy座標系、すなわち直交座標系においてどのような傾きの直線となるかを特定する。具体的には、角度特定部102は、極座標(ρ,θ)で表される直線上の2点を求め、それら2点間のx軸方向の距離x1とy軸方向の距離y1を求める。ここで、特定するべき傾きをφとすれば、tanφ=y1/x1が成り立つので、角度特定部102は、求めたx1とy1の値から傾きφを特定することができる。ただし、0<φ<180°となるようにする。
角度特定部102は、管検出部101が検出した全ての直線について上記の処理を行って、検出された各直線の傾きを特定する。ここで、角度特定部102は、特定した角度のうち、閾値を超えているものは除外する。そして、角度特定部102は、除外されずに残った角度の平均値を、管の傾斜角度と特定する。
なお、管の検出と傾斜角度の特定は、時系列で複数回行い、各特定結果の移動平均を管の傾斜角度と特定してもよい。この場合、例えば、撮影装置271による撮影と、撮影された画像からの管の検出および傾斜角度の特定を所定周期(例えば数Hzから数十Hz)で行い、複数周期の特定結果の移動平均を、当該複数周期における管の傾斜角度と特定してもよい。
(制御の例:旋回)
移動制御部104は、以上のようにして角度特定部102が特定した傾斜角度に基づいて清掃装置2を旋回させて、清掃装置2に所望の方向を向かせることができる。具体的には、移動制御部104は、目標となる傾斜角度ΔθTを設定した上で、角度特定部102が特定する傾斜角度Δθ=ΔθTとなるように清掃装置2を旋回させればよい。例えば、清掃装置2の前後方向が管の延伸方向と平行になるように旋回させる場合、移動制御部104は、ΔθT=0に設定すればよい。そして、移動制御部104は、角度特定部102が特定する傾斜角度Δθ=ΔθT=0となるまで清掃装置2を旋回させればよい。
ただし、制御装置1から清掃装置2に対して制御信号を送信した後、その制御信号に従って清掃装置2が動作するまでの間にはタイムラグがある。このため、移動制御部104は、このタイムラグを考慮した旋回制御を行うことが好ましい。
例えば、移動制御部104は、下記の数式で表される傾斜角度ΔθSを閾値として旋回制御を行ってもよい。なお、tdは制御信号の送信から清掃装置2が動作するまでのむだ時間、γは清掃装置2の旋回中の角速度、Vは清掃装置2の走行速度(旋回時のモータの回転速度で走行した速度)、aは清掃装置2の走行加速度(旋回時のモータの回転速度での走行における加速度)である。また、下記の数式におけるγの係数(1/2)は、旋回中から旋回停止に至るまでの期間に角速度が一次関数的に減少すると仮定して設定したものである。γの係数は、旋回停止に至るまでの期間の角速度の変動パターンに応じたものとすればよく、1/2に限られない。
ΔθS=td*γ+V/a*γ/2
具体的には、移動制御部104は、以下の条件に従って、右旋回、左旋回、および停止(旋回終了)の制御信号を出力する。なお、基準軸の取り方によって、下記条件式におけるΔθの正負や、右辺のΔθSの符号は変わる。
Δθ>ΔθT-ΔθS:右旋回
Δθ<ΔθT+ΔθS:左旋回
|Δθ|=ΔθT+ΔθS:停止(旋回終了)
旋回時における処理の流れは例えば以下のようになる。なお、以下では清掃装置2を管と平行にする際の旋回制御、つまり、ΔθT=0である場合の旋回制御について説明する。
まず、移動制御部104は、清掃装置2の角速度γを計算し、続いて移動制御部104は、角速度γに所定のむだ時間tdを乗じて、タイムラグの間に変化する角度すなわち上記ΔθSの算出式における右辺第一項の値を算出する。また、移動制御部104は、清掃装置2の走行速度Vと、加速度aから、上記ΔθSの算出式における右辺第二項の値を算出し、これによりΔθSの値を求める。
次に、移動制御部104は、角度特定部102が特定した傾斜角度Δθの大きさ(|Δθ|)がΔθSより大きいか否かを判定する。ここで、移動制御部104は、|Δθ|≦ΔθSであれば旋回の停止信号を出力する。|Δθ|≦ΔθSであれば要求される精度を満たしているためである。
一方、移動制御部104は、|Δθ|>ΔθSであれば清掃装置2を旋回させる。旋回方向の判定条件は上記のとおりである。つまり、移動制御部104は、Δθ>ΔθSであれば右旋回、Δθ<-ΔθSであれば左旋回の制御信号を出力する。この後、移動制御部104は、再度|Δθ|>ΔθSであるかの判定に戻る。このような処理を|Δθ|≦ΔθSとなるまで繰り返すことにより、むだ時間tdの間における傾斜角度の変化(td*γ)と、停止信号を送信してから停止するまでの間における傾斜角度の変化(V/a*γ/2)を考慮して、要求精度を満たす旋回が実現される。
(ずれ量の算出方法の概要)
図5は、ずれ量算出部103によるずれ量の算出方法の概要を示す図である。図5には、管PILおよびPIR上に位置する清掃装置2の平面図と、該平面図におけるA-A’線断面図を示している。なお、断面図では清掃装置2が備える近接センサ272Lおよび272Rと、管PILおよびPIR以外のものは図示を省略している。
上述のように、ずれ量の算出には、清掃装置2の左右対称な位置に取り付けられた、管PIを検出する一組の近接センサの検出値が用いられる。図5の例では、清掃装置2の前部に近接センサ272Lおよび272Rが設けられている。なお、清掃装置2を左右方向に二等分する中心線L3に対して左側に設けられているのが近接センサ272Lであり、中心線L3に対して右側に設けられているのが近接センサ272Rである。これらのセンサは、収容部27(図2参照)に収容されている。
平面図に示すように、中心線L3は管PILおよびPIRと平行であるが、管PILとPIRとの中央位置を示す中間線L4に対して、Δyだけ左側にずれている。ずれ量算出部103は、このずれ量Δyを近接センサ272Lおよび272Rの検出値に基づいて算出する。
より詳細には、ずれ量算出部103は、Δyがゼロのときには近接センサ272Lの検出値と近接センサ272Rの検出値との差がゼロになり、Δyがゼロ以外のときにはその差がゼロにならないことを利用してΔyを算出する。
例えば、図5の例では、同図の断面図に示すように、近接センサ272Lから管PILまでの距離の方が、近接センサ272Rから管PIRまでの距離よりも短い。このため、近接センサ272Lの検出値と近接センサ272Rの検出値との差はゼロにはならない。例えば、対象物までの距離が短いほど検出値が小さくなる近接センサ272Lおよび272Rを用いた場合、検出値の差は負の値となる。
よって、近接センサ272Lと272Rの検出値の差が負の値となったことにより、管PILとPIRとの中央位置を示す直線L6に対し、近接センサ272Lと272Rの中央位置を示す直線L5が左側にずれた位置にあることがわかる。また、検出値の差の大きさは、ずれ量の大きさを反映しているから、検出値の差の大きさからΔyを算出することができる。
(近接センサの配置)
一組の近接センサ272Lおよび272Rは、一方が管の真上の位置となるときに、他方がその管に隣接する管の検出限界の位置となるように配置することが好ましい。このような配置とする理由について図6および図7に基づいて説明する。
図6は、近接センサ272と管PIの位置関係と、近接センサ272の検出値との関係を説明する図である。なお、近接センサ272は、近接センサ272Lおよび272Rと同じセンサである。
図6には、近接センサ272の初期位置からのずれ量(単位はmm)と、近接センサ272の測定値(近接センサ272の検出値、単位はボルト)との関係を示している。なお、初期位置は、管PIの真上の位置よりも約5mm左側の位置である。
図示のように、近接センサ272を初期位置から右方向に移動させていくと、近接センサ272が管PIの真上の位置となったとき、すなわち近接センサ272が管PIに最接近したときに、検出値が約1.2Vとなっている。この値が近接センサ272の出力値の最小値である。
この後、近接センサ272をさらに右方向に移動させていくと、近接センサ272の検出値は増加してゆき、管PIが検知範囲外となったときには、検出値(電圧値)が約5.0Vとなっている。この値が近接センサ272の出力値の最大値であり、近接センサ272の検知範囲の境界となる値である。つまり、検出値(電圧値)が5.0Vより小さければ近接センサ272は管PIを検知しているといえ、5.0Vであれば管PIを検知していないといえる。
近接センサ272の位置と検出値との関係は、管PIまでの距離が比較的近い場合と、検知範囲境界に近い場合とで異なるパターンとなっている。このうち、管PIまでの距離が比較的近い場合については、近接センサ272の位置と検出値との関係は近似により関数として定式化することが可能である。この関数を図6には「近似曲線」として示している。
図6では、この近似曲線において、検知範囲外の電圧値(約5.0V)となるときのずれ量と、近接センサ272が管PIに最接近したとき(近接センサ272が管PIの真上に位置するとき)のずれ量との差をDで表している。近接センサ272が管PIの真上に位置している状態から、近接センサ272が右方向に距離Dだけ移動すると、近接センサ272の検出値は最大値にまでは達しないが、最大値に近い値となる。
このため、Dを検出限界の距離とみなし、近接センサ272が管PIの真上の位置から、その右方向にDだけ離れた位置までの区間に存在するときには、近接センサ272の検出値とずれ量との関係を図6に示すような近似曲線で近似することができる。そして、近接センサ272の検出限界よりも離れた位置に管PIが存在するときには、近接センサ272の検出値は一定値(約5.0V)に近似することができる。
なお、近接センサ272が管PIに最接近したときの近接センサ272と管PIの間の距離を変えて実験を行ったが、当該距離が短いほど最近接時の検出値が小さくなっただけで、検出限界となる位置は変わらなかった。この実験結果から、近接部分を図6に示すような近似曲線で近似することは妥当であり、その近似曲線を示す関数から求めた検出限界の位置よりも離れた位置における検出値を一定値(近接センサ272の最大値)とすることも妥当であるといえる。
図7は、近接センサ272Lおよび272Rと管PILおよびPIRの位置関係と、近接センサ272Lおよび272Rの検出値の近似式との関係を説明する図である。図7では、隣接する2本の管のうち左側に位置する管PILの真上に左側の近接センサ272Lが位置しているときのずれ量をゼロとしている。そして、その位置から近接センサ272Lおよび272Rを右方向に水平移動させたときの上記位置からのずれ量xと、近接センサ272Lおよび272Rの各検出値V1、V2との関係を表した近似式を示している。
図示のように、
V1=a(x-p)2+q
V2=a(x-p-D)2+q
である。なお、a、p、qは、近接センサ272間の距離、管PIの径、管PIのピッチ、および近接センサ272と管PIとの距離から決まる定数である。また、Dは、V1の近似曲線において、V1=V1MAX(約5.0V)となるときのずれ量と、V1=V1MIN(約1.2V)となるときのずれ量との差である。
このようにして求めたDを用いて近接センサ272Lおよび272Rを配置する。具体的には、近接センサ272Lが管PILの真上の位置にあるときの、近接センサ272Rから管PIRの真上の位置までの水平方向距離の距離がDとなるようにする。また、近接センサ272Rが管PIRの真上の位置にあるときの、近接センサ272Lから管PILの真上の位置までの水平方向距離の距離もDとなるようにする。このような位置関係とするためには、近接センサ272Lと272Rの間隔d=(P-D)とすればよい。Pは、管PILとPIRの間隔である。
このような配置とした場合、管PILの真上に近接センサ272Lが位置しているとき検出値V1は最小値V1MIN(約1.2V)となる。このとき近接センサ272Rは、管PIRの検出限界の位置にあるからV2は最大値V2MAX(約5.0V)となる。一方、管PIRの真上に近接センサ272Rが位置しているときには検出値V2が最小値V2MIN(約1.2V)となる。このとき近接センサ272Lは、管PILの検出限界の位置にあるからV1は最大値V1MAX(約5.0V)となる。
また、管PILの真上に近接センサ272Lが位置している状態から、管PIRの真上に近接センサ272Rが位置している状態までの区間には、近接センサ272Lが管PILを検知しており、かつ、近接センサ272Rが管PIRを検知している状態となる。この区間における近接センサ272Lと272Rの検出値の差は、下記のように表すことができる。
V1-V2={a(x-p)2+q}-{a(x-p-D)2+q}
=2aDx-a(2pD+D2)2
ここで、図5で説明したように、近接センサ272Lと272Rの検出値が等しいとき、つまりV1-V2=0のときにずれ量もゼロになる。よって、ずれ量を表す関数は、上記数式の右辺第二項をゼロとして、下記の一次関数で表される。
x=(V1-V2)/2aD
ここで、管PIRの真上に近接センサ272Rが位置している状態から、さらに近接センサ272Lおよび272Rが右方に移動したとする。この状態において、近接センサ272Lは、管PILの検知範囲外であるからV1=V1MAX(約5.0V)の定数となる。一方、近接センサ272Rは、管PIRの検知範囲内であり、V2=a(x-p-D)2+qと表される。よって、この状態における近接センサ272Lと272Rの検出値の差は、下記のように表すことができる。
V1-V2=V1MAX-a(x-p-D)2-q
上述のように、V1-V2=0のときにずれ量がゼロになるようにする。つまり、-a(2pD+D2)2=0とする。a≠0かつD≠0であるため、2p+D=0となる。よって、近接センサ272Lが管PILの検知範囲外であり、かつ近接センサ272Rが管PIRの検知範囲内である場合において、ずれ量を表す関数は、下記のように表される。
x={-(V1-V2+q-V1MAX)/a}1/2+D/2
以上のように、近接センサ272Lおよび272Rの一方のみが管を検出している場合と、両方が管を検出している場合とのそれぞれについて、近接センサ272Lおよび272Rの検出値の差を簡単な近似式で表すことができる。そして、それらの近似式を用いることにより、近接センサ272Lと272Rの検出値の差から、ずれ量を求めるための関数を導出することができる。
図8は、近接センサ272Lと272Rの検出値の差(V1-V2)から、ずれ量を求めるための関数を示す図である。図8のグラフの縦軸は近接センサ272Lの管PILの直上位置からのずれ量(単位:mm)であり、横軸は近接センサ272Lと272Rの検出値の差(電圧差。単位:V)である。
図8に示す関数は、ずれ量が0から15mm付近までの区間は直線(一次関数)となっている。具体的には、この区間における関数は図8の数式(1)に示すように、ずれ量が電圧差(V1-V2)に比例して増加する一次関数である。
また、図8に示す関数は、ずれ量が15から45mm付近までの区間は曲線となっている。具体的には、この区間における関数は図8の数式(2)に示すように、ずれ量が(V1-V2)1/2の値に応じて減少する関数である。なお、図8では、V1MAX=5としている。つまり、数式(2)の(V1-V2+q-5)における「5」はV1MAXである。
すなわち、ずれ量算出部103は、近接センサ272Lと272Rの両方が管を検知しているとき(V1≠V1MAXかつV2≠V2MAXのとき)には、上記数式(1)によりずれ量xを算出する。また、ずれ量算出部103は、近接センサ272Lと272Rの一方のみが管を検知しているときには、上記数式(2)によりずれ量xを算出する。ここで近接センサ272Lと272Rの一方のみが管を検知しているときとは、(V1=V1MAXかつV2≠V2MAX)または(V2=V2MAXかつV1≠V1MAX)のときである。
このように、近接センサ272Lが管PILの真上の位置となるときに、近接センサ272Rが管PIRの検出限界の位置となり、近接センサ272Rが管PIRの真上の位置となるときに、近接センサ272Lが管PILの検出限界の位置となるように配置することにより、数式(1)および(2)というシンプルな関数でずれ量を算出することができる。
なお、近接センサ272Lおよび272Rと管PILおよびPIRとの距離によっては、数式(2)の根号の中が負になることがある。この場合には、ずれ量算出部103は、数式(2)の右辺第一項をゼロとする。また、(V1-V2)の値の正負、言い換えればV1とV2の大小関係により、隣接する管の中央位置と、近接センサ272Lと272Rの中央位置とが、左右何れの方向にずれているかを判定することもできる。具体的には、V1>V2であれば右にずれており、V2>V1であれば左にずれていると判定することができる。
以上のように、制御装置1は、清掃装置2に取り付けられた、管を検出する一組の近接センサ272Lおよび272Rの検出値に基づいて、清掃装置2の所定の基準位置からのずれ量を算出するずれ量算出部103を備える。そして、移動制御部104は、角度特定部102が特定する傾斜角度と、ずれ量算出部103が算出するずれ量とに基づいて清掃装置2の移動制御を行う。
より詳細には、一組の近接センサ272Lおよび272Rは、一方が管の真上の位置となるときに、他方が当該管に隣接する管の検出限界の位置となるように配置されている。そして、ずれ量算出部103は、一組の近接センサ272Lおよび272Rの検出値の差と、ずれ量との関係を近似した近似式である数式(2)を用いてずれ量を算出する。
上述のように、近接センサ272Lおよび272Rを清掃装置2の左右対称な位置に取り付けて、平行に配列された2本の管をそれぞれ検出する場合、清掃装置2が2本の管の中央位置にあるときには、近接センサ272Lから管PILまでの距離と、近接センサ272Rから管PIRまでの距離とが等しくなる。この場合、近接センサ272Lおよび272Rの出力値は同じかほぼ同じ値となる。
一方、清掃装置2が2本の管の中央位置からずれた位置にあるときには、近接センサ272Lおよび272Rの出力値は異なる値となる。この場合、近接センサ272Lおよび272Rの出力値の差は、清掃装置2の左右方向の中央位置と、管PILと管PIRの間の中央位置とのずれ量の大きさに応じた値となる。
したがって、清掃装置2の左右対称な位置に取り付けられた近接センサ272Lおよび272Rの検出値に基づいて、清掃装置2の基準位置からのずれ量を算出することができる。例えば、清掃装置2の左右方向の中央位置と、平行に配列された複数の管の間の中央位置とのずれ量を算出することもできる。
そして、このずれ量を用いて移動制御を行うことにより、清掃装置2を管に対して所定の位置に位置合わせすることができる。例えば、ずれ量がゼロになるように清掃装置2の移動制御を行うことにより、清掃装置2を管と管の間の中央位置に位置合わせすることもできる。
ここで、図6に示したように、近接センサ272の出力特性は、検出対象が当該近接センサ272の近くにある場合と、検出対象が近接センサ272から離れた位置、すなわち検出限界付近にある場合とで異なっている。このため、検出対象が当該近接センサ272の近くにあるときの出力特性を二次式で近似する場合、厳密には、検出限界付近にあるときの出力特性はまた別の式で近似する必要がある。
しかし、この場合、近接センサ272の出力特性が二次式と上記別の式と定数の3つに分かれることになる。そして、近接センサ272Lおよび272Rという2つの近接センサを用いた場合には、それらの検出値の差を表す式は煩雑なものとなり、また、場合分けも多くなり計算も煩雑化する。
そこで、清掃装置2の近接センサ272Lおよび272Rは、一方が管の真上の位置となるときに、他方が当該管に隣接する管の検出限界の位置となるように配置されている。そして、検出限界の位置における検出値を、検出値の最大値であると近似する。これにより、近接センサ272Lと272Rの両方が管を検知しているときには上記数式(1)を用い、近接センサ272Lと272Rの一方のみが管を検知しているときには上記数式(2)を用いる、という簡易な演算によりずれ量を算出することができる。
なお、本実施形態では、近接センサ272Lおよび272Rが清掃装置2の左右対称な位置に取り付けられた例を説明しているが、この例に限られない。近接センサ272Lおよび272Rは、清掃装置2の基準位置(例えば中心位置)に対して所定の方向および所定の距離となるように配置すればよい。例えば、清掃装置2の中心位置に対して、一方の近接センサを所定距離だけ前方側に配置し、他方の近接センサを所定距離だけ後方側に配置してもよい。
また、管を検出するための検出器は、近接センサ272に限られない。例えば、測距センサ(例えばレーザ測距センサ)や超音波センサ等の非接触で管を検出可能な任意の検出器を適用することができる。また、検出器の設置数は2個に限られず、3個以上としてもよく、複数種類の検出器を併用してもよい。
また、近接センサの検出値の差とずれ量との関係を近似した近似式は、数式(1)(2)の例に限られない。例えば、管を検出するための検出器の種類や配置等に応じて、高次関数(二次関数や三次関数を含む)、指数関数、対数関数、あるいはそれらの組み合わせ等により近似することもできる。ただし、上述した数式(1)(2)を用いる構成は、簡易な演算によりずれ量を算出することができるという利点があり好ましい。
(制御の例:センタリング)
上述のずれ量および傾斜角度に基づいた清掃装置2の制御の例として、ここでは清掃装置2のセンタリング制御について説明する。センタリングとは、管と管の中央位置に清掃装置2を移動させることを指し、センタリングすることによりそれらの管の間にパンタグラフ25を降ろして清掃を行うことが可能な状態となる(図2参照)。
図9はセンタリング時における清掃装置2の動作例を示す図である。なお、図9には、互いに平行で等間隔に配列した管PI1~PI3上の清掃装置2を上方から見下ろした様子を示している。また、図9では、管PI1と管PI2との中央位置を破線L7で示している。清掃装置2を左右方向に2等分する破線L8が破線L7に一致すればセンタリング完了である。
センタリングにあたり、まず、移動制御部104は、清掃装置2を管PI1~PI3に対して平行な状態とする。具体的には、移動制御部104は、角度特定部102が特定した最新の傾斜角度Δθを取得し、目標となる傾斜角度ΔθTをゼロに設定し、閾値ΔθSを求め、|Δθ|=ΔθSであるか判定する(ST1)。図9の例では、|Δθ|>ΔθSである。この場合、移動制御部104は、|Δθ|=ΔθSとなるまで清掃装置2を左に旋回させる(ST2)。
|Δθ|=ΔθSとなると、移動制御部104は、ずれ量算出部103が算出した最新のずれ量Δyを取得し、|Δy|=ySであるか判定する(ST3)。ySは例えば0に所定のマージンを加えた値とすればよい。マージンは、管のピッチ、管の直径、およびパンダグラフの幅等に応じて決定される。マージンは数mm程度になることが多いと考えられる。図9の例では、|Δy|>ΔySである。この場合、移動制御部104は、Δyをゼロに近付けるための制御を行う。
具体的には、移動制御部104は、清掃装置2を管PI1~PI3の延伸方向に対して傾斜した方向に向けた上で前進または後進させることにより、Δyをゼロに近付ける。この際、前進のみあるいは後進のみでセンタリングすることで、直進走行の開始位置から離れてしまうことも想定される。このため、前進と後進を交互に繰り返すという複数段階の処理でセンタリングすることが好ましい。
前進と後進を交互に繰り返す場合、移動制御部104は、前回の移動が前進による移動であったか、後進による移動であったかを判定する。また、Δyの値から、左方向への移動を行うか、右方向への移動を行うかを判定する。例えば、Δy=0より右側の位置におけるΔyの値を正、Δy=0より左側の位置におけるΔyの値を負で出力するようにした場合、移動制御部104はΔyの値が正であれば左方向、負であれば右方向への移動を行うと判定すればよい。
そして、移動制御部104は、これらの判定結果に基づいて旋回方向を決定する。具体的には、移動制御部104は、左方向に移動する場合で、かつ、前回の移動が前進であった場合には右旋回を行うことを決定する。また、移動制御部104は、左方向に移動する場合で、かつ、前回の移動が後進であった場合には左旋回を行うことを決定する。右方向に移動する場合も同様であり、移動制御部104は、前回の移動が前進であった場合には左旋回、前回の移動が後進であった場合には右旋回を行うことを決定する。図9の例では、右方向に移動する必要があり、かつ、前回の移動が前進であったことを想定しているため、移動制御部104は、左旋回を行うことを決定している(ST4)。
旋回方向を決定した移動制御部104は、決定した方向への旋回指示を清掃装置2に送信する。旋回の目標角度ΔθTは予め決めておけばよい。つまり、移動制御部104は、旋回指示を送信した後、角度特定部102が特定する角度Δθ=ΔθTとなったタイミングで清掃装置2に旋回終了を指示する(ST5)。
上記の旋回の終了後、移動制御部104は、清掃装置2を前進または後進させる。具体的には、前回の移動が前進による移動であれば後進指示を、後進による移動であれば前進指示を清掃装置2に送信する(ST6)。このときの前進または後進時間、つまり清掃装置2の走行時間の決定方法については図10に基づいて後述する。
(走行時間の算出方法)
図10は、センタリング時における清掃装置2の走行時間の算出方法を説明する図である。図10では、清掃装置2を上方から見下ろした様子を示している。なお、清掃装置2は小さめに描画している。また、図10では、互いに平行な管PILとPIRの中央位置を破線L9で示し、清掃装置2を左右方向に2等分する線を破線L10で示している。
図示のように、破線L9とL10のなす角はΔθTであり、清掃装置2の破線L9からのずれ量はΔyである。また、破線L10に沿って前進するときの清掃装置2の中心位置から破線L9上の位置までの移動距離はLPである。
このとき、移動制御部104は、図10に示す数式(3)を用いて、清掃装置2の走行時間を算出してもよい。なお、数式(3)におけるVは清掃装置2の走行速度である。また、数式(3)におけるΔy/sin(ΔθT)=LPである。つまり、数式(3)は、清掃装置2の走行距離をLPではなく、LPを(1+kb)倍したLP*(1+kb)=Δy/sin(ΔθT)*(1+kb)として走行時間を求める、という式である。一般に管の上は滑りやすいため、このように走行距離を割り増しした上で走行時間を求めることにより、LPにより近い走行距離だけ走行させることができる。
上記kbは、バイアス値である。図10に示すように、kb=(kp+kn)/2、つまり、前回の移動時におけるバイアス値kpと今回の移動時におけるバイアス値knの算術平均値をkbとしてもよい。なお、図10に示すように、今回のバイアス値knは、直近の移動後の位置ずれ量Δynと当該移動前の位置ずれ量Δypとの比(Δyn/Δyp)である。
例えば、図10のEX1には、位置ずれ量がΔy1である状態から3段回の移動によりセンタリングする例を示している。なお、EX1では、位置ずれ量がΔy1のときの清掃装置2の中心位置を点P1で示している。また、1段回目の移動後の位置ずれ量をΔy2、このときの清掃装置2の中心位置を点P2で示し、2段回目の移動後の位置ずれ量をΔy3、このときの清掃装置2の中心位置を点P3で示している。
1段回目の移動においては、移動制御部104は、デフォルトのバイアス値kdを用いて数式(3)により走行時間を算出する。ここで、数式(3)におけるΔyにはΔy1を代入すればよい。kdとしては、例えば最後に使用したバイアス値kbを適用してもよいし、予め定めた値を適用してもよい。なお、センタリングが必ず複数段階で行われるようにするために、Δy1よりも小さい所定の定数をΔyに代入してもよい。この定数は、1段階の移動における寄せ幅の上限値を示すものであり、管上のスペース等に応じて予め設定しておけばよい。ずれ量算出部103が算出するずれ量がこの定数以下となるまでは、この定数を用いて走行時間を算出する。
2段回目の移動においては、移動制御部104は、1段回目の移動後の位置ずれ量Δy2と当該移動前の位置ずれ量Δy1との比(Δy2/Δy1)を今回のバイアス値knとして算出する。そして、移動制御部104は、算出したknと前回適用したバイアス値kdとの算術平均値を2段回目の移動用のバイアス値とする。これにより、2段階目の移動においては、1段階目の移動前後のずれ量に応じた移動距離の制御が実現される。
3段回目の移動においては、移動制御部104は、2段回目の移動後の位置ずれ量Δy3と当該移動前の位置ずれ量Δy2との比(Δy3/Δy2)を今回のバイアス値knとして算出する。そして、移動制御部104は、算出したknと前回適用したバイアス値kbとの算術平均値を3段回目の移動用のバイアス値とする。これにより、3段階目の移動においては、2段階目の移動前後のずれ量に応じた移動距離の制御が実現される。
EX1では、3段回の移動により破線L9上、すなわち管PILとPIRの中央位置に到達しているが、移動制御部104は、3段回目の移動でも破線L9上に到達しなければ同様にして4段回目の移動を行う。
このように、移動制御部104は、前進と後進を繰り返しつつ、かつ、バイアス値を更新しつつ、センタリングを行うようにしてもよい。なお、管上の状態等によっては、破線L9を通り過ぎてしまうこともあり得る。このような場合には、移動前後でずれ量Δyの符号が逆転し、kn=(Δyn/Δyp)が負の値になる。この場合、移動制御部104は、kn=0として移動制御を行ってもよい。
以上のように、移動制御部104は、清掃装置2を所定距離だけ移動させる際に、当該所定距離を複数段階で移動させてもよい。そして、この場合、移動制御部104は、先の段階の移動前後のずれ量に応じて、後の段階の移動における移動距離を調整することが好ましい。
清掃装置2を管上で移動させる際、同じ設定速度で同じ時間だけ前進するように制御した場合であっても、管表面の滑りやすさ等に起因して、移動距離にばらつきが生じることがある。そこで、上記の構成によれば、清掃装置2を所定距離だけ移動させる際に、当該所定距離を複数段階で移動させ、先の段階の移動前後のずれ量に応じて、後の段階の移動における移動距離を調整する。これにより、清掃装置2が移動する管の表面状態によらず、清掃装置2を所定距離だけ安定して移動させることが可能になる。
なお、図10の例では直前の移動前後のずれ量に応じて調整を行っているが、それ以前のずれ量も考慮して調整を行うようにしてもよい。例えばEX1における3段回目の移動において、1段階目の調整に用いたバイアス値と、2段階目の調整に用いたバイアス値と、新たに算出したbnとの算術平均値をバイアス値bbとして使用してもよい。また、算術平均値の代わりに、重み付け平均値等を用いてもよい。
(制御の例:直進走行)
センタリングを行い、管と管の中央位置で清掃を行った後、移動制御部104は、管と管の中央位置を維持した状態で清掃装置2を直進走行させる。これにより、同じ管の別の位置を清掃させることができる。
管と管の中央位置を維持した状態で清掃装置2を直進走行させる制御には、例えば角度特定部102が特定する傾斜角度を用いることができる。傾斜角度がゼロの状態を維持することができれば、管と管の中央位置を維持した状態も維持されるためである。
また、直進走行前の清掃装置2と中央位置とのずれ量がゼロである場合やそれに近い値である場合には、最終的なずれ量を許容範囲内に収めることは難しくない。一方、直進走行前の清掃装置2と中央位置とのずれ量が、許容範囲内であるがある程度大きい値である場合には、最終的なずれ量を許容範囲内に収めることの難易度は高くなる。
このため、移動制御部104は、直進走行を行う前に、ずれ量算出部103が算出するずれ量が閾値以下であるか否か判定し、ずれ量が閾値以下である場合と閾値を超える場合とで異なる制御を行ってもよい。例えば、移動制御部104は、前者の場合には清掃装置2を高速で移動させる高速直進モードを適用し、後者の場合には高速直進モードよりも移動速度の遅い低速直進モードを適用してもよい。
(高速直進モード)
高速直進モードを適用する場合、移動制御部104は、移動すべき距離Lを走行速度Vで割ったL/Vを走行時間として算出してもよい。ある。そして、清掃装置2が走行を開始した後、移動制御部104は、角度特定部102が特定する傾斜角度が許容値を超えているか判定する。そして、移動制御部104は、許容値を超えたと判定した場合には、清掃装置2の進行方向の調整を行う。
例えば、清掃装置2が図2に示したようなクローラ22を備えている場合には、移動制御部104は、左右一対のクローラ22のうち一方の速度を増加させるか、あるいは減少させることにより、清掃装置2の進行方向の調整を行うことができる。
ここで、直進走行開始後に角度特定部102が特定した傾斜角度Δθが許容値を超えたとする。この場合、移動制御部104は、傾斜角度が正(つまり図3の例のように清掃装置2が左に傾いている状態)であれば、左側のクローラ22の速度をα倍(α=1+|Δθ|)してもよい。また、移動制御部104は、傾斜角度が負(つまり図3の例とは逆に清掃装置2が右に傾いている状態)であれば、右側のクローラ22の速度をα倍してもよい。
なお、清掃装置2を後進させる場合には、上記とは逆の制御となり、移動制御部104は、傾斜角度が正であれば右側のクローラ22の速度をα倍し、傾斜角度が負であれば左側のクローラ22の速度をα倍する。このような処理を、距離Lの移動が完了するまで繰り返すことにより、比較的高速で移動しつつ、管と管の中央位置を保つことが可能になる。
(低速直進モード)
低速直進モードを適用する場合も、移動制御部104は、高速直進モードと同様に、走行時間をL/Vとして、距離Lの走行が完了するまで、傾斜角度を確認しつつ、傾斜角度が許容値を超えたときに一方のクローラ22の速度をα倍にする制御を行えばよい。ただし、低速直進モードを適用する場合には、移動制御部104は、ずれ量の確認についても行い、ずれ量が許容値を超えたときには清掃装置2の進行方向の調整を行うことが好ましい。
例えば、移動制御部104は、角度特定部102が特定する傾斜角度が許容値を超えている場合には上記の制御を行う一方、角度特定部102が特定する傾斜角度が許容値以下である場合に、ずれ量算出部103が算出するずれ量を確認してもよい。そして、移動制御部104は、ずれ量が許容値を超えている場合には、中央位置への寄せ動作を行ってもよい。なお、移動制御部104は、ずれ量が許容値以下であるときには、傾斜角度の確認処理に戻ればよい。
寄せ動作において、移動制御部104は、上記のずれ量が、清掃装置2が中央位置に対して左側に寄っていることを示す値である場合には、左側のクローラ22の速度をβ倍(β>α)にしてもよい。そして、移動制御部104は、左側のクローラ22の速度をβ倍とした状態で清掃装置2を所定時間走行させた後、右側のクローラ22の速度もβ倍として車体角度を戻すようにしてもよい。また、移動制御部104は、上記のずれ量が、清掃装置2が中央位置に対して右側に寄っていることを示す値である場合には、右側のクローラ22の速度をβ倍にしてもよい。そして、移動制御部104は、右側のクローラ22の速度をβ倍とした状態で清掃装置2を所定時間走行させた後、左側のクローラ22の速度もβ倍として車体角度を戻すようにしてもよい。なお、清掃装置2を後進させる場合には、上記とは逆の制御となり、移動制御部104は、左寄りであれば左側のクローラ22の速度をβ倍した状態で掃装置2を所定時間走行させ、右寄りであれば右側のクローラ22の速度をβ倍した状態で掃装置2を所定時間走行させる。
以上のようにして、左右のクローラ22の速度を異ならせた状態で所定時間走行させることにより、清掃装置2のずれ量を減らすかまたはゼロにすることができる。そして、移動制御部104は、左右のクローラ22の速度を異ならせた状態で清掃装置2を所定時間走行させた後は、左右のクローラ22の速度を同じ速度に戻し、傾斜角度の確認処理に戻ればよい。
(制御の例:列移動)
2本の隣接する管の全体の清掃が終了すると、移動制御部104は、清掃装置2に列移動を行わせる。なお、列移動における列とは、ある管とその管に隣接する管との間の部分を指す。
列移動において、移動制御部104は、角度特定部102が特定する傾斜角度に基づいてまず目標角度ΔθTまで清掃装置2を旋回させ、旋回完了後に前進させる。この前進走行における走行時間は、例えば下記の数式(4)により算出すればよい。なお。Pは隣接する管間の距離、Vは清掃装置2の走行速度である。
(走行時間)=P*sin(ΔθT)/V …(4)
次に、移動制御部104は、角度特定部102が特定する傾斜角度に基づいて清掃装置2の傾斜角度をゼロに戻す。ここで、列移動前に清掃装置2が列の中央に位置しており、かつ、上記の走行制御により清掃装置2がP*sin(ΔθT)だけ前進していたとする。この場合、傾斜角度をゼロに戻した時点における、移動後の列の中央位置からの清掃装置2のずれ量はP*{cos(ΔθT)}2となる。
次に、移動制御部104は、角度特定部102が特定する傾斜角度に基づいて清掃装置2を(90-ΔθT)だけ旋回させる。このように、移動制御部104は、最初と2回目の旋回角度が90°異なるように清掃装置2を旋回させてもよい。そして、移動制御部104は、上記の旋回完了後に清掃装置2を後進させる。
ここで、列移動前に清掃装置2が列の中央に位置しており、かつ、最初の前進走行により清掃装置2がP*sin(ΔθT)だけ前進していたとすると、清掃装置2をP*cos(ΔθT)だけ後進させれば、後進後における清掃装置2の位置は、列移動前の清掃装置2の位置から真横にPだけ移動した位置になる。よって、後進走行における走行時間は、下記の数式(5)により算出される。
(走行時間)=P*cos(ΔθT)/V …(5)
以上のような旋回、前進、旋回、後進の組み合わせにより列移動が実現される。なお、最初の旋回後に清掃装置2を後進させてもよく、この場合、2回目の旋回後には清掃装置2を前進させればよい。また、旋回方向は、清掃装置2を何れの列に移動させるか、および清掃装置2の進行方向に応じて決定すればよい。例えば、左側の列に移動させる場合で、かつ最初の旋回後に清掃装置2を前進させる場合には、左に旋回すればよい。
なお、上記の走行時間だけ清掃装置2を前進または後進させても、管表面の滑りやすさ等に起因して、清掃装置2が所望の位置まで移動しないこともあり得る。このため、ずれ量算出部103は、初回の走行後に、移動後の列の中央位置からのずれ量Δyを算出してもよい。そして、移動制御部104は、ずれ量算出部103が算出したずれ量Δyに応じて2回目の走行時間を調整してもよい。つまり、移動制御部104は、2回目の走行時間を、1回目の走行終了後に算出されたずれ量Δyを用いて算出してもよい。
また、以上のような処理が終了すると、ずれ量算出部103が、移動後の列の中央位置からのずれ量Δyを算出する。ここで、そのずれ量Δyが許容範囲を超えていれば、上述のセンタリングが行われる。
(清掃装置の制御開始前の処理)
例えば、撮影装置271による撮影が正常に行われていない場合等には、角度特定部102は妥当な値の傾斜角度を特定することはできず、移動制御部104は妥当な制御を行うことができない。
そこで、移動制御部104は、上述したような各種制御に先立って、角度特定部102が特定する傾斜角度を取得し、その傾斜角度が予め設定された無効範囲内の値であるか否かを判定してもよい。そして、移動制御部104は、角度特定部102から時系列で取得した傾斜角度が、所定回数続けて無効範囲内の値であれば異常信号を送信して、清掃装置2の制御を終了してもよい。これにより、意図しない制御が行われることを防ぐ事ができる。
(清掃装置に実行させる動作の決定について)
上述のように、制御装置1は、センタリング、列移動、および直進走行等の動作を行わせることができる。これらの動作の何れを行わせるかは、制御装置1が判定する構成としてもよいし、制御装置1の上流側に別の制御装置を設け、その制御装置により判定する構成としてもよい。後者の場合、上流側の制御装置は、例えばオペレータの操作に従って、清掃装置2に行わせる動作を決定し、決定した動作を制御装置1に通知する。制御装置1は、この通知に従って清掃装置2を動作させ、動作完了すると完了通知を上流側の制御装置に通知する。上流側の制御装置は、完了通知の受信後に、次に行わせる動作を決定し、決定した動作を制御装置1に通知する。このような処理の繰り返しにより、清掃装置2による管の清掃が実現できる。なお、パンタグラフ25の伸縮の制御や、放水の制御等のずれ量や傾斜角度を用いない制御は、制御装置1が行うようにしてもよいし、上流側の制御装置が行うようにしてもよい。
(処理の流れ:傾斜角度に基づく制御)
制御装置1が実行する処理のうち、角度特定部102が特定する傾斜角度に基づく制御を図11に基づいて説明する。図11は、傾斜角度に基づく清掃装置2の制御方法の一例を示すフローチャートである。なお、ここでは、清掃装置2が平行に配列した複数の水管上に配置されており、清掃装置2に取り付けられた撮影装置271により水管の撮影が行われていることを想定している。
S11では、管検出部101が、清掃装置2に取り付けられた撮影装置271により撮影された画像を取得する。そして、S12では、管検出部101は、S11で取得した画像から水管を検出する。水管の検出方法については既に説明したとおりであるから、ここでは説明を繰り返さない。
S13では、角度特定部102が、S12で検出された管の傾斜角度を特定する。画像中で検出された管の傾斜角度を特定する方法については既に説明したとおりであるから、ここでは説明を繰り返さない。
S14では、移動制御部104が、S13で特定された傾斜角度に基づき、清掃装置2に対する制御を行うか否かを判定する。ここで制御を行わないと判定された場合(S14でNO)には、図11の処理は終了となる。一方、制御を行うと判定された場合(S14でYES)にはS15の処理に進み、移動制御部104は、S13で特定された傾斜角度に基づいて清掃装置2に対する制御を行い、これにより図11の処理は終了となる。
なお、S15の制御内容としては様々なものが適用でき、S14の判定基準はS15の制御内容に応じて適宜設定すればよい。例えば、移動制御部104は、S15において清掃装置2の傾斜角度をΔθTにするための旋回制御を行う場合、S14ではS13で特定された傾斜角度がΔθTから許容範囲内となっていれば制御不要、ΔθTから許容範囲内となっていなければ制御要と判定する。
また、例えば、移動制御部104は、清掃装置2に直進走行を行わせているときには、S14では、S13で特定された傾斜角度が許容値以内であれば制御不要、許容値を超えていれば制御要と判定する。そして、S15では、移動制御部104は、S13で特定された傾斜角度がゼロになるかまたはゼロに近付くように、クローラ22の速度を調整する。
以上のように、制御装置1が実行する清掃装置2の制御方法は、管の表面を清掃する清掃装置2に取り付けられた撮影装置271により撮影された画像から管を検出する管検出ステップ(S12)と、管検出ステップで検出した管の傾斜角度を特定する角度特定ステップ(S13)と、この傾斜角度に基づいて清掃装置2の移動制御を行う移動制御ステップ(S15)と、を含む。この制御方法によれば、撮影装置271により撮影された画像に基づく、清掃装置2の汎用的な移動制御が実現できる。
(処理の流れ:ずれ量に基づく制御)
制御装置1が実行する処理のうち、ずれ量算出部103が特定するずれ量に基づく制御を図12に基づいて説明する。図12は、ずれ量に基づく清掃装置2の制御方法の一例を示すフローチャートである。なお、ここでは、清掃装置2が平行に配列した複数の水管のうち、隣接する一組の水管の間に位置していることを想定している。
S21では、ずれ量算出部103が、清掃装置2の左右対称な位置に取り付けられた一組の近接センサ272Lおよび272Rの検出値を取得する。そして、S22では、ずれ量算出部103は、S21で取得した検出値に基づいて、清掃装置2の所定の基準位置からのずれ量を算出する。例えば、ずれ量算出部103は、清掃装置2の左右方向の中央位置と、平行に配列された複数の管と管の間の中央位置とのずれ量を算出する。
このずれ量の算出においては、上述したように、近接センサ272Lおよび272Rの両方が水管を検出している場合(両方の検出値が最大値未満である場合)と、一方のみが水管を検出している場合(一方の検出値が最大値である場合)とで、ずれ量算出部103がずれ量の算出に用いる近似式が異なる。
具体的には、ずれ量算出部103は、近接センサ272Lおよび272Rの両方の検出値が最大値未満である場合には、上述の数式(1)にそれら検出値の差を代入してずれ量を算出する。一方、ずれ量算出部103は、近接センサ272Lおよび272Rの一方の検出値が最大値であり、他方の検出値が最大値未満である場合には、上述の数式(2)にそれら検出値の差を代入してずれ量を算出する。
S23では、移動制御部104が、S22で算出されたずれ量に基づき、清掃装置2に対する制御を行うか否かを判定する。ここで制御を行わないと判定された場合(S23でNO)には、図12の処理は終了となる。一方、制御を行うと判定された場合(S23でYES)にはS24の処理に進み、移動制御部104は、S22で算出されたずれ量に基づいて清掃装置2に対する制御を行い、これにより図12の処理は終了となる。
なお、S24の制御内容としては様々なものが適用でき、S23の判定基準はS24の制御内容に応じて適宜設定すればよい。例えば、移動制御部104は、センタリング等を行う際には、S23では、S22で算出したずれ量が許容値以内であれば制御不要、許容値を超えていれば制御要と判定する。そして、S24では、移動制御部104は、ずれ量を小さくするための制御を行う。例えば、移動制御部104は、清掃装置2を所定の傾斜角度まで旋回させた上で前進または後進させる制御、あるいは左右のクローラ22のうち一方の速度を速くまたは遅くする制御を行う。
以上のように、制御装置1が実行する清掃装置2の制御方法は、平行に配列された複数の管を清掃する清掃装置2の左右対称な位置に取り付けられた、管を検出する一組の近接センサ272Lおよび272Rの検出値に基づいて、清掃装置2の所定の基準位置からのずれ量を算出するずれ量算出ステップ(S22)と、このずれ量に基づいて清掃装置2の移動制御を行う移動制御ステップ(S24)と、を含む。また、一組の近接センサ272Lおよび272Rは、一方が管の真上の位置となるときに、他方が当該管に隣接する管の検出限界の位置となるように配置されている。そして、ずれ量算出ステップでは、一組の近接センサ272Lおよび272Rの検出値の差と、ずれ量との関係を近似した近似式である数式(2)、または近接センサ272Lおよび272Rの検出値の差と、ずれ量との関係を一次関数で近似した近似式である数式(1)を用いてずれ量を算出する。これにより、清掃装置2の汎用的な移動制御を実現することができる。また、簡易な近似式を用いて、簡易な演算によりずれ量を算出することができる。
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
本実施形態では、ずれ量算出部103が、近接センサ272の検出値ではなく、管検出部101の検出結果に基づいて、清掃装置2の所定の基準位置からのずれ量を算出する例を図13に基づいて説明する。図13は、管検出部101の検出結果に基づくずれ量の算出例を示す図である。
なお、本実施形態の制御装置の構成は、ずれ量算出部103の実行する処理の内容が変わるだけで、実施形態1の制御装置1の構成(図1参照)と同様であるから、本実施形態の制御装置も制御装置1と呼ぶ。また、本実施形態の清掃装置も、実施形態1の清掃装置2と同様であるから、本実施形態の清掃装置も清掃装置2と呼ぶ。ただし、本実施形態の清掃装置2は、近接センサ272を備えている必要がない点で実施形態1の清掃装置2と相違している。
実施形態1で説明したように、管検出部101は、清掃装置2に取り付けられた撮影装置271により撮影された画像から管を検出する。図13の例では、撮影装置271により撮影された画像IMG6から、管の輪郭線が4本検出されている。
より詳細には、画像IMG6には、管PI11~PI14が写っており、このうち管PI11とPI14が清掃装置2との接触面(最上段)に位置し、管PI12とPI13はその奥側(二段目)に位置している。そして、管PI11の右端の輪郭線とその上端点p1、管PI12の右端の輪郭線とその上端点p2、管PI13の左端の輪郭線とその上端点p3、管PI14の左端の輪郭線とその上端点p4が検出されている。
撮影装置271が清掃装置2の左右方向の中央位置に配置されている場合、最上段に位置する管PIとPI14に挟まれる領域(以下、管間領域と呼ぶ)の左右方向の中央位置と、画像IMG6の左右方向の中央位置とのずれ量が、清掃装置2のずれ量を表す。このため、ずれ量算出部103は、ずれ量を算出するにあたり、画像IMG6から管間領域を特定すればよい。
管間領域を特定するために、ずれ量算出部103は、角度特定部102が特定した傾斜角度と上端点p1~p4の座標値とを用いて、上端点p1~p4に対応する下端点を特定して、上端点と下端点で規定される矩形領域を特定する。そして、ずれ量算出部103は、特定した矩形領域が管間領域であるか否かを判定する。
例えば、図13のIMG7では、ずれ量算出部103は、上端点p4に対応する下端点p6を特定した後、上端点p4に隣接する上端点p3に対応する下端点p5を特定し、これにより4点p3、p4、p6、p5で規定される矩形領域を特定している。
次に、ずれ量算出部103は、IMG8に示すように、特定した矩形領域外を黒色でマスクした上で、グレースケールに変換する。そして、ずれ量算出部103は、矩形領域内の画素値のヒストグラムを計算し、中央値が閾値(例えば100)より小さければ管間領域であると判定する。通常、最上段の管PI11、PI14が写る領域は、管間領域よりも画素値が高くなるため、上記の判定により、最上段の管PI11、PI14が写る領域と、管間領域とを区別することができる。この例では、4点p3、p4、p6、p5で規定される矩形領域は管間領域と判定されている。
同様に、図13のIMG9では、ずれ量算出部103は、上端点p1に対応する下端点p7を特定している。ここで、ずれ量算出部103は、下端点p7を特定した後、上端点p2に対応する下端点は特定することなく、上端点p2の隣の上端点p3に対応する下端点p8を特定し、これにより4点p1、p3、p8、p7で規定される矩形領域を特定している。
このように、ずれ量算出部103は、ある上端点と、それに隣接する上端点との距離が閾値以下である場合、隣接する上端点については下端点を特定せず、ある上端点についてのみ下端点を特定するようにしてもよい。これは、近接した2つの端点が何れも管の端部である可能性は低いためである。
ずれ量算出部103は、4点p1、p3、p8、p7で規定される矩形領域を特定した後、IMG8と同様に、特定した矩形領域外を黒色でマスクした上で、グレースケールに変換する(IMG10)。そして、ずれ量算出部103は、矩形領域内の画素値のヒストグラムを計算し、中央値が閾値より小さければ管間領域であると判定する。この例では、4点p1、p3、p8、p7で規定される矩形領域は管間領域と判定されている。このような処理は、検出された上端点に基づいて形成される全ての矩形領域について行われる。
以上のようにして、検出された上端点に基づく矩形領域の特定と、その矩形領域が管間領域であるか否かの判定とを終えると、ずれ量算出部103は、特定した管間領域を統合する。具体的には、ずれ量算出部103は、特定した管間領域の頂点の座標のうち、最も左上寄りに位置する座標と、最も左下寄りに位置する座標と、最も右下寄りに位置する座標と、最も右上寄りに位置する座標とを特定し、それらの座標で規定される領域を最終的な管間領域とする。
例えば、図13の例では、ずれ量算出部103は、上述のようにして特定された2つの管間領域(「p3、p4、p6、p5」と「p1、p3、p8、p7」)の頂点の中から、IMG11に示すようにp1、p7、p6、p4の4つを特定する。これにより、最終的な管間領域が4点p1、p7、p6、p4で規定される矩形領域であると特定される。
最後に、ずれ量算出部103は、図13の画像IMG12に示すように、点p1と点p4の中点と、点p7と点p6の中点とを求め、それら中点を結ぶ線分L11と、画像IMG12を左右方向に二等分する線分L12との距離Δyをずれ量として算出する。
以上のように、制御装置1は、管検出部101の検出結果に基づいて、清掃装置2の基準位置からのずれ量を算出するずれ量算出部103を備え、移動制御部104は、角度特定部102が特定する傾斜角度と、ずれ量算出部103が算出するずれ量とに基づいて清掃装置2の移動制御を行う構成であってもよい。
清掃装置2に取り付けられた撮影装置271により撮影された画像に写る管の位置は、清掃装置2と管との位置関係を反映している。よって、この画像から管を検出することにより、清掃装置2のずれ量を算出することができる。そして、このずれ量を用いて移動制御を行うことにより、清掃装置2を管に対して所定の位置に位置合わせすることができる。
〔変形例〕
上述の各実施形態で説明した各処理の実行主体は任意であり、上述の例に限られない。つまり、上述の各実施形態で説明した各処理を実行可能であれば、装置構成は任意である。例えば、制御装置1が実行する処理のうち、傾斜角度を特定する処理と、ずれ量を算出する処理と、清掃装置2の動作制御を行う処理とをそれぞれ別の情報処理装置に分担して実行させてもよい。また、例えば、1台目の制御装置1が傾斜角度を特定する処理と特定した傾斜角度に基づいて清掃装置2の動作制御を行う処理とを行い、2台目の制御装置1がずれ量を算出する処理と、算出したずれ量に基づいて清掃装置2の動作制御を行う処理とを行う構成としてもよい。
また、制御装置1を清掃装置2に搭載してもよい。つまり、制御装置1を備え、制御装置1の制御に従って移動する清掃装置2も本発明の範疇に含まれる。制御装置1を備える清掃装置2によれば、単体で管上の所定位置に移動することができる。
〔ソフトウェアによる実現例〕
制御装置1(以下、「装置」と呼ぶ)の機能は、当該装置としてコンピュータを機能させるためのプログラムであって、当該装置の各制御ブロック(特に制御部10に含まれる各部)としてコンピュータを機能させるためのプログラム(制御プログラム)により実現することができる。
この場合、上記装置は、上記プログラムを実行するためのハードウェアとして、少なくとも1つの制御装置(例えばプロセッサ)と少なくとも1つの記憶装置(例えばメモリ)を有するコンピュータを備えている。この制御装置と記憶装置により上記プログラムを実行することにより、上記各実施形態で説明した各機能が実現される。
上記プログラムは、一時的ではなく、コンピュータ読み取り可能な、1または複数の記録媒体に記録されていてもよい。この記録媒体は、上記装置が備えていてもよいし、備えていなくてもよい。後者の場合、上記プログラムは、有線または無線の任意の伝送媒体を介して上記装置に供給されてもよい。
また、上記各制御ブロックの機能の一部または全部は、論理回路により実現することも可能である。例えば、上記各制御ブロックとして機能する論理回路が形成された集積回路も本発明の範疇に含まれる。この他にも、例えば量子コンピュータにより上記各制御ブロックの機能を実現することも可能である。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。