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