JP7432701B2 - 移動ロボット及びその制御方法 - Google Patents

移動ロボット及びその制御方法 Download PDF

Info

Publication number
JP7432701B2
JP7432701B2 JP2022500976A JP2022500976A JP7432701B2 JP 7432701 B2 JP7432701 B2 JP 7432701B2 JP 2022500976 A JP2022500976 A JP 2022500976A JP 2022500976 A JP2022500976 A JP 2022500976A JP 7432701 B2 JP7432701 B2 JP 7432701B2
Authority
JP
Japan
Prior art keywords
node
mobile robot
movement
directions
travel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022500976A
Other languages
English (en)
Other versions
JP2022540594A (ja
Inventor
チウン チェ
ミヨン シム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of JP2022540594A publication Critical patent/JP2022540594A/ja
Application granted granted Critical
Publication of JP7432701B2 publication Critical patent/JP7432701B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2805Parameters or conditions being sensed
    • A47L9/281Parameters or conditions being sensed the amount or condition of incoming dirt or dust
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/022Optical sensing devices using lasers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/143Sensing or illuminating at different wavelengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene
    • G06V20/36Indoor scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Mechanical Engineering (AREA)
  • Remote Sensing (AREA)
  • Robotics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、移動ロボット及びその制御方法に関し、より詳しくは、移動ロボットがマップ(map)を生成及び学習するか、マップ上において位置を認識する技術に関する。
ロボットは、産業用に開発されて工場自動化の一部を担当してきた。最近は、ロボットを応用した分野がさらに拡大されて、医療用ロボット、宇宙航空ロボットなどが開発され、一般家庭で使用できる家庭用ロボットも生産されている。このようなロボットのうち自力で走行が可能なものを移動ロボットという。
家庭で使われる移動ロボットの代表例はロボット掃除機であり、ロボット掃除機は、一定の領域を自分で走行しながら、周辺のほこり又は異物を吸い込むことにより該当領域を掃除する機器である。
移動ロボットは、自分で移動可能であるため、移動が自由であり、走行中に障害物などを避けるための複数のセンサが備えられて障害物を避けて走行することができる。
掃除などの設定された作業を行うためには、走行区域のマップ(map)を正確に生成し、走行区域内のある位置に移動するためにマップ上において移動ロボットの現在位置を正確に把握できなければならない。
例えば、従来技術1(韓国公開特許公報第10-2010-0070582号)の場合、周辺環境の距離情報を検出する距離センサにより初期マップを生成し、初期マップのピクセル処理によりノードを設定することにより、全域的位相マップ(topological map)を生成する技術を開示する。
しかしながら、従来技術1のような従来技術は、単に移動中に取得した距離情報に基づいて初期マップを全体的に生成し、生成された初期マップに基づいてノードを決定することにより位相マップを生成するため、ノード間の全体の連結関係が多少不正確であるという短所がある。
また、距離情報の取得時に一時的に位置していた動的障害物と、固定された障害物が正確に区分して処理しにくく、移動経路が交差する地点に関する情報を正確に取得しにくい問題点がある。
一方、従来には、移動ロボットがマップ生成を完了した後、生成されたマップを利用して目的とする機能を行うことが一般的であったが、移動ロボットが走行する領域が広い場合、マップ生成に必要な時間が長くなるため、移動ロボットが目的とする機能を行うまで多くの時間がかかる問題点もある。
KR10-2010-0070582A
本発明の目的は、位相マップの生成において、移動ロボットが移動中にリアルタイムでノードを生成することにより、ノード間の連結関係を正確に設定できる移動ロボット及びその制御方法を提供することにある。
本発明の他の目的は、位相マップの生成において、障害物を回避する動作を最小化しながら移動できる移動ロボット及びその制御方法を提供することにある。
本発明の他の目的は、位相マップの生成において、ノード間の連結関係だけでなく、各ノードに関する情報をより正確に設定できる移動ロボット及びその制御方法を提供することにある。
本発明の他の目的は、位相マップの生成中に、目的とする機能を共に実行できる移動ロボット及びその制御方法を提供することにある。
前記目的を達成するための、本発明の実施形態による移動ロボットは、LiDARセンサにより取得した外部の地形情報に基づいて、既に設定された複数の移動方向のそれぞれに対するオープン(open)の可否を判断し、判断の結果から新しいノードを生成して、マップ(map)を生成することができ、マップ(map)の生成中に、所定条件に従って所定の領域を走行しながら移動ロボットの機能を行うことができる。
前記目的を達成するための、本発明の一実施形態による移動ロボットは、本体を移動させる走行部、本体の周辺の異物を吸入する吸入ユニット、本体の外部の地形情報を取得するLiDARセンサ、少なくとも1つのノードに関するノードデータを保存するメモリ及びLiDARセンサのセンシングデータ及びノードデータに基づいて、既に設定された複数の移動方向のうち、オープン(open)された移動方向が少なくとも1つ存在するか否かを判断し、オープン(open)された移動方向が少なくとも1つ存在する場合、既に設定された条件に従って、ノードデータに新しいノードを生成し、生成されたノードをノードグループに追加し、オープン(open)された移動方向のいずれか1つを、本体が移動する進行方向と決定し、オープン(open)された移動方向が存在しない場合、ノードグループに対応する領域を前記本体が走行するように、走行部を制御し、本体がノードグループに対応じる領域を走行中に、吸入ユニットが本体の周辺の異物を吸入するように制御し、ノードグループに対応する領域に対する走行が完了した場合、ノードグループを初期化し、ノードデータに基づいて、少なくとも1つのノードのうちアップデート(update)が必要なノードが少なくとも1つ存在するか否かを判断し、アップデートが必要なノードが存在する場合、アップデートが必要なノードのいずれか1つに前記移動ロボットが移動するように前記走行部を制御し、アップデートが必要なノードが存在しない場合、ノードデータに基づいて、少なくとも1つのノードを含むマップ(map)の生成を完了することができる。
一方、前記目的を達成するための、本発明の一実施形態による移動ロボットの制御部は、複数の移動方向のそれぞれに対して、移動ロボットの走行が可能であるか否かを判断し、複数の移動方向のそれぞれに対して、移動ロボットが既に走行していた移動方向であるか否かを判断し、複数の移動方向のうち、移動ロボットの走行が可能で、移動ロボットが既に走行していない移動方向を、前記オープン(open)された移動方向と判断することができる。
一方、本発明の一実施形態による移動ロボットのノードデータは、少なくとも1つのノードのそれぞれに対して、ノードの座標値と、前記複数の移動方向それぞれに関するデータ値を含む。
一方、本発明の一実施形態による移動ロボットの複数の移動方向それぞれに関するデータ値は、オープン(open)された移動方向を示す第1データ値、移動ロボットの走行不可能な移動方向を示す第2データ値、及び他のノードを示す第3データ値のいずれか1つに設定されることができる。
一方、本発明の一実施形態による移動ロボットの制御部は、オープン(open)された移動方向が少なくとも1つ存在する場合、走行方向と決定された移動方向が前記オープン(open)された移動方向に該当するか否かを判断し、走行方向と決定された移動方向がオープン(open)された移動方向に該当しない場合、新しいノードを生成することができる。
一方、本発明の一実施形態による移動ロボットの制御部は、走行方向と決定された移動方向がオープン(open)された移動方向に該当する場合、複数の移動方向のうち、走行方向と決定された移動方向のみがオープン(open)された移動方向に該当するか否かを判断し、走行方向と決定された移動方向のみがオープン(open)された移動方向に該当する場合、新しいノードを生成せず、移動ロボットが前記走行方向に移動するように走行部を制御し、走行方向と決定された移動方向を含む複数の移動方向がオープン(open)された移動方向に該当する場合、新しいノードを生成することができる。
一方、本発明の一実施形態による移動ロボットの制御部は、新しいノードを生成する場合、ノードデータに含まれた少なくとも1つのノードそれぞれの、複数の移動方向に関するデータ値をアップデート(update)することができる。
一方、本発明の一実施形態による移動ロボットの制御部は、複数の移動方向のそれぞれに関するデータ値のうち少なくとも1つが、オープン(open)された移動方向を示す第1データ値に設定されたノードを、アップデート(update)が要求されるノードと判断することができる。
一方、本発明の一実施形態による移動ロボットの制御部は、ノードデータに基づいて、アップデート(update)が要求されるノードのうち、移動ロボットの現在位置から最短距離に位置するノードを決定し、移動ロボットが前記最短距離に位置するノードに移動するように、走行部を制御することができる。
一方、本発明の一実施形態による移動ロボットは、本体の外部の映像を取得する少なくとも1つのカメラを備える映像取得部をさらに含み、制御部は、映像取得部により取得した映像から特徴を抽出し、抽出した特徴をマップ(map)にマッピングし、マップ(map)にマッピング(mapping)された特徴に基づいて、移動ロボットの位置を判断することができる。
前記の目的を達成するための、本発明の一実施形態による移動ロボットの制御方法は、外部の地形情報を取得するLiDARセンサのセンシングデータ及び少なくとも1つのノードに対するノードデータに基づいて、既に設定された複数の移動方向のうち、オープン(open)された移動方向が少なくとも1つ存在するか否かを判断する動作、オープン(open)された移動方向が少なくとも1つ存在する場合、既に設定された条件に従って、ノードデータに新しいノードを生成し、生成されたノードをノードグループに追加する動作、オープン(open)された移動方向のいずれか1つを、移動ロボットの本体が移動する走行方向と決定する動作、オープン(open)された移動方向が存在しない場合、ノードグループに対応する領域を走行する動作、ノードグループに対応する領域を走行中に、吸入ユニットを介して移動ロボットの周辺の異物を吸入する動作、ノードグループに対応する領域に対する走行が完了した場合、ノードグループを初期化する動作、ノードデータに基づいて、少なくとも1つのノードのうちアップデート(update)が必要なノードが少なくとも1つ存在するか否かを判断する動作、アップデートが必要なノードが存在する場合、アップデート(update)が必要なノードのいずれか1つに移動する動作及びアップデートが必要なノードが存在しない場合、ノードデータに基づいて、少なくとも1つのノードを含むマップ(map)の生成を完了する動作を含む。
一方、本発明の一実施形態による移動ロボットの制御方法のオープン(open)された移動方向が少なくとも1つ存在するか否かを判断する動作は、複数の移動方向のそれぞれに対して、移動ロボットの走行が可能であるか否かを判断する動作、複数の移動方向のそれぞれに対して、移動ロボットが既に走行していた移動方向であるか否かを判断する動作及び複数の移動方向のうち、移動ロボットの走行が可能で、移動ロボットが既に走行していない移動方向を、オープン(open)された移動方向と判断する動作を含むことができる。
一方、本発明の一実施形態による移動ロボットの制御方法のノードデータは、少なくとも1つのノードのそれぞれに対して、ノードの座標値と、複数の移動方向のそれぞれに関するデータ値を含む。
一方、本発明の一実施形態による移動ロボットの制御方法の複数の移動方向のそれぞれに関するデータ値は、オープン(open)された移動方向を示す第1データ値、移動ロボットの走行不可能な移動方向を示す第2データ値、及び他のノードを示す第3データ値のいずれか1つに設定されることができる。
一方、本発明の一実施形態による移動ロボットの制御方法の新しいノードを生成する動作は、オープン(open)された移動方向が少なくとも1つ存在する場合、走行方向と決定された移動方向がオープン(open)された移動方向に該当するか否かを判断する動作及び走行方向と決定された移動方向がオープン(open)された移動方向に該当しない場合、新しいノードを生成する動作を含む。
一方、本発明の一実施形態による移動ロボットの制御方法の新しいノードを生成する動作は、走行方向と決定された移動方向がオープン(open)された移動方向に該当する場合、複数の移動方向のうち、走行方向と決定された移動方向のみがオープン(open)された移動方向に該当するか否かを判断する動作、走行方向と決定された移動方向のみがオープン(open)された移動方向に該当する場合、新しいノードを生成せず、走行方向に移動する動作及び走行方向と決定された移動方向を含む複数の移動方向がオープン(open)された移動方向に該当する場合、新しいノードを生成する動作をさらに含む。
一方、本発明の一実施形態による移動ロボットの制御方法の新しいノードを生成する動作は、ノードデータに含まれた少なくとも1つのノードそれぞれの、複数の移動方向に関するデータ値をアップデート(update)する動作をさらに含む。
一方、本発明の一実施形態による移動ロボットの制御方法のアップデート(update)が必要なノードが少なくとも1つ存在するか否かを判断する動作は、複数の移動方向それぞれに関するデータ値のうち少なくとも1つが、オープン(open)された移動方向を示す前記第1データ値に設定されたノードを、アップデート(update)が要求されるノードと判断する。
一方、本発明の一実施形態による移動ロボットの制御方法のアップデート(update)が必要なノードのうちいずれか1つに移動する動作は、ノードデータに基づいて、アップデート(update)が要求されるノードのうち、移動ロボットの現在位置から最短距離に位置するノードを決定する動作及び最短距離に位置するノードに移動する動作を含む。
一方、本発明の一実施形態による移動ロボットの制御方法は、外部の映像を取得する少なくとも1つのカメラを備える映像取得部により取得した映像から特徴を抽出する動作、抽出した特徴をマップ(map)にマッピング(mapping)する動作及びマップ(map)にマッピング(mapping)された特徴に基づいて、移動ロボットの位置を判断する動作をさらに含む。
本発明の多様な実施形態によれば、移動ロボットの移動中にリアルタイムでノードを生成することにより、ノード間の連結関係を正確に設定することができる。
また、本発明の多様な実施形態によれば、位相マップの生成中に障害物を回避する動作を最小化しながら移動することができるため、より安定的な移動経路を提供する位相マップを生成することができる。
また、本発明の多様な実施形態によれば、各ノードに関する情報を正確に設定できるため、より正確な移動経路を提供する位相マップを生成することができる。
また、本発明の多様な実施形態によれば、位相マップの生成中に移動ロボットが目的とする機能を行うことができる。
一方、その他の様々な効果は後述する本発明の実施形態による詳細な説明において直接的又は暗示的に開示される。
ないし 本発明の一実施形態による、移動ロボットの例示を示す図である。 本発明の他の一実施形態による、移動ロボットの例示を示す図である。 本発明の他の一実施形態による、移動ロボットの内部ブロック図の一例である。 及び 図4aは、本発明の一実施形態による、移動ロボットに備えられたLiDARセンサの説明に参照される図であり、図4bは、本発明の一実施形態による、移動ロボットの走行に関する説明に参照される図である。 ないし 本発明の一実施形態による、移動ロボットの動作の説明に参照される図である。 ないし 本発明の他の一実施形態による、移動ロボットの動作の説明に参照される図である。 本発明の一実施形態による、移動ロボットの制御方法に関するフローチャートを示す図である。 及び 本発明の一実施形態による、移動ロボットの制御方法に関するフローチャートを示す図である。
本発明の実施形態を詳細に参照して本発明を記述し、その例は添付の図面に示されている。本発明を明確かつ簡潔に記述するために、説明に関連しない部分は図面から省略され、明細書において同一又は類似の参照番号は同一の要素を示している。
構成要素において「モジュール」及び「ユニット」などの接尾辞は、説明の便宜のために使用されるものであり、従って、互いに交差して使用することができ、区分される意味又は機能を持っていない。従って、「モジュール」及び「ユニット」は互いに交差して使用してもよい。
本明細書において、「含む」又は「構成する」という用語は、特定の特性、個数、段階、作動、構成要素又はこれらの組み合わせを示すものと推論できるが、1つ又はそれ以上の特性、個数、段階、作動、構成要素又はこれらの組み合わせを加えることを排除するものと推論されてはならない。
「第1」、「第2」、「第3」などの用語が本明細書において多様な要素を記述するために使われるが、これらの要素がこのような用語により制限されてはならない。このような用語は,ある構成要素を他の構成要素から区別するために使用されるだけである。
本発明の一実施形態による移動ロボット100は、車輪などを用いて自分で移動可能なロボットを意味し、ホームヘルパーロボット及びロボット掃除機などがある。以下では、図面を参照して、移動ロボットのうち掃除機能を有するロボット掃除機を例にして説明するが、本発明はこれに限定されない。
図1aないし図1d、及び図2は、本発明の様々な実施形態による、移動ロボット100の例示を示す図である。
図1aは、本発明の一実施形態による移動ロボット100a及び移動ロボット100aを充電する充電台200を示す斜視図であり、図1bは、図1aに示した移動ロボット100aの上面部を示す図であり、図1cは、図1aに示した移動ロボット100aの正面部を示す図であり、図1dは、図1aに示した移動ロボット100aの底面部を示す図である。
一方、図2は、本発明の他の一実施形態による、移動ロボット100bの例示を示す図面であり、図2に示す移動ロボット100bは、図1aないし図1dに開示された移動ロボット100aと同一又は類似の構成を備えられるので、これに関する詳細な説明は省略する。
図1aないし図1dに示すように、移動ロボット100aは、例えば、本体110を移動させる少なくとも1つの駆動輪136を含む。駆動輪136は、例えば、駆動輪136に連結された少なくとも1つのモータ(図示せず)により駆動されて回転する。
駆動輪136は、例えば、本体110の左、右側にそれぞれ備えられ、以下、それぞれ左輪136(L)と右輪136(R)という。
左輪136(L)と右輪136(R)は、1つの駆動モータにより駆動されてもよく、必要に応じて、左輪136(L)を駆動させる左輪駆動モータと右輪136(R)を駆動させる右輪駆動モータがそれぞれ備えられてもよい。左輪136(L)と右輪136(R)の回転速度に差をつけて左側又は右側に本体110の走行方向を切り替えることができる。
移動ロボット100aは、例えば、異物を吸入する吸入装置(図示せず)、掃き掃除を行うブラシ154、155、吸入装置やブラシ154、155により集められた異物を溜めるダストボックス(図示せず)、雑巾がけを行う雑巾部(図示せず)などを含む。
例えば、本体110の底面部には空気が吸入される吸入口150hが形成され、本体110の内部には吸入口150hを介して空気が吸入されるように吸入力を提供する吸入装置と、吸入口150hを介して空気と一緒に吸入されたほこりを集塵するダストボックスが備えられる。
移動ロボット100aは、例えば、移動ロボット100aを構成する各種部品が収容される空間を形成するケース111を含む。ケース111にはダストボックスの挿入と脱去のための開口部(図示せず)が形成され、開口部を開閉するダストボックスカバー112がケース111に対して回転可能に備えられる。
移動ロボット100aは、例えば、吸入口150hから露出するブラシを有するロール型のメインブラシ154と、本体110の底面部前方側に位置し、放射状に延長された複数の翼からなるブラシを有する補助ブラシ155とを備える。これらのブラシ154、155の回転により走行区域内の床からほこりが分離され、このように床から分離されたほこりは吸入口150hを介して吸い込まれ、吸入ユニット330からダストボックスに流入される。
ダストボックスのフィルタ又はサイクロンを経て空気とほこりが分離され、分離されたほこりはダストボックスに集塵され、空気はダストボックスから排出された後、本体110の内部の排気流路(図示せず)を経て最終的に排気口(図示せず)を介して外部に排出される。
バッテリ138は、例えば、駆動モータだけでなく、移動ロボット100aの作動全般に必要な電源を供給する。一方、バッテリ138が放電した場合、移動ロボット100aは充電のために充電台200に復帰する走行を行い、その復帰走行中に、移動ロボット100aは自分で充電台200の位置を感知することができる。
充電台200は、例えば、所定の復帰信号を送出する信号送出部(図示せず)を含む。復帰信号は、例えば、超音波信号又は赤外線信号であるが、必ずしもこれに限定されるものではない。
移動ロボット100aは、例えば、復帰信号を受信する信号感知部(図示せず)を含む。
例えば、信号感知部は、赤外線信号を感知する赤外線センサを含み、充電台200の信号送出部から送出された赤外線信号を受信する。この時、移動ロボット100aは、充電台200から送出された赤外線信号に従って充電台200の位置に移動して充電台200とドッキング(docking)する。このようなドッキングにより、移動ロボット100aの充電端子133と充電台200の充電端子210に接触してバッテリ138が充電される。
移動ロボット100aは、例えば、移動ロボット100の内/外部の情報を感知する構成を備える。
移動ロボット100aは、例えば、走行区域に対する映像情報を取得するカメラ120を備える。
例えば、移動ロボット100aは、本体110前方の映像を取得するように備えられる前面カメラ120aを備える。
例えば、移動ロボット100aは、本体110の上面部に備えられて、走行区域内の天井に対する映像を取得する上部カメラ120bを備える。
例えば、移動ロボット100aは、本体110の底面部に備えられて、床の映像を取得する下部カメラ179をさらに備える。
一方、移動ロボット100aに備えられたカメラ120の個数、配置される位置、撮影範囲などが必ずしもこれに限定されるものではなく、走行区域に対する映像情報を取得するために様々な位置に配置されてもよい。
例えば、移動ロボット100aは、本体110の一面に対して傾斜して配置されて前方と上方を一緒に撮影するように構成されたカメラ(図示せず)を含むこともできる。
例えば、移動ロボット100aは、前面カメラ120a及び/又は上部カメラ120bを複数備えてもよく、前方と上方を一緒に撮影するように構成されたカメラを複数備えてもよい。
本発明の様々な実施形態によれば、移動ロボット100aの一部部位(例えば、前方、後方、底面)にカメラ120が設置され、走行時や掃除時に映像を持続的に取得することができる。このようなカメラ120は、撮影効率のために各部位別に複数設置されてもよく、カメラ120により撮影された映像は、該当空間に存在するほこり、髪の毛、床などの物質の種類認識、掃除の有無、又は掃除の時点の確認のために使用される。
移動ロボット100aは、例えば、レーザーを利用して本体110の外部の地形情報を取得するライダー(light detection and ranging:LiDAR)センサ175を含む。
LiDARセンサ175は、例えば、レーザーを出力し、オブジェクトから反射されたレーザーを受信することにより、レーザーを反射させたオブジェクトとの距離、位置方向、材質などの情報を取得し、走行区域の地形情報を取得することができる。移動ロボット100は、例えば、LiDARセンサ175により取得した情報に基づいて、360度の地形(geometry)情報を取得することができる。
移動ロボット100aは、例えば、移動ロボット100aの動作、状態に関連する各種データをセンシングするセンサ171、172、179を含む。
例えば、移動ロボット100aは、前方の障害物を感知する障害物感知センサ171、走行区域内の床に段差の存否を感知する段差感知センサ172などを含む。
移動ロボット100aは、例えば、移動ロボット100aの電源オン/オフ(on/off)などの各種命令を入力できる操作部137を含み、操作部137を介して移動ロボット100の作動全般に必要な各種制御命令を受信する。
移動ロボット100aは、例えば、出力部(図示せず)を含み、予約情報、バッテリ状態、動作モード、動作状態、エラー状態などを表示する。
図3は、本発明の他の実施形態による、移動ロボット100の内部ブロック図の一例である。
図3に示すように、移動ロボット100は、例えば、保存部305、映像取得部320、入力部325、吸入ユニット330、制御部350、走行部360、センサ部370、出力部380、及び/又は通信部390を含む。
一方、本図においては、移動ロボット100に関してロボット掃除機を例にして説明しているため、吸入ユニット330を含むものとしているが、本発明はこれに限定されるものではなく、移動ロボット100の機能及び目的によって様々な構成を含むことができる。
保存部305は、例えば、移動ロボット100の制御に必要な各種情報を保存する。
保存部305は、例えば、揮発性又は不揮発性記録媒体を含む。記録媒体は、マイクロプロセッサ(microprocessor)により読み取れるデータを保存したものであり、その種類や実現方式に限定されない。
保存部305は、例えば、走行区域に対するマップ(map)を保存する。保存部305に保存されるマップは、例えば、移動ロボット100と有線又は無線通信を介して情報を交換する外部端末機、サーバなどから入力されたものであってもよく、移動ロボット100が自分で学習して生成したものであってもよい。
保存部305は、例えば、ノード(node)に関するデータを保存する。ここで、ノードは、例えば、走行区域上の一地点を意味する。ノードに関するデータは、例えば、ノードに対する走行区域上の座標、ノードでの複数の移動方向に関する情報、他のノードとの関係に関する情報などを含む。
例えば、マップには走行区域内の部屋の位置が表示される。また、移動ロボット100の現在位置がマップ上に表示され、マップ上での移動ロボット100の現在位置は走行過程で更新される。外部端末機は保存部305に保存されたマップと同一のマップを保存する。
保存部305は、例えば、掃除履歴情報を保存する。このような掃除の履歴情報は掃除を行うたびに生成される。
保存部305に保存される走行区域に対するマップ(map)は、例えば、掃除中の走行に使用されるナビゲーションマップ(navigation map)、位置認識に使用されるSLAM(simultaneous localization and mapping:SLAM)マップ、障害物などにぶつかると当該情報を保存して学習掃除時に使用する学習マップ、全域的位置認識に使用される全域的位相マップ(topological map)、認識された障害物に関する情報が記録される障害物認識マップなどがある。
一方、前述のように、用途別に保存部305にマップを区分して保存及び管理できるが、マップが用途別に明確に区分されない可能性もある。例えば、少なくとも2つ以上の用途として使用できるように1つのマップに複数の情報が保存されることもある。
映像取得部320は、例えば、移動ロボット100の周辺の映像を取得することができる。映像取得部320は、例えば、少なくとも1つのカメラ(例:図1aのカメラ120)を備える。以下、映像取得部320により取得した映像を「取得映像」と言える。
映像取得部320は、例えば、デジタルカメラを含む。デジタルカメラは、少なくとも1つの光学レンズと、光学レンズを通過した光により像が結ばれる複数の光ダイオード(photodiode、例えば、pixel)を含んで構成されるイメージセンサ(例えば、CMOS image sensor)と、光ダイオードから出力された信号に基づいて映像を構成するデジタル信号処理機(digital signal processor:DSP)を含む。デジタル信号処理機は、例えば、静止画だけでなく、静止画で構成されたフレームからなる動画を生成することも可能である。
映像取得部320は、例えば、移動ロボット100の走行方向前面に存在する障害物又は掃除領域の状況を撮影する。
本発明の一実施形態によれば、映像取得部320は、本体110の周辺を連続的に撮影することにより複数の映像を取得し、取得された複数の映像は保存部305に保存される。
移動ロボット100は、例えば、複数の映像を用いて障害物認識の正確性を高めるか、複数の映像のうち1つ以上の映像を選択して効果的なデータを使用することにより障害物認識の正確性を高めることができる。
入力部325は、例えば、ユーザ入力を受信できる入力装置(例:キー、タッチパネルなど)を備える。例えば、入力部325は、移動ロボット100の電源オン/オフ(on/off)などの各種命令を入力できる操作部137を含む。
入力部325は、例えば、入力装置を介して、ユーザ入力を受信し、受信されたユーザ入力に対応する命令を制御部350に送信する。
吸入ユニット330は、例えば、ほこりが含まれた空気を吸入する。吸入ユニット330は、例えば、異物を吸入する吸入装置(図示せず)、掃き掃除を行うブラシ154、155、吸入装置やブラシ(例:図1cのブラシ154、155)により集められた異物を溜めるダストボックス(図示せず)、空気が吸入される吸入口(例:図1dの吸入口150h)などを含む。
走行部360は、例えば、移動ロボット100を移動させることができる。走行部360は、例えば、移動ロボット100を移動させる少なくとも1つの駆動輪(例:図1cの駆動輪136)と、駆動輪を回転させる少なくとも1つのモータ(図示せず)とを含む。
センサ部370は、例えば、移動ロボット100の内/外部の情報を感知する多様なセンサを含む。
センサ部370は、例えば、レーザーを利用して本体110の外部の地形情報を取得するライダー(LiDAR)センサ(例:図1aのLiDARセンサ175)を含む。
センサ部370は、例えば、前方の障害物を感知する障害物感知センサ(例:図1aの障害物感知センサ171)、走行区域内の床に段差の存否を感知する段差感知センサ(例:図1dの段差感知センサ172)などを含む。
障害物感知センサ171は、例えば、移動ロボット100の外周面に一定間隔で複数配置されてもよい。障害物感知センサ171は、例えば、赤外線センサ、超音波センサ、RF(radio frequency)センサ、地磁気センサ、PSD(position sensitive device)センサなどを含む。
障害物感知センサ171は、例えば、室内の壁や障害物との距離を感知するセンサであり、本発明はその種類に限定されないが、以下では超音波センサを例示して説明する。
障害物感知センサ171は、例えば、移動ロボット100の走行(移動)方向に存在する物体、特に、障害物を感知して障害物情報を制御部350に伝達する。すなわち、障害物感知センサ171は、移動ロボット100の移動経路、移動ロボット100の前方や側面に存在する突出物、家の中の什器、家具、壁面、壁の角などを感知してその情報を制御部350に伝達する。
センサ部370は、例えば、移動ロボット100の走行動作を感知して動作情報を出力する走行感知センサ(図示せず)をさらに含む。走行感知センサは、例えば、ジャイロセンサ(gyro sensor)、ホイールセンサ(wheel sensor)、加速度センサ(acceleration sensor)などを含む。
ジャイロセンサは、例えば、移動ロボット100が運転モードによって動くとき、回転方向を感知し、回転角を検出する。ジャイロセンサは、例えば、移動ロボット100の角速度を検出して角速度に比例する電圧値を出力する。
ホイールセンサは、例えば、駆動輪136(例:図1dの左輪136(L)と右輪136(R))に連結されて駆動輪136の回転数を感知することができる。ここで、ホイールセンサは、例えば、エンコーダ(encoder)であり得る。エンコーダは、左輪136(L)と右輪136(R)の回転数を感知して出力することができ、
加速度センサは、例えば、移動ロボット100の速度変化を検出できる。加速度センサは、例えば、駆動輪136の隣接した位置に取り付けられてもよく、制御部350に内蔵されてもよい。
出力部380は、例えば、オーディオ信号を出力する音響出力部381を含む。音響出力部は、制御部350の制御により警告音、動作モード、動作状態、エラー状態などの通知メッセージ、ユーザの命令入力に対応する情報、ユーザの命令入力に対応する処理結果などを音響で出力することができる。
音響出力部381は、例えば、制御部150からの電気信号をオーディオ信号に変換して出力する。このために、スピーカーなどを備える。
出力部380は、例えば、ユーザの命令入力に対応する情報、ユーザの命令入力に対応する処理結果、動作モード、動作状態、エラー状態などを映像で表示するディスプレイ382を含む。
実施形態によっては、ディスプレイ382はタッチパッドと相互レイヤ構造をなしてタッチスクリーンで構成されてもよい。この場合、タッチスクリーンで構成されるディスプレイ382は、出力装置以外に、ユーザのタッチにより情報入力が可能な入力装置として使用されることもできる。
通信部390は、例えば、少なくとも1つの通信モジュール(図示せず)を備え、外部機器とデータを送受信する。移動ロボット100と通信する外部機器のうち外部端末機は、例えば、移動ロボット100を制御するためのアプリケーションを備え、アプリケーションの実行により移動ロボット100が掃除する走行区域に対するマップを表示し、マップ上に特定領域を掃除するように領域を指定することができる。外部端末機は、例えば、マップ設定のためのアプリケーション(application)が搭載されたリモコン、PDA、ラップトップ、スマートフォン、タブレットなどがある。
通信部390は、例えば、ワイファイ(Wi-fi)、ブルートゥース(登録商標)(bluetooth)、ビーコン(beacon)、ジグビー(zigbee)、RFID(radio frequency identification)などの無線通信方式で信号を送受信できる。
一方、移動ロボット100は、例えば、充電可能なバッテリ(例:図1dのバッテリ138)を備えてロボット掃除機内に電源を供給する電源供給部(図示せず)を含む。
電源供給部は、例えば、移動ロボット100の各構成要素に駆動電源と動作電源を供給する。
移動ロボット100は、例えば、バッテリ138のバッテリ残量、充電状態などを感知し、感知結果を制御部350に送信するバッテリ感知部(図示せず)をさらに含む。一方、バッテリ残量に関する情報は、例えば、出力部380を介して出力される。
制御部350は、例えば、移動ロボット100に備えられた各構成に接続される。制御部350は、例えば、移動ロボット100に備えられた各構成と互いに信号を送受信し、各構成の全般的な動作を制御する。
制御部350は、例えば、センサ部370により取得した情報に基づいて、移動ロボット100の内/外部に対する状態を判断する。
制御部350は、例えば、ジャイロセンサから出力される電圧値を用いて回転方向及び回転角を算出する。
制御部350は、例えば、ホイールセンサから出力される回転数に基づいて、駆動輪136の回転速度を演算する。また、制御部350は、例えば、左輪136(L)と右輪136(R)の回転数の差に基づいて回転角を演算することもできる。
制御部350は、例えば、加速度センサから出力される値に基づいて、移動ロボット100の出発、停止、方向転換、物体との衝突などの移動ロボット100の状態変化を判断できる。一方、制御部350は、例えば、加速度センサから出力される値に基づいて、速度変化に伴う衝撃量が検出できるため、加速度センサは電子式バンパーセンサの機能を果たすこともできる。
制御部350は、例えば、超音波センサを介して受信された少なくとも2以上の信号に基づいて、障害物の位置を感知し、感知された障害物の位置に応じて移動ロボット100の動きを制御する。
実施形態によっては、移動ロボット100の外側面に備えられる障害物感知センサ131は発信部と受信部を含んで構成される。
例えば、超音波センサは、少なくとも1つ以上の発信部及び少なくとも2つ以上の受信部が互いに交互に備えられる。これにより、発信部は多様な角度から超音波信号を放射し、障害物に反射された超音波信号を少なくとも2つ以上の受信部が多様な角度から受信することができる。
実施形態によっては、超音波センサから受信された信号は、増幅、フィルタリングなどの信号処理過程を経ることができ、その後、障害物までの距離及び方向が算出される。
一方、制御部350は、例えば、走行制御モジュール351、地図生成モジュール352、位置認識モジュール353及び/又は障害物認識モジュール354を含む。本図においては、説明の便宜上、走行制御モジュール351、地図生成モジュール352、位置認識モジュール353及び/又は障害物認識モジュール354に区分して説明しているが、本発明はこれに限定されるものではない。
例えば、位置認識モジュール353と障害物認識モジュール354は1つの認識機として統合されて1つの認識モジュール355で構成されてもよい。この場合、マシンラーニングなどの学習技法を利用して認識機を学習させ、学習された認識機はその後に入力されるデータを分類して領域、物体などの属性を認識することができる。
実施形態によって、地図生成モジュール352、位置認識モジュール353及び、障害物認識モジュール354が1つの統合モジュールで構成されてもよい。
走行制御モジュール351は、例えば、移動ロボット100の走行を制御し、走行設定に従って走行部360の駆動を制御する。
走行制御モジュール351は、例えば、走行部360の動作に基づいて移動ロボット100の走行経路を把握する。例えば、走行制御モジュール351は、駆動輪136の回転速度に基づいて移動ロボット100の現在又は過去の移動速度、走行距離などを把握し、このように把握された移動ロボット100の走行情報に基づいて、マップ上における移動ロボット100の位置が更新される。
地図生成モジュール352は、例えば、走行区域に対するマップを生成する。
地図生成モジュール352は、例えば、移動ロボット100の走行中に、取得した情報に基づいてマップをリアルタイムで生成/又は更新する。
地図生成モジュール352は、例えば、複数の移動方向を設定できる。例えば、地図生成モジュール352は、走行区域に対するマップを生成する機能(以下、マップ生成機能)が実行される場合、機能が実行される時点に移動ロボット100の前面が向く方向を第1移動方向に設定してもよい。また、地図生成モジュール352は、例えば、機能が実行される時点に移動ロボット100の左側面が向く方向を第2移動方向に、移動ロボット100の右側面が向く方向を第3移動方向に、第1方向の反対方向である移動ロボット100の背面が向く方向を第4移動方向に設定してもよい。
一方、既に設定された複数の移動方向は、例えば、マップを生成する機能の実行中に、移動ロボット100が移動するか、回転する場合にも変更されずに固定されて設定される。
例えば、複数の移動方向が設定された後、移動ロボット100が反時計回りに回転した場合、移動ロボット100の前面が向いている方向は第2移動方向となり、移動ロボット100が直進する場合、移動ロボット100の走行方向は第2移動方向であり得る。
一方、本図においては、複数の移動方向を4つの方向に設定されるものと説明しているが、本発明はこれに限定されるものではなく、様々な実施形態によって、8つ、16個などの多様な方向に設定されてもよい。
地図生成モジュール352は、例えば、映像取得部320により取得した映像に基づいてマップを作成する。例えば、地図生成モジュール352は、移動ロボット100の走行中に、映像取得部320により取得した取得映像に基づいてマップを作成する。
地図生成モジュール352は、例えば、映像取得部320により取得した取得映像のそれぞれに含まれた、走行区域に位置する照明、境界(edge)、コーナー(corner)、染み(blob)、屈曲(ridge)などの様々な特徴(feature)を検出する。
地図生成モジュール352は、例えば、取得映像から特徴を検出する特徴検出器(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検出器などを含む。
地図生成モジュール352は、例えば、取得映像から検出した走行区域に対する特徴に基づいて、マップを作成することができる。一方、本発明の様々な実施形態によれば、取得映像から特徴を検出する動作は、位置認識モジュール353において行われてもよい。
地図生成モジュール352は、例えば、LiDARセンサ175により取得した情報に基づいてマップを作成する。
例えば、地図生成モジュール352は、LiDARセンサ175を介して出力され、外部オブジェクトに反射されて受信されるレーザーの受信時間差、信号強度のような受信パターンを分析して、走行区域の地形情報を取得する。走行区域の地形情報は、例えば、移動ロボット100の周辺に存在するオブジェクトの位置、距離、方向などを含む。
地図生成モジュール352は、例えば、LiDARセンサ175により取得した走行区域の地形情報に基づいてノードを生成し、生成されたノードを含む全域的位相マップ(topological map)を作成する。これに関する詳細な説明は、図4a、図4b、図5aないし図5m、及び図6aないし図6dを参照して後述する。
位置認識モジュール353は、例えば、移動ロボット100の位置を判断することができる。位置認識モジュール353は、例えば、移動ロボット100の走行中に、移動ロボット100の位置を判断する。
位置認識モジュール353は、例えば、映像取得部320により取得した取得映像に基づいて、移動ロボット100の位置を判断する。
例えば、位置認識モジュール353は、移動ロボット100の走行中に、取得映像から検出した走行区域の各位置に対する特徴を、地図生成モジュール352により作成されたマップの各位置にマッピング(mapping)させ、マップの各位置にマッピングされた走行区域の各位置に対する特徴に関するデータを位置認識データとして保存部305に保存する。
一方、例えば、位置認識モジュール353は、取得映像から検出した走行区域に対する特徴と、保存部305に保存された位置認識データに含まれた走行領域のそれぞれの位置に対する特徴を比較して、位置別の類似度(確率)を算出し、算出された位置別の類似度(確率)に基づいて、類似度が最も大きい位置を移動ロボット100の位置として判断する。
一方、移動ロボット100は、例えば、位置認識モジュール353なしに走行制御モジュール351、地図生成モジュール352及び/又は障害物認識モジュール354によりマップを学習して、現在位置を判断することもできる。
障害物認識モジュール354は、例えば、移動ロボット100の周辺の障害物を感知する。例えば、障害物認識モジュール354は、映像取得部320を介して取得した取得映像及び/又はセンサ部370を介して取得したセンシングデータに基づいて、移動ロボット100の周辺の障害物を感知する。
例えば、障害物認識モジュール354は、LiDARセンサ175により取得した走行区域の地形情報に基づいて、移動ロボット100の周辺の障害物を感知する。
障害物認識モジュール354は、例えば、移動ロボット100の走行中に、移動ロボット100の走行を妨げる障害物が存在するか否かを判断する。
障害物認識モジュール354は、例えば、障害物が存在すると判断される場合、障害物の属性に応じて直進、回転などの走行パターンを決定し、決定された走行パターンを走行制御モジュール351に伝達する。
例えば、障害物の属性が移動ロボット100の走行が可能な種類の障害物(例:床に存在する突出物など)である場合、障害物認識モジュール354は、移動ロボット100が走行し続けるように走行パターンを決定する。
または、例えば、障害物の属性が移動ロボット100の走行が不可能な種類の障害物(例:壁面、家具など)である場合、障害物認識モジュール354は、移動ロボット100が回転するように走行パターンを決定する。
本発明の実施形態による移動ロボット100は、マシンラーニング(machine learning)ベースの人、物体認識及び回避を行うことができる。ここで、マシンラーニングは、コンピュータに人が直接ロジック(Logic)を指示しなくてもデータからコンピュータが学習し、これによりコンピュータが自分で問題を解決するようにすることを意味する。
ディープラーニング(Deep Learning)は、人工知能を構成するための人工ニューラルネットワーク(artificial neural networks:ANN)に基づいてコンピュータに人の考え方を教える方法でアリ、人が教えなくてもコンピュータが自分で人間のように学習できる人工知能技術を意味する。
人工ニューラルネットワーク(ANN)は、ソフトウェア形態で実現されるか、チップ(chip)などのハードウェア形態で実現される。
障害物認識モジュール354は、例えば、障害物の属性が学習されたソフトウェア又はハードウェア形態の人工ニューラルネットワーク(ANN)を含む。
例えば、障害物認識モジュール354は、ディープラーニングにより学習されたCNN(convolutional neural network)、RNN(recurrent neural network)、DBN(deep belief network)などのディープニューラルネットワーク(deep neural network:DNN)を含む。
障害物認識モジュール354は、例えば、ディープニューラルネットワーク(DNN)に含まれたノード間の加重値(weight)に基づいて入力される映像データに含まれる障害物の属性を判別する。
障害物認識モジュール354は、例えば、映像取得部320、特に前面カメラセンサ120aが取得した映像全体を使用するのではなく、一部の領域のみを使用することで移動方向に存在する障害物の属性を判別することができる。
また、走行制御モジュール351は、例えば、認識された障害物の属性に基づいて走行部360の駆動を制御することができる。
保存部330には、例えば、障害物属性判別のための入力データ、前記ディープニューラルネットワーク(DNN)を学習するためのデータが保存される。
保存部330には、例えば、映像取得部320が取得した原本映像と所定領域が抽出された抽出映像が保存される。
保存部330には、例えば、ディープニューラルネットワーク(DNN)構造をなす加重値(weight)、バイアス(bias)が保存される。
例えば、ディープニューラルネットワーク構造をなす加重値(weight)、バイアス(bias)は、障害物認識モジュール354の組み込みメモリ(embedded memory)に保存される。
障害物認識モジュール354は、例えば、映像取得部320が取得する映像の一部領域を抽出するたびに、前記抽出された映像をトレーニング(training)データとして使用して学習過程を行うか、所定数以上の抽出映像を取得してから学習過程を行うことができる。
すなわち、障害物認識モジュール354は、例えば、障害物を認識するたびに認識結果を追加して、加重値(weight)などのディープニューラルネットワーク(DNN)構造をアップデートするか、所定回数のトレーニングデータが確保された後に確保されたトレーニングデータで学習を行って、加重値(weight)などのディープニューラルネットワーク(DNN)構造をアップデートする。
または、移動ロボット100は、例えば、通信部390を介して映像取得部320が取得した原本映像又は抽出された映像を所定サーバに送信し、所定サーバからマシンラーニングに関連するデータを受信する。
この場合に、移動ロボット100は、所定サーバから受信されたマシンラーニングに関連するデータに基づいて障害物認識モジュール354をアップデート(update)することができる。
図4aは、本発明の一実施形態による、移動ロボット100に備えられたLiDARセンサ175の説明に参照される図である。
図4aに示すように、LiDARセンサ175は、例えば、360度全方向に対してレーザーを出力し、オブジェクトから反射されたレーザーを受信することにより、レーザーを反射させたオブジェクトとの距離、位置方向、材質などの情報を取得し、走行区域の地形情報を取得することができる。
移動ロボット100は、例えば、LiDARセンサ175の性能及び設定による、一定距離以内の地形情報を取得できる。例えば、移動ロボット100は、LiDARセンサ175を基準に一定距離の半径を有する円の領域(610)内の地形情報を取得できる。
移動ロボット100は、例えば、円の領域(610)を複数の移動方向によって区分する。例えば、複数の移動方向が4つの領域に設定される場合、円の領域(610)を第1移動方向(501)ないし第4移動方向(504)に対応する4つの領域に区分し、走行区域の地形情報を各領域に対して区分する。
図4bは、本発明の一実施形態による、移動ロボットの走行に関する説明に参照される図である。
図4bに示すように、移動ロボット100は、走行区域の地形情報を取得する。例えば、移動ロボット100は、走行命令に従って走行中に、LiDARセンサ175を介して走行区域の地形情報を取得することができる。
移動ロボット100は、LiDARセンサ175を介して取得した4つの移動方向に対する地形情報から、自由縁(free edge)を抽出することができる。ここで、自由縁(free edge)は、例えば、移動ロボット100の走行が可能な、レーザーを反射させたオブジェクト間の空間に関する情報を意味し得る。
図4bに示すように、移動ロボット100は、それぞれの移動方向に対して、移動通路の両端点と、LiDARセンサ175を基準に一定距離の半径を有する円の領域(610)により描かれる弧に基づいて自由縁(free edge)を抽出することができる。
自由縁(E1、E2、E3)は、各移動方向の移動通路の幅、移動通路の位置情報、移動通路の中央点に関する情報などを含み、移動通路の両端点と移動ロボット100の中心線の間の角度に関する情報も含む。ここで、移動ロボット100の中心線は、例えば、移動ロボット100を基準に、複数の移動方向に向かって延長した直線を意味し得る。
一方、移動ロボット100は、自由縁(free edge)において壁面のような障害物に対応する特徴点(以下、エッジ(edge))を抽出することができる。この時、移動ロボット100は、エッジ間の間隔に基づいて、移動通路の幅、障害物間の間隔などを判断することができる。
一方、移動ロボット100は、移動通路の中央に沿って移動するために、自由縁(free edge)に基づいて移動通路の中央点を検出し、中央点に従って走行することができる。
図5aないし図5mは、本発明の一実施形態による、移動ロボット100の動作の説明に参照される図である。本図において説明する移動ロボット100の動作は、移動ロボット100に備えられた構成(例:図3の制御部350)の動作から理解できる。
図5aに示すように、移動ロボット100は、マップ生成機能が実行される場合、複数の移動方向を設定することができる。
例えば、移動ロボット100は、マップ生成機能が実行される場合、マップ生成機能が実行される時点に移動ロボット100の前面が向く方向を第1移動方向(501)、移動ロボット100の左側面が向く方向を第2移動方向(502)、移動ロボット100の右側面が向く方向を第3移動方向(503)、第1方向の反対方向である移動ロボット100の背面が向く方向を第4移動方向(504)に設定する。
一方、移動ロボット100は、マップ生成機能が実行される場合、移動ロボット100の位置を調整し、調整された位置を基準に複数の移動方向(501ないし504)を設定する。
例えば、移動ロボット100は、走行区域内の天井に対する映像を取得する上部カメラ(例:図1aの上部カメラ120b)により天井に対する映像の特徴(例:天井方向)を検出し、検出された特徴に基づいて移動ロボット100の位置を調整することができる。
一方、移動ロボット100は、マップ生成機能が実行される場合、現在の移動ロボット100の位置に対応する第1ノードN1を生成する。例えば、移動ロボット100は、第1ノードN1の座標を(0,0)に設定し、以後に生成されるノードの座標を第1ノードN1の座標を基準に設定する。ここで、ノードの座標は、例えば、座標平面上の座標であり得る。
移動ロボット100は、LiDARセンサ(例:図4aのLiDARセンサ175)により、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを判断する。
ここで、オープン(open)された移動方向は、例えば、移動ロボット100の走行が可能であり、移動ロボット100が既に走行していない移動方向を意味し得る。
例えば、移動ロボット100から一定距離(例:3m)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在するか、移動通路の幅が移動ロボット100の走行が可能な所定基準幅未満である場合、移動ロボット100は走行不可能であると判断する。
図5bに示すように、移動ロボット100は、LiDARセンサ175により取得した、一定距離(610)以内の走行区域の地形情報に基づいて、複数の移動方向(501ないし504)に対する移動通路の幅をそれぞれ確認する。
移動ロボット100は、複数の移動方向(501ないし504)に対応するそれぞれの領域において、移動通路の幅の算出の基準となるエッジ(edge)を決定し、各エッジ間の間隔に基づいて、移動通路の幅を確認する。
このとき、移動通路の幅が基準幅(例:移動ロボット100の直径)以上である場合、移動ロボット100は走行可能な移動通路であると判断する。
移動ロボット100は、第1移動方向(501)に対応する領域において2つのエッジ(e11、e12)を決定し、2つのエッジ(e11、e12)間の距離に基づいて、第1移動方向(501)に対する移動通路の幅(L1)が基準幅以上であると判断することができる。
一方、第3移動方向(503)に対する移動通路の幅(L3)は基準幅以上であるが、移動ロボット100から一定距離(610)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在することを確認することができる。
また、第4移動方向(504)も、移動ロボット100から一定距離(610)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在することを確認することができる。
従って、移動ロボット100は、第1移動方向(501)及び第2移動方向(502)をオープン(open)された移動方向と判断する。
移動ロボット100は、例えば、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを判断し、判断結果に基づいてノードを生成することもある。
例えば、移動ロボット100は、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれていない場合、又は、オープン(open)された移動方向に移動ロボット100の現在の走行方向を含む複数の移動方向が含まれている場合、ノードを生成することができる。
一方、例えば、移動ロボット100の現在の走行方向に設定された移動方向のみがオープン(open)された場合、移動ロボット100はノードを生成せず、設定された走行方向に従って直進する。
一方、例えば、移動ロボット100は、現在位置に対応するノードが存在する場合、ノードを生成しない。この時、図5aにおいて第1ノードN1を生成したので、移動ロボット100はノードを生成しなくてもよい。
一方、図5aにおいては、マップ生成機能が実行される場合、移動ロボット100が現在の移動ロボット100の位置に対応して第1ノードN1を生成すると説明しているが、本発明はこれに限定されるものではない。
従って、マップ生成機能が実行される場合、移動ロボット100の走行方向が設定されていないため、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれていない場合に該当するので、移動ロボット100は、複数の移動方向(501ないし504)のうちにオープン(open)された移動方向が存在するか否かを判断した後に第1ノードN1を生成することもできる。
移動ロボット100は、例えば、第1ノード(N1)をノードグループに追加する。
移動ロボット100は、例えば、マップ生成機能が実行される時点に移動ロボット100の前面が向く方向を走行方向と決定することもできる。
移動ロボット100は、例えば、オープン(open)された移動方向のいずれか1つを走行方向と決定することもできる。移動ロボット100は、例えば、オープン(open)された移動方向のそれぞれの費用(cost)を確認でき、オープン(open)された移動方向の費用を比較して、走行方向を決定することができる。ここで、費用(cost)は、例えば、オープン(open)された移動方向のそれぞれに対する移動通路の幅、現在走行方向として設定されているか否かなどを含む。
例えば、移動ロボット100は、オープン(open)された移動方向のそれぞれに対する移動通路の幅を比較することができ、最も広い幅の移動通路の移動方向を走行方向として決定する。本図においては、第1移動方向(501)に対する移動通路の幅(L1)が最も広いので、第1移動方向(501)が走行方向として決定される。
一方、例えば、移動ロボット100は、オープン(open)された移動方向のうち、現在走行方向に設定されている移動方向を走行方向に維持することもできる。
一方、移動ロボット100に保存されたノードに関するデータについて、以下の表1を参照して説明する。
Figure 0007432701000001
表1を参照すると、第1ノードN1の座標は(0,0)に設定され、第1及び第2移動方向(501、502)はオープン(open)を示す「-2」、第3及び第4移動方向(503、504)はオープン(open)されていないことを示す「-1」に設定される。一方、本図においては、座標の基準数値をセンチメートル(cm)として説明しているが、本発明はこれに限定されるものではない。
一方、第3移動方向(503)の場合、移動ロボット100から一定距離(610)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在するが、移動通路の幅(L3)が基準幅以上で、移動ロボット100が走行できる領域が存在するので、第1ノードN1から第3移動方向(503)に所定距離離隔された位置に第2ノードN2を生成する。このとき、生成されるノードの位置は、例えば、移動ロボット100と障害物の間の距離(L4)を考慮して決定される。
移動ロボット100は、例えば、第2ノードN2をノードグループに追加する。
第1ノードN1及び第2ノードN2に関するデータは、以下の表2のように設定される。
Figure 0007432701000002
表2を参照すると、第1ノードN1の第3移動方向(503)に第2ノードN2が生成されることにより、第1ノードN1の第3移動方向(503)に関するデータ値は第2ノードN2を示す「2」にアップデート(update)される。
一方、第2ノードN2の座標は(0,-200)に設定され、第2移動方向(502)に第1ノードN1が位置することにより、第2ノードN2の第2移動方向(502)に関するデータ値は「1」に設定される。
移動ロボット100は、走行方向と決定された第1移動方向に走行できる。移動ロボット100は、走行方向の移動通路を走行中に、移動通路の中央に沿って走行する。
例えば、移動ロボット100は、走行方向の移動通路を走行中に、移動通路の幅の算出の基準となるエッジ(edge)に基づいて移動通路の中央点を検出し、中央点に沿って走行することができる。
一方、移動ロボット100は、走行方向の移動通路を走行中に、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを判断する。例えば、移動ロボット100は、走行方向の移動通路を走行中に、複数の移動方向(501ないし504)にオープン(open)された移動方向が存在するか否かを所定周期によって持続的に判断することができる。
図5cを参照すると、第3移動方向(503)に対する移動通路の幅(L3)は基準幅以上であるが、移動ロボット100から一定距離(610)以内に移動ロボット100の走行が不可能な種類の障害物e33が存在することが確認できる。
一方、第4移動方向(504)は、走行方向の反対方向に該当して、移動ロボット100が既に走行していた移動方向に該当するので、移動ロボット100は、オープン(open)されていない移動方向と判断することができる。
従って、移動ロボット100は、複数の移動方向(501ないし504)のうち走行方向である第1移動方向(501)のみがオープン(open)されたことを確認し、現在の走行方向に走行し続けることができる。
図5dを参照すると、移動ロボット100は、走行方向の移動通路を走行中に、複数の移動方向(501ないし504)のうち、第1及び第2移動方向(501、502)がオープン(open)された移動方向であることが確認できる。
現在の走行方向である第1走行方向(501)を含む複数の移動方向がオープン(open)された移動方向に該当するので、移動ロボット100は第3ノードN3を生成することができる。
移動ロボット100は、例えば、第3ノードN3をノードグループに追加する。
第1ノードN1ないし第3ノードN3に関するデータは、以下の表3のように設定される。
Figure 0007432701000003
表3を参照すると、第1ノードN1の第1移動方向(501)に第3ノードN3が生成されることにより、第1ノードN1の第1移動方向(501)に関するデータ値は第3ノードN3を示す「3」にアップデート(update)される。
一方、第3ノードN3の座標は、移動ロボット100の走行距離に基づいて(400,0)に設定され、第4移動方向(504)に第1ノードN1が位置することにより、第3ノードN3の第4移動方向(504)に関するデータ値は第1ノードN1を示す「1」に設定されることができる。
移動ロボット100は、オープン(open)された第1及び第2移動方向(501、502)のそれぞれに対する移動通路の幅(L1、L2)を比較して、第1移動方向(501)を走行方向と決定することができる。
図5eを参照すると、移動ロボット100は、走行方向に沿って走行中に、図5dにおいて第3ノードN3を生成したのと同様に、第4ノードN4を生成する。
移動ロボット100は、例えば、第4ノードN4をノードグループに追加する。
一方、第1ノードN1ないし第4ノードN4に関するデータは、以下の表4のように設定される。
Figure 0007432701000004
表4を参照すると、第3ノードN3の第1移動方向(501)に第4ノードN4が生成されることにより、第3ノードN3の第1移動方向(501)に関するデータ値は第4ノードN4を示す「4」にアップデート(update)される。
一方、第4ノードN4の座標は、移動ロボット100の走行距離に基づいて、(800,0)に設定され、第4移動方向(504)に第3ノードN3が位置することにより、第4ノードN4の第4移動方向(504)に関するデータ値は第3ノードN3を示す「3」設定されることができる。
一方、移動ロボット100は、走行方向に沿って走行中に、走行方向である第1移動方向(501)に対して一定距離(610)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在することが確認できる。
この時、移動ロボット100は、走行方向に沿って走行する状態であり、移動通路の幅(L1)が基準幅以上であるので、図5bにおいて第1ノードN1を生成したのとは異なり、障害物に接近するまで移動し続けることができる。
移動ロボット100が障害物に接近中にも、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在しない場合、移動ロボット100は、障害物に接近した位置に新しいノードを生成する。
また、移動ロボット100は、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。ここで、アップデート(update)が必要なノードは、例えば、ノードに関連するデータ値のうち、オープン(open)を示す「-2」を含むノードが存在する場合、当該ノードはアップデート(update)が必要なノードであると判断される。
一方、図5fのように、移動ロボット100が障害物に接近中に、複数の移動方向(501ないし504)のうち、走行方向である第1移動方向(501)はオープン(open)されておらず、他の移動方向(502)がオープン(open)されていることを確認する場合、移動ロボット100は第5ノードN5を生成することができる。
移動ロボット100は、例えば、第5ノードN5をノードグループに追加する。
一方、第1ノードN1ないし第5ノードN3に関するデータは、以下の表5のように設定される。
Figure 0007432701000005
表5を参照すると、第4ノードN4の第1移動方向(501)に第5ノードN5が生成されることにより、第4ノードN4の第1移動方向(501)に関するデータ値は第5ノードN5を示す「5」にアップデート(update)される。
一方、第5ノードN5の座標は、移動ロボット100の走行距離に基づいて、(1100,0)に設定され、第4移動方向(504)に第4ノードN4が位置することにより、第5ノードN5の第4移動方向(504)に関するデータ値は第4ノードN4を示す「4」に設定されることができる。
一方、移動ロボット100は、複数の移動方向(501ないし504)のうちオープン(open)された移動方向である第2移動方向(502)を走行方向と決定し、第2移動方向(502)に走行することができる。
図5gに示すように、移動ロボット100は、走行方向に沿って走行中に、図5cないし図5eにおいて第3ノードN3ないし第5ノードN5を生成したのと同様に、第6ノードN6ないし第9ノードN9を生成することができる。
移動ロボット100は、例えば、第6ノードN6ないし第9ノードN9をノードグループに追加する。
このとき、本発明の図面においては、全空間の入口に設置されたドアが閉鎖されていることを基準に説明し、ドアが開放されている場合、移動ロボット100の移動経路は異なる可能性がある。
一方、移動ロボット100は、第9ノードN9から第3移動方向(503)に走行中に、第1ノードN1に復帰することを確認できる。
一方、第1ノードN1ないし第9ノードN9に関するデータは、以下の表6のように設定される。
Figure 0007432701000006
移動ロボット100は、第1ノードN1に対応する位置においてオープン(open)された移動方向が存在しないことが確認できる。このとき、当該位置に第1ノードN1が既に設定されているので、移動ロボット100は新しいノードを生成しなくてもよい。
一方、移動ロボット100は、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在しない場合、ノードグループを確認する。表6を参照すると、第1ないし第9ノード(N1ないしN9)がノードグループに含まれていることを確認できる。
図5hに示すように、移動ロボット100は、ノードグループに対応する領域(710)を走行し、走行中に吸入ユニット(例:図3の吸入ユニット330)を駆動することができる。このとき、移動ロボット100は、ノードに関するデータに基づいて、ノードグループに含まれたノードに対応する領域(710)を全て走行するにおいて、最短走行距離の走行経路を決定することができる。
例えば、移動ロボット100がノードグループに対応する領域(710)を走行中に、ブラシ(例:図1aのブラシ154、155)の回転により、ノードグループに対応する領域内の床からほこりが分離され、床から分離されたほこりは吸入口(例:吸入口150h)により吸入され、吸入流路を介してダストボックスに流入される。
一方、移動ロボット100は、例えば、ノードグループに対応する領域(710)を走行中に、走行方向に沿って直進に移動することもでき、ジグザグパターンで移動することもできる。
一方、移動ロボット100は、ノードグループに対応する領域(710)に対する走行が完了する場合、ノードグループを初期化する。
一方、移動ロボット100は、ノードグループに対応する領域(710)に対する走行が完了する場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
移動ロボット100は、アップデート(update)が必要なノードが存在する場合、アップデート(update)が必要なノードのいずれか1つに移動することができる。このとき、移動ロボット100は、アップデート(update)が必要なノードのうち、移動ロボット100の現在位置から最短距離に位置するノードを決定する。
例えば、移動ロボット100は、ノードに関するデータに含まれたノード間の距離を確認し、移動ロボット100の現在位置から最短距離に位置するノードを決定する。
一方、移動ロボット100は、アップデート(update)が必要なノードのいずれか1つに移動した後、複数の移動方向(501ないし504)のうちオープンされた移動方向が存在するか否かを判断する。
前記表6を参照すると、移動ロボット100は、ノードに関連するデータ値にオープン(open)を示す「-2」が含まれている第3ノードN3、第4ノードN4、第7ノードN7、及び第8ノードN8をアップデート(update)が必要なノードと判断する。
図5iに示すように、移動ロボット100は、アップデート(update)が必要なノードのうち、最短距離に位置する第3ノードN3に移動し、第3ノードN3においてオープン(open)された移動方向である第2移動方向(502)を走行方向と決定して走行する。
移動ロボット100は、走行方向である第2移動方向(502)に走行中に、複数の移動方向(501ないし504)のうち走行方向である第2移動方向(502)のみがオープン(open)されていることを確認することができ、現在の走行方向に走行し続ける。
一方、移動ロボット100は、所定距離以上を走行方向にのみ走行する場合、所定距離に従って新しいノードを生成することができる。
移動ロボット100は、走行方向に走行中に、第10ノードN10を生成し、第10ノードN10をノードグループに追加する。
移動ロボット100は、走行方向に走行中に、第10ノードN10を生成し、第10ノードN10をノードグループに追加する。
例えば、移動ロボット100は、走行方向に走行中に、所定距離以上複数の移動方向(501ないし504)のうち走行方向のみがオープン(open)されている場合、新しいノードを生成して、より正確なマップを作成することができる。
移動ロボット100は、第8ノードN8に対応する位置に到着したことを確認できる。
第1ノードN1ないし第10ノードN10に関するデータは、以下の表7のように設定される。
Figure 0007432701000007
移動ロボット100は、第8ノードN8に対応する位置においてオープン(open)された移動方向が存在しないことを確認できる。この時、当該位置に第8ノードN8が既に設定されているので、移動ロボット100は新しいノードを生成しなくてもよい。
図5jに示すように、移動ロボット100は、第8ノードN8においてノードグループを確認できる。この時、第10ノードN10のみがノードグループに含まれるので、移動ロボット100は、第10ノードN10に対応する領域(720)を走行し、走行中に吸入ユニット330を駆動することができる。
一方、移動ロボット100は、ノードグループに対応する領域(720)に対する走行が完了する場合、ノードグループを初期化する。
一方、移動ロボット100は、ノードグループに対応する領域(720)に対する走行が完了する場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
前記表7を参照すると、移動ロボット100は、ノードに関連するデータ値にオープン(open)を示す「-2」が含まれている第4ノードN4及び第7ノードN7をアップデート(update)が必要なノードと判断する。
図5kに示すように、移動ロボット100は、アップデート(update)が必要なノードのうち、最短距離に位置する第4ノードN4に移動し、第4ノードN4においてオープン(open)された移動方向である第2移動方向(502)を走行方向と決定して走行する。
図5iにおいてのように、移動ロボット100は、走行方向である第2移動方向(502)に走行中に、複数の移動方向(501ないし504)のうち走行方向である第2移動方向(502)のみがオープン(open)されていることを確認することができ、現在の走行方向に走行し続ける。
一方、移動ロボット100は、走行方向に走行中に、より正確なマップ作成のために第11ノードN11を生成し、第11ノードN11をノードグループに追加する。
一方、移動ロボット100は、走行方向に走行中に、より正確なマップ作成のために第11ノードN11を生成し、第11ノードN11をノードグループに追加する。
移動ロボット100は、第7ノードN7に対応する位置に到着したことを確認できる。
第1ノードN1ないし第11ノードN11に関するデータは、以下の表8のように設定される。
Figure 0007432701000008
移動ロボット100は、第7ノードN7に対応する位置においてオープン(open)された移動方向が存在しないことを確認できる。このとき、当該位置に第7ノードN7が既に設定されているので、移動ロボット100は新しいノードを生成しなくてもよい。
図5lに示すように、移動ロボット100は、第7ノードN7においてノードグループを確認することができる。この時、第11ノードN11のみがノードグループに含まれるので、移動ロボット100は、第11ノードN11に対応する領域(730)を走行し、走行中に吸入ユニット330を駆動することができる。
一方、移動ロボット100は、ノードグループに対応する領域(730)に対する走行が完了する場合、ノードグループを初期化する。
一方、移動ロボット100は、ノードグループに対応する領域(730)に対する走行が完了する場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
前記表8を参照すると、移動ロボット100は、アップデート(update)が必要なノードがこれ以上存在しないことを確認し、生成された全域的位相マップ(topological map)を保存部305に保存してマップ生成を完了する。
図5mを参照すると、移動ロボット100は、生成された全域的位相マップ(topological map)に基づいて、ノード間の関係を確認することができ、移動経路を決定することもできる。
図6aないし図6dは、本発明の他の一実施形態による、移動ロボット100の動作の説明に参照される図である。図5aないし図5mにおいて説明した内容と重複する内容は詳細な説明を省略する。
図6aに示すように、移動ロボット100は、複数の移動方向(501ないし504)のうちオープン(open)された移動方向の存否に対する判断の結果に基づいて、第1ないし第3ノード(N1ないしN3)を生成し、生成された第1ないし第3ノード(N1ないしN3)をノードグループに追加する。
移動ロボット100は、第3ノードN3に対応する位置においてオープン(open)された移動方向が存在しないことを確認し、ノードグループに第1ないし第3ノード(N1ないしN3)が含まれていることを確認する。
移動ロボット100は、ノードグループに対応する領域(810)を走行し、走行中に吸入ユニット(例:図3の吸入ユニット330)を駆動することができる。
一方、移動ロボット100は、ノードグループに対応する領域(810)に対する走行が完了する場合、ノードグループを初期化する。
一方、移動ロボット100は、ノードグループに対応する領域(810)に対する走行が完了する場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
図6bに示すように、移動ロボット100は、ノードに関するデータ値にオープン(open)を示す「-2」が含まれている第2ノードN2をアップデート(update)が必要なノードと決定し、第2ノードN2に移動する。
一方、移動ロボット100は、第2ノードN2から行われた、複数の移動方向(501ないし504)のうちオープン(open)された移動方向の存否に対する判断の結果に基づいて、第4ないし第7ノード(N4ないしN7)を生成し、生成された第4ないし第7ノード(N4ないしN7)をノードグループに追加することができる。
移動ロボット100は、第3ノードN3に対応する位置においてオープン(open)された移動方向が存在しないことを確認し、ノードグループに第1ないし第3ノード(N1ないしN3)が含まれていることを確認することができる。
移動ロボット100は、ノードグループに対応する領域(820)を走行し、走行中に吸入ユニット330を駆動する。
一方、移動ロボット100は、ノードグループに対応する領域(820)に対する走行が完了する場合、ノードグループを初期化する。
一方、移動ロボット100は、ノードグループに対応する領域(820)に対する走行が完了する場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
図6c及び図6dを参照すると、図6a及び図6bにおいてのように、移動ロボット100は、複数の移動方向(501ないし504)のうちオープン(open)された移動方向の存否に対する判断結果に基づいて、第8ノードN8生成し、第8ノードN8に対応する領域(830)を走行することができる。
一方、移動ロボット100は、第8ノードN8に対応する領域(830)の走行が完了した後、第9及び第10ノード(N9、N10)を生成し、第9及び第10ノード(N9、N10)に対応する領域(840)を走行することができる。
図7は、本発明の一実施形態による、移動ロボットの制御方法に関するフローチャートを示す図である。
図7に示すように、移動ロボット100は、S701動作において、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを判断する。
例えば、移動ロボット100は、既に設定された複数の移動方向(501ないし504)のそれぞれに対して、移動ロボット100から一定距離(例:3m)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在せず、移動通路の幅が移動ロボット100の走行が可能な所定基準幅以上であり、移動ロボット100が既に走行していない方向であるか否かを判断することができる。
移動ロボット100は、S702動作において、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在する場合、既に設定された条件に従ってノードを生成する。
例えば、移動ロボット100は、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれていない場合、又は、オープン(open)された移動方向に移動ロボット100の現在の走行方向を含む複数の移動方向が含まれている場合、ノードを生成することができる。
一方、例えば、移動ロボット100の現在の走行方向に設定された移動方向のみがオープン(open)された場合、移動ロボット100はノードを生成せず、設定された走行方向に従って直進する。
一方、例えば、移動ロボット100は、現在位置に対応するノードが存在する場合、ノードを生成しないことがある。
一方、ノードに関するデータは、ノードに対応する位置において複数の移動方向(501ないし504)がオープン(open)であるか否かに関するデータ値を含む。
移動ロボット100は、S703動作において、生成されたノードをノードグループに追加することができる。
移動ロボット100は、S704動作において、オープン(open)された移動方向のうちいずれか1つを移動ロボット100の走行方向として決定する。
例えば、移動ロボット100は、オープン(open)された移動方向のそれぞれに対する移動通路の幅を比較することができ、幅が最も広い移動通路の移動方向を走行方向として決定する。
または、例えば、移動ロボット100は、オープン(open)された移動方向のうち、現在走行方向に設定されている移動方向を走行方向として維持することもできる。
移動ロボット100は、S705動作において、走行方向として決定された移動方向に移動する。
この時、移動ロボット100は、走行方向の移動通路を走行中に、移動通路の中央に沿って走行する。
例えば、移動ロボット100は、走行方向の移動通路を走行中に、移動通路の幅の算出の基準となるエッジ(edge)に基づいて移動通路の中央点を検出し、中央点に従って走行する。
一方、移動ロボット100は、走行方向の移動通路を走行中に、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを持続的に判断することができる。
一方、移動ロボット100は、S706動作において、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在しない場合、ノードグループを確認する。
移動ロボット100は、ノードグループに含まれたノードを確認し、ノードグループに対応する領域を走行することができる。
一方、移動ロボット100は、ノードグループに対応する領域を走行中に、吸入ユニット(例:図3の吸入ユニット330)を駆動して、床からほこりを分離して吸入する。
移動ロボット100は、S707動作において、ノードグループに対応する領域に対する走行を完了しているか否かを確認する。
移動ロボット100は、ノードグループに対応する領域に対する走行が完了していない場合、S706動作に分岐して、ノードグループに対応する領域を走行し続ける。
一方、移動ロボット100は、S708動作において、ノードグループに対応する領域に対する走行が完了している場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
例えば、移動ロボット100は、それぞれのノードに関するデータ値を確認して、複数の移動方向(501ないし504)に関するデータ値のうちオープン(open)された移動方向を示すデータ値が含まれたノードが存在する場合、該当ノードをアップデート(update)が必要なノードであると判断する。
一方、移動ロボット100は、ノードグループに対応する領域に対する走行が完了している場合、ノードグループを初期化する。
移動ロボット100は、S709動作において、アップデート(update)が必要なノードが存在する場合、アップデート(update)が必要なノードのいずれか1つに移動する。
例えば、移動ロボット100は、アップデート(update)が必要なノードのうち、移動ロボット100の現在位置から最短距離に位置するノードに移動する。
一方、移動ロボット100は、S710動作において、アップデート(update)が必要なノードが存在しない場合、生成された全域位相マップ(topological map)を保存部305を保存してマップ生成を完了する。
図8a及び8bは、本発明の一実施形態による、移動ロボットの制御方法に関するフローチャートを示す図である。
図8aに示すように、移動ロボット100は、S801動作において、マップ生成機能を行う。例えば、移動ロボット100は、電源がオン(on)になった場合、又は、ユーザからマップ生成機能を実行する命令が入力される場合、マップ生成機能を実行する。
移動ロボット100は、S802動作において、複数の移動方向(501ないし504)を設定する。
例えば、移動ロボット100は、マップ生成機能が実行される場合、マップ生成機能が実行される時点に移動ロボット100の前面が向く方向を第1移動方向(501)、移動ロボット100の左側面が向く方向を第2移動方向(502)、移動ロボット100の右側面が向く方向を第3移動方向(503)、第1方向の反対方向である移動ロボット100の背面が向く方向を第4移動方向(504)に設定する。
移動ロボット100は、S803動作において、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを判断する。
例えば、移動ロボット100は、既に設定された複数の移動方向(501ないし504)のそれぞれに対して、移動ロボット100から一定距離(例:3m)以内に移動ロボット100の走行が不可能な種類の障害物(例:壁面)が存在せず、移動通路の幅が移動ロボット100の走行可能な所定基準幅以上であり、移動ロボット100が既に走行していない方向であるか否かを判断することができる。
図8bに示すように、移動ロボット100は、S804動作において、オープン(open)された移動方向が存在する場合、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれるか否かを確認する。
この時、マップ生成機能が実行される時点では走行方向が設定されないことがあり、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれていない場合と判断される。
移動ロボット100は、S805動作において、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれていない場合、移動ロボット100の現在位置に対するノードを生成する。一方、移動ロボット100は、生成されたノードをノードグループに追加することができる。
移動ロボット100は、S806動作において、オープン(open)された移動方向のうちいずれか1つを走行方向と決定することもできる。
例えば、移動ロボット100は、オープン(open)された移動方向のそれぞれに対する移動通路の幅を比較し、幅が最も広い移動通路の移動方向を走行方向と決定する。
移動ロボット100は、S807動作において、走行方向と決定された移動方向にする。
この時、移動ロボット100は、走行方向の移動通路を走行中に、移動通路の中央に沿って走行する。
例えば、移動ロボット100は、走行方向の移動通路を走行中に、移動通路の幅の算出の基準となるエッジ(edge)に基づいて移動通路の中央点を検出し、中央点に従って走行する。
一方、移動ロボット100は、走行方向の移動通路を走行中に、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在するか否かを持続的に判断する。
一方、移動ロボット100は、S808動作において、オープン(open)された移動方向に移動ロボット100の現在の走行方向が含まれている場合、現在の走行方向のみがオープン(open)された移動方向であるか否かを確認する。
このとき、現在の走行方向を含む複数のオープン(open)された移動方向が存在する場合、S805動作に分岐して、移動ロボット100の現在位置に対するノードを生成する。
一方、複数の移動方向(501ないし504)のうち現在の走行方向のみがオープン(open)された移動方向である場合、S807動作で分岐して、走行方向と決定された移動方向に移動し続ける。
一方、図8aを再び参照すると、移動ロボット100は、S809の動作において、オープン(open)された移動方向が存在しない場合、ノードを生成することができ、生成されたノードをノードグループに追加することができる。
この時、当該位置にノードが既に設定されている場合、移動ロボット100は、新しいノードを生成しなくてもよい。
一方、移動ロボット100は、S810動作において、複数の移動方向(501ないし504)のうちオープン(open)された移動方向が存在しない場合、ノードグループを確認する。
移動ロボット100は、ノードグループに含まれたノードを確認し、ノードグループに対応する領域を走行することができる。
一方、移動ロボット100は、ノードグループに対応する領域を走行中に、吸入ユニット(例:図3の吸入ユニット330)を駆動して、床からほこりを分離して吸入できる。
移動ロボット100は、S811動作において、ノードグループに対応する領域に対する走行が完了しているか否かを確認する。
移動ロボット100は、ノードグループに対応する領域に対する走行が完了していない場合、S810動作に分岐して、ノードグループに対応する領域を走行し続ける。
一方、移動ロボット100は、S812動作において、ノードグループに対応する領域に対する走行が完了している場合、ノードに関するデータに基づいて、ノードのうちアップデート(update)が必要なノードが存在するか否かを判断する。
例えば、移動ロボット100は、それぞれのノードに関するデータ値を確認して、複数の移動方向(501ないし504)に関するデータ値のうちオープン(open)された移動方向を示すデータ値が含まれたノードが存在する場合、該当ノードをアップデート(update)が必要なノードと判断する。
一方、移動ロボット100は、ノードグループに対応する領域に対する走行が完了している場合、ノードグループを初期化する。
移動ロボット100は、S813動作において、アップデート(update)が必要なノードが存在する場合、アップデート(update)が必要なノードのいずれか1つを決定することができる。
例えば、移動ロボット100は、アップデート(update)が必要なノードのうち、移動ロボット100の現在位置から最短距離に位置するノードを決定することができる。
移動ロボット100は、S814動作において、S813動作で決定されたノードに移動する。
例えば、移動ロボット100は、アップデート(update)が必要なノードのうち、移動ロボット100の現在位置から最短距離に位置するノードに移動することができる。
一方、移動ロボット100は、S815動作において、アップデート(update)が必要なノードが存在しない場合、生成された全域位相マップ(topological map)を保存部305に保存してマップ生成を完了する。
前記のように、本発明の多様な実施形態によれば、移動ロボット100が移動中に、リアルタイムでノードを生成することができ、ノード間の連結関係を正確に設定することができる。
また、本発明の多様な実施形態によれば、位相マップの生成中に、移動ロボット100が移動通路の中央に沿って走行することにより、障害物を回避する動作を最小化しながら移動することができるため、より安定的な移動経路を提供する位相マップを生成することができる。
また、本発明の多様な実施形態によれば、移動ロボット100は、複数の移動方向(501ないし504)に関するデータ値のような、ノードのそれぞれに関する情報を正確に設定することができるため、より正確な移動経路を提供する位相マップを生成することができる。
また、本発明の様々な実施形態によれば、移動ロボット100は、位相マップを生成中に、移動ロボット100が目的とする機能を行うことができる。
前述のように、本発明の様々な実施形態によれば、移動ロボットの移動中にノードをリアルタイムで生成することによりノード間の連結関係を正確に設定することが可能である。
また、本発明の様々な実施形態によれば、位相マップ(topological map)を生成するとき、移動時に障害物を回避するための動作を最小化しながらもより安定した走行経路を提供する位相マップ(topological map)を生成することが可能である。
また、本発明の様々な実施形態によれば、各ノードの情報を正確に設定できるので、より正確な移動経路を生成することが可能である。
また、本発明の様々な実施形態によれば、位相マップ(topological map)を生成するとともに、前記移動ロボットにより要求される機能を行うことが可能である。
実施形態がこれらに対する複数の例示的な実施形態を参照して記述されているが、当業者により様々な修正及び実施形態が考案されることができ、これらは本発明の原理の範囲内にあると理解しなければならない。より詳しくは、本発明、図面及び添付の請求の範囲内において発明事項の組み合わせ配置の構成部品及び/又は配置における多様な変形と修正が可能である。このような構成部品及び/又は配置における変形及び修正に加えて、代替的な使用も当業者に明確であろう。
ある要素又はレイヤが他の要素又はレイヤの「上」にあるという時、これらの要素又はレイヤは、他の要素又はレイヤの直上にあるか、中間にある要素又はレイヤであると理解されるべきである。それに対して、ある要素が他の要素又はレイヤの「直上」にあるということは、中間に要素又はレイヤが存在しないことを意味する。この明細書において使用される用語「及び/又は」は、関連して列挙された項目の1つ又はそれ以上の全ての組合せを含む。
本明細書において第1、第2、第3などの用語が多様な要素、構成要素、領域、レイヤ及び/又は部分を記述するために使われるが、このような要素、構成要素、領域、レイヤ及び/又は部分がこれらの用語により制限されないと理解すべきである。このような用語は、ある要素、構成要素、領域、レイヤ又は部分を他の領域、レイヤ又は部分と区分するために使用されるだけである。従って、第1要素、構成要素、領域、レイヤ又は部分を本発明の教示から逸脱されることなく、第2要素、構成要素、領域、レイヤ又は部分と呼ばれることができる。
本明細書において、「下部」、「上部」のように空間的に相対的な用語は、図面においてある要素又は特徴と他の要素(ら)又は特徴(ら)との関係の説明を容易にするために使用される。前記空間的に相対的な用語は、使用中又は動作中の装置において図面に示された方向とは異なる方向を包括するためのものであると理解しなければならない。例えば、図面の装置を裏返すと、他の要素または特徴に対して「下部」にあると記述された要素は他の要素又は特徴に対して「上部」に向かうようになる。従って、例示的な用語である「下部」は、上と下の両方向を包括することができる。このような装置は、他の方向に配置されることができ(90度回転した方向又は他の方向)、本明細書で使用された空間的に相対的な用語もこれに応じて解釈されるべきである。
本明細書において使用された用語は、特定の実施形態を説明する目的を有するだけであり、本発明を制限するものではない。本明細書において使用される、単数形の「1つの」及び「前記」は、他の明示的に記載がない限り、複数形も含む。また、「含む(comprise)」及び/又は「含む(comprising)」という用語は本明細書において使用されるとき、記述された特徴、定数、段階、動作、要素、及び/又は構成要素の存在を規定するものであるが、1つ又はそれ以上の他の特徴、定数、段階、動作、要素、構成要素、及び/又はこれらの群の存在又は追加を排除するものではないことも理解されるべきである。
本明細書においては、本発明の実施形態は、本発明の理想的な実施形態(及び中間構造)の概略的な例示に該当する断面の例示を参照して記述される。これにより、例えば、製造技術及び/又は許容誤差の結果として示される例示された形態からの変形が発生することが予想される。従って、本発明の実施形態は、本明細書に例示される領域の特定の形態に制限されるものではなく、例えば、製造の結果として示される偏差を含むものと推論されるべきである。
他に定義されない限り、本明細書において使用されるすべての用語(技術的用語と科学的用語を含む)は、本発明の属する技術分野において、通常の知識を有する者により理解されるものと同一の意味を有する。また、辞書で一般的に定義されているような用語は、関連技術の文脈での意味と一致する意味を持っていると解釈されるべきであり、本明細書において明示的に定義されない以上、理想的に又は過度に形式的な方式で解釈されてはならないということも理解しなければならない。
この明細書において「1つの実施形態」、「一実施形態」、「例示的な実施形態」などの言及は、当該実施形態に関連して記述された特別な特徴、構造又は特性が本発明の少なくとも1つの実施形態に含まれていることを意味する。本明細書の様々な所でのそのような句の出現は、必ずしもすべてが同じ実施形態を参照しているものではない。また、特別の特徴、構造又は特性がいずれかの実施形態と関連して記述されるとき、このような特徴、構造又は特性は、当業者が理解する範囲内において当該実施形態の他のものに関連する特徴、構造又は特性と同じ趣旨であるとみなされなければならない。
実施形態がこれに対する複数の例示的な実施形態を参照して記述されているが、様々な修正及び実施形態が当該分野に通常の知識を有する者により考案されることができ、これも本発明の原理の思想と範囲内にあることを理解しなければならない。より詳細には、本発明、図面及び添付の請求の範囲内において発明事項の組合せ配置の構成部品及び/又は配置での多様な変形と修正が可能である。このような構成部品及び/又は配置での変形及び修正に加えて,代替的な使用も当業者に明確であろう。

Claims (16)

  1. 移動ロボットの本体を移動させるように構成された駆動ホイールと、
    前記本体の周辺の異物を吸入するように構成された吸入ユニットと、
    前記本体の外部地形に関するセンシングデータを取得するように構成されたLiDARセンサと、
    少なくとも1つのノードに関するノードデータを保存するように構成されたメモリと、
    制御部を含む移動ロボットであって、
    前記制御部は、
    前記LiDARセンサのセンシングデータ及び前記ノードデータに基づいて、少なくとも1つのオープンされた移動方向が前記本体からの複数の移動方向の中に含まれているか否かを決定し、
    前記少なくとも1つのオープンされた移動方向が前記本体からの複数の移動方向の中に含まれている場合、前記ノードデータ内に前記移動ロボットの現在位置に対応する新しいノードを生成し、前記生成されたノードをノードグループに追加し、前記少なくとも1つのオープンされた移動方向の1つを前記本体が移動する走行方向として選択し、
    前記少なくとも1つのオープンされた移動方向が前記本体からの複数の移動方向の中に含まれていない場合、前記本体が前記ノードグループに対応する領域を走行するように前記駆動ホイールを制御し、前記本体が前記ノードグループに対応する領域内において走行する場合、前記吸入ユニットを活性化し、
    前記本体が前記ノードグループに対応する領域の走行を完了する場合、前記ノードグループを初期化し、
    アップデートされる必要のある1つ又はそれ以上のノードが前記少なくとも1つのノード中に含まれている場合、前記ノードデータに基づいて、前記移動ロボットが前記アップデートされる必要のあるノードの1つに移動するように前記駆動ホイールを制御し、アップデートされる必要のある前記ノードの移動方向の少なくとも一つに対してデータ値を変更し、
    前記アップデートされる必要のある1つ又はそれ以上のノードが前記少なくとも1つのノード中に含まれていない場合、前記ノードデータに基づいて前記少なくとも1つのノードを示すマップの生成を完了するように構成され、
    前記オープンされた移動方向は、前記移動ロボットの走行が可能で、前記移動ロボットがいまだ走行していない移動方向であり、
    前記ノードデータは、前記少なくとも一つのノードのそれぞれに関して、前記複数の移動方向のそれぞれに対して、座標(coordinate)とデータ値を含み、
    前記データ値は、前記オープンされた移動方向を示す第1データ値と、前記移動ロボットが前記ノードから走行できないことを示す第2データ値と、前記少なくとも一つのノードの中の他のノードを示す第3データ値との中の一つに設定され、
    前記一つ以上のノードのそれぞれのアップデートされる必要のあるデータ値は、前記第1データ値に設定される、移動ロボット。
  2. 前記制御部は、
    前記移動ロボットが走行可能な複数の移動方向の第1部分集合を決定し、
    前記移動ロボットが既に走行していない複数の移動方向の第2部分集合を決定し、
    前記第1部分集合及び前記の第2部分集合に含まれた複数の移動方向のうち少なくとも一つの移動方向を少なくとも1つのオープンされた移動方向と決定するように構成された、請求項1に記載の移動ロボット。
  3. 前記制御部は、
    前記少なくとも一つのオープンされた移動方向は、前記複数の移動方向に含まれる場合、前記移動方向の1つが前記移動ロボットの走行方向であり、前記少なくとも1つのオープンされた移動方向のいずれか1つに該当するか否かを決定し、
    前記移動方向が走行方向であり、前記少なくとも1つのオープンされた移動方向のいずれか1つに該当しないときは、新しいノードを生成するように構成される、請求項1に記載の移動ロボット。
  4. 前記制御部は、
    前記複数の移動方向のうち走行方向である1つの移動方向のみが前記少なくとも1つのオープンされた移動方向に該当するかを決定し、
    前記1つの移動方向のうち走行方向である1つの方向のみが前記少なくとも1つのオープンされた移動方向に該当するとき、前記移動ロボットが新しいノードを生成せず、前記走行方向に移動するように前記駆動ホイールを制御し、
    走行方向である前記1つの移動方向を含む2つ又はそれ以上の移動方向が前記少なくとも1つのオープンされた移動方向に該当するとき、新しいノードを生成するように構成される、請求項3に記載の移動ロボット。
  5. 前記制御部は、新しいノードを生成するとき、前記ノードデータ内に含まれた前記少なくとも1つのノードのそれぞれの複数の移動方向に関するデータ値をアップデートするように構成される、請求項4に記載の移動ロボット。
  6. 前記制御部は、前記複数の移動方向のそれぞれに関するデータ値の少なくとも1つに対して前記オープンされた移動方向を示す第1データ値としてのノード集合を、アップデートされる必要のあるノードと決定するように構成される、請求項5に記載の移動ロボット。
  7. 前記制御部は、
    前記ノードデータに基づいてアップデートが必要なノードのうち前記移動ロボットの現在位置から最短距離に位置するノードを決定し、
    前記移動ロボットが、アップデートされる必要のあるノードのうち前記移動ロボットの現在位置から最短距離に位置するノードに移動するように前記駆動ホイールを制御するように構成される、請求項6に記載の移動ロボット。
  8. 前記本体の外部のイメージを取得するように構成された少なくとも1つのカメラをさらに含み、
    前記制御部は、
    前記カメラにより得られたイメージから特徴を抽出し、
    前記抽出された特徴をマップにマッピングし、
    前記マップにマッピングされた特徴に基づいて前記移動ロボットの位置を決定するように構成される、請求項7に記載の移動ロボット。
  9. 移動ロボットを制御する方法であって、
    少なくとも1つのオープンされた移動方向が前記移動ロボットの現在位置に対する複数の移動方向の中に含まれているか否かを決定するステップと、
    前記少なくとも1つのオープンされた移動方向が前記複数の移動方向の中に含まれている場合、ノードデータ内に前記移動ロボットの現在位置に対応する新しいノードを生成し、前記生成されたノードをノードグループに追加するステップと、
    前記少なくとも一つのオープンされた移動方向が前記複数の移動方向に含まれている場合、前記移動ロボットの本体が走行する走行方向として前記少なくとも一つのオープンされた移動方向の1つに走行し、
    前記オープンされた移動方向が前記複数の移動方向に含まれない場合、前記ノードグループに対応する領域を走行するステップと、
    前記ノードグループに対応する領域を走行中に掃除を行うステップと、
    前記ノードグループに対応する領域での走行が完了する場合、前記ノードグループを初期化するステップと、
    前記ノードデータに基づいて、アップデートされる必要のある少なくとも1つのノードが前記少なくとも1つのノード中に含まれているか否かを決定するステップと、
    前記アップデートされる必要のある少なくとも1つのノードが前記少なくとも1つのノード中に含まれている場合、アップデートされる必要のある前記少なくとも一つのノードの1つに移動し、前記アップデートされる必要のあるノードの移動方向の少なくとも一つに対してデータ値を変更するステップと、
    前記アップデートされる必要のある少なくとも1つのノードが前記少なくとも1つのノード中に含まれていない場合、前記ノードデータに基づいて前記少なくとも1つのノードを含むマップを生成するステップを含み、
    前記オープンされた移動方向は、前記移動ロボットの走行が可能で、前記移動ロボットがいまだ走行していない移動方向であり、
    前記ノードデータは、前記少なくとも一つのノードのそれぞれに関して、前記複数の移動方向のそれぞれに対して、座標(coordinate)とデータ値を含み、
    前記データ値は、前記オープンされた移動方向を示す第1データ値と、前記移動ロボットが前記ノードから走行できないことを示す第2データ値と、前記少なくとも一つのノードの中の他のノードを示す第3データ値の中の一つに設定され、
    前記少なくともつのノードのそれぞれのアップデートされる必要のあるデータ値は、前記第1データ値に設定される、方法。
  10. 前記少なくとも1つのオープンされた移動方向が複数の移動方向の中に含まれているか否かを決定するステップは、
    前記移動ロボットが前記複数の移動方向のそれぞれに対して移動できるか否かを決定するステップと、
    前記移動ロボットが現在位置から前記複数の移動方向に沿って既に走行しているか否かを決定するステップと、
    前記複数の移動方向のうち前記移動ロボットが走行可能であり前記移動ロボットがこれに沿ってまだ走行していない移動方向の少なくとも1つを前記オープンされた移動方向と決定するステップを含む、請求項9に記載の方法。
  11. 新しいノードを生成するステップは、
    前記走行方向と決定された移動方向が前記少なくとも1つのオープンされた移動方向のいずれか1つに該当するか否かを決定するステップと、
    前記走行方向と決定された移動方向が前記少なくとも1つのオープンされた移動方向のいずれか1つに該当しないときは、新しいノードを生成するステップを含む、請求項9に記載の方法。
  12. 新しいノードを生成するステップは、
    前記複数の移動方向のうち走行方向と決定された移動方向のみが前記少なくとも1つのオープンされた移動方向のいずれか1つに該当するか否かを決定するステップと、
    走行方向と決定された移動方向のみが前記少なくとも1つのオープンされた移動方向に該当するとき、新しいノードを生成せず、前記走行方向に移動するステップと、
    走行方向と決定された前記移動方向を含む2つ又はそれ以上の移動方向が前記少なくとも1つのオープンされた移動方向に該当するとき、新しいノードを生成するステップをさらに含む、請求項11に記載の方法。
  13. 前記新しいノードを生成するステップは、前記ノードデータ内に含まれた前記少なくとも1つのノードのそれぞれの複数の移動方向に関するデータ値をアップデートするステップをさらに含む、請求項12に記載の方法。
  14. 前記アップデートされる必要のある少なくとも1つのノードの1つを決定するステップは、前記複数の移動方向のそれぞれに関するデータ値の少なくとも1つに対して、前記オープンされた移動方向を示す第1データ値としてのノード集合をアップデートされる必要のあるノードと決定するステップを含む、請求項13に記載の方法。
  15. アップデートされる必要のある少なくとも一つのノードのいずれか1つに移動するステップは、
    前記ノードデータに基づいてアップデートされる必要のある少なくとも一つのノードのうち前記移動ロボットの現在位置から最短距離に位置するノードを決定するステップと、
    前記移動ロボットの現在位置から最短距離に位置するノードに移動するように前記移動ロボットを制御するステップを含む、請求項14に記載の方法。
  16. 前記移動ロボットの外部にある領域のイメージから特徴を抽出するステップと、
    前記抽出された特徴をマップにマッピングするステップと、
    前記マップにマッピングされた特徴に基づいて前記移動ロボットの位置を決定するステップをさらに含む、請求項9に記載の方法。
JP2022500976A 2019-07-11 2020-07-10 移動ロボット及びその制御方法 Active JP7432701B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020190083686A KR102361130B1 (ko) 2019-07-11 2019-07-11 이동 로봇 및 그 제어방법
KR10-2019-0083686 2019-07-11
PCT/KR2020/009090 WO2021006693A2 (en) 2019-07-11 2020-07-10 Moving robot and control method thereof

Publications (2)

Publication Number Publication Date
JP2022540594A JP2022540594A (ja) 2022-09-16
JP7432701B2 true JP7432701B2 (ja) 2024-02-16

Family

ID=74103175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022500976A Active JP7432701B2 (ja) 2019-07-11 2020-07-10 移動ロボット及びその制御方法

Country Status (5)

Country Link
US (1) US11774982B2 (ja)
EP (1) EP3996881A4 (ja)
JP (1) JP7432701B2 (ja)
KR (1) KR102361130B1 (ja)
WO (1) WO2021006693A2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294338A1 (en) 2005-12-09 2008-11-27 Nakju Doh Method of Mapping and Navigating Mobile Robot by Artificial Landmark and Local Coordinate
JP2010092147A (ja) 2008-10-06 2010-04-22 Murata Machinery Ltd 自律移動装置

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3528200B2 (ja) 1993-05-24 2004-05-17 松下電器産業株式会社 自走式掃除機
DE4408328C2 (de) 1994-03-11 2002-09-26 Siemens Ag Verfahren zum Aufbau einer zellular strukturierten Umgebungskarte von einer selbstbeweglichen mobilen Einheit, welche sich mit Hilfe von auf Wellenreflexion basierenden Sensoren orientiert
DE4408329C2 (de) 1994-03-11 1996-04-18 Siemens Ag Verfahren zum Aufbau einer zellular strukturierten Umgebungskarte von einer selbstbeweglichen mobilen Einheit, welche sich mit Hilfe von auf Wellenreflexion basierenden Sensoren orientiert
EP0766846B1 (de) 1994-06-22 1998-03-04 Siemens Aktiengesellschaft Verfahren zur orientierung, fahrwegplanung und steuerung einer autonomen mobilen einheit
KR20020010257A (ko) 2000-07-28 2002-02-04 김인광 로봇 시스템에서의 자기위치 인식 장치 및 방법
US6667592B2 (en) * 2001-08-13 2003-12-23 Intellibot, L.L.C. Mapped robot system
US6728608B2 (en) 2002-08-23 2004-04-27 Applied Perception, Inc. System and method for the creation of a terrain density model
US7805220B2 (en) 2003-03-14 2010-09-28 Sharper Image Acquisition Llc Robot vacuum with internal mapping system
US20040244138A1 (en) 2003-03-14 2004-12-09 Taylor Charles E. Robot vacuum
US20050010331A1 (en) 2003-03-14 2005-01-13 Taylor Charles E. Robot vacuum with floor type modes
US20060020369A1 (en) 2004-03-11 2006-01-26 Taylor Charles E Robot vacuum cleaner
US20050273967A1 (en) 2004-03-11 2005-12-15 Taylor Charles E Robot vacuum with boundary cones
KR100611328B1 (ko) 2005-06-30 2006-08-11 고려대학교 산학협력단 세선화 기반 위상지도의 작성방법 및 그 장치, 이동로봇의탐사를 통한 세선화 기반 위상지도 작성방법 및 그 장치
US7555363B2 (en) 2005-09-02 2009-06-30 Neato Robotics, Inc. Multi-function robotic device
KR100715609B1 (ko) 2006-01-13 2007-05-07 학교법인 포항공과대학교 가정환경에서의 이동로봇의 위상학적 지도형성 및 자율주행방법
KR100791384B1 (ko) 2006-07-05 2008-01-07 삼성전자주식회사 특징점을 이용한 영역 구분 방법 및 장치와 이를 이용한이동 청소 로봇
KR101543490B1 (ko) 2008-04-24 2015-08-10 아이로보트 코퍼레이션 로봇 가능화 모바일 제품을 위한 위치 측정 시스템, 위치 결정 시스템 및 운전 시스템의 적용
KR101503903B1 (ko) 2008-09-16 2015-03-19 삼성전자 주식회사 이동 로봇의 지도 구성 장치 및 방법
KR101037379B1 (ko) 2008-12-18 2011-05-27 한국과학기술연구원 거리센서로부터 얻은 주변환경의 거리정보를 바탕으로 한 이동로봇탐사시스템 및 이를 이용한 탐사방법
KR101553654B1 (ko) * 2009-02-13 2015-10-01 삼성전자 주식회사 이동 로봇 및 이동 로봇의 이동 방법
JP5212212B2 (ja) 2009-03-25 2013-06-19 株式会社Ihi 通路検出プログラム、通路検出装置及び方法
US8428776B2 (en) * 2009-06-18 2013-04-23 Michael Todd Letsky Method for establishing a desired area of confinement for an autonomous robot and autonomous robot implementing a control system for executing the same
KR20110000848A (ko) 2009-06-29 2011-01-06 (주)실리콘화일 3차원 거리정보 및 영상 획득 장치
US8948913B2 (en) 2009-10-26 2015-02-03 Electronics And Telecommunications Research Institute Method and apparatus for navigating robot
RU2012122469A (ru) 2009-11-06 2013-12-20 Эволюшн Роботикс, Инк. Способы и системы для полного охвата поверхности автономным роботом
JP5803054B2 (ja) 2009-12-02 2015-11-04 村田機械株式会社 自律移動装置
DE102010017689A1 (de) 2010-07-01 2012-01-05 Vorwerk & Co. Interholding Gmbh Selbsttätig verfahrbares Gerät sowie Verfahren zur Orientierung eines solchen Gerätes
KR101750340B1 (ko) 2010-11-03 2017-06-26 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR101761313B1 (ko) 2010-12-06 2017-07-25 삼성전자주식회사 로봇 및 로봇의 경로생성방법
KR101242252B1 (ko) * 2011-02-10 2013-03-11 고려대학교 산학협력단 시맨틱 격자 지도 생성 방법 및 시맨틱 격자 지도를 활용한 시맨틱 격자 지도 기반 탐사 방법
FR2977023B1 (fr) 2011-06-24 2014-02-21 Univ Angers Generation de donnees de carte
US8798840B2 (en) 2011-09-30 2014-08-05 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
US20140031980A1 (en) 2011-11-11 2014-01-30 Jens-Steffen Gutmann Systems and methods for extending slam to multiple regions
KR101179075B1 (ko) * 2012-02-28 2012-09-03 국방과학연구소 자율로봇의 경로계획방법 및 이를 구비한 경로계획장치
KR20130112507A (ko) * 2012-04-04 2013-10-14 인하대학교 산학협력단 S* 알고리즘을 이용한 이동로봇의 안전경로계획 수립방법
WO2014004929A2 (en) 2012-06-27 2014-01-03 Pentair Water Pool And Spa, Inc. Pool cleaner with laser range finder system and method
KR20140009737A (ko) 2012-07-12 2014-01-23 한국과학기술원 하이브리드 맵 기반 로봇의 위치인식방법
JP5886502B2 (ja) 2012-12-20 2016-03-16 トヨタ自動車株式会社 移動体制御装置、移動体制御方法及び制御プログラム
KR101427186B1 (ko) 2013-06-12 2014-08-07 건국대학교 산학협력단 미지환경에서 지능형 로봇의 이동경로 생성을 위한 영역탐색 및 매핑 장치
JP5897517B2 (ja) 2013-08-21 2016-03-30 シャープ株式会社 自律移動体
WO2015090398A1 (en) * 2013-12-19 2015-06-25 Aktiebolaget Electrolux Robotic vacuum cleaner with side brush moving in spiral pattern
US9436926B2 (en) 2014-02-25 2016-09-06 Savioke, Inc. Entryway based authentication system
US10068373B2 (en) 2014-07-01 2018-09-04 Samsung Electronics Co., Ltd. Electronic device for providing map information
KR102431994B1 (ko) 2014-09-24 2022-08-16 삼성전자주식회사 청소 로봇 및 청소 로봇의 제어 방법
US10488865B2 (en) 2014-12-16 2019-11-26 Al Incorporated Methods and systems for robotic surface coverage
US9704043B2 (en) 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information
US11400595B2 (en) * 2015-01-06 2022-08-02 Nexus Robotics Llc Robotic platform with area cleaning mode
US9630319B2 (en) * 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
US20170028556A1 (en) 2015-07-28 2017-02-02 Harris Corporation Path-optimized manipulator reversing controller
JP6705636B2 (ja) 2015-10-14 2020-06-03 東芝ライフスタイル株式会社 電気掃除機
JP6649743B2 (ja) 2015-10-28 2020-02-19 シャープ株式会社 一致性評価装置および一致性評価方法
KR20170053351A (ko) 2015-11-06 2017-05-16 삼성전자주식회사 청소 로봇 및 그 제어 방법
DE102015119501A1 (de) 2015-11-11 2017-05-11 RobArt GmbH Unterteilung von Karten für die Roboternavigation
DE102015119865B4 (de) 2015-11-17 2023-12-21 RobArt GmbH Robotergestützte Bearbeitung einer Oberfläche mittels eines Roboters
CN205671994U (zh) 2015-12-16 2016-11-09 小米科技有限责任公司 自动清洁设备
DE102016102644A1 (de) 2016-02-15 2017-08-17 RobArt GmbH Verfahren zur Steuerung eines autonomen mobilen Roboters
CA3020184A1 (en) 2016-04-08 2017-10-12 A&K Robotics Inc. Autoscrubber convertible between manual and autonomous operation
US10980387B2 (en) 2016-08-31 2021-04-20 Murata Machinery, Ltd. Autonomously traveling floor washer
KR20180074537A (ko) 2016-12-30 2018-07-03 엘지전자 주식회사 청소 로봇
US10653282B2 (en) 2016-12-23 2020-05-19 Lg Electronics Inc. Cleaning robot
KR20180082264A (ko) 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법
CN108318046B (zh) 2017-01-18 2020-12-15 华为技术有限公司 路径规划方法和装置
KR102012550B1 (ko) 2017-02-20 2019-08-20 엘지전자 주식회사 돌발 장애물을 식별하는 방법 및 이를 구현하는 로봇
US20180290748A1 (en) 2017-04-03 2018-10-11 Versatol, Llc Autonomous in-tunnel intelligence, surveillance, and reconnaissance drone
US10222215B2 (en) 2017-04-21 2019-03-05 X Development Llc Methods and systems for map generation and alignment
US9939814B1 (en) 2017-05-01 2018-04-10 Savioke, Inc. Computer system and method for automated mapping by robots
JP7087290B2 (ja) 2017-07-05 2022-06-21 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
US10482619B2 (en) 2017-07-27 2019-11-19 AI Incorporated Method and apparatus for combining data to construct a floor plan
US10583561B2 (en) * 2017-08-31 2020-03-10 Neato Robotics, Inc. Robotic virtual boundaries
US11579298B2 (en) 2017-09-20 2023-02-14 Yujin Robot Co., Ltd. Hybrid sensor and compact Lidar sensor
KR102219801B1 (ko) 2017-09-22 2021-02-23 엘지전자 주식회사 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
US20190113919A1 (en) 2017-10-18 2019-04-18 Luminar Technologies, Inc. Controlling an autonomous vehicle using smart control architecture selection
CN107806881A (zh) 2017-10-25 2018-03-16 上海思岚科技有限公司 移动机器人构建结构地图的方法与设备
EP3737970A2 (en) 2017-11-28 2020-11-18 Innoviz Technologies Ltd. Lidar systems and methods
KR20190103511A (ko) 2018-02-12 2019-09-05 엘지전자 주식회사 이동 로봇 및 그 제어방법
US11237004B2 (en) 2018-03-27 2022-02-01 Uatc, Llc Log trajectory estimation for globally consistent maps
KR102561263B1 (ko) 2018-04-04 2023-07-28 삼성전자주식회사 지도 데이터를 생성하는 전자 장치 및 그 동작 방법
KR102466940B1 (ko) 2018-04-05 2022-11-14 한국전자통신연구원 로봇 주행용 위상 지도 생성 장치 및 방법
DE102019202702B3 (de) 2019-02-28 2020-08-13 Kuka Deutschland Gmbh Abfahren einer vorgegebenen Anordnung von Wegen mit einem mobilen Roboter
KR102296908B1 (ko) 2019-03-19 2021-09-02 한국전자통신연구원 특징점 지도 관리방법 및 장치
US11314254B2 (en) 2019-03-26 2022-04-26 Intel Corporation Methods and apparatus for dynamically routing robots based on exploratory on-board mapping

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294338A1 (en) 2005-12-09 2008-11-27 Nakju Doh Method of Mapping and Navigating Mobile Robot by Artificial Landmark and Local Coordinate
JP2010092147A (ja) 2008-10-06 2010-04-22 Murata Machinery Ltd 自律移動装置

Also Published As

Publication number Publication date
KR102361130B1 (ko) 2022-02-09
WO2021006693A2 (en) 2021-01-14
US20210012111A1 (en) 2021-01-14
US11774982B2 (en) 2023-10-03
KR20210007361A (ko) 2021-01-20
WO2021006693A3 (en) 2021-02-18
EP3996881A2 (en) 2022-05-18
JP2022540594A (ja) 2022-09-16
EP3996881A4 (en) 2023-08-23

Similar Documents

Publication Publication Date Title
JP7356567B2 (ja) 移動ロボット及びその制御方法
KR102275300B1 (ko) 이동 로봇 및 그 제어방법
US10717193B2 (en) Artificial intelligence moving robot and control method thereof
US10852729B2 (en) Moving robot and control method thereof
AU2017316090B2 (en) Mobile robot and control method therefor
US11700989B2 (en) Mobile robot using artificial intelligence and controlling method thereof
US20220257074A1 (en) Mobile robot using artificial intelligence and controlling method thereof
KR20180023302A (ko) 이동 로봇 및 그 제어방법
KR20180023301A (ko) 이동 로봇 및 그 제어방법
JP7329125B2 (ja) 移動ロボット及びその制御方法
KR20180023303A (ko) 이동 로봇 및 그 제어방법
US11055341B2 (en) Controlling method for artificial intelligence moving robot
US20220175208A1 (en) Robot cleaner using artificial intelligence and control method thereof
JP7432701B2 (ja) 移動ロボット及びその制御方法
KR102500525B1 (ko) 이동 로봇
EP4374763A1 (en) Robotic cleaner and method for controlling robotic cleaner
KR20230137080A (ko) 이동 로봇
KR20230161782A (ko) 이동 로봇 및 이동 로봇의 제어방법
KR20230143800A (ko) 이동 로봇 및 그의 제어 방법
KR20230134800A (ko) 로봇 청소기 및 로봇 청소기의 제어방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231211

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240205

R150 Certificate of patent or registration of utility model

Ref document number: 7432701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150