(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】情報処理装置、制御方法、プログラム及び記憶媒体
(51)【国際特許分類】
B63H 25/04 20060101AFI20241224BHJP
B63H 25/02 20060101ALI20241224BHJP
B63B 49/00 20060101ALI20241224BHJP
G01S 17/93 20200101ALI20241224BHJP
【FI】
B63H25/04 G
B63H25/02 Z
B63H25/04 D
B63B49/00 Z
G01S17/93
(21)【出願番号】P 2021027603
(22)【出願日】2021-02-24
【審査請求日】2024-01-12
(73)【特許権者】
【識別番号】000005016
【氏名又は名称】パイオニア株式会社
(73)【特許権者】
【識別番号】520001073
【氏名又は名称】パイオニアスマートセンシングイノベーションズ株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(72)【発明者】
【氏名】加藤 正浩
【審査官】中川 隆司
(56)【参考文献】
【文献】国際公開第2021/084583(WO,A1)
【文献】特開2012-198243(JP,A)
【文献】国際公開第2018/221458(WO,A1)
【文献】米国特許出願公開第2017/0328683(US,A1)
【文献】中国特許出願公開第111913175(CN,A)
【文献】米国特許出願公開第2002/0126024(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B63H 25/04
B63H 25/02
B63B 49/00
G01S 17/93
(57)【特許請求の範囲】
【請求項1】
水面位置を取得する取得手段と、
船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出する検出手段と、
前記水面反射データを誤検出データと判定する判定手段と、
を有する情報処理装置。
【請求項2】
前記取得手段は、前記点群データを構成する計測点のうち、水面位置を表すと推定される計測点が表す高さ方向の位置に基づき、前記水面位置を決定する、請求項1に記載の情報処理装置。
【請求項3】
前記取得手段は、前記水面位置を表すと推定される計測点の高さ方向の位置の分散値に基づき、前記検出手段が用いる前記水面位置の更新の要否を判定する、請求項2に記載の情報処理装置。
【請求項4】
前記取得手段は、
前記水面位置を表すと推定される計測点の高さ方向の位置の分散値が所定の閾値未満の場合、当該計測点の高さ方向の位置の平均値に基づき、前記検出手段が用いる前記水面位置を更新し、
前記分散値が前記閾値以上の場合、前記検出手段が用いる前記水面位置の更新を行わない、請求項3に記載の情報処理装置。
【請求項5】
単位領域であるボクセルごとの物体の位置を表すボクセルデータと、前記点群データから前記水面位置の暫定位置に基づき前記水面反射データを除去したデータとを照合して前記船舶の位置推定を行った場合の当該位置推定の信頼度指標を算出する信頼度指標算出手段をさらに有し、
前記取得手段は、複数の前記暫定位置に対する前記信頼度指標に基づき、前記水面位置を推定する、請求項1に記載の情報処理装置。
【請求項6】
前記取得手段は、前記点群データに基づき算出した水面の推定位置に対してオフセットを設けた位置を、前記水面位置として決定する、請求項1~5のいずれか一項に記載の情報処理装置。
【請求項7】
前記取得手段が取得した最新の所定個数分の水面位置に基づき、前記検出手段が用いる水面位置を決定するフィルタ手段をさらに有する、請求項1~6のいずれか一項に記載の情報処理装置。
【請求項8】
単位領域であるボクセルごとの物体の位置を表すボクセルデータと、前記点群データから前記水面反射データを除去したデータとの照合に基づき、前記船舶の位置推定を行う位置推定手段をさらに有する、請求項1~7のいずれか一項に記載の情報処理装置。
【請求項9】
前記位置推定手段は、前記水面位置より下に存在するボクセルのボクセルデータを、前記照合の対象から除外する、請求項8に記載の情報処理装置。
【請求項10】
コンピュータが実行する制御方法であって、
水面位置を取得し、
船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出し、
前記水面反射データを誤検出データと判定する、
制御方法。
【請求項11】
水面位置を取得し、
船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出し、
前記水面反射データを誤検出データと判定する処理をコンピュータに実行させるプログラム。
【請求項12】
請求項11に記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、船舶において計測したデータの処理に関する。
【背景技術】
【0002】
従来から、レーザスキャナなどの計測装置を用いて計測した周辺物体の形状データを、予め周辺物体の形状が記憶された地図情報と照合(マッチング)することで、移動体の自己位置を推定する技術が知られている。例えば、特許文献1には、空間を所定の規則で分割したボクセル中における検出物が静止物か移動物かを判定し、静止物が存在するボクセルを対象として地図情報と計測データとのマッチングを行う自律移動システムが開示されている。また、特許文献2には、ボクセル毎の静止物体の平均ベクトルと共分散行列とを含むボクセルデータとライダが出力する点群データとの照合により自己位置推定を行うスキャンマッチング手法が開示されている。さらに、特許文献3には、船舶の自動着岸を行う自動着岸装置において、ライダから照射される光が着岸位置の周囲の物体に反射してライダにより受光できるように、船舶の姿勢を変化させる制御を行う手法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開WO2013/076829
【文献】国際公開WO2018/221453
【文献】特開2020-59403号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
昨今、自動車分野だけでなく、船舶においても、自動操船システム検討が進められており,安全な自動操船には精度の良い自己位置推定は同様に重要である。外洋では周辺に構造物が少ないためGNSS(Global Navigation Satellite System)により自己位置を測位可能であるが、都市部の沿岸や河川では高層ビル等が隣接するため、受信衛星数の低下やマルチパスなどによりGNSS電波の受信環境は悪く、精度の良い測位はできないことが多い。よって、船舶の場合においても、上記のスキャンマッチングによる高精度な位置推定が好適に適用される。
【0005】
一方、船舶にライダを搭載すると、ライダの下方向に向いたビームの一部が水面で反射し、実際には存在しない場所からの検出データが得られてしまう。そのような水面反射によるデータは誤検出(誤警報)データであり、自己位置推定の精度に影響を与える。しかし,水面反射による不正確なデータなのか、あるいは正確なデータなのかは、ライダの検出信号からでは識別できない。
【0006】
本開示は、上記のような課題を解決するためになされたものであり、点群データに含まれる誤検出データを的確に判定することが可能な情報処理装置を提供することを主な目的とする。
【課題を解決するための手段】
【0007】
請求項に記載の発明は、
水面位置を取得する取得手段と、
船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出する検出手段と、
前記水面反射データを誤検出データと判定する判定手段と、
を有する情報処理装置である。
【0008】
また、請求項に記載の発明は、
コンピュータが実行する制御方法であって、
水面位置を取得し、
船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出し、
前記水面反射データを誤検出データと判定する、
制御方法である。
【0009】
また、請求項に記載の発明は、
水面位置を取得し、
船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出し、
前記水面反射データを誤検出データと判定する処理をコンピュータに実行させるプログラムである。
【図面の簡単な説明】
【0010】
【
図2】情報処理装置の機能的構成を示すブロック図である。
【
図3】自己位置推定部が推定すべき自己位置を3次元直交座標で表した図である。
【
図4】ボクセルデータの概略的なデータ構造の一例を示す。
【
図5】(A)対象船舶に設けられたライダの配置の一例を示す対象船舶の俯瞰図である。(B)構造物に近接する対象船舶を後方から観察した図である。
【
図6】(A)ボクセルデータが存在するボクセルを明示した対象船舶の後方図である。(B)ライダの高さ位置を表す破線と水面位置を表す破線とを明示した対象船舶の後方図である。
【
図7】自己位置推定部の機能ブロックの一例である。
【
図8】自己位置推定処理の手順を示すフローチャートの一例である。
【
図9】水面反射データを除去せずにNDT位置推定を行う比較例に係る自車位置推定結果を示す。
【
図10】水面反射データを除去せずにNDT位置推定を行う比較例に係る自車位置推定結果を示す。
【
図11】水面反射データを除去する実施例に係る自車位置推定結果を示す。
【
図12】水面反射データを除去する実施例に係る自車位置推定結果を示す。
【
図13】変形例における水面位置推定処理の概要を示す図である。
【
図14】変形例における水面位置推定処理の手順を示すフローチャートの一例である。
【発明を実施するための形態】
【0011】
本発明の好適な実施形態によれば、情報処理装置は、水面位置を取得する取得手段と、船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出する検出手段と、前記水面反射データを誤検出データと判定する判定手段と、を有する。この態様によれば、情報処理装置は、計測装置が出射する光が水面で反射されることで生成された水面反射データを好適に検出し、誤検出データの判定を的確に実行することができる。
【0012】
上記情報処理装置の一態様では、前記取得手段は、前記点群データを構成する計測点のうち、水面位置を表すと推定される計測点が表す高さ方向の位置に基づき、前記水面位置を決定する。この態様により、情報処理装置は、水面反射データの検出に用いる水面位置を的確に定めることができる。
【0013】
上記情報処理装置の他の一態様では、前記取得手段は、前記水面位置を表すと推定される計測点が表す高さ方向の位置の分散値に基づき、前記検出手段が用いる前記水面位置の更新の要否を判定する。この態様により、情報処理装置は、水面位置を算出する計測点の信頼性が高い場合に限り水面位置を更新して誤検出データの検出を高精度に行うことができる。
【0014】
上記情報処理装置の他の一態様では、前記取得手段は、前記水面位置を表すと推定される計測点の高さ方向の位置の分散値が所定の閾値未満の場合、当該計測点の高さ方向の位置の平均値に基づき、前記検出手段が用いる前記水面位置を更新し、前記分散値が前記閾値以上の場合、前記検出手段が用いる前記水面位置の更新を行わない。これにより、情報処理装置は、水面位置を表すと推定される計測点の高さ方向の位置の平均値と分散値とを用いて、水面反射データの検出に用いる水面位置の更新を的確に実行することができる。
【0015】
上記情報処理装置の他の一態様では、情報処理装置は、単位領域であるボクセルごとの物体の位置を表すボクセルデータと、前記点群データから前記水面位置の暫定位置に基づき前記水面反射データを除去したデータとを照合して前記船舶の位置推定を行った場合の当該位置推定の信頼度指標を算出する信頼度指標算出手段をさらに有し、前記取得手段は、複数の前記暫定位置に対する前記信頼度指標に基づき、前記水面位置を推定する。この態様によれば、信頼度指標に基づき、水面位置の暫定位置の妥当性を判定し、信頼度指標が高くなるような暫定位置を水面位置として好適に推定することができる。
【0016】
上記情報処理装置の他の一態様では、前記取得手段は、前記点群データに基づき算出した水面の推定位置に対してオフセットを設けた位置を、前記水面位置として決定する。この態様により、水面の推定位置の不確実性を考慮して水面反射データの検出をより確実に実行することが可能となる。
【0017】
上記情報処理装置の他の一態様では、前記取得手段が取得した最新の所定個数分の水面位置に基づき、前記検出手段が用いる水面位置を決定するフィルタ手段をさらに有する。この態様により、情報処理装置は、過去の水面位置の取得状況に応じて水面反射データの検出に用いる水面位置を適切に定めることができる。
【0018】
上記情報処理装置の他の一態様では、情報処理装置は、単位領域であるボクセルごとの物体の位置を表すボクセルデータと、前記点群データから前記水面反射データを除去したデータとの照合に基づき、前記船舶の位置推定を行う位置推定手段をさらに有する。この態様により、情報処理装置は、誤検出データを除去した点群データに基づいてボクセルデータを用いた位置推定を高精度に実行することができる。
【0019】
上記情報処理装置の他の一態様では、前記位置推定手段は、前記水面位置より下に存在するボクセルのボクセルデータを、前記照合の対象から除外する。この態様により、情報処理装置は、実際には計測できない水面下のボクセルデータの不要な照合を抑制し、処理負荷の抑制及び位置精度低下を好適に実現することができる。
【0020】
本発明の他の好適な実施形態によれば、コンピュータが実行する制御方法であって、水面位置を取得し、船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出し、前記水面反射データを誤検出データと判定する。コンピュータは、この制御方法を実行することで、計測装置が出射する光が水面で反射されることで生成された水面反射データを好適に検出し、誤検出データの判定を的確に実行することができる。
【0021】
本発明のさらに別の好適な実施形態によれば、プログラムは、水面位置を取得し、船舶に設けられた計測装置が生成する点群データのうち、前記水面位置より下方の位置を示すデータを、前記計測装置が出射する光が水面で反射されることで生成された水面反射データとして検出し、前記水面反射データを誤検出データと判定する処理をコンピュータに実行させる。コンピュータは、このプログラムを実行することで、計測装置が出射する光が水面で反射されることで生成された水面反射データを好適に検出し、誤検出データの判定を的確に実行することができる。好適には、上記プログラムは、記憶媒体に記憶される。
【実施例】
【0022】
以下、図面を参照して本発明の好適な実施例について説明する。なお、任意の記号の上に「^」または「-」が付された文字を、本明細書では便宜上、「A^」または「A-」(「A」は任意の文字)と表す。
【0023】
(1)
運転支援システムの概要
図1は、本実施例に係る運転支援システムの概略構成である。運転支援システムは、移動体である船舶と共に移動する情報処理装置1と、当該船舶に搭載されたセンサ群2とを有する。以後では、情報処理装置1と共に移動する船舶を「対象船舶」とも呼ぶ。
【0024】
情報処理装置1は、センサ群2と電気的に接続し、センサ群2に含まれる各種センサの出力に基づき、情報処理装置1が設けられた対象船舶の位置(「自己位置」とも呼ぶ。)の推定を行う。そして、情報処理装置1は、自己位置の推定結果に基づき、対象船舶の自動運転制御等の運転支援を行う。運転支援には、自動着岸などの着岸支援も含まれる。ここで、「着岸」とは、岸壁に対象船舶を着ける場合の他、桟橋等の構造体に対象船舶を着ける場合も含まれる。情報処理装置1は、対象船舶に設けられたナビゲーション装置であってもよく、船舶に内蔵された電子制御装置であってもよい。
【0025】
また、情報処理装置1は、ボクセルデータ「VD」を含む地図データベース(DB:DataBase)10を記憶する。ボクセルデータVDは、3次元空間の最小単位となる立方体(正規格子)を示すボクセルごとに静止構造物の位置情報等を記録したデータである。ボクセルデータVDは、各ボクセル内の静止構造物の計測された点群データを正規分布により表したデータを含み、後述するように、NDT(Normal Distributions Transform)を用いたスキャンマッチングに用いられる。情報処理装置1は、NDTスキャンマッチングにより、例えば、対象船舶の平面上の位置、高さ位置、ヨー角、ピッチ角及びロール角の推定を行う。なお、特に言及がない限り、自己位置は、対象船舶のヨー角などの姿勢角も含まれるものとする。
【0026】
センサ群2は、対象船舶に設けられた種々の外界センサ及び内界センサを含んでいる。本実施例では、センサ群2は、ライダ(Lidar:Light Detection and Ranging、または、Laser Illuminated Detection And Ranging)3と、対象船舶の速度を検出する速度センサ4と、GPS(Global Positioning Satellite)受信機5と、3軸方向における対象移動体対象船舶の加速度及び角速度を計測する慣性計測装置(IMU:Inertial Measurement Unit)6とを含んでいる。
【0027】
ライダ3は、水平方向および垂直方向の所定の角度範囲に対してパルスレーザを出射することで、外界に存在する物体までの距離を離散的に測定し、当該物体の位置を示す3次元の点群データを生成する。この場合、ライダ3は、照射方向を変えながらレーザ光を照射する照射部と、照射したレーザ光の反射光(散乱光)を受光する受光部と、受光部が出力する受光信号に基づくスキャンデータ(点群データを構成する点であり、以後では「計測点」と呼ぶ。)を出力する出力部とを有する。計測点は、受光部が受光したレーザ光に対応する照射方向と、上述の受光信号に基づき特定される当該レーザ光の応答遅延時間とに基づき生成される。なお、一般的に、対象物までの距離が近いほどライダの距離測定値の精度は高く、距離が遠いほど精度は低い。ライダ3は、本発明における「計測装置」の一例である。速度センサ4は、例えば、ドップラーを利用した速度計であってもよく、GNSSを利用した速度計であってもよい。
【0028】
なお、センサ群2は、GPS受信機5に代えて、GPS以外のGNSSの測位結果を生成する受信機を有してもよい。
【0029】
(2)
情報処理装置の構成
図2は、情報処理装置1のハードウェア構成の一例を示すブロック図である。情報処理装置1は、主に、インターフェース11と、メモリ12と、コントローラ13と、を有する。これらの各要素は、バスラインを介して相互に接続されている。
【0030】
インターフェース11は、情報処理装置1と外部装置とのデータの授受に関するインターフェース動作を行う。本実施例では、インターフェース11は、ライダ3、速度センサ4、GPS受信機5及びIMU6などのセンサ群2の各センサから出力データを取得し、コントローラ13へ供給する。また、インターフェース11は、例えば、コントローラ13が生成した対象船舶の制御に関する信号を、対象船舶の運転を制御する対象船舶の各構成要素に供給する。例えば、対象船舶は、エンジンや電気モータなどの駆動源と、駆動源の駆動力に基づき進行方向の推進力を生成するスクリューと、駆動源の駆動力に基づき横方向の推進力を生成するスラスターと、船舶の進行方向を自在に定めるための機構である舵等とを備える。そして、自動着岸などの自動運転時には、インターフェース11は、コントローラ13が生成した制御信号を、これらの各構成要素に供給する。なお、対象船舶に電子制御装置が設けられている場合には、インターフェース11は、当該電子制御装置に対し、コントローラ13が生成した制御信号を供給する。インターフェース11は、無線通信を行うためのネットワークアダプタなどのワイヤレスインターフェースであってもよく、ケーブル等により外部装置と接続するためのハードウェアインターフェースであってもよい。また、インターフェース11は、入力装置、表示装置、音出力装置等の種々の周辺装置とのインターフェース動作を行ってもよい。
【0031】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスクドライブ、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。メモリ12は、コントローラ13が所定の処理を実行するためのプログラムが記憶される。なお、コントローラ13が実行するプログラムは、メモリ12以外の記憶媒体に記憶されてもよい。
【0032】
また、メモリ12は、ボクセルデータVDを含む地
図DB10を記憶する。地
図DB10には、ボクセルデータVDの他、例えば、着岸場所(岸、桟橋を含む)に関する情報、船舶が移動可能な水路に関する情報などが含まれている。なお、地
図DB10は、インターフェース11を介して情報処理装置1と接続されたハードディスクなどの情報処理装置1の外部の記憶装置に記憶されてもよい。上記の記憶装置は、情報処理装置1と通信を行うサーバ装置であってもよい。また、上記の記憶装置は、複数の装置から構成されてもよい。また、地
図DB10は、定期的に更新されてもよい。この場合、例えば、コントローラ13は、インターフェース11を介し、地図情報を管理するサーバ装置から、自己位置が属するエリアに関する部分地図情報を受信し、地
図DB10に反映させる。
【0033】
また、メモリ12には、地
図DB10の他、本実施例において情報処理装置1が実行する処理に必要な情報が記憶される。例えば、メモリ12には、ライダ3が1周期分の走査を行った場合に得られる点群データに対してダウンサンプリングを行う場合のダウンサンプリングのサイズの設定に用いられる情報が記憶される。
【0034】
コントローラ13は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などの1又は複数のプロセッサを含み、情報処理装置1の全体を制御する。この場合、コントローラ13は、メモリ12等に記憶されたプログラムを実行することで、自己位置推定及び運転支援等に関する処理を行う。
【0035】
また、コントローラ13は、機能的には、自己位置推定部15を有する。そして、コントローラ13は、「取得手段」、「検出手段」、「判定手段」、「フィルタ手段」、「位置推定手段」及びプログラムを実行するコンピュータ等として機能する。
【0036】
自己位置推定部15は、ライダ3の出力に基づく点群データと、当該点群データが属するボクセルに対応するボクセルデータVDとに基づき、NDTに基づくスキャンマッチング(NDTスキャンマッチング)を行うことで、自己位置の推定を行う。ここで、自己位置推定部15による処理対象となる点群データは、ライダ3が生成した点群データであってもよく、当該点群データをダウンサンプリング処理した後の点群データであってもよい。
【0037】
(3)NDTスキャンマッチング
次に、自己位置推定部15が実行するNDTスキャンマッチングに基づく位置推定に関する説明を行う。
【0038】
図3は、自己位置推定部15が推定すべき自己位置を3次元直交座標で表した図である。
図3に示すように、xyzの3次元直交座標上で定義された平面での自己位置は、座標「(x、y、z)」、対象船舶のロール角「φ」、ピッチ角「θ」、ヨー角(方位)「ψ」により表される。ここでは、ロール角φは、対象船舶の進行方向を軸とした回転角、ピッチ角θは、xy平面に対する対象船舶の進行方向の仰角、ヨー角ψは、対象船舶の進行方向とx軸とのなす角として定義されている。座標(x、y、z)は、例えば緯度、経度、標高の組合せに相当する絶対位置、あるいは所定地点を原点とした位置を示すワールド座標である。そして、自己位置推定部15は、これらのx、y、z、φ、θ、ψを推定パラメータとする自己位置推定を行う。
【0039】
次に、NDTスキャンマッチングに用いるボクセルデータVDについて説明する。ボクセルデータVDは、各ボクセル内の静止構造物の計測された点群データを正規分布により表したデータを含む。
【0040】
図4は、ボクセルデータVDの概略的なデータ構造の一例を示す。ボクセルデータVDは、ボクセル内の点群を正規分布で表現する場合のパラメータの情報を含み、本実施例では、
図4に示すように、ボクセルIDと、ボクセル座標と、平均ベクトルと、共分散行列とを含む。
【0041】
「ボクセル座標」は、各ボクセルの中心位置などの基準となる位置の絶対的な3次元座標を示す。なお、各ボクセルは、空間を格子状に分割した立方体であり、予め形状及び大きさが定められているため、ボクセル座標により各ボクセルの空間を特定することが可能である。ボクセル座標は、ボクセルIDとして用いられてもよい。
【0042】
「平均ベクトル」及び「共分散行列」は、対象のボクセル内での点群を正規分布で表現する場合のパラメータに相当する平均ベクトル及び共分散行列を示す。なお、任意のボクセル「n」内の任意の点「i」の座標を
Xn(i)=[xn(i)、yn(i)、zn(i)]T
と定義し、ボクセルn内での点群数を「Nn」とすると、ボクセルnでの平均ベクトル「μn」及び共分散行列「Vn」は、それぞれ以下の式(1)及び式(2)により表される。
【0043】
【0044】
【0045】
次に、ボクセルデータVDを用いたNDTスキャンマッチングの概要について説明する。
【0046】
船舶を想定したNDTによるスキャンマッチングは、水平面(ここではxy座標とする)内の移動量及び船舶の向きを要素とした推定パラメータ
P=[tx、ty、tz、tφ、tθ、tψ]T
を推定することとなる。ここで、「tx」はx方向の移動量、「ty」はy方向の移動量、「tz」はz方向の移動量、「tφ」はロール角、「tθ」はピッチ角、「tψ」はヨー角を示す。
【0047】
また、ライダ3が出力する点群データの座標を、
XL(j)=[xn(j)、yn(j)、zn(j)]T
とすると、XL(j)の平均値「L´n」は、以下の式(3)により表される。
【0048】
【数3】
そして、上述の推定パラメータPを用い、平均値L´を公知の座標変換処理に基づき座標変換する。以後では、変換後の座標を「L
n」とする。
【0049】
そして、自己位置推定部15は、地
図DB10と同一の座標系である絶対的な座標系(「ワールド座標系」とも呼ぶ。)に変換した点群データに対応付けられるボクセルデータVDを探索し、そのボクセルデータVDに含まれる平均ベクトルμ
nと共分散行列V
nとを用い、ボクセルnの評価関数値(「個別評価関数値」とも呼ぶ。)「E
n」を算出する。この場合、自己位置推定部15は、以下の式(4)に基づき、ボクセルnの個別評価関数値E
nを算出する。
【0050】
【0051】
そして、自己位置推定部15は、以下の式(5)により示される、マッチングの対象となる全てのボクセルを対象とした総合的な評価関数値(「スコア値」とも呼ぶ。)「E(k)」を算出する。スコア値Eは、マッチングの適合度を示す指標となる。
【0052】
【数5】
その後、自己位置推定部15は、ニュートン法などの任意の求根アルゴリズムによりスコア値E(k)が最大となるとなる推定パラメータPを算出する。そして、自己位置推定部15は、時刻kにおいてデッドレコニングにより算出した位置(「DR位置」とも呼ぶ。)「X
DR(k)」に対し、推定パラメータPを適用することで、NDTスキャンマッチングに基づく自己位置(「NDT位置」とも呼ぶ。)「X
NDT(k)」を算出する。ここで、DR位置X
DR(k)は、推定自己位置X^(k)の算出前の暫定的な自己位置に相当し、予測自己位置「X
-(k)」とも表記する。この場合、NDT位置X
NDT(k)は、以下の式(6)により表される。
【0053】
【数6】
そして、自己位置推定部15は、NDT位置X
NDT(k)を、現在の処理時刻kでの最終的な自己位置の推定結果(「推定自己位置」とも呼ぶ。)「X^(k)」とみなす。
【0054】
(4)水面反射データ除去処理
自己位置推定部15は、NDT位置の算出に用いる点群データから、水面で反射したライダ3の出射光をライダ3が受光することで生成されたデータ(「水面反射データ」とも呼ぶ。)を除去する水面反射データ除去処理を行う。これにより、自己位置推定部15は、実際とは異なる不正確な場所を表す水面反射データをノイズデータ(誤検出データ又は誤警報データとも呼ぶ。)とみなし、位置推定などで用いる点群データから好適に除去して位置推定などの処理精度を向上させる。
【0055】
(4-1)水面反射データの説明
まず、水面反射データが誤検出データとなることについて、
図5(A)及び
図5(B)を参照して説明する。
【0056】
図5(A)は、対象船舶に設けられたライダ3の配置の一例を示す対象船舶の俯瞰図である。
図5(A)では、一例として4個のライダ3が対象船舶に設けられており、各ライダ3は、角度を変えながら所定の角度範囲においてパルス光を出射する。なお、ライダ3の個数及び配置は
図5(A)に示す例に限られない。
【0057】
図5(B)は、構造物50に近接する対象船舶を後方から観察した図である。出射光のうち下方に向いたものは、水面上に物体が存在しなければライダ3にはほとんど戻らないが、一部の光がライダ3に戻ってデータとして検出される。
図5(B)では、ライダ3が出射する光の軌跡及びライダ3が生成する点群データを構成する各計測点が表す計測位置「P1」~「P10」が明示されている。また、位置「Pa8」~「Pa10」は、計測位置P8~P10の計測に用いたライダ3の光が水面反射後に構造物50に照射された位置を表す。
【0058】
上述したように、下方に向いたライダ3の出射光の一部は、水面で反射してライダ3に戻ってくる場合がある。この場合、
(a)水面で反射した光が直接ライダ3に戻ってきてライダ3が受光するパターン
(b)水面で反射した光が構造物に当たり、その散乱光の一部が再度水面で反射し、それをライダ3が受光するパターン
の2つのパターンが存在する。これらのパターンにより生成されたライダ3の点群データが水面反射データとなる。
【0059】
図5(B)の計測位置P1~P3は、パターン(a)に基づき計測された位置に相当する。この場合、計測位置P1~P3に対応する水面位置に物体があるかのような水面反射データがライダ3により生成される。
【0060】
また、計測位置P8~P10は、夫々、ライダ3の光が構造物50の位置Pa8~Pa10で反射してライダ3に戻ることで計測された位置であり、パターン(b)に基づき計測された位置に相当する。この場合、水面で反射したものであることをライダ3は認識できないので、水面より下方に物体があるかのような不正確な水面反射データがライダ3により生成される。
【0061】
一方、計測位置P5~P7は、水面で反射することなく構造物50に直接照射した光の散乱光の一部をライダ3が受光することで計測された位置であり、構造物50の表面位置に相当する。従って、計測位置P5~P7を表す点群データは、誤検出データではなく、被計測物体の実際の位置を的確に表したデータとなる。
【0062】
次に、水面反射データとボクセルデータとの対応について、
図6(A)を参照して説明する。
図6(A)は、
図5(B)においてボクセルデータが存在するボクセルを明示した図である。
【0063】
ここで、パターン(a)により生成された計測位置P1~P3に対応する水面反射データは、本来NDTスキャンマッチングの対象ではないものであるが、その位置にはボクセルデータが存在しないため,対応付け処理で対象ボクセルが見つからず、NDT位置の算出には使用されない。このように、パターン(a)に基づく水面反射データは、NDTスキャンマッチング性能への影響はないものの、NDTスキャンマッチングでの対応付け処理等において無駄な処理が発生する。
【0064】
一方、計測位置P8~P10に対応するパターン(b)に基づく水面反射データは、近くにボクセルデータが存在するボクセルが存在するため、データとボクセルが対応付けされてしまい、NDT位置の演算に使用されてしまう可能性もある。従って、パターン(b)に基づく水面反射データは、NDTマッチング性能が悪化する原因となる。具体的には、計測位置P4~P7に対応する点群データに基づきNDT位置の算出を行えば良いところ、計測位置P8~P10に対応する水面反射データも使用することで、その近くに存在するボクセルに対応付けされて演算に用いられてしまい、NDT位置の誤差の要因となる。
【0065】
なお,沿岸に対応するボクセルデータは、基本的には干潮時に作成される。干潮時に作成することで、できるだけ岸壁下方のボクセルを作成するためである。それにより、運航時どのような潮位であっても、点群データと対応付けされるボクセルデータが存在することとなる。
【0066】
(4-2)水面反射データ除去処理の概要
次に、水面反射データ除去処理の概要について、
図6(B)を参照して説明する。
図6(B)は、
図6(A)において、ライダ3の高さ位置を表す破線51と水面位置を表す破線52とを明示した図である。
【0067】
自己位置推定部15は、パターン(a)に基づく水面反射データ(
図6(B)では、計測位置P1~P3に対応するデータ)を複数個取得し、そのz成分を平均化することで、ライダ3から水面までの高さ(「水面高さHw」とも呼ぶ。)を算出する。そして、自己位置推定部15は、沿岸付近の点群データに対し、上記で算出した水面高さHwより下方に位置するデータ(
図6(B)では、計測位置P8~P10に対応するデータ)を、水面反射データ(詳しくはパターン(b)に基づく水面反射データ)とみなす。そして、自己位置推定部15は、水面反射データとみなした点群データを、誤検出データと判定し、NDTスキャンマッチングの対象から除外する。この場合、自己位置推定部15は、水面高さHwの算出に用いたパターン(a)に基づく水面反射データについても、誤検出データと判定し、NDTスキャンマッチングの対象から除外する。
【0068】
これにより、自己位置推定部15は、不正確なデータがNDT位置の演算時のマッチングに使用されてしまうことを回避でき、正しいデータのみでNDT位置の演算処理を行うことが可能となる。また、船舶は水面に浮いているため、乗船者数や積荷量に応じて水中に沈みこむ量が変わり、水面高さHwが変化する場合であっても、自己位置推定部15は、的確に水面高さHwを算出することが可能となる。
【0069】
(4-3)機能ブロック
図7は、自己位置推定部15の機能ブロックの一例である。
図7に示すように、自己位置推定部15は、デッドレコニングブロック21と、座標変換ブロック22と、水面位置データ抽出ブロック23と、高さ方向処理ブロック24と、水面位置算出ブロック25と、フィルタブロック26と、水面反射データ除去ブロック27と、NDT位置算出ブロック28とを有する。
【0070】
デッドレコニングブロック21は、センサ群2が出力する信号に基づき、DR位置の算出を行う。具体的には、デッドレコニングブロック21は、速度センサ4及びIMU6等の出力に基づく対象船舶の移動速度と角速度を用い、前回時刻からの移動距離と方位変化を求める。そして、デッドレコニングブロック21は、現在の処理時刻kに対する直前の処理時刻である時刻k-1の推定自己位置X^(k-1)に対し、前回時刻からの移動距離と方位変化を加えた時刻kでのDR位置XDR(k)を算出する。このDR位置XDR(k)は、デッドレコニングに基づき時刻kにおいて求められた自己位置であり、予測自己位置X-(k)に相当する。なお、自己位置推定開始直後であって、時刻k-1の推定自己位置X^(k-1)が存在しない場合等には、デッドレコニングブロック21は、例えば、GPS受信機5が出力する信号に基づき、DR位置XDR(k)を定める。
【0071】
座標変換ブロック22は、ライダ3の出力に基づく点群データを、地
図DB10と同一の座標系であるワールド座標系に変換する。この場合、座標変換ブロック22は、例えば、時刻kでデッドレコニングブロック21が出力する予測自己位置に基づき、時刻kでの点群データの座標変換を行う。なお、移動体(本実施例では船舶)に設置されたライダを基準とした座標系の点群データを移動体の座標系に変換する処理、及び移動体の座標系からワールド座標系に変換する処理等については、例えば、国際公開WO2019/188745などに開示されている。
【0072】
水面位置データ抽出ブロック23は、水面高さHwの算出に用いるサンプルとなる水面位置を表すデータ(「水面位置データ」とも呼ぶ。)を、座標変換ブロック22が出力する点群データから抽出する。この場合、水面位置データ抽出ブロック23は、例えば、水面位置の絶対的な高さ(標高)に関する情報を提供するサーバ装置から当該水面位置の高さに関する情報を取得し、取得した情報に基づき特定される水面位置の絶対的な高さから所定範囲内の高さを表す計測点を、上述の水面位置データとして抽出する。例えば、気象庁等が提供している潮位情報を取得することで,水面位置を把握することが可能となる。
【0073】
高さ方向処理ブロック24は、水面位置データ抽出ブロック23が抽出した各計測点が表すz方向の位置(z座標値)の平均値と分散値を算出する。そして、水面位置算出ブロック25は、高さ方向処理ブロック24が算出した平均値及び分散値に基づき、現在の水面位置を算出する。
【0074】
具体的には、水面位置算出ブロック25は、高さ方向処理ブロック24が算出した分散値が所定の閾値よりも小さい場合に、高さ方向処理ブロック24が算出した平均値を用いて水面位置を更新する。一方、水面位置算出ブロック25は、高さ方向処理ブロック24が算出した分散値が所定の閾値以上の場合には、高さ方向処理ブロック24が算出した平均値の信頼性が低いと判断し、前回算出した水面位置を用い、水面位置の更新を行わない。
【0075】
ここで、高さ方向処理ブロック24及び水面位置算出ブロック25の処理について補足説明する。一般に、水面位置データ抽出ブロック23が抽出した各計測点が表すz座標値の分散値が大きいときは、他船の通過などによって波が大きくなった場合や、浮遊物が存在する場合に該当する可能性が高い。以上を勘案し、水面位置算出ブロック25は、高さ方向処理ブロック24が算出した分散値に基づき、水面位置の更新の要否を判定する。
【0076】
フィルタブロック26は、水面位置算出ブロック25が算出した水面位置に対し、過去に算出した水面位置との平均化処理又はフィルタリング処理を行うことで、現在の水面位置を決定する。この場合、例えば、フィルタブロック26は、水面位置算出ブロック25が過去に算出した直近の所定回分の水面位置と、水面位置算出ブロック25が現在の処理時刻に算出した水面位置との平均値(現在時刻との近さを考慮した重み付け平均であってもよい)を、現在の水面位置として算出する。他の例では、フィルタブロック26は、水面位置算出ブロック25が過去に算出した直近の所定回分の水面位置の平均と現在の処理時刻に水面位置算出ブロック25が算出した水面位置との差が所定値以上の場合に、現在の処理時刻に水面位置算出ブロック25が算出した水面位置の信頼性が低いと判定する。そして、この場合、フィルタブロック26は、現在の処理時刻に水面位置算出ブロック25が算出した水面位置を採用せず、前回時刻の水面位置を現在の水面位置とみなす。このように、フィルタブロック26は、水面位置算出ブロック25が算出した最新の所定個数の水面位置に基づき、適切な水面位置を決定することができる。
【0077】
また、水面位置算出ブロック25又はフィルタブロック26は、誤検出データを確実に除去するため、設定する水面位置に対し、所定距離だけ上方になるようにオフセットを設けてもよい。このオフセットは、例えば、メモリ12等に予め記憶されている。この場合、水面位置算出ブロック25又はフィルタブロック26は、上述した演算により決定した水面位置に対し、メモリ12等に予め記憶されたオフセットを加算した値を、次の処理ブロックに出力すべき水面位置として決定する。
【0078】
なお、フィルタブロック26の存在は必須ではなく、設けられなくともよい。
【0079】
水面反射データ除去ブロック27は、フィルタブロック26から供給される水面位置よりも下方(同一高さを含む、以下同じ。)の位置(即ちz座標値が同一又は低い位置)を表す点群データの各計測点を水面反射データと判定し、判定した水面反射データを点群データから除去する。なお、水面反射データ除去ブロック27は、水面位置データ抽出ブロック23が抽出した水面位置データについても水面反射データとみなし、NDT位置算出ブロック28に供給すべき点群データから除外するとよい。これにより、水面反射データ除去ブロック27は、パターン(a)及びパターン(b)に夫々該当する水面反射データを的確に特定し、NDT位置算出ブロック28に用いるデータから除外することができる。
【0080】
NDT位置算出ブロック28は、水面反射データ除去ブロック27から供給される水面反射データ除去後の点群データに基づいてNDT位置を算出する。この場合、NDT位置算出ブロック28は、水面反射データ除去ブロック27から供給されるワールド座標系の点群データと、同じワールド座標系で表されたボクセルデータVDとを照合することで、点群データとボクセルとの対応付けを行う。そして、NDT位置算出ブロック28は、点群データと対応付けがなされた各ボクセルを対象として、式(4)に基づく個別評価関数値を算出し、式(5)に基づくスコア値E(k)が最大となるとなる推定パラメータPを算出する。そして、NDT位置算出ブロック28は、式(6)に基づき、デッドレコニングブロック21が出力するDR位置XDR(k)に対し、時刻kで求めた推定パラメータPを適用することで定まる時刻kでのNDT位置XNDT(k)を求める。NDT位置算出ブロック28は、NDT位置XNDT(k)を、時刻kでの推定自己位置X^(k)として出力する。この場合、NDT位置算出ブロック28は、誤検出データである水面反射データが除去された点群データに基づき、NDT位置XNDT(k)を高精度に算出することができる。また、点群データとボクセルとの対応付けでは、誤検出データである水面反射データが対応付けの対象から除外されているため、処理負荷が好適に低減される。
【0081】
なお、一般に、船舶には揺れがあり、高さ変動や姿勢変化は水面位置を算出する際の誤差要因となる。そのため
図7では、ライダ3が生成した点群データを座標変換ブロック22でワールド座標系に変換した後に、水面位置データ抽出ブロック23で水面位置データを抽出している。また、他の方法として、ワールド座標系への座標変換を行わずに、ライダ3が生成した点群データから水面反射データを除去しても良い。その場合、座標変換ブロック22を通さずに、ライダ3が生成した点群データを水面位置データ抽出ブロック23に入力する。その後、高さ方向処理ブロック24、水面位置算出ブロック25、フィルタブロック26、水面反射データ除去ブロック27を経由し、水面反射データを除去した後で、座標変換ブロック22に入力してワールド座標系に変換する構成となる。この場合、フィルタブロック26のフィルタ時定数を長めにすることで、船舶の揺れの影響を低減できる。
【0082】
(5)
処理フロー
図8は、情報処理装置1の自己位置推定部15が実行する自己位置推定処理の手順を示すフローチャートの一例である。自己位置推定部15は、
図8のフローチャートの処理を、電源がオンになった場合など、自己位置推定を行う必要が生じた場合に開始する。
【0083】
まず、自己位置推定部15は、自己位置推定処理の開始直後において、GPS受信機5が出力するデータに基づくGPS測位結果から予測自己位置を算出する(ステップS11)。
【0084】
次に、自己位置推定部15は、速度センサ4とIMU6等に基づき検出した対象船舶の移動速度及び角速度と、前回の推定自己位置とから、デッドレコニングを実行し、予測自己位置となるDR位置XDRを算出する(ステップS12)。次に、自己位置推定部15は、ライダ3の出力に基づく点群データを、ワールド座標系の点群データに変換する(ステップS13)。
【0085】
次に、自己位置推定部15は、ステップS13でワールド座標系に変換した点群データから水面位置データを抽出する(ステップS14)。そして、自己位置推定部15は、複数フレームでの水面位置データ(即ちライダ3の直近の複数周期にわたる走査により得られた水面位置データ)を収集し、水面位置データの数(計測点数)が所定のデータ数に達した場合、z方向の平均と分散を算出する(ステップS15)。なお、水面位置データが所定のデータ数に達しない場合には、例えば、自己位置推定部15は、直前にステップS17で判定した水面位置を現在の水面位置とみなし、ステップS18へ処理を進める。
【0086】
次に、自己位置推定部15は、ステップS15で算出した分散値が所定の閾値未満であるか否か判定する(ステップS16)。そして、自己位置推定部15は、ステップS15で算出した分散値が所定の閾値未満である場合(ステップS16;Yes)、ステップS15で算出した平均値を用いて水面位置を更新する(ステップS17)。一方、自己位置推定部15は、ステップS15で算出した分散値が所定の閾値以上である場合(ステップS16;No)、水面位置の更新を行わずステップS18へ処理を進める。なお、自己位置推定部15は、
図7のフィルタブロック26が実行する平均化処理又はフィルタ処理をさらに行って、最終的な水面位置を決定してもよい。
【0087】
そして、自己位置推定部15は、判定した水面位置よりも下方に位置するデータを、水面反射データと判定する(ステップS18)。この場合、自己位置推定部15は、好適には、ステップS14で抽出した水面位置データについても、水面反射データと判定するとよい。そして、自己位置推定部15は、水面反射データと判定したデータを、NDT処理対象の点群データから除外する(ステップS19)。
【0088】
そして、自己位置推定部15は、ステップS12で算出したDR位置XDRを初期値として、ステップS19で水面反射データが除外された後のNDTマッチング処理を実施することで、推定自己位置X^とするNDT位置XNDTを算出する(ステップS20)。また、自己位置推定部15は、ステップS20の直前において、水面反射データが除外された後の点群データに対してダウンサンプリングを実行してもよい。
【0089】
次に、自己位置推定部15は、自己位置推定処理を終了すべきか否か判定する(ステップS21)。そして、自己位置推定部15は、自己位置推定処理を終了すべきと判定した場合(ステップS21;Yes)、フローチャートの処理を終了する。一方、自己位置推定部15は、自己位置推定処理を継続する場合(ステップS21;No)、ステップS12へ処理を戻し、ステップS20で算出した推定自己位置X^を用いて、次の処理時刻での自己位置の推定を行う。
【0090】
(6)実験結果に基づく考察
次に、上述した実施例に関する実験結果について考察する。
【0091】
出願人は、ある水路に対して事前に作成した沿岸用のボクセルデータ(ND地図)と、運航中の船舶に設けたライダにより得られた点群データをマッチングさせてNDT位置推定を行った。この実験では、長距離(100m)の全周囲(水平360度)タイプのライダであって、動作周波数10Hz(周期100ms)となるライダを用いた。また、精度評価のために、正解となる位置データとして、RTK-GPSの測位結果を用いた。
【0092】
なお、本実験では、ライダにより得られた点群データに対してダウンサンプリングを行っている。この場合、ダウンサンプリングのサイズは、NDTスキャンマッチングにおいて、ダウンサンプリング後の点群データのうちボクセルデータVDと対応付けられた計測点数(「対応計測点数」とも呼ぶ。)が所定の目標範囲となるように、各処理時刻において適応的に変更されるものとする。例えば、自己位置推定部15は、各処理時刻において、対応計測点数が目標範囲の上限より多い時には、次の処理時刻でのダウンサンプリングサイズを所定率(例えば1.1倍)又は所定値だけ大きくし、対応計測点数が目標範囲の下限より少ない時には、次の処理時刻でのダウンサンプリングサイズを所定率又は所定値だけ小さくする。一方、自己位置推定部15は、各処理時刻において、対応計測点数が目標範囲内である場合には、ダウンサンプリングサイズを維持する。このようなダウンサンプリングサイズの適応的設定では、対応計測点数が多いほどダウンサンプリングサイズが大きくなるため、ダウンサンプリングサイズが大きいほどNDT処理の信頼度が高くなることが推察される。
【0093】
図9(A)~
図9(E)及び
図10(A)~
図10(F)は、水面反射データを除去せずにNDT位置推定を行う比較例に係る自車位置推定結果を示す。ここで、
図9(A)は、ダウンサンプリング前の点群データの計測点数、
図9(B)は、ダウンサンプリングのサイズ、
図9(C)は、ダウンサンプリング後の計測点数及び対応計測点数、
図9(D)は、対応付け比率DAR(Data Association Ratio)、
図9(E)は、スコア値Eを夫々示す。また、
図10(A)は、NDTスキャンマッチングの信頼度値「NRV(NDT Reliability Value)」、
図10(B)は、NRVを0~1の値域となるように正規化したNDTスキャンマッチングの信頼度指標「NRI:NDT Reliability Index)」を夫々示す。また、RTK-GPSの測位結果に対して、
図10(C)は進行方向の誤差、
図10(D)は横方向の誤差、
図10(E)は高さ方向の誤差、
図10(F)はヨー角の誤差を夫々示す。
【0094】
ここで、対応付け比率DARは、NDTスキャンマッチングの信頼度の指標の1つであり、NDTスキャンマッチングに用いる点群データの計測点数のうちボクセルデータVDと対応付けられた計測点数(即ち対応計測点数)の比率(=対応計測点数/計測点数)を表す。一般的に、対応付け比率DARが低いほど、NDTスキャンマッチングによる位置推定精度が低下する傾向がある。
【0095】
また、信頼度値NRV及び信頼度指標NRIは、NDT位置の信頼度の指標であり、信頼度値NRVは、ダウンサンプリングサイズを「DSS」とすると、スコア値E及び対応付け比率DARをさらに用いて、以下の式により算出される。
NRV=DSS×E×DAR
さらに、信頼度指標NRIは、信頼度値NRVを0~1の値域となるように正規化した指標を表す。
【0096】
比較例に係る実験結果について考察すると、比較例では、水面反射データを含む点群データによりNDTスキャンマッチングを行っていることから、
図9(C)に示される、ダウンサンプリング後の計測点数と対応計測点数とに若干の差が生じている。その結果、
図9(D)に示される対応付け比率DARは、よいところでも0.75程度となっている。一方、
図10(C)~
図10(F)に示される各誤差は、あまり大きくはないため、問題にはなっていない。
【0097】
図11(A)~
図11(E)及び
図12(A)~
図12(F)は、水面反射データを除去してNDT位置推定を行う本実施例に係る自車位置推定結果を示す。ここで、
図11(A)は、ダウンサンプリング前の点群データの計測点数、
図11(B)は、ダウンサンプリングのサイズ、
図11(C)は、ダウンサンプリング後の計測点数及び対応計測点数、
図11(D)は、対応付け比率DAR、
図11(E)は、スコア値Eを夫々示す。また、
図12(A)は、NDTスキャンマッチングの信頼度値NRV、
図12(B)は、信頼度指標NRIを夫々示す。また、RTK-GPSの測位結果に対して、
図12(C)は進行方向の誤差、
図12(D)は横方向の誤差、
図12(E)は高さ方向の誤差、
図12(F)はヨー角の誤差を夫々示す。なお、この実験では、情報処理装置1は、水面反射データの除去後の点群データに対してダウンサンプリングを実行している。
【0098】
この実験結果では、水面反射データをNDTスキャンマッチングの対象から外したことで、
図11(A)に示される、ダウンサンプリング前の計測点数が比較例の場合と比べて減少している。また、対応付けされないデータである水面反射データを予め除去しているため、
図11(C)に示される、ダウンサンプリング後の計測点数と対応計測点数とが近くなり、
図11(D)に示される対応付け比率DARは、良いところで0.8以上となっている。また、
図11(E)に示されるスコア値も若干大きくなっている(即ち改善している)。さらに、
図12(C)~
図12(F)に示される各誤差は、比較例と比べて大きく改善したわけではないが、
図12(B)に示される信頼度指標NRIは1に近いものとなっている。以上を勘案すると、本実施例では、比較例と比較して安定性が向上していると判断できる。
【0099】
(7)変形例
以下、上述の実施例に好適な変形例について説明する。以下の変形例は、組み合わせてこれらの実施例に適用してもよい。
【0100】
(変形例1)
水面高さHwの算出方法は、水面位置データのz方向の平均(及び分散)に基づく算出方法に限定されない。
【0101】
例えば、情報処理装置1は、対象船舶を撮影した画像を外部装置(例えば岸に設けられたカメラ等)から受信し、当該画像を解析することで、対象船舶に対する相対的な水面位置を認識し、認識した水面位置と、対象船舶におけるライダ3の設置位置とに基づき、水面高さHwを算出する。この場合、情報処理装置1は、船舶を撮影した画像が入力された場合に水面位置に関する推論結果を出力する推論モデルを用いて、上述の水面位置の認識を行ってもよい。この推論モデルは、例えば、深層学習等に基づき予め学習されたモデルであり、学習済みのパラメータがメモリ12等に予め記憶されている。なお、対象船舶におけるライダ3の設置位置は、例えば、予めメモリ12等に記憶されている。他の例では、情報処理装置1は、対象船舶に対する相対的な水面位置を検出するためのセンサが対象船舶に設けられている場合には、当該センサの出力に基づき、水面位置を認識することで、水面高さHwを算出してもよい。
【0102】
(変形例2)
情報処理装置1は、点群データからの水面反射データの除去に加えて、水面位置より(高さ方向において)下に位置するボクセルのボクセルデータVDを、NDTスキャンマッチングにおける点群データとの対応付けの対象から除外してもよい。
【0103】
ここで、その推定した水面位置より下方に存在するボクセルは水面下にあるため,自己位置推定の対象にはならない。以上を勘案し、本変形例では、情報処理装置1は、点群データとの対応付けの対象から上記のボクセルのボクセルデータVDを除外して(即ち無いものとみなして)NDT位置の算出を行う。これにより、情報処理装置1は、点群データとボクセルとの対応付けを行う際に、不必要な処理を省くことができ、対応付けの誤りに起因した位置推定精度の低下を好適に抑制することができる。
【0104】
(変形例3)
ボクセルデータVDは、
図4に示すように、平均ベクトルと共分散行列とを含むデータ構造に限定されない。例えば、ボクセルデータVDは、平均ベクトルと共分散行列を算出する際に用いられる点群データをそのまま含んでいてもよい。
【0105】
(変形例4)
水面反射データを誤検出データとして除去した点群データの用途は、位置推定に限定されない。これに代えて、情報処理装置1は、自動着岸等の着岸支援における着岸場所の検出、障害物の検出などの種々の用途に用いてもよい。この場合であっても、情報処理装置1は、誤検出データを好適に除去し、点群データを用いる種々の処理を高精度に実行することができる。
【0106】
(変形例5)
水面位置データ抽出ブロック23は、潮位情報に基づき水面位置を求める代わりに、NDTスキャンマッチングに基づく位置推定の信頼度指標である対応付け比率DARに基づき、水面位置を推定してもよい。
【0107】
図13(A)~
図13(D)は、本変形例における水面位置推定処理の概要を示す図である。
【0108】
まず、第1ステップとして、水面位置データ抽出ブロック23は、現在の位置周辺のボクセルデータVDの中で最も低い位置にあるものを抽出し、そのz座標を暫定位置として、そこから下方の点群データを除外してNDT処理を行い、対応付け比率DARを求める(
図13(A)参照)。
図13(A)では、水面位置データ抽出ブロック23は、現在位置周辺において最も低い位置に存在するボクセルV1のz座標を暫定位置として定め、ボクセルV1より下方の計測点P20を削除した上でNDT処理を行う。
【0109】
次に、第2ステップとして、水面位置データ抽出ブロック23は、第1ステップで設定した暫定位置から少し上(例えばボクセル所定個数分だけ上)を新たな暫定位置とし、そこから下方のデータを除外してNDT処理を行い、対応付け比率DARを求める(
図13(B)参照)。そして、水面位置データ抽出ブロック23は、対応付け比率DARが第1ステップから向上したかどうかを判定する。そして、水面位置データ抽出ブロック23は、対応付け比率DARが向上したと判定した場合、さらに暫定位置を少し上にし、新たな暫定位置に基づき、データ除去、NDT処理、及び対応付け比率DARの算出を行う(
図13(C)参照)。
【0110】
そして、水面位置データ抽出ブロック23は、対応付け比率DARが変わらなかった場合(例えば、向上しなかった場合、又は、変化した比率が所定の閾値未満の場合)、水面反射データが十分に除外できていると判断し、前回の暫定位置を、水面位置として推定する。即ち、水面位置データ抽出ブロック23は、対応付け比率DARが変化しなくなる暫定位置を、水面位置として推定する。例えば、水面位置データ抽出ブロック23は、
図13(C)に示す破線位置を暫定位置とした場合に対応付け比率DARが向上したことから、
図13(D)に示す破線位置に暫定位置を更新したとする。その後、水面位置データ抽出ブロック23は、更新した暫定位置に基づき対応付け比率DARを算出し、算出した対応付け比率DARが前回の対応付け比率DARと変わらなかったことから、
図13(C)に示す破線位置を、水面位置として推定する。
【0111】
この方法によれば、水面位置データ抽出ブロック23は、潮位情報を用いることなく水面位置を推定できる。例えば、海から上流の河川の場合や、気圧の変化が大きい場合等、実際の水面位置は潮位情報との差異が大きい状況も存在するが、そのような場合でも水面位置を的確に推定することが可能となる。なお、この処理は、常に行う必要はなく、最初および所定時間ごと、あるいは船舶が多く移動したときに実施すれば良い。
【0112】
図14は、本変形例における水面位置推定処理の手順を示すフローチャートの一例である。
【0113】
まず、水面位置データ抽出ブロック23は、対応付け比率DARを0に初期化する(ステップS31)。そして、水面位置データ抽出ブロック23は、現在位置周辺(例えば現在位置から所定距離以内)のボクセルデータVDの中で、最も下方にあるデータ「VD_min」を抽出し、そのz値「VD_min(z)」を暫定位置「z_tmp」として設定する(ステップS32)。即ち、水面位置データ抽出ブロック23は、「z_tmp=VD_min(z)」とする。
【0114】
次に、水面位置データ抽出ブロック23は、ライダ3が出力する点群データのうち、暫定位置z_tmp以下のデータを除外してNDT処理を実施し、対応付け比率DARを算出する(ステップS33)。そして、水面位置データ抽出ブロック23は、ステップS33で算出した対応付け比率DARが前回の対応付け比率DARよりも向上したか否か判定する(ステップS34)。そして、水面位置データ抽出ブロック23は、ステップS33で算出した対応付け比率DARが前回の対応付け比率DARよりも向上したと判定した場合(ステップS34;Yes)、暫定位置z_tmpを所定量「h」だけ上にあげた位置を、新たな暫定位置z_tmpとして設定する(ステップS36)。即ち、この場合、水面位置データ抽出ブロック23は、前回の暫定位置を「z_tmp(前回)」、更新後の暫定位置を「z_tmp(今回)」とすると、「z_tmp(今回)=z_tmp(前回)+h」を計算する。そして、ステップS33へ処理を戻す。
【0115】
一方、水面位置データ抽出ブロック23は、ステップS33で算出した対応付け比率DARが前回の対応付け比率DARよりも向上しなかったと判定した場合(ステップS34;No)、前回の推定位置を推定水面位置として設定する(ステップS35)。この場合、水面位置データ抽出ブロック23は、推定水面位置を「z_est」とすると、「z_est=z_tmp(前回)」とする。
【0116】
このように、水面位置データ抽出ブロック23は、水面位置に対する複数の暫定位置を設定して算出した信頼度指標に基づき、各暫定位置の妥当性を判定する。これにより、信頼度指標が高くなるような暫定位置を推定水面位置として好適に設定することができる。
【0117】
以上説明したように、本実施例に係る情報処理装置1のコントローラ13は、水面位置を取得し、対象船舶に設けられたライダ3が生成する点群データのうち、水面位置より下方の位置を示すデータを、ライダ3が出射する光が水面で反射されることで生成された水面反射データとして検出する。そして、コントローラ13は、水面反射データを誤検出データと判定する。これにより、情報処理装置1は、ライダ3が生成する点群データから誤検出データを好適に除外して位置推定などの種々の処理を高精度に行うことができる。
【0118】
なお、上述した実施例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータであるコントローラ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。
【0119】
以上、実施例を参照して本願発明を説明したが、本願発明は上記実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0120】
1 情報処理装置
2 センサ群
3 ライダ
4 速度センサ
5 GPS受信機
6 IMU
10 地
図DB