(58)【調査した分野】(Int.Cl.,DB名)
前記抽出された画像を所定サーバに送信し、前記所定サーバからマシンラーニングに関するデータを受信する通信部を更に備えてなることを特徴とする、請求項2に記載の移動ロボット。
前記所定サーバから受信したマシンラーニングに関するデータに基づいて前記障害物認識モジュールをアップデート(update)することを特徴とする、請求項4に記載の移動ロボット。
前記センサ部が感知する障害物の方向に対応して前記画像取得部が取得する画像の一部領域を抽出する画像処理部を更に備えてなることを特徴とする、請求項1に記載の移動ロボット。
前記障害物を認識するステップは、マシンラーニング(machine learning)により既に学習されたデータに基づいて、前記抽出された画像から前記障害物の属性を認識することを特徴とする、請求項13に記載の移動ロボットの制御方法。
前記センサ部が障害物を感知すると、前記感知された障害物の位置情報と移動ロボットの位置情報を保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ(map)に障害物地域として登録するステップと、
前記障害物地域を移動しながら前記画像取得部により取得される画像に対して順次に障害物の属性を認識するステップと、
前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別するステップとを更に含んでなる、請求項13に記載の移動ロボットの制御方法。
【発明を実施するための形態】
【0039】
以下、添付図面を参照して本発明の実施形態について詳細に説明する。しかしながら、本発明がこのような実施形態に限定されるものではなく、様々な形態に変形できることは言うまでもない。
【0040】
図においては、本発明を明確かつ簡略に説明するために説明と関係ない部分の図示を省略し、明細書全体にわたって同一又は極めて類似の部分に対しては同一の図面参照符号を用いる。
【0041】
一方、以下の説明で使用される構成要素に対する接尾辞「モジュール」及び「部」は明細書作成の容易さだけが考慮されて付与されるものであって、それ自体で特別に重要な意味又は役割を付与するものではない。従って、前記「モジュール」及び「部」は互いに混用して用いられることもできる。
【0042】
本発明の一実施形態による移動ロボット100は、車輪などを用いて自ら移動可能なロボットを意味し、家庭用ヘルパーロボット及びロボット掃除機などがある。以下、図面を参照して、移動ロボットのうちの掃除機能を有するロボット掃除機を例にして説明するが、本発明は、これに限定されるものではない。
【0043】
図2は、本発明の一実施形態による移動ロボット及び移動ロボットを充電する充電台を示す斜視図である。
【0044】
図3は、
図2に示す移動ロボットの上面部を示す図であり、
図4は、
図2に示す移動ロボットの正面部を示す図であり、
図5は、
図2に示す移動ロボットの底面部を示す図である。
【0045】
図6及び
図7は、本発明の実施形態による移動ロボットの主要構成間の制御関係を示すブロック図である。
【0046】
図3ないし
図7を参照すると、移動ロボット100、100a、100bは、本体110と、本体110の周辺の画像を取得する画像取得部120、120a、120bとを含む。
【0047】
以下、本体110の各部分の定義において、走行区域内の天井を向いた部分を上面部(
図3を参照)と定義し、走行区域内の床面を向いた部分を底面部(
図5を参照)と定義し、上面部と底面部間に本体110の周縁の部分のうち走行方向を向いた部分を正面部(
図4を参照)と定義する。
【0048】
移動ロボット100、100a、100bは、本体110を移動させる走行部160を含む。走行部160は、本体110を移動させる少なくとも1つの駆動輪136を含む。走行部160は、駆動輪136に連結されて駆動輪を回転させる駆動モータ(図示せず)を含む。駆動輪136は、本体110の左側及び右側にそれぞれ備えられることができ、以下、それぞれ左輪136(L)及び右輪136(R)という。
【0049】
左輪136(L)と右輪136(R)は、1つの駆動モータにより駆動されることもできるが、必要に応じて左輪136(L)を駆動させる左輪駆動モータと右輪136(R)を駆動させる右輪駆動モータがそれぞれ備えられることもできる。左輪136(L)と右輪136(R)の回転速度に差を持たせて左側又は右側に本体110の走行方向を転換することができる。
【0050】
本体110の底面部には空気の吸入が行われる吸入口110hが形成され、本体110内には吸入口110hを通じて空気が吸入できるように吸引力を供給する吸入装置(図示せず)と、吸入口110hを通じて空気と共に吸入された塵を集塵するダストボックス(図示せず)とが備えられることができる。
【0051】
本体110は、移動ロボット100、100a、100bを構成する各種部品が収容される空間を形成するケース111を含む。ケース111には、前記ダストボックスの挿入と除去のための開口部が形成され、開口部を開閉するダストボックスカバー112がケース111に対して回転可能に備えられることができる。
【0052】
吸入口110hから露出するブラシを有するロール型のメインブラシ134と、本体110の底面部前方側に位置し、放射状に延長された複数の羽根からなるブラシを有する補助ブラシ135とが備えられることができる。これらブラシ134、135の回転により走行区域内の床面から塵が分離され、このように床面から分離された塵は吸入口110hを通じて吸入されてダストボックスに集まる。
【0053】
バッテリ138は、駆動モータだけでなく、移動ロボット100、100a、100bの作動全般に必要な電源を供給する。バッテリ138が放電されると、移動ロボット100、100a、100bは充電のために充電台200に復帰する走行を行うことができ、このような復帰走行中に、移動ロボット100、100a、100bは自ら充電台200の位置を探知することができる。
【0054】
充電台200は、所定の復帰信号を送出する信号送出部(図示せず)を含むことができる。復帰信号は超音波信号又は赤外線信号であり得るが、必ずこれらに限定されるものではない。
【0055】
移動ロボット100、100a、100bは、復帰信号を受信する信号感知部(図示せず)を含むことができる。充電台200は信号送出部を通じて赤外線信号を送出し、信号感知部は赤外線信号を感知する赤外線センサを含むことができる。移動ロボット100、100a、100bは、充電台200から送出された赤外線信号によって充電台200の位置に移動して充電台200とドッキング(docking)する。このようなドッキングにより移動ロボット100、100a、100bの充電端子133と充電台200の充電端子210間に充電が行われる。
【0056】
実施形態によっては、移動ロボット100、100a、100bは、画像基盤又はレーザーパターン抽出方式の充電台200への復帰走行を行うことができる。
【0057】
移動ロボット100、100a、100bは、本体110から発信される光信号などを用いて充電台200に形成された特定パターンを認識し、これを抽出して充電台に復帰することができる。
【0058】
例えば、本発明の一実施形態による移動ロボット100、100a、100bは、パターン光センサ(図示せず)を含むことができる。
【0059】
パターン光センサは、本体110に備えられてもよく、移動ロボット100、100a、100bが活動する活動領域にパターン光(optical pattern)を照射し、前記パターン光が照射された領域を撮影して入力画像を取得することができる。例えば、前記パターン光は、十字パターンなどの特定パターンの光であり得る。
【0060】
パターン光センサは、前記パターン光を照射するパターン照射部と、前記パターン光が照射された領域を撮影するパターン画像取得部とを含むことができる。
【0061】
パターン照射部は、光源と、パターン生成者(OPPE:Optical Pattern Projection Element)とを含むことができる。前記光源から入射した光が前記パターン生成者に透過することにより生成される前記パターン光が生成される。前記光源は、レーザダイオード(Laser Diode:LD)、発光ダイオード(Light Emitteing Diode:LED)などであり得る。
【0062】
パターン照射部は本体の前方に向けて光を照射することができ、パターン画像取得部はパターン光が照射された領域を撮影して入力画像(input image)を取得する。パターン画像取得部は、カメラを含むことができ、このようなカメラは構造光カメラ(Structured Light Camera)であり得る。
【0063】
一方、充電台200は、一定の間隔で互いに離隔した2つ以上の位置標識を含むことができる。
【0064】
位置標識は、自身の表面にパターン光が入射したとき、周辺部と区分される標識を形成する。このような標識は、位置標識の形態的な特性により、表面に入射したパターン光の形態が変形することから起因するものであり得、または、位置標識の材質的な特性による光反射率(又は、吸収率)が周辺部と異なることから起因するものであり得る。
【0065】
位置標識は、前記標識を形成させる角部を含むことができる。位置標識の表面に入射したパターン光が角部で角をなして折れることにより、入力画像では前記標識としての尖点が確認される。
【0066】
移動ロボット100、100a、100bは、バッテリ残量が不足した場合に自動で充電台の探索を実施でき、または、使用者から充電命令が入力されたときにも充電台探索を実施できる。
【0067】
移動ロボット100、100a、100bが充電台探索を実施する場合、パターン抽出部は入力画像から尖点を抽出し、制御部140は抽出された尖点の位置情報を取得する。前記位置情報は、移動ロボット100、100a、100bから尖点までの距離が考慮された3次元空間上での位置を含むことができる。
【0068】
制御部140は、取得した尖点に対する位置情報に基づいて尖点間の実際距離を求め、これを予め設定された基準値と比較して、前記実際距離と前記基準値との差が所定の範囲内であれば充電台200が探索されたと判断することができる。
【0069】
または、移動ロボット100、100a、100bは、画像取得部120のカメラにより周辺画像を取得した後、取得された画像から充電台200に対応する形状を抽出、識別して充電台200に復帰することができる。
【0070】
また、移動ロボット100、100a、100bは、画像取得部120のカメラにより周辺画像を取得し、充電台200から発信される特定光信号を識別して充電台に復帰することができる。
【0071】
画像取得部120は、走行区域を撮影するものであり、カメラモジュールを含むことができる。前記カメラモジュールは、デジタルカメラを含むことができる。デジタルカメラは、少なくとも1つの光学レンズと、光学レンズを通過した光により像が結ばれる複数の光ダイオード(photodiode)(例えば、ピクセル(pixel))を含んで構成されるイメージセンサ(image sensor)(例えば、CMOSイメージセンサ )と、光ダイオードから出力された信号に基づいて画像を構成するデジタル信号処理器(DSP:Digital Signal Processor)とを含むことができる。デジタル信号処理器は、静止画像だけでなく、静止画像で構成されたフレームからなる動画像を生成することもできる。
【0072】
好ましくは、画像取得部120は、本体110の前方の画像を取得するように備えられる前面カメラ120aと、本体110の上面部に備えられて、走行区域内の天井に対する画像を取得する上部カメラ120bとを備えるが、画像取得部120の位置と撮影範囲が必ずこれに限定されることではない。
【0073】
本実施形態の場合、移動ロボットの一部部位(例えば、前方、後方、底面)にカメラが設置されており、掃除時に撮像画像を継続的に取得することができる。このようなカメラは、撮影効率のために各部位別に複数設置されることもできる。カメラにより撮像された画像は、該当空間に存在する塵、髪の毛、床面などの物質の種類の認識、掃除可否、又は掃除時点の確認に用いることができる。
【0074】
前面カメラ120aは、移動ロボット100、100a、100bの走行方向の前面に存在する障害物又は掃除領域の状況を撮影することができる。
【0075】
本発明の一実施形態によれば、画像取得部120は、本体110の周辺を連続的に撮影して複数の画像を取得することができ、取得された複数の画像は保存部150に保存される。
【0076】
移動ロボット100、100a、100bは、複数の画像を用いて障害物認識の正確性を向上させるか、複数の画像のうち1つ以上の画像を選択して効果的なデータを用いることにより障害物認識の正確性を向上させることができる。
【0077】
また、移動ロボット100、100a、100bは、移動ロボットの動作、状態に関する各種データをセンシングするセンサを含むセンサ部170を含むことができる。
【0078】
例えば、センサ部170は、前方の障害物を感知する障害物感知センサ131を含むことができる。また、センサ部170は、走行区域内の床面に崖が存在するか否か感知する崖感知センサ132と、床面の画像を取得する下部カメラセンサ139をさらに含むことができる。
【0079】
図2及び
図4を参照すると、障害物感知センサ131は、移動ロボット100の外周面に所定間隔で設置される複数のセンサを含むことができる。
【0080】
例えば、センサ部170は、本体110の前面に配置される第1センサ、前記第1センサから左右に離隔して配置される第2センサ及び第3センサを含むことができる。
【0081】
障害物感知センサ131は、赤外線センサ、超音波センサ、RFセンサ、地磁気センサ、PSD(Position Sensitive Device)センサなどを含むことができる。
【0082】
一方、障害物感知センサ131に含まれるセンサの位置と種類は移動ロボットの機種によって異なり、障害物感知センサ131は、より多様なセンサを含むことができる。
【0083】
障害物感知センサ131は、室内の壁や障害物との距離を感知するセンサであり、本発明は、その種類に限定されないが、以下では超音波センサを例にして説明する。
【0084】
障害物感知センサ131は、移動ロボットの走行(移動)方向に存在する物体、特に障害物を感知して障害物情報を制御部140に伝達する。すなわち、障害物感知センサ131は、移動ロボットの移動経路、前方や側面に存在する突出物、家内の什器、家具、壁面、壁角部などを感知してその情報を制御ユニットに伝達することができる。
【0085】
ここで、制御部140は、超音波センサにより受信した少なくとも2つの信号に基づいて障害物の位置を感知し、感知された障害物の位置によって移動ロボット100の動作を制御することができる。
【0086】
実施形態によっては、ケース110の外側面に備えられる障害物感知センサ131は発信部と受信部を含むことができる。
【0087】
例えば、超音波センサは、少なくとも1つ以上の発信部及び少なくとも2つ以上の受信部が互い違いに備えられることができる。これにより、多様な角度で信号を放射し、障害物に反射された信号を多様な角度で受信することができる。
【0088】
実施形態によっては、障害物感知センサ131により受信された信号は、増幅、フィルタリングなどの信号処理過程を経ることができ、その後、障害物までの距離及び方向が算出されることができる。
【0089】
一方、センサ部170は、本体110の駆動による移動ロボット100、100a、100bの動作を感知して動作情報を出力する動作感知センサをさらに含むことができる。動作感知センサとしては、ジャイロセンサ(Gyro Sensor)、ホイールセンサ(Wheel Sensor)、加速度センサ(Acceleration Sensor)などを用いることができる。
【0090】
ジャイロセンサは、移動ロボット100、100a、100bが運転モードによって動くときに回転方向を感知して回転角を検出する。ジャイロセンサは、移動ロボット100、100a、100bの角速度を検出して角速度に比例する電圧値を出力する。制御部140は、ジャイロセンサから出力される電圧値を用いて回転方向及び回転角を算出する。
【0091】
ホイールセンサは、左輪136(L)と右輪136(R)に連結されて車輪の回転数を感知する。ここで、ホイールセンサは、ロータリーエンコーダ(Rotary Encoder)であり得る。ロータリーエンコーダは、左輪136(L)と右輪136(R)の回転数を感知して出力する。
【0092】
制御部140は、回転数を用いて左右側の車輪の回転速度を演算することができる。また、制御部140は、左輪136(L)と右輪136(R)の回転数差を用いて回転角を演算することができる。
【0093】
加速度センサは、移動ロボット100、100a、100bの速度変化、例えば、出発、停止、方向転換、物体との衝突などによる移動ロボット100、100a、100bの変化を感知する。加速度センサは、主車輪や補助車輪の隣接位置に取り付けられて、車輪の滑りや空転を検出することができる。
【0094】
また、加速度センサは、制御部140に内蔵されて移動ロボット100、100a、100bの速度変化を感知することができる。すなわち、加速度センサは、速度変化による衝撃量を検出してそれに対応する電圧値を出力する。従って、加速度センサは、電子式バンパーの機能を行うことができる。
【0095】
制御部140は、動作感知センサから出力された動作情報に基づいて移動ロボット100、100a、100bの位置変化を算出することができる。このような位置は画像情報を用いた絶対位置に対応して相対位置となる。移動ロボットは、このような相対位置認識により画像情報と障害物情報を用いた位置認識の性能を向上させることができる。
【0096】
一方、移動ロボット100、100a、100bは、充電可能なバッテリ138を備えてロボット掃除機内に電源を供給する電源供給部(図示せず)を含むことができる。
【0097】
前記電源供給部は、移動ロボット100、100a、100bの各構成要素に駆動電源と動作電源を供給し、電源残量が不足すると充電台200から充電電流が供給されて充電される。
【0098】
移動ロボット100、100a、100bは、バッテリ138の充電状態を感知し、感知結果を制御部140に送信するバッテリ感知部(図示せず)をさらに含むことができる。バッテリ138はバッテリ感知部に接続されてバッテリ残量及び充電状態が制御部140に伝達される。バッテリ残量は出力部(図示せず)の画面に表示される。
【0099】
また、移動ロボット100、100a、100bは、オン/オフ(On/Off)又は各種命令を入力できる操作部137を含む。操作部137により移動ロボット100の作動全般に必要な各種制御命令が入力される。また、移動ロボット100、100a、100bは出力部(図示せず)を含み、予約情報、バッテリ状態、動作モード、動作状態、エラー状態などを表示することができる。
【0100】
図6及び
図7を参照すると、移動ロボット100a、100bは、現在位置を認識するなどの各種情報を処理して判断する制御部140、及び各種データを保存する保存部150を含む。また、移動ロボット100、100a、100bは、外部端末機とデータを送受信する通信部190をさらに含むことができる。
【0101】
外部端末機は、移動ロボット100a、100bを制御するためのアプリケーションを備え、アプリケーションの実行により移動ロボット100a、100bが掃除する走行区域に対するマップを表示し、マップ上に特定領域を掃除するように領域指定を行うことができる。外部端末機は、例えば、マップ設定のためのアプリケーション(application)が搭載されたリモコン、PDA、ラップトップ(laptop)、スマートフォン、タブレットなどであり得る。
【0102】
外部端末機は、移動ロボット100a、100bと通信して、マップと共に移動ロボットの現在位置を表示することができ、複数の領域に関する情報が表示される。また、外部端末機は、移動ロボットの走行によってその位置を更新して表示する。
【0103】
制御部140は、移動ロボット100a、100bを構成する画像取得部120、操作部137、走行部160を制御して、移動ロボット100の動作全般を制御する。
【0104】
保存部150は、移動ロボット100の制御に必要な各種情報を記録するものであり、揮発性又は不揮発性記録媒体を含むことができる。記録媒体は、マイクロプロセッサ(micro processor)により読み取られるデータを保存したものであり、HDD(Hard Disk Drive)、SSD(Solid State Disk)、SDD(Silicon Disk Drive)、ROM、RAM、CD−ROM、磁気テープ、フロッピディスク、光データ保存装置などを含むことができる。
【0105】
また、保存部150には走行区域に対するマップ(Map)が保存される。マップは、移動ロボット100a、100bと有線又は無線通信により情報を交換できる外部端末機、サーバなどにより入力されたものでもあり得、移動ロボット100a、100bが自ら学習して生成したものでもあり得る。
【0106】
マップには走行区域内の部屋の位置が表示される。また、移動ロボット100a、100bの現在位置がマップ上に表示され、マップ上での移動ロボット100a、100bの現在の位置は、走行過程で更新されることができる。外部端末機は保存部150に保存されたマップと同一のマップを保存する。
【0107】
保存部150は、掃除履歴情報を保存することができる。このような掃除履歴情報は掃除を行う度に生成される。
【0108】
保存部150に保存される走行区域に対するマップは、掃除中に走行に用いられるナビゲーションマップ(Navigation map)、位置認識に用いられるSLAM(Simultaneous localization and mapping)マップ、障害物などにぶつかると当該情報を保存して学習して掃除時に用いる学習マップ、全域位置認識に用いられる全域位置マップ、認識された障害物に関する情報が記録される障害物認識マップなどであり得る。
【0109】
一方、前述したように、用途別に保存部150にマップを区分して保存、管理することができるが、マップが用途別に明確に区分されないこともある。例えば、少なくとも2つ以上の用途に利用できるように1つのマップに複数の情報を保存することもできる。例えば、学習マップ上に認識された障害物情報が記録されて障害物認識マップに代わることができ、位置認識に用いられるSLAMマップを用いて全域位置を認識することにより全域位置マップに代わるか、全域位置マップと共に用いられることができる。
【0110】
制御部140は、走行制御モジュール141、位置認識モジュール142、地図生成モジュール143、及び障害物認識モジュール144を含むことができる。
【0111】
図3ないし
図7を参照すると、走行制御モジュール141は、移動ロボット100、100a、100bの走行を制御するものであり、走行設定によって走行部160の駆動を制御する。また、走行制御モジュール141は、走行部160の動作に基づいて移動ロボット100、100a、100bの走行経路を把握することができる。例えば、走行制御モジュール141は、駆動輪136の回転速度に基づいて移動ロボット100の現在又は過去の移動速度、走行した距離などを把握することができ、各駆動輪136(L)、136(R)の回転方向によって現在又は過去の方向転換過程も把握することができる。このように把握された移動ロボット100、100a、100bの走行情報に基づいて、マップ上で移動ロボット100、100a、100bの位置が更新されることができる。
【0112】
地図生成モジュール143は、走行区域のマップを生成することができる。地図生成モジュール143は、画像取得部120により取得した画像を処理してマップを作成することができる。すなわち、掃除領域に対応する掃除マップを作成することができる。
【0113】
また、地図生成モジュール143は、各位置において画像取得部120により取得した画像を処理してマップと連係させて全域位置を認識することができる。
【0114】
位置認識モジュール142は、現在位置を推定して認識する。位置認識モジュール142は、画像取得部120の画像情報を用いて地図生成モジュール143と連係して位置を把握することにより、移動ロボット100、100a、100bの位置が突然変更される場合も現在位置を推定して認識することができる。
【0115】
移動ロボット100、100a、100bは、位置認識モジュール142により連続的な走行中に位置認識が可能であり、また、位置認識モジュール142無しに地図生成モジュール143及び障害物認識モジュール144によりマップを学習して現在位置を推定することができる。
【0116】
移動ロボット100、100a、100bの走行中に、画像取得部120は移動ロボット100周辺の画像を取得する。以下、画像取得部120により取得された画像を「取得画像」と定義する。
【0117】
取得画像には、天井に位置する照明、境界(edge)、コーナー(corner)、染み(blob)、屈曲(ridge)などの様々な特徴(feature)が含まれる。
【0118】
地図生成モジュール143は、それぞれの取得画像から特徴を検出する。コンピュータビジョン(Computer Vision)技術分野において、画像から特徴を検出する多様な方法(Feature Detection)がよく知られている。これら特徴の検出に適合する様々な特徴検出器(feature detector)が知られている。例えば、Canny、Sobel、Harris&Stephens/Plessey、SUSAN、Shi&Tomasi、Level curve curvature、FAST、Laplacian of Gaussian、Difference of Gaussians、Determinant of Hessian、MSER、PCBR、Grey-level blobs検出器などがある。
【0119】
地図生成モジュール143は、各特徴点に基づいてディスクリプタを算出する。地図生成モジュール143は、特徴検出のためにSIFT(Scale Invariant Feature Transform)技法を用いて特徴点をディスクリプタ(descriptor)に変換することができる。
【0120】
一方、ディスクリプタは、特定空間内に存在する個別特徴点の群集に定義され、n次元ベクトル(vector)で表記されることができる。例えば、天頂の境界(edge)、コーナー(corner)、染み(blob)、屈曲(ridge)などの様々な特徴(feature)がそれぞれのディスクリプタとして算出されて保存部150に保存される。
【0121】
各位置の取得画像から得られたディスクリプタ情報に基づいて取得画像毎に少なくとも1つのディスクリプタを所定の下位分類規則に従って複数の群に分類し、所定の下位代表規則に従って同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することができる。すなわち、個別画像から得られたディスクリプタに対して代表値を指定して標準化する過程を経ることができる。
【0122】
SIFTは、撮影対象のスケール(scale)、回転、明るさ変化に対して不変な特徴を検出することができるため、同じ領域を移動ロボット100の姿勢を変えて撮影しても不変な(すなわち、回転不変な(Rotation-invariant))特徴を検出することができる。もちろん、これに限定されることなく、他の多様な技法(例えば、HOG(Histogram of Oriented Gradient)、Haar feature、Fems、LBP(Local Binary Pattern)、MCT(Modified Census Transform))が適用されることもできる。
【0123】
地図生成モジュール143は、各位置の取得画像から得たディスクリプタ情報に基づいて、取得画像毎に少なくとも1つのディスクリプタを所定の下位分類規則に従って複数の群に分類し、所定の下位代表規則に従って同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することができる。
【0124】
他の例として、室(room)のように所定区域内の取得画像から集まった全てのディスクリプタを所定の下位分類規則に従って複数の群に分類して前記所定の下位代表規則に従って同じ群に含まれたディスクリプタをそれぞれ下位代表ディスクリプタに変換することもできる。
【0125】
地図生成モジュール143は、このような過程を経て、各位置の特徴分布を求めることができる。各位置の特徴分布はヒストグラム又はn次元ベクトルで表現されることができる。また他の例として、地図生成モジュール143は、所定の下位分類規則及び所定の下位代表規則を経ずに、各特徴点から算出されたディスクリプタに基づいて未知の現在位置を推定することができる。
【0126】
また、位置跳躍などの理由で移動ロボット100、100a、100bの現在位置が未知の状態になった場合、予め保存されているディスクリプタ又は下位代表ディスクリプタなどのデータに基づいて現在位置を推定することができる。
【0127】
移動ロボット100、100a、100bは、未知の現在位置において画像取得部120により取得画像を取得する。画像から天井に位置する照明、境界(edge)、コーナー(corner)、染み(blob)、屈曲(ridge)などの様々な特徴(feature)が確認される。
【0128】
位置認識モジュール142は、取得画像から特徴を検出する。コンピュータビジョン技術分野において、画像から特徴を検出する多様な方法及びこれらの特徴の検出に適合する様々な特徴検出器についての説明は前述した通りである。
【0129】
位置認識モジュール142は、各認識特徴点に基づいて認識ディスクリプタ算出ステップを経て認識ディスクリプタを算出する。ここで、認識特徴点及び認識ディスクリプタは、障害物認識モジュール144で行う過程を説明するためのものであり、地図生成モジュール143で行う過程を説明する用語と区分するためのものである。ただ、移動ロボット100、100a、100bの外部世界の特徴がそれぞれ異なる用語と定義されることにすぎない。
【0130】
位置認識モジュール142は、本特徴検出のためにSIFT(Scale Invariant Feature Transform)技法を用いて認識特徴点を認識ディスクリプタに変換することができる。認識ディスクリプタはn次元ベクトル(vector)で表記されることができる。
【0131】
SIFTは、前述したように、取得画像からコーナー点などの識別が容易な特徴点を選択した後、各特徴点周辺の一定区域に属するピクセルの明るさ勾配(gradient)の分布特性(明るさ変化の方向及び変化の激しさの程度)に対して、各方向に対する変化の激しさの程度を各次元に対する数値とするn次元ベクトル(vector)を求める画像認識技法である。
【0132】
位置認識モジュール142は、未知の現在位置の取得画像により得た少なくとも1つの認識ディスクリプタ情報に基づいて、所定の下位変換規則に従って比較対象となる位置情報(例えば、各位置の特徴分布)と比較可能な情報(下位認識特徴分布)に変換する。
【0133】
所定の下位比較規則に従って、それぞれの位置特徴分布をそれぞれの認識特徴分布と比較してそれぞれの類似度を算出することができる。それぞれの位置に相当する前記位置別に類似度(確率)を算出し、そのうち最大の確率が算出される位置を現在位置に決定することができる。
【0134】
このように、制御部140は、走行区域を区分して複数の領域から構成されたマップを生成するか、既に保存されているマップに基づいて本体110の現在位置を認識することができる。
【0135】
制御部140は、マップが生成されると、生成されたマップを通信部190を介して外部端末機、サーバなどに送信することができる。また、制御部140は、前述したように、外部端末機、サーバなどからマップが受信されると、保存部に保存することができる。
【0136】
さらに、制御部140は、走行中にマップが更新される場合、更新された情報を外部端末機に送信して外部端末機と移動ロボット100、100a、100bに保存されるマップを同一にする。外部端末機と移動ロボット100、100a、100bに保存されているマップが同一に維持されることにより移動端末機からの掃除命令に対して、移動ロボット100、100a、100bが指定された領域を掃除することができ、また、外部端末機に移動ロボットの現在位置が表示されることができるようにするためである。
【0137】
ここで、マップは、掃除領域を複数の領域に区分し、複数の領域を連結する連結通路を含み、領域内の障害物に関する情報を含むことができる。
【0138】
制御部140は、掃除命令が入力されると、マップ上の位置と移動ロボットの現在位置が一致するか否かを判断する。掃除命令は、リモコン、操作部、又は外部端末機から入力される。
【0139】
制御部140は、現在位置がマップ上の位置と一致しない場合、又は、現在位置を確認できない場合、現在位置を認識して移動ロボット100の現在位置を復旧した後、現在位置に基づいて指定領域に移動するように走行部160を制御することができる。
【0140】
現在位置がマップ上の位置と一致しない場合、又は、現在位置が確認できない場合、位置認識モジュール142は、画像取得部120から入力される取得画像を分析してマップに基づいて現在位置を推定することができる。また、障害物認識モジュール144又は地図生成モジュール143も同様の方式で現在位置を認識することができる。
【0141】
位置を認識して移動ロボット100、100a、100bの現在位置を復旧した後、走行制御モジュール141は現在位置から指定領域に走行経路を算出し、走行部160を制御して指定領域に移動する。
【0142】
サーバから掃除パターン情報を受信すると、走行制御モジュール141は、受信した掃除パターン情報によって、全体走行区域を複数の領域に分け、1つ以上の領域を指定領域に設定することができる。
【0143】
また、走行制御モジュール141は、受信した掃除パターン情報によって走行経路を算出し、走行経路に沿って走行し、掃除を行うことができる。
【0144】
制御部140は、設定された指定領域に対する掃除が完了すると、掃除記録を保存部150に保存することができる。
【0145】
また、制御部140は、通信部190を介して移動ロボット100の動作状態又は掃除状態を所定周期で外部端末機、サーバに送信することができる。
【0146】
それにより、外部端末機は、受信されるデータに基づいて、実行中のアプリケーションの画面上にマップと共に移動ロボットの位置を表示し、また掃除状態に関する情報を出力する。
【0147】
本発明の実施形態による移動ロボット100、100a、100bは、一方向に障害物や壁面が感知されるまで移動する途中、障害物認識モジュール144が障害物を認識すると、認識された障害物の属性によって直進、回転などの走行パターンを決定することができる。
【0148】
例えば、認識された障害物の属性が乗り越えられる種類の障害物であると、移動ロボット100、100a、100bは直進し続けることができる。または、認識された障害物の属性が乗り越えられない種類の障害物であると、移動ロボット100、100a、100bは回転して一定距離を移動し、再び最初移動方向の反対方向に障害物が感知される距離まで移動してジグザグ状に走行することができる。
【0149】
本発明の実施形態による移動ロボット100、100a、100bは、マシンラーニング(machine learning)基盤の障害物認識及び回避を行うことができる。
【0150】
制御部140は、入力画像からマシンラーニング(machine learning)により既に学習された障害物を認識する障害物認識モジュール144と、前記認識された障害物の属性に基づいて走行部160の駆動を制御する走行制御モジュール141とを含むことができる。
【0151】
本発明の実施形態による移動ロボット100、100a、100bは、マシンラーニングにより障害物の属性が学習された障害物認識モジュール144を含むことができる。
【0152】
マシンラーニングとは、コンピュータに人が直接ロジック(Logic)を指示しなくてもデータによりコンピュータが学習を行い、これにより、コンピュータが自ら問題を解決するようにすることを意味する。
【0153】
ディープラーニング(Deep Learning)とは、人工知能を構成するための人工ニューラルネットワーク(Artificial Neural Networks: ANN)に基づいてコンピュータに人の考え方を教える方法であり、人が教えなくてもコンピュータが自ら人のように学習できる人工知能技術である。
【0154】
前記人工ニューラルネットワーク(ANN)は、ソフトウェア形態で実現されるか、チップ(chip)などのハードウェア形態で実現されることができる。
【0155】
障害物認識モジュール144は、障害物の属性が学習されたソフトウェア又はハードウェア形態の人工ニューラルネットワーク(ANN)を含むことができる。
【0156】
例えば、障害物認識モジュール144は、ディープラーニング(Deep Learning)により学習されたCNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DBN(Deep Belief Network)などの深層ニューラルネットワーク(Deep Neural Network:DNN)を含むことができる。
【0157】
ディープラーニング(Deep Learning)については
図9ないし
図12を参照して詳細に後述する。
【0158】
障害物認識モジュール144は、前記深層ニューラルネットワーク(DNN)に含まれたノード間の加重値(weight)に基づいて入力される画像データに含まれる障害物の属性を判別することができる。
【0159】
一方、移動ロボット100、100a、100bの移動中にセンサ部170が障害物を感知すると、制御部140は、センサ部170が感知する障害物の方向に対応して画像取得部120が取得する画像の一部領域を抽出するように制御することができる。
【0160】
画像取得部120、特に前面カメラ120aは、前記移動ロボット100、100a、100bの移動方向から所定角度の範囲内の画像を取得することができる。
【0161】
制御部140は、画像取得部120、特に前面カメラ120aが取得した画像全体を用いることではなく、一部領域のみを用いて移動方向に存在する障害物の属性を判別することができる。
【0162】
図6の実施形態を参照すると、制御部140は、センサ部170が感知する障害物の方向に対応して画像取得部120が取得する画像の一部領域を抽出する画像処理モジュール145をさらに含むことができる。
【0163】
または、
図7の実施形態を参照すると、移動ロボット100bは、センサ部170が感知する障害物の方向に対応して画像取得部120が取得する画像の一部領域を抽出する別途の画像処理部125をさらに含むことができる。
【0164】
図6の実施形態による移動ロボット100aと
図7の実施形態による移動ロボット100bは、画像処理モジュール145、画像処理部125以外に他の構成は同一である。
【0165】
または、実施形態によっては、
図6及び
図7の実施形態とは異なり、画像取得部120が直接前記画像の一部領域を抽出することもできる。
【0166】
前記マシンラーニングにより学習された障害物認識モジュール144は、その特性上、学習した対象が入力画像データにおいて多くの部分を占めるほど認識率が高い。
【0167】
従って、本発明は、超音波センサなどのセンサ部170が感知する障害物の方向によって画像取得部120が取得した画像のうち他の領域を抽出して認識用データとして用いることにより、認識率を高めることができる。
【0168】
障害物認識モジュール144は、マシンラーニング(machine learning)により既に学習されたデータに基づいて、抽出された画像から障害物を認識することができる。
【0169】
また、走行制御モジュール141は、前記認識された障害物の属性に基づいて走行部160の駆動を制御することができる。
【0170】
一方、制御部140は、前記障害物が前記本体の前面の右方向で感知される場合、前記画像取得部が取得する画像の右側下段領域を抽出し、前記障害物が前記本体の前面の左方向で感知される場合、前記画像取得部が取得する画像の左側下段領域を抽出し、前記障害物が前記本体の前面方向で感知される場合、前記画像取得部が取得する画像の中央(center)下段領域を抽出するように制御することができる。
【0171】
また、制御部140は、前記画像取得部が取得する画像における抽出対象領域を、前記感知される障害物の方向に対応するように移動(shift)させて抽出するように制御することができる。
【0172】
画像取得部120が取得した画像の一部領域を切り出して(cropping)抽出する構成については
図15ないし
図21を参照して詳細に後述する。
【0173】
また、移動ロボット100、100a、100bの移動中にセンサ部170が障害物を感知すると、制御部140は、本体110の移動方向と移動速度に基づいて、画像取得部120が取得する連続した複数の画像のうちセンサ部170の障害物感知時点以前の特定時点画像を選択するように制御することができる。
【0174】
センサ部170の障害物感知時点をトリガ(trigger)信号にして、画像取得部120が画像を取得する場合は、移動ロボットが継続して移動しているため、障害物が取得画像に含まれないか、小さく含まれることがある。
【0175】
従って、本発明の一実施形態は、本体110の移動方向と移動速度に基づいて、画像取得部120が取得する連続した複数の画像のうちセンサ部170の障害物感知時点以前の特定時点画像を選択して、障害物認識用データとして用いることができる。
【0176】
一方、障害物認識モジュール144は、マシンラーニング(machine learning)により既に学習されたデータに基づいて前記選択された特定時点画像に含まれる障害物の属性を認識することができる。
【0177】
一方、保存部150には障害物属性判別のための入力データ、前記深層ニューラルネットワーク(DNN)を学習するためのデータが保存されることができる。
【0178】
保存部150には画像取得部120が取得した原本画像と所定領域が抽出された抽出画像が保存されることができる。
【0179】
また、実施形態によっては、保存部150には前記深層ニューラルネットワーク(DNN)構造をなすウェイト(weight)、バイアス(bias)が保存される。
【0180】
または、実施形態によっては、前記深層ニューラルネットワーク構造をなすウェイト(weight)、バイアス(bias)は障害物認識モジュール144のエンベディッドメモリ(embedded memory)に保存される。
【0181】
一方、障害物認識モジュール144は、画像取得部120が取得する画像の一部領域を抽出する度に前記抽出された画像をトレーニング(training)データとして用いて学習過程を行うか、所定数以上の抽出画像が取得された後に学習過程を行うことができる。
【0182】
すなわち、障害物認識モジュール144は、障害物を認識する度に認識結果を追加してウェイト(weight)などの深層ニューラルネットワーク(DNN)構造をアップデート(update)するか、所定回数のトレーニングデータが確保された後に確保されたトレーニングデータにより学習過程を行ってウェイト(weight)などの深層ニューラルネットワーク(DNN)構造をアップデートすることができる。
【0183】
または、移動ロボット100、100a、100bは、通信部190を介して前記抽出された画像を所定サーバに送信し、前記所定サーバからマシンラーニングに関するデータを受信することができる。
【0184】
この場合、移動ロボット100、100a、100bは、前記所定サーバから受信したマシンラーニングに関するデータに基づいて障害物認識モジュール141をアップデート(update)することができる。
【0185】
図8は、本発明の一実施形態によるサーバの簡略な内部ブロック図の一例である。
【0186】
図8を参照すると、サーバ70は、通信部820、保存部830、学習モジュール840、及びプロセッサ810を備える。
【0187】
プロセッサ810は、サーバ70の全般的な動作を制御することができる。
【0188】
一方、サーバ70は、前記移動ロボット100、100a、100bなどのホームアプライアンスのメーカーが運営するサーバ又はサービス提供者が運営するサーバであり得、一種のクラウド(Cloud)サーバであり得る。
【0189】
通信部820は、携帯端末機、移動ロボット100、100a、100bなどのホームアプライアンス、ゲートウェイなどから状態情報、動作情報、操作情報などの各種データを受信することができる。
【0190】
また、通信部820は、受信される各種情報に対応するデータを携帯端末機、移動ロボット100、100a、100bなどのホームアプライアンス、ゲートウェイなどに送信することができる。
【0191】
このために、通信部820は、インターネットモジュール、移動通信モジュールなど、1つ以上の通信モジュールを備えることができる。
【0192】
保存部830は、受信される情報を保存し、これに対応する結果情報生成のためのデータを備えることができる。
【0193】
また、保存部830は、マシンラーニングに用いられるデータ、結果データなどを保存することができる。
【0194】
学習モジュール840は、前記移動ロボット100、100a、100bなどのホームアプライアンスの学習機の役割を果たすことができる。
【0195】
学習モジュール840には人工ニューラルネットワーク、例えば、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DBN(Deep Belief Network)などの深層ニューラルネットワーク(Deep Neural Network:DNN)が含まれることができ、深層ニューラルネットワークを学習することができる。
【0196】
学習モジュール840の学習方法としては、自律学習(unsupervised learning)と指導学習(supervised learning)が両方とも用いられることができる。
【0197】
一方、制御部810は、設定によって学習した後に前記移動ロボット100、100a、100bなどのホームアプライアンスの人工ニューラルネットワーク構造を学習された人工ニューラルネットワーク構造にアップデートさせるように制御することができる。
【0198】
図9ないし
図12は、ディープラーニング(Deep Learning)に関する説明に参照される図である。
【0199】
マシンラーニング(Machine Learning)の一種であるディープラーニング(Deep Learning)技術は、データに基づいて多段階で深い水準まで行って学習するものである。
【0200】
ディープラーニング(Deep learning)は、段階を高くするほど複数のデータから核心的なデータを抽出するマシンラーニング(Machine Learning)アルゴリズムの集合を示すことができる。
【0201】
ディープラーニング構造は人工ニューラルネットワーク(ANN)を含むことができ、例えば、ディープラーニング構造はCNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DBN(Deep Belief Network)などの深層ニューラルネットワーク(DNN)から構成されることができる。
【0202】
図9を参照すると、人工ニューラルネットワーク(ANN)は、入力レイヤ(Input Layer)、隠れレイヤ(Hiddent Layer)、及び出力レイヤ(Output Layer)を含むことができる。各レイヤは複数のノードを含み、各レイヤは次のレイヤに接続される。隣接するレイヤ間のノードはウェイト(weight)をもって互いに接続されることができる。
【0203】
図10を参照すると、コンピュータ(マシン)は、投入された入力データ(1010)から一定のパターンを発見して特徴マップ(Feature Map)を形成する。コンピュータ(マシン)は、下位レベル特徴1020から、中間レベル特徴1030、上位レベル特徴1040まで抽出して、対象を認識してその結果の出力1050を行うことができる。
【0204】
人工ニューラルネットワークは、次の順序のレイヤに行くほどさらに上位レベルの特徴に抽象化することができる。
【0205】
図9及び
図10を参照すると、各ノードは、活性化モデルに基づいて動作することができ、活性化モデルによって入力値に対応する出力値が決定される。
【0206】
任意のノード、例えば、下位レベル特徴1020の出力値は該当ノードに接続された次のレイヤ、例えば、中間レベル特徴1030のノードに入力される。次のレイヤのノード、例えば、中間レベル特徴1030のノードには下位レベル特徴1020の複数のノードから出力される値が入力される。
【0207】
ここで、各ノードの入力値は、以前レイヤのノードの出力値にウェイト(weight)が適用された値であり得る。ウェイト(weight)は、ノード間の接続強度を意味することができる。
【0208】
また、ディープラーニング過程は、適切なウェイト(weight)を見出す過程と見なすこともできる。
【0209】
一方、任意のノード、例えば、中間レベル特徴1030の出力値は該当ノードに接続された次のレイヤ、例えば、上位レベル特徴1040のノードに入力される。次のレイヤのノード、例えば、上位レベル特徴1040のノードには中間レベル特徴1030の複数のノードから出力される値が入力される。
【0210】
人工ニューラルネットワークは、各レベルに対応する学習されたレイヤ(layer)を用いて、各レベルに対応する特徴情報を抽出することができる。人工ニューラルネットワークは順次抽象化して、最上位レベルの特徴情報を活用して所定対象を認識することができる。
【0211】
例えば、ディープラーニングによる顔認識過程について説明すると、コンピュータは、入力画像からピクセルの明るさによって明るいピクセルと暗いピクセルを区分し、枠、エッジなどの単純な形態を区分した後、もう少し複雑な形態と事物を区分することができる。最終的にコンピュータは人間の顔を規定する形態を把握することができる。
【0212】
本発明によるディープラーニング構造は、公知の多様な構造を用いることができる。例えば、本発明によるディープラーニング構造は、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DBN(Deep Belief Network)などであり得る。
【0213】
RNN(Recurrent Neural Network)は、自然言語処理などに多く用いられ、時間の流れによって変わる時系列データ(Time-series data)処理に効果的な構造であって、瞬間毎にレイヤを積み上げて人工ニューラルネットワーク構造を構成することができる。
【0214】
DBN(Deep Belief Network)は、ディープラーニング技法であるRBM(Restricted Boltzman Machine)を多層で積んで構成されるディープラーニング構造である。RBM(Restricted Boltzman Machine)学習を繰り返して一定個数のレイヤになると、該当個数のレイヤを有するDBN(Deep Belief Network)を構成することができる。
【0215】
CNN(Convolutional Neural Network)は、特にオブジェクト認識分野で多く用いられる構造であり、
図11及び
図12を参照して説明する。
【0216】
CNN(Convolutional Neural Network)は、人が物体を認識するとき、物体の基本的な特徴を抽出した後に脳の中で複雑な計算を経てその結果に基づいて物体を認識するという仮定に基づいて作成された人の脳機能を摸写したモデルである。
【0217】
図11は、CNN(Convolutional Neural Network)構造を示す図である。
【0218】
CNN(Convolutional Neural Network)も入力レイヤ(Input Layer)、隠れレイヤ(Hiddent Layer)、及び出力レイヤ(Output Layer)を含むことができる。
【0219】
入力レイヤ(Input Layer)には所定イメージ1100が入力される。
【0220】
図11を参照すると、隠れレイヤ(Hiddent Layer)は、複数のレイヤから構成され、コンボリューションレイヤ(convolution layer)とサブサンプリングレイヤ(sub-sampling layer)とを含むことができる。
【0221】
CNN(Convolutional Neural Network)においては、基本的にコンボリューション(convolution)演算により画像の特徴を抽出するための多様なフィルタと非線形的な特性を足すためのプーリング(pooling)又は非線形活性化(non-linear activation)関数などが共に用いられる。
【0222】
コンボリューション(convolution)は、画像処理分野において主にフィルタ演算に用いられ、画像から特徴(feature)を抽出するためのフィルタを実現するのに用いられる。
【0223】
例えば、
図12を参照すると、3×3ウィンドウを移動しながら画像全体に対してコンボリューション演算を繰り返して行うと、ウィンドウの加重値(weight)値によって適正な結果を得ることができる。
【0224】
図12の(a)を参照すると、全体イメージ中の所定領域1210に対して3×3ウィンドウを用いて、コンボリューション演算を行うと、結果値1201が出る。
【0225】
図12の(b)を参照すると、3×3ウィンドウを右側に1移動させた領域1220に対して再び結果を求めると、所定結果値1202が出る。
【0226】
すなわち、
図12の(c)を参照すると、所定ウィンドウを移動させながら画像全体に対して演算を行うと、最終的な結果を得ることができる。
【0227】
コンボリューションレイヤ(convolution layer)は、予め定めたサイズのフィルタ(例えば、
図12に例示する3×3ウィンドウ)を用いて以前レイヤから抽出された情報をフィルタリングするコンボリューションフィルタリングを行うのに用いられる。
【0228】
コンボリューションレイヤ(convolution layer)は、コンボリューションフィルタを用いて入力された画像データ1100、1102にコンボリューション演算を行い、入力イメージ1100の特徴が表現された特徴マップ1101、1103を生成する。
【0229】
コンボリューションフィルタリングの結果として、コンボリューションレイヤ(convolution layer)に含まれたフィルタの数によってフィルタ数だけのフィルタリング画像が生成されることができる。コンボリューションレイヤは、フィルタリング画像らに含まれるノードから構成される。
【0230】
また、コンボリューションレイヤ(convolution layer)と対をなすサブサンプリングレイヤ(sub-sampling layer)は、対をなすコンボリューションレイヤ(convolution layer)と同じ数の特徴マップを含むことができる。
【0231】
サブサンプリングレイヤ(sub-sampling layer)は、サンプリング又はプーリング(pooling)により特徴マップ1101、1103の次元を減少させる。
【0232】
出力レイヤ(Output Layer)は、特徴マップ1104に表現された多様な特徴を組み合わせて入力イメージ1100を認識する。
【0233】
本発明による移動ロボットの障害物認識モジュールは、前述した多様なディープラーニング構造を用いることができる。例えば、本発明が限定されることではないが、画像内のオブジェクト認識において多く用いられているCNN(Convolutional Neural Network)構造を用いることができる。
【0234】
一方、人工ニューラルネットワークの学習は、与えられた入力に対して所望の出力が出るようにノード間の接続線のウェイト(weight)を調整することにより行われることができる。また、人工ニューラルネットワークは学習によりウェイト(weight)値を持続的にアップデートさせることができる。さらに、人工ニューラルネットワークの学習には逆伝播(Back Propagation)などの方法が用いられることができる。
【0235】
図13及び
図14は、本発明の実施形態による移動ロボットの制御方法を示すフローチャートである。
【0236】
図2ないし
図7、及び
図13を参照すると、まず、移動ロボット100、100a、100bは命令又は設定によって移動しながら掃除を行う(S1310)。
【0237】
センサ部170は、障害物感知センサ131を含み、前方の障害物を感知することができる。
【0238】
移動中にセンサ部170により障害物が感知されると(S1320)、画像取得部120は本体110の前方の画像を取得する(S1330)。
【0239】
この場合に、制御部140は、センサ部170が感知する障害物の方向に対応して画像取得部120が取得する画像の一部領域を切り出して抽出するように制御する(S1340)。
【0240】
実施形態によって、制御部140内の画像処理モジュール145が前記画像の一部領域を抽出することができる。または、制御部140は、別途に備えられる画像処理部125が一部領域を抽出するように制御することができる。または、制御部140は、画像取得部120が一部領域を抽出するように制御することができる。
【0241】
一方、障害物認識モジュール144は、マシンラーニング(machine learning)により既に学習されたデータに基づいて、前記抽出された画像から障害物を認識する(S1350)。
【0242】
障害物認識モジュール144は、マシンラーニングにより障害物の種類などの属性を認識するように学習された人工ニューラルネットワークを含むことができ、既に学習されたデータに基づいて障害物の属性を認識する(S1350)。
【0243】
例えば、障害物認識モジュール144にはディップランニング構造の1つであるCNN(Convolutional Neural Network)が搭載され、既に学習されたCNN(Convolutional Neural Network)は入力データに含まれた障害物の属性を認識してその結果を出力することができる。
【0244】
前記マシンラーニングにより学習された障害物認識モジュール144は、その特性上、学習した対象が入力画像データにおいて多くの部分を占めるほど認識率が高い。
【0245】
従って、本発明は、センサ部170が感知する障害物の方向によって画像取得部120が取得した画像のうち他の領域を抽出して認識用データとして用いることにより、認識率を高めることができる。
【0246】
画像取得部120が取得した画像の一部領域を切り出して(cropping)抽出する構成については
図15ないし
図21を参照して詳細に後述する。
【0247】
一方、走行制御モジュール141は、前記認識された障害物の属性に基づいて、走行部160の駆動を制御する(S1360)。
【0248】
例えば、走行制御モジュール141は、前記認識された障害物が乗り越えられない高さの障害物である場合、障害物を迂回して走行するように制御することができる。
【0249】
また、走行制御モジュール141は、低い高さの小段差のように前記認識された障害物が乗り越えられる高さの障害物である場合、継続して直進走行するように制御することができる。
【0250】
さらに、走行制御モジュール141は、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束可能性のある障害物が認識されると、障害物を迂回して走行するように制御することができる。
【0251】
一方、前述した障害物認識過程を複数回行い、複数の認識結果に基づいて最終認識結果を導出することにより、認識正確度をさらに向上させることができる。
【0252】
例えば、制御部140は、感知された障害物の位置情報と移動ロボットの位置情報を保存部150に保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ(map)に障害物地域として登録するように制御することができる。
【0253】
その後、登録されている障害物地域を通り過ぎる度に障害物の属性を認識し、複数の認識結果に基づいて最終障害物属性を判別することができる。
【0254】
制御部140は、所定障害物地域で画像取得部120により取得される画像に対して順次に障害物の属性を認識し、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別することができる。本実施形態については、
図29ないし
図34を参照して詳細に後述する。
【0255】
図2ないし
図7、及び
図14を参照すると、まず、移動ロボット100、100a、100bは命令又は設定によって移動する(S1410)。
【0256】
センサ部170が超音波センサを含む場合、反射される超音波信号を感知することにより障害物を認識する(S1420)。
【0257】
一方、画像取得部120は、持続的に移動ロボット100、100a、100bの前方及び周辺を撮影するか、センサ部170の障害物感知によって前方及び周辺を撮影して画像を取得することができる。
【0258】
制御部140は、画像取得部120により取得した画像中に前記超音波信号が感知された領域に対応する領域を抽出するように制御する(S1430)。例えば、制御部140は、前記超音波信号が感知された領域が前方右側領域である場合、画像取得部120により取得した画像中の右側領域を抽出するように制御することができる。また、制御部140は、前記超音波信号が感知された領域が前方中央領域である場合、画像取得部120により取得した画像中の中央領域を抽出するように制御することができる。
【0259】
一方、制御部140は、マシンラーニングにより既に学習されたデータに基づいて、前記抽出された画像から感知された障害物の属性を判別することができる。
【0260】
また、制御部140は、感知された障害物が乗り越えられない高さであるか否かを判断する(S1440)。
【0261】
もし、前記認識された障害物が乗り越えられない高さの障害物である場合(S1440)、制御部140は、90度回転した後、障害物を迂回して走行するように制御する(S1455)。
【0262】
一方、前記認識された障害物が乗り越えられる高さの障害物である場合(S1440)、制御部140は、感知された障害物の属性情報を判断する(S1445)。すなわち、制御部140は、前記認識された障害物が拘束可能性が低くて進行してもかまわない障害物であるか否かを判断することができる。
【0263】
進行してもかまわない障害物であると判断されると、制御部140は、継続して直進移動するように制御する(S1450)。
【0264】
従来は、感知された障害物が乗り越えられる高さであるか否かを判断して、低い高さの障害物の場合は直進走行した。
【0265】
しかしながら、電線などの障害物の場合、移動ロボットが電線に巻かれて拘束される場合が発生した。
【0266】
また、移動ロボットは、拘束される場合に左右に振るモーション(motion)などを適用して拘束状態から抜け出そうとするが、電線の被覆が剥ける事故などが発生することがあった。
【0267】
しかしながら、本発明は、マシンラーニングと画像情報を活用して障害物属性情報を認識し、認識された障害物属性によって走行パターンを決定することにより、信頼性を向上させることができる。
【0268】
図15ないし
図21は、本発明の実施形態による移動ロボットの制御方法に関する説明に参照される図面であり、画像取得部120が取得した画像の一部領域を切り出して(cropping)抽出する具体的な例を示す。
【0269】
図15を参照すると、移動ロボット100は、センサ部170により移動中に扇風機などの障害物1500を感知することができる。
図15は、障害物1500が移動ロボット100の移動方向の中央で感知される場合を例示する。
【0270】
移動ロボット100が移動中に障害物1500の存在を感知すると、
図16の(a)のように、画像取得部120は移動ロボット100の前方を撮影して障害物1500の少なくとも一部が含まれる画像1600を取得することができる。
【0271】
制御部140は、センサ部170が感知する障害物1500の方向に対応して画像取得部120が取得した画像1600の一部領域1610を抽出するように制御することができる。
【0272】
図15及び
図16を参照すると、制御部140は、障害物1500が本体110の前面方向で感知される場合、画像取得部120が取得する画像の中央(center)下段領域1610を抽出するように制御することができる。
【0273】
一方、制御部140は、
図16の(b)のように抽出された画像1620を障害物の属性を認識するための入力データとして用いることができる。
【0274】
障害物認識モジュール144は、マシンラーニングにより既に学習されたデータに基づいて障害物1500が扇風機ということを認識することができる。例えば、障害物認識モジュール144にはディップランニング構造の1つであるCNN(Convolutional Neural Network)が搭載され、既に学習されたCNN(Convolutional Neural Network)は入力データに含まれた障害物の属性を認識してその結果を出力することができる。
【0275】
一方、走行制御モジュール141は、前記感知された障害物が進行してもかまわない障害物でない場合、回転後に進行などの回避動作を行うように走行部160を制御することができる。
【0276】
一方、前記抽出された画像1620は保存部150に保存されることができる。また、画像取得部120が取得した原本画像1600も保存部150に保存されることができる。
【0277】
保存部150に保存されている抽出された画像1620はトレーニングデータとして活用されることができる。
【0278】
一方、制御部140は、障害物が本体110前面の右方向で感知される場合、画像取得部120が取得する画像の右側下段領域を抽出し、障害物が本体110の前面の左方向で感知される場合、画像取得部120が取得する画像の左側下段領域を抽出するように制御することができる。
【0279】
図17は、障害物1500が移動ロボット100の移動方向の右側で感知される場合を例示する。
【0280】
図18の(a)を参照すると、障害物1500が本体110の前面の右方向で感知される場合、制御部140は、画像取得部120が取得する画像1800の右側下段領域1810を抽出するように制御することができる。
【0281】
制御部140は、
図18の(b)のように抽出された画像1820を障害物の属性を認識するための入力データとして用いることができる。
【0282】
本発明は、単に全体画像の中心領域を基準に予め設定されたサイズにクロッピング(cropping)することではなく、障害物が感知される方向に基づいて、画像中の速央、左側、右側領域を抽出することができる。
【0283】
従って、認識のための入力データに障害物が最大限多く含まれることができる。マシンは、画像内の比重が最も多いものを認識するので、障害物の属性認識率を向上させることができる。
【0284】
一方、移動ロボット100は、所定空間の床面で走行するので、取得画像の下段部を抽出して認識のための入力データに障害物がより多く含まれるようにすることができる。
【0285】
一方、
図19の(a)、
図20の(a)、
図21の(a)を参照すると、本発明の一実施形態によるセンサ部170は、移動ロボット100の本体の前面に配置される第1センサS1、第1センサS1から左右に離隔して配置される第2センサS2及び第3センサS3を含む。
【0286】
この場合、第1センサS1は発信部として動作し、第2センサS2及び第3センサS3は受信部として動作することができる。例えば、第1センサS1は超音波信号を放射し、第2センサS2及び第3センサS3は障害物に反射された信号を受信することができる。障害物に反射された信号を受信すると、公知の超音波を用いた認識方法を用いて障害物がある方向、障害物との距離を判断することができる。
【0287】
図19の(a)は、障害物X1が移動ロボット100の前面方向の中央で感知される場合を例示する。前記感知される障害物X1と第2センサS2間の距離L1と前記感知される障害物X1と第3センサS3間の距離L2が同一(L1=L2)である場合、障害物X1が移動ロボット100の前面方向の中央で感知されたと判断することができる。
【0288】
この場合、
図19の(b)のようにa1×b1のサイズを有する画像取得部120が取得した原本画像全体1900の中央(center)下段からa2×b2のサイズを有する所定領域1910を抽出することができる。
【0289】
一方、制御部140は、画像取得部120が取得する画像における抽出対象領域を、前記感知される障害物X1と第2センサS2間の距離L1と前記感知される障害物X1と第3センサS3間の距離L2との差に比例するように移動(shift)させて抽出するように制御することができる。
【0290】
図20の(a)は、障害物X1が移動ロボット100の前面の右方向で感知される場合を例示する。前記感知される障害物X1と第2センサS2間の距離L1が前記感知される障害物X1と第3センサS3間の距離L2より大きい場合(L1>L2)、障害物X1が移動ロボット100の前面の右方向で感知されたと判断することができる。
【0291】
この場合、
図20の(b)のように、a1×b1のサイズを有する画像取得部120が取得した原本画像全体1900の右側下段からa2×b2のサイズを有する所定領域1920を抽出することができる。
【0292】
図19の(b)と
図20の(b)を比較すると、障害物X1が右側で感知されるときの抽出対象領域1920の中央点CP2、開始点SP2が障害物X1が中央で感知されるときの抽出対象領域1910の中央点CP1、開始点SP1から所定値d1だけ右側に移動(shift)されたことを確認することができる。
【0293】
この場合、移動(shift)される所定値d1は、前記感知される障害物X1と第2センサS2間の距離L1と前記感知される障害物X1と第3センサS3間の距離L2との差(L1−L2)に比例する。
【0294】
図21の(a)は、障害物X1が移動ロボット100の前面の左方向で感知される場合を例示する。前記感知される障害物X1と第2センサS2間の距離L1が前記感知される障害物X1と第3センサS3間の距離L2より小さい場合(L1<L2)、障害物X1が移動ロボット100の前面の左方向で感知されたと判断することができる。
【0295】
この場合、
図21の(b)のように、a1×b1のサイズを有する画像取得部120が取得した原本画像全体1900の左側下段からa2×b2のサイズを有する所定領域1930を抽出することができる。
【0296】
図19の(b)と
図21の(b)を比較すると、障害物X1が左側で感知されるときの抽出対象領域1930の中央点CP3、開始点SP3が障害物X1が中央で感知されるときの抽出対象領域1910の中央点CP1、開始点SP1から所定値d2だけ左側に移動(shift)されたことが確認することができる。
【0297】
この場合、移動(shift)される所定値d2は、前記感知される障害物X1と第2センサS2間の距離L1と前記感知される障害物X1と第3センサS3間の距離L2差(L2−L1)に比例する。
【0298】
一方、本発明の一実施形態による移動ロボットは、前記抽出された画像をトレーニング(training)データとして用いて学習過程を行うことにより、人工ニューラルネットワーク(ANN)、深層ニューラルネットワーク(DNN)構造を持続的にアップデートすることができる。
【0299】
または、前記抽出された画像を所定サーバに送信し、前記所定サーバからマシンラーニングに関するデータを受信することができる。その後、移動ロボットは、前記所定サーバから受信したマシンラーニングに関するデータに基づいて前記障害物認識モジュールをアップデート(update)することができる。
【0300】
図22は、本発明の一実施形態による移動ロボットとサーバの動作方法に関する説明に参照される図であり、
図23は、本発明の一実施形態による移動ロボットとサーバの動作方法を示すフローチャートである。
【0301】
図22及び
図23を参照すると、移動ロボット100の障害物認識モジュール144にはCNN(Convolutional Neural Network)などの深層ニューラルネットワーク(DNN)構造144aが搭載される。
【0302】
既に学習された深層ニューラルネットワーク(DNN)構造144aは、認識用入力データを受信し(S2310)、入力データに含まれた障害物の属性を認識し(S2320)、その結果を出力する(S2330)。
【0303】
深層ニューラルネットワーク(DNN)構造144aが認識できないデータ(unknown data)は、保存部150又は障害物認識モジュール144内の自体保存空間144bに保存される(S2340)。
【0304】
一方、障害物認識モジュール144が認識できないデータ(unknown data)は、通信部190を介してサーバ70に送信される(S2341)。また、障害物認識モジュール144が認識に成功したデータもサーバ70に送信される。
【0305】
サーバ70は、学習されたウェイト(weight)の構成を生成することができ、深層ニューラルネットワーク(DNN)構造をトレーニング(training)データを用いて学習することができる。
【0306】
サーバ70は、受信したデータに基づいて、深層ニューラルネットワーク(DNN)を学習させた後(S2342)、アップデートされた深層ニューラルネットワーク(DNN)構造データを移動ロボット100に送信してアップデートさせる(S2343)。
【0307】
図24ないし
図26は、本発明の一実施形態による移動ロボットの制御方法に関する説明に参照される図である。
【0308】
本発明の実施形態による移動ロボットの障害物を感知する領域を中央、左側、右側の3領域に区分して識別できるだけでなく、それ以上の数に領域を区分することができる。
【0309】
図24は、6つの領域で分けて障害物を感知する場合を例示する。
【0310】
図24の(a)を参照すると、障害物感知領域2400を中央上部領域CU、中央下部領域CD、右側上部領域RU、右側下部領域RD、左側上部領域LU、左側下部領域LDの6つの領域に分けて障害物を感知することができる。
【0311】
また、本発明の実施形態による移動ロボットは、画像取得部120が取得する全体画像中に障害物が感知される領域に対応して一部領域を抽出することができる。
【0312】
図24の(b)を参照すると、障害物2410が中央上部領域CUと右側上部領域RUにわたって感知されることができる。この場合は、画像取得部120が取得する全体画像中の中央上部領域と右側上部領域をクロッピング(cropping)することができる。
【0313】
図24の(c)を参照すると、障害物2420が中央下部領域CD、右側下部領域RD、左側下部領域LDにわたって感知されることができる。この場合、画像取得部120が取得する全体画像中の下部領域CD、RD、LDをクロッピング(cropping)することができる。
【0314】
または、障害物感知領域に割り当てられた領域別にクロッピング(cropping)することではなく、領域をより細分化してクロッピング(cropping)することができる。
【0315】
例えば、
図24の(c)を参照すると、障害物2420が中央下部領域CD、右側下部領域RD、左側下部領域LDにわたって感知される場合、中央下部領域CD、右側下部領域RD、左側下部領域LD内の下部領域2325をクロッピング(cropping)することができる。
【0316】
図25及び
図26は、障害物認識モジュール144の障害物認識に関する説明に参照される図である。
【0317】
図25を参照すると、障害物認識モジュール144は、障害物を扇風機、ホームシアター、マルチタップ、ランプ基台、人毛、小段差などのクラス(class)に分類して区分して認識することができる。
【0318】
また、障害物認識モジュール144は、扇風機、ホームシアター、マルチタップ、ランプ基台、人毛などのクラスは上位概念として危険障害物スーパークラス(Super-class)に分類して区分して認識することができる。
【0319】
さらに、障害物認識モジュール144は、小段差などの直進走行可能な障害物を非危険障害物スーパークラス(Super-class)に分類して区分して認識することができる。
【0320】
図26の(a)を参照すると、障害物認識モジュール144は、入力された画像を認識して、扇風機は0.95の信頼値(confidence)を、ホームシアターは0.7の信頼値を有する認識結果を得ることができる。この場合、障害物認識モジュール144は、より高い信頼値の認識結果である扇風機を入力画像に対する認識結果として出力することができる。
【0321】
一方、信頼値(confidence)は、0.0〜1.0の範囲で正規化されることができる。
【0322】
図26の(b)を参照すると、障害物認識モジュール144は、入力された画像を認識して、扇風機は0.35の信頼値を、ホームシアターは0.4の信頼値を有する認識結果を得ることができる。
【0323】
例えば、0.6以下の信頼値は認めないように設定された場合、障害物認識モジュール144は、2つの認識結果の信頼値が両方とも基準値より低いので、特定認識結果を選択せずに、unknown dataと判定することができる。
【0324】
図26の(c)を参照すると、障害物認識モジュール144は、入力された画像を認識して、扇風機は0.95の信頼値を、ホームシアターは0.9の信頼値を有する認識結果を得ることができる。
【0325】
例えば、0.9以上の信頼値を有する認識結果を最終認識結果として選択するように設定された場合、障害物認識モジュール144は、2つの認識結果の信頼値が両方とも基準値より高いので、特定認識結果を選択せずに、上位概念である危険障害物と判定することができる。
【0326】
または、信頼値の差が0.15以上である場合に最高の信頼値の認識結果を認めるように設定された場合も、上位概念である危険障害物と判定することができる。
【0327】
一方、危険障害物と判断した場合も、走行制御モジュール141は、危険障害物を回避して移動するように駆動部160を制御することができる。
【0328】
図27は、本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【0329】
図27を参照すると、まず、移動ロボット100、100a、100bは命令又は設定によって移動して掃除を行う(S2710)。
【0330】
一方、画像取得部120は、移動中に本体110の周辺を連続的に撮影して複数の画像を取得する(S2720)。画像取得部120が取得する連続した複数の画像は保存部150に保存される。
【0331】
移動中にセンサ部170により障害物が感知されると(S2730)、制御部140は、本体110の移動方向と移動速度に基づいて、前記連続した複数の画像のうちセンサ部170の障害物感知時点以前の特定時点画像を選択する(S2740)。
【0332】
前記移動方向と移動速度はセンサ部170の動作感知センサの出力に基づいて走行制御モジュール141などにより算出されることができる。
【0333】
一方、移動ロボットが通常の走行時には基準速度で走行するように設定される場合は、前記移動速度が一定であるので、本体110の移動方向を判別して、特定時点の画像を選択することができる。
【0334】
一方、制御部140は、前記移動方向が直進走行であるか、所定基準値(基準角度)未満の回転走行である場合、前記連続した複数の画像のうちセンサ部170の障害物感知時点以前の特定時点画像を選択することができる。
【0335】
通常、超音波センサなどのセンサの感知レンジ(range)よりカメラの撮影レンジ(range)の方が大きい。
【0336】
従って、センサ部170が障害物を感知することを信号にして画像を取得する場合、移動ロボットは走行を続けているので、取得画像が障害物の特性を含めない可能性もある。また、センサ部170の感知レンジ(range)が短い場合は取得画像が障害物の特性を含めない場合がより高い確率で発生することがある。
【0337】
従って、制御部140は、直進走行又は直進走行に近い走行のとき、移動方向と速度を反映して、センサ部170の障害物感知時点以前の特定時点画像を選択することができる。
【0338】
この場合、制御部140は、前記移動の速度が遅いほどセンサ部170の障害物感知時点を基準にさらに過去時点の画像を選択することができる。
【0339】
移動速度が速いほど移動ロボット100はセンサ部170の障害物感知時点以後にさらに長い距離を走行する。すなわち、画像取得部120が一定の速度で複数の画像を撮影して取得するとき、特定フレームの画像が撮影される時間とその次のフレームの画像が撮影される時間との間に移動ロボットがさらに長い距離を走行する。
【0340】
従って、移動速度が速いほどセンサ部170の障害物感知時点に近い時点の画像を選択することが画像内に障害物が占める領域が大きい確率が高い。
【0341】
逆に、移動速度が遅いほど同一距離を走行する間に画像取得部120がより多くの画像を取得するので、センサ部170の障害物感知時点を基準にさらに過去時点の画像を選択することが好ましい。
【0342】
障害物認識モジュール144は、前記特定時点画像を選択して障害物認識の入力データとして用いることができる。
【0343】
一方、前記マシンラーニングにより学習された障害物認識モジュール144は、その特性上、学習した対象が入力画像データにおいて多くの部分を占めるほど認識率が高い。
【0344】
従って、制御部140は、センサ部170が感知する障害物の方向に対応して前記選択された特定時点画像の一部領域を切り出して抽出するように制御する(S2750)。
【0345】
センサ部170が感知する障害物の方向によって画像取得部120が取得した画像中に他の領域を抽出して認識用データとして用いることにより、認識率を高めることができる。
【0346】
障害物認識モジュール144は、前記選択された特定時点画像から抽出された一部領域の画像に含まれる障害物の属性を認識する(S2760)。
【0347】
障害物認識モジュール144は、マシンラーニング(machine learning)により既に学習されたデータに基づいて前記選択された特定時点画像から抽出された一部領域の画像に含まれる障害物の属性を認識することができる。
【0348】
障害物認識モジュール144は、マシンラーニングにより障害物の種類などの属性を認識するように学習された人工ニューラルネットワークを含むことができ、既に学習されたデータに基づいて障害物の属性を認識する(S2760)。
【0349】
例えば、障害物認識モジュール144にはディープラーニング構造の1つであるCNN(Convolutional Neural Network)が搭載され、既に学習されたCNN(Convolutional Neural Network)は入力データに含まれた障害物の属性を認識してその結果を出力することができる。
【0350】
一方、走行制御モジュール141は、前記認識された障害物の属性に基づいて、走行部160の駆動を制御する(S2770)。
【0351】
例えば、走行制御モジュール141は、前記認識された障害物が乗り越えられない高さの障害物である場合、障害物を迂回して走行するように制御することができる。
【0352】
また、走行制御モジュール141は、低い高さの小段差のように前記認識された障害物が乗り越えられる高さの障害物である場合、継続して直進走行するように制御することができる。
【0353】
さらに、走行制御モジュール141は、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束される可能性のある障害物が認識されると、障害物を迂回して走行するように制御することができる。
【0354】
図28は、本発明の一実施形態による移動ロボットの制御方法に関する説明に参照される図であり、障害物2800が移動ロボット100の前面方向で感知される場合を例示する。
【0355】
図28を参照すると、移動ロボット100が走行しながら、画像取得部120が継続して撮影して複数の画像を取得することができる。移動ロボット100は第1位置2810で第1画像2811を取得し、第2位置2820で第2画像2821を取得し、第3位置2830で第3画像2831を取得することができる。
【0356】
保存部150には所定数の画像が保存される。また、設定された数以上の画像が取得されると、最前の時点の画像を削除し、新しく取得された画像を保存することができる。
【0357】
移動ロボット100は、超音波信号感知によるトリガ(Trigger)信号によって画像認識を開始することができる。
【0358】
しかしながら、トリガ(Trigger)信号として用いる超音波センサの場合、レンジ(Range)が短いため、障害物2800が感知されてトリガ(Trigger)されるときに取得された画像2831を見ると、認識対象の特徴が消えることがある。
【0359】
従って、本発明は、保存部150に連続する画像を保存し、進行方向が直進走行であるかを判断した後、トリガ(Trigger)のときに第3画像2831を利用せずに第1画像2811を利用して障害物認識を行うことができる。
【0360】
移動ロボット100は、一定の速度で走行する場合が多いため、直進走行であるか否かのみを判断して所定時点の画像、例えば、センサ部170の障害物感知時点より2フレーム前の過去時点の画像を選択して障害物認識を行うことができる。
【0361】
また、制御部140は、センサ部170の感知範囲、性能、障害物認識過程の処理速度なども考慮して、センサ部170の障害物感知時点よりどのくらい前の過去時点の画像を選択するかを決定することができる。
【0362】
一方、実施形態によっては、選択された時点の画像全体を障害物認識入力データとして利用することなく、選択された時点の画像の一部領域を抽出して認識することにより認識率を高めることができる。
【0363】
本実施形態は、単に全体画像の中心領域を基準に予め設定されたサイズにクロッピング(cropping)することではなく、障害物が感知される方向に基づいて、画像中の中央、左側、右側領域を抽出することができる。
【0364】
例えば、前記障害物が前記本体の前面の右方向で感知される場合、前記選択された特定時点画像の右側下段領域を抽出し、前記障害物が前記本体の前面の左方向で感知される場合、前記選択された特定時点画像の左側下段領域を抽出し、前記障害物が前記本体の前面方向で感知される場合、前記選択された特定時点画像の中央(center)下段領域を抽出することができる。
【0365】
従って、認識のための入力データに障害物が最大限多く含まれることができる。マシンは、画像内に比重が最も多いものを認識するので、障害物の属性認識率を向上させることができる。
【0366】
本実施形態においても、前述した障害物認識過程を複数回行い、複数の認識結果に基づいて最終認識結果を導出することにより、認識正確度をさらに向上させることができる。
【0367】
例えば、制御部140は、感知された障害物の位置情報と移動ロボットの位置情報を保存部150に保存し、前記感知された障害物の位置を中心に所定のサイズを有する領域をマップ(map)に障害物地域として登録するように制御することができる。
【0368】
その後、登録された障害物地域を通り過ぎる度に障害物の属性を認識し、複数の認識結果に基づいて最終障害物属性を判別することができる。
【0369】
制御部140は、所定障害物地域において画像取得部120により取得される画像に対して順次に障害物の属性を認識し、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別することができる。
【0370】
図29は、本発明の一実施形態による移動ロボットの制御方法を示すフローチャートである。
【0371】
図29を参照すると、まず、移動ロボット100、100a、100bは命令又は設定によって移動しながら掃除を行う(S2910)。
【0372】
センサ部170は、障害物感知センサ131を含み、移動方向前方の所定範囲内の障害物を感知する(S2920)。
【0373】
移動中にセンサ部170により障害物が感知されると(S2920)、前記感知された障害物の位置情報と移動ロボット100、100a、100bの位置情報を保存部150に保存する(S2930)。
【0374】
また、前記感知された障害物の位置を中心に所定のサイズを有する領域を保存部150に保存されるマップ(map)に障害物地域として登録して保存、管理する(S2930)。
【0375】
前記移動ロボットの位置情報は、オドメトリ(odometry)情報から算出でき、前記オドメトリ(odometry)情報は、前述したセンサ部170の動作感知センサで感知されるデータに基づいて構成されることができる。
【0376】
一方、画像取得部120は、移動中に前記障害物地域で複数の画像を取得する(S2940)。
【0377】
画像取得部120は、前記障害物地域を登録し、前記移動ロボット100、100a、100bが前記障害物地域の外部に離脱する前に、前記障害物地域内で連続的に撮影して複数の画像を取得することができる。
【0378】
また、前記移動ロボット100、100a、100bは、前記感知された障害物に対する回避走行を行いながら全体障害物地域に対する画像を取得することができる。
【0379】
一方、全体障害物地域に対する探索のために、一連の動作で前記障害物地域内を走行しながら障害物地域を撮影することは、移動ロボット100、100a、100bの走行経路に多くの変化をもたらすことができる。
【0380】
従って、移動ロボット100、100a、100bが通常走行しながら、前記障害物地域を通過する度に、前記障害物地域を撮影して障害物に対する画像を取得することが好ましい。
【0381】
例えば、直進、方向転換の後、再び最初移動方向の反対方向に障害物が感知される距離まで移動する基本ジグザグパターンで移動ロボット100、100a、100bが走行する場合を仮定すると、最初の直進時に障害物地域を通過しながら撮影して所定数の画像を取得し、反対方向まで走行した後に戻ってくるときに再び障害物地域を通過しながら撮影して所定数の画像を取得する方式に分けて複数の画像を取得することができる。
【0382】
一方、障害物認識モジュール144は、マシンラーニング(machine learning)により既に学習されたデータに基づいて、前記障害物地域を移動しながら画像取得部120により取得される画像に対して順次に障害物の属性を認識する(S2950)。
【0383】
障害物認識モジュール144は、マシンラーニングにより障害物の種類などの属性を認識するように学習された人工ニューラルネットワークを含むことができ、既に学習されたデータに基づいて障害物の属性を認識する(S2950)。
【0384】
例えば、障害物認識モジュール144にはディープラーニング構造の1つであるCNN(Convolutional Neural Network)が搭載され、既に学習されたCNN(Convolutional Neural Network)は入力データに含まれた障害物の属性を認識してその結果を出力する。
【0385】
障害物認識モジュール144は、前記障害物地域で取得された1つの画像に対して障害物認識を行い、他の画像に対しても障害物認識を行った後、2つの画像に対する2つの認識結果のうちより正確な認識結果を選定して保存することができる。
【0386】
一方、障害物認識モジュール144は、2つの認識結果に含まれる信頼値(confidence)を比較して認識結果のうちより正確な認識結果を選定することができる。最後に行われた認識結果を現在の障害物認識結果にすることができ、次の画像に対する障害物認識が行われると、現在の障害物認識結果は以前の障害物認識結果となり、前記次の画像に対する障害物認識結果が現在の障害物認識結果となることができる。
【0387】
一方、障害物認識モジュール144は、画像取得部120により取得される画像に対して順次に障害物の属性を認識するとき(S2950)、現在の障害物認識結果と以前の障害物認識結果を比較する過程を繰り返して行うことができる。
【0388】
移動ロボット100、100a、100bが通常に走行しながら、前記障害物地域を通過する度に、前記障害物地域を撮影して画像を取得することができる。
【0389】
障害物認識モジュール144は、取得される画像に対して順次に画像認識過程を行った後、以前の障害物認識結果と比較してより高い信頼値を有する認識結果を選択することができる。
【0390】
好ましくは、障害物認識モジュール144は、現在の障害物認識結果と以前の障害物認識結果を比較して、前記現在の障害物認識結果と前記以前の障害物認識結果が同一であると、前記現在の障害物認識結果を維持し、信頼値(confidence)は所定加重値を反映して上向することできる。
【0391】
すなわち、前記現在の障害物認識結果と前記以前の障害物認識結果が同一であると、障害物認識結果を変更する必要がないので、その結果を維持するとともに、認識結果に対応する信頼値(confidence)は所定加重値を反映して上向することができる。
【0392】
従って、同一の認識結果が出る度に、障害物認識モジュール144は所定加重値を反映して信頼値(confidence)を上向して保存するように制御することができる。
【0393】
また、障害物認識モジュール144は、前記現在の障害物認識結果と前記以前の障害物認識結果が同一でないと、前記現在の障害物認識結果と前記以前の障害物認識結果のうち信頼値が高い認識結果を前記新しい現在障害物認識結果として登録することができる。
【0394】
すなわち、障害物認識モジュール144は、2つの認識結果を比較して、より高い信頼値の認識結果を残し、以後の認識結果と比較することができる。
【0395】
一方、障害物認識モジュール144は、前記順次に認識された複数の認識結果に基づいて前記障害物の最終属性を判別する(S2960)。
【0396】
障害物認識モジュール144は、順次に障害物を認識するうちに所定基準が満たされると、障害物の最終属性を決定することができる。すなわち、障害物認識モジュール144は、所定基準が満たされる瞬間の現在認識結果を最終認識結果として出力することができる。
【0397】
前記所定基準が満たされる瞬間以後はそれ以上障害物認識過程を行わないので、前記所定基準が満たされる瞬間の現在認識結果は、最後の現在認識結果となることができる。
【0398】
例えば、前記障害物地域の全ての領域に対して障害物認識が完了する瞬間、すなわち、前記障害物地域に対する認識カバレッジ(Coverage)が100%となる瞬間に最後の現在認識結果を前記障害物の最終属性として判別することができる。
【0399】
実施形態によっては、前記認識カバレッジ(Coverage)が90%、95%などの所定基準値に達すると、障害物認識過程を終了するように設定されることができる。
【0400】
または、障害物認識モジュール144は、現在の障害物認識結果と以前の障害物認識結果を比較して、前記現在の障害物認識結果と前記以前の障害物認識結果が同一であると、前記現在の障害物認識結果を維持し、信頼値(confidence)は前記現在の障害物認識結果の信頼値と前記以前の障害物認識結果の信頼値の平均値に変更されることができる。
【0401】
本実施形態は、前記現在の障害物認識結果と前記以前の障害物認識結果が同一のである場合、同一の認識結果に対する信頼値を2つの認識結果の既存の信頼値の平均値に決定する。
【0402】
本実施形態においても、障害物認識モジュール144は、前記現在の障害物認識結果と前記以前の障害物認識結果が同一でないと、前記現在の障害物認識結果と前記以前の障害物認識結果のうち信頼値の高い認識結果を前記新しい現在障害物認識結果として登録するように制御されることができる。
【0403】
一方、走行制御モジュール141は、前記認識された障害物の最終属性に基づいて、走行部160の駆動を制御する(S2980)。
【0404】
例えば、走行制御モジュール141は、前記認識された障害物が乗り越えられない高さの障害物である場合、障害物を迂回して走行するように制御することができる。
【0405】
また、走行制御モジュール141は、低い高さの小段差のように前記認識された障害物が乗り越えられる高さの障害物である場合、継続して直進走行するように制御することができる。
【0406】
さらに、走行制御モジュール141は、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束可能性のある障害物が認識されると、障害物を迂回して走行するように制御することができる。
【0407】
一方、障害物認識モジュール144は、前記判別された障害物の最終属性によって、該当障害物を危険障害物又は非危険障害物として前記マップに登録して管理する(S2970)。
【0408】
例えば、障害物認識モジュール144は、前記認識された障害物が乗り越えられない高さの障害物であるか、扇風機の基台、人毛、マルチタップ、電線などの低い高さの障害物であっても移動時に拘束可能性のある障害物である場合、認識された障害物を危険障害物としてマップに登録することができる。
【0409】
また、直進に走行しても乗り越えられる小段差などの障害物は非危険障害物としてマップに登録することができる。
【0410】
その後、移動ロボット100は、マップに登録された危険障害物、非危険障害物情報に基づいて、非危険障害物を回避して走行することができる。
【0411】
図30ないし
図34は、本発明の実施形態による移動ロボットの制御方法に関する説明に参照される図である。
【0412】
図30を参照すると、移動ロボット100は、走行しながら障害物3001を感知することができる。移動ロボット100が障害物3001を感知すると、認識された障害物の周辺を含むように障害物地域を設定登録することができる。
【0413】
図30を参照すると、障害物認識モジュール144は、全体領域3000中に障害物3001を中心に所定のサイズ(a×b)の障害物地域3010を保存部150に保存されるマップ上に登録するように制御することができる。
【0414】
例えば、障害物地域3010は、障害物3001を中心に前後各50cm、左右各50mにして総1m×1mのサイズの四角形状に設定されることができる。
【0415】
一方、障害物認識モジュール144は、障害物地域3010の登録と共に障害物3001を認識する当時の移動ロボット100の位置情報を保存するように制御することができる。一方、移動ロボット100の位置情報はオドメトリ(Odometry)情報に基づいた情報であり得る。
【0416】
例えば、障害物認識モジュール144は、以下のような保存フォーマットで障害物の位置と移動ロボットの位置情報を保存するように制御することができる。
【0417】
保存フォーマット:(Op, Rp)、
Op(X,Y)=障害物(Object)位置(Position)、
Rp(X,Y)=ロボット(Robot)位置(Position)
一方、画像取得部120は、移動中に障害物地域3010で複数の画像を取得することができる。
【0418】
画像取得部120は、移動ロボット100が障害物地域3010の外部に離脱する前に障害物地域3010内で連続的に撮影して複数の画像を取得することができる。
【0419】
図31は、2回の撮影により障害物地域3010の所定領域が認識されたことを示す。
図31に示す円3110、3120は、それぞれ認識カバレッジを示し、そのサイズと形態は画像取得部120の構成と性能によって変化することがある。
【0420】
一方、移動ロボット100は、障害物地域3010の他の位置において障害物3001を撮影することができる。
【0421】
本発明によれば、障害物地域3010を移動しながら多様な位置において障害物3001を撮影した画像を取得し、取得した画像のそれぞれに対して障害物認識過程を行うことにより、障害物認識の正確性を向上させることができる。
【0422】
一方、障害物認識モジュール144は、障害物地域3010の内部領域を格子状に横縦にそれぞれ一定の間隔に区分して管理することができる。
【0423】
図32は、4×4の格子状で構成される障害物地域3200を例示する。
【0424】
障害物認識モジュール144は、障害物地域3200内の画像が撮影されて障害物が認識された領域を区分して保存することができる。
【0425】
例えば、
図32の(a)のように、認識された所定領域3210の値を変更して全体障害物地域3200で認識された領域と認識されない領域を区分することができ、全体障害物地域3200においてどのくらいまで認識が完了したかを判別することができる。
【0426】
一方、移動ロボット100の走行及び障害物認識によって、
図32の(b)のように、認識された領域3210、3220、3230、3240が増加する。
【0427】
また、
図32の(c)のように、認識カバレッジが100%になると、すなわち、全体障害物地域3200での障害物認識が完了すると、障害物認識過程が終了する。
【0428】
または、設定によって、認識カバレッジが90%、95%になると、障害物認識過程を終了する。
【0429】
図33及び
図34は、本発明の実施形態による同一の障害物に対する順次的な障害物認識過程の一部を例示する。
【0430】
図33及び
図34を参照すると、まず、障害物認識モジュール144は、移動ロボットが第1位置(Rp1)で取得した画像を認識して障害物を扇風機と認識することができる。例えば、扇風機と認識した現認識結果の信頼値は0.8である。
【0431】
一方、前記認識結果は最初の認識結果であるので、比較対象がなくて、現在認識結果に対応する登録結果も扇風機になる。
【0432】
一方、2番目に移動ロボットが第2位置(Rp2)で取得した画像に基づいて、障害物認識モジュール144は信頼値0.7を有する扇風機と判定した認識結果を得ることができる。
【0433】
障害物認識モジュール144は、1番目の認識結果と2番目の認識結果が同一であるので、現在認識結果に対応する登録結果として扇風機を維持することができる。
【0434】
この場合は、現在認識結果に対応する信頼値は2つの認識結果の信頼値の1つをそのまま用いることができる。
【0435】
または、
図33のように、現在認識結果に対応する信頼値として1番目の認識結果と2番目の認識結果の信頼値の平均値0.75を用いることができる。
【0436】
より好ましくは、1番目の認識結果と2番目の認識結果が同一である扇風機の認識結果を得たので、
図25のように、所定加重値を反映して上向した0.835の信頼値を現在認識結果に対応する信頼値として用いることができる。
【0437】
図33及び
図34を参照すると、障害物認識モジュール144は、3番目に移動ロボットが第3位置(Rp3)で取得した画像に基づいて信頼値0.7を有するランプ基台と判定した認識結果を得ることができる。
【0438】
図33及び
図34を参照すると、障害物認識モジュール144は、3番目の認識結果を以前の認識結果と比較することができる。
【0439】
3番目の認識結果の信頼値は0.7であり、以前の認識結果0.75又は0.835より低いので、障害物認識モジュール144は、より高い信頼値を有する扇風機を現在認識結果に対応する登録結果として選択することができる。
【0440】
本発明の実施形態のうち少なくとも1つによれば、移動ロボットが、障害物の属性を判断し、障害物属性によって走行パターンを調整することができるため、信頼性の高い障害物認識及び回避動作を行うことができる。
【0441】
また、本発明の実施形態のうち少なくとも1つによれば、障害物の認識結果に応じて前進、後退、停止、迂回などの動作を行うことにより、移動ロボット自体の安定性及び使用者の利便性を向上し、運転効率、掃除効率を向上させることのできる移動ロボット及びその制御方法を提供することができる。
【0442】
また、本発明の実施形態のうち少なくとも1つによれば、マシンラーニングに基づいて障害物の属性を正確に認識できる移動ロボット及びその制御方法を提供することができる。
【0443】
また、本発明の実施形態のうち少なくとも1つによれば、移動ロボットが、効率的にマシンラーニングを行うことができ、障害物属性認識に利用できるデータを抽出することができる。
【0444】
本発明による移動ロボットは、前述した実施形態の構成と方法が限定的に適用されることではなく、上記実施形態は様々な変形が行われるように各実施形態の全部又は一部が選択的に組み合わせられて構成されることもできる。
【0445】
一方、本発明の実施形態による移動ロボットの制御方法は、プロセッサが読み取り可能な記録媒体に、プロセッサが読み取り可能なコードとして実現することが可能である。プロセッサが読み取り可能な記録媒体は、プロセッサにより読み取られるデータが格納されるあらゆる種類の記録装置を含む。プロセッサが読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ格納装置などがあり、また、インターネットを介しての送信などのようなキャリアウェーブの形態で実現されることも含む。また、プロセッサが読み取ることのできる記録媒体は、ネットワークで接続されたコンピュータシステムに分散されて、分散方式でプロセッサが読み取り可能なコードが格納され、実行されることができる。
【0446】
また、以上では、本明細書の好ましい実施形態について図示して説明したが、本発明は、上述した特定の実施形態に限定されず、請求の範囲で請求する本発明の要旨を逸脱せず、当該発明の属する技術分野における通常の知識を有した者により様々な変形実施が可能であることはもちろん、このような変形実施は、本発明の技術的思想や展望から個別的に理解されてはならないであろう。