本発明の一実施形態を、図面を参照して説明する。図1に示すように、本実施形態における物体検出システムは、空間内において自律制御、自動運転または遠隔操縦が可能な移動体であるクライアント機1を主体とする。クライアント機1は、当該クライアント機1を遠隔監視または遠隔操縦する者が使用する端末であるコントロール機2、及びこれらクライアント機1及びコントロール機2と併用されるサーバ装置3と電気通信回線4を介して接続しており、クライアント機1とサーバ装置3との間、及びコントロール機2とサーバ装置3との間でそれぞれ情報通信が可能である。
電気通信回線4の具体例としては、インターネット、公衆電話網や、携帯電話網、PHS(Personal Handyphone System)網、公衆無線LAN(Local Area Network)、WiMAX(登録商標)その他の移動体無線通信網のような、公開のネットワークが挙げられる。尤も、クライアント機1とサーバ装置3とを繋ぐ通信路の全体が公開ネットワークであるとは限られず、コントロール機2とサーバ装置3とを繋ぐ通信路の全体が公開ネットワークであるとも限られない。例えば、クライアント機1やコントロール機2は、直接には非公開の有線LANまたは無線LANに接続しており、そのLANを経由して間接的にインターネット等の公開ネットワークに接続することがある。
サーバ装置3と接続するクライアント機1は複数存在することがあり、及び/または、サーバ装置3と接続するコントロール機2が複数存在することもある。あるユーザがある一台のクライアント機1を監視または操作し、他のユーザが別の一台のクライアント機1を監視または操作するような場合、前者のユーザが使用するコントロール機2と前者のクライアント機1とが一対一対応し、後者のユーザが使用するコントロール機2と後者のクライアント機1とが一対一対応していることがある。
クライアント機1は、何らかの作動を行う作動機構1q、及び各種の情報を取得するセンサ1k、1l、1m、1n、1o、1pを有した、遠隔操縦可能なロボット、作業用機器または監視用機器である。作動機構の具体例としては、クライアント機1自身を移動させるための車輪(駆動輪)1qや無限軌道、回転翼及び舵を含む飛行機構といった移動用の機構、クライアント機1の周囲に存在する物に対して物理的な作業を行うためのロボットアーム等の作業用の機構、太陽光発電パネルや風力発電用風車等の発電用の機構、等が挙げられる。
センサ1k、1l、1m、1n、1o、1pは、クライアント機1の所在する場所に関する情報を収集するためのものであったり、クライアント機1自身の状況を知得するためのものであったりする。センサの具体例としては、クライアント機1の周辺を撮影するカメラ(イメージセンサ)1k、音声を録音するマイク1lの他、温度センサ(クライアント機1の周辺の温度を計測するものと、クライアント機1内部の温度を計測するものとを含む)1m、湿度センサ、気圧センサ、照度センサ、クライアント機1の周辺環境における風速や風の流量を計測するセンサ、水流が存在している場合の流速や流量を検出するセンサ、火炎が存在している場合の火力や熱量を検出するセンサ、放射線量を計測するセンサ、二酸化炭素や酸素等の所定種類のガスの濃度を計測するセンサ、クライアント機1の付近に存在する何らかの物と当該クライアント機1との距離を計測する対物距離センサ(測距センサ)またはレーダ(レーザ、赤外線、超音波、パノラマカメラ等)1n、降雨の有無または降雨量を検出する降雨センサ、クライアント機1が所在する場所の土壌に含まれる水分量を計測するセンサ、クライアント機1が所在する場所の落ち葉の堆積量を検出するセンサ、クライアント機1に隣接または近接して存在する段差の大きさを検出するセンサ、クライアント機1の周囲にいる人または動物の存在を感知する人感センサ(パッシブ赤外線センサ)、GPSやQZSS(Quasi−Zenith Satellite System)といった航法衛星システム(衛星測位システム)によりクライアント機1の現在位置の緯度及び経度を知得するための航法信号受信装置1o、クライアント機1の移動方向や移動速度を検出するための加速度センサ(モーションセンサ、慣性センサまたはジャイロセンサ)または移動走行用の車輪の回転量を検出する回転センサ1p、ロボットアームの姿勢を決定するサーボモータまたはステッピングモータのコントローラ(ロボットアームに設けられたモータの回転量等を出力する)、ロボットアームに加えられている荷重の大きさを計測する重量センサ、発電機構による発電量(電圧及び/または電流)を検出する回路、クライアント機1に実装されたバッテリの現在の充電量(バッテリ電圧及び/またはバッテリ電流)を検出する回路、ユーザが手動で操作できるスイッチ(例えば、クライアント機1を起動または停止させるためのスイッチ)等が挙げられる。
クライアント機1を制御しようとする者は、コントロール機2を使用し、電気通信回線4を通じて対象のクライアント機1にコマンドを送信することができる。コマンドは、クライアント機1の有する作動機構1qやセンサを作動させまたはその作動を停止させるための指令、例えばクライアント機1の移動方向、移動距離または移動速度の指定を含む移動命令や、ロボットアームの駆動命令、カメラ1kによる撮影及び撮影した静止画像または動画像の送出命令、等である。
他方、クライアント機1は、当該コントロール機2に対し、電気通信回線4を通じて種々の情報をレポートとして提供する。クライアント機1が発信する情報は、クライアント機1に実装された上記の各センサ1k、1l、1m、1n、1o、1pにより撮影、録音、計測等して得られる情報や、コントロール機2から与えられた指令に従い作動を実行した結果の情報、または作動実行中の自身若しくは作動機構1qの状態を示す情報、作動を実行するために算出した各種の変数値等である。コントロール機2を制御するユーザは、これら情報をコントロール機2により受信して、その内容を確認することができる。
コントロール機2が発信するコマンドは、一旦サーバ装置3に受信され、このサーバ装置3からクライアント機1に送信される。クライアント機1が発信する種々の情報もまた、一旦サーバ装置3に受信され、このサーバ装置3からコントロール機2に送信される。尤も、クライアント機1とコントロール機2とがサーバ装置3を介さずにP2P(Peer To Peer)でコマンドやレポートをやり取りすることを妨げない。
また、あるクライアント機1と他のクライアント機1との間で情報の授受を行うことも考えられる。その場合にも、あるクライアント機1が発信する情報が一旦サーバ装置3に受信され、サーバ装置3から他のクライアント機1に送信される。無論、クライアント機1同士がサーバ装置3を介さずにP2Pで情報を送受信しても構わない。
本実施形態のクライアント機1は、作動機構1q及び各種センサ1k、1l、1m、1n、1o、1pを備える本体11に汎用のコンピュータ12を搭載して構成される。コンピュータ12の具体例としては、携行可能な小形のパーソナルコンピュータ、ワークステーション、携帯電話端末(特に、スマートフォン)、タブレット型端末、ビデオゲーム機、等が挙げられる。
図2に示すように、コンピュータ12は、CPU(Central Processing Unit)1a、メインメモリ1b、補助記憶デバイス1c、操作入力デバイス1d、オーディオコーデック1e、ビデオコーデック1f、通信インタフェース1g、スピーカ1h、ディスプレイ1i等のハードウェア資源を備え、これらがコントローラ(システムコントローラ、I/Oコントローラ等)1jにより制御されて連携動作するものである。
補助記憶デバイス1cは、ハードディスクドライブ、フラッシュメモリ、光学ディスクドライブ、その他である。操作入力デバイス1dは、手指で操作可能なタッチパネル、トラックパッド、マウス、押下ボタンやキーボード等である。オーディオコーデック1eは、符号化されている音声データを復号化してスピーカ1hから音声出力する。ビデオコーデック1fは、CPU1aより受けた描画指示をもとに表示させるべき画面を生成しその画面信号をディスプレイ1iに向けて送出するGPU(Graphics Processing Unit)、画面や画像のデータを一時的に格納しておくビデオメモリ等を要素とする。オーディオコーデック1e、ビデオコーデック1fはそれぞれ、ハードウェアでなくソフトウェアとして実装することも可能である。
通信インタフェース1gは、外部と情報の授受を行うためのデバイスであって、Ethernet(登録商標)用のNIC(Network Interface Card)や無線LAN用のWi−Fi(登録商標)デバイス、移動体無線通信網用の無線デバイス、短距離通信用のBluetooth(登録商標)トランシーバ等である。これら以外に、USB(Universal Serial Bus)、IEEE1394等のインタフェースを実装していることもある。
また、図3に示すように、クライアント機1の本体11は、カメラ1k、マイク1l、温度センサ1m、測距センサ1n、航法信号受信装置1o、加速度センサ1p、バッテリ充電量検出回路等の各種センサ、移動機構1qやロボットアーム、発電機構等の作動機構、並びに、通信インタフェース1r及びこれらを制御する制御回路1sを備えている。
クライアント機1の本体11とコンピュータ12とは、Bluetooth(登録商標)やUSB等の通信インタフェース1g、1rを介して接続する。
CPU1aによって実行されるべきプログラムは補助記憶デバイス1cに格納されており、プログラムの実行の際には補助記憶デバイス1cからメインメモリ1bに読み込まれ、CPU1aによって解読される。本実施形態では、既知のOS(Operating System)プログラムやこれに付帯する各種デバイスドライバプログラムが予めインストールされ、他のプログラムによる上記ハードウェア資源の利用を仲介する。
しかして、コンピュータ12には、必要となるクライアント機1用プログラムがインストールされる。当該コンピュータ12は、プログラムに従い、図4に示す物体位置データベース101、物体検出部102、情報発信部103及び情報受信部104としての機能を発揮する。
物体位置データベース101は、メインメモリ1bまたは補助記憶デバイス1cの所要の記憶領域を利用して、空間内に存在している個々の物体の位置及び形状を表現するデータを格納する。図5に例示するように、本実施形態では、クライアント機1を運用する空間を一定の緯度及び一定の経度間隔の格子によって区画される、一定の緯度及び一定の経度の大きさのグリッドGに分割するとともに、空間内に存在する物体の平面視形状を各物体毎に一または複数のグリッドGの集合として表現するものとしている。
グリッドGは、空間内に存在する物体の位置の抽象化表現LLQuad(Latitude Longitude Quadrangle)である。一つのグリッドGは、緯度方向及び経度方向にそれぞれ所定寸法を有した方形(四辺形)である。そして、一つのグリッドGを表すために、少なくとも、一つの位置座標を付与する。但し、後述するように、一つのグリッドGに対してさらに複数のダミー点PDの位置座標を付与することがある。この位置座標は、対象のグリッドG内に存在する何れかの地点、例えば当該グリッドGの角(北東角、南東角、北西角または南西角)や中心等の地点PBの緯度及び経度である。それら緯度及び経度はそれぞれ、所定桁数の値とする。緯度及び経度の有効桁数を小数点以下6桁までとする場合、即ちあるグリッドGを表すデータとして位置座標(緯度,経度)を
(35.6751260°N,139.7524720°E)
のように与える場合、当該グリッドGの北に隣接したグリッドGに与えるべき位置座標は、北緯に0.000001°を加算した
(35.6751270°N,139.7524720°E)
となる。また、当該グリッドGの西に隣接したグリッドGに与えるべき位置座標は、東経から0.000001°を減算した
(35.6751260°N,139.7524710°E)
となる。なお、小数点以下7桁目は、後述するダミー点PDの位置座標を表現するためのものである。そして、緯度及び経度の有効桁数を小数点以下6桁までとする場合、一つのグリッドは緯度方向及び経度方向にそれぞれ0.000001°分の寸法を有した方形となる。その具体的な大きさは、緯度及び経度の影響を受けるため、あらゆるグリッドGが同一の寸法を有するわけではない(北極または南極に近づくほど単位経度あたりの距離は顕著に小さくなり、また単位緯度あたり方向の寸法は若干ではあるが大きくなる)。日本国内では、一つのグリッドGの緯度方向の寸法は南北に約11cm、経度方向の寸法は東西に約9cmとなる。尤も、日本列島は南北に伸びているので、所在地の緯度による寸法の伸縮を無視するべきではない。因みに、位置座標の緯度及び経度の有効桁数を小数点以下5桁までとする場合には、一つのグリッドGの緯度方向の寸法は約1.1m、経度方向の寸法は約0.9mとなる。位置座標の緯度及び経度の有効桁数は、用途に応じて、また各物体の寸法に応じて、任意に設定することができる。
加えて、個々のグリッドGに対して、高さの情報を付与してもよい。高さの情報は、当該グリッドGに存在している物体またはその部分の全高、即ち当該物体またはその部分の上面の高さを表現する。なお、クライアント機1の存在する地面または床面よりも低い位置に存在する物体、例えば溝や穴、河川や湖、海等を表現する際には、高さの情報に負の数値を与える。高さとして所定値(例えば、0.1m)を与えたグリッドGにより、側溝のようなものを表現することもできる。
個々のグリッドGに対して、地上高の情報を付与することも考えられる。地上高の情報は、当該グリッドGに存在している物体またはその部分の下面の高さを表現する。橋桁や梁、門等のように、クライアント機1の存在する地面または床面から浮いている物を表現する際には、地上高に正の数値を与える。地面に接地している多くの物体については、地上高は0mとなる。
また、個々のグリッドGに対して、当該グリッドGが表現する物体またはその部分の色等の情報を追加的に付与しても構わない。
対象となる物体は、例えば、クライアント機1が通行可能な通路(道路であることがある)、建物や樹木等の不動産その他のクライアント機1の移動や動作の妨げとなり得る種々の障害物、あるいは他のクライアント機1やロボット、自動車その他の移動体である。既に述べた通り、これら物体はそれぞれ、当該物体が空間内で現在占有している一または複数のグリッドGの形で表現することができる。つまり、当該物体が占有しているグリッドGの位置座標の集合として、当該物体をデータ化することができる。全長100m、幅3mの通路は、位置座標の緯度及び経度の有効桁数を小数点以下6桁とすれば、(当該通路の向きにもよるが)約3万個のグリッドGの集合体として捉えることができ、同数の位置座標の集合としてデータ化できる。また、建物面積400m2の建物は、位置座標の緯度及び経度の有効桁数を小数点以下5桁とすれば、400個程度のグリッドGの集合体として捉えることができ、同数の位置座標の集合としてデータ化できる。
図7に、物体位置データベース101に格納する、空間内に存在する物体を表現するデータの例を示す。物体を表現する各グリッドGの位置座標の値は、上記の高さ情報、地上高情報、色情報等を付加した上で、当該位置座標が表現している物体を識別する識別子に関連づけて記憶する。同一の物体を表現する複数のグリッドGの位置座標にはそれぞれ、同一の物体識別子を与えることになる。加えて、物体識別子は、各グリッドGが表現する物体が移動体が通過可能な通路であるのか、または移動体が通過不能な障害物であるのか、その種別を示す情報となる。
さらに、物体を表現する各グリッドGに対して、ダミー点PDの位置座標を付与することがある。本実施形態では、基準位置PS、典型的にはクライアント機1の現在、過去または未来の位置から、ある距離D内に存在する物体を検索することを想定している。そのために、下記物体検出部102において、基準位置PSの座標を起点から与えられた距離D内にあるグリッドGの位置座標を、物体位置データベース101から検索する処理を行う。仮に、物体を表現する各グリッドG毎に一つの位置座標のみを与える、例えば図6に示す各グリッドGの北東角PBの位置座標のみをデータベース化しているとすると、基準位置PSが対象のグリッドGの北東方向に位置する場合には、当該基準位置PSから見て南西方向にある対象のグリッドGの北東角PBの位置座標ひいては当該グリッドGを精確に検出することができる。しかしながら、基準位置PSが対象のグリッドGの南側または西側に位置する場合、換言すれば基準位置PSから見て北方向または東側にあるグリッドGを検索しようとする場合には、対象のグリッドGが与えられた距離D内に存在するにもかかわらず、当該グリッドGの北東角PBの位置座標が距離Dの範囲から外れてしまい、当該グリッドGを検出できないということが起こり得る。
そこで、本実施形態では、物体を表現する各グリッドG毎に複数の位置座標を与えることで、検索精度の向上即ち検索漏れの防止を図っている。具体的には、図6に示しているように、物体を表現する各グリッドGについて、基本となる北東角PBの位置座標の他に、当該グリッドG内に存在する一または複数の地点PD、例えば当該グリッドGの南西角近傍、北西角近傍及び南東角近傍の位置座標を付与し、それらダミー点PDの位置座標を、基本点PBである北東角の位置座標とともに物体識別子に関連づけて物体位置データベース101に格納している。これにより、与えられた距離Dの範囲から基本点PBの位置座標が外れたとしても、ダミー点PDの位置座標がその距離Dの範囲内に捕捉されるようになり、当該ダミー点PDの位置座標及び当該ダミー点PDの属するグリッドGを正しく検出することが可能となる。緯度及び経度の有効桁数を小数点以下6桁までとし、あるグリッドGを表す基本点PB即ち北東角の位置座標が
(35.6751260°N,139.7524720°E)
である場合、当該グリッドGに与えるべきダミー点PDの位置座標は、当該グリッドGの南西角、北西角及び南東角よりも若干内側の地点
(35.6751251°N,139.7524711°E)
(35.6751259°N,139.7524711°E)
(35.6751251°N,139.7524719°E)
のようになり、緯度及び経度の有効桁数を超えた小数点以下7桁目を利用して記述される。
物体位置データベース101では、空間内に存在する物体を表現する多数のグリッドGの基本点PB及びダミー点PDの位置座標を、インデックス化して格納している。即ち、検索キーとなる緯度及び/経度の範囲と、その緯度及び/または経度の範囲に属するグリッドGの位置座標群を格納している記憶領域へのポインタとの組であるインデックス情報を生成した上で、グリッドGの位置座標群とともに記憶保持している。
物体位置データベース101に格納するデータは、予め与えられていることもあれば、クライアント機1において動的に生成することもある。建物や樹木といった不動産や、原則として固定の障害物は、クライアント機1の運用に先んじて予めデータベース化しておくことが可能であり、そのデータを頻繁に更新する必要もない。一方で、空間内で活動するクライアント機1やロボット、自動車その他の移動体については、その存在/不存在や位置が刻々と変化するため、データを適時更新する必要がある。
クライアント機1には、カメラ1kや、対物距離センサまたはレーダ1nを実装しており、これを用いて空間内に存在する他の物体を発見することが可能である。そして、クライアント機1は、発見した物体の位置情報を、当該物体が占有している一または複数のグリッドGの(基本点PB及びダミー点PDの)位置座標の形で、自身が保有する物体位置データベース101に格納する。また、後述するように、この位置座標のデータを、コントロール機2やサーバ装置3、または自身以外の他のクライアント機1に送信して提供することができる。
同様に、クライアント機1は、航法信号受信装置1oを利用して知得した自身の現在位置の座標を、コントロール機2やサーバ装置3、または他のクライアント機1に送信して提供することができる。他のクライアント機1から見れば、自身もまた空間内に存在する障害物となり得る物体である。それ故、他のクライアント機1に自身の位置情報を提供することで、他のクライアント機1において自身の存在を検出可能とするのである。
さらに、後述するように、クライアント機1が、コントロール機2やサーバ装置3、または他のクライアント機1からもたらされる位置座標のデータを受信して、物体位置データベース101に格納することも可能である。
物体検出部102は、基準位置PS、典型的にはクライアント機1の現在、過去または未来の位置から、与えられた距離Dの範囲に存在する物体を検出する。具体的には、物体位置データベース101に格納しているグリッドGの位置座標のうち、基準位置PSの座標から与えられた距離D内にある位置座標を抽出することを通じて、基準位置PSから与えられた距離Dの範囲内に存在する、物体により占有されているグリッドGを検出する。
基準位置PSの座標となるクライアント機1の現在または過去の位置座標は、自身に実装されている航法信号受信装置1oを利用して検出することができる。また、クライアント機1の未来の位置座標は、例えばクライアント機1の現在の位置座標及び移動方向、移動速度を基に推測することができる。無論、クライアント機1が移動しようとしている移動先(目的地)の位置座標を基準位置PSの座標とすることも当然に可能である。
基準位置PSからの検索範囲を示す距離Dの値は、固定値でもよいし、クライアント機1(の本体11またはコンピュータ12)で実行している自動運転または自律制御用のプログラムに従い状況に応じて設定する可変値としてもよい。基準位置PSや検索範囲の距離Dがユーザによって指定される、即ちユーザが使用するコントロール機2から電気通信回線4を介してもたらされる検索指令コマンドに基準位置PSの指定や検索範囲の距離Dの値が含まれていてもよい。
基準位置PSの座標及び検索範囲の距離Dが与えられた物体検出部102は、まず、検索範囲の距離Dの値を基に、空間内において検索対象となる最大及び最小の緯度及び経度の範囲を決定する。物体位置データベース101に格納している各グリッドGの位置座標の経度及び緯度の有効桁数が小数点以下6桁である場合、日本国内では一つのグリッドGの緯度方向(南北)の寸法が約11cm、経度方向(東西)の寸法が約9cmである。そして、検索対象範囲が基準位置PSから5mであるとすると、緯度方向には基準位置PSから北方及び南方にそれぞれ46個分のグリッドG、即ち基準位置PSからの緯度が±0.000046°の範囲にあるグリッドGが検索対象となり、経度方向には基準位置PSから東方及び西方にそれぞれ56個分のグリッドG、即ち基準位置PSからの経度が±0.000056°の範囲にあるグリッドGが検索対象となる。
但し、グリッドGの寸法は、当該グリッドGが所在している地球上の場所即ち緯度による影響を受ける。特に、グリッドGの経度方向の寸法は、緯度が1°異なるだけで無視できない程度に変化する。つくば市のある北緯36°の場所ではグリッドGの経度方向寸法がほぼ9cmであるが、京都市のある北緯35°の場所ではこれが約9.13cmに拡大する。従って、検索対象となる最大及び最小の緯度及び経度の範囲を決定するに際しては、例えば、メインメモリ1bまたは補助記憶デバイス1cに、基準位置PSの緯度とグリッドGの寸法との関係を規定したテーブルまたは演算式を予め格納しておき、それを用いて基準位置PSの緯度に対応したグリッドGの寸法を知得することが好ましい。
次いで、物体検出部102は、物体位置データベース101のインデックスを参照し、基準位置PSから検索対象となる最大及び最小の緯度及び経度の範囲内にある位置座標を順次読み出す。そして、物体位置データベース101から読み出した位置座標と基準位置PSの座標との間の距離である測地線長を算出し、算出した測地線長を与えられた検索範囲の距離Dの値と比較する。基本点PB及びダミー点PDのうち少なくとも一つと基準位置PSとの間の測地線長が、与えられた検索範囲の距離Dの値以下であるならば、その基本点PBまたはダミー点PDの属するグリッドGが検索範囲の距離D内に存在する、ひいてはそのグリッドGが表現している物体が基準位置PSから見て検索範囲の距離D内に存在しているということになる。
加えて、物体検出部102は、基準位置PSから検索範囲の距離D内に存在するグリッドGについて、基準位置PSから見た方位角を算出することもできる。
ここで、基準位置PSと対象位置との距離である測地線長、及び基準位置PSから見た対象位置の方位角の計算方法の一例を示す。以下に述べる計算方法は、国土地理院ウェブサイト(http://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/bl2stf.html)で紹介されているものである。
基準位置PSの緯度をφ1、経度をL1とおき、対象位置の緯度をφ2、経度をL2とおく。但し、北緯を正、南緯を負、東経を正、西経を(360°−経度)とする。また、L=L2−L1が負値となる場合には、基準位置PSの緯度をφ2、経度をL2とし、対象位置の緯度をφ1、経度をL1として、Lを正値化する。並びに、地球楕円体(準拠楕円体)の長半径をa、扁平率をfとおく。
L=L2−L1; L’=180°−L (但し、0°≦L≦180°)
Δ=φ2−φ1; Σ=φ1+φ2
u1=tan-1[(1−f)tanφ1]; u2=tan-1[(1−f)tanφ2]
Σ’=u1+u2; Δ’=u2−u1 (但し、−180°≦Σ’≦180°、−180°≦Δ’≦180°)
ξ=cos(Σ’/2); ξ’=sin(Σ’/2)
η=sin(Δ’/2); η’=cos(Δ’/2)
x=sinu1sinu2; y=cosu1cosu2
c=ycosL+x
ε=[f(2−f)]/[(1−f)2]
以降、cの値に応じて一部計算式が異なり、c≧0が成立する場合をゾーン1、0>c≧−cos(3°cosu1)が成立する場合をゾーン2、c<−cos(3°cosu1)が成立する場合をゾーン3とする。
θの初期値θ(0)について、ゾーン1ではθ(0)=L(1+fy)とし、ゾーン2ではθ(0)=L’とする。
ゾーン3では、Σ=0であるゾーン3(a)と、Σ≠0であるゾーン3(b)とで計算方法が分かれる。
R=fπcos2u1[1−(1/4)f(1+f)sin2u1+(3/16)f2sin4u1]
d1=L’cosu1−R; d2=|Σ’|+R
q=L’/(fπ); f1=(1/4)f[1+(1/2)f]; γ0=q+f1q−f1q3
ゾーン3(a)でのθ(0)の計算は、
A0=tan-1(d1/d2) (但し、−90°≦A0≦90°)
B0=sin-1[R/√(d1 2+d2 2)] (但し、0°≦B0≦90°)
ψ=A0+B0; j=γ0/cosu1
k=(1+f1)|Σ’|(1−fy)/(fπy); j1=j/(1+ksecψ)
ψ’=sin-1j1 (但し、0°≦ψ’≦90°)
ψ’’=sin-1(j1cosu1/cosu2) (但し、0°≦ψ’’≦90°)
θ(0)=2tan-1{tan[(ψ’+ψ’’)/2]sin(|Σ’|/2)/cos(Δ’/2)}
他方、ゾーン3(b)では、d1>0の場合にθ(0)=L’とする。ゾーン3(b)でd1≦0である場合の測地線長及び方位角の計算に関しては、別途述べる。
(ゾーン3(b)でd1≦0である場合を除く)下記θの算出において、一回目の演算ではθ(n)≡θ(0)とし、二回目以降の演算ではθ(n+1)≡θ(n)とする。
ゾーン1では、g=√[η2cos2(θ(n)/2)+ξ2sin2(θ(n)/2)]
ゾーン1以外では、g=√[η2sin2(θ(n)/2)+ξ2cos2(θ(n)/2)]
ゾーン1では、h=√[η’2cos2(θ(n)/2)+ξ’2sin2(θ(n)/2)]
ゾーン1以外では、h=√[η’2sin2(θ(n)/2)+ξ’2cos2(θ(n)/2)]
σ=2tan-1(g/h); J=2gh; K=h2−g2
γ=(y/J)sinθ(n); Γ=1−γ2; ζ=ΓK−2x; ζ’=ζ+x
D=(1/4)f(1+f)−(3/16)f2Γ
E=(1−DΓ)fγ{σ+DJ[ζ+DK(2ζ2−Γ2)]}
ゾーン1では、F=θ(n)−L−E
ゾーン1以外では、F=θ(n)−L’+E
G=fγ2(1−2DΓ)+fζ’(σ/J)[1−DΓ+(1/2)fγ2]+(1/4)f2ζζ’
θ(n+1)=θ(n)−F/(1−G)
上記を所要回数反復することで、θを求める。その反復的な演算は、|F|<10-15となるまで続行することが好ましい。
(ゾーン3(b)でd1≦0である場合を除く)測地線長sは、
n0=εΓ/[√(1+εΓ)+1]2; A=(1+n0)[1+(5/4)n0 2]
B=ε[1−(3/8)n0 2]/[√(1+εΓ)+1]2
s=(1−f)aA(σ−BJ{ζ−(1/4)B[K(Γ2−2ζ2)−(1/6)Bζ(1−4K2)(3Γ2−4ζ2)]})
(ゾーン3(b)でd1≦0である場合を除く)基準位置PSから見た対象位置の方位角αは、
ゾーン1では、α=tan-1[ξtan(θ/2)/η]−tan-1[ξ’tan(θ/2)/η’]
ゾーン1以外では、α=tan-1[η’tan(θ/2)/ξ’]−tan-1[ηtan(θ/2)/ξ]
但し、基準位置PSの緯度及び経度を(φ2,L2)とし、対象位置の緯度及び経度を(φ1,L1)としているのであれば、
ゾーン1では、α=180°+tan-1[ξtan(θ/2)/η]+tan-1[ξ’tan(θ/2)/η’]
ゾーン1以外では、α=360°−tan-1[η’tan(θ/2)/ξ’]−tan-1[ηtan(θ/2)/ξ]
なお、ゾーン3(b)でd1=0である場合の測地線長s及び方位角αは、
Γ=sin2u1
n0=εΓ/[√(1+εΓ)+1]2; A=(1+n0)[1+(5/4)n0 2]
s=(1−f)aAπ
α=90°
但し、基準位置PSの緯度及び経度を(φ2,L2)とし、対象位置の緯度及び経度を(φ1,L1)としているのであれば、α=270°
また、ゾーン3(b)でd1<0である場合の測地線長s及び方位角αは、下記に則って算出する。一回目の演算ではγ(n)≡γ(0)とし、二回目以降の演算ではγ(n+1)≡γ(n)として、
Γ=1−γ(n) 2; D=(1/4)f(1+f)−(3/16)f2Γ
γ(n+1)=q/(1−DΓ)
上記を所要回数反復することで、Γ及びDを求める。その反復的な演算は、|γ(n)−γ(n-1)|<10-15となるまで続行することが好ましい。そして、
n0=εΓ/[√(1+εΓ)+1]2; A=(1+n0)[1+(5/4)n0 2]
s=(1−f)aAπ
m=1−qsecu1; n=DΓ/(1−DΓ); w=m−n+mn
w≦0のとき、α=90°
w>0のとき、α=90°−2sin-1√(w/2)
但し、基準位置PSの緯度及び経度を(φ2,L2)とし、対象位置の緯度及び経度を(φ1,L1)としているのであれば、
w≦0のとき、α=270°
w>0のとき、α=270°+2sin-1√(w/2)
物体検出部102が物体位置データベース101を検索して抽出した、基準位置PSから与えられた距離D内に存在する物体に関する情報は、メインメモリ1bまたは補助記憶デバイス1cの所要の記憶領域に書き込むことでクライアント機1で実行している自動運転または自律制御用のプログラムによる利用に供してもよいし、クライアント機1上のディスプレイ1iに画面表示させてもよい。または、ユーザが使用するコントロール機2やサーバ装置3、あるいは他のクライアント機1等に向けて、電気通信回線4を介して送信してもよい。基準位置PSから与えられた距離D内に存在する物体に関する情報とは、例えば、基準位置PSから与えられた距離D内に存在するグリッドGの位置座標や物体識別子、基準位置PSから当該グリッドGまでの距離、基準位置PSから見た当該グリッドGの方位角、等である。当該グリッドGまでの距離や方位角は、基準位置PSから与えられた距離内に存在する物体までの距離や、基準位置PSから見た当該物体の方位角を示唆する。
物体検出部102が、基準位置PSから見て与えられた方位角の範囲内に存在する物体のみを検索して抽出することもあり得る。検索範囲を示す方位角の値は、固定値でもよいし、クライアント機1で実行している自動運転または自律制御用のプログラムに従い状況に応じて設定する可変値としてもよい。検索対象となる方位角の範囲がユーザによって指定される、即ちユーザが使用するコントロール機2から電気通信回線4を介してもたらされる検索指令コマンドに検索範囲を示す方位角の値が含まれていてもよい。
例えば、クライアント機1が前進移動している最中において、前方に障害物が存在しないかどうかを確認することを目的とする検索処理では、基準位置PSとなるクライアント機1の現在位置の後方に存在する物体については検出する必要性が乏しい。そのような場合には、クライアント機1の現在位置から与えられた距離Dの範囲内に存在し、かつクライアント機1の現在の移動方向から所定の方位角の範囲内(移動方向の左右45°の範囲等)に存在している物体に係るグリッドGの位置座標のみを、上述した検索処理を通じて物体位置データベース101から抽出する。そして、その位置座標や当該位置座標に関連づけられた物体識別子、基準位置PSからの距離等の情報を、メインメモリ1bまたは補助記憶デバイス1cの記憶領域に書き込んだり、クライアント機1上のディスプレイ1iに画面表示させたり、コントロール機2やサーバ装置3、他のクライアント機1等に向けて送信したりする。
情報発信部103は、コンピュータ12の通信インタフェース1gを利用し、クライアント機1からコントロール機2やサーバ装置3、または他のクライアント機1に伝達するべき情報を、電気通信回線4を介して送信する。クライアント機1から発信する情報には、当該クライアント機1がカメラ1kや対物距離センサまたはレーダ1n等を介して発見した空間内の物体の位置情報や、当該クライアント機1が航法信号受信装置1oを介して知得した自身の現在位置の座標等が含まれる。この情報は、他のクライアント機1において物体位置データベース101を構成するデータの一部となり得る。
当該クライアント機1が物体位置データベース101を検索して知得した、基準位置PSから与えられた距離D内に存在する物体に関する情報を、検索指令コマンドに対するレポートとしてコントロール機1に返信することがあり、また、その検索処理の結果の情報を他のクライアント機1に提供するべく送信することもある。
情報受信部104は、コンピュータ12の通信インタフェース1gを利用し、コントロール機2やサーバ装置3、または他のクライアント機1からもたらされる情報を、電気通信回線4を介して受信する。クライアント機1が受信する情報には、他のクライアント機1が空間内で発見した物体の位置情報や、他のクライアント機1自身の現在位置の座標、またはユーザその他の人手により入力された既知の物体の位置情報等が含まれる。このような情報を受信したクライアント機1(のコンピュータ12)は、受信した情報を物体位置データベース101に格納して、以後の物体の検索処理に利用する。
また、コントロール機2からもたらされる各種のコマンドを受信し、そのコマンドに応じた処理を実行することもある。ユーザの使用するコントロール機2から検索指令コマンドがもたらされたときには、上述した物体検出部102による物体位置データベース101の検索処理の実行を開始する。その検索指令コマンドには、少なくとも、検索対象範囲を指定する基準位置PSからの距離Dの値が含まれる。さらに、検索指令コマンドに、検索対象となる方位角の範囲を示す値が含まれることがある。
本実施形態の物体位置データベース101は、空間を一定の緯度及び一定の経度の大きさのグリッドGに分割した場合における、当該空間内において移動体であるクライアント機1が通過可能な通路(道路)及び/または通過不能な障害物と重なる一または複数のグリッドGに対応した位置の座標を格納する。クライアント機1が移動可能な通路をデータベース化するにあたっては、図15(a)に示すように、クライアント機1の通行を許可する通路Wとなる領域をグリッドG化してその位置座標を物体位置データベース101に格納してもよく、あるいは逆に、図15(b)に示すように、クライアント機の通行を禁止する障害物となる領域をグリッドG化してその位置座標を物体位置データベース101に格納してもよい。図15(b)の例では、障害物を示すグリッドが通路Wの外縁を表しており、障害物を示すグリッドGよりも内側の領域がクライアント機1が移動可能な通路Wということになる。無論、通路の領域及び障害物の領域の双方をグリッドG化してその位置座標を物体位置データベース101に格納することとしても構わない。図7に例示している物体位置データベース101の内容は、通路及び障害物の双方をデータベース化したものである。
物体位置データベース101を構築するための物体位置データベース構築システムは、サーバ装置3を主体として構成される。サーバ装置3は、汎用のコンピュータ、例えばパーソナルコンピュータ、ワークステーション、携帯電話端末(特に、スマートフォン)、タブレット型端末、ビデオゲーム機、等である。
図8に示すように、サーバ装置3は、CPU3a、メインメモリ3b、補助記憶デバイス3c、操作入力デバイス3d、オーディオコーデック3e、ビデオコーデック3f、通信インタフェース3g、マイク3h、ディスプレイ3i等のハードウェア資源を備え、これらがコントローラ(システムコントローラ、I/Oコントローラ等)3jにより制御されて連携動作するものである。
補助記憶デバイス3cは、ハードディスクドライブ、フラッシュメモリ、光学ディスクドライブ、その他である。操作入力デバイス3dは、手指で操作可能なタッチパネル、トラックパッド、マウス、押下ボタンやキーボード等である。オーディオコーデック3eは、マイク3hを介して入力される音声を符号化する。ビデオコーデック3fは、CPU3aより受けた描画指示をもとに表示させるべき画面を生成しその画面信号をディスプレイ3iに向けて送出するGPU、画面や画像のデータを一時的に格納しておくビデオメモリ等を要素とする。オーディオコーデック3e、ビデオコーデック3fはそれぞれ、ハードウェアでなくソフトウェアとして実装することも可能である。
通信インタフェース3gは、外部と情報の授受を行うためのデバイス、特にクライアント機1やコントロール機2と通信を行うためのデバイスであって、NICや無線LAN用のWi−Fi(登録商標)デバイス、移動体無線通信網用の無線デバイス、短距離通信用のBluetooth(登録商標)トランシーバ等である。これら以外に、USB、IEEE1394等のインタフェースを実装していることもある。
CPU3aによって実行されるべきプログラムは補助記憶デバイス3cに格納されており、プログラムの実行の際には補助記憶デバイス3cからメインメモリ3bに読み込まれ、CPU3aによって解読される。本実施形態では、既知のOSプログラムやこれに付帯する各種デバイスドライバプログラムが予めインストールされ、他のプログラムによる上記ハードウェア資源の利用を仲介する。
しかして、サーバ装置3には、本実施形態の物体位置データベース構築システムを構築するために必要となるプログラムがインストールされる。当該サーバ装置3は、プログラムに従い、図9に示す地図画像取得部301、メタデータ取得部302、解析処理部303及び物体位置データベース304としての機能を発揮する。
地図画像取得部301は、地図画像データを取得する。地図画像データとは、対象の空間の一部をなす地域に対応した画像データであり、当該地図画像データを構成する画素の画素値に基づいてその画素が表している領域に通路及び/または障害物が存在しているか否かを判別できるようなビットマップ画像データである。図10に、地図画像データの一例を示す。図示例の地図画像は、国土地理院ウェブサイトで公開されている航空写真(http://mapps.gsi.go.jpcontentsImageDisplay.dospecificationId=707846&isDetail=true)に加工を施したものである。具体的には、移動体であるクライアント機1の通行が許される通路の領域を構成する画素を、特定の画素値(色。図示例では、白色)に変換してある。このような画素値の変換は、サーバ装置3その他のコンピュータによる画像解析により自動的に実行してもよいし、人手によって(ビットマップ画像を取り扱うグラフィックスソフトウェアを使用して)実行してもよい。また、このような画素値の変換加工を予め地図画像データに施さずとも、本物体位置データベース構築システム(の解析処理部303)による画像解析によって通路または障害物の領域を表す画素の位置を地図画像データから抽出できるのであれば、予め変換加工を施しておく必要はない。地図画像取得部301は、このような加工が施されている地図画像データ、または施されていない地図画像データを、これを格納しているメインメモリ3bまたは補助記憶デバイス3cから読み出し、またはサーバ装置3と通信可能に接続している外部のコンピュータから通信インタフェース3gを介して受信する。
メタデータ取得部302は、上記の地図画像データに関するメタデータを取得する。メタデータは、少なくとも、地図画像データを構成する少なくとも一の画素が表している領域の緯度及び経度を示す情報を含んでいる。加えて、メタデータは、地図画像データを構成する一つ一つの画素が表している各領域の緯度方向及び経度方向の寸法、または地図画像データが全体として表している地域の緯度方向及び経度方向の寸法(若しくは、地図画像の縮尺)に関する情報(これは、地図画像データに含まれる画素数と相まって、各画素が表す各領域の緯度方向及び経度方向の寸法を明らかにするものとなる)を含むことがある。但し、地図画像データの一つの画素が表している領域の寸法または地図画像データ全体が表している地域の寸法が常に一定で既知であるならば、そのような情報をメタデータに含んでいる必要はない。メタデータは、地図画像データファイル内のメタデータ記述領域(Exif領域やXMP領域、PNG画像におけるチャンク等)に記述されることもあれば、地図画像データファイルのファイル名に記述されることもある。この場合、メタデータ取得部302は、地図画像取得部301と同様にして、地図画像データに付随するメタデータを取得する。あるいは、メタデータは、ユーザにより手入力または音声入力されることもあり得る。そのような場合には、メタデータ取得部302は、操作入力デバイス3dまたはマイク3hを介してメタデータを取得する。
解析処理部303は、地図画像取得部301で取得した地図画像データ及びメタデータ取得部302で取得したメタデータを参照し、地図画像データを構成する画素が表している領域に通路または障害物が存在しているか否かを判断するとともに、通路または障害物が存在している領域を表す画素がどのグリッドG内に所在するかを判断して、その通路または障害物が所在するグリッドGに対応した位置の座標を記憶装置即ちメインメモリ3bまたは補助記憶デバイス3cに書き込む。解析処理部303では、地図画像データを構成する各画素がどの緯度または経度のグリッドGに位置するか、そして当該グリッドGが通路または障害物に当たるかどうかを判定する必要がある。地図画像データを構成する各画素が通路を表しているか障害物を表しているかは、各画素の画素値即ち色を基に、既知の画像解析手法を以て判断することが可能である。よって、後は、地図画像データを構成する各画素がどの緯度または経度のグリッドGに位置するのかを知る必要がある。
以下、地図画像データを構成する一つの画素が表す領域の緯度方向及び経度方向の寸法と、一つのグリッドGの緯度方向及び経度方向の寸法とが近いことを前提として、画素とグリッドとの対応付けを行う手法を述べる。
例えば、対象の地域が京都市であり、グリッドGの寸法が経度方向に約9.13cm、緯度方向に約11.1cmであって、地図画像データの画素が表している領域の大きさが経度方向、緯度方向ともに約9.13cmである場合には、緯度方向についてはグリッドGの寸法と画素の寸法とが合致するが、経度方向についてはどのグリッドGにどの画素を当てはめるかを検討しなければならない。グリッドGの寸法が経度方向にA、緯度方向にBであり、画素の表している領域の寸法が経度方向、緯度方向ともにC=Aであるとすると、京都市であればA=C=9.12771cm、B=11.0941cmに設定することができる。
地図画像データ内の各画素について、当てはめ処理の起点となる画素から緯度方向に沿ってi番目の画素の画素値をp(i)とおく。一方、各グリッドGについて、起点となる画素と重なり合っているグリッドGから緯度方向に沿ってn番目のグリッドに当てはめるべき画素値をpg(n)とおく。なお、pg(0)=p(0)とする。即ち、起点となる画素と重なり合っているグリッドGの画素値は、起点となる画素の画素値とする。また、起点となっている画素から緯度方向に沿ってi番目の画素までの距離をl(i)とおき、起点となっているグリッドGから緯度方向に沿ってn番目のグリッドまでの距離をlg(n)とおく。l(i)=Ai、lg(n)=Bnである。さらに、lg(0)=l(0)=0である。
図11は、地図画像データを構成する画素が表す領域の緯度(または、経度)方向の寸法とグリッドGの緯度(または、経度)方向の寸法とが相異し、前者が後者よりも小さい場合の、画素とグリッドGとの対応関係を決定する手順である。なお、地図画像中の画素が表す領域の寸法及び緯度及び経度(特に、起点となる画素の位置する緯度及び経度)の値は、メタデータに基づいて既知とする。並びに、グリッドGの寸法も、メタデータに基づいて既知とする。地図画像データのメタデータにより、当該地図画像データが表している地域の緯度及び経度(または、地図画像データを構成する何れかの画素が表している領域の緯度及び経度)が明らかとなり、各グリッドGを示す緯度及び経度の有効桁数が与えられることで、本システムの主体となるサーバ装置3において、先に詳述した測地線長の計算方法を用い、当該地図画像データが表す地域におけるグリッドGの緯度方向及び経度方向の寸法を算定することが可能である。
まず、カウンタi及びnをともに初期値0にセットする(ステップS1)。そして、lg(n+1)−l(i+1)>C/2が成立するか否かを判断する(ステップS2)。
もし、lg(n+1)−l(i+1)>C/2が不成立であるならば、pg(n)=p(i)とした上で(ステップS3)、i及びnをそれぞれ1増加させる(ステップS4)。その後、再びステップS2にループする。
これに対し、lg(n+1)−l(i+1)>C/2が成立したならば、nを増加させずにiのみを1増加させ(ステップS5)、再びステップS2にループする。
iが与えられている画像の緯度方向の画素数に到達したならば(ステップS6)、ループを脱して処理を終了する。
図12は、図11に示した当てはめ処理の結果である。図12中、細線で描画している格子枠の一つ一つの格子目が地図画像の画素に対応し、太線で描画している格子枠の一つ一つの格子目がグリッドGに対応している。グリッドGの経度方向の寸法は、画素が表す領域の経度方向の寸法に等しいが、グリッドGの緯度方向の寸法は、画素が表す領域の緯度方向の寸法よりも大きい。枠内の明朝体の数値は、緯度方向に並ぶ画素の順番を表し、枠外のゴシック体の数値は、緯度方向に並ぶ各グリッドGに当てはめられる画素の順番を表している。具体例を挙げると、左上の起点の画素と重なり合うグリッドGから緯度方向に沿って一つ隣のグリッドG(n=1)に当てはめるべき画素値pg(1)は、起点の画素から緯度方向に沿って一つ隣の画素(i=1)の画素値p(1)であるが、起点の画素と重なり合うグリッドGから緯度方向に沿って二つ隣のグリッドG(n=2)に当てはめるべき画素値pg(2)は、起点の画素から緯度方向に沿って三つ隣の画素(i=3)の画素値p(3)となる。また、起点の画素と重なるグリッドGから緯度方向に沿って数えて十番目のグリッドG(n=10)に当てはめるべき画素値pg(10)は、起点の画素から緯度方向に沿って数えて十二番目の画素(i=12)の画素値p(12)となる。各グリッドGと各画素との対応関係が定まり、各グリッドGに当てはめるべき画素値が定まれば、その画素値に基づいて各グリッドGがそれぞれ通路であるか障害物であるかを決定することができ、通路及び/または障害物を表すグリッドGの緯度及び経度の座標値を順次記憶装置3b、3cに書き込むことができる。
あるいは、対象の地域が京都市であり、グリッドGの寸法が経度方向に約9.13cm、緯度方向に約11.1cmであって、地図画像データの画素が表している領域の大きさが経度方向、緯度方向ともに約11.1cmである場合には、経度方向についてはグリッドGの寸法と画素の寸法とが合致するが、緯度方向についてはどのグリッドGにどの画素を当てはめるかを検討しなければならない。グリッドGの寸法が経度方向にA、緯度方向にBであり、画素の表している領域の寸法が経度方向、緯度方向ともにC=Bであるとすると、京都市であればA=9.12771cm、B=C=11.0941cmに設定することができる。
地図画像データ内の各画素について、当てはめ処理の起点となる画素から経度方向に沿ってi番目の画素の画素値をp(i)とおく。一方、各グリッドGについて、起点となる画素と重なり合っているグリッドGから経度方向に沿ってn番目のグリッドに当てはめるべき画素値をpg(n)とおく。なお、pg(0)=p(0)とする。即ち、起点となる画素と重なり合っているグリッドGの画素値は、起点となる画素の画素値とする。また、起点となっている画素から経度方向に沿ってi番目の画素までの距離をl(i)とおき、起点となっているグリッドGから経度方向に沿ってn番目のグリッドまでの距離をlg(n)とおく。l(i)=Bi、lg(n)=Anである。さらに、lg(0)=l(0)=0である。
図13は、地図画像データを構成する画素が表す領域の経度(または、緯度)方向の寸法とグリッドGの経度(または、緯度)方向の寸法とが相異し、前者が後者よりも大きい場合の、画素とグリッドGとの対応関係を決定する手順である。なお、地図画像中の画素が表す領域の寸法及び緯度及び経度(特に、起点となる画素の位置する緯度及び経度)の値は、メタデータに基づいて既知とする。並びに、グリッドGの寸法も、メタデータに基づいて既知とする。地図画像データのメタデータにより、当該地図画像データが表している地域の緯度及び経度(または、地図画像データを構成する何れかの画素が表している領域の緯度及び経度)が明らかとなり、各グリッドGを示す緯度及び経度の有効桁数が与えられることで、サーバ装置3において、測地線長の計算方法を用い、当該地図画像データが表す地域におけるグリッドGの緯度方向及び経度方向の寸法を算定することが可能である。
まず、カウンタi及びnをともに初期値0にセットする(ステップS7)。そして、lg(n+1)−l(i+1)>C/2が成立するか否かを判断する(ステップS8)。
もし、lg(n+1)−l(i+1)>C/2が不成立であるならば、pg(n)=p(i)とした上で(ステップS9)、i及びnをそれぞれ1増加させる(ステップS10)。その後、再びステップS8にループする。
これに対し、lg(n+1)−l(i+1)>C/2が成立したならば、pg(n)=p(i)とし、なおかつpg(n+1)=p(i)とした上で(ステップS11)、iを3増加させてnを2増加させる(ステップS12)。その後、再びステップS8にループする。
iが与えられている画像の経度方向の画素数に到達したならば(ステップS13)、ループを脱して処理を終了する。
図14は、図13に示した当てはめ処理の結果である。図14中、細線で描画している格子枠の一つ一つの格子目が画像の画素に対応し、太線で描画している格子枠の一つ一つの格子目がグリッドGに対応している。グリッドGの緯度方向の寸法は、画素が表す領域の緯度方向の寸法に等しいが、グリッドGの経度方向の寸法は、画素が表す領域の経度方向の寸法よりも小さい。枠内の明朝体の数値は、経度方向に並ぶ画素の順番を表し、枠外のゴシック体の数値は、経度方向に並ぶ各グリッドGに当てはめられる画素の順番を表している。具体例を挙げると、左上の起点の画素と重なり合うグリッドGから経度方向に沿って一つ隣のグリッドG(n=1)に当てはめるべき画素値pg(1)は、起点の画素から経度方向に沿って一つ隣の画素(i=1)の画素値p(1)であるが、起点の画素と重なり合うグリッドGから経度方向に沿って三つ隣のグリッドG(n=3)に当てはめるべき画素値pg(3)は、起点の画素から経度方向に沿って二つ隣の画素(i=2)の画素値p(2)となる。また、起点の画素と重なるグリッドGから経度方向に沿って数えて十番目のグリッドG(n=10)に当てはめるべき画素値pg(10)は、起点の画素から経度方向に沿って数えて八番目の画素(i=8)の画素値p(8)となる。各グリッドGと各画素との対応関係が定まり、各グリッドGに当てはめるべき画素値が定まれば、その画素値に基づいて各グリッドGがそれぞれ通路であるか障害物であるかを決定することができ、通路及び/または障害物を表すグリッドGの緯度及び経度の座標値を順次記憶装置3b、3cに書き込むことができる。
なお、地図画像データを構成する一つの画素が表している領域の緯度方向及び経度方向の寸法が、一つのグリッドGの経度方向の寸法にも緯度方向の寸法にも等しくない場合、例えば画素一つが緯度方向、経度方向ともに10cmの航空写真のような地図画像が与えられる場合には、図11及び図13に示した方法を組み合わせて、各グリッドGに当てはめるべき画素値を決定する。
物体位置データベース304は、クライアント機1における物体位置データベース101と同様、メインメモリ3bまたは補助記憶デバイス3cの所要の記憶領域を利用して、空間内に存在している個々の物体の位置及び形状を表現するデータを格納する。解析処理部303は、通路及び/または障害物を表すグリッドGの緯度及び経度の座標値を、物体識別子や高さ、色、地上高等の情報とともに、物体位置データベース304に書き込む。及び/または、サーバ装置3と通信可能に接続しているコンピュータ、クライアント機1またはコントロール機2に向けて送信して、当該コンピュータ、クライアント機1またはコントロール機2の記憶装置(クライアント機であれば、物体位置データベース101)に書き込む。
本実施形態では、空間を一定の緯度及び一定の経度の大きさのグリッドGに分割した場合における、当該空間内において移動体1が通過可能な通路または通過不能な障害物と重なる一または複数のグリッドGに対応した位置の座標を格納する物体位置データベース101、304を構築するためのものであって、対象の空間の一部に対応した地図画像データであり、当該地図画像データを構成する画素の画素値に基づいてその画素が表している領域に通路または障害物が存在しているか否かを判別できるような地図画像データを取得する地図画像取得部301と、前記地図画像データに関するメタデータであり、当該地図画像データを構成する少なくとも一の画素が表している領域の緯度及び経度を示す情報を含むメタデータを取得するメタデータ取得部302と、前記地図画像取得部301で取得した地図画像データ及び前記メタデータ取得部302で取得したメタデータを参照し、地図画像データを構成する画素が表している領域に通路または障害物が存在しているか否かを判断するとともに、通路または障害物が存在している領域を表す画素がどのグリッドG内にあるかを判断して、その通路または障害物が存在するグリッドGに対応した位置の座標を記憶装置3b、3c、1b、1cに書き込む解析処理部303とを具備する物体位置データベース構築システムを構成した。
本実施形態によれば、移動体を運用する空間内に存在している物体の位置や形状を軽量かつ利用容易なデータの形で表現でき、移動体の周囲に存在する通路や障害物の検出ひいては移動体の制御に寄与し得る。
本物体検出システムの用途は、幾つか考えられる。まず第一に、クライアント機1に代表されるロボットその他の移動体の自律制御、自動運転または遠隔操縦支援が挙げられる。即ち、本物体検出システムを利用すれば、移動体の周囲に存在している物体を高速かつ精確に検出できるため、当該移動体の移動や各種動作を安全確実ならしめることができる。典型的には、障害物の回避行動をとることが容易となる。
第二に、空間内に存在しているが未知の物体の発見を容易にする。物体位置データベース101、304に格納されているデータは、既知の物体に関するものである。従って、クライアント機1がカメラ1kや対物距離センサまたはレーダ1n等を用いて発見した物体に関する位置情報が、物体位置データベース101、304を検索しても抽出できなかった(物体位置データベース101に登録されていなかった)場合、その物体は新たに発見した未知の物体ということになる。
第三に、空間内に様々な物体が存在している風景をモデリングして描画しようとする際に、物体位置データベース101、304に格納されている各グリッドGの位置座標、高さ情報、地上高情報、色情報等を利用して、与えられた視点の位置座標及び視線の方向に基づき、透視図法等により物体を三次元モデリング表現で画面表示させることが可能となる。即ち、空間内に存在する各物体をそれぞれ、一個の直方体ブロックまたは複数個の直方体ブロックの集合体として表現することができる。物体を構成する直方体ブロックは、その位置及び底面積がグリッドGの位置情報として規定され、その高さ寸法及び地上高が高さ情報及び地上高情報として規定され、その色が色情報として規定される。クライアント機1等の移動体の位置座標及び向きが分かれば、その移動体から見える風景を再現できる。
第四に、空間内に様々な物体が存在する風景を時系列で表現し、またその時系列の情報の保全が可能である。物体位置データベース101、304に、まず不動産その他の恒常的に存在する固定物を表現するグリッドGの位置情報等を格納しておき、その上で、ある時点にのみ存在した物体を表現するグリッドGの位置情報等を、固定物を表現するグリッドGの位置情報等に対する差分の情報として格納、記憶保持するようにすれば、複数の時点のそれぞれにおいて空間内に存在した物体に関する情報の時系列を、少ないデータ量で表現することが可能となる。
また、固定物を表現するグリッドGの位置情報等を共通のデータベースとして共有化またはクラウド化しておき、固定物以外の物体を表現するグリッドGの位置情報等のみを運搬したり送受信したりすることも可能である。固定物を表現するグリッドGの位置情報等と、固定物以外の物体を表現するグリッドGの位置情報等とを重ね合わせれば、全ての物体が存在する空間の風景を再現できる。
前記物体位置データベースが、前記物体と重なる一つ一つのグリッドG毎に、そのグリッドGに属する複数の位置(基本点PB及びダミー点PD)の座標を格納しているため、基準位置PSから与えられた距離D内に存在する物体(を表現するグリッドG)の検索漏れの懸念が小さくなり、物体の検出精度が増す。
なお、本発明は以上に詳述した実施形態に限られるものではない。例えば、上記実施形態では、サーバ装置3が地図画像取得部301、メタデータ取得部302及び解析処理部303を備えていたが、これらの機能をサーバ装置3以外のコンピュータ、例えば移動体1やコントロール機2等に実装することも考えられる。
さらには、複数のコンピュータが協働して、物体位置データベース構築システムの各部301、302、303の機能を具現することを妨げない。
その他、各部の具体的な構成や処理の手順等は、本発明の趣旨を逸脱しない範囲で種々変形が可能である。