WO2024034855A1 - Robot performing driving by using mask map and driving method thereof - Google Patents

Robot performing driving by using mask map and driving method thereof Download PDF

Info

Publication number
WO2024034855A1
WO2024034855A1 PCT/KR2023/009258 KR2023009258W WO2024034855A1 WO 2024034855 A1 WO2024034855 A1 WO 2024034855A1 KR 2023009258 W KR2023009258 W KR 2023009258W WO 2024034855 A1 WO2024034855 A1 WO 2024034855A1
Authority
WO
WIPO (PCT)
Prior art keywords
area
robot
viewpoint
time point
identified
Prior art date
Application number
PCT/KR2023/009258
Other languages
French (fr)
Korean (ko)
Inventor
고영일
홍현기
유인섭
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2024034855A1 publication Critical patent/WO2024034855A1/en

Links

Images

Classifications

    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • B25J9/1666Avoiding collision or forbidden zones

Definitions

  • This disclosure relates to a robot that travels using a mask map and its driving method.
  • Robots are currently being used in many fields, and can be used not only in the aerospace field but also in industrial vehicles, autonomous driving of general vehicles, and robot vacuum cleaners in ordinary homes.
  • the robot can sense the surrounding environment in real time using sensors, collect information, and drive autonomously.
  • a robot includes a sensor, a memory storing a mask map in which an area around the robot is divided into a first area detectable by the sensor and a second area not detected by the sensor, and a processor. do.
  • the processor identifies an object in the first area through the sensor at a first time point, and identifies the object in the first area through the sensor at a second time point.
  • the processor determines that the object identified at the first time point is based on the location of the object identified at the first time point and the movement of the robot at the second time point based on the first time point. Identify whether it is located in the second area.
  • the processor stores the location information of the object identified in the second area in the memory, and stores the location information of the object identified in the second area in the memory at the second time point.
  • the driving of the robot is controlled based on the positions of objects identified in the first and second areas.
  • a method of driving a robot including a sensor according to an embodiment of the present disclosure and a memory storing a mask map in which an area around the robot is divided into a first area detectable by the sensor and a second area not detected by the sensor. Identifying an object in the first area through the sensor at a first time point, identifying an object in the first area through the sensor at a second time point, the location of the object identified at the first time point, and Based on the movement of the robot at the second viewpoint relative to the first viewpoint, identifying whether the object identified at the first viewpoint is located in the second area at the second viewpoint, and the first If the object identified at the viewpoint is identified as being located in the second area at the second viewpoint, the location information of the object identified in the second area is stored in the memory, and the first and second objects are stored at the second viewpoint.
  • a driving method comprising controlling the driving of the robot based on the position of an object identified in area 2.
  • a processor includes a memory storing a mask map in which the area around the sensor and the robot is divided into a first area that can be detected by the sensor and a second area that is not detected by the sensor.
  • a non-transitory computer-readable medium storing computer instructions that cause the robot to perform an action when executed by the robot, wherein the action includes identifying an object in the first area through the sensor at a first time point, and a second time point.
  • FIG. 1 is a diagram for explaining a robot according to an embodiment of the present disclosure
  • FIG. 2 is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure
  • FIG. 3 is a diagram for explaining a mask map according to an embodiment of the present disclosure.
  • 4 to 10 are diagrams for explaining a method of identifying an object located in an invisible area according to an embodiment of the present disclosure
  • 11 and 12 are diagrams for explaining a method of updating a mask map according to an embodiment of the present disclosure.
  • FIG. 13 is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure.
  • Figure 14 is a flowchart for explaining a robot driving method according to an embodiment of the present disclosure.
  • expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., component such as numerical value, function, operation, or part). , and does not rule out the existence of additional features.
  • expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • “A or B,” “at least one of A and B,” or “at least one of A or B” includes (1) at least one A, (2) at least one B, or (3) it may refer to all cases including both at least one A and at least one B.
  • a component e.g., a first component
  • another component e.g., a second component
  • any component may be directly connected to the other component or may be connected through another component (e.g., a third component).
  • a component e.g., a first component
  • another component e.g., a second component
  • no other component e.g., a third component
  • the expression “configured to” used in the present disclosure may mean, for example, “suitable for,” “having the capacity to,” depending on the situation. ,” can be used interchangeably with “designed to,” “adapted to,” “made to,” or “capable of.”
  • the term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware.
  • the expression “a device configured to” may mean that the device is “capable of” working with other devices or components.
  • the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device.
  • a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module and implemented with at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.
  • FIG. 1 is a diagram for explaining a robot according to an embodiment of the present disclosure.
  • the robot 100 may be implemented as various types of robots.
  • the robot 100 may be implemented as a robot vacuum cleaner. That is, the robot 100 can move and suck foreign substances such as dirt and dust present on the floor.
  • the robot 100 may be implemented as a retail robot or guide robot. That is, the robot 100 may perform functions such as guiding the user on a route within the store, explaining products within the store to the user, or carrying the user's items and moving along with the user within the store.
  • the robot 100 can travel in the space where the robot 100 is located.
  • the space may include a variety of spaces, including indoor spaces such as homes, offices, hotels, factories, stores, airports, etc., as well as outdoor spaces such as roads and construction sites.
  • driving the robot may mean identifying the location of the robot on the map, establishing a travel plan, and moving the space where the robot is located.
  • the robot can detect objects 11 and 12 (e.g., obstacles such as walls, home appliances, furniture, people, cars, etc.) around the robot.
  • objects 11 and 12 e.g., obstacles such as walls, home appliances, furniture, people, cars, etc.
  • the robot can detect the object using a sensor.
  • the LiDAR sensor may be attached to a specific space within the robot. At this time, there may be a pillar structure to form a space where the LiDAR sensor is attached. In this case, even if a 360° direction is detected through the LiDAR sensor, the visible range of the LiDAR sensor may be obscured by the pillar structure, which may result in an area that is not detected.
  • the robot 100 uses the mask map 20 to identify whether an object is located in an area not detected by the sensor and performs driving using the identification result. You can.
  • the mask map 20 may be a map that divides the area around the robot 100 into an area that can be detected by the sensor and an area that is not detected by the sensor.
  • the mask map 10 may also be referred to as a nonvisibility mask map.
  • the robot 100 can detect objects around the robot 100 using a sensor. And, when the robot 100 moves, the robot 100 determines whether an object previously detected by the sensor is located in an area not detected by the sensor on the mask map 20 according to the movement of the robot 100. can be identified.
  • the robot 100 uses previous detection results to identify whether an object is located in an area that is not currently detected by the sensor, and uses the most recent information among the collected obstacle location information. In that it is updated to reflect in the invisible area, more stable and reliable driving can be performed.
  • Figure 2 is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 includes a sensor 110, a memory 120, and a processor 130.
  • the sensor 110 can obtain various information related to the robot 100 and its surrounding environment.
  • the senor 110 may include a light detection and ranging (LiDAR) sensor or a laser distance sensor (LDS).
  • LiDAR light detection and ranging
  • LDS laser distance sensor
  • the LiDAR sensor irradiates light, and when the irradiated light is reflected and received from an object around the robot 100, it can detect the distance to the object based on the time the light was received.
  • the processor 120 can identify the distance to surrounding objects through the LiDAR sensor.
  • the senor 110 may include a camera. Cameras may include time of flight (TOF) cameras, stereo cameras, etc. The camera may acquire an image by photographing the surroundings of the robot 100.
  • the processor 120 can recognize an object in an image acquired through a camera and obtain information about the location, type, shape, size, etc. of the object existing around the robot 100.
  • the senor 110 may include a gyro sensor.
  • the gyro sensor can measure the rotational angular rate (roll-rate) about the x-axis, the rotational angular rate (pitch-rate) about the y-axis, and the rotational angular rate (yaw-rate) about the z-axis of the robot 100.
  • the processor 120 may obtain information about the posture of the robot 100, such as the rotation angle and direction of the robot 100, through the gyro sensor.
  • the senor 110 may include an encoder.
  • the encoder can measure the distance traveled by the robot 100 by detecting the number of rotations of the wheels installed on the robot 100.
  • the processor 120 may obtain information about the moving distance of the robot 100 through the encoder.
  • the memory 120 may store at least one instruction regarding the robot 100. Additionally, an O/S (Operating System) for driving the robot 100 may be stored in the memory 120. Additionally, the memory 120 may store various software programs or applications for operating the robot 100 according to various embodiments of the present disclosure. Additionally, the memory 120 may include volatile memory such as a frame buffer, semiconductor memory such as flash memory, or magnetic storage media such as a hard disk.
  • O/S Operating System
  • the memory 120 may include volatile memory such as a frame buffer, semiconductor memory such as flash memory, or magnetic storage media such as a hard disk.
  • the memory 120 may store various software modules for operating the robot 100 according to various embodiments of the present disclosure, and the processor 130 may execute various software modules stored in the memory 120.
  • the operation of the robot 100 can be controlled. That is, the memory 120 is accessed by the processor 130, and data read/write/modify/delete/update, etc. can be performed by the processor 140.
  • the term memory 120 refers to memory 120, ROM (not shown), RAM (not shown) in the processor 130, or a memory card (not shown) mounted on the robot 100 (for example, for example, it can be used to mean including micro SD card, memory stick).
  • the memory 120 may store a mask map.
  • the mask map may be a map in which the area around the robot 100 is divided into a first area that can be detected by the sensor 110 and a second area that is not detected by the sensor 110.
  • the first area may be referred to as a visible area
  • the second area may be referred to as an invisible area.
  • the sensor 110 may include a camera and a LiDAR sensor.
  • the mask map 20 may include an area having the shape of a circle with the center of the robot 100 as the origin.
  • the radius of the circle may be set to a distance that can be detected by the sensor 110 from the robot 100 or less.
  • the distance that can be sensed by the sensor 110 may mean the distance from an image captured by a camera to an object that can be sensed and the distance to an object that can be sensed by a LiDAR sensor.
  • the mask map 20 may include a plurality of cells divided based on a polar coordinate system with the center of the robot 100 as the origin.
  • the size of the cell can be determined based on the directed distance (radial, r) and the directed direction (azimuth, ⁇ ).
  • the first area 21 may include at least one cell in which an object located in the cell among the plurality of cells is detected by the sensor 110. That is, the first area 21 may include at least one cell in which the object can be detected by the sensor 110, if an object exists in the cell, based on the position of the robot 100. .
  • the second area 22 may include at least one cell among a plurality of cells in which an object located in the cell is not detected by the sensor 110 . That is, based on the position of the robot 100, the second area 22 may include at least one cell in which the object is not detected by the sensor 110, even if an object exists in the cell.
  • the light emitted from the LiDAR sensor may not be emitted to the outside of the robot 100 due to a pillar structure within the robot existing around the LiDAR sensor. In this case, the fan-shaped area may not be detected by the LiDAR sensor.
  • the camera's viewing angle or shooting direction it may exist in an area around the robot 100 that cannot be detected by the camera.
  • the front which is the direction the camera is facing, is a visible area and can form the first area 24, and the first area 24 can be formed.
  • the non-visible area may be determined as the second area 25.
  • the area detected by the sensor 110 and the area not detected around the robot 100 are confirmed in advance, a mask map 20 is generated based on this, and the generated mask map 20 is used. Can be stored in memory 120.
  • a plurality of cells based on polar coordinates can be created based on the directed distance and directed direction.
  • the plurality of cells may form a circular area with the center of the robot 100 as the origin.
  • the state of each of the plurality of cells can be initialized to nonvisible.
  • the state of the cell can be changed to visible, and in the case of a cell in which an object is not detected, the state of the cell can be maintained as invisible.
  • a mask map 20 can be generated by dividing a plurality of cells into a visible area and an invisible area. At this time, a cell in a visible state may correspond to the first area 21 in the mask map 20, and a cell in an invisible state may correspond to the second area 22 in the mask map 20.
  • the mask map 20 may be created based on the polar coordinate system.
  • the polar coordinate system has the characteristic that the closer it is to the origin, the smaller the cell size is, and the farther it is from the origin, the larger the cell size is. That is, if a polar coordinate system is used with the center of the robot 100 as the origin, the closer the cell is to the robot 100, the smaller the cell size is, and the farther away it is from the robot 100, the larger the cell size is. Therefore, if the mask map 20 is generated based on the polar coordinate system, the closer it is to the robot 100, the more precisely the invisible area where the sensor 110 cannot identify the object can be defined.
  • the mask map 20 may be generated based on an orthogonal coordinate system.
  • the processor 130 controls the overall operation of the robot 100.
  • the processor 130 is connected to the configuration of the robot 100 including the sensor 110 and the memory 120, and operates the robot 100 by executing at least one instruction stored in the memory 120. can be controlled overall.
  • the processor 130 may not only be implemented as one processor, but may also be implemented as a plurality of processors.
  • the term processor 130 may be used to include a central processing unit (CPU), graphics-processing unit (GPU), etc.
  • the processor 130 may identify an object in the first area 21 through the sensor 110 at a first time point. Additionally, the processor 130 may identify an object in the first area 21 through the sensor 110 at a second viewpoint.
  • the first area 21 corresponds to an area around the robot 100 that can be detected by the sensor 110. Accordingly, when an object exists around the robot 100, the processor 130 may detect the object in the first area 20 around the robot 100 using a camera, a lidar sensor, etc.
  • the second time point may be a time point after the first time point.
  • the processor 130 can detect an object by scanning the area around the robot 100 at regular time intervals through the sensor 110.
  • scanning may include performing photography through a camera or irradiating light through a LiDAR sensor to detect an object.
  • the second time point may be a time point at which the scan is performed following the first time point. That is, in terms of the time point at which the scan is performed, the second time point may be a consecutive time point following the first time point.
  • the second viewpoint is not continuous with the first viewpoint, but may be a viewpoint after the first viewpoint.
  • the second viewpoint may be a certain point in time away from the first viewpoint.
  • the processor 130 may identify the location of the object identified at the first viewpoint and the location of the object identified at the second viewpoint.
  • the location of the object identified at the first viewpoint and the location of the object identified at the second viewpoint may be expressed in polar coordinates.
  • the location of the object may be expressed as a directed distance (r) and a directed direction ( ⁇ ) in the polar coordinate system of the robot 100 where the center of the robot 100 is located at the origin.
  • the processor 130 determines that the object identified at the first viewpoint is based on the position of the object identified at the first viewpoint and the movement of the robot 100 at the second viewpoint based on the first viewpoint. It is possible to identify whether it is located in the second area 22. As an example, the processor 130 may identify pose information at a first viewpoint and pose information at a second viewpoint, and identify the movement of the robot 100 based on the identified pose information.
  • the movement of the robot 100 includes the distance the robot 100 moved based on the first viewpoint, the direction in which the robot 100 moved based on the first viewpoint, and the movement of the robot 100 based on the first viewpoint. It may include at least one of these rotation directions. That is, the movement of the robot 100 at the second viewpoint based on the first viewpoint takes into account the position and posture of the robot 100 at the first viewpoint, etc., so that the robot 100 at the second viewpoint is It may include how far the robot 100 is located in which direction from its position and how much it has rotated based on the posture of the robot 100 at the first viewpoint.
  • the processor 130 may identify the position of the robot 100 at the first viewpoint and the position of the robot 100 at the second viewpoint.
  • the processor 130 uses data sensed through the sensor 110 and a simultaneous localization and mapping (SLAM) algorithm to identify the location of the robot 100 on a map of the space where the robot 100 is located. can do.
  • the position of the robot 100 can be expressed in polar coordinates.
  • the location of the robot 100 may be expressed in terms of directed distance and directed direction on the polar coordinate system of the map, where a specific point of the map is located at the origin.
  • the polar coordinate system has been described as an example, it is not limited to this and, of course, other coordinate systems such as a Cartesian coordinate system can be used.
  • the processor 130 may identify the movement of the robot 100 at the second viewpoint based on the first viewpoint.
  • the processor 130 controls the movement of the robot 100 at the second viewpoint based on the first viewpoint based on the distance and direction in which the robot 100 moved from the first viewpoint to the second viewpoint. can also be identified.
  • the processor 130 uses an encoder to identify the distance that the robot 100 has moved from the first point in time to the second point in time, and uses a gyro sensor to determine the distance that the robot 100 has moved from the first point in time to the second point in time.
  • Direction can be identified.
  • the processor 130 determines that the object identified at the first viewpoint is based on the position of the object identified at the first viewpoint and the movement of the robot 100 at the second viewpoint based on the first viewpoint. It is possible to identify whether it is located in the second area 22.
  • the processor 130 identifies the coordinate value of an object located in the first area 21 at a first viewpoint, and converts the identified coordinate value based on the movement of the robot 100 to correspond to the second viewpoint. can do.
  • converting the coordinate value to correspond to the second viewpoint means converting the coordinate value of the object identified in the first area 21 at the first viewpoint to the robot 100 on a coordinate system with the center of the robot 100 as the origin. This may mean conversion based on the distance and direction traveled from the first time point to the second time point.
  • the coordinate values of the object located in the first area 21 at the first viewpoint are (r d , ⁇ d ), and the movement distance and direction of movement of the robot 100 from the first viewpoint to the second viewpoint are Assume the case is (r e , ⁇ e ).
  • the processor 130 may detect an object in the first area 21 around the robot 100 at t-1 seconds and identify the coordinate value of the detected object.
  • the coordinate value of the object is the coordinate value in the polar coordinate system centered on the robot.
  • the processor 130 calculates the coordinate values of the object ((r 1 , ⁇ 1 ) (411), (r 2 , ⁇ 2 ) (412), (r 3 , ⁇ 3 ) (413), (r 4 , ⁇ 4 ) (414)) can be displayed on the mask map 20.
  • the processor 130 calculates the coordinate values of the object ((r 1 , ⁇ 1 ) (411), (r 2 , ⁇ 2 ) (412), (r 3 , ⁇ 3 ) (413), (r 4 , ⁇ 4 ) (414)) can be displayed on the mask map 20.
  • four points are detected in the embodiment, this is only an example for convenience of explanation, and of course, fewer or more points than four points may be detected.
  • the robot 100 may move and be located in a different position from the first viewpoint at the second viewpoint.
  • the processor 130 may detect an object in the first area 21 around the robot 100 at t seconds and identify the coordinate value of the detected object. At this time, the coordinate value of the object is the coordinate value in the polar coordinate system centered on the robot. And, as shown in FIG. 5, the processor 130 may display the coordinate values of the object ((r 5 , ⁇ 5 ) 415, (r 6 , ⁇ 6 ) 416) on the mask map 20. .
  • an object that was detected at t-1 seconds may not be detected at t seconds. This is because, as the robot 100 moves, the object is located in the second area 22 where it is not detected by the sensor 110 at t seconds.
  • the processor 130 may convert the coordinate value of the object identified at the first viewpoint based on the movement of the robot 100 at the second viewpoint based on the first viewpoint.
  • the movement of the robot 100 at the second viewpoint based on the first viewpoint may be expressed as a directed distance and directed direction in polar coordinates.
  • the processor 130 can convert the coordinate value of the object identified at the first viewpoint by applying the directed distance and directed direction corresponding to the movement of the robot 100 to the coordinate value of the object identified at the first viewpoint. there is.
  • the processor 130 converts ( ⁇ r 1 , ⁇ 1 ) into the coordinate values ((r 1 , ⁇ 1 ) of the object identified at t-1 seconds (411), (r 2 , ⁇ 2 )(412), (r 3 , ⁇ 3 )(413), (r 4 , ⁇ 4 )(414)), the coordinate value of the object can be converted.
  • the processor 130 may display the converted coordinate values on the mask map 20. Additionally, the processor 130 may identify whether a coordinate value located in the second area 22 of the mask map 20 exists among the converted coordinate values.
  • (r 1 ', ⁇ 1 ') 421 and (r 2 ', ⁇ 2 ') 422 are the first part of the mask map 20 at t seconds. It is located in area 2 (22).
  • the processor 130 may identify (r 1 ', ⁇ 1 ') and (r 2 ', ⁇ 2 ') as being located in the second area 20 at t seconds.
  • the processor 130 may identify the object identified at the first viewpoint as being located in the second area 22 at the second viewpoint.
  • the converted position corresponds to the position of the object at the second viewpoint. Accordingly, when the converted coordinate value is located in the second area 22, the processor 130 identifies the object identified at the first viewpoint as being located in the second area 22 at the second viewpoint.
  • the processor 130 may store the location information of the object identified in the second area in the memory 120.
  • the location information of the object may mean information about the location of the object when the object identified at the first viewpoint is identified as being located in the second area at the second viewpoint. That is, the location information of the object may be a coordinate value converted from the coordinate value of the object identified at the first viewpoint based on the movement of the robot 100.
  • processor 130 in that (r 1 ', ⁇ 1 ') 421 and (r 2 ', ⁇ 2 ') 422 are located in the second region 22 at second t. (r 1 ', ⁇ 1 ') 421 and (r 2 ', ⁇ 2 ') 422 can be stored in the memory 120.
  • the processor 130 may control the driving of the robot 100 based on the positions of objects identified in the first and second areas 21 and 22 at the second viewpoint.
  • the second area is an area where no object is detected by the sensor 110, based on the current location of the robot 100. That is, even if the object exists in the second area, the object is not detected by the sensor 110. Accordingly, the processor 130 can identify whether the object is located in the second area at the second viewpoint based on the location of the object identified at the first viewpoint, and identify the location of the object in the second area at the second viewpoint. there is. Meanwhile, the first area is an area where objects around the robot 100 can be detected by the sensor 110, based on the current location of the robot 100. Accordingly, the processor 130 may identify the location of the object in the first area through the sensor 110 at the second viewpoint.
  • the processor 130 may control the robot 100 to run while avoiding objects located in the first and second areas based on the positions of the objects identified in the first and second areas.
  • the coordinate values of the object identified in the second region are (r 1 ', ⁇ 1 ') (421), (r 2 ', ⁇ 2 ') (422) and the coordinate values of the object identified in the first area are (r 5 , ⁇ 5 ) (415) and (r 6 , ⁇ 6 ) (416).
  • the processor 130 integrates these coordinate values, identifies the location of the object existing in the first and second areas around the robot 100, and uses the location of the identified object to avoid the object and drive.
  • the robot 100 can be controlled to do so.
  • the processor 130 determines that the object identified at the first time point is not located in the second area at the second time point, the processor 130 moves the robot 100 based on the location of the object identified in the first area at the second time point. You can control the driving of .
  • the processor 130 identifies the location of the object in the first area through the sensor 110 at the second viewpoint, and controls the robot 100 to run while avoiding the object using the location of the identified object. You can.
  • the processor 130 may identify an object in the first area through the sensor 110 at a third viewpoint.
  • the first area 21 corresponds to an area around the robot 100 that can be detected by the sensor 110. Accordingly, when an object exists around the robot 100, the processor 130 may detect the object in the first area 20 around the robot 100 using a camera, a lidar sensor, etc.
  • the third point in time may be a point in time after the second point in time.
  • the processor 130 can detect an object by scanning the area around the robot 100 at regular time intervals through the sensor 110.
  • scanning may include performing photography through a camera or irradiating light through a LiDAR sensor to detect an object.
  • the third time point may be the time point at which the scan is performed following the second time point. That is, in terms of the time point at which the scan is performed, the third time point may be a consecutive time point following the second time point.
  • the third viewpoint is not continuous with the second viewpoint, but may be a viewpoint after the second viewpoint.
  • the third viewpoint may be a certain point in time away from the second viewpoint.
  • the processor 130 may identify the location of the object identified at the second viewpoint and the location of the object identified at the third viewpoint.
  • the location of the object identified at the second viewpoint and the location of the object identified at the third viewpoint may be expressed in polar coordinates.
  • the location of the object may be expressed as a directed distance and a directed direction on the polar coordinate system of the robot 100 where the center of the robot 100 is located at the origin.
  • the processor 130 determines that the object identified at the second viewpoint is based on the position of the object identified at the second viewpoint and the movement of the robot 100 at the third viewpoint based on the second viewpoint. It is possible to identify whether it is located in the second area 22.
  • the movement of the robot 100 includes the distance the robot 100 moved based on the second viewpoint, the direction in which the robot 100 moved based on the second viewpoint, and the movement of the robot 100 based on the second viewpoint. It may include at least one of these rotation directions.
  • the movement of the robot 100 at the third viewpoint based on the second viewpoint takes into account the position and posture of the robot 100 at the second viewpoint, etc., so that the robot 100 at the third viewpoint is It may include how far the robot 100 is located in which direction from its position and how much it has rotated based on the posture of the robot 100 at the second viewpoint.
  • the processor 130 may identify the position of the robot 100 at the second viewpoint and the position of the robot 100 at the third viewpoint.
  • the processor 130 uses information acquired through the sensor 110 and a simultaneous localization and mapping (SLAM) algorithm to identify the location of the robot 100 on a map of the space where the robot 100 is located. can do.
  • SLAM simultaneous localization and mapping
  • the position of the robot 100 can be expressed in polar coordinates.
  • the location of the robot 100 may be expressed in terms of directed distance and directed direction on the polar coordinate system of the map, where a specific point of the map is located at the origin.
  • the processor 130 may identify the movement of the robot 100 at the third viewpoint based on the second viewpoint.
  • the processor 130 controls the movement of the robot 100 at the third viewpoint based on the second viewpoint, based on the distance and direction in which the robot 100 moved from the second viewpoint to the third viewpoint. can also be identified.
  • the processor 130 uses an encoder to identify the distance the robot 100 has moved from the second time point to the third time point, and uses the gyro sensor to determine the distance the robot 100 has moved from the second time point to the third time point.
  • Direction can be identified.
  • the processor 130 determines that the object identified at the second viewpoint is based on the position of the object identified at the second viewpoint and the movement of the robot 100 at the third viewpoint based on the second viewpoint. It is possible to identify whether it is located in the second area 22.
  • the processor 130 identifies the coordinate value of an object located in the first area 21 at the second viewpoint, and converts the identified coordinate value based on the movement of the robot 100 to correspond to the third viewpoint. can do.
  • converting the coordinate value to correspond to the third viewpoint means converting the coordinate value of the object identified in the first area 21 at the second viewpoint to the robot 100 on a coordinate system with the center of the robot 100 as the origin. This may mean moving based on the distance and direction moved from the second viewpoint to the third viewpoint.
  • the coordinate values of the object located in the first area 21 at the second viewpoint are (r h , ⁇ h ), and the movement distance and direction of movement of the robot 100 from the second viewpoint to the third viewpoint are Assume the case is (r i , ⁇ i ).
  • the processor 130 uses the coordinate values (r d , ⁇ d ) of the object identified in the first area 21 at the second time point as (r h ') using the movement distance and direction of movement of the robot 100. , ⁇ h ').
  • the robot 100 may move and be located in a different position from the second viewpoint at the third viewpoint.
  • the processor 130 may detect an object in the first area 21 around the robot 100 at t+1 seconds and identify the coordinate value of the detected object.
  • the coordinate value of the object is a coordinate value in the polar coordinate system.
  • the processor 130 can display the coordinate values of the object ((r 7 , ⁇ 7 ) (511) and (r 8 , ⁇ 8 ) (512)) on the mask map 20.
  • it is shown that two points are detected but this is only an example for convenience of explanation, and of course, fewer or more points than two can be detected.
  • an object that was not detected at t seconds may be detected at t+1 seconds. Additionally, an object that was detected at t seconds may not be detected at t+1 seconds. As the robot 100 moves, it is located in the first area 21 where the object is detected by the sensor 110 at t+1 seconds, and the second area 21 where the object is not detected by the sensor 110 ( This is because it was located at 22).
  • the processor 130 may convert the coordinate value of the object identified at the second viewpoint based on the movement of the robot 100 at the third viewpoint based on the second viewpoint.
  • the movement of the robot 100 at the third viewpoint based on the second viewpoint may be expressed as a directed distance and directed direction in polar coordinates.
  • the processor 130 can convert the coordinate value of the object identified at the second viewpoint by applying the directed distance and directed direction corresponding to the movement of the robot 100 to the coordinate value of the object identified at the second viewpoint. there is.
  • the object identified at the second viewpoint may include the object identified in the first area through the sensor 110. Additionally, when an object identified in the second area exists, the object identified at the second time point may include the object identified in the second area.
  • the processor 130 calculates the coordinate values ((r 5 , ⁇ 5 ) (415), (r 6 , ⁇ 6 ) (416)) can be applied to ( ⁇ r 2 , ⁇ 2 ) to transform the coordinate value of the object identified in the first area 21 at time t.
  • the processor 130 calculates the coordinate values ((r 1 ', ⁇ 1 ') (421), (r 2 ', ⁇ 2 ') (422)) by applying ( ⁇ r 2 , ⁇ 2 ) to convert the coordinate value of the object identified in the second area 22 at time t.
  • the processor 130 may display the converted coordinate values on the mask map 20. Additionally, the processor 130 may identify whether a coordinate value located in the second area 22 of the mask map 20 exists among the converted coordinate values.
  • (r 6 ', ⁇ 6 ') 524 among the converted coordinate values is located in the second area 22 of the mask map 20. do.
  • (r 1 '', ⁇ 1 '') 521 among the converted coordinate values is located in the second area 22 of the mask map 20. do.
  • the processor 130 may identify (r 6 ', ⁇ 6 ') 524 and (r 1 '', ⁇ 1 '') 521 as being located in the second area 22. .
  • the processor 130 may identify the object identified at the second viewpoint as being located in the second area 22 at the third viewpoint. . That is, in that the position of the object identified at the second viewpoint was converted based on the movement of the robot 100 from the second viewpoint to the third viewpoint, the converted position corresponds to the position of the object at the third viewpoint. . Accordingly, when the converted coordinate value is located in the second area 22, the processor 130 identifies the object identified at the second viewpoint as being located in the second area 22 at the third viewpoint.
  • the processor 130 may store location information of the object identified in the second area in the memory 120.
  • the location information of the object may mean information about the location of the object when the object identified at the second viewpoint is identified as being located in the second area at the third viewpoint. That is, the location information of the object may be a coordinate value converted from the coordinate value of the object identified at the second viewpoint based on the movement of the robot 100.
  • processor 130 stores (r 6 ', ⁇ 6 ') 524 as memory ( 120).
  • the processor 130 uses the existing coordinate value (r 1 ', ⁇ 1 ') 421 can be updated to (r 1 '', ⁇ 1 '') 521 , and (r 1 '', ⁇ 1 '') 521 can be stored in the memory 120 .
  • the processor 130 may control the driving of the robot 100 based on the positions of objects identified in the first and second areas 21 and 22 at the third viewpoint.
  • the second area is an area in which objects around the robot 100 are not detected by the sensor 110, based on the current location of the robot 100. Even if it exists in the second area, the corresponding object is not detected by the sensor 110. Accordingly, the processor 130 identifies whether the object is located in the second area at the third viewpoint, based on the location of the object identified at the second viewpoint, and identifies the location of the object in the second area at the third viewpoint. You can.
  • the first area is an area where objects around the robot 100 can be detected by the sensor 110, based on the current location of the robot 100. Accordingly, the processor 130 may identify the location of the object in the first area through the sensor 110 from the third viewpoint.
  • the processor 130 may control the robot 100 to run while avoiding objects located in the first and second areas based on the positions of the objects identified in the first and second areas.
  • the coordinate values of the object identified in the second area 22 are (r 1 '', ⁇ 1 '') 521, (r 6 ', ⁇ 6 ') (524), and the coordinate values of the object identified in the first area 21 are equal to (r 7 , ⁇ 7 ) (511) and (r 8 , ⁇ 8 ) (512).
  • the processor 130 integrates these coordinate values, identifies the positions of objects existing in the first and second areas around the robot 100, and controls the robot 100 to run while avoiding the objects. can do.
  • the processor 130 may delete the location information of the object stored in the memory 120.
  • the purpose of updating at each time point is only to update the obstacle location information within the second area.
  • the observation information in the first area utilizes the obstacle location information observed by the sensor at that point in time without modulation, so the past location information of the obstacle is not updated.
  • the problem of afterimages detected by non-existent obstacles can be solved, and obstacle location information in a specific area can be updated with the latest observable information.
  • the processor 130 may store the coordinate value of the object identified in the second area at the second time point in the memory 120. Thereafter, the processor 130 may convert the coordinate values stored in the memory 120 based on the movement of the robot at the third viewpoint based on the second viewpoint. Additionally, if the converted coordinate value is not located in the second area 22, the processor 130 may delete the coordinate value stored in the memory 120 from the memory 120. This is because, when the converted coordinate value is located in the first area 21, the corresponding object can be detected through the sensor 110 from a third viewpoint. In this case, the processor 130 can manage the memory 120 by deleting coordinate values from the memory 120.
  • (r 2 '', ⁇ 2 '') 522 among the converted coordinate values is the first area 21 of the mask map 20. ) is located in.
  • the processor 130 may delete (r 2 ', ⁇ 2 ') 422 stored in the memory 120.
  • the processor 130 if the processor 130 identifies that the object identified at the second time point is not located in the second area 22 at the third time point, the processor 130 sets the location of the object identified in the first area 21 at the third time point. Based on this, the driving of the robot 100 can be controlled.
  • the processor 130 may identify the location of the object in the first area 21 through the sensor 110 at the third viewpoint and control the robot 100 to run while avoiding the object.
  • the robot 100 can identify whether an object exists for each unit cell of the mask map 20 of the sensor 110. At this time, the robot 100 not only uses the sensor 110 at the current viewpoint, but also considers the location of the object detected at the previous viewpoint to identify whether an object exists in an area that is not detected by the sensor 110 at the current viewpoint. can do. Additionally, when an object that was located in an invisible area becomes located in a visible area, the robot 100 may delete the location information of the object stored in the memory 120. That is, the robot 100 updates information about objects existing in the invisible area around the robot 100 based on the current time point. Accordingly, the location of the object detected according to the present disclosure can have high reliability.
  • the estimated location becomes inaccurate.
  • the robot 100 based on the results already detected by the robot 100, it is possible to identify the object more accurately in that it identifies whether the object exists in an area that is not detected by the sensor 110, and thus Accordingly, it is possible to control the running of the robot 100 with high reliability.
  • the mask map 20 may be created before the robot 100 actually drives and stored in the memory 120.
  • the mask map 20 may be updated while the robot 100 is traveling. That is, if a problem occurs in the identification range of the sensor 110 due to an external collision, contaminants, etc. while driving, or if a problem in the identification range of the sensor 110 is resolved, the processor 130 generates the mask map 20.
  • the first area 21 and the second area 22 can be updated and stored in the memory 120.
  • the processor 130 may update the mask map 20 by identifying that a change has occurred in an area that can be identified by the sensor 110.
  • the processor 130 may identify whether the identification range of the sensor 110 has changed based on whether the previously identified object corresponds to the currently identified object. Specifically, the processor 130 converts the position (e.g., coordinate value) of an object identified before the current point of view into a position at the current point of view based on the movement of the robot 100, and converts the coordinate values of the converted object into The mask map 20 may be updated by comparing the coordinate values of the object identified in the first or second area at the current time.
  • the position e.g., coordinate value
  • the processor 130 coordinates the coordinate value of the transformed object (for example, the coordinate value of a static object such as a wall on a map used as positioning reference information) and If the coordinate values of the currently identified object in the first area do not correspond, the area that can be identified by the sensor 110 may be identified as being reduced. Accordingly, the processor 130 may identify the cells of the first area 21 corresponding to the coordinate values of the coordinate-transformed object as being invisible and identify the corresponding area as the second area 22.
  • the coordinate value of the transformed object for example, the coordinate value of a static object such as a wall on a map used as positioning reference information
  • the processor 130 may identify that the area that can be identified by the sensor 110 has been expanded if the coordinate value of the converted object corresponds to the coordinate value of the object currently identified in the second area. Accordingly, the processor 130 may identify the cells of the second area 22 corresponding to the coordinate value of the coordinate-transformed object as being in a visible state and identify the corresponding area as the first area 22.
  • FIG. 11 is a diagram illustrating a method of updating a cell in a first area to a second area according to an embodiment of the present disclosure.
  • FIG. 11 it is a diagram showing an object identified at a previous viewpoint by the sensor 110.
  • the processor 130 may identify objects 1110, 1120, 1130, and 1140 in the first area 21 of the mask map 20 through the sensor 110.
  • the relative positions of the objects 1110, 1120, 1130, and 1140 change with respect to the robot 100, so that the objects 1110, Some (1110, 1120) of 1120, 1130, and 1140 may be located in the second area 22, and the remainder (1130, 1140) may be located in the first area 21.
  • the processor 130 converts the coordinate values of the objects 1110, 1120, 1130, and 1140 identified at a previous time based on the movement of the robot 100, and converts the converted coordinate values You can obtain (1111, 1121, 1131, 1141).
  • the processor 130 determines that among the converted coordinate values 1111, 1121, 1131, and 1141, the coordinate values 1131 and 1141 of the object (e.g., static object) located in the first area 21 are at the current time. It can be identified whether it corresponds to the identified coordinate value.
  • the object e.g., static object
  • whether the coordinate value corresponds may be determined based on whether an object with a coordinate value that is the same as the converted coordinate value or approximates within a preset threshold range exists in the first area 21 at the current time.
  • the processor 130 identifies that the object located at the coordinate value does not exist at the current time based on the converted coordinate values 1131 and 1141 located in the first area 21, the converted coordinate value ( The cells of the mask map 20 where 1131 and 1141) are located can be identified as being in an invisible state. And, as shown in (4) of FIG. 11, the processor 130 updates the state of the cell identified as invisible to the invisible state, that is, the second area 22, and stores the updated mask map 20 in the memory. It can be saved at (120).
  • the robot 100 changes the first area 21 of the mask map 20 to the second area 22 accordingly. ) can be updated.
  • the method of updating the first area 21 of the mask map 20 to the second area 22 is not limited to the above example.
  • FIG. 12 is a diagram illustrating a method of updating a cell in a second area to a first area according to an embodiment of the present disclosure.
  • FIG. 12 it is a diagram showing an object identified by the sensor 110 at a previous viewpoint.
  • the processor 130 may identify the objects 1210, 1220, 1230, and 1240 in the first area 21 of the mask map 20 through the sensor 110.
  • the relative positions of the objects 1210, 1220, 1230, and 1240 change with respect to the robot 100, so that the objects 1210, Some (1210, 1220) of 1220, 1230, and 1240 may be located in the second area 22, and the remainder (1230, 1240) may be located in the first area 21.
  • the processor 130 identifies cells corresponding to the objects 1210 and 1220 in the second area 22 as visible, and then changes the state of the cells identified as visible to the visible state. That is, the first area 21 can be updated, and the updated mask map 20 can be stored in the memory 120 .
  • FIG. 12 it is a diagram showing an object identified by the sensor 110 at a previous viewpoint.
  • the processor 130 may identify objects 1210, 1220, 1230, and 1240 in the first area 21 of the mask map 20 through the sensor 110.
  • the relative positions of the objects 1210, 1220, 1230, and 1240 change with respect to the robot 100, so that the objects 1210, Some (1210, 1220) of 1220, 1230, and 1240 may be located in the second area 22, and the remainder (1230, 1240) may be located in the first area 21.
  • the processor 130 converts the coordinate values of the objects 1210, 1220, 1230, and 1240 identified at a previous time based on the movement of the robot 100, and converts the coordinate values to You can obtain (1211, 1221, 1231, 1241).
  • the processor 130 determines whether the coordinate values 1211 and 1221 of the object located in the second area 22 among the converted coordinate values 1211, 1221, 1231, and 1241 correspond to the coordinate values identified at the current time. can be identified.
  • whether the coordinate value corresponds may be determined based on whether an object with a coordinate value that is the same as the converted coordinate value or approximates within a preset threshold range exists in the second area 22 at the current time.
  • the processor 130 identifies that an object located at the corresponding coordinate value is detected at the current viewpoint based on the converted coordinate values 1211 and 1221 located in the second area 22, the converted coordinate value 1211
  • the cell of the mask map 20 where , 1221) is located can be identified as being in a visible state.
  • the processor 130 updates the state of the cell identified as visible to the visible state, that is, the first area 21, and stores the updated mask map 20 in the memory 120. ) can be saved in .
  • the robot 100 changes the second area 22 of the mask map 20 to the first area ( 21) can be updated.
  • the method of updating the second area 22 of the mask map 20 to the first area 21 is not limited to the above example.
  • Figure 13 is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 includes a sensor 110, a memory 120, a processor 130, a driver 140, an input interface 150, a communication interface 160, an output interface 170, and a battery. It may include (180).
  • this configuration is an example, and of course, in carrying out the present disclosure, new configurations may be added or some configurations may be omitted in addition to these configurations. Meanwhile, when describing FIG. 13, descriptions overlapping with FIGS. 1 to 12 will be omitted.
  • the sensor 110 may include a lidar sensor 111, a camera 112, a gyro sensor 113, and an encoder 114. However, this is only an example, and the sensor 110 may include only some of these, or may further include other types of sensors in addition to these sensors.
  • the driving unit 140 is configured to move the robot 100.
  • the driving unit 140 may include wheels installed on the left and right sides of the main body of the robot 100, respectively, and a motor for driving the wheels. Accordingly, the driving unit 140 can perform various driving operations of the robot 100, such as moving, stopping, controlling speed, changing direction, and changing angular speed.
  • the processor 130 may drive the driving unit 140 to move the robot 100. Accordingly, the robot 100 can move, stop, and rotate.
  • the processor 130 determines the movement direction and movement speed so that the robot 100 moves without colliding with the object based on the position of the object, and the robot 100 moves according to the determined movement direction and speed.
  • the driving unit 140 can be controlled to move. However, this is only an example, and the driving unit 140 may be implemented in various ways depending on the driving type of the robot 100.
  • the input interface 150 includes a circuit and can receive user commands for setting or selecting various functions supported by the robot 100. To this end, the input interface 150 may include a plurality of buttons and may be implemented as a touch screen that can simultaneously perform the display function.
  • the processor 130 may control the operation of the robot 100 based on a user command input through the input interface 150.
  • the processor 143 controls the robot 100 based on an on/off command for the robot 100 input through the input interface 150, an on/off command for the function of the robot 100, etc. You can.
  • the communication interface 160 includes a circuit and can perform communication with an external device.
  • the processor 130 may receive various data or information from an external device connected through the communication interface 160, and may also transmit various data or information to the external device.
  • the output interface 170 may include a display 171 and a speaker 172.
  • the display 171 can display various information.
  • the display 171 may be implemented as a liquid crystal display (LCD), etc., and may also be implemented as a touch screen that can simultaneously perform the function of the input interface 151.
  • the processor 130 may display various information related to the operation of the robot 100 on the display 171.
  • Speaker 172 can output audio. Specifically, the processor 130 may output various notification sounds or voice guidance messages related to the operation of the robot 100 through the speaker 172.
  • Battery 180 may supply power to at least one component of robot 100.
  • the battery 180 may include a secondary battery.
  • Figure 14 is a flowchart for explaining a robot driving method according to an embodiment of the present disclosure.
  • a robot may include a sensor and a memory storing a mask map in which an area around the robot is divided into a first area that can be detected by the sensor and a second area that is not detected by the sensor.
  • an object is identified in the first area through a sensor at a first viewpoint (S1410).
  • an object is identified in the first area through a sensor at a second viewpoint (S1420).
  • the location information of the object identified in the second area is stored in the memory, and the first and second areas at the second time point are stored in the memory.
  • the driving of the robot is controlled based on the location of the object identified in (S1440). The above-described operations may be performed repeatedly as the robot moves and its position changes.
  • the area around the robot is divided into a plurality of cells based on a polar coordinate system with the center of the robot as the origin.
  • the first area includes at least one cell among a plurality of cells in which an object located in the cell is detected by a sensor.
  • the second area includes at least one cell among the plurality of cells in which an object located in the cell is not detected by the sensor.
  • the movement of the robot may include at least one of the distance the robot moves relative to the first viewpoint, the direction in which the robot moves relative to the first viewpoint, and the direction in which the robot rotates relative to the first viewpoint.
  • step S1430 identifies the coordinate value of an object located in the first area at the first viewpoint, converts the identified coordinate value based on the movement of the robot to correspond to the second viewpoint, and converts the converted coordinate value to the second viewpoint.
  • the object identified at the first viewpoint may be identified as being located in the second area at the second viewpoint.
  • the movement of the robot may be controlled based on the location of the object identified in the first area at the second time point.
  • an object can be identified in the first area through a sensor at a third viewpoint. And, based on the position of the object identified in the second area at the second time point and the movement of the robot at the third view point based on the second time point, the object identified in the second area at the second time point is moved to the third view point. It is possible to identify whether it is located in the second area at the viewpoint. And, if the object located in the second area at the second viewpoint is identified as being located in the second area at the third viewpoint, the location information of the object identified in the second area is stored in the memory, and the object located in the second area at the third viewpoint is stored in the memory. And the driving of the robot can be controlled based on the object identified in the second area.
  • the location information of the object stored in the memory is deleted, and the object identified in the first area at the third time point is deleted.
  • the robot's movement can be controlled based on the object.
  • step S1440 the robot can be controlled to run while avoiding objects located in the first and second areas based on the stored location information.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online.
  • a machine-readable storage medium e.g. compact disc read only memory (CD-ROM)
  • an application store e.g. Play StoreTM
  • two user devices e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online.
  • at least a portion of the computer program product e.g., a downloadable app
  • a machine-readable storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.
  • Each component e.g., module or program
  • each component may be composed of a single or multiple entities, and some of the sub-components described above may be omitted. Alternatively, other sub-components may be further included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration.
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.
  • unit or “module” used in the present disclosure includes a unit comprised of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. You can.
  • a “part” or “module” may be an integrated part, a minimum unit that performs one or more functions, or a part thereof.
  • a module may be comprised of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • a non-transitory computer readable medium storing a program that sequentially performs the control method according to the present disclosure.
  • a non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories.
  • the various applications or programs described above may be stored and provided on non-transitory readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, etc.
  • embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer).
  • the device is a device capable of calling instructions stored in a storage medium and operating according to the called instructions, and may include an electronic device (eg, robot 100) according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)

Abstract

A robot is disclosed. The robot according to the present disclosure comprises: a sensor; a memory in which a mask map is stored, the mask map being divided into a first region where the area around the robot can be sensed by the sensor and a second region where the area around the robot cannot be sensed by the sensor; and a processor which: identifies an object in the first region at a first time point through the sensor; identifies an object in the first region at a second time point through the sensor; on the basis of the location of the object identified at the first time point and movement of the robot at the second time point with respect to the first time point, identifies whether the object identified at the first time point is located in the second region at the second time point; if the object identified at the first time point is identified as being located in the second region at the second time point, stores, in the memory, location information of the object identified in the second region; and controls driving of the robot on the basis of the locations of the objects identified in the first and second regions at the second time point.

Description

마스크 맵을 이용하여 주행을 수행하는 로봇 및 그의 주행 방법 A robot that performs driving using a mask map and its driving method
본 개시는 마스크 맵을 이용하여 주행을 수행하는 로봇 및 그의 주행 방법에 관한 것이다.This disclosure relates to a robot that travels using a mask map and its driving method.
로봇은 현재 많은 분야에서 이용되고 있으며, 우주 항공 분야뿐만 아니라 산업용 차량, 일반 차량의 자율 주행이나 일반 가정집의 로봇 청소기에도 활용될 수 있다. 이 경우, 로봇은 센서를 이용하여 실시간으로 주변 환경을 감지하고, 정보를 수집하여 자율적으로 주행할 수 있다.Robots are currently being used in many fields, and can be used not only in the aerospace field but also in industrial vehicles, autonomous driving of general vehicles, and robot vacuum cleaners in ordinary homes. In this case, the robot can sense the surrounding environment in real time using sensors, collect information, and drive autonomously.
본 개시의 일 실시 예에 따른 로봇은 센서, 상기 로봇 주변의 영역이 상기 센서에 의해 감지 가능한 제1 영역 및 상기 센서에 의해 감지되지 않는 제2 영역으로 구분된 마스크 맵이 저장된 메모리 및 프로세서를 포함한다. 프로세서는 제1 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하고, 제2 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별한다. 프로세서는 상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는지를 식별한다. 프로세서는 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 제2 영역에서 식별된 오브젝트의 위치 정보를 상기 메모리에 저장하고, 상기 제2 시점에 상기 제1 및 제2 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어한다.A robot according to an embodiment of the present disclosure includes a sensor, a memory storing a mask map in which an area around the robot is divided into a first area detectable by the sensor and a second area not detected by the sensor, and a processor. do. The processor identifies an object in the first area through the sensor at a first time point, and identifies the object in the first area through the sensor at a second time point. The processor determines that the object identified at the first time point is based on the location of the object identified at the first time point and the movement of the robot at the second time point based on the first time point. Identify whether it is located in the second area. When the object identified at the first time point is identified as being located in the second area at the second time point, the processor stores the location information of the object identified in the second area in the memory, and stores the location information of the object identified in the second area in the memory at the second time point. The driving of the robot is controlled based on the positions of objects identified in the first and second areas.
본 개시의 일 실시 예에 따른 센서 및 로봇 주변의 영역이 상기 센서에 의해 감지 가능한 제1 영역 및 상기 센서에 의해 감지되지 않는 제2 영역으로 구분된 마스크 맵이 저장된 메모리를 포함하는 로봇의 주행 방법은 제1 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하는 단계, 제2 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하는 단계, 상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는지를 식별하는 단계 및 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 제2 영역에서 식별된 오브젝트의 위치 정보를 상기 메모리에 저장하고, 상기 제2 시점에 상기 제1 및 제2 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어하는 단계를 포함하는 주행 방법.A method of driving a robot including a sensor according to an embodiment of the present disclosure and a memory storing a mask map in which an area around the robot is divided into a first area detectable by the sensor and a second area not detected by the sensor. Identifying an object in the first area through the sensor at a first time point, identifying an object in the first area through the sensor at a second time point, the location of the object identified at the first time point, and Based on the movement of the robot at the second viewpoint relative to the first viewpoint, identifying whether the object identified at the first viewpoint is located in the second area at the second viewpoint, and the first If the object identified at the viewpoint is identified as being located in the second area at the second viewpoint, the location information of the object identified in the second area is stored in the memory, and the first and second objects are stored at the second viewpoint. A driving method comprising controlling the driving of the robot based on the position of an object identified in area 2.
본 개시의 일 실시 예에 따른 센서 및 로봇 주변의 영역이 상기 센서에 의해 감지 가능한 제1 영역 및 상기 센서에 의해 감지되지 않는 제2 영역으로 구분된 마스크 맵이 저장된 메모리를 포함하는 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서 상기 동작은 제1 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하는 단계, 제2 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하는 단계, 상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는지를 식별하는 단계 및 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 제2 영역에서 식별된 오브젝트의 위치 정보를 상기 메모리에 저장하고, 상기 제2 시점에 상기 제1 및 제2 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어하는 단계를 포함한다.A processor according to an embodiment of the present disclosure includes a memory storing a mask map in which the area around the sensor and the robot is divided into a first area that can be detected by the sensor and a second area that is not detected by the sensor. A non-transitory computer-readable medium storing computer instructions that cause the robot to perform an action when executed by the robot, wherein the action includes identifying an object in the first area through the sensor at a first time point, and a second time point. Identifying an object in the first area through the sensor, based on the location of the object identified at the first viewpoint and the movement of the robot at the second viewpoint with respect to the first viewpoint, identifying whether the object identified at a first time point is located in the second area at the second time point; and if the object identified at the first time point is identified as being located in the second area at the second time point, It includes storing location information of the object identified in the second area in the memory, and controlling the driving of the robot based on the location of the object identified in the first and second areas at the second time point.
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 도면,1 is a diagram for explaining a robot according to an embodiment of the present disclosure;
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도,2 is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure;
도 3은 본 개시의 일 실시 예에 따른 마스크 맵을 설명하기 위한 도면,3 is a diagram for explaining a mask map according to an embodiment of the present disclosure;
도 4 내지 도 10은 본 개시의 일 실시 예에 따른 비가시 영역에 위치하는 오브젝트를 식별하는 방법을 설명하기 위한 도면들,4 to 10 are diagrams for explaining a method of identifying an object located in an invisible area according to an embodiment of the present disclosure;
도 11 및 도 12는 본 개시의 일 실시 예에 따라 마스크 맵을 업데이트하는 방법을 설명하기 위한 도면,11 and 12 are diagrams for explaining a method of updating a mask map according to an embodiment of the present disclosure;
도 13은 본 개시의 일 실시 예에 따른 로봇의 세부 구성을 설명하기 위한 블록도, 그리고,13 is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure, and
도 14는 본 개시의 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 흐름도이다.Figure 14 is a flowchart for explaining a robot driving method according to an embodiment of the present disclosure.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Since these embodiments can be modified in various ways and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to specific embodiments, and should be understood to include various modifications, equivalents, and/or alternatives to the embodiments of the present disclosure. In connection with the description of the drawings, similar reference numbers may be used for similar components.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. In describing the present disclosure, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the gist of the present disclosure, the detailed description thereof will be omitted.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.In addition, the following examples may be modified into various other forms, and the scope of the technical idea of the present disclosure is not limited to the following examples. Rather, these embodiments are provided to make the present disclosure more faithful and complete and to completely convey the technical idea of the present disclosure to those skilled in the art.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.The terms used in this disclosure are merely used to describe specific embodiments and are not intended to limit the scope of rights. Singular expressions include plural expressions unless the context clearly dictates otherwise.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. In the present disclosure, expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., component such as numerical value, function, operation, or part). , and does not rule out the existence of additional features.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In the present disclosure, expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, “A or B,” “at least one of A and B,” or “at least one of A or B” includes (1) at least one A, (2) at least one B, or (3) it may refer to all cases including both at least one A and at least one B.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as “first,” “second,” “first,” or “second,” used in the present disclosure can modify various components regardless of order and/or importance, and can refer to one component. It is only used to distinguish from other components and does not limit the components.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is “(operatively or communicatively) coupled with/to” another component (e.g., a second component). When referred to as being “connected to,” it should be understood that any component may be directly connected to the other component or may be connected through another component (e.g., a third component).
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.On the other hand, when a component (e.g., a first component) is said to be “directly connected” or “directly connected” to another component (e.g., a second component), It may be understood that no other component (e.g., a third component) exists between other components.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. The expression “configured to” used in the present disclosure may mean, for example, “suitable for,” “having the capacity to,” depending on the situation. ," can be used interchangeably with "designed to," "adapted to," "made to," or "capable of." The term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.Instead, in some contexts, the expression “a device configured to” may mean that the device is “capable of” working with other devices or components. For example, the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device. , may refer to a general-purpose processor (e.g., CPU or application processor) capable of performing the corresponding operations.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In an embodiment, a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module and implemented with at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. Meanwhile, various elements and areas in the drawing are schematically drawn. Accordingly, the technical idea of the present invention is not limited by the relative sizes or spacing drawn in the attached drawings.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Hereinafter, with reference to the attached drawings, embodiments according to the present disclosure will be described in detail so that those skilled in the art can easily implement them.
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 도면이다.1 is a diagram for explaining a robot according to an embodiment of the present disclosure.
도 1을 참조하면, 로봇(100)은 다양한 유형의 로봇으로 구현될 수 있다. 예를 들어, 로봇(100)은 로봇 청소기로 구현될 수 있다. 즉, 로봇(100)은 이동하며, 바닥면에 존재하는 오물, 먼지 등의 이물질을 흡입할 수 있다. 다른 예로, 로봇(100)은 리테일 로봇 또는 가이드 로봇 등으로 구현될 수 있다. 즉, 로봇(100)은 매장 내에서 사용자에게 경로를 안내하거나, 매장 내의 제품을 사용자에게 설명하거나, 또는 사용자의 물건을 들고 매장 내에서 사용자를 따라 이동하는 기능을 수행할 수 있다. Referring to FIG. 1, the robot 100 may be implemented as various types of robots. For example, the robot 100 may be implemented as a robot vacuum cleaner. That is, the robot 100 can move and suck foreign substances such as dirt and dust present on the floor. As another example, the robot 100 may be implemented as a retail robot or guide robot. That is, the robot 100 may perform functions such as guiding the user on a route within the store, explaining products within the store to the user, or carrying the user's items and moving along with the user within the store.
한편, 로봇(100)은 로봇(100)이 위치하는 공간을 주행할 수 있다. 이 경우, 공간은 집, 사무실, 호텔, 공장, 상점, 공항 등과 같은 실내 뿐만 아니라, 도로, 공사 현장 등과 같은 실외까지 다양한 공간을 포함할 수 있다.Meanwhile, the robot 100 can travel in the space where the robot 100 is located. In this case, the space may include a variety of spaces, including indoor spaces such as homes, offices, hotels, factories, stores, airports, etc., as well as outdoor spaces such as roads and construction sites.
여기에서, 로봇이 주행한다는 것은 맵 상에서 로봇의 위치를 식별하고 주행 계획을 수립하여, 로봇이 위치하는 공간을 이동하는 것을 의미할 수 있다. Here, driving the robot may mean identifying the location of the robot on the map, establishing a travel plan, and moving the space where the robot is located.
이를 위해, 로봇은 로봇 주변의 오브젝트(11, 12)(가령, 벽, 가전제품, 가구, 사람, 자동차 등과 같은 장애물)를 감지할 수 있다.To this end, the robot can detect objects 11 and 12 (e.g., obstacles such as walls, home appliances, furniture, people, cars, etc.) around the robot.
이때, 로봇은 센서를 이용하여 오브젝트를 감지할 수 있다. 이 경우, 센서의 특성, 부착 위치 및 부착 환경 등에 따라 센서에 의해 로봇 주변에서 감지되지 않은 영역이 존재할 수 있다.At this time, the robot can detect the object using a sensor. In this case, there may be areas around the robot that are not detected by the sensor depending on the characteristics of the sensor, attachment location, attachment environment, etc.
예를 들어, 카메라의 경우, 카메라의 시야각 또는 카메라의 고정된 촬영 방향 등에 의해 촬영되지 않아, 로봇 주변에서 카메라의 의해 감지되지 못하는 영역이 존재할 수 있다. 다른 예로, 라이다 센서는 로봇 내의 특정한 공간에 부착될 수 있다. 이때, 라이다 센서가 부착되는 공간을 형성하기 위한 기둥 구조물이 존재할 수 있다. 이 경우, 라이다 센서를 통해 360° 방향을 감지하더라도, 기둥 구조물에 의해 라이다 센서의 가시 범위가 가려질 수 있고, 이로 인해 감지되지 않는 영역이 존재할 수 있다. For example, in the case of a camera, there may be areas around the robot that cannot be detected by the camera because they are not captured due to the camera's viewing angle or the camera's fixed shooting direction. As another example, the LiDAR sensor may be attached to a specific space within the robot. At this time, there may be a pillar structure to form a space where the LiDAR sensor is attached. In this case, even if a 360° direction is detected through the LiDAR sensor, the visible range of the LiDAR sensor may be obscured by the pillar structure, which may result in an area that is not detected.
이러한 경우, 1회 이상 관측된 장애물 임에도 불구하고, 로봇의 이동 또는 회전에 따라, 센서에 의해 감지되지 않는 영역에 해당 장애물이 위치하는 경우, 해당 장애물의 상대 위치 정보가 누락되어, 로봇이 해당 영역에 위치하는 오브젝트와 충돌할 가능성이 존재하게 된다.In this case, even though the obstacle has been observed more than once, if the obstacle is located in an area that is not detected by the sensor as the robot moves or rotates, the relative position information of the obstacle is missing, and the robot moves to the area. There is a possibility of collision with an object located in .
이에 따라, 본 개시의 일 실시 예에 따르면, 로봇(100)은 마스크 맵(20)을 이용하여 센서에 의해 감지되지 않는 영역에 오브젝트가 위치하고 있는지를 식별하고, 식별 결과를 이용하여 주행을 수행할 수 있다.Accordingly, according to an embodiment of the present disclosure, the robot 100 uses the mask map 20 to identify whether an object is located in an area not detected by the sensor and performs driving using the identification result. You can.
여기에서, 마스크 맵(20)은 로봇(100) 주변의 영역을 센서에 의해 감지 가능한 영역과 센서에 의해 감지되지 않는 영역으로 구분한 맵일 수 있다. 마스크 맵(10)은 비가시성 마스크 맵(Nonvisibility Mask Map)이라 지칭할 수도 있다.Here, the mask map 20 may be a map that divides the area around the robot 100 into an area that can be detected by the sensor and an area that is not detected by the sensor. The mask map 10 may also be referred to as a nonvisibility mask map.
구체적으로, 로봇(100)은 센서를 이용하여 로봇(100) 주변의 오브젝트를 감지할 수 있다. 그리고, 로봇(100)은 로봇(100)이 움직이는 경우, 이전에 센서에 의해 감지된 오브젝트가 로봇(100)의 움직임에 따라 마스크 맵(20) 상에서 센서에 의해 감지되지 않는 영역에 위치하게 되는지를 식별할 수 있다. Specifically, the robot 100 can detect objects around the robot 100 using a sensor. And, when the robot 100 moves, the robot 100 determines whether an object previously detected by the sensor is located in an area not detected by the sensor on the mask map 20 according to the movement of the robot 100. can be identified.
이와 같이, 본 개시의 일 실시 예에 따르면, 로봇(100)은 이전의 감지 결과를 이용하여 현재 센서에 의해 감지되지 않는 영역에 오브젝트가 위치하는지를 식별하고, 수집된 장애물 위치 정보 중 가장 최신의 정보가 비가시영역에 반영되도록 업데이트 한다는 점에서 보다 안정적이고, 신뢰도 높은 주행을 수행할 수 있다.As such, according to an embodiment of the present disclosure, the robot 100 uses previous detection results to identify whether an object is located in an area that is not currently detected by the sensor, and uses the most recent information among the collected obstacle location information. In that it is updated to reflect in the invisible area, more stable and reliable driving can be performed.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도이다.Figure 2 is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.
도 2를 참조하면, 로봇(100)은 센서(110), 메모리(120) 및 프로세서(130)를 포함한다.Referring to FIG. 2, the robot 100 includes a sensor 110, a memory 120, and a processor 130.
센서(110)는 로봇(100) 및 로봇(100)의 주변 환경과 관련된 다양한 정보를 획득할 수 있다.The sensor 110 can obtain various information related to the robot 100 and its surrounding environment.
예를 들어, 센서(110)는 라이다(LiDAR, light detection and ranging) 센서 또는, LDS(laser distance sensor)를 포함할 수 있다. 라이다 센서는 빛을 조사하고, 조사된 빛이 로봇(100) 주변의 오브젝트로부터 반사되어 수신되면, 빛이 수신된 시간에 기초하여 물체와의 거리를 감지할 수 있다. 이 경우, 프로세서(120)는 라이다 센서를 통해 주변 오브젝트와의 거리를 식별할 수 있다. For example, the sensor 110 may include a light detection and ranging (LiDAR) sensor or a laser distance sensor (LDS). The LiDAR sensor irradiates light, and when the irradiated light is reflected and received from an object around the robot 100, it can detect the distance to the object based on the time the light was received. In this case, the processor 120 can identify the distance to surrounding objects through the LiDAR sensor.
또한, 센서(110)는 카메라를 포함할 수 있다. 카메라는 TOF(Time Of Flight) 카메라, 스테레오 카메라 등을 포함할 수 있다. 카메라는 로봇(100)의 주변을 촬영하여, 이미지를 획득할 수 있다. 이 경우, 프로세서(120)는 카메라를 통해 획득된 이미지에서 오브젝트를 인식하여, 로봇(100) 주변에 존재하는 오브젝트의 위치, 종류, 형상, 크기 등에 대한 정보를 획득할 수 있다. Additionally, the sensor 110 may include a camera. Cameras may include time of flight (TOF) cameras, stereo cameras, etc. The camera may acquire an image by photographing the surroundings of the robot 100. In this case, the processor 120 can recognize an object in an image acquired through a camera and obtain information about the location, type, shape, size, etc. of the object existing around the robot 100.
또한, 센서(110)는 자이로 센서를 포함할 수 있다. 자이로 센서는 로봇(100)의 x축 중심의 회전 각속도(roll-rate), y축 중심의 회전 각속도(pitch-rate), z축 중심의 회전 각속도(yaw-rate)를 측정할 수 있다. 이 경우, 프로세서(120)는 자이로 센서를 통해 로봇(100)의 회전 각도, 회전 방향 등과 같은 로봇(100)의 자세에 대한 정보를 획득할 수 있다.Additionally, the sensor 110 may include a gyro sensor. The gyro sensor can measure the rotational angular rate (roll-rate) about the x-axis, the rotational angular rate (pitch-rate) about the y-axis, and the rotational angular rate (yaw-rate) about the z-axis of the robot 100. In this case, the processor 120 may obtain information about the posture of the robot 100, such as the rotation angle and direction of the robot 100, through the gyro sensor.
또한, 센서(110)는 엔코더를 포함할 수 있다. 엔코더는 로봇(100)에 설치된 바퀴의 회전수를 감지하여 로봇(100)이 이동한 거리를 측정할 수 있다. 이 경우, 프로세서(120)는 엔코더를 통해 로봇(100)의 이동 거리에 대한 정보를 획득할 수 있다.Additionally, the sensor 110 may include an encoder. The encoder can measure the distance traveled by the robot 100 by detecting the number of rotations of the wheels installed on the robot 100. In this case, the processor 120 may obtain information about the moving distance of the robot 100 through the encoder.
메모리(120)는 로봇(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(120)에는 로봇(100)을 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(120)에는 본 개시의 다양한 실시 예들에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(120)는 프레임 버퍼와 같은 휘발성 메모리, 플래시 메모리 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.The memory 120 may store at least one instruction regarding the robot 100. Additionally, an O/S (Operating System) for driving the robot 100 may be stored in the memory 120. Additionally, the memory 120 may store various software programs or applications for operating the robot 100 according to various embodiments of the present disclosure. Additionally, the memory 120 may include volatile memory such as a frame buffer, semiconductor memory such as flash memory, or magnetic storage media such as a hard disk.
구체적으로, 메모리(120)에는 본 개시의 다양한 실시 예에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(130)는 메모리(120)에 저장된 각종 소프트웨어 모듈을 실행하여 로봇(100)의 동작을 제어할 수 있다. 즉, 메모리(120)는 프로세서(130)에 의해 액세스되며, 프로세서(140)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. Specifically, the memory 120 may store various software modules for operating the robot 100 according to various embodiments of the present disclosure, and the processor 130 may execute various software modules stored in the memory 120. The operation of the robot 100 can be controlled. That is, the memory 120 is accessed by the processor 130, and data read/write/modify/delete/update, etc. can be performed by the processor 140.
한편, 본 개시에서 메모리(120)라는 용어는 메모리(120), 프로세서(130) 내 롬(미도시), 램(미도시) 또는 로봇(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.Meanwhile, in the present disclosure, the term memory 120 refers to memory 120, ROM (not shown), RAM (not shown) in the processor 130, or a memory card (not shown) mounted on the robot 100 (for example, For example, it can be used to mean including micro SD card, memory stick).
특히, 메모리(120)는 마스크 맵이 저장될 수 있다. In particular, the memory 120 may store a mask map.
마스크 맵은 로봇(100) 주변의 영역이 센서(110)에 의해 감지 가능한 제1 영역 및 센서(110)에 의해 감지되지 않은 제2 영역으로 구분된 맵일 수 있다. 이때, 제1 영역을 가시 영역이라 지칭하고, 제2 영역을 비가시 영역이라 지칭할 수 있다. 여기에서, 센서(110)는 카메라 및 라이다 센서를 포함할 수 있다. The mask map may be a map in which the area around the robot 100 is divided into a first area that can be detected by the sensor 110 and a second area that is not detected by the sensor 110. At this time, the first area may be referred to as a visible area, and the second area may be referred to as an invisible area. Here, the sensor 110 may include a camera and a LiDAR sensor.
예를 들어, 도 3의 (1)과 같이, 마스크 맵(20)은 로봇(100)의 중심을 원점으로 하는 원의 형상을 갖는 영역을 포함할 수 있다. For example, as shown in (1) of FIG. 3, the mask map 20 may include an area having the shape of a circle with the center of the robot 100 as the origin.
이때, 원의 반지름은 로봇(100)으로부터 센서(110)에 의해 감지될 수 있는 거리 이하로 설정될 수 있다. 여기에서, 센서(110)에 의해 감지될 수 있는 거리는 카메라에 의해 촬영된 이미지로부터 감지될 수 있는 오브젝트까지의 거리 및 라이다 센서에 의해 감지될 수 있는 오브젝트까지의 거리 등을 의미할 수 있다. At this time, the radius of the circle may be set to a distance that can be detected by the sensor 110 from the robot 100 or less. Here, the distance that can be sensed by the sensor 110 may mean the distance from an image captured by a camera to an object that can be sensed and the distance to an object that can be sensed by a LiDAR sensor.
이때, 마스크 맵(20)은 로봇(100)의 중심을 원점으로 하는 극좌표계에 기초하여 구분된 복수의 셀을 포함할 수 있다. 이때, 셀의 크기는 유향 거리(radial, r)와 유향 방향(azimuth, θ)에 기초하여 결정될 수 있다.At this time, the mask map 20 may include a plurality of cells divided based on a polar coordinate system with the center of the robot 100 as the origin. At this time, the size of the cell can be determined based on the directed distance (radial, r) and the directed direction (azimuth, θ).
이 경우, 제1 영역(21)은 복수의 셀 중 셀에 위치한 오브젝트가 센서(110)에 의해 감지되는 적어도 하나의 셀을 포함할 수 있다. 즉, 제1 영역(21)은 로봇(100)의 위치를 기준으로, 만일, 셀에 오브젝트가 존재하는 경우, 오브젝트가 센서(110)에 의해 감지될 수 있는 적어도 하나의 셀을 포함할 수 있다.In this case, the first area 21 may include at least one cell in which an object located in the cell among the plurality of cells is detected by the sensor 110. That is, the first area 21 may include at least one cell in which the object can be detected by the sensor 110, if an object exists in the cell, based on the position of the robot 100. .
제2 영역(22)은 복수의 셀 중 셀에 위치한 오브젝트가 센서(110)에 의해 감지되지 않는 적어도 하나의 셀을 포함할 수 있다. 즉, 제2 영역(22)은 로봇(100)의 위치를 기준으로, 만일, 셀에 오브젝트가 존재하더라도, 오브젝트가 센서(110)에 의해 감지되지 않는 적어도 하나의 셀을 포함할 수 있다. The second area 22 may include at least one cell among a plurality of cells in which an object located in the cell is not detected by the sensor 110 . That is, based on the position of the robot 100, the second area 22 may include at least one cell in which the object is not detected by the sensor 110, even if an object exists in the cell.
즉, 카메라, 라이다 센서 등의 특성, 부착 위치 및 부착 환경 등에 따라, 로봇(100) 주변에는 센서(110)에 의해 감지되지 못하는 영역이 존재할 수 있다.That is, depending on the characteristics of the camera, lidar sensor, etc., attachment location, attachment environment, etc., there may be an area around the robot 100 that cannot be detected by the sensor 110.
예를 들어, 카메라의 시야각 또는 촬영 방향 등에 따라, 로봇(100) 주변에서 카메라의 의해 감지되지 못하는 영역에 존재할 수 있다. 다른 예로, 라이다 센서의 경우, 라이다 센서 주변에 존재하는 로봇 내 기둥 구조물 등에 의해 라이다 센서에서 조사된 빛이 로봇(100) 외부로 방출되지 못할 수 있다. 이 경우, 라이다 센서로부터 부채꼴 모양의 영역이 라이다 센서에 의해 감지되지 못할 수 있다.For example, depending on the camera's viewing angle or shooting direction, it may exist in an area around the robot 100 that cannot be detected by the camera. As another example, in the case of a LiDAR sensor, the light emitted from the LiDAR sensor may not be emitted to the outside of the robot 100 due to a pillar structure within the robot existing around the LiDAR sensor. In this case, the fan-shaped area may not be detected by the LiDAR sensor.
다른 예로, 카메라의 시야각 또는 촬영 방향 등에 따라, 로봇(100) 주변에서 카메라의 의해 감지되지 못하는 영역에 존재할 수 있다. 도 3의 (2)를 참조하면, 카메라로 생성한 마스크 맵(23)의 경우, 카메라가 향하는 방향인 전방이 가시 영역으로, 제1 영역(24)를 형성할 수 있고, 카메라가 감지하지 못하는 비가시 영역을 제2 영역(25)로 판단할 수 있다.As another example, depending on the camera's viewing angle or shooting direction, it may exist in an area around the robot 100 that cannot be detected by the camera. Referring to (2) of FIG. 3, in the case of the mask map 23 generated by the camera, the front, which is the direction the camera is facing, is a visible area and can form the first area 24, and the first area 24 can be formed. The non-visible area may be determined as the second area 25.
이에 따라, 본 개시에서는 로봇(100) 주변에서 센서(110)에 의해 감지되는 영역과 감지되지 못하는 영역을 미리 확인하고, 이를 기반으로 마스크 맵(20)을 생성하고, 생성된 마스크 맵(20)을 메모리(120)에 저장할 수 있다.Accordingly, in the present disclosure, the area detected by the sensor 110 and the area not detected around the robot 100 are confirmed in advance, a mask map 20 is generated based on this, and the generated mask map 20 is used. Can be stored in memory 120.
이하에서는 본 개시의 일 실시 예에 따른 마스크 맵을 생성하는 방법을 설명하도록 한다.Hereinafter, a method for generating a mask map according to an embodiment of the present disclosure will be described.
구체적으로, 유향 거리와 유향 방향에 기초하여 극좌표계 기반의 복수의 셀이 생성될 수 있다. 이때, 복수의 셀은 로봇(100)의 중심을 원점으로 하는 원 형상의 영역을 구성할 수 있다.Specifically, a plurality of cells based on polar coordinates can be created based on the directed distance and directed direction. At this time, the plurality of cells may form a circular area with the center of the robot 100 as the origin.
그리고, 복수의 셀 각각의 상태를 비가시(Nonvisible)로 초기화할 수 있다. Also, the state of each of the plurality of cells can be initialized to nonvisible.
이후, 각 셀 별로, 셀 내에 오브젝트를 위치시킨 후, 로봇(100)의 센서(110)에 의해 해당 오브젝트가 감지되는지를 식별할 수 있다.Thereafter, for each cell, after placing an object within the cell, it is possible to identify whether the corresponding object is detected by the sensor 110 of the robot 100.
이때, 오브젝트가 감지되는 셀의 경우, 셀의 상태를 가시(Visible)로 변경하고, 오브젝트가 감지되지 않는 셀의 경우, 셀의 상태를 비가시로 유지시킬 수 있다.At this time, in the case of a cell in which an object is detected, the state of the cell can be changed to visible, and in the case of a cell in which an object is not detected, the state of the cell can be maintained as invisible.
이와 같은 방식에 따라, 복수의 셀을 가시 영역과 비가시 영역으로 구분하여, 마스크 맵(20)이 생성될 수 있다. 이때, 가시 상태의 셀은 마스크 맵(20)에서 제1 영역(21)에 해당하고, 비가시 상태의 셀은 마스크 맵(20)에서 제2 영역(22)에 해당할 수 있다.According to this method, a mask map 20 can be generated by dividing a plurality of cells into a visible area and an invisible area. At this time, a cell in a visible state may correspond to the first area 21 in the mask map 20, and a cell in an invisible state may correspond to the second area 22 in the mask map 20.
본 개시의 일 실시 예에 따르면, 마스크 맵(20)은 극좌표계 기반으로 생성될 수 있다. 여기에서 극좌표계는 원점과 가까울수록 셀의 크기가 작고, 원점과 멀어질수록 셀의 크기가 커진다는 특성이 있다. 즉, 로봇(100)의 중심을 원점으로 하는 극좌표계를 사용한다면, 로봇(100)과 가까울수록 셀의 크기가 작고, 로봇(100)과 멀어질수록 셀의 크기가 커진다. 따라서, 극좌표계를 기반으로 마스크 맵(20)을 생성한다면, 로봇(100)과 가까울수록 센서(110)가 오브젝트를 식별하지 못하는 비가시 영역을 더 정밀하게 정의할 수 있다. 다만, 이는 일 예일 뿐이고, 본 개시의 일 실시 예에 따르면 마스크 맵(20)은 직교 좌표계 기반으로 생성될 수도 있다. According to an embodiment of the present disclosure, the mask map 20 may be created based on the polar coordinate system. Here, the polar coordinate system has the characteristic that the closer it is to the origin, the smaller the cell size is, and the farther it is from the origin, the larger the cell size is. That is, if a polar coordinate system is used with the center of the robot 100 as the origin, the closer the cell is to the robot 100, the smaller the cell size is, and the farther away it is from the robot 100, the larger the cell size is. Therefore, if the mask map 20 is generated based on the polar coordinate system, the closer it is to the robot 100, the more precisely the invisible area where the sensor 110 cannot identify the object can be defined. However, this is only an example, and according to an embodiment of the present disclosure, the mask map 20 may be generated based on an orthogonal coordinate system.
한편, 프로세서(130)는 로봇(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(130)는 센서(110) 및 메모리(120)를 포함하는 로봇(100)의 구성과 연결되며, 메모리(120)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 로봇(100)의 동작을 전반적으로 제어할 수 있다. 이 경우, 프로세서(130)는 하나의 프로세서로 구현될 수 있을 뿐만 아니라, 복수의 프로세서로 구현될 수도 있다. 한편, 본 개시에서 프로세서(130)라는 용어는 CPU(central processing unit), GPU(graphics-processing unit) 등을 포함하는 의미로 사용될 수 있다.Meanwhile, the processor 130 controls the overall operation of the robot 100. Specifically, the processor 130 is connected to the configuration of the robot 100 including the sensor 110 and the memory 120, and operates the robot 100 by executing at least one instruction stored in the memory 120. can be controlled overall. In this case, the processor 130 may not only be implemented as one processor, but may also be implemented as a plurality of processors. Meanwhile, in the present disclosure, the term processor 130 may be used to include a central processing unit (CPU), graphics-processing unit (GPU), etc.
구체적으로, 프로세서(130)는 제1 시점에 센서(110)를 통해 제1 영역(21)에서 오브젝트를 식별할 수 있다. 또한, 프로세서(130)는 제2 시점에 센서(110)를 통해 제1 영역(21)에서 오브젝트를 식별할 수 있다.Specifically, the processor 130 may identify an object in the first area 21 through the sensor 110 at a first time point. Additionally, the processor 130 may identify an object in the first area 21 through the sensor 110 at a second viewpoint.
전술한 바와 같이, 제1 영역(21)은 센서(110)에 의해 감지될 수 있는 로봇(100) 주변의 영역에 해당한다. 따라서, 로봇(100) 주변에 오브젝트가 존재하는 경우, 프로세서(130)는 카메라, 라이다 센서 등을 이용하여, 로봇(100) 주변의 제1 영역(20)에서 오브젝트를 감지할 수 있다.As described above, the first area 21 corresponds to an area around the robot 100 that can be detected by the sensor 110. Accordingly, when an object exists around the robot 100, the processor 130 may detect the object in the first area 20 around the robot 100 using a camera, a lidar sensor, etc.
또한, 제2 시점은 제1 시점 이후의 시점일 수 있다. 구체적으로, 프로세서(130)는 센서(110)를 통해 로봇(100) 주변을 일정한 시간 간격으로 스캔하여, 오브젝트를 감지할 수 있다. 여기에서, 스캔이라는 것은 오브젝트를 감지하기 위해, 카메라를 통해 촬영을 수행하거나, 라이다 센서를 통해 빛을 조사하는 것을 포함할 수 있다. 이때, 제1 시점에 스캔이 수행된 경우, 제2 시점은 제1 시점에 이어서 스캔이 수행되는 시점일 수 있다. 즉, 스캔이 수행되는 시점 측면에서, 제2 시점은 제1 시점 다음의 연속된 시점일 수 있다. 다만, 이는 일 예일 뿐이고, 제2 시점은 제1 시점과 연속되지 않지만, 제1 시점 이후의 시점일 수도 있다. 예를 들어, 제2 시점은 제1 시점으로부터 일정한 시점 떨어진 시점일 수도 있다.Additionally, the second time point may be a time point after the first time point. Specifically, the processor 130 can detect an object by scanning the area around the robot 100 at regular time intervals through the sensor 110. Here, scanning may include performing photography through a camera or irradiating light through a LiDAR sensor to detect an object. At this time, if the scan is performed at the first time point, the second time point may be a time point at which the scan is performed following the first time point. That is, in terms of the time point at which the scan is performed, the second time point may be a consecutive time point following the first time point. However, this is only an example, and the second viewpoint is not continuous with the first viewpoint, but may be a viewpoint after the first viewpoint. For example, the second viewpoint may be a certain point in time away from the first viewpoint.
프로세서(130)는 제1 시점에 식별된 오브젝트의 위치 및 제2 시점에 식별된 오브젝트의 위치를 식별할 수 있다.The processor 130 may identify the location of the object identified at the first viewpoint and the location of the object identified at the second viewpoint.
여기에서, 제1 시점에 식별된 오브젝트의 위치 및 제2 시점에 식별된 오브젝트의 위치는 극좌표계 상에서 표현될 수 있다. 예를 들어, 오브젝트의 위치는 로봇(100)의 중심이 원점에 위치하는 로봇(100)의 극좌표계 상에서 유향 거리(r) 및 유향 방향(θ)으로 표현될 수 있다.Here, the location of the object identified at the first viewpoint and the location of the object identified at the second viewpoint may be expressed in polar coordinates. For example, the location of the object may be expressed as a directed distance (r) and a directed direction (θ) in the polar coordinate system of the robot 100 where the center of the robot 100 is located at the origin.
그리고, 프로세서(130)는 제1 시점에 식별된 오브젝트의 위치 및 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임에 기초하여, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역(22)에 위치하는지를 식별할 수 있다. 일 예로, 프로세서(130)는 제1 시점에서의 포즈 정보 및 제2 시점에서의 포즈 정보를 식별하고, 식별된 포즈 정보에 기초하여 로봇(100)의 움직임을 식별할 수 있다. And, the processor 130 determines that the object identified at the first viewpoint is based on the position of the object identified at the first viewpoint and the movement of the robot 100 at the second viewpoint based on the first viewpoint. It is possible to identify whether it is located in the second area 22. As an example, the processor 130 may identify pose information at a first viewpoint and pose information at a second viewpoint, and identify the movement of the robot 100 based on the identified pose information.
여기에서, 로봇(100)의 움직임은 제1 시점을 기준으로 로봇(100)이 움직인 거리, 제1 시점을 기준으로 로봇(100)이 움직인 방향 및 제1 시점을 기준으로 로봇(100)이 회전한 방향 중 적어도 하나를 포함할 수 있다. 즉, 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임은 제1 시점의 로봇(100)의 위치 및 자세 등을 고려하여, 제2 시점의 로봇(100)이 제1 시점의 위치로부터 어느 방향으로 얼마만큼 떨어진 지점에 위치하는지 및 제1 시점의 로봇(100)의 자세를 기준으로 얼마만큼 회전하였는지를 포함할 수 있다. Here, the movement of the robot 100 includes the distance the robot 100 moved based on the first viewpoint, the direction in which the robot 100 moved based on the first viewpoint, and the movement of the robot 100 based on the first viewpoint. It may include at least one of these rotation directions. That is, the movement of the robot 100 at the second viewpoint based on the first viewpoint takes into account the position and posture of the robot 100 at the first viewpoint, etc., so that the robot 100 at the second viewpoint is It may include how far the robot 100 is located in which direction from its position and how much it has rotated based on the posture of the robot 100 at the first viewpoint.
이를 위해, 프로세서(130)는 제1 시점에서의 로봇(100)의 위치 및 제2 시점에서의 로봇(100)의 위치를 식별할 수 있다. To this end, the processor 130 may identify the position of the robot 100 at the first viewpoint and the position of the robot 100 at the second viewpoint.
예를 들어, 프로세서(130)는 센서(110)를 통해 센싱된 데이터 및 SLAM(simultaneous localization and mapping) 알고리즘을 이용하여, 로봇(100)이 위치하는 공간의 맵 상에서 로봇(100)의 위치를 식별할 수 있다. 여기에서, 로봇(100)의 위치는 극좌표계 상에서 표현될 수 있다. 예를 들어, 로봇(100)의 위치는 맵의 특정한 지점이 원점에 위치하는 맵의 극좌표계 상에서 유향 거리 및 유향 방향으로 표현될 수 있다. 극좌표계를 예를 들어 설명하였으나, 이에 한정되는 것은 아니고 직교 좌표계와 같은 다른 좌표계를 이용할 수 있음은 물론이다. For example, the processor 130 uses data sensed through the sensor 110 and a simultaneous localization and mapping (SLAM) algorithm to identify the location of the robot 100 on a map of the space where the robot 100 is located. can do. Here, the position of the robot 100 can be expressed in polar coordinates. For example, the location of the robot 100 may be expressed in terms of directed distance and directed direction on the polar coordinate system of the map, where a specific point of the map is located at the origin. Although the polar coordinate system has been described as an example, it is not limited to this and, of course, other coordinate systems such as a Cartesian coordinate system can be used.
그리고, 프로세서(130)는 식별된 위치에 기초하여, 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임을 식별할 수 있다.And, based on the identified location, the processor 130 may identify the movement of the robot 100 at the second viewpoint based on the first viewpoint.
예를 들어, 제1 시점에 맵 상에서 로봇(100)의 위치가 (ra, θa)이고, 제2 시점에 맵 상에서 로봇(100)의 위치가 (rb, θb)인 경우를 가정한다. 이 경우, 프로세서(130)는 식별된 유향 거리 및 유향 방향 간의 차이 즉, (Δr, Δθ)=(rb-ra, θba)를 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임인 것으로 식별할 수 있다. For example, assume that the position of the robot 100 on the map at the first time point is (r a , θ a ), and that the position of the robot 100 on the map at the second time point is (r b , θ b ). do. In this case, the processor 130 calculates the difference between the identified directed distance and directed direction, that is, (Δr, Δθ)=(r b -r a , θ ba ) at a second time point based on the first time point. It can be identified as the movement of the robot 100.
다른 한편, 프로세서(130)는 로봇(100)이 제1 시점부터 제2 시점까지 이동한 거리 및 이동한 방향에 기초하여, 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임을 식별할 수도 있다. 이를 위해, 프로세서(130)는 엔코더를 이용하여 로봇(100)이 제1 시점부터 제2 시점까지 이동한 거리를 식별하고, 자이로 센서로 로봇(100)이 제1 시점부터 제2 시점까지 이동한 방향을 식별할 수 있다. On the other hand, the processor 130 controls the movement of the robot 100 at the second viewpoint based on the first viewpoint based on the distance and direction in which the robot 100 moved from the first viewpoint to the second viewpoint. can also be identified. To this end, the processor 130 uses an encoder to identify the distance that the robot 100 has moved from the first point in time to the second point in time, and uses a gyro sensor to determine the distance that the robot 100 has moved from the first point in time to the second point in time. Direction can be identified.
예를 들어, 제1 시점부터 제2 시점까지 로봇(100)의 이동 거리 및 이동 방향이 (rc, θc)인 경우를 가정한다. 이 경우, 프로세서(130)는 식별된 이동 거리 및 이동 방향 즉, (Δr, Δθ)=(rc, θc)를 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임인 것으로 식별할 수 있다.For example, assume that the moving distance and moving direction of the robot 100 from the first time point to the second time point are (r c , θ c ). In this case, the processor 130 calculates the identified movement distance and movement direction, that is, (Δr, Δθ)=(r c , θ c ), as the movement of the robot 100 at the second viewpoint based on the first viewpoint. It can be identified as
그리고, 프로세서(130)는 제1 시점에 식별된 오브젝트의 위치 및 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임에 기초하여, 제1 시점에서 식별된 오브젝트가 제2 시점에 제2 영역(22)에 위치하는지를 식별할 수 있다.And, the processor 130 determines that the object identified at the first viewpoint is based on the position of the object identified at the first viewpoint and the movement of the robot 100 at the second viewpoint based on the first viewpoint. It is possible to identify whether it is located in the second area 22.
이를 위해, 프로세서(130)는 제1 시점에 제1 영역(21)에 위치하는 오브젝트의 좌표 값을 식별하고, 로봇(100)의 움직임에 기초하여 식별된 좌표 값을 제2 시점에 대응되도록 변환할 수 있다.To this end, the processor 130 identifies the coordinate value of an object located in the first area 21 at a first viewpoint, and converts the identified coordinate value based on the movement of the robot 100 to correspond to the second viewpoint. can do.
여기에서, 좌표 값을 제2 시점에 대응되도록 변환한다는 것은 로봇(100)의 중심을 원점으로 하는 좌표계 상에서, 제1 시점에 제1 영역(21)에서 식별된 오브젝트의 좌표 값을 로봇(100)이 제1 시점부터 제2 시점까지 이동한 거리 및 방향에 기초하여 변환하는 것을 의미할 수 있다. 예를 들어, 제1 시점에 제1 영역(21)에 위치하는 오브젝트의 좌표 값이 (rd, θd)이고, 제1 시점에서부터 제2 시점까지 로봇(100)의 이동 거리 및 이동 방향이 (re, θe)인 경우를 가정한다. Here, converting the coordinate value to correspond to the second viewpoint means converting the coordinate value of the object identified in the first area 21 at the first viewpoint to the robot 100 on a coordinate system with the center of the robot 100 as the origin. This may mean conversion based on the distance and direction traveled from the first time point to the second time point. For example, the coordinate values of the object located in the first area 21 at the first viewpoint are (r d , θ d ), and the movement distance and direction of movement of the robot 100 from the first viewpoint to the second viewpoint are Assume the case is (r e , θ e ).
이 경우, 프로세서(130)는 제1 시점에 제1 영역(21)에서 식별된 오브젝트의 좌표 값 (rd, θd)를 로봇(100)의 이동 거리 및 이동 방향을 이용하여 (rd', θd')로 변환할 수 있다. 구체적으로, 프로세서(130)는 로봇(100)의 중심을 원점으로 한 좌표계 상에서 제1 시점에서 식별된 오브젝트의 위치가 (x, y)=(rdcos(θd)-recos(θe), rdsin(θd)-resin(θe))로 이동되었다고 판단하고, 이를 극좌표계 상에서 (rd', θd')=(
Figure PCTKR2023009258-appb-img-000001
)로 나타낼 수 있다.
In this case, the processor 130 uses the coordinate values (r d , θ d ) of the object identified in the first area 21 at the first time point as (r d ' , θ d '). Specifically, the processor 130 determines that the location of the object identified at the first viewpoint in a coordinate system with the center of the robot 100 as the origin is (x, y)=(r d cos(θ d )-r e cos(θ e ), r d sin(θ d )-r e sin(θ e )), and this is calculated as (r d ', θ d ')=(
Figure PCTKR2023009258-appb-img-000001
) can be expressed as
이와 같이, 로봇(100)의 움직임(rrobot, θrobot)을 이용하여 오브젝트의 좌표 값 (robject, θobject)을 변환하는 경우, 변환된 좌표 값 (robject', θobject')은 (robject', θobject')=f(robject, θobject, rrobot, θrobot)와 같이 표현될 수 있다.In this way, when converting the coordinate values (r object , θ object ) of an object using the movement (r robot , θ robot ) of the robot 100, the converted coordinate values (r object ', θ object ') are ( It can be expressed as r object ', θ object ')=f(r object , θ object , r robot , θ robot ).
예를 들어, 도 4와 같이, 프로세서(130)는 t-1 초에서 로봇(100) 주변의 제1 영역(21)에서 오브젝트를 감지하고, 감지된 오브젝트의 좌표 값을 식별할 수 있다. 이때, 오브젝트의 좌표 값은 로봇 중심의 극좌표계 상의 좌표 값이다. 그리고, 도 4와 같이, 프로세서(130)는 오브젝트의 좌표 값((r1, θ1)(411), (r2, θ2)(412), (r3, θ3)(413), (r4, θ4)(414))을 마스크 맵(20) 상에 나타낼 수 있다. 한편, 실시 예에서 4 개의 포인트가 감지되는 것으로 도시하였으나, 이는 설명의 편의를 위한 일 예일 뿐이고, 4 개보다 적거나 많은 포인트가 감지될 수 있음은 물론이다.For example, as shown in FIG. 4, the processor 130 may detect an object in the first area 21 around the robot 100 at t-1 seconds and identify the coordinate value of the detected object. At this time, the coordinate value of the object is the coordinate value in the polar coordinate system centered on the robot. And, as shown in FIG. 4, the processor 130 calculates the coordinate values of the object ((r 1 , θ 1 ) (411), (r 2 , θ 2 ) (412), (r 3 , θ 3 ) (413), (r 4 , θ 4 ) (414)) can be displayed on the mask map 20. Meanwhile, although it is shown that four points are detected in the embodiment, this is only an example for convenience of explanation, and of course, fewer or more points than four points may be detected.
한편, 로봇(100)은 이동하여, 제2 시점에서는 제1 시점과는 다른 위치에 위치할 수 있다.Meanwhile, the robot 100 may move and be located in a different position from the first viewpoint at the second viewpoint.
이 경우, 도 5와 같이, 프로세서(130)는 t 초에서 로봇(100) 주변의 제1 영역(21)에서 오브젝트를 감지하고, 감지된 오브젝트의 좌표 값을 식별할 수 있다. 이때, 오브젝트의 좌표 값은 로봇 중심의 극좌표계 상의 좌표 값이다. 그리고, 도 5와 같이, 프로세서(130)는 오브젝트의 좌표 값((r5, θ5)(415), (r6, θ6)(416))을 마스크 맵(20) 상에 나타낼 수 있다. In this case, as shown in FIG. 5, the processor 130 may detect an object in the first area 21 around the robot 100 at t seconds and identify the coordinate value of the detected object. At this time, the coordinate value of the object is the coordinate value in the polar coordinate system centered on the robot. And, as shown in FIG. 5, the processor 130 may display the coordinate values of the object ((r 5 , θ 5 ) 415, (r 6 , θ 6 ) 416) on the mask map 20. .
도 5를 참조하면, t-1 초에 감지되었던 오브젝트가 t 초에는 감지되지 않을 수 있다. 이는 로봇(100)이 이동함에 따라 t 초에서 오브젝트가 센서(110)에 의해 감지되지 않는 제2 영역(22)에 위치하게 되었기 때문이다.Referring to FIG. 5, an object that was detected at t-1 seconds may not be detected at t seconds. This is because, as the robot 100 moves, the object is located in the second area 22 where it is not detected by the sensor 110 at t seconds.
한편, 프로세서(130)는 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임에 기초하여, 제1 시점에서 식별된 오브젝트의 좌표 값을 변환할 수 있다.Meanwhile, the processor 130 may convert the coordinate value of the object identified at the first viewpoint based on the movement of the robot 100 at the second viewpoint based on the first viewpoint.
이때, 전술한 바와 같이, 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임은 극좌표계 상의 유향 거리 및 유향 방향으로 표현될 수 있다. 따라서, 프로세서(130)는 로봇(100)의 움직임에 대응되는 유향 거리 및 유향 방향을 제1 시점에서 식별된 오브젝트의 좌표 값에 적용하여, 제1 시점에서 식별된 오브젝트의 좌표 값을 변환할 수 있다.At this time, as described above, the movement of the robot 100 at the second viewpoint based on the first viewpoint may be expressed as a directed distance and directed direction in polar coordinates. Accordingly, the processor 130 can convert the coordinate value of the object identified at the first viewpoint by applying the directed distance and directed direction corresponding to the movement of the robot 100 to the coordinate value of the object identified at the first viewpoint. there is.
예를 들어, 제1 시점을 기준으로 한 제2 시점에서의 로봇(100)의 움직임이 (Δr1, Δθ1)와 같은 경우를 가정한다. 이 경우, 도 6과 같이, 프로세서(130)는 (Δr1, Δθ1)을 t-1 초에서 식별된 오브젝트의 좌표 값((r1, θ1)(411), (r2, θ2)(412), (r3, θ3)(413), (r4, θ4)(414))에 적용하여, 오브젝트의 좌표 값을 변환할 수 있다. 이에 따라, 변환된 좌표 값은 (r1', θ1')(=f(r1, θ1, Δr1, Δθ1))(421), (r2', θ2')(=f(r2, θ2, Δr1, Δθ1))(422), (r3', θ3')(=f(r3, θ3, Δr1, Δθ1))(423), (r4', θ4')(=f(r4, θ4, Δr1, Δθ1))(424)와 같을 수 있다.For example, assume that the movement of the robot 100 at the second viewpoint based on the first viewpoint is equal to (Δr 1 , Δθ 1 ). In this case, as shown in FIG. 6, the processor 130 converts (Δr 1 , Δθ 1 ) into the coordinate values ((r 1 , θ 1 ) of the object identified at t-1 seconds (411), (r 2 , θ 2 )(412), (r 3 , θ 3 )(413), (r 4 , θ 4 )(414)), the coordinate value of the object can be converted. Accordingly, the converted coordinate value is (r 1 ', θ 1 ')(=f(r 1 , θ 1 , Δr 1 , Δθ 1 ))(421), (r 2 ', θ 2 ')(=f(r 2, θ 2 , Δr 1 , Δθ 1 ))(422), (r 3 ', θ 3 ')(=f(r 3 , θ 3 , Δr 1 , Δθ 1 ))(423), (r 4 ', θ 4 ')(=f(r 4 , θ 4 , It may be equal to Δr 1 , Δθ 1 ))(424).
이후, 프로세서(130)는 변환된 좌표 값을 마스크 맵(20) 상에 나타낼 수 있다. 그리고, 프로세서(130)는 변환된 좌표 값 중 마스크 맵(20)의 제2 영역(22)에 위치하는 좌표 값이 존재하는지를 식별할 수 있다.Afterwards, the processor 130 may display the converted coordinate values on the mask map 20. Additionally, the processor 130 may identify whether a coordinate value located in the second area 22 of the mask map 20 exists among the converted coordinate values.
예를 들어, 도 6과 같이, 변환된 좌표 값 중 (r1', θ1')(421), (r2', θ2')(422)는 t 초에서 마스크 맵(20)의 제2 영역(22)에 위치하게 된다. 이 경우, 프로세서(130)는 (r1', θ1'), (r2', θ2')가 t 초에서 제2 영역(20)에 위치하는 것으로 식별할 수 있다.For example, as shown in FIG. 6, among the converted coordinate values, (r 1 ', θ 1 ') 421 and (r 2 ', θ 2 ') 422 are the first part of the mask map 20 at t seconds. It is located in area 2 (22). In this case, the processor 130 may identify (r 1 ', θ 1 ') and (r 2 ', θ 2 ') as being located in the second area 20 at t seconds.
이와 같이, 프로세서(130)는 변환된 좌표 값이 제2 영역(22)에 위치하는 경우, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역(22)에 위치하는 것으로 식별할 수 있다.In this way, when the converted coordinate value is located in the second area 22, the processor 130 may identify the object identified at the first viewpoint as being located in the second area 22 at the second viewpoint. .
즉, 제1 시점에서 식별된 오브젝트의 위치는 제1 시점부터 제2 시점까지의 로봇(100)의 움직임에 기초하여 변환되었다는 점에서, 변환된 위치는 제2 시점에서 오브젝트의 위치에 해당한다. 따라서, 프로세서(130)는 변환된 좌표 값이 제2 영역(22)에 위치하는 경우, 제1 시점에 식별된 오브젝트가 제2 시점에서는 제2 영역(22)에 위치하는 것으로 식별하게 된다.That is, in that the position of the object identified at the first viewpoint is converted based on the movement of the robot 100 from the first viewpoint to the second viewpoint, the converted position corresponds to the position of the object at the second viewpoint. Accordingly, when the converted coordinate value is located in the second area 22, the processor 130 identifies the object identified at the first viewpoint as being located in the second area 22 at the second viewpoint.
이와 같이, 프로세서(130)는 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하는 것으로 식별되면, 제2 영역에서 식별된 오브젝트의 위치 정보를 메모리(120)에 저장할 수 있다.In this way, if the object identified at the first time point is identified as being located in the second area at the second time point, the processor 130 may store the location information of the object identified in the second area in the memory 120.
여기에서, 오브젝트의 위치 정보는 제1 시점에 식별되었던 오브젝트가 제2 시점에서 제2 영역에 위치하는 것으로 식별된 경우, 오브젝트의 위치에 대한 정보를 의미할 수 있다. 즉, 오브젝트의 위치 정보는 제1 시점에서 식별된 오브젝트의 좌표 값이 로봇(100)의 움직임에 기초하여 변환된 좌표 값일 수 있다. 전술한 예에서, t 초에 (r1', θ1')(421), (r2', θ2')(422)가 제2 영역(22)에 위치한다는 점에서, 프로세서(130)는 (r1', θ1')(421), (r2', θ2')(422)를 메모리(120)에 저장할 수 있다.Here, the location information of the object may mean information about the location of the object when the object identified at the first viewpoint is identified as being located in the second area at the second viewpoint. That is, the location information of the object may be a coordinate value converted from the coordinate value of the object identified at the first viewpoint based on the movement of the robot 100. In the above example, processor 130, in that (r 1 ', θ 1 ') 421 and (r 2 ', θ 2 ') 422 are located in the second region 22 at second t. (r 1 ', θ 1 ') 421 and (r 2 ', θ 2 ') 422 can be stored in the memory 120.
그리고, 프로세서(130)는 제2 시점에서 제1 및 제2 영역(21, 22)에서 식별된 오브젝트의 위치에 기초하여 로봇(100)의 주행을 제어할 수 있다.Additionally, the processor 130 may control the driving of the robot 100 based on the positions of objects identified in the first and second areas 21 and 22 at the second viewpoint.
제2 영역은 로봇(100)의 현재 위치를 기준으로, 센서(110)에 의해 오브젝트가 감지되지 않는 영역이다. 즉, 오브젝트가 제2 영역에 존재하더라도, 오브젝트는 센서(110)에 의해 감지되지 않는다. 따라서, 프로세서(130)는 제1 시점에서 식별된 오브젝트의 위치에 기초하여 제2 시점에서 제2 영역에 오브젝트가 위치하는지를 식별하여, 제2 시점에서 제2 영역에서의 오브젝트의 위치를 식별할 수 있다. 한편, 제1 영역은 로봇(100)의 현재 위치를 기준으로, 로봇(100) 주변의 오브젝트가 센서(110)에 의해 감지될 수 있는 영역이다. 따라서, 프로세서(130)는 제2 시점에서 센서(110)를 통해 제1 영역에서의 오브젝트의 위치를 식별할 수 있다. The second area is an area where no object is detected by the sensor 110, based on the current location of the robot 100. That is, even if the object exists in the second area, the object is not detected by the sensor 110. Accordingly, the processor 130 can identify whether the object is located in the second area at the second viewpoint based on the location of the object identified at the first viewpoint, and identify the location of the object in the second area at the second viewpoint. there is. Meanwhile, the first area is an area where objects around the robot 100 can be detected by the sensor 110, based on the current location of the robot 100. Accordingly, the processor 130 may identify the location of the object in the first area through the sensor 110 at the second viewpoint.
그리고, 프로세서(130)는 제1 및 제2 영역에서 식별된 오브젝트에 위치에 기초하여 제1 및 제2 영역에 위치하는 오브젝트를 회피하여 주행하도록 로봇(100)을 제어할 수 있다.Additionally, the processor 130 may control the robot 100 to run while avoiding objects located in the first and second areas based on the positions of the objects identified in the first and second areas.
예를 들어, 도 7을 참조하면, t 초에, 제2 영역에서 식별된 오브젝트의 좌표 값은 (r1', θ1')(421), (r2', θ2')(422)와 같고, 제1 영역에서 식별된 오브젝트의 좌표 값은 (r5, θ5)(415), (r6, θ6)(416)와 같다. 이 경우, 프로세서(130)는 이들 좌표 값들을 통합하여, 로봇(100) 주변의 제1 및 제2 영역에 존재하는 오브젝트의 위치를 식별하고, 식별된 오브젝트의 위치를 이용하여 오브젝트를 회피하여 주행하도록 로봇(100)을 제어할 수 있다.For example, referring to Figure 7, at second t, the coordinate values of the object identified in the second region are (r 1 ', θ 1 ') (421), (r 2 ', θ 2 ') (422) and the coordinate values of the object identified in the first area are (r 5 , θ 5 ) (415) and (r 6 , θ 6 ) (416). In this case, the processor 130 integrates these coordinate values, identifies the location of the object existing in the first and second areas around the robot 100, and uses the location of the identified object to avoid the object and drive. The robot 100 can be controlled to do so.
한편, 프로세서(130)는 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하지 않는 것으로 식별되면, 제2 시점에 제1 영역에서 식별된 오브젝트의 위치에 기초하여 로봇(100)의 주행을 제어할 수 있다.Meanwhile, if the processor 130 determines that the object identified at the first time point is not located in the second area at the second time point, the processor 130 moves the robot 100 based on the location of the object identified in the first area at the second time point. You can control the driving of .
즉, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하지 않는 것으로 식별되면, 제2 시점에는 제1 영역에만 오브젝트가 존재하는 것으로 볼 수 있다. 이 경우, 프로세서(130)는 제2 시점에서 센서(110)를 통해 제1 영역에서 오브젝트의 위치를 식별하고, 식별된 오브젝트의 위치를 이용하여 오브젝트를 회피하여 주행하도록 로봇(100)을 제어할 수 있다.That is, if the object identified at the first viewpoint is identified as not being located in the second area at the second viewpoint, the object can be viewed as existing only in the first area at the second viewpoint. In this case, the processor 130 identifies the location of the object in the first area through the sensor 110 at the second viewpoint, and controls the robot 100 to run while avoiding the object using the location of the identified object. You can.
또한, 프로세서(130)는 제3 시점에 센서(110)를 통해 제1 영역에서 오브젝트를 식별할 수 있다.Additionally, the processor 130 may identify an object in the first area through the sensor 110 at a third viewpoint.
전술한 바와 같이, 제1 영역(21)은 센서(110)에 의해 감지될 수 있는 로봇(100) 주변의 영역에 해당한다. 따라서, 로봇(100) 주변에 오브젝트가 존재하는 경우, 프로세서(130)는 카메라, 라이다 센서 등을 이용하여, 로봇(100) 주변의 제1 영역(20)에서 오브젝트를 감지할 수 있다.As described above, the first area 21 corresponds to an area around the robot 100 that can be detected by the sensor 110. Accordingly, when an object exists around the robot 100, the processor 130 may detect the object in the first area 20 around the robot 100 using a camera, a lidar sensor, etc.
제3 시점은 제2 시점 이후의 시점일 수 있다. 구체적으로, 프로세서(130)는 센서(110)를 통해 로봇(100) 주변을 일정한 시간 간격으로 스캔하여, 오브젝트를 감지할 수 있다. 여기에서, 스캔이라는 것은 오브젝트를 감지하기 위해, 카메라를 통해 촬영을 수행하거나, 라이다 센서를 통해 빛을 조사하는 것을 포함할 수 있다. 이때, 제2 시점에 스캔이 수행된 경우, 제3 시점은 제2 시점에 이어서 스캔이 수행되는 시점일 수 있다. 즉, 스캔이 수행되는 시점 측면에서, 제3 시점은 제2 시점 다음의 연속된 시점일 수 있다. 다만, 이는 일 예일 뿐이고, 제3 시점은 제2 시점과 연속되지 않지만, 제2 시점 이후의 시점일 수도 있다. 예를 들어, 제3 시점은 제2 시점으로부터 일정한 시점 떨어진 시점일 수도 있다.The third point in time may be a point in time after the second point in time. Specifically, the processor 130 can detect an object by scanning the area around the robot 100 at regular time intervals through the sensor 110. Here, scanning may include performing photography through a camera or irradiating light through a LiDAR sensor to detect an object. At this time, if the scan is performed at the second time point, the third time point may be the time point at which the scan is performed following the second time point. That is, in terms of the time point at which the scan is performed, the third time point may be a consecutive time point following the second time point. However, this is only an example, and the third viewpoint is not continuous with the second viewpoint, but may be a viewpoint after the second viewpoint. For example, the third viewpoint may be a certain point in time away from the second viewpoint.
프로세서(130)는 제2 시점에 식별된 오브젝트의 위치 및 제3 시점에 식별된 오브젝트의 위치를 식별할 수 있다.The processor 130 may identify the location of the object identified at the second viewpoint and the location of the object identified at the third viewpoint.
여기에서, 제2 시점에 식별된 오브젝트의 위치 및 제3 시점에 식별된 오브젝트의 위치는 극좌표계 상에서 표현될 수 있다. 예를 들어, 오브젝트의 위치는 로봇(100)의 중심이 원점에 위치하는 로봇(100)의 극좌표계 상에서 유향 거리 및 유향 방향으로 표현될 수 있다.Here, the location of the object identified at the second viewpoint and the location of the object identified at the third viewpoint may be expressed in polar coordinates. For example, the location of the object may be expressed as a directed distance and a directed direction on the polar coordinate system of the robot 100 where the center of the robot 100 is located at the origin.
그리고, 프로세서(130)는 제2 시점에 식별된 오브젝트의 위치 및 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임에 기초하여, 제2 시점에 식별된 오브젝트가 제3 시점에 제2 영역(22)에 위치하는지를 식별할 수 있다.And, the processor 130 determines that the object identified at the second viewpoint is based on the position of the object identified at the second viewpoint and the movement of the robot 100 at the third viewpoint based on the second viewpoint. It is possible to identify whether it is located in the second area 22.
여기에서, 로봇(100)의 움직임은 제2 시점을 기준으로 로봇(100)이 움직인 거리, 제2 시점을 기준으로 로봇(100)이 움직인 방향 및 제2 시점을 기준으로 로봇(100)이 회전한 방향 중 적어도 하나를 포함할 수 있다. Here, the movement of the robot 100 includes the distance the robot 100 moved based on the second viewpoint, the direction in which the robot 100 moved based on the second viewpoint, and the movement of the robot 100 based on the second viewpoint. It may include at least one of these rotation directions.
즉, 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임은 제2 시점의 로봇(100)의 위치 및 자세 등을 고려하여, 제3 시점의 로봇(100)이 제2 시점의 위치로부터 어느 방향으로 얼마만큼 떨어진 지점에 위치하는지 및 제2 시점의 로봇(100)의 자세를 기준으로 얼마만큼 회전하였는지를 포함할 수 있다. That is, the movement of the robot 100 at the third viewpoint based on the second viewpoint takes into account the position and posture of the robot 100 at the second viewpoint, etc., so that the robot 100 at the third viewpoint is It may include how far the robot 100 is located in which direction from its position and how much it has rotated based on the posture of the robot 100 at the second viewpoint.
이를 위해, 프로세서(130)는 제2 시점에서의 로봇(100)의 위치 및 제3 시점에서의 로봇(100)의 위치를 식별할 수 있다. To this end, the processor 130 may identify the position of the robot 100 at the second viewpoint and the position of the robot 100 at the third viewpoint.
예를 들어, 프로세서(130)는 센서(110)를 통해 획득한 정보 및 SLAM(simultaneous localization and mapping) 알고리즘을 이용하여, 로봇(100)이 위치하는 공간의 맵 상에서 로봇(100)의 위치를 식별할 수 있다. 여기에서, 로봇(100)의 위치는 극좌표계 상에서 표현될 수 있다. 예를 들어, 로봇(100)의 위치는 맵의 특정한 지점이 원점에 위치하는 맵의 극좌표계 상에서 유향 거리 및 유향 방향으로 표현될 수 있다. For example, the processor 130 uses information acquired through the sensor 110 and a simultaneous localization and mapping (SLAM) algorithm to identify the location of the robot 100 on a map of the space where the robot 100 is located. can do. Here, the position of the robot 100 can be expressed in polar coordinates. For example, the location of the robot 100 may be expressed in terms of directed distance and directed direction on the polar coordinate system of the map, where a specific point of the map is located at the origin.
그리고, 프로세서(130)는 식별된 위치에 기초하여, 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임을 식별할 수 있다.And, based on the identified location, the processor 130 may identify the movement of the robot 100 at the third viewpoint based on the second viewpoint.
예를 들어, 제2 시점에 맵 상에서 로봇(100)의 위치가 (re, θe)이고, 제3 시점에 맵 상에서 로봇(100)의 위치가 (rf, θf)인 경우를 가정한다. 이 경우, 프로세서(130)는 식별된 유향 거리 및 유향 방향 간의 차이 즉, (Δr, Δθ)=(rf-re, θfe)를 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임인 것으로 식별할 수 있다.For example, assume that the position of the robot 100 on the map at the second viewpoint is (r e , θ e ), and that the position of the robot 100 on the map at the third viewpoint is (r f , θ f ). do. In this case, the processor 130 calculates the difference between the identified directed distance and directed direction, that is, (Δr, Δθ)=(r f -r e , θ fe ) at a third time point based on the second time point. It can be identified as the movement of the robot 100.
다른 한편, 프로세서(130)는 로봇(100)이 제2 시점부터 제3 시점까지 이동한 거리 및 이동한 방향에 기초하여, 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임을 식별할 수도 있다. 이를 위해, 프로세서(130)는 엔코더를 이용하여 로봇(100)이 제2 시점부터 제3 시점까지 이동한 거리를 식별하고, 자이로 센서를 로봇(100)이 제2 시점부터 제3 시점까지 이동한 방향을 식별할 수 있다. On the other hand, the processor 130 controls the movement of the robot 100 at the third viewpoint based on the second viewpoint, based on the distance and direction in which the robot 100 moved from the second viewpoint to the third viewpoint. can also be identified. To this end, the processor 130 uses an encoder to identify the distance the robot 100 has moved from the second time point to the third time point, and uses the gyro sensor to determine the distance the robot 100 has moved from the second time point to the third time point. Direction can be identified.
예를 들어, 제2 시점부터 제3 시점까지 로봇(100)의 이동 거리 및 이동 방향이 (rg, θg)인 경우를 가정한다. 이 경우, 프로세서(130)는 식별된 이동 거리 및 방향 즉, (Δr, Δθ)=(rg, θg)를 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임인 것으로 식별할 수 있다.For example, assume that the moving distance and moving direction of the robot 100 from the second to the third time point are (r g , θ g ). In this case, the processor 130 determines the identified movement distance and direction, that is, (Δr, Δθ)=(r g , θ g ), as the movement of the robot 100 at the third viewpoint based on the second viewpoint. can be identified.
그리고, 프로세서(130)는 제2 시점에 식별된 오브젝트의 위치 및 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임에 기초하여, 제2 시점에서 식별된 오브젝트가 제3 시점에 제2 영역(22)에 위치하는지를 식별할 수 있다.And, the processor 130 determines that the object identified at the second viewpoint is based on the position of the object identified at the second viewpoint and the movement of the robot 100 at the third viewpoint based on the second viewpoint. It is possible to identify whether it is located in the second area 22.
이를 위해, 프로세서(130)는 제2 시점에 제1 영역(21)에 위치하는 오브젝트의 좌표 값을 식별하고, 로봇(100)의 움직임에 기초하여 식별된 좌표 값을 제3 시점에 대응되도록 변환할 수 있다.To this end, the processor 130 identifies the coordinate value of an object located in the first area 21 at the second viewpoint, and converts the identified coordinate value based on the movement of the robot 100 to correspond to the third viewpoint. can do.
여기에서, 좌표 값을 제3 시점에 대응되도록 변환한다는 것은 로봇(100)의 중심을 원점으로 하는 좌표계 상에서, 제2 시점에 제1 영역(21)에서 식별된 오브젝트의 좌표 값을 로봇(100)이 제2 시점부터 제3 시점까지 이동한 거리 및 방향에 기초하여 이동시키는 것을 의미할 수 있다. 예를 들어, 제2 시점에 제1 영역(21)에 위치하는 오브젝트의 좌표 값이 (rh, θh)이고, 제2 시점에서부터 제3 시점까지 로봇(100)의 이동 거리 및 이동 방향이 (ri, θi)인 경우를 가정한다. Here, converting the coordinate value to correspond to the third viewpoint means converting the coordinate value of the object identified in the first area 21 at the second viewpoint to the robot 100 on a coordinate system with the center of the robot 100 as the origin. This may mean moving based on the distance and direction moved from the second viewpoint to the third viewpoint. For example, the coordinate values of the object located in the first area 21 at the second viewpoint are (r h , θ h ), and the movement distance and direction of movement of the robot 100 from the second viewpoint to the third viewpoint are Assume the case is (r i , θ i ).
이 경우, 프로세서(130)는 제2 시점에 제1 영역(21)에서 식별된 오브젝트의 좌표 값 (rd, θd)를 로봇(100)의 이동 거리 및 이동 방향을 이용하여 (rh', θh')로 변환할 수 있다. 전술한 바와 같이 변환된 좌표 값 (rh', θh')은 (rh', θh')=f(rh, θh, ri, θi)와 같이 나타낼 수 있다. In this case, the processor 130 uses the coordinate values (r d , θ d ) of the object identified in the first area 21 at the second time point as (r h ') using the movement distance and direction of movement of the robot 100. , θ h '). As described above, the converted coordinate values (r h ', θ h ') can be expressed as (r h ', θ h ')=f(r h , θ h, r i , θ i ).
한편, 로봇(100)은 이동하여, 제3 시점에서는 제2 시점과는 다른 위치에 위치할 수 있다. 이 경우, 도 8과 같이, 프로세서(130)는 t+1 초에서 로봇(100) 주변의 제1 영역(21)에서 오브젝트를 감지하고, 감지된 오브젝트의 좌표 값을 식별할 수 있다. 이때, 오브젝트의 좌표 값은 극좌표계 상의 좌표 값이다. 그리고, 도 8과 같이, 프로세서(130)는 오브젝트의 좌표 값((r7, θ7)(511), (r8, θ8)(512))을 마스크 맵(20) 상에 나타낼 수 있다. 한편, 실시 예에서 2 개의 포인트가 감지되는 것으로 도시하였으나, 이는 설명의 편의를 위한 일 예일 뿐이고, 2 개보다 적거나 많은 포인트가 감지될 수 있음은 물론이다.Meanwhile, the robot 100 may move and be located in a different position from the second viewpoint at the third viewpoint. In this case, as shown in FIG. 8, the processor 130 may detect an object in the first area 21 around the robot 100 at t+1 seconds and identify the coordinate value of the detected object. At this time, the coordinate value of the object is a coordinate value in the polar coordinate system. And, as shown in FIG. 8, the processor 130 can display the coordinate values of the object ((r 7 , θ 7 ) (511) and (r 8 , θ 8 ) (512)) on the mask map 20. . Meanwhile, in the embodiment, it is shown that two points are detected, but this is only an example for convenience of explanation, and of course, fewer or more points than two can be detected.
도 8을 참조하면, t 초에 감지되지 않았던 오브젝트가 t+1 초에는 감지될 수 있다. 또한, t 초에 감지되었던 오브젝트가 t+1 초에는 감지되지 않을 수 있다. 이는 로봇(100)이 이동함에 따라 t+1 초에서 오브젝트가 센서(110)에 의해 감지되는 제1 영역(21)에 위치하게 되었고, 오브젝트가 센서(110)에 의해 감지되지 않는 제2 영역(22)에 위치하게 되었기 때문이다.Referring to FIG. 8, an object that was not detected at t seconds may be detected at t+1 seconds. Additionally, an object that was detected at t seconds may not be detected at t+1 seconds. As the robot 100 moves, it is located in the first area 21 where the object is detected by the sensor 110 at t+1 seconds, and the second area 21 where the object is not detected by the sensor 110 ( This is because it was located at 22).
한편, 프로세서(130)는 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임에 기초하여, 제2 시점에서 식별된 오브젝트의 좌표 값을 변환할 수 있다.Meanwhile, the processor 130 may convert the coordinate value of the object identified at the second viewpoint based on the movement of the robot 100 at the third viewpoint based on the second viewpoint.
이때, 전술한 바와 같이, 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임은 극좌표계 상의 유향 거리 및 유향 방향으로 표현될 수 있다. 따라서, 프로세서(130)는 로봇(100)의 움직임에 대응되는 유향 거리 및 유향 방향을 제2 시점에서 식별된 오브젝트의 좌표 값에 적용하여, 제2 시점에서 식별된 오브젝트의 좌표 값을 변환할 수 있다.At this time, as described above, the movement of the robot 100 at the third viewpoint based on the second viewpoint may be expressed as a directed distance and directed direction in polar coordinates. Accordingly, the processor 130 can convert the coordinate value of the object identified at the second viewpoint by applying the directed distance and directed direction corresponding to the movement of the robot 100 to the coordinate value of the object identified at the second viewpoint. there is.
여기에서, 제2 시점에 식별된 오브젝트는 센서(110)를 통해 제1 영역에서 식별된 오브젝트를 포함할 수 있다. 또한, 제2 영역에서 식별된 오브젝트가 존재하는 경우, 제2 시점에 식별된 오브젝트는 제2 영역에서 식별된 오브젝트를 포함할 수 있다.Here, the object identified at the second viewpoint may include the object identified in the first area through the sensor 110. Additionally, when an object identified in the second area exists, the object identified at the second time point may include the object identified in the second area.
예를 들어, 제2 시점을 기준으로 한 제3 시점에서의 로봇(100)의 움직임이 (Δr2, Δθ2)와 같은 경우를 가정한다. For example, assume that the movement of the robot 100 at the third viewpoint based on the second viewpoint is equal to (Δr 2 , Δθ 2 ).
이 경우, 도 9의 (1) 및 (2)와 같이, 프로세서(130)는 t 초에 센서(110)를 통해 제1 영역(21)에서 식별된 오브젝트의 좌표 값((r5, θ5)(415), (r6, θ6)(416))에 (Δr2, Δθ2)를 적용하여, t 시점에 제1 영역(21)에서 식별된 오브젝트의 좌표 값을 변환할 수 있다. 이 경우, 변환된 좌표 값은 (r5', θ5')(=f(r5, θ5, Δr2, Δθ2))(523), (r6', θ6')(=f(r6, θ6, Δr2, Δθ2))(524)와 같을 수 있다.In this case, as shown in (1) and (2) of FIG. 9, the processor 130 calculates the coordinate values ((r 5 , θ 5 ) (415), (r 6 , θ 6 ) (416)) can be applied to (Δr 2 , Δθ 2 ) to transform the coordinate value of the object identified in the first area 21 at time t. In this case, the converted coordinate values are (r 5 ', θ 5 ')(=f(r 5 , θ 5, Δr 2 , Δθ 2 ))(523), (r 6 ', θ 6 ')(=f It may be equal to (r 6, θ 6, Δr 2 , Δθ 2 )) (524).
또한, 도 9의 (3) 및 (4)와 같이, 프로세서(130)는 t 초에 메모리(120)에 저장된 제2 영역(22)에 위치하는 오브젝트의 좌표 값((r1', θ1')(421), (r2', θ2')(422))에 (Δr2, Δθ2)를 적용하여, t 시점에 제2 영역(22)에서 식별된 오브젝트의 좌표 값을 변환할 수 있다. 이 경우, 변환된 좌표 값은 (r1'', θ1'')(=f(r1', θ1', Δr2, Δθ2))(521), (r2'', θ2'')(=f(r2', θ2', Δr2, Δθ2))(522)와 같을 수 있다.In addition, as shown in (3) and (4) of FIG. 9, the processor 130 calculates the coordinate values ((r 1 ', θ 1 ') (421), (r 2 ', θ 2 ') (422)) by applying (Δr 2 , Δθ 2 ) to convert the coordinate value of the object identified in the second area 22 at time t. You can. In this case, the converted coordinate values are (r 1 '', θ 1 '')(=f(r 1 ', θ 1 ' , Δr 2 , Δθ 2 ))(521), (r 2 '', θ 2 '')(=f(r 2 ', θ 2 ' , Δr 2 , Δθ 2 )) (522).
이후, 프로세서(130)는 변환된 좌표 값을 마스크 맵(20) 상에 나타낼 수 있다. 그리고, 프로세서(130)는 변환된 좌표 값 중 마스크 맵(20)의 제2 영역(22)에 위치하는 좌표 값이 존재하는지를 식별할 수 있다.Afterwards, the processor 130 may display the converted coordinate values on the mask map 20. Additionally, the processor 130 may identify whether a coordinate value located in the second area 22 of the mask map 20 exists among the converted coordinate values.
예를 들어, 도 9의 (1) 및 (2)와 같이, 변환된 좌표 값 중 (r6', θ6')(524)는 마스크 맵(20)의 제2 영역(22)에 위치하게 된다. 또한, 도 9의 (3) 및 (4)와 같이, 변환된 좌표 값 중 (r1'', θ1'')(521)는 마스크 맵(20)의 제2 영역(22)에 위치하게 된다. 이 경우, 프로세서(130)는 (r6', θ6')(524) 및 (r1'', θ1'')(521)가 제2 영역(22)에 위치하는 것으로 식별할 수 있다. For example, as shown in (1) and (2) of FIG. 9, (r 6 ', θ 6 ') 524 among the converted coordinate values is located in the second area 22 of the mask map 20. do. In addition, as shown in (3) and (4) of FIG. 9, (r 1 '', θ 1 '') 521 among the converted coordinate values is located in the second area 22 of the mask map 20. do. In this case, the processor 130 may identify (r 6 ', θ 6 ') 524 and (r 1 '', θ 1 '') 521 as being located in the second area 22. .
이와 같이, 프로세서(130)는 변환된 좌표 값이 제2 영역(22)에 위치하는 경우, 제2 시점에 식별된 오브젝트가 제3 시점에 제2 영역(22)에 위치하는 것으로 식별할 수 있다. 즉, 제2 시점에서 식별된 오브젝트의 위치는 제2 시점부터 제3 시점까지의 로봇(100)의 움직임에 기초하여 변환되었다는 점에서, 변환된 위치는 제3 시점에서의 오브젝트의 위치에 해당한다. 따라서, 프로세서(130)는 변환된 좌표 값이 제2 영역(22)에 위치하는 경우, 제2 시점에 식별된 오브젝트가 제3 시점에서는 제2 영역(22)에 위치하는 것으로 식별하게 된다.In this way, when the converted coordinate value is located in the second area 22, the processor 130 may identify the object identified at the second viewpoint as being located in the second area 22 at the third viewpoint. . That is, in that the position of the object identified at the second viewpoint was converted based on the movement of the robot 100 from the second viewpoint to the third viewpoint, the converted position corresponds to the position of the object at the third viewpoint. . Accordingly, when the converted coordinate value is located in the second area 22, the processor 130 identifies the object identified at the second viewpoint as being located in the second area 22 at the third viewpoint.
그리고, 프로세서(130)는 제2 시점에 식별된 오브젝트가 제3 시점에 제2 영역에 위치하는 것으로 식별되면, 제2 영역에서 식별된 오브젝트의 위치 정보를 메모리(120)에 저장할 수 있다.Additionally, if the object identified at the second time point is identified as being located in the second area at the third time point, the processor 130 may store location information of the object identified in the second area in the memory 120.
여기에서, 오브젝트의 위치 정보는 제2 시점에 식별되었던 오브젝트가 제3 시점에서 제2 영역에 위치하는 것으로 식별된 경우, 오브젝트의 위치에 대한 정보를 의미할 수 있다. 즉, 오브젝트의 위치 정보는 제2 시점에서 식별된 오브젝트의 좌표 값이 로봇(100)의 움직임에 기초하여 변환된 좌표 값일 수 있다. 전술한 예에서, (r6', θ6')(524)가 제2 영역(22)에 위치한다는 점에서, 프로세서(130)는 (r6', θ6')(524)를 메모리(120)에 저장할 수 있다. 또한, (r1'', θ1'')(521)가 제2 영역(22)에 위치한다는 점에서, 프로세서(130)는 기존의 좌표 값 (r1', θ1')(421)을 (r1'', θ1'')(521)로 업데이트하고, (r1'', θ1'')(521)를 메모리(120)에 저장할 수 있다. Here, the location information of the object may mean information about the location of the object when the object identified at the second viewpoint is identified as being located in the second area at the third viewpoint. That is, the location information of the object may be a coordinate value converted from the coordinate value of the object identified at the second viewpoint based on the movement of the robot 100. In the above-described example, given that (r 6 ', θ 6 ') 524 is located in the second region 22, processor 130 stores (r 6 ', θ 6 ') 524 as memory ( 120). Additionally, given that (r 1 '', θ 1 '') 521 is located in the second area 22, the processor 130 uses the existing coordinate value (r 1 ', θ 1 ') 421 can be updated to (r 1 '', θ 1 '') 521 , and (r 1 '', θ 1 '') 521 can be stored in the memory 120 .
그리고, 프로세서(130)는 제3 시점에서 제1 및 제2 영역(21, 22)에서 식별된 오브젝트의 위치에 기초하여 로봇(100)의 주행을 제어할 수 있다.Additionally, the processor 130 may control the driving of the robot 100 based on the positions of objects identified in the first and second areas 21 and 22 at the third viewpoint.
즉, 제2 영역은 로봇(100)의 현재 위치를 기준으로, 로봇(100) 주변의 오브젝트가 센서(110)에 의해 감지되지 않는 영역이다. 제2 영역에 존재하더라도, 해당 오브젝트는 센서(110)에 의해 감지되지 않는다. 따라서, 프로세서(130)는 제2 시점에서 식별된 오브젝트의 위치에 기초하여, 제3 시점에서 제2 영역에 오브젝트가 위치하는지를 식별하여, 제3 시점에서 제2 영역에서의 오브젝트의 위치를 식별할 수 있다. 한편, 제1 영역은 로봇(100)의 현재 위치를 기준으로, 로봇(100) 주변의 오브젝트가 센서(110)에 의해 감지될 수 있는 영역이다. 따라서, 프로세서(130)는 제3 시점에서 센서(110)를 통해 제1 영역에서의 오브젝트의 위치를 식별할 수 있다. That is, the second area is an area in which objects around the robot 100 are not detected by the sensor 110, based on the current location of the robot 100. Even if it exists in the second area, the corresponding object is not detected by the sensor 110. Accordingly, the processor 130 identifies whether the object is located in the second area at the third viewpoint, based on the location of the object identified at the second viewpoint, and identifies the location of the object in the second area at the third viewpoint. You can. Meanwhile, the first area is an area where objects around the robot 100 can be detected by the sensor 110, based on the current location of the robot 100. Accordingly, the processor 130 may identify the location of the object in the first area through the sensor 110 from the third viewpoint.
그리고, 프로세서(130)는 제1 및 제2 영역에서 식별된 오브젝트에 위치에 기초하여 제1 및 제2 영역에 위치하는 오브젝트를 회피하여 주행하도록 로봇(100)을 제어할 수 있다.Additionally, the processor 130 may control the robot 100 to run while avoiding objects located in the first and second areas based on the positions of the objects identified in the first and second areas.
예를 들어, 도 10을 참조하면, t+1 초에, 제2 영역(22)에서 식별된 오브젝트의 좌표 값은 (r1'', θ1'')(521), (r6', θ6')(524)와 같고, 제1 영역(21)에서 식별된 오브젝트의 좌표 값은 (r7, θ7)(511), (r8, θ8)(512)와 같다. 이 경우, 프로세서(130)는 이들 좌표 값들을 통합하여, 로봇(100) 주변의 제1 및 제2 영역에 존재하는 오브젝트의 위치를 식별하고, 해당 오브젝트를 회피하여 주행하도록 로봇(100)을 제어할 수 있다.For example, referring to FIG. 10, at t+1 second, the coordinate values of the object identified in the second area 22 are (r 1 '', θ 1 '') 521, (r 6 ', θ 6 ') (524), and the coordinate values of the object identified in the first area 21 are equal to (r 7 , θ 7 ) (511) and (r 8 , θ 8 ) (512). In this case, the processor 130 integrates these coordinate values, identifies the positions of objects existing in the first and second areas around the robot 100, and controls the robot 100 to run while avoiding the objects. can do.
한편, 프로세서(130)는 제2 시점에 제2 영역에 위치하는 오브젝트가 제3 시점에 제2 영역에 위치하지 않는 것으로 식별되면, 메모리(120)에 저장된 오브젝트의 위치 정보를 삭제할 수 있다. 매 시점의 업데이트는 제2 영역 내의 장애물 위치 정보를 갱신하는 것만을 목적으로 한다. 특정 장애물을 추적하여 일정 영역의 점유 생성 및 해제를 별도로 판단하지 않아도, 제1 영역 내의 관측 정보는 해당 시점에서 센서가 관측한 장애물 위치 정보를 변조 없이 활용하므로, 장애물의 과거 위치 정보가 갱신되지 않아 미존재 장애물로 감지되는 잔상 문제를 해결할 수 있으며, 특정 영역의 장애물 위치 정보는 관측 가능한 최신의 정보로 업데이트할 수 있다.Meanwhile, if the processor 130 identifies that an object located in the second area at a second time point is not located in the second area at a third time point, the processor 130 may delete the location information of the object stored in the memory 120. The purpose of updating at each time point is only to update the obstacle location information within the second area. Even without separately determining the creation and release of occupancy of a certain area by tracking a specific obstacle, the observation information in the first area utilizes the obstacle location information observed by the sensor at that point in time without modulation, so the past location information of the obstacle is not updated. The problem of afterimages detected by non-existent obstacles can be solved, and obstacle location information in a specific area can be updated with the latest observable information.
전술한 바와 같이, 프로세서(130)는 제2 시점에 제2 영역에서 식별된 오브젝트의 좌표 값을 메모리(120)에 저장할 수 있다. 이후, 프로세서(130)는 메모리(120)에 저장된 좌표 값을 제2 시점을 기준으로 한 제3 시점에서의 로봇의 움직임에 기초하여 변환할 수 있다. 그리고, 프로세서(130)는 변환된 좌표 값이 제2 영역(22)에 위치하지 않는 경우, 메모리(120)에 저장된 좌표 값을 메모리(120)에서 삭제할 수 있다. 이는, 변환된 좌표 값이 제1 영역(21)에 위치하는 경우, 해당 오브젝트는 제3 시점에서 센서(110)를 통해 감지될 수 있기 때문이다. 이 경우, 프로세서(130)는 메모리(120)에서 좌표 값을 삭제하여 메모리(120)를 관리할 수 있다.As described above, the processor 130 may store the coordinate value of the object identified in the second area at the second time point in the memory 120. Thereafter, the processor 130 may convert the coordinate values stored in the memory 120 based on the movement of the robot at the third viewpoint based on the second viewpoint. Additionally, if the converted coordinate value is not located in the second area 22, the processor 130 may delete the coordinate value stored in the memory 120 from the memory 120. This is because, when the converted coordinate value is located in the first area 21, the corresponding object can be detected through the sensor 110 from a third viewpoint. In this case, the processor 130 can manage the memory 120 by deleting coordinate values from the memory 120.
전술한 예에서, 도 9의 (3) 및 (4)를 참조하면, 변환된 좌표 값 중 (r2'', θ2'')(522)는 마스크 맵(20)의 제1 영역(21)에 위치하게 된다. 이 경우, 프로세서(130)는 메모리(120)에 저장된 (r2', θ2')(422)를 삭제할 수 있다. In the above example, referring to (3) and (4) of FIG. 9, (r 2 '', θ 2 '') 522 among the converted coordinate values is the first area 21 of the mask map 20. ) is located in. In this case, the processor 130 may delete (r 2 ', θ 2 ') 422 stored in the memory 120.
한편, 프로세서(130)는 제2 시점에 식별된 오브젝트가 제3 시점에 제2 영역(22)에 위치하지 않는 것으로 식별되면, 제3 시점에 제1 영역(21)에서 식별된 오브젝트의 위치에 기초하여 로봇(100)의 주행을 제어할 수 있다.Meanwhile, if the processor 130 identifies that the object identified at the second time point is not located in the second area 22 at the third time point, the processor 130 sets the location of the object identified in the first area 21 at the third time point. Based on this, the driving of the robot 100 can be controlled.
즉, 제2 시점에 식별된 오브젝트가 제3 시점에 제2 영역(22)에 위치하지 않는 것으로 식별되면, 제3 시점에는 제1 영역에만 오브젝트가 존재하는 것으로 볼 수 있다. 이 경우, 프로세서(130)는 제3 시점에서 센서(110)를 통해 제1 영역(21)에서 오브젝트의 위치를 식별하고, 해당 오브젝트를 회피하여 주행하도록 로봇(100)을 제어할 수 있다.That is, if the object identified at the second viewpoint is identified as not being located in the second area 22 at the third viewpoint, the object may be viewed as existing only in the first area at the third viewpoint. In this case, the processor 130 may identify the location of the object in the first area 21 through the sensor 110 at the third viewpoint and control the robot 100 to run while avoiding the object.
이와 같이, 본 개시의 일 실시 예에 따르면, 로봇(100)은 센서(110)의 마스크 맵(20)의 단위 셀 별로, 오브젝트가 존재하는지를 식별할 수 있다. 이때, 로봇(100)은 현재 시점에서 센서(110)를 이용할 뿐만 아니라, 이전 시점에서 감지된 오브젝트의 위치를 고려하여, 현재 시점에서 센서(110)에 의해 감지되지 않는 영역에 오브젝트가 존재하는지를 식별할 수 있다. 또한, 비가시 영역에 위치하였던 오브젝트가 가시 영역에 위치하게 된 경우, 로봇(100)은 메모리(120)에 저장된 오브젝트의 위치 정보를 삭제할 수 있다. 즉, 로봇(100)은 현재 시점을 기준으로, 로봇(100) 주변의 비가시 영역에 존재하는 오브젝트에 대한 정보를 업데이트하게 된다. 이에 따라, 본 개시에 따라 감지되는 오브젝트의 위치는 높은 신뢰도를 가질 수 있다. 즉, 오브젝트의 동적인 특성(가령, 오브젝트의 이동 속도, 이동 방향 등)을 고려하여 센서(110)에 의해 감지되지 않는 영역에서의 오브젝트의 위치를 추정하는 경우, 오브젝트의 예기치 못한 움직임이 발생한 경우, 추정된 위치는 부정확하게 된다. 하지만, 본 개시에 따르면, 로봇(100)에서 이미 감지한 결과를 기반으로, 센서(110)에 의해 감지되지 않는 영역에 오브젝트가 존재하는지를 식별한다는 점에서, 보다 정확하게 오브젝트를 식별할 수 있고, 이에 따라, 신뢰도 높게 로봇(100)의 주행을 제어할 수 있게 된다.As such, according to an embodiment of the present disclosure, the robot 100 can identify whether an object exists for each unit cell of the mask map 20 of the sensor 110. At this time, the robot 100 not only uses the sensor 110 at the current viewpoint, but also considers the location of the object detected at the previous viewpoint to identify whether an object exists in an area that is not detected by the sensor 110 at the current viewpoint. can do. Additionally, when an object that was located in an invisible area becomes located in a visible area, the robot 100 may delete the location information of the object stored in the memory 120. That is, the robot 100 updates information about objects existing in the invisible area around the robot 100 based on the current time point. Accordingly, the location of the object detected according to the present disclosure can have high reliability. That is, when estimating the position of an object in an area not detected by the sensor 110 by considering the dynamic characteristics of the object (e.g., the object's movement speed, direction of movement, etc.), when unexpected movement of the object occurs , the estimated location becomes inaccurate. However, according to the present disclosure, based on the results already detected by the robot 100, it is possible to identify the object more accurately in that it identifies whether the object exists in an area that is not detected by the sensor 110, and thus Accordingly, it is possible to control the running of the robot 100 with high reliability.
한편, 마스크 맵(20)은 로봇(100)이 실제 주행하기 이전에 생성되어 메모리(120)에 저장될 수 있다. 뿐만 아니라, 본 개시의 일 실시 예에 따르면, 마스크 맵(20)은 로봇(100)의 주행 중에 업데이트될 수도 있다. 즉, 프로세서(130)는 주행 중에 외부 충돌, 오염 물질 등에 의해 센서(110)의 식별 범위에 문제가 발생하거나, 또는 센서(110)의 식별 범위에 발생한 문제가 해결된 경우 마스크 맵(20)의 제1 영역(21)과 제2 영역(22)을 업데이트하여 메모리(120)에 저장할 수 있다.Meanwhile, the mask map 20 may be created before the robot 100 actually drives and stored in the memory 120. In addition, according to an embodiment of the present disclosure, the mask map 20 may be updated while the robot 100 is traveling. That is, if a problem occurs in the identification range of the sensor 110 due to an external collision, contaminants, etc. while driving, or if a problem in the identification range of the sensor 110 is resolved, the processor 130 generates the mask map 20. The first area 21 and the second area 22 can be updated and stored in the memory 120.
한편, 프로세서(130)는 센서(110)가 식별할 수 있는 영역에 변화가 발생하였음을 식별하여 마스크 맵(20)을 업데이트할 수 있다. Meanwhile, the processor 130 may update the mask map 20 by identifying that a change has occurred in an area that can be identified by the sensor 110.
이 경우, 프로세서(130)는 이전에 식별한 오브젝트가 현재 식별한 오브젝트와 대응되는지에 기초하여, 센서(110)의 식별 범위가 변경되었는지를 식별할 수 있다. 구체적으로, 프로세서(130)는 현재 시점 이전에 식별된 오브젝트의 위치(가령, 좌표 값)를 로봇(100)의 움직임을 바탕으로 현재 시점에서의 위치로 변환하고, 좌표 변환된 오브젝트의 좌표 값을 현재 시점에서 제1 또는 2 영역에서 식별된 오브젝트의 좌표 값과 비교하여 마스크 맵(20)을 업데이트할 수 있다.In this case, the processor 130 may identify whether the identification range of the sensor 110 has changed based on whether the previously identified object corresponds to the currently identified object. Specifically, the processor 130 converts the position (e.g., coordinate value) of an object identified before the current point of view into a position at the current point of view based on the movement of the robot 100, and converts the coordinate values of the converted object into The mask map 20 may be updated by comparing the coordinate values of the object identified in the first or second area at the current time.
이때, 프로세서(130)는 좌표 변환된 오브젝트의 좌표 값(예를 들어, 측위 기준 정보로 사용하는 지도 상의 벽면 등과 같은 정적 오브젝트의 좌표 값)과 제1 영역에서 현재 식별한 오브젝트의 좌표 값이 대응되지 않는다면, 센서(110)가 식별할 수 있는 영역이 축소된 것으로 식별할 수 있다. 따라서, 프로세서(130)는 좌표 변환된 오브젝트의 좌표 값과 대응되는 제1 영역(21)의 셀이 비가시 상태인 것으로 식별하고, 해당 영역을 제2 영역(22)인 것으로 식별할 수 있다. At this time, the processor 130 coordinates the coordinate value of the transformed object (for example, the coordinate value of a static object such as a wall on a map used as positioning reference information) and If the coordinate values of the currently identified object in the first area do not correspond, the area that can be identified by the sensor 110 may be identified as being reduced. Accordingly, the processor 130 may identify the cells of the first area 21 corresponding to the coordinate values of the coordinate-transformed object as being invisible and identify the corresponding area as the second area 22.
반면, 프로세서(130)는 좌표 변환된 오브젝트의 좌표 값과 제2 영역에서 현재 식별한 오브젝트의 좌표 값과 대응된다면, 센서(110)가 식별할 수 있는 영역이 확장된 것으로 식별할 수 있다. 따라서, 프로세서(130)는 좌표 변환된 오브젝트의 좌표 값과 대응되는 제2 영역(22)의 셀이 가시 상태인 것으로 식별하고, 해당 영역을 제1 영역(22)인 것으로 식별할 수 있다.On the other hand, the processor 130 may identify that the area that can be identified by the sensor 110 has been expanded if the coordinate value of the converted object corresponds to the coordinate value of the object currently identified in the second area. Accordingly, the processor 130 may identify the cells of the second area 22 corresponding to the coordinate value of the coordinate-transformed object as being in a visible state and identify the corresponding area as the first area 22.
도 11은 본 개시의 일 실시 예에 따라 제1 영역의 셀을 제2 영역으로 업데이트하는 방법을 설명하기 위한 도면들이다.FIG. 11 is a diagram illustrating a method of updating a cell in a first area to a second area according to an embodiment of the present disclosure.
도 11의 (1)을 참조하면, 센서(110)에 의해 이전 시점에서 식별된 오브젝트를 나타낸 도면이다. 프로세서(130)는 센서(110)를 통해, 마스크 맵(20)의 제1 영역(21)에서 오브젝트(1110, 1120, 1130, 1140)를 식별할 수 있다.Referring to (1) of FIG. 11, it is a diagram showing an object identified at a previous viewpoint by the sensor 110. The processor 130 may identify objects 1110, 1120, 1130, and 1140 in the first area 21 of the mask map 20 through the sensor 110.
도 11의 (2)를 참조하면, 로봇(100)의 움직임에 따라, 로봇(100)을 기준으로 오브젝트(1110, 1120, 1130, 1140)의 상대적인 위치가 변경되어, 현재 시점에서 오브젝트(1110, 1120, 1130, 1140) 중 일부(1110, 1120)는 제2 영역(22)에 위치하고, 나머지(1130, 1140)는 제1 영역(21)에 위치할 수 있다. Referring to (2) of FIG. 11, according to the movement of the robot 100, the relative positions of the objects 1110, 1120, 1130, and 1140 change with respect to the robot 100, so that the objects 1110, Some (1110, 1120) of 1120, 1130, and 1140 may be located in the second area 22, and the remainder (1130, 1140) may be located in the first area 21.
이때, 현재 시점에서 센서(110)에 의해 어떠한 오브젝트도 감지되지 않은 것으로 가정한다.At this time, it is assumed that no object is detected by the sensor 110 at the current time.
도 11의 (3)을 참조하면, 프로세서(130)는 이전 시점에 식별된 오브젝트(1110, 1120, 1130, 1140)의 좌표 값을 로봇(100)의 움직임을 기초로 변환하여, 변환된 좌표 값(1111, 1121, 1131, 1141)을 획득할 수 있다.Referring to (3) of FIG. 11, the processor 130 converts the coordinate values of the objects 1110, 1120, 1130, and 1140 identified at a previous time based on the movement of the robot 100, and converts the converted coordinate values You can obtain (1111, 1121, 1131, 1141).
그리고, 프로세서(130)는 변환된 좌표 값(1111, 1121, 1131, 1141) 중 제1 영역(21)에 위치한 오브젝트(예를 들어, 정적 오브젝트)의 좌표 값(1131, 1141)이 현재 시점에 식별된 좌표 값에 대응되는지를 식별할 수 있다.And, the processor 130 determines that among the converted coordinate values 1111, 1121, 1131, and 1141, the coordinate values 1131 and 1141 of the object (e.g., static object) located in the first area 21 are at the current time. It can be identified whether it corresponds to the identified coordinate value.
여기에서, 좌표 값이 대응되는지는, 변환된 좌표 값과 동일하거나 기설정된 임계 범위 내로 근사한 좌표 값을 갖는 오브젝트가 현재 시점에서 제1 영역(21)에 존재하는지 여부에 기초하여 판단될 수 있다.Here, whether the coordinate value corresponds may be determined based on whether an object with a coordinate value that is the same as the converted coordinate value or approximates within a preset threshold range exists in the first area 21 at the current time.
이때, 프로세서(130)는 제1 영역(21)에 위치한 변환된 좌표 값(1131, 1141)에 기초하여 해당 좌표 값에 위치하는 오브젝트가 현재 시점에 존재하지 않는 것으로 식별되면, 변환된 좌표 값(1131, 1141)이 위치한 마스크 맵(20)의 셀을 비가시 상태인 것으로 식별할 수 있다. 그리고, 도 11의 (4)와 같이, 프로세서(130)는 비가시 상태로 식별된 셀의 상태를 비가시 상태 즉, 제2 영역(22)으로 업데이트하고, 업데이트된 마스크 맵(20)을 메모리(120)에 저장할 수 있다.At this time, if the processor 130 identifies that the object located at the coordinate value does not exist at the current time based on the converted coordinate values 1131 and 1141 located in the first area 21, the converted coordinate value ( The cells of the mask map 20 where 1131 and 1141) are located can be identified as being in an invisible state. And, as shown in (4) of FIG. 11, the processor 130 updates the state of the cell identified as invisible to the invisible state, that is, the second area 22, and stores the updated mask map 20 in the memory. It can be saved at (120).
이와 같이, 로봇(100)은 주행 중에 외부 충돌, 오염 물질 등에 의해 센서(110)의 식별 범위에 문제가 발생한 경우, 그에 따라 마스크 맵(20)의 제1 영역(21)을 제2 영역(22)으로 업데이트할 수 있게 된다. 이와 같은 마스크 맵(20)의 제1 영역(21)을 제2 영역(22)으로 업데이트하는 방식은 위 예에 한정하지 않는다.In this way, if a problem occurs in the identification range of the sensor 110 due to external collisions, contaminants, etc. while driving, the robot 100 changes the first area 21 of the mask map 20 to the second area 22 accordingly. ) can be updated. The method of updating the first area 21 of the mask map 20 to the second area 22 is not limited to the above example.
도 12는 본 개시의 일 실시 예에 따라 제2 영역의 셀을 제1 영역으로 업데이트하는 방법을 설명하기 위한 도면들이다.FIG. 12 is a diagram illustrating a method of updating a cell in a second area to a first area according to an embodiment of the present disclosure.
일 예로, 도 12의 (1)을 참조하면, 센서(110)에 의해 시점 이전 시점에서 식별된 오브젝트를 나타낸 도면이다. 프로세서(130)는 센서(110)를 통해, 마스크 맵(20)의 제1 영역(21)에서 오브젝트(1210, 1220, 1230, 1240)를 식별할 수 있다.As an example, referring to (1) of FIG. 12, it is a diagram showing an object identified by the sensor 110 at a previous viewpoint. The processor 130 may identify the objects 1210, 1220, 1230, and 1240 in the first area 21 of the mask map 20 through the sensor 110.
도 12의 (2)를 참조하면, 로봇(100)의 움직임에 따라, 로봇(100)을 기준으로 오브젝트(1210, 1220, 1230, 1240)의 상대적인 위치가 변경되어, 현재 시점에서 오브젝트(1210, 1220, 1230, 1240) 중 일부(1210, 1220)는 제2 영역(22)에 위치하고, 나머지(1230, 1240)는 제1 영역(21)에 위치할 수 있다. Referring to (2) of FIG. 12, according to the movement of the robot 100, the relative positions of the objects 1210, 1220, 1230, and 1240 change with respect to the robot 100, so that the objects 1210, Some (1210, 1220) of 1220, 1230, and 1240 may be located in the second area 22, and the remainder (1230, 1240) may be located in the first area 21.
이때, 현재 시점에서 센서(110)에 의해 제1 영역(21)에서 오브젝트(1230, 1240)이 감지되고, 제2 영역(22)에서 오브젝트(1210, 1220)이 감지된 것으로 가정한다.At this time, it is assumed that the objects 1230 and 1240 are detected in the first area 21 by the sensor 110 and the objects 1210 and 1220 are detected in the second area 22 at the current time.
도 12의 (4)와 같이, 프로세서(130)는 제2 영역(22)에서 오브젝트(1210, 1220)와 대응되는 셀을 가시 상태로 식별한 다음, 가시 상태로 식별된 셀의 상태를 가시 상태 즉, 제1 영역(21)으로 업데이트하고, 업데이트된 마스크 맵(20)을 메모리(120)에 저장할 수 있다.As shown in (4) of FIG. 12, the processor 130 identifies cells corresponding to the objects 1210 and 1220 in the second area 22 as visible, and then changes the state of the cells identified as visible to the visible state. That is, the first area 21 can be updated, and the updated mask map 20 can be stored in the memory 120 .
다른 예로, 도 12의 (1)을 참조하면, 센서(110)에 의해 시점 이전 시점에서 식별된 오브젝트를 나타낸 도면이다. 프로세서(130)는 센서(110)를 통해, 마스크 맵(20)의 제1 영역(21)에서 오브젝트(1210, 1220, 1230, 1240)를 식별할 수 있다.As another example, referring to (1) of FIG. 12, it is a diagram showing an object identified by the sensor 110 at a previous viewpoint. The processor 130 may identify objects 1210, 1220, 1230, and 1240 in the first area 21 of the mask map 20 through the sensor 110.
도 12의 (2)를 참조하면, 로봇(100)의 움직임에 따라, 로봇(100)을 기준으로 오브젝트(1210, 1220, 1230, 1240)의 상대적인 위치가 변경되어, 현재 시점에서 오브젝트(1210, 1220, 1230, 1240) 중 일부(1210, 1220)는 제2 영역(22)에 위치하고, 나머지(1230, 1240)는 제1 영역(21)에 위치할 수 있다. Referring to (2) of FIG. 12, according to the movement of the robot 100, the relative positions of the objects 1210, 1220, 1230, and 1240 change with respect to the robot 100, so that the objects 1210, Some (1210, 1220) of 1220, 1230, and 1240 may be located in the second area 22, and the remainder (1230, 1240) may be located in the first area 21.
이때, 현재 시점에서 센서(110)에 의해 제1 영역(21)에서 오브젝트(1230, 1240)이 감지되고, 제2 영역(22)에서 오브젝트(1210, 1220)이 감지된 것으로 가정한다.At this time, it is assumed that the objects 1230 and 1240 are detected in the first area 21 by the sensor 110 and the objects 1210 and 1220 are detected in the second area 22 at the current time.
도 12의 (3)을 참조하면, 프로세서(130)는 이전 시점에 식별된 오브젝트(1210, 1220, 1230, 1240)의 좌표 값을 로봇(100)의 움직임을 기초로 변환하여, 변환된 좌표 값(1211, 1221, 1231, 1241)을 획득할 수 있다.Referring to (3) of FIG. 12, the processor 130 converts the coordinate values of the objects 1210, 1220, 1230, and 1240 identified at a previous time based on the movement of the robot 100, and converts the coordinate values to You can obtain (1211, 1221, 1231, 1241).
그리고, 프로세서(130)는 변환된 좌표 값(1211, 1221, 1231, 1241) 중 제2 영역(22)에 위치한 오브젝트의 좌표 값(1211, 1221)이 현재 시점에 식별된 좌표 값에 대응되는지를 식별할 수 있다.And, the processor 130 determines whether the coordinate values 1211 and 1221 of the object located in the second area 22 among the converted coordinate values 1211, 1221, 1231, and 1241 correspond to the coordinate values identified at the current time. can be identified.
여기에서, 좌표 값이 대응되는지는, 변환된 좌표 값과 동일하거나 기설정된 임계 범위 내로 근사한 좌표 값을 갖는 오브젝트가 현재 시점에서 제2 영역(22)에 존재하는지 여부에 기초하여 판단될 수 있다.Here, whether the coordinate value corresponds may be determined based on whether an object with a coordinate value that is the same as the converted coordinate value or approximates within a preset threshold range exists in the second area 22 at the current time.
이때, 프로세서(130)는 제2 영역(22)에 위치한 변환된 좌표 값(1211, 1221)에 기초하여 해당 좌표 값에 위치하는 오브젝트가 현재 시점에서 감지되는 것으로 식별되면, 변환된 좌표 값(1211, 1221)이 위치한 마스크 맵(20)의 셀을 가시 상태인 것으로 식별할 수 있다. 그리고, 도 12의 (4)와 같이, 프로세서(130)는 가시 상태로 식별된 셀의 상태를 가시 상태 즉, 제1 영역(21)으로 업데이트하고, 업데이트된 마스크 맵(20)을 메모리(120)에 저장할 수 있다.At this time, if the processor 130 identifies that an object located at the corresponding coordinate value is detected at the current viewpoint based on the converted coordinate values 1211 and 1221 located in the second area 22, the converted coordinate value 1211 The cell of the mask map 20 where , 1221) is located can be identified as being in a visible state. And, as shown in (4) of FIG. 12, the processor 130 updates the state of the cell identified as visible to the visible state, that is, the first area 21, and stores the updated mask map 20 in the memory 120. ) can be saved in .
이과 같이, 로봇(100)은 주행 중에 오염 물질이 제거되는 등에 의해 센서(110)의 식별 범위에 발생하였던 문제가 해결되는 경우, 마스크 맵(20)의 제2 영역(22)을 제1 영역(21)으로 업데이트할 수 있게 된다. 이와 같은 마스크 맵(20)의 제2 영역(22)을 제1 영역(21)으로 업데이트하는 방식은 위 예에 한정하지 않는다.In this way, when the problem that occurred in the identification range of the sensor 110 is resolved due to contaminants being removed during driving, the robot 100 changes the second area 22 of the mask map 20 to the first area ( 21) can be updated. The method of updating the second area 22 of the mask map 20 to the first area 21 is not limited to the above example.
도 13은 본 개시의 일 실시 예에 따른 로봇의 세부 구성을 설명하기 위한 블록도이다.Figure 13 is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure.
도 13을 참조하면, 로봇(100)은 센서(110), 메모리(120), 프로세서(130), 구동부(140), 입력 인터페이스(150), 통신 인터페이스(160), 출력 인터페이스(170) 및 배터리(180)를 포함할 수 있다. 그러나, 이와 같은 구성은 예시적인 것으로서, 본 개시를 실시함에 있어 이와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음을 물론이다. 한편, 도 13을 설명함에 있어, 도 1 내지 도 12와 중복되는 설명은 생략하도록 한다.Referring to FIG. 13, the robot 100 includes a sensor 110, a memory 120, a processor 130, a driver 140, an input interface 150, a communication interface 160, an output interface 170, and a battery. It may include (180). However, this configuration is an example, and of course, in carrying out the present disclosure, new configurations may be added or some configurations may be omitted in addition to these configurations. Meanwhile, when describing FIG. 13, descriptions overlapping with FIGS. 1 to 12 will be omitted.
센서(110)는 라이다 센서(111), 카메라(112), 자이로 센서(113) 및 엔코더(114)를 포함할 수 있다. 다만, 이는 일 예일 뿐이고, 센서(110)는 이들 중 일부만을 포함하거나, 이들 센서 이외에 다른 종류의 센서를 더 포함할 수도 있다.The sensor 110 may include a lidar sensor 111, a camera 112, a gyro sensor 113, and an encoder 114. However, this is only an example, and the sensor 110 may include only some of these, or may further include other types of sensors in addition to these sensors.
구동부(140)는 로봇(100)을 이동시키기 위한 구성이다. 예를 들어, 구동부(140)는 로봇(100)의 본체의 좌측 및 우측에 각각 설치된 바퀴 및 바퀴들을 구동하기 위한 모터 등을 포함할 수 있다. 이에 따라, 구동부(140)는 로봇(100)의 이동, 정지, 속도 제어, 방향 전환 및 각속도 변경 등과 같은 다양한 주행 동작을 수행할 수 있다. 프로세서(130)는 구동부(140)를 구동하여 로봇(100)을 이동시킬 수 있다. 이에 따라, 로봇(100)은 이동, 정지 및 회전될 수 있다. 예를 들어, 프로세서(130)는 오브젝트의 위치에 기초하여 로봇(100)이 오브젝트와 충돌하지 않으며 이동하도록 이동 방향 및 이동 속도 등을 결정하고, 결정된 이동 방향 및 이동 속도에 따라 로봇(100)이 이동하도록 구동부(140)를 제어할 수 있다. 다만, 이는 일 예일 뿐, 구동부(140)는 로봇(100)의 주행 타입에 따라 다양한 방식으로 구현될 수 있음은 물론이다.The driving unit 140 is configured to move the robot 100. For example, the driving unit 140 may include wheels installed on the left and right sides of the main body of the robot 100, respectively, and a motor for driving the wheels. Accordingly, the driving unit 140 can perform various driving operations of the robot 100, such as moving, stopping, controlling speed, changing direction, and changing angular speed. The processor 130 may drive the driving unit 140 to move the robot 100. Accordingly, the robot 100 can move, stop, and rotate. For example, the processor 130 determines the movement direction and movement speed so that the robot 100 moves without colliding with the object based on the position of the object, and the robot 100 moves according to the determined movement direction and speed. The driving unit 140 can be controlled to move. However, this is only an example, and the driving unit 140 may be implemented in various ways depending on the driving type of the robot 100.
입력 인터페이스(150)는 회로를 포함하며, 로봇(100)에서 지원하는 각종 기능을 설정 또는 선택하기 위한 사용자 명령을 입력받을 수 있다. 이를 위해, 입력 인터페이스(150)는 복수의 버튼을 포함할 수 있고, 디스플레이의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. The input interface 150 includes a circuit and can receive user commands for setting or selecting various functions supported by the robot 100. To this end, the input interface 150 may include a plurality of buttons and may be implemented as a touch screen that can simultaneously perform the display function.
이 경우, 프로세서(130)는 입력 인터페이스(150)를 통해 입력된 사용자 명령에 기초하여 로봇(100)의 동작을 제어할 수 있다. 예를 들어, 프로세서(143)는 입력 인터페이스(150)를 통해 입력된 로봇(100)의 온/오프 명령, 로봇(100)의 기능의 온/오프 명령 등에 기초하여, 로봇(100)을 제어할 수 있다.In this case, the processor 130 may control the operation of the robot 100 based on a user command input through the input interface 150. For example, the processor 143 controls the robot 100 based on an on/off command for the robot 100 input through the input interface 150, an on/off command for the function of the robot 100, etc. You can.
통신 인터페이스(160)는 회로를 포함하며, 외부 장치와의 통신을 수행할 수 있다. 프로세서(130)는 통신 인터페이스(160)를 통해 연결된 외부 장치로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치로 각종 데이터 또는 정보를 전송할 수도 있다. The communication interface 160 includes a circuit and can perform communication with an external device. The processor 130 may receive various data or information from an external device connected through the communication interface 160, and may also transmit various data or information to the external device.
출력 인터페이스(170)는 디스플레이(171) 및 스피커(172)를 포함할 수 있다. The output interface 170 may include a display 171 and a speaker 172.
디스플레이(171)는 다양한 정보를 표시할 수 있다. 이를 위해, 디스플레이(171)는 LCD(Liquid Crystal Display) 등으로 구현될 수 있으며, 입력 인터페이스(151)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. 구체적으로, 프로세서(130)는 로봇(100)의 동작과 관련된 다양한 정보를 디스플레이(171)에 표시할 수 있다.The display 171 can display various information. To this end, the display 171 may be implemented as a liquid crystal display (LCD), etc., and may also be implemented as a touch screen that can simultaneously perform the function of the input interface 151. Specifically, the processor 130 may display various information related to the operation of the robot 100 on the display 171.
스피커(172)는 오디오를 출력할 수 있다. 구체적으로, 프로세서(130)는 로봇 (100)의 동작과 관련된 다양한 알림음 또는 음성 안내 메시지를 스피커(172)를 통해 출력할 수 있다. Speaker 172 can output audio. Specifically, the processor 130 may output various notification sounds or voice guidance messages related to the operation of the robot 100 through the speaker 172.
배터리(180)는 로봇(100)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 이 경우, 배터리(180)는 2차 전지를 포함할 수 있다. Battery 180 may supply power to at least one component of robot 100. In this case, the battery 180 may include a secondary battery.
도 14는 본 개시의 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 흐름도이다.Figure 14 is a flowchart for explaining a robot driving method according to an embodiment of the present disclosure.
본 개시의 일 실시 예에 따른 로봇은 센서 및 로봇 주변의 영역이 센서에 의해 감지 가능한 제1 영역 및 센서에 의해 감지되지 않는 제2 영역으로 구분된 마스크 맵이 저장된 메모리를 포함할 수 있다.A robot according to an embodiment of the present disclosure may include a sensor and a memory storing a mask map in which an area around the robot is divided into a first area that can be detected by the sensor and a second area that is not detected by the sensor.
먼저, 제1 시점에 센서를 통해 제1 영역에서 오브젝트를 식별한다(S1410).First, an object is identified in the first area through a sensor at a first viewpoint (S1410).
이후, 제2 시점에 센서를 통해 제1 영역에서 오브젝트를 식별한다(S1420).Afterwards, an object is identified in the first area through a sensor at a second viewpoint (S1420).
그리고, 제1 시점에 식별된 오브젝트의 위치 및 제1 시점을 기준으로 한 제2 시점에서의 로봇의 움직임에 기초하여, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하는지를 식별한다(S1430).And, based on the position of the object identified at the first viewpoint and the movement of the robot at the second viewpoint based on the first viewpoint, identify whether the object identified at the first viewpoint is located in the second area at the second viewpoint. Do it (S1430).
그리고, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하는 것으로 식별되면, 제2 영역에서 식별된 오브젝트의 위치 정보를 메모리에 저장하고, 제2 시점에 제1 및 제2 영역에서 식별된 오브젝트의 위치에 기초하여 로봇의 주행을 제어한다(S1440). 상술한 동작은 로봇의 이동되어 위치가 변경됨에 따라 반복적으로 수행될 수 있다. And, if the object identified at the first time point is identified as being located in the second area at the second time point, the location information of the object identified in the second area is stored in the memory, and the first and second areas at the second time point are stored in the memory. The driving of the robot is controlled based on the location of the object identified in (S1440). The above-described operations may be performed repeatedly as the robot moves and its position changes.
여기에서, 로봇 주변의 영역은 로봇의 중심을 원점으로 하는 극좌표계에 기초하여 복수의 셀로 구분된다. 제1 영역은 복수의 셀 중 셀에 위치한 오브젝트가 센서에 의해 감지되는 적어도 하나의 셀을 포함한다. 제2 영역은 복수의 셀 중 셀에 위치한 오브젝트가 센서에 의해 감지되지 않은 적어도 하나의 셀을 포함한다.Here, the area around the robot is divided into a plurality of cells based on a polar coordinate system with the center of the robot as the origin. The first area includes at least one cell among a plurality of cells in which an object located in the cell is detected by a sensor. The second area includes at least one cell among the plurality of cells in which an object located in the cell is not detected by the sensor.
또한, 로봇의 움직임은 제1 시점을 기준으로 로봇이 움직인 거리, 제1 시점을 기준으로 로봇이 움직인 방향 및 제1 시점을 기준으로 로봇이 회전한 방향 중 적어도 하나를 포함할 수 있다.Additionally, the movement of the robot may include at least one of the distance the robot moves relative to the first viewpoint, the direction in which the robot moves relative to the first viewpoint, and the direction in which the robot rotates relative to the first viewpoint.
한편, S1430 단계는 제1 시점에 제1 영역에 위치하는 오브젝트의 좌표 값을 식별하고, 로봇의 움직임에 기초하여 식별된 좌표 값을 제2 시점에 대응되도록 변환하고, 변환된 좌표 값이 제2 영역에 위치하는 경우, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하는 것으로 식별할 수 있다.Meanwhile, step S1430 identifies the coordinate value of an object located in the first area at the first viewpoint, converts the identified coordinate value based on the movement of the robot to correspond to the second viewpoint, and converts the converted coordinate value to the second viewpoint. When located in an area, the object identified at the first viewpoint may be identified as being located in the second area at the second viewpoint.
또한, 제1 시점에 식별된 오브젝트가 제2 시점에 제2 영역에 위치하지 않는 것으로 식별되면, 제2 시점에 제1 영역에서 식별된 오브젝트의 위치에 기초하여 로봇의 주행을 제어할 수 있다.Additionally, if the object identified at the first time point is identified as not being located in the second area at the second time point, the movement of the robot may be controlled based on the location of the object identified in the first area at the second time point.
*또한, 제3 시점에 센서를 통해 제1 영역에서 오브젝트를 식별할 수 있다. 그리고, 제2 시점에 상기 제2 영역에서 식별된 오브젝트의 위치 및 제2 시점을 기준으로 한 제3 시점에서의 로봇의 움직임에 기초하여, 제2 시점에 제2 영역에서 식별된 오브젝트가 제3 시점에 제2 영역에 위치하는지를 식별할 수 있다. 그리고, 제2 시점에 제2 영역에 위치하는 오브젝트가 제3 시점에 제2 영역에 위치하는 것으로 식별되면, 제2 영역에서 식별된 오브젝트의 위치 정보를 메모리에 저장하고, 제3 시점에서 제1 및 제2 영역에서 식별된 오브젝트에 기초하여 로봇의 주행을 제어할 수 있다.*Also, an object can be identified in the first area through a sensor at a third viewpoint. And, based on the position of the object identified in the second area at the second time point and the movement of the robot at the third view point based on the second time point, the object identified in the second area at the second time point is moved to the third view point. It is possible to identify whether it is located in the second area at the viewpoint. And, if the object located in the second area at the second viewpoint is identified as being located in the second area at the third viewpoint, the location information of the object identified in the second area is stored in the memory, and the object located in the second area at the third viewpoint is stored in the memory. And the driving of the robot can be controlled based on the object identified in the second area.
또한, 제2 시점에 제2 영역에 위치하는 오브젝트가 제3 시점에 제2 영역에 위치하지 않는 것으로 식별되면, 메모리에 저장된 오브젝트의 위치 정보를 삭제하고, 제3 시점에 제1 영역에서 식별된 오브젝트에 기초하여 로봇의 주행을 제어할 수 있다.Additionally, if the object located in the second area at the second time point is identified as not being located in the second area at the third time point, the location information of the object stored in the memory is deleted, and the object identified in the first area at the third time point is deleted. The robot's movement can be controlled based on the object.
한편, S1440 단계는 저장된 위치 정보에 기초하여 제1 및 제2 영역에 위치하는 오브젝트를 회피하여 주행하도록 로봇을 제어할 수 있다.Meanwhile, in step S1440, the robot can be controlled to run while avoiding objects located in the first and second areas based on the stored location information.
한편, 제2 영역에 위치하는 오브젝트를 식별하는 구체적인 방법에 대해서는 전술한 바 있다.Meanwhile, a specific method for identifying an object located in the second area has been described above.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, methods according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online. In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) is stored on a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. Each component (e.g., module or program) according to various embodiments of the present disclosure as described above may be composed of a single or multiple entities, and some of the sub-components described above may be omitted. Alternatively, other sub-components may be further included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.Meanwhile, the term "unit" or "module" used in the present disclosure includes a unit comprised of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. You can. A “part” or “module” may be an integrated part, a minimum unit that performs one or more functions, or a part thereof. For example, a module may be comprised of an application-specific integrated circuit (ASIC).
한편, 본 개시에 따른 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다. 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.Meanwhile, a non-transitory computer readable medium storing a program that sequentially performs the control method according to the present disclosure may be provided. A non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories. Specifically, the various applications or programs described above may be stored and provided on non-transitory readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, etc.
또한, 본 개시의 실시 예는 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 로봇(100))를 포함할 수 있다. Additionally, embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer). The device is a device capable of calling instructions stored in a storage medium and operating according to the called instructions, and may include an electronic device (eg, robot 100) according to the disclosed embodiments.
상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. When the instruction is executed by a processor, the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor. Instructions may contain code generated or executed by a compiler or interpreter.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.In the above, preferred embodiments of the present disclosure have been shown and described, but the present disclosure is not limited to the specific embodiments described above, and may be used in the technical field to which the disclosure pertains without departing from the gist of the disclosure as claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be understood individually from the technical ideas or perspectives of the present disclosure.

Claims (15)

  1. 로봇에 있어서,In robots,
    센서; sensor;
    상기 로봇 주변의 영역이 상기 센서에 의해 감지 가능한 제1 영역 및 상기 센서에 의해 감지되지 않는 제2 영역으로 구분된 마스크 맵이 저장된 메모리; 및a memory storing a mask map in which an area around the robot is divided into a first area detectable by the sensor and a second area not detected by the sensor; and
    제1 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하고, Identifying an object in the first area through the sensor at a first time point,
    제2 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하고, Identifying an object in the first area through the sensor at a second time point,
    상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는지를 식별하고,Based on the location of the object identified at the first time point and the movement of the robot at the second time point with respect to the first time point, the object identified at the first time point is moved to the second time point at the second time point. Identify whether it is located in an area,
    상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 제2 영역에서 식별된 오브젝트의 위치 정보를 상기 메모리에 저장하고, 상기 제2 시점에 상기 제1 및 제2 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어하는 프로세서;를 포함하는 로봇.If the object identified at the first time point is identified as being located in the second area at the second time point, the location information of the object identified in the second area is stored in the memory, and the first time point is stored at the second time point. A robot comprising a processor that controls the movement of the robot based on the positions of objects identified in the first and second areas.
  2. 제1항에 있어서,According to paragraph 1,
    상기 로봇 주변의 영역은, 상기 로봇의 중심을 원점으로 하는 직교 좌표계 및 극좌표계 중 어느 하나에 기초하여 복수의 셀로 구분되며,The area around the robot is divided into a plurality of cells based on either a rectangular coordinate system or a polar coordinate system with the center of the robot as the origin,
    상기 제1 영역은, 상기 복수의 셀 중 셀에 위치한 오브젝트가 상기 센서에 의해 감지되는 적어도 하나의 셀을 포함하고, The first area includes at least one cell in which an object located in a cell among the plurality of cells is detected by the sensor,
    상기 제2 영역은, 상기 복수의 셀 중 셀에 위치한 오브젝트가 상기 센서에 의해 감지되지 않은 적어도 하나의 셀을 포함하는 로봇.The second area includes at least one cell in which an object located in a cell among the plurality of cells is not detected by the sensor.
  3. 제1항에 있어서,According to paragraph 1,
    상기 로봇의 움직임은,The movement of the robot is,
    상기 제1 시점을 기준으로 상기 로봇이 움직인 거리, 상기 제1 시점을 기준으로 상기 로봇이 움직인 방향 및 상기 제1 시점을 기준으로 상기 로봇이 회전한 방향 중 적어도 하나를 포함하는 로봇.A robot including at least one of the distance the robot moved relative to the first viewpoint, the direction in which the robot moved relative to the first viewpoint, and the direction in which the robot rotated relative to the first viewpoint.
  4. 제1항에 있어서,According to paragraph 1,
    상기 프로세서는,The processor,
    상기 제1 시점에 상기 제1 영역에 위치하는 상기 오브젝트의 좌표 값을 식별하고, 상기 로봇의 움직임에 기초하여 상기 식별된 좌표 값을 상기 제2 시점에 대응되도록 변환하고, 상기 변환된 좌표 값이 상기 제2 영역에 위치하는 경우, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별하는 로봇.Identify the coordinate value of the object located in the first area at the first viewpoint, convert the identified coordinate value to correspond to the second viewpoint based on the movement of the robot, and the converted coordinate value A robot that, when located in the second area, identifies an object identified at the first viewpoint as being located in the second area at the second viewpoint.
  5. 제1항에 있어서,According to paragraph 1,
    상기 프로세서는,The processor,
    상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하지 않는 것으로 식별되면, 상기 제2 시점에 상기 제1 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어하는 로봇.If the object identified at the first time point is identified as not being located in the second area at the second time point, control the running of the robot based on the location of the object identified in the first area at the second time point. A robot that does.
  6. 제1항에 있어서,According to paragraph 1,
    상기 프로세서는,The processor,
    제3 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하고, Identifying an object in the first area through the sensor at a third viewpoint,
    상기 제2 시점에 상기 제2 영역에서 식별된 오브젝트의 위치 및 상기 제2 시점을 기준으로 한 상기 제3 시점에서의 로봇의 움직임에 기초하여, 상기 제2 시점에 상기 제2 영역에서 식별된 오브젝트가 상기 제3 시점에 상기 제2 영역에 위치하는지를 식별하고,Based on the location of the object identified in the second area at the second viewpoint and the movement of the robot at the third viewpoint with respect to the second viewpoint, the object identified in the second area at the second viewpoint Identify whether is located in the second area at the third time point,
    상기 제2 시점에 상기 제2 영역에 위치하는 오브젝트가 상기 제3 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 제2 영역에서 식별된 오브젝트의 위치 정보를 상기 메모리에 저장하고, 상기 제3 시점에서 상기 제1 및 제2 영역에서 식별된 오브젝트에 기초하여 상기 로봇의 주행을 제어하는 로봇.If an object located in the second area at the second time point is identified as being located in the second area at the third time point, location information of the object identified in the second area is stored in the memory, and the first A robot that controls the movement of the robot based on objects identified in the first and second areas at three viewpoints.
  7. 제6항에 있어서,According to clause 6,
    상기 프로세서는,The processor,
    상기 제2 시점에 상기 제2 영역에 위치하는 오브젝트가 상기 제3 시점에 상기 제2 영역에 위치하지 않는 것으로 식별되면, 상기 메모리에 저장된 오브젝트의 위치 정보를 삭제하고, 상기 제3 시점에 상기 제1 영역에서 식별된 오브젝트에 기초하여 상기 로봇의 주행을 제어하는 로봇.If the object located in the second area at the second time point is identified as not being located in the second area at the third time point, the location information of the object stored in the memory is deleted, and the object is located at the third time point. A robot that controls its movement based on objects identified in area 1.
  8. 제1항에 있어서,According to paragraph 1,
    상기 프로세서는,The processor,
    상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제1 영역에 위치하는지를 식별하고,Based on the location of the object identified at the first viewpoint and the movement of the robot at the second viewpoint relative to the first viewpoint, the object identified at the first viewpoint is moved to the first viewpoint at the second viewpoint. Identify whether it is located in an area,
    상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제1 영역에 위치하는 것으로 식별되면, 상기 제1 영역에서 식별된 상기 오브젝트의 위치 및 상기 제2 시점에 식별된 상기 오브젝트의 위치가 대응되는지 여부를 식별하고,If the object identified at the first time point is identified as being located in the first area at the second time point, the location of the object identified in the first area and the location of the object identified at the second time point correspond to Identify whether or not
    상기 제1 영역에서 식별된 상기 오브젝트의 위치 및 상기 제2 시점에 식별된 상기 오브젝트의 위치가 대응되지 않는 것으로 식별되면, 상기 마스크 맵에서 상기 오브젝트의 위치에 대응되는 제1 영역을 상기 제2 영역으로 변경하는 로봇. If it is identified that the location of the object identified in the first area and the location of the object identified at the second viewpoint do not correspond, the first area corresponding to the location of the object in the mask map is selected as the second area. A robot that changes into.
  9. 제1항에 있어서,According to paragraph 1,
    상기 프로세서는,The processor,
    상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는지를 식별하고,Based on the location of the object identified at the first time point and the movement of the robot at the second time point with respect to the first time point, the object identified at the first time point is moved to the second time point at the second time point. Identify whether it is located in an area,
    상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 마스크 맵에서 상기 오브젝트의 위치에 대응되는 제2 영역을 상기 제1 영역으로 변경하는 로봇. When the object identified at the first viewpoint is identified as being located in the second area at the second viewpoint, the robot changes the second area corresponding to the location of the object in the mask map to the first area.
  10. 제1항에 있어서,According to paragraph 1,
    상기 프로세서는,The processor,
    상기 저장된 위치 정보에 기초하여 상기 제1 및 제2 영역에 위치하는 오브젝트를 회피하여 주행하도록 상기 로봇을 제어하는 로봇. A robot that controls the robot to run while avoiding objects located in the first and second areas based on the stored location information.
  11. 센서 및 로봇 주변의 영역이 상기 센서에 의해 감지 가능한 제1 영역 및 상기 센서에 의해 감지되지 않는 제2 영역으로 구분된 마스크 맵이 저장된 메모리를 포함하는 로봇의 주행 방법에 있어서,A method of driving a robot comprising a sensor and a memory storing a mask map in which the area around the robot is divided into a first area that can be detected by the sensor and a second area that is not detected by the sensor,
    제1 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하는 단계;Identifying an object in the first area through the sensor at a first viewpoint;
    제2 시점에 상기 센서를 통해 상기 제1 영역에서 오브젝트를 식별하는 단계;identifying an object in the first area through the sensor at a second viewpoint;
    상기 제1 시점에 식별된 오브젝트의 위치 및 상기 제1 시점을 기준으로 한 상기 제2 시점에서의 상기 로봇의 움직임에 기초하여, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는지를 식별하는 단계; 및Based on the location of the object identified at the first time point and the movement of the robot at the second time point with respect to the first time point, the object identified at the first time point is moved to the second time point at the second time point. identifying whether it is located in an area; and
    상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별되면, 상기 제2 영역에서 식별된 오브젝트의 위치 정보를 상기 메모리에 저장하고, 상기 제2 시점에 상기 제1 및 제2 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어하는 단계;를 포함하는 주행 방법.If the object identified at the first time point is identified as being located in the second area at the second time point, the location information of the object identified in the second area is stored in the memory, and the first time point is stored at the second time point. A driving method comprising: controlling the driving of the robot based on the positions of objects identified in the first and second areas.
  12. 제11항에 있어서,According to clause 11,
    상기 로봇 주변의 영역은, 상기 로봇의 중심을 원점으로 하는 극좌표계에 기초하여 복수의 셀로 구분되며,The area around the robot is divided into a plurality of cells based on a polar coordinate system with the center of the robot as the origin,
    상기 제1 영역은, 상기 복수의 셀 중 셀에 위치한 오브젝트가 상기 센서에 의해 감지되는 적어도 하나의 셀을 포함하고, The first area includes at least one cell in which an object located in a cell among the plurality of cells is detected by the sensor,
    상기 제2 영역은, 상기 복수의 셀 중 셀에 위치한 오브젝트가 상기 센서에 의해 감지되지 않은 적어도 하나의 셀을 포함하는 주행 방법.The second area includes at least one cell in which an object located in a cell among the plurality of cells is not detected by the sensor.
  13. 제11항에 있어서,According to clause 11,
    상기 로봇의 움직임은,The movement of the robot is,
    상기 제1 시점을 기준으로 상기 로봇이 움직인 거리, 상기 제1 시점을 기준으로 상기 로봇이 움직인 방향 및 상기 제1 시점을 기준으로 상기 로봇이 회전한 방향 중 적어도 하나를 포함하는 주행 방법.A driving method including at least one of the distance the robot moved relative to the first viewpoint, the direction in which the robot moved relative to the first viewpoint, and the direction in which the robot rotated relative to the first viewpoint.
  14. 제11항에 있어서,According to clause 11,
    상기 제2 영역에 위치하는지를 식별하는 단계는,The step of identifying whether it is located in the second area is,
    상기 제1 시점에 상기 제1 영역에 위치하는 상기 오브젝트의 좌표 값을 식별하고, 상기 로봇의 움직임에 기초하여 상기 식별된 좌표 값을 상기 제2 시점에 대응되도록 변환하고, 상기 변환된 좌표 값이 상기 제2 영역에 위치하는 경우, 상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하는 것으로 식별하는 주행 방법.Identify the coordinate value of the object located in the first area at the first viewpoint, convert the identified coordinate value to correspond to the second viewpoint based on the movement of the robot, and the converted coordinate value A driving method in which, when located in the second area, an object identified at the first viewpoint is identified as being located in the second area at the second viewpoint.
  15. 제11항에 있어서,According to clause 11,
    상기 제1 시점에 식별된 오브젝트가 상기 제2 시점에 상기 제2 영역에 위치하지 않는 것으로 식별되면, 상기 제2 시점에 상기 제1 영역에서 식별된 오브젝트의 위치에 기초하여 상기 로봇의 주행을 제어하는 단계;를 더 포함하는 주행 방법.If the object identified at the first time point is identified as not being located in the second area at the second time point, control the running of the robot based on the location of the object identified in the first area at the second time point. A driving method further comprising:
PCT/KR2023/009258 2022-08-09 2023-06-30 Robot performing driving by using mask map and driving method thereof WO2024034855A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220099149A KR20240020880A (en) 2022-08-09 2022-08-09 Robot performing a driving using a mask map and a driving method thereof
KR10-2022-0099149 2022-08-09

Publications (1)

Publication Number Publication Date
WO2024034855A1 true WO2024034855A1 (en) 2024-02-15

Family

ID=89851884

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/009258 WO2024034855A1 (en) 2022-08-09 2023-06-30 Robot performing driving by using mask map and driving method thereof

Country Status (2)

Country Link
KR (1) KR20240020880A (en)
WO (1) WO2024034855A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182464A1 (en) * 2008-01-11 2009-07-16 Samsung Electronics Co., Ltd. Method and apparatus for planning path of mobile robot
KR101395892B1 (en) * 2013-03-05 2014-05-15 엘지전자 주식회사 Robot cleaner and operating method
KR20170009103A (en) * 2015-07-15 2017-01-25 (주) 한호기술 Autonomously traveling robot and navigation method thereof
KR20170074542A (en) * 2015-12-22 2017-06-30 부산대학교 산학협력단 Apparatus and Method for Building Indoor Map using Geometric Features and Probability Method
US20180210452A1 (en) * 2015-07-29 2018-07-26 Lg Electronics Inc. Mobile robot and control method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182464A1 (en) * 2008-01-11 2009-07-16 Samsung Electronics Co., Ltd. Method and apparatus for planning path of mobile robot
KR101395892B1 (en) * 2013-03-05 2014-05-15 엘지전자 주식회사 Robot cleaner and operating method
KR20170009103A (en) * 2015-07-15 2017-01-25 (주) 한호기술 Autonomously traveling robot and navigation method thereof
US20180210452A1 (en) * 2015-07-29 2018-07-26 Lg Electronics Inc. Mobile robot and control method thereof
KR20170074542A (en) * 2015-12-22 2017-06-30 부산대학교 산학협력단 Apparatus and Method for Building Indoor Map using Geometric Features and Probability Method

Also Published As

Publication number Publication date
KR20240020880A (en) 2024-02-16

Similar Documents

Publication Publication Date Title
WO2016129950A1 (en) Cleaning robot and control method therefor
WO2018230852A1 (en) Method for identifying moving object in three-dimensional space and robot for implementing same
WO2015194867A1 (en) Device for recognizing position of mobile robot by using direct tracking, and method therefor
WO2017091008A1 (en) Mobile robot and control method therefor
WO2015194868A1 (en) Device for controlling driving of mobile robot having wide-angle cameras mounted thereon, and method therefor
WO2015194866A1 (en) Device and method for recognizing location of mobile robot by means of edge-based readjustment
WO2018186583A1 (en) Method for identifying obstacle on driving ground and robot for implementing same
AU2014297039B2 (en) Auto-cleaning system, cleaning robot and method of controlling the cleaning robot
WO2018043957A1 (en) Robot cleaner
WO2015194864A1 (en) Device for updating map of mobile robot and method therefor
EP3525992A1 (en) Mobile robot system and mobile robot
WO2017008224A1 (en) Moving object distance detection method, device and aircraft
WO2015194865A1 (en) Device and method for recognizing location of mobile robot by means of search-based correlation matching
EP3414594A1 (en) Distance sensor, and calibration method performed by device and system including the distance sensor
WO2018143620A2 (en) Robot cleaner and method of controlling the same
WO2018164377A1 (en) Electronic device for generating map data and operating method therefor
WO2020141900A1 (en) Mobile robot and driving method thereof
WO2020046038A1 (en) Robot and control method therefor
WO2019135437A1 (en) Guide robot and operation method thereof
WO2020226343A1 (en) Electronic device and method for assisting with driving of vehicle
WO2018135745A1 (en) Method and device for genertating image for indicating object on periphery of vehicle
WO2018117513A1 (en) Airport robot and movement method therefor
WO2024034855A1 (en) Robot performing driving by using mask map and driving method thereof
WO2021230503A1 (en) Electronic apparatus and controlling method thereof
WO2020204500A1 (en) Electronic apparatus and method for assisting with driving of vehicle

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23852742

Country of ref document: EP

Kind code of ref document: A1