(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-14
(45)【発行日】2022-07-25
(54)【発明の名称】グラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体
(51)【国際特許分類】
G01C 21/28 20060101AFI20220715BHJP
G01B 21/00 20060101ALI20220715BHJP
G01C 21/16 20060101ALI20220715BHJP
G01D 21/00 20060101ALI20220715BHJP
G05D 1/02 20200101ALI20220715BHJP
【FI】
G01C21/28
G01B21/00 A
G01C21/16
G01D21/00 B
G05D1/02 H
(21)【出願番号】P 2020009748
(22)【出願日】2020-01-24
【審査請求日】2020-01-24
(31)【優先権主張番号】10-2019-0010538
(32)【優先日】2019-01-28
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】319012978
【氏名又は名称】ネイバーラボス コーポレーション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】イ,ジンハン
(72)【発明者】
【氏名】チェー,スンウク
(72)【発明者】
【氏名】イ,ウンヒ
【審査官】松本 泰典
(56)【参考文献】
【文献】米国特許出願公開第2018/0077534(US,A1)
【文献】特開2019-190994(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
G01C 21/16
G01C 21/28
G01B 21/00
G01D 21/00
(57)【特許請求の範囲】
【請求項1】
複数のセンサを用いて、移動体の移動に応じたセンシングデータを生成するセンシングステップ、
基準周期に応じてノードを生成し、前記基準周期と同期化されたセンシングデータ
を用いて前記ノード間の拘束条件を設定してグラフ構造を生成する、グラフ構造の生成ステップ、
前記センシングデータとして、前記基準周期と同期化されていない非同期センシングデータが入力されると、前記非同期センシングデータを用いて前記グラフ構造を修正する、グラフ構造の修正ステップ、および
前記ノード間の拘束条件が示す位置情報を、前記グラフ構造
における時間順に統合することにより、前記移動体の位置情報を生成する位置推定ステップ
を含み、前記グラフ構造の修正ステップは、
前記非同期センシングデータの生成時点と、前記グラフ構造に含まれるノードの生成時点との間の差が、(1)設定時間間隔以上である場合には、グラフノード補間法を利用することにより、(2)前記設定時間間隔未満である場合には、センサデータ補間法を利用することにより、前記グラフ構造を修正する、グラフ構造ベースの移動体の位置推定方法。
【請求項2】
前記グラフ構造の修正ステップは、
前記グラフ構造の中で最近生成された第1ノードの生成時点を基準に、前記非同期センシングデータが前記第1ノードの生成時点以後に生成されたものであれば、前記非同期センシングデータの生成時点に対応する第2ノードを新規生成して前記グラフ構造に追加することを特徴とする、請求項1に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項3】
前記グラフ構造の修正ステップは、
前記非同期センシングデータが2項データであれば、グラフノード補間法を利用して、前記グラフ構造を修正することを特徴とする、請求項2に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項4】
前記グラフ構造の修正ステップは、
前記非同期センシングデータの測定開始時点および測定終了時点が各々前記第1ノードの生成時点以前であれば、前記非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、前記非同期センシングデータを用いて前記第2ノードおよび第3ノードの間の第1拘束条件を設定し、前記第2ノードおよび第3ノードに最も隣接する対象ノードとの間に連携要素を用いて各々第2拘束条件および第3拘束条件を設定することを特徴とする、請求項3に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項5】
前記グラフ構造の修正ステップは、
前記非同期センシングデータの測定開始時点が前記第1ノードの生成時点以前であり、前記非同期センシングデータの測定終了時点が前記第1ノードの生成時点以後であれば、前記非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、前記非同期センシングデータを用いて前記第2ノードおよび第3ノードの間の第1拘束条件を設定し、前記第2ノードと前記第1ノードとの間の第1拘束条件を、連携要素を用いて設定し、前記第3ノードと第1ノードとの間の第2拘束条件を、基準データを用いて設定することを特徴とする、請求項3または4に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項6】
前記グラフ構造の修正ステップは、
前記第2ノードに前記非同期センシングデータに対応する第1拘束条件を設定し、基準データを用いて前記第1ノードと前記第2ノードとの間に第2拘束条件を設定することを特徴とする、請求項2に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項7】
前記グラフ構造の修正ステップは、
前記グラフ構造の中で最近生成された第1ノードの生成時点を基準に、前記非同期センシングデータが前記第1ノードの生成時点以前に生成されたものであれば、グラフノード補間法またはセンサデータ補間法を利用して、前記グラフ構造を修正することを特徴とする、請求項1または2に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項8】
前記グラフ構造の修正ステップは、
前記非同期センシングデータが単項データであり、前記非同期センシングデータの生成時点が、前記グラフ構造に含まれるノードの生成時点と設定時間間隔以上の差があれば、前記グラフノード補間法を利用して、ノードを追加することにより前記グラフ構造を修正することを特徴とする、請求項7に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項9】
前記グラフ構造の修正ステップは、
前記グラフノード補間法を利用して、前記非同期センシングデータの生成時点に第2ノードを新規生成し、前記第2ノードに前記非同期センシングデータに対応する第1拘束条件を設定し、前記第2ノードと既存のノードとの間に連携要素を用いて第2拘束条件を設定することを特徴とする、請求項8に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項10】
前記グラフ構造の修正ステップは、
前記非同期センシングデータが単項データであり、前記グラフ構造に含まれるノードのうち、前記非同期センシングデータの生成時点と設定時間間隔未満の対象ノードが存在すれば、前記センサデータ補間法を利用して、前記グラフ構造を修正することを特徴とする、請求項7に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項11】
前記グラフ構造の修正ステップは、
前記対象ノードに前記非同期センシングデータに対応する拘束条件をさらに設定することを特徴とする、請求項10に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項12】
前記センシングステップは、
前記移動体に取り付けられるIMUセンサ、GPSセンサ、ホイールエンコーダセンサ、ライダーセンサのうち少なくともいずれか一つを用いて、前記移動体の移動に応じたセンシングデータを生成することを特徴とする、請求項1に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項13】
前記センシングデータは、
前記センシングデータの生成時点における測定結果を示す単項データ、または前記センシングデータの測定開始時点と測定終了時点との間の関係情報を測定結果として示す2項データであることを特徴とする、請求項1に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項14】
前記グラフ構造の生成ステップは、
前記センシングデータのうちいずれか一つを基準データに設定し、前記基準データの生成周期を前記基準周期に設定することを特徴とする、請求項1に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項15】
前記グラフ構造の生成ステップは、
前記移動体に取り付けられるIMUセンサにより測定された加速度と角速度の変化量から導出される前記移動体の移動方向および移動距離を前記基準データに設定することを特徴とする、請求項14に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項16】
前記位置推定ステップは、
前記グラフ構造にグラフ最適化技法を適用して前記移動体の位置を推定することを特徴とする、請求項1に記載のグラフ構造ベースの移動体の位置推定方法。
【請求項17】
ハードウェアと結合されて、請求項1~16のいずれか1項に記載のグラフ構造ベースの移動体の位置推定方法を実行するためのコンピュータプログラム。
【請求項18】
複数のセンサを用いて、移動体の移動に応じた各々のセンシングデータを生成するセンサ部、
基準周期に応じてノードを生成し、前記基準周期と同期化されたセンシングデータ
を用いて前記ノード間の拘束条件を設定してグラフ構造を生成するグラフ構造構築部、
前記センシングデータとして、前記基準周期と同期化されていない非同期センシングデータが入力されると、前記非同期センシングデータを用いて前記グラフ構造を修正するグラフ構造修正部、および
前記ノード間の拘束条件が示す位置情報を、前記グラフ構造における時間順に統合することにより、前記移動体の位置情報を生成する位置推定部
を含み、前記グラフ構造修正部は、
前記非同期センシングデータの生成時点と、前記グラフ構造に含まれるノードの生成時点との間の差が、(1)設定時間間隔以上である場合には、グラフノード補間法を利用することにより、(2)前記設定時間間隔未満である場合には、センサデータ補間法を利用することにより、前記グラフ構造を修正する、移動体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、グラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体に関し、特に非同期センシングデータをグラフ構造に整合させることができる、グラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体に関する。
【背景技術】
【0002】
走行位置探索を通じて自律走行を行う自律走行システムは主に船舶、航空機などに適用されており、最近では道路を走行する車両にも適用されている。
【0003】
自律走行システムは、走行車両および周辺車両などの位置を基に走行行動および走行軌跡を決める。例えば、自律走行システムは走行経路、道路混雑度などのような様々な情報を、モニターを介してユーザに知らせたり、自ら車両を運転したり、走行状態を制御したりする。
【0004】
自律走行システムにおける位置認識の正確性は走行の安全性につながる重要な要素技術であり、既存の自律走行システムは、自車に取り付けられたローカルセンサを用いて確率的に自車の位置および周辺車両の位置を認識した。
【0005】
例えば、車両内にスキャニング装置、カメラ、レーダーなどのような全てのセンサ装置と、コンピューティング装置と、車両制御および自律走行用ソフトウェアとを搭載して、既に設定された条件に応じて車両が自動で走行することができた。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本出願は、グラフ構造のノード生成時間とセンサのセンシングデータの生成時間が互いに異なる場合、グラフ構造を修正してセンシングデータをグラフ構造内に整合させることができる、グラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体を提供する。
【0007】
本出願は、センサデータ補間法(sensor data interpolation)とグラフノード補間法(graph node interpolation)を選択的に適用して、グラフ構造に追加されるノード数を最小化することができる、グラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体を提供する。
【課題を解決するための手段】
【0008】
本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法は、複数のセンサを用いて、移動体の移動に応じたセンシングデータを生成するセンシングステップ、基準周期に応じてノード(node)を生成し、前記基準周期と同期化されたセンシングデータに前記ノード間の拘束条件(constraint)を設定してグラフ構造(graph structure)を生成するグラフ構造の生成ステップ、前記センシングデータのうち、前記基準周期と同期化されていない非同期センシングデータが入力されれば、前記非同期センシングデータを用いて前記グラフ構造を修正するグラフ構造の修正ステップ、および前記グラフ構造を用いて、前記移動体の位置情報を生成する位置推定ステップを含む。
【0009】
本発明の一実施形態による移動体は、複数のセンサを用いて、移動体の移動に応じた各々のセンシングデータを生成するセンサ部、基準周期に応じてノード(node)を生成し、前記基準周期と同期化されたセンシングデータに前記ノード間の拘束条件(constraint)を設定してグラフ構造(graph structure)を生成するグラフ構造構築部、前記センシングデータのうち、前記基準周期と同期化されていない非同期センシングデータが入力されれば、前記非同期センシングデータを用いて前記グラフ構造を修正するグラフ構造修正部、および前記グラフ構造を用いて、前記移動体の位置情報を生成する位置推定部を含む。
【0010】
また、上記の課題を解決するための手段の記載は、本発明の特徴を全て列挙したものではない。本発明の様々な特徴とそれに応じた長所および効果は下記の具体的な実施形態を参照してより詳細に理解できるものである。
【発明の効果】
【0011】
本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体によれば、グラフ構造のノード生成時間とセンサのセンシングデータの生成時間が互いに異なる場合、グラフ構造を修正してセンシングデータをグラフ構造内に整合させることができる。すなわち、非同期センシングデータをグラフ構造に反映することができるため、移動体の位置を正確に推定することができる。
【0012】
本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体によれば、センサデータ補間法(sensor data interpolation)とグラフノード補間法(graph node interpolation)を選択的に適用してグラフ構造を修正することができる。この場合、グラフ構造に追加されるノード数を最小化することができるため、グラフ構造の最適化時にかかる時間や演算量などを減少させることができ、位置推定のリアルタイム性を保持することができる。
【0013】
但し、本発明の実施形態によるグラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体が達成できる効果は以上で言及したものに制限されず、言及していない他の効果も下記の記載によって本発明が属する技術分野における通常の知識を有する者に明らかに理解できるものである。
【図面の簡単な説明】
【0014】
【
図1】本発明の一実施形態による移動体を示すブロック図である。
【
図2】本発明の一実施形態によるグラフ構造の生成を示す例示図である。
【
図3】本発明の一実施形態によるグラフ構造の生成を示す例示図である。
【
図4】本発明の一実施形態によるグラフ構造の生成を示す例示図である。
【
図5】本発明の一実施形態によるグラフ構造の生成を示す例示図である。
【
図6】本発明の一実施形態によるグラフ構造の生成を示す例示図である。
【
図7】本発明の一実施形態によるグラフ構造の生成を示す例示図である。
【
図8】本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下では添付図面を参照して本明細書に開示された実施形態について詳しく説明するが、図面符号に関係なく同一または類似した構成要素には同一の参照番号を付し、それに対する重複する説明は省略することにする。以下の説明で用いられる構成要素に対する接尾辞「モジュール」および「部」は、明細書の作成の容易さだけを考慮して付与または混用されるものであって、それ自体で互いに区別される意味または役割を有するものではない。すなわち、本発明で用いられる「部」という用語はソフトウェア、FPGAまたはASICのようなハードウェア構成要素を意味し、「部」はある役割をする。ところが、「部」はソフトウェアまたはハードウェアに限定される意味ではない。「部」は、アドレッシングできるストレージ媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。よって、一例として「部」は、ソフトウェア構成要素、オブジェクト向けソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイおよび変数を含む。構成要素および「部」において提供される機能は、さらに小さい数の構成要素および「部」に結合されるか、またはさらなる構成要素と「部」とにさらに分離されてもよい。
【0016】
また、本明細書に開示された実施形態を説明するにおいて、関連の公知技術に関する具体的な説明が本明細書に開示された実施形態の要旨を不要にあいまいにする恐れがあると判断される場合には、その詳細な説明は省略する。また、添付された図面は本明細書に開示された実施形態を容易に理解できるようにするためのものに過ぎず、添付された図面によって本明細書に開示された技術的思想が制限されるものではなく、本発明の思想および技術範囲に含まれる全ての変更、均等物乃至代替物を含むものとして理解しなければならない。
【0017】
移動体(vehicle)は、自律走行する車両やロボット(robot)、ドローン(drone)などであってもよい。移動体は、現在位置を認識するための位置推定(localization)を行うことができ、位置推定により現在移動体の位置情報とポーズ情報などを確認した後、それに基づいて自律走行のための制御などを行うことができる。
【0018】
移動体は、位置推定のために、複数のセンサからセンシングデータを収集することができ、入力を受けたセンシングデータを用いてグラフ構造(Graph Structure)を生成することができる。ここで、グラフ構造は複数のセンシングデータを統合して示すものであり、グラフ構造を活用すれば、移動体の位置情報を迅速で且つ正確に抽出することができる。
【0019】
位置推定により抽出する移動体の位置情報には、移動体の回転情報(rotation)、移動情報(translation)および速度情報(velocity)を含むことができる。回転情報はピッチ(pitch)、ロール(roll)、ヨー(yaw)の3軸回転量を含むことができ、移動情報は移動体が位置するマップ上の座標であってもよい。また、速度情報は、移動体の移動方向と速力を示す速度ベクトルであってもよい。すなわち、位置情報の回転情報(rotation)、移動情報(translation)および速度情報(velocity)を用いて、移動体の現在位置とポーズを容易に把握することができる。
【0020】
但し、移動体のセンサが測定するセンシングデータは各々の生成周期が互いに異なりうるし、非同期センシングデータが入力される場合、それに対する処理が問題になる。すなわち、グラフ構造の生成時、非同期センシングデータを除外する場合には、正確度に問題がありうるし、非同期センシングデータを適用する場合には、グラフ構造の修正などに応じた遅延によって位置情報のリアルタイム性に問題がありうる。
【0021】
一方、本発明の一実施形態による移動体によれば、非同期センシングデータを反映してグラフ構造を修正することができ、それにより、迅速で且つ正確に移動体の位置推定を行うことができる。以下では、
図1を参照して、本発明の一実施形態による移動体について説明する。
【0022】
図1は、本発明の一実施形態による移動体を示すブロック図である。
【0023】
図1を参照すれば、本発明の一実施形態による移動体100は、センサ部110、グラフ構造構築部120、グラフ構造修正部130および位置推定部140を含むことができる。
【0024】
センサ部110は、複数のセンサを含み、複数のセンサを用いて移動体100の移動に応じた各々のセンシングデータを生成することができる。具体的には、
図1に示すように、センサ部110には、IMUセンサ111、GPSセンサ112、ホイールエンコーダセンサ113、ライダーセンサ114などが含まれる。但し、センサ部110に含まれるセンサはこれらに限定されず、この他にも種々のセンサがセンサ部110に含まれてもよい。また、センサ部110に含まれるセンサは移動体100の内部または外部に位置してもよく、移動体100に位置するセンサの種類および個数は特に限定されない。
【0025】
慣性測定ユニット(IMU:Inertial Measurement Unit)センサ111は、慣性測定手段として加速度センサおよびジャイロセンサ(ジャイロスコープ)を含むことができる。例えば、IMUセンサ111は、移動体100の回転角として前進方向(Roll軸方向)、前進方向の右側方向(pitch軸方向)、重力方向(yaw軸方向)の各々の角速度増分値と移動体100の速度増分値などのセンシングデータを生成することができる。また、IMUセンサ111は、センシングデータを用いて、IMUオドメトリ(Odometry)を生成することができる。すなわち、初期条件から加速度と角速度の変化量を測定して、移動体100の移動方向および移動距離などのIMUオドメトリを提供することもできる。
【0026】
GPSセンサ112は、衛星と通信して移動体100の地表上の座標をセンシングデータとして提供することができる。例えば、GPSセンサ112は、WGS84座標系の測地座標として、緯度、経度および楕円体高などを提供することができる。
【0027】
ホイールエンコーダセンサ113は移動体100に備えられたホイール(wheel)の回転数を測定して提供するものであり、ホイールエンコーダセンサ113を利用すれば、移動体100の移動距離と移動速度などを測定することができる。
【0028】
ライダー(LiDAR)センサ114は、レーザパルスなどを周辺に放射した後に反射して戻ってくる時間を測定して、移動体100の周辺に対する3次元深さ情報を生成することができる。ここで、ライダーセンサ114を用いて移動体100の回転量を測定するかまたはビジュアルオドメトリ(Visual Odometry)を生成することができる。したがって、ライダーセンサ114を利用すれば、移動体100の移動方向、移動距離などを測定することができる。実施形態によっては、ライダーセンサ114としてVelodyne VLP-16の3D LiDARを用いることができるが、これに限定されるものではない。
【0029】
さらに、センサ部110にカメラなどをさらに含むことができ、カメラを用いて移動体100の移動に対応する画像を撮影することもできる。この場合、カメラから移動体100のビジュアルオドメトリを生成することができる。
【0030】
一方、センサ部110が生成するセンシングデータは、単項データ(unary data)と2項データ(binary data)に区別することができる。ここで、単項データは、センシングデータの生成時点における測定結果を示すものであり、GPSセンサ112により測定された座標値などが該当する。すなわち、GPSセンサ112によれば、特定時点に移動体100の位置に対応する緯度および経度座標値が生成されるため、単項データに該当する。
【0031】
その反面、2項データは、センシングデータの測定開始時点と測定終了時点との間の関係情報を測定結果として示すものであり、IMUセンサ111のIMUオドメトリなどが該当する。すなわち、特定時点における加速度値ではなく、測定開始時点と測定終了時点との間の加速度変化量を用いた移動方向と移動距離などの情報を抽出するものであるため、IMUオドメトリは2項データに該当する。
【0032】
センサ部110により生成されたセンシングデータはキュー(Queue)に入力され、入力されたセンシングデータはグラフ構造構築部120に順次入力されることができる。但し、センサ部110に含まれるセンサの生成周期は互いに異なりうるし、センシングデータの生成後にキューに入力される時点も各々互いに異なりうる。
【0033】
グラフ構造構築部120は、基準周期に応じてノード(node)を生成することができ、基準周期と同期化されたセンシングデータにノード間の拘束条件(constraint)を設定して、グラフ構造(graph structure)を生成することができる。ここで、グラフ構造構築部120は、センシングデータのうちいずれか一つを基準データに設定することができ、基準データの生成周期を基準周期に設定することができる。すなわち、基準データの生成周期に応じて、ノードを生成してグラフ構造を生成することができる。この時、基準周期と同期化されたセンシングデータが共に入力され、入力されたセンシングデータを該ノードの拘束条件に設定することができる。実施形態によっては、IMUセンサ111のIMUオドメトリ(Odometry)を基準データに設定することができる。
【0034】
具体的には、
図2(a)に示すように、グラフ構造構築部120は、t=0の時点に最初に第1ノードを生成することができ、第1ノードの初期条件(i1)を拘束条件に設定することができる。その後、t=5の時点に第2ノードを生成することができ、第1ノードと第2ノードとの間を連結する拘束条件(a1)を設定することができる。すなわち、基準周期は5であり、t=0とt=5との間のIMUオドメトリを拘束条件(a1)に設定することができる。このように、基準周期ごとに移動体100の位置に対応するノードを新規生成し、各々のノードにセンシングデータに対応する拘束条件を設定して、移動体100のグラフ構造を生成することができる。
【0035】
グラフ構造修正部130は、センシングデータのうち、基準周期と同期化されていない非同期センシングデータが入力されれば、非同期センシングデータを用いてグラフ構造を修正することができる。
【0036】
図1に示すように、センサ部110により生成されたセンシングデータは、キュー(Queue)を通じてグラフ構造構築部120に順次入力されることができる。この時、各々のセンシングデータは生成された順に応じて順次入力されることができるが、実施形態によっては、センサがセンシングデータを生成する周期が一致しなくてもよい。また、各々のセンサごとにセンシングデータを生成するのにかかる時間が互いに異なり、同一の時点に対するセンシングデータにもかかわらず、相対的に遅くキューに入力される場合も発生しうる。
【0037】
つまり、センサ部110のセンサが生成するセンシングデータは各々の生成周期が互いに異なりうるし、ノードの生成周期と同期化されていない非同期センシングデータが入力されることができる。この時、単に非同期センシングデータを除外する場合には、位置推定などの正確度が問題になるため、非同期センシングデータをグラフ構造に整合するようにグラフ構造を修正する必要がある。したがって、グラフ構造修正部130は、グラフ構造を修正して非同期センシングデータをグラフ構造内に整合させることができる。
【0038】
具体的には、グラフ構造修正部130は、先ず受信した非同期センシングデータの生成時点を確認することができる。すなわち、非同期センシングデータの生成時点とグラフ構造の中で最近生成された第1ノードの生成時点とを比較することができる。
【0039】
ここで、非同期センシングデータが第1ノードの生成時点以後に生成された場合には、非同期センシングデータの生成時点に対応する第2ノードを新規生成してグラフ構造に追加することができる。すなわち、基準周期が到来する前に非同期センシングデータが先に入力された場合に該当するため、該非同期センシングデータの生成時点に対応するノードを追加して、非同期センシングデータをグラフ構造上に反映することができる。この場合、第2ノードに非同期センシングデータに対応する第1拘束条件を設定し、第1ノードと第2ノードとの間の第2拘束条件は基準データを用いて設定することができる。
【0040】
具体的には、
図4(a)に示すように、既存のグラフ構造は、t=0とt=5に各々ノードを生成した後、初期条件(i1)をt=0の拘束条件に設定し、t=0とt=5のノードの間にIMUオドメトリに応じた拘束条件(a1)を設定したものである。ここで、t=5までノードが生成されたため、その後基準周期に応じてt=10にノードが生成される予定であるが、現在t=7の時点に非同期センシングデータが入力された場合に該当する。
【0041】
この場合、
図4(b)に示すように、t=7は現在グラフ構造と比較すると未来データに該当するため、t=7に該当するノードを追加することができる。その後、最も近接するt=5のノードと基準データを用いて拘束条件(a2)を設定することができ、その後t=7に対応する非同期センシングデータを適用してt=7における拘束条件(u1)を設定することができる。すなわち、グラフ構造を基準に、未だ生成されていない未来データが入力される場合には、該非同期センシングデータに対応するノードを追加するようにグラフ構造を修正することができる。
【0042】
一方、グラフ構造において直近に生成された第1ノードの生成時点を基準に、非同期センシングデータが第1ノードの生成時点以前に生成された場合には、グラフノード補間法(Graph node interpolation)またはセンサデータ補間法(Sensor data interpolation)を利用してグラフ構造を修正することができる。
【0043】
具体的には、非同期センシングデータが単項データ(unary data)であり、非同期センシングデータの生成時点が、グラフ構造内に含まれる全体ノードの生成時点と設定時間間隔以上の差がある場合には、グラフノード補間法を利用することができる。すなわち、非同期センシングデータの生成時点が、グラフ構造内に含まれるノードの生成時点とは近接しない場合には、グラフ構造内に追加のノードをさらに含む方式で非同期センシングデータを整合させることができる。
【0044】
グラフノード補間法を利用する場合には、グラフ構造修正部130が非同期センシングデータの生成時点に第2ノードを新規生成することができ、第2ノードに非同期センシングデータに対応する第1拘束条件を設定することができる。また、第2ノードと既存のノードとの間には、連携要素(between factor)を用いて第2拘束条件を設定することができる。
【0045】
具体的には、
図2に示すように、t=0とt=5に対応するノードを各々生成した後に、t=4の時点に対応する非同期センシングデータが入力される場合がありうる。ここで、グラフ構造は既にt=5の時点まで生成された状態であるため、t=4の時点に対応する非同期センシングデータを反映するためにはグラフ構造を修正する必要がある。ここで、非同期センシングデータはt=4の時点に生成されたものであるため、既存のグラフ構造に含まれるノードと設定時間間隔以上(例えば、t=1)の差がある。したがって、
図2の場合は、グラフノード補間法を適用することができる。
【0046】
この場合、
図2(b)に示すように、非同期センシングデータが生成されたt=4に対応するノードを新規生成することができ、t=4に対応するノードに非同期センシングデータに対応する拘束条件(u1)を設定することができる。ここで、t=4のノードと、t=5のノードとの間を連結する拘束条件を追加する必要があり、このために追加的に連携要素を設定して拘束条件(b1)を設定することができる。例えば、t=4に生成された非同期センシングデータがGPS座標値である場合、t=4のGPS座標値と、t=5における位置情報を比較した後、t=4のGPS座標からt=5の位置まで進行するためのホイールエンコーダ値などに設定することができる。但し、連携要素は、これに限定されず、実施形態に応じて多様に設定可能である。
【0047】
また、非同期センシングデータが単項データであり、グラフ構造内に含まれる全体ノードのうち、非同期センシングデータの生成時点と設定時間間隔(例えば、t=1)未満である対象ノードが存在する場合には、センサデータ補間法を利用することができる。すなわち、
図3(a)に示すように、非同期センシングデータの生成時点がt=4.9であり、既存のグラフ構造内に生成時点がt=5である対象ノードが存在する場合には、設定時間間隔未満である対象ノードが存在する場合に該当する。したがって、
図3(b)に示すように、非同期センシングデータに対応するノードを別途に生成せず、既存のグラフ構造に含まれる対象ノード(t=5)に非同期センシングデータに対応する拘束条件(u1)を追加するようにグラフ構造を修正することができる。
【0048】
つまり、グラフ構造修正部130は、非同期センシングデータの生成時点が既存のグラフ構造のノードと設定時間間隔未満の差である場合には、センサデータ補間法を適用して、速かに非同期センシングデータをグラフ構造上に反映するようにすることができ、設定時間間隔以上の差がある場合には、グラフノード補間法を適用して、非同期センシングデータを正確にグラフ構造上に反映するようにすることができる。したがって、本発明の一実施形態によれば、非同期センシングデータをグラフ構造上に速かに反映すると共に正確に反映することができる。
【0049】
さらに、グラフ構造修正部130は、入力される非同期センシングデータが2項データである場合にも、グラフ構造を修正して反映するようにすることができる。具体的には、非同期センシングデータが2項データである場合には、グラフノード補間法を利用することができる。
【0050】
すなわち、非同期センシングデータの測定開始時点および測定終了時点が各々第1ノードの生成時点以前であれば、非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、非同期センシングデータを用いて第2ノードおよび第3ノードの間の第1拘束条件を設定することができる。また、第2ノードおよび第3ノードに最も隣接する対象ノードとの間には、各々連携要素を用いて第2拘束条件および第3拘束条件を設定することができる。
【0051】
例えば、
図5に示すように、t=0、t=5、t=10の時点に各々ノードを生成してグラフ構造を構築した状態で、測定開始時点がt=4であり、測定終了時点がt=7である2項データが入力されることができる。この場合、t=4とt=7に対応するノードを各々生成することができ、非同期センシングデータを用いて各ノードを連結する拘束条件(v1)を設定することができる。また、t=4とt=7と隣接するt=5のノードの間に各々連携要素を用いて拘束条件(b1、b2)を設定することができる。ここで、連携要素は、実施形態に応じて多様に設定可能である。
【0052】
また、実施形態によっては、非同期センシングデータの測定開始時点が第1ノードの生成時点以前であり、非同期センシングデータの測定終了時点が第1ノードの生成時点以後である場合もありうる。この時、非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、非同期センシングデータを用いて第2ノードおよび第3ノードの間の第1拘束条件を設定することができる。ここで、第2ノードと第1ノードとの間の第1拘束条件は連携要素を用いて設定し、第3ノードと第1ノードとの間の第2拘束条件は基準データを用いて設定することができる。
【0053】
すなわち、
図6に示すように、t=0、t=5の時点に各々ノードを生成してグラフ構造を構築した状態で、測定開始時点がt=4であり、測定終了時点がt=7である2項データが入力されることができる。この場合、t=4とt=7に対応するノードを各々生成することができ、非同期センシングデータを用いて各ノードを連結する拘束条件(v1)を設定することができる。また、t=4とt=7と隣接するt=5のノードに対して、各々連携要素と基準データを用いて拘束条件(b1、a2)を設定することができる。
【0054】
さらに、
図7に示すように、非同期センシングデータの測定開始時点(t=7)と測定終了時点(t=13)が第1ノードの生成時点(t=5)以後である場合もありうる。この時、グラフ構造修正部130は、非同期センシングデータの測定開始時点(t=7)と測定終了時点(t=13)に各々第2ノードおよび第3ノードを生成し、非同期センシングデータを用いて第2ノードおよび第3ノードの間の拘束条件(v1)を設定することができる。その後、第2ノード(t=7)と第1ノード(t=5)との間の拘束条件(a2)と、第2ノード(t=7)と第3ノード(t=13)との間の拘束条件(a3)は各々基準データを用いて設定することができる。
【0055】
位置推定部140は、グラフ構造を用いて移動体100の位置情報を生成することができる。具体的には、位置推定部140は、構築されるグラフ構造にグラフ最適化技法(Graph optimization)を適用することができ、最適化されたグラフ構造を用いて、移動体100の移動経路および時間に応じた最終位置を推定することができる。すなわち、位置推定部140は、グラフ構造から、移動体100の回転情報、移動情報および速度情報などを含む位置情報を最終的に抽出することができる。その後、位置推定部140から抽出した位置情報に基づいて、自律走行のための移動体100の制御を行うようにすることができる。
【0056】
図8は、本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法を示すフローチャートである。
【0057】
図8を参照すれば、本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法は、センシングステップ(S110)、グラフ構造の生成ステップ(S120)、グラフ構造の修正ステップ(S130)および位置推定ステップ(S140)を含むことができる。ここで、各ステップは、移動体によって行われる。
【0058】
以下では、
図8を参照して、本発明の一実施形態によるグラフ構造ベースの移動体の位置推定方法について説明する。
【0059】
センシングステップ(S110)では、複数のセンサを用いて移動体の移動に応じたセンシングデータを生成することができる。具体的には、移動体に取り付けられるIMU(Inertial Measurement Unit)センサ、GPS(Global Positioning System)センサ、ホイールエンコーダ(Wheel Encoder)センサ、ライダー(LiDAR)センサなどを用いて、移動体の移動に応じたセンシングデータを生成することができる。但し、移動体に含まれるセンサは、これらに限定されず、この他にも種々のセンサを用いてセンシングデータを生成することができる。
【0060】
一方、センサが生成するセンシングデータは、単項データ(unary data)と2項データ(binary data)に区別することができる。すなわち、センシングデータの生成時点における測定結果を示す単項データと、センシングデータの測定開始時点と測定終了時点との間の関係情報を測定結果として示す2項データに各々区別することができる。
【0061】
グラフ構造の生成ステップ(S120)では、基準周期に応じてノード(node)を生成し、基準周期と同期化されたセンシングデータにノード間の拘束条件(constraint)を設定してグラフ構造(graph structure)を生成することができる。ここで、センシングデータのうちいずれか一つを基準データに設定することができ、基準データの生成周期を基準周期に設定することができる。すなわち、基準データの生成周期に応じて、ノードを生成してグラフ構造を生成することができる。この時、基準周期と同期化された他のセンシングデータが共に入力され、入力されたセンシングデータは該ノードの拘束条件に設定することができる。実施形態によっては、IMUセンサのIMUオドメトリ(Odometry)を基準データに設定することができる。
【0062】
グラフ構造の修正ステップ(S130)では、センシングデータのうち、基準周期と同期化されていない非同期センシングデータが入力されれば、非同期センシングデータを用いてグラフ構造を修正することができる。
【0063】
各々のセンサが生成したセンシングデータは、キュー(Queue)を通じて順次入力されることができる。この時、各々のセンシングデータは生成された順に応じて順次入力されることができるが、実施形態によっては、センサがセンシングデータを生成する周期が一致しなくてもよい。また、各々のセンサごとにセンシングデータを生成するのにかかる時間が互いに異なり、同一の時点に対するセンシングデータにもかかわらず、相対的に遅くキューに入力される場合も発生しうる。
【0064】
つまり、センシングデータは各々の生成周期が互いに異なりうるし、ノードの生成周期と同期化されていない非同期センシングデータが入力されることができる。この時、単に非同期センシングデータを除外する場合には、位置推定などの正確度が問題になるため、非同期センシングデータをグラフ構造に整合するようにグラフ構造を修正する必要がある。したがって、グラフ構造の修正ステップ(S130)では、グラフ構造を修正して非同期センシングデータをグラフ構造内に整合させることができる。
【0065】
この場合、先ず受信した非同期センシングデータの生成時点を確認することができる。すなわち、非同期センシングデータの生成時点とグラフ構造の中で最近生成された第1ノードの生成時点とを比較することができる。
【0066】
ここで、非同期センシングデータが第1ノードの生成時点以後に生成された場合には、非同期センシングデータの生成時点に対応する第2ノードを新規生成してグラフ構造に追加することができる。すなわち、基準周期が到来する前に非同期センシングデータが先に入力された場合に該当するため、該非同期センシングデータの生成時点に対応するノードを追加して、非同期センシングデータをグラフ構造上に反映することができる。この場合、第2ノードに非同期センシングデータに対応する第1拘束条件を設定し、第1ノードと第2ノードとの間の第2拘束条件は基準データを用いて設定することができる。すなわち、グラフ構造を基準に、未だ生成されていない未来データが入力される場合には、該非同期センシングデータに対応するノードを追加するようにグラフ構造を修正することができる。
【0067】
一方、グラフ構造において直近に生成された第1ノードの生成時点を基準に、非同期センシングデータが第1ノードの生成時点以前に生成された場合には、グラフノード補間法(Graph node interpolation)またはセンサデータ補間法(Sensor data interpolation)を利用してグラフ構造を修正することができる。
【0068】
具体的には、非同期センシングデータが単項データ(unary data)であり、非同期センシングデータの生成時点が、グラフ構造内に含まれる全体ノードの生成時点と設定時間間隔以上の差がある場合には、グラフノード補間法を利用することができる。
【0069】
グラフノード補間法を利用する場合には、非同期センシングデータの生成時点に第2ノードを新規生成することができ、第2ノードに非同期センシングデータに対応する第1拘束条件を設定することができる。また、第2ノードと既存のノードとの間には連携要素(between factor)を用いて第2拘束条件を設定することができる。
【0070】
また、非同期センシングデータが単項データであり、グラフ構造内に含まれる全体ノードのうち、非同期センシングデータの生成時点と設定時間間隔(例えば、t=1)未満である対象ノードが存在する場合には、センサデータ補間法を利用することができる。すなわち、非同期センシングデータに対応するノードを別途に生成せず、既存のグラフ構造に含まれる対象ノードに非同期センシングデータに対応する拘束条件を追加するようにグラフ構造を修正することができる。
【0071】
さらに、入力される非同期センシングデータが2項データである場合にも、グラフ構造を修正して反映するようにすることができる。具体的には、非同期センシングデータが2項データである場合には、グラフノード補間法を利用することができる。
【0072】
すなわち、非同期センシングデータの測定開始時点および測定終了時点が各々第1ノードの生成時点以前であれば、非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、非同期センシングデータを用いて第2ノードおよび第3ノードの間の第1拘束条件を設定することができる。また、第2ノードおよび第3ノードに最も隣接する対象ノードとの間には、各々連携要素を用いて第2拘束条件および第3拘束条件を設定することができる。
【0073】
また、実施形態によっては、非同期センシングデータの測定開始時点が第1ノードの生成時点以前であり、非同期センシングデータの測定終了時点が第1ノードの生成時点以後である場合もありうる。この時、非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、非同期センシングデータを用いて第2ノードおよび第3ノードの間の第1拘束条件を設定することができる。ここで、第2ノードと第1ノードとの間の第1拘束条件は連携要素を用いて設定し、第3ノードと第1ノードとの間の第2拘束条件は基準データを用いて設定することができる。
【0074】
この他にも、非同期センシングデータの測定開始時点と測定終了時点が第1ノードの生成時点以後である場合もありうる。この場合、非同期センシングデータの測定開始時点と測定終了時点に各々第2ノードおよび第3ノードを生成し、非同期センシングデータを用いて第2ノードおよび第3ノードの間の拘束条件を設定することができる。その後、第2ノードと第1ノードとの間の拘束条件と、第2ノードと第3ノードとの間の拘束条件を、各々基準データを用いて設定することができる。
【0075】
位置推定ステップ(S140)では、グラフ構造を用いて、移動体の位置情報を生成することができる。具体的には、構築されるグラフ構造にグラフ最適化技法(Graph optimization)を適用することができ、最適化されたグラフ構造を用いて、移動体の移動経路および時間に応じた最終位置を推定することができる。すなわち、修正されたグラフ構造から、移動体の回転情報、移動情報および速度情報などを含む位置情報を最終的に抽出することができる。その後、抽出した位置情報に基づいて、自律走行のための移動体の制御を行うようにすることができる。
【0076】
前述した本発明は、プログラムが記録された媒体にコンピュータ読み取り可能なコードとして実現することができる。コンピュータ読み取り可能な媒体は、コンピュータで実行可能なプログラムを持続的に格納するか、または実行またはダウンロードのために臨時格納するものであってもよい。また、媒体は単一または数個のハードウェアが結合された形態の様々な記録手段または格納手段であってもよく、或るコンピュータ・システムに直接接続される媒体に限定されず、ネットワーク上に分散存在するものであってもよい。媒体の例示としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体、CD-ROMおよびDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical medium)、およびROM、RAM、フラッシュメモリなどを含めてプログラム命令語が格納されるように構成されたものがある。また、他の媒体の例示として、アプリケーションを流通するアプリストアやその他の様々なソフトウェアを供給乃至流通するサイト、サーバなどが管理する記録媒体乃至ストレージ媒体も挙げられる。したがって、上記の詳細な説明は、全ての面で制限的に解釈されてはならず、例示的なものに考慮されなければならない。本発明の範囲は添付された請求項の合理的な解釈によって決定されなければならず、本発明の等価的な範囲内の全ての変更は本発明の範囲に含まれる。
【0077】
本発明は、前述した実施形態および添付された図面によって限定されるものではない。本発明が属する技術分野における通常の知識を有した者であれば、本発明の技術的思想を逸脱しない範囲内で本発明に係る構成要素を置換、変形および変更できることは明らかである。
【符号の説明】
【0078】
100 ・・・移動体
110 ・・・センサ部
111 ・・・IMUセンサ
112 ・・・GPSセンサ
113 ・・・ホイールエンコーダセンサ
114 ・・・LiDARセンサ
120 ・・・グラフ構造構築部
130 ・・・グラフ構造修正部
140 ・・・位置推定部
S110 ・・・センシングステップ
S120 ・・・グラフ構造の生成ステップ
S130 ・・・グラフ構造の修正ステップ
S140 ・・・位置推定ステップ