WO2022086157A1 - 전자 장치 및 그 제어 방법 - Google Patents
전자 장치 및 그 제어 방법 Download PDFInfo
- Publication number
- WO2022086157A1 WO2022086157A1 PCT/KR2021/014675 KR2021014675W WO2022086157A1 WO 2022086157 A1 WO2022086157 A1 WO 2022086157A1 KR 2021014675 W KR2021014675 W KR 2021014675W WO 2022086157 A1 WO2022086157 A1 WO 2022086157A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- gripper
- movement
- axis
- rotation
- information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 38
- 238000003062 neural network model Methods 0.000 claims abstract description 167
- 238000012549 training Methods 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 230000002787 reinforcement Effects 0.000 description 6
- 239000012636 effector Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013145 classification model Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/1612—Programme controls characterised by the hand, wrist, grip 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/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/90—Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39124—Grasp common rigid object, no movement end effectors relative to object
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39536—Planning of hand motion, grasping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
Definitions
- the present invention relates to an electronic device and a control method thereof, and more particularly, to an electronic device including a gripper and a control method thereof.
- robots for various purposes are being deployed in factories and homes, and these robots may grip external objects and move them from one location to another, or perform an operation of transporting them.
- an industrial robot deployed in a factory may grip an object that is difficult for a human to grip and transport it to a specific location, or may perform assembly.
- a robot disposed at home may perform indoor cleaning, such as transporting foreign substances, or may move an object that is difficult for a human to grasp or a dangerous object to a specific location.
- the conventional robot could grasp the object only when it correctly recognized the object, for example, the distance to the object, the shape of the object, and the like. It is very difficult to accurately recognize the distance to the object or the shape of the object, and there is a problem that the amount of calculation required for this is large.
- an object of the present invention is to provide an electronic device for efficiently controlling a gripper to grip an external object, and a method for controlling the same.
- an electronic device includes a camera, a gripper configured to grip a grip target object, a memory in which a neural network model is stored, and at least one image captured by the camera. and a processor that inputs to the neural network model, obtains movement information and rotation information of the gripper from the neural network model, and controls the gripper based on the movement information and rotation information, wherein the at least one image includes: and at least a part of the grip target object, wherein the neural network model outputs the movement information and the rotation information for positioning the gripper adjacent to the grip target object based on the at least one image wherein the movement information includes one of a first direction movement, a second direction movement, or a stop movement of the gripper, and the rotation information includes: the movement information and a first direction rotation, a second direction rotation, or contains one of the unturned.
- an advantage of an electronic device including such a gripper is that it can recognize a grip target object with a classification model using a neural network model that predicts the relative position of the grip target object, and enable movement toward the grip target object. there is. According to this configuration, accurate three-dimensional position information of the grip target object is unnecessary, and only a low-cost sensor such as a camera can accurately grip the grip target object.
- the electronic device according to an embodiment of the present disclosure may not require, for example, an expensive separate sensor. For example, it may not require an IR depth sensor, a stereo sensor or other complex image sensor or a simple low cost sensor such as a simple camera. Accordingly, it is possible to maintain high movement precision in horizontal/vertical and rotational directions while substantially reducing the total cost of the electronic device. In addition, such an electronic device can also provide high gripping accuracy.
- the processor may control the gripper so that the gripper grips the grip target object based on the movement information corresponding to the stop of movement and the rotation information corresponding to the non-rotation.
- the gripper can immediately grip the grip target object, so a separate grip command is not required. Accordingly, when the gripper is correctly positioned with respect to the position and direction of the grip target object, a grip operation can be performed automatically.
- the movement information output from the neural network model includes x-axis movement information, y-axis movement information, and z-axis movement information
- the x-axis movement information includes a first movement of the gripper in the x-axis direction.
- the y-axis movement information includes a first movement of the gripper in a y-axis direction and a second movement in the y-axis direction.
- the z-axis movement information includes: a first direction movement in the z-axis direction, a second movement in the z-axis direction, or a movement in the z-axis direction of the gripper It may contain one of the stops.
- the linear direction in which the gripper should move by the neural network model for each of the x, y and z axes ? forward or backward ? The position and/or orientation of the gripper and/or the gripper to approach the gripping object may be precisely determined.
- the rotation information output from the neural network model includes x-axis rotation information, y-axis rotation information, and z-axis rotation information
- the x-axis rotation information includes a clockwise rotation of the gripper based on the x-axis and the x-axis includes one of a reference counterclockwise rotation and a non-rotation based on the x-axis
- the y-axis rotation information includes one of a clockwise rotation based on the y-axis, a counterclockwise rotation based on the y-axis, and a non-rotation based on the y-axis of the gripper.
- the z-axis rotation information may include one of a clockwise rotation based on the z-axis of the gripper, a counterclockwise rotation based on the z-axis, or a non-rotation based on the z-axis of the gripper.
- the neural network model for each of the x, y and z axes determines whether the gripper should rotate clockwise or counterclockwise, clockwise or counterclockwise to approach the gripping object or position the gripper. and/or the direction can be adjusted to approach the grip target object.
- the processor may control the gripper to grip the grip target object.
- the grip command is connected to the recognition of a preset motion pattern based on the obtained movement information, so that it is not necessary to additionally perform position recognition of the grip target object, and the grip command may be performed without additionally performing the grip command.
- the at least one image includes first and second images
- the processor inputs the first and second images to the neural network model to obtain first movement information and first rotation information from the neural network model. obtains, controls the gripper based on the first movement information and the first rotation information, captured by the camera while the gripper is controlled based on the first movement information and the first rotation information
- the third and fourth images are input to the neural network model to obtain second movement information and second rotation information from the neural network model, and the second movement information and the second rotation
- the gripper can be controlled based on the information.
- the gripper can be moved advantageously (and also cost-effectively).
- the processor moves and rotates the gripper based on the movement information and rotation information output in real time or at preset time intervals by the neural network model to position the gripper so as to be adjacent to the grip target object. . Therefore, while the first movement of the gripper is performed based on the first movement information and the first rotation information, the movement of the gripper can be adjusted by the second movement performed based on the second movement information and the second rotation information. .
- the first and second images include information for obtaining a depth value
- the processor does not acquire a depth value based on the first and second images, but considers the depth information through a trained neural network model Movement information and rotation information can be obtained.
- the neural network model only the first and second images may be used.
- the movement of the gripper based on the first movement information and the second rotation information may be performed for a preset time and/or until a preset distance is reached.
- the movement of the gripper based on the first movement information and the first rotation information may be performed until the movement of the gripper based on the received second movement information and the second rotation information is triggered/initiated.
- the neural network model may obtain a depth map based on the at least one image, and output the movement information and the rotation information based on the depth map. Using this neural network model, it is possible to approximate the depth-position of the gripping object within the operation area/space of the gripper using at least one image captured by a simple low-cost camera. Therefore, such a neural network model can efficiently and accurately position the grip target object (in terms of cost) within the operation area/space of the gripper.
- the neural network model includes the movement information and the rotation for positioning the gripper adjacent to the external object based on distance information between at least a part of the gripper and at least a part of the external object included in each of a plurality of training images. It can be learned to output information.
- the neural network model advantageously does not need to predict successive numerical values using the regression model to determine the absolute and exact position/distance of the gripped object, but may use a classification model. Using a classification model, such as deciding between several choices, or simply classifying a relative distance to a gripped object (e.g., near or far), etc., will make it easier to train a neural network and better ensure the performance of the neural network model. can
- the camera may include a plurality of cameras, the plurality of cameras being spaced apart from each other, and configured to photograph the grip target object from different angles.
- Stereo vision in this embodiment is advantageously used by the electronic device, and may enable more accurate classification as described above using images captured from multiple cameras from different angles.
- the camera may be a stereo vision camera.
- a method of controlling an electronic device including a neural network model, inputting at least one image to the neural network model, and receiving movement information and rotation information of a gripper from the neural network model acquiring, and controlling the gripper based on the movement information and the rotation information, wherein the at least one image includes at least a portion of the gripper and at least a portion of a gripping target object, and the neural network model outputs the movement information and the rotation information for positioning the gripper adjacent to the grip target object based on the at least one image,
- the movement information includes one of a first direction movement, a second direction movement, or a stop movement of the gripper
- the rotation information includes one of a first direction rotation, a second direction rotation, or non-rotation of the gripper It is possible to output the rotation information.
- the advantages of this method may be the same as for the electronic devices described above.
- the method may further include controlling the gripper so that the gripper grips the grip target object based on the movement information corresponding to the stop of movement and the rotation information corresponding to the non-rotation.
- the gripper can grip the grip target object, so there is no need to provide a separate grip command to the gripper. Accordingly, when the gripper is correctly positioned with respect to the position and direction of the grip target object, the gripping operation may be automatically performed.
- the movement information output from the neural network model includes x-axis movement information, y-axis movement information, and z-axis movement information
- the x-axis movement information includes a first movement of the gripper in the x-axis direction.
- the y-axis movement information includes a first movement of the gripper in a y-axis direction and a second movement in the y-axis direction.
- the z-axis movement information includes: a first direction movement in the z-axis direction, a second movement in the z-axis direction, or a movement in the z-axis direction of the gripper It may contain one of the stops.
- the linear direction in which the gripper should move by the neural network model for each of the x, y and z axes ? forward or backward ? The position and/or orientation of the gripper and/or the gripper to approach the gripping object may be precisely determined.
- the rotation information output from the neural network model includes x-axis rotation information, y-axis rotation information, and z-axis rotation information
- the x-axis rotation information includes a clockwise rotation of the gripper based on the x-axis and the x-axis includes one of a reference counterclockwise rotation and a non-rotation based on the x-axis
- the y-axis rotation information includes one of a clockwise rotation based on the y-axis, a counterclockwise rotation based on the y-axis, and a non-rotation based on the y-axis of the gripper.
- the z-axis rotation information may include one of a clockwise rotation based on the z-axis of the gripper, a counterclockwise rotation based on the z-axis, or a non-rotation based on the z-axis of the gripper.
- the neural network model for each of the x, y and z axes determines whether the gripper should rotate clockwise or counterclockwise, clockwise or counterclockwise to approach the gripping object or position the gripper. and/or the direction can be adjusted to approach the grip target object.
- the method may further include controlling the gripper to grip the grip target object when it is identified that the gripper repeats a preset operation based on the movement information.
- the grip command is connected to the recognition of a preset motion pattern based on the obtained movement information, so that it is not necessary to additionally perform position recognition of the grip target object, and the grip command may be performed without additionally performing the grip command.
- the at least one image includes first and second images
- the obtaining of the movement information and the rotation information includes inputting the first and second images into the neural network model to obtain a second image from the neural network model.
- Acquiring first movement information and first rotation information wherein the controlling of the gripper includes controlling the gripper based on the first movement information and the first rotation information, 1
- the third and fourth images are input to the neural network model to model the neural network
- the method may further include obtaining second movement information and second rotation information from the controller, and controlling the gripper based on the second movement information and the second rotation information.
- the gripper can be moved advantageously (and also cost-effectively).
- the gripper can be controlled using only movement information and rotation information output by the neural network model.
- the electronic device may not include any additional sensors apart from the camera to obtain input data for the neural network model.
- the movement information output by the neural network model may include only information on whether to move the gripper in the first or second direction, or whether to stop the movement of the gripper, or whether to keep the gripper at the current position. there is.
- the movement information output by the neural network model may not include information on how much the gripper needs to be moved, that is, the movement distance.
- the neural network model may calculate a probability for each of movement in a first direction along a particular axis, movement in a second direction along a particular axis, and stop movement along a particular axis (ie, the x, y, or z axis).
- This probability may indicate what is the probability of moving the gripper to be closer to the grip target object by stopping each movement or movement along the axis.
- the highest probability may be output as movement information about a specific axis by the neural network model.
- the neural network model may calculate a probability for each of rotation in a first direction about a specific axis, rotation in a second direction about a specific axis, and rotation stop about a specific axis (that is, 3 probabilities for each of the x, y, or z axes). This probability may indicate what the probability is that each rotation or rotation stop around the axis will move the gripper closer to the gripped object.
- the highest probability may be output as rotation information about a specific axis by the neural network model.
- the neural network model includes movement information including one of a first direction movement, a second direction movement, or a movement stop of the gripper for positioning the gripper adjacent to the gripping target object based on the at least one image and the first direction Rotation information including one of rotation, rotation in the second direction, or non-rotation may be output.
- the robot when the robot moves a gripper to grip the external object, it can be positioned adjacent to the external object by using only a minimum movement and a minimum amount of time.
- FIG. 1 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
- FIG. 2 is a diagram schematically illustrating movement and rotation of a gripper according to an embodiment of the present disclosure.
- FIG. 3 is a diagram for explaining a neural network model according to an embodiment of the present disclosure.
- FIG. 4 is a view for explaining movement information and rotation information according to an embodiment of the present disclosure.
- FIG. 5 is a diagram for explaining learning of a neural network model according to an embodiment of the present disclosure.
- FIG. 6 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
- FIG. 7 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
- FIG. 8 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
- Embodiments of the present disclosure may be subjected to various transformations and may have various embodiments, and 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 of the specific embodiments, and it should be understood to include all transformations, equivalents and substitutions included in the spirit and scope of the disclosure. In describing the embodiments, if it is determined that a detailed description of a related known technology may obscure the subject matter, the detailed description thereof will be omitted.
- a “module” or “unit” performs at least one function or operation, and may be implemented as hardware or software, or a combination of hardware and software.
- a plurality of “modules” or a plurality of “units” may be integrated into at least one module and implemented by at least one processor, except for “modules” or “units” that need to be implemented with specific hardware.
- FIG. 1 is a block diagram illustrating a configuration of an electronic device according to an exemplary embodiment.
- an electronic device 100 includes a user terminal device, a display device, a set-top box, a tablet personal computer (PC), a smart phone, e-book reader, desktop PC, laptop PC, workstation, server, personal digital assistant (PMP), portable multimedia player (PMP), MP3 player, kiosk It may be implemented in various types of devices such as (Kiosk).
- the electronic device 100 is an accessory type (eg, a watch, a ring, a bracelet, an anklet, a necklace, glasses, a contact lens, or a head-mounted-device (HMD)); It may be implemented as various types of electronic devices, such as a wearable device corresponding to at least one type of fabric or clothing (eg, electronic clothing), a robot including a driving unit, a projector, and a server.
- an accessory type eg, a watch, a ring, a bracelet, an anklet, a necklace, glasses, a contact lens, or a head-mounted-device (HMD)
- HMD head-mounted-device
- the electronic device 100 may be implemented as a robot.
- the robot may refer to various types of machines that have the ability to perform a task by themselves.
- a robot may refer to a smart machine that senses the surrounding environment in real time based on a sensor or a camera, collects information, and operates autonomously in addition to a simple repeat function.
- the electronic device 100 may mean a robot device.
- the robot device may refer to various types of machines having the ability to perform a function by itself.
- the robot device may refer to a smart machine that senses the surrounding environment in real time based on a sensor, the camera 110, etc. in addition to a simple repeat function, collects information, and operates autonomously.
- the electronic device 100 may include a gripper 120 capable of gripping or moving an external object such as a human finger.
- the gripper 120 may be referred to as a robot hand, which is the distal end of the articulated robot, but hereinafter, it will be collectively referred to as the gripper 120 for convenience of description.
- the electronic device 100 may be classified into an industrial robot, a medical robot, a home robot, a military robot, an exploration robot, etc. according to a field of use or a function that can be performed.
- the industrial robot may be implemented as a robot used in a product manufacturing process in a factory, a robot that responds to customers, an order reception, and a service, etc. in a store or restaurant.
- the electronic device 100 grips an external object by controlling the gripper 120 provided in the main body 120 in various places such as factories, hotels, marts, hospitals, and clothing stores. After gripping, it can be implemented as a robot that can transport an external object to a specific location.
- the robot may be variously classified according to the field of application, function, and purpose of use, and is not limited to the above-described example.
- a conventional robot calculates a distance between an external object and a gripper as a specific numerical value based on a depth map of an image including an external object, moves the gripper based on the calculated distance, and then grips the external object. ) was done.
- the conventional robot can position the gripper adjacent to the external object only when the position information of the external object (or the distance information between the external object and the gripper) is acquired, and control the gripper to grip the external object could.
- the robot can grip the external object smoothly only when the distance between the external object and the gripper is more or less accurately calculated within the error range. Or, after several trials and errors, there is a problem with gripping external objects.
- trial and error means that if the robot fails to grip the external object, it recalculates the distance between the external object and the gripper, and moves the gripper based on the recalculated distance to grip the external object.
- a grip target object an external object gripped by the electronic device 100 through the gripper 120 is collectively referred to as a grip target object.
- the electronic device 100 In contrast to the conventional robot calculating the distance between the gripping object and the gripper by using a neural network model and then positioning the gripper adjacent to the gripping object based on the calculated distance, the electronic device 100 according to an embodiment Each of movement and rotation of the gripper 120 may be classified into one of at least three classes without calculating the distance between the gripper 120 and the gripping target object. Subsequently, the electronic device 100 may move the gripper 120 or rotate the gripper 120 based on the classified class to position the gripper 120 adjacent to the grip target object.
- a method for the electronic device 100 to acquire any one class for each movement and rotation of the gripper 120 and a method for positioning the gripper 120 adjacent to a grip target object to explain about it.
- the electronic device 100 includes a camera 110 , a gripper 120 , a memory 130 , and a processor 140 .
- the camera 110 is configured to capture a still image or a moving image.
- the camera 110 may capture still images at a specific point in time, but may also continuously capture still images.
- the camera 110 according to an embodiment of the present disclosure may provide the acquired image to the processor 140 .
- a plurality of cameras 110 may be implemented.
- the gripper 120 is a device provided at the end of an arm of the electronic device 100 and may be configured to grip an object.
- the gripper 120 may be implemented as an impact gripper, an ingressive gripper, an astrictive gripper, a continuous gripper, or the like.
- the memory 130 is implemented as an internal memory such as a ROM (eg, electrically erasable programmable read-only memory (EEPROM)) included in the processor 140 , a RAM, or the like, or with the processor 140 . It may be implemented as a separate memory. In this case, the memory 130 may be implemented in the form of a memory embedded in the electronic device 100 or may be implemented in the form of a memory detachable to the electronic device 100 depending on the purpose of data storage. For example, data for driving the electronic device 100 is stored in a memory embedded in the electronic device 100 , and data for an extended function of the electronic device 100 is detachable from the electronic device 100 . It can be stored in any available memory.
- ROM electrically erasable programmable read-only memory
- a volatile memory eg, dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.
- non-volatile memory eg, One time programmable ROM (OTPROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, flash memory (such as NAND flash or NOR flash);
- a memory card eg, compact flash (CF), secure digital ), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card), etc.
- external memory that can be connected to the USB port (e.g., USB memory)
- USB port e.g., USB memory
- the memory 130 may store the neural network model 10 .
- the processor 140 controls the overall operation of the electronic device 100 .
- the processor 140 may be implemented as a digital signal processor (DSP), a microprocessor (microprocessor), an artificial intelligence (AI) processor, or a timing controller (T-CON) for processing a digital image signal.
- DSP digital signal processor
- microprocessor microprocessor
- AI artificial intelligence
- T-CON timing controller
- CPU central processing unit
- MCU micro controller unit
- MPU micro processing unit
- AP application processor
- CP communication processor
- the processor 140 is a SoC (System on Chip) in which a processing algorithm is embedded. , may be implemented in large scale integration (LSI), or may be implemented in the form of field programmable gate array (FPGA).
- SoC System on Chip
- the processor 140 may include one or a plurality of processors.
- one or more processors may be a general-purpose processor such as a CPU, an AP, a digital signal processor (DSP), or the like, a graphics-only processor such as a GPU, a VPU (Vision Processing Unit), or an artificial intelligence-only processor such as an NPU.
- DSP digital signal processor
- One or a plurality of processors control to process input data according to a predefined operation rule or artificial intelligence model stored in the memory 130 .
- the AI-only processor may be designed with a hardware structure specialized for processing a specific AI model.
- the processor 140 acquires movement information of the gripper 120 by inputting at least one image received through the camera 110 into the neural network model 10 stored in the memory 130 .
- the processor 140 may obtain movement information of the gripper 120 by inputting the first image and the second image into the neural network model 10 .
- each of the first image and the second image may be different images including at least a portion of the grip target object.
- each of the first image and the second image may be images obtained by photographing the same grip target object differently.
- the stereo vision camera is based on the same principle that the left eye and the right eye are differently formed when both eyes of a person separated by about 6.5 cm look at the same object. may acquire a left-eye image and a right-eye image in which the same grip target object is photographed differently.
- each of the left eye image and the right eye image may be a first image and a second image.
- each of the first image and the second image may be images obtained by photographing the same grip target object at different angles (or viewpoints) and at different ratios.
- each of the first image and the second image may be images obtained by photographing the same grip target object at different times.
- each of the first and second images may further include at least a portion of the gripper 120 in addition to the grip target object.
- the processor 140 may obtain movement information and rotation information for positioning the gripper 120 adjacent to the grip target object by inputting the first and second images into the neural network model 10 .
- the processor 140 may input the first and second images to the neural network model 10, and the neural network model 10 may output depth information and movement information and rotation information of the gripper 120, The processor 140 may acquire depth information based on the first and second images, and input the acquired depth information to the neural network model 10 to acquire movement information and rotation information of the gripper 120 , of course. am.
- FIG. 2 is a diagram for explaining a neural network model according to an embodiment.
- the camera 110 may include at least two cameras.
- the camera 110 is implemented as a stereo vision camera
- the processor 140 is a first image 1 reflecting binocular disparity characteristics in which one grip target object is taken differently through the stereo vision camera.
- the second image 2 may be used to acquire the depth of the grip target object.
- the first and second images 1 and 2 may include information for obtaining a depth value
- the processor 140 may generate the first and second images Without explicitly acquiring the depth value based on (1,2), only the first and second images (1,2) are input to the neural network model 10, and the depth ( Depth) information in consideration of movement information and rotation information may be acquired.
- the neural network model 10 may be learned by inputting only the first and second images 1 and 2, not depth information, and in this case, the neural network model 10 is the first and information (eg, depth information) included in the second images 1 and 2), and based on this, when outputting probability values of a plurality of layers constituting the neural network model 10, depth information Weights corresponding to each of the plurality of layers may be adjusted to be considered.
- the learning process of the neural network model 10 will be described later.
- the stereo vision camera uses at least two different images (for example, the first and the first It may refer to the camera 110 that acquires depth information (or distance information) of the grip target object based on the second image).
- the stereo vision camera may include a plurality of cameras spaced apart on the electronic device 100, but is not limited thereto.
- one camera 110 provided in the electronic device 100 captures the grip target object at a first angle, and then captures the grip target object at a second angle to capture the first and second images 1,
- 2) may be implemented in a manner of sequentially acquiring.
- the processor 140 inputs the first and second images 1 and 2 to the neural network model 10 to provide movement information for moving the gripper 120 and for rotating the gripper 120 .
- Rotation information can be obtained.
- the processor 140 may move the gripper 120 in the first direction, move the gripper 120 in the second direction, or stop the movement based on the movement information.
- the processor 140 may rotate the gripper 120 in the first direction, rotate the gripper 120 in the second direction, or non-rotate the gripper 120 based on the rotation information.
- FIG. 3 is a diagram schematically illustrating movement and rotation of a gripper according to an exemplary embodiment.
- the neural network model 10 moves or moves the gripper 120 in a first direction, a second direction, or a movement of the gripper 120 to position the gripper 120 adjacent to the gripping target object based on the first and second images 1 and 2 It is possible to output movement information including one of the stops.
- the movement information may include x-axis movement information, y-axis movement information, and z-axis movement information.
- the x-axis movement information means left-right movement information of the gripper 120 .
- the x-axis movement information may include one of a first-direction movement (+), a second-direction movement (-) in the x-axis direction, or a stop movement.
- the first direction movement in the x-axis direction means leftward movement of the gripper 120
- the second direction movement in the x-axis direction means rightward movement of the gripper 120
- the stop of movement is x It may mean maintaining the current position of the gripper 120 with respect to the axis.
- the y-axis movement information means vertical movement information of the gripper 120 .
- the y-axis movement information may include one of a first-direction movement (+), a second-direction movement (-), or a stop movement of the gripper 120 in the y-axis direction.
- the first direction movement in the y-axis direction means an upward movement of the gripper 120
- the second direction movement in the y-axis direction means a downward movement of the gripper 120
- the stop of movement is y It may mean maintaining the current position of the gripper 120 with respect to the axis.
- the z-axis movement information means information on the front-back movement of the gripper 120 .
- the z-axis movement information may include one of a first-direction movement (+), a second-direction movement (-), and a stop movement of the gripper 120 in the z-axis direction.
- the first direction movement in the z-axis direction means the forward movement of the gripper 120
- the second direction movement in the z-axis direction means the backward movement of the gripper 120
- the stop movement is based on the z-axis This may mean maintaining the current position of the gripper 120 .
- the second direction may mean a direction directly opposite to the first direction.
- the neural network model performs clockwise (+) and counterclockwise (counterclockwise) rotations of the gripper 120 to position the gripper 120 adjacent to the gripping target object based on the first and second images. It is possible to output rotation information including either -)) or non-rotation.
- the rotation information may include x-axis rotation information, y-axis rotation information, and z-axis rotation information of the gripper 120 .
- the x-axis rotation information may include one of clockwise rotation (clockwise (+)), counterclockwise rotation relative to the x-axis (counterclockwise (-)) or non-rotation based on the x-axis of the gripper 120 .
- the y-axis rotation information may include one of clockwise rotation based on the y-axis, counterclockwise rotation based on the y-axis, or non-rotation based on the y-axis of the gripper 120 . .
- the z-axis rotation information may include one of clockwise rotation (+), counterclockwise (-)), and non-rotation based on the z-axis of the gripper 120 based on the z-axis. .
- the neural network model does not output the specific movement distance (movement amount) in a specific direction of the gripper 120 as movement information, but classifies the movement of the gripper 120 into at least three classes for each of three axes and then classifies class can be output as movement information.
- each of the at least three classes may correspond to movement in the first direction (+), movement in the second direction (-), and stop movement.
- the neural network model does not output the rotational angle (rotation amount) based on a specific axis of the gripper 120 as rotation information, but classifies the rotation of the gripper 120 into at least three classes for each of the three axes, The classified class can be output as rotation information.
- each of the at least three classes may correspond to clockwise (+), counterclockwise (-), and non-rotation.
- the electronic device 100 includes a gripper 120 movable in three dimensions, and the gripper 120 may be movable and rotatable along x, y, and z axes.
- the electronic device 100 may include the gripper 120 movable only in two dimensions or one dimension. For example, it may move and/or rotate along x and y axes, and may move and/or rotate along x and z axes, or y and z axes, or x, y, z axes.
- movement and/or rotation (by axis) of the gripper 120 may be classified into three classes by the neural network model 10 and output as movement information/rotation information.
- the movement and/or rotation (by axis) of the gripper 120 may also be classified into three or more classes by the neural network model 10 and output as movement information/rotation information. For example, it may be classified into 4, 5, 6, 7, 8, 9, 10, or 10 or more classes.
- FIG. 4 is a view for explaining movement information and rotation information according to an embodiment.
- the neural network model 10 controls the gripper 120 when each of the first and second images 1 and 2 including at least a portion of the gripper 120 and at least a portion of a grip target object is input. Probability of reaching a position for gripping the grip target object by performing either movement in the first direction (+), movement in the second direction (-), or stop movement (0) in order to position it adjacent to the grip target object can be calculated.
- the gripper 120 moves in a first direction based on first and second images 1 and 2 obtained by photographing at least a portion of the gripper 120 and at least a portion of the gripping target object from different angles.
- the first probability of being positioned closer to the grip target object when moving, the second probability that the gripper 120 will be positioned closer to the grip target object when moving in the second direction, and the current position of the gripper 120 are
- Each of the third probabilities indicating whether they are located adjacent to the target object may be obtained.
- Positioning the gripper 120 adjacent to the grip target object may mean that the gripper 120 is located at a distance capable of gripping the grip target object when performing a grip operation.
- the neural network model 10 may output a movement (or stop movement) corresponding to the largest value among the first to third probabilities as movement information. For example, when the first probability is the largest value, the neural network model 10 may output a first direction movement (+) corresponding to the first probability as movement information.
- the movement information output by the neural network model 10 determines whether to move the gripper 120 in the first or second direction, or to stop the movement of the gripper 120 (or the current position of the gripper 120 ). to be maintained), and may not include information on how much to move the gripper 120 , that is, the moving distance.
- the neural network model 10 rotates clockwise about a specific axis to position the gripper 120 adjacent to the grip target object. ), counterclockwise (-), or non-rotation, whichever action should be performed, may be calculated.
- the neural network model 10 shows a first probability that the gripper 120 will be positioned closer to the grip target object when the gripper 120 rotates clockwise based on the x-axis, and the gripper 120 is half based on the x-axis.
- the second probability to be positioned closer to the gripping target object and the x-axis reference angle of the gripper 120 are positioned adjacent to the rotation gripping target object so that the clockwise or counterclockwise rotation is
- Each of the third probabilities indicating unnecessary may be obtained.
- the sum of the first to third probabilities may be 1.
- Positioning the gripper 120 adjacent to the grip target object may mean that the gripper 120 is located at a distance capable of gripping the grip target object when performing a grip operation.
- the neural network model may output a rotation (or non-rotation) corresponding to the largest value among the first, second, and third probabilities as rotation information. For example, when the second probability is the largest value, the neural network model may output counterclockwise (-) corresponding to the second probability as rotation information.
- the processor 140 may move (or stop moving) the gripper 120 and rotate (or non-rotate) the gripper 120 based on each of the movement information and the rotation information.
- the processor 140 determines if the movement information includes a first direction movement in the x-axis direction, a second movement in the y-axis direction, and a stop movement in the z-axis direction, based on the movement information.
- the gripper 120 may move in a first direction (eg, left direction) based on the x-axis, move in a second direction (eg, upward) based on the y-axis, and stop movement based on the z-axis.
- the processor 140 controls the gripper 120 based on the rotation information. It can be rotated clockwise based on the x-axis, rotated counterclockwise based on the y-axis, and non-rotated based on the z-axis.
- the specific probability numbers in FIG. 4 are only an example for convenience of explanation, and the neural network model 10 may output various combinations of movement information and rotation information based on the first and second images 1 and 2 .
- the first and clockwise directions are indicated by (+)
- the second and counterclockwise directions are indicated by (-)
- movement stop and non-rotation are indicated by (0).
- the processor 140 may move and rotate the gripper 120 based on the movement information and the rotation information. Subsequently, the processor 140 receives the image in real time or at a preset time interval through the camera 110 , and inputs the received image to the neural network model to obtain next movement information and rotation information of the gripper 120 . .
- the processor 140 may obtain the first movement information and the first rotation information by inputting the first and second images 1 and 2 to the neural network model 10 .
- the first movement information may include an x-axis direction (+), a y-axis direction (-), and a z-axis direction (0)
- the first rotation information is based on the x-axis (+), y-axis reference (-), z-axis reference (0) may be included.
- the processor 140 may obtain second movement information and second rotation information by inputting the third and fourth images received through the camera 110 into the neural network model 10 .
- the third and fourth images may be images obtained by photographing the gripping target object and the gripper 120 after a preset time period after the first and second images. That is, each of the third and fourth images is at least a portion of the gripper 120 corresponding to the current position of the gripper 120 controlled (eg, moved and rotated) according to the first movement information and the first rotation information.
- the processor 140 controls the movement of the gripper 120 in the x-axis direction (+), the y-axis direction (-), and the z-axis direction (0) based on the first movement information, and the first rotation information
- the processor 140 may obtain the second movement information and the second rotation information by inputting the third and fourth images into the neural network model 10 .
- the processor 140 moves the gripper 120 in the x-axis direction (+), y-axis direction (-), and z-axis direction (0) for a preset time based on the first movement information, Based on the rotation information, the gripper 120 may be rotated for a preset time based on the x-axis (+), the y-axis (-), and the z-axis (0).
- the processor 140 inputs the third and fourth images to the neural network model 10 to obtain second movement information and second rotation information.
- the third and fourth images are obtained by capturing at least a portion of the gripper 120 and at least a portion of the gripping target object after the camera 110 captures the first and second images 1 and 2 and a preset time elapses. They may be images taken from different angles.
- the camera 110 may acquire an image pair (eg, the third and fourth images) with a time interval of 0.05 seconds and transmit it to the processor 140 .
- the image pair captures at least a portion of the gripper 120 and at least a portion of the gripping object using any one of a plurality of cameras spaced apart from each other.
- An image obtained by photographing at least a part of the gripper 120 and at least a part of the grip target object may be included using one image and the other.
- the time interval of 0.05 seconds is only an example, and it goes without saying that the camera 110 may acquire an image pair at a relatively short time or a long time interval.
- the time interval may be 0.01 seconds, 0.02 seconds, 0.03 seconds, 0.04 seconds, 0.06 seconds, 0.07 seconds, 0.08 seconds, 0.09 seconds, or 0.1 seconds.
- the time interval may be relatively shorter than 0.1 second, or relatively longer than 0.1 second.
- the processor 140 moves and rotates the gripper 120 based on the first movement information and the first rotation information, respectively, a preset time elapses from the time the first image 1 is acquired
- the position of the gripper 120 included in the third image obtained after the operation may be different from the position of the gripper 120 included in the first image.
- the position of the gripper 120 included in the third image is the gripper 120 included in the first image.
- the position of the gripper 120 included in the fourth image also differs from the position of the gripper 120 included in the second image 2 by 0.05(s)*moving speed (m/s) of the gripper 120 will fly
- the second movement information corresponding to the third and fourth images output by the neural network model is the first and second images. It may be the same as or different from the first movement information corresponding to (1, 2).
- the first movement information corresponding to the first and second images 1 and 2 is an x-axis direction (+), a y-axis direction (-), and a z-axis direction (0)
- the third and fourth The second movement information corresponding to the image may be in an x-axis direction (0), a y-axis direction (+), and a z-axis direction (0).
- the difference in the angle with respect to a specific axis between the gripper 120 and the grip target object included in the third image is the first image ( It will be different from the angle difference with respect to a specific axis between the gripper 120 included in 1) and the grip target object.
- the angle difference with respect to a specific axis between the gripper 120 and the grip target object included in the fourth image may also be different from the angle difference with respect to a specific axis between the gripper 120 and the grip target object included in the second image 2 will be.
- the neural network model outputs next (or new) rotation information based on the current position of the gripper 120
- the second rotation information corresponding to the third and fourth images is the first and second images 1, It may be the same as or different from the first rotation information corresponding to 2).
- the first rotation information corresponding to the first and second images 1 and 2 is based on the x-axis (+), the y-axis (-), and the z-axis (0)
- the third and fourth The second rotation information corresponding to the image may be in an x-axis direction (+), a y-axis direction (0), and a z-axis direction (0).
- the neural network model 10 outputs movement information and rotation information for positioning the gripper 120 adjacent to the grip target object in real time or at a preset time interval based on an image received in real time or at a preset time interval.
- the neural network model 10 does not output specific numerical values corresponding to the movement distance and rotation angle of the gripper 120 , but outputs movement information and rotation information corresponding to the current position of the gripper 120 in real time or at preset time intervals. can do. Accordingly, the processor 140 may move and rotate the gripper 120 based on the movement information and rotation information output by the neural network model in real time or at a preset time interval to position the gripper 120 adjacent to the grip target object.
- FIG. 5 is a diagram for explaining learning of a neural network model according to an embodiment.
- the neural network model 10 is characterized in that it is made through learning to output movement information and rotation information for locating the gripper 120 adjacent to an external object included in each of a plurality of training images.
- a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden.
- Such learning may be performed in the device itself on which artificial intelligence according to the present disclosure is performed, or may be performed through a separate server and/or system.
- Examples of the learning algorithm include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
- a neural network model learned by a supervised learning algorithm will be described. First, a method of acquiring training data of a neural network model will be described with reference to FIG. 5 .
- the learning data generation module acquires a stereo vision image of the motion of the gripper when a conventional rule-based robot or a robot including a conventional neural network model controls a gripper to grip an external object.
- the stereo vision image includes at least a portion of a gripper and at least a portion of an external object provided in a conventional robot, and the gripper moves and rotates to be positioned adjacent to the external object and then moves of the gripper until gripping the external object It may be a video taken of
- each of the plurality of frames constituting the stereo vision image may be composed of a different image pair.
- each of the plurality of frames may include a pair of images obtained by photographing at least a portion of the gripper and at least a portion of the external object at the same time and from different angles.
- each image pair may include a portion of a gripper.
- At least a portion of the gripper may refer to a jaws or a finger portion in contact with a grip target object as a component of the gripper.
- the learning data generation module may refer to one function of the processor 140 or may refer to a processor that generates learning data provided in an external device.
- the learning data generation module may acquire a control signal output by the conventional robot to move the gripper.
- the learning data generation module outputs i) a control signal for each movement direction of the gripper's x-axis, y-axis, and z-axis to position the gripper adjacent to an external object by the conventional rule-based robot, or ii ), it is possible to obtain a control signal for each of the rotation directions of the x-axis, y-axis, and z-axis.
- the learning data generation module includes i) the movement direction of each of the x-axis, y-axis, and z-axis of the gripper output by the neural network model in order for the robot including the conventional neural network model to position the gripper adjacent to the external object.
- a control signal, or ii) a control signal for each rotation direction of the x-axis, y-axis, and z-axis may be obtained.
- the learning data generating module may obtain a movement coordinate value of the gripper (and a rotation angle of the gripper with respect to each axis mapped to each movement coordinate value).
- the learning data generating module may acquire the obtained control signal or the movement coordinate value of the gripper and the rotation angle of each axis mapped to each movement coordinate value, and the movement coordinate value and each movement coordinate of the gripper in space from the sensing data of the sensor Of course, it is also possible to obtain the rotation angle of each axis mapped to the value.
- the learning data generation module may configure the obtained plurality of movement coordinate values and the rotation angle of each axis mapped to each movement coordinate value as gripper trajectory data, and the gripper trajectory data is learning data for learning the movement of the gripper for gripping.
- the gripper trajectory data may consist only of movement coordinate values in space, and may further include a rotation angle of each axis mapped to each movement coordinate value.
- the neural network model included in the conventional robot is a model for calculating the distance between the gripper and the external object
- the conventional robot may be a robot that moves the gripper adjacent to the external object based on the calculated distance
- the learning data generating module divides the stereo vision image acquired from the conventional robot in frame units, and based on the gripper trajectory data, the mapped gripper trajectory data of the n-1 th image frame (the spatial coordinate value of the gripper or each axis rotation angle) and the gripper trajectory data mapped to the n-th image frame to determine which direction the gripper has moved relative to, and to change the movement direction of the gripper based on the x-axis in the first direction, moving in the second direction, or stopping the movement.
- Match any one, match the y-axis reference movement direction to any one of the first direction movement, the second direction movement, or stop movement, and match the z-axis reference movement direction to any one of the first direction movement, the second direction movement or stop movement can be matched.
- the learning data generating module may generate the learning data by using the respective movement directions of the gripper's x-axis, y-axis, and z-axis corresponding to each of the plurality of frames as a ground truth.
- the learning data generating module i) determines the x-axis movement direction of the gripper in the first frame based on control signals for each movement direction of the x-axis, y-axis, and z-axis of the gripper. If the first direction, the y-axis movement direction is the second direction, and the z-axis movement direction is stop movement, the 'x-axis (+), y-axis (-), z-axis (0)' is the movement of the gripper in the first frame.
- the first frame may include different images (eg, images captured from different angles) including at least a part of the gripper and at least a part of the gripping object.
- the learning data generation module compares the gripper trajectory data (spatial coordinate value or rotation angle of each axis) mapped to the n-1 th image frame with the gripper trajectory data value mapped to the nth image frame based on the gripper trajectory data to determine which direction it is rotated relatively, match the rotation direction of the gripper based on the x-axis to one of the first rotation, the second rotation, or non-rotation, and the rotation direction based on the y-axis to the first rotation and the second direction Any one of rotation or non-rotation may be matched, and the z-axis reference rotation direction may be matched with any one of a first direction rotation, a second direction rotation, or non-rotation.
- the gripper trajectory data spatial coordinate value or rotation angle of each axis
- the learning data generating module may generate learning data by performing ground truth to each of the rotation directions of the gripper's x-axis, y-axis, and z-axis corresponding to each of the plurality of frames.
- the learning data generation module determines that ii) the x-axis reference rotation direction of the gripper in the first frame is based on the control signals for the respective rotation directions of the x-axis, y-axis, and z-axis of the gripper. If it is the second direction, the rotation direction based on the y-axis is non-rotation, and the rotation direction based on the z-axis is non-rotation, the 'x-axis (-), y-axis (0), z-axis (0)' is the gripper in the first frame We can generate training data with the ground truth about the rotation direction of . Meanwhile, for convenience of explanation, it has been described above that the first direction is (+), the second direction is (-), and movement stop or non-rotation is expressed as (0).
- the learning data generating module may acquire an image obtained by attaching a sensor to a human arm or a hand, and capturing at least a part of the hand and at least a part of an external object. Then, the learning data generating module is configured to i) the movement directions of each of the x-axis, y-axis, and z-axis of the human hand and ii) each of the x-axis, y-axis, and z-axis of the human hand based on the sensed data received from the sensor. The direction of rotation can be identified.
- the learning data generation module generates learning data by matching the identified i) x-axis, y-axis, and z-axis movement directions and ii) the x-axis, y-axis, and z-axis rotation directions respectively.
- a conventional rule-based robot or a robot including a conventional neural network model controls a gripper to grip an external object
- a plurality of stereo vision images obtained by photographing the movement of the gripper
- Each frame of may be input training data of the neural network model.
- a first frame among a plurality of frames constituting a stereo vision image may include an image pair (eg, a first image and a second image 1 and 2).
- the neural network model learning module may input an image pair (eg, a first image and a second image (1, 2)) to the neural network model, and the neural network model 10 may include each of the input image pairs.
- the neural network model 10 shows a first probability that the gripper 120 will be located closer to the grip target object when the gripper 120 moves in the first direction based on the x-axis based on the image pair, the gripper 120 .
- a second probability of being located closer to the grip target object and a third probability indicating whether the current position of the gripper 120 is located adjacent to the grip target object may be obtained, respectively.
- the sum of the first, second and third probabilities may or may not be 1.
- the neural network model 10 may obtain an error value based on an error between each of the first to third probabilities and the ground truth.
- the movement direction of the gripper 120 corresponding to the image pair has a value of 1 (refer to the GT label of FIG. 5 ), and the remaining movement directions have a value of 0, and the neural network model is based on the image pair.
- Each of the first to third probabilities (refer to the Network Output of FIG. 5 ) output by the above method may have a value of 0 to 1.
- the error value (see Error in FIG. 5 ) may have a value of -1 to 1 . That is, referring to FIG. 5 , the error value may mean a difference between a value of 1 corresponding to a GT label and a probability value corresponding to a network output.
- the neural network model learning module may adjust a weight and a parameter of a hidden layer constituting the neural network model 10 in a direction to minimize an error value.
- the neural network model learning module obtains an error value based on the error between each of the first to third probabilities and the ground truth, and the neural network model ( 10) can be learned.
- the neural network model training module may search for an optimal weight based on stochastic gradient descent, and may adjust the weight of each hidden layer based on this.
- the neural network model includes first to third probabilities corresponding to each of the x-axis, y-axis, and z-axis movement directions of the gripper 120 and second to third probabilities corresponding to each of the x-axis, y-axis, and z-axis rotation directions of the gripper 120 .
- the first to third probabilities that is, a total of 18 probabilities are output, and the neural network model learning module may obtain a total of 18 error values based on errors with the ground truth corresponding to the total 18 probabilities, respectively.
- the reinforcement learning algorithm is an algorithm that trains the neural network model 10 to perform an optimal action in the current state, and a reward is given whenever an action is performed.
- the neural network model learning module may train the neural network model 10 in a direction to maximize a reward.
- the neural network model 10 includes movement information including one of a first direction movement, a second direction movement, or a stop movement of the gripper 120 for positioning the gripper 120 adjacent to an external object and the gripper Rotation information including one of a first direction rotation, a second direction rotation, or non-rotation of 120 may be output.
- the reinforcement learning algorithm may set a case in which the gripper 120 is positioned closer to an external object than before according to the movement information and rotation information output by the neural network model 10 as a reward.
- the neural network model learning module may train the neural network model so that the result of the movement of the gripper 120 is as close to the external object as possible, that is, the reward is maximized according to the movement information and rotation information output by the neural network model. there is.
- the reinforcement learning algorithm may set a case where the gripper 120 grips an external object and moves the external object by a preset distance as a reward.
- the neural network model learning module provides a stable grip so that the gripper 120 is located within a gripable distance to an external object according to the movement information and rotation information output by the neural network model, and also to move the external object over a preset distance.
- the neural network model 10 may be trained to be located within a possible distance.
- the reinforcement learning algorithm moves and rotates the gripper 120 according to the movement information and rotation information output by the neural network model 10. As a result, when the gripper 120 is moved and rotated further away from the external object or fails to grip the external object may not be compensated.
- the gripper 120 may perform any one of a first direction movement, a second direction movement, and a stop movement based on the x-axis, and may select any one of a first direction movement, a second direction movement, and a stop movement based on the y-axis. may be performed, and any one of a first direction movement, a second direction movement, and a stop movement may be performed based on the z-axis.
- the gripper 120 may perform any one of rotation in the first direction, rotation in the second direction, and non-rotation on the basis of the x-axis, and rotation in the first direction, rotation in the second direction and rotation in the first direction on the basis of the x-axis on the basis of the y-axis. Any one of non-rotation may be performed, and any one of a first direction rotation, a second direction rotation, and a non-rotation may be performed based on the x-axis with respect to the z-axis. That is, the number of movements of the gripper 120 may be a total of 729 (36) cases.
- the neural network model learning module is based on the current state of the gripper 120 (eg, the degree of separation from the gripping target object) using Deep Q-Networks. ) is located adjacent to the external object, the expected number of movements finally required until the gripper 120 is located within the gripper distance of the external object, the total number of 729 cases for the movement of the gripper 120 In consideration of this, a neural network model can be trained to output movement information and rotation information.
- the artificial intelligence model may be composed of a plurality of neural network layers.
- Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between the operation result of a previous layer and the plurality of weights.
- the plurality of weights of the plurality of neural network layers may be optimized by the learning result of the artificial intelligence model. For example, a plurality of weights may be updated so that a loss value or a cost value obtained from the artificial intelligence model during the learning process is reduced or minimized.
- the artificial neural network may include a deep neural network (DNN), for example, a Convolutional Neural Network (CNN), a Recurrent Neural Network (RNN), a Restricted Boltzmann Machine (RBM), a Deep Belief Network (DBN), BRDNN (Bidirectional Recurrent Deep Neural Network) or deep Q-networks (Deep Q-Networks), etc., but is not limited to the above-described example.
- DNN deep neural network
- CNN Convolutional Neural Network
- RNN Recurrent Neural Network
- RBM Restricted Boltzmann Machine
- DBN Deep Belief Network
- BRDNN Bidirectional Recurrent Deep Neural Network
- Deep Q-Networks Deep Q-networks
- a conventional rule-based robot or a robot including a conventional neural network model calculates the distance between the gripper and the grip target object based on the image captured by the camera, and then moves the gripper based on the calculated distance .
- it is very difficult for the robot to identify the distance between the gripper and the gripping object within the error range and it is only necessary to identify the distance between the gripper and the gripping object within the error range (or when the reliability of the calculated distance is high). There is a limit in being able to smoothly grip the object to be gripped.
- a probability value ( The higher the probability value, the more appropriate the item to be selected to grip the grip target object in the current state of the gripper 120) is derived, and the class having the highest probability value is selected as the movement direction.
- the neural network model has a probability value (probability value is A higher value indicates that the gripper 120 corresponds to the most appropriate item to be selected to grip the object to be gripped in the current state), and the class having the highest probability value is selected as the rotation direction.
- the processor 140 moves and rotates the gripper 120 based on the movement direction and rotation information, so it is not necessary to calculate a distance (eg, movement distance, rotation angle) within an error range with the grip target object, There is an effect that the gripper 120 can be positioned adjacent to the grip target object with less trial and error.
- a distance eg, movement distance, rotation angle
- FIG. 6 is a flowchart illustrating a method of controlling an electronic device according to an exemplary embodiment.
- the electronic device 100 obtains movement information and rotation information of the gripper 120 by inputting at least one image into the neural network model 10 ( S610 ).
- the at least one image may be an image pair including at least a portion of the gripper 120 and at least a portion of the gripper 120 acquired through the stereo vision camera (obtained at time t).
- the electronic device 100 may move and rotate the gripper 120 based on the obtained movement information and rotation information ( S620 ).
- the electronic device 100 may move the gripper 120 in any one of the first direction and the second direction or stop the movement (eg, fix it at the current position) based on the movement information.
- the electronic device 100 rotates the gripper 120 in any one of the first direction and the second direction based on the rotation information or does not rotate (eg, the gripper 120 while rotating). rotation can be stopped).
- the first direction may be a clockwise direction and the second direction may be a counterclockwise direction.
- the electronic device 100 may acquire at least one image including at least a part of the gripper whose position is changed based on the movement information and the rotation information and at least a part of the grip target object (obtained at time t+1) ).
- the electronic device 100 acquires an image in real time or at a preset time interval through the camera 110 , and the acquired image is moved or rotated under the control of the processor 140 to change the position of the gripper 120 ) may include the current status of
- the electronic device 100 may obtain next (or new) movement information and rotation information of the gripper 120 by inputting at least one image into the neural network model ( S630 ).
- the next movement information and rotation information may mean movement information and rotation information corresponding to the changed current state of the gripper 120 since the gripper 120 has moved or rotated in step S620 .
- the electronic device 100 includes the gripper 120 ) to stop the movement and rotation. For example, if movement information in all axes (x, y, z) includes movement stop (0), and rotation information in all axes (x, y, z) includes non-rotation (0), the gripper Since 120 means that it is located within a gripping distance with the grip target object, the electronic device 100 stops the movement and rotation of the gripper 120 and controls the gripper 120 to grip the grip target object.
- the electronic device 100 controls the gripper 120 in at least one of the movement information and the rotation information obtained in step S630 (eg, among six pieces of movement and rotation direction information corresponding to each of the x, y, and z axes).
- the gripper 120 may be moved and rotated based on the movement information and rotation information corresponding to each of the three axes obtained in step S630 (S650).
- the movement information does not include a movement stop (0) or the rotation information does not include a non-rotation (0), it means that the gripper 120 is not located within the gripping target object and the gripable distance, so the electronic The device 100 may move and rotate the gripper 120 to position the gripper 120 within a gripping distance with the object to be gripped.
- steps S630 and S640 may be repeatedly performed.
- the electronic device 100 acquires at least one image including the current state of the gripper 120 moved and rotated according to the movement information and the rotation information obtained from the image obtained at time t+1 ( t+2), it is input to the neural network model 10 to obtain movement information and rotation information (S630). Subsequently, when the movement information obtained in Iteration 1 includes movement stop (0) and the rotation information includes non-rotation (0) (S640: Y), the movement of the gripper 120 is stopped and the Grip can be performed.
- information indicating the movement or rotation of the gripper 120 at any one of the movement information and rotation information obtained in Iteration 1 is obtained (S640: N)
- the electronic device 100 obtains movement information and rotation information obtained in Iteration 1 (ie, movement information and rotation information obtained based on at least one image obtained at time t+2)
- the gripper 120 may be moved and rotated.
- the electronic device 100 may repeatedly perform steps ⁇ Iteration 2>, that is, steps S630 and S640.
- the gripper 120 When the electronic device 100 according to an embodiment of the present disclosure identifies that the gripper 120 repeats a preset operation based on movement information and rotation information, the gripper 120 performs a grip operation on the gripping target object. ) can also be controlled. For example, the electronic device 100 crosses only vertical movement, left-right movement, or forward/backward movement while the gripper 120 is adjacent to the grip target object based on movement information obtained in each of Iteration 1 and Iteration 2 steps If it is identified as being performed, the gripper 120 may determine that the gripper 120 is located at a distance capable of gripping the gripping object, and may control the gripper 120 to grip the gripping object.
- the electronic device 100 rotates clockwise and counterclockwise on the x-axis and y-axis while the gripper 120 is adjacent to the grip target object based on the rotation information obtained in each of the Iteration 1 and Iteration 2 steps.
- the gripper 120 is located at a distance capable of gripping the grip target object and grabs the grab target object. You can control it to grip.
- the method further includes the step of controlling the gripper 120 so that the gripper 120 performs a grip operation on the grip target object based on the movement information and the rotation information, wherein the movement information corresponds to stopping movement, and the rotation information It can respond to non-rotation.
- the movement information output from the neural network model includes x-axis movement information, y-axis movement information, and z-axis movement information
- the x-axis movement information includes a first direction movement of the gripper 120 in the x-axis direction, Including one of the second direction movement or movement stop
- the y-axis movement information includes one of a first direction movement, a second direction movement, or a stop movement of the gripper 120 in the y-axis direction
- the z-axis movement The information may include one of a first direction movement, a second direction movement, or stop movement of the gripper 120 in the z-axis direction.
- the rotation information output from the neural network model includes x-axis rotation information, y-axis rotation information, and z-axis rotation information
- the x-axis rotation information includes a clockwise rotation based on the x-axis of the gripper 120 and a reference to the x-axis. includes one of counterclockwise rotation or non-rotation based on the x-axis
- the y-axis rotation information includes one of a clockwise rotation based on the y-axis, a counterclockwise rotation based on the y-axis, or a non-rotation based on the y-axis of the gripper 120 .
- the z-axis rotation information may include one of a clockwise rotation based on the z-axis, a counterclockwise rotation based on the z-axis, or a non-rotation based on the z-axis of the gripper 120 .
- the method may further include controlling the gripper 120 to perform a grip operation on the grip target object when it is identified that the gripper 120 repeats a preset operation based on the obtained movement information.
- the at least one image includes first and second images
- the step of obtaining movement information and rotation information includes inputting the first and second images into a neural network model to provide first movement information and first rotation information
- controlling the gripper 120 includes controlling the gripper 120 based on first movement information and first rotation information, wherein the first movement information and the first rotation
- the method may further include controlling the gripper 120 based on the second movement information and the second rotation information.
- the neural network model may obtain a depth map based on at least one image, and may output movement information and rotation information based on the obtained depth map.
- the neural network model includes movement information and rotation for positioning the gripper 120 adjacent to the external object based on distance information between at least a part of the gripper 120 and at least a part of the external object included in each of the plurality of training images. It may be a model trained to output information.
- the electronic device 100 may include a plurality of cameras 110 spaced apart from each other to photograph the grip target object at different angles.
- FIG. 7 is a flowchart illustrating a method of controlling an electronic device according to an exemplary embodiment.
- the electronic device 100 may acquire movement information and rotation information of the gripper 120 based on input of at least one image to the neural network model ( S710 ).
- the electronic device 100 may acquire movement information and rotation information in a manner substantially similar to that described in operation S610 of FIG. 6 .
- the electronic device 100 may obtain movement information corresponding to the n direction.
- the electronic device 100 may obtain movement information in a first direction (eg, an x-axis direction), a second direction (eg, a y-axis direction), and a third direction (eg, a z-axis direction).
- the electronic device 100 may obtain movement information for different directions (eg, only the x-axis direction, only the y-axis direction, the x-axis direction, the z-axis direction, etc.).
- the electronic device 100 may obtain rotation information corresponding to the m direction.
- the electronic device 100 may obtain rotation information corresponding to a first axis (eg, an x-axis), a second axis (eg, a y-axis), and a third axis (eg, a z-axis).
- the electronic device 100 may obtain rotation information corresponding to different directions (eg, only the x-axis direction, only the y-axis direction, the x-axis direction, the z-axis direction, etc.).
- the electronic device 100 may move or rotate the gripper 120 in a predetermined manner based on the obtained movement information and rotation information ( S720 ).
- the electronic device 100 may move the gripper 120 by a preset amount or rotate the gripper 120 by a preset amount to move or rotate the gripper 120 in a preset manner.
- the movement information may be mapped by a preset amount. For example, movement information identifying that the gripper 120 is to be moved in the first direction may be mapped to a first preset amount in the first direction. In addition, the movement information identified that the gripper 120 is to be moved in the second direction may be mapped to a second preset amount in the second direction. In addition, movement information identified that the gripper 120 is to be moved in the third direction may be mapped to a third preset amount in the third direction. As another example, movement information identifying that the gripper 120 will be rotated in the first direction may be mapped to a first preset amount in the first direction.
- the movement information identified that the gripper 120 is to be rotated in the second direction may be mapped to a second preset amount in the second direction.
- the movement information identified that the gripper 120 is to be rotated in the third direction may be mapped to a third preset amount in the third direction.
- the first preset amount, the second preset amount, and the third preset amount may be the same.
- the first preset amount, the second preset amount, and the third preset amount may be different.
- it goes without saying that at least one of the first preset amount, the second preset amount, and the third preset amount may be different from the others.
- the electronic device 100 may move or rotate the gripper 120 by moving the gripper 120 for a preset time frame or by rotating the gripper 120 for a preset time frame.
- the preset time frame may be a preset time value.
- the movement information may be mapped to a preset time frame. For example, movement information identifying that the gripper 120 will be moved in the first direction may be mapped to a first preset time frame in the first direction. Also, movement information that identifies that the gripper 120 will be moved in the second direction may be mapped to a second preset time frame in the second direction. Also, movement information that identifies that the gripper 120 will be moved in the third direction may be mapped to a third preset time frame in the third direction. As another example, movement information identifying that the gripper 120 will be rotated in the first direction may be mapped to a first preset time frame in the first direction.
- movement information identifying that the gripper 120 is to be rotated in the second direction may be mapped to a second preset time frame in the second direction.
- movement information that identifies that the gripper 120 will be rotated in the third direction may be mapped to a third preset time frame in the third direction.
- the first preset time frame, the second preset time frame, and the third preset time frame may be the same.
- the first preset time frame, the second preset time frame, and the third preset time frame may be different.
- it goes without saying that at least one of the first preset time frame, the second preset time frame, and the third preset time frame may be different from the others.
- the electronic device 100 eg, the processor 140
- an embodiment of the present disclosure allows movement and/or rotation of the gripper 120 in a manner that consumes less computational resources and/or less consumption by alleviating the need to calculate a specific distance to the gripping target object. can do. Even less accurate hardware than related technology systems can achieve its intended purpose.
- the movement information may identify a movement direction, and may be mapped to a preset amount or a preset time frame.
- the rotation information may identify a rotation direction, and may be mapped to a preset amount or a preset time frame.
- the movement information may identify a movement direction and a movement weight.
- a preset amount may be mapped to the movement weight. For example, a first moving weight of a first value (eg, low) may be mapped to a first amount (eg, small amount), and a second movement weight of a second value (eg, medium) may be mapped. The moving weight may be mapped to a second amount (eg, a medium amount greater than a small amount).
- the rotation information may identify the rotation direction and rotation weight. Also, a preset amount may be mapped to the rotation weight.
- a first rotation weight of a first value may be mapped to a first amount (eg, small amount) and a second rotation weight of a second value (eg, medium)
- the moving weight may be mapped to a second amount (eg, a medium amount greater than a small amount).
- the weight may be a configuration that does not specify an actual specific distance to the grip target object.
- the electronic device 100 moves or rotates the gripper 120
- the electronic device 100 moves the movement information and the rotation information without using a weight to attach the gripper 120 to the grip target object.
- the gripper 120 may be positioned adjacent to the gripping target object with a small number of repetitions.
- the electronic device 800 may include a sensor 810 , an end effector 820 , a memory 830 , and a processor 840 .
- the sensor 810 may be a device configured to detect an object.
- the sensor 810 may include a camera, a millimeter wave sensor, a laser sensor, a Light Detection and Ranging (LIDAR) sensor, an ultrasonic sensor, a thermal sensor, an optical sensor, and the like.
- the sensor 810 may be configured to detect an object.
- the end effector 820 may be a device that allows the electronic device 800 to interact with an object.
- end effector 820 may be a gripper, force-torque sensor, material removal tool, welding torch, impact sensor, tool changer, sensor, or the like.
- Memory 830 may be a memory device configured to store instructions.
- memory 830 may be a similar device discussed with respect to memory 130 of FIG. 1 .
- the processor 840 is a device that controls the overall operation of the electronic device 800 .
- the processor 840 may be a similar device discussed with respect to the processor 140 of FIG. 1 .
- the processor 840 may obtain sensor information from the sensor 810 , and may obtain movement information and/or rotation information as described in this disclosure based on the sensor information.
- the processor 840 is configured to move or rotate the end effector 820 in a preset manner so that the end effector 820 is adjacent to the object as described in the present disclosure based on the obtained movement information and/or rotation information.
- the various embodiments described above may be implemented in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof.
- the embodiments described herein may be implemented by the processor itself.
- embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein.
- computer instructions for performing the processing operation of the electronic device 100 according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium.
- the specific device When the computer instructions stored in the non-transitory computer-readable medium are executed by the processor of the specific device, the specific device performs the processing operation in the electronic device 100 according to the various embodiments described above.
- the non-transitory computer-readable medium refers to a medium that stores data semi-permanently, not a medium that stores data for a short moment, such as a register, cache, memory, etc., and can be read by a device.
- Specific examples of the non-transitory computer-readable medium may include a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Mechanical Engineering (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Signal Processing (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Manipulator (AREA)
Abstract
전자 장치가 개시된다. 전자 장치는, 카메라, 그립 대상 객체를 그립하도록 구성된 그리퍼(gripper), 신경망 모델이 저장된 메모리, 카메라에 의해 캡쳐된 적어도 하나의 이미지를 신경망 모델에 입력하여 신경망 모델로부터 그리퍼의 이동 정보 및 회전 정보를 획득하고, 이동 정보 및 회전 정보에 기초하여 그리퍼를 제어하는 프로세서,를 포함하며, 적어도 하나의 이미지는, 그리퍼의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하고, 신경망 모델은, 적어도 하나의 이미지에 기초하여 그리퍼를 그립 대상 객체에 인접하게 위치시키기 위한 이동 정보 및 회전 정보를 출력하며, 이동 정보는, 그리퍼의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고, 회전 정보는, 그리퍼의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함하는 회전 정보를 출력한다.
Description
본 발명은 전자 장치 및 그 제어 방법에 관한 것으로, 보다 상세하게는 그리퍼를 포함하는 전자 장치 및 그 제어 방법에 관한 것이다.
최근 전자 기술의 발전에 따라 다양한 유형의 전자 장치가 개발 및 보급되고 있는 실정이다.
특히, 다양한 목적의 로봇이 공장, 가정에도 배치되고 있으며, 이러한 로봇은 외부 객체를 파지하여 일 위치에서 타 위치로 이동시키거나, 운반하는 동작을 수행할 수 있다.
예를 들어, 공장에 배치된 산업용 로봇은 사람이 파지하기 어려운 객체를 파지하여 특정 위치로 운반할 수도 있고, 조립을 수행할 수도 있다. 다른 예로, 가정에 배치된 로봇은 이물질을 운반하는 등 실내 청소를 수행할 수도 있고, 사람이 파지하기 어려운 물체 또는 위험한 물체를 특정 위치로 이동시킬 수도 있다.
다만, 종래의 로봇은 객체를 정확히 인식한 경우 예를 들어, 객체와의 거리, 객체의 형태 등을 정확하게 인식한 경우에만 해당 객체를 파지할 수 있었다. 객체와의 거리 또는 객체의 형태를 정확하게 인식하기란 매우 어려우며, 이를 위해 요구되는 계산량이 많다는 문제가 있었다.
이에, 객체와의 거리, 객체의 형태 등을 정확하게 인식하지 않으면서도 해당 객체에 인접하게 그리퍼(gripper)를 효율적으로 위치시켜 객체를 파지하는 기술에 대한 요구가 있었다.
본 개시는 상술한 필요성에 따른 것으로, 본 발명의 목적은 그리퍼를 효율적으로 제어하여 외부 객체를 파지하는 전자 장치 및 그 제어 방법을 제공함에 있다.
본 개시의 상술한 목적을 달성하기 위한 일 실시 예에 따르면 전자 장치는, 카메라, 그립 대상 객체를 그립하도록 구성된 그리퍼(gripper), 신경망 모델이 저장된 메모리 및 상기 카메라에 의해 캡쳐된 적어도 하나의 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 상기 그리퍼의 이동 정보 및 회전 정보를 획득하고, 상기 이동 정보 및 회전 정보에 기초하여 상기 그리퍼를 제어하는 프로세서를 포함하며, 상기 적어도 하나의 이미지는, 상기 그리퍼의 적어도 일부 및 상기 그립 대상 객체의 적어도 일부를 포함하고, 상기 신경망 모델은, 상기 적어도 하나의 이미지에 기초하여 상기 그리퍼를 상기 그립 대상 객체에 인접하게 위치시키기 위한 상기 이동 정보 및 상기 회전 정보를 출력하며, 상기 이동 정보는, 상기 그리퍼의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고, 상기 회전 정보는, 상기 이동 정보 및 상기 그리퍼의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함한다.
이러한 그리퍼를 포함하는 전자 장치의 장점은, 그립 대상 객체의 상대적인 위치를 예측하는 신경망 모델을 이용하여 분류 모델(classification model)로 그립 대상 객체를 인식하고, 그립 대상 객체를 향한 움직임을 가능하게 할 수 있다. 이러한 구성에 따르면, 그립 대상 객체의 정확한 3차원 위치 정보는 불필요하며, 카메라 등 저가의 센서만으로 그립 대상 객체에 대한 그립을 정확하게 수행할 수 있는 특징이 있다. 다시 말해서, 본 개시의 일 실시 예에 따른 전자 장치는 예를 들어, 고가의 별도 센서를 필요로하지 않을 수 있다. 예를 들어, IR 뎁스 센서(depth sensor), 스테레오 센서 또는 다른 복잡한 이미지 센서이나 간단한 카메라와 같은 단순한 저비용 센서 등을 필요로하지 않을 수 있다. 따라서, 전자 장치의 총 비용을 실질적으로 감소시키면서 수평/수직 및 회전 방향의 이동 정밀도를 높게 유지시킬 수 있다. 또한, 이러한 전자 장치는 높은 파지 정확도도 제공할 수 있다.
여기서, 상기 프로세서는, 상기 이동 중지에 대응되는 상기 이동 정보 및 상기 미회전에 대응되는 상기 회전 정보에 기초하여 상기 그리퍼가 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어할 수 있다. 이러한 실시 예에서, 그리퍼는 이동 정보가 이동 정지 정보에 해당하고, 회전 정보가 비회전 정보에 해당하면, 즉시 그립 대상 객체를 그립할 수 있으므로 별도의 그립 명령을 요하지 않는다. 따라서, 그립 대상 객체의 위치 및 방향에 대해 그리퍼가 올바르게 위치하면 자동으로 그립 동작을 수행할 수 있다. 또한, 상기 신경망 모델로부터 출력되는 상기 이동 정보는, x축 이동 정보, y축 이동 정보 및 z축 이동 정보를 포함하며, 상기 x축 이동 정보는, 상기 그리퍼의 x축 방향으로의 제1 방향 이동, x축 방향으로의 제2 방향 이동 또는 x축 방향의 이동 중지 중 하나를 포함하고, 상기 y축 이동 정보는, 상기 그리퍼의 y축 방향으로의 제1 방향 이동, y축 방향으로의 제2 방향 이동 또는 y축 방향의 이동 중지 중 하나를 포함하고, 상기 z축 이동 정보는, 상기 그리퍼의 z축 방향으로의 제1 방향 이동, z축 방향으로의 제2 방향 이동 또는 z축 방향의 이동 중지 중 하나를 포함할 수 있다. 이러한 실시 예에서, x, y 및 z축 각각에 대한 신경망 모델에 의해 그리퍼가 이동해야하는 선형 방향 ? 앞으로 또는 뒤로 ? 그리퍼가 그립 대상 객체에 접근하기 위한 및 / 또는 그립의 위치 및 / 또는 방향이 정확하게 결정될 수 있다.
또한, 상기 신경망 모델로부터 출력되는 상기 회전 정보는, x축 회전 정보, y축 회전 정보 및 z축 회전 정보를 포함하며, 상기 x축 회전 정보는, 상기 그리퍼의 x축 기준 시계 방향 회전, x축 기준 반시계 방향 회전 또는 x축 기준 미회전 중 하나를 포함하고, 상기 y축 회전 정보는, 상기 그리퍼의 y축 기준 시계 방향 회전, y축 기준 반시계 방향 회전 또는 y축 기준 미회전 중 하나를 포함하고, 상기 z축 회전 정보는, 상기 그리퍼의 z축 기준 시계 방향 회전, z축 기준 반시계 방향 회전 또는 z축 기준 미회전 중 하나를 포함할 수 있다. 이러한 실시 예에서, x, y 및 z축 각각에 대한 신경망 모델에 의해 그리퍼가 시계 방향 또는 반시계 방향으로 회전해야하는지 여부가 결정되며, 시계 방향 또는 반 시계 방향으로 그립 대상 객체에 접근하거나 그리퍼의 위치 및 / 또는 방향을 그립 대상 객체 접근하도록 조정할 수 있다.
또한, 상기 프로세서는, 상기 이동 정보에 기초하여 상기 그리퍼가 기설정된 동작을 반복하는 것으로 식별되면, 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어할 수 있다. 이러한 실시 예에서, 그립 명령은 획득된 이동 정보에 기초한 기 설정된 동작 패턴의 인식에 연결되어, 그립 대상 객체의 위치 인식을 추가적으로 수행할 필요 없이, 또한, 그립 명령이 추가적으로 수행될 필요 없이, 수행될 수 있다.
또한, 상기 적어도 하나의 이미지는, 제1 및 제2 이미지를 포함하며, 상기 프로세서는, 상기 제1 및 제2 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제1 이동 정보 및 제1 회전 정보를 획득하고, 상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼를 제어하며, 상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼가 제어되는 동안 상기 카메라에 의해 캡쳐된 제3 및 제4 이미지에 기초하여 상기 제3 및 제4 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제2 이동 정보 및 제2 회전 정보를 획득하고, 상기 제2 이동 정보 및 상기 제2 회전 정보에 기초하여 상기 그리퍼를 제어할 수 있다. 이러한 실시 예에서 그리퍼는 유리하며 (비용적인 면에서도) 효율적으로 이동될 수 있다. 달리 표현하여, 이러한 실시 예에서 프로세서는 실시간으로 또는 신경망 모델에 의해 기 설정된 시간 간격으로 출력되는 이동 정보 및 회전 정보에 기초하여 그리퍼를 이동 및 회전시켜 그립 대상 객체에 인접하도록 그리퍼를 위치시킬 수 있다. 따라서, 그리퍼의 제1 이동이 제1 이동 정보 및 제1 회전 정보에 기초하여 수행되는 동안에, 그리퍼의 이동은 제2 이동 정보 및 제2 회전 정보에 기초하여 수행되는 제2 이동에 의해 조정될 수 있다.
바람직하게는, 제1 및 제2 이미지는 뎁스 값을 얻을 수 있는 정보를 포함하고, 프로세서는 제1 및 제2 이미지에 기초하여 뎁스 값을 획득하지 않고, 훈련된 신경망 모델을 통해 뎁스 정보를 고려한 이동 정보 및 회전 정보를 획득할 수 있다. 신경망 모델의 입력으로는 제1 및 제2 이미지만을 이용할 수 있다.
또한, 바람직한 실시 예에서 제1 이동 정보 및 제2 회전 정보에 기초한 그리퍼의 이동은 기 설정된 시간 동안 및 / 또는 기 설정된 거리에 도달할 때까지 수행될 수 있다.
더욱 바람직하게는, 제1 이동 정보 및 제1 회전 정보에 기초한 그리퍼의 이동은 수신된 제2 이동 정보 및 제2 회전 정보에 기초한 그리퍼의 이동이 트리거 / 개시될 때까지 수행될 수 있다. 또한, 상기 신경망 모델은, 상기 적어도 하나의 이미지에 기초하여 뎁스 맵(Depth map)을 획득하고, 상기 뎁스 맵에 기초하여 상기 이동 정보 및 상기 회전 정보를 출력할 수 있다. 이러한 신경망 모델을 이용하면, 간단한 저가 카메라로 촬영한 적어도 하나의 이미지를 이용하여 그리퍼의 동작 영역 / 공간 내에서 그립 대상 객체의 뎁스-위치에 근접할 수 있다. 따라서, 이러한 신경망 모델은 그리퍼의 동작 영역 / 공간 내에서 그립 대상 객체에 (비용적인 면에서) 고 효율적이면서도 정확하게 위치시킬 수 있다.
또한, 상기 신경망 모델은, 복수의 훈련 이미지 각각에 포함된 상기 그리퍼의 적어도 일부 및 외부 객체의 적어도 일부 간의 거리 정보에 기초하여 상기 그리퍼를 상기 외부 객체에 인접하게 위치시키기 위한 상기 이동 정보 및 상기 회전 정보를 출력하도록 학습될 수 있다. 이러한 살시 예에서, 신경망 모델은 유리하게는 그립 대상 객체의 절대적이고 정확한 위치 / 거리를 결정하기 위해 회귀 모델을 이용하여 연속적인 수치 값을 예측할 필요는 없으나, 분류 모델을 이용할 수 있다. 몇 가지 선택 중에서 하나를 결정하는 것, 단순히 그립 대상 객체에 대한 상대적인 거리 분류(예를 들어, 가깝거나 또는 먼) 등과 같은 분류 모델을 이용하면 신경망 학습이 쉬워지고 신경망 모델의 성능이 보다 쉽게 확보될 수 있다.
또한, 상기 카메라는, 복수의 카메라를 포함하며, 상기 복수의 카메라는, 각각이 이격되어 있으며, 상기 그립 대상 객체를 상이한 각도에서 촬영하도록 구성될 수 있다. 이러한 실시 예에서 스테레오 비전은 유리하게 전자 장치에 의해 이용되며, 상이한 각도에서 다수의 카메라로부터 캡쳐된 이미지를 이용하여 상술한 분류를 보다 정확하게 가능하도록 할 수 있다.
더욱 바람직하게는, 카메라는 스테레오 비전 카메라일 수 있다.
본 개시의 상술한 목적을 달성하기 위한 일 실시 예에 따르면 신경망 모델을 포함하는 전자 장치의 제어 방법은, 적어도 하나의 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 그리퍼의 이동 정보 및 회전 정보를 획득하는 단계, 상기 이동 정보 및 상기 회전 정보에 기초하여 상기 그리퍼를 제어하는 단계를 포함하고, 상기 적어도 하나의 이미지는, 상기 그리퍼의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하고, 상기 신경망 모델은, 상기 적어도 하나의 이미지에 기초하여 상기 그리퍼를 상기 그립 대상 객체에 인접하게 위치시키기 위한 상기 이동 정보 및 상기 회전 정보를 출력하며,
상기 이동 정보는, 상기 그리퍼의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고, 상기 회전 정보는, 상기 그리퍼의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함하는 상기 회전 정보를 출력할 수 있다. 이러한 방법의 이점(advantages)은, 상술한 전자 장치에 대한 이점과 동일할 수 있다.
또한, 상기 이동 중지에 대응되는 상기 이동 정보 및 상기 미회전에 대응되는 상기 회전 정보에 기초하여 상기 그리퍼가 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어하는 단계를 더 포함할 수 있다. 이와 같은 방법은 이동 정보가 이동 정지 정보에 해당하고, 회전 정보가 비회전 정보에 해당하는 즉시, 그리퍼가 그립 대상 객체를 파지할 수 있으므로, 그리퍼에 별도의 그립 명령을 제공할 필요가 없다. 따라서, 그립 대상 객체의 위치 및 방향에 대해 그리퍼가 올바르게 위치하면 자동으로 그립 동작이 수행될 수 있다.
또한, 상기 신경망 모델로부터 출력되는 상기 이동 정보는, x축 이동 정보, y축 이동 정보 및 z축 이동 정보를 포함하며, 상기 x축 이동 정보는, 상기 그리퍼의 x축 방향으로의 제1 방향 이동, x축 방향으로의 제2 방향 이동 또는 x축 방향의 이동 중지 중 하나를 포함하고, 상기 y축 이동 정보는, 상기 그리퍼의 y축 방향으로의 제1 방향 이동, y축 방향으로의 제2 방향 이동 또는 y축 방향의 이동 중지 중 하나를 포함하고, 상기 z축 이동 정보는, 상기 그리퍼의 z축 방향으로의 제1 방향 이동, z축 방향으로의 제2 방향 이동 또는 z축 방향의 이동 중지 중 하나를 포함할 수 있다. 이러한 실시 예에서, x, y 및 z축 각각에 대한 신경망 모델에 의해 그리퍼가 이동해야하는 선형 방향 ? 앞으로 또는 뒤로 ? 그리퍼가 그립 대상 객체에 접근하기 위한 및 / 또는 그립의 위치 및 / 또는 방향이 정확하게 결정될 수 있다.
또한, 상기 신경망 모델로부터 출력되는 상기 회전 정보는, x축 회전 정보, y축 회전 정보 및 z축 회전 정보를 포함하며, 상기 x축 회전 정보는, 상기 그리퍼의 x축 기준 시계 방향 회전, x축 기준 반시계 방향 회전 또는 x축 기준 미회전 중 하나를 포함하고, 상기 y축 회전 정보는, 상기 그리퍼의 y축 기준 시계 방향 회전, y축 기준 반시계 방향 회전 또는 y축 기준 미회전 중 하나를 포함하고, 상기 z축 회전 정보는, 상기 그리퍼의 z축 기준 시계 방향 회전, z축 기준 반시계 방향 회전 또는 z축 기준 미회전 중 하나를 포함할 수 있다. 이러한 실시 예에서, x, y 및 z축 각각에 대한 신경망 모델에 의해 그리퍼가 시계 방향 또는 반시계 방향으로 회전해야하는지 여부가 결정되며, 시계 방향 또는 반 시계 방향으로 그립 대상 객체에 접근하거나 그리퍼의 위치 및 / 또는 방향을 그립 대상 객체 접근하도록 조정할 수 있다.
또한, 상기 이동 정보에 기초하여 상기 그리퍼가 기설정된 동작을 반복하는 것으로 식별되면, 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어하는 단계를 더 포함할 수 있다. 이러한 실시 예에서, 그립 명령은 획득된 이동 정보에 기초한 기 설정된 동작 패턴의 인식에 연결되어, 그립 대상 객체의 위치 인식을 추가적으로 수행할 필요 없이, 또한, 그립 명령이 추가적으로 수행될 필요 없이, 수행될 수 있다.
또한, 상기 적어도 하나의 이미지는, 제1 및 제2 이미지를 포함하며, 상기 이동 정보 및 회전 정보를 획득하는 단계는, 상기 제1 및 제2 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제1 이동 정보 및 제1 회전 정보를 획득하는 단계를 포함하고, 상기 그리퍼를 제어하는 단계는, 상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼를 제어하는 단계를 포함하며, 상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼가 제어되는 동안 상기 카메라에 의해 캡쳐된 제3 및 제4 이미지에 기초하여 상기 제3 및 제4 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제2 이동 정보 및 제2 회전 정보를 획득하는 단계 및 상기 제2 이동 정보 및 상기 제2 회전 정보에 기초하여 상기 그리퍼를 제어하는 단계를 더 포함할 수 있다. 이러한 실시 예에서 그리퍼는 유리하며 (비용적인 면에서도) 효율적으로 이동될 수 있다.
바람직하게는, 신경망 모델이 출력하는 이동 정보 및 회전 정보만을 이용하여 그리퍼를 제어할 수 있다.
특히, 전자 장치는 신경망 모델에 대한 입력 데이터를 획득하기 위해 카메라와 별개로 어떠한 추가 센서도 포함하지 않을 수 있다. 더욱 바람직한 실시 예에서, 신경망 모델에 의해 출력되는 이동 정보는 그리퍼를 제1 또는 제2 방향으로 이동할지 또는 그리퍼의 이동을 멈출지 여부 또는 그리퍼를 현재 위치에서 유지할지 여부에 대한 정보만을 포함할 수 있다.
바람직하게는, 신경망 모델이 출력하는 이동 정보는, 그리퍼를 얼마나 움직여야 하는지 즉, 이동 거리에 대한 정보는 포함하지 않을 수 있다.
바람직하게는 신경망 모델은 특정 축에 따른 제1 방향 이동, 특정 축에 따른 제2 방향 이동 및 특정 축에 따른 이동 정지 각각에 대한 확률을 계산할 수 있다(즉, x, y, 또는 z축). 이러한 확률은 축에 따라 각각의 이동 또는 이동 정지하여 그립 대상 객체에 더 인접하도록 그리퍼를 이동시킬 확률이 얼마인지를 나타낼 수 있다.
더욱 바람직하게는, 신경망 모델에 의해 특정 축에 대한 이동 정보로서 가장 높은 확률이 출력될 수 있다.
또한, 바람직한 실시 예에 따르면, 신경망 모델은 특정 축을 중심으로 제1 방향으로의 회전, 특정 축을 중심으로 제2 방향으로의 회전 및 특정 축을 중심으로 회전 정지 각각에 대한 확률을 계산할 수 있다(즉, x, y, 또는 z축 각각에 대한 3개의 확률). 이러한 확률은 축 주위의 각 회전 또는 회전 정지가 그리퍼를 그립 대상 객체에 더 인접하게 이동시킬 확률이 얼마인지를 나타낼 수 있다.
더욱 바람직하게는, 신경망 모델에 의해 특정 축에 대한 회전 정보로서 가장 높은 확률이 출력될 수 있다.
바람직하게는, 신경망 모델은 적어도 하나의 이미지에 기초하여 그리퍼를 그립 대상 객체에 인접하도록 위치시키기 위한 그리퍼의 제1 방향 이동, 제2 방향 이동 또는 이동 정지 중 하나를 포함하는 이동 정보 및 제1 방향 회전, 제2 방향 회전 또는 비회전 중 하나를 포함하는 회전 정보를 출력할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 로봇이 외부 객체를 파지하기 위해 그리퍼(gripper)를 이동시킴에 있어서, 최소한의 이동만으로, 최소한의 시간만을 소모하여 외부 객체에 인접하게 위치할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2는 본 개시의 일 실시 예에 따른 그리퍼의 이동 및 회전을 개략적으로 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 신경망 모델을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 이동 정보 및 회전 정보를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 신경망 모델의 학습을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 8은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
-
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 1에 도시된 바에 따르면, 일 실시 예에 따른 전자 장치(100)는 사용자 단말 장치, 디스플레이 장치, 셋톱 박스(set-top box), 태블릿 PC(tablet personal computer), 스마트 폰(smart phone), 전자책 리더기(e-book reader), 데스크탑 PC (desktop PC), 랩탑 PC(laptop PC), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 키오스크(Kiosk) 등과 같은 다양한 형태의 디바이스로 구현될 수 있다. 다만, 이는 일 실시 예이며, 전자 장치(100)는 엑세서리 형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘텍트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체 형(예: 전자 의복) 중 적어도 하나의 형태에 해당하는 웨어러블 장치, 구동부를 포함하는 로봇(robot), 프로젝터(projector), 서버 등 다양한 유형의 전자 장치로 구현될 수도 있다.
일 실시 예에 따른 전자 장치(100)는 로봇으로 구현될 수 있다. 여기서, 로봇은 스스로 일 기능을 수행하는 능력을 가진 다양한 형태의 기계를 의미할 수 있다. 일 예로, 로봇은 단순 반복 기능 외에 센서, 카메라 등을 기반으로 실시간으로 주변 환경을 감지하고, 정보를 수집하여 자율적으로 동작하는 스마트 기계를 의미할 수도 있다.
본 개시의 일 실시 예에 따른 전자 장치(100)는 로봇 장치를 의미할 수 있다. 여기서, 로봇 장치는 스스로 일 기능을 수행하는 능력을 가진 다양한 형태의 기계를 의미할 수 있다. 일 예로, 로봇 장치는 단순 반복 기능 외에 센서, 카메라(110) 등을 기반으로 실시간으로 주변 환경을 감지하고, 정보를 수집하여 자율적으로 동작하는 스마트 기계를 의미할 수도 있다.
일 실시 예에 따른 전자 장치(100)는 인간의 손가락과 같이 외부 객체를 파지하거나 또는 이동시킬 수 있는 그리퍼(120)를 포함할 수 있다. 한편, 그리퍼(120)는 다관절 로봇의 말단부인 로봇 핸드(robot hand) 등으로 불릴 수도 있으나, 이하에서는 설명의 편의를 위해 그리퍼(120)로 통칭하도록 한다.
한편, 전자 장치(100)는 이용 분야 또는 수행 가능한 기능에 따라서 산업용 로봇, 의료용 로봇, 가정용 로봇, 군사용 로봇 및 탐사용 로봇 등으로 분류될 수 있다. 일 실시 예에 따라 산업용 로봇은 공장의 제품 제조 과정에서 이용되는 로봇, 매장 또는 식당 등에서 손님 응대, 주문 접수 및 서빙 등을 수행하는 로봇 등으로 구현될 수 있다. 예를 들어, 본 개시의 일 실시 예에 따른 전자 장치(100)는 공장 , 호텔, 마트, 병원, 의류 매장 등 다양한 장소에서 본체(120)에 구비된 그리퍼(120)를 제어하여 외부 객체를 그립(Grip)한 뒤, 외부 객체를 특정 위치까지 운반할 수 있는 로봇으로 구현될 수 있다. 다만, 이는 일 예에 불과할 뿐, 로봇은 활용 분야, 기능 및 사용 목적에 따라 다양하게 분류될 수 있고, 상술한 예에 한정되지 않음은 물론이다.
종래의 로봇은 외부 객체를 포함하는 이미지의 뎁스(depth) 맵에 기초하여 외부 객체와 그리퍼 간의 거리를 구체적인 수치로 산출하고, 산출된 거리에 기초하여 그리퍼를 이동시킨 뒤, 외부 객체를 그립(Grip)하였다. 예를 들어, 종래의 로봇은 외부 객체의 위치 정보(또는, 외부 객체와 그리퍼 간의 거리 정보)를 획득한 경우에 한하여 그리퍼를 외부 객체에 인접하게 위치시킬 수 있으며, 그리퍼가 외부 객체를 그립하도록 제어할 수 있었다. 이와 같은 그립 방법은 로봇이 외부 객체와 그리퍼 간의 거리를 오차 범위 내에서 다소 정확하게 산출한 경우에 한하여 외부 객체를 원활히 그립할 수 있으며, 산출된 거리가 오차 범위를 초과하면 외부 객체를 원활히 그립하지 못하거나 수 차례 시행 착오 끝에 외부 객체를 그립하는 문제가 있다. 여기서, 시행 착오는 로봇이 외부 객체의 파지에 실패하면, 외부 객체와 그리퍼 간의 거리를 재 산출하고, 재 산출된 거리에 기초하여 그리퍼를 이동시켜 외부 객체를 그립함을 의미한다. 설명의 편의를 위해 전자 장치(100)가 그리퍼(120)를 통해 그립하는 외부 객체를 그립 대상 객체로 통칭하도록 한다.
종래의 로봇이 신경망 모델을 이용하여 그립 대상 객체와 그리퍼 간의 거리를 산출한 뒤, 산출된 거리에 기초하여 그리퍼를 그립 대상 객체에 인접하게 위치시키는데 반하여, 일 실시 예에 따른 전자 장치(100)는 그리퍼(120)와 그립 대상 객체 간의 거리를 산출하지 않고, 그리퍼(120)의 이동 및 회전 각각을 적어도 3개의 클래스 중 어느 하나의 클래스로 분류할 수 있다. 이어서, 전자 장치(100)는 분류된 클래스에 기초하여 그리퍼(120)를 이동시키거나, 그리퍼(120)를 회전시켜 그리퍼(120)를 그립 대상 객체에 인접하게 위치시킬 수 있다. 이하에서는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 그리퍼(120)의 이동 및 회전 각각에 대한 어느 하나의 클래스를 획득하는 방법 및 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키는 방법에 대해 설명하도록 한다.
도 1에 도시된 바에 따르면, 전자 장치(100)는 카메라(110), 그리퍼(120), 메모리(130) 및 프로세서(140)를 포함한다.
카메라(110)는 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라(110)는 특정 시점에서의 정지 영상들을 촬영할 수 있으나, 연속적으로 정지 영상을 촬영할 수도 있다. 본 개시의 일 실시 예에 따른 카메라(110)는 획득한 이미지를 프로세서(140)로 제공할 수 있다. 본 개시의 일 실시 예에 따라 카메라(110)는 복수 개로 구현될 수도 있다.
그리퍼(120)는 전자 장치(100)의 암(arm) 끝단에 구비되는 장치로서, 물체를 파지하도록 구성될 수 있다. 예를 들어, 그리퍼(120)는 충격 그리퍼(impactive gripper), 침투 그리퍼(ingressive gripper), 제한 그리퍼(astrictive gripper), 연속 그리퍼(contiguitive gripper) 등으로 구현될 수 있다.
메모리(130)는 프로세서(140)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(140)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(130)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
특히, 일 실시 예에 따른 메모리(130)는 신경망 모델(10)을 저장할 수 있다.
프로세서(140)는 전자 장치(100)의 전반적인 동작을 제어한다.
일 실시 예에 따라 프로세서(140)는 디지털 영상 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), AI(Artificial Intelligence) 프로세서, T-CON(Timing controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(140)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
본 개시에 따른 인공지능과 관련된 기능은 프로세서(140)와 메모리(130)를 통해 동작된다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리(130)에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
특히, 프로세서(140)는 카메라(110)를 통해 수신된 적어도 하나의 이미지를 메모리(130)에 저장된 신경망 모델(10)에 입력하여 그리퍼(120)의 이동 정보를 획득한다. 예를 들어, 프로세서(140)는 제1 이미지 및 제2 이미지를 신경망 모델(10)에 입력하여 그리퍼(120)의 이동 정보를 획득할 수 있다.
여기서, 제1 이미지 및 제2 이미지 각각은 그립 대상 객체의 적어도 일부를 포함하는 서로 다른 이미지일 수 있다. 예를 들어, 제1 이미지 및 제2 이미지 각각은 동일한 그립 대상 객체를 서로 다르게 촬영한 이미지일 수 있다. 일 실시 예에 따라, 카메라(110)가 스테레오 비전 카메라로 구현되면, 약 6.5cm 떨어져 있는 사람의 양안이 동일한 객체를 바라보았을 때 좌안과 우안에 상이하게 상이 맺히는 것과 동일한 원리에 기초하여 스테레오 비전 카메라는 동일한 그립 대상 객체를 서로 다르게 촬영한 좌안(left-eye) 이미지 및 우안(right-eye) 이미지를 획득할 수 있다. 여기서, 좌안 이미지와 우안 이미지 각각은 제1 및 제2 이미지일 수 있다.
예를 들어, 따라서, 제1 이미지 및 제2 이미지 각각은 동일한 그립 대상 객체를 서로 다른 각도(또는, 시점), 서로 다른 비율로 촬영한 이미지일 수도 있다. 또 다른 예로, 제1 이미지 및 제2 이미지 각각은 동일한 그립 대상 객체를 서로 다른 시간에 촬영한 이미지일 수도 있음은 물론이다.
또한, 제1 및 제2 이미지 각각은 그립 대상 객체 외에도, 그리퍼(120)의 적어도 일부를 더 포함할 수 있다.
일 실시 예에 따른 프로세서(140)는 제1 및 제2 이미지를 신경망 모델(10)에 입력하여 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위한 이동 정보 및 회전 정보를 획득할 수 있다.
다만, 이는 일 예시이며 이에 한정되지 않는다. 상술한 바와 같이 프로세서(140)가 제1 및 제2 이미지를 신경망 모델(10)에 입력하고, 신경망 모델(10)이 뎁스 정보 및 그리퍼(120)의 이동 정보 및 회전 정보를 출력할 수도 있고, 프로세서(140)가 제1 및 제2 이미지에 기초하여 뎁스 정보를 획득하고, 획득된 뎁스 정보를 신경망 모델(10)에 입력하여 그리퍼(120)의 이동 정보 및 회전 정보를 획득할 수도 있음은 물론이다.
도 2는 일 실시 예에 따른 신경망 모델을 설명하기 위한 도면이다.
도 2를 참조하여 제1 및 제2 이미지(1, 2)에 대해 보다 구체적으로 설명하면 다음과 같다. 일 실시 예에 따라 카메라(110)는 적어도 두 대의 카메라를 포함할 수 있다. 예를 들어, 카메라(110)는 스테레오 비전(stereo vision) 카메라로 구현되고, 프로세서(140)는 스테레오 비전 카메라를 통해 하나의 그립 대상 객체가 서로 다르게 찍히는 양안시차 특성이 반영된 제1 이미지(1)와 제2 이미지(2)를 이용하여 그립 대상 객체의 뎁스(Depth)를 획득할 수 있다. 따라서, 제1 및 제2 이미지(1, 2)는 뎁스(Depth) 값을 획득할 수 있는 정보를 포함할 수 있으며, 본 개시의 실시 예에 따라, 프로세서(140)는 제1 및 제2 이미지(1, 2)에 기초하여 뎁스 값을 명시적으로 획득하지 않고, 제1 및 제2 이미지(1, 2)만을 신경망 모델(10)의 입력으로 하고 학습된 신경망 모델(10)을 통해 뎁스(Depth) 정보를 고려한 이동 정보 및 회전 정보를 획득할 수도 있다.
본 개시의 일 실시 예에 따른 신경망 모델(10)은 뎁스 정보가 아닌, 제1 및 제2 이미지(1, 2)만을 입력으로 하여 학습될 수 있으며, 이 경우, 신경망 모델(10)은 제1 및 제2 이미지(1, 2)에 포함된 정보(예를 들어, 뎁스 정보))를 획득하고, 이에 기초하여 신경망 모델(10)을 구성하는 복수의 레이어의 확률 값을 출력할 때 뎁스 정보를 고려할 수 있도록 복수의 레이어 각각에 대응되는 가중치를 조정할 수 있다. 신경망 모델(10)의 학습 과정은 후술하도록 한다.
스테레오 비전 카메라는 인간이 좌안과 우안의 시차를 이용하여 외부 객체를 입체적으로 바라보는 것과 동일한 원리를 이용하여 그립 대상 객체를 상이한 각도에서 촬영한 적어도 두 개의 서로 다른 이미지(예를 들어, 제1 및 제2 이미지)에 기초하여 그립 대상 객체의 뎁스 정보(또는, 거리 정보)를 획득하는 카메라(110)를 의미할 수 있다.
스테레오 비전 카메라는 전자 장치(100) 상에서 이격 배치된 복수의 카메라를 포함할 수도 있으나, 이에 한정되지 않음은 물론이다. 예를 들어, 전자 장치(100)에 구비된 하나의 카메라(110)가 그립 대상 객체를 제1 각도에서 촬영한 뒤, 그립 대상 객체를 제2 각도에서 촬영하여 제1 및 제2 이미지(1, 2)를 순차적으로 획득하는 방식으로 구현될 수도 있음은 물론이다.
일 실시 예에 따라, 프로세서(140)는 제1 및 제2 이미지(1, 2)를 신경망 모델(10)에 입력하여 그리퍼(120)를 이동시키기 위한 이동 정보 및 그리퍼(120)를 회전시키기 위한 회전 정보를 획득할 수 있다.
프로세서(140)는 이동 정보에 기초하여 그리퍼(120)를 제1 방향 이동시키거나, 제2 방향 이동시키거나, 또는 이동 중지시킬 수 있다.
또한, 프로세서(140)는 회전 정보에 기초하여 그리퍼(120)를 제1 방향 회전시키거나, 제2 방향 회전시키거나, 또는 미회전시킬 수 있다.
일 실시 예에 따라 신경망 모델(10)이 입력된 제1 및 제2 이미지(1, 2)에 기초하여 출력하는 이동 정보 및 회전 정보에 대한 구체적인 설명은 도 3을 참조하여 하도록 한다.
도 3은 일 실시 예에 따른 그리퍼의 이동 및 회전을 개략적으로 설명하기 위한 도면이다.
신경망 모델(10)은 제1 및 제2 이미지(1, 2)에 기초하여 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위한 그리퍼(120)의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하는 이동 정보를 출력할 수 있다.
예를 들어, 이동 정보는 x축 이동 정보, y축 이동 정보 및 z축 이동 정보를 포함할 수 있다.
일 실시 예에 따른 x축 이동 정보는, 그리퍼(120)의 좌우 이동 정보를 의미한다. 구체적으로, x축 이동 정보는 x축 방향으로의 제1 방향 이동 (+), 제2 방향 이동 (-) 또는 이동 중지 중 하나를 포함할 수 있다. 여기서, x축 방향으로의 제1 방향 이동은 그리퍼(120)의 좌측 방향 이동을 의미하고, x축 방향으로의 제2 방향 이동은 그리퍼(120)의 우측 방향 이동을 의미하고, 이동 중지는 x축을 기준으로 그리퍼(120)의 현 위치를 유지시키는 것을 의미할 수 있다.
일 실시 예에 따른 y축 이동 정보는, 그리퍼(120)의 상하 이동 정보를 의미한다. 구체적으로, y축 이동 정보는, 그리퍼(120)의 y축 방향으로의 제1 방향 이동 (+), 제2 방향 이동 (-) 또는 이동 중지 중 하나를 포함할 수 있다. 여기서, y축 방향으로의 제1 방향 이동은 그리퍼(120)의 상측 방향 이동을 의미하고, y축 방향으로의 제2 방향 이동은 그리퍼(120)의 하측 방향 이동을 의미하고, 이동 중지는 y축을 기준으로 그리퍼(120)의 현 위치를 유지시키는 것을 의미할 수 있다.
일 실시 예에 따른 z축 이동 정보는, 그리퍼(120)의 전후 이동 정보를 의미한다. 구체적으로, z축 이동 정보는, 그리퍼(120)의 z축 방향으로의 제1 방향 이동 (+), 제2 방향 이동 (-) 또는 이동 중지 중 하나를 포함할 수 있다. 여기서, z축 방향으로의 제1 방향 이동은 그리퍼(120)의 전진 이동을 의미하고, z축 방향으로의 제2 방향 이동은 그리퍼(120)의 후진 이동을 의미하고, 이동 중지는 z축을 기준으로 그리퍼(120)의 현 위치를 유지시키는 것을 의미할 수 있다.
즉, 제2 방향은 제1 방향과 정반대되는 방향을 의미할 수 있다.
또한, 신경망 모델은 제1 및 제2 이미지에 기초하여 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위한 그리퍼(120)의 시계 방향 회전 (clockwise (+)), 반시계 방향 회전 (counterclockwise (-)) 또는 미회전 중 하나를 포함하는 회전 정보를 출력할 수 있다. 일 실시 예에 따른, 회전 정보는 그리퍼(120)의 x축 회전 정보, y축 회전 정보 및 z축 회전 정보를 포함할 수 있다.
여기서, x축 회전 정보는, 그리퍼(120)의 x축 기준 시계 방향 회전(clockwise (+)), x축 기준 반시계 방향 회전 (counterclockwise (-)) 또는 x축 기준 미회전 중 하나를 포함할 수 있다.
y축 회전 정보는, 그리퍼(120)의 y축 기준 시계 방향 회전(clockwise (+)), y축 기준 반시계 방향 회전 (counterclockwise (-)) 또는 y축 기준 미회전 중 하나를 포함할 수 있다.
z축 회전 정보는, 그리퍼(120)의 z축 기준 시계 방향 회전(clockwise (+)), z축 기준 반시계 방향 회전 (counterclockwise (-)) 또는 z축 기준 미회전 중 하나를 포함할 수 있다.
신경망 모델은 그리퍼(120)의 특정 방향으로의 구체적인 이동 거리(이동량)을 이동 정보로 출력하는 것이 아니라, 그리퍼(120)의 이동에 대해 3축 각각에 대해서 적어도 3개의 클래스로 분류한 뒤, 분류된 클래스를 이동 정보로서 출력할 수 있다. 여기서, 적어도 3개의 클래스 각각은 제1 방향 이동 (+), 제2 방향 이동 (-) 및 이동 중지에 대응될 수 있다.
또한, 신경망 모델은 그리퍼(120)의 특정 축 기준 회전 각도(회전량)을 회전 정보로 출력하는 것이 아니라, 그리퍼(120)의 회전에 대해 3축 각각에 대해서 적어도 3개의 클래스로 분류한 뒤, 분류된 클래스를 회전 정보로서 출력할 수 있다. 여기서, 적어도 3개의 클래스 각각은 시계 방향 회전 (clockwise (+)), 반시계 방향 회전 (counterclockwise (-)) 및 미회전에 대응될 수 있다.
일 실시 예에 따른 전자 장치(100)는 3차원으로 이동 가능한 그리퍼(120)를 포함하며, 그리퍼(120)는 x, y, z축을 따라 이동 및 회전 가능할 수 있다.
다른 예에 따르면, 전자 장치(100)는 2차원 또는 1차원으로만 이동 가능한 그리퍼(120)를 포함할 수도 있다. 예를 들어, x 및 y축을 따라 이동 및 / 또는 회전할 수 있으며, x 및 z축, 또는 y 및 z축, 또는 x, y, z축을 따라 이동 및 / 또는 회전할 수도 있다. 또한, 본 개시의 일 실시 예에 따라 그리퍼(120)의 이동 및 / 또는 회전(축별)은 신경망 모델(10)에 의해 3개의 클래스로 분류되어 이동 정보 / 회전 정보로 출력될 수 있다.
다만, 다른 실시 예에 따르면, 그리퍼(120)의 이동 및 / 또는 회전(축별)도 신경망 모델(10)에 의해 3개 이상의 클래스로 분류되어 이동 정보 / 회전 정보로 출력될 수 있다. 예를 들어, 4, 5, 6, 7, 8, 9, 10 또는 10개 이상의 클래스로 분류될 수 있다.
도 4는 일 실시 예에 따른 이동 정보 및 회전 정보를 설명하기 위한 도면이다.
도 4를 참조하면, 신경망 모델(10)은 그리퍼(120)의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하는 제1 및 제2 이미지(1, 2) 각각이 입력되면, 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위해 제1 방향 이동 (+), 제2 방향 이동 (-) 또는 이동 중지 (0) 중 어느 동작을 수행하여야 그립 대상 객체를 그립하기 위한 위치에 도달할 수 있는지 확률을 산출할 수 있다.
일 예로, 신경망 모델은 그리퍼(120)의 적어도 일부와 그립 대상 객체의 적어도 일부를 서로 다른 각도에서 촬영한 제1 및 제2 이미지(1, 2)에 기초하여 그리퍼(120)가 제1 방향으로 이동 시에 그립 대상 객체에 보다 인접하게 위치할 제1 확률, 그리퍼(120)가 제2 방향으로 이동 시에 그립 대상 객체에 보다 인접하게 위치할 제2 확률 및 그리퍼(120)의 현 위치가 그립 대상 객체에 인접하게 위치하는지 여부를 나타내는 제3 확률 각각을 획득할 수 있다.
여기서, 제1, 제2, 제3 확률의 합은 1 일 수 있다. 그리퍼(120)가 그립 대상 객체에 인접하게 위치함의 의미는, 그리퍼(120)가 그립 동작 수행 시에 그립 대상 객체를 그립할 수 있는 거리에 위치함을 의미할 수 있다.
이어서, 신경망 모델(10)은 제1 내지 제3 확률 중 가장 큰 값에 대응되는 이동(또는, 이동 중지)를 이동 정보로 출력할 수 있다. 예를 들어, 신경망 모델(10)은 제1 확률이 가장 큰 값이면, 제1 확률에 대응되는 제1 방향 이동 (+)을 이동 정보로 출력할 수 있다.
상술한 바와 같이 신경망 모델(10)이 출력하는 이동 정보는 그리퍼(120)를 제1 또는 제2 방향으로 이동시킬지, 또는 그리퍼(120)의 이동을 중지시킬지(또는, 그리퍼(120)의 현 위치를 유지시킬지)에 대한 정보만을 포함하고 있을 뿐, 그리퍼(120)를 얼마만큼 이동시킬지 즉, 이동 거리에 대한 정보는 포함하지 않을 수 있다.
또한, 신경망 모델(10)은 그리퍼(120)의 제1 및 제2 이미지 각각이 입력되면, 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위해 특정 축을 기준으로 시계 방향 회전 (clockwise (+)), 반시계 방향 회전 (counterclockwise (-)) 또는 미회전 중 어느 동작을 수행하여야 하는지 확률을 산출할 수 있다. 일 예로, 신경망 모델(10)은 그리퍼(120)가 x축 기준 시계 방향 회전 (clockwise (+)) 시에 그립 대상 객체에 보다 인접하게 위치할 제1 확률, 그리퍼(120)가 x축 기준 반시계 방향 회전 (counterclockwise (-)) 시에 그립 대상 객체에 보다 인접하게 위치할 제2 확률 및 그리퍼(120)의 x축 기준 각도가 회전 그립 대상 객체에 인접하게 위치하여 시계 또는 반시계 방향 회전이 불필요함을 나타내는 제3 확률 각각을 획득할 수 있다. 여기서, 제1 내지 제3 확률의 합은 1 일 수 있다. 그리퍼(120)가 그립 대상 객체에 인접하게 위치함의 의미는, 그리퍼(120)가 그립 동작 수행 시에 그립 대상 객체를 그립할 수 있는 거리에 위치함을 의미할 수 있다.
이어서, 신경망 모델은 제1, 제2, 제3 확률 중 가장 큰 값에 대응되는 회전(또는, 미회전)을 회전 정보로 출력할 수 있다. 예를 들어, 신경망 모델은 제2 확률이 가장 큰 값이면, 제2 확률에 대응되는 반시계 방향 회전 (counterclockwise (-)) 을 회전 정보로 출력할 수 있다.
이어서, 프로세서(140)는 이동 정보 및 회전 정보 각각에 기초하여 그리퍼(120)를 이동(또는, 이동 중지)시키고, 회전(또는, 미회전)시킬 수 있다. 도 4를 참조하면, 프로세서(140)는 이동 정보가 x축 방향으로의 제1 방향 이동, y축 방향으로의 제2 방향 이동, 및 z축 방향으로의 이동 중지를 포함하면 이동 정보에 기초하여 그리퍼(120)를 x축 기준 제1 방향(예를 들어, 좌측 방향) 이동시키고, y축 기준 제2 방향(예를 들어, 상측 방향) 이동시키고, z축 기준 이동 중지시킬 수 있다.
또한, 도 4를 참조하면, 프로세서(140)는 회전 정보가 x축 기준 시계 방향 회전, y축 기준 반시계 방향 회전, 및 z축 기준 미회전을 포함하면 회전 정보에 기초하여 그리퍼(120)를 x축 기준 시계 방향 회전시키고, y축 기준 반시계 방향 회전시키고, z축 기준 미회전시킬 수 있다.
도 4에서 구체적인 확률 숫자는 설명의 편의를 위한 일 예시에 불과하며, 신경망 모델(10)은 제1 및 제2 이미지(1, 2)에 기초하여 다양하게 조합된 이동 정보 및 회전 정보를 출력할 수 있음은 물론이다. 이하에서는 설명의 편의를 위해 제1 방향 및 시계 방향을 (+), 제2 방향 및 반시계 방향을 (-), 이동 중지 및 미회전을 (0)으로 표시하도록 한다.
일 실시 예에 따르면, 프로세서(140)는 이동 정보 및 회전 정보에 기초하여 그리퍼(120) 이동 및 회전시킬 수 있다. 이어서, 프로세서(140)는 카메라(110)를 통해 실시간 또는 기 설정된 시간 간격으로 이미지를 수신하며, 수신된 이미지를 신경망 모델에 입력하여 그리퍼(120)의 다음 이동 정보 및 회전 정보를 획득할 수 있다.
구체적으로, 프로세서(140)는 제1 및 제2 이미지(1, 2)를 신경망 모델(10)에 입력하여 제1 이동 정보 및 제1 회전 정보를 획득할 수 있다. 예를 들어, 도 4에 도시된 바와 같이 제1 이동 정보는 x축 방향 (+), y축 방향 (-), z축 방향 (0)을 포함할 수 있고, 제1 회전 정보는 x축 기준 (+), y축 기준 (-), z축 기준 (0)을 포함할 수 있다.
이어서, 프로세서(140)는 카메라(110)를 통해 수신된 제3 및 제4 이미지를 신경망 모델(10)에 입력하여 제2 이동 정보 및 제2 회전 정보를 획득할 수 있다. 여기서, 제3 및 제4 이미지는 제1 및 제2 이미지보다 기 설정된 시간 뒤에 그립 대상 객체 및 그리퍼(120)를 촬영하여 획득된 이미지일 수 있다. 즉, 제3 및 제4 이미지 각각은 제1 이동 정보 및 제1 회전 정보에 따라 제어된(예를 들어, 이동 및 회전된) 그리퍼(120)의 현 위치에 대응되는 그리퍼(120)의 적어도 일부를 포함할 수 있다.
구체적으로, 프로세서(140)가 제1 이동 정보에 기초하여 x축 방향 (+), y축 방향 (-), z축 방향 (0)으로 그리퍼(120)의 이동을 제어하고, 제1 회전 정보에 기초하여 x축 기준 (+), y축 기준 (-), z축 기준 (0)으로 그리퍼(120)의 회전을 제어하는 동안 카메라(110)로부터 수신된 제3 및 제4 이미지가 수신되면, 프로세서(140)는 제3 및 제4 이미지를 신경망 모델(10)에 입력하여 제2 이동 정보 및 제2 회전 정보를 획득할 수 있다.
다른 예로, 프로세서(140)가 제1 이동 정보에 기초하여 x축 방향 (+), y축 방향 (-), z축 방향 (0)으로 그리퍼(120)를 기 설정된 시간 동안 이동시키고, 제1 회전 정보에 기초하여 x축 기준 (+), y축 기준 (-), z축 기준 (0)으로 그리퍼(120)를 기 설정된 시간 동안 회전시킬 수 있다. 이어서, 기 설정된 시간이 경과함에 따라 제1 이동 정보에 대응되는 그리퍼(120)의 이동 및 제1 회전 정보에 대응되는 그리퍼(120)의 회전이 종료된 뒤 그리퍼(120)의 현 위치에 대응되는 그리퍼(120)의 적어도 일부를 포함하는 제3 및 제4 이미지가 수신되면, 프로세서(140)는 제3 및 제4 이미지를 신경망 모델(10)에 입력하여 제2 이동 정보 및 제2 회전 정보를 획득할 수 있다.
여기서, 제3 및 제4 이미지는 카메라(110)가 제1 및 제2 이미지(1, 2)를 촬영하고 기 설정된 시간이 경과한 뒤 그리퍼(120)의 적어도 일부 및 그립 대상 객체의 적어도 일부를 서로 다른 각도로 촬영한 이미지일 수 있다. 예를 들어, 카메라(110)는 0.05초의 시간 간격으로 이미지 쌍(예를 들어, 제3 및 제4 이미지)을 획득하여 프로세서(140)로 전송할 수 있다.
일 예로, 카메라(110)가 스테레오 비전(stereo vision) 카메라로 구현되면, 이미지 쌍은 이격 배치된 복수의 카메라 중 어느 하나를 이용하여 그리퍼(120)의 적어도 일부와 그립 대상 객체의 적어도 일부를 촬영한 이미지 및 나머지 하나를 이용하여 그리퍼(120)의 적어도 일부와 그립 대상 객체의 적어도 일부를 촬영한 이미지를 포함할 수 있다.
0.05초의 시간 간격은 일 예시에 불과하며 카메라(110)는 이보다 상대적으로 짧은 시간 또는 긴 시간 간격으로 이미지 쌍을 획득할 수도 있음은 물론이다. 예를 들어, 시간 간격은 0.01초, 0.02초, 0.03초, 0.04초, 0.06초, 0.07초, 0.08초, 0.09초, 또는 0.1초일 수 있다. 다른 예로, 시간 간격은 0.1초보다 상대적으로 더 짧거나, 0.1초보다 상대적으로 더 길 수도 있음은 물론이다.
일 실시 예에 따라 프로세서(140)가 그리퍼(120)를 제1 이동 정보 및 제1 회전 정보 각각에 기초하여 이동 및 회전시킴에 따라 제1 이미지(1)가 획득된 시점으로부터 기 설정된 시간이 경과한 뒤에 획득된 제3 이미지에 포함된 그리퍼(120)의 위치는 제1 이미지에 포함된 그리퍼(120)의 위치와 상이할 수 있다.
예를 들어, 프로세서(140)가 그리퍼(120)를 제1 이동 정보에 기초하여 0.05초 동안 이동시켰다면, 제3 이미지에 포함된 그리퍼(120)의 위치는 제1 이미지에 포함된 그리퍼(120)의 위치 대비 0.05(s) * 그리퍼(120)의 이동 속도(m/s)만큼 차이가 날 것이다.
제4 이미지에 포함된 그리퍼(120)의 위치 또한, 제2 이미지(2)에 포함된 그리퍼(120)의 위치 대비 0.05(s)*그리퍼(120)의 이동 속도(m/s)만큼 차이가 날 것이다.
따라서, 신경망 모델(10)은 그리퍼(120)의 현 위치에 기초하여 다음 이동 정보를 출력하므로, 신경망 모델이 출력한 제3 및 제4 이미지에 대응되는 제2 이동 정보는 제1 및 제2 이미지(1, 2)에 대응되는 제1 이동 정보와 동일할 수도 있고 상이할 수도 있다.
예를 들어, 제1 및 제2 이미지(1, 2)에 대응되는 제1 이동 정보는 x축 방향 (+), y축 방향 (-), z축 방향 (0)이고, 제3 및 제4 이미지에 대응되는 제2 이동 정보는 x축 방향 (0), y축 방향 (+), z축 방향 (0)일 수 있다.
또한, 프로세서(140)가 그리퍼(120)를 제1 회전 정보에 기초하여 0.05초 동안 회전시켰다면, 제3 이미지에 포함된 그리퍼(120)와 그립 대상 객체 간의 특정 축에 대한 각도 차는 제1 이미지(1)에 포함된 그리퍼(120)와 그립 대상 객체 간의 특정 축에 대한 각도 차와 상이할 것이다. 제4 이미지에 포함된 그리퍼(120)와 그립 대상 객체 간의 특정 축에 대한 각도 차 또한, 제2 이미지(2)에 포함된 그리퍼(120)와 그립 대상 객체 간의 특정 축에 대한 각도 차와 상이할 것이다.
따라서, 신경망 모델은 그리퍼(120)의 현 위치에 기초하여 다음(또는, 신규) 회전 정보를 출력하므로, 제3 및 제4 이미지에 대응되는 제2 회전 정보는 제1 및 제2 이미지(1, 2)에 대응되는 제1 회전 정보와 동일할 수도 있고 상이할 수도 있다.
예를 들어, 제1 및 제2 이미지(1, 2)에 대응되는 제1 회전 정보는 x축 기준 (+), y축 기준 (-), z축 기준 (0)이고, 제3 및 제4 이미지에 대응되는 제2 회전 정보는 x축 방향 (+), y축 방향 (0), z축 방향 (0)일 수 있다.
즉, 신경망 모델(10)은 실시간 또는 기 설정된 시간 간격으로 수신된 이미지에 기초하여 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위한 이동 정보 및 회전 정보를 실시간 또는 기 설정된 시간 간격으로 출력할 수 있다.
신경망 모델(10)은 그리퍼(120)의 이동 거리, 회전 각도 등에 대응되는 구체적인 수치를 출력하지 않으나, 그리퍼(120)의 현 위치에 대응되는 이동 정보 및 회전 정보를 실시간 또는 기 설정된 시간 간격으로 출력할 수 있다. 따라서, 프로세서(140)는 신경망 모델이 실시간 또는 기 설정된 시간 간격으로 출력하는 이동 정보 및 회전 정보에 기초하여 그리퍼(120)를 이동 및 회전시켜 그립 대상 객체에 인접하게 위치시킬 수 있다.
도 5는 일 실시 예에 따른 신경망 모델의 학습을 설명하기 위한 도면이다.
<신경망 모델의 학습>
일 실시 예에 따른 신경망 모델(10)은 그리퍼(120)를 복수의 훈련 이미지 각각에 포함된 외부 객체에 인접하게 위치시키기 위한 이동 정보 및 회전 정보를 출력하도록 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
일 실시 예에 따라 지도형 학습 알고리즘의 의하여 학습된 신경망 모델을 설명하도록 한다. 우선, 도 5를 참조하여, 신경망 모델의 학습 데이터를 획득하는 방법에 대해 설명하도록 한다.
<신경망 모델의 학습 데이터 획득 방법>
우선, 학습 데이터 생성 모듈은 종래의 규칙 기반(rule-based) 로봇 또는 종래의 신경망 모델을 포함하는 로봇이 그리퍼를 제어하여 외부 객체를 파지하는 경우, 그리퍼의 움직임을 촬영한 스테레오 비전 영상을 획득할 수 있다. 여기서, 스테레오 비전 영상은 종래의 로봇에 구비된 그리퍼의 적어도 일부와 외부 객체의 적어도 일부를 포함하고 있으며, 그리퍼가 이동 및 회전하여 외부 객체에 인접하게 위치한 뒤에 외부 객체를 파지하기까지의 그리퍼의 움직임을 촬영한 영상일 수 있다. 또한, 스테레오 비전 영상을 구성하는 복수의 프레임 각각은 서로 다른 이미지 쌍으로 구성될 수 있다. 예를 들어, 복수의 프레임 각각은 그리퍼의 적어도 일부 및 외부 객체의 적어도 일부를 동일한 시간에 서로 다른 각도에서 촬영한 이미지 쌍으로 구성될 수 있다. 여기서, 이미지 쌍 각각은 그리퍼의 일부를 포함할 수 있다. 그리퍼의 적어도 일부는 그리퍼의 일 구성 요소로서 그립 대상 객체와 접촉하는 집계(jaws) 또는 손가락(finger) 부분을 의미할 수 있다. 학습 데이터 생성 모듈은 프로세서(140)의 일 기능을 의미할 수도 있으며, 외부 장치에 구비된 학습 데이터를 생성하는 프로세서를 의미할 수도 있다.
또한, 학습 데이터 생성 모듈은 종래의 로봇이 그리퍼를 이동시키기위해 출력한 제어 신호를 획득할 수 있다.
예를 들어, 학습 데이터 생성 모듈은 종래의 규칙 기반 로봇이 그리퍼를 외부 객체에 인접하게 위치시키기 위해 출력한 i) 그리퍼의 x축, y축, z축 각각의 이동 방향에 대한 제어 신호, 또는 ii) x축, y축, z축 각각의 회전 방향에 대한 제어 신호를 획득할 수 있다.
다른 예로, 학습 데이터 생성 모듈은 종래의 신경망 모델을 포함하는 로봇이 그리퍼를 외부 객체에 인접하게 위치시키기 위해 신경망 모델이 출력한 i) 그리퍼의 x축, y축, z축 각각의 이동 방향에 대한 제어 신호, 또는 ii) x축, y축, z축 각각의 회전 방향에 대한 제어 신호를 획득할 수 있다. 또는, 학습 데이터 생성 모듈은 그리퍼의 이동 좌표 값(및 각 이동 좌표 값에 매핑된 각 축을 기준으로하는 그리퍼의 회전 각도)을 획득할 수 있다.
학습 데이터 생성 모듈은 획득된 제어 신호 또는, 그리퍼의 이동 좌표 값 및 각 이동 좌표 값에 매핑된 각 축의 회전 각도를 획득할 수도 있고, 센서의 센싱 데이터로부터 공간상의 그리퍼의 이동 좌표 값 및 각 이동 좌표 값에 매핑된 각 축의 회전 각도를 획득할 수도 있음은 물론이다.
학습 데이터 생성 모듈은 획득된 복수의 이동 좌표 값 및 각 이동 좌표 값에 매핑된 각 축의 회전 각도를 그리퍼 궤적 데이터로 구성할 수 있으며, 그리퍼 궤적 데이터는 파지를 위한 그리퍼의 이동을 학습시키기 위한 학습 데이터로 이용될 수 있다. 그리퍼 궤적 데이터는 공간상의 이동 좌표 값으로만 구성될 수도 있으며, 각 이동 좌표 값에 매핑된 각 축의 회전 각도를 더 포함할 수도 있음은 물론이다.
여기서, 종래의 로봇에 포함된 신경망 모델은 그리퍼와 외부 객체 간의 거리를 산출하는 모델이며, 종래의 로봇은 산출된 거리에 기초하여 그리퍼를 외부 객체에 인접하게 이동시키는 로봇일 수 있다.
이어서, 학습 데이터 생성 모듈은 종래의 로봇으로부터 획득된 스테레오 비전 영상을 프레임 단위로 구분하고, 그리퍼 궤적 데이터에 기초하여 n-1 번째 영상 프레임의 매핑된 그리퍼 궤적 데이터(그리퍼의 공간상 좌표 값 또는 각 축의 회전 각도)와 n 번째 영상 프레임에 매핑된 그리퍼 궤적 데이터를 비교하여 그리퍼가 상대적으로 어느 방향으로 이동했는지 파악하여 그리퍼의 x축 기준 이동 방향을 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 어느 하나로 매칭시키고, y축 기준 이동 방향을 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 어느 하나로 매칭시키고, z축 기준 이동 방향을 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 어느 하나로 매칭시킬 수 있다.
학습 데이터 생성 모듈은 복수의 프레임 각각에 대응되는, 그리퍼의 x축, y축, z축 각각의 이동 방향을 그라운드 트루스(Ground truth)로하여 학습 데이터를 생성할 수 있다.
도 5를 참조하여 일 예를 들면, 학습 데이터 생성 모듈은 i) 그리퍼의 x축, y축, z축 각각의 이동 방향에 대한 제어 신호에 기초하여 제1 프레임에서 그리퍼의 x축 이동 방향이 제1 방향이고, y축 이동 방향이 제2 방향이고, z축 이동 방향이 이동 중지이면, ‘x축 (+), y축 (-), z축 (0)’을 제1 프레임에서 그리퍼의 이동 방향에 대한 그라운드 트루스(Ground truth)로하여 학습 데이터를 생성할 수 있다. 여기서, 제1 프레임은 도 5에 도시된 바와 같이 그리퍼의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하는 서로 다른 이미지(예를 들어, 서로 다른 각도에서 촬영한 이미지)를 포함할 수 있다.
또한, 학습 데이터 생성 모듈은 그리퍼 궤적 데이터에 기초하여 n-1 번째 영상 프레임의 매핑된 그리퍼 궤적 데이터(공간상 좌표 값 또는 각 축의 회전 각도)와 n 번째 영상 프레임에 매핑된 그리퍼 궤적 데이터 값을 비교하여 상대적으로 어느 방향으로 회전했는지 파악해서 그리퍼의 x축 기준 회전 방향을 제1 방향 회전, 제2 방향 회전 또는 미회전 중 어느 하나로 매칭시키고, y축 기준 회전 방향을 제1 방향 회전, 제2 방향 회전 또는 미회전 중 어느 하나로 매칭시키고, z축 기준 회전 방향을 제1 방향 회전, 제2 방향 회전 또는 미회전 중 어느 하나로 매칭시킬 수 있다.
학습 데이터 생성 모듈은 복수의 프레임 각각에 대응되는, 그리퍼의 x축, y축, z축 각각의 회전 방향을 그라운드 트루스(Ground truth)하여 학습 데이터를 생성할 수 있다.
도 5를 참조하여 일 예를 들면, 학습 데이터 생성 모듈은 ii) 그리퍼의 x축, y축, z축 각각의 회전 방향에 대한 제어 신호에 기초하여 제1 프레임에서 그리퍼의 x축 기준 회전 방향이 제2 방향이고, y축 기준 회전 방향이 미회전이고, z축 기준 회전 방향이 미회전이면, ‘x축 (-), y축 (0), z축 (0)’을 제1 프레임에서 그리퍼의 회전 방향에 대한 그라운드 트루스(Ground truth)로하여 학습 데이터를 생성할 수 있다. 한편, 설명의 편의를 위해 제1 방향을 (+), 제2 방향을 (-), 이동 중지 또는 미회전을 (0)로 표현함은 상술한 바 있다.
한편, 상술한 예시에서는 종래의 로봇이 그리퍼를 외부 객체에 인접하게 위치시키는 경우에 그리퍼의 움직을 촬영한 영상에 기초하여 학습 데이터를 생성하는 일 예시를 상정하여 설명하였으나 이에 한정되지 않음은 물론이다.
예를 들어, 학습 데이터 생성 모듈은 인간의 팔, 손에 센서를 부착하고 손의 적어도 일부 및 외부 객체의 적어도 일부를 촬영한 이미지를 획득할 수 있다. 이어서, 학습 데이터 생성 모듈은 센서로부터 수신된 센싱 데이터에 기초하여 i) 인간의 손의 x축, y축, z축 각각의 이동 방향 및 ii) 인간의 손의 x축, y축, z축 각각의 회전 방향을 식별할 수 있다. 이어서, 학습 데이터 생성 모듈은 촬영한 이미지와 식별된 i) x축, y축, z축 각각의 이동 방향 및 ii) x축, y축, z축 각각의 회전 방향을 매칭시켜 학습 데이터를 생성할 수도 있다.
<신경망 모델 학습 방법>
도 5를 참조하면, 종래의 규칙 기반(rule-based) 로봇 또는 종래의 신경망 모델을 포함하는 로봇이 그리퍼를 제어하여 외부 객체를 파지하는 경우, 그리퍼의 움직임을 촬영한 스테레오 비전 영상을 구성하는 복수의 프레임 각각은 신경망 모델의 입력 학습 데이터가 될 수 있다.
일 예로, 스테레오 비전 영상을 구성하는 복수의 프레임 중 제1 프레임은 이미지 쌍(예를 들어, 제1 이미지 및 제2 이미지(1, 2))로 구성될 수 있다.
일 실시 예에 따라 신경망 모델 학습 모듈은 이미지 쌍(예를 들어, 제1 이미지 및 제2 이미지(1, 2))을 신경망 모델에 입력할 수 있고, 신경망 모델(10)은 입력된 이미지 쌍 각각에 포함된 외부 객체의 적어도 일부 및 그리퍼(120)의 적어도 일부에 기초하여 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키기 위한 그리퍼(120)의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하는 이동 정보 및 그리퍼(120)의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함하는 회전 정보를 출력할 수 있다.
도 5를 참조하면, 신경망 모델(10)은 이미지 쌍에 기초하여 그리퍼(120)가 x축 기준으로 제1 방향으로 이동 시에 그립 대상 객체에 보다 인접하게 위치할 제1 확률, 그리퍼(120)가 제2 방향으로 이동시에 그립 대상 객체에 보다 인접하게 위치할 제2 확률 및 그리퍼(120)의 현 위치가 그립 대상 객체에 인접하게 위치하는지 여부를 나타내는 제3 확률 각각을 획득할 수 있다. 제1, 제2 및 제3 확률의 합은 1 이거나, 1 이 아닐 수 있다.
여기서, 신경망 모델(10)은 제1 내지 제3 확률 각각과 그라운드 트루스 간의 오차에 기초하여 에러 값을 획득할 수 있다. 여기서, 그라운드 트루스에 따라 이미지 쌍에 대응되는 그리퍼(120)의 이동 방향은 1의 값(도 5의 GT label 참조)을 가지며, 나머지 이동 방향은 0의 값을 가지며, 신경망 모델이 이미지 쌍에 기초하여 출력한 제1 내지 제3 확률(도 5의 Network Output 참조) 각각은 0 내지 1의 값을 가질 수 있다. 따라서, 에러 값(도 5의 Error 참조)은 -1 내지 1의 값을 가질 수 있다. 즉, 에러 값은 도 5를 참조하면 GT label에 대응되는 1의 값과 Network Output에 대응되는 확률 값 간의 차이를 의미할 수 있다.
일 실시 예에 따른 신경망 모델 학습 모듈은 에러 값을 최소화시키는 방향으로 신경망 모델(10)을 구성하는 히든 레이어의 가중치(weight), 파라미터를 조정할 수 있다.
또한, 이동 방향 외에 회전 방향도 상술한 방법과 동일하게 신경망 모델 학습 모듈은 제1 내지 제3 확률 각각과 그라운드 트루스 간의 오차에 기초하여 에러 값을 획득하며, 에러 값을 최소화시키는 방향으로 신경망 모델(10)을 학습시킬 수 있다. 예를 들어, 신경망 모델 학습 모듈은 Stochastic Gradient Descent에 기초하여 최적 가중치를 탐색할 수 있고, 이에 기초하여 히든 레이어 각각의 가중치를 조정할 수 있다.
도 5를 참조하면, 신경망 모델은 그리퍼(120)의 x축, y축, z축 이동 방향 각각에 대응되는 제1 내지 제3 확률과 x축, y축, z축 회전 방향 각각에 대응되는 제1 내지 제3 확률 즉, 총 18개의 확률을 출력하며, 신경망 모델 학습 모듈은 총 18개의 확률 각각 대응되는 그라운트 트루스와의 오차에 기초하여 총 18개의 에러 값을 획득할 수 있다.
이하에서는 다른 실시 예에 따라 강화 학습 알고리즘의 의하여 학습된 신경망 모델(10)을 설명하도록 한다.
강화 학습 알고리즘은 현 상태에서 최적의 액션을 수행하도록 신경망 모델(10)을 학습시키는 알고리즘이며, 액션을 수행할 때마다 이에 대한 보상(reward)가 부여된다. 특히, 신경망 모델 학습 모듈은 보상을 최대화시키는 방향으로 신경망 모델(10)을 학습시킬 수 있다.
일 실시 예에 따라 신경망 모델(10)은 그리퍼(120)를 외부 객체에 인접하게 위치시키기 위한 그리퍼(120)의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하는 이동 정보 및 그리퍼(120)의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함하는 회전 정보를 출력 할 수 있다.
이 경우, 강화 학습 알고리즘은 신경망 모델(10)이 출력한 이동 정보 및 회전 정보에 따라 그리퍼(120)가 외부 객체에 이전보다 인접하게 위치하게 되는 경우를 보상(reward)으로 설정할 수 있다. 일 실시 예에 따라 신경망 모델 학습 모듈은 신경망 모델이 출력한 이동 정보 및 회전 정보에 따라 그리퍼(120)가 움직인 결과가 외부 객체에 최대한 인접하도록 즉, 보상이 최대가 되도록 신경망 모델을 학습시킬 수 있다.
또한, 강화 학습 알고리즘은 그리퍼(120)가 외부 객체를 그립하며, 외부 객체를 기 설정된 거리만큼 이동시키는 경우를 보상으로 설정할 수도 있다. 이 경우에, 신경망 모델 학습 모듈은 신경망 모델이 출력한 이동 정보 및 회전 정보에 따라 그리퍼(120)가 외부 객체에 그립 가능한 거리 내에 위치하도록, 또한, 외부 객체를 기 설정된 거리 이상 이동시키기 위해 안정적인 그립 가능 거리 내에 위치하도록 신경망 모델(10)을 학습시킬 수 있다.
일 실시 예에 따라, 강화 학습 알고리즘은 신경망 모델(10)이 출력한 이동 정보 및 회전 정보에 따라 그리퍼(120)가 이동 및 회전한 결과, 외부 객체와 보다 멀어졌거나, 외부 객체의 그립에 실패한 경우 보상을 주지 않을 수 있다.
그리퍼(120)는 x축 기준으로 제1 방향 이동, 제2 방향 이동 및 이동 중지 중 어느 하나를 수행할 수 있고, y축 기준으로 제1 방향 이동, 제2 방향 이동 및 이동 중지 중 어느 하나를 수행할 수 있고, z축 기준으로 제1 방향 이동, 제2 방향 이동 및 이동 중지 중 어느 하나를 수행할 수 있다.
또한, 그리퍼(120)는 x축 기준으로 제1 방향 회전, 제2 방향 회전 및 미회전 중 어느 하나를 수행할 수 있고, y축 기준으로 x축 기준으로 제1 방향 회전, 제2 방향 회전 및 미회전 중 어느 하나를 수행할 수 있고, z축 기준으로 x축 기준으로 제1 방향 회전, 제2 방향 회전 및 미회전 중 어느 하나를 수행할 수 있다. 즉, 그리퍼(120)의 움직임은 총 729(36)개의 경우의 수를 가능할 수 있다.
다른 실시 예에 따른 신경망 모델 학습 모듈은 심층 Q-네트워크 (Deep Q-Networks)을 이용하여 그리퍼(120)의 현 상태(예를 들어, 그립 대상 객체와 현재 이격된 정도)에 기초하여 그리퍼(120)를 외부 객체에 인접하게 위치시키는 경우에, 그리퍼(120)가 외부 객체 그립 가능 거리 내에 위치하기까지 최종적으로 요구되는 움직임의 예상 횟수, 그리퍼(120)의 움직임에 대한 총 729개의 경우의 수를 고려하여 이동 정보 및 회전 정보를 출력하도록 신경망 모델을 학습시킬 수 있다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
종래의 규칙 기반(rule-based) 로봇 또는 종래의 신경망 모델을 포함하는 로봇은 카메라를 통한 촬영 이미지에 기초하여 그리퍼와 그립 대상 객체 간의 거리를 산출한 뒤, 산출된 거리에 기초하여 그리퍼를 이동시켰다. 이 경우에, 로봇이 그리퍼와 그립 대상 객체 간의 거리를 오차 범위 내에서 식별하기란 매우 어려우며, 그리퍼와 그립 대상 객체 간의 거리를 오차 범위 내에서 식별하여야만(또는, 산출된 거리의 신뢰도가 높은 경우에 한하여) 그립 대상 객체를 원활하게 그립할 수 있다는 한계가 있다.
이에 반해, 일 실시 예에 따른 신경망 모델은 그리퍼(120)의 각 축의 이동 방향에 대해서 세 개의 클래스(예를 들어, 제1 방향 이동, 제2 방향 이동, 이동 중지) 각각에 해당하는 확률 값(확률 값이 높을수록, 그리퍼(120)의 현 상태에서 그립 대상 객체를 그립하기 위해 선택해야할 가장 적절한 항목에 해당함을 의미함)을 도출하고, 가장 높은 확률 값을 가지는 클래스가 이동 방향으로서 선택된다. 또한, 신경망 모델은 그리퍼(120)의 각 축을 기준으로 한 회전 방향에 대해서 세 개의 클래스(예를 들어, 제1 방향 회전, 제2 방향 회전, 미회전) 각각에 해당하는 확률 값(확률 값이 높을수록, 그리퍼(120)의 현 상태에서 그립 대상 객체를 그립하기 위해 선택해야할 가장 적절한 항목에 해당함을 의미함)을 도출하고, 가장 높은 확률 값을 가지는 클래스가 회전 방향으로서 선택된다.
이어서, 프로세서(140)는 이동 방향 및 회전 정보에 기초하여 그리퍼(120)를 이동 및 회전시키므로 그립 대상 객체와의 오차 범위 내의 거리(예를 들어, 이동 거리, 회전 각도)를 산출하지 않아도 되며, 보다 적은 시행 착오로 그리퍼(120)를 그립 대상 객체에 인접하게 위치시킬 수 있는 효과가 있다.
도 6은 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
우선, 일 실시 예에 따른 전자 장치(100)는 적어도 하나의 이미지를 신경망 모델(10)에 입력하여 그리퍼(120)의 이동 정보 및 회전 정보를 획득한다(S610). 여기서, 적어도 하나의 이미지는 스테레오 비전 카메라를 통해 획득한 그리퍼(120)의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하는 이미지 쌍일 수 있음은 상술한 바 있다(시점 t에서 획득된).
이어서, 전자 장치(100)는 획득된 이동 정보 및 회전 정보에 기초하여 그리퍼(120)를 이동 및 회전시킬 수 있다(S620). 예를 들어, 전자 장치(100)는 이동 정보에 기초하여 그리퍼(120)를 제1 방향, 제2 방향 중 어느 하나의 방향으로 이동시키거나, 이동 중지(예를 들어, 현재 위치에서 고정)시킬 수 있다.
또한, 전자 장치(100)는 회전 정보에 기초하여 그리퍼(120)를 제1 방향, 제2 방향 중 어느 하나의 방향으로 회전시키거나, 미회전(예를 들어, 그리퍼(120)가 회전 중 이였을 경우에는 회전 중단)시킬 수 있다. 여기서, 제1 방향은 시계 방향이고, 제2 방향은 반 시계 방향일 수 있음은 상술한 바 있다.
이어서, 전자 장치(100)는 이동 정보 및 회전 정보에 기초하여 위치가 변경된 그리퍼의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하는 적어도 하나의 이미지를 획득할 수 있다(시점 t+1에서 획득된). 예를 들어, 전자 장치(100)는 카메라(110)를 통해 실시간 또는 기 설정된 시간 간격으로 이미지를 획득하며, 획득된 이미지는 프로세서(140)의 제어에 따라 이동 또는 회전하여 위치가 변경된 그리퍼(120)의 현 상태를 포함할 수 있다.
전자 장치(100)는 적어도 하나의 이미지를 신경망 모델에 입력하여 그리퍼(120)의 다음(또는, 신규) 이동 정보 및 회전 정보를 획득할 수 있다(S630). 여기서, 다음 이동 정보 및 회전 정보는 S620 단계에서 그리퍼(120)가 이동 또는 회전하였으므로, 변경된 그리퍼(120)의 현 상태에 대응되는 이동 정보 및 회전 정보를 의미할 수 있다.
이어서, 전자 장치(100)는 S630 단계에서 획득된 이동 정보가 이동 중지 (0)를 포함하고, S630 단계에서 획득된 회전 정보가 미회전 (0)을 포함하면(S640: Y), 그리퍼(120)의 이동 및 회전을 중지시킬 수 있다. 예를 들어, 모든 축(x, y, z)에서의 이동 정보가 이동 중지 (0)을 포함하고, 모든 축(x, y, z)의 회전 정보가 미회전 (0)을 포함한다면, 그리퍼(120)가 그립 대상 객체와 그립 가능 거리 내에 위치함을 의미하므로 전자 장치(100)는 그리퍼(120)의 이동 및 회전을 중지시키고 그립 대상 객체에 대한 그립을 수행하도록 그리퍼(120)를 제어할 수 있다.
다른 예로, 전자 장치(100)는 S630 단계에서 획득된 이동 정보와 회전 정보 중(예: x, y, z 축 각각에 대응되는 이동, 회전 방향 정보 6 개 중)에서 하나라도 그리퍼(120)의 이동 또는 회전을 나타내는 정보가 획득되면(S640: N), S630 단계에서 획득된 3축 각각에 대응되는 이동 정보 및 회전 정보에 기초하여 그리퍼(120)를 이동 및 회전시킬 수 있다(S650). 예를 들어, 이동 정보가 이동 중지 (0)을 포함하지 않거나, 회전 정보가 미회전 (0)을 포함하지 않는다면, 그리퍼(120)가 그립 대상 객체와 그립 가능 거리 내에 위치하지 않음을 의미하므로 전자 장치(100)는 그리퍼(120)의 이동 및 회전시켜 그립 대상 객체와 그립 가능 거리 내에 위치시킬 수 있다.
S650 단계 이후에 S630 단계와 S640 단계는 반복적으로 수행될 수 있다.
<Iteration 1 > 단계
예를 들어, 전자 장치(100)는 t+1시점에서 획득된 이미지로부터 획득된 이동 정보 및 회전 정보에 따라 이동 및 회전된 그리퍼(120)의 현 상태를 포함하는 적어도 하나의 이미지를 획득하며(t+2), 이를 신경망 모델(10)에 입력하여 이동 정보 및 회전 정보를 획득할 수 있다(S630). 이어서, Iteration 1에서 획득된 이동 정보가 이동 중지 (0)를 포함하고, 회전 정보가 미회전(0)을 포함하면(S640: Y), 그리퍼(120)의 움직임을 중지시키고 그립 대상 객체에 대한 그립을 수행할 수 있다.
다른 예로, Iteration 1에서 획득된 이동 정보와 회전 정보 중(예: x, y, z 각 축에 대응되는 이동, 회전 방향 정보 6 개 중)에서 하나라도 그리퍼(120)의 이동 또는 회전을 나타내는 정보가 획득되면(S640: N), 전자 장치(100)는 Iteration 1에서 획득된 이동 정보 및 회전 정보(즉, t+2 시점에서 획득된 적어도 하나의 이미지에 기초하여 획득된 이동 정보 및 회전 정보)에 기초하여 그리퍼(120)를 이동 및 회전시킬 수 있다.
이어서, 전자 장치(100)는 <Iteration 2> 단계 즉, S630 단계와 S640 단계를 반복적으로 수행할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치(100)는 이동 정보 및 회전 정보에 기초하여 그리퍼(120)가 기 설정된 동작을 반복하는 것으로 식별되면, 그립 대상 객체에 대한 그립 동작을 수행하도록 그리퍼(120)를 제어할 수도 있다. 예를 들어, 전자 장치(100)는 Iteration 1 단계 및 Iteration 2 단계 각각에서 획득된 이동 정보에 기초하여 그리퍼(120)가 그립 대상 객체에 인접한 상태에서 상하 이동, 좌우 이동 또는, 전후진 이동만을 교차하여 수행 중인 것으로 식별되면, 그리퍼(120)가 그립 대상 객체를 그립할 수 있는 거리에 위치하는 것으로 판단하고 그랩 대상 객체를 그립하도록 제어할 수 있다.
다른 예로, 전자 장치(100)는 Iteration 1 단계 및 Iteration 2 단계 각각에서 획득된 회전 정보에 기초하여 그리퍼(120)가 그립 대상 객체에 인접한 상태에서 x축 기준으로 시계 및 반시계 회전, y축 기준으로 시계 및 반시계 회전 또는, z축 기준으로 시계 및 반시계 회전만을 교차하여 수행 중인 것으로 식별되면, 그리퍼(120)가 그립 대상 객체를 그립할 수 있는 거리에 위치하는 것으로 판단하고 그랩 대상 객체를 그립하도록 제어할 수 있다.
또한, 이동 정보 및 회전 정보에 기초하여 그리퍼(120)가 그립 대상 객체에 대한 그립 동작을 수행하도록 그리퍼(120)를 제어하는 단계를 더 포함하며, 이동 정보는 이동 중지에 대응되며, 회전 정보는 미회전에 대응될 수 있다.
또한, 신경망 모델로부터 출력되는 이동 정보는, x축 이동 정보, y축 이동 정보 및 z축 이동 정보를 포함하며, x축 이동 정보는, 그리퍼(120)의 x축 방향으로의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고, y축 이동 정보는, 그리퍼(120)의 y축 방향으로의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고, z축 이동 정보는, 그리퍼(120)의 z축 방향으로의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함할 수 있다.
또한, 신경망 모델로부터 출력되는 회전 정보는, x축 회전 정보, y축 회전 정보 및 z축 회전 정보를 포함하며, x축 회전 정보는, 그리퍼(120)의 x축 기준 시계 방향 회전, x축 기준 반시계 방향 회전 또는 x축 기준 미회전 중 하나를 포함하고, y축 회전 정보는, 그리퍼(120)의 y축 기준 시계 방향 회전, y축 기준 반시계 방향 회전 또는 y축 기준 미회전 중 하나를 포함하고, z축 회전 정보는, 그리퍼(120)의 z축 기준 시계 방향 회전, z축 기준 반시계 방향 회전 또는 z축 기준 미회전 중 하나를 포함할 수 있다.
또한, 획득된 이동 정보에 기초하여 그리퍼(120)가 기설정된 동작을 반복하는 것으로 식별되면, 그립 대상 객체에 대한 그립 동작을 수행하도록 그리퍼(120)를 제어하는 단계를 더 포함할 수 있다.
또한, 적어도 하나의 이미지는, 제1 및 제2 이미지를 포함하며, 이동 정보 및 회전 정보를 획득하는 단계는, 제1 및 제2 이미지를 신경망 모델에 입력하여 제1 이동 정보 및 제1 회전 정보를 획득하는 단계를 포함하고, 그리퍼(120)를 제어하는 단계는, 제1 이동 정보 및 제1 회전 정보에 기초하여 그리퍼(120)를 제어하는 단계를 포함하며, 제1 이동 정보 및 제1 회전 정보에 기초하여 그리퍼(120)가 제어되는 동안 제3 및 제4 이미지가 카메라로부터 수신되면, 제3 및 제4 이미지를 신경망 모델에 입력하여 제2 이동 정보 및 제2 회전 정보를 획득하는 단계 및 제2 이동 정보 및 제2 회전 정보에 기초하여 그리퍼(120)를 제어하는 단계를 더 포함할 수 있다.
또한, 신경망 모델은, 적어도 하나의 이미지에 기초하여 뎁스 맵(Depth map)을 획득하고, 획득된 뎁스 맵에 기초하여 이동 정보 및 회전 정보를 출력할 수 있다.
또한, 신경망 모델은, 복수의 훈련 이미지 각각에 포함된 그리퍼(120)의 적어도 일부 및 외부 객체의 적어도 일부 간의 거리 정보에 기초하여 그리퍼(120)를 외부 객체에 인접하게 위치시키기 위한 이동 정보 및 회전 정보를 출력하도록 학습된 모델일 수 있다.
또한, 전자 장치(100)는, 그립 대상 객체를 상이한 각도에서 촬영하도록 이격 배치되는 복수의 카메라(110)를 포함할 수 있다.
도 7은 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 전자 장치(100)는 신경망 모델에 적어도 하나의 이미지를 입력하는 것에 기초하여 그리퍼(120)의 이동 정보 및 회전 정보를 획득할 수 있다(S710). 전자 장치(100)는 도 6의 S610 동작에서 설명한 것과 실질적으로 유사한 방식으로 이동 정보 및 회전 정보를 획득할 수 있다.
전자 장치(100)는 n 방향에 대응되는 이동 정보를 획득할 수 있다. 예를 들어, 전자 장치(100)는 제1 방향(예: x축 방향), 제2 방향(예, y축 방향) 및 제3 방향(예: z축 방향)의 이동 정보를 획득할 수 있다. 다른 예로, 전자 장치(100)는 서로 다른 방향(예: x축 방향만, y축 방향만, x축 방향 및 z축 방향 등)에 대한 이동 정보를 획득할 수 있다. 또한, 전자 장치(100)는 m 방향에 대응되는 회전 정보를 획득할 수 있다. 예를 들어, 전자 장치(100)는 제1 축(예: x축), 제2 축(예, y축) 및 제3 축(예: z축)에 대응되는 회전 정보를 획득할 수 있다. 다른 예로, 전자 장치(100)는 서로 다른 방향(예: x축 방향만, y축 방향만, x축 방향 및 z축 방향 등)에 대응되는 회전 정보를 획득할 수 있다.
도 7을 참조하면, 전자 장치(100)는 획득된 이동 정보 및 회전 정보에 기초하여 그리퍼(120)를 기 설정된 방식(in a predetermined manner)으로 이동 또는 회전시킬 수 있다(S720).
전자 장치(100)는 기 설정된 양만큼 그리퍼(120)를 이동시키거나, 기 설정된 양만큼 그리퍼(120)를 회전시켜 그리퍼(120)를 기 설정된 방식으로 이동 또는 회전시킬 수 있다.
이동 정보는 기 설정된 양만큼 매핑될 수 있다. 예를 들어, 그리퍼(120)가 제1 방향으로 이동될 것임이 식별된 이동 정보는 제1 방향으로 제1 기 설정된 양에 매핑될 수 있다. 또한, 그리퍼(120)가 제2 방향으로 이동될 것임이 식별된 이동 정보는 제2 방향으로 제2 기 설정된 양에 매핑될 수 있다. 또한, 그리퍼(120)가 제3 방향으로 이동될 것임이 식별된 이동 정보는 제3 방향으로 제3 기 설정된 양에 매핑될 수 있다. 다른 예로, 그리퍼(120)가 제1 방향으로 회전될 것임이 식별된 이동 정보는 제1 방향으로 제1 기 설정된 양에 매핑될 수 있다. 또한, 그리퍼(120)가 제2 방향으로 회전될 것임이 식별된 이동 정보는 제2 방향으로 제2 기 설정된 양에 매핑될 수 있다. 또한, 그리퍼(120)가 제3 방향으로 회전될 것임이 식별된 이동 정보는 제3 방향으로 제3 기 설정된 양에 매핑될 수 있다.
제1 기 기설정된 양, 제2 기 설정된 양 및 제3 기 설정된 양은 동일할 수 있다. 다른 예로, 제1 기 설정된 양, 제2 기 설정된 양 및 제3 기 설정된 양은 상이할 수도 있다. 또 다른 예로, 제1 기 설정된 양, 제2 기 설정된 양 및 제3 기 설정된 양 중 적어도 하나는 나머지와 상이할 수도 있음은 물론이다.
전자 장치(100)는 기 설정된 타임 프레임(timeframe) 동안 그리퍼(120)를 이동시키거나, 기 설정된 타임 프레임 동안 그리퍼(120)를 회전시켜 그리퍼(120)를 이동 또는 회전시킬 수 있다. 예를 들어, 기 설정된 타임 프레임은 기 설정된 시간 값(time value)일 수 있다.
이동 정보는 기 설정된 시간 프레임에 매핑될 수 있다. 예를 들어, 그리퍼(120)가 제1 방향으로 이동될 것임이 식별된 이동 정보는 제1 방향으로 제1 기 설정된 시간 프레임에 매핑될 수 있다. 또한, 그리퍼(120)가 제2 방향으로 이동될 것임이 식별된 이동 정보는 제2 방향으로 제2 기 설정된 시간 프레임에 매핑될 수 있다. 또한, 그리퍼(120)가 제3 방향으로 이동될 것임이 식별된 이동 정보는 제3 방향으로 제3 기 설정된 시간 프레임에 매핑될 수 있다. 다른 예로, 그리퍼(120)가 제1 방향으로 회전될 것임이 식별된 이동 정보는 제1 방향으로 제1 기 설정된 시간 프레임에 매핑될 수 있다. 또한, 그리퍼(120)가 제2 방향으로 회전될 것임이 식별된 이동 정보는 제2 방향으로 제2 기 설정된 시간 프레임에 매핑될 수 있다. 또한, 그리퍼(120)가 제3 방향으로 회전될 것임이 식별된 이동 정보는 제3 방향으로 제3 기 설정된 시간 프레임에 매핑될 수 있다.
제1 기 기설정된 시간 프레임, 제2 기 설정된 시간 프레임 및 제3 기 설정된 시간 프레임은 동일할 수 있다. 다른 예로, 제1 기 설정된 시간 프레임, 제2 기 설정된 시간 프레임 및 제3 기 설정된 시간 프레임은 상이할 수도 있다. 또 다른 예로, 제1 기 설정된 시간 프레임, 제2 기 설정된 시간 프레임 및 제3 기 설정된 시간 프레임 중 적어도 하나는 나머지와 상이할 수도 있음은 물론이다. 이와 같이, 전자 장치(100))(예: 프로세서(140))는 획득된 이동 정보 및 회전 정보에 기초하여 그리퍼(120)를 기 설정된 방식으로 이동 및 / 또는 회전시킬 수 있다.
따라서, 본 개시의 일 실시 예에서는 그립 대상 객체까지의 특정 거리를 계산할 필요성을 완화시킴으로써, 더 적은 계산 자원 및 / 또는 더 적은 소비를 소모하는 방식으로 그리퍼(120)의 이동 및 / 또는 회전을 허용할 수 있다. 관련 기술 시스템에 비해 덜 정확한 하드웨어로도 소기의 목적을 달성할 수 있다.
상술한 바와 같이, 이동 정보는 이동 방향을 식별할 수 있으며, 기 설정된 양 또는 기 설정된 시간 프레임에 매핑될 수 있다. 또한, 전술한 바와 같이 회전 정보는 회전 방향을 식별할 수 있으며, 기 설정된 양 또는 기 설정된 시간 프레임에 매핑될 수 있다.
다만, 다른 실시 예에서 이동 정보는, 이동 방향 및 이동 가중치를 식별할 수 있다. 또한, 이동 가중치는 기 설정된 양이 매핑될 수 있다. 예를 들어, 제1 값(예를 들어, 낮음)의 제1 이동 가중치는 제1 양(예를 들어, 적은 양)이 매핑될 수 있고, 제2 값(예를 들어, 중간)의 제2 이동 가중치는 제2 양(예를 들어, 적은 양보다 많은 중간 양)이 매핑될 수 있다. 유사하게, 회전 정보는 회전 방향 및 회전 가중치를 식별할 수 있다. 또한, 회전 가중치는 기 설정된 양이 매핑될 수 있다. 예를 들어, 제1 값(예를 들어, 낮음)의 제1 회전 가중치는 제1 양(예를 들어, 적은 양)에 매핑될 수 있고, 제2 값(예를 들어, 중간)의 제2 이동 가중치는 제2 양(예를 들어, 적은 양보다 많은 중간 양)이 매핑될 수 있다. 따라서, 가중치는 그립 대상 객체까지의 실제 특정 거리를 지정하지 않는 구성일 수 있다. 이와 같이, 전자 장치(100)는 전자 장치(100)가 그리퍼(120)를 이동 또는 회전시키는 상황에 있어서, 가중치를 이용하지 않고 이동 정보 및 회전 정보를 이동하여 그리퍼(120)를 그립 대상 객체에 인접하게 위치시키는 상황에 비하여, 적은 반복 회수로 그리퍼(120)를 그립 대상 객체에 인접하게 위치시킬 수 있다.
도 8은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다. 도 8을 참조하면, 전자 장치(800)는 센서(810), 엔드 이펙터(820), 메모리(830) 및 프로세서(840)를 포함할 수 있다.
센서(810)는 물체를 감지하도록 구성된 장치일 수 있다. 예를 들어, 센서(810)는 카메라, 밀리미터파 센서, 레이저 센서, LIDAR(Light Detection and Ranging) 센서, 초음파 센서, 열 센서, 광 센서 등을 포함할 수 있다. 센서(810)는 물체를 감지하도록 구성될 수 있다.
엔드 이펙터(820)는 전자 장치(800)가 오브젝트와 상호 작용하도록 하는 장치일 수 있다. 예를 들어, 엔드 이펙터(820)는 그리퍼, 힘-토크 센서, 재료 제거 도구, 용접 토치, 충돌 센서, 도구 교환기, 센서 등일 수 있다.
메모리(830)는 명령어를 저장핟도록 구성된 메모리 장치일 수 있다. 예를 들어, 메모리(830)는 도 1의 메모리(130)와 관련하여 언급된 유사한 장치일 수 있다.
프로세서(840)는 전자 장치(800)의 전반적인 동작을 제어하는 장치이다. 예를 들어, 프로세서(840)는 도 1의 프로세서(140)와 관련하여 언급된 유사한 장치일 수 있다.
프로세서(840)는 센서(810)로부터 센서 정보를 획득할 수 있고, 센서 정보에 기초하여 본 개시에 설명된 바와 같이 이동 정보 및 / 또는 회전 정보를 획득할 수 있다. 또한, 프로세서(840)는 획득된 이동 정보 및 / 또는 회전 정보에 기초하여 본 개시에서 설명된 바와 같이 엔드 이펙터(820)가 오브젝트에 인접하도록 엔드 이펙터(820)를 기 설정된 방식으로 이동 또는 회전시킬 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 전자 장치(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자 장치(100)에서의 처리 동작을 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
Claims (15)
- 카메라;그립 대상 객체를 그립하도록 구성된 그리퍼(gripper);신경망 모델이 저장된 메모리;상기 카메라에 의해 캡쳐된 적어도 하나의 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 상기 그리퍼의 이동 정보 및 회전 정보를 획득하고,상기 이동 정보 및 회전 정보에 기초하여 상기 그리퍼를 제어하는 프로세서;를 포함하며,상기 적어도 하나의 이미지는, 상기 그리퍼의 적어도 일부 및 상기 그립 대상 객체의 적어도 일부를 포함하고,상기 신경망 모델은,상기 적어도 하나의 이미지에 기초하여 상기 그리퍼를 상기 그립 대상 객체에 인접하게 위치시키기 위한 상기 이동 정보 및 상기 회전 정보를 출력하며,상기 이동 정보는,상기 그리퍼의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고,상기 회전 정보는,상기 이동 정보 및 상기 그리퍼의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함하는, 전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 이동 중지에 대응되는 상기 이동 정보 및 상기 미회전에 대응되는 상기 회전 정보에 기초하여 상기 그리퍼가 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어하는, 전자 장치.
- 제1항에 있어서,상기 신경망 모델로부터 출력되는 상기 이동 정보는,x축 이동 정보, y축 이동 정보 및 z축 이동 정보를 포함하며,상기 x축 이동 정보는, 상기 그리퍼의 x축 방향으로의 제1 방향 이동, x축 방향으로의 제2 방향 이동 또는 x축 방향의 이동 중지 중 하나를 포함하고,상기 y축 이동 정보는, 상기 그리퍼의 y축 방향으로의 제1 방향 이동, y축 방향으로의 제2 방향 이동 또는 y축 방향의 이동 중지 중 하나를 포함하고,상기 z축 이동 정보는, 상기 그리퍼의 z축 방향으로의 제1 방향 이동, z축 방향으로의 제2 방향 이동 또는 z축 방향의 이동 중지 중 하나를 포함하는, 전자 장치.
- 제1항에 있어서,상기 신경망 모델로부터 출력되는 상기 회전 정보는,x축 회전 정보, y축 회전 정보 및 z축 회전 정보를 포함하며,상기 x축 회전 정보는, 상기 그리퍼의 x축 기준 시계 방향 회전, x축 기준 반시계 방향 회전 또는 x축 기준 미회전 중 하나를 포함하고,상기 y축 회전 정보는, 상기 그리퍼의 y축 기준 시계 방향 회전, y축 기준 반시계 방향 회전 또는 y축 기준 미회전 중 하나를 포함하고,상기 z축 회전 정보는, 상기 그리퍼의 z축 기준 시계 방향 회전, z축 기준 반시계 방향 회전 또는 z축 기준 미회전 중 하나를 포함하는, 전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 이동 정보에 기초하여 상기 그리퍼가 기설정된 동작을 반복하는 것으로 식별되면, 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어하는, 전자 장치.
- 제1항에 있어서,상기 적어도 하나의 이미지는,제1 및 제2 이미지를 포함하며,상기 프로세서는,상기 제1 및 제2 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제1 이동 정보 및 제1 회전 정보를 획득하고,상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼를 제어하며,상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼가 제어되는 동안 상기 카메라에 의해 캡쳐된 제3 및 제4 이미지에 기초하여 상기 제3 및 제4 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제2 이동 정보 및 제2 회전 정보를 획득하고,상기 제2 이동 정보 및 상기 제2 회전 정보에 기초하여 상기 그리퍼를 제어하는, 전자 장치.
- 제1항에 있어서,상기 신경망 모델은,상기 적어도 하나의 이미지에 기초하여 뎁스 맵(Depth map)을 획득하고,상기 뎁스 맵에 기초하여 상기 이동 정보 및 상기 회전 정보를 출력하는, 전자 장치.
- 제1항에 있어서,상기 신경망 모델은,복수의 훈련 이미지 각각에 포함된 상기 그리퍼의 적어도 일부 및 외부 객체의 적어도 일부 간의 거리 정보에 기초하여 상기 그리퍼를 상기 외부 객체에 인접하게 위치시키기 위한 상기 이동 정보 및 상기 회전 정보를 출력하도록 학습된, 전자 장치.
- 제1항에 있어서,상기 카메라는, 복수의 카메라를 포함하며,상기 복수의 카메라는,각각이 이격되어 있으며, 상기 그립 대상 객체를 상이한 각도에서 촬영하도록 구성되는, 전자 장치.
- 신경망 모델을 포함하는 전자 장치의 제어 방법에 있어서,적어도 하나의 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 그리퍼의 이동 정보 및 회전 정보를 획득하는 단계;상기 이동 정보 및 상기 회전 정보에 기초하여 상기 그리퍼를 제어하는 단계;를 포함하고,상기 적어도 하나의 이미지는,상기 그리퍼의 적어도 일부 및 그립 대상 객체의 적어도 일부를 포함하고,상기 신경망 모델은,상기 적어도 하나의 이미지에 기초하여 상기 그리퍼를 상기 그립 대상 객체에 인접하게 위치시키기 위한 상기 이동 정보 및 상기 회전 정보를 출력하며,상기 이동 정보는,상기 그리퍼의 제1 방향 이동, 제2 방향 이동 또는 이동 중지 중 하나를 포함하고,상기 회전 정보는,상기 그리퍼의 제1 방향 회전, 제2 방향 회전 또는 미회전 중 하나를 포함하는 상기 회전 정보를 출력하는, 제어 방법.
- 제10항에 있어서,상기 이동 중지에 대응되는 상기 이동 정보 및 상기 미회전에 대응되는 상기 회전 정보에 기초하여 상기 그리퍼가 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어하는 단계;를 더 포함하는, 제어 방법.
- 제10항에 있어서,상기 신경망 모델로부터 출력되는 상기 이동 정보는,x축 이동 정보, y축 이동 정보 및 z축 이동 정보를 포함하며,상기 x축 이동 정보는, 상기 그리퍼의 x축 방향으로의 제1 방향 이동, x축 방향으로의 제2 방향 이동 또는 x축 방향의 이동 중지 중 하나를 포함하고,상기 y축 이동 정보는, 상기 그리퍼의 y축 방향으로의 제1 방향 이동, y축 방향으로의 제2 방향 이동 또는 y축 방향의 이동 중지 중 하나를 포함하고,상기 z축 이동 정보는, 상기 그리퍼의 z축 방향으로의 제1 방향 이동, z축 방향으로의 제2 방향 이동 또는 z축 방향의 이동 중지 중 하나를 포함하는, 제어 방법.
- 제10항에 있어서,상기 신경망 모델로부터 출력되는 상기 회전 정보는,x축 회전 정보, y축 회전 정보 및 z축 회전 정보를 포함하며,상기 x축 회전 정보는, 상기 그리퍼의 x축 기준 시계 방향 회전, x축 기준 반시계 방향 회전 또는 x축 기준 미회전 중 하나를 포함하고,상기 y축 회전 정보는, 상기 그리퍼의 y축 기준 시계 방향 회전, y축 기준 반시계 방향 회전 또는 y축 기준 미회전 중 하나를 포함하고,상기 z축 회전 정보는, 상기 그리퍼의 z축 기준 시계 방향 회전, z축 기준 반시계 방향 회전 또는 z축 기준 미회전 중 하나를 포함하는, 제어 방법.
- 제10항에 있어서,상기 이동 정보에 기초하여 상기 그리퍼가 기설정된 동작을 반복하는 것으로 식별되면, 상기 그립 대상 객체를 그립하도록 상기 그리퍼를 제어하는 단계;를 더 포함하는, 제어 방법.
- 제10항에 있어서,상기 적어도 하나의 이미지는,제1 및 제2 이미지를 포함하며,상기 이동 정보 및 회전 정보를 획득하는 단계는,상기 제1 및 제2 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제1 이동 정보 및 제1 회전 정보를 획득하는 단계;를 포함하고,상기 그리퍼를 제어하는 단계는,상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼를 제어하는 단계;를 포함하며,상기 제1 이동 정보 및 상기 제1 회전 정보에 기초하여 상기 그리퍼가 제어되는 동안 상기 카메라에 의해 캡쳐된 제3 및 제4 이미지에 기초하여 상기 제3 및 제4 이미지를 상기 신경망 모델에 입력하여 상기 신경망 모델로부터 제2 이동 정보 및 제2 회전 정보를 획득하는 단계; 및상기 제2 이동 정보 및 상기 제2 회전 정보에 기초하여 상기 그리퍼를 제어하는 단계;를 더 포함하는, 제어 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21870570.5A EP4044125A4 (en) | 2020-10-20 | 2021-10-20 | ELECTRONIC DEVICE AND ITS CONTROL METHOD |
CN202180051471.3A CN116097315A (zh) | 2020-10-20 | 2021-10-20 | 电子设备及其控制方法 |
US17/744,263 US20220270198A1 (en) | 2020-10-20 | 2022-05-13 | Electronic apparatus and control method thereof |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0136308 | 2020-10-20 | ||
KR20200136308 | 2020-10-20 | ||
KR1020200155351A KR20220052241A (ko) | 2020-10-20 | 2020-11-19 | 전자 장치 및 그 제어 방법 |
KR10-2020-0155351 | 2020-11-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/744,263 Continuation US20220270198A1 (en) | 2020-10-20 | 2022-05-13 | Electronic apparatus and control method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022086157A1 true WO2022086157A1 (ko) | 2022-04-28 |
Family
ID=81290872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/014675 WO2022086157A1 (ko) | 2020-10-20 | 2021-10-20 | 전자 장치 및 그 제어 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220270198A1 (ko) |
EP (1) | EP4044125A4 (ko) |
CN (1) | CN116097315A (ko) |
WO (1) | WO2022086157A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11772272B2 (en) * | 2021-03-16 | 2023-10-03 | Google Llc | System(s) and method(s) of using imitation learning in training and refining robotic control policies |
JP2022162857A (ja) * | 2021-04-13 | 2022-10-25 | 株式会社デンソーウェーブ | 機械学習装置及びロボットシステム |
US11571812B2 (en) * | 2021-04-16 | 2023-02-07 | Dexterity, Inc. | Robot with linear 7th axis |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009083095A (ja) * | 2007-09-29 | 2009-04-23 | Ihi Corp | ロボット装置の制御方法及びロボット装置 |
JP2011507714A (ja) * | 2007-12-27 | 2011-03-10 | ライカ ジオシステムズ アクチェンゲゼルシャフト | 空間内において少なくとも1つのオブジェクトを最終姿勢に高精度で位置決めするための方法およびシステム |
KR20180114217A (ko) * | 2016-03-03 | 2018-10-17 | 구글 엘엘씨 | 로봇 파지용 심층 기계 학습 방법 및 장치 |
JP2020082322A (ja) * | 2018-11-30 | 2020-06-04 | 株式会社クロスコンパス | 機械学習装置、機械学習システム、データ処理システム及び機械学習方法 |
JP2020090143A (ja) * | 2018-12-04 | 2020-06-11 | 三菱電機株式会社 | 航法装置、航法パラメータ計算方法およびプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109559341B (zh) * | 2017-09-27 | 2021-03-26 | 北京猎户星空科技有限公司 | 一种机械臂抓取方案的生成方法及装置 |
CN110298879B (zh) * | 2018-03-21 | 2021-08-27 | 北京猎户星空科技有限公司 | 一种待抓取物体位姿的确定方法、装置及电子设备 |
US11833681B2 (en) * | 2018-08-24 | 2023-12-05 | Nvidia Corporation | Robotic control system |
JP7047726B2 (ja) * | 2018-11-27 | 2022-04-05 | トヨタ自動車株式会社 | 把持ロボットおよび把持ロボットの制御プログラム |
EP3670106B1 (en) * | 2018-12-18 | 2024-05-15 | Siemens Aktiengesellschaft | Task-specific robot grasping system and method |
US11312012B2 (en) * | 2019-01-01 | 2022-04-26 | Giant Ai, Inc. | Software compensated robotics |
CN109531584A (zh) * | 2019-01-31 | 2019-03-29 | 北京无线电测量研究所 | 一种基于深度学习的机械臂控制方法和装置 |
-
2021
- 2021-10-20 CN CN202180051471.3A patent/CN116097315A/zh active Pending
- 2021-10-20 EP EP21870570.5A patent/EP4044125A4/en active Pending
- 2021-10-20 WO PCT/KR2021/014675 patent/WO2022086157A1/ko active Application Filing
-
2022
- 2022-05-13 US US17/744,263 patent/US20220270198A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009083095A (ja) * | 2007-09-29 | 2009-04-23 | Ihi Corp | ロボット装置の制御方法及びロボット装置 |
JP2011507714A (ja) * | 2007-12-27 | 2011-03-10 | ライカ ジオシステムズ アクチェンゲゼルシャフト | 空間内において少なくとも1つのオブジェクトを最終姿勢に高精度で位置決めするための方法およびシステム |
KR20180114217A (ko) * | 2016-03-03 | 2018-10-17 | 구글 엘엘씨 | 로봇 파지용 심층 기계 학습 방법 및 장치 |
JP2020082322A (ja) * | 2018-11-30 | 2020-06-04 | 株式会社クロスコンパス | 機械学習装置、機械学習システム、データ処理システム及び機械学習方法 |
JP2020090143A (ja) * | 2018-12-04 | 2020-06-11 | 三菱電機株式会社 | 航法装置、航法パラメータ計算方法およびプログラム |
Non-Patent Citations (1)
Title |
---|
See also references of EP4044125A4 * |
Also Published As
Publication number | Publication date |
---|---|
EP4044125A1 (en) | 2022-08-17 |
US20220270198A1 (en) | 2022-08-25 |
CN116097315A (zh) | 2023-05-09 |
EP4044125A4 (en) | 2023-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022086157A1 (ko) | 전자 장치 및 그 제어 방법 | |
WO2019151735A1 (en) | Vision inspection management method and vision inspection system | |
WO2019216578A1 (en) | Method and apparatus for executing cleaning operation | |
WO2021149980A1 (ko) | 디스플레이 장치 및 그 제어방법 | |
WO2020241930A1 (ko) | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 | |
WO2020050636A1 (ko) | 사용자 의도 기반 제스처 인식 방법 및 장치 | |
WO2020262746A1 (ko) | 인공지능 기반의 세탁 코스 추천 장치 및 그 제어 방법 | |
WO2020230931A1 (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 | |
WO2020153810A1 (en) | Method of controlling device and electronic device | |
WO2016182090A1 (ko) | 안경형 단말기 및 이의 제어방법 | |
WO2019098567A1 (ko) | 전자 장치의 이미지 촬영 방법 및 그 전자 장치 | |
EP3773111A1 (en) | Method and apparatus for executing cleaning operation | |
WO2020251100A1 (ko) | 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇 | |
WO2022108001A1 (ko) | 카메라 시야(fov) 가장자리에서 움직임을 인식하여 전자 장치를 제어하는 방법 및 그 전자 장치 | |
EP3545685A1 (en) | Method and apparatus for filtering video | |
WO2019245320A1 (ko) | 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법 | |
WO2024058616A1 (en) | Synergies between pick and place: task-aware grasp estimation | |
WO2023239035A1 (ko) | 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법 | |
WO2023128446A1 (ko) | 손의 관절에 관한 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 | |
WO2019004531A1 (ko) | 사용자 신호 처리 방법 및 이러한 방법을 수행하는 장치 | |
WO2022102945A1 (ko) | 전자장치 및 그 제어방법 | |
WO2023068511A1 (ko) | 실시간 사람 감지 및 추적 시스템을 위한 전자 장치 및 그 제어 방법 | |
WO2023063570A1 (ko) | 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법 | |
WO2024147486A1 (ko) | 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 | |
WO2024191238A1 (en) | Apparatus and method for controlling robotic manipulators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2021870570 Country of ref document: EP Effective date: 20220331 |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21870570 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202347025336 Country of ref document: IN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |