(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022128579
(43)【公開日】2022-09-02
(54)【発明の名称】位置推定装置、それを含むロボットシステム、及びその位置推定方法
(51)【国際特許分類】
G05D 1/02 20200101AFI20220826BHJP
【FI】
G05D1/02 P
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2021184260
(22)【出願日】2021-11-11
(31)【優先権主張番号】10-2021-0024400
(32)【優先日】2021-02-23
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】591251636
【氏名又は名称】現代自動車株式会社
【氏名又は名称原語表記】HYUNDAI MOTOR COMPANY
【住所又は居所原語表記】12, Heolleung-ro, Seocho-gu, Seoul, Republic of Korea
(71)【出願人】
【識別番号】500518050
【氏名又は名称】起亞株式会社
【住所又は居所原語表記】12, Heolleung-ro, Seocho-gu, Seoul, Republic of Korea
(74)【代理人】
【識別番号】110000051
【氏名又は名称】弁理士法人共生国際特許事務所
(72)【発明者】
【氏名】崔 俊 榮
(72)【発明者】
【氏名】池 昊 俊
(72)【発明者】
【氏名】李 歡 喜
(72)【発明者】
【氏名】李 泰 榮
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301BB20
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG12
5H301KK08
5H301KK18
5H301KK19
(57)【要約】
【課題】位置推定を効率的に行うことができる位置推定装置、それを含むロボットシステム、及びその位置推定方法を提供する。
【解決手段】本発明による位置推定装置は、地図上に複数のパーティクルを生成するパーティクル生成部と、対象の位置に関するセンシングデータに基づいて複数のパーティクルのそれぞれの位置正確度を算出し、位置正確度に基づいて複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するパーティクル選定部と、基準パーティクルに基づいて対象の位置を判定する位置判定部と、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
地図上に複数のパーティクルを生成するパーティクル生成部と、
対象の位置に関するセンシングデータに基づいて前記複数のパーティクルのそれぞれの位置正確度を算出し、前記位置正確度に基づいて前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するパーティクル選定部と、
前記基準パーティクルに基づいて前記対象の位置を判定する位置判定部と、を含むことを特徴とする位置推定装置。
【請求項2】
前記パーティクル選定部は、前記位置正確度が基準値以上であるパーティクルを前記基準パーティクルとして選定することを特徴とする請求項1に記載の位置推定装置。
【請求項3】
前記パーティクル選定部は、前記地図と前記センシングデータとを比較して、前記複数のパーティクルのそれぞれの位置正確度を算出することを特徴とする請求項1に記載の位置推定装置。
【請求項4】
前記パーティクル選定部は、前記地図を距離変換(distance transform)して獲得したコストマップ(cost map)と前記センシングデータとをコンボルーション(convolution)して前記複数のパーティクルのそれぞれの位置正確度を算出することを特徴とする請求項1に記載の位置推定装置。
【請求項5】
前記パーティクル選定部は、前記基準パーティクルを除いた残りのパーティクルを、前記基準パーティクルを中心に再分配することを特徴とする請求項1に記載の位置推定装置。
【請求項6】
前記パーティクル選定部は、前記基準パーティクルを除いた残りのパーティクルを、前記基準パーティクルのそれぞれの位置正確度に基づいて再分配することを特徴とする請求項5に記載の位置推定装置。
【請求項7】
前記パーティクル選定部は、前記基準パーティクルが複数個である場合、前記対象を一定距離以上移動させた後に前記基準パーティクルのそれぞれの位置正確度を再算出し、再算出された前記基準パーティクルの位置正確度に基づいて基準パーティクルを再選定することを特徴とする請求項1に記載の位置推定装置。
【請求項8】
前記パーティクル選定部は、前記基準パーティクルが一つに収束するまで前記基準パーティクルを繰り返して選定することを特徴とする請求項7に記載の位置推定装置。
【請求項9】
前記位置判定部は、収束した基準パーティクルの位置を前記対象の位置として判定することを特徴とする請求項8に記載の位置推定装置。
【請求項10】
前記位置判定部は、前記基準パーティクルが複数個である場合、前記位置正確度が最も高い基準パーティクルの位置を前記対象の位置として判定することを特徴とする請求項1に記載の位置推定装置。
【請求項11】
ロボットの周辺の地形情報をセンシングするセンサ部と、
前記センサ部のセンシングデータに基づいて地図上に生成された複数のパーティクルのそれぞれの位置正確度を算出し、前記位置正確度に基づいて前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定し、前記基準パーティクルに基づいて対象の位置を推定する位置推定部と、を含むことを特徴とするロボットシステム。
【請求項12】
前記センサ部は、前記ロボットと周辺物との距離を検出するライダー(LiDAR)を含むことを特徴とする請求項11に記載のロボットシステム。
【請求項13】
前記ロボットを移動させ、ホイールエンコーダ(wheel encoder)により測定された値に基づいて前記対象の移動距離を算出する駆動部をさらに含むことを特徴とする請求項11に記載のロボットシステム。
【請求項14】
地図上に複数のパーティクルを生成するステップと、
対象の位置に関するセンシングデータに基づいて前記複数のパーティクルのそれぞれの位置正確度を算出するステップと、
前記位置正確度に基づいて前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップと、
前記基準パーティクルに基づいて前記対象の位置を判定するステップと、を含むことを特徴とする位置推定方法。
【請求項15】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記位置正確度が基準値以上であるパーティクルを前記基準パーティクルとして選定することを特徴とする請求項14に記載の位置推定方法。
【請求項16】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記地図と前記センシングデータとを比較して、前記複数のパーティクルのそれぞれの位置正確度を算出することを特徴とする請求項14に記載の位置推定方法。
【請求項17】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記地図を距離変換して獲得したコストマップと前記センシングデータとをコンボルーションして前記複数のパーティクルのそれぞれの位置正確度を算出することを特徴とする請求項14に記載の位置推定方法。
【請求項18】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記基準パーティクルが複数個である場合、前記対象を移動させた後に前記基準パーティクルのそれぞれの位置正確度を再算出し、再算出された前記基準パーティクルの位置正確度に基づいて基準パーティクルを再選定することを特徴とする請求項14に記載の位置推定方法。
【請求項19】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記基準パーティクルが一つに収束するまで前記基準パーティクルを繰り返して選定することを特徴とする請求項18に記載の位置推定方法。
【請求項20】
前記対象の位置を判定するステップは、収束した基準パーティクルの位置を前記対象の位置として判定することを特徴とする請求項19に記載の位置推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置推定装置、それを含むロボットシステム、及びその位置推定方法に関する。
【背景技術】
【0002】
現在、ロボット関連技術の発達に伴い、家庭や産業現場で様々な形態のロボットが用いられている。これらのロボットは、家の中を移動しながら掃除などの家事業務を行う家庭用ロボットだけでなく、製造業などの産業現場で機械的作業を行う産業用ロボットまで、様々な分野で大きな活用価値が認められている。
【0003】
特に、これらのロボットは、多数の区域を移動しながら人に代わって作業を行うが、このような移動型ロボットにおいては、自分の現在位置を認識することが必須に求められる。このように、移動型ロボットの位置を推定するために、別の無線装置を用いたり、多数の視点における位置情報と比較するなど、多様な方法が試されている。しかし、これらの方法は別の通信装置が必要になるか、または複雑な計算アルゴリズムを経なければならないため、高仕様・高コストのロボットシステムが求められる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、ロボットの内部のセンサのみを用いて、位置推定を効率的に行うことができる位置推定装置、それを含むロボットシステム、及びその位置推定方法を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するためになされた本発明の一態様による位置推定装置は、地図上に複数のパーティクルを生成するパーティクル生成部と、対象の位置に関するセンシングデータに基づいて前記複数のパーティクルのそれぞれの位置正確度を算出し、前記位置正確度に基づいて前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するパーティクル選定部と、前記基準パーティクルに基づいて前記対象の位置を判定する位置判定部と、を含むことを特徴とする。
【0007】
前記パーティクル選定部は、前記位置正確度が基準値以上であるパーティクルを前記基準パーティクルとして選定することができる。
【0008】
前記パーティクル選定部は、前記地図と前記センシングデータとを比較して、前記複数のパーティクルのそれぞれの位置正確度を算出することができる。
【0009】
前記パーティクル選定部は、前記地図を距離変換して獲得したコストマップと前記センシングデータとをコンボルーション(convolution)して前記複数のパーティクルのそれぞれの位置正確度を算出することができる。
【0010】
前記パーティクル選定部は、前記基準パーティクルを除いた残りのパーティクルを、前記基準パーティクルを中心に再分配し得る。
【0011】
前記パーティクル選定部は、前記基準パーティクルを除いた残りのパーティクルを、前記基準パーティクルのそれぞれの位置正確度に基づいて再分配し得る。
【0012】
前記パーティクル選定部は、前記基準パーティクルが複数個である場合、前記対象を一定距離以上移動させた後に前記基準パーティクルのそれぞれの位置正確度を再算出し、再算出された前記基準パーティクルの位置正確度に基づいて基準パーティクルを再選定し得る。
【0013】
前記パーティクル選定部は、前記基準パーティクルが一つに収束するまで前記基準パーティクルを繰り返して選定し得る。
【0014】
前記位置判定部は、収束した基準パーティクルの位置を前記対象の位置として判定し得る。
【0015】
前記位置判定部は、前記基準パーティクルが複数個である場合、前記位置正確度が最も高い基準パーティクルの位置を前記対象の位置として判定し得る。
【0016】
上記目的を達成するためになされた本発明の一態様によるロボットシステムは、ロボットの周辺の地形情報をセンシングするセンサ部と、前記センサ部のセンシングデータに基づいて地図上に生成された複数のパーティクルのそれぞれの位置正確度を算出し、前記位置正確度に基づいて前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定し、前記基準パーティクルに基づいて対象の位置を推定する位置推定部と、を含むことを特徴とする。
【0017】
前記センサ部は、前記ロボットと周辺物との距離を検出するライダー(LiDAR)を含むことが好ましい。
【0018】
前記ロボットを移動させ、ホイールエンコーダ(wheel encoder)により測定された値に基づいて前記対象の移動距離を算出する駆動部をさらに含むことが好ましい。
【0019】
上記目的を達成するためになされた本発明の一態様による位置推定方法は、地図上に複数のパーティクルを生成するステップと、対象の位置に関するセンシングデータに基づいて前記複数のパーティクルのそれぞれの位置正確度を算出するステップと、前記位置正確度に基づいて前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップと、前記基準パーティクルに基づいて前記対象の位置を判定するステップと、を含むことを特徴とする。
【0020】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記位置正確度が基準値以上であるパーティクルを前記基準パーティクルとして選定することが好ましい。
【0021】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記地図と前記センシングデータとを比較して、前記複数のパーティクルのそれぞれの位置正確度を算出することが好ましい。
【0022】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記地図を距離変換して獲得したコストマップと前記センシングデータとをコンボルーションして前記複数のパーティクルのそれぞれの位置正確度を算出し得る。
【0023】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記基準パーティクルが複数個である場合、前記対象を移動させた後に前記基準パーティクルのそれぞれの位置正確度を再算出し、再算出された前記基準パーティクルの位置正確度に基づいて基準パーティクルを再選定することが好ましい。
【0024】
前記複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定するステップは、前記基準パーティクルが一つに収束するまで前記基準パーティクルを繰り返して選定することが好ましい。
【0025】
前記対象の位置を判定するステップは、収束した基準パーティクルの位置を前記対象の位置として判定することが好ましい。
【発明の効果】
【0026】
本発明による位置推定装置、それを含むロボットシステム、及びその位置推定方法は、別の装置や複雑なアルゴリズムなしに、ロボットの内部のセンサのみを用いてロボットの全域測位を行うことで、ロボットの製造コストを低減し、位置推定の手順を効率的に行うことができる。
【0027】
その他に、本明細書書から直接的または間接的に把握される多様な効果が提供される。
【図面の簡単な説明】
【0028】
【
図1】本発明の一実施形態によるロボットシステムの構成を示すブロック図である。
【
図2】本発明の一実施形態による位置推定装置の構成を示すブロック図である。
【
図3】本発明の一実施形態による位置推定装置のパーティクル生成動作を説明するための図である。
【
図4】本発明の一実施形態による位置推定装置の基準パーティクル選定動作を説明するための図である。
【
図5】本発明の一実施形態による位置推定装置の位置推定動作を説明するための図である。
【
図6】本発明の一実施形態による位置推定装置の動作を示すフローチャートである。
【
図7】本発明の一実施形態による位置推定方法を示すフローチャートである。
【
図8】本発明の一実施形態によるコンピューティングシステムを示す図である。
【発明を実施するための形態】
【0029】
以下、本発明を実施するための形態の具体例を図面を参照しながら詳細に説明する。各図面の構成要素に参照符号を付加するにあたり、同一の構成要素に対しては、たとえ異なる図面上に表示されても、できる限り同一の符号を有するようにしている。また、本発明の実施形態を説明するにあたり、関連した公知の構成または機能についての具体的な説明が本発明の実施形態の理解を妨げると判断される場合には、その詳細な説明は省略する。
【0030】
本発明の実施形態の構成要素を説明するのに際し、第1、第2、A、B、(a)、(b)などの用語を使用するが、これらの用語は、その構成要素を他の構成要素と区別するためのものにすぎず、その用語により、該当構成要素の本質や順番または順序などは限定されない。また、別に定義されない限り、技術的または科学的な用語を始めとする本明細書で用いられる全ての用語は、本発明が属する技術分野において通常の知識を有する者によって一般に理解されるものと同一の意味を有する。一般に用いられる辞書に定義されているような用語は、関連技術が文脈上有する意味と一致する意味を有すると解釈され、本明細書で明白に定義しない限り、理想的または過度に形式的な意味で解釈されない。
【0031】
以下、
図1~
図8を参照して、本発明の実施形態について具体的に説明する。
【0032】
図1は、本発明の一実施形態によるロボットシステムの構成を示すブロック図である。
【0033】
図1を参照すると、本発明の一実施形態によるロボットシステム100は、センサ部110、駆動部120、及び位置推定部130を含む。
【0034】
センサ部110は、ロボットの周辺の地形情報をセンシングする。例えば、センサ部110は、ロボットと周辺物との距離をセンシングする。具体的に、センサ部110は、周辺物(例えば、壁、障害物など)に信号(例えば、光信号)を送信し、事物から反射してくる信号を検出することで、距離を測定する。また、センサ部110により測定された距離情報は、位置推定部130に伝送される。例えば、センサ部110はライダー(LiDAR)を含む。
【0035】
駆動部120は、ロボットを移動させる。例えば、駆動部120は、ホイールによりロボットを目的地に移動させる。この場合、駆動部120は、ホイールエンコーダ(wheel encoder)により測定された値に基づいてロボットの移動距離を算出する。また、駆動部120により算出された移動距離情報は、位置推定部130に伝送される。
【0036】
位置推定部130は、地図全体に複数のパーティクルを生成し、センサ部110のセンシングデータに基づいて複数のパーティクルのそれぞれの位置正確度(位置精度)を算出する。ここで、パーティクルは対象(例えば、ロボット)の候補位置に配置される。この場合、位置推定部130は、センサ部110により測定されたデータ(例えば、距離情報)を複数のパーティクルのそれぞれに対してマッチングすることで、複数のパーティクルのそれぞれに対する位置正確度を算出する。
【0037】
また、位置推定部130は、複数のパーティクルのそれぞれに対して算出された位置正確度に基づいて、複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定する。この際、基準パーティクルには、位置正確度が既設定の基準値以上であるパーティクルが選定される。また、基準パーティクルを除いた残りのパーティクルは、基準パーティクルを中心に再分配される。
【0038】
そして、位置推定部130は、選定された基準パーティクルに基づいて対象の位置を推定する。例えば、位置推定部130は、基準パーティクルのうちの位置正確度が最も高い基準パーティクルを対象の位置として決定するか、または、対象の位置を駆動部120により移動させた後、基準パーティクルが一つに収束するまで繰り返して選定することで、対象の位置を決定する。これについては、以下の
図2~6を参照して詳細に後述する。
【0039】
図2は、本発明の一実施形態による位置推定装置の構成を示すブロック図である。
【0040】
図2を参照すると、本発明の一実施形態による位置推定装置130は、パーティクル生成部131、パーティクル選定部132、及び位置判定部133を含む。この際、
図2の位置推定装置130は、
図1の位置推定部130と実質的に同一の構成である。
【0041】
パーティクル生成部131は、地図上に複数のパーティクルを生成する。この際、それぞれのパーティクルは、地図上において、位置を推定しようとする対象の候補位置に配置される。または、それぞれのパーティクルは、地図上に一定間隔で均一に配置される。
【0042】
パーティクル選定部132は、対象の位置に関するセンシングデータに基づいて複数のパーティクルのそれぞれの位置正確度を算出する。この際、パーティクル選定部132は、地図とセンシングデータとを比較し、複数のパーティクルのそれぞれの位置正確度を算出する。例えば、パーティクル選定部132は、複数のパーティクルのそれぞれの地図上の位置と、外部センサ(例えば、
図1のセンサ部110)から獲得されたセンシング情報とを比較することで、複数のパーティクルのそれぞれの位置正確度を算出する。
【0043】
具体的に、パーティクル選定部132は、予め格納された地図を距離変換(distance transform)して獲得したコストマップ(cost map)とセンシングデータとをコンボルーション(convolution)して複数のパーティクルのそれぞれの位置正確度を算出する。ここで、コストマップとは、対象が位置している区域の地図を距離変換した結果であり、例えば、地図上に壁や障害物がある地点に隣接するほど値が小さくなり、周辺に壁や障害物のない地点は値が大きくなるように構成される。
【0044】
また、パーティクル選定部132は、算出された位置正確度に基づいて、複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定する。ここで、基準パーティクルには、対象(例えば、ロボット)の現在位置に該当する可能性が高いパーティクルが選定される。例えば、パーティクル選定部132は、位置正確度が基準値以上であるパーティクルを基準パーティクルとして選定する。
【0045】
パーティクル選定部132は、基準パーティクルを除いた残りのパーティクルを、基準パーティクルを中心に再分配する。例えば、パーティクル選定部132は、基準パーティクルを除いた残りのパーティクルを、基準パーティクルのそれぞれの位置正確度に基づいて再分配する。この際、パーティクル選定部132は、基準パーティクルが複数個である場合、各基準パーティクルの位置正確度に応じて差をつけ、残りのパーティクルを分配する。例えば、3個の基準パーティクルの位置正確度が90%、80%、60%である場合、残りのパーティクルをそれぞれ9:8:6の割合で3個の基準パーティクルに分配する。
【0046】
また、パーティクル選定部132は、基準パーティクルが複数個である場合、対象を一定距離以上移動させた後、基準パーティクルのそれぞれの位置正確度を再算出する。この場合、パーティクル選定部132は、再算出された基準パーティクルの位置正確度に基づいて基準パーティクルを再選定する。このように、パーティクル選定部132は、基準パーティクルが一つに収束するまで基準パーティクルを繰り返して選定する。
【0047】
位置判定部133は、基準パーティクルに基づいて対象の位置を判定する。例えば、位置判定部133は、パーティクル選定部132により一つに収束した基準パーティクルの位置を対象の位置として判定する。または、位置判定部133は、基準パーティクルが複数個である場合、位置正確度が最も高い基準パーティクルの位置を対象の位置として判定する。
【0048】
このように、本発明の一実施形態による位置推定装置130、それを含むロボットシステム100は、別の装置や複雑なアルゴリズムなしに、ロボットの内部のセンサのみを用いてロボットの全域測位を行うことで、ロボットの製造コストを低減し、位置推定の手順を効率的に行うことができる。
【0049】
図3は、本発明の一実施形態による位置推定装置のパーティクル生成動作を説明するための図である。
【0050】
図3の(a)を参照すると、Rは、本発明の一実施形態による位置推定装置130で位置を推定しようとする対象(例えば、ロボット)を示し、L1は、センサ部110(例えば、ライダーセンサ)により測定したセンシングデータを示す。ここで、L1は、ライダーセンサにより測定されたセンシングデータによって抽出された構造(壁)の一部を示したものである。また、
図3の(a)に示すように、位置推定装置130は、地図上に任意の位置を対象Rの位置として設定する。
【0051】
また、
図3の(b)を参照すると、位置推定装置130は、地図上の任意の位置に複数のパーティクルPを生成する。この際、位置推定装置130は、
図3の(b)に示すように、地図の全領域にわたって均一にパーティクルを生成するか、または、地図上において、対象Rが位置する可能性が高い候補位置のみに生成するようにする。例えば、複数のパーティクルPのそれぞれには座標が付与されている。
【0052】
図4は、本発明の一実施形態による位置推定装置の基準パーティクル選定動作を説明するための図である。
【0053】
図4の(a)を参照すると、Cは、本発明の一実施形態による位置推定装置130により地図を距離変換したコストマップを示し、Mは地図データ(例えば、壁)を示し、Lはライダーセンサにより測定したデータを示す。また、
図4の(a)に陰影で示すように、コストマップCは、壁や障害物に近い部分は低い値を有して暗く表示され、壁や障害物から遠くなるほど値が大きくなるため明るく表示される。したがって、コストマップCから、特定位置の周辺に壁や障害物が存在するか否かを判断することができる。
【0054】
このように、本発明の一実施形態による位置推定装置130は、距離変換により算出されたコストマップCのデータと、ライダーセンサから受信したセンシングデータとのコンボルーションを行う。その結果、
図3の(a)で生成した複数のパーティクルのそれぞれに対して位置正確度を算出することができる。
【0055】
図4の(b)を参照すると、位置推定装置130により、複数のパーティクルのうち4個のパーティクルを基準パーティクル(P1~P4)として算出したことを示している。この際、それぞれの基準パーティクル(P1~P4)には、位置正確度が基準値(例えば、80%)以上であるパーティクルが選定される。
【0056】
また、
図4の(b)に示すように、基準パーティクル(P1~P4)のそれぞれに対して、残りのパーティクルを再分配する。この場合、基準パーティクル(P1~P4)のそれぞれの位置正確度に応じて、残りのパーティクルに差をつけて分配する。例えば、
図4の(b)では、P4からP1に行くほど位置正確度が高いため、残りのパーティクルも、P4からP1の順に多く分配されることが分かる。
【0057】
図5は、本発明の一実施形態による位置推定装置の位置推定動作を説明するための図である。
【0058】
図5の(a)を参照すると、Rは、
図3及び
図4の対象を、一定距離だけ右側に移動させたことを示し、L2は、対象Rの移動によるライダーセンサの測定データを示す。P1’は、本発明の一実施形態による位置推定装置130により、
図4の(b)に示す複数の基準パーティクル(P1~P4)のうちの一つであるP1に収束させたことを示している。この場合、
図5の(a)では、対象Rを一定距離以上右側に移動させた後、上述の方法により基準パーティクルを再選定することで、一つの基準パーティクルP1’に収束するようにしている。この際、基準パーティクルが一つに収束するまで上述の過程を繰り返して行う。例えば、基準パーティクルを収束させる過程は、PSO(particle swarm optimization)アルゴリズムに従って行う。
【0059】
図5の(b)を参照すると、位置推定装置130は、地図上の
図5の(a)に示す基準パーティクルP1’の位置を対象R’の現在位置として決定したことが示されている。また、
図5の(b)に示すように、ライダーセンサによるセンシングデータL’も、実際の対象R’の現在位置に対応することが分かる。
【0060】
このように、従来の一般的なロボットは、以前の時間(t-1)の位置を基準として現在(t)の位置を推定するため、再起動やエラーなどによりロボットシステムが現在の位置を失うと、それ以上持続的な位置推定が不可能であるという問題があった。しかし、本発明の一実施形態による位置推定装置130を含むロボットシステム100は、ロボットが現在の位置を失う状況が発生した際にも、現在の位置を効果的に推定することで、ロボットシステムの持続的な運営を可能とする。
【0061】
図6は、本発明の一実施形態による位置推定装置の動作を示すフローチャートである。
【0062】
図6を参照すると、本発明の一実施形態による位置推定装置130は、先ず、地図上にパーティクルを生成する(S10)。この際、地図の全域にわたって既設定の数のパーティクルを均一に、または候補位置を中心に生成する。そして、生成されたパーティクルのそれぞれに対する位置正確度を測定する(S20)。この場合、センサ部110(例えば、ライダーセンサ)のセンシングデータに基づいてそれぞれのパーティクルの地図上の位置に対する整合性を測定することで、位置正確度を測定する。
【0063】
また、生成されたパーティクルのうち、位置正確度に基づいて基準パーティクルを選定する(S30)。例えば、位置正確度が設定された基準値以上であるパーティクルを基準パーティクルとして選定するか、または位置正確度が高い順にn個の正確度の高いパーティクルを基準パーティクルとして選定する。
【0064】
そして、残りのパーティクルを、基準パーティクルを基準に再分配する(S40)。例えば、基準パーティクルが複数個である場合、基準パーティクルの位置正確度に応じて差をつけて残りのパーティクルを分配する。
【0065】
次に、基準パーティクルが収束するか否かを判断する(S50)。基準パーティクルが一つに収束する場合(YES)、該当基準パーティクルの位置を対象の位置として判定(決定)する(S60)。これに対し、基準パーティクルが収束せず、複数個が算出される場合(NO)には、対象を一定距離以上移動させる(S70)。また、対象の移動に応じて、生成されたパーティクルも共に移動させる(S80)。そして、基準パーティクルが一つに収束するまで、上述のステップ(S20~S50)の動作を繰り返す。
【0066】
図7は、本発明の一実施形態による位置推定方法を示すフローチャートである。
【0067】
以下、
図7を参照して本発明の一実施形態による位置推定方法を具体的に説明する。以下では、
図2の位置推定装置130が
図7のプロセスを行うことを仮定する。また、
図7の説明において、装置により行われると説明する動作は、位置推定装置130のプロセッサによって制御される。
【0068】
図7を参照すると、本発明の一実施形態による位置推定方法は、先ず、地図上に複数のパーティクルを生成する(S110)。この際、それぞれのパーティクルは、地図上において位置を推定しようとする対象の候補位置に配置される。または、それぞれのパーティクルは地図上に一定間隔で均一に配置される。
【0069】
また、対象の位置に関するセンシングデータに基づいて、複数のパーティクルのそれぞれの位置正確度を算出する(S120)。この場合、地図とセンシングデータとを比較し、複数のパーティクルのそれぞれの位置正確度を算出する。例えば、ステップS120では、複数のパーティクルのそれぞれの地図上の位置と、外部センサ(例えば、
図1のセンサ部110)から獲得されたセンシング情報とを比較することで、複数のパーティクルのそれぞれの位置正確度を算出する。具体的に、ステップS120では、予め格納された地図を距離変換して獲得したコストマップとセンシングデータとをコンボルーションして複数のパーティクルのそれぞれの位置正確度を算出する。
【0070】
次に、算出された位置正確度に基づいて、複数のパーティクルのうちの少なくとも一つのパーティクルを基準パーティクルとして選定する(S130)。ここで、基準パーティクルとしては、対象(例えば、ロボット)の現在位置に該当する可能性が高いパーティクルが選定される。例えば、ステップS130では、位置正確度が基準値以上であるパーティクルを基準パーティクルとして選定する。
【0071】
また、ステップS130では、基準パーティクルを除いた残りのパーティクルを、基準パーティクルを中心に再分配する。例えば、基準パーティクルを除いた残りのパーティクルを、基準パーティクルのそれぞれの位置正確度に基づいて再分配する。基準パーティクルが複数個である場合、各基準パーティクルの位置正確度に応じて差をつけて残りのパーティクルを分配する。
【0072】
また、ステップS120及びS130において、基準パーティクルが複数個である場合には、対象を一定距離以上移動させた後、基準パーティクルのそれぞれの位置正確度を再算出する。この場合、再算出された基準パーティクルの位置正確度に基づいて基準パーティクルを再選定する。このように、基準パーティクルが一つに収束するまで、基準パーティクルを繰り返して選定する。
【0073】
そして、基準パーティクルに基づいて対象の位置を判定する(S140)。例えば、ステップS140では、一つに収束した基準パーティクルの位置を対象の位置として判定する。または、基準パーティクルが複数個である場合、位置正確度が最も高い基準パーティクルの位置を対象の位置として判定する。
【0074】
このように、本発明の一実施形態による位置推定方法は、別の装置や複雑なアルゴリズムなしに、ロボットの内部のセンサのみを用いてロボットの全域測位を行うことで、ロボットの製造コストを低減し、位置推定の手順を効率的に行うことができる。
【0075】
図8は、本発明の一実施形態によるコンピューティングシステムを示す図である。
【0076】
図8を参照すると、コンピューティングシステム1000は、バス1200を介して連結される少なくとも1つのプロセッサ1100と、メモリー1300と、ユーザインタフェース入力装置1400と、ユーザインタフェース出力装置1500と、ストレージ1600と、ネットワークインタフェース1700と、を含む。
【0077】
プロセッサ1100は、中央処理装置(CPU)であるか、またはメモリー1300及び/またはストレージ1600に格納されている命令語に対する処理を実行する半導体装置である。メモリー1300及びストレージ1600は、種々の揮発性または不揮発性記憶媒体を含む。例えば、メモリー1300は、ROM(Read Only Memory)1310及びRAM(Random Access Memory)1320を含む。
【0078】
したがって、本明細書に開示された実施形態に関連して説明された方法またはアルゴリズムのステップは、プロセッサ1100により実行されるハードウェア、ソフトウェアモジュール、またはその2つの結合により直接実現される。ソフトウェアモジュールは、RAMメモリー、フラッシュメモリー、ROMメモリー、EPROMメモリー、EEPROMメモリー、レジスター、ハードディスク、着脱型ディスク、CD-ROMのような記憶媒体(すなわち、メモリー1300及び/またはストレージ1600)に常駐してもよい。
【0079】
例示的な記憶媒体はプロセッサ1100にカップリングされ、プロセッサ1100は、記憶媒体から情報を読み取ることができ、かつ記憶媒体に情報を書き込むことができる。他の方法として、記憶媒体はプロセッサ1100と一体型であってもよい。プロセッサ及び記憶媒体は特定用途向け集積回路(ASIC)内に常駐してもよい。ASICはユーザ端末機内に常駐してもよい。他の方法として、プロセッサ及び記憶媒体は、ユーザ端末機内に個別コンポーネントとして常駐してもよい。
【0080】
以上の説明は、本発明の技術思想を例示的に説明したものに過ぎず、本発明が属する技術分野において通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び変形が可能である。
【0081】
したがって、本明細書に開示された実施形態は、本発明の技術思想を限定するためのものではなく、単に説明するためのものであり、これらの実施形態により本発明の技術思想の範囲が限定されるものではない。
【符号の説明】
【0082】
100 ロボットシステム
110 センサ部
120 駆動部
130 位置推定部(位置推定装置)
131 パーティクル生成部
132 パーティクル選定部
133 位置判定部
1000 コンピューティングシステム
1100 プロセッサ
1200 バス
1300 メモリー
1310 ROM
1320 RAM
1400 ユーザインタフェース入力装置
1500 ユーザインタフェース出力装置
1600 ストレージ
1700 ネットワークインタフェース