以下、本発明の一実施の形態の車体動揺補正装置および車体動揺補正方法、ならびにプログラムについて、図1~図35を参照しながら説明する。
図1を参照して、本発明の一実施例である車体動揺補正装置および車体動揺補正方法、ならびにプログラムにおいて用いられる三次元点群を取得するための検測車両1について説明する。
図1に示されるように、検測車両1には、線路周辺の地物の形状を表す3次元点群データを生成するために、鉄道沿線の地物の形状を3次元点群として取得するためのセンサ11~14が備えられている。センサ11~14の撮像範囲は、図1において、それぞれ、撮像範囲11a~14aとして示されており、例えば、建築限界の支障判定に用いる3次元点群データを取得することができる。また、検測車両1には、レール17およびレール18を含む位置を撮像可能なセンサ15およびセンサ16が、さらに備えられている。センサ15および16の撮像範囲は、図1において、それぞれ、撮像範囲15aおよび16aとして示されており、レール17および18、ならびに、道床部分を撮像し、レールのロール角を算出するために用いる3次元点群データを取得することができる。
すなわち、センサ15および16は、図2に示されるように、レール17および18の内部およびレール17および18の外部の所定幅の領域のレールおよび道床部分を十分検出可能な撮影角を有している。この撮影角は、センサ15および16が検測車両1に備えられている位置にもよるが、ここでは、センサ15および16が、検測車両1において、レール17および18の外部の所定幅だけ離れている位置に備えられているとして、その撮像角度を、センサ15および16を結ぶ直線を0°に対応するものとして、それぞれ、90°~155°、および、25°~90°とする。
ここでは、道床部分の3次元点群を取得するセンサを、センサ15および16の2つのセンサであるものとして説明したが、道床部分の3次元点群を取得するセンサは、1つであっても、3つ以上であってもよい。
図3は、車体動揺補正装置31が有する機能を示す機能ブロック図である。
図3の車体動揺補正装置31は、点群データ取得部41、座標変換部42、レール検出部43、検出結果判定部44、道床検出部45、ロール角算出部46、および、車体動揺補正処理部47を含んで構成され、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、センサ15および16により撮像されたデータを基づいて、ロール角を算出し、センサ11~14により撮像されたデータに対して、車体動揺補正を実行する。
点群データ取得部41は、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、座標変換部42に供給する。
座標変換部42は、点群データ取得部41から供給された3次元点群を、レール17および18の長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換する。そして、座標変換部42は、図1を用いて説明したセンサ11~14により取得された部分に対応する3次元点群の座標データを、車体動揺補正処理部47に供給する。また、座標変換部42は、図2を用いて説明したセンサ15および16により取得された道床部分の3次元点群の座標データを、レール17および18に対して直角方向の1スキャンごとに、レール検出部43および道床検出部45に供給する。この時、高さ方向の座標軸の0を、レール17および18の頭高さに対応する位置とし、マクラギ方向の座標軸の0を、レール17および18の中央位置とすると、これ以降の処理における演算処理が容易になり、好適である。なお、点群データ取得部41で取得する3次元点群の座標系が、レール長手方向、マクラギ方向、および、高さ方向を軸としている場合には、座標変換部42の機能は省略可能である。
センサ15および16の撮像範囲内に、例えば、雑草や、検測車両1をけん引するために用いられるロープやワイヤ等の障害物等がない場合、座標変換部42から供給されるデータは、例えば、図4に示されるように、レールや道床部分を正しく表す3次元点群の座標データとなる。また、センサ15および16の撮像範囲内に、雑草や、検測車両1をけん引するために用いられるロープやワイヤ等の障害物がある場合、座標変換部42から供給されるデータは、例えば、図5に示されるように、レールや道床部分以外の障害物の位置を示す点を含む3次元点群の座標データとなる。図4に示されるように、センサ15および16の撮像範囲内に、例えば、雑草や、検測車両1をけん引するために用いられるロープやワイヤ等の障害物等がない場合、レール高さの検出により、ロール角を高精度に検出することができる。これに対して、図5に示されるように、センサ15および16の撮像範囲内に、雑草や、検測車両1をけん引するために用いられるロープやワイヤ等の障害物がある場合、レール高さの検出では、ロール角を高精度に検出することはできない。
図3に戻り、レール検出部43は、座標変換部42から供給された3次元点群の座標データに基づいて、レール17および18の内側のエッジ部分の座標を検出し、検出結果を、検出結果判定部44に供給する。
図6~図9を参照し、レール検出部43によるレール検出について説明する。
レール検出部43は、座標変換部42から供給された3次元点群の座標データのうち、いずれか一方のレールの内側エッジ部分を含む可能性が高い連続する6点を抽出する。レール検出部43は、レール17または18のいずれのレールの内側エッジから検出してもよいが、ここでは、まず、レール17の内側エッジ部分を含む連続する6点を抽出するものとして説明する。また、高さ方向の座標軸の0を、レール17の頭高さに対応する位置とし、マクラギ方向の座標軸の0を、レール17および18の中央位置とした座標系において、抽出された連続する6点を、(x1,y1),(x2,y2), (x3,y3), (x4,y4), (x5,y5), (x6,y6)とする。
まず、図6に示されるように、抽出された連続する6点の高さy1,y2,y3,y4,y5,y6yのうち、レール外側の4点y 1~y4の差がすべて20mm以下であり、-100mm<y3<100mm、かつ、y3,y4のいずれか大きい方に対し、y5,y6のどちらかが-30mm以下である場合、レール検出部43は、y3とy4の最大値をymとして、 (x4,ym)をレール位置として検出する。
次に、図7に示されるように、何らかの障害物で、レール17の一部(x1,y1),(x2,y2)が検出できないが、内側エッジ部分を含む他の部分(x3,y3), (x4,y4), (x5,y5), (x6,y6)が検出可能である場合、y3とy4の差が20mm以下であり、-100mm<y3<100mm、かつ、y3,y4のいずれか大きい方に対し、y5,y6のどちらかが-30mm以下である場合、レール検出部43は、y3とy4の最大値をymとして、 (x4,ym)をレール位置として検出する。
次に、図8に示されるように、何らかの障害物で、内側エッジ部分を含むレール17の一部(x5,y5), (x6,y6)が検出できないが、他の部分(x1,y1),(x2,y2),(x3,y3), (x4,y4)が検出可能である場合、レール検出部43は、この位置のレール17の内側エッジの検出を、他方、すなわち、レール18の位置の検出結果待ち状態とし、レール長手方向に同一座標のレール18の内側エッジの位置が検出できた場合、その位置からマクラギ方向に1.067+0.05m離れた位置をxb、y3とy4の最大値をymとして、(xb,ym) をレール位置として検出する。
次に、図9に示されるように、何らかの障害物で、レール17の全体が検出できなかった場合、レール検出部43は、この位置のレール17の内側エッジの位置の検出ができなかったものとする。なお、レール検出部43は、暫定的な検出結果として、他方、すなわち、レール18の検出結果を用いて、レール18のレール長手方向に同一座標となる位置から1.067+0.05m離れた位置をxb、レール傾きが1スキャン前と同じとなる値をybとして、(xb,yb)をレール位置として仮に検出するものとしてもよい。
そして、レール検出部43は、図6~図9を用いて説明した場合と同様にして、レール18の内側エッジの位置の検出を実行する。
図3に戻り、検出結果判定部44は、レール検出部43から供給されたレール検出結果に基づいて、レール検出部43により検出されたレール高さの情報、すなわち、図6および図7を用いて説明した場合、ならびに、図8を用いて説明した検出状態において、他方のレール位置が検出できた場合のレール高さの情報を、ロール角算出部46に供給する。また、検出結果判定部44は、レール検出部43から供給されたレール検出結果に基づいて、レール位置が検出できなかった場合、すなわち、図8を用いて説明した検出状態において、他方のレール位置も検出できなかった場合、および、図9を用いて説明した場合、道床検出部45を制御し、対応するスキャン位置において、道床の傾きを検出する処理を実行させる。
道床検出部45は、座標変換部42から供給された3次元点群の座標データに基づいて、道床の傾きを検出し、ロール角算出部46に供給する。道床検出部45の機能構成および動作等の例についての詳細は、図11~図26を用いて後述する。
ロール角算出部46は、検出結果判定部44から供給された、レール17および18のレール高さの情報、および、道床検出部45から供給された道床の傾きに基づいて、ロール角を算出し、車体動揺補正処理部47に供給する。ロール角算出部46は、レール17および18のレール高さがいずれも検出できた場合、例えば、図10に示されるように、一方のレール位置を(X1,Y1)他方のレール位置を(X2,Y2)として、ロール角φを、φ=tan-1((X1- X2)/( Y1- Y2))から算出する。また、ロール角算出部46は、レール17および18のレール高さの少なくともいずれか一方が検出できなかった場合、道床検出部45により供給された道床の傾きを、対応するスキャン位置のロール角とする。
車体動揺補正処理部47は、座標変換部42から供給された、図1を用いて説明したセンサ11~14により取得された部分に対応する3次元点群の座標データが含む車体の動揺を、ロール角算出部46から供給されたロール角の算出結果に基づいて補正し、補正結果を出力する。
このような構成を有することにより、車体動揺補正装置31は、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、3次元点群を、レール長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換し、レール17および18の内側のエッジ部分の座標を検出し、レール17および18の内側のエッジ部分の座標を検出することができなかった位置においては、道床の傾きを検出し、これらに基づいて、ロール角を算出して、車体の動揺を補正する。したがって、車体動揺補正装置31は、多くのセンサ等を用いることなく、雑草等の障害物が存在した場合でも、精度よく車体のロール角を算出して、3次元点群データに含まれる車体の動揺を補正することができる。
図11は、図3の道床検出部45の第1の例である道床検出部45-1が有する機能を示す機能ブロック図である。道床検出部45-1は、検出領域抽出部61、近似直線算出部62、近似直線-点群残差算出部63、および、検出データ決定部64を含んで構成されている。
検出領域抽出部61は、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データのうち、レールや分岐器部分を含まず、かつ、マクラギやバラストを含む道床部分を含む3次元点群の座標データを、それぞれ1スキャン分ずつ抽出して、近似直線算出部62に供給する。
具体的には、検出領域抽出部61は、センサ15および16により取得された道床部分のそれぞれの3次元点群の座標データのうち、例えば、図12に示されるように、レールが検出されると推定される所定の座標から20cm程度内側で、かつ、レール高さと推定される所定の座標から10cm低い位置から25cm低い位置までの所定の検出範囲の3次元点群の座標データを、レールや分岐器部分を含まず、かつ、マクラギやバラストを含む道床部分を含む3次元点群の座標データとして、それぞれ1スキャン分ずつ抽出する。
図11に戻って、近似直線算出部62は、検出領域抽出部61から供給された3次元点群の座標データの1スキャン分の座標値に基づいて、例えば、最小二乗法などを用いて、近似直線を算出し、検出領域抽出部61から供給された3次元点群の座標データの1スキャン分の座標値、および、算出した近似直線を、近似直線-点群残差算出部63に供給する。
近似直線-点群残差算出部63は、近似直線算出部62から供給された、3次元点群の座標データの1スキャン分の座標値と近似直線との残差を算出し、その残差の合計を、検出データ決定部64に供給する。
検出データ決定部64は、近似直線算出部62から供給された、3次元点群の座標データの1スキャン分の座標値と近似直線との残差の合計値に基づいて、測定箇所に対応するスキャンの前後xスキャン(xはx≧0の整数である、以下同様)を含む2x+1スキャンの内から、マクラギ部分をスキャンした3次元点群の座標データを検出し、マクラギ部分の3次元点群の座標データの近似直線に基づいて、道床の傾きを算出し、ロール角算出部46に供給する。
図13に示されるように、マクラギに対応する部分をスキャンした3次元点群の座標データは、近似直線算出部62により算出された近似直線との残差の合計が少なくなり、バラストに対応する部分をスキャンした3次元点群の座標データは、近似直線算出部62により算出された近似直線との残差の合計が大きくなる。
また、マクラギ幅、バラスト間隔、および、スキャン幅に基づいて、センサ15および16がマクラギ上をスキャンする確率を求めることが可能である。検出データ決定部64は、例えば、マクラギ上をスキャンする確率が1/3程度である場合、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャンとする場合のxの値をx=4とすることにより、検出結果にマクラギ部分を確実に含むことができる。
このように、図3の道床検出部45の第1の例である道床検出部45-1は、検出位置近傍の3次元点群の座標データのうち、近似直線との残差の合計値が小さい、すなわち、マクラギ部分をスキャンした座標データに基づいて、道床の傾きを検出することが可能となる。
次に、図14は、図3の道床検出部45の第2の例である道床検出部45-2が有する機能を示す機能ブロック図である。
図14の道床検出部45-2においては、図11を用いて説明した道床検出部45-1が有する機能と同様の部分においては、同一の記号を付し、その詳細な説明は省略する。すなわち、図14の道床検出部45-2は、図11を用いて説明した道床検出部45-1に対し、検出領域抽出部61により抽出された、センサ15およびセンサ16のそれぞれにより撮像されて取得された3次元点群の座標データを統合するデータ統合部71が新たに設けられている以外は、図11を用いて説明した道床検出部45-1と同様の機能を有するものである。
データ統合部71は、検出領域抽出部61により抽出された3次元点群の座標データにおいて、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合し、近似直線算出部62に供給する。図14の道床検出部45-2において、近似直線算出部62、近似直線-点群残差算出部63、および、検出データ決定部64が実行する処理は、図11を用いて説明した道床検出部45-1における場合と同様である。
図15は、図11を用いて説明した道床検出部45-1により検出された道床の傾きの算出結果と、図14を用いて説明した道床検出部45-2により検出された道床の傾きの算出結果を示す図である。図15に示されるように、図11を用いて説明した道床検出部45-1により検出された道床の傾きの算出結果よりも、図14を用いて説明した道床検出部45-2により検出された道床の傾きの算出結果の方が、飛び値が少ないことがわかる。したがって、検出領域抽出部61により抽出された3次元点群の座標データにおいて、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合した後に、近似直線を算出することにより、より的確に、道床の傾きを算出することができることが分かる。
このように、図3の道床検出部45の第2の例である道床検出部45-2は、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合することにより、検出位置近傍のマクラギ部分をスキャンした3次元点群の座標データに基づいて、道床の傾きを、より精度よく検出することが可能となる。
図16は、図3の道床検出部45の第3の例である道床検出部45-3が有する機能を示す機能ブロック図である。道床検出部45-3は、検出領域抽出部61、データ統合部71、隣接点傾き合計算出部81、検出データ決定部82、および、近似直線算出部83を含んで構成されている。
検出領域抽出部61は、図12を用いて説明した場合と同様にして、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データのうち、レールや分岐器部分を含まず、かつ、マクラギやバラストを含む道床部分を含む3次元点群の座標データを、それぞれ1スキャン分ずつ抽出して、データ統合部71に供給する。
データ統合部71は、図14を用いて説明した道床検出部45-2のデータ統合部71と同様に、検出領域抽出部61により抽出された3次元点群の座標データにおいて、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合し、隣接点傾き合計算出部81に供給する。なお、データ統合部71を設けることにより、上述したように、より正確にデータを検出することが可能となるが、必要に応じて、データ統合部71を省略することは可能である。
隣接点傾き合計算出部81は、データ統合部71から供給された1スキャン分の統合された座標データの隣接点の傾きの合計値を、次の数式(1)を用いて算出し、算出結果を検出データ決定部82に供給するとともに、データ統合部71から供給された1スキャン分の統合された座標データを、近似直線算出部83に供給する。
図17に示されるように、例えば、マクラギ上をスキャンした場合の1スキャン分の統合された座標データにおいては、隣接点の傾きの合計値は小さな値となり、バラスト上をスキャンした場合の1スキャン分の統合された座標データにおいては、隣接点の傾きの合計値は大きな値となる。
検出データ決定部82は、隣接点傾き合計算出部81により算出された、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャンの隣接点の傾きの合計値のうち、最も合計値が小さいものを検出データとして決定し、近似直線算出部83に、対応するスキャンを、測定箇所の傾きを求めるための近似直線の算出データとして用いることを通知する。
近似直線算出部83は、検出データ決定部82からの通知に基づいて、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャンの隣接点の傾きの合計値のうち、最も合計値が小さい1スキャン分の統合された座標データに基づいて、例えば、最小二乗法などを用いて、近似直線を算出し、近似直線の傾きを道床の傾きとして、ロール角算出部46に供給する。
このように、図3の道床検出部45の第3の例である道床検出部45-3は、検出位置近傍のマクラギ部分をスキャンした3次元点群の座標データのうち、隣接点との傾きの合計値が小さいスキャンの座標データに基づいて、道床の傾きを検出することが可能となる。
図18は、図3の道床検出部45の第4の例である道床検出部45-4が有する機能を示す機能ブロック図である。道床検出部45-4は、点群座標データ取得部91、データ統合部71、第1の点群抽出部92、中央値算出部93、第2の点群抽出部94、および、近似直線算出部95を含んで構成されている。
点群座標データ取得部91は、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データを取得し、1スキャン分ずつ抽出して、データ統合部71に供給する。
データ統合部71は、図14を用いて説明した道床検出部45-2のデータ統合部71と同様に、点群座標データ取得部91により抽出された3次元点群の座標データを統合し、第1の点群抽出部92に供給する。なお、データ統合部71を設けることにより、上述したように、より正確にデータを検出することが可能となるが、必要に応じて、データ統合部71を省略することは可能である。
第1の点群抽出部92は、データ統合部71から供給された座標データのうち、レール17および18の外側部分を所定幅含み、かつ、マクラギやバラストを含む道床部分を含む、所定領域の座標データを抽出し、中央値算出部93に供給する。第1の点群抽出部92は、例えば、図19に示されるように、レール17および18の外側部分を所定幅含むマクラギ長さ相当の幅、マクラギやバラストを含む道床部分を含むレール面と道床面を内包する範囲の高さに対応する領域の座標データを抽出することができる。この領域は、例えば、幅2.0m、高さ0.4mなどにすることができる。この抽出領域の大きさは、実験的経験的に定められる値である。
中央値算出部93は、第1の点群抽出部92から供給された所定領域の座標データの高さ成分の中央値を算出し、第1の点群抽出部92から供給された所定領域の座標データとともに、第2の点群抽出部94に供給する。
第2の点群抽出部94は、中央値算出部93から供給された所定領域の座標データのうち、中央値算出部93により算出された中央値から、レール17および18の高さを含まないと想定される所定の幅に含まれる座標データのみを抽出し、近似直線算出部95に供給する。第2の点群抽出部94は、例えば、中央値算出部93により算出された中央値から、道床面の凹凸として想定しうる範囲、例えば、±0.05mの幅に含まれる座標データのみを抽出し、近似直線算出部95に供給する。この抽出領域の大きさは、レール頭を検出した点群座標データを、第2の点群抽出部94による抽出から外すために、実験的経験的に定められる値である。
近似直線算出部95は、第2の点群抽出部94から供給された、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャン分の座標データを統合する。マクラギ幅、バラスト間隔、および、スキャン幅に基づいて、センサ15および16がマクラギ上をスキャンする確率を求めることが可能である。近似直線算出部95は、例えば、マクラギ上をスキャンする確率が1/3程度である場合、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャンとする場合のxの値をx=4とすることにより、統合されるデータの中に、マクラギ部分を確実に含むことができる。そして、近似直線算出部95は、統合されたデータに対して、例えば、最小二乗法などを用いて、近似直線を算出し、近似直線の傾きを算出して、ロール角算出部46に供給する。近似直線算出部95が近似直線の算出に用いる座標データは、第1の点群抽出部92および第2の点群抽出部94の処理により、そのレール長さ方向において、レール17および18の外側を所定量含み、かつ、そのレール高さ方向において、レール頭部の座標データを除いたものとなる。このため、近似直線算出部95により算出される近似直線は、例えば、図20に示されるように、道床部分とほぼ一致した座標データに対する近似直線となる。
このように、道床検出部45-4は、そのレール長さ方向において、レール17および18の外側を所定量含み、かつ、レール頭部の座標データを除いた座標データに基づいて、近似直線を算出することができるので、より正確に、道床部分の傾きを算出することができる。
次に、図21~図26を参照して、同一の路線において、道床検出部45-2、道床検出部45-3、および道床検出部45-4のそれぞれを用いて算出された道床の傾きと、レール頭高さにより算出されるロール角との比較について説明する。
図21は、図14を用いて説明した道床検出部45-2により検出された道床の傾きの算出結果と、レール高さに基づいて算出されたロール角とを示す図である。また、図22は、図14を用いて説明した道床検出部45-2により検出された道床の傾きの算出結果と、レール高さに基づいて算出されたロール角との相関を示す図である。図21に示されるように、レール高さに基づいて算出されたロール角と比較して、道床検出部45-2により検出された道床の傾きの算出結果は、その角度の変動が大きく、図22に示される相関値は、約0.59となった。
図23は、図16を用いて説明した道床検出部45-3により検出された道床の傾きの算出結果と、レール高さに基づいて算出されたロール角とを示す図である。また、図24は、図16を用いて説明した道床検出部45-3により検出された道床の傾きの算出結果と、レール高さに基づいて算出されたロール角との相関を示す図である。図23に示されるように、レール高さに基づいて算出されたロール角と比較して、道床検出部45-3により検出された道床の傾きの算出結果は、その角度の変動が大きく、図24に示される相関値は、約0.56となった。
図25は、図18を用いて説明した道床検出部45-4により検出された道床の傾きの算出結果と、レール高さに基づいて算出されたロール角とを示す図である。また、図26は、図18を用いて説明した道床検出部45-4により検出された道床の傾きの算出結果と、レール高さに基づいて算出されたロール角との相関を示す図である。図25に示されるように、道床検出部45-4により検出された道床の傾きの算出結果は、図21および図23を用いて説明した場合と比較して、レール高さに基づいて算出されたロール角と最も一致しており、図26に示される相関値は、約0.71となった。
これにより、道床検出部45-2、道床検出部45-3、および道床検出部45-4のそれぞれを用いて算出された道床の傾きのうち、レール頭高さにより算出されるロール角と最も相関が取れているのは、図18を用いて説明した道床検出部45-4により検出された道床の傾きの算出結果であることが分かる。すなわち、道床検出部45-4は、道床検出部45-1~道床検出部45-4のうち、最も精度良い検出を行うことができる。
また、近年、従来の薄い直方体以外の形状のマクラギが用いられるなど、レールに対して略直角となる以外の形状でマクラギが設置される場合がある。このような場合においても、道床検出部45-4は、精度良くロール角を検出することができる。
次に、図27のフローチャートを参照して、図3の車体動揺補正装置31が実行する車体動揺補正処理1について説明する。
ステップS1において、点群データ取得部41は、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、座標変換部42に供給する。
ステップS2において、座標変換部42は、点群データ取得部41から供給された3次元点群を、レール長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換する。そして、座標変換部42は、図1を用いて説明したセンサ11~14により取得された部分に対応する3次元点群の座標データを、車体動揺補正処理部47に供給する。また、座標変換部42は、図2を用いて説明したセンサ15および16により取得された道床部分の3次元点群の座標データを、レール検出部43および道床検出部45に供給する。
ステップS3において、レール検出部43は、図28および図29のフローチャートを用いて後述するレール位置検出処理を実行する。
ステップS4において、検出結果判定部44は、レール検出部43から供給されたレール検出結果に基づいて、レール位置が検出できていない位置が存在するか否かを判断する。ステップS4において、レール位置が検出できていない位置が存在しないと判断された場合、検出結果判定部44は、レール検出部43から供給されたレール高さの情報を、ロール角算出部46に供給し、処理は、後述するステップS6に進む。
ステップS4において、レール位置が検出できていない位置が存在すると判断された場合、検出結果判定部44は、道床検出部45を制御し、対応するスキャン位置において、道床の傾きを検出する処理を実行させるので、道床検出部45は、ステップS5において、図30~図33を用いて後述する道床検出処理1~4のいずれかの処理を実行する。
ステップS4において、レール位置が検出できていない位置が存在しないと判断された場合、または、ステップS5の処理の終了後、ステップS6において、ロール角算出部46は、検出結果判定部44から供給された、レール17および18のレール高さの情報、ならびに、道床検出部45により供給された道床の傾きに基づいて、ロール角を算出し、車体動揺補正処理部47に供給する。
ステップS7において、ロール角算出部46は、全範囲でロール角の算出が終了したか否かを判断する。ステップS7において、全範囲でロール角の算出が終了していないと判断された場合、処理は、ステップS6に戻り、それ以降の処理が繰り返される。
ステップS7において、全範囲でロール角の算出が終了したと判断された場合、ステップS8において、車体動揺補正処理部47は、座標変換部42から供給された、図1を用いて説明したセンサ11~14により取得された部分に対応する3次元点群の座標データに対して、ロール角算出部46から供給されたロール角の算出結果に基づいて車体動揺補正処理を実行し、補正結果を出力して処理が終了される。
このような処理により、車体動揺補正装置31は、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、3次元点群を、レール長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換し、レール17および18の内側のエッジ部分の座標を検出し、レール17および18の内側のエッジ部分の座標を検出することができなかった位置においては、道床の傾きを検出し、これらに基づいて、ロール角を算出して、車体の動揺を補正する。したがって、車体動揺補正装置31は、多くのセンサ等を用いることなく、雑草等の障害物が存在した場合でも、精度よく車体のロール角を算出して、車体の動揺を補正することができる。
次に、図28および図29のフローチャートを参照して、図27のステップS3において実行されるレール位置検出処理について説明する。
ステップS31において、レール検出部43は、図6~図9を用いて説明したように、検査車両とセンサ位置とによって求められる、一方のレールの内軌道側の6点(x1,y1),(x2,y2), (x3,y3), (x4,y4), (x5,y5), (x6,y6)を抽出する。以下、高さ方向の座標軸の0を、レールの頭高さに対応する位置とした座標が用いられているものとして説明する。
ステップS32において、レール検出部43は、抽出された6点の高さy1,y2,y3,y4,y5,y6において、y1,y2,y3,y4の差20mm以下、y3が、例えば、-100mm <y3<100mmなどの所定の高さ範囲内、y3,y4のうちの高い方に対し、y5,y6のどちらかは-30mm以下、の全ての条件を満たしているか否かを判断する。ステップS32において、これらの条件を満たしていると判断された場合、処理は、後述するステップS34に進む。
ステップS32において、これらの条件を満たしていないと判断された場合、ステップS33において、レール検出部43は、抽出された6点の高さy1,y2,y3,y4,y5,y6において、y3~y6が検知でき、かつ、y3,y4の差20mm以下、y3が、例えば、-100mm <y3<100mmなどの所定の高さ範囲内、y3,y4の内の高い方に対し、y5,y6のどちらかは-30mm以下、の全ての条件を満たしているか否かを判断する。ステップS32において、これらの条件を満たしていないと判断された場合、処理は、後述するステップS35に進む。
ステップS32において、ステップS32の全ての条件を満たしていると判断された場合、または、ステップS33において、ステップS33の全ての条件を満たしていると判断された場合、ステップS34において、レール検出部43は、ymはy3、y4の最大値として、(x4,ym)をレール位置とし、処理は、後述するステップS38に進む。
ステップS33において、ステップS33の条件を満たしていないと判断された場合、ステップS35において、レール検出部43は、抽出された6点の高さy1,y2,y3,y4,y5,y6において、y5、y6が検知できず、y1~y4は検知できたか否かを判断する。
ステップS35において、y5、y6が検知できず、y1~y4は検知できたと判断された場合、ステップS36において、レール検出部43は、現在実行中のレール位置検出を、他方のレール位置の検出結果待ち状態とし、処理は、後述するステップS38に進む。
ステップS35において、y5、y6が検知できず、y1~y4は検知できたと判断されなかった場合、ステップS37において、レール検出部43は、対応する位置において、レール位置検出不能とする。
ステップS34,ステップS36,または、ステップS37の処理の終了後、ステップS38において、レール検出部43は、両レールの位置検出が終了したか否かを判断する。
ステップS38において、両レールの位置検出が終了していないと判断された場合、ステップS39において、レール検出部43は、検査車両とセンサ位置とによって求められる、他方のレールの内軌道側の6点を抽出し、処理は、ステップS32に戻り、それ以降の処理が繰り返される。
ステップS38において、両レールの位置検出が終了したと判断された場合、ステップS40において、レール検出部43は、他方検出待ち状態の箇所があるか否か、すなわち、ステップS35において、y5、y6が検知できず、y1~y4は検知できたと判断され、ステップS36において、現在実行中のレール位置検出を、他方のレール位置の検出結果待ち状態とした箇所があるか否かを判断する。ステップS40において、他方検出待ち状態の箇所がないと判断された場合、処理は、後述するステップS44に進む。
ステップS40において、他方検出待ち状態の箇所があると判断された場合、ステップS41において、レール検出部43は、他方検出待ち状態の箇所に対する他方検出結果が存在するか否かを判断する。
ステップS41において、他方検出待ち状態の箇所に対する他方検出結果が存在しないと判断された場合、ステップS42において、レール検出部43は、対応する位置において、レール位置検出不能とし、処理は、後述するステップS44に進む。
ステップS41において、他方検出待ち状態の箇所に対する他方検出結果が存在すると判断された場合、ステップS43において、レール検出部43は、Xbを、他方のレール位置から1.067+0.05m離れた位置とし、ybを、レール傾きが、ひとつ前の検出結果と同じとなる値として、(xb,yb)をレール位置とする。
ステップS40において、他方検出待ち状態の箇所がないと判断された場合、もしくは、ステップS42またはステップS43の処理の終了後、ステップS44において、レール検出部43は、全範囲でレール位置の検出が終了したか否かを判断する。
ステップS44において、全範囲でレール位置の検出が終了していないと判断された場合、処理は、ステップS31に戻り、それ以降の処理が繰り返される。ステップS44において、全範囲でレール位置の検出が終了したと判断された場合、処理は、図27のステップS4に進む。
このような処理により、レール検出部43は、レール17および18のレールの内側エッジの位置を検出することができる。
次に、図30のフローチャートを参照して、図27のステップS5において実行される第1の処理の例である、道床検出処理1について説明する。道床検出処理1は、図11を用いて説明した道床検出部45-1が実行する処理である。
ステップS61において、道床検出部45-1の検出領域抽出部61は、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データのうち、図12を用いて説明したように、レールや分岐器部分を含まず、かつ、マクラギやバラストを含む道床部分を含む3次元点群の座標データを、1スキャン分ずつそれぞれ抽出して、近似直線算出部62に供給する。
ステップS62において、道床検出部45-1の近似直線算出部62は、検出領域抽出部61から供給された3次元点群の座標データの1スキャン分の座標値に基づいて、例えば、最小二乗法などを用いて、近似直線を算出し、検出領域抽出部61から供給された3次元点群の座標データの1スキャン分の座標値、および、近似直線を、近似直線-点群残差算出部63に供給する。
ステップS63において、道床検出部45-1の近似直線-点群残差算出部63は、近似直線算出部62から供給された、3次元点群の座標データの1スキャン分の座標値と、近似直線の残差を算出し、その残差の合計を、検出データ決定部64に供給する。
ステップS64において、道床検出部45-1の検出データ決定部64は、全範囲で残差の算出が終了したか否かを判断する。ステップS64において、全範囲で残差の算出が終了していないと判断された場合、処理は、ステップS61に戻り、それ以降の処理が繰り返される。
ステップS64において、全範囲で残差の算出が終了したと判断された場合、ステップS65において、道床検出部45-1の検出データ決定部64は、検出スキャン位置をn=1とする。
ステップS66において、道床検出部45-1の検出データ決定部64は、検出スキャン位置nと、nに対して前後xスキャンの合計2x+1スキャン(ただし、n<xである場合、1スキャン目からn+xスキャン目までであってもよい)の中で、残差の合計が最も少ないものを、検出データとして決定する。すなわち、道床検出部45-1の検出データ決定部64は、図13を用いて説明したように、マクラギ部分をスキャンした座標データを検出データとして決定する。
ステップS67において、道床検出部45-1の検出データ決定部64は、全範囲の検出が終了したか否かを判断する。
ステップS67において、全範囲の検出が終了していないと判断された場合、ステップS68において、道床検出部45-1の検出データ決定部64は、検出スキャン位置をn=n+1とし、処理は、ステップS66に戻り、それ以降の処理が繰り返される。
ステップS67において、全範囲の検出が終了したと判断された場合、ステップS69において、道床検出部45-1の検出データ決定部64は、近似直線に基づいて、道床の傾きを算出し、ロール角算出部46に供給して、処理は、図27のステップS6に進む。
このような処理により、道床検出部45-1は、検出位置近傍の3次元点群の座標データのうち、近似直線との残差の合計値が小さい、すなわち、マクラギ部分をスキャンした座標データに基づいて、道床の傾きを検出することができる。
次に、図31のフローチャートを参照して、図27のステップS5において実行される第2の処理の例である、道床検出処理2について説明する。道床検出処理2は、図14を用いて説明した道床検出部45-2が実行する処理である。
ステップS81において、道床検出部45-2の検出領域抽出部61は、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データのうち、図12を用いて説明したように、レールや分岐器部分を含まず、かつ、マクラギやバラストを含む道床部分を含む3次元点群の座標データを、1スキャン分ずつそれぞれ抽出して、データ統合部71に供給する。
ステップS82において、道床検出部45-2のデータ統合部71は、検出領域抽出部61により抽出された3次元点群の座標データにおいて、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合し、近似直線算出部62に供給する。
ステップS83~ステップS90において、道床検出部45-2は、図30のステップS62~ステップS69を用いて説明した処理と同様の処理を実行し、処理は、図27のステップS6に進む。
このように、道床検出部45-2は、検出領域抽出部61により抽出された3次元点群の座標データにおいて、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合する。そして、道床検出部45-2は、検出位置近傍の3次元点群の座標データのうち、近似直線との残差の合計値が小さい、すなわち、マクラギ部分をスキャンした座標データに基づいて、道床の傾きを検出することができる。図15を用いて説明したように、道床検出部45-2により検出された道床の傾きの算出結果は、道床検出部45-1により検出された道床の傾きの算出結果と比較して、飛び値が少ない。すわなち、検出領域抽出部61により抽出された3次元点群の座標データにおいて、センサ15および16により取得されたそれぞれの3次元点群の座標データを統合することにより、より精度良い検出結果を得ることができる。
次に、図32のフローチャートを参照して、図27のステップS5において実行される第3の処理の例である、道床検出処理3について説明する。道床検出処理3は、図16を用いて説明した道床検出部45-3が実行する処理である。
ステップS101において、道床検出部45-3の検出領域抽出部61は、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データのうち、図12を用いて説明したように、レールや分岐器部分を含まず、かつ、マクラギやバラストを含む道床部分を含む3次元点群の座標データを、1スキャン分ずつ、それぞれ抽出して、データ統合部71に供給する。
ステップS102において、道床検出部45-3のデータ統合部71は、検出領域抽出部61により抽出された3次元点群の座標データにおいて、図2を用いて説明したセンサ15および16により取得されたそれぞれの道床部分の3次元点群の座標データを統合し、隣接点傾き合計算出部81に供給する。
ステップS103において、道床検出部45-3の隣接点傾き合計算出部81は、データ統合部71から供給された1スキャン分の統合された座標データの隣接点の傾きの合計値を、上述した数式(1)を用いて算出し、算出結果を検出データ決定部82に供給するとともに、データ統合部71から供給された1スキャン分の統合された座標データを、近似直線算出部83に供給する。
ステップS104において、道床検出部45-3の隣接点傾き合計算出部81は、全範囲で隣接点との傾きの合計の算出が終了したか否かを判断する。ステップS104において、全範囲で隣接点との傾きの合計の算出が終了していないと判断された場合、処理は、ステップS101に戻り、それ以降の処理が繰り返される。
ステップS104において、全範囲で隣接点との傾きの合計の算出が終了したと判断された場合、ステップS105において、道床検出部45-3の検出データ決定部82は、検出スキャン位置をn=1とする。
ステップS106において、道床検出部45-3の検出データ決定部82は、隣接点傾き合計算出部81により算出された、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャン(ただし、n<xである場合、1スキャン目からn+xスキャン目までであってもよい)の隣接点の傾きの合計値のうち、最も合計値が小さいものを検出データとして決定し、近似直線算出部83に、対応するスキャンを、測定箇所の傾きを求めるための近似直線の算出データとして用いることを通知する。
ステップS107において、道床検出部45-3の近似直線算出部83は、検出データ決定部82からの通知に基づいて、測定箇所に対応するスキャンの前後xスキャンを含む2x+1スキャンの隣接点の傾きの合計値のうち、最も合計値が小さい1スキャン分の統合された座標データに基づいて、例えば、最小二乗法などを用いて、近似直線を算出する。
図17を用いて説明したように、マクラギ上をスキャンした場合の1スキャン分の統合された座標データは、隣接点の傾きの合計値は小さな値となり、図18を用いて説明したように、バラスト上をスキャンした場合の1スキャン分の統合された座標データは、隣接点の傾きの合計値は大きな値となる。
ステップS108において、道床検出部45-3の近似直線算出部83は、全範囲において、近似直線の算出が終了したか否かを判断する。
ステップS108において、全範囲において、近似直線の算出が終了していないと判断された場合、ステップS109において、道床検出部45-3の近似直線算出部83は、検出スキャン位置をn=n+1とし、処理は、ステップS106に戻り、それ以降の処理が繰り返される。
ステップS108において、全範囲において、近似直線の算出が終了したと判断された場合、ステップS110において、道床検出部45-3の近似直線算出部83は、近似直線の傾きを算出し、道床の傾きとして、ロール角算出部46に供給し、処理は、図27のステップS6に進む。
このように、道床検出部45-3は、検出位置近傍のマクラギ部分をスキャンした3次元点群の座標データのうち、隣接点との傾きの合計値が小さいスキャンの座標データに基づいて、道床の傾きを検出することが可能となる。
次に、図33のフローチャートを参照して、図27のステップS5において実行される第4の処理の例である、道床検出処理4について説明する。道床検出処理4は、図18を用いて説明した道床検出部45-4が実行する処理である。
ステップS121において、道床検出部45-4の点群座標データ取得部91は、座標変換部42から供給された、センサ15および16により取得された道床部分の3次元点群の座標データを、1スキャン分ずつそれぞれ抽出して、データ統合部71に供給する。
ステップS122において、道床検出部45-4のデータ統合部71は、点群座標データ取得部91により抽出された3次元点群の座標データを統合し、第1の点群抽出部92に供給する。
ステップS123において、道床検出部45-4の第1の点群抽出部92は、データ統合部71から供給された座標データのうち、レール17および18の外側部分を所定幅含み、かつ、マクラギやバラストを含む道床部分を含む、Mm×Nmの所定領域の座標データを抽出し、中央値算出部93に供給する。Mm×Nmの抽出領域の大きさは、マクラギ長さ相当の幅、レール面と道床面を内包する範囲の高さであり、実験的経験的に定められる値である。第1の点群抽出部92は、例えば、図19を用いて説明したように、レール17および18の外側部分を所定幅含む幅2.0m、マクラギやバラストを含む道床部分を含む高さ0.4mに対応する領域の座標データを抽出することができる。
ステップS124において、道床検出部45-4の中央値算出部93は、第1の点群抽出部92から供給された所定領域の座標データの高さ成分の中央値を算出し、第1の点群抽出部92から供給された所定領域の座標データとともに、第2の点群抽出部94に供給する。
ステップS125において、道床検出部45-4の第2の点群抽出部94は、中央値算出部93から供給された所定領域の座標データのうち、中央値算出部93により算出された高さの中央値から、レール17および18の高さを含まないと想定される所定の幅に含まれる高さを有する座標データのみを抽出し、近似直線算出部95に供給する。第2の点群抽出部94は、中央値算出部93により算出された高さの中央値から、道床面の凹凸として想定しうる範囲、例えば、中央値算出部93により算出された高さの中央値から、±0.05mの幅に含まれる高さを有する座標データのみを抽出し、近似直線算出部95に供給する。この抽出領域の大きさは、レール17および18の高さによって決まる値であり、実験的経験的に定められる値である。
ステップS126において、道床検出部45-4の第2の点群抽出部94は、中央値算出部93により算出された中央値の算出結果から所定範囲内の点の抽出が終了したか否かを判断する。ステップS126において、所定範囲内の点の抽出が終了していないと判断された場合、処理は、ステップS121に戻り、それ以降の処理が繰り返される。
ステップS126において、所定範囲内の点の抽出が終了したと判断された場合、ステップS127において、道床検出部45-4の近似直線算出部95は、検出スキャン位置をn=1とする。
ステップS128において、道床検出部45-4の近似直線算出部95は、検出スキャン位置nと、nに対して前後xスキャンを含む2x+1スキャン分の座標データを統合する。
ステップS129において、道床検出部45-4の近似直線算出部95は、統合されたデータに対して、例えば、最小二乗法などを用いて、近似直線を算出する。
ステップS130において、道床検出部45-4の近似直線算出部95は、全範囲の近似直線の傾きの算出が終了したか否かを判断する。
ステップS130において、全範囲の近似直線の傾きの算出が終了していないと判断された場合、ステップS131において、道床検出部45-4の近似直線算出部95は、検出スキャン位置をn=n+1とし、処理は、ステップS128に戻り、それ以降の処理が繰り返される。
ステップS130において、全範囲の近似直線の傾きの算出が終了したと判断された場合、ステップS132において、道床検出部45-4の近似直線算出部95は、近似直線の傾きを算出し、道床の傾きとして、ロール角算出部46に供給し、処理は、図27のステップS6に進む。
このような処理により、道床検出部45-4は、そのレール長さ方向において、レール17および18の外側を所定量含み、かつ、そのレール高さ方向において、レール頭部の座標データを除いた座標データに基づいて、近似直線を算出する。道床検出部45-4は、図21~図26を用いて説明したように、道床検出部45-2および道床検出部45-3と比較して、精度良い検出を行うことができる。
以上説明した車体動揺補正装置31は、レール17およびレール18の内側エッジの高さが検出されなかった場合に、道床検出部45により検出される道床の傾きを用いてロール角を算出したが、レール17およびレール18の内側エッジの高さを検出することなく、道床検出部45により検出される道床の傾きのみを用いてロール角を算出するものとしてもよい。
図34は、レール17およびレール18の内側エッジの高さを検出することなく、道床検出部45により検出される道床の傾きを用いてロール角を算出する車体動揺補正装置101の機能性を示す機能ブロック図である。
図34においては、図3を用いて説明した車体動揺補正装置31が有する機能と同様の部分においては、同一の記号を付し、その詳細な説明は省略する。すなわち、図34の車体動揺補正装置101は、レール検出部43および検出結果判定部44の機能が削除され、座標変換部42において、レール長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換された3次元点群の座標データが道床検出部45に供給され、ロール角算出部46は、すべての検出領域において、道床検出部45により検出された道床の傾きをロール角として、車体動揺補正処理部47に供給するものである。道床検出部45は、上述した道床検出部45-1~道床検出部45-4のいずれを用いてもよいが、図21~図26を用いて説明したように、道床検出部45-2および道床検出部45-3と比較して、精度良い検出を行うことができる道床検出部45-4を用いると好適である。
次に、図35のフローチャートを参照して、図34の車体動揺補正装置101が実行する車体動揺補正処理2について説明する。
ステップS141において、点群データ取得部41は、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、座標変換部42に供給する。
ステップS142において、座標変換部42は、点群データ取得部41から供給された3次元点群を、レール長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換する。そして、座標変換部42は、図1を用いて説明したセンサ11~14により取得された部分に対応する3次元点群の座標データを、車体動揺補正処理部47に供給する。また、座標変換部42は、図2を用いて説明したセンサ15および16により取得された道床部分の3次元点群の座標データを道床検出部45に供給する。
ステップS143において、道床検出部45は、図30~図33を用いて説明した道床検出処理1~4のいずれかの処理を実行する。
ステップS144において、ロール角算出部46は、道床検出部45により供給された道床の傾きに基づいて、ロール角を算出し、車体動揺補正処理部47に供給する。
ステップS145において、ロール角算出部46は、全範囲でロール角の算出が終了したか否かを判断する。ステップS145において、全範囲でロール角の算出が終了していないと判断された場合、処理は、ステップS144に戻り、それ以降の処理が繰り返される。
ステップS145において、全範囲でロール角の算出が終了したと判断された場合、ステップS146において、車体動揺補正処理部47は、座標変換部42から供給された、図1を用いて説明したセンサ11~14により取得された部分に対応する3次元点群の座標データに対して、ロール角算出部46から供給されたロール角の算出結果に基づいて車体動揺補正処理を実行し、補正結果を出力して処理が終了される。
このような処理により、車体動揺補正装置101は、センサ11~16により撮像されたデータより得られた3次元点群データを取得し、3次元点群を、レール長手方向、マクラギ方向、および、高さ方向を軸とした座標系に変換し、道床の傾きを検出し、これらに基づいて、ロール角を算出して、車体の動揺を補正する。したがって、車体動揺補正装置101は、レール位置を検出せずに、多くのセンサ等を用いることなく、雑草等の障害物が存在した場合でも、精度よく車体のロール角を算出して、車体の動揺を補正することができる。
このように、本発明の車体動揺補正装置および車体動揺補正方法、ならびにプログラムにおいては、道床部分の3次元点群の座標データが取得され、3次元点群の座標データから、レールの外側部分、ならびに、マクラギおよびバラストを含む道床部分を含む、第1の所定領域の座標データが抽出され、第1の所定領域の座標データの高さ成分の中央値が算出され、第1の所定領域の座標データのうち、算出された中央値から、レールの高さによって決まる所定の幅に含まれる第2の所定領域の座標データのみが抽出され、第2の所定領域の座標データの近似直線が算出されて、算出された近似直線を用いて、3次元点群が含む車体動揺が補正される。したがって、多くのセンサ等を用いることなく、雑草等の障害物が存在した場合でも、精度よく車体のロール角を算出して、車体動揺を補正することができる。
上述した技術は、ハードウェアとしては、例えば、パーソナルコンピュータなどの情報処理装置に適用することができる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。