WO2023214702A1 - 사물까지의 거리를 산출하는 로봇 및 방법 - Google Patents
사물까지의 거리를 산출하는 로봇 및 방법 Download PDFInfo
- Publication number
- WO2023214702A1 WO2023214702A1 PCT/KR2023/004832 KR2023004832W WO2023214702A1 WO 2023214702 A1 WO2023214702 A1 WO 2023214702A1 KR 2023004832 W KR2023004832 W KR 2023004832W WO 2023214702 A1 WO2023214702 A1 WO 2023214702A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- distance
- robot
- image
- sensor
- camera
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013473 artificial intelligence Methods 0.000 claims description 40
- 238000004891 communication Methods 0.000 description 26
- 238000003860 storage Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 239000000428 dust Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 244000007853 Sarothamnus scoparius Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/022—Optical sensing devices using lasers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
Definitions
- This disclosure relates to robots. More specifically, it concerns a robot that calculates the distance to an obstacle.
- a robot that determines the distance to an object includes a 2D camera, a 1D distance sensor, a traveling module for moving the robot, at least one memory storing one or more instructions, and at least one processor. At least one processor controls a 2D camera to acquire a 2D image by executing one or more instructions stored in a memory, and calculates relative depths of actual areas represented by pixels in the 2D image based on the acquired 2D image. , obtain the reference distance to the laser irradiated point output from the 1D distance sensor, and obtain a 2D image from the robot based on the obtained reference distance and the relative depth of the reference point corresponding to the laser irradiated point among the pixels in the 2D image.
- a robot can be provided that determines the distance to an object within the robot and controls the travel module to drive based on the determined distance to the object.
- the steps include controlling a 2D camera to acquire a 2D image, and determining the actual pixels in the 2D image based on the acquired 2D image. Calculating the relative depths of the areas, acquiring the reference distance to the point where the laser output from the 1D distance sensor was irradiated, the relative depth of the reference point corresponding to the point where the laser was irradiated among the pixels in the 2D image and the obtained
- a method may be provided, including determining a distance from a robot to an object in a 2D image based on a reference distance and driving based on the determined distance to the object.
- a computer-readable recording medium is provided on which a program for performing a method for a robot to determine the distance to an object on a computer is recorded.
- FIG. 1 shows a method for a robot to determine the distance to an object, according to an embodiment of the present disclosure.
- FIG. 2 illustrates a method for a robot to determine relative depth for pixels in a 2D image using an artificial intelligence model, according to an embodiment of the present disclosure.
- FIG. 3 illustrates a method by which a robot recognizes objects and the relative depth of objects in a 2D image using an artificial intelligence model, according to an embodiment of the present disclosure.
- Figure 4 illustrates a method by which a robot determines the distance to a surrounding object based on a reference distance, according to an embodiment of the present disclosure.
- Figure 5 shows a block diagram of a robot, according to one embodiment of the present disclosure.
- Figure 6 is a flowchart of a method for a robot to determine the distance to an object, according to an embodiment of the present disclosure.
- Figure 7 shows a block diagram of a robot, according to another embodiment of the present disclosure.
- Figure 8 shows a flowchart of a method for correcting a reference point based on the movement of a robot, according to an embodiment of the present disclosure.
- Figure 9 shows a method by which a robot determines the distance to an object using a plurality of 1D distance sensors, according to an embodiment of the present disclosure.
- Figure 10 shows a method for a robot to generate a map, according to an embodiment of the present disclosure.
- Figure 11 shows a block diagram of a robot, according to another embodiment of the present disclosure.
- the expression “at least one of a, b, or c” refers to “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b and c”, or variations thereof.
- Embodiments of the present disclosure are intended to provide a robot and a control method for determining the distance to a surrounding object without using a 3D sensor.
- FIG. 1 shows a method for a robot to determine the distance to an object, according to an embodiment of the present disclosure.
- the robot 1000 may determine the distance to objects around the robot 1000 using at least one 2D camera 1920 and a 1D distance sensor 1910.
- the robot 1000 calculates the relative depth of objects in the 2D image based on the 2D image acquired using the 2D camera 1920 and detects one object in the 2D image using the 1D distance sensor 1910. It is possible to estimate the actual distance from the robot 1000 to the objects in the 2D image by obtaining the actual distance to the point and converting the calculated relative depths of the objects into distances based on the obtained actual distance.
- the robot 1000 may control a 2D camera to obtain 2D images of objects located in front of the robot 1000.
- the robot 1000 may calculate the relative depth of actual areas corresponding to pixels in the acquired 2D image using an artificial intelligence model.
- the robot 1000 may control the 1D distance sensor 1910 to obtain the reference distance 402 to the laser irradiation point.
- the robot 1000 may acquire the relative depth of a reference point corresponding to the laser irradiation point among pixels in the 2D image.
- the robot 1000 may calculate the distance from the robot 1000 to objects in the 2D image based on the obtained reference distance, the relative depth of the reference point, and the relative depth between objects in the 2D image.
- the robot 1000 may have a driving function.
- the robot 1000 can recognize an obstacle located in front and drive while avoiding the obstacle.
- the robot 1000 recognizes the type of object in the 2D image, and when the recognized type of object is determined to be an obstacle, the robot 1000 can drive while avoiding the obstacle based on the distance to the object.
- the robot 1000 can drive to the destination based on the location of the destination in the map and its own location in the map. Additionally, the robot 1000 can drive along a driving path based on the driving path in the map and its own location in the map.
- the robot 1000 may correspond to various types of robots with a driving function.
- the robot 1000 includes, for example, a vacuum cleaner robot 1000, a mop cleaner robot 1000, a serving robot 1000, an air purifier robot 1000, a child care robot 1000, a housekeeping robot 1000, and an industrial robot. It may include (1000), but is not limited thereto.
- the 2D camera 1920 may include, but is not limited to, an RGB camera. Additionally, the 1D distance sensor 1910 may include, but is not limited to, a PSD sensor and a TOF sensor.
- FIG. 2 illustrates a method for a robot to determine relative depth for pixels in a 2D image using an artificial intelligence model, according to an embodiment of the present disclosure.
- the robot 1000 may determine the relative depth of the actual area represented by the pixel in response to each pixel in one 2D image.
- Relative depth may refer to the vertical distance from a reference plane parallel to the RGB sensor plane of a 2D camera to the actual area represented by the pixel.
- the reference plane may be a virtual plane parallel to the RGB sensor plane of the 2D camera 1920.
- the reference plane may be predetermined and stored in the robot 1000, and may be the RGB sensor plane of a 2D camera.
- the artificial intelligence model may include, for example, the Pix2Pix model 200, which is a deep learning model, but is not limited thereto.
- Artificial intelligence models can be trained in advance.
- an artificial intelligence model can be trained by inputting a 2D image as input data of the training data and inputting the measured depth of the actual point represented by each pixel in the 2D image as output data of the training data.
- the artificial intelligence model can be trained to calculate the distance from the reference plane of the actual point represented by each pixel, corresponding to each pixel in the 2D image. By training an artificial intelligence model on a large number of 2D images, the artificial intelligence model can produce more accurate depth.
- the artificial intelligence model may be implemented as software and stored in the memory of the robot 1000, or may be implemented as a separate processor and provided in the robot 1000. Additionally, the artificial intelligence model may be stored in a separate server (not shown).
- the robot 1000 may control the 2D camera 1920 to obtain a 2D image 210 representing objects in front of the robot 1000.
- the robot 1000 inputs the acquired 2D image 210 as input data and executes an artificial intelligence model, thereby determining the relative depth of the actual point represented by the pixel for each pixel in the acquired 2D image 210. It can be calculated.
- the depth image 220 of FIG. 2 may be generated.
- the larger the depth value the longer the wavelength of light can be expressed in the order of yellow and red, and the smaller the depth value, the shorter the wavelength of light can be expressed in the order of blue and purple.
- the robot 1000 may convert the depth image 220 into a 3D image based on the relative depth of each pixel.
- FIG. 3 illustrates a method by which a robot recognizes objects and the relative depth of objects in a 2D image using an artificial intelligence model, according to an embodiment of the present disclosure.
- the robot 1000 can acquire a 2D image 310 by controlling the 2D camera 1920. Additionally, the robot 1000 calculates the relative depth corresponding to each pixel of the acquired 2D image 310 using the first artificial intelligence model, and generates a depth image 330 representing the calculated relative depth. You can.
- the first artificial intelligence model may be the Pix2Pix model (200 in FIG. 2).
- the robot 1000 may use the second artificial intelligence model 300 to determine the area and type of objects in the acquired 2D image 310.
- the input of the second artificial intelligence model 300 may be one image, and the output may be an object class and an object area. Areas of objects within a 2D image can be expressed as bounding boxes.
- the second artificial intelligence model may include, for example, Convolutional Neural Network (CNN), R-CNN, You Only Look Once (YOLO), Single Shot MultiBox Detector (SSD), etc., but is not limited thereto.
- the robot 1000 can use the second artificial intelligence model 300 to determine areas of objects in the 2D image using coordinates in the image. Additionally, the robot 1000 can determine the type of recognized object. For example, the robot 1000 generates ⁇ 105, 221, 187, 07, cloths ⁇ ( ⁇ x coordinate, y coordinate, width, height, type of object ⁇ for the area 323 of clothes in the 2D image 310. ), the area and type of the object can be determined. The robot 1000 may store an image 320 showing areas of objects on the 2D image 310.
- the robot 1000 may determine the relative depth of objects based on the relative depth corresponding to each pixel and the area of the object. For example, the robot 1000 may determine the smallest depth among relative depths corresponding to pixels within the object area as the relative depth of the object. For example, referring to FIG. 3, the smallest depth among the relative depths of pixels in the clothing area 323 may be determined as the relative depth of the clothing.
- the robot 1000 can control the 1D distance sensor 1910 to obtain the distance to the laser irradiation point. For example, as the laser output from the 1D distance sensor 190 is reflected and received by an object, the robot 1000 irradiates the laser based on the time from when the laser is output to being received again and the propagation speed of the laser. You can obtain the distance to the given point.
- the laser irradiation point may correspond to a predetermined reference point 350 in the 2D image.
- the position of the reference point within the 2D image may be pre-calibrated and stored in the robot 1000 before the robot 1000 is sold.
- the location of the reference point within the 2D image can be determined by matching the laser-irradiated point of the 1D distance sensor 1910 with the 2D image acquired through the 2D camera 1920. For example, within a 2D image, the position of a pixel representing the actual point where the laser of the 1D distance sensor 1910 is irradiated may be determined as a reference point. Since the positions and angles of the 1D distance sensor 1910 and the 2D camera 1920 within the robot 1000 do not change, the position of the reference point within the 2D image can also be fixed.
- the laser of the 1D distance sensor 1910 may be pre-adjusted so that the irradiation angle is perpendicular to a reference plane (eg, the RGB sensor plane of the 2D camera 1920).
- a reference plane eg, the RGB sensor plane of the 2D camera 1920.
- the robot 1000 can calculate the distance to objects based on the distance to the laser irradiation point, the relative depth of the reference point 350, and the relative depth between objects.
- Figure 4 illustrates a method by which a robot determines the distance to a surrounding object based on a reference distance, according to an embodiment of the present disclosure.
- the robot 1000 can control the 1D distance sensor 1910 to detect the reference distance 402 to the point 403 where the laser was irradiated. Additionally, the robot 1000 can control the 2D camera 1920 to obtain a 2D image including the first object 410, the second object 420, and the third object 430 in front of the robot 1000. there is.
- the top of FIG. 4 shows a top view of the robot 1000 and the objects 410, 420, and 430, and the bottom of FIG. 4 shows a side view of the robot 1000 and the objects 410, 420, and 430. .
- the robot 1000 inputs the acquired 2D image as an input value and executes artificial intelligence models to calculate the relative depth between the objects 410, 420, and 430 in the acquired 2D image.
- the relative depth between the objects 410, 420, and 430 may be the vertical distance of the objects 410, 420, and 430 from the reference plane 405.
- the reference plane 405 may be defined as one of the planes parallel to the sensor plane of the 2D camera 1920 regardless of the distance from the robot 1000, but in FIG. 4, for convenience of explanation, the 2D camera 1920 ) Among the planes parallel to the sensor plane, the plane in contact with the second object 420 is described as the reference plane 405.
- the robot 1000 has a reference distance 402 to the laser irradiated point 403, a relative depth of the reference point corresponding to the laser irradiated point 403 among the relative depths in the 2D image, and objects 410 and 420. and 430), the distance from the robot 1000 to the objects 410, 420, and 430 may be determined.
- the robot 1000 may determine the difference between the relative depth of the reference point and the relative depth of the first object plus the reference distance 402 as the distance to the first object.
- the robot 1000 moves the first object 410 at a distance 402 to the laser irradiated point 403.
- the value obtained by adding the depth 415 can be determined as the distance from the robot 1000 to the first object 410.
- the distance to the first object 410 can be calculated by adding the reference distance 402 to the difference between the relative depth of the reference point and the relative depth of the first object 410.
- the robot 1000 adds the difference between the relative depth 408 of the third object 430 and the relative depth of the reference point (0 in FIG. 4) to the reference distance 402 as the base of the right triangle ( 404), the distance within the reference plane 405 between the irradiated point 403 and the third object 430 is determined as the height 406 of the right triangle, and the determined base 404 and height 406 ) can also be determined as the distance from the robot 1000 to the first object 410.
- Figure 5 shows a block diagram of a robot, according to one embodiment of the present disclosure.
- the robot 1000 may include a processor 1100, a memory 1400, a driving module 1800, a 1D distance sensor 1910, and a 2D camera 1920.
- the 1D distance sensor 1910 may include a TOF sensor or a PDS sensor.
- the TOF sensor irradiates a short light pulse, then detects an echo pulse that is returned when the irradiated light pulse is reflected on an object. Based on the difference between the time the light pulse was irradiated and the time the echo pulse was detected, and the speed of light, TOF It may be a sensor that detects the distance from the sensor to the object.
- a TOF sensor may include an emitter that emits a light pulse and a sensor that detects an echo pulse, and the emitter can irradiate a laser to a single point at a predetermined angle.
- TOF sensors may be referred to as one-dimensional direct TOF sensors.
- the 2D camera 1920 may include a sensor that detects ultraviolet rays, visible rays, or infrared rays reflected from an object.
- the robot 1000 can acquire an RGB image from the 2D camera 1920.
- the robot 1000 may acquire an infrared image from the 2D camera 1920.
- the traveling module 1800 moves the main body of the robot 1000.
- the driving module 1800 is driven according to control signals set by the processor 110.
- the processor 1100 sets a driving path, generates a control signal so that the robot 1000 moves according to the driving path, and outputs it to the driving module 1800.
- the traveling module 1800 may include a motor that rotates the wheels of the robot 1000 and a timing belt installed to transmit power generated from the rear wheels to the front wheels.
- the processor 1100 can typically control the overall operation of the robot 1000.
- the processor 1100 can control the 2D camera 1920, the 1D distance sensor 1910, and the driving module 1800 by executing programs stored in the memory 1400.
- the memory 1400 may store programs for processing and control of the processor 1100.
- Memory 1400 may store software modules that implement artificial intelligence models.
- the processor 1100 may determine the distance to objects in front by executing software modules stored in the memory 1400.
- software modules implementing artificial intelligence models may be stored in a server (not shown).
- the processor 1100 transmits the reference distance acquired using the 1D distance sensor 1910 and the 2D image acquired using the 2D camera 1920 to the server (not shown), and transmits the 2D image from the robot 1000.
- Information about distances to objects in the image may be received from a server (not shown).
- the processor 1100 may control the 2D camera 1920 to obtain a 2D image. Additionally, the processor 1100 may calculate relative depths of actual areas represented by pixels in the 2D image based on the acquired 2D image.
- the processor 1100 may control the 1D distance sensor 1910 to obtain a reference distance to the point where the laser is irradiated. Additionally, the processor 1100 may determine the distance from the robot 1000 to the object in the 2D image based on the obtained reference distance and the relative depth of the reference point corresponding to the laser irradiated point among pixels in the 2D image.
- the processor 1100 can drive by controlling the driving module 1800 based on the determined distance to the object. For example, if the type of recognized object is an object that should not be approached within a certain distance, such as a cup or a bowl, the processor 1100 may determine whether the distance to the determined object is within a preset distance, and may determine whether the distance to the determined object is within a preset distance. You can change your driving route so that you do not approach within the distance. Types of objects that should not be approached within a certain distance may be stored in the memory 1400 or a server (not shown), and for each type of object, an accessible distance corresponding to the type of object may be stored in advance.
- Figure 6 is a flowchart of a method for a robot to determine the distance to an object, according to an embodiment of the present disclosure.
- step S610 the robot 1000 may acquire a 2D image by controlling the 2D camera 1920.
- the 2D camera 1920 may include an RGB camera.
- the robot 1000 may calculate relative depths of actual areas indicated by pixels in the 2D image based on the acquired 2D image.
- the robot 1000 may obtain the reference distance to the point where the laser output from the 1D distance sensor 1910 is irradiated.
- the 1D distance sensor 1910 may include at least one of a PSD sensor and a TOF sensor.
- the 1D distance sensor 1910 may be placed toward the front of the robot 1000 together with the 2D camera 1920.
- the robot 1000 may include two or more 1D distance sensors 1910.
- the laser may be irradiated perpendicularly to the RGB sensor plane of the 2D camera 1920 from the 1D distance sensor 1910.
- step S640 the robot 1000 determines the distance from the robot 1000 to the object in the 2D image based on the relative depth of the reference point corresponding to the laser irradiated point among the pixels in the 2D image and the obtained reference distance. You can.
- the robot 1000 can identify an area of an object within a 2D image. Additionally, the robot 1000 may determine the distance from the robot 1000 to the object based on the relative depths of pixels within the area of the identified object, the obtained reference distance, and the relative depth of the reference point.
- the robot 1000 can identify the type of object.
- Types of objects may include, but are not limited to, clothes, desks, chairs, furniture, home appliances, mats, books, wires, cups, animal feces, spilled food, and spilled liquids.
- the robot 1000 may generate a map indicating the location and type of the object based on the distance to the determined object and the type of the identified object. Additionally, the robot 1000 can drive based on the generated map.
- the robot 1000 may correct the position of the reference point within the 2D image based on the sensor value of the motion sensor. Additionally, the robot 1000 may determine the distance from the robot 1000 to an object in the 2D image based on the relative depth of the corrected reference point.
- the robot 1000 may calculate relative depths corresponding to pixels in the 2D image by inputting a 2D image as input data for an artificial intelligence model and executing the artificial intelligence model.
- step S650 the robot 1000 may travel based on the determined distance to the object.
- Figure 7 shows a block diagram of a robot, according to another embodiment of the present disclosure.
- the robot 1000 includes a processor 1100, a memory 1400, a traveling module 1800, a 1D distance sensor 1910, and a 2D camera 1920, as well as an Inertial Measurement Unit (IMU) 1930. , Timer (1940), and AI (Artificial Intelligence) processor 1150.
- the IMU 1930 can detect the speed, direction, and acceleration of the robot 1000.
- the IMU 1930 may include a 3-axis accelerometer sensor and a 3-axis gyroscope sensor, and may calculate the speed and attitude angle of the robot 1000 by integrating acceleration and angular velocity.
- Timer(1940) can count time in hours, minutes and seconds.
- the AI processor 1150 may be manufactured as a dedicated hardware chip for artificial intelligence, or as part of an existing general-purpose processor or graphics-specific processor (eg, GPU). As another example, the AI processor 1150 may correspond to a Neural Processing Unit (NPU).
- NPU Neural Processing Unit
- the AI processor 1150 may be designed to implement an artificial intelligence model that, when a 2D image is input as input data, outputs the depth of the actual area indicated by the pixel in response to the pixel in the 2D image as output data. Additionally, the AI processor 1150 may be designed to implement an artificial intelligence model that identifies areas and types of objects in the 2D image when a 2D image is input as input data.
- the processor 1100 can control the AI processor 1150 to identify areas and types of objects in the 2D image and obtain the depth of the actual area indicated by the pixel in the 2D image.
- the processor 1100 may store the time at which the 2D image is acquired based on the time counted by the timer 1940.
- the processor 1100 may store the time at which the reference distance is acquired based on the time counted by the timer 1940.
- the processor 1100 may calculate the distance to objects based on the 2D image acquired at the same time and the reference distance.
- the processor 1100 may control the IMU 1930 to periodically detect the moving distance and moving angle of the robot 1000. Additionally, the processor 1100 may store the detected time corresponding to the detected movement distance and movement angle.
- the processor 1100 may correct the position of the reference point in the 2D image based on the distance and angle at which the robot 1000 moved during the difference between the time at which the 2D image was acquired and the time at which the reference distance was acquired. .
- a method of correcting the position of the reference point is described later in FIG. 8.
- the processor 1100 may determine the distance from the robot 1000 to the object in the 2D image based on the relative depth of the corrected reference point.
- Figure 8 shows a flowchart of a method for correcting a reference point based on the movement of a robot, according to an embodiment of the present disclosure.
- the robot 1000 may store the time when the 2D image is acquired.
- the robot 1000 can store the time when the 2D image is acquired using the timer 1940.
- the robot 1000 can acquire 2D images at a predetermined period and store the acquired time for each periodically acquired 2D image.
- step S820 the robot 1000 may store the time when the reference distance is acquired.
- the robot 1000 can store the time when the reference distance is acquired using the timer 1940.
- the robot 1000 can detect the 2D image and the reference distance at the same time, or at different times.
- the robot 1000 may correct the reference point in the 2D image corresponding to the point where the laser was irradiated based on the time at which the 2D image was acquired, the time at which the reference distance was acquired, and the movement of the robot 1000. .
- the robot 1000 may periodically detect the moving distance and moving angle of the robot 1000 using the IMU 1930. Additionally, the robot 1000 may store the detected time corresponding to the detected movement distance and movement angle.
- the robot 1000 may correct the position of the reference point in the 2D image based on the distance and angle at which the robot 1000 moved between the time the 2D image was acquired and the time the reference distance was acquired. Even if the robot 1000 moves, the position of the reference point in the 2D image does not change, but if the difference between the time at which the reference distance was acquired and the time at which the 2D image was acquired is more than the reference time, the point at which the reference distance was acquired and the reference point in the 2D image The actual point indicated may be different. Therefore, as the difference between the time at which the reference distance was acquired and the time at which the 2D image was acquired is determined to be greater than the reference time, the robot 1000 determines the reference point in the 2D image based on the distance and angle at which the robot 1000 moved. The position of can be corrected. For example, if the robot 1000 moves to the left after the 2D image is acquired until the reference distance is acquired, the position of the reference point may be moved to the left based on the moved distance.
- the robot 1000 may determine the distance from the robot 1000 to the object in the 2D image based on the relative depth of the corrected reference point.
- the robot 1000 controls the 1D distance sensor 1910 and the 2D camera 1920, the distance to the object can be calculated more accurately even if the robot 1000 moves.
- Figure 9 shows a method by which a robot determines the distance to an object using a plurality of 1D distance sensors, according to an embodiment of the present disclosure.
- the robot 1000 may include a plurality of 1D distance sensors 1910.
- the robot 1000 may include a first 1D distance sensor 1910a and a second 1D distance sensor 1910b centered on the 2D camera 1920.
- the robot 1000 can acquire a 2D image by controlling the 2D camera 1920. Additionally, the robot 1000 may control the first 1D distance sensor 1910a and the second 1D distance sensor 1910b to detect the first distance and the second distance.
- the robot 1000 may calculate the relative depth of the actual area represented by the pixels in response to the pixels in the acquired 2D image. In addition, the robot 1000 determines the first relative depth and distance at the first reference point corresponding to the survey point of the first 1D distance sensor 1910a and the survey point of the second 1D distance sensor 1910b in the 2D image. The distance from the robot 1000 to objects in the 2D image can be determined more accurately based on the second relative depth and the second distance at the second reference point corresponding to .
- the robot 1000 may correct the relative depth of pixels in the 2D image based on the ratio of the difference between the first and second distances and the difference between the first and second relative depths. After correcting the relative depth of the pixels, the robot 1000 may determine the distance from the robot 1000 to objects in the 2D image based on the relative depth of the corrected pixels.
- the robot 1000 may include three or more 1D distance sensors 1910.
- Figure 10 shows a method for a robot to generate a map, according to an embodiment of the present disclosure.
- the robot 1000 may generate a map indicating the location of an object based on the distance to the object and the identification information of the object.
- the robot 1000 can travel in a predetermined travel area.
- the driving area may correspond to a space such as a home area, an office, or a store, for example.
- the robot 1000 can generate a map of the driving area and create a driving route on the map.
- the robot 1000 may calculate the position of an object in the driving area based on its own position in the driving area, its posture angle, and the distance to the object. Additionally, the robot 1000 can identify the type of object in the 2D image.
- the robot 1000 may generate a map indicating the location and type of the object on a map of the driving area based on the calculated location of the object and the type of the identified object. Additionally, the robot 1000 can update the map based on the location and type of objects recognized in real time while driving.
- the robot 1000 communicates with the device 2000, and the device 2000 may provide information related to the operation of the robot 1000, a graphic user interface (GUI), etc.
- the device 2000 may provide information about the robot 1000 and store and execute a predetermined application for controlling the robot 1000.
- the device 2000 may communicate with the robot 1000 through the server 3000 or directly with the robot 1000 through short-distance communication.
- the device 2000 may correspond to, for example, a communication terminal, a mobile device, a smartphone, a tablet PC, or a wearable device.
- the robot 1000 may transmit the type and location of an object placed on the floor of the driving area to the device 2000.
- the robot 1000 can recognize the type and location of an object in real time while driving and transmit the type and location of the recognized object to the device 2000.
- the robot 1000 may transmit the type and location of the recognized object to the device 2000.
- the device 2000 may display the type and location of the object on a map of the driving area.
- the robot 1000 may transmit to the device 2000 the location and type of an object that must be removed by the user among objects placed on the floor of the driving area.
- the types of objects that need to be removed may be previously stored in the robot 1000.
- types of objects that need to be put away may include stool, cups, clothes, books, food, etc.
- the robot 1000 may store the location and identification information of the side and transmit a map indicating the location and identification information of the side to the device 2000.
- whether an object needs to be removed may be determined in the server 3000 or in the device 2000.
- the server 3000 may be a Smart Things server or an AI server, but is not limited thereto.
- the device 2000 may display a GUI guide for the object to be removed as it receives the location and type of the object to be removed.
- the location and identification information of clothes, stool, and cups can be displayed as objects that must be removed on a map representing the driving area.
- the device 2000 may transmit an obstacle area re-cleaning request requesting the robot 1000 to re-clean the location of the object that needs to be removed.
- the robot 1000 may clean the area of the object again based on location information of the object to be removed and whether the object exists.
- Figure 11 shows a block diagram of a robot, according to another embodiment of the present disclosure.
- the robot 1000 includes a microphone 1200, a communication module 1300, a memory 1400, an input interface 1500, an output module 1600, a sensor 1700, a driving module 1800, It may include a processor 1100, a 1D distance sensor 1910, and a 2D camera 1920.
- the same reference numerals are used for components that are the same as those shown in FIG. 5 .
- the robot 1000 may be implemented with more components than those shown in FIG. 11 , or the robot 1000 may be implemented with fewer components than the components shown in FIG. 11 .
- the output module 1600 may include an audio output module 1620 and a display 1610.
- the sound output module 1620 can output sound signals to the outside of the robot 1000.
- the sound output module 1620 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback.
- the display 1610 may output image data processed by an image processor (not shown) through a display panel (not shown) under the control of the processor 1100.
- Display panels include liquid crystal displays, thin film transistor-liquid crystal displays, organic light-emitting diodes, flexible displays, and three-dimensional displays. It may include at least one of (3D display) and electrophoretic display.
- the input interface 1500 can receive user input for controlling the robot 1000.
- the input interface 1500 receives user input and transmits it to the processor 1100.
- the input interface 1500 includes a touch panel that detects the user's touch, a button that receives the user's push operation, a wheel that receives the user's rotation operation, a keyboard, and a dome switch. May include, but is not limited to, user input electronic devices.
- the input interface 1500 may include a voice recognition device for voice recognition.
- the voice recognition device may be a microphone 1200, and the voice recognition device may receive a user's voice command or voice request. Accordingly, the processor 1100 can control the operation corresponding to the voice command or voice request to be performed.
- the memory 1400 stores various information, data, commands, programs, etc. necessary for the operation of the robot 1000.
- the memory 1400 may include at least one of volatile memory or non-volatile memory, or a combination thereof.
- the memory 1400 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory, etc.), or RAM.
- RAM Random Access Memory
- SRAM Static Random Access Memory
- ROM Read-Only Memory
- EEPROM Electrical Erasable Programmable Read-Only Memory
- PROM Programmable Read-Only Memory
- magnetic memory magnetic disk
- the robot 1000 may operate a web storage or cloud server that performs a storage function on the Internet.
- the communication module 1300 can transmit and receive information according to a protocol with an external device or external server under the control of the processor 1100.
- the communication module 1300 may include at least one communication module and at least one port for transmitting and receiving data with an external device (not shown).
- the communication module 1300 may communicate with an external device through at least one wired or wireless communication network.
- the communication module 1300 may include at least one of a short-range communication module 1310 or a long-distance communication module 1320, or a combination thereof.
- the communication module 1300 may include at least one antenna for wireless communication with other devices.
- the short-range communication module 1310 is at least one communication module (not shown) that performs communication according to communication standards such as Bluetooth, Wi-Fi, BLE (Bluetooth Low Energy), NFC/RFID, Wifi Direct, UWB, or ZIGBEE. Poetry) may be included. Additionally, the mobile communication module 1320 may include a communication module (not shown) that performs communication through a network for Internet communication. Additionally, the long-distance communication module 1320 may include a mobile communication module that performs communication according to communication standards such as 3G, 4G, 5G, and/or 6G.
- the communication module 1300 may include a communication module capable of receiving control commands from a remote controller (not shown) located nearby, for example, an IR (infrared) communication module. .
- Sensor 1700 may include various types of sensors.
- the sensor 1700 may include a plurality of sensors configured to detect information about the environment around the robot 1000.
- the sensor 1700 may include a fall prevention sensor (not shown), an ultrasonic sensor (not shown), a motion sensor (not shown), and a travel distance detection sensor (not shown), but is limited thereto. no.
- the mileage detection sensor may include a rotation detection sensor that calculates the rotation speed of the wheel.
- the rotation detection sensor may have an encoder installed to detect the rotation speed of the motor. Since the function of each sensor can be intuitively deduced by a person skilled in the art from its name, detailed description will be omitted.
- the processor 1100 controls the overall operation of the robot 1000.
- the processor 1100 may control the components of the robot 1000 by executing a program stored in the memory 1400.
- the processor 1100 may include a separate NPU that performs the operation of a machine learning model. Additionally, the processor 1100 may include a central processing unit (CPU), a graphics processor (GPU; Graphic Processing Unit), etc.
- CPU central processing unit
- GPU Graphic Processing Unit
- the home appliance function module 1050 may include components used in the operation of devices that perform home appliance functions.
- the home appliance function module 1050 may include a suction part, etc., but is not limited thereto.
- the suction unit functions to collect dust from the floor while sucking in air, and may include, but is not limited to, a rotating brush or broom, a rotating brush motor, an air intake port, a filter, a dust collection chamber, and an air outlet.
- the suction unit may additionally be equipped with a rotating brush structure that can sweep away dust from corners.
- the traveling module 1800 moves the main body of the robot 1000.
- the driving module 1800 is driven according to control signals set by the processor 1100.
- the processor 1100 sets a driving path, generates a control signal so that the robot 1000 moves according to the driving path, and outputs it to the driving module 1800.
- the driving module 1800 has two wheels installed on both sides of the front, two wheels installed on both sides of the rear, a motor that rotates the two rear wheels, and a motor that transmits the power generated from the rear wheels to the front wheels.
- a timing belt installed so as to be installed may be included, but is not limited thereto.
- the 1D distance sensor 1910 may include a TOF sensor or a PDS sensor.
- the 1D distance sensor 1910 and 2D camera 1920 can be described with reference to FIG. 5 .
- the processor 1100 may control the 2D camera 1920 to obtain a 2D image. Additionally, the processor 1100 may calculate relative depths of actual areas represented by pixels in the 2D image based on the acquired 2D image.
- the processor 1100 may control the 1D distance sensor 1910 to obtain a reference distance to the point where the laser is irradiated. Additionally, the processor 1100 may determine the distance from the robot 1000 to the object in the 2D image based on the obtained reference distance and the relative depth of the reference point corresponding to the laser irradiated point among pixels in the 2D image. Additionally, the processor 1100 can drive by controlling the driving module 1800 based on the determined distance to the object.
- the processor 1100 can identify an area of an object within a 2D image. Additionally, the processor 1100 may determine the distance from the robot 1000 to the object based on the relative depths of pixels within the area of the identified object, the obtained reference distance, and the relative depth of the reference point.
- the laser of the 1D distance sensor 1910 may be provided to irradiate perpendicularly to the RGB sensor plane of the 2D camera 1920 from the 1D distance sensor 1910.
- the 1D distance sensor 1910 may be placed toward the front of the robot 1000 along with the 2D camera 1920.
- the 1D distance sensor 1910 may include at least one of a PSD sensor (not shown) and a TOF sensor (not shown).
- the 2D camera 1920 may include an RGB camera (not shown).
- the robot 1000 may include two or more 1D distance sensors 1910.
- the processor 1100 can identify the area of the object and the type of the object. Additionally, the processor 1100 may generate a map indicating the location and type of the object based on the distance to the determined object and the type of the identified object. The processor 1100 can drive by controlling the driving module 1800 based on the generated map.
- the processor 1100 may correct the position of the reference point within the 2D image based on the sensor value of a motion sensor (not shown).
- the processor 1100 inputs a 2D image as input data to an artificial intelligence model and executes the artificial intelligence model to calculate relative depths corresponding to pixels in the 2D image.
- a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
- 'non-transitory storage medium' simply means that it is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is semi-permanently stored in a storage medium and temporary storage media. It does not distinguish between cases where it is stored as .
- a 'non-transitory storage medium' may include a buffer where data is temporarily stored.
- Computer program products are commodities and can be traded between sellers and buyers.
- a 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 or between two user devices (e.g. smartphones). It may be distributed in person or online (e.g., downloaded or uploaded). 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.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Optics & Photonics (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
사물까지의 거리를 결정하는 로봇 및 결정 방법이 제공된다. 본 개시의 일 실시예에 따른 로봇은, 2D 카메라, 1D거리 센서, 로봇을 이동시키는 주행 모듈, 하나 이상의 인스트럭션을 저장하는 적어도 하나의 메모리 및 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써, 2D 카메라를 제어하여 2D 이미지를 획득하고, 획득된 2D 이미지에 기초하여 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출하고, 1D 거리 센서로부터 출력된 레이저가 조사된 지점까지의 기준 거리를 획득하고, 2D 이미지 내의 픽셀들 중 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이와 획득된 기준 거리에 기초하여 로봇으로부터 2D 이미지 내의 사물까지의 거리를 결정하고, 결정된 사물까지의 거리에 기초하여 주행할 수 있다.
Description
본 개시는 로봇에 관한 것이다. 보다 구체적으로, 장애물까지의 거리를 산출하는 로봇에 관한 것이다.
로봇의 자율 주행에 있어서, 주변의 사물을 인식하고, 사물을 회피하여 주행하는 것이 중요하다. 사물까지의 거리가 부정확할 경우 로봇이 사물과 부딪히거나, 의도치 않은 방향으로 주행이 발생할 수 있다.
현재의 로봇은 사물 인식 센서를 통해 주변의 사물을 인식할 수 있다. 그러나, 사물 인식 센서만으로는 사물까지의 거리를 정확하게 알 수 없는 문제점이 있다.
또한, 3D 센서를 탑재하여, 사물까지의 거리를 산출하는 로봇이 등장하고 있으나, 대부분의 3D 센서는 고가이기 때문에, 로봇의 가격이 비싸지는 문제점이 있다.
따라서, 고가의 3D 센서를 사용하지 않고, 주변 사물까지의 거리를 정확하게 검출할 수 있는 방법이 필요하다.
본 개시의 일 실시예에 따르면, 사물까지의 거리를 결정하는 로봇에 있어서, 2D 카메라, 1D거리 센서, 로봇을 이동시키는 주행 모듈, 하나 이상의 인스트럭션을 저장하는 적어도 하나의 메모리 및 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써, 2D 카메라를 제어하여 2D 이미지를 획득하고, 획득된 2D 이미지에 기초하여 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출하고, 1D 거리 센서로부터 출력된 레이저가 조사된 지점까지의 기준 거리를 획득하고, 2D 이미지 내의 픽셀들 중 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이와 획득된 기준 거리에 기초하여 로봇으로부터 2D 이미지 내의 사물까지의 거리를 결정하고, 결정된 사물까지의 거리에 기초하여 주행하도록 주행 모듈을 제어하는 로봇을 제공할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 로봇이 사물까지의 거리를 결정하는 방법에 있어서, 2D 카메라를 제어하여 2D 이미지를 획득하는 단계, 획득된 2D 이미지에 기초하여 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출하는 단계, 1D 거리 센서로부터 출력된 레이저가 조사된 지점까지의 기준 거리를 획득하는 단계, 2D 이미지 내의 픽셀들 중 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이와 획득된 기준 거리에 기초하여 로봇으로부터 2D 이미지 내의 사물까지의 거리를 결정하는 단계 및 결정된 사물까지의 거리에 기초하여 주행하는 단계를 포함하는, 방법을 제공할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 로봇이 사물까지의 거리를 결정하는 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
도 1은 본 개시의 일 실시예에 따른, 로봇이 사물까지의 거리를 결정하는 방법을 도시한다.
도 2는 본 개시의 일 실시예에 따른, 로봇이 인공 지능 모델을 이용하여 2D 이미지 내의 픽셀들에 대한 상대적 깊이를 결정하는 방법을 도시한다.
도 3는 본 개시의 일 실시예에 따른, 로봇이 인공 지능 모델을 이용하여 2D 이미지 내의 사물들의 상대적 깊이 및 사물들을 인식하는 방법을 도시한다.
도 4는 본 개시의 일 실시예에 따른, 로봇이 기준 거리에 기초하여 주변 사물까지의 거리를 결정하는 방법을 도시한다.
도 5는 본 개시의 일 실시예에 따른, 로봇의 블록도를 도시한다.
도 6은 본 개시의 일 실시예에 따른, 로봇이 사물까지의 거리를 결정하는 방법의 흐름도이다.
도 7은 본 개시의 다른 실시예에 따른, 로봇의 블록도를 도시한다.
도 8은 본 개시의 일 실시예에 따른, 로봇의 움직임에 기초하여 기준점을 보정하는 방법의 흐름도를 도시한다.
도 9는 본 개시의 일 실시예에 따른, 로봇이 복수의 1D 거리 센서를 이용하여 사물까지의 거리를 결정하는 방법을 도시한다.
도 10은 본 개시의 일 실시예에 따른, 로봇이 지도를 생성하는 방법을 도시한다.
도 11은 본 개시의 다른 실시예에 따른, 로봇의 블록도를 도시한다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시 예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 또한, 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 이 용어들에 의해 한정되어서는 안 된다. 이 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용된다.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다. 단수의 표현은 문맥상 명백하게 단수를 뜻하지 않는 한, 복수의 의미를 포함한다. 또한, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 '전기적으로 연결'되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 다양한 곳에 등장하는 '일부 실시 예에서' 또는 '일 실시 예에서' 등의 어구는 반드시 모두 동일한 실시 예를 가리키는 것은 아니다.
본 개시의 일 실시예들은 3D 센서를 사용하지 않고, 주변 사물까지의 거리를 결정하는 로봇 및 그 제어 방법을 제공하기 위한 것이다.
도 1은 본 개시의 일 실시예에 따른, 로봇이 사물까지의 거리를 결정하는 방법을 도시한다.
도 1을 참조하면, 로봇(1000)은 적어도 하나의 2D 카메라(1920) 및 1D 거리 센서(1910)를 이용하여 로봇(1000) 주변의 사물들까지의 거리를 결정할 수 있다.
일 실시예에 따른, 로봇(1000)은 2D 카메라(1920)를 이용하여 획득한 2D 이미지에 기초하여 2D 이미지 내의 사물들의 상대적 깊이를 산출하고, 1D 거리 센서(1910)를 이용하여 2D 이미지 내의 하나의 지점까지의 실제 거리를 획득하고, 획득된 실제 거리에 기초하여, 산출된 사물들의 상대적 깊이를 거리로 변환함으로써 로봇(1000)으로부터 2D 이미지 내의 사물들까지의 실제 거리를 추정할 수 있다.
예를 들어, 로봇(1000)은, 2D 카메라를 제어하여 로봇(1000) 전방에 위치한 사물들의 2D 이미지를 획득할 수 있다. 로봇(1000)은 인공 지능 모델을 이용하여 획득된 2D 이미지 내의 픽셀들에 대응하는 실제 영역들의 상대적 깊이를 산출할 수 있다. 또한, 로봇(1000)은 1D 거리 센서(1910)를 제어하여 레이저 조사 지점까지의 기준 거리(402)를 획득할 수 있다. 로봇(1000)은 2D 이미지 내의 픽셀들 중 레이저 조사 지점에 대응하는 기준점의 상대적 깊이를 획득할 수 있다. 로봇(1000)은 획득된 기준 거리, 기준점의 상대적 깊이 및 2D 이미지 내의 사물들 간의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물들까지의 거리를 산출할 수 있다.
로봇(1000)은 주행 기능을 가질 수 있다. 예를 들어, 로봇(1000)은 전방에 위치한 장애물을 인식하고, 장애물을 회피하여 주행할 수 있다. 이 경우, 로봇(1000)은 2D 이미지 내의 사물의 종류를 인식하고, 인식된 사물의 종류가 장애물로써 결정된 경우, 사물까지의 거리에 기초하여 장애물을 회피하여 주행할 수 있다.
또한, 로봇(1000)은 지도 내의 목적지의 위치 및 지도 내의 자신의 위치에 기초하여 목적지까지 주행할 수 있다. 또한, 로봇(1000)은 지도 내의 주행 경로 및 지도 내의 자신의 위치에 기초하여 주행 경로를 따라 주행할 수 있다.
로봇(1000)은 주행 기능을 가진 다양한 형태의 로봇에 대응될 수 있다. 로봇(1000)은 예를 들면, 진공 청소기 로봇(1000), 물걸레 청소기 로봇(1000), 서빙 로봇(1000), 공기 청정기 로봇(1000), 육아 로봇(1000), 가사 로봇(1000) 및 산업용 로봇(1000)을 포함할 수 있으나 이에 제한되지 않는다.
2D 카메라(1920)는 RGB 카메라를 포함할 수 있으나, 이에 제한되지 않는다. 또한, 1D 거리 센서(1910)는 PSD 센서 및 TOF 센서를 포함할 수 있으나, 이에 제한되지 않는다.
도 2는 본 개시의 일 실시예에 따른, 로봇이 인공 지능 모델을 이용하여 2D 이미지 내의 픽셀들에 대한 상대적 깊이를 결정하는 방법을 도시한다.
도 2를 참조하면, 로봇(1000)은 하나의 2D 이미지 내의 각각의 픽셀에 대응하여 픽셀이 나타내는 실제 영역의 상대적 깊이를 결정할 수 있다. 상대적 깊이란, 2D 카메라의 RGB 센서 평면과 평행한 하나의 기준 평면으로부터 픽셀이 나타내는 실제 영역까지의 수직 거리를 의미할 수 있다. 기준 평면은 2D 카메라(1920)의 RGB 센서 평면과 평행한 하나의 가상 평면일 수 있다. 기준 평면은 기 결정되어 로봇(1000) 내에 저장될 수 있으며, 2D 카메라의 RGB 센서 평면일 수도 있다. 인공 지능 모델은, 예를 들어, 딥러닝 모델인 Pix2Pix 모델(200)을 포함할 수 있으나 이에 제한되지 않는다.
인공 지능 모델은 미리 학습될 수 있다. 예를 들어, 2D 이미지를 훈련 데이터의 입력 데이터로 입력하고, 2D 이미지 내의 각각의 픽셀이 나타내는 실제 지점의 측정된 깊이를 훈련 데이터의 출력 데이터로 입력하여 인공 지능 모델을 훈련 시킬 수 있다.
인공 지능 모델은 2D 이미지 내의 각각의 픽셀에 대응하여, 각각의 픽셀이 나타내는 실제 지점의 기준 평면으로부터의 거리가 산출되도록 학습될 수 있다. 많은 수의 2D 이미지에 대해 인공 지능 모델을 훈련 시킴으로써 인공 지능 모델은 보다 정확한 깊이를 산출할 수 있다.
인공 지능 모델은 소프트웨어로 구현되어 로봇(1000)의 메모리에 저장될 수 있으며, 별도의 프로세서로 구현되어 로봇(1000)에 구비될 수도 있다. 또한, 인공 지능 모델은 별도의 서버(미도시)에 저장될 수도 있다.
도 2를 참조하면, 로봇(1000)은 2D 카메라(1920)를 제어하여 로봇(1000)의 전방의 사물들을 나타내는 2D 이미지(210)를 획득할 수 있다. 또한, 로봇(1000)은 획득된 2D 이미지(210)를 입력 데이터로 입력하고 인공 지능 모델을 실행함으로써, 획득한 2D 이미지(210) 내의 각각의 픽셀에 대하여, 픽셀이 나타내는 실제 지점의 상대적 깊이를 산출할 수 있다.
2D 이미지(210) 내의 각각의 픽셀에 대하여, 픽셀의 상대적 깊이를 색으로 변환하는 경우, 도 2의 깊이 이미지(220)가 생성될 수 있다. 예를 들어, 깊이 값이 클수록 빛의 파장이 긴 노란색, 빨간색 순서로 표현될 수 있으며, 깊이 값이 작을수록 파장인 짧은 파란색, 보라색 순서로 표현될 수 있다.
또한, 실시예에 따라, 로봇(1000)은 각각의 픽셀의 상대적 깊이에 기초하여 깊이 이미지(220)를 3D 이미지로 변환할 수도 있다.
도 3는 본 개시의 일 실시예에 따른, 로봇이 인공 지능 모델을 이용하여 2D 이미지 내의 사물들의 상대적 깊이 및 사물들을 인식하는 방법을 도시한다.
도 3를 참조하면, 로봇(1000)은 2D 카메라(1920)를 제어하여 2D 이미지(310)를 획득할 수 있다. 또한, 로봇(1000)은 제 1 인공 지능 모델을 이용하여, 획득한 2D 이미지(310)의 각각의 픽셀에 대응하는 상대적 깊이를 산출하고, 산출된 상대적 깊이를 나타내는 깊이 이미지(330)를 생성할 수 있다. 제 1 인공 지능 모델은 Pix2Pix 모델(도 2의 200)일 수 있다.
또한, 로봇(1000)은 제 2 인공 지능 모델(300)을 이용하여, 획득한 2D 이미지(310) 내의 사물들의 영역 및 종류를 결정할 수 있다. 제 2 인공 지능 모델(300)의 입력은 하나의 이미지일 수 있으며, 출력은 사물의 종류(object class) 및 사물의 영역일 수 있다. 2D 이미지 내의 사물들의 영역은 바운딩 박스들(bonding boxes)로 표현될 수 있다. 제 2 인공 지능 모델은, 예를 들어, CNN(Convolutional Neural Network), R-CNN, YOLO(You Only Look Once), SSD(Single Shot MultiBox Detector) 등을 포함할 수 있으나, 이에 제한되지 않는다.
로봇(1000)은 제 2 인공 지능 모델(300)을 이용하여 2D 이미지 내의 사물들의 영역을 이미지 내의 좌표로써 결정할 수 있다. 또한, 로봇(1000)은 인식된 사물의 종류를 결정할 수 있다. 예를 들어, 로봇(1000)은 2D 이미지(310) 내의 옷의 영역(323)에 대하여 {105, 221, 187, 07, cloths}({x 좌표, y 좌표, 너비, 높이, 사물의 종류})로써 사물의 영역 및 종류를 결정할 수 있다. 로봇(1000)은 2D 이미지(310) 상에 사물들의 영역이 표시된 이미지(320)를 저장할 수도 있다.
또한, 로봇(1000)은, 각각의 픽셀에 대응하는 상대적 깊이 및 사물의 영역에 기초하여 사물들의 상대적 깊이를 결정할 수 있다. 예를 들어, 로봇(1000)은 사물의 영역 내의 픽셀들에 대응하는 상대적 깊이들 중 가장 작은 깊이를 사물의 상대적 깊이로써 결정할 수 있다. 예를 들어, 도 3을 참조하면, 옷의 영역(323) 내의 픽셀들의 상대적 깊이들 중 가장 작은 깊이를 옷의 상대적 깊이로써 결정할 수 있다.
또한, 로봇(1000)은, 1D 거리 센서(1910)를 제어하여, 레이저 조사 지점까지의 거리를 획득할 수 있다. 예를 들어, 1D 거리 센서(190)로부터 출력된 레이저가 사물에 의해 반사되어 수신됨에 따라, 로봇(1000)은 레이저가 출력되어 다시 수신될때까지의 시간 및 레이저의 전파 속도에 기초하여 레이저가 조사된 지점까지의 거리를 획득할 수 있다.
레이저 조사 지점은 2D 이미지 내의 기 결정된 기준점(350)에 대응될 수 있다. 2D 이미지 내에서의 기준점의 위치는 로봇(1000)이 판매되기 전에 미리 캘리브레이션되어 로봇(1000)에 저장될 수 있다. 2D 이미지 내에서 기준점의 위치는 1D 거리 센서(1910)의 레이저가 조사된 지점과 2D 카메라(1920)를 통해 획득된 2D 이미지를 매칭함으로써 결정될 수 있다. 예를 들어, 2D 이미지 내에서 1D 거리 센서(1910)의 레이저가 조사된 실제 지점을 나타내는 픽셀의 위치가 기준점으로 결정될 수 있다. 로봇(1000) 내에서 1D 거리 센서(1910) 및 2D 카메라(1920)의 위치 및 각도는 변하지 않으므로 2D 이미지 내에서 기준점의 위치 또한 고정될 수 있다.
또한, 1D 거리 센서(1910)의 레이저는 조사 각도가 기준 평면(예를 들어, 2D 카메라(1920)의 RGB 센서 평면)에 수직이 되도록 미리 조정될 수 있다.
로봇(1000)은 레이저 조사 지점까지의 거리, 기준점(350)의 상대적 깊이 및 사물들간의 상대적 깊이에 기초하여 사물들까지의 거리를 산출할 수 있다.
도 4는 본 개시의 일 실시예에 따라, 로봇이 기준 거리에 기초하여 주변 사물까지의 거리를 결정하는 방법을 도시한다.
도 4를 참조하면, 로봇(1000)은 1D 거리 센서(1910)를 제어하여 레이저가 조사된 지점(403)까지의 기준 거리(402)를 검출할 수 있다. 또한, 로봇(1000)은 2D 카메라(1920)를 제어하여 로봇(1000) 전방의 제 1 사물(410), 제 2 사물(420) 및 제 3 사물(430)을 포함하는 2D 이미지를 획득할 수 있다. 도 4의 상단은 로봇(1000)과 사물들(410, 420 및 430)의 탑뷰를 나타낸 것이고, 도 4의 하단은 로봇(1000)과 사물들(410, 420 및 430)의 측면뷰를 나타낸 것이다.
로봇(1000)은 획득한 2D 이미지를 입력값으로 입력하고, 인공 지능 모델들을 실행함으로써, 획득된 2D 이미지 내의 사물들(410, 420 및 430)간의 상대적 깊이를 산출할 수 있다. 사물들(410, 420 및 430)간의 상대적 깊이는 기준 평면(405)으로부터 사물들(410, 420 및 430)까지의 수직 거리일 수 있다. 기준 평면(405)은 로봇(1000)으로부터의 거리에 상관없이 2D 카메라(1920)의 센서 평면과 평행한 평면들 중 하나로써 정의될 수 있으나, 도 4에서는 설명의 편의를 위해, 2D 카메라(1920)의 센서 평면과 평행한 평면들 중 제 2 사물(420)과 맞닿은 평면이 기준 평면(405)으로써 설명된다.
로봇(1000)은 레이저가 조사된 지점(403)까지의 기준 거리(402), 2D 이미지 내의 상대적 깊이들 중 레이저가 조사된 지점(403)에 대응하는 기준점의 상대적 깊이 및 사물들(410, 420 및 430)간의 상대적 깊이에 기초하여 로봇(1000)으로부터 사물들(410, 420 및 430)까지의 거리를 결정할 수 있다.
예를 들어, 로봇(1000)은 기준점의 상대적 깊이와 제 1 사물의 상대적 깊이 간의 차이에 기준 거리(402)를 더한 값을 제 1 사물의 거리로써 결정할 수 있다. 도 4를 참조하면, 레이저가 조사된 지점(403)에 대응하는 기준점의 상대적 깊이가 0인 경우, 로봇(1000)은 조사된 지점(403)까지의 거리(402)에 제 1 사물(410)의 깊이(415)를 더한 값을 로봇(1000)으로부터 제 1 사물(410)까지의 거리로써 결정할 수 있다. 실시예에 따라, 기준 평면(405)이 변경되어 제 1 사물(410)의 상대적 깊이가 0이 아닌 값으로 변경되더라도, 기준점의 상대적 깊이와 제 1 사물(410)의 상대적 깊이 간의 차이는 변하지 않으므로, 기준점의 상대적 깊이와 제 1 사물(410)의 상대적 깊이 간의 차이에 기준 거리(402)를 더함으로써 제 1 사물(410)까지의 거리를 산출할 수 있다.
다른 예를 들어, 로봇(1000)은 기준 거리(402)에 제 3 사물(430)의 상대적 깊이(408)와 기준점의 상대적 깊이(도 4에서는 0) 간의 차이를 더한 값을 직각 삼각형의 밑변(404)으로써 결정하고, 조사된 지점(403)과 제 3 사물(430)간의 기준 평면(405) 내에서의 거리를 직각 삼각형의 높이(406)로써 결정하고, 결정된 밑변(404)과 높이(406)를 갖는 직각삼각형의 빗변 거리(409)를 로봇(1000)으로부터 제 1 사물(410)까지의 거리로써 결정할 수도 있다.
도 5는 본 개시의 일 실시예에 따른, 로봇의 블록도를 도시한다.
도 5를 참조하면, 로봇(1000)은 프로세서(1100), 메모리(1400), 주행 모듈(1800), 1D 거리 센서(1910) 및 2D 카메라(1920)를 포함할 수 있다.
1D 거리 센서(1910)는 TOF 센서 또는 PDS 센서를 포함할 수 있다.
TOF 센서는 짧은 빛 펄스를 조사한 후, 조사된 빛 펄스가 물체에 반사되어 돌아오는 에코 펄스를 검출하고, 빛 펄스를 조사한 시간과 에코 펄스를 검출한 시간의 차이 및 빛의 속도에 기초하여, TOF 센서로부터 물체까지의 거리를 검출하는 센서일 수 있다. TOF 센서는 빛 펄스를 방출하는 Emitter와 에코 펄스를 검출하는 Sensor를 포함할 수 있으며, Emitter는 기 결정된 각도로 하나의 지점에 대하여 레이저를 조사할 수 있다. TOF 센서는 1 차원 direct TOF 센서로 언급될 수 있다.
2D 카메라(1920)는 물체로부터 반사되는 자외선, 가시광선 또는 적외선을 검출하는 센서를 포함할 수 있다. 2D 카메라(1920)가 가시광선을 검출하는 센서를 포함하는 경우, 로봇(1000)은 2D 카메라(1920)로부터 RGB 이미지를 획득할 수 있다. 또한, 2D 카메라(1920)가 적외선을 검출하는 센서를 포함하는 경우, 로봇(1000)은 2D 카메라(1920)로부터 적외선 이미지를 획득할 수도 있다.
주행 모듈(1800)은 로봇(1000)의 본체를 이동시킨다. 주행 모듈(1800)은 프로세서(110)에 의해 설정된 제어 신호에 따라 구동된다. 프로세서(1100)는 주행 경로를 설정하고, 주행 경로에 따라 로봇(1000)이 이동하도록 제어 신호를 생성하여 주행 모듈(1800)로 출력한다. 주행 모듈(1800)은 로봇(1000)의 바퀴들을 회전 구동시키는 모터 및 후방의 바퀴에서 발생되는 동력을 전방의 바퀴로 전달할 수 있도록 설치된 타이밍 벨트 등을 포함할 수 있다.
프로세서(1100)는 통상적으로 로봇(1000)의 전반적인 동작을 제어할 수 있다. 프로세서(1100)는 메모리(1400)에 저장된 프로그램들을 실행함으로써, 2D 카메라(1920), 1D 거리 센서(1910) 및 주행 모듈(1800)을 제어할 수 있다.
메모리(1400)는 프로세서(1100)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 메모리(1400)는 인공 지능 모델들을 구현한 소프트웨어 모듈들을 저장할 수도 있다. 프로세서(1100)는 메모리(1400)에 저장된 소프트웨어 모듈들을 실행함으로써 전방의 사물들까지의 거리를 결정할 수 있다.
또한, 다른 실시예로써, 인공 지능 모델들을 구현한 소프트웨어 모듈은 서버(미도시)에 저장될 수 있다. 이 경우, 프로세서(1100)는 1D 거리 센서(1910)를 이용하여 획득한 기준 거리 및 2D 카메라(1920)를 이용하여 획득한 2D 이미지를 서버(미도시)에게 전송하고, 로봇(1000)으로부터 2D 이미지 내의 사물들까지의 거리에 관한 정보를 서버(미도시)로부터 수신할 수 있다.
프로세서(1100)는 2D 카메라(1920)를 제어하여 2D 이미지를 획득할 수 있다. 또한, 프로세서(1100)는 획득된 2D 이미지에 기초하여 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출할 수 있다.
또한, 프로세서(1100)는 1D 거리 센서(1910)를 제어하여, 레이저가 조사된 지점까지의 기준 거리를 획득할 수 있다. 또한, 프로세서(1100)는 획득된 기준 거리, 2D 이미지 내의 픽셀들 중 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물까지의 거리를 결정할 수 있다.
또한, 프로세서(1100)는 결정된 사물까지의 거리에 기초하여 주행 모듈(1800)을 제어함으로써 주행할 수 있다. 예를 들어, 인식된 사물의 종류가 컵 또는 견변과 같은 일정 거리 이내로 접근해서는 안되는 사물인 경우, 프로세서(1100)는 결정된 사물까지의 거리가 기 설정된 거리 이내인지 여부를 판단할 수 있으며, 기 설정된 거리 이내로 접근하지 않도록 주행 경로를 변경할 수 있다. 일정 거리 이내로 접근해서는 안되는 사물의 종류는 메모리(1400) 또는 서버(미도시)에 저장될 수 있으며, 사물의 종류마다 사물의 종류에 대응되는 접근 가능 거리가 미리 저장되어 있을 수 있다.
도 6은 본 개시의 일 실시예에 따른, 로봇이 사물까지의 거리를 결정하는 방법의 흐름도이다.
단계 S610에서, 로봇(1000)은, 2D 카메라(1920)를 제어하여 2D 이미지를 획득할 수 있다.
2D 카메라(1920)는 RGB 카메라를 포함할 수 있다.
단계 S620에서, 로봇(1000)은, 획득된 2D 이미지에 기초하여 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출할 수 있다.
단계 S630에서, 로봇(1000)은, 1D 거리 센서(1910)로부터 출력된 레이저가 조사된 지점까지의 기준 거리를 획득할 수 있다.
1D 거리 센서(1910)는 PSD 센서 및 TOF 센서 중 적어도 하나를 포함할 수 있다.
또한, 1D 거리 센서(1910)는 2D 카메라(1920)와 함께 로봇(1000)의 전방을 향해 배치될 수 있다.
또한, 로봇(1000)은 두 개 이상의 1D 거리 센서(1910)를 포함할 수 있다.
또한, 레이저는 1D 거리 센서(1910)로부터 2D 카메라(1920)의 RGB 센서 평면과 수직으로 조사될 수 있다.
단계 S640에서, 로봇(1000)은, 2D 이미지 내의 픽셀들 중 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이와 획득된 기준 거리에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물까지의 거리를 결정할 수 있다.
일 실시예에 따른, 로봇(1000)은, 2D 이미지 내에서 사물의 영역을 식별할 수 있다. 또한, 로봇(1000)은, 식별된 사물의 영역 내의 픽셀들의 상대적 깊이들, 획득된 기준 거리 및 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 사물까지의 거리를 결정할 수 있다.
또한, 일 실시예에 따른, 로봇(1000)은, 사물의 종류를 식별할 수 있다. 사물의 종류는 옷, 책상, 의자, 가구, 가전 제품, 매트, 책, 전선, 컵, 동물의 변, 흘린 음식물 및 쏟아진 액체일 수 있으나, 이에 제한되지 않는다. 또한, 로봇(1000)은, 결정된 사물까지의 거리 및 식별된 사물의 종류에 기초하여, 사물의 위치 및 종류를 나타내는 지도를 생성할 수 있다. 또한, 로봇(1000)은, 생성된 지도에 기초하여 주행할 수 있다.
또한, 일 실시예에 따른, 로봇(1000)은, 움직임 센서의 센서값에 기초하여, 2D 이미지 내에서 기준점의 위치를 보정할 수 있다. 또한, 로봇(1000)은, 보정된 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물까지의 거리를 결정할 수 있다.
또한, 일 실시예에 따른, 로봇(1000)은, 2D 이미지를 인공 지능 모델의 입력 데이터로써 입력하고, 인공 지능 모델을 실행함으로써 2D 이미지 내의 픽셀들에 대응하는 상대적 깊이들을 산출할 수 있다.
단계 S650에서, 로봇(1000)은, 결정된 사물까지의 거리에 기초하여 주행할 수 있다.
도 7은 본 개시의 다른 실시예에 따른, 로봇의 블록도를 도시한다.
도 7을 참조하면, 로봇(1000)은 프로세서(1100), 메모리(1400), 주행 모듈(1800), 1D 거리 센서(1910) 및 2D 카메라(1920)뿐만 아니라, IMU(Inertial Measurement Unit, 1930), Timer(1940) 및 AI(Artificial Intelligence) 프로세서(1150)를 포함할 수 있다.
IMU(1930)는 로봇(1000)의 속도 및 방향, 가속도를 검출할 수 있다. IMU(1930)는 3축 가속도계 센서 및 3축 각속도계 센서를 포함할 수 있으며, 가속도 및 각속도를 적분하여 로봇(1000)의 속도 및 자세각을 산출할 수 있다.
Timer(1940)는 시간을 시, 분 및 초로써 카운트할 수 있다.
AI 프로세서(1150)는 인공 지능을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 기존의 범용 프로세서 또는 그래픽 전용 프로세서(예를 들어, GPU)의 일부로 제작될 수도 있다. 다른 예로서, AI 프로세서(1150)는 NPU(Neural Processing Unit)에 대응될 수 있다.
AI 프로세서(1150)는 2D 이미지를 입력 데이터로써 입력했을 때, 2D 이미지 내의 픽셀에 대응하여 픽셀이 나타내는 실제 영역의 깊이를 출력 데이터로써 출력하는 인공 지능 모델이 구현되도록 설계될 수 있다. 또한, AI 프로세서(1150)는 2D 이미지를 입력 데이터로써 입력했을 때, 2D 이미지 내의 사물들의 영역 및 종류를 식별하는 인공 지능 모델이 구현되도록 설계될 수 있다.
프로세서(1100)는, AI 프로세서(1150)를 제어하여 2D 이미지 내의 사물들의 영역 및 종류를 식별하고, 2D 이미지 내의 픽셀이 나타내는 실제 영역의 깊이를 획득할 수 있다.
프로세서(1100)는, Timer(1940)가 카운트하는 시각에 기초하여, 2D 이미지를 획득할 때의 시각을 저장할 수 있다.
또한, 프로세서(1100)는, Timer(1940)가 카운트하는 시각에 기초하여, 기준 거리를 획득할 때의 시각을 저장할 수 있다.
프로세서(1100)는 동일한 시각에 획득된 2D 이미지 및 기준 거리에 기초하여 사물들까지의 거리를 산출할 수 있다.
또한, 프로세서(1100)는, IMU(1930)를 제어하여 로봇(1000)의 이동 거리 및 움직인 각도를 주기적으로 검출할 수 있다. 또한, 프로세서(1100)는 검출된 이동 거리 및 움직인 각도에 대응하여 검출된 시각을 저장할 수 있다.
또한, 프로세서(1100)는, 2D 이미지가 획득된 시각과 기준 거리가 획득된 시각의 차이 동안 로봇(1000)이 이동한 거리 및 움직인 각도에 기초하여 2D 이미지 내의 기준점의 위치를 보정할 수 있다. 기준점의 위치를 보정하는 방법은 도 8에서 후술된다.
프로세서(1100)는 보정된 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물까지의 거리를 결정할 수 있다.
도 8은 본 개시의 일 실시예에 따른, 로봇의 움직임에 기초하여 기준점을 보정하는 방법의 흐름도를 도시한다.
단계 S810에서, 로봇(1000)은, 2D 이미지를 획득할 때의 시각을 저장할 수 있다.
로봇(1000)은 Timer(1940)를 이용하여 2D 이미지를 획득할 때의 시각을 저장할 수 있다. 로봇(1000)은 기 결정된 주기로 2D 이미지를 획득할 수 있으며, 주기적으로 획득된 2D 이미지 각각에 대하여 획득된 시간을 저장할 수 있다.
단계 S820에서, 로봇(1000)은, 기준 거리를 획득할 때의 시각을 저장할 수 있다.
로봇(1000)은 Timer(1940)를 이용하여 기준 거리를 획득할 때의 시각을 저장할 수 있다. 로봇(1000)은 2D 이미지와 기준 거리를 동일한 시각에 검출할 수 있으며, 서로 다른 시각에 검출할 수도 있다.
단계 S830에서, 로봇(1000)은, 2D 이미지가 획득된 시각, 기준 거리가 획득된 시각 및 로봇(1000)의 움직임에 기초하여 레이저가 조사된 지점에 대응하는 2D 이미지 내의 기준점을 보정할 수 있다.
로봇(1000)은 IMU(1930)를 이용하여 로봇(1000)의 이동 거리 및 움직인 각도를 주기적으로 검출할 수 있다. 또한, 로봇(1000)은 검출된 이동 거리 및 움직인 각도에 대응하여 검출된 시각을 저장할 수 있다.
로봇(1000)은 2D 이미지가 획득된 시각과 기준 거리가 획득된 시각의 사이에 로봇(1000)이 이동한 거리 및 움직인 각도에 기초하여 2D 이미지 내의 기준점의 위치를 보정할 수 있다. 로봇(1000)이 이동하더라도 2D 이미지 내의 기준점의 위치는 변경되지 않으나, 기준 거리를 획득한 시각과 2D 이미지를 획득한 시각의 차이가 기준 시간 이상인 경우, 기준 거리가 획득된 지점과 2D 이미지 내의 기준점이 나타내는 실제 지점이 상이할 수 있다. 따라서, 기준 거리를 획득한 시각과 2D 이미지를 획득한 시각의 차이가 기준 시간 이상인 것으로 결정됨에 따라, 로봇(1000)은 로봇(1000)이 이동한 거리 및 움직인 각도에 기초하여 2D 이미지 내의 기준점의 위치를 보정할 수 있다. 예를 들어, 2D 이미지가 획득된 후 기준 거리가 획득될 때까지 로봇(1000)이 왼쪽으로 이동한 경우, 이동한 거리에 기초하여 기준점의 위치를 왼쪽으로 이동시킬 수 있다.
단계 S840에서, 로봇(1000)은, 보정된 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물까지의 거리를 결정할 수 있다.
이에 따라, 로봇(1000)이 1D 거리 센서(1910) 및 2D 카메라(1920)를 제어할 때 로봇(1000)이 움직이더라도 사물까지의 거리를 보다 정확하게 산출할 수 있다.
도 9는 본 개시의 일 실시예에 따른, 로봇이 복수의 1D 거리 센서를 이용하여 사물까지의 거리를 결정하는 방법을 도시한다.
도 9를 참조하면, 로봇(1000)은 복수의 1D 거리 센서(1910)를 포함할 수 있다. 예를 들어, 로봇(1000)은 2D 카메라(1920)를 중심으로 제 1 1D 거리 센서(1910a) 및 제 2 1D 거리 센서(1910b)를 포함할 수 있다.
로봇(1000)은 2D 카메라(1920)를 제어하여 2D 이미지를 획득할 수 있다. 또한, 로봇(1000)은 제 1 1D 거리 센서(1910a) 및 제 2 1D 거리 센서(1910b)를 제어하여 제 1 거리 및 제 2 거리를 검출할 수 있다.
로봇(1000)은 획득한 2D 이미지 내의 픽셀들에 대응하여 픽셀이 나타내는 실제 영역의 상대적 깊이를 산출할 수 있다. 또한, 로봇(1000)은 2D 이미지 내에서 제 1 1D 거리 센서(1910a)의 조사 지점에 대응하는 제 1 기준점에서의 제 1 상대적 깊이와 제 1 거리 및 제 2 1D 거리 센서(1910b)의 조사 지점에 대응하는 제 2 기준점에서의 제 2 상대적 깊이와 제 2 거리에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물들까지의 거리를 보다 정확하게 결정할 수 있다.
예를 들어, 로봇(1000)은 제 1 거리와 제 2 거리 간의 차이와 제 1 상대적 깊이와 제 2 상대적 깊이 간의 차이의 비율에 기초하여 2D 이미지 내의 픽셀들의 상대적 깊이를 보정할 수 있다. 픽셀들의 상대적 깊이를 보정한 후, 로봇(1000)은 보정된 픽셀들의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물들까지의 거리를 결정할 수 있다.
또한, 실시예에 따라, 로봇(1000)은 3 개 이상의 1D 거리 센서(1910)를 포함할 수 있다.
도 10은 본 개시의 일 실시예에 따른, 로봇이 지도를 생성하는 방법을 도시한다.
도 10을 참조하면, 로봇(1000)은 사물까지의 거리 및 사물의 식별 정보에 기초하여 사물의 위치를 나타내는 지도를 생성할 수 있다. 로봇(1000)은 소정의 주행 영역에서 주행할 수 있다. 주행 영역은 예를 들면, 댁내 영역, 사무실, 상점 등의 공간에 대응될 수 있다. 로봇(1000)은 주행 영역에 대한 지도를 생성하고, 지도 상에서 주행 경로를 생성할 수 있다.
로봇(1000)은 주행 영역 내에서의 자신의 위치, 자세각 및 사물까지의 거리에 기초하여 주행 영역에서의 사물의 위치를 산출할 수 있다. 또한, 로봇(1000)은 2D 이미지 내의 사물의 종류를 식별할 수 있다.
로봇(1000)은 산출된 사물의 위치 및 식별된 사물의 종류에 기초하여 주행 영역의 지도상에 사물의 위치 및 종류를 나타내는 지도를 생성할 수 있다. 또한, 로봇(1000)은 주행 중에 실시간으로 인식된 사물의 위치 및 종류에 기초하여 지도를 업데이트할 수 있다.
일 실시예에 따르면, 로봇(1000)은 디바이스(2000)와 통신하고, 디바이스(2000)는 로봇(1000)의 동작에 관련된 정보, GUI(Graphic User Interface) 등을 제공할 수 있다. 디바이스(2000)는 로봇(1000)에 대한 정보를 제공하고 로봇(1000)을 제어하기 위한 소정의 애플리케이션을 저장하고 실행할 수 있다. 디바이스(2000)는 서버(3000)를 통해 로봇(1000)과 통신하거나, 근거리 통신을 통해 로봇(1000)과 직접 통신할 수 있다. 디바이스(2000)는 예를 들면, 통신 단말, 모바일 장치, 스마트폰, 태블릿 PC, 또는 웨어러블 장치 등에 대응될 수 있다.
도 10에 도시된 바와 같이, 로봇(1000)은, 주행 영역의 바닥에 놓인 사물의 종류 및 위치를 디바이스(2000)에게 전송할 수 있다. 로봇(1000)은 주행 중에 실시간으로 사물의 종류 및 위치를 인식하고, 인식된 사물의 종류 및 위치를 디바이스(2000)로 전송할 수 있다. 다른 예로서, 로봇(1000)은 청소를 완료한 후에, 인식된 사물의 종류 및 위치를 디바이스(2000)로 전송할 수 있다. 로봇(1000)으로부터 사물의 종류 및 위치를 수신함에 따라, 디바이스(2000)는 주행 영역의 지도 상에, 사물의 종류 및 위치를 디스플레이할 수 있다.
실시예에 따라, 로봇(1000)은 주행 영역의 바닥에 놓인 사물들 중 사용자에 의해 치워져야 하는 사물의 위치 및 종류를 디바이스(2000)에게 전송할 수 있다. 치워져야 하는 사물의 종류는 로봇(1000)에 기 저장되어 있을 수 있다. 예를 들어, 치워져야 하는 사물의 종류는 견변, 컵, 옷, 책, 음식 등을 포함할 수 있다. 로봇(1000)이 2D 이미지 내의 사물을 견변으로 식별함에 따라, 로봇(1000)은 견변의 위치 및 식별 정보를 저장하고, 견변의 위치 및 식별 정보를 나타내는 지도를 디바이스(2000)에게 전송할 수 있다.
또한, 다른 실시예에 따라, 치워져야 하는 사물인지 여부는 서버(3000)에서 결정될 수도 있으며 디바이스(2000)에서 결정될 수도 있다. 서버(3000)는 스마트 싱스 서버 또는 AI 서버일 수 있으나, 이에 제한되지 않는다.
또한, 도 10에 도시된 바와 같이, 디바이스(2000)는 치워져야 하는 사물의 위치 및 종류를 수신함에 따라, 치워져야 하는 사물에 대한 GUI 가이드를 디스플레이할 수 있다. 예를 들어, 주행 영역을 나타내는 지도 상에 치워져야 하는 사물로써 옷, 견변, 컵의 위치 및 식별 정보를 디스플레이할 수 있다.
또한, 디바이스(2000)는'장애물 구역 재청소'버튼을 누르는 사용자 입력을 수신함에 따라, 로봇(1000)에게 치워져야 하는 사물의 위치를 다시 청소할 것을 요청하는 장애물 구역 재청소 요청을 전송할 수 있다. 로봇(1000)은 장애물 구역 재청소 요청을 수신함에 따라, 치워져야 하는 사물의 위치 정보 및 사물이 존재하는지 여부에 기초하여 사물의 영역을 다시 청소할 수 있다.
도 11은 본 개시의 다른 실시예에 따른, 로봇의 블록도를 도시한다.
도 11을 참조하면, 로봇(1000)은 마이크로폰(1200), 통신 모듈(1300), 메모리(1400), 입력 인터페이스(1500), 출력 모듈(1600), 센서(1700), 주행 모듈(1800), 프로세서(1100) 및 1D 거리 센서(1910) 및 2D 카메라(1920)를 포함할 수 있다. 도 5에 도시된 구성과 동일한 구성에 대해서는 동일한 참조 번호가 사용되었다.
도시된 구성 요소 모두가 로봇(1000)의 필수 구성 요소인 것은 아니다. 도 11에 도시된 구성 요소보다 많은 구성 요소에 의해 로봇(1000)이 구현될 수도 있고, 도 11에 도시된 구성 요소보다 적은 구성 요소에 의해 로봇(1000)이 구현될 수도 있다.
출력 모듈(1600)은, 음향 출력 모듈(1620) 및 디스플레이(1610)를 포함할 수 있다.
음향 출력 모듈(1620)는 음향 신호를 로봇(1000)의 외부로 출력할 수 있다. 음향 출력 모듈(1620)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다.
디스플레이(1610)는 프로세서(1100)의 제어에 따라, 영상 처리부(미도시)에서 이미지 처리된 이미지 데이터를 디스플레이 패널(미도시)을 통해 출력할 수 있다. 디스플레이 패널(미도시)은 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다.
입력 인터페이스(1500)는 로봇(1000)을 제어하기 위한 사용자 입력을 수신할 수 있다. 입력 인터페이스(1500)는 사용자 입력을 수신하여 프로세서(1100)로 전달한다.
입력 인터페이스(1500)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch) 등을 포함하는 사용자 입력 전자 장치를 포함할 수 있으나 이에 제한되지 않는다.
또한, 입력 인터페이스(1500)는 음성 인식을 위한 음성 인식 장치를 포함할 수 있다. 예를 들어, 음성 인식 장치는 마이크로폰(1200)이 될 수 있으며, 음성 인식 장치는 사용자의 음성 명령 또는 음성 요청을 수신할 수 있다. 그에 따라서, 프로세서(1100)는 음성 명령 또는 음성 요청에 대응되는 동작이 수행되도록 제어할 수 있다.
메모리(1400)는 로봇(1000)의 동작에 필요한 다양한 정보, 데이터, 명령어, 프로그램 등을 저장한다. 메모리(1400)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나 또는 이들의 조합을 포함할 수 있다. 메모리(1400)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 로봇(1000)은 인터넷(internet)상에서 저장 기능을 수행하는 웹 스토리지(web storage) 또는 클라우드 서버를 운영할 수도 있다.
통신 모듈(1300)은 프로세서(1100)의 제어에 따라 외부 장치 또는 외부 서버와 프로토콜에 따라 정보를 송수할 수 있다. 통신 모듈(1300)는 외부 장치(미도시)와 데이터를 송수신하는 적어도 하나의 통신 모듈 및 적어도 하나의 포트를 포함할 수 있다.
또한, 통신 모듈(1300)은 적어도 하나의 유선 또는 무선 통신 네트워크를 통해서 외부 장치와 통신을 수행할 수 있다. 통신 모듈(1300)은 근거리 통신 모듈(1310) 또는 원거리 통신 모듈(1320) 중 적어도 하나 또는 이들의 조합을 포함할 수 있다. 통신 모듈(1300)은 다른 장치와 무선으로 통신하기 위한 적어도 하나의 안테나를 포함할 수 있다.
근거리 통신 모듈(1310)은 블루투스, 와이파이, BLE(Bluetooth Low Energy), NFC/RFID, 와이파이 다이렉트(Wifi Direct), UWB, 또는 ZIGBEE 등의 통신 규격에 따른 통신을 수행하는 적어도 하나의 통신 모듈(미도시)를 포함할 수 있다. 또한, 이동 통신 모듈(1320)는 인터넷 통신을 위한 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)를 포함할 수 있다. 또한, 원거리 통신 모듈(1320)은 3G, 4G, 5G, 및/또는 6G 등의 통신 규격에 따른 통신을 수행하는 이동 통신 모듈을 포함할 수 있다.
또한, 통신 모듈(1300)는 근거리에 위치하는 원격 제어 장치(remote controller)(미도시)로부터 제어 명령을 수신할 수 있는 통신 모듈, 예를 들어, IR(infrared) 통신 모듈 등을 포함할 수 있다.
센서(1700)는 다양한 종류의 센서를 포함할 수 있다.
센서(1700)는 로봇(1000) 주변 환경에 관한 정보를 감지하도록 구성되는 다수의 센서들을 포함할 수 있다. 예를 들어, 센서(1700)는 추락 방지 센서(미도시), 초음파 센서(미도시), 움직임 센서(미도시) 및 주행거리 검출 센서(미도시) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 주행거리 검출 센서는 바퀴의 회전수를 계산하는 회전검출 센서를 포함할 수 있다. 예를 들면, 회전 검출센서는 모터의 회전수를 검출하도록 설치된 엔코더가 있을 수 있다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
프로세서(1100)는 로봇(1000)의 전반적인 동작을 제어한다. 프로세서(1100)는 메모리(1400)에 저장된 프로그램을 실행하여, 로봇(1000)의 구성 요소들을 제어할 수 있다.
실시예에 따라, 프로세서(1100)는 기계학습 모델의 동작을 수행하는 별도의 NPU를 포함할 수 있다. 또한, 프로세서(1100)는 중앙 처리부(CPU), 그래픽 전용 프로세서(GPU; Graphic Processing Unit) 등을 포함할 수 있다.
가전 기능 모듈(1050)은 가전 기능을 수행하는 장치들의 동작에 이용되는 구성들을 포함할 수 있다. 가전 기능 모듈(1050)은 흡입부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 흡입부는, 공기를 흡입하면서 바닥의 먼지를 집진하는 기능을 하는데, 회전브러쉬 또는 빗자루, 회전브러쉬 모터, 공기흡입구, 필터, 집진실, 공기배출구 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 흡입부는, 부가적으로 구석 먼지를 쓸어낼 수 있는 솔이 회전되는 구조로 장착될 수도 있다.
주행 모듈(1800)은 로봇(1000)의 본체를 이동시킨다. 주행 모듈(1800)은 프로세서(1100)에 의해 설정된 제어 신호에 따라 구동된다. 프로세서(1100)는 주행 경로를 설정하고, 주행 경로에 따라 로봇(1000)이 이동하도록 제어 신호를 생성하여 주행 모듈(1800)로 출력한다. 주행 모듈(1800)은 전방의 양측에 설치된 두 개의 바퀴와 후방의 양측에 설치된 두 개의 바퀴, 후방의 두 개의 바퀴를 각각 회전 구동시키는 모터 및 후방의 바퀴에서 발생되는 동력을 전방의 바퀴로 전달할 수 있도록 설치된 타이밍 벨트 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.
1D 거리 센서(1910)는 TOF 센서 또는 PDS 센서를 포함할 수 있다. 1D 거리 센서(1910) 및 2D 카메라(1920)는 도 5를 참조하여 설명될 수 있다.
프로세서(1100)는 2D 카메라(1920)를 제어하여 2D 이미지를 획득할 수 있다. 또한, 프로세서(1100)는 획득된 2D 이미지에 기초하여 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출할 수 있다.
또한, 프로세서(1100)는 1D 거리 센서(1910)를 제어하여, 레이저가 조사된 지점까지의 기준 거리를 획득할 수 있다. 또한, 프로세서(1100)는 획득된 기준 거리, 2D 이미지 내의 픽셀들 중 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 2D 이미지 내의 사물까지의 거리를 결정할 수 있다. 또한, 프로세서(1100)는 결정된 사물까지의 거리에 기초하여 주행 모듈(1800)을 제어함으로써 주행할 수 있다.
프로세서(1100)는 2D 이미지 내에서 사물의 영역을 식별할 수 있다. 또한, 프로세서(1100)는 식별된 사물의 영역 내의 픽셀들의 상대적 깊이들, 획득된 기준 거리 및 기준점의 상대적 깊이에 기초하여 로봇(1000)으로부터 사물까지의 거리를 결정할 수 있다.
1D 거리 센서(1910)의 레이저는 1D 거리 센서(1910)로부터 2D 카메라(1920)의 RGB 센서 평면과 수직으로 조사되도록 구비될 수 있다. 1D 거리 센서(1910)는 2D 카메라(1920)와 함께 로봇(1000)의 전방을 향해 배치될 수 있다. 1D 거리 센서(1910)는 PSD 센서(미도시) 및 TOF 센서(미도시) 중 적어도 하나를 포함할 수 있다.
2D 카메라(1920)는 RGB 카메라(미도시)를 포함할 수 있다. 로봇(1000)은 두 개 이상의 1D 거리 센서(1910)를 포함할 수 있다.
프로세서(1100)는 사물의 영역 및 사물의 종류를 식별할 수 있다. 또한, 프로세서(1100)는 결정된 사물까지의 거리 및 식별된 사물의 종류에 기초하여, 사물의 위치 및 종류를 나타내는 지도를 생성할 수 있다. 프로세서(1100)는 생성된 지도에 기초하여 주행 모듈(1800)을 제어함으로써 주행할 수 있다.
프로세서(1100)는 움직임 센서(미도시)의 센서값에 기초하여, 2D 이미지 내에서 기준점의 위치를 보정할 수 있다. 프로세서(1100)는 2D 이미지를 인공 지능 모델의 입력 데이터로써 입력하고, 인공 지능 모델을 실행함으로써 2D 이미지 내의 픽셀들에 대응하는 상대적 깊이들을 산출할 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
Claims (15)
- 로봇(1000)에 있어서,2D 카메라(1920);1D 거리 센서(1910);상기 로봇(1000)을 이동시키는 주행 모듈(1800);하나 이상의 인스트럭션을 저장하는 적어도 하나의 메모리(1400); 및적어도 하나의 프로세서(1100)를 포함하고, 상기 적어도 하나의 프로세서(1100)는 상기 메모리(1400)에 저장된 상기 하나 이상의 인스트럭션을 실행함으로써,상기 2D 카메라(1920)를 제어하여 2D 이미지를 획득하고,상기 획득된 2D 이미지에 기초하여 상기 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출하고,상기 1D 거리 센서(1910)로부터 출력된 레이저가 조사된 지점까지의 기준 거리를 획득하고,상기 2D 이미지 내의 픽셀들 중 상기 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이와 상기 획득된 기준 거리에 기초하여 상기 로봇(1000)으로부터 상기 2D 이미지 내의 사물까지의 거리를 결정하고,상기 결정된 사물까지의 거리에 기초하여 주행하도록 상기 주행 모듈(1800)을 제어하는, 로봇(1000).
- 제 1 항에 있어서,상기 적어도 하나의 프로세서는,상기 2D 이미지 내에서 상기 사물의 영역을 식별하고,상기 식별된 사물의 영역 내의 픽셀들의 상대적 깊이들, 상기 획득된 기준 거리 및 상기 기준점의 상대적 깊이에 기초하여 상기 로봇으로부터 상기 사물까지의 거리를 결정하는, 로봇.
- 제 1 항 또는 제 2 항에 있어서,상기 레이저는 상기 1D 거리 센서로부터 상기 2D 카메라의 센서 평면과 수직으로 조사되는, 로봇.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,상기 1D 거리 센서는 상기 2D 카메라와 함께 상기 로봇의 전방을 향해 배치되는, 로봇.
- 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,상기 1D 거리 센서는 PSD(Position Sensitive Device) 센서 또는 TOF(Time of Flight) 센서 중 적어도 하나를 포함하고,상기 2D 카메라는 컬러 영상 생성 카메라를 포함하는, 로봇.
- 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,상기 로봇은 두 개 이상의 1D 거리 센서를 포함하고,상기 적어도 하나의 프로세서는, 상기 두 개 이상의 1D 거리 센서로부터 출력된 레이저가 조사된 지점들까지의 기준 거리들을 획득하고, 상기 두 개 이상의 1D 거리 센서에 대응하는 두 개 이상의 기준점들의 상대적 깊이들과 상기 획득된 기준 거리들에 기초하여 상기 로봇으로부터 상기 2D 이미지 내의 사물까지의 거리를 결정하는, 로봇.
- 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,상기 적어도 하나의 프로세서는,상기 사물의 종류를 식별하고,상기 결정된 사물까지의 거리 및 상기 식별된 사물의 종류에 기초하여, 상기 사물의 위치 및 종류를 나타내는 지도를 생성하고,상기 생성된 지도에 기초하여 주행하는, 로봇.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,상기 로봇은 움직임 센서를 더 포함하고,상기 적어도 하나의 프로세서는 상기 움직임 센서의 센서값에 기초하여, 상기 2D 이미지 내에서 상기 기준점의 위치를 보정하는, 로봇.
- 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,상기 적어도 하나의 프로세서는, 상기 2D 이미지를 인공 지능 모델의 입력 데이터로써 입력하고, 상기 인공 지능 모델을 실행함으로써 상기 2D 이미지 내의 픽셀들에 대응하는 상대적 깊이들을 산출하는, 로봇.
- 로봇이 사물까지의 거리를 결정하는 방법에 있어서,2D 카메라를 제어하여 2D 이미지를 획득하는 단계;상기 획득된 2D 이미지에 기초하여 상기 2D 이미지 내의 픽셀들이 나타내는 실제 영역들의 상대적 깊이들을 산출하는 단계;1D 거리 센서로부터 출력된 레이저가 조사된 지점까지의 기준 거리를 획득하는 단계;상기 2D 이미지 내의 픽셀들 중 상기 레이저가 조사된 지점에 대응하는 기준점의 상대적 깊이와 상기 획득된 기준 거리에 기초하여 상기 로봇으로부터 상기 2D 이미지 내의 사물까지의 거리를 결정하는 단계; 및상기 결정된 사물까지의 거리에 기초하여 주행하는 단계를 포함하는, 방법.
- 제 10 항에 있어서,상기 2D 이미지 내의 사물까지의 거리를 결정하는 단계는,상기 2D 이미지 내에서 상기 사물의 영역을 식별하는 단계; 및상기 식별된 사물의 영역 내의 픽셀들의 상대적 깊이들, 상기 획득된 기준 거리 및 상기 기준점의 상대적 깊이에 기초하여 상기 로봇으로부터 상기 사물까지의 거리를 결정하는 단계를 포함하는, 방법.
- 제 10 항 또는 제 11 항에 있어서,상기 레이저는 상기 1D 거리 센서로부터 상기 2D 카메라의 센서 평면과 수직으로 조사되는, 방법.
- 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,상기 1D 거리 센서는 상기 2D 카메라와 함께 상기 로봇의 전방을 향해 배치되는, 방법.
- 제 10 항 내지 제 13 항 중 어느 한 항에 있어서,상기 1D 거리 센서는 PSD(Position Sensitive Device) 센서 또는 TOF(Time of Flight) 센서 중 적어도 하나를 포함하고,상기 2D 카메라는 컬러 영상 생성 카메라를 포함하는, 방법.
- 제 10 항 내지 제 14 항 중 어느 한 항에 있어서,상기 1D 거리 센서는 두 개 이상의 1D 거리 센서를 포함하고,상기 기준 거리를 획득하는 단계는, 상기 두 개 이상의 1D 거리 센서로부터 출력된 레이저들이 조사된 지점까지의 기준 거리들을 획득하는 단계를 포함하고,상기 2D 이미지 내의 사물까지의 거리를 결정하는 단계는, 상기 두 개 이상의 1D 거리 센서에 대응하는 두 개 이상의 기준점들의 상대적 깊이들과 상기 획득된 기준 거리들에 기초하여 상기 로봇으로부터 상기 2D 이미지 내의 사물까지의 거리를 결정하는 단계를 포함하는, 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220054435A KR20230154700A (ko) | 2022-05-02 | 2022-05-02 | 사물까지의 거리를 산출하는 로봇 및 방법 |
KR10-2022-0054435 | 2022-05-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023214702A1 true WO2023214702A1 (ko) | 2023-11-09 |
Family
ID=88646602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/004832 WO2023214702A1 (ko) | 2022-05-02 | 2023-04-11 | 사물까지의 거리를 산출하는 로봇 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20230154700A (ko) |
WO (1) | WO2023214702A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102715055B1 (ko) * | 2023-09-25 | 2024-10-11 | 주식회사 브릴스 | 이형제 분사 자동화 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200030738A (ko) * | 2018-09-13 | 2020-03-23 | 주식회사 케이티 | 이동 로봇 및 이의 위치 인식 방법 |
JP2020116710A (ja) * | 2019-01-25 | 2020-08-06 | 株式会社ソニー・インタラクティブエンタテインメント | ロボット制御システム |
KR20200133544A (ko) * | 2019-05-20 | 2020-11-30 | 엘지전자 주식회사 | 이동 로봇 및 그 제어방법 |
KR20210122921A (ko) * | 2020-03-10 | 2021-10-13 | 엘지전자 주식회사 | 로봇 청소기 및 그 제어 방법 |
KR20220004589A (ko) * | 2020-07-03 | 2022-01-11 | 주식회사 두산 | 로봇의 피킹 우선 순위 선정 장치 및 방법 |
-
2022
- 2022-05-02 KR KR1020220054435A patent/KR20230154700A/ko unknown
-
2023
- 2023-04-11 WO PCT/KR2023/004832 patent/WO2023214702A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200030738A (ko) * | 2018-09-13 | 2020-03-23 | 주식회사 케이티 | 이동 로봇 및 이의 위치 인식 방법 |
JP2020116710A (ja) * | 2019-01-25 | 2020-08-06 | 株式会社ソニー・インタラクティブエンタテインメント | ロボット制御システム |
KR20200133544A (ko) * | 2019-05-20 | 2020-11-30 | 엘지전자 주식회사 | 이동 로봇 및 그 제어방법 |
KR20210122921A (ko) * | 2020-03-10 | 2021-10-13 | 엘지전자 주식회사 | 로봇 청소기 및 그 제어 방법 |
KR20220004589A (ko) * | 2020-07-03 | 2022-01-11 | 주식회사 두산 | 로봇의 피킹 우선 순위 선정 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20230154700A (ko) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014297039B2 (en) | Auto-cleaning system, cleaning robot and method of controlling the cleaning robot | |
WO2018070686A1 (ko) | 공항용 안내 로봇 및 그의 동작 방법 | |
WO2019124913A1 (en) | Robot cleaners and controlling method thereof | |
WO2016200098A1 (ko) | 이동 로봇 및 그 제어방법 | |
WO2018164326A1 (ko) | 청소기 및 그 제어방법 | |
WO2017200303A2 (ko) | 이동 로봇 및 그 제어방법 | |
WO2016129950A1 (ko) | 청소 로봇 및 그 제어방법 | |
WO2018043957A1 (en) | Robot cleaner | |
WO2015008874A1 (ko) | 로봇 청소기 및 그 로봇 청소기의 3d 센서 자가 교정 방법 | |
WO2023214702A1 (ko) | 사물까지의 거리를 산출하는 로봇 및 방법 | |
WO2018131856A1 (ko) | 청소기 및 그 제어방법 | |
WO2019240208A1 (ja) | ロボットおよびその制御方法、ならびにプログラム | |
WO2020122582A1 (en) | Artificial intelligence moving robot and method for controlling the same | |
WO2019212174A1 (ko) | 인공지능 청소기 및 그 제어방법 | |
KR20190103511A (ko) | 이동 로봇 및 그 제어방법 | |
WO2021006590A1 (en) | Docking device and mobile robot system | |
WO2020204355A1 (ko) | 전자 장치 및 그 제어 방법 | |
US20240126290A1 (en) | Travel map creating apparatus, travel map creating method, and recording medium | |
WO2021020911A1 (en) | Mobile robot | |
WO2019212172A1 (ko) | 청소기 및 그 제어방법 | |
WO2022086161A1 (ko) | 로봇 및 그 제어 방법 | |
EP3478143A1 (en) | Robot cleaner | |
WO2020138954A1 (ko) | 이동 로봇 및 이동 로봇의 제어방법 | |
WO2020105906A1 (ko) | 이동 장치 및 이동 장치에 부착된 거리 센서의 기울기를 감지하는 방법 | |
WO2022149715A1 (ko) | 청소 로봇 및 그 제어 방법 |
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: 23799585 Country of ref document: EP Kind code of ref document: A1 |