(57)【要約】  本発明の一側面による移動ロボットは、本体を移動させる走行部、本体の周辺を連続的に撮影して複数の画像を取得する画像取得部、画像取得部が取得する連続した複数の画像を保存する保存部、移動中に障害物を感知する少なくとも１つのセンサを備えたセンサ部、及びセンサ部が障害物を感知すると、本体の移動方向と移動速度に基づいて、連続した複数の画像のうちセンサ部の障害物感知時点以前の特定時点画像を選択し、前記選択された特定時点画像に含まれる障害物の属性を認識する障害物認識モジュールを備えた制御部を備えてなることにより、障害物属性認識の正確性を向上させることのできる画像データを取得して障害物の属性を正確に認識することができる。【選択図】  図１５
2019528535.tif 000002
【特許請求の範囲】
【請求項１】
移動ロボットであって、
本体を移動させる走行部と、
前記本体の周辺を連続的に撮影して複数の画像を取得する画像取得部と、
前記画像取得部が取得する連続した複数の画像を保存する保存部と、
前記移動中に障害物を感知する１つ以上のセンサを備えたセンサ部と、
前記センサ部が障害物を感知すると、前記本体の移動方向と移動速度に基づいて、前記連続した複数の画像のうち前記センサ部の障害物感知時点以前の特定時点画像を選択し、前記選択された特定時点画像に含まれる障害物の属性を認識する障害物認識モジュールを備えた制御部と、を備えてなる、移動ロボット。
【請求項２】
前記制御部は、
前記認識された障害物の属性に基づいて、前記走行部の駆動を制御する走行制御モジュールを更に備えてなることを特徴とする、請求項１に記載の移動ロボット。
【請求項３】
前記制御部は、
前記移動方向が直進走行であるか、所定基準値未満の回転走行である場合、前記連続した複数の画像のうち前記センサ部の障害物感知時点以前の特定時点画像を選択することを特徴とする、請求項１に記載の移動ロボット。
【請求項４】
前記制御部は、
前記移動速度が遅いほど前記センサ部の障害物感知時点を基準に更に過去時点の画像を選択することを特徴とする、請求項１に記載の移動ロボット。
【請求項５】
前記障害物認識モジュールは、
マシンラーニング（machine learning）により既に学習されたデータに基づいて前記選択された特定時点画像に含まれる障害物の属性を認識することを特徴とする、請求項１に記載の移動ロボット。
【請求項６】
前記選択された特定時点画像を所定サーバに送信し、前記所定サーバからマシンラーニングに関するデータを受信する通信部を更に備えてなることを特徴とする、請求項１に記載の移動ロボット。
【請求項７】
前記所定サーバから受信したマシンラーニングに関するデータに基づいて前記障害物認識モジュールをアップデート（update）することを特徴とする、請求項６に記載の移動ロボット。
【請求項８】
前記制御部は、
前記センサ部が感知する障害物の方向に対応して前記選択された特定時点画像の一部領域を抽出する画像処理モジュールを更に備えてなることを特徴とする、請求項１に記載の移動ロボット。
【請求項９】
前記画像処理モジュールは、
前記障害物が前記本体の前面の右方向で感知される場合、前記選択された特定時点画像の右側下段領域を抽出し、
前記障害物が前記本体の前面の左方向で感知される場合、前記選択された特定時点画像の左側下段領域を抽出し、
前記障害物が前記本体の前面方向で感知される場合、前記選択された特定時点画像の中央（center）下段領域を抽出することを特徴とする、請求項８に記載の移動ロボット。
【請求項１０】
前記制御部は、
前記感知された障害物の位置情報と移動ロボットの位置情報を前記保存部に保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ（map）に障害物地域として登録し、所定障害物地域で前記画像取得部により取得される画像に対して順次に障害物の属性を認識し、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別することを特徴とする、請求項１に記載の移動ロボット。
【請求項１１】
移動ロボットの制御方法であって、
画像取得部により、移動中に本体周辺を連続的に撮影して複数の画像を取得するステップと、
前記画像取得部が取得する連続した複数の画像を保存するステップと、
センサ部により、障害物を感知するステップと、
前記センサ部が障害物を感知すると、前記本体の移動方向と移動速度に基づいて、前記連続した複数の画像のうち前記センサ部の障害物感知時点以前の特定時点画像を選択するステップと、
前記選択された特定時点画像に含まれる障害物の属性を認識するステップと、
前記認識された障害物の属性に基づいて、走行部の駆動を制御するステップと、を含んでなる、移動ロボットの制御方法。
【請求項１２】
前記特定時点画像を選択するステップは、
前記移動方向が直進走行であるか、所定基準値未満の回転走行である場合、前記連続した複数の画像のうち前記センサ部の障害物感知時点以前の特定時点画像を選択することを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【請求項１３】
前記特定時点画像を選択するステップは、
前記移動の速度が遅いほど前記センサ部の障害物感知時点を基準に更に過去時点の画像を選択することを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【請求項１４】
前記障害物の属性を認識するステップは、
マシンラーニング（machine learning）により既に学習されたデータに基づいて前記選択された特定時点画像に含まれる障害物の属性を認識することを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【請求項１５】
前記選択された特定時点画像を所定サーバに送信するステップと、
前記所定サーバからマシンラーニングに関するデータを受信するステップとを更に含んでなることを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【請求項１６】
前記所定サーバから受信したマシンラーニングに関するデータに基づいて前記障害物認識モジュールをアップデート（update）するステップを更に含んでなることを特徴とする、請求項１５に記載の移動ロボットの制御方法。
【請求項１７】
前記センサ部が感知する障害物の方向に対応して前記選択された特定時点画像の一部領域を抽出するステップを更に含んでなることを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【請求項１８】
前記選択された特定時点画像の一部領域を抽出するステップは、
前記障害物が前記本体の前面の右方向で感知される場合、前記画像取得部が取得する画像の右側下段領域を抽出し、
前記障害物が前記本体の前面の左方向で感知される場合、前記画像取得部が取得する画像の左側下段領域を抽出し、
前記障害物が前記本体の前面方向で感知される場合、前記画像取得部が取得する画像の中央（center）下段領域を抽出することを特徴とする、請求項１７に記載の移動ロボットの制御方法。
【請求項１９】
前記駆動を制御するステップは、
前記感知された障害物が進行してもかまわない障害物でない場合、回避動作を行うように制御することを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【請求項２０】
前記センサ部が障害物を感知すると、前記感知された障害物の位置情報と移動ロボットの位置情報を保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ（map）に障害物地域として登録するステップと、
前記障害物地域を移動しながら前記画像取得部により取得される画像に対して順次に障害物の属性を認識するステップと、
前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別するステップと、を更に含んでなることを特徴とする、請求項１１に記載の移動ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボット及びその制御方法に関し、より詳細には、障害物認識及び回避を行う移動ロボット及びその制御方法に関する。
【背景技術】
【０００２】
ロボットは、産業用に開発されて工場自動化の一部分を担ってきた。最近は、ロボットを応用した分野がさらに拡大されて、医療用ロボット、宇宙航空ロボットなどが開発され、一般家庭で使用できる家庭用ロボットも制作されている。このようなロボットのうち自力で走行可能なものを移動ロボットという。
【０００３】
家庭で用いられる移動ロボットの代表的な例としてはロボット掃除機があり、ロボット掃除機は、一定領域を自ら走行しながら、周辺の塵又は異物を吸入することにより、該当領域を掃除する機器である。
【０００４】
移動ロボットは、自ら移動可能であるため移動が自由であり、走行中に障害物などを避けるための複数のセンサを備えて障害物を避けて走行することができる。
【０００５】
一般に、移動ロボットの障害物感知のためには赤外線センサ又は超音波センサが用いられる。赤外線センサは、障害物に反射されて戻ってくる反射光の光量又は受信される時間により障害物の存在及び距離を判断し、超音波センサは、所定周期を有する超音波を発散して障害物により反射される超音波がある場合、超音波発散時間と障害物に反射されて戻ってくる瞬間の時間差を用いて障害物との距離を判断する。
【０００６】
一方、障害物の認識及び回避は、移動ロボットの走行性能だけでなく、掃除性能に大きな影響を及ぼすので、障害物認識能力の信頼性確保が要求される。
【０００７】
従来技術（大韓民国登録特許第１０−０６６９８９２号公報）は、赤外線センサと超音波センサを組み合わせて信頼性の高い障害物認識技術を実現する技術を開示している。
【０００８】
しかしながら、従来技術（大韓民国登録特許第１０−０６６９８９２号公報）は、障害物の属性を判別することができないという問題がある。
【０００９】
図１は、従来の移動ロボットの障害物感知及び回避方法に関する説明に参照される図である。
【００１０】
図１を参照すると、ロボット掃除機は、移動しながら塵及び異物を吸入して掃除を行う（Ｓ１１）。
【００１１】
超音波センサにおいて障害物により反射される超音波信号を感知して障害物の存在を認識し（Ｓ１２）、認識された障害物の高さが乗り越えられる高さであるか否かを判断する（Ｓ１３）。
【００１２】
ロボット掃除機は、乗り越えられる高さであると判断される場合は直進に移動し（Ｓ１４）、そうでない場合は９０度回転（Ｓ１５）して移動することができる。
【００１３】
例えば、障害物が低い敷居である場合、ロボット掃除機は、敷居を認識し、認識の結果、通過できると判断すると、敷居を乗り越えて移動する。
【００１４】
しかしながら、乗り越えられる高さであると判断した障害物が電線であると、ロボット掃除機は、電線を乗り越える途中に電線にかかって拘束される可能性がある。
【００１５】
また、扇風機の基台は、敷居と類似しているか低い高さを有するので、ロボット掃除機は、乗り越えられる障害物であると判断することができる。この場合、ロボット掃除機は、扇風機の基台を乗り越える途中に車輪が空転しながら拘束される可能性がある。
【００１６】
また、人の全体を認識することができず、髪の毛などの人毛の一部のみが感知された場合、人毛を乗り越えられる高さであると判断して直進を行うことができるが、この場合は、ロボット掃除機が人毛を吸入して事故が発生する可能性がある。
【００１７】
従って、前方の障害物の属性を把握して属性に合わせて移動パターンを変更する方法が要求される。
【００１８】
一方、最近は、人工知能とディープラーニングなどのマシンラーニングに関する関心が大きく増加している。
【００１９】
マシンラーニングとは、人工知能分野の１つであり、コンピュータにデータを学習させ、それに基づいて予測、分類などのある作業を行わせることを意味する。
【００２０】
マシンラーニングの最も代表的な定義は、トムミッチェル（Tom M. Mitchell）教授が提示したものであり、「あるタスク（Ｔ）を行うにおいて特定の基準（Ｐ）で測定した性能が特定の経験（Ｅ）により向上した場合、そのあるタスク（Ｔ）はある経験（Ｅ）から学んだということができる」ということである。すなわち、あるタスクＴに対して多くの経験（Ｅ）により性能を向上させることをマシンラーニングということができる。
【００２１】
従来のマシンラーニングは、統計学基盤の分類、回帰、群集モデルが中心であった。特に、分類、回帰モデルの指導学習では学習データの特性とこのような特性に基づいて新しいデータを区別する学習モデルを人が事前に定義した。
【００２２】
一方、最近は、従来のマシンラーニングとは異なり、ディープラーニング技術が発展している。ディープラーニングは、人工ニューラルネットワーク（Artificial Neural Networks：ＡＮＮ）に基づいてコンピュータが自ら人のように学習できる人工知能技術である。すなわち、ディープラーニングは、コンピュータが自ら特性を見出して判別することである。
【００２３】
ディープラーニングの発展を加速化した要因の１つとして、オープンソースで提供されるディープラーニングフレームワークがある。例えば、ディープラーニングフレームワークとしては、カナダモントリオール大学のテアノ（Theano）、米国ニューヨーク大学のトーチ（Torch）、カリフォルニアバークレー大学のカフェ（Caffe）、グーグルのテンソルフロー（TensorFlow）などがある。
【００２４】
ディープラーニングフレームワークの公開により、効果的な学習及び認識のために、ディープラーニングアルゴリズム以外に学習過程、学習方法、学習に試用するデータの抽出及び選定がさらに重要となっている。
【００２５】
また、人工知能とマシンラーニングを様々な製品、サービスに用いるための研究が増加している。
【発明の概要】
【発明が解決しようとする課題】
【００２６】
本発明の目的は、障害物の属性を判断し、障害物の属性によって走行パターンを調整することができるため、信頼性の高い障害物認識及び回避動作を実行できる移動ロボット及びその制御方法を提供することにある。
【００２７】
本発明の目的は、障害物の認識結果に応じて前進、後退、停止、迂回などの動作を行うことにより移動ロボット自体の安定性及び使用者の利便性を向上し、運転効率、掃除効率を向上できる移動ロボット及びその制御方法を提供することにある。
【００２８】
本発明の目的は、マシンラーニングに基づいて障害物の属性を正確に認識できる移動ロボット及びその制御方法を提供することにある。
【００２９】
本発明の目的は、効率的にマシンラーニングを行うことができ、障害物属性認識に使用できるデータを抽出する移動ロボット及びその制御方法を提供することにある。
【課題を解決するための手段】
【００３０】
上記又は他の目的を達成するために、本発明の一側面による移動ロボットは、本体を移動させる走行部、本体の周辺の画像を取得する画像取得部、画像取得部が取得する画像を保存する保存部、移動中に障害物を感知する１つ以上のセンサを含むセンサ部、及びセンサ部が感知する障害物の方向に対応して画像取得部が取得する画像の一部領域を抽出するように制御する制御部を含むことにより、マシンラーニング及び障害物属性認識に効率的なデータを抽出することができる。
【００３１】
また、上記又は他の目的を達成するために、本発明の一側面による移動ロボットは、抽出された画像からマシンラーニング（machine learning）により既に学習された障害物を認識する障害物認識モジュールと、認識された障害物の属性に基づいて、走行部の駆動を制御する走行制御モジュールとを含むことにより、安定性、使用者の利便性、運転効率、掃除効率を向上させることができる。
【００３２】
また、上記又は他の目的を達成するために、本発明の一側面による移動ロボットの制御方法は、センサ部により、移動中に障害物を感知するステップ、センサ部が感知する障害物の方向に対応して画像取得部が取得する画像の一部領域を抽出するステップ、抽出された画像から障害物を認識するステップ、及び認識された障害物の属性に基づいて、走行部の駆動を制御するステップを含むことができる。
【発明の効果】
【００３３】
本発明の実施形態のうち少なくとも１つによれば、移動ロボットが、障害物の属性を判断し、障害物の属性によって走行パターンを調整することができるため、信頼性の高い障害物認識及び回避動作を行うことができる。
【００３４】
また、本発明の実施形態のうち少なくとも１つによれば、障害物の認識結果に応じて前進、後退、停止、迂回などの動作を行うことにより移動ロボット自体の安定性及び使用者の利便性を向上し、運転効率、掃除効率を向上できる移動ロボット及びその制御方法を提供することができる。
【００３５】
また、本発明の実施形態のうち少なくとも１つによれば、マシンラーニングに基づいて障害物の属性を正確に認識できる移動ロボット及びその制御方法を提供することができる。
【００３６】
また、本発明の実施形態のうち少なくとも１つによれば、移動ロボットが、効率的にマシンラーニングを行うことができ、障害物属性認識に使用できるデータを抽出することができる。
【００３７】
一方、その他の多様な効果は、後述する本発明の実施形態による詳細な説明において直接的又は暗示的に開示される。
【図面の簡単な説明】
【００３８】
【図１】従来の移動ロボットの障害物感知及び回避方法に関する説明に参照される図である。
【図２】本発明の一実施形態による移動ロボット及び移動ロボットを充電する充電台を示す斜視図である。
【図３】図２に示す移動ロボットの上面部を示す図である。
【図４】図２に示す移動ロボットの正面部を示す図である。
【図５】図２に示す移動ロボットの底面部を示す図である。
【図６−７】本発明の実施形態による移動ロボットの主要構成間の制御関係を示すブロック図である。
【図８】本発明の一実施形態によるサーバの簡略な内部ブロック図の一例である。
【図９−１２】ディープラーニング（Deep Learning）に関する説明に参照される図である。
【図１３−１４】障害物認識に関する説明に参照される図である。
【図１５】本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【図１６】本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【図１７−２５】本発明の実施形態による移動ロボットの制御方法に関する説明に参照される図である。
【図２６】本発明の一実施形態による移動ロボットとサーバの動作方法に関する説明に参照される図である。
【図２７】本発明の一実施形態による移動ロボットとサーバの動作方法を示すフローチャートである。
【図２８】本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【図２９】本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【図３０−３４】本発明の実施形態による移動ロボットの制御方法に関する説明に参照される図である。
【発明を実施するための形態】
【００３９】
以下、添付図面を参照して本発明の実施形態について詳細に説明する。しかしながら、本発明がこのような実施形態に限定されるものではなく、様々な形態に変形できることは言うまでもない。
【００４０】
図においては、本発明を明確かつ簡略に説明するために説明と関係ない部分の図示を省略し、明細書全体にわたって同一又は極めて類似の部分に対しては同一の図面参照符号を用いる。
【００４１】
一方、以下の説明で使用される構成要素に対する接尾辞「モジュール」及び「部」は明細書作成の容易さだけが考慮されて付与されるものであって、それ自体で特別に重要な意味又は役割を付与するものではない。従って、前記「モジュール」及び「部」は互いに混用して用いられることもできる。
【００４２】
本発明の一実施形態による移動ロボット１００は、車輪などを用いて自ら移動可能なロボットを意味し、家庭用ヘルパーロボット及びロボット掃除機などがある。以下、図面を参照して、移動ロボットのうちの掃除機能を有するロボット掃除機を例にして説明するが、本発明は、これに限定されるものではない。
【００４３】
図２は、本発明の一実施形態による移動ロボット及び移動ロボットを充電する充電台を示す斜視図である。
【００４４】
図３は、図２に示す移動ロボットの上面部を示す図であり、図４は、図２に示す移動ロボットの正面部を示す図であり、図５は、図２に示す移動ロボットの底面部を示す図である。
【００４５】
図６及び図７は、本発明の実施形態による移動ロボットの主要構成間の制御関係を示すブロック図である。
【００４６】
図３ないし図７を参照すると、移動ロボット１００、１００ａ、１００ｂは、本体１１０と、本体１１０の周辺の画像を取得する画像取得部１２０、１２０ａ、１２０ｂとを含む。
【００４７】
以下、本体１１０の各部分の定義において、走行区域内の天井を向いた部分を上面部（図３を参照）と定義し、走行区域内の床面を向いた部分を底面部（図５を参照）と定義し、上面部と底面部間に本体１１０の周縁の部分のうち走行方向を向いた部分を正面部（図４を参照）と定義する。
【００４８】
移動ロボット１００、１００ａ、１００ｂは、本体１１０を移動させる走行部１６０を含む。走行部１６０は、本体１１０を移動させる少なくとも１つの駆動輪１３６を含む。走行部１６０は、駆動輪１３６に連結されて駆動輪を回転させる駆動モータ（図示せず）を含む。駆動輪１３６は、本体１１０の左側及び右側にそれぞれ備えられることができ、以下、それぞれ左輪１３６（Ｌ）及び右輪１３６（Ｒ）という。
【００４９】
左輪１３６（Ｌ）と右輪１３６（Ｒ）は、１つの駆動モータにより駆動されることもできるが、必要に応じて左輪１３６（Ｌ）を駆動させる左輪駆動モータと右輪１３６（Ｒ）を駆動させる右輪駆動モータがそれぞれ備えられることもできる。左輪１３６（Ｌ）と右輪１３６（Ｒ）の回転速度に差を持たせて左側又は右側に本体１１０の走行方向を転換することができる。
【００５０】
本体１１０の底面部には空気の吸入が行われる吸入口１１０ｈが形成され、本体１１０内には吸入口１１０ｈを通じて空気が吸入できるように吸引力を供給する吸入装置（図示せず）と、吸入口１１０ｈを通じて空気と共に吸入された塵を集塵するダストボックス（図示せず）とが備えられることができる。
【００５１】
本体１１０は、移動ロボット１００、１００ａ、１００ｂを構成する各種部品が収容される空間を形成するケース１１１を含む。ケース１１１には、前記ダストボックスの挿入と除去のための開口部が形成され、開口部を開閉するダストボックスカバー１１２がケース１１１に対して回転可能に備えられることができる。
【００５２】
吸入口１１０ｈから露出するブラシを有するロール型のメインブラシ１３４と、本体１１０の底面部前方側に位置し、放射状に延長された複数の羽根からなるブラシを有する補助ブラシ１３５とが備えられることができる。これらブラシ１３４、１３５の回転により走行区域内の床面から塵が分離され、このように床面から分離された塵は吸入口１１０ｈを通じて吸入されてダストボックスに集まる。
【００５３】
バッテリ１３８は、駆動モータだけでなく、移動ロボット１００、１００ａ、１００ｂの作動全般に必要な電源を供給する。バッテリ１３８が放電されると、移動ロボット１００、１００ａ、１００ｂは充電のために充電台２００に復帰する走行を行うことができ、このような復帰走行中に、移動ロボット１００、１００ａ、１００ｂは自ら充電台２００の位置を探知することができる。
【００５４】
充電台２００は、所定の復帰信号を送出する信号送出部（図示せず）を含むことができる。復帰信号は超音波信号又は赤外線信号であり得るが、必ずこれらに限定されるものではない。
【００５５】
移動ロボット１００、１００ａ、１００ｂは、復帰信号を受信する信号感知部（図示せず）を含むことができる。充電台２００は信号送出部を通じて赤外線信号を送出し、信号感知部は赤外線信号を感知する赤外線センサを含むことができる。移動ロボット１００、１００ａ、１００ｂは、充電台２００から送出された赤外線信号によって充電台２００の位置に移動して充電台２００とドッキング（docking）する。このようなドッキングにより移動ロボット１００、１００ａ、１００ｂの充電端子１３３と充電台２００の充電端子２１０間に充電が行われる。
【００５６】
実施形態によっては、移動ロボット１００、１００ａ、１００ｂは、画像基盤又はレーザーパターン抽出方式の充電台２００への復帰走行を行うことができる。
【００５７】
移動ロボット１００、１００ａ、１００ｂは、本体１１０から発信される光信号などを用いて充電台２００に形成された特定パターンを認識し、これを抽出して充電台に復帰することができる。
【００５８】
例えば、本発明の一実施形態による移動ロボット１００、１００ａ、１００ｂは、パターン光センサ（図示せず）を含むことができる。
【００５９】
パターン光センサは、本体１１０に備えられてもよく、移動ロボット１００、１００ａ、１００ｂが活動する活動領域にパターン光（optical pattern）を照射し、前記パターン光が照射された領域を撮影して入力画像を取得することができる。例えば、前記パターン光は、十字パターンなどの特定パターンの光であり得る。
【００６０】
パターン光センサは、前記パターン光を照射するパターン照射部と、前記パターン光が照射された領域を撮影するパターン画像取得部とを含むことができる。
【００６１】
パターン照射部は、光源と、パターン生成者（ＯＰＰＥ：Optical Pattern Projection Element）とを含むことができる。前記光源から入射した光が前記パターン生成者に透過することにより生成される前記パターン光が生成される。前記光源は、レーザダイオード（Laser Diode：ＬＤ）、発光ダイオード（Light Emitteing Diode：ＬＥＤ）などであり得る。
【００６２】
パターン照射部は本体の前方に向けて光を照射することができ、パターン画像取得部はパターン光が照射された領域を撮影して入力画像（input image）を取得する。パターン画像取得部は、カメラを含むことができ、このようなカメラは構造光カメラ（Structured Light Camera）であり得る。
【００６３】
一方、充電台２００は、一定の間隔で互いに離隔した２つ以上の位置標識を含むことができる。
【００６４】
位置標識は、自身の表面にパターン光が入射したとき、周辺部と区分される標識を形成する。このような標識は、位置標識の形態的な特性により、表面に入射したパターン光の形態が変形することから起因するものであり得、または、位置標識の材質的な特性による光反射率（又は、吸収率）が周辺部と異なることから起因するものであり得る。
【００６５】
位置標識は、前記標識を形成させる角部を含むことができる。位置標識の表面に入射したパターン光が角部で角をなして折れることにより、入力画像では前記標識としての尖点が確認される。
【００６６】
移動ロボット１００、１００ａ、１００ｂは、バッテリ残量が不足した場合に自動で充電台の探索を実施でき、または、使用者から充電命令が入力されたときにも充電台探索を実施できる。
【００６７】
移動ロボット１００、１００ａ、１００ｂが充電台探索を実施する場合、パターン抽出部は入力画像から尖点を抽出し、制御部１４０は抽出された尖点の位置情報を取得する。前記位置情報は、移動ロボット１００、１００ａ、１００ｂから尖点までの距離が考慮された３次元空間上での位置を含むことができる。
【００６８】
制御部１４０は、取得した尖点に対する位置情報に基づいて尖点間の実際距離を求め、これを予め設定された基準値と比較して、前記実際距離と前記基準値との差が所定の範囲内であれば充電台２００が探索されたと判断することができる。
【００６９】
または、移動ロボット１００、１００ａ、１００ｂは、画像取得部１２０のカメラにより周辺画像を取得した後、取得された画像から充電台２００に対応する形状を抽出、識別して充電台２００に復帰することができる。
【００７０】
また、移動ロボット１００、１００ａ、１００ｂは、画像取得部１２０のカメラにより周辺画像を取得し、充電台２００から発信される特定光信号を識別して充電台に復帰することができる。
【００７１】
画像取得部１２０は、走行区域を撮影するものであり、カメラモジュールを含むことができる。前記カメラモジュールは、デジタルカメラを含むことができる。デジタルカメラは、少なくとも１つの光学レンズと、光学レンズを通過した光により像が結ばれる複数の光ダイオード（photodiode）（例えば、ピクセル（pixel））を含んで構成されるイメージセンサ（image sensor）（例えば、ＣＭＯＳイメージセンサ ）と、光ダイオードから出力された信号に基づいて画像を構成するデジタル信号処理器（ＤＳＰ：Digital Signal Processor）とを含むことができる。デジタル信号処理器は、静止画像だけでなく、静止画像で構成されたフレームからなる動画像を生成することもできる。
【００７２】
好ましくは、画像取得部１２０は、本体１１０の前方の画像を取得するように備えられる前面カメラ１２０ａと、本体１１０の上面部に備えられて、走行区域内の天井に対する画像を取得する上部カメラ１２０ｂとを備えるが、画像取得部１２０の位置と撮影範囲が必ずこれに限定されることではない。
【００７３】
本実施形態の場合、移動ロボットの一部部位（例えば、前方、後方、底面）にカメラが設置されており、掃除時に撮像画像を継続的に取得することができる。このようなカメラは、撮影効率のために各部位別に複数設置されることもできる。カメラにより撮像された画像は、該当空間に存在する塵、髪の毛、床面などの物質の種類の認識、掃除可否、又は掃除時点の確認に用いることができる。
【００７４】
前面カメラ１２０ａは、移動ロボット１００、１００ａ、１００ｂの走行方向の前面に存在する障害物又は掃除領域の状況を撮影することができる。
【００７５】
本発明の一実施形態によれば、画像取得部１２０は、本体１１０の周辺を連続的に撮影して複数の画像を取得することができ、取得された複数の画像は保存部１５０に保存される。
【００７６】
移動ロボット１００、１００ａ、１００ｂは、複数の画像を用いて障害物認識の正確性を向上させるか、複数の画像のうち１つ以上の画像を選択して効果的なデータを用いることにより障害物認識の正確性を向上させることができる。
【００７７】
また、移動ロボット１００、１００ａ、１００ｂは、移動ロボットの動作、状態に関する各種データをセンシングするセンサを含むセンサ部１７０を含むことができる。
【００７８】
例えば、センサ部１７０は、前方の障害物を感知する障害物感知センサ１３１を含むことができる。また、センサ部１７０は、走行区域内の床面に崖が存在するか否か感知する崖感知センサ１３２と、床面の画像を取得する下部カメラセンサ１３９をさらに含むことができる。
【００７９】
図２及び図４を参照すると、障害物感知センサ１３１は、移動ロボット１００の外周面に所定間隔で設置される複数のセンサを含むことができる。
【００８０】
例えば、センサ部１７０は、本体１１０の前面に配置される第１センサ、前記第１センサから左右に離隔して配置される第２センサ及び第３センサを含むことができる。
【００８１】
障害物感知センサ１３１は、赤外線センサ、超音波センサ、ＲＦセンサ、地磁気センサ、ＰＳＤ（Position Sensitive Device）センサなどを含むことができる。
【００８２】
一方、障害物感知センサ１３１に含まれるセンサの位置と種類は移動ロボットの機種によって異なり、障害物感知センサ１３１は、より多様なセンサを含むことができる。
【００８３】
障害物感知センサ１３１は、室内の壁や障害物との距離を感知するセンサであり、本発明は、その種類に限定されないが、以下では超音波センサを例にして説明する。
【００８４】
障害物感知センサ１３１は、移動ロボットの走行（移動）方向に存在する物体、特に障害物を感知して障害物情報を制御部１４０に伝達する。すなわち、障害物感知センサ１３１は、移動ロボットの移動経路、前方や側面に存在する突出物、家内の什器、家具、壁面、壁角部などを感知してその情報を制御ユニットに伝達することができる。
【００８５】
ここで、制御部１４０は、超音波センサにより受信した少なくとも２つの信号に基づいて障害物の位置を感知し、感知された障害物の位置によって移動ロボット１００の動作を制御することができる。
【００８６】
実施形態によっては、ケース１１０の外側面に備えられる障害物感知センサ１３１は発信部と受信部を含むことができる。
【００８７】
例えば、超音波センサは、少なくとも１つ以上の発信部及び少なくとも２つ以上の受信部が互い違いに備えられることができる。これにより、多様な角度で信号を放射し、障害物に反射された信号を多様な角度で受信することができる。
【００８８】
実施形態によっては、障害物感知センサ１３１により受信された信号は、増幅、フィルタリングなどの信号処理過程を経ることができ、その後、障害物までの距離及び方向が算出されることができる。
【００８９】
一方、センサ部１７０は、本体１１０の駆動による移動ロボット１００、１００ａ、１００ｂの動作を感知して動作情報を出力する動作感知センサをさらに含むことができる。動作感知センサとしては、ジャイロセンサ（Gyro Sensor）、ホイールセンサ（Wheel Sensor）、加速度センサ（Acceleration Sensor）などを用いることができる。
【００９０】
ジャイロセンサは、移動ロボット１００、１００ａ、１００ｂが運転モードによって動くときに回転方向を感知して回転角を検出する。ジャイロセンサは、移動ロボット１００、１００ａ、１００ｂの角速度を検出して角速度に比例する電圧値を出力する。制御部１４０は、ジャイロセンサから出力される電圧値を用いて回転方向及び回転角を算出する。
【００９１】
ホイールセンサは、左輪１３６（Ｌ）と右輪１３６（Ｒ）に連結されて車輪の回転数を感知する。ここで、ホイールセンサは、ロータリーエンコーダ（Rotary Encoder）であり得る。ロータリーエンコーダは、左輪１３６（Ｌ）と右輪１３６（Ｒ）の回転数を感知して出力する。
【００９２】
制御部１４０は、回転数を用いて左右側の車輪の回転速度を演算することができる。また、制御部１４０は、左輪１３６（Ｌ）と右輪１３６（Ｒ）の回転数差を用いて回転角を演算することができる。
【００９３】
加速度センサは、移動ロボット１００、１００ａ、１００ｂの速度変化、例えば、出発、停止、方向転換、物体との衝突などによる移動ロボット１００、１００ａ、１００ｂの変化を感知する。加速度センサは、主車輪や補助車輪の隣接位置に取り付けられて、車輪の滑りや空転を検出することができる。
【００９４】
また、加速度センサは、制御部１４０に内蔵されて移動ロボット１００、１００ａ、１００ｂの速度変化を感知することができる。すなわち、加速度センサは、速度変化による衝撃量を検出してそれに対応する電圧値を出力する。従って、加速度センサは、電子式バンパーの機能を行うことができる。
【００９５】
制御部１４０は、動作感知センサから出力された動作情報に基づいて移動ロボット１００、１００ａ、１００ｂの位置変化を算出することができる。このような位置は画像情報を用いた絶対位置に対応して相対位置となる。移動ロボットは、このような相対位置認識により画像情報と障害物情報を用いた位置認識の性能を向上させることができる。
【００９６】
一方、移動ロボット１００、１００ａ、１００ｂは、充電可能なバッテリ１３８を備えてロボット掃除機内に電源を供給する電源供給部（図示せず）を含むことができる。
【００９７】
前記電源供給部は、移動ロボット１００、１００ａ、１００ｂの各構成要素に駆動電源と動作電源を供給し、電源残量が不足すると充電台２００から充電電流が供給されて充電される。
【００９８】
移動ロボット１００、１００ａ、１００ｂは、バッテリ１３８の充電状態を感知し、感知結果を制御部１４０に送信するバッテリ感知部（図示せず）をさらに含むことができる。バッテリ１３８はバッテリ感知部に接続されてバッテリ残量及び充電状態が制御部１４０に伝達される。バッテリ残量は出力部（図示せず）の画面に表示される。
【００９９】
また、移動ロボット１００、１００ａ、１００ｂは、オン／オフ（On/Off）又は各種命令を入力できる操作部１３７を含む。操作部１３７により移動ロボット１００の作動全般に必要な各種制御命令が入力される。また、移動ロボット１００、１００ａ、１００ｂは出力部（図示せず）を含み、予約情報、バッテリ状態、動作モード、動作状態、エラー状態などを表示することができる。
【０１００】
図６及び図７を参照すると、移動ロボット１００ａ、１００ｂは、現在位置を認識するなどの各種情報を処理して判断する制御部１４０、及び各種データを保存する保存部１５０を含む。また、移動ロボット１００、１００ａ、１００ｂは、外部端末機とデータを送受信する通信部１９０をさらに含むことができる。
【０１０１】
外部端末機は、移動ロボット１００ａ、１００ｂを制御するためのアプリケーションを備え、アプリケーションの実行により移動ロボット１００ａ、１００ｂが掃除する走行区域に対するマップを表示し、マップ上に特定領域を掃除するように領域指定を行うことができる。外部端末機は、例えば、マップ設定のためのアプリケーション（application）が搭載されたリモコン、ＰＤＡ、ラップトップ（laptop）、スマートフォン、タブレットなどであり得る。
【０１０２】
外部端末機は、移動ロボット１００ａ、１００ｂと通信して、マップと共に移動ロボットの現在位置を表示することができ、複数の領域に関する情報が表示される。また、外部端末機は、移動ロボットの走行によってその位置を更新して表示する。
【０１０３】
制御部１４０は、移動ロボット１００ａ、１００ｂを構成する画像取得部１２０、操作部１３７、走行部１６０を制御して、移動ロボット１００の動作全般を制御する。
【０１０４】
保存部１５０は、移動ロボット１００の制御に必要な各種情報を記録するものであり、揮発性又は不揮発性記録媒体を含むことができる。記録媒体は、マイクロプロセッサ（micro processor）により読み取られるデータを保存したものであり、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Disk）、ＳＤＤ（Silicon Disk Drive）、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピディスク、光データ保存装置などを含むことができる。
【０１０５】
また、保存部１５０には走行区域に対するマップ（Map）が保存される。マップは、移動ロボット１００ａ、１００ｂと有線又は無線通信により情報を交換できる外部端末機、サーバなどにより入力されたものでもあり得、移動ロボット１００ａ、１００ｂが自ら学習して生成したものでもあり得る。
【０１０６】
マップには走行区域内の部屋の位置が表示される。また、移動ロボット１００ａ、１００ｂの現在位置がマップ上に表示され、マップ上での移動ロボット１００ａ、１００ｂの現在の位置は、走行過程で更新されることができる。外部端末機は保存部１５０に保存されたマップと同一のマップを保存する。
【０１０７】
保存部１５０は、掃除履歴情報を保存することができる。このような掃除履歴情報は掃除を行う度に生成される。
【０１０８】
保存部１５０に保存される走行区域に対するマップは、掃除中に走行に用いられるナビゲーションマップ（Navigation map）、位置認識に用いられるＳＬＡＭ（Simultaneous localization and mapping）マップ、障害物などにぶつかると当該情報を保存して学習して掃除時に用いる学習マップ、全域位置認識に用いられる全域位置マップ、認識された障害物に関する情報が記録される障害物認識マップなどであり得る。
【０１０９】
一方、前述したように、用途別に保存部１５０にマップを区分して保存、管理することができるが、マップが用途別に明確に区分されないこともある。例えば、少なくとも２つ以上の用途に利用できるように１つのマップに複数の情報を保存することもできる。例えば、学習マップ上に認識された障害物情報が記録されて障害物認識マップに代わることができ、位置認識に用いられるＳＬＡＭマップを用いて全域位置を認識することにより全域位置マップに代わるか、全域位置マップと共に用いられることができる。
【０１１０】
制御部１４０は、走行制御モジュール１４１、位置認識モジュール１４２、地図生成モジュール１４３、及び障害物認識モジュール１４４を含むことができる。
【０１１１】
図３ないし図７を参照すると、走行制御モジュール１４１は、移動ロボット１００、１００ａ、１００ｂの走行を制御するものであり、走行設定によって走行部１６０の駆動を制御する。また、走行制御モジュール１４１は、走行部１６０の動作に基づいて移動ロボット１００、１００ａ、１００ｂの走行経路を把握することができる。例えば、走行制御モジュール１４１は、駆動輪１３６の回転速度に基づいて移動ロボット１００の現在又は過去の移動速度、走行した距離などを把握することができ、各駆動輪１３６（Ｌ）、１３６（Ｒ）の回転方向によって現在又は過去の方向転換過程も把握することができる。このように把握された移動ロボット１００、１００ａ、１００ｂの走行情報に基づいて、マップ上で移動ロボット１００、１００ａ、１００ｂの位置が更新されることができる。
【０１１２】
地図生成モジュール１４３は、走行区域のマップを生成することができる。地図生成モジュール１４３は、画像取得部１２０により取得した画像を処理してマップを作成することができる。すなわち、掃除領域に対応する掃除マップを作成することができる。
【０１１３】
また、地図生成モジュール１４３は、各位置において画像取得部１２０により取得した画像を処理してマップと連係させて全域位置を認識することができる。
【０１１４】
位置認識モジュール１４２は、現在位置を推定して認識する。位置認識モジュール１４２は、画像取得部１２０の画像情報を用いて地図生成モジュール１４３と連係して位置を把握することにより、移動ロボット１００、１００ａ、１００ｂの位置が突然変更される場合も現在位置を推定して認識することができる。
【０１１５】
移動ロボット１００、１００ａ、１００ｂは、位置認識モジュール１４２により連続的な走行中に位置認識が可能であり、また、位置認識モジュール１４２無しに地図生成モジュール１４３及び障害物認識モジュール１４４によりマップを学習して現在位置を推定することができる。
【０１１６】
移動ロボット１００、１００ａ、１００ｂの走行中に、画像取得部１２０は移動ロボット１００周辺の画像を取得する。以下、画像取得部１２０により取得された画像を「取得画像」と定義する。
【０１１７】
取得画像には、天井に位置する照明、境界（edge）、コーナー（corner）、染み（blob）、屈曲（ridge）などの様々な特徴（feature）が含まれる。
【０１１８】
地図生成モジュール１４３は、それぞれの取得画像から特徴を検出する。コンピュータビジョン（Computer Vision）技術分野において、画像から特徴を検出する多様な方法（Feature Detection）がよく知られている。これら特徴の検出に適合する様々な特徴検出器（feature detector）が知られている。例えば、Ｃａｎｎｙ、Ｓｏｂｅｌ、Ｈａｒｒｉｓ＆Ｓｔｅｐｈｅｎｓ／Ｐｌｅｓｓｅｙ、ＳＵＳＡＮ、Ｓｈｉ＆Ｔｏｍａｓｉ、Ｌｅｖｅｌ ｃｕｒｖｅ ｃｕｒｖａｔｕｒｅ、ＦＡＳＴ、Ｌａｐｌａｃｉａｎ ｏｆ Ｇａｕｓｓｉａｎ、Ｄｉｆｆｅｒｅｎｃｅ ｏｆ Ｇａｕｓｓｉａｎｓ、Ｄｅｔｅｒｍｉｎａｎｔ ｏｆ Ｈｅｓｓｉａｎ、ＭＳＥＲ、ＰＣＢＲ、Ｇｒｅｙ-ｌｅｖｅｌ ｂｌｏｂｓ検出器などがある。
【０１１９】
地図生成モジュール１４３は、各特徴点に基づいてディスクリプタを算出する。地図生成モジュール１４３は、特徴検出のためにＳＩＦＴ（Scale Invariant Feature Transform）技法を用いて特徴点をディスクリプタ（descriptor）に変換することができる。
【０１２０】
一方、ディスクリプタは、特定空間内に存在する個別特徴点の群集に定義され、ｎ次元ベクトル（vector）で表記されることができる。例えば、天頂の境界（edge）、コーナー（corner）、染み（blob）、屈曲（ridge）などの様々な特徴（feature）がそれぞれのディスクリプタとして算出されて保存部１５０に保存される。
【０１２１】
各位置の取得画像から得られたディスクリプタ情報に基づいて取得画像毎に少なくとも１つのディスクリプタを所定の下位分類規則に従って複数の群に分類し、所定の下位代表規則に従って同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することができる。すなわち、個別画像から得られたディスクリプタに対して代表値を指定して標準化する過程を経ることができる。
【０１２２】
ＳＩＦＴは、撮影対象のスケール（scale）、回転、明るさ変化に対して不変な特徴を検出することができるため、同じ領域を移動ロボット１００の姿勢を変えて撮影しても不変な（すなわち、回転不変な(Rotation-invariant)）特徴を検出することができる。もちろん、これに限定されることなく、他の多様な技法（例えば、ＨＯＧ（Histogram of Oriented Gradient）、Ｈａａｒ ｆｅａｔｕｒｅ、Ｆｅｍｓ、ＬＢＰ（Local Binary Pattern）、ＭＣＴ（Modified Census Transform））が適用されることもできる。
【０１２３】
地図生成モジュール１４３は、各位置の取得画像から得たディスクリプタ情報に基づいて、取得画像毎に少なくとも１つのディスクリプタを所定の下位分類規則に従って複数の群に分類し、所定の下位代表規則に従って同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することができる。
【０１２４】
他の例として、室（room）のように所定区域内の取得画像から集まった全てのディスクリプタを所定の下位分類規則に従って複数の群に分類して前記所定の下位代表規則に従って同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することもできる。
【０１２５】
地図生成モジュール１４３は、このような過程を経て、各位置の特徴分布を求めることができる。各位置の特徴分布はヒストグラム又はｎ次元ベクトルで表現されることができる。また他の例として、地図生成モジュール１４３は、所定の下位分類規則及び所定の下位代表規則を経ずに、各特徴点から算出されたディスクリプタに基づいて未知の現在位置を推定することができる。
【０１２６】
また、位置跳躍などの理由で移動ロボット１００、１００ａ、１００ｂの現在位置が未知の状態になった場合、予め保存されているディスクリプタ又は下位代表ディスクリプタなどのデータに基づいて現在位置を推定することができる。
【０１２７】
移動ロボット１００、１００ａ、１００ｂは、未知の現在位置において画像取得部１２０により取得画像を取得する。画像から天井に位置する照明、境界（edge）、コーナー（corner）、染み（blob）、屈曲（ridge）などの様々な特徴（feature）が確認される。
【０１２８】
位置認識モジュール１４２は、取得画像から特徴を検出する。コンピュータビジョン技術分野において、画像から特徴を検出する多様な方法及びこれらの特徴の検出に適合する様々な特徴検出器についての説明は前述した通りである。
【０１２９】
位置認識モジュール１４２は、各認識特徴点に基づいて認識ディスクリプタ算出ステップを経て認識ディスクリプタを算出する。ここで、認識特徴点及び認識ディスクリプタは、障害物認識モジュール１４４で行う過程を説明するためのものであり、地図生成モジュール１４３で行う過程を説明する用語と区分するためのものである。ただ、移動ロボット１００、１００ａ、１００ｂの外部世界の特徴がそれぞれ異なる用語と定義されることにすぎない。
【０１３０】
位置認識モジュール１４２は、本特徴検出のためにＳＩＦＴ（Scale Invariant Feature Transform）技法を用いて認識特徴点を認識ディスクリプタに変換することができる。認識ディスクリプタはｎ次元ベクトル（vector）で表記されることができる。
【０１３１】
ＳＩＦＴは、前述したように、取得画像からコーナー点などの識別が容易な特徴点を選択した後、各特徴点周辺の一定区域に属するピクセルの明るさ勾配（gradient）の分布特性（明るさ変化の方向及び変化の激しさの程度）に対して、各方向に対する変化の激しさの程度を各次元に対する数値とするｎ次元ベクトル（vector）を求める画像認識技法である。
【０１３２】
位置認識モジュール１４２は、未知の現在位置の取得画像により得た少なくとも１つの認識ディスクリプタ情報に基づいて、所定の下位変換規則に従って比較対象となる位置情報（例えば、各位置の特徴分布）と比較可能な情報（下位認識特徴分布）に変換する。
【０１３３】
所定の下位比較規則に従って、それぞれの位置特徴分布をそれぞれの認識特徴分布と比較してそれぞれの類似度を算出することができる。それぞれの位置に相当する前記位置別に類似度（確率）を算出し、そのうち最大の確率が算出される位置を現在位置に決定することができる。
【０１３４】
このように、制御部１４０は、走行区域を区分して複数の領域から構成されたマップを生成するか、既に保存されているマップに基づいて本体１１０の現在位置を認識することができる。
【０１３５】
制御部１４０は、マップが生成されると、生成されたマップを通信部１９０を介して外部端末機、サーバなどに送信することができる。また、制御部１４０は、前述したように、外部端末機、サーバなどからマップが受信されると、保存部に保存することができる。
【０１３６】
さらに、制御部１４０は、走行中にマップが更新される場合、更新された情報を外部端末機に送信して外部端末機と移動ロボット１００、１００ａ、１００ｂに保存されるマップを同一にする。外部端末機と移動ロボット１００、１００ａ、１００ｂに保存されているマップが同一に維持されることにより移動端末機からの掃除命令に対して、移動ロボット１００、１００ａ、１００ｂが指定された領域を掃除することができ、また、外部端末機に移動ロボットの現在位置が表示されることができるようにするためである。
【０１３７】
ここで、マップは、掃除領域を複数の領域に区分し、複数の領域を連結する連結通路を含み、領域内の障害物に関する情報を含むことができる。
【０１３８】
制御部１４０は、掃除命令が入力されると、マップ上の位置と移動ロボットの現在位置が一致するか否かを判断する。掃除命令は、リモコン、操作部、又は外部端末機から入力される。
【０１３９】
制御部１４０は、現在位置がマップ上の位置と一致しない場合、又は、現在位置を確認できない場合、現在位置を認識して移動ロボット１００の現在位置を復旧した後、現在位置に基づいて指定領域に移動するように走行部１６０を制御することができる。
【０１４０】
現在位置がマップ上の位置と一致しない場合、又は、現在位置が確認できない場合、位置認識モジュール１４２は、画像取得部１２０から入力される取得画像を分析してマップに基づいて現在位置を推定することができる。また、障害物認識モジュール１４４又は地図生成モジュール１４３も同様の方式で現在位置を認識することができる。
【０１４１】
位置を認識して移動ロボット１００、１００ａ、１００ｂの現在位置を復旧した後、走行制御モジュール１４１は現在位置から指定領域に走行経路を算出し、走行部１６０を制御して指定領域に移動する。
【０１４２】
サーバから掃除パターン情報を受信すると、走行制御モジュール１４１は、受信した掃除パターン情報によって、全体走行区域を複数の領域に分け、１つ以上の領域を指定領域に設定することができる。
【０１４３】
また、走行制御モジュール１４１は、受信した掃除パターン情報によって走行経路を算出し、走行経路に沿って走行し、掃除を行うことができる。
【０１４４】
制御部１４０は、設定された指定領域に対する掃除が完了すると、掃除記録を保存部１５０に保存することができる。
【０１４５】
また、制御部１４０は、通信部１９０を介して移動ロボット１００の動作状態又は掃除状態を所定周期で外部端末機、サーバに送信することができる。
【０１４６】
それにより、外部端末機は、受信されるデータに基づいて、実行中のアプリケーションの画面上にマップと共に移動ロボットの位置を表示し、また掃除状態に関する情報を出力する。
【０１４７】
本発明の実施形態による移動ロボット１００、１００ａ、１００ｂは、一方向に障害物や壁面が感知されるまで移動する途中、障害物認識モジュール１４４が障害物を認識すると、認識された障害物の属性によって直進、回転などの走行パターンを決定することができる。
【０１４８】
例えば、認識された障害物の属性が乗り越えられる種類の障害物であると、移動ロボット１００、１００ａ、１００ｂは直進し続けることができる。または、認識された障害物の属性が乗り越えられない種類の障害物であると、移動ロボット１００、１００ａ、１００ｂは回転して一定距離を移動し、再び最初移動方向の反対方向に障害物が感知される距離まで移動してジグザグ状に走行することができる。
【０１４９】
本発明の実施形態による移動ロボット１００、１００ａ、１００ｂは、マシンラーニング（machine learning）基盤の障害物認識及び回避を行うことができる。
【０１５０】
制御部１４０は、入力画像からマシンラーニング（machine learning）により既に学習された障害物を認識する障害物認識モジュール１４４と、前記認識された障害物の属性に基づいて走行部１６０の駆動を制御する走行制御モジュール１４１とを含むことができる。
【０１５１】
本発明の実施形態による移動ロボット１００、１００ａ、１００ｂは、マシンラーニングにより障害物の属性が学習された障害物認識モジュール１４４を含むことができる。
【０１５２】
マシンラーニングとは、コンピュータに人が直接ロジック（Logic）を指示しなくてもデータによりコンピュータが学習を行い、これにより、コンピュータが自ら問題を解決するようにすることを意味する。
【０１５３】
ディープラーニング（Deep Learning）とは、人工知能を構成するための人工ニューラルネットワーク（Artificial Neural Networks: ＡＮＮ）に基づいてコンピュータに人の考え方を教える方法であり、人が教えなくてもコンピュータが自ら人のように学習できる人工知能技術である。
【０１５４】
前記人工ニューラルネットワーク（ＡＮＮ）は、ソフトウェア形態で実現されるか、チップ（chip）などのハードウェア形態で実現されることができる。
【０１５５】
障害物認識モジュール１４４は、障害物の属性が学習されたソフトウェア又はハードウェア形態の人工ニューラルネットワーク（ＡＮＮ）を含むことができる。
【０１５６】
例えば、障害物認識モジュール１４４は、ディープラーニング（Deep Learning）により学習されたＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＤＢＮ（Deep Belief Network）などの深層ニューラルネットワーク（Deep Neural Network：ＤＮＮ）を含むことができる。
【０１５７】
ディープラーニング（Deep Learning）については図９ないし図１２を参照して詳細に後述する。
【０１５８】
障害物認識モジュール１４４は、前記深層ニューラルネットワーク（ＤＮＮ）に含まれたノード間の加重値（weight）に基づいて入力される画像データに含まれる障害物の属性を判別することができる。
【０１５９】
一方、移動ロボット１００、１００ａ、１００ｂの移動中にセンサ部１７０が障害物を感知すると、制御部１４０は、センサ部１７０が感知する障害物の方向に対応して画像取得部１２０が取得する画像の一部領域を抽出するように制御することができる。
【０１６０】
画像取得部１２０、特に前面カメラ１２０ａは、前記移動ロボット１００、１００ａ、１００ｂの移動方向から所定角度の範囲内の画像を取得することができる。
【０１６１】
制御部１４０は、画像取得部１２０、特に前面カメラ１２０ａが取得した画像全体を用いることではなく、一部領域のみを用いて移動方向に存在する障害物の属性を判別することができる。
【０１６２】
図６の実施形態を参照すると、制御部１４０は、センサ部１７０が感知する障害物の方向に対応して画像取得部１２０が取得する画像の一部領域を抽出する画像処理モジュール１４５をさらに含むことができる。
【０１６３】
または、図７の実施形態を参照すると、移動ロボット１００ｂは、センサ部１７０が感知する障害物の方向に対応して画像取得部１２０が取得する画像の一部領域を抽出する別途の画像処理部１２５をさらに含むことができる。
【０１６４】
図６の実施形態による移動ロボット１００ａと図７の実施形態による移動ロボット１００ｂは、画像処理モジュール１４５、画像処理部１２５以外に他の構成は同一である。
【０１６５】
または、実施形態によっては、図６及び図７の実施形態とは異なり、画像取得部１２０が直接前記画像の一部領域を抽出することもできる。
【０１６６】
前記マシンラーニングにより学習された障害物認識モジュール１４４は、その特性上、学習した対象が入力画像データにおいて多くの部分を占めるほど認識率が高い。
【０１６７】
従って、本発明は、超音波センサなどのセンサ部１７０が感知する障害物の方向によって画像取得部１２０が取得した画像のうち他の領域を抽出して認識用データとして用いることにより、認識率を高めることができる。
【０１６８】
障害物認識モジュール１４４は、マシンラーニング（machine learning）により既に学習されたデータに基づいて、抽出された画像から障害物を認識することができる。
【０１６９】
また、走行制御モジュール１４１は、前記認識された障害物の属性に基づいて走行部１６０の駆動を制御することができる。
【０１７０】
一方、制御部１４０は、前記障害物が前記本体の前面の右方向で感知される場合、前記画像取得部が取得する画像の右側下段領域を抽出し、前記障害物が前記本体の前面の左方向で感知される場合、前記画像取得部が取得する画像の左側下段領域を抽出し、前記障害物が前記本体の前面方向で感知される場合、前記画像取得部が取得する画像の中央（center）下段領域を抽出するように制御することができる。
【０１７１】
また、制御部１４０は、前記画像取得部が取得する画像における抽出対象領域を、前記感知される障害物の方向に対応するように移動（shift）させて抽出するように制御することができる。
【０１７２】
画像取得部１２０が取得した画像の一部領域を切り出して（cropping）抽出する構成については図１５ないし図２１を参照して詳細に後述する。
【０１７３】
また、移動ロボット１００、１００ａ、１００ｂの移動中にセンサ部１７０が障害物を感知すると、制御部１４０は、本体１１０の移動方向と移動速度に基づいて、画像取得部１２０が取得する連続した複数の画像のうちセンサ部１７０の障害物感知時点以前の特定時点画像を選択するように制御することができる。
【０１７４】
センサ部１７０の障害物感知時点をトリガ（trigger）信号にして、画像取得部１２０が画像を取得する場合は、移動ロボットが継続して移動しているため、障害物が取得画像に含まれないか、小さく含まれることがある。
【０１７５】
従って、本発明の一実施形態は、本体１１０の移動方向と移動速度に基づいて、画像取得部１２０が取得する連続した複数の画像のうちセンサ部１７０の障害物感知時点以前の特定時点画像を選択して、障害物認識用データとして用いることができる。
【０１７６】
一方、障害物認識モジュール１４４は、マシンラーニング（machine learning）により既に学習されたデータに基づいて前記選択された特定時点画像に含まれる障害物の属性を認識することができる。
【０１７７】
一方、保存部１５０には障害物属性判別のための入力データ、前記深層ニューラルネットワーク（ＤＮＮ）を学習するためのデータが保存されることができる。
【０１７８】
保存部１５０には画像取得部１２０が取得した原本画像と所定領域が抽出された抽出画像が保存されることができる。
【０１７９】
また、実施形態によっては、保存部１５０には前記深層ニューラルネットワーク（ＤＮＮ）構造をなすウェイト（weight）、バイアス（bias）が保存される。
【０１８０】
または、実施形態によっては、前記深層ニューラルネットワーク構造をなすウェイト（weight）、バイアス（bias）は障害物認識モジュール１４４のエンベディッドメモリ（embedded memory）に保存される。
【０１８１】
一方、障害物認識モジュール１４４は、画像取得部１２０が取得する画像の一部領域を抽出する度に前記抽出された画像をトレーニング（training）データとして用いて学習過程を行うか、所定数以上の抽出画像が取得された後に学習過程を行うことができる。
【０１８２】
すなわち、障害物認識モジュール１４４は、障害物を認識する度に認識結果を追加してウェイト（weight）などの深層ニューラルネットワーク（ＤＮＮ）構造をアップデート（update）するか、所定回数のトレーニングデータが確保された後に確保されたトレーニングデータにより学習過程を行ってウェイト（weight）などの深層ニューラルネットワーク（ＤＮＮ）構造をアップデートすることができる。
【０１８３】
または、移動ロボット１００、１００ａ、１００ｂは、通信部１９０を介して前記抽出された画像を所定サーバに送信し、前記所定サーバからマシンラーニングに関するデータを受信することができる。
【０１８４】
この場合、移動ロボット１００、１００ａ、１００ｂは、前記所定サーバから受信したマシンラーニングに関するデータに基づいて障害物認識モジュール１４１をアップデート（update）することができる。
【０１８５】
図８は、本発明の一実施形態によるサーバの簡略な内部ブロック図の一例である。
【０１８６】
図８を参照すると、サーバ７０は、通信部８２０、保存部８３０、学習モジュール８４０、及びプロセッサ８１０を備える。
【０１８７】
プロセッサ８１０は、サーバ７０の全般的な動作を制御することができる。
【０１８８】
一方、サーバ７０は、前記移動ロボット１００、１００ａ、１００ｂなどのホームアプライアンスのメーカーが運営するサーバ又はサービス提供者が運営するサーバであり得、一種のクラウド（Cloud）サーバであり得る。
【０１８９】
通信部８２０は、携帯端末機、移動ロボット１００、１００ａ、１００ｂなどのホームアプライアンス、ゲートウェイなどから状態情報、動作情報、操作情報などの各種データを受信することができる。
【０１９０】
また、通信部８２０は、受信される各種情報に対応するデータを携帯端末機、移動ロボット１００、１００ａ、１００ｂなどのホームアプライアンス、ゲートウェイなどに送信することができる。
【０１９１】
このために、通信部８２０は、インターネットモジュール、移動通信モジュールなど、１つ以上の通信モジュールを備えることができる。
【０１９２】
保存部８３０は、受信される情報を保存し、これに対応する結果情報生成のためのデータを備えることができる。
【０１９３】
また、保存部８３０は、マシンラーニングに用いられるデータ、結果データなどを保存することができる。
【０１９４】
学習モジュール８４０は、前記移動ロボット１００、１００ａ、１００ｂなどのホームアプライアンスの学習機の役割を果たすことができる。
【０１９５】
学習モジュール８４０には人工ニューラルネットワーク、例えば、ＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＤＢＮ（Deep Belief Network）などの深層ニューラルネットワーク（Deep Neural Network：ＤＮＮ）が含まれることができ、深層ニューラルネットワークを学習することができる。
【０１９６】
学習モジュール８４０の学習方法としては、自律学習（unsupervised learning）と指導学習（supervised learning）が両方とも用いられることができる。
【０１９７】
一方、制御部８１０は、設定によって学習した後に前記移動ロボット１００、１００ａ、１００ｂなどのホームアプライアンスの人工ニューラルネットワーク構造を学習された人工ニューラルネットワーク構造にアップデートさせるように制御することができる。
【０１９８】
図９ないし図１２は、ディープラーニング（Deep Learning）に関する説明に参照される図である。
【０１９９】
マシンラーニング（Machine Learning）の一種であるディープラーニング（Deep Learning）技術は、データに基づいて多段階で深い水準まで行って学習するものである。
【０２００】
ディープラーニング（Deep learning）は、段階を高くするほど複数のデータから核心的なデータを抽出するマシンラーニング（Machine Learning）アルゴリズムの集合を示すことができる。
【０２０１】
ディープラーニング構造は人工ニューラルネットワーク（ＡＮＮ）を含むことができ、例えば、ディープラーニング構造はＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＤＢＮ（Deep Belief Network）などの深層ニューラルネットワーク（ＤＮＮ）から構成されることができる。
【０２０２】
図９を参照すると、人工ニューラルネットワーク（ＡＮＮ）は、入力レイヤ（Input Layer）、隠れレイヤ（Hiddent Layer）、及び出力レイヤ（Output Layer）を含むことができる。各レイヤは複数のノードを含み、各レイヤは次のレイヤに接続される。隣接するレイヤ間のノードはウェイト（weight）をもって互いに接続されることができる。
【０２０３】
図１０を参照すると、コンピュータ（マシン）は、投入された入力データ（１０１０）から一定のパターンを発見して特徴マップ（Feature Map）を形成する。コンピュータ（マシン）は、下位レベル特徴１０２０から、中間レベル特徴１０３０、上位レベル特徴１０４０まで抽出して、対象を認識してその結果の出力１０５０を行うことができる。
【０２０４】
人工ニューラルネットワークは、次の順序のレイヤに行くほどさらに上位レベルの特徴に抽象化することができる。
【０２０５】
図９及び図１０を参照すると、各ノードは、活性化モデルに基づいて動作することができ、活性化モデルによって入力値に対応する出力値が決定される。
【０２０６】
任意のノード、例えば、下位レベル特徴１０２０の出力値は該当ノードに接続された次のレイヤ、例えば、中間レベル特徴１０３０のノードに入力される。次のレイヤのノード、例えば、中間レベル特徴１０３０のノードには下位レベル特徴１０２０の複数のノードから出力される値が入力される。
【０２０７】
ここで、各ノードの入力値は、以前レイヤのノードの出力値にウェイト（weight）が適用された値であり得る。ウェイト（weight）は、ノード間の接続強度を意味することができる。
【０２０８】
また、ディープラーニング過程は、適切なウェイト（weight）を見出す過程と見なすこともできる。
【０２０９】
一方、任意のノード、例えば、中間レベル特徴１０３０の出力値は該当ノードに接続された次のレイヤ、例えば、上位レベル特徴１０４０のノードに入力される。次のレイヤのノード、例えば、上位レベル特徴１０４０のノードには中間レベル特徴１０３０の複数のノードから出力される値が入力される。
【０２１０】
人工ニューラルネットワークは、各レベルに対応する学習されたレイヤ（layer）を用いて、各レベルに対応する特徴情報を抽出することができる。人工ニューラルネットワークは順次抽象化して、最上位レベルの特徴情報を活用して所定対象を認識することができる。
【０２１１】
例えば、ディープラーニングによる顔認識過程について説明すると、コンピュータは、入力画像からピクセルの明るさによって明るいピクセルと暗いピクセルを区分し、枠、エッジなどの単純な形態を区分した後、もう少し複雑な形態と事物を区分することができる。最終的にコンピュータは人間の顔を規定する形態を把握することができる。
【０２１２】
本発明によるディープラーニング構造は、公知の多様な構造を用いることができる。例えば、本発明によるディープラーニング構造は、ＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＤＢＮ（Deep Belief Network）などであり得る。
【０２１３】
ＲＮＮ（Recurrent Neural Network）は、自然言語処理などに多く用いられ、時間の流れによって変わる時系列データ（Time-series data）処理に効果的な構造であって、瞬間毎にレイヤを積み上げて人工ニューラルネットワーク構造を構成することができる。
【０２１４】
ＤＢＮ（Deep Belief Network）は、ディープラーニング技法であるＲＢＭ（Restricted Boltzman Machine）を多層で積んで構成されるディープラーニング構造である。ＲＢＭ（Restricted Boltzman Machine）学習を繰り返して一定個数のレイヤになると、該当個数のレイヤを有するＤＢＮ（Deep Belief Network）を構成することができる。
【０２１５】
ＣＮＮ（Convolutional Neural Network）は、特にオブジェクト認識分野で多く用いられる構造であり、図１１及び図１２を参照して説明する。
【０２１６】
ＣＮＮ（Convolutional Neural Network）は、人が物体を認識するとき、物体の基本的な特徴を抽出した後に脳の中で複雑な計算を経てその結果に基づいて物体を認識するという仮定に基づいて作成された人の脳機能を摸写したモデルである。
【０２１７】
図１１は、ＣＮＮ（Convolutional Neural Network）構造を示す図である。
【０２１８】
ＣＮＮ（Convolutional Neural Network）も入力レイヤ（Input Layer）、隠れレイヤ（Hiddent Layer）、及び出力レイヤ（Output Layer）を含むことができる。
【０２１９】
入力レイヤ（Input Layer）には所定イメージ１１００が入力される。
【０２２０】
図１１を参照すると、隠れレイヤ（Hiddent Layer）は、複数のレイヤから構成され、コンボリューションレイヤ（convolution layer）とサブサンプリングレイヤ（sub-sampling layer）とを含むことができる。
【０２２１】
ＣＮＮ（Convolutional Neural Network）においては、基本的にコンボリューション（convolution）演算により画像の特徴を抽出するための多様なフィルタと非線形的な特性を足すためのプーリング（pooling）又は非線形活性化（non-linear activation）関数などが共に用いられる。
【０２２２】
コンボリューション（convolution）は、画像処理分野において主にフィルタ演算に用いられ、画像から特徴（feature）を抽出するためのフィルタを実現するのに用いられる。
【０２２３】
例えば、図１２を参照すると、３×３ウィンドウを移動しながら画像全体に対してコンボリューション演算を繰り返して行うと、ウィンドウの加重値（weight）値によって適正な結果を得ることができる。
【０２２４】
図１２の（ａ）を参照すると、全体イメージ中の所定領域１２１０に対して３×３ウィンドウを用いて、コンボリューション演算を行うと、結果値１２０１が出る。
【０２２５】
図１２の（ｂ）を参照すると、３×３ウィンドウを右側に１移動させた領域１２２０に対して再び結果を求めると、所定結果値１２０２が出る。
【０２２６】
すなわち、図１２の（ｃ）を参照すると、所定ウィンドウを移動させながら画像全体に対して演算を行うと、最終的な結果を得ることができる。
【０２２７】
コンボリューションレイヤ（convolution layer）は、予め定めたサイズのフィルタ（例えば、図１２に例示する３×３ウィンドウ）を用いて以前レイヤから抽出された情報をフィルタリングするコンボリューションフィルタリングを行うのに用いられる。
【０２２８】
コンボリューションレイヤ（convolution layer）は、コンボリューションフィルタを用いて入力された画像データ１１００、１１０２にコンボリューション演算を行い、入力イメージ１１００の特徴が表現された特徴マップ１１０１、１１０３を生成する。
【０２２９】
コンボリューションフィルタリングの結果として、コンボリューションレイヤ（convolution layer）に含まれたフィルタの数によってフィルタ数だけのフィルタリング画像が生成されることができる。コンボリューションレイヤは、フィルタリング画像らに含まれるノードから構成される。
【０２３０】
また、コンボリューションレイヤ（convolution layer）と対をなすサブサンプリングレイヤ（sub-sampling layer）は、対をなすコンボリューションレイヤ（convolution layer）と同じ数の特徴マップを含むことができる。
【０２３１】
サブサンプリングレイヤ（sub-sampling layer）は、サンプリング又はプーリング（pooling）により特徴マップ１１０１、１１０３の次元を減少させる。
【０２３２】
出力レイヤ（Output Layer）は、特徴マップ１１０４に表現された多様な特徴を組み合わせて入力イメージ１１００を認識する。
【０２３３】
本発明による移動ロボットの障害物認識モジュールは、前述した多様なディープラーニング構造を用いることができる。例えば、本発明が限定されることではないが、画像内のオブジェクト認識において多く用いられているＣＮＮ（Convolutional Neural Network）構造を用いることができる。
【０２３４】
一方、人工ニューラルネットワークの学習は、与えられた入力に対して所望の出力が出るようにノード間の接続線のウェイト（weight）を調整することにより行われることができる。また、人工ニューラルネットワークは学習によりウェイト（weight）値を持続的にアップデートさせることができる。さらに、人工ニューラルネットワークの学習には逆伝播（Back Propagation）などの方法が用いられることができる。
【０２３５】
図１３及び図１４は、本発明の実施形態による移動ロボットの制御方法を示すフローチャートである。
【０２３６】
図２ないし図７、及び図１３を参照すると、まず、移動ロボット１００、１００ａ、１００ｂは命令又は設定によって移動しながら掃除を行う（Ｓ１３１０）。
【０２３７】
センサ部１７０は、障害物感知センサ１３１を含み、前方の障害物を感知することができる。
【０２３８】
移動中にセンサ部１７０により障害物が感知されると（Ｓ１３２０）、画像取得部１２０は本体１１０の前方の画像を取得する（Ｓ１３３０）。
【０２３９】
この場合に、制御部１４０は、センサ部１７０が感知する障害物の方向に対応して画像取得部１２０が取得する画像の一部領域を切り出して抽出するように制御する（Ｓ１３４０）。
【０２４０】
実施形態によって、制御部１４０内の画像処理モジュール１４５が前記画像の一部領域を抽出することができる。または、制御部１４０は、別途に備えられる画像処理部１２５が一部領域を抽出するように制御することができる。または、制御部１４０は、画像取得部１２０が一部領域を抽出するように制御することができる。
【０２４１】
一方、障害物認識モジュール１４４は、マシンラーニング（machine learning）により既に学習されたデータに基づいて、前記抽出された画像から障害物を認識する（Ｓ１３５０）。
【０２４２】
障害物認識モジュール１４４は、マシンラーニングにより障害物の種類などの属性を認識するように学習された人工ニューラルネットワークを含むことができ、既に学習されたデータに基づいて障害物の属性を認識する（Ｓ１３５０）。
【０２４３】
例えば、障害物認識モジュール１４４にはディップランニング構造の１つであるＣＮＮ（Convolutional Neural Network）が搭載され、既に学習されたＣＮＮ（Convolutional Neural Network）は入力データに含まれた障害物の属性を認識してその結果を出力することができる。
【０２４４】
前記マシンラーニングにより学習された障害物認識モジュール１４４は、その特性上、学習した対象が入力画像データにおいて多くの部分を占めるほど認識率が高い。
【０２４５】
従って、本発明は、センサ部１７０が感知する障害物の方向によって画像取得部１２０が取得した画像のうち他の領域を抽出して認識用データとして用いることにより、認識率を高めることができる。
【０２４６】
画像取得部１２０が取得した画像の一部領域を切り出して（cropping）抽出する構成については図１５ないし図２１を参照して詳細に後述する。
【０２４７】
一方、走行制御モジュール１４１は、前記認識された障害物の属性に基づいて、走行部１６０の駆動を制御する（Ｓ１３６０）。
【０２４８】
例えば、走行制御モジュール１４１は、前記認識された障害物が乗り越えられない高さの障害物である場合、障害物を迂回して走行するように制御することができる。
【０２４９】
また、走行制御モジュール１４１は、低い高さの小段差のように前記認識された障害物が乗り越えられる高さの障害物である場合、継続して直進走行するように制御することができる。
【０２５０】
さらに、走行制御モジュール１４１は、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束可能性のある障害物が認識されると、障害物を迂回して走行するように制御することができる。
【０２５１】
一方、前述した障害物認識過程を複数回行い、複数の認識結果に基づいて最終認識結果を導出することにより、認識正確度をさらに向上させることができる。
【０２５２】
例えば、制御部１４０は、感知された障害物の位置情報と移動ロボットの位置情報を保存部１５０に保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ（map）に障害物地域として登録するように制御することができる。
【０２５３】
その後、登録されている障害物地域を通り過ぎる度に障害物の属性を認識し、複数の認識結果に基づいて最終障害物属性を判別することができる。
【０２５４】
制御部１４０は、所定障害物地域で画像取得部１２０により取得される画像に対して順次に障害物の属性を認識し、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別することができる。本実施形態については、図２９ないし図３４を参照して詳細に後述する。
【０２５５】
図２ないし図７、及び図１４を参照すると、まず、移動ロボット１００、１００ａ、１００ｂは命令又は設定によって移動する（Ｓ１４１０）。
【０２５６】
センサ部１７０が超音波センサを含む場合、反射される超音波信号を感知することにより障害物を認識する（Ｓ１４２０）。
【０２５７】
一方、画像取得部１２０は、持続的に移動ロボット１００、１００ａ、１００ｂの前方及び周辺を撮影するか、センサ部１７０の障害物感知によって前方及び周辺を撮影して画像を取得することができる。
【０２５８】
制御部１４０は、画像取得部１２０により取得した画像中に前記超音波信号が感知された領域に対応する領域を抽出するように制御する（Ｓ１４３０）。例えば、制御部１４０は、前記超音波信号が感知された領域が前方右側領域である場合、画像取得部１２０により取得した画像中の右側領域を抽出するように制御することができる。また、制御部１４０は、前記超音波信号が感知された領域が前方中央領域である場合、画像取得部１２０により取得した画像中の中央領域を抽出するように制御することができる。
【０２５９】
一方、制御部１４０は、マシンラーニングにより既に学習されたデータに基づいて、前記抽出された画像から感知された障害物の属性を判別することができる。
【０２６０】
また、制御部１４０は、感知された障害物が乗り越えられない高さであるか否かを判断する（Ｓ１４４０）。
【０２６１】
もし、前記認識された障害物が乗り越えられない高さの障害物である場合（Ｓ１４４０）、制御部１４０は、９０度回転した後、障害物を迂回して走行するように制御する（Ｓ１４５５）。
【０２６２】
一方、前記認識された障害物が乗り越えられる高さの障害物である場合（Ｓ１４４０）、制御部１４０は、感知された障害物の属性情報を判断する（Ｓ１４４５）。すなわち、制御部１４０は、前記認識された障害物が拘束可能性が低くて進行してもかまわない障害物であるか否かを判断することができる。
【０２６３】
進行してもかまわない障害物であると判断されると、制御部１４０は、継続して直進移動するように制御する（Ｓ１４５０）。
【０２６４】
従来は、感知された障害物が乗り越えられる高さであるか否かを判断して、低い高さの障害物の場合は直進走行した。
【０２６５】
しかしながら、電線などの障害物の場合、移動ロボットが電線に巻かれて拘束される場合が発生した。
【０２６６】
また、移動ロボットは、拘束される場合に左右に振るモーション（motion）などを適用して拘束状態から抜け出そうとするが、電線の被覆が剥ける事故などが発生することがあった。
【０２６７】
しかしながら、本発明は、マシンラーニングと画像情報を活用して障害物属性情報を認識し、認識された障害物属性によって走行パターンを決定することにより、信頼性を向上させることができる。
【０２６８】
図１５ないし図２１は、本発明の実施形態による移動ロボットの制御方法に関する説明に参照される図面であり、画像取得部１２０が取得した画像の一部領域を切り出して（cropping）抽出する具体的な例を示す。
【０２６９】
図１５を参照すると、移動ロボット１００は、センサ部１７０により移動中に扇風機などの障害物１５００を感知することができる。図１５は、障害物１５００が移動ロボット１００の移動方向の中央で感知される場合を例示する。
【０２７０】
移動ロボット１００が移動中に障害物１５００の存在を感知すると、図１６の（ａ）のように、画像取得部１２０は移動ロボット１００の前方を撮影して障害物１５００の少なくとも一部が含まれる画像１６００を取得することができる。
【０２７１】
制御部１４０は、センサ部１７０が感知する障害物１５００の方向に対応して画像取得部１２０が取得した画像１６００の一部領域１６１０を抽出するように制御することができる。
【０２７２】
図１５及び図１６を参照すると、制御部１４０は、障害物１５００が本体１１０の前面方向で感知される場合、画像取得部１２０が取得する画像の中央（center）下段領域１６１０を抽出するように制御することができる。
【０２７３】
一方、制御部１４０は、図１６の（ｂ）のように抽出された画像１６２０を障害物の属性を認識するための入力データとして用いることができる。
【０２７４】
障害物認識モジュール１４４は、マシンラーニングにより既に学習されたデータに基づいて障害物１５００が扇風機ということを認識することができる。例えば、障害物認識モジュール１４４にはディップランニング構造の１つであるＣＮＮ（Convolutional Neural Network）が搭載され、既に学習されたＣＮＮ（Convolutional Neural Network）は入力データに含まれた障害物の属性を認識してその結果を出力することができる。
【０２７５】
一方、走行制御モジュール１４１は、前記感知された障害物が進行してもかまわない障害物でない場合、回転後に進行などの回避動作を行うように走行部１６０を制御することができる。
【０２７６】
一方、前記抽出された画像１６２０は保存部１５０に保存されることができる。また、画像取得部１２０が取得した原本画像１６００も保存部１５０に保存されることができる。
【０２７７】
保存部１５０に保存されている抽出された画像１６２０はトレーニングデータとして活用されることができる。
【０２７８】
一方、制御部１４０は、障害物が本体１１０前面の右方向で感知される場合、画像取得部１２０が取得する画像の右側下段領域を抽出し、障害物が本体１１０の前面の左方向で感知される場合、画像取得部１２０が取得する画像の左側下段領域を抽出するように制御することができる。
【０２７９】
図１７は、障害物１５００が移動ロボット１００の移動方向の右側で感知される場合を例示する。
【０２８０】
図１８の（ａ）を参照すると、障害物１５００が本体１１０の前面の右方向で感知される場合、制御部１４０は、画像取得部１２０が取得する画像１８００の右側下段領域１８１０を抽出するように制御することができる。
【０２８１】
制御部１４０は、図１８の（ｂ）のように抽出された画像１８２０を障害物の属性を認識するための入力データとして用いることができる。
【０２８２】
本発明は、単に全体画像の中心領域を基準に予め設定されたサイズにクロッピング（cropping）することではなく、障害物が感知される方向に基づいて、画像中の速央、左側、右側領域を抽出することができる。
【０２８３】
従って、認識のための入力データに障害物が最大限多く含まれることができる。マシンは、画像内の比重が最も多いものを認識するので、障害物の属性認識率を向上させることができる。
【０２８４】
一方、移動ロボット１００は、所定空間の床面で走行するので、取得画像の下段部を抽出して認識のための入力データに障害物がより多く含まれるようにすることができる。
【０２８５】
一方、図１９の（ａ）、図２０の（ａ）、図２１の（ａ）を参照すると、本発明の一実施形態によるセンサ部１７０は、移動ロボット１００の本体の前面に配置される第１センサＳ１、第１センサＳ１から左右に離隔して配置される第２センサＳ２及び第３センサＳ３を含む。
【０２８６】
この場合、第１センサＳ１は発信部として動作し、第２センサＳ２及び第３センサＳ３は受信部として動作することができる。例えば、第１センサＳ１は超音波信号を放射し、第２センサＳ２及び第３センサＳ３は障害物に反射された信号を受信することができる。障害物に反射された信号を受信すると、公知の超音波を用いた認識方法を用いて障害物がある方向、障害物との距離を判断することができる。
【０２８７】
図１９の（ａ）は、障害物Ｘ１が移動ロボット１００の前面方向の中央で感知される場合を例示する。前記感知される障害物Ｘ１と第２センサＳ２間の距離Ｌ１と前記感知される障害物Ｘ１と第３センサＳ３間の距離Ｌ２が同一（Ｌ１＝Ｌ２）である場合、障害物Ｘ１が移動ロボット１００の前面方向の中央で感知されたと判断することができる。
【０２８８】
この場合、図１９の（ｂ）のようにａ１×ｂ１のサイズを有する画像取得部１２０が取得した原本画像全体１９００の中央（center）下段からａ２×ｂ２のサイズを有する所定領域１９１０を抽出することができる。
【０２８９】
一方、制御部１４０は、画像取得部１２０が取得する画像における抽出対象領域を、前記感知される障害物Ｘ１と第２センサＳ２間の距離Ｌ１と前記感知される障害物Ｘ１と第３センサＳ３間の距離Ｌ２との差に比例するように移動（shift）させて抽出するように制御することができる。
【０２９０】
図２０の（ａ）は、障害物Ｘ１が移動ロボット１００の前面の右方向で感知される場合を例示する。前記感知される障害物Ｘ１と第２センサＳ２間の距離Ｌ１が前記感知される障害物Ｘ１と第３センサＳ３間の距離Ｌ２より大きい場合（Ｌ１＞Ｌ２）、障害物Ｘ１が移動ロボット１００の前面の右方向で感知されたと判断することができる。
【０２９１】
この場合、図２０の（ｂ）のように、ａ１×ｂ１のサイズを有する画像取得部１２０が取得した原本画像全体１９００の右側下段からａ２×ｂ２のサイズを有する所定領域１９２０を抽出することができる。
【０２９２】
図１９の（ｂ）と図２０の（ｂ）を比較すると、障害物Ｘ１が右側で感知されるときの抽出対象領域１９２０の中央点ＣＰ２、開始点ＳＰ２が障害物Ｘ１が中央で感知されるときの抽出対象領域１９１０の中央点ＣＰ１、開始点ＳＰ１から所定値ｄ１だけ右側に移動（shift）されたことを確認することができる。
【０２９３】
この場合、移動（shift）される所定値ｄ１は、前記感知される障害物Ｘ１と第２センサＳ２間の距離Ｌ１と前記感知される障害物Ｘ１と第３センサＳ３間の距離Ｌ２との差（Ｌ１−Ｌ２）に比例する。
【０２９４】
図２１の（ａ）は、障害物Ｘ１が移動ロボット１００の前面の左方向で感知される場合を例示する。前記感知される障害物Ｘ１と第２センサＳ２間の距離Ｌ１が前記感知される障害物Ｘ１と第３センサＳ３間の距離Ｌ２より小さい場合（Ｌ１＜Ｌ２）、障害物Ｘ１が移動ロボット１００の前面の左方向で感知されたと判断することができる。
【０２９５】
この場合、図２１の（ｂ）のように、ａ１×ｂ１のサイズを有する画像取得部１２０が取得した原本画像全体１９００の左側下段からａ２×ｂ２のサイズを有する所定領域１９３０を抽出することができる。
【０２９６】
図１９の（ｂ）と図２１の（ｂ）を比較すると、障害物Ｘ１が左側で感知されるときの抽出対象領域１９３０の中央点ＣＰ３、開始点ＳＰ３が障害物Ｘ１が中央で感知されるときの抽出対象領域１９１０の中央点ＣＰ１、開始点ＳＰ１から所定値ｄ２だけ左側に移動（shift）されたことが確認することができる。
【０２９７】
この場合、移動（shift）される所定値ｄ２は、前記感知される障害物Ｘ１と第２センサＳ２間の距離Ｌ１と前記感知される障害物Ｘ１と第３センサＳ３間の距離Ｌ２差（Ｌ２−Ｌ１）に比例する。
【０２９８】
一方、本発明の一実施形態による移動ロボットは、前記抽出された画像をトレーニング（training）データとして用いて学習過程を行うことにより、人工ニューラルネットワーク（ＡＮＮ）、深層ニューラルネットワーク（ＤＮＮ）構造を持続的にアップデートすることができる。
【０２９９】
または、前記抽出された画像を所定サーバに送信し、前記所定サーバからマシンラーニングに関するデータを受信することができる。その後、移動ロボットは、前記所定サーバから受信したマシンラーニングに関するデータに基づいて前記障害物認識モジュールをアップデート（update）することができる。
【０３００】
図２２は、本発明の一実施形態による移動ロボットとサーバの動作方法に関する説明に参照される図であり、図２３は、本発明の一実施形態による移動ロボットとサーバの動作方法を示すフローチャートである。
【０３０１】
図２２及び図２３を参照すると、移動ロボット１００の障害物認識モジュール１４４にはＣＮＮ（Convolutional Neural Network）などの深層ニューラルネットワーク（ＤＮＮ）構造１４４ａが搭載される。
【０３０２】
既に学習された深層ニューラルネットワーク（ＤＮＮ）構造１４４ａは、認識用入力データを受信し（Ｓ２３１０）、入力データに含まれた障害物の属性を認識し（Ｓ２３２０）、その結果を出力する（Ｓ２３３０）。
【０３０３】
深層ニューラルネットワーク（ＤＮＮ）構造１４４ａが認識できないデータ（unknown data）は、保存部１５０又は障害物認識モジュール１４４内の自体保存空間１４４ｂに保存される（Ｓ２３４０）。
【０３０４】
一方、障害物認識モジュール１４４が認識できないデータ（unknown data）は、通信部１９０を介してサーバ７０に送信される（Ｓ２３４１）。また、障害物認識モジュール１４４が認識に成功したデータもサーバ７０に送信される。
【０３０５】
サーバ７０は、学習されたウェイト（weight）の構成を生成することができ、深層ニューラルネットワーク（ＤＮＮ）構造をトレーニング（training）データを用いて学習することができる。
【０３０６】
サーバ７０は、受信したデータに基づいて、深層ニューラルネットワーク（ＤＮＮ）を学習させた後（Ｓ２３４２）、アップデートされた深層ニューラルネットワーク（ＤＮＮ）構造データを移動ロボット１００に送信してアップデートさせる（Ｓ２３４３）。
【０３０７】
図２４ないし図２６は、本発明の一実施形態による移動ロボットの制御方法に関する説明に参照される図である。
【０３０８】
本発明の実施形態による移動ロボットの障害物を感知する領域を中央、左側、右側の３領域に区分して識別できるだけでなく、それ以上の数に領域を区分することができる。
【０３０９】
図２４は、６つの領域で分けて障害物を感知する場合を例示する。
【０３１０】
図２４の（ａ）を参照すると、障害物感知領域２４００を中央上部領域ＣＵ、中央下部領域ＣＤ、右側上部領域ＲＵ、右側下部領域ＲＤ、左側上部領域ＬＵ、左側下部領域ＬＤの６つの領域に分けて障害物を感知することができる。
【０３１１】
また、本発明の実施形態による移動ロボットは、画像取得部１２０が取得する全体画像中に障害物が感知される領域に対応して一部領域を抽出することができる。
【０３１２】
図２４の（ｂ）を参照すると、障害物２４１０が中央上部領域ＣＵと右側上部領域ＲＵにわたって感知されることができる。この場合は、画像取得部１２０が取得する全体画像中の中央上部領域と右側上部領域をクロッピング（cropping）することができる。
【０３１３】
図２４の（ｃ）を参照すると、障害物２４２０が中央下部領域ＣＤ、右側下部領域ＲＤ、左側下部領域ＬＤにわたって感知されることができる。この場合、画像取得部１２０が取得する全体画像中の下部領域ＣＤ、ＲＤ、ＬＤをクロッピング（cropping）することができる。
【０３１４】
または、障害物感知領域に割り当てられた領域別にクロッピング（cropping）することではなく、領域をより細分化してクロッピング（cropping）することができる。
【０３１５】
例えば、図２４の（ｃ）を参照すると、障害物２４２０が中央下部領域ＣＤ、右側下部領域ＲＤ、左側下部領域ＬＤにわたって感知される場合、中央下部領域ＣＤ、右側下部領域ＲＤ、左側下部領域ＬＤ内の下部領域２３２５をクロッピング（cropping）することができる。
【０３１６】
図２５及び図２６は、障害物認識モジュール１４４の障害物認識に関する説明に参照される図である。
【０３１７】
図２５を参照すると、障害物認識モジュール１４４は、障害物を扇風機、ホームシアター、マルチタップ、ランプ基台、人毛、小段差などのクラス（class）に分類して区分して認識することができる。
【０３１８】
また、障害物認識モジュール１４４は、扇風機、ホームシアター、マルチタップ、ランプ基台、人毛などのクラスは上位概念として危険障害物スーパークラス（Super-class）に分類して区分して認識することができる。
【０３１９】
さらに、障害物認識モジュール１４４は、小段差などの直進走行可能な障害物を非危険障害物スーパークラス（Super-class）に分類して区分して認識することができる。
【０３２０】
図２６の（ａ）を参照すると、障害物認識モジュール１４４は、入力された画像を認識して、扇風機は０．９５の信頼値（confidence）を、ホームシアターは０．７の信頼値を有する認識結果を得ることができる。この場合、障害物認識モジュール１４４は、より高い信頼値の認識結果である扇風機を入力画像に対する認識結果として出力することができる。
【０３２１】
一方、信頼値（confidence）は、０．０〜１．０の範囲で正規化されることができる。
【０３２２】
図２６の（ｂ）を参照すると、障害物認識モジュール１４４は、入力された画像を認識して、扇風機は０．３５の信頼値を、ホームシアターは０．４の信頼値を有する認識結果を得ることができる。
【０３２３】
例えば、０．６以下の信頼値は認めないように設定された場合、障害物認識モジュール１４４は、２つの認識結果の信頼値が両方とも基準値より低いので、特定認識結果を選択せずに、ｕｎｋｎｏｗｎ ｄａｔａと判定することができる。
【０３２４】
図２６の（ｃ）を参照すると、障害物認識モジュール１４４は、入力された画像を認識して、扇風機は０．９５の信頼値を、ホームシアターは０．９の信頼値を有する認識結果を得ることができる。
【０３２５】
例えば、０．９以上の信頼値を有する認識結果を最終認識結果として選択するように設定された場合、障害物認識モジュール１４４は、２つの認識結果の信頼値が両方とも基準値より高いので、特定認識結果を選択せずに、上位概念である危険障害物と判定することができる。
【０３２６】
または、信頼値の差が０．１５以上である場合に最高の信頼値の認識結果を認めるように設定された場合も、上位概念である危険障害物と判定することができる。
【０３２７】
一方、危険障害物と判断した場合も、走行制御モジュール１４１は、危険障害物を回避して移動するように駆動部１６０を制御することができる。
【０３２８】
図２７は、本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【０３２９】
図２７を参照すると、まず、移動ロボット１００、１００ａ、１００ｂは命令又は設定によって移動して掃除を行う（Ｓ２７１０）。
【０３３０】
一方、画像取得部１２０は、移動中に本体１１０の周辺を連続的に撮影して複数の画像を取得する（Ｓ２７２０）。画像取得部１２０が取得する連続した複数の画像は保存部１５０に保存される。
【０３３１】
移動中にセンサ部１７０により障害物が感知されると（Ｓ２７３０）、制御部１４０は、本体１１０の移動方向と移動速度に基づいて、前記連続した複数の画像のうちセンサ部１７０の障害物感知時点以前の特定時点画像を選択する（Ｓ２７４０）。
【０３３２】
前記移動方向と移動速度はセンサ部１７０の動作感知センサの出力に基づいて走行制御モジュール１４１などにより算出されることができる。
【０３３３】
一方、移動ロボットが通常の走行時には基準速度で走行するように設定される場合は、前記移動速度が一定であるので、本体１１０の移動方向を判別して、特定時点の画像を選択することができる。
【０３３４】
一方、制御部１４０は、前記移動方向が直進走行であるか、所定基準値（基準角度）未満の回転走行である場合、前記連続した複数の画像のうちセンサ部１７０の障害物感知時点以前の特定時点画像を選択することができる。
【０３３５】
通常、超音波センサなどのセンサの感知レンジ（range）よりカメラの撮影レンジ（range）の方が大きい。
【０３３６】
従って、センサ部１７０が障害物を感知することを信号にして画像を取得する場合、移動ロボットは走行を続けているので、取得画像が障害物の特性を含めない可能性もある。また、センサ部１７０の感知レンジ（range）が短い場合は取得画像が障害物の特性を含めない場合がより高い確率で発生することがある。
【０３３７】
従って、制御部１４０は、直進走行又は直進走行に近い走行のとき、移動方向と速度を反映して、センサ部１７０の障害物感知時点以前の特定時点画像を選択することができる。
【０３３８】
この場合、制御部１４０は、前記移動の速度が遅いほどセンサ部１７０の障害物感知時点を基準にさらに過去時点の画像を選択することができる。
【０３３９】
移動速度が速いほど移動ロボット１００はセンサ部１７０の障害物感知時点以後にさらに長い距離を走行する。すなわち、画像取得部１２０が一定の速度で複数の画像を撮影して取得するとき、特定フレームの画像が撮影される時間とその次のフレームの画像が撮影される時間との間に移動ロボットがさらに長い距離を走行する。
【０３４０】
従って、移動速度が速いほどセンサ部１７０の障害物感知時点に近い時点の画像を選択することが画像内に障害物が占める領域が大きい確率が高い。
【０３４１】
逆に、移動速度が遅いほど同一距離を走行する間に画像取得部１２０がより多くの画像を取得するので、センサ部１７０の障害物感知時点を基準にさらに過去時点の画像を選択することが好ましい。
【０３４２】
障害物認識モジュール１４４は、前記特定時点画像を選択して障害物認識の入力データとして用いることができる。
【０３４３】
一方、前記マシンラーニングにより学習された障害物認識モジュール１４４は、その特性上、学習した対象が入力画像データにおいて多くの部分を占めるほど認識率が高い。
【０３４４】
従って、制御部１４０は、センサ部１７０が感知する障害物の方向に対応して前記選択された特定時点画像の一部領域を切り出して抽出するように制御する（Ｓ２７５０）。
【０３４５】
センサ部１７０が感知する障害物の方向によって画像取得部１２０が取得した画像中に他の領域を抽出して認識用データとして用いることにより、認識率を高めることができる。
【０３４６】
障害物認識モジュール１４４は、前記選択された特定時点画像から抽出された一部領域の画像に含まれる障害物の属性を認識する（Ｓ２７６０）。
【０３４７】
障害物認識モジュール１４４は、マシンラーニング（machine learning）により既に学習されたデータに基づいて前記選択された特定時点画像から抽出された一部領域の画像に含まれる障害物の属性を認識することができる。
【０３４８】
障害物認識モジュール１４４は、マシンラーニングにより障害物の種類などの属性を認識するように学習された人工ニューラルネットワークを含むことができ、既に学習されたデータに基づいて障害物の属性を認識する（Ｓ２７６０）。
【０３４９】
例えば、障害物認識モジュール１４４にはディープラーニング構造の１つであるＣＮＮ（Convolutional Neural Network）が搭載され、既に学習されたＣＮＮ（Convolutional Neural Network）は入力データに含まれた障害物の属性を認識してその結果を出力することができる。
【０３５０】
一方、走行制御モジュール１４１は、前記認識された障害物の属性に基づいて、走行部１６０の駆動を制御する（Ｓ２７７０）。
【０３５１】
例えば、走行制御モジュール１４１は、前記認識された障害物が乗り越えられない高さの障害物である場合、障害物を迂回して走行するように制御することができる。
【０３５２】
また、走行制御モジュール１４１は、低い高さの小段差のように前記認識された障害物が乗り越えられる高さの障害物である場合、継続して直進走行するように制御することができる。
【０３５３】
さらに、走行制御モジュール１４１は、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束される可能性のある障害物が認識されると、障害物を迂回して走行するように制御することができる。
【０３５４】
図２８は、本発明の一実施形態による移動ロボットの制御方法に関する説明に参照される図であり、障害物２８００が移動ロボット１００の前面方向で感知される場合を例示する。
【０３５５】
図２８を参照すると、移動ロボット１００が走行しながら、画像取得部１２０が継続して撮影して複数の画像を取得することができる。移動ロボット１００は第１位置２８１０で第１画像２８１１を取得し、第２位置２８２０で第２画像２８２１を取得し、第３位置２８３０で第３画像２８３１を取得することができる。
【０３５６】
保存部１５０には所定数の画像が保存される。また、設定された数以上の画像が取得されると、最前の時点の画像を削除し、新しく取得された画像を保存することができる。
【０３５７】
移動ロボット１００は、超音波信号感知によるトリガ（Trigger）信号によって画像認識を開始することができる。
【０３５８】
しかしながら、トリガ（Trigger）信号として用いる超音波センサの場合、レンジ（Range）が短いため、障害物２８００が感知されてトリガ（Trigger）されるときに取得された画像２８３１を見ると、認識対象の特徴が消えることがある。
【０３５９】
従って、本発明は、保存部１５０に連続する画像を保存し、進行方向が直進走行であるかを判断した後、トリガ（Trigger）のときに第３画像２８３１を利用せずに第１画像２８１１を利用して障害物認識を行うことができる。
【０３６０】
移動ロボット１００は、一定の速度で走行する場合が多いため、直進走行であるか否かのみを判断して所定時点の画像、例えば、センサ部１７０の障害物感知時点より２フレーム前の過去時点の画像を選択して障害物認識を行うことができる。
【０３６１】
また、制御部１４０は、センサ部１７０の感知範囲、性能、障害物認識過程の処理速度なども考慮して、センサ部１７０の障害物感知時点よりどのくらい前の過去時点の画像を選択するかを決定することができる。
【０３６２】
一方、実施形態によっては、選択された時点の画像全体を障害物認識入力データとして利用することなく、選択された時点の画像の一部領域を抽出して認識することにより認識率を高めることができる。
【０３６３】
本実施形態は、単に全体画像の中心領域を基準に予め設定されたサイズにクロッピング（cropping）することではなく、障害物が感知される方向に基づいて、画像中の中央、左側、右側領域を抽出することができる。
【０３６４】
例えば、前記障害物が前記本体の前面の右方向で感知される場合、前記選択された特定時点画像の右側下段領域を抽出し、前記障害物が前記本体の前面の左方向で感知される場合、前記選択された特定時点画像の左側下段領域を抽出し、前記障害物が前記本体の前面方向で感知される場合、前記選択された特定時点画像の中央（center）下段領域を抽出することができる。
【０３６５】
従って、認識のための入力データに障害物が最大限多く含まれることができる。マシンは、画像内に比重が最も多いものを認識するので、障害物の属性認識率を向上させることができる。
【０３６６】
本実施形態においても、前述した障害物認識過程を複数回行い、複数の認識結果に基づいて最終認識結果を導出することにより、認識正確度をさらに向上させることができる。
【０３６７】
例えば、制御部１４０は、感知された障害物の位置情報と移動ロボットの位置情報を保存部１５０に保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ（map）に障害物地域として登録するように制御することができる。
【０３６８】
その後、登録された障害物地域を通り過ぎる度に障害物の属性を認識し、複数の認識結果に基づいて最終障害物属性を判別することができる。
【０３６９】
制御部１４０は、所定障害物地域において画像取得部１２０により取得される画像に対して順次に障害物の属性を認識し、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別することができる。
【０３７０】
図２９は、本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【０３７１】
図２９を参照すると、まず、移動ロボット１００、１００ａ、１００ｂは命令又は設定によって移動しながら掃除を行う（Ｓ２９１０）。
【０３７２】
センサ部１７０は、障害物感知センサ１３１を含み、移動方向前方の所定範囲内の障害物を感知する（Ｓ２９２０）。
【０３７３】
移動中にセンサ部１７０により障害物が感知されると（Ｓ２９２０）、前記感知された障害物の位置情報と移動ロボット１００、１００ａ、１００ｂの位置情報を保存部１５０に保存する（Ｓ２９３０）。
【０３７４】
また、前記感知された障害物の位置を中心に所定のサイズを有する領域を保存部１５０に保存されるマップ（map）に障害物地域として登録して保存、管理する（Ｓ２９３０）。
【０３７５】
前記移動ロボットの位置情報は、オドメトリ（odometry）情報から算出でき、前記オドメトリ（odometry）情報は、前述したセンサ部１７０の動作感知センサで感知されるデータに基づいて構成されることができる。
【０３７６】
一方、画像取得部１２０は、移動中に前記障害物地域で複数の画像を取得する（Ｓ２９４０）。
【０３７７】
画像取得部１２０は、前記障害物地域を登録し、前記移動ロボット１００、１００ａ、１００ｂが前記障害物地域の外部に離脱する前に、前記障害物地域内で連続的に撮影して複数の画像を取得することができる。
【０３７８】
また、前記移動ロボット１００、１００ａ、１００ｂは、前記感知された障害物に対する回避走行を行いながら全体障害物地域に対する画像を取得することができる。
【０３７９】
一方、全体障害物地域に対する探索のために、一連の動作で前記障害物地域内を走行しながら障害物地域を撮影することは、移動ロボット１００、１００ａ、１００ｂの走行経路に多くの変化をもたらすことができる。
【０３８０】
従って、移動ロボット１００、１００ａ、１００ｂが通常走行しながら、前記障害物地域を通過する度に、前記障害物地域を撮影して障害物に対する画像を取得することが好ましい。
【０３８１】
例えば、直進、方向転換の後、再び最初移動方向の反対方向に障害物が感知される距離まで移動する基本ジグザグパターンで移動ロボット１００、１００ａ、１００ｂが走行する場合を仮定すると、最初の直進時に障害物地域を通過しながら撮影して所定数の画像を取得し、反対方向まで走行した後に戻ってくるときに再び障害物地域を通過しながら撮影して所定数の画像を取得する方式に分けて複数の画像を取得することができる。
【０３８２】
一方、障害物認識モジュール１４４は、マシンラーニング（machine learning）により既に学習されたデータに基づいて、前記障害物地域を移動しながら画像取得部１２０により取得される画像に対して順次に障害物の属性を認識する（Ｓ２９５０）。
【０３８３】
障害物認識モジュール１４４は、マシンラーニングにより障害物の種類などの属性を認識するように学習された人工ニューラルネットワークを含むことができ、既に学習されたデータに基づいて障害物の属性を認識する（Ｓ２９５０）。
【０３８４】
例えば、障害物認識モジュール１４４にはディープラーニング構造の１つであるＣＮＮ（Convolutional Neural Network）が搭載され、既に学習されたＣＮＮ（Convolutional Neural Network）は入力データに含まれた障害物の属性を認識してその結果を出力する。
【０３８５】
障害物認識モジュール１４４は、前記障害物地域で取得された１つの画像に対して障害物認識を行い、他の画像に対しても障害物認識を行った後、２つの画像に対する２つの認識結果のうちより正確な認識結果を選定して保存することができる。
【０３８６】
一方、障害物認識モジュール１４４は、２つの認識結果に含まれる信頼値（confidence）を比較して認識結果のうちより正確な認識結果を選定することができる。最後に行われた認識結果を現在の障害物認識結果にすることができ、次の画像に対する障害物認識が行われると、現在の障害物認識結果は以前の障害物認識結果となり、前記次の画像に対する障害物認識結果が現在の障害物認識結果となることができる。
【０３８７】
一方、障害物認識モジュール１４４は、画像取得部１２０により取得される画像に対して順次に障害物の属性を認識するとき（Ｓ２９５０）、現在の障害物認識結果と以前の障害物認識結果を比較する過程を繰り返して行うことができる。
【０３８８】
移動ロボット１００、１００ａ、１００ｂが通常に走行しながら、前記障害物地域を通過する度に、前記障害物地域を撮影して画像を取得することができる。
【０３８９】
障害物認識モジュール１４４は、取得される画像に対して順次に画像認識過程を行った後、以前の障害物認識結果と比較してより高い信頼値を有する認識結果を選択することができる。
【０３９０】
好ましくは、障害物認識モジュール１４４は、現在の障害物認識結果と以前の障害物認識結果を比較して、前記現在の障害物認識結果と前記以前の障害物認識結果が同一であると、前記現在の障害物認識結果を維持し、信頼値（confidence）は所定加重値を反映して上向することできる。
【０３９１】
すなわち、前記現在の障害物認識結果と前記以前の障害物認識結果が同一であると、障害物認識結果を変更する必要がないので、その結果を維持するとともに、認識結果に対応する信頼値（confidence）は所定加重値を反映して上向することができる。
【０３９２】
従って、同一の認識結果が出る度に、障害物認識モジュール１４４は所定加重値を反映して信頼値（confidence）を上向して保存するように制御することができる。
【０３９３】
また、障害物認識モジュール１４４は、前記現在の障害物認識結果と前記以前の障害物認識結果が同一でないと、前記現在の障害物認識結果と前記以前の障害物認識結果のうち信頼値が高い認識結果を前記新しい現在障害物認識結果として登録することができる。
【０３９４】
すなわち、障害物認識モジュール１４４は、２つの認識結果を比較して、より高い信頼値の認識結果を残し、以後の認識結果と比較することができる。
【０３９５】
一方、障害物認識モジュール１４４は、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別する（Ｓ２９６０）。
【０３９６】
障害物認識モジュール１４４は、順次に障害物を認識するうちに所定基準が満たされると、障害物の最終属性を決定することができる。すなわち、障害物認識モジュール１４４は、所定基準が満たされる瞬間の現在認識結果を最終認識結果として出力することができる。
【０３９７】
前記所定基準が満たされる瞬間以後はそれ以上障害物認識過程を行わないので、前記所定基準が満たされる瞬間の現在認識結果は、最後の現在認識結果となることができる。
【０３９８】
例えば、前記障害物地域の全ての領域に対して障害物認識が完了する瞬間、すなわち、前記障害物地域に対する認識カバレッジ（Coverage）が１００％となる瞬間に最後の現在認識結果を前記障害物の最終属性として判別することができる。
【０３９９】
実施形態によっては、前記認識カバレッジ（Coverage）が９０％、９５％などの所定基準値に達すると、障害物認識過程を終了するように設定されることができる。
【０４００】
または、障害物認識モジュール１４４は、現在の障害物認識結果と以前の障害物認識結果を比較して、前記現在の障害物認識結果と前記以前の障害物認識結果が同一であると、前記現在の障害物認識結果を維持し、信頼値（confidence）は前記現在の障害物認識結果の信頼値と前記以前の障害物認識結果の信頼値の平均値に変更されることができる。
【０４０１】
本実施形態は、前記現在の障害物認識結果と前記以前の障害物認識結果が同一のである場合、同一の認識結果に対する信頼値を２つの認識結果の既存の信頼値の平均値に決定する。
【０４０２】
本実施形態においても、障害物認識モジュール１４４は、前記現在の障害物認識結果と前記以前の障害物認識結果が同一でないと、前記現在の障害物認識結果と前記以前の障害物認識結果のうち信頼値の高い認識結果を前記新しい現在障害物認識結果として登録するように制御されることができる。
【０４０３】
一方、走行制御モジュール１４１は、前記認識された障害物の最終属性に基づいて、走行部１６０の駆動を制御する（Ｓ２９８０）。
【０４０４】
例えば、走行制御モジュール１４１は、前記認識された障害物が乗り越えられない高さの障害物である場合、障害物を迂回して走行するように制御することができる。
【０４０５】
また、走行制御モジュール１４１は、低い高さの小段差のように前記認識された障害物が乗り越えられる高さの障害物である場合、継続して直進走行するように制御することができる。
【０４０６】
さらに、走行制御モジュール１４１は、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束可能性のある障害物が認識されると、障害物を迂回して走行するように制御することができる。
【０４０７】
一方、障害物認識モジュール１４４は、前記判別された障害物の最終属性によって、該当障害物を危険障害物又は非危険障害物として前記マップに登録して管理する（Ｓ２９７０）。
【０４０８】
例えば、障害物認識モジュール１４４は、前記認識された障害物が乗り越えられない高さの障害物であるか、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束可能性のある障害物である場合、認識された障害物を危険障害物としてマップに登録することができる。
【０４０９】
また、直進に走行しても乗り越えられる小段差などの障害物は非危険障害物としてマップに登録することができる。
【０４１０】
その後、移動ロボット１００は、マップに登録された危険障害物、非危険障害物情報に基づいて、非危険障害物を回避して走行することができる。
【０４１１】
図３０ないし図３４は、本発明の実施形態による移動ロボットの制御方法に関する説明に参照される図である。
【０４１２】
図３０を参照すると、移動ロボット１００は、走行しながら障害物３００１を感知することができる。移動ロボット１００が障害物３００１を感知すると、認識された障害物の周辺を含むように障害物地域を設定登録することができる。
【０４１３】
図３０を参照すると、障害物認識モジュール１４４は、全体領域３０００中に障害物３００１を中心に所定のサイズ（ａ×ｂ）の障害物地域３０１０を保存部１５０に保存されるマップ上に登録するように制御することができる。
【０４１４】
例えば、障害物地域３０１０は、障害物３００１を中心に前後各５０ｃｍ、左右各５０ｍにして総１ｍ×１ｍのサイズの四角形状に設定されることができる。
【０４１５】
一方、障害物認識モジュール１４４は、障害物地域３０１０の登録と共に障害物３００１を認識する当時の移動ロボット１００の位置情報を保存するように制御することができる。一方、移動ロボット１００の位置情報はオドメトリ（Odometry）情報に基づいた情報であり得る。
【０４１６】
例えば、障害物認識モジュール１４４は、以下のような保存フォーマットで障害物の位置と移動ロボットの位置情報を保存するように制御することができる。
【０４１７】
保存フォーマット：（Ｏｐ, Ｒｐ）、
Ｏｐ（Ｘ，Ｙ）＝障害物（Object）位置（Position）、
Ｒｐ（Ｘ，Ｙ）＝ロボット（Robot）位置（Position）
一方、画像取得部１２０は、移動中に障害物地域３０１０で複数の画像を取得することができる。
【０４１８】
画像取得部１２０は、移動ロボット１００が障害物地域３０１０の外部に離脱する前に障害物地域３０１０内で連続的に撮影して複数の画像を取得することができる。
【０４１９】
図３１は、２回の撮影により障害物地域３０１０の所定領域が認識されたことを示す。図３１に示す円３１１０、３１２０は、それぞれ認識カバレッジを示し、そのサイズと形態は画像取得部１２０の構成と性能によって変化することがある。
【０４２０】
一方、移動ロボット１００は、障害物地域３０１０の他の位置において障害物３００１を撮影することができる。
【０４２１】
本発明によれば、障害物地域３０１０を移動しながら多様な位置において障害物３００１を撮影した画像を取得し、取得した画像のそれぞれに対して障害物認識過程を行うことにより、障害物認識の正確性を向上させることができる。
【０４２２】
一方、障害物認識モジュール１４４は、障害物地域３０１０の内部領域を格子状に横縦にそれぞれ一定の間隔に区分して管理することができる。
【０４２３】
図３２は、４×４の格子状で構成される障害物地域３２００を例示する。
【０４２４】
障害物認識モジュール１４４は、障害物地域３２００内の画像が撮影されて障害物が認識された領域を区分して保存することができる。
【０４２５】
例えば、図３２の（ａ）のように、認識された所定領域３２１０の値を変更して全体障害物地域３２００で認識された領域と認識されない領域を区分することができ、全体障害物地域３２００においてどのくらいまで認識が完了したかを判別することができる。
【０４２６】
一方、移動ロボット１００の走行及び障害物認識によって、図３２の（ｂ）のように、認識された領域３２１０、３２２０、３２３０、３２４０が増加する。
【０４２７】
また、図３２の（ｃ）のように、認識カバレッジが１００％になると、すなわち、全体障害物地域３２００での障害物認識が完了すると、障害物認識過程が終了する。
【０４２８】
または、設定によって、認識カバレッジが９０％、９５％になると、障害物認識過程を終了する。
【０４２９】
図３３及び図３４は、本発明の実施形態による同一の障害物に対する順次的な障害物認識過程の一部を例示する。
【０４３０】
図３３及び図３４を参照すると、まず、障害物認識モジュール１４４は、移動ロボットが第１位置（Ｒｐ１）で取得した画像を認識して障害物を扇風機と認識することができる。例えば、扇風機と認識した現認識結果の信頼値は０．８である。
【０４３１】
一方、前記認識結果は最初の認識結果であるので、比較対象がなくて、現在認識結果に対応する登録結果も扇風機になる。
【０４３２】
一方、２番目に移動ロボットが第２位置（Ｒｐ２）で取得した画像に基づいて、障害物認識モジュール１４４は信頼値０．７を有する扇風機と判定した認識結果を得ることができる。
【０４３３】
障害物認識モジュール１４４は、１番目の認識結果と２番目の認識結果が同一であるので、現在認識結果に対応する登録結果として扇風機を維持することができる。
【０４３４】
この場合は、現在認識結果に対応する信頼値は２つの認識結果の信頼値の１つをそのまま用いることができる。
【０４３５】
または、図３３のように、現在認識結果に対応する信頼値として１番目の認識結果と２番目の認識結果の信頼値の平均値０．７５を用いることができる。
【０４３６】
より好ましくは、１番目の認識結果と２番目の認識結果が同一である扇風機の認識結果を得たので、図２５のように、所定加重値を反映して上向した０．８３５の信頼値を現在認識結果に対応する信頼値として用いることができる。
【０４３７】
図３３及び図３４を参照すると、障害物認識モジュール１４４は、３番目に移動ロボットが第３位置（Ｒｐ３）で取得した画像に基づいて信頼値０．７を有するランプ基台と判定した認識結果を得ることができる。
【０４３８】
図３３及び図３４を参照すると、障害物認識モジュール１４４は、３番目の認識結果を以前の認識結果と比較することができる。
【０４３９】
３番目の認識結果の信頼値は０．７であり、以前の認識結果０．７５又は０．８３５より低いので、障害物認識モジュール１４４は、より高い信頼値を有する扇風機を現在認識結果に対応する登録結果として選択することができる。
【０４４０】
本発明の実施形態のうち少なくとも１つによれば、移動ロボットが、障害物の属性を判断し、障害物属性によって走行パターンを調整することができるため、信頼性の高い障害物認識及び回避動作を行うことができる。
【０４４１】
また、本発明の実施形態のうち少なくとも１つによれば、障害物の認識結果に応じて前進、後退、停止、迂回などの動作を行うことにより、移動ロボット自体の安定性及び使用者の利便性を向上し、運転効率、掃除効率を向上させることのできる移動ロボット及びその制御方法を提供することができる。
【０４４２】
また、本発明の実施形態のうち少なくとも１つによれば、マシンラーニングに基づいて障害物の属性を正確に認識できる移動ロボット及びその制御方法を提供することができる。
【０４４３】
また、本発明の実施形態のうち少なくとも１つによれば、移動ロボットが、効率的にマシンラーニングを行うことができ、障害物属性認識に利用できるデータを抽出することができる。
【０４４４】
本発明による移動ロボットは、前述した実施形態の構成と方法が限定的に適用されることではなく、上記実施形態は様々な変形が行われるように各実施形態の全部又は一部が選択的に組み合わせられて構成されることもできる。
【０４４５】
一方、本発明の実施形態による移動ロボットの制御方法は、プロセッサが読み取り可能な記録媒体に、プロセッサが読み取り可能なコードとして実現することが可能である。プロセッサが読み取り可能な記録媒体は、プロセッサにより読み取られるデータが格納されるあらゆる種類の記録装置を含む。プロセッサが読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ格納装置などがあり、また、インターネットを介しての送信などのようなキャリアウェーブの形態で実現されることも含む。また、プロセッサが読み取ることのできる記録媒体は、ネットワークで接続されたコンピュータシステムに分散されて、分散方式でプロセッサが読み取り可能なコードが格納され、実行されることができる。
【０４４６】
また、以上では、本明細書の好ましい実施形態について図示して説明したが、本発明は、上述した特定の実施形態に限定されず、請求の範囲で請求する本発明の要旨を逸脱せず、当該発明の属する技術分野における通常の知識を有した者により様々な変形実施が可能であることはもちろん、このような変形実施は、本発明の技術的思想や展望から個別的に理解されてはならないであろう。
【図１】
2019528535.tif 000003
【図２】
2019528535.tif 000004
【図３】
2019528535.tif 000005
【図４】
2019528535.tif 000006
【図５】
2019528535.tif 000007
【図６】
2019528535.tif 000008
【図７】
2019528535.tif 000009
【図８】
2019528535.tif 000010
【図９】
2019528535.tif 000011
【図１０】
2019528535.tif 000012
【図１１】
2019528535.tif 000013
【図１２】
2019528535.tif 000014
【図１３】
2019528535.tif 000015
【図１４】
2019528535.tif 000016
【図１５】
2019528535.tif 000017
【図１６】
2019528535.tif 000018
【図１７】
2019528535.tif 000019
【図１８】
2019528535.tif 000020
【図１９】
2019528535.tif 000021
【図２０】
2019528535.tif 000022
【図２１】
2019528535.tif 000023
【図２２】
2019528535.tif 000024
【図２３】
2019528535.tif 000025
【図２４】
2019528535.tif 000026
【図２５】
2019528535.tif 000027
【図２６】
2019528535.tif 000028
【図２７】
2019528535.tif 000029
【図２８】
2019528535.tif 000030
【図２９】
2019528535.tif 000031
【図３０】
2019528535.tif 000032
【図３１】
2019528535.tif 000033
【図３２】
2019528535.tif 000034
【図３３】
2019528535.tif 000035
【図３４】
2019528535.tif 000036
【国際調査報告】
2019528535.tif 000037
2019528535.tif 000038
2019528535.tif 000039
2019528535.tif 000040