(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023058961
(43)【公開日】2023-04-26
(54)【発明の名称】情報処理装置、制御方法、プログラム及び記憶媒体
(51)【国際特許分類】
B63B 49/00 20060101AFI20230419BHJP
G01C 21/20 20060101ALI20230419BHJP
B63B 79/20 20200101ALI20230419BHJP
B63B 79/10 20200101ALI20230419BHJP
B63B 79/40 20200101ALI20230419BHJP
【FI】
B63B49/00 Z
G01C21/20
B63B79/20
B63B79/10
B63B79/40
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021168799
(22)【出願日】2021-10-14
(71)【出願人】
【識別番号】000005016
【氏名又は名称】パイオニア株式会社
(71)【出願人】
【識別番号】520001073
【氏名又は名称】パイオニアスマートセンシングイノベーションズ株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(72)【発明者】
【氏名】加藤 正浩
【テーマコード(参考)】
2F129
【Fターム(参考)】
2F129AA14
2F129BB02
2F129BB03
2F129BB23
2F129BB24
2F129BB25
2F129BB33
2F129GG02
2F129GG18
2F129HH18
2F129HH21
(57)【要約】
【課題】船舶における自己位置推定の精度を向上させることが可能な情報処理装置等を提供する。
【解決手段】情報処理装置は、予測位置取得手段と、推定位置算出手段と、状態情報取得手段と、速度算出手段と、を有する。予測位置取得手段は、船舶の予測位置を取得する。推定位置算出手段は、船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、予測位置を更新した船舶の推定位置を算出する。状態情報取得手段は、船舶の状態情報を取得する。速度算出手段は、第1処理時刻での前記推定位置と、第1処理時刻の直前の第2処理時刻での前記推定位置と、状態情報に基づき設定した時定数とに基づき、第1処理時刻での船舶の速度を算出する。
【選択図】
図22
【特許請求の範囲】
【請求項1】
船舶の予測位置を取得する予測位置取得手段と、
前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出する推定位置算出手段と、
前記船舶の状態情報を取得する状態情報取得手段と、
第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する速度算出手段と、
を有する情報処理装置。
【請求項2】
前記状態情報には、前記船舶の加速度が含まれている請求項1に記載の情報処理装置。
【請求項3】
前記時定数は、前記船舶の加速度に応じて小さくなる値として設定される請求項2に記載の情報処理装置。
【請求項4】
前記状態情報には、前記船舶のスロットルレバーの変化量が含まれている請求項1に記載の情報処理装置。
【請求項5】
前記時定数は、前記船舶のスロットルレバーの変化量に応じて小さくなる値として設定される請求項4に記載の情報処理装置。
【請求項6】
前記状態情報には、前記船舶のプロペラ回転数の変化量が含まれている請求項1に記載の情報処理装置。
【請求項7】
前記時定数は、前記船舶のプロペラ回転数の変化量に応じて小さくなる値として設定される請求項6に記載の情報処理装置。
【請求項8】
前記状態情報には、前記船舶のインペラ回転数の変化量が含まれている請求項1に記載の情報処理装置。
【請求項9】
前記時定数は、前記船舶のインペラ回転数の変化量に応じて小さくなる値として設定される請求項8に記載の情報処理装置。
【請求項10】
前記予測位置取得手段は、前記第2処理時刻での前記推定位置と、前記第2処理時刻での前記船舶の速度と、に基づき、前記第1処理時刻での前記予測位置を取得する請求項1乃至9のいずれか一項に記載の情報処理装置。
【請求項11】
コンピュータが実行する制御方法であって、
船舶の予測位置を取得し、
前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出し、
前記船舶の状態情報を取得し、
第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する制御方法。
【請求項12】
船舶の予測位置を取得し、
前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出し、
前記船舶の状態情報を取得し、
第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する処理をコンピュータに実行させるプログラム。
【請求項13】
請求項12に記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、船舶の自己位置推定に関する。
【背景技術】
【0002】
レーザスキャナなどの計測装置を用いて計測した周辺物体の形状データを、予め周辺物体の形状が記憶された地図情報と照合(マッチング)することで、移動体の自己位置を推定する技術が従来知られている。例えば、特許文献1には、空間を所定の規則で分割したボクセル中における検出物が静止物か移動物かを判定し、静止物が存在するボクセルを対象として地図情報と計測データとのマッチングを行う自律移動システムが開示されている。また、特許文献2には、ボクセル毎の静止物体の平均ベクトルと共分散行列とを含むボクセルデータとライダが出力する点群データとの照合により自己位置推定を行うスキャンマッチング手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開WO2013/076829
【特許文献2】国際公開WO2018/221453
【発明の概要】
【発明が解決しようとする課題】
【0004】
昨今、自動車分野だけでなく、船舶においても、自動操船システム検討が進められており、安全な自動操船には精度の良い自己位置推定は同様に重要である。外洋では周辺に構造物が少ないためGNSS(Global Navigation Satellite System)により自己位置を測位可能であるが、都市部の沿岸や河川では高層ビル等が隣接するため、受信衛星数の低下やマルチパスなどによりGNSS電波の受信環境は悪く、精度の良い測位はできないことが多い。そのため、船舶においても、上記のスキャンマッチングによる高精度な自己位置推定を行うことができるように検討が進められている。
【0005】
しかし、船舶においては、潮流及び波の影響が推定位置の誤差となって現れることに起因し、自己位置推定の精度が低下してしまう、という課題が生じている。
【0006】
本発明は、上記の課題を解決するためになされたものであり、船舶における自己位置推定の精度を向上させることが可能な情報処理装置を提供することを主な目的とする。
【課題を解決するための手段】
【0007】
請求項に記載の発明は、情報処理装置であって、船舶の予測位置を取得する予測位置取得手段と、前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出する推定位置算出手段と、前記船舶の状態情報を取得する状態情報取得手段と、第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する速度算出手段と、を有する。
【0008】
また、請求項に記載の発明は、コンピュータが実行する制御方法であって、船舶の予測位置を取得し、前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出し、前記船舶の状態情報を取得し、第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する。
【0009】
また、請求項に記載の発明は、プログラムであって、船舶の予測位置を取得し、前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出し、前記船舶の状態情報を取得し、第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する処理をコンピュータに実行させる。
【図面の簡単な説明】
【0010】
【
図1A】第1実施例に係る運転支援システムの概略構成を示す図。
【
図1B】自己位置推定に用いられる角速度を説明するための図。
【
図2】第1実施例に係る情報処理装置のハードウェア構成の一例を示すブロック図。
【
図3】自己位置推定部が推定すべき自己位置を3次元直交座標で表した図。
【
図4】ボクセルデータVDの概略的なデータ構造の一例を示す図。
【
図5】自己位置推定部により行われる処理の一例を説明するための図。
【
図6】信頼度値NRVと信頼度指標NRIとの関係を表す図。
【
図7】信頼度指標NRIと時定数τとの関係を示す図。
【
図8】信頼度値NRVと時定数τとの関係を示す図。
【
図9A】フィルタ無しの状態でワールド座標系における速度を算出した場合の例を示す図。
【
図9B】フィルタの時定数τを固定した状態でワールド座標系における速度を算出した場合の例を示す図。
【
図10A】フィルタ無しの状態でワールド座標系における速度を算出した場合の例を示す図。
【
図10B】フィルタの時定数τを固定した状態でワールド座標系における速度を算出した場合の例を示す図。
【
図11A】フィルタ無しの状態でワールド座標系における速度を算出した場合の例を示す図。
【
図11B】フィルタの時定数τを変化させつつワールド座標系における速度を算出した場合の例を示す図。
【
図12A】フィルタ無しの状態で船舶の自己位置推定を行った場合の例を説明するための図。
【
図12B】フィルタ有りの状態で船舶の自己位置推定を行った場合の例を説明するための図。
【
図12C】フィルタ有りの状態で船舶の自己位置推定を行った場合の例を説明するための図。
【
図13】第1実施例に係る自己位置推定部の機能ブロックの一例を示す図。
【
図14】自己位置推定処理の手順の一例を示すフローチャート。
【
図15】実験時におけるライダの設置状態及びスキャン範囲を示す図。
【
図16A】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図16B】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図16C】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図16D】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図16E】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図16F】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図16G】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17A】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17B】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17C】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17D】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17E】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17F】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図17G】フィルタ無しの状態で速度を算出する比較例に係る自己位置推定結果を示す図。
【
図18A】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図18B】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図18C】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図18D】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図18E】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図18F】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図18G】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19A】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19B】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19C】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19D】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19E】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19F】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19G】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図19H】フィルタ有りの状態で速度を算出する実施例に係る自己位置推定結果を示す図。
【
図20】第2実施例に係る運転支援システムの概略構成を示す図。
【
図21】第2実施例に係る情報処理装置のハードウェア構成の一例を示すブロック図。
【
図22】第2実施例に係る自己位置推定部の機能ブロックの一例を示す図。
【
図23】加速度センサにより計測された加速度をワールド座標系の加速度に変換する際に行われる演算の概要を示す図。
【
図24】第3実施例に係る情報処理装置のハードウェア構成の一例を示すブロック図。
【
図25】第3実施例に係る自己位置推定部の機能ブロックの一例を示す図。
【発明を実施するための形態】
【0011】
本発明の1つの好適な実施形態では、情報処理装置は、船舶の予測位置を取得する予測位置取得手段と、前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出する推定位置算出手段と、前記船舶の状態情報を取得する状態情報取得手段と、第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する速度算出手段と、を有する。
【0012】
上記の情報処理装置は、予測位置取得手段と、推定位置算出手段と、状態情報取得手段と、速度算出手段と、を有する。予測位置取得手段は、船舶の予測位置を取得する。推定位置算出手段は、船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、予測位置を更新した船舶の推定位置を算出する。状態情報取得手段は、船舶の状態情報を取得する。速度算出手段は、第1処理時刻での前記推定位置と、第1処理時刻の直前の第2処理時刻での前記推定位置と、状態情報に基づき設定した時定数とに基づき、第1処理時刻での船舶の速度を算出する。これにより、船舶における自己位置推定の精度を向上させることができる。
【0013】
上記の情報処理装置の一態様では、前記状態情報には、前記船舶の加速度が含まれている。
【0014】
上記の情報処理装置の一態様では、前記時定数は、前記船舶の加速度に応じて小さくなる値として設定される。
【0015】
上記の情報処理装置の一態様では、前記状態情報には、前記船舶のスロットルレバーの変化量が含まれている。
【0016】
上記の情報処理装置の一態様では、前記時定数は、前記船舶のスロットルレバーの変化量に応じて小さくなる値として設定される。
【0017】
上記の情報処理装置の一態様では、前記状態情報には、前記船舶のプロペラ回転数の変化量が含まれている。
【0018】
上記の情報処理装置の一態様では、前記時定数は、前記船舶のプロペラ回転数の変化量に応じて小さくなる値として設定される。
【0019】
上記の情報処理装置の一態様では、前記状態情報には、前記船舶のインペラ回転数の変化量が含まれている。
【0020】
上記の情報処理装置の一態様では、前記時定数は、前記船舶のインペラ回転数の変化量に応じて小さくなる値として設定される。
【0021】
上記の情報処理装置の一態様では、前記予測位置取得手段は、前記第2処理時刻での前記推定位置と、前記第2処理時刻での前記船舶の速度と、に基づき、前記第1処理時刻での前記予測位置を取得する。
【0022】
本発明の他の実施形態では、コンピュータが実行する制御方法は、船舶の予測位置を取得し、前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出し、前記船舶の状態情報を取得し、第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する。これにより、船舶における自己位置推定の精度を向上させることができる。
【0023】
本発明のさらに他の実施形態では、プログラムは、船舶の予測位置を取得し、前記船舶に設けられた外界センサの出力に基づくデータと地図データとの照合に基づき、前記予測位置を更新した前記船舶の推定位置を算出し、前記船舶の状態情報を取得し、第1処理時刻での前記推定位置と、前記第1処理時刻の直前の第2処理時刻での前記推定位置と、前記状態情報に基づき設定した時定数とに基づき、前記第1処理時刻での前記船舶の速度を算出する処理をコンピュータに実行させる。このプログラムをコンピュータで実行することにより、上記の情報処理装置を実現することができる。このプログラムは記憶媒体に記憶して使用することができる。
【実施例0024】
以下、図面を参照して本発明の好適な実施例について説明する。なお、任意の記号の上に「・」、「^」または「-」が付された文字を、本明細書では便宜上、「A・」、「A^」または「A-」(「A」は任意の文字)と表す。
【0025】
<第1実施例>
まず、第1実施例について説明する。
【0026】
[運転支援システムの概要]
図1Aは、第1実施例に係る運転支援システムの概略構成を示す図である。本実施例に係る運転支援システムは、移動体である船舶と共に移動する情報処理装置1と、当該船舶に搭載されたセンサ群2と、を有する。以後では、情報処理装置1と共に移動する船舶を「対象船舶」とも呼ぶ。
【0027】
情報処理装置1は、センサ群2と電気的に接続し、センサ群2に含まれる各種センサの出力に基づき、情報処理装置1が設けられた対象船舶の位置(「自己位置」とも呼ぶ。)の推定を行う。そして、情報処理装置1は、自己位置の推定結果に基づき、対象船舶の自動運転制御等の運転支援を行う。運転支援には、自動着岸などの着岸支援も含まれる。ここで、「着岸」とは、岸壁に対象船舶を着ける場合の他、桟橋等の構造体に対象船舶を着ける場合も含まれる。情報処理装置1は、対象船舶に設けられたナビゲーション装置であってもよく、船舶に内蔵された電子制御装置であってもよい。
【0028】
また、情報処理装置1は、ボクセルデータ「VD」を含む地図データベース(DB:DataBase)10を記憶する。ボクセルデータVDは、3次元空間の最小単位となる立方体(正規格子)を示すボクセルごとに静止構造物の位置情報等を記録したデータである。ボクセルデータVDは、各ボクセル内の静止構造物の計測された点群データを正規分布により表したデータを含み、後述するように、NDT(Normal Distributions Transform)を用いたスキャンマッチングに用いられる。情報処理装置1は、NDTスキャンマッチングにより、例えば、対象船舶の平面上の位置、高さ位置、ヨー角、ピッチ角及びロール角の推定を行う。なお、特に言及がない限り、自己位置は、対象船舶のヨー角などの姿勢角も含まれるものとする。
【0029】
図1Bは、自己位置推定に用いられる角速度を説明するための図である。センサ群2は、対象船舶に設けられた種々の外界センサ及び内界センサを含んでいる。本実施例では、センサ群2は、ライダ(Lidar:Light Detection and Ranging、または、Laser Illuminated Detection And Ranging)3と、GPS(Global Positioning System)受信機5と、3軸方向における対象船舶の角速度を計測する慣性計測装置(IMU:Inertial Measurement Unit)6とを含んでいる。具体的には、IMU6は、
図1Bに示すように、対象船舶の進行方向を軸とした角速度ω
xと、当該対象船舶の横方向(左右方向)を軸とした角速度ω
yと、該対象船舶の上下方向を軸とした角速度ω
zと、を計測する。
【0030】
ライダ3は、水平方向および垂直方向の所定の角度範囲に対してパルスレーザを出射することで、外界に存在する物体までの距離を離散的に測定し、当該物体の位置を示す3次元の点群データを生成する。この場合、ライダ3は、照射方向を変えながらレーザ光を照射する照射部と、照射したレーザ光の反射光(散乱光)を受光する受光部と、受光部が出力する受光信号に基づくスキャンデータ(点群データを構成する点であり、以後では「計測点」とも呼ぶ。)を出力する出力部と、を有する。計測点は、受光部が受光したレーザ光に対応する照射方向と、上述の受光信号に基づき特定される当該レーザ光の応答遅延時間とに基づき生成される。なお、一般的に、対象物までの距離が近いほどライダの距離測定値の精度は高く、距離が遠いほど精度は低い。なお、ライダ3は、上述したスキャン型のライダに限らず、2次元アレイ状のセンサの視野にレーザ光を拡散照射することによって3次元データを生成するフラッシュ型のライダであってもよい。
【0031】
なお、センサ群2は、GPS受信機5に代えて、GPS以外のGNSSの測位結果を生成する受信機を有してもよい。
【0032】
[情報処理装置の構成]
図2は、第1実施例に係る情報処理装置のハードウェア構成の一例を示すブロック図である。情報処理装置1は、主に、インターフェース11と、メモリ12と、コントローラ13と、を有する。これらの各要素は、バスラインを介して相互に接続されている。
【0033】
インターフェース11は、情報処理装置1と外部装置とのデータの授受に関するインターフェース動作を行う。本実施例では、インターフェース11は、ライダ3、GPS受信機5及びIMU6などのセンサ群2の各センサから出力データを取得し、コントローラ13へ供給する。また、インターフェース11は、例えば、コントローラ13が生成した対象船舶の制御に関する信号を、対象船舶の運転を制御する対象船舶の各構成要素に供給する。例えば、対象船舶は、エンジンや電気モータなどの駆動源と、駆動源の駆動力に基づき進行方向の推進力を生成するスクリューと、駆動源の駆動力に基づき横方向の推進力を生成するスラスターと、船舶の進行方向を自在に定めるための機構である舵等とを備える。そして、自動着岸などの自動運転時には、インターフェース11は、コントローラ13が生成した制御信号を、これらの各構成要素に供給する。なお、対象船舶に電子制御装置が設けられている場合には、インターフェース11は、当該電子制御装置に対し、コントローラ13が生成した制御信号を供給する。インターフェース11は、無線通信を行うためのネットワークアダプタなどのワイヤレスインターフェースであってもよく、ケーブル等により外部装置と接続するためのハードウェアインターフェースであってもよい。また、インターフェース11は、入力装置、表示装置、音出力装置等の種々の周辺装置とのインターフェース動作を行ってもよい。
【0034】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスクドライブ、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。メモリ12は、コントローラ13が所定の処理を実行するためのプログラムが記憶される。なお、コントローラ13が実行するプログラムは、メモリ12以外の記憶媒体に記憶されてもよい。
【0035】
また、メモリ12は、ボクセルデータVDを含む地
図DB10を記憶する。地
図DB10には、ボクセルデータVDの他、例えば、着岸場所(岸、桟橋を含む)に関する情報、船舶が移動可能な水路に関する情報などが含まれている。なお、地
図DB10は、インターフェース11を介して情報処理装置1と接続されたハードディスクなどの情報処理装置1の外部の記憶装置に記憶されてもよい。上記の記憶装置は、情報処理装置1と通信を行うサーバ装置であってもよい。また、上記の記憶装置は、複数の装置から構成されてもよい。また、地
図DB10は、定期的に更新されてもよい。この場合、例えば、コントローラ13は、インターフェース11を介し、地図情報を管理するサーバ装置から、自己位置が属するエリアに関する部分地図情報を受信し、地
図DB10に反映させる。
【0036】
また、メモリ12には、地
図DB10の他、本実施例において情報処理装置1が実行する処理に必要な情報が記憶される。例えば、メモリ12には、ライダ3が1周期分の走査を行った場合に得られる点群データに対してダウンサンプリングを行う場合のダウンサンプリングのサイズの設定に用いられる情報が記憶される。
【0037】
コントローラ13は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などの1又は複数のプロセッサを含み、情報処理装置1の全体を制御する。この場合、コントローラ13は、メモリ12等に記憶されたプログラムを実行することで、自己位置推定及び運転支援等に関する処理を行う。
【0038】
また、コントローラ13は、機能的には、自己位置推定部15を有する。そして、コントローラ13は、「予測位置取得手段」、「推定位置算出手段」、「状態情報取得手段」、「速度算出手段」及びプログラムを実行するコンピュータ等として機能する。
【0039】
自己位置推定部15は、ライダ3の出力に基づく点群データと、当該点群データが属するボクセルに対応するボクセルデータVDとに基づき、NDTに基づくスキャンマッチング(NDTスキャンマッチング)を行うことで、自己位置の推定を行う。ここで、自己位置推定部15による処理対象となる点群データは、ライダ3が生成した点群データであってもよく、当該点群データをダウンサンプリング処理した後の点群データであってもよい。
【0040】
[NDTスキャンマッチング]
次に、自己位置推定部15が実行するNDTスキャンマッチングに基づく位置推定に関する説明を行う。
【0041】
図3は、自己位置推定部15が推定すべき自己位置を3次元直交座標で表した図である。
図3に示すように、xyzの3次元直交座標上で定義された3次元空間での自己位置は、座標「(x,y,z)」、対象船舶のロール角「φ」、ピッチ角「θ」、ヨー角(方位)「ψ」により表される。ここでは、ロール角φは、対象船舶の進行方向を軸とした回転角、ピッチ角θは、xy平面に対する対象船舶の進行方向の仰角、ヨー角ψは、対象船舶の進行方向とx軸とのなす角として定義されている。座標(x、y、z)は、例えば緯度、経度、標高の組合せに相当する絶対位置、あるいは所定地点を原点とした位置を示すワールド座標である。そして、自己位置推定部15は、これらのx、y、z、φ、θ、ψを推定パラメータとする自己位置推定を行う。
【0042】
次に、NDTスキャンマッチングに用いるボクセルデータVDについて説明する。ボクセルデータVDは、各ボクセル内の静止構造物の計測された点群データを正規分布により表したデータを含む。
【0043】
図4は、ボクセルデータVDの概略的なデータ構造の一例を示す図である。ボクセルデータVDは、ボクセル内の点群を正規分布で表現する場合のパラメータの情報を含み、本実施例では、
図4に示すように、ボクセルIDと、ボクセル座標と、平均ベクトルと、共分散行列とを含む。
【0044】
「ボクセル座標」は、各ボクセルの中心位置などの基準となる位置の絶対的な3次元座標を示す。なお、各ボクセルは、空間を格子状に分割した立方体であり、予め形状及び大きさが定められているため、ボクセル座標により各ボクセルの空間を特定することが可能である。ボクセル座標は、ボクセルIDとして用いられてもよい。
【0045】
「平均ベクトル」及び「共分散行列」は、対象のボクセル内での点群を正規分布で表現する場合のパラメータに相当する平均ベクトル及び共分散行列を示す。なお、任意のボクセル「n」内の任意の点「i」の座標を
Xn(i)=[xn(i)、yn(i)、zn(i)]T
と定義し、ボクセルn内での点群数を「Nn」とすると、ボクセルnでの平均ベクトル「μn」及び共分散行列「Vn」は、それぞれ以下の式(1)及び式(2)により表される。
【0046】
【0047】
次に、ボクセルデータVDを用いたNDTスキャンマッチングの概要について説明する。
【0048】
船舶を想定したNDTによるスキャンマッチングは、3次元空間(ここではxyz座標とする)内の移動量及び船舶の向きを要素とした推定パラメータ
P=[tx、ty、tz、tφ、tθ、tψ]T
を推定することとなる。ここで、「tx」はx方向の移動量、「ty」はy方向の移動量、「tz」はz方向の移動量、「tφ」はロール角、「tθ」はピッチ角、「tψ」はヨー角を示す。
【0049】
また、ライダ3が出力する点群データの座標を、
XL(j)=[xn(j)、yn(j)、zn(j)]T
とすると、XL(j)の平均値「L´n」は、以下の式(3)により表される。このような演算により、点群データがダウンサンプリングされる。
【0050】
【0051】
そして、上述の推定パラメータPを用い、平均値L´を公知の座標変換処理に基づき座標変換する。以後では、変換後の座標を「Ln」とする。
【0052】
そして、自己位置推定部15は、地
図DB10と同一の座標系である絶対的な座標系(「ワールド座標系」とも呼ぶ。)に変換した点群データに対応付けられるボクセルデータVDを探索し、そのボクセルデータVDに含まれる平均ベクトルμ
nと共分散行列V
nとを用い、ボクセルnの評価関数値(「個別評価関数値」とも呼ぶ。)「E
n」を算出する。この場合、自己位置推定部15は、以下の式(4)に基づき、ボクセルnの個別評価関数値E
nを算出する。
【0053】
【0054】
そして、自己位置推定部15は、以下の式(5)により示される、マッチングの対象となる全てのボクセルを対象とした総合的な評価関数値(「スコア値」とも呼ぶ。)「E(k)」を算出する。スコア値Eは、マッチングの適合度を示す指標となる。
【0055】
【0056】
その後、自己位置推定部15は、ニュートン法などの任意の求根アルゴリズムによりスコア値E(k)が最大となるとなる推定パラメータPを算出する。そして、自己位置推定部15は、処理インデックス番号(以降、処理番号と称する)kにおいてデッドレコニングにより算出した位置(「DR位置」とも呼ぶ。)「XDR(k)」に対し、推定パラメータPを適用することで、NDTスキャンマッチングに基づく自己位置(「NDT位置」とも呼ぶ。)「XNDT(k)」を算出する。なお、DR位置及びNDT位置には、位置及び姿勢が含まれている。ここで、DR位置XDR(k)は、推定自己位置X^(k)の算出前の暫定的な自己位置に相当し、予測自己位置「X-(k)」とも表記する。この場合、NDT位置XNDT(k)は、以下の式(6)により表される。
【0057】
【0058】
そして、自己位置推定部15は、NDT位置XNDT(k)を、処理番号kでの最終的な自己位置の推定結果(「推定自己位置」とも呼ぶ。)「X^(k)」とみなす。
【0059】
[姿勢予測]
自己位置推定部15は、以下の数式(7)~(9)に基づき、ワールド座標系における処理番号kでの角速度「φ・(k)」、「θ・(k)」及び「ψ・(k)」を算出する。なお、以下の数式(7)~(9)において、「φ^(k-1)」、「θ^(k-1)」及び「ψ^(k-1)」は、ワールド座標系における処理番号k-1での推定自己姿勢を表している。また、以下の数式(7)~(9)において、「ωx(k)」、「ωy(k)」及び「ωz(k)」は、IMU6により計測された船舶座標系における処理番号kでの角速度を表している。
【0060】
【0061】
また、自己位置推定部15は、以下の数式(10)~(12)に対し、角速度「φ・(k)」、「θ・(k)」及び「ψ・(k)」と、推定自己姿勢「φ^(k-1)」、「θ^(k-1)」及び「ψ^(k-1)」と、を適用することにより、ワールド座標系における処理番号kでの予測自己姿勢「φ-(k)」、「θ-(k)」及び「ψ-(k)」を算出する。なお、以下の数式(10)~(12)において、「Δt(k)」は、処理番号kの処理時刻「t(k)」から、処理番号k-1の処理時刻「t(k-1)」を減ずることにより得られる時刻差を表している。
【0062】
【0063】
すなわち、上記の数式(10)~(12)における右辺第2項は、処理番号k-1から処理番号kまでの間に生じたと予測される姿勢の変化の大きさに対応する変化量を表している。
【0064】
そして、自己位置推定部15は、予測自己姿勢「φ-(k)」、「θ-(k)」及び「ψ-(k)」に対し、前述のNDTスキャンマッチングと同様の演算を適用することにより、ワールド座標系における処理番号kでの推定自己姿勢「φ^(k)」、「θ^(k)」及び「ψ^(k)」を算出する。
【0065】
[位置予測及び速度算出]
自己位置推定部15は、以下の数式(13)~(15)に対し、ワールド座標系における処理番号k-1での推定自己位置「x^(k-1)」、「y^(k-1)」及び「z^(k-1)」と、当該ワールド座標系における当該処理番号k-1の速度「x・(k-1)」、「y・(k-1)」及び「z・(k-1)」と、を適用することにより、当該ワールド座標系における処理番号kでの予測自己位置「x-(k)」、「y-(k)」及び「z-(k)」を算出する。
【0066】
【0067】
すなわち、上記の数式(13)~(15)における右辺第2項は、処理番号k-1から処理番号kまでの間に生じたと予測される位置の変化の大きさに対応する変化量を表している。
【0068】
自己位置推定部15は、予測自己位置「x-(k)」、「y-(k)」及び「z-(k)」に対し、前述のNDTスキャンマッチングと同様の演算を適用することにより、ワールド座標系における処理番号kでの推定自己位置「x^(k)」、「y^(k)」及び「z^(k)」を算出する。
【0069】
その後、自己位置推定部15は、以下の数式(16)~(18)に基づき、ワールド座標系における処理番号kでの速度「x・(k)」、「y・(k)」及び「z・(k)」を算出する。なお、以下の数式(16)~(18)において、「τ」は時定数を表し、「s」はラプラス演算子を表している。
【0070】
【0071】
上記の数式(13)~(18)を用いた演算処理は、例えば、
図5のように図示することができる。なお、
図5において、「直近の推定位置」は処理番号k-1での推定自己位置を表し、「DR位置」は処理番号kでの予測自己位置を表し、「NDT推定結果」は処理番号kでの推定自己位置を表している。
図5は、自己位置推定部により行われる処理の一例を説明するための図である。
【0072】
[時定数τの算出]
自己位置推定部15は、以下の数式(19)に基づき、信頼度値NRV(NDT Reliability Value)を算出する。
【0073】
【0074】
上記の数式(19)における「DSS」は、ダウンサンプリングのサイズを表している。数式(3)によって実施されるダウンサンプリングは、空間を適切なサイズの格子で区切り、格子ごとに平均値を算出することで実施される。ライダ3の点群データ数が多い場合には、格子サイズを大きくすることによりデータ量を抑制することができるため、所定時間内にNDTマッチング処理を終わらせることができる。そのため、ライダ3が1周期分の走査を行った場合に得られる点群データが多くなるに伴い、「DSS」が大きくなるとともに、信頼度値NRVが大きくなる。すなわち、「DSS」が大きな値をとる場合には、自己位置推定の推定結果の信頼性が高くなる。
【0075】
上記の数式(19)における「DAR」は、ダウンサンプリング後の点群データが地図に対応付けされる比率を表している。そのため、ライダ3が1周期分の走査を行った場合に得られる点群データにおいて、オクルージョンが少なく、かつ、地
図DB10に格納されている地図に対する実際の状況の変化が少ない場合に、「DAR」が大きくなるとともに、信頼度値NRVが大きくなる。すなわち、「DAR」が大きな値をとる場合には、自己位置推定の推定結果の信頼性が高くなる。
【0076】
上記の数式(19)における「Score」は、前述のスコア値Eに相当する値である。そのため、自己位置推定の推定結果が最適解に近い場合に、「Score」が大きくなるとともに、信頼度値NRVが大きくなる。すなわち、「Score」が大きな値をとる場合には、自己位置推定の推定結果の信頼性が高くなる。
【0077】
自己位置推定部15は、以下の数式(20)~(23)のうちのいずれか1つに対して信頼度値NRVを適用することにより、当該信頼度値NRVを0以上かつ1以下の範囲に属する値に変換した信頼度指標NRI(NDT Reliability Index)を算出する。なお、信頼度値NRVと信頼度指標NRIとの関係は、
図6のように表される。
図6は、信頼度値NRVと信頼度指標NRIとの関係を表す図である。
【0078】
【0079】
自己位置推定部15は、以下の数式(24)に対し、信頼度指標NRIを適用することにより、時定数τを算出する。なお、信頼度指標NRIと時定数τとの関係は、
図7のように表される。また、信頼度値NRVと時定数τとの関係は、
図8のように表される。
図7は、信頼度指標NRIと時定数τとの関係を示す図である。
図8は、信頼度値NRVと時定数τとの関係を示す図である。
【0080】
【0081】
ところで、自己位置推定部15により算出された推定自己位置には,程度の違いはあるが、誤差が含まれている。したがって、直前の推定自己位置との差分にも誤差が含まれるとともに、ワールド座標系における速度の算出値にも誤差が含まれる。つまり、推定自己位置の誤差が大きいほど、ワールド座標系における速度の算出値の誤差も大きいものとなる。速度の算出値において大きな誤差が生じた場合には、上記の数式(13)~(15)により算出される予測位置が大きくずれてしまう可能性があるがゆえに、NDTスキャンマッチングにおける探索範囲を超えてしまう可能性がある。そのため、NDTスキャンマッチングにおける初期値として精度の良い予測位置を得るためには、速度誤差を低減する必要がある。
【0082】
推定自己位置の誤差は、ランダムノイズ的なものと仮定できる。そのため、ローパスフィルタによって高域ノイズ成分を除去する方法と同様の方法により、推定自己位置の誤差を除去できるものと考えられる。本実施例においては、例えば、上記の数式(16)~(18)のように、1次遅れ系のローパスフィルタ(1/(τs+1))を用いることにより、高域ノイズ成分を抑制している。しかし、上記のようなローパスフィルタを用いた場合には、早い動きに追従できないというデメリットが生じるおそれがある。
【0083】
従って、本実施例においては、自己位置推定の信頼度に応じ、上記のローパスフィルタにおける時定数τを変化させるようにしている。そのため、例えば、自己位置推定の信頼度が高く、誤差が少ないと考えられる状況においては、上記のローパスフィルタの時定数τを小さな値に設定することにより、帯域を広げて追従性を高めることができる。また、例えば、自己位置推定の信頼度が低く、誤差が多いと考えられる状況においては、上記のローパスフィルタの時定数τを大きな値に設定することにより、極力ノイズを抑制することができる。なお、以降においては、上記のローパスフィルタを単にフィルタとも称する。
【0084】
図9A、10A及び11Aは、フィルタ無しの状態でワールド座標系における速度を算出した場合の例を示す図である。より具体的には、
図9A、10A及び11Aは、船舶の移動開始時から2秒経過時に急な速度変化が生じ、当該船舶の移動開始時から4秒経過時以降にノイズが生じている状態を示している。
図9B及び
図10Bは、フィルタの時定数τを固定した状態でワールド座標系における速度を算出した場合の例を示す図である。
図11Bは、フィルタの時定数τを変化させつつワールド座標系における速度を算出した場合の例を示す図である。
【0085】
図9A及び9Bに示すように、フィルタの時定数τを0.1に固定した場合には、速度変化に追従することができている一方で、ノイズを抑制することができていない。また、
図10A及び10Bに示すように、フィルタの時定数τを1.0に固定した場合には、ノイズを抑制することができている一方で、速度変化に追従することができていない。そして、本実施例においては、
図11A及び11Bに示すように、例えば、速度の算出を開始してから4秒が経過する直前まではフィルタの時定数τを0.1に維持し、4秒が経過したタイミングでフィルタの時定数τを0.1から1.0に変化させることにより、速度変化に追従しつつ、ノイズを抑制することができるようにしている。
【0086】
なお、本実施例のフィルタをプログラムとして実装する場合には、連続時間の伝達関数(s領域)→離散時間の伝達関数(z領域)→差分方程式(時間領域)の手順で変換するようにすればよい。
【0087】
[フィルタによる効果]
ここで、本実施例のフィルタにより発揮される効果について説明する。なお、以下の説明においては、簡単のため、対象船舶が2次元平面上で移動しているとともに、当該対象船舶の方向がワールド座標系と同じであるものと仮定する。また、以下の説明において、「真の位置」は対象船舶の実際の位置を意味し、「推定位置」は当該対象船舶の推定自己位置を意味し、「予測位置」は当該対象船舶の予測自己位置を意味するものとする。
【0088】
まず、位置の誤差が大きくなった場合において、フィルタを用いずに自己位置推定を行うことによる問題点について、
図12Aを参照しつつ説明する。
図12Aは、フィルタ無しの状態で船舶の自己位置推定を行った場合の例を説明するための図である。
【0089】
図12Aの処理番号k-3及びk-2のタイミングにおいては、自己位置推定が良好に行われることにより、真の位置と推定位置とがほぼ一致している。
【0090】
その後、例えば、
図12Aの処理番号k-1のタイミングにおいて、対象船舶の周辺が疎な空間であること、及び、当該対象船舶の近くを大型船が通過したこと等のような、NDTスキャンマッチングの実施に不都合な状況が生じた場合には、真の位置に対してy方向にずれた推定位置が算出される。そのため、処理番号k-2での推定位置と、処理番号k-1での推定位置と、の差を用いて算出される処理番号k-1での速度には、y方向の誤った速度y
・(k―1)が含まれてしまう。
【0091】
そして、
図12Aの処理番号kのタイミングにおいては、適正ではない推定位置y^(k―1)と、誤った速度y
・(k―1)と、を用いて予測位置y
-(k)が算出されることに起因し、当該予測位置y
-(k)が真の位置からさらにずれてしまう。また、予測位置y
-(k)の大きなずれは、NDTスキャンマッチングにおける探索範囲の超過を発生させる。その結果、推定位置y^(k)は、真の位置から遠いものとなってしまっている。よって、y
・(k)が真の位置から離れる方向の速度として算出されることに起因し、
図12Aに示した状況よりも後に算出される推定位置がますます真の位置から遠ざかってしまうおそれがある。
【0092】
すなわち、フィルタを用いずに自己位置推定を行った場合には、NDTスキャンマッチングの実施に不都合な状況の発生に起因して予測位置のずれ(誤差)が次第に大きくなるため、真の位置に近づくような適正な推定自己位置を得ることができない、という問題点が生じる。
【0093】
次に、本実施例のフィルタを用いて自己位置推定を行うことによる利点について、
図12Bを参照しつつ説明する。
図12B及び
図12Cは、フィルタ有りの状態で船舶の自己位置推定を行った場合の例を説明するための図である。
【0094】
図12Bの処理番号k-3及びk-2のタイミングにおいては、自己位置推定が良好に行われることにより、真の位置と推定位置とがほぼ一致している。
【0095】
その後、例えば、
図12Bの処理番号k-1のタイミングにおいて、NDTスキャンマッチングの実施に不都合な状況が生じることにより、信頼度指標NRIの値が小さくなった場合には、推定位置が不正確な可能性が高いため、自己位置推定部15は、速度の算出に用いるフィルタの時定数τを大きな値に設定する。その結果、大きな速度変化が抑制されたy
・(k―1)が算出される。
【0096】
そして、
図12Bの処理番号kのタイミングにおいては、予測位置y
-(k)の真の位置からのずれ量が少ないため、NDTスキャンマッチングにおける探索範囲の範囲内であり、推定位置y^(k)が真の位置に近づくことができている。また、y
・(k)が真の位置に近づく方向の速度として算出されることに起因し、
図12Bに示した状況よりも後に算出される推定位置が真の位置に漸次近づいてゆく。
【0097】
すなわち、フィルタを用いて自己位置推定を行った場合には、NDTスキャンマッチングの実施に不都合な状況が発生下場合であっても、真の位置に近づくような適正な推定自己位置を得ることができる、という利点が生じる。
【0098】
ところで、慣性力が大きくかつ速度変化量が小さい大型船舶においては、大きな速度変化が生じないような、一定の周波数特性のフィルタを用いて自己位置推定を行ったとしても問題ないものと考えられる。しかし、プレジャーボートのような小型船舶は、加速性能が高く、速度変化量が必ずしも小さいとは言えない。
【0099】
そのため、例えば、自己位置推定の信頼性が十分に高い場合には、時定数τの値を小さくすることにより、小型船舶において生じ得る大きな加減速に対応できるようにしたほうがよいと考えられる。そこで、本実施例においては、信頼度指標NRIの値に応じて時定数τを設定することにより、適応的に特性を変化させることが可能なフィルタを用いて自己位置推定を行うようにしている。
【0100】
また、例えば、
図12Cの処理番号k―1及び処理番号kに示すように、対象船舶がy方向に大きく移動した一方で、NDTスキャンマッチングによる自己位置推定が正しく行われている場合には、信頼度指標NRIの値が大きくなり、かつ、フィルタの時定数τの値が小さくなるため、速度y
・(k―1)が抑制されずに算出される。その結果、速度y
・(k―1)が大きい値として算出される一方で、正しい値として算出されるため、処理番号kでの予測位置が真の位置に近いものとして算出される。
【0101】
[機能ブロック]
図13は、第1実施例に係る自己位置推定部の機能ブロックの一例を示す図である。自己位置推定部15は、
図13に示すように、デッドレコニングブロック21と、座標変換ブロック22と、NDT位置算出ブロック23と、信頼度算出ブロック24と、時定数算出ブロック25と、速度算出ブロック26と、フィルタブロック27と、を有する。
【0102】
デッドレコニングブロック21は、処理番号kのタイミングにおいてIMU6から出力された角速度(ωx(k)、ωy(k)及びωz(k))と、NDT位置算出ブロック23により算出された当該処理番号kの直前の処理番号k-1での推定自己姿勢(φ^(k-1)、θ^(k-1)及びψ^(k-1))と、に基づき、当該処理番号kでの角速度(φ・(k)、θ・(k)及びψ・(k))を算出する。また、デッドレコニングブロック21は、NDT位置算出ブロック23により算出された処理番号k-1での推定自己姿勢と、処理番号kでの角速度と、に基づき、当該処理番号kでの予測自己姿勢(φ-(k)、θ-(k)及びψ-(k))を算出する。また、デッドレコニングブロック21は、NDT位置算出ブロック23により算出された処理番号k-1での推定自己位置(x^(k-1)、y^(k-1)及びz^(k-1))と、速度算出ブロック26からフィルタブロック27を経て出力される当該処理番号k-1での速度(x・(k-1)、y・(k-1)及びz・(k-1))と、に基づき、処理番号kでの予測自己位置(x-(k)、y-(k)及びz-(k))を算出する。なお、自己位置推定の開始直後であって、処理番号k-1での推定自己姿勢及び推定自己位置が存在しない場合等には、デッドレコニングブロック21は、例えば、IMU6から出力される角速度に基づいて処理番号kでの予測自己姿勢を算出するとともに、GPS受信機5から出力される信号に基づいて当該処理番号kでの予測自己位置を算出する。
【0103】
座標変換ブロック22は、ライダ3の出力に基づく点群データを、地
図DB10と同一の座標系であるワールド座標系に変換する。この場合、座標変換ブロック22は、例えば、デッドレコニングブロック21の処理結果として得られた処理番号kでの予測自己姿勢及び予測自己位置に基づき、当該処理番号kの点群データの座標変換を行う。なお、移動体(本実施例では船舶)に設置されたライダを基準とした座標系の点群データを移動体の座標系に変換する処理、及び移動体の座標系からワールド座標系に変換する処理等については、例えば、国際公開WO2019/188745などに開示されている。
【0104】
NDT位置算出ブロック23は、座標変換ブロック22の処理結果として得られた点群データに基づき、推定自己位置及び推定自己姿勢を算出する。この場合、NDT位置算出ブロック23は、座標変換ブロック22から供給されるワールド座標系の点群データと、同じワールド座標系で表されたボクセルデータVDとを照合することで、点群データとボクセルとの対応付けを行う。また、NDT位置算出ブロック23は、点群データと対応付けがなされた各ボクセルを対象として、数式(4)に基づく個別評価関数値を算出し、数式(5)に基づくスコア値E(k)が最大となるとなる推定パラメータPを算出する。そして、NDT位置算出ブロック23は、数式(6)に基づき、デッドレコニングブロック21の処理結果として得られた処理番号kでの予測自己位置に対し、処理番号kで求めた推定パラメータPを適用することにより、当該処理番号kでの推定自己位置(x^(k)、y^(k)及びz^(k))を算出する。また、NDT位置算出ブロック23は、このような処理と同様の処理を行うことにより、処理番号kでの推定自己姿勢(φ^(k)、θ^(k)及びψ^(k))を算出する。なお、NDT位置算出ブロック23は、例えば、座標変換ブロック22の処理結果として得られた点群データのうち、水面位置及びそれより下方のデータを誤データとして除去した後で推定自己位置及び推定自己姿勢を算出するようにしてもよい。
【0105】
信頼度算出ブロック24は、NDT位置算出ブロック23において行われた処理の内容に基づいてDSS、DAR及びScoreの3つのパラメータを特定する。そして、信頼度算出ブロック24は、前述の3つのパラメータを用いて信頼度値NRVを算出し、当該算出した信頼度値NRVを信頼度指標NRIに変換する。
【0106】
時定数算出ブロック25は、信頼度算出ブロック24の処理結果として得られた信頼度指標NRIを用いて時定数τを算出する。
【0107】
速度算出ブロック26は、NDT位置算出ブロック23の処理結果として得られた処理番号kでの推定自己位置と、処理番号k-1での推定自己位置と、の差分値を時刻差Δt(k)で除することにより、フィルタ無しの状態における当該処理番号kでの速度を算出する。
【0108】
フィルタブロック27は、時定数算出ブロック25の処理結果として得られた時定数τを用いてフィルタ(1/(τs+1))を設定するとともに、当該設定したフィルタを速度算出ブロック26により算出された速度に対して適用することにより、処理番号kでの速度(x・(k)、y・(k)及びz・(k))を算出する。
【0109】
[処理フロー]
図14は、情報処理装置1の自己位置推定部15が実行する自己位置推定処理の手順の一例を示すフローチャートである。自己位置推定部15は、
図8のフローチャートの処理を、電源がオンになった場合など、自己位置推定を行う必要が生じた場合に開始する。
【0110】
まず、自己位置推定部15は、自己位置推定処理の開始直後において、GPS受信機5が出力するデータに基づくGPS測位結果から予測自己位置を算出する(ステップS11)。
【0111】
次に、自己位置推定部15は、ライダ3からのスキャンデータとして、NDTスキャンマッチングを実施可能な量のデータが得られたか否かを判定する(ステップS12)。
【0112】
自己位置推定部15は、NDTスキャンマッチングを実施可能な量のデータが得られなかった場合(ステップS12:NO)には、ライダ3からのスキャンデータを再度取得し、当該取得したデータに基づいてステップS12の処理を再度行う。また、自己位置推定部15は、NDTスキャンマッチングを実施可能な量のデータが得られた場合(ステップS12:YES)には、時刻差Δt(k)を算出し(ステップS13)、さらに、船舶座標系における角速度(ωx(k)、ωy(k)及びωz(k))をIMU6から取得する(ステップS14)。
【0113】
その後、自己位置推定部15は、ステップS14により取得した船舶座標系における角速度と、数式(7)~(9)と、に基づき、ワールド座標系における角速度(φ・(k)、θ・(k)及びψ・(k))を算出する(ステップS15)。
【0114】
続いて、自己位置推定部15は、ステップS13により算出した時刻差Δt(k)と、ステップS15により算出したワールド座標系における角速度と、数式(10)~(12)と、に基づき、ワールド座標系における予測自己姿勢(φ-(k)、θ-(k)及びψ-(k))を算出する(ステップS16)。
【0115】
続いて、自己位置推定部15は、ステップS13により算出した時刻差Δt(k)と、数式(13)~(15)と、に基づき、ワールド座標系における予測自己位置(x-(k)、y-(k)及びz-(k))を算出する(ステップS17)。
【0116】
続いて、自己位置推定部15は、ステップS16により取得した予測自己姿勢及びステップS17により取得した予測自己位置に相当するDR位置を初期値としてNDTスキャンマッチングを行うことにより、推定自己位置(x^(k)、y^(k)及びz^(k))と、推定自己姿勢(φ^(k)、θ^(k)及びψ^(k))と、をそれぞれ算出する(ステップS18)。
【0117】
続いて、自己位置推定部15は、ステップS18の処理内容に基づいて特定されるDSS、DAR及びScoreの3つのパラメータと、数式(19)と、基づいて信頼度値NRVを算出する(ステップS19)。
【0118】
続いて、自己位置推定部15は、ステップS19により算出した信頼度値NRVを、数式(20)~(23)のうちのいずれか1つに適用することにより、信頼度指標NRIに変換する(ステップS20)。
【0119】
続いて、自己位置推定部15は、ステップS20により得た信頼度指標NRIと、数式(24)と、基づいて時定数τを算出する(ステップS21)。
【0120】
続いて、自己位置推定部15は、ステップS13により算出した時刻差Δt(k)と、ステップS21により算出した時定数τをフィルタ(1/(τs+1))に適用した数式(16)~(18)と、に基づき、速度(x・(k)、y・(k)及びz・(k))を算出する(ステップS22)。
【0121】
自己位置推定部15は、ステップS22を行った後、自己位置推定処理を終了すべきか否か判定する(ステップS23)。そして、自己位置推定部15は、自己位置推定処理を終了すべきと判定した場合(ステップS23:YES)には、フローチャートの処理を終了する。一方、自己位置推定部15は、自己位置推定処理を継続する場合(ステップS23:NO)には、ステップS12に戻り、次の処理番号での推定自己位置、推定自己姿勢及び速度等を算出する。
【0122】
[実験結果に基づく考察]
上述した実施例に関する実験結果について考察する。
【0123】
図15は、実験時におけるライダの設置状態及びスキャン範囲を示す図である。出願人は、ある水路に対して事前に作成した沿岸用のボクセルデータ(ND地図)と、運航中の船舶に設けたライダにより得られた点群データをマッチングさせてNDT位置推定を行った。この実験は、
図15に例示するように、中距離かつ水平60度タイプのライダであって、動作周波数12Hz(周期83.3ms)のライダを船舶の左右に2つずつ設けた状態で行われた。また、精度評価のために、正解となる位置データとして、RTK-GPSの測位結果を用いた。
【0124】
なお、本実験では、ライダにより得られた点群データに対してダウンサンプリングを行っている。この場合、ダウンサンプリングのサイズは、NDTスキャンマッチングにおいて、ダウンサンプリング後の点群データのうちボクセルデータVDと対応付けられた計測点数(「対応計測点数」とも呼ぶ。)が所定の目標範囲となるように、各処理時刻において適応的に変更されるものとする。例えば、自己位置推定部15は、各処理時刻において、対応計測点数が目標範囲の上限より多い時には、次の処理時刻でのダウンサンプリングサイズを所定率(例えば1.1倍)又は所定値だけ大きくし、対応計測点数が目標範囲の下限より少ない時には、次の処理時刻でのダウンサンプリングサイズを所定率又は所定値だけ小さくする。一方、自己位置推定部15は、各処理時刻において、対応計測点数が目標範囲内である場合には、ダウンサンプリングサイズを維持する。このようなダウンサンプリングサイズの適応的設定では、対応計測点数が多いほどダウンサンプリングサイズが大きくなるため、ダウンサンプリングサイズが大きいほどNDT処理の信頼度が高くなることが推察される。
【0125】
【0126】
比較例に係る実験結果では、
図16Dに示すように、対応付け比率DARの値が90~120s付近で低下しており、NDTスキャンマッチングの演算精度に対して悪影響を及ぼすような状況となっている。このような状況の発生に伴い、
図17A~
図17Cに示す速度によれば、特に90~120s付近において、オフセットと考えられる乱れが生じている。また、
図17D~
図17Gに示すように、速度の乱れが生じている部分においては、他の部分よりも推定自己位置及び推定自己姿勢の誤差が大きくなっている。特に、
図17Dの進行方向の誤差については、便宜上図示できていないが、-20m程度まで増大している。
【0127】
【0128】
本実施例に係る実験結果では、
図17A~
図17Cの速度に比べて、
図19B~
図19Dの速度は全般的に滑らかになっているとともに、100~120s付近の速度の乱れが低減している。その結果、本実施例に係る実験結果では、
図19E~
図19Hに示すように、比較例に係る実験結果に比べ、推定自己位置及び推定自己姿勢の誤差が減少している。特に、
図19Eの進行方向の誤差については、
図17Dに示したような大きな誤差が抑制されているとともに、100sまでの誤差振幅も平均的に小さくなっている。また、
図18Gに示すように、信頼度指標NRIの値が低減している期間が比較例に係る実験結果(
図16G)よりも短くなっており、フィルタ無しの状態に比べて安定性が向上したと判断することができる。
【0129】
以上に述べたように、本実施例によれば、信頼度指標NRI(信頼度値NRV)に応じて時定数τが変化するフィルタ(1/(τs+1))を用いて船舶の速度を算出し、当該算出した船舶の速度を用いて自己位置推定処理を行うことができる。そのため、本実施例によれば、船舶における自己位置推定の精度を向上させることができる。
【0130】
[変形例]
以下、上述の実施例に好適な変形例について説明する。
【0131】
(変形例1)
自己位置推定部15は、信頼度指標NRIの代わりに、対応付け比率DARを用いて時定数τを設定するようにしてもよい。
【0132】
例えば、対応付け比率DARの値が小さい場合には、自己位置推定の推定結果の信頼性が低く、誤差が多いと考えられる。そのため、本変形例に係る自己位置推定部15は、対応付け比率DARの値が小さい場合には、時定数τの値を大きな値に設定すればよい。
【0133】
また、例えば、対応付け比率DARの値が大きい場合には、自己位置推定の推定結果の信頼性が高く、誤差が少ないと考えられる。そのため、本変形例に係る自己位置推定部15は、対応付け比率DARの値が大きい場合には、時定数τの値を小さな値に設定すればよい。
【0134】
すなわち、本変形例に係る自己位置推定部15は、数式(24)の「NRI」の値として、0以上1以下の範囲に属する「DAR」の値を適用することにより、適切な時定数τを算出することができる。
【0135】
(変形例2)
自己位置推定部15は、IMU6により計測された角速度(ωx(k)、ωy(k)及びωz(k))を用いる代わりに、例えば、以下の数式(25)~(27)を用いた演算を行うことにより、ワールド座標系における処理番号kでの角速度「φ・(k)」、「θ・(k)」及び「ψ・(k)」を算出するようにしてもよい。なお、以下の数式(25)~(27)において、「τ」は時定数を表し、「s」はラプラス演算子を表している。
【0136】
【0137】
すなわち、本変形例によれば、数式(25)~(27)を用いた演算により、IMU6を搭載していない船舶においても、自己位置推定処理を行うことができる。
【0138】
<第2実施例>
次に、第2実施例について説明する。なお、本実施例においては、第1実施例と同様の構成等を適用可能な部分についての説明を適宜省略するとともに、第1実施例とは異なる部分に主眼を置いて説明を行うものとする。
【0139】
[運転支援システムの概要]
図20は、第2実施例に係る運転支援システムの概略構成を示す図である。本実施例に係る運転支援システムは、対象船舶に設けられた情報処理装置1Aと、当該対象船舶に搭載されたセンサ群2Aと、を有する。
【0140】
センサ群2Aは、対象船舶に設けられた種々の外界センサ及び内界センサを含んでいる。本実施例では、センサ群2Aは、ライダ3と、GPS受信機5と、3軸方向における対象船舶の角速度を計測するIMU6と、3軸方向における当該対象船舶の加速度を計測する加速度センサ7と、を含んでいる。なお、本実施例によれば、IMU6において加速度を計測可能である場合には、加速度センサ7がセンサ群2Aに含まれていなくともよい。
【0141】
[情報処理装置の構成]
図21は、第2実施例に係る情報処理装置のハードウェア構成の一例を示すブロック図である。情報処理装置1Aは、
図21に示すように、情報処理装置1の自己位置推定部15の代わりに自己位置推定部15Aを有している。
【0142】
[機能ブロック]
図22は、第2実施例に係る自己位置推定部の機能ブロックの一例を示す図である。自己位置推定部15Aは、
図22に示すように、デッドレコニングブロック21と、座標変換ブロック22と、NDT位置算出ブロック23と、時定数算出ブロック25Aと、速度算出ブロック26と、フィルタブロック27Aと、を有する。
【0143】
時定数算出ブロック25Aは、加速度センサ7により計測された3軸方向の加速度を用い、後述の時定数τx、τy及びτzを算出する。
【0144】
フィルタブロック27Aは、数式(16)の時定数「τ」の代わりに時定数「τx」を適用し、数式(17)の時定数「τ」の代わりに時定数「τy」を適用し、数式(18)の時定数「τ」の代わりに時定数「τz」を適用して演算を行うことにより、ワールド座標系における処理番号kでの速度「x・(k)」、「y・(k)」及び「z・(k)」を算出する。
【0145】
[時定数τx、τy及びτzの算出]
ここで、自己位置推定部15Aによる時定数τx、τy及びτzの算出方法について説明する。なお、以下においては、ロール方向及びピッチ方向の変位が無い(または略無い)場合であって、2次元平面上で加速度が変化する場合の例について説明する。
【0146】
自己位置推定部15Aは、加速度センサ7により計測された3軸方向の加速度「a
xb」、「a
yb」及び「a
zb」を以下の数式(28)~(30)に適用することにより、ワールド座標系における3軸方向の加速度「a
x」、「a
y」及び「a
z」を算出する。なお、加速度「a
xb」は対象船舶の進行方向に対応するx
b方向の加速度であり、加速度「a
yb」は当該対象船舶の横方向(左右方向)に対応するy
b方向の加速度であり、加速度「a
zb」は当該対象船舶の上下方向に対応するz
b軸方向の加速度である。また、以下の数式(28)~(30)の演算の概要は、例えば、
図23のように示すことができる。
図23は、加速度センサにより計測された加速度をワールド座標系の加速度に変換する際に行われる演算の概要を示す図である。
【0147】
【0148】
自己位置推定部15Aは、以下の数式(31)~(33)に対し、ワールド座標系における3軸方向の加速度「ax」、「ay」及び「az」を適用することにより、時定数「τx」、「τy」及び「τz」を算出する。
【0149】
【0150】
上記の数式(31)によれば、例えば、加速度「ax」の絶対値が小さく、x方向の速度変化が小さい場合には、時定数τxが大きな値として算出される。また、上記の数式(31)によれば、例えば、加速度「ax」の絶対値が大きく、x方向の速度変化が大きい場合には、時定数τxが小さな値として算出される。
【0151】
上記の数式(32)によれば、例えば、加速度「ay」の絶対値が小さく、y方向の速度変化が小さい場合には、時定数τyが大きな値として算出される。また、上記の数式(32)によれば、例えば、加速度「ay」の絶対値が大きく、y方向の速度変化が大きい場合には、時定数τyが小さな値として算出される。
【0152】
上記の数式(33)によれば、例えば、加速度「az」の絶対値が小さく、z方向の速度変化が小さい場合には、時定数τzが大きな値として算出される。また、上記の数式(33)によれば、例えば、加速度「az」の絶対値が大きく、z方向の速度変化が大きい場合には、時定数τzが小さな値として算出される。
【0153】
以上に述べたように、本実施例によれば、加速度axに応じて時定数τxが変化するフィルタ(1/(τxs+1))と、加速度ayに応じて時定数τyが変化するフィルタ(1/(τys+1))と、加速度azに応じて時定数τzが変化するフィルタ(1/(τzs+1))と、を用いて船舶の速度船舶の速度を算出し、当該算出した船舶の速度を用いて自己位置推定処理を行うことができる。そのため、本実施例によれば、船舶における自己位置推定の精度を向上させることができる。
【0154】
(変形例)
以下、上述の実施例に好適な変形例について説明する。
【0155】
自己位置推定部15Aは、対象船舶の状態を示す船舶状態情報を取得し、当該取得した船舶状態情報に基づいて時定数τを算出するようにしてもよい。なお、本変形例における時定数τは、速度x・(k)、y・(k)及びz・(k)を算出する際に、時定数τx、τy及びτzの代わりに用いることができる。
【0156】
具体的には、自己位置推定部15Aは、例えば、対象船舶のスロットルレバーの変化量SV、当該対象船舶のプロペラ回転数の変化量PV、または、対象船舶のインペラ回転数の変化量IVのいずれかを船舶状態情報として取得する。
【0157】
そして、自己位置推定部15Aは、船舶状態情報として取得した変化量SV、PVまたはIVの値を以下の数式(34)の「n」に代入することにより、時定数τを算出する。
【0158】
【0159】
対象船舶のスロットルレバーの変化量SVは、当該対象船舶の加速量(または減速量)が大きくなるに従って大きくなる。そのため、数式(34)の「n」に代入される変化量SVの値が大きい場合には、時定数τが小さな値として算出される。
【0160】
対象船舶のプロペラ回転数の変化量PVは、当該対象船舶の加速量(または減速量)が大きくなるに従って大きくなる。そのため、数式(34)の「n」に代入される変化量PVの値が大きい場合には、時定数τが小さな値として算出される。
【0161】
対象船舶のインペラ回転数の変化量IVは、当該対象船舶の加速量(または減速量)が大きくなるに従って大きくなる。そのため、数式(34)の「n」に代入される変化量IVの値が大きい場合には、時定数τが小さな値として算出される。
【0162】
なお、自己位置推定部15Aは、加速度センサ7により計測された対象船舶の進行方向の加速度を船舶状態情報として取得するものであってもよい。すなわち、船舶状態情報には、対象船舶のスロットルレバーの変化量SV、当該対象船舶のプロペラ回転数の変化量PV、対象船舶のインペラ回転数の変化量IV、または、当該対象船舶の加速度のいずれかが含まれていればよい。
【0163】
<第3実施例>
次に、第3実施例について説明する。なお、本実施例においては、第1または第2実施例と同様の構成等を適用可能な部分についての説明を適宜省略するとともに、第1及び第2実施例のいずれとも異なる部分に主眼を置いて説明を行うものとする。
【0164】
[運転支援システムの概要]
本実施例に係る運転支援システムは、対象船舶に設けられた情報処理装置1Bと、当該対象船舶に搭載されたセンサ群2Aと、を有する。
【0165】
[情報処理装置の構成]
図24は、第3実施例に係る情報処理装置のハードウェア構成の一例を示すブロック図である。情報処理装置1Bは、
図24に示すように、情報処理装置1の自己位置推定部15の代わりに自己位置推定部15Bを有している。
【0166】
[機能ブロック]
図25は、第3実施例に係る自己位置推定部の機能ブロックの一例を示す図である。自己位置推定部15Bは、
図25に示すように、デッドレコニングブロック21と、座標変換ブロック22と、NDT位置算出ブロック23と、時定数算出ブロック25Bと、速度算出ブロック26と、フィルタブロック27と、を有する。
【0167】
時定数算出ブロック25Bは、信頼度算出ブロック24の処理結果として得られた信頼度指標NRIと、加速度センサ7により計測された加速度と、を用いて時定数τを算出する。
【0168】
[時定数τの算出]
ここで、自己位置推定部15Bによる時定数τの算出方法について説明する。
【0169】
自己位置推定部15Bは、信頼度指標NRIを数式(24)に適用することにより、第1実施例と同様の時定数τtを算出する。また、自己位置推定部15Bは、加速度センサ7により計測された3軸方向の加速度(axb、ayb及びazb)を数式(28)~(30)に適用することにより、ワールド座標系における3軸方向の加速度(ax、ay及びaz)を算出する。また、自己位置推定部15Bは、ワールド座標系における3軸方向の加速度(ax、ay及びaz)を数式(31)~(33)に適用することにより、第2実施例と同様の時定数τx、τy及びτzを算出する。そして、自己位置推定部15Bは、時定数τt及びτxの平均値に相当する(τt+τx)/2と、時定数τt及びτyの平均値に相当する(τt+τy)/2と、時定数τt及びτzの平均値に相当する(τt+τz)/2と、を時定数τの算出結果として取得する。
【0170】
以上に述べたように、本実施例によれば、信頼度指標NRIと、加速度ax、ay及びazと、に応じて時定数τが変化するフィルタ(1/(τs+1))を用いて船舶の速度船舶の速度を算出し、当該算出した船舶の速度を用いて自己位置推定処理を行うことができる。そのため、本実施例によれば、船舶における自己位置推定の精度を向上させることができる。
【0171】
なお、上述した各実施例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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))を含む。
【0172】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。