(57)【要約】【課題】ブロック基盤の特徴点抽出及びマッチングを用いて低照度環境でも優れたビジョンＳＬＡＭ技術を具現する移動ロボットの制御方法を提供する。【解決手段】走行区域内映像を獲得する段階、映像から特徴点を抽出するポイント基盤の特徴点抽出段階、映像をブロックに区分し、ブロック単位映像から特徴点を抽出するブロック基盤の特徴点抽出段階、抽出された特徴点を用いて、現在位置に対応するノード及び該ノードを基準に基準距離以内のノードの特徴点をマッチングするポイント基盤の特徴点マッチング段階、抽出された特徴点を用いて、現在位置に対応するノード及び該ノードを基準に基準距離以内のノードの特徴点をマッチングするブロック基盤の特徴点マッチング段階、特徴点マッチング結果に基づいて現在位置を認識する段階、現在位置情報、現在位置に対応するノードのポイント基盤の特徴点情報及びブロック基盤の特徴点情報をマップに登録する段階を含む。【選択図】図１
2020161142.tif 000002
【特許請求の範囲】
【請求項１】
走行中に走行区域内の映像を獲得する段階と、
前記獲得された映像から特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階と、
前記獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）に区分し、区分されたそれぞれのブロック単位映像から特徴点を抽出するブロック基盤の特徴点抽出段階と、
前記ポイント基盤の特徴点抽出段階で抽出された特徴点を用いて、現在位置に対応するノード及び前記現在位置に対応するノードを基準に既設定の基準距離以内のノードの特徴点をマッチング（ｍａｔｃｈｉｎｇ）するポイント基盤の特徴点マッチング段階と、
前記ブロック基盤の特徴点抽出段階で抽出された特徴点を用いて、前記現在位置に対応するノード及び前記現在位置に対応するノードを基準に前記基準距離以内のノードの特徴点をマッチングするブロック基盤の特徴点マッチング段階と、
前記ポイント基盤の特徴点マッチング結果及び前記ブロック基盤の特徴点マッチング結果に基づいて前記現在位置を認識する段階と、
前記認識された現在位置の情報、前記現在位置に対応するノードのポイント基盤の特徴点情報、及び前記現在位置に対応するノードのブロック基盤の特徴点情報をマップ（ｍａｐ）に登録する段階と、を含む、移動ロボットの制御方法。
【請求項２】
前記ポイント基盤の特徴点抽出段階は、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成する段階を含む、請求項１に記載の移動ロボットの制御方法。
【請求項３】
前記ブロック基盤の特徴点抽出段階は、前記区分されたそれぞれのブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいてそれぞれのブロック別ディスクリプタを生成する段階を含む、請求項１に記載の移動ロボットの制御方法。
【請求項４】
前記走行中に走行情報を獲得する段階をさらに含み、
前記映像を獲得する段階は、前記獲得された走行情報に基づいて、以前ノードからの移動量が閾値（ｔｈｒｅｓｈｏｌｄ）より大きい場合、前記映像を獲得する段階を含む、請求項１に記載の移動ロボットの制御方法。
【請求項５】
前記走行中に走行情報を獲得する段階と、
前記映像を獲得する段階で獲得される映像のうち、前記獲得された走行情報に基づいて、以前ノードからの移動量が閾値より大きいときの映像をキーフレーム映像として選択する段階と、をさらに含み、
前記ポイント基盤の特徴点抽出段階と前記ブロック基盤の特徴点抽出段階は、前記キーフレーム映像を対象として行われる、請求項１に記載の移動ロボットの制御方法。
【請求項６】
走行中に走行区域内の映像を獲得する段階と、
前記獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）に区分し、区分されたそれぞれのブロック単位映像から特徴点を抽出するブロック基盤の特徴点抽出段階と、
前記ブロック基盤の特徴点抽出段階で抽出された特徴点をマップに登録されたブロック基盤の特徴点情報とマッチングするブロック基盤の特徴点マッチング段階と、
前記ブロック基盤の特徴点マッチング結果に基づいて現在位置を認識する段階と、を含む、移動ロボットの制御方法。
【請求項７】
前記ブロック基盤の特徴点抽出段階は、前記区分されたそれぞれのブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいてそれぞれのブロック別ディスクリプタを生成する段階を含む、請求項６に記載の移動ロボットの制御方法。
【請求項８】
前記獲得された映像から特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階と、
前記ポイント基盤の特徴点抽出段階で抽出された特徴点を前記マップに登録されたポイント基盤の特徴点情報とマッチングするポイント基盤の特徴点マッチング段階と、をさらに含み、
前記現在位置を認識する段階は、前記ポイント基盤の特徴点マッチング結果と前記ブロック基盤の特徴点マッチング結果に基づいて前記現在位置を認識する段階を含む、請求項６に記載の移動ロボットの制御方法。
【請求項９】
前記ポイント基盤の特徴点抽出段階は、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成する段階を含む、請求項８に記載の移動ロボットの制御方法。
【請求項１０】
前記走行中に走行情報を獲得する段階をさらに含み、
前記映像を獲得する段階は、前記獲得された走行情報に基づいて、以前ノードからの移動量が閾値（ｔｈｒｅｓｈｏｌｄ）より大きい場合、前記映像を獲得する段階を含む、請求項６に記載の移動ロボットの制御方法。
【請求項１１】
前記走行中に走行情報を獲得する段階と、
前記映像を獲得する段階で獲得される映像のうち、前記獲得された走行情報に基づいて、以前ノードからの移動量が閾値より大きいときの映像をキーフレーム映像として選択する段階と、をさらに含み、
前記ブロック基盤の特徴点抽出段階は、前記キーフレーム映像を対象として行われる、請求項６に記載の移動ロボットの制御方法。
【請求項１２】
照度情報を獲得する段階をさらに含み、
前記照度情報が低照度環境に設定された条件を満たす場合、前記ブロック基盤の特徴点抽出段階が行われる、請求項６に記載の移動ロボットの制御方法。
【請求項１３】
前記照度情報が前記低照度環境に設定された条件を満たさない場合、前記獲得された映像から特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階と、
前記ポイント基盤の特徴点抽出段階で抽出された特徴点を前記マップに登録されたポイント基盤の特徴点情報とマッチングするポイント基盤の特徴点マッチング段階と、
前記ポイント基盤の特徴点マッチング結果に基づいて前記現在位置を認識する段階と、をさらに含む、請求項１２に記載の移動ロボットの制御方法。
【請求項１４】
前記ポイント基盤の特徴点抽出段階は、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成する段階を含む、請求項１３に記載の移動ロボットの制御方法。
【請求項１５】
前記現在位置を認識する段階は、
前記ブロック基盤の特徴点マッチングに基づいて位置候補である複数のパーティクル（ｐａｒｔｉｃｌｅ）を設定する段階と、
前記複数のパーティクルに対する加重値（ｗｅｉｇｈｔ）を算出する段階と、
前記複数のパーティクルの加重値に基づいて前記現在位置を決定する段階と、
前記複数のパーティクルをリサンプリング（ｒｅｓａｍｐｌｉｎｇ）する段階と、を含む、請求項６に記載の移動ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は移動ロボット及びその制御方法に関するもので、より詳しくは移動ロボットがマップ（ｍａｐ）を生成及び学習するかマップ上で位置を認識する技術に関するものである。
【背景技術】
【０００２】
ロボットは産業用に開発されて工場自動化の一部を担当して来た。最近には、ロボットを応用した分野がもっと拡大して、医療用ロボット、宇宙航空ロボットなどが開発され、一般家庭で使える家庭用ロボットも製作されている。このようなロボットの中で自力で走行可能なものを移動ロボットと言う。
【０００３】
家庭で使われる移動ロボットの代表的な例はロボット掃除機である。ロボット掃除機は一定領域を自ら走行しながら、周辺のほこり又は異物を吸入することにより、該当領域を掃除する機器である。
【０００４】
移動ロボットは、自ら移動可能であって移動が自由であり、走行中に障害物などを避けるための多数のセンサーを備えることにより、障害物を避けて走行することができる。
【０００５】
掃除などの設定された作業を遂行するためには、走行区域のマップ（Ｍａｐ）を正確に生成し、走行区域内のある位置に移動するためにマップ上で移動ロボットの現在位置を正確に把握することができなければならない。
【０００６】
また、外部的な要因によって走行中の移動ロボットの位置が強制に変更された場合、移動ロボットは直前位置での走行情報に基づいて未知の現在位置を認識することができなくなる。一例として、使用者が走行中の移動ロボットを持ち上げて移した拉致（Ｋｉｄｎａｐｐｉｎｇ）状況が発生した場合がそれである。
【０００７】
移動ロボットの現在位置の認識のために、移動ロボットの連続的な移動中に自分の直前位置での走行情報（移動方向及び移動速度についての情報又は連続的に撮影される床写真などの比較など）に基づいて現在位置を持続的に把握する多様な方法が研究されて来た。また、移動ロボットが自らマップを生成して学習する多様な方法に対する研究が進んでいる。
【０００８】
また、移動ロボットが現在位置でカメラを介して撮影された映像を用いて未知の現在位置を認識する技術が提案されている。
【０００９】
特許文献（韓国公開特許第１０−２０１０−０１０４５８１号公報、公開日：２０１０．９．２９）は、走行区域内で撮影された映像から抽出された特徴点から３次元地図を生成し、現在位置でカメラを介して撮影された映像に基づく特徴点を用いて未知の現在位置を認識する技術を開示している。
【００１０】
前記特許文献では、走行区域内で撮影された映像から抽出された特徴点から３次元地図を生成し、未知の現在位置で撮影された映像内の特徴点の中で３次元地図内の特徴点とマッチングする３対以上の特徴点対を検出する。その後、現在位置で撮影された映像内のマッチングした３個以上の特徴点の２次元座標、３次元地図上のマッチングした３個以上の特徴点の３次元座標、及び現在位置でカメラの焦点距離情報を用いて、前記マッチングした３個以上の特徴点から距離を算出し、これから現在位置を認識する技術が前記特許文献に開示されている。
【００１１】
前記特許文献のように、走行区域上の同じ部分を撮影したいずれか一映像と認識映像を比較して特定ポイント（ｐｏｉｎｔ）の特徴点で位置を認識する方式は、走行区域内の照明オン／オフ（Ｏｎ／Ｏｆｆ）又は太陽光の入射角や量による照度変化などの環境変化によって現在位置の推定正確度が変わることがある問題がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】韓国公開特許第１０−２０１０−０１０４５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献のように、走行区域上の同じ部分を撮影したいずれか一映像と認識映像を比較して特定ポイント（ｐｏｉｎｔ）の特徴点で位置を認識する方式は、走行区域内の照明オン／オフ（Ｏｎ／Ｏｆｆ）又は太陽光の入射角や量による照度変化、物品位置の変更などの環境変化によって現在位置の推定正確度が変わることがある問題がある。本発明の目的はこのような環境変化に強靭な位置認識及びマップ生成技術を提供することにある。
【００１４】
本発明の目的は、移動ロボットの現在位置認識の成功率を高め、より高い信頼度で現在位置を推定するようにして、効率的で正確な走行区域内位置認識技術を提供することにある。
【００１５】
本発明の目的は、低照度環境でも動作することができるビジョン（Ｖｉｓｉｏｎ）ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）技術を提供することにある。
【００１６】
本発明の目的は、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いて低照度環境でも優れたＳＬＡＭ技術を提供することにある。
【課題を解決するための手段】
【００１７】
前記又は他の目的を達成するために、本発明の一側面による移動ロボット及びその制御方法は、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いて低照度環境でも優れたビジョンＳＬＡＭ技術を具現することができる。
【００１８】
前記又は他の目的を達成するために、本発明の一側面による移動ロボット及びその制御方法は、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いて環境変化に強靭なマップを生成してマップ上の位置を正確に認識することができる。
【００１９】
前記又は他の目的を達成するために、本発明の一側面による移動ロボット及びその制御方法は、多様な環境変化に対応することができる一つのマップに基づいて効率的な走行及び掃除を行うことができる。
【００２０】
前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、走行中に走行区域内映像を獲得する段階、前記獲得された映像から特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階、前記獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）に区分し、区分されたそれぞれのブロック単位映像から特徴点を抽出するブロック基盤の特徴点抽出段階、前記ポイント基盤の特徴点抽出段階で抽出された特徴点を用いて、現在位置に対応するノード及び前記現在位置に対応するノードを基準に既設定の基準距離以内のノードの特徴点をマッチング（ｍａｔｃｈｉｎｇ）するポイント基盤の特徴点マッチング段階、前記ブロック基盤の特徴点抽出段階で抽出された特徴点を用いて、前記現在位置に対応するノード及び前記現在位置に対応するノードを基準に前記基準距離以内のノードの特徴点をマッチングするブロック基盤の特徴点マッチング段階、前記ポイント基盤の特徴点マッチング結果と前記ブロック基盤の特徴点マッチング結果に基づいて前記現在位置を認識する段階、及び前記認識された現在位置情報、前記現在位置に対応するノードのポイント基盤の特徴点情報、及び前記現在位置に対応するノードのブロック基盤の特徴点情報をマップ（ｍａｐ）に登録する段階を含むことにより環境変化に強靭なマップを生成することができる。
【００２１】
前記ポイント基盤の特徴点抽出段階で、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成することができる。
【００２２】
また、ブロック基盤の特徴点抽出段階では、前記ブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいてそれぞれのブロック別ディスクリプタを生成することができる。
【００２３】
また、前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、前記走行中に走行情報を獲得する段階をさらに含み、前記映像獲得段階は、前記獲得された走行情報に基づいて以前ノードからの移動量が閾値（ｔｈｒｅｓｈｏｌｄ）より大きくなれば、映像獲得部を介して前記映像を獲得することができる
もしくは、前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、前記走行中に走行情報を獲得する段階と前記映像獲得段階で映像獲得部を介して獲得される映像のうち、以前ノードからの移動量が閾値より大きい映像をキーフレーム映像として選択する段階をさらに含み、前記ポイント基盤の特徴点抽出段階と前記ブロック基盤の特徴点抽出段階は、前記キーフレーム映像を対象として遂行することができる。
【００２４】
前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、走行中に走行区域内映像を獲得する段階、前記獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）に区分し、区分されたそれぞれのブロック単位映像から特徴点を抽出するブロック基盤の特徴点抽出段階、前記ブロック基盤の特徴点抽出段階で抽出された特徴点をマップに登録されたブロック基盤の特徴点情報とマッチングするブロック基盤の特徴点マッチング段階、及び前記ブロック基盤の特徴点マッチング結果に基づいて現在位置を認識する段階を含むことにより、低照度環境でも位置を正確に認識することができる。
【００２５】
前記ブロック基盤の特徴点抽出段階で、前記ブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいてそれぞれのブロック別ディスクリプタを生成することができる。
【００２６】
また、前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、前記獲得された映像から特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階、及び前記ポイント基盤の特徴点抽出段階で抽出された特徴点を前記マップに登録されたポイント基盤の特徴点情報とマッチングする段階をさらに含み、前記現在位置認識段階は、前記ポイント基盤の特徴点マッチング結果と前記ブロック基盤の特徴点マッチング結果に基づいて前記現在位置を認識することができる。
【００２７】
この場合、ポイント基盤の特徴点抽出段階は、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成することができる。
【００２８】
また、前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、前記走行中に走行情報を獲得する段階をさらに含み、前記映像獲得段階は、前記獲得された走行情報に基づいて以前ノードからの移動量が閾値（ｔｈｒｅｓｈｏｌｄ）より大きくなれば、映像獲得部を介して前記映像を獲得することができる。
【００２９】
もしくは、前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、前記走行中に走行情報を獲得する段階、前記映像獲得段階で映像獲得部を介して獲得される映像のうち、以前ノードからの移動量が閾値より大きい映像をキーフレーム映像として選択する段階をさらに含み、前記ブロック基盤の特徴点抽出段階は、前記キーフレーム映像を対象として遂行することができる。
【００３０】
また、前記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、センサー部を介して照度情報を獲得する段階をさらに含み、前記照度情報が低照度環境に設定された条件を満たせば、前記ブロック基盤の特徴点抽出段階を遂行することができる。
【００３１】
この場合、前記照度情報が前記低照度環境に設定された条件を満たさなければ、ポイント（ｐｏｉｎｔ）基盤の位置認識を遂行することができる。本発明の一側面によれば、前記照度情報が前記低照度環境に設定された条件を満たさなければ、前記獲得された映像から特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階、前記ポイント基盤の特徴点抽出段階で抽出された特徴点を前記マップに登録されたポイント基盤の特徴点情報とマッチングする段階、及び前記ポイント基盤の特徴点マッチング結果に基づいて前記現在位置を認識する段階をさらに含むことができる。
【００３２】
一方、ポイント基盤の特徴点抽出段階は、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成することができる。
【００３３】
本発明の一側面によれば、現在位置を認識する段階は、前記ブロック基盤の特徴点マッチングに基づいて位置候補である複数のパーティクル（ｐａｒｔｉｃｌｅ）を設定し、前記複数のパーティクルに対する加重値（ｗｅｉｇｈｔ）を算出し、前記複数のパーティクルの加重値に基づいて前記現在位置を決定し、前記複数のパーティクルをリサンプリング（ｒｅｓａｍｐｌｉｎｇ）することができる。
【発明の効果】
【００３４】
本発明の実施例の少なくとも一つによれば、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いて照明、照度、時間帯、事物位置変化などの多様な環境変化に対して強靭なマップを生成することができる。
【００３５】
また、本発明の実施例の少なくとも一つによれば、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いてマップ上の移動ロボットの位置を正確に認識することができる。
【００３６】
また、本発明の実施例の少なくとも一つによれば、低照度環境でも動作することができるビジョン（Ｖｉｓｉｏｎ）ＳＬＡＭ技術を具現することができる。
【００３７】
また、本発明の実施例の少なくとも一つによれば、ブロック基盤の特徴点抽出及びマッチングを用いて低照度環境でも優れたＳＬＡＭ技術を提供することができる。
【００３８】
また、本発明の実施例の少なくとも一つによれば、多様な環境変化に対応することができる一つのマップと正確な位置認識に基づいて効率的な走行及び掃除を行うことができる。
【００３９】
一方、それ以外の多様な効果は後述する本発明の実施例による詳細な説明で直接的に又は暗示的に開示する。
【図面の簡単な説明】
【００４０】
【図１】本発明の一実施例による移動ロボットを示す斜視図である。
【図２】図１の移動ロボットの平面図である。
【図３】図１の動ロボットの側面図である。
【図４】本発明の一実施例による移動ロボットの主要構成間の制御関係を示すブロック図である。
【図５】本発明の一実施例による移動ロボットの制御方法を示すフローチャートである。
【図６】図５の制御方法についての説明に参照される図である。
【図７】図５の制御方法についての説明に参照される図である。
【図８】図５の制御方法についての説明に参照される図である。
【図９】図５の制御方法についての説明に参照される図である。
【図１０】本発明の一実施例による位置認識についての説明に参照される図である。
【図１１】本発明の一実施例による位置認識についての説明に参照される図である。
【図１２】本発明の一実施例による位置認識についての説明に参照される図である。
【図１３】本発明の一実施例による位置認識についての説明に参照される図である。
【図１４】本発明の一実施例によるブロック単位の特徴点抽出及びマッチングについての説明に参照される図である。
【図１５】本発明の一実施例によるブロック単位の特徴点抽出及びマッチングについての説明に参照される図である。
【図１６】本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。
【図１７】本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。
【図１８】本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。
【図１９】本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。
【図２０】本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。
【図２１】本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。
【発明を実施するための形態】
【００４１】
以下では、添付図面に基づいて本発明の実施例を詳細に説明する。しかし、本発明がこのような実施例に限定されるものではなく、多様な形態に変形可能であることは言うまでもない
一方、以下の説明で使われる構成要素に対する接尾辞“モジュール”及び“部”は単にこの明細書作成の容易性のみ考慮して付与するもので、そのものが特別に重要な意味又は役割を付与するものではない。よって、前記“モジュール”及び“部”は互いに混用されることもできる。
【００４２】
また、本明細書で、多様な要素を説明するために、第１、第２などの用語を用いることができるが、このような要素はこのような用語によって制限されない。このような用語は一要素を他の要素と区別するためにのみ用いられる。
【００４３】
本発明の一実施例による移動ロボット１００はコマなどを用いて自ら移動することができるロボットを意味し、家庭用お手伝いロボット及びロボット掃除機などであり得る。以下では、図面に基づき、移動ロボットの中で掃除機能を有するロボット掃除機を例として説明するが、本発明はこれに限定されない。
【００４４】
図１は本発明の一実施例による移動ロボットを示す斜視図、図２は図１の移動ロボットの平面図、図３は図１の移動ロボットの側面図である。
【００４５】
図１〜図３を参照すると、移動ロボット１００は一定領域を自ら走行することができる。移動ロボット１００は床を掃除する機能を遂行することができる。ここで言う床の掃除には、床のほこり（異物を含む）を吸入するか床を拭き掃除することが含まれる。
【００４６】
移動ロボット１００は本体１１０を含む。本体１１０は外観をなすキャビネットを含む。移動ロボット１００は、本体１１０に備えられた吸入ユニット１３０及び集塵筒１４０を含むことができる。移動ロボット１００は、移動ロボット周辺の環境についての情報を感知する映像獲得部１２０を含む。移動ロボット１００は、前記本体を移動させる走行部１６０を含む。移動ロボット１００は、移動ロボット１００の制御のための制御部１５０を含む。制御部１５０は本体１１０に備えられる。
【００４７】
走行部１６０は、移動ロボット１００の走行のためのホイールユニット１１１を含む。ホイールユニット１１１は本体１１０に備えられる。ホイールユニット１１１によって、移動ロボット１００は前後左右に移動するか回転することができる。制御部がホイールユニット１１１の駆動を制御することにより、移動ロボット１００は床を自律走行することができる。ホイールユニット１１１は、メインホイール１１１ａ及びサブホイール１１１ｂを含む。
【００４８】
メインホイール１１１ａは本体１１０の両側にそれぞれ備えられ、制御部の制御信号に応じて一方向又は他方向に回転できるように構成される。それぞれのメインホイール１１１ａは互いに独立的に駆動可能に構成されることができる。例えば、それぞれのメインホイール１１１ａは互いに異なるモーターによって駆動されることができる。
【００４９】
サブホイール１１１ｂはメインホイール１１１ａとともに本体１１０を支持し、メインホイール１１１ａによる移動ロボット１００の走行を補助するように構成される。このようなサブホイール１１１ｂは後述する吸入ユニット１３０にも備えられることができる。
【００５０】
吸入ユニット１３０は本体１１０の前方Ｆに突出した形態に配置されることができる。吸入ユニット１３０はほこりが含まれた空気を吸入するように備えられる。
【００５１】
吸入ユニット１３０は本体１１０の前方から左右両側方に突出した形態を有することができる。吸入ユニット１３０の前端部は本体１１０の一側から前方に離隔した位置に配置されることができる。吸入ユニット１３０の左右両端部は本体１１０から左右両側にそれぞれ離隔した位置に配置されることができる。
【００５２】
本体１１０は円形に形成され、吸入ユニット１３０の後端部両側が本体１１０から左右両側にそれぞれ突設されることにより、本体１１０と吸入ユニット１３０との間には空間、すなわち隙間が形成されることができる。前記空間は本体１１０の左右両端部と吸入ユニット１３０の左右両端部間の空間であり、移動ロボット１００の内側に陷沒した形態を有する。
【００５３】
吸入ユニット１３０は本体１１０に着脱可能に結合されることができる。吸入ユニット１３０が本体１１０から分離されれば、分離された吸入ユニット１３０を代替して雑巾モジュール（図示せず）が本体１１０に着脱可能に結合されることができる。
【００５４】
映像獲得部１２０は本体１１０に配置されることができる。映像獲得部１２０は本体１１０の前方Ｆに配置されることができる。映像獲得部１２０は本体１１０の上下方向に吸入ユニット１３０とオーバーラップ（ｏｖｅｒｌａｐ）するように配置されることができる。映像獲得部１２０は吸入ユニット１３０の上部に配置されることができる。
【００５５】
映像獲得部１２０は移動ロボット１００周辺の障害物を感知することができる。映像獲得部１２０は移動ロボット１００の最も前側に位置する吸入ユニット１３０が障害物とぶつからないように前方の障害物、地形地物などを感知することができる。映像獲得部１２０はこのような感知機能以外の後述する他のセンシング機能をさらに遂行することができる。
【００５６】
また、本発明の一実施例による移動ロボット１００の映像獲得部１２０は、本体１１０の一面に対して斜めに配置されて前方と上方を一緒に撮影するように構成されたカメラセンサーを含むことができる。すなわち、単一カメラセンサーで前方と上方を一緒に撮影することができる。この場合、制御部１５０はカメラが撮影して獲得した映像から前方映像と上方映像を画角を基準に分離することができる。分離された前方映像はビジョン（ｖｉｓｉｏｎ）基盤の事物認識に使われることができる。また、分離された上方映像はビジョン（ｖｉｓｉｏｎ）基盤の位置認識及び走行に使われることができる。
【００５７】
本発明による移動ロボット１００は周辺のイメージをイメージ基盤の既保存の情報と比較するか獲得されるイメージを比較することによって現在位置を認識するビジョンＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ、ＳＬＡＭ）を遂行することができる。
【００５８】
本体１１０には集塵筒収容部（図示せず）が備えられることができる。集塵筒収容部には吸入された空気中のほこりを分離して集塵する集塵筒１４０が着脱可能に結合される。集塵筒収容部は本体１１０の後方Ｒに形成されることができる。集塵筒１４０の一部は集塵筒収容部に収容されるが、集塵筒１４０の他の一部は本体１１０の後方Ｒに向かって突出するように形成されることができる。
【００５９】
集塵筒１４０にはほこりが含まれた空気が流入する入口（図示せず）とほこりが分離された空気が排出される出口（図示せず）が形成される。集塵筒収容部に集塵筒１４０が装着されるとき、集塵筒１４０の前記入口と前記出口は集塵筒収容部の内側壁に形成された第１開口（図示せず）及び第２開口（図示せず）とそれぞれ連通するように構成される。
【００６０】
吸入ユニット１３０の吸入口から前記第１開口まで空気を案内する吸入流路（図示せず）が備えられる。前記第２開口から外部に向かって開いている排気口（図示せず）まで空気を案内する排気流路（図示せず）が備えられる。
【００６１】
吸入ユニット１３０を介して流入したほこりが含まれた空気は本体１１０内部の前記吸気流路を通して集塵筒１４０に流入し、集塵筒１４０のフィルター又はサイクロンを経るにつれて空気とほこりが互いに分離される。ほこりは集塵筒１４０に集塵され、空気は集塵筒１４０から排出された後、本体１１０内部の前記排気流路を通して最終的に前記排気口を通して外部に排出される。
【００６２】
図４は本発明の一実施例による移動ロボットの主要構成間の制御関係を示すブロック図である。
【００６３】
図１〜図４を参照すると、移動ロボット１００は、本体１１０と、本体１１０周辺の映像を獲得する映像獲得部１２０とを含む。
【００６４】
移動ロボット１００は、本体１１０を移動させる走行部１６０を含む。走行部１６０は、本体１１０を移動させる少なくとも一つのホイールユニット１１１を含む。走行部１６０は、ホイールユニット１１１に連結されてホイールユニット１１１を回転させる駆動モーター（図示せず）を含む。
【００６５】
映像獲得部１２０は走行区域を撮影するものであり、カメラモジュールを含むことができる。前記カメラモジュールは、デジタルカメラを含むことができる。デジタルカメラは、少なくとも一つの光学レンズと、光学レンズを通過した光によって像が結ばれる多数の光ダイオード（ｐｈｏｔｏｄｉｏｄｅ、例えばｐｉｘｅｌ）を含んでなるイメージセンサー（例えば、ＣＭＯＳイメージセンサー）と、光ダイオードから出力された信号に基づいて映像を構成するデジタル信号処理器（ＤＳＰ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を含むことができる。デジタル信号処理器は静止映像はもちろんのこと、静止映像から構成されたフレームからなる動画を生成することも可能である。
【００６６】
このようなカメラは、撮影効率のために各部位別に多数が取り付けられることもできる。カメラによって撮像された映像は、該当空間に存在するほこり、髪の毛、床などの物質の種類認識、掃除遂行有無、又は掃除時点を確認するのに使える。
【００６７】
カメラは、移動ロボット１００の走行方向の前面に存在する障害物又は掃除領域の状況を撮影することができる。
【００６８】
本発明の一実施例によれば、前記映像獲得部１２０は、本体１１０の周辺を連続的に撮影して複数の映像を獲得することができ、獲得された複数の映像は保存部１０５に保存されることができる。
【００６９】
移動ロボット１００は、複数の映像を用いて空間認識、位置認識、障害物認識の正確性を高めるか、複数の映像の中で一つ以上の映像を選択して効果的なデータを使うことによって空間認識、位置認識、障害物認識の正確性を高めることができる。
【００７０】
また、移動ロボット１００は、移動ロボットの動作及び状態に係わる各種のデータをセンシングするセンサーを含むセンサー部１７０を含むことができる。
【００７１】
例えば、前記センサー部１７０は、前方の障害物を感知する障害物感知センサーを含むことができる。また、前記センサー部１７０は、走行区域内の床に段差の存在有無を感知する段差感知センサーと、床の映像を獲得する下部カメラセンサーとをさらに含むことができる。
【００７２】
前記障害物感知センサーは、赤外線センサー、超音波センサー、ＲＦセンサー、地磁気センサー、ＰＳＤ（Ｐｏｓｉｔｉｏｎ  Ｓｅｎｓｉｔｉｖｅ  Ｄｅｖｉｃｅ）センサーなどを含むことができる。
【００７３】
一方、前記障害物感知センサーに含まれるセンサーの位置と種類は移動ロボットの機種によって変わることができ、前記障害物感知センサーはもっと多様なセンサーを含むことができる。
【００７４】
一方、前記センサー部１７０は、本体１１０の駆動による移動ロボット１００の走行動作を感知し、動作情報を出力する走行感知センサーをさらに含むことができる。走行感知センサーとしては、ジャイロセンサー（Ｇｙｒｏ  Ｓｅｎｓｏｒ）、ホイールセンサー（Ｗｈｅｅｌ  Ｓｅｎｓｏｒ）、加速度センサー（Ａｃｃｅｌｅｒａｔｉｏｎ  Ｓｅｎｓｏｒ）などを使える。走行感知センサーの少なくとも一つで感知されるデータ又は走行感知センサーの少なくとも一つで感知されるデータに基づいて算出されるデータは走行距離計測（ｏｄｏｍｅｔｒｙ）情報を構成することができる。
【００７５】
ジャイロセンサーは、移動ロボット１００が運転モードによって動くとき、回転方向を感知し、回転角を検出する。ジャイロセンサーは、移動ロボット１００の角速度を検出し、角速度に比例する電圧値を出力する。制御部１５０は、ジャイロセンサーから出力される電圧値を用いて回転方向及び回転角を算出する。
【００７６】
ホイールセンサーはホイールユニット１１１に連結されてコマの回転数を感知する。ここで、ホイールセンサーはエンコーダ（Ｅｎｃｏｄｅｒ）であり得る。
【００７７】
制御部１４０は、回転数を用いて左右側コマの回転速度を演算することができる。また、制御部１４０は、左右側コマの回転数差を用いて回転角を演算することができる。
【００７８】
加速度センサーは、移動ロボット１００の速度変化、例えば出発、停止、方向転換、物体との衝突などによる移動ロボット１００の変化を感知する。
【００７９】
また、加速度センサーは、制御部１５０に内蔵されて移動ロボット１００の速度変化を感知することができる。
【００８０】
制御部１５０は、走行感知センサーから出力された動作情報に基づいて移動ロボット１００の位置変化を算出することができる。このような位置は映像情報を用いた絶対位置に対応する相対位置となる。移動ロボットは、このような相対位置認識によって映像情報と障害物情報を用いた位置認識の性能を向上させることができる。
【００８１】
一方、移動ロボット１００は、充電可能なバッテリーを備えて移動ロボット内に電源を供給する電源供給部（図示せず）を含むことができる。
【００８２】
前記電源供給部は、移動ロボット１００の各構成要素に駆動電源と動作電源を供給し、電源残量が足りなければ、充電台（図示せず）で電源を受けて充電されることができる。
【００８３】
移動ロボット１００は、バッテリーの充電状態を感知し、感知結果を制御部１５０に伝送するバッテリー感知部（図示せず）をさらに含むことができる。バッテリーはバッテリー感知部と連結されることにより、バッテリーの残量及び充電状態が制御部１５０に伝達される。バッテリー残量は出力部（１８０）のディスプレイ１８２に表示されることができる。
【００８４】
また、移動ロボット１００は、オン／オフ（Ｏｎ／Ｏｆｆ）又は各種の命令を入力することができる入力部１２５を含む。入力部１２５は、ボタン、ダイヤル、タッチスクリーンなどを含むことができる。入力部１２５を介して移動ロボット１００の作動全般に必要な各種の制御命令を受けることができる。
【００８５】
また、移動ロボット１００は出力部１８０を含み、予約情報、バッテリー状態、動作モード、動作状態、エラー状態などをイメージで表示するか音響で出力することができる。
【００８６】
出力部１８０は、オーディオ信号を出力する音響出力部１８１を含むことができる。音響出力部１８１は、制御部１５０の制御によって、警告音、動作モード、動作状態、エラー状態などのお知らせメッセージなどを音響として出力することができる。音響出力部１８１は、制御部１５０からの電気信号をオーディオ信号に変換して出力することができる。このために、スピーカーなどを備えることができる。
【００８７】
また、出力部１８０は、予約情報、バッテリー状態、動作モード、動作状態、エラー状態などをイメージで表示するディスプレイ１８２をさらに含むことができる。
【００８８】
図４を参照すると、移動ロボット１００は、現在位置を認識するなど、各種情報を処理して判断する制御部１５０、及び各種のデータを保存する保存部１３０を含む。また、移動ロボット１００は、外部端末機とデータを送受信する通信部１９０をさらに含むことができる。
【００８９】
外部端末機は移動ロボット１００を制御するためのアプリケーションを備え、アプリケーションの実行によって移動ロボット１００が掃除する走行区域に対するマップを表示し、マップ上に特定領域を掃除するように領域を指定することができる。外部端末機は、マップ設定のためのアプリケーション（ａｐｐｌｉｃａｔｉｏｎ）が組み込まれたリモコン、ＰＤＡ、ラップトップ（ｌａｐｔｏｐ）、スマートフォン、タブレットなどを例として挙げることができる。
【００９０】
外部端末機は、移動ロボット１００と通信して、マップとともに移動ロボットの現在位置を表示することができ、複数の領域についての情報が表示されることができる。また、外部端末機は、移動ロボットの走行につれてその位置を更新して表示する。
【００９１】
制御部１５０は、移動ロボット１００を構成する映像獲得部１２０、入力部１２５、走行部１６０、吸入ユニット１３０などを制御して移動ロボット１００の動作全般を制御する。
【００９２】
制御部１５０は、入力部１２５のマイクを介して受信される使用者の音声入力信号を処理して音声認識過程を遂行することができる。実施例によって、移動ロボット１００は、制御部１５０の内部又は外部に音声認識を行う音声認識モジュールを備えることができる。
【００９３】
実施例によって、簡単な音声認識は移動ロボット１００が自ら遂行し、自然語処理などの高次元の音声認識はサーバー７０で遂行されることができる。
【００９４】
保存部１０５は移動ロボット１００の制御に必要な各種情報を記録するものであり、揮発性又は非揮発性記録媒体を含むことができる。記録媒体はマイクロプロセッサ（ｍｉｃｒｏ  ｐｒｏｃｅｓｓｏｒ）によって読められるデータを保存したものであり、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）、ＳＤＤ（Ｓｉｌｉｃｏｎ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク、光データ保存装置などを含むことができる。
【００９５】
また、保存部１０５には走行区域に対するマップ（Ｍａｐ）が保存されることができる。マップは移動ロボット１００と有線通信又は無線通信を介して情報を交換することができる外部端末機、サーバーなどによって入力されたものでも、移動ロボット１００が自ら学習して生成したものでもあり得る。
【００９６】
マップには走行区域内の部屋の位置が表示されることができる。また、移動ロボット１００の現在位置がマップ上に表示されることができ、マップ上での移動ロボット１００の現在の位置は走行過程で更新されることができる。外部端末機は、保存部１０５に保存されたマップと同一のマップを保存する。
【００９７】
前記保存部１０５は、掃除履歴情報を保存することができる。このような掃除履歴情報は掃除を行う度に生成されることができる。
【００９８】
前記保存部１０５に保存される走行区域に対するマップ（Ｍａｐ）は走行区域の所定情報を所定形式で保存したデータであり、掃除中の走行に使われるナビゲーションマップ（Ｎａｖｉｇａｔｉｏｎ  ｍａｐ）、位置認識に使われるＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）マップ、障害物などにぶつかれば該当情報を保存して学習掃除時に使用する学習マップ、全域位置認識に使われる全域位置マップ、認識された障害物についての情報が記録される障害物認識マップなどであり得る。
【００９９】
前記マップ（Ｍａｐ）は複数のノードを含むノードマップを意味することができる。ここで、ノード（Ｎｏｄｅ）とは、走行区域内のいずれか一位置である地点に対応するマップ上のいずれか一位置を示すデータを意味することができ、グラフ（ｇｒａｐｈ）基盤のＳＬＡＭでノードはロボットのポーズ（ｐｏｓｅ）を意味することができる。また、ポーズ（ｐｏｓｅ）は座標系上の位置座標情報（Ｘ、Ｙ）と方向情報（θ）を含むことができる。
【０１００】
前記ノードマップは、各ノードに対応する各種のデータであるノード情報を含むことができる。例えば、ノード情報は、位置情報、ノードに対応する地点で獲得した映像情報などを含むことができる。位置情報（Ｘ、Ｙ、θ）は、対応するノードでのロボットのＸ座標（Ｘ）、ロボットのＹ座標（Ｙ）、及び方向（Ｄｉｒｅｃｔｉｏｎ）情報（θ）を含むことができる。方向情報（θ）は角度情報などとも名付けられることができる。
【０１０１】
一方、上述したように、用途別に前記保存部１３０にマップを区分して保存及び管理することができるが、マップが用途別に明確に区分されないこともある。例えば、少なくとも２以上の用途に使えるように単一マップに複数の情報を保存することもできる。
【０１０２】
制御部１５０は、走行制御モジュール１５１、地図生成モジュール１５２、位置認識モジュール１５３及び障害物認識モジュール１５４を含むことができる。
【０１０３】
図１〜図４を参照すると、走行制御モジュール１５１は移動ロボット１００の走行を制御するものであり、走行設定によって走行部１６０の駆動を制御する。また、走行制御モジュール１５１は、走行部１６０の動作に基づいて移動ロボット１００の走行経路を把握することができる。例えば、走行制御モジュール１５１は、ホイールユニット１１１の回転速度に基づいて移動ロボット１００の現在又は過去の移動速度、走行した距離などを把握することができ、このように把握された移動ロボット１００の走行情報に基づいて、マップ上で移動ロボット１００の位置が更新されることができる。
【０１０４】
地図生成モジュール１５２は、走行区域のマップを生成することができる。地図生成モジュール１５２は、映像獲得部１２０を介して獲得した映像を処理してマップを作成することができる。すなわち、掃除領域と対応する掃除マップを作成することができる。
【０１０５】
また、地図生成モジュール１５２は、各位置で映像獲得部１２０を介して獲得した映像を処理し、マップに関連させて全域位置を認識することができる。
【０１０６】
位置認識モジュール１５３は、現在位置を推定して認識する。位置認識モジュール１５３は、映像獲得部１２０の映像情報を用いて地図生成モジュール１５２と関連して位置を把握することにより、移動ロボット１００の位置が急に変更される場合にも現在位置を推定して認識することができる。
【０１０７】
また、位置認識モジュール１５３は現在位置する領域の属性を認識することができる。すなわち、位置認識モジュール１５３は空間を認識することができる。
【０１０８】
移動ロボット１００は、位置認識モジュール１５３を介して連続的な走行中に位置認識が可能であり、また位置認識モジュール１５３なしに地図生成モジュール１５２及び障害物認識モジュール１５４を介してマップを学習し、現在位置などを推定することができる。
【０１０９】
移動ロボット１００が走行するうち、映像獲得部１２０は移動ロボット１００の周辺の映像を獲得する。以下、映像獲得部１２０によって獲得された映像を‘獲得映像’と定義する。
【０１１０】
獲得映像には、天井に位置する照明、境界（ｅｄｇｅ）、コーナー（ｃｏｒｎｅｒ）、染み（ｂｌｏｂ）、屈曲（ｒｉｄｇｅ）などのさまざまな特徴（ｆｅａｔｕｒｅ）が含まれる。
【０１１１】
地図生成モジュール１５２は獲得映像のそれぞれから特徴を検出し、各特徴点に基づいてディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を算出する。ディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）は、特徴点を示すための所定形式のデータを意味し、ディスクリプタ間の距離又は類似度を算出することができる形式の数学的データを意味する。例えば、ディスクリプタはｎ次元ベクター（ｎは自然数）又は行列形式のデータであり得る。
【０１１２】
また、本発明の一実施例によれば、獲得映像を複数のブロックに分割し、ブロック単位でも特徴を検出することができる。また、このときに検出された特徴点に基づいてもディスクリプタを算出することができる。
【０１１３】
以下で説明する獲得映像で検出された特徴及びディスクリプタは獲得映像を分割したブロック単位の映像で検出された特徴とこれに基づくディスクリプタを含むことができる。
【０１１４】
地図生成モジュール１５２は、各位置の獲得映像によって得たディスクリプタ情報に基づいて、獲得映像ごとに少なくとも一つのディスクリプタを所定の下位分類規則によって複数の群に分類し、所定の下位代表規則によって同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することができる。
【０１１５】
他の例で、室（ｒｏｏｍ）のように所定区域内の獲得映像から集まった全てのディスクリプタを所定の下位分類規則によって複数の群に分類し、前記所定の下位代表規則によって同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することもできる。
【０１１６】
地図生成モジュール１５２は、このような過程によって各位置の特徴分布を求めることができる。各位置特徴分布はヒストグラム又はｎ次元ベクターで表現されることができる。さらに他の例で、地図生成モジュール１５２は、所定の下位分類規則及び所定の下位代表規則に従わず、各特徴点から算出されたディスクリプタに基づいて未知の現在位置を推定することができる。
【０１１７】
また、位置跳躍などの理由で移動ロボット１００の現在位置が未知の状態になった場合、既保存のディスクリプタ又は下位代表ディスクリプタなどのデータに基づいて現在位置を推定することができる。
【０１１８】
移動ロボット１００は、未知の現在位置で映像獲得部１２０を介して獲得映像を獲得する。映像によって、天井に位置する照明、境界（ｅｄｇｅ）、コーナー（ｃｏｒｎｅｒ）、染み（ｂｌｏｂ）、屈曲（ｒｉｄｇｅ）などのさまざまな特徴（ｆｅａｔｕｒｅ）が確認される。
【０１１９】
位置認識モジュール１５３は、未知の現在位置の獲得映像によって得た少なくとも一つのディスクリプタ情報に基づいて、所定の下位変換規則によって比較対象となる位置情報（例えば、各位置の特徴分布）と比較可能な情報（下位認識特徴分布）に変換する。
【０１２０】
所定の下位比較規則によって、それぞれの位置特徴分布をそれぞれの認識特徴分布と比較してそれぞれの類似度を算出することができる。それぞれの位置にあたる前記位置別に類似度（確率）を算出し、その中で最大の確率が算出される位置を現在位置に決定することができる。このような類似度算出はブロック段位で遂行されることができる。
【０１２１】
このように、制御部１５０は、走行区域を区分して複数の領域から構成されたマップを生成するか、既保存のマップに基づいて本体１１０の現在位置を認識することができる。
【０１２２】
制御部１５０は、マップが生成されれば、生成されたマップを通信部１９０を介して外部端末機、サーバーなどに伝送することができる。また、制御部１５０は、前述したように、外部端末機、サーバーなどからマップが受信されれば、保存部１０５に保存することができる。
【０１２３】
ここで、マップは、掃除領域を複数の領域に区分し、複数の領域を連結する連結通路を含み、領域内の障害物についての情報を含むことができる。
【０１２４】
制御部１５０は、掃除命令が入力されれば、マップ上の位置と移動ロボットの現在位置が一致するかを判断する。掃除命令は、リモコン、入力部又は外部端末機から入力されることができる。
【０１２５】
制御部１５０は、現在位置がマップ上の位置と一致しない場合、又は現在位置を確認することができない場合、現在位置を認識して移動ロボット１００の現在位置を復旧した後、現在位置に基づいて指定領域に移動するように走行部１６０を制御することができる。
【０１２６】
現在位置がマップ上の位置と一致しない場合又は現在位置を確認することができない場合、位置認識モジュール１５３は、映像獲得部１２０から入力される獲得映像を分析し、マップに基づいて現在位置を推定することができる。また、障害物認識モジュール１５４又は地図生成モジュール１５２も同様な方式で現在位置を認識することができる。
【０１２７】
位置を認識して移動ロボット１００の現在位置を復旧した後、走行制御モジュール１５１は、現在位置から指定領域に走行経路を算出し、走行部１６０を制御して指定領域に移動する。
【０１２８】
サーバーから掃除パターン情報を受信する場合、走行制御モジュール１５１は、受信した掃除パターン情報によって、全体走行区域を複数の領域に分け、一つ以上の領域を指定領域に設定することができる。
【０１２９】
また、走行制御モジュール１５１は、受信した掃除パターン情報によって走行経路を算出し、走行経路に沿って走行して掃除を行うことができる。
【０１３０】
制御部１５０は、設定された指定領域に対する掃除が完了すれば、掃除記録を保存部１０５に保存することができる。
【０１３１】
また、制御部１５０は、通信部１９０を介して移動ロボット１００の動作状態又は掃除状態を所定の周期で外部端末機及びサーバーに伝送することができる。
【０１３２】
それにより、外部端末機は、受信されるデータに基づいて、実行中のアプリケーションの画面上にマップとともに移動ロボットの位置を表示し、また掃除状態についての情報を出力する。
【０１３３】
本発明の実施例による移動ロボット１００は、一方向に障害物又は壁面が感知されるまで移動していて、障害物認識モジュール１５４が障害物を認識すれば、認識された障害物の属性によって直進、回転などの走行パターンを決定することができる。
【０１３４】
一方、制御部１５０は、認識された障害物の属性に基づいて他のパターンで回避走行を遂行するように制御することができる。制御部１５０は、非危険障害物（一般障害物）、危険障害物、移動可能な障害物などの障害物の属性によって他のパターンで回避走行するように制御することができる。
【０１３５】
例えば、制御部１５０は、危険障害物はもっと長い距離の安全距離を確保した状態で迂回して回避するように制御することができる。
【０１３６】
また、制御部１５０は、移動可能な障害物の場合、所定の待機時間後にも障害物が移動しなければ、一般障害物に対応する回避走行又は危険障害物に対応する回避走行を遂行するように制御することができる。もしくは、制御部１５０は、移動可能な障害物に対応する回避走行パターンが別に設定された場合には、これによって走行するように制御することができる。
【０１３７】
本発明の実施例による移動ロボット１００は、マシンラーニング（ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ）基盤の障害物認識及び回避を遂行することができる。
【０１３８】
前記制御部１５０は、入力映像からマシンラーニング（ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ）で既に学習された障害物を認識する障害物認識モジュール１５４と、前記認識された障害物の属性に基づいて前記走行部１６０の駆動を制御する走行制御モジュール１５１とを含むことができる。
【０１３９】
一方、図４では複数のモジュール１５１、１５２、１５３、１５４が制御部１５０内に別に備えられる例を示したが、本発明はこれに限定されない。
【０１４０】
例えば、位置認識モジュール１５３と障害物認識モジュール１５４は一つの認識器として統合されて単一認識モジュール１５５に構成されることができる。この場合、マシンラーニングなどの学習技法を用いて認識器を学習させ、学習された認識器は以後に入力されるデータを分類して領域、事物などの属性を認識することができる。
【０１４１】
実施例によって、地図生成モジュール１５２、位置認識モジュール１５３、及び障害物認識モジュール１５４が単一統合モジュールに構成されることもできる。
【０１４２】
以下では、位置認識モジュール１５３と障害物認識モジュール１５４は単一認識器に統合されて単一認識モジュール１５５に構成される実施例を中心に説明するが、位置認識モジュール１５３と障害物認識モジュール１５４がそれぞれ備えられる場合にも同様な方式で動作することができる。
【０１４３】
本発明の実施例による移動ロボット１００は、マシンラーニングで事物、空間の属性が学習された認識モジュール１５５を含むことができる。
【０１４４】
マシンラーニングはコンピュータにヒトが直接ロジッグ（Ｌｏｇｉｃ）を指示しなくてもデータによってコンピュータが学習し、これによりコンピュータが分かって問題を解決するようにすることを意味する。
【０１４５】
ディープラーニング（Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）は人工知能（ａｒｔｉｆｉｃｉａｌ  ｉｎｔｅｌｌｉｇｅｎｃｅ）を構成するための人工神経網（Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ：ＡＮＮ）に基づいてコンピュータにヒトの考え方を教える方法であり、ヒトが教えなくてもコンピュータが自らヒトのように学習することができる人工知能技術である。
【０１４６】
前記人工神経網（ＡＮＮ）はソフトウェア形態に具現されるか、チップ（ｃｈｉｐ）などのハードウェア形態に具現されることができる。
【０１４７】
認識モジュール１５５は、空間の属性、障害物などの事物の属性が学習されたソフトウェア又はハードウェア形態の人工神経網（ＡＮＮ）を含むことができる。
【０１４８】
例えば、認識モジュール１５５は、ディープラーニング（Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）で学習されたＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）、ＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）、ＤＢＮ（Ｄｅｅｐ  Ｂｅｌｉｅｆ  Ｎｅｔｗｏｒｋ）などの深層神経網（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＤＮＮ）を含むことができる。
【０１４９】
障害物認識モジュール１５５は、前記深層神経網（ＤＮＮ）に含まれたノード間の加重値（ｗｅｉｇｈｔ）に基づいて入力される映像データに含まれる空間、事物の属性を判別することができる。
【０１５０】
一方、前記走行制御モジュール１５１は、前記認識された空間、障害物の属性に基づいて前記走行部１６０の駆動を制御することができる。
【０１５１】
一方、認識モジュール１５５は、マシンラーニング（ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ）で既に学習されたデータに基づいて前記選択された特定時点映像に含まれる空間、障害物の属性を認識することができる。
【０１５２】
一方、保存部１０５には、空間、事物属性判別のための入力データ及び前記深層神経網（ＤＮＮ）を学習するためのデータが保存されることができる。
【０１５３】
保存部１０５には、映像獲得部１２０が獲得した原本映像と所定領域が抽出された抽出映像が保存されることができる。
【０１５４】
また、実施例によって、保存部１０５には、前記深層神経網（ＤＮＮ）構造を成すウェイト（ｗｅｉｇｈｔ）、バイアス（ｂｉａｓ）が保存されることができる。
【０１５５】
もしくは、実施例によって、前記深層神経網構造を成すウェイト（ｗｅｉｇｈｔ）、バイアス（ｂｉａｓ）は認識モジュール１５５の組み込みメモリ（ｅｍｂｅｄｄｅｄ  ｍｅｍｏｒｙ）に保存されることができる。
【０１５６】
一方、前記認識モジュール１５５は、前記映像獲得部１２０が映像を獲得するか映像の一部領域を抽出する度に所定映像をトレーニング（ｔｒａｉｎｉｎｇ）データとして使用して学習過程を遂行するか、所定個数以上の映像が獲得された後、学習過程を遂行することができる。
【０１５７】
もしくは、移動ロボット１００は、通信部１９０を介して前記所定サーバーからマシンラーニングに係わるデータを受信することができる。
【０１５８】
この場合、移動ロボット１００は、前記所定サーバーから受信されたマシンラーニングに係わるデータに基づいて認識モジュール１５５をアップデート（ｕｐｄａｔｅ）することができる。
【０１５９】
図５は本発明の一実施例による移動ロボットの制御方法を示すフローチャートで、マップ生成過程を示すフローチャートであり、図６〜図９は図５の制御方法についての説明に参照される図である。
【０１６０】
図６及び図７は、図５の走行及び情報獲得過程（Ｓ５０１）、ノード生成過程（Ｓ５０２）、ノードマップ生成過程（Ｓ５０３）、境界生成過程（Ｓ５０４）、境界マップ生成過程（Ｓ５０５）及びディスクリプタ生成過程（Ｓ５０６）を例示的に示す概念図である。
【０１６１】
図６には、前記過程（Ｓ５０１）で獲得した映像と映像内の複数の特徴点ｆ１、ｆ２、ｆ３、ｆ４、ｆ５、ｆ６、ｆ７が示され、前記過程（Ｓ５０６）で複数の特徴点ｆ１、ｆ２、ｆ３、．．．、ｆ７にそれぞれ対応するｎ次元ベクターであるディスクリプタ
2020161142.tif 000003
を生成させる図式が示される。
【０１６２】
図６及び図７を参照すると、情報獲得過程（Ｓ５０１）で、移動ロボット１００が走行するうちに映像獲得部１２０は各地点で映像を獲得する。例えば、映像獲得部１２０は、移動ロボット１００の上側に向けて撮影して天井などの映像を獲得することができる。
【０１６３】
また、情報獲得過程（Ｓ５０１）で、移動ロボット１００が走行するうちにセンサー部１７０、映像獲得部１２０、その他の公知の手段を用いて走行障害要素を感知することができる。
【０１６４】
移動ロボット１００は、各地点で走行障害要素を感知することができる。例えば、移動ロボットは特定地点で走行障害要素の一つである壁体の外側面を感知することができる。
【０１６５】
図６及び図７を参照すると、ノード生成過程（Ｓ５０２）で、移動ロボット１００は、各地点に対応するノードを生成する。ノードＮａ１８、Ｎａ１９、Ｎａ２０に対応する座標情報は移動ロボット１００が測定した走行変位に基づいて生成されることができる。
【０１６６】
走行変位は、移動ロボットの移動方向と移動距離を含む概念である。走行区域の床面をＸ軸及びＹ軸が直交する平面上にあると仮定すると、走行変位は
2020161142.tif 000004
で表現することができる。
2020161142.tif 000005
はそれぞれＸ軸及びＹ軸方向変位を意味し、θは回転角度を意味する。
【０１６７】
制御部１５０は、走行部１６０の動作に基づいて移動ロボット１００の走行変位を測定することができる。例えば、走行制御モジュール１５１はホイールユニット１１１の回転速度に基づいて移動ロボット１００の現在又は過去の移動速度、走行した距離などを測定することができ、ホイールユニット１１１の回転方向によって現在又は過去の方向転換過程も測定することができる。
【０１６８】
また、制御部１５０は、センサー部１７０でセンシングされるデータを用いて前記走行変位を測定することも可能である。
【０１６９】
図６及び図７を参照すると、境界情報生成過程（Ｓ５０４）で、移動ロボット１００は、走行障害要素に対応する境界情報ｂ２０を生成する。境界情報生成過程（Ｓ５０４）で、移動ロボット１００は、各走行障害要素にそれぞれ対応する各境界情報を生成する。複数の走行障害要素に複数の境界情報が一対一で対応する。境界情報ｂ２０は対応するノードの座標情報とセンサー部１７０が測定した距離値に基づいて生成されることができる。
【０１７０】
図６及び図７を参照すると、ノードマップ生成過程（Ｓ５０３）及び境界マップ生成過程（Ｓ５０５）は同時に進行される。ノードマップ生成過程（Ｓ５０３）で、複数のノードＮａ１８、Ｎａ１９、Ｎａ２０などを含むノードマップが生成される。境界マップ生成過程（Ｓ５０５）で、複数の境界情報（ｂ２０など）を含む境界マップＢａが生成される。ノードマップ生成過程（Ｓ５０３）及び境界マップ生成過程（Ｓ５０５）で、ノードマップ及び境界マップＢａを含むマップＭａが生成される。図６には、ノードマップ生成過程（Ｓ５０３）及び境界マップ生成過程（Ｓ５０５）を経て生成されているマップＭａを示す。
【０１７１】
図６に示した映像には、天井に位置する照明、境界（ｅｄｇｅ）、コーナー（ｃｏｒｎｅｒ）、染み（ｂｌｏｂ）、屈曲（ｒｉｄｇｅ）などによるさまざまな特徴点が確認される。移動ロボット１００は、映像から特徴点を抽出する。コンピュータビジョン（Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ）技術分野で映像から特徴点を抽出する多様な方法（Ｆｅａｔｕｒｅ  Ｄｅｔｅｃｔｉｏｎ）がよく知られている。これらの特徴点の抽出に適した様々な特徴検出器（ｆｅａｔｕｒｅ  ｄｅｔｅｃｔｏｒ）が知られている。例えば、Ｃａｎｎｙ、Ｓｏｂｅｌ、Ｈａｒｒｉｓ＆Ｓｔｅｐｈｅｎｓ／Ｐｌｅｓｓｅｙ、ＳＵＳＡＮ、Ｓｈｉ＆Ｔｏｍａｓｉ、Ｌｅｖｅｌ  ｃｕｒｖｅ  ｃｕｒｖａｔｕｒｅ、ＦＡＳＴ、Ｌａｐｌａｃｉａｎ  ｏｆ  Ｇａｕｓｓｉａｎ、Ｄｉｆｆｅｒｅｎｃｅ  ｏｆ  Ｇａｕｓｓｉａｎｓ、Ｄｅｔｅｒｍｉｎａｎｔ  ｏｆ  Ｈｅｓｓｉａｎ、ＭＳＥＲ、ＰＣＢＲ、Ｇｒｅｙ−ｌｅｖｅｌ  ｂｌｏｂｓ検出器などがある。
【０１７２】
また、このような特徴点抽出はポイント（ｐｏｉｎｔ）に基づいて遂行されることができ、ブロック段位でも遂行されることができる。
【０１７３】
図６を参照すると、ディスクリプタ生成過程（Ｓ５０６）で、獲得された映像から抽出された複数の特徴点ｆ１、ｆ２、ｆ３、．．．、ｆ７に基づいてディスクリプタ
2020161142.tif 000006
を生成する。前記ディスクリプタ生成過程（Ｓ５０６）で、獲得された複数の映像から抽出された複数の特徴点ｆ１、ｆ２、ｆ３、．．．、ｆｍに基づいてディスクリプタ
2020161142.tif 000007
を生成する（ここで、ｍは自然数）。複数の特徴点ｆ１、ｆ２、ｆ３、．．．、ｆｍに複数のディスクリプタ
2020161142.tif 000008
は一対一で対応する。
【０１７４】
2020161142.tif 000009
はｎ次元ベクターを意味する。
2020161142.tif 000010
の中括弧｛｝内のｆ１（１）、ｆ１（２）、ｆ１（３）、．．．、ｆ１（ｎ）は
2020161142.tif 000011
を成す各次元の数値を意味する。残りの
2020161142.tif 000012
に対する表記もこのような方式であるので、説明を省略する。
【０１７５】
特徴検出のために、ＳＩＦＴ（Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）技法を用いて、複数の特徴点ｆ１、ｆ２、ｆ３、．．．、ｆｍに対応する複数のディスクリプタ
2020161142.tif 000013
を生成することができる。
【０１７６】
例えば、ＳＩＦＴ技法を適用して、映像で識別の容易な特徴点ｆ１、ｆ２、ｆ３、ｆ４、ｆ５、ｆ６、ｆ７を選択した後、各特徴点ｆ１、ｆ２、ｆ３、ｆ４、ｆ５、ｆ６、ｆ７周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性（明るさ変化の方向及び変化の急激な程度）に基づいてｎ次元ベクターであるディスクリプタを生成することができる。ここで、特徴点の各明るさ変化の方向を各次元と見なし、各明るさ変化の方向に対する変化の急激な程度を各次元に対する数値にするｎ次元ベクター（ディスクリプタ）を生成することができる。ＳＩＦＴ技法は、撮影対象のスケール（ｓｃａｌｅ）、回転、明るさ変化に対して変わらない特徴を検出することができるので、同じ領域を移動ロボット１００の姿勢を変えながら撮影しても変わらない（すなわち、回転不変（Ｒｏｔａｔｉｏｎ−ｉｎｖａｒｉａｎｔ））特徴を検出することができる。もちろん、これに限定されず、他の多様な技法（例えば、ＨＯＧ：Ｈｉｓｔｏｇｒａｍ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔ、Ｈａａｒ  ｆｅａｔｕｒｅ、Ｆｅｍｓ、ＬＢＰ：Ｌｏｃａｌ  Ｂｉｎａｒｙ  Ｐａｔｔｅｒｎ、ＭＣＴ：Ｍｏｄｉｆｉｅｄ  Ｃｅｎｓｕｓ  Ｔｒａｎｓｆｏｒｍ）を適用することも可能である。
【０１７７】
一方、ブロック単位でも次元ベクターであるディスクリプタを生成することができる。例えば、各ブロックの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性（明るさ変化の方向及び変化の急激な程度）に基づいてｎ次元ディスクリプタを生成することができる。
【０１７８】
図８は、移動ロボットが移動しながら生成する複数のノードＮ及びノード間の変位Ｃを示す概念図である。
【０１７９】
図８を参照すると、原点ノードＯが設定された状態で走行変位Ｃ１が測定されてノードＮ１の情報が生成される。以後に測定された走行変位Ｃ２の時点となるノードＮ１の座標情報に前記走行変位Ｃ２を加えて、前記走行変位Ｃ２の終点となるノードＮ２の座標情報を生成することができる。ノードＮ２の情報が生成された状態で走行変位Ｃ３が測定されてノードＮ３の情報が生成される。このように、順次測定される走行変位Ｃ１、Ｃ２、Ｃ３、…、Ｃ１６に基づいてノードＮ１、Ｎ２、Ｎ３、…、Ｎ１６の情報が順次生成される。
【０１８０】
いずれか一つの走行変位Ｃ１５の時点となるノードＣ１５を該当走行変位Ｃ１５の終点となるノード１６の‘基礎ノード’に定義すると、ループ変位（Ｌｏｏｐ  Ｃｏｎｓｔｒａｉｎｔ、ＬＣ）はいずれか一つのノードＮ１５及び前記いずれか一つのノードＮ１５の前記‘基礎ノードＮ１４ではない’他の隣接したノードＮ５間の変位が測定された値を意味する。
【０１８１】
一例として、いずれか一つのノードＮ１５に対応する獲得映像情報と他の隣接したノードＮ５に対応する獲得映像情報が互いに比較されることにより、二つのノードＮ１５、Ｎ５間のループ変位ＬＣが測定されることができる。他の例で、いずれか一つのノードＮ１５の周辺環境との距離情報と他の隣接したノードＮ５の周辺環境との距離情報が互いに比較されることにより、二つのノードＮ１５、Ｎ５間のループ変位ＬＣが測定されることができる。図８には、ノードＮ５とノードＮ１５との間で測定されたループ変位ＬＣ１、及びノードＮ４とノードＮ１６との間で測定されたループ変位ＬＣ２が例示的に示されている。
【０１８２】
前記走行変位に基づいて生成されたいずれか一つのノードＮ５の情報は、ノード座標情報及び該当ノードに対応する映像情報を含むことができる。ノードＮ５に隣接する他のノードＮ１５があるとき、ノードＮ１５に対応する映像情報をノードＮ５に対応する映像情報と比較すると、二つのノードＮ５、Ｎ１５間のループ変位ＬＣ１が測定される。‘ループ変位ＬＣ１’と‘既保存の二つのノードＮ５、Ｎ１５の座標情報によって算出される変位’が互いに異なる場合、ノード座標情報に誤差があると見なし、二つのノードＮ５、Ｎ１５の座標情報を更新することができる。この場合、二つのノードＮ５、Ｎ１５と連結された他のノードＮ６、Ｎ７、Ｎ８、Ｎ９、Ｎ１０、Ｎ１１、Ｎ１２、Ｎ１３、Ｎ１４の座標情報も更新されることができる。また、一度更新されたノード座標情報も続いて前記過程を経て繰り返し更新されることができる。
【０１８３】
より具体的に説明すれば次のようである。ループ変位ＬＣが測定された二つのノードＮをそれぞれ第１ループノード及び第２ループノードと定義する。既保存の第１ループノードのノード座標情報及び第２ループノードのノード座標情報によって算出される‘算出変位（Δｘ１、Δｙ１、θ１）’（座標値の差によって算出される）とループ変位ＬＣ（Δｘ２、Δｙ２、θ２）間の差（Δｘ１−Δｘ２、Δｙ１−Δｙ２、θ１−θ２）が発生し得る。前記差が発生すれば、前記差を誤差と見なしてノード座標情報を更新することができる。ここで、ループ変位ＬＣが前記算出変位より正確な値であるという仮定の下でノード座標情報を更新する。
【０１８４】
ノード座標情報を更新する場合、前記第１ループノード及び第２ループノードのノード座標情報のみ更新することもできるが、前記誤差の発生は走行変位の誤差が累積して発生したものなので、前記誤差を分散させて他のノードのノード座標情報も更新するように設定することができる。例えば、前記第１ループノードと第２ループノードとの間に前記走行変位によって生成された全てのノードに、前記誤差値を分散させてノード座標情報を更新することができる。図８を参照すると、ループ変位ＬＣ１が測定され、前記誤差が算出された場合、第１ループノードＮ１５と第２ループノードＮ５間のノードＮ６〜Ｎ１４に前記誤差を分散させることにより、ノードＮ５〜Ｎ１５のノード座標情報が全て少しずつ更新されることができる。もちろん、このような誤差分散を拡大させて、以外のノードＮ１〜Ｎ４のノード座標情報を一緒に更新することもできるというのは言うまでもない
図９は第１マップＭａの一例を示す概念図で、生成されたノードマップを含んでいる図である。図９には、図５によるマップ生成過程を経て生成されたいずれか一つのマップＭａの一例が示される。前記マップＭａは、ノードマップ及び境界マップＢａを含む。前記ノードマップは、複数の第１ノードＮａ１〜Ｎａ９９を含む。
【０１８５】
図９を参照すると、いずれか一つのマップＭａはノードマップＮａ１、Ｎａ２、…、Ｎａ９９及び境界マップＢａを含むことができる。ノードマップは一つのマップ上のさまざまな情報の中で複数のノードからなる情報を指称するものであり、境界マップは一つのマップ上のさまざまな情報の中で複数の境界情報からなる情報を指称するものである。ノードマップと境界マップは前記マップの構成要素であり、ノードマップの生成過程（Ｓ５０２、Ｓ５０３）と境界マップの生成過程（Ｓ５０４、Ｓ５０５）は同時に進む。例えば、境界情報は、特定地点から離れた走行障害要素の距離を測定した後、前記特定地点に対応する既保存のノードの座標情報を基準に生成されることができる。例えば、ノードのノード座標情報は特定の走行障害要素から離れた特定地点の距離を測定した後、前記特定障害要素に対応する既保存の境界情報を基準に生成することができる。ノード及び境界情報は、既保存のいずれか一つに対する他の一つの相対的座標に基づいて他の一つがマップ上に生成されることができる。
【０１８６】
また、前記マップは前記過程（Ｓ５０６）で生成された映像情報を含むことができる。複数の映像情報は複数のノードに一対一で対応する。特定の映像情報は特定のノードに対応する。
【０１８７】
図１０〜図１３は本発明の一実施例による位置認識についての説明に参照される図である。
【０１８８】
図１０に基づいて認識映像の獲得過程及び認識ディスクリプタの生成過程を詳細に説明すれば次のようである。
【０１８９】
位置ジャンピング状況の発生によって、移動ロボット１００の現在地点が未知（Ｕｎｋｎｏｗｎ）の状態になる場合、認識映像の獲得過程が始まる。映像獲得部１２０は、未知の現在地点で認識映像を獲得する。もしくは、移動ロボット１００の走行中に現在位置認識のために認識映像の獲得過程が始まる。
【０１９０】
認識映像は移動ロボット１００の上側に向かって撮影されることができる。認識映像は天井を撮影したものであり得る。図１０に示した映像は現在地点に対応する認識映像である。
【０１９１】
図１０を参照すると、認識映像から抽出された複数の認識特徴点ｈ１、ｈ２、ｈ３、．．．、ｈ７に基づいて複数の認識ディスクリプタ
2020161142.tif 000014
を生成する。認識特徴点ｈ１、ｈ２、ｈ３、．．．、ｈ７に複数の認識ディスクリプタ
2020161142.tif 000015
は一対一で対応する。
【０１９２】
図１０で、
2020161142.tif 000016
はｎ次元ベクターを意味する。
2020161142.tif 000017
の中括弧｛｝内のｈ１（１）、ｈ１（２）、ｈ１（３）、．．．、ｈ１（ｎ）は
2020161142.tif 000018
を成す各次元の数値を意味する。残りの
2020161142.tif 000019
に対する表記もこのような方式であるので説明を省略する。
【０１９３】
特徴検出のために、前記ＳＩＦＴ技法を用いて、複数の認識特徴点ｈ１、ｈ２、ｈ３、．．．、ｈ７に対応する複数の認識ディスクリプタ
2020161142.tif 000020
を生成することができる。コンピュータビジョン技術分野で映像から特徴を検出する多様な方法及びこれら特徴の検出に適したさまざまな特徴検出器についての説明は前述したようである。
【０１９４】
図１１に基づいて前記特徴点（又はディスクリプタ）マッチング過程を詳細に説明すれば次のようである。前記マッチング過程で、認識映像内の複数の認識ディスクリプタ
2020161142.tif 000021
にそれぞれ距離上最も近い全域ラベルディスクリプタをマッチングさせる。図１０で、認識ディスクリプタと全域ラベルディスクリプタの対応関係をマッチング線で示す。マッチング過程（Ｓ２３１）を進めれば、複数の認識ディスクリプタ
2020161142.tif 000022
に複数の全域ラベルディスクリプタ
2020161142.tif 000023
は一対一で対応する。
【０１９５】
例えば、認識ディスクリプタ
2020161142.tif 000024
に距離上最も近い全域ラベルディスクリプタは
2020161142.tif 000025
であり、認識ディスクリプタ
2020161142.tif 000026
に全域ラベルディスクリプタ
2020161142.tif 000027
が対応する。認識ディスクリプタ
2020161142.tif 000028
に距離上最も近い全域ラベルディスクリプタは
2020161142.tif 000029
であり、認識ディスクリプタ
2020161142.tif 000030
に全域ラベルディスクリプタ
2020161142.tif 000031
が対応する。認識ディスクリプタ
2020161142.tif 000032
に距離上最も近い全域ラベルディスクリプタは
2020161142.tif 000033
であり、認識ディスクリプタ
2020161142.tif 000034
に全域ラベルディスクリプタ
2020161142.tif 000035
が対応する。認識ディスクリプタ
2020161142.tif 000036
に距離上最も近い全域ラベルディスクリプタは
2020161142.tif 000037
であり、認識ディスクリプタ
2020161142.tif 000038
に全域ラベルディスクリプタ
2020161142.tif 000039
が対応する。この場合、全域Ｘ内の全ての全域ラベルディスクリプタ
2020161142.tif 000040
の中で複数の認識ディスクリプタ
2020161142.tif 000041
にマッチングした全域ラベルディスクリプタは
2020161142.tif 000042
である。図１１には、マッチングした全域ラベルディスクリプタ
2020161142.tif 000043
の生成根拠となったグループＸＧ１、ＸＧ３、ＸＧ５、ＸＧ３２で表示されている。
【０１９６】
図１２に基づいて比較対象ノードの選択過程を詳細に説明すれば次のようである。前記比較対象ノードの選択過程で、マッチングした全域ラベルディスクリプタ
2020161142.tif 000044
に対応する比較対象ノードを選択する。マッチングした複数の全域ラベルディスクリプタ
2020161142.tif 000045
に複数のノードは一対多で対応する。
【０１９７】
例えば、マッチングした複数の全域ラベルディスクリプタ
2020161142.tif 000046
に対応する比較対象ノードはＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４である。選択されるそれぞれの比較対象ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４内の複数の全域ラベルディスクリプタは、前記マッチングした全域ラベルディスクリプタ
2020161142.tif 000047
の少なくとも一つを含む。選択されなかった残りのノード内の複数の全域ラベルディスクリプタは、前記マッチングした全域ラベルディスクリプタ
2020161142.tif 000048
の全部を含まない。
【０１９８】
具体的に、マッチングした全域ラベルディスクリプタ
2020161142.tif 000049
の生成根拠となったディスクリプタを選択し、選択されたディスクリプタの生成根拠となった映像を選択し、選択された映像に対応するノードを比較対象ノードとする。
【０１９９】
例えば、いずれか一ディスクリプタＡが所定の分類規則（第１所定分類規則）にしたがってグループＡ１Ｇ１に分類され、グループＡ１Ｇ１内のディスクリプタに基づいて所定のラベル規則（第１所定ラベル規則）にしたがって地域ラベルディスクリプタＢが生成され、その後、地域ラベルディスクリプタＢが所定の分類規則（第２所定分類規則）にしたがってグループＸＧ５に分類され、グループＸＧ５内の地域ラベルディスクリプタに基づいて所定のラベル規則（第２所定ラベル規則）にしたがって全域ラベルディスクリプタＣが生成されれば、‘ディスクリプタＡは全域ラベルディスクリプタＣの生成根拠となる’と表現する。また、映像Ｄ内の複数のディスクリプタの中でディスクリプタＡがあれば、‘映像ＤはディスクリプタＡの生成根拠となる’と表現する。さらに、‘映像Ｄは全域ラベルディスクリプタＣの生成根拠となる’と表現する。
【０２００】
前記選択過程で、複数の映像の中で前記マッチングした全域ラベルディスクリプタ
2020161142.tif 000050
の生成根拠となった映像を選択し、全てのノードの中で前記選択された映像に一対一で対応する比較対象ノードを選択する。図１２には、選択された比較対象ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４を黒い点で表示する。
【０２０１】
図１３に基づいて比較対象ノード別に比較過程の一例を説明すれば次のようである。前記比較過程では、前記選択過程で選択された比較対象ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４に対応する映像のみ認識映像と比較する。比較結果、類似度が最も高く算出される映像に対応する比較対象ノードを最終ノードとして選択する。
【０２０２】
前記比較過程では、前記選択過程で選択された比較対象ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４に対してのみ各ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４に対応する映像特徴分布（例えば、映像特徴分布ベクター）を生成する。また、前記比較過程では、前記比較対象ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４の映像特徴分布と比較可能な認識映像特徴分布（例えば、認識映像特徴分布ベクター）を生成する。前記比較過程では、比較対象ノードＮ１、Ｎ１４、Ｎ１５、Ｎ３８、Ｎ６２、Ｎ６３、Ｎ６４別に映像特徴分布と認識映像特徴分布を比較し、最も高い類似度を有する一つのノードを最終ノード（現在地点と推定されるノード）として選択する。
【０２０３】
図１３で、左側のヒストグラムは前記認識映像特徴分布ヒストグラムの一例を示すものである。認識映像特徴分布は前記マッチングした全域ラベルディスクリプタ
2020161142.tif 000051
に基づいて生成される。マッチングした全域ラベルディスクリプタ
2020161142.tif 000052
の認識スコア（Ｓｈ）は所定の数学式によって算出することができる。
【０２０４】
図１３で、右側のヒストグラムは比較対象ノード別に映像特徴分布ヒストグラムの一例を示すものである。前記マッチングした全域ラベルディスクリプタ
2020161142.tif 000053
に基づいて映像特徴分布が生成される。マッチングした全域ラベルディスクリプタ
2020161142.tif 000054
の認識スコア（Ｓｈ）は所定の数学式によって算出することができる。
【０２０５】
いずれか一比較対象ノードの映像特徴分布は、各全域ラベルディスクリプタの種類を代表値（横軸の値）と見なし、各種類当たりウェイト（ｗ）に基づいて算出されたスコア（ｓ）を度数（縦軸の値）と見なす映像特徴分布ヒストグラムで表現されることができる。
【０２０６】
一方、映像内の複数の全域ラベルディスクリプタには、前記マッチングした全域ラベルディスクリプタ
2020161142.tif 000055
の他にも他の全域ラベルディスクリプタ
2020161142.tif 000056
があり得る。このような他の全域ラベルディスクリプタ
2020161142.tif 000057
は映像特徴分布ヒストグラムの代表値となる必要がない。ただ、このような他の全域ラベルディスクリプタ
2020161142.tif 000058
のウェイトは、マッチングした全域ラベルディスクリプタ
2020161142.tif 000059
のスコア（Ｓ）に影響を与えることはできる。
【０２０７】
前記比較過程の後、比較対象ノードの中で現在位置と推定されるノードを選択することができる。前記比較過程で認識映像特徴分布を各比較対象ノード別に映像特徴分布と比較して、類似度が最も高いノードを選択する。ここで選択された類似度の最も高いノードに対応する位置が現在位置となる。
【０２０８】
一方、このような類似度が最も高いノードの選択はブロック単位でも遂行されることができる。
【０２０９】
図１４及び図１５は本発明の一実施例によるブロック単位の特徴点抽出及びマッチングについての説明に参照される図である。
【０２１０】
一般に、ＳＬＡＭ技術のうちカメラセンサーを介して獲得される映像を用いるビジョンＳＬＡＭ（Ｖｉｓｉｏｎ  ＳＬＡＭ）の場合、カメラとポイント（Ｐｏｉｎｔ）単位の特徴点基盤のマッチングを適用する。
【０２１１】
ポイント（Ｐｏｉｎｔ）単位の特徴点は、特徴点の性能が良い場合、前フレーム映像との関係によってその特徴点の３Ｄポイント（Ｐｏｉｎｔ）位置を復元することができ、これによりロボットの位置が容易に分かるという利点がある。
【０２１２】
ポイント（Ｐｏｉｎｔ）の特徴点は、上述したＳＩＦＴ、ＳＵＲＦ、ＦＡＳＴ、ＢＲＩＥＦ、ＯＲＢなどの特徴点が広く使われ、各特徴点が有する特定のディスクリプタに基づいて映像間の同じ特徴点であるかを判断してマッチング（Ｍａｔｃｈｉｎｇ）を遂行することにより、映像間の距離とディスパリティー（Ｄｉｓｐａｒｉｔｙ）によって３Ｄ座標を復元することになる。
【０２１３】
既存に使われるポイント基盤の特徴点は主に映像のピクセル単位の明るさ値変化量（Ｇｒａｄｉｅｎｔ）に基づいてディスクリプタを記述するから、シーン（Ｓｃｅｎｅ）の照明が変わるか映像全般的な明るさ変化量が大きい場合、ディスクリプタ間のマッチング（Ｍａｔｃｈｉｎｇ）がうまくできないことがある。すなわち、ポイント（Ｐｏｉｎｔ）特徴点基盤の自分位置認識技術の場合、映像の特性変化が頻繁な低照度状況で性能劣化が発生し得る。
【０２１４】
したがって、本発明は、ブロック単位の特徴点抽出及びマッチングを用いて照度変化及び低照度環境に強靭なマップ生成及び自分位置認識方法を提案する。
【０２１５】
図１４を参照すると、映像獲得部１２０を介して獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）Ｂ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎに区分し、各ブロックＢ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎ単位で特徴点を抽出して保存することができる。
【０２１６】
その後、自分位置認識の際、現在位置で獲得された認識映像を既設定の大きさのブロック（Ｂｏｌｃｋ）Ｂ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎに区分し、各ブロックＢ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎ単位で特徴点を抽出して既保存のブロック単位の特徴点情報と比較することにより、自分の位置を認識することができる。
【０２１７】
より好ましくは、各ブロックＢ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎは同じ大きさを有することができる。これにより、映像１４００は同じ大きさのブロックＢ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎから構成される格子形態１４１０に分割されることができる。
【０２１８】
ブロックが一定の大きさを有することにより、演算量を減少させ、ブロック間の比較、及び映像間の比較をもっと早く遂行することができる。
【０２１９】
また、映像獲得部１２０を介して獲得された映像で、抽出された特徴点に基づいてディスクリプタを算出して保存することができる。その後、自分位置認識の際、現在位置で獲得された認識映像を既設定の大きさのブロックＢ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎに区分し、各ブロックＢ１、Ｂ２、Ｂ３、．．．、Ｂｎ−２、Ｂｎ−１、Ｂｎ単位で特徴点を抽出してディスクリプタを算出し、既保存のブロック単位のディスクリプタと類似度を算出し、最も類似したノードを現在の自分の位置と認識することができる。
【０２２０】
一般的なポイント（Ｐｏｉｎｔ）基盤の特徴点に基づく自分位置認識は位置性能が良い反面、照度変化に敏感である。
【０２２１】
しかし、映像で多数の一定領域をブロック単位で指定し、そのブロック単位特徴点マッチング技術を適用することにより、照度変化に強靭に自分の位置を認識することができる。
【０２２２】
ビジョンＳＬＡＭでは、天井の映像を獲得し、天井の特徴点を抽出して用いることができる。この際、天井の特徴的な線分を用いることが効果的である。図１５は映像１４００内の特徴的な線分Ｌ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５、Ｌ６、Ｌ７、Ｌ８を例示する。
【０２２３】
ポイント基盤の特徴点抽出及びマッチングは特徴点に対応するピクセルの明るさ値変化量（Ｇｒａｄｉｅｎｔ）を使うが、低照度の環境で天井の特徴的な線分Ｌ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５、Ｌ６、Ｌ７、Ｌ８がよく認識できないこともある。例えば、暗い環境で獲得された全体映像でピクセル単位の明るさ値変化によって天井の特徴的な線分、及び線分のクロスの識別が難しい。
【０２２４】
しかし、本発明の一実施例によれば、ブロック単位の変化量を使ってブロック単位の映像に含まれる特徴的な線分をよりうまく認識することができるので、天井の特徴的な線分をよく認識することができる。また、ブロック内に電灯、装飾物線分などの少なくとも一部がその形態を維持したままでブロックに含まれるので、特徴点の抽出が容易である。
【０２２５】
本発明の一実施例によれば、天井の線分を用いて映像特徴を回転させてマッチングするかロボットの走行方向を決定することにより、ロボットがもっと知能的な行動を行うもののように見えられる。
【０２２６】
本発明の一実施例によれば、ブロック基盤の特徴点抽出及びマッチングを遂行することができる。例えば、ブロック別の明るさ値変化量（Ｇｒａｄｉｅｎｔ）のヒストグラムを積んでブロック単位の類似度によって判断することになる。
【０２２７】
本発明によれば、制御部１５０は、映像獲得部１２０を介して獲得された天井又は全景の映像からカメラパラメーターを用いて天井線分を抽出することができる。
【０２２８】
また、制御部１５０は、ブロック単位の特徴点マッチングの際、映像を回転（ｒｏｔａｔｉｏｎ）して領域を再設定した後、マッチングを進めることができる。この場合、天井の線分情報を用いて移動ロボット１００のモーション（ｍｏｔｉｏｎ）がより知能的に見えるようにすることができる。例えば、天井の線分に平行に走行することにより、天井の線分に対応して位置する可能性が高い壁体と一定の間隔を維持しながら安定的に走行することができる。
【０２２９】
本発明の一実施例によれば、ブロック単位の特徴点基盤マッチングを使うことにより、既存に生成したマップにおいて照明変化が大きくなった場合又は低照度環境でも自分位置認識性能を保障することができる。
【０２３０】
本発明の一実施例によれば、マップ作成の際、ポイント（Ｐｏｉｎｔ）基盤の特徴点とブロック（Ｂｌｏｃｋ）基盤の特徴点を全部抽出してマップに保存することができる。
【０２３１】
これにより、追後にポイント（Ｐｏｉｎｔ）基盤の特徴点とブロック（Ｂｌｏｃｋ）基盤の特徴点を必要によって選択するか混合して使うことにより、多様な照明変化に対応することができる。
【０２３２】
例えば、ポイント（Ｐｏｉｎｔ）基盤の特徴点とブロック（Ｂｌｏｃｋ）基盤の特徴点を全部抽出してマップを作成するとき、ポイント基盤の特徴点で正確な自分位置認識を行い、サービスの際、ブロック基盤の特徴点を活用して照明変化、低照度環境でも強靭に自分の位置認識ができる。
【０２３３】
また、低照度環境で、自分の位置認識時、ブロック（Ｂｌｏｃｋ）特徴点を用いてモンテカルロ法（Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｌｏｃａｌｉｚａｔｉｏｎ、ＭＣＬ）基盤の自分位置認識によって低照度状況でも自分位置認識が可能である。
【０２３４】
また、ポイント（Ｐｏｉｎｔ）基盤の特徴点とブロック（Ｂｌｏｃｋ）基盤の特徴点を全部用いて二重に自分の位置を認識することにより、自分位置認識の正確度を一層高めることができる。
【０２３５】
実施例によって、走行区域で撮影された映像を多数の一定領域に対するブロック（ｂｌｏｃｋ）に分けた後、その領域のテキスチャー、模様、輪郭などの情報を抽出した後、これらの情報を各領域の特徴点として生成することができる。このようなテキスチャー、模様、輪郭などの情報は照明の変化にも維持される特徴があるから、このような特徴に基づいてブロック（ｂｌｏｃｋ）同士類似度を計算してマッチング（Ｍａｔｃｈｉｎｇ）を遂行することにより、照明変化に強靭なマッチングを遂行することができる。
【０２３６】
図１６〜図２１は本発明の多様な実施例による移動ロボットの制御方法を示すフローチャートである。以下では、図１６〜図２１に基づいて本発明の多様な実施例による移動ロボットの制御方法を説明する。
【０２３７】
図１６はマップ生成過程の一例を示す図である。
【０２３８】
図１６を参照すると、本発明の一実施例による移動ロボット１００は、一つ以上のカメラセンサー１２０ｂを含む映像獲得部１２０を介して走行中の走行区域内映像を獲得することができる（Ｓ１６１０）。
【０２３９】
制御部１５０は、前記獲得された映像からポイント（ｐｏｉｎｔ）に基づいて特徴点を抽出することができる（Ｓ１６２０）。また、制御部１５０は、前記獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）に区分し、区分されたそれぞれのブロック単位映像から特徴点を抽出することができる（Ｓ１６３０）。
【０２４０】
すなわち、本発明の一実施例による移動ロボット１００の制御方法は、ビジョンＳＬＡＭで多く使われるＳＩＦＴ、ＳＵＲＦ、ＦＡＳＴ、ＢＲＩＥＦ、ＯＲＢなどのポイント基盤の特徴点抽出段階（Ｓ１６２０）を含むことができるだけではなく、区分されたそれぞれのブロック単位映像から特徴点を抽出するブロック基盤の特徴点抽出段階（Ｓ１６３０）をさらに含むことができる。
【０２４１】
これにより、ポイント基盤の特徴点とブロック基盤の特徴点をＳＬＡＭに全部活用することができる。
【０２４２】
一方、上述したように、制御部１５０は、抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成することができる。
【０２４３】
例えば、ポイント基盤の特徴点抽出段階（Ｓ１６２０）で、制御部１５０はポイント基盤の特徴点を抽出し、抽出されたポイント基盤の特徴点に対応するピクセル又は周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタを生成することができる。
【０２４４】
また、ブロック基盤の特徴点抽出段階（Ｓ１６３０）で、制御部１５０は、前記ブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいてそれぞれのブロック別ディスクリプタを生成することができる。
【０２４５】
一方、  本発明の一実施例による移動ロボット１００は、本体１１０の移動による走行状態を感知する走行感知センサーを含むことができる。例えば、移動ロボット１００は、エンコーダなどのセンサーを備えることができる。
【０２４６】
制御部１５０は、エンコーダなどの走行感知センサーから走行中の走行情報を獲得することができる。
【０２４７】
実施例によって、制御部１５０は、前記獲得された走行情報に基づいて以前ノードからの移動量が閾値（ｔｈｒｅｓｈｏｌｄ）より大きくなれば、映像獲得部１２０を介して映像を獲得するように制御することができる。既に情報が獲得されて認識された以前ノードにあまり隣接した位置で再び映像獲得、分析、位置認識を行うことは非効率的である。よって、以前ノードから閾値（ｔｈｒｅｓｈｏｌｄ）以上に動けば、再び映像を獲得して特徴点抽出（Ｓ１６２０、Ｓ１６３０）などを行うことが効果的である。
【０２４８】
もしくは、前記映像獲得段階（Ｓ１６１０）で映像獲得部１２０は走行中に連続的に走行区域の映像を獲得するか所定の基準又は周期で走行区域の映像を獲得することができる。
【０２４９】
既に情報が獲得されて認識された以前ノードにあまり隣接した位置で獲得された映像フレーム全部を対象として分析、位置認識を行うことは非効率的である。
【０２５０】
この場合、制御部１５０は、前記映像獲得段階（Ｓ１６１０）で映像獲得部１２０を介して獲得される映像の中で、以前ノードからの移動距離が閾値より大きい位置に対応する映像をキーフレーム（ｋｅｙ  ｆｒａｍｅ）映像として選択することができる。また、所定のキーフレーム映像が選択されれば、選択されたキーフレーム映像を基準に移動ロボット１００が閾値よりもっと移動した距離で獲得される映像の一つを次のキーフレーム映像として選択することができる。
【０２５１】
これにより、制御部１５０は、一定の距離以上に離隔した位置に対応して選択されたキーフレーム（ｋｅｙ  ｆｒａｍｅ）映像を対象として特徴点抽出（Ｓ１６２０、Ｓ１６３０）などを遂行することができる。すなわち、前記ポイント基盤の特徴点抽出段階（Ｓ１６２０）と前記ブロック基盤の特徴点抽出段階（Ｓ１６３０）は、以前ノードから閾値より遠く離れた位置に対応するキーフレーム映像を対象として遂行することができる。
【０２５２】
一方、制御部１５０は、ポイント基盤の特徴点抽出段階（Ｓ１６２０）で抽出された特徴点を用い、現在位置に対応するノード及び前記現在位置に対応するノードを基準に既設定の基準距離以内のノードの特徴点をマッチング（ｍａｔｃｈｉｎｇ）することができる（Ｓ１６４０）。
【０２５３】
また、制御部１５０は、ブロック基盤の特徴点抽出段階（Ｓ１６３０）で抽出された特徴点を用いて、前記現在位置に対応するノード及び前記現在位置に対応するノードを基準に前記基準距離以内のノードの特徴点をマッチングすることができる（Ｓ１６５０）。
【０２５４】
すなわち、本発明の一実施例による移動ロボット１００の制御方法は、ビジョンＳＬＡＭで多く使われるＳＩＦＴ、ＳＵＲＦ、ＦＡＳＴ、ＢＲＩＥＦ、ＯＲＢなどのポイント基盤の特徴点マッチング段階（Ｓ１６４０）を含むことができるだけではなく、区分されたそれぞれのブロック単位映像で特徴点をマッチングするブロック基盤の特徴点マッチング段階（Ｓ１６５０）をさらに含むことができる。
【０２５５】
これにより、ポイント基盤の特徴点とブロック基盤の特徴点をＳＬＡＭに全部活用することができる。
【０２５６】
一方、制御部１５０は、前記ポイント基盤の特徴点マッチング結果と前記ブロック基盤の特徴点マッチング結果に基づいて前記現在位置を認識することができる（Ｓ１６６０）。このように、２方式の特徴点マッチング結果を総合的に用いることにより位置認識の正確度を一層高めることができる。
【０２５７】
また、制御部１５０は、前記認識された現在位置情報、前記現在位置に対応するノードのポイント基盤の特徴点情報、及び前記現在位置に対応するノードのブロック基盤の特徴点情報をマップ（ｍａｐ）に登録することができる（Ｓ１６７０）。
【０２５８】
本発明の一実施例によれば、ポイント基盤の特徴点情報とブロック基盤の特徴点情報を全部保存しながらマップを生成することにより、以後の位置認識ではポイント基盤の特徴点情報とブロック基盤の特徴点情報を選択的に用いるか組み合わせて用いることができる。
【０２５９】
図１７はマップ生成過程の一例を示す図である。
【０２６０】
図１７を参照すると、本発明の一実施例による移動ロボット１００は、走行中に左側／右側コマに連結されたエンコーダによって走行情報をモニタリングすることができる（Ｓ１６１１）。
【０２６１】
コマのエンコーダ値によって判別された移動ロボット１００の移動量が閾値ｔｈより大きければ（Ｓ１６１３）、映像獲得部１２０はキーフレーム映像を獲得することができる（Ｓ１６１５）。
【０２６２】
仮に、移動ロボット１００の移動量が閾値ｔｈより大きくなければ（Ｓ１６１３）、コマのエンコーダ値によって判別された移動ロボット１００の移動量が閾値ｔｈより大きくなるまでエンコーダによって走行情報をモニタリングすることができる（Ｓ１６１１）。
【０２６３】
一方、制御部１５０は、キーフレーム映像からポイント基盤の特徴点を抽出し（Ｓ１６２０）、ブロック基盤の特徴点を抽出することができる（Ｓ１６３０）。
【０２６４】
また、制御部１５０は、ポイント基盤の特徴点マッチングを遂行し（Ｓ１６４０）、ブロック基盤の特徴点マッチングを遂行することができる（Ｓ１６５０）。
【０２６５】
制御部１５０は、ポイント基盤の特徴点が有する特定のディスクリプタに基づいて映像間の同一特徴点であるかを判断してマッチング（Ｍａｔｃｈｉｎｇ）を遂行することができる（Ｓ１６４０）。
【０２６６】
制御部１５０は、各ブロック単位で特徴点を抽出してディスクリプタを算出し、既保存のブロック単位のディスクリプタと類似度を算出して同一特徴点であるかを判断してマッチング（Ｍａｔｃｈｉｎｇ）を遂行することができる（Ｓ１６５０）。
【０２６７】
一方、制御部１５０は、映像のポイント基盤の特徴点及び／又はブロック基盤の特徴点の関係によってその特徴点の３Ｄポイント（Ｐｏｉｎｔ）位置を復元することができ（Ｓ１６６１）、これにより移動ロボット１００の位置が容易に分かる（Ｓ１６６３）。
【０２６８】
制御部１５０は、映像に含まれた特徴点が同一特徴点であるかを判断してマッチング（Ｍａｔｃｈｉｎｇ）を遂行することにより、映像間距離とディスパリティー（Ｄｉｓｐａｒｉｔｙ）によって３Ｄ座標を復元することになる（Ｓ１６６１）。
【０２６９】
制御部１５０は、復元された３Ｄ座標に基づいて移動ロボット１００の位置が易しく分かる（Ｓ１６６３）。
【０２７０】
自分位置認識（Ｓ１６６３）の後、制御部１５０は、現在位置の特徴点情報を保存部１０５に保存することができる（Ｓ１６７０）。例えば、制御部１５０は、保存部１０５に保存されるＳＬＡＭマップ上に現在位置に対応するノード情報として現在位置の特徴点情報を保存することができる。
【０２７１】
また、制御部１５０は、ポイント基盤の特徴点情報とブロック基盤の特徴点情報を全部保存することができる。これにより、以後の自分位置認識でポイント基盤の特徴点情報とブロック基盤の特徴点情報を選択的に用いるか組み合わせて用いることができる。
【０２７２】
制御部１５０は、マップ作成が完了しなかったら（Ｓ１６８０）、走行し続けながら上述したＳ１６１１段階〜Ｓ１６７０の過程をずっと遂行することができる。Ｓ１６１１段階〜Ｓ１６７０の過程は、マップ作成が完了すれば（Ｓ１６８０）、終了することができる。
【０２７３】
本発明の実施例によれば、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いて照明、照度、時間帯、事物位置変化などの多様な環境変化に対して強靭なマップを生成することができる。ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングはポイント基盤の特徴点抽出及びマッチングより天井の特徴的な線分の抽出に有利である。よって、照度環境でも動作することができるビジョン（Ｖｉｓｉｏｎ）ＳＬＡＭ技術を具現することができ、ブロック基盤の特徴点抽出及びマッチングを用いて低照度環境でも優れたＳＬＡＭ技術を具現することができる。
【０２７４】
図１８及び図１９はマップ生成後の自分位置認識過程を示す図である。
【０２７５】
図１８及び図１９を参照すると、本発明の一実施例による移動ロボット１００は、走行中に走行感知センサーを介して走行情報をモニタリングすることができる（Ｓ１８０１）。
【０２７６】
走行感知センサーとしては、ジャイロセンサー（Ｇｙｒｏ  Ｓｅｎｓｏｒ）、ホイールセンサー（Ｗｈｅｅｌ  Ｓｅｎｓｏｒ）、加速度センサー（Ａｃｃｅｌｅｒａｔｉｏｎ  Ｓｅｎｓｏｒ）などを使える。走行感知センサーの少なくとも一つで感知されるデータ又は走行感知センサーの少なくとも一つで感知されるデータに基づいて算出されるデータは走行距離計測（ｏｄｏｍｅｔｒｙ）情報を構成することができる。
【０２７７】
例えば、制御部１５０は、左側／右側コマに連結されたエンコーダなどのホイールセンサーのセンシング値に基づいて移動ロボット１００の移動量を判別することができる。また、制御部１５０は、ホイールセンサーのセンシング値に基づいて移動ロボット１００の移動量、及び方向情報を獲得して走行変位を判別することができる。
【０２７８】
一方、判別された移動ロボット１００の移動量が閾値ｔｈより大きければ（Ｓ１８０３）、映像獲得部１２０は走行区域内映像を獲得することができる（Ｓ１８１０）。
【０２７９】
その後、制御部１５０は、前記獲得された映像を既設定の大きさのブロック（Ｂｏｌｃｋ）に区分し、区分されたそれぞれのブロック単位映像から特徴点を抽出することができる（Ｓ１８４０）。
【０２８０】
他の実施例では、前記映像獲得段階（Ｓ１８１０）で映像獲得部１２０は走行中に連続的に走行区域の映像を獲得するか所定の基準又は周期で走行区域の映像を獲得することができる。
【０２８１】
この場合、制御部１５０は、前記映像獲得段階（Ｓ１８１０）で映像獲得部１２０を介して獲得される映像のうち、以前ノードからの移動距離が閾値ｔｈより大きい位置に対応する映像をキーフレーム（ｋｅｙ  ｆｒａｍｅ）映像として選択することができる。また、所定のキーフレーム映像が選択されれば、制御部１５０は、選択されたキーフレーム映像を基準に移動ロボット１００が閾値ｔｈよりもっと移動した距離で獲得される映像の一つを次のキーフレーム映像として選択することができる。
【０２８２】
以後のブロック基盤の特徴点抽出段階（Ｓ１８４０）は、以前ノードから閾値ｔｈより遠く離れた位置に対応するキーフレーム映像を対象として遂行することができる。
【０２８３】
ブロック基盤の特徴点抽出段階（Ｓ１８４０）で、制御部１５０は、前記ブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性（明るさ変化の方向及び変化の急激な程度）を用いて特徴点を抽出することができる。
【０２８４】
本発明の一実施例によれば、ブロック単位の変化量を使ってブロック単位の映像に含まれる特徴的な線分をよりうまく認識することができるので、天井の特徴的な線分をよく認識することができる。また、ブロック内に電灯、装飾物線分などの少なくとも一部がその形態を維持したままでブロックに含まれるので、特徴点の抽出が容易である。
【０２８５】
一方、ブロック基盤の特徴点抽出段階（Ｓ１８４０）で、制御部１５０は、前記ブロック単位映像の明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性（明るさ変化の方向及び変化の急激な程度）に基づいてそれぞれのブロック別ディスクリプタを生成することができる。
【０２８６】
制御部１５０は、前記ブロック基盤の特徴点抽出段階（Ｓ１８４０）で抽出された特徴点をマップに登録されたブロック基盤の特徴点情報とマッチングすることができ（Ｓ１８５０）、ブロック基盤の特徴点マッチング結果に基づいて移動ロボット１００の現在位置を認識することができる（Ｓ１８６０）。
【０２８７】
ブロック基盤の特徴点マッチング段階（Ｓ１８５０）で、制御部１５０は、獲得映像と比較対象ノードの映像に含まれるブロック単位映像の明るさ勾配の分布特性を比較して同一特徴点を捜し出すことができる。
【０２８８】
また、制御部１５０は、獲得映像と比較対象ノードの映像に含まれるブロック単位映像の明るさ勾配の分布特性に基づくブロック別ディスクリプタを既保存のブロック別ディスクリプタと比較して類似度が最も高いディスクリプタを判別することができる。
【０２８９】
本発明の一実施例によれば、現在位置で獲得された認識映像を既設定の大きさのブロックに区分し、各ブロック単位で特徴点を抽出し（Ｓ１８４０）、既保存のブロック単位の特徴点情報と比較することにより（Ｓ１８５０）、自分の位置を認識することができる（Ｓ１８６０）。
【０２９０】
また、映像獲得部１２０を介して獲得された映像から抽出された特徴点に基づいてディスクリプタを算出して保存した場合、自分位置認識の際、現在位置で獲得された認識映像を既設定の大きさのブロック単位で特徴点を抽出してディスクリプタを算出し（Ｓ１８４０）、既保存のブロック単位のディスクリプタと類似度を算出し（Ｓ１８５０）、最も類似したノードを現在の自分の位置と認識することができる（Ｓ１８６０）。
【０２９１】
本発明の実施例によれば、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いてマップ上の移動ロボットの位置を正確に認識することができる。ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングはポイント基盤の特徴点抽出及びマッチングより天井の特徴的な線分抽出に有利である。よって、照度環境でも動作することができるビジョン（Ｖｉｓｉｏｎ）ＳＬＡＭ技術を具現することができ、ブロック基盤の特徴点抽出及びマッチングを用いて低照度環境でも優れたＳＬＡＭ技術を具現することができる。
【０２９２】
また、移動ロボット１００が掃除作業を行う場合、多様な環境変化に対応することができる一つのマップと正確な位置認識に基づいて効率的な走行及び掃除を行うことができる。
【０２９３】
本発明の実施例によれば、ブロック（Ｂｏｌｃｋ）基盤の特徴点抽出及びマッチングを用いて照明、照度、時間帯、事物位置変化などの多様な環境変化に対して強靭なマップを生成することができる。
【０２９４】
一方、本発明は、マップ生成の際、ポイント基盤の特徴点情報とブロック基盤の特徴点情報を全部保存することができる。これにより、自分位置認識においてポイント基盤の特徴点情報とブロック基盤の特徴点情報を選択的に用いるか組み合わせて用いることができる。
【０２９５】
図１９を参照すると、本発明の一実施例による移動ロボット１００の制御方法は、映像獲得段階（Ｓ１８１０）で獲得された映像からポイント基盤の特徴点を抽出するポイント（ｐｏｉｎｔ）基盤の特徴点抽出段階（Ｓ１８２０）と前記ポイント基盤の特徴点抽出段階（Ｓ１８２０）で抽出された特徴点を前記マップに登録されたポイント基盤の特徴点情報とマッチングする段階（Ｓ１８３０）をさらに含むことができる。
【０２９６】
この場合、現在位置認識段階（Ｓ１８６０）で、制御部１５０は、前記ポイント基盤の特徴点マッチング結果と前記ブロック基盤の特徴点マッチング結果に基づいて前記現在位置を認識することができる。
【０２９７】
制御部１５０は、前記抽出された特徴点周辺の一定区域に属するピクセルの明るさ勾配（ｇｒａｄｉｅｎｔ）の分布特性に基づいて前記抽出された特徴点に対応するディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）を生成することができ、生成されたディスクリプタと既保存のディスクリプタを比較して現在位置を認識することができる（Ｓ１８６０）。
【０２９８】
また、制御部１５０はポイント基盤の特徴点情報とブロック基盤の特徴点情報を組み合わせて現在位置を認識することができる（Ｓ１８６０）。
【０２９９】
例えば、制御部１５０は、ポイント基盤の特徴点マッチング結果とブロック基盤の特徴点マッチング結果の中で類似度が最も高いノードを現在位置と認識することができる。
【０３００】
一方、本発明の一実施例によれば、照度環境によってポイント基盤の特徴点情報とブロック基盤の特徴点情報を選択的に用いるか組み合わせて用いることができる。
【０３０１】
図２０を参照すると、本発明の一実施例による移動ロボット１００は、映像獲得部１２０を介して走行区域内映像を獲得することができる（Ｓ２０１０）。
【０３０２】
本発明の一実施例による移動ロボット１００は、走行中に走行感知センサーを介して走行情報をモニタリングすることができる（Ｓ２００１）。
【０３０３】
制御部１５０は、走行感知センサーのセンシング値に基づいて移動ロボット１００の移動量を判別することができる（Ｓ２００１）。
【０３０４】
実施例によって、判別された移動ロボット１００の移動量が閾値ｔｈより大きい場合に（Ｓ２００３）、映像獲得部１２０は走行区域内のキーフレーム（ｋｅｙ  ｆｒａｍｅ）映像を獲得することができる（Ｓ２０１０）。
【０３０５】
もしくは、前記映像獲得段階（Ｓ２０１０）で映像獲得部１２０を介して獲得される映像のうち、以前ノードからの移動距離が閾値ｔｈより大きい位置に対応する映像をキーフレーム（ｋｅｙ  ｆｒａｍｅ）映像として選択することができる。
【０３０６】
一方、本発明の一実施例によれば、移動ロボット１００のセンサー部１７０は本体１１０外部の照度をセンシングする照度センサーを含むことができる。
【０３０７】
本実施例で、移動ロボット１００は、センサー部１７０の照度センサーを介して照度情報を獲得することができる（Ｓ２０１３）。
【０３０８】
仮に、前記照度情報が低照度環境に設定された条件を満たさなければ（Ｓ２０１６）、制御部１５０は、映像獲得部１２０を介して獲得されたキーフレームの全体映像からポイント（ｐｏｉｎｔ）に基づいて特徴点を抽出し（Ｓ２０４０）、前記ポイント基盤の特徴点抽出段階（Ｓ２０４０）で抽出された特徴点を前記マップに登録されたポイント基盤の特徴点情報とマッチングすることにより（Ｓ２０５０）、前記ポイント基盤の特徴点マッチング結果に基づいて現在位置を認識することができる（Ｓ２０６０）。
【０３０９】
仮に、前記照度情報が低照度環境に設定された条件を満たせば（Ｓ２０１６）、制御部１５０は、映像獲得部１２０を介して獲得されたキーフレームの全体映像を複数のブロックに分け、ブロック単位で特徴点を抽出することができる（Ｓ２０２０）。
【０３１０】
また、制御部１５０は、前記ブロック基盤の特徴点抽出段階（Ｓ２０２０）で抽出された特徴点を前記マップに登録されたブロック基盤の特徴点情報とマッチングすることにより（Ｓ２０３０）、前記ポイント基盤の特徴点マッチング結果に基づいて現在位置を認識することができる（Ｓ２０６０）。
【０３１１】
実施例によって、低照度環境と判別された場合（Ｓ２０１６）、ブロック基盤の特徴点抽出（Ｓ２０２０）及びマッチング（Ｓ２０３０）とポイント基盤の特徴点抽出（Ｓ２０４０）及びマッチング（Ｓ２０５０）を全部遂行し、その結果を取り合わせて現在位置を認識する（Ｓ２０６０）ことも可能である。
【０３１２】
本発明の実施例によれば、自分位置認識（Ｓ１８６０、Ｓ２０６０）の際、公知のモンテカルロ（ＭＣＬ）位置推定法を用いることができる。モンテカルロ（ＭＣＬ）位置推定方法はパーティクルフィルター（ｐａｒｔｉｃｌｅ  ｆｉｌｔｅｒ）アルゴリズムを用いている。
【０３１３】
図２１を参照すると、制御部１５０は、ブロック基盤の特徴点マッチング（Ｓ１８５０、Ｓ２０２０）に基づいて位置候補である複数のパーティクル（ｐａｒｔｉｃｌｅ）を設定することができる（Ｓ２１１０）。
【０３１４】
制御部１５０は、所定の基準によってｎ個のパーティクルを設定することができる（Ｓ２１１０）。例えば、制御部１５０は、同じ加重値を有する既設定の個数のパーティクルを設定することができる。
【０３１５】
その後、制御部１５０は、前記複数のパーティクルに対する加重値（ｗｅｉｇｈｔ）を算出し（Ｓ２１２０）、前記複数のパーティクルの加重値に基づいて前記現在位置を決定することができる（Ｓ２１３０）。
【０３１６】
制御部１５０は、マップ上に仮定の位置候補であるパーティクルをほこりのように振り撤いておき（Ｓ２１１０）、加重値を演算して（Ｓ２１２０）、現在位置を決定することができる（Ｓ２１３０）。
【０３１７】
制御部１５０は、ブロック基盤の特徴点マッチング結果の類似度によって各パーティクルの加重値を変更する演算を遂行することができる。例えば、制御部１５０は類似度に比例して加重値を増加させるか差に反比例して荷重値を増加させることができる。
【０３１８】
制御部１５０は、パーティクルの加重値に基づいて特定パーティクルを現在位置に決定するか加重値の高い複数のパーティクルの平均に基づいて現在位置を決定することができる。
【０３１９】
一方、現在位置が決定されれば（Ｓ２１３０）、以後の位置認識のために、制御部１５０は、複数のパーティクルをリサンプリング（ｒｅｓａｍｐｌｉｎｇ）することができる（Ｓ２１４０）。例えば、決定された現在位置を基準に複数のパーティクルを設定することができる。
【０３２０】
実施例によっては、現在位置が決定されなければ（Ｓ２１３０）、位置認識失敗と判定することができる（Ｓ２１５０）。
【０３２１】
本発明による移動ロボットは、前述した実施例の構成と方法に限って適用されるものではなく、前記実施例は、多様な変形ができるように、各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。
【０３２２】
同様に、特定の順に図面に動作を図示しているが、これは、好ましい結果を得るために図示した特定の順に又は順次の順にそのような動作を遂行しなければならないか全ての図示の動作を遂行しなければならないものに理解されてはいけない。特定の場合、マルチタスキングと並列プロセッシングが有利であり得る。
【０３２３】
一方、本発明の実施例による移動ロボットの制御方法は、プロセッサが読める記録媒体にプロセッサが読めるコードで具現することが可能である。プロセッサが読める記録媒体はプロセッサによって読められるデータが保存される全ての種類の記録装置を含む。また、インターネットを介しての伝送などの搬送波形態に具現されることも含む。また、プロセッサが読める記録媒体はネットワークで連結されたコンピュータシステムに分散され、分散方式でプロセッサが読めるコードが保存されて実行されることができる。
【０３２４】
また、以上では本発明の好適な実施例について図示して説明したが、本発明は上述した特定の実施例に限定されず、請求範囲で請求する本発明の要旨を逸脱することなしに当該発明が属する技術分野で通常の知識を有する者によって多様な変形実施が可能であることはもちろんのこと、このような変形実施は本発明の技術的思想や見込みから個別的に理解されてはいけないであろう。
【符号の説明】
【０３２５】
１００    移動ロボット
１０５    保存部
１１０    本体
１２０    映像獲得部
１２５    入力部
１５０    制御部
１６０    走行部
１７０    センサー部
１８０    出力部
１９０    通信部
【図１】
2020161142.tif 000060
【図２】
2020161142.tif 000061
【図３】
2020161142.tif 000062
【図４】
2020161142.tif 000063
【図５】
2020161142.tif 000064
【図６】
2020161142.tif 000065
【図７】
2020161142.tif 000066
【図８】
2020161142.tif 000067
【図９】
2020161142.tif 000068
【図１０】
2020161142.tif 000069
【図１１】
2020161142.tif 000070
【図１２】
2020161142.tif 000071
【図１３】
2020161142.tif 000072
【図１４】
2020161142.tif 000073
【図１５】
2020161142.tif 000074
【図１６】
2020161142.tif 000075
【図１７】
2020161142.tif 000076
【図１８】
2020161142.tif 000077
【図１９】
2020161142.tif 000078
【図２０】
2020161142.tif 000079
【図２１】
2020161142.tif 000080