(57)【特許請求の範囲】
【請求項１】
船舶自動識別システム（ＡＩＳ）用に他船から送信された、他船に関するデータを受信する手段と、
前記他船に関するデータを自船からの距離範囲により複数のグループに区分し、各グループの他船に関するデータをそれぞれ連結リストにより格納する手段と、
自船から所定距離範囲に存在する他船に関するデータを、該距離範囲のデータが含まれている前記連結リストから読み出す手段とを備えたＡＩＳデータ処理装置。
【請求項２】
前記連結リストには、他船に関するデータの格納場所を示すデータを格納し、前記他船に関するデータのうち、他船の移動によっては変化しない静的データの全部または一部をキーとするハッシュ関数で前記他船に関するデータをハッシュ化して、前記他船に関するデータの格納場所または読み出し場所を決定するようにした、請求項１に記載のＡＩＳデータ処理装置。
【請求項３】
表示縮尺および表示画面内の自船位置に応じて、表示画面内の自船に対する表示可能距離範囲を求め、該距離範囲内に入る前記グループの他船に関するデータを格納した前記連結リストから、当該他船に関するデータを読み出して、前記表示画面内に他船の位置を表示する手段を設けた、請求項１または２に記載のＡＩＳデータ処理装置。
【請求項４】
衝突予防の対象にすべき、自船から所定距離範囲に存在する他船に関するデータを、前記所定距離範囲内に入る前記グループの他船に関するデータを格納した前記連結リストから読み出して、前記所定距離範囲に存在する他船を対象として衝突予防のための処理を行う手段を設けた、請求項１または２に記載のＡＩＳデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、他船の位置情報を含む他船データを検知し、他船位置のグラフィック表示または他船に対する衝突予防のための処理等を行う、ＡＩＳデータ処理装置に関するものである。
【０００２】
【従来の技術】
船舶の衝突予防、人命安全という観点から、船舶自動識別システム（ＡＩＳ：Universal Shipborne Automatic Identification System ）（以下「ＡＩＳ」という。）が実施されつつある。
【０００３】
ＡＩＳは、ＶＨＦ帯の電波を使用し、船舶相互間および船舶・陸上局間で航海情報等の交換を行うものである。
【０００４】
ＡＩＳで利用される、船舶から送信される他船に関するデータには、その船舶を固有に識別するＭＭＳＩ（Maritime Mobile Service Identity：海上移動業務識別）、船名、船種等の静的情報や、ＧＰＳで測定された該当船舶の位置、針路、移動速度等の動的情報が含まれている。
【０００５】
【発明が解決しようとする課題】
ＡＩＳ用の装置（以下単に「ＡＩＳ装置」という）は、その大型船への搭載が２００２年から義務化される。したがって、自船から識別できる、ＡＩＳにより検知された他船は、当初大型船に限られる。しかし、将来的にはＡＩＳ装置の搭載義務範囲が小型船にまで及ぶことになるため、ＡＩＳ装置を搭載した他船からの情報が多くなって、他船データを処理する処理部に必要とされるデータ処理能力はいずれ高くなることが予想される。
【０００６】
しかし、小型船等においては、限られた規模の舶用電子機器の１つとしてＡＩＳ装置を搭載することになるので、多数の他船データを処理することが困難になる場合も生じる。その結果、必要な他船データを抽出するために長時間を要したり、衝突予防のための警告等の出力が遅れたりする、といった不都合も予想される。
【０００７】
この発明の目的は、データ処理能力の限られたデータ処理部を備えたものにおいても、ＡＩＳにより検知された多数の他船データを扱えるようにしたＡＩＳデータ処理装置を提供することにある。
【０００８】
【課題を解決するための手段】
この発明は、船舶自動識別システム（ＡＩＳ）用に他船から送信された、他船に関するデータを受信する手段と、前記他船に関するデータを自船からの距離範囲により複数のグループに区分し、各グループの他船に関するデータをそれぞれ連結リストにより格納する手段と、自船から所定距離範囲に存在する他船に関するデータを、該距離範囲のデータが含まれている前記連結リストから読み出す手段とを備えたことを特徴とする。
【０００９】
この構成により、ＡＩＳにより検知された他船に関するデータ（以下単に「他船データ」という。）は、自船からの距離範囲によりグループ化された連結リスト構造をなすので、処理すべき他船データを抽出する際、自船からの距離を基に、予め区分された連結リストを用いて抽出できる。すなわち、ＡＩＳにより検知された複数の他船のデータのうち、必ずしも全ての他船データを抽出する必要はなくなるため、その分データ処理量が削減される。
【００１０】
また、この発明は、前記連結リストには、他船に関するデータの格納場所を示すデータを格納し、前記他船に関するデータのうち、他船の移動によっては変化しない静的データの全部または一部をキーとするハッシュ関数で前記他船に関するデータをハッシュ化して、前記他船に関するデータの格納場所または読み出し場所を決定するようにしたことを特徴とする。
この構成により、他船データの格納または読み出し時の検索を短時間に行えるようにする。
【００１１】
また、この発明は、表示縮尺および表示画面内の自船位置に応じて、表示画面内の自船に対する表示可能距離範囲を求め、該距離範囲内に入る前記グループの他船に関するデータを格納した前記連結リストから、当該他船に関するデータを読み出して、前記表示画面内に他船の位置を表示する手段を設けたことを特徴とする。
この構成により、自船位置とともに複数の他船位置をグラフィック表示する際に、表示画面内に表示すべき他船の他船データを不要な距離区分の連結リストから読み出すことがないため、データ処理効率が向上する。
【００１２】
また、この発明は、衝突予防の対象にすべき、自船から所定距離範囲に存在する他船に関するデータを、前記所定距離範囲内に入る前記グループの他船に関するデータを格納した前記連結リストから読み出して、前記所定距離範囲に存在する他船を対象として衝突予防のための処理を行う手段を設けたことを特徴とする。
この構成により、衝突予防のための処理対象にすべき、自船から一定距離範囲内に存在する他船に関する他船データを、予め限った連結リストから読み出すので、データ処理効率が向上する。
【００１３】
【発明の実施の形態】
図１はＡＩＳデータ処理装置の構成を示すブロック図である。図１において、１はＡＩＳ用アンテナである。ＡＩＳデータ送受信部２は、このＡＩＳ用アンテナ１により、他船から放送された通信データを受信する。データ処理部５は、その通信データを読み取り、他船データとして他船データベース６に格納する。また、ＡＩＳデータ送受信部２は、自船に関するデータをＡＩＳ用アンテナ１から放送する。
【００１４】
自船位置速度測定部３は、ＧＰＳ等により自船の位置および船速（２次元の速度）を測定する。
データ処理部５は、他船データベース６に一旦格納した複数の他船データから必要なデータを抽出して、自船の位置・速度ベクトルとともに他船の位置・速度ベクトルを表すマークを、表示器８へ表示するための表示データを出力する。  表示信号処理部７は、その表示データから表示信号を生成して、表示器８へ出力する。
【００１５】
操作部４は、キーボードとトラックボール等のポインテイングデバイスとから構成している。この操作部４によって、表示縮尺率の設定等を行う。
【００１６】
図２は、図１に示した他船データベース６の一部の構成を示す図である。この例では、このデータベースの一部が、（ａ），（ｂ），（ｃ）で示す３つの連結リストからなる。（ａ）は、自船からの距離が０〜５マイルの他船についての他船データを連結リスト構造にしたもの、（ｂ）は、自船からの距離が５〜１０マイルの他船についての他船データを連結リスト構造にしたもの、（ｃ）は、自船からの距離が１０マイル以上の他船についての他船データを連結リスト構造にしたものである。但し、各要素の内容は、後述する他船データの実際の格納場所を示すデータである。後述するように、他船データの内容は配列構造を成す。上記実際の格納場所を示すデータは、その配列構造の配列番号である。
【００１７】
上記各要素には、Ｐｐ，Ｐｎで示すリスト構造上隣接する他の他船データの位置を示すポインタを付属させている。たとえば配列番号１４６を格納する要素のポインタＰｐは、リスト構造における１つ前の要素（配列番号７８９を格納する要素）の位置を示している。また、配列番号１４６を格納するもう１つのポインタＰｎは、リスト構造における１つ後ろの要素（配列番号５０１を格納する要素）の位置を示している。このようにしてポインタを辿っていくことにより、一連のリスト構造のデータを順に読み出していくことができる。なお、リスト構造における先頭要素のポインタＰｐとしては、その要素が先頭であることを示すデータを格納する。同様に終端要素のポインタＰｎには、その要素が終端であることを示すデータを格納する。
【００１８】
このように、複数の他船データを、自船からの距離範囲によって複数のグループに区分して、それぞれ連結リスト構造のデータとすることにより、必要な距離範囲の他船データを、該当の連結リストから読み出す（但し、他船データの内容は、後述するように、連結リストの内容で示された格納場所から読み出す。）。このことにより、読み出すべきデータの総数が少なくなり、その分データ処理量が削減される。
【００１９】
図２の（ｄ）は、（ａ），（ｂ），（ｃ）で示した３つの連結リストの先頭要素の位置と終端要素の位置を示すデータである。すなわち、Ｐｓ１は、（ａ）に示す連結リストの先頭要素の位置を示している。また、Ｐｅ１は、（ａ）に示すエリア１の連結リストの終端要素の位置を示している。同様に、Ｐｓ２は、（ｂ）に示す連結リストの先頭要素の位置を示している。また、Ｐｅ２は、（ｂ）に示す連結リストの終端要素の位置を示している。Ｐｓ３，Ｐｅ３についても同様に、（ｃ）に示す連結リストの先頭要素と終端要素の位置を示している。
【００２０】
但し、新たなデータをリストに追加する際に、前方向へのみ追加し、且つ前方からしか検索を行わないのであれば、上記終端要素ポインタＰｅ１，Ｐｅ２，Ｐｅ３は不要である。すなわち、追加すべき、または検索を開始すべき、リストの先頭要素ポインタＰｓ１，Ｐｓ２，Ｐｓ３があればよい。或る要素がリストの終端要素であるか否かは、その要素内のポインタＰｎの値を読み取ることによって検知できるからである。同様に、新たなデータを後方向へのみ追加し、且つ後方からしか検索を行わないのであれば、上記先頭要素ポインタＰｓ１，Ｐｓ２，Ｐｓ３は不要である。その他の場合には、図２に示したように、先頭要素ポインタＰｓ１，Ｐｓ２，Ｐｓ３と終端要素ポインタＰｅ１，Ｐｅ２，Ｐｅ３の両方を設ければよい。
【００２１】
なお、図２に示した例では双方向リスト構造を示したが、リスト構造における各要素を辿るためのポインタを１つだけ持つ片方向リスト構造であってもよい。
【００２２】
図３は、上記連結リストの各要素が示す、他船データの内容を格納する配列である。ここで配列番号は、図２に示した配列番号に対応している。各要素の内容は、ＭＭＳＩ、船名、船種等の静的情報や、他船の位置、針路、移動速度等の動的情報等である。
【００２３】
図３に示した他船データベースに新たな他船データを格納する場合には、その他船のＭＭＳＩをキーにして、予め定めたハッシュ関数を用いてハッシュ値を求める。このハッシュ値を、格納すべき配列番号とする。たとえばｈ（ｘ）＝ｘ％１０００  というハッシュ関数（ここで％は剰余を求める演算子である。）とする。すなわち、ＭＭＳＩの下三桁を配列番号として求める。
【００２４】
ＭＭＳＩ（海上移動業務識別データ）は、ユニークなデータであり、その割り当てに重複がないので、ＭＭＳＩの全体または一部をキーとすれば、効率良くハッシュ化できる。
【００２５】
但し、その配列番号の領域に他の他船データが既に格納されている場合には、すなわちシノニムが発生した場合には、配列番号の順で次の格納領域をサーチし、使用されていない領域が見つかったなら、その領域に他船データを書き込む。
【００２６】
図３に示した例では、配列番号５０１に示す領域に、ＭＭＳＩが７２６１９１５０１である他船データが既に格納されていて、新たに、ＭＭＳＩが５１３１９７５０１である他船データを書き込もうとすれば、シノニムが発生するので、いわゆる連鎖法によって、配列番号が５０１の次、すなわち配列番号５０２の領域に、その新たな他船データを書き込む。
【００２７】
このような新たな他船データをハッシングして配列に書き込むとともに、その他船の自船からの距離範囲に応じて、図２に示した複数の連結リストのいずれかの連結リストの最後に要素を追加する。また、それに伴って該当連結リストの終端要素ポインタ（Ｐｅ１，Ｐｅ２，Ｐｅ３のいずれか）を更新する。この終端要素ポインタは、次回に他船データを新たに追加する際に、連結リスト構造の最後に直接アクセスするために用いる。
【００２８】
次に、別のデータ構造の例を図４に示す。図２，図３に示した例では、ハッシュ値で他船データの格納場所を決定してシノニムが発生したときに、いわゆる連鎖法によって格納場所を変更するようにしたが、この図４に示す例は、同一のハッシュ値をもつ要素で連結リスト構造をとる。また、図２，図３に示した例では、ハッシュ値で他船データの格納場所を決定するようにしたが、この図４に示す例は、空いている箇所に格納する。但し、そのために、ハッシュ値から該当の連結リストをアクセスできるように、上記連結リストの先頭要素ポインタを別にもっておく。
【００２９】
図４において、「他船データリスト」は、同一ハッシュ値をもつ他船データの双方向リストである。
「先頭要素ポインタ」は、上記他船データリストの先頭要素の位置を示すポインタである。このポインタは、ハッシュ値を配列番号に対応させて格納する。
【００３０】
図４に示したデータ構造は、自船からの距離範囲によって区分した複数のグループ毎に構成する。
【００３１】
図４に示したデータ構造をもつことによって、例えば或る他船データを読み出す場合に、ＭＭＳＩから求めたハッシュ値を配列番号とする先頭要素ポインタの内容を読み出し、その値で示される他船データリストを順に読み出す。例えば、ＭＭＳＩ＝１２３４５６０１０の他船データを読み出す場合に、先ず、そのハッシュ値０１０に相当する配列番号１０の先頭要素ポインタを読み出す。この例では先頭要素ポインタが５９であるので、アドレス５９から始まる連結リストの要素を読み出す。もし、その要素に含まれているＭＭＳＩが該当の値でなければ、ポインタＰｎで示される次の要素を読み出す。その要素に含まれているＭＭＳＩが該当の値であれば、その他船データを読み出す。
【００３２】
また、図４に示したデータ構造をもつことによって、例えば或る他船データを格納する場合に、ＭＭＳＩから求めたハッシュ値を配列番号とする先頭要素ポインタの内容を読み出し、その値で示される他船データリストを順に読み出す。例えば、ＭＭＳＩ＝３２３４５６０１０の他船データを書き込む場合に、先ず、そのハッシュ値０１０に相当する配列番号１０の先頭要素ポインタを読み出す。この例では先頭要素ポインタが５９であるので、アドレス５９から始まる連結リストの要素を読み出す。もし、その要素に含まれているＭＭＳＩが該当の値でなければ、ポインタＰｎで示される次の要素を読み出す。その要素に含まれているＭＭＳＩも該当の値でなければ、その要素のポインタＰｎで示される次の要素を読み出す。連結リストの最後まで、読み出した結果、ＭＭＳＩが該当の値でなければ、空いている領域に、新たな他船データを書き込み、最終要素のポインタＰｎを、今回追加した要素を示す値に更新する。また、それにともなって、今回追加した要素のポインタＰｐ，Ｐｎを該当の値にする。
【００３３】
次に、図１に示したデータ処理部の主な処理内容を、図５〜図８を参照して説明する。
図５は図１に示した表示器８での表示例を示す図である。ここで円で示す範囲は、自船から所定距離の範囲を示している。この所定距離範囲は０〜１０マイルである。すなわち、この所定距離範囲内の他船データは、図２に示した（ａ），（ｂ）の２つの連結リストに格納されているものに相当する。また、図５において矩形の枠で示す範囲は、実際に表示器８に表示する表示画面の表示範囲である。この矩形の枠で示す範囲の内容が表示内容に相当する。自船マークの丸印は、自船の位置を表すマーク、そこから棒状に延びる直線は、その向きによって自船の針路を表し、その長さによって自船の移動速度を表す速度ベクトルのマークである。この自船マークの丸印は、通常表示画面の中央に表示する。また、他船マークの四角印は他船の位置を表すマークである。また、そこから棒状に延びる直線は、その向きによって他船の針路を表し、その長さによって他船の移動速度を表す速度ベクトルのマークである。なお、表示画面の範囲より外側に破線の四角印で示すマークは、自船から所定距離範囲内に存在する他船の位置を示しているが、これらは表示画面外であるので実際には表示されない。
【００３４】
図６は、自船および他船のマーク表示に関する処理手順を示すフローチャートである。
まず、図１に示した自船位置速度測定部３から自船の位置・船速を読み込む（ｎ１）。この船速は二次元の速度ベクトルであり、その向きを針路、その針路方向の速度を移動速度として求める。
【００３５】
次に、操作部４の操作により既に設定されている、表示縮尺率の設定内容を読み込む（ｎ２）。
【００３６】
その後、この表示縮尺率と表示画面の表示範囲とから、その表示画面内に相当する自船からの距離範囲を求める。そして、その距離範囲に存在する他船のデータ（他船データの格納場所を示すデータ）を格納する連結リストを他船データベース６から選択し、該当の他船データを順次読み出す（ｎ３→ｎ４）。
【００３７】
そして、表示画面内に入る他船について、その位置および速度ベクトルを求め、これを他船マークとして表示する。また、これとともに自船マークを画面中央部に表示する。
【００３８】
以上のように、表示画面内に表示すべき他船について、自船からの距離範囲により区分された複数の連結リストのうち該当の連結リストを用い、その要素によって格納場所が指定される配列から他船データを読み出すようにしたので、扱うべきデータ量が制限されて、全体のデータ処理量が抑制される。
【００３９】
図７は衝突予防処理に関するフローチャートである。
まず、自船から所定距離以内の他船データを抽出する（ｎ１１）。この「所定距離」は、衝突予防の対象とする、自船からの距離範囲である。この所定距離範囲に存在する他船についてのデータを含む連結リストを選択し、前述した場合と同様に、その連結リスト内の要素によって格納場所が指定される配列から他船データを順次読み出す。
【００４０】
続いて、自船から他船までの距離、他船の船速（針路と針路方向の移動速度）、総トン数、自船の船速（針路と針路方向の移動速度）、総トン数等から自船と対象とする他船との衝突危険度を、予め定めた方法により算出する（ｎ１２）。そして、衝突危険度の程度に応じて、表示画面内の該当の他船マークの色を変える等して、衝突危険度を表示する（ｎ１３）。
【００４１】
このように衝突予防のための処理対象である他船データを、それらの他船データが含まれている連結リストからのみ読み出すことによって、データ処理量が削減され、データ処理能力の限られたデータ処理部で多数の他船を扱うことができるようになる。
【００４２】
図８は他船データの更新処理の手順を示すフローチャートである。
まず、図１に示したＡＩＳデータ送受信部２から新たな他船データを読み取る（ｎ２１）。続いて、今回受信した他船データが、他船データベース６に既に存在するか否かを検索する（ｎ２２）。このステップｎ２２の処理で、上記他船データのうち静的データであるＭＭＳＩからハッシュ関数により格納場所を求め、そこから読み出した他船データの静的データと今回新たに受信により求めた他船データの静的データとを比較する。これによりごく短時間で検索が完了する。
【００４３】
この他船データの読み出しを、図２，図３に示したデータ構造を基に行う場合には、シノニムについての処理を行う。すなわち、読み出すべき他船データのＭＭＳＩから求めたハッシュ値に相当する格納場所の内容が、目的の他船データでなければ、前述した連鎖法によって書き込まれた他のデータを順に読み出す。また、上記他船データの読み出しを、図４に示したデータ構造を基に行う場合には、前述したとおり、該当の他船データが見つかるまで、他船データリストを順に読み出す。
【００４４】
該当があれば、その該当の他船データの内容を更新する（ｎ２３→ｎ２４）。もし該当がなければ、今回の他船データを他船データベース６に追加する（ｎ２５）。すなわち、自船からの距離範囲により予め区分した複数のグループの内どのグループに属するかを判定し、該当の連結リストの最後に追加する。
【００４５】
なお、上記ステップｎ２４の処理で、他船の自船からの距離が、予め区分した距離範囲とは異なった範囲に移動した時には、新たに該当することになった連結リストに、その他船データの格納場所を示すデータを追加する。また、それに伴って、元々格納されていた連結リストから該当の他船について書き込まれていた要素を削除する。すなわち、その削除すべき要素を指していたポインタの値を、その削除すべき要素をジャンプするように書き換える。
【００４６】
【発明の効果】
この発明によれば、他船データは、自船からの距離範囲によりグループ化された連結リスト構造をなすので、処理すべき他船データを抽出する際、自船からの距離を基に、予め区分された連結リストから抽出でき、データ処理量が削減される。その結果、データ処理能力の限られたデータ処理部を備えたものにおいても、ＡＩＳにより検知された多数の他船データを扱えるようになる。
【００４７】
また、この発明によれば、前記連結リストには、他船に関するデータの格納場所を示すデータを格納し、前記他船データの静的データをキーとするハッシングにより他船データの格納場所または読み出し場所を決定するようにしたことにより、他船データの格納または読み出し時の検索を短時間に行えるようになる。その結果、データ処理能力の限られたデータ処理部を備えたものにおいても、多数の他船データを扱えるようになる。
【００４８】
また、この発明によれば、表示縮尺および表示画面内の自船位置に応じて、表示画面内の自船に対する表示可能距離範囲を求め、該距離範囲に存在する他船に関するデータを格納した前記連結リストから、当該他船に関するデータを読み出して、前記表示画面内に他船の位置を表示するようにしたことにより、自船位置とともに複数の他船位置をグラフィック表示する際に、無駄な他船データの読み出しが抑えられ、データ処理効率が向上する。
【００４９】
また、この発明によれば、衝突予防の対象にすべき、自船から所定距離範囲に存在する他船に関するデータを、所定距離範囲に存在する他船に関するデータを格納した前記連結リストから読み出して、衝突予防のための処理を行うようにしたことにより、無駄な他船データの読み出しが抑えられ、データ処理効率が向上する。
【図面の簡単な説明】
【図１】ＡＩＳデータ処理装置の構成を示すブロック図
【図２】他船データベースの連結リスト構造を示す図
【図３】他船データベースの配列構造を示す図
【図４】他船データベースの別の構造を示す図
【図５】自船からの所定距離範囲と表示画面内への表示例等を示す図
【図６】データ処理部のマーク表示に関するフローチャート
【図７】データ処理部の衝突予防処理に関するフローチャート
【図８】データ処理部の他船データ更新に関するフローチャート
【図１】
0003995462.tif 000002
【図２】
0003995462.tif 000003
【図３】
0003995462.tif 000004
【図４】
0003995462.tif 000005
【図５】
0003995462.tif 000006
【図６】
0003995462.tif 000007
【図７】
0003995462.tif 000008
【図８】
0003995462.tif 000009