KR20230032852A - Robot and controlling method of robot - Google Patents
Robot and controlling method of robot Download PDFInfo
- Publication number
- KR20230032852A KR20230032852A KR1020220062330A KR20220062330A KR20230032852A KR 20230032852 A KR20230032852 A KR 20230032852A KR 1020220062330 A KR1020220062330 A KR 1020220062330A KR 20220062330 A KR20220062330 A KR 20220062330A KR 20230032852 A KR20230032852 A KR 20230032852A
- Authority
- KR
- South Korea
- Prior art keywords
- points
- manipulator
- edge
- pose
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000011156 evaluation Methods 0.000 claims abstract description 38
- 239000013598 vector Substances 0.000 claims description 85
- 230000005484 gravity Effects 0.000 claims description 8
- 210000000746 body region Anatomy 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- 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
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- 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
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
Abstract
Description
본 개시는 로봇 및 로봇 의 제어 방법에 관한 것으로서, 구체적으로는 매니퓰레이터를 이용하여 오브젝트를 파지할 수 있는 로봇 및 로봇의 제어 방법에 관한 것이다.The present disclosure relates to a robot and a method for controlling the robot, and more specifically, to a robot capable of gripping an object using a manipulator and a method for controlling the robot.
근래에는 로봇 기술의 발달에 힘입어 청소 로봇, 서비스 로봇, 산업용 로봇 등 다양한 유형의 로봇이 이용되고 있으며, 특히 최근에는 사용자(즉, 사람)의 팔의 움직임과 같이 움직이는 로봇 암(robot arm) 즉, 매니퓰레이터(manipulator)에 대한 연구가 활발히 진행되고 있다. 로봇의 매니퓰레이터를 이용하여 오브젝트를 파지하는 것에 관련된 기술은 매니퓰레이터에 관련된 기술 분야에 있어서도 가장 기본적이면서도 활용도가 높은 기술이라고 할 수 있다. Recently, thanks to the development of robot technology, various types of robots such as cleaning robots, service robots, and industrial robots are being used. , research on manipulators is being actively conducted. A technology related to gripping an object using a robot manipulator can be said to be the most basic and highly utilized technology in a technology field related to a manipulator.
매니퓰레이터를 이용하여 오브젝트를 파지함에 있어서, 종래 기술은 오브젝트의 파지율을 높이기 위해, 카메라를 이용하여 오브젝트를 360도로 촬영함으로써 오브젝트에 대한 이미지를 획득하거나, 딥 러닝(deep learning) 기술에 의존하여 오브젝트에 대한 이미지를 분석하는 방법 등을 이용하고 있는 실정이다.In gripping an object using a manipulator, the prior art acquires an image of the object by photographing the object at 360 degrees using a camera, or relies on deep learning technology to increase the gripping rate of the object. Currently, a method for analyzing an image is being used.
그런데 종래 기술에 따라 카메라를 이용하여 오브젝트를 360도로 촬영하는 경우, 오브젝트에 대한 이미지를 획득함에 있어서 많은 시간이 소요될 수밖에 없다는 한계가 있다. However, when an object is photographed at 360 degrees using a camera according to the prior art, there is a limit in that it takes a lot of time to acquire an image of the object.
한편, 딥 러닝 기술에 의존하여 오브젝트에 대한 이미지를 분석하는 방법을 이용하는 경우, 이미지를 딥 러닝으로 분석하는 과정에 있어 많은 시간이 소요될 뿐만 아니라, 신경망 모델의 학습을 위한 다량의 학습 데이터가 필요하며, 또한 GPU(graphics processing unit)와 같은 고성능의 하드웨어가 필요하다는 한계가 지적되고 있다.On the other hand, in the case of using a method of analyzing an image of an object relying on deep learning technology, not only does it take a lot of time in the process of analyzing the image by deep learning, but also requires a large amount of training data for learning the neural network model. In addition, the limitation that high-performance hardware such as GPU (graphics processing unit) is required is pointed out.
본 개시는 상술한 바와 같은 종래 기술의 한계를 극복하기 위한 것으로서, 본 개시의 목적은 오브젝트에 대한 이미지를 획득하고, 획득된 이미지를 기하학적으로 분석함으로써, 안정적이고도 효율적으로 오브젝트를 파지할 수 있는 로봇 및 로봇의 제어 방법을 제공함에 있다. The present disclosure is to overcome the limitations of the prior art as described above, and an object of the present disclosure is to acquire an image of an object and geometrically analyze the obtained image, thereby enabling a robot capable of stably and efficiently gripping an object. And to provide a control method of the robot.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 로봇은 카메라, 매니퓰레이터(manipulator), 상기 매니퓰레이터의 동작을 제어하기 위한 복수의 모터, 적어도 하나의 인스트럭션(instructions)을 저장하는 메모리 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 카메라를 통해 오브젝트에 대한 이미지를 획득하고, 상기 획득된 이미지에 기초하여 상기 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드 정보(point cloud information)를 획득하며, 상기 복수의 포인트 중 상기 오브젝트의 엣지(edge)를 나타내는 복수의 엣지 포인트 및 상기 오브젝트의 엣지를 제외한 바디(body) 영역을 나타내는 복수의 바디 포인트를 식별하고, 상기 매니퓰레이터가 상기 복수의 엣지 포인트 및 상기 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 상기 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득하며, 상기 복수의 포즈 값에 따라 상기 매니퓰레이터가 상기 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득하고, 상기 평가 정보에 기초하여 상기 복수의 포즈 값 중 하나의 포즈 값을 식별하고, 상기 식별된 하나의 포즈 값에 기초하여 상기 매니퓰레이터가 동작하도록 상기 복수의 모터를 제어한다. According to an embodiment of the present disclosure for achieving the above object, the robot includes a camera, a manipulator, a plurality of motors for controlling the operation of the manipulator, and a memory for storing at least one instruction. And a processor that executes the at least one instruction, wherein the processor obtains an image of an object through the camera, and point cloud information including a plurality of points representing the object based on the obtained image ( point cloud information) is acquired, and among the plurality of points, a plurality of edge points representing an edge of the object and a plurality of body points representing a body area excluding the edge of the object are identified, and the manipulator acquires a plurality of pose values representing poses when gripping the object using at least some of the plurality of edge points and the plurality of body points as gripping points, and the manipulator according to the plurality of pose values obtains evaluation information indicating stability when holding the object, identifies one pose value among the plurality of pose values based on the evaluation information, and determines that the manipulator operates based on the identified one pose value. Control the plurality of motors to operate.
여기서, 상기 프로세서는 상기 복수의 포인트 별로, 상기 복수의 포인트에서 상기 복수의 포인트를 중심으로 하는 기 설정된 크기의 원 안에 포함된 포인트들의 중심점을 향하는 ZMS(zero moment shift) 벡터를 식별하고, 상기 복수의 포인트 중 상기 ZMS 벡터의 크기가 기 설정된 임계 값 이상인 벡터들에 대응되는 포인트들을 상기 엣지 포인트로 식별하며, 상기 복수의 포인트 중 상기 ZMS 벡터의 크기가 상기 임계 값 미만인 벡터들에 대응되는 포인트들을 상기 바디 포인트로 식별할 수 있다. Here, the processor identifies, for each of the plurality of points, a zero moment shift (ZMS) vector directed from the plurality of points to the center point of points included in a circle having a predetermined size centered on the plurality of points, and Points corresponding to vectors having a size of the ZMS vector greater than or equal to a preset threshold among points of are identified as the edge points, and among the plurality of points, points corresponding to vectors having a size of the ZMS vector less than the threshold are identified. It can be identified as the body point.
여기서, 상기 프로세서는 상기 엣지 포인트로 식별된 하나의 포인트에 대한 ZMS 벡터와 상기 카메라에서 상기 하나의 포인트를 향하는 레이(ray) 벡터 사이의 각도가 기 설정된 임계 각도 이상이면, 상기 하나의 포인트를 상기 바디 포인트로 식별할 수 있다. Here, the processor determines the one point when an angle between a ZMS vector for one point identified as the edge point and a ray vector directed from the camera to the one point is equal to or greater than a preset threshold angle. It can be identified as a body point.
여기서, 상기 프로세서는 상기 매니퓰레이터의 하박 관절을 향하는 방향과 반대 방향을 향하도록 정의된 상기 매니퓰레이터의 z축이 상기 식별된 엣지 포인트에 대한 ZMS 벡터의 방향에 대응되도록 하고, 상기 매니퓰레이터에 포함된 하나의 핑거에서 반대 방향의 다른 핑거를 향하도록 정의된 상기 매니퓰레이터의 y축이 상기 식별된 엣지 포인트의 표면에 수직인 방향에 대응되도록 하기 위한 상기 매니퓰레이터의 포즈를 식별함으로써, 상기 복수의 포즈 값 중 상기 복수의 엣지 포인트에 대응되는 포즈 값들을 획득할 수 있다. Here, the processor causes the z-axis of the manipulator, which is defined to face in a direction opposite to the direction toward the forearm joint of the manipulator, to correspond to the direction of the ZMS vector with respect to the identified edge point, and the one included in the manipulator By identifying the pose of the manipulator so that the y-axis of the manipulator defined from a finger to the other finger in the opposite direction corresponds to a direction perpendicular to the surface of the identified edge point, the plurality of pose values Pose values corresponding to the edge points of can be obtained.
여기서, 상기 프로세서는 상기 z축이 상기 복수의 포인트의 표면에 수직인 방향에 대응되도록 하고, 상기 y축이 상기 복수의 포인트에서 곡률이 가장 큰 방향에 대응되도록 하기 위한 상기 매니퓰레이터의 포즈를 식별함으로써, 상기 복수의 포즈 값 중 상기 복수의 바디 포인트에 대응되는 포즈 값들을 획득할 수 있다. Here, the processor identifies a pose of the manipulator so that the z-axis corresponds to a direction perpendicular to the surface of the plurality of points and the y-axis corresponds to a direction of greatest curvature at the plurality of points. , Among the plurality of pose values, pose values corresponding to the plurality of body points may be obtained.
여기서, 상기 프로세서는 상기 복수의 엣지 포인트에 대응되는 포즈 값들 및 상기 복수의 바디 포인트에 대응되는 포즈 값들의 일부 좌표축을 변경함으로써, 상기 복수의 포즈 값을 증강시킬 수 있다. Here, the processor may augment the plurality of pose values by changing some coordinate axes of pose values corresponding to the plurality of edge points and pose values corresponding to the plurality of body points.
여기서, 상기 평가 정보는 상기 매니퓰레이터에 포함된 두 개의 핑거의 표면에서 수직인 방향과 상기 두 개의 핑거가 상기 오브젝트와 접촉되는 접촉 영역의 표면에서 수직인 방향 사이의 각도에 따라 산출되는 제1 스코어, 상기 접촉 영역에 포함된 포인트의 개수에 따라 산출되는 제2 스코어, 상기 두 개의 핑거 중 하나의 핑거와 상기 접촉 영역 사이의 거리 및 상기 두 개의 핑거 중 다른 하나의 핑거와 상기 접촉 영역 사이의 거리 사이의 차이에 따라 산출되는 제3 스코어 및 상기 적어도 일부 포인트가 상기 오브젝트의 무게 중심에 가까운지 여부에 따라 산출되는 제4 스코어 중 적어도 하나를 포함할 수 있다. Here, the evaluation information is a first score calculated according to an angle between a direction perpendicular to the surface of two fingers included in the manipulator and a direction perpendicular to the surface of a contact area where the two fingers come into contact with the object; A second score calculated according to the number of points included in the contact area, a distance between one of the two fingers and the contact area, and a distance between another one of the two fingers and the contact area It may include at least one of a third score calculated according to the difference between and a fourth score calculated according to whether the at least some points are close to the center of gravity of the object.
여기서, 상기 프로세서는 상기 제1 스코어, 상기 제2 스코어, 상기 제3 스코어 및 상기 제4 스코어의 가중합에 기초하여 최종 스코어를 산출함으로써, 상기 복수의 포즈 값 각각에 대한 평가 정보를 획득할 수 있다. Here, the processor may obtain evaluation information for each of the plurality of pose values by calculating a final score based on a weighted sum of the first score, the second score, the third score, and the fourth score. there is.
여기서, 상기 프로세서는 상기 식별된 엣지 포인트에 대한 ZMS 벡터 및 상기 레이 벡터에 기초하여, 상기 이미지에 포함된 비관측 영역에 대응되는 복수의 추정 포인트에 대한 정보를 획득하고, 상기 두 개의 핑거의 표면적에 대한 정보, 상기 매니퓰레이터의 복수의 엣지 포인트, 상기 복수의 바디 포인트 및 상기 복수의 추정 포인트에 기초하여 상기 접촉 영역을 식별할 수 있다. Here, the processor obtains information on a plurality of estimated points corresponding to a non-observation area included in the image based on the ZMS vector and the ray vector for the identified edge point, and obtains surface area of the two fingers The contact area may be identified based on the information about, the plurality of edge points of the manipulator, the plurality of body points, and the plurality of estimated points.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 매니퓰레이터(manipulator) 및 상기 매니퓰레이터의 동작을 제어하기 위한 복수의 모터를 포함하는 로봇의 제어 방법은 오브젝트에 대한 이미지를 획득하는 단계, 상기 획득된 이미지에 기초하여 상기 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드 정보(point cloud information)를 획득하는 단계, 상기 복수의 포인트 중 상기 오브젝트의 엣지(edge)를 나타내는 복수의 엣지 포인트 및 상기 오브젝트의 엣지를 제외한 바디(body) 영역을 나타내는 복수의 바디 포인트를 식별하는 단계, 상기 매니퓰레이터가 상기 복수의 엣지 포인트 및 상기 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 상기 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득하는 단계, 상기 복수의 포즈 값에 따라 상기 매니퓰레이터가 상기 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득하는 단계, 상기 평가 정보에 기초하여 상기 복수의 포즈 값 중 하나의 포즈 값을 식별하는 단계 및 상기 식별된 하나의 포즈 값에 기초하여 상기 매니퓰레이터가 동작하도록 상기 복수의 모터를 제어하는 단계를 포함한다.According to an embodiment of the present disclosure for achieving the above object, a control method of a robot including a manipulator and a plurality of motors for controlling an operation of the manipulator includes acquiring an image of an object. Obtaining point cloud information including a plurality of points representing the object based on the obtained image, a plurality of edge points representing the edge of the object among the plurality of points, and Identifying a plurality of body points representing a body area excluding an edge of the object, wherein the manipulator uses at least some of the plurality of edge points and the plurality of body points as gripping points to hold the object obtaining a plurality of pose values representing poses when gripping the object; obtaining evaluation information representing stability when the manipulator grips the object according to the plurality of pose values; The method includes identifying one pose value among a plurality of pose values and controlling the plurality of motors to operate the manipulator based on the identified pose value.
도 1은 본 개시의 일 실시 예에 따른 로봇을 나타내는 도면,
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 간략하게 나타내는 블록도,
도 3은 본 개시의 일 실시 예에 따른 엣지 포인트와 바디 포인트의 식별 과정에 대해 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따른 트루 엣지 포인트와 폴스 엣지 포인트를 구별하는 과정에 대해 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 비관측 영역의 추정 과정에 대해 설명하기 위한 도면,
도 6 내지 도 8은 본 개시의 일 실시 예에 따른 복수의 포즈 값의 획득 과정에 대해 설명하기 위한 도면,
도 9 및 도 10은 본 개시의 일 실시 예에 따른 평가 정보에 대해 상세하게 설명하기 위한 도면,
도 11은 본 개시의 일 실시 예에 따른 로봇의 구성을 상세하게 나타내는 블록도, 그리고,
도 12는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 나타내는 흐름도이다.1 is a diagram showing a robot according to an embodiment of the present disclosure;
2 is a block diagram briefly showing the configuration of a robot according to an embodiment of the present disclosure;
3 is a diagram for explaining a process of identifying an edge point and a body point according to an embodiment of the present disclosure;
4 is a diagram for explaining a process of distinguishing a true edge point and a false edge point according to an embodiment of the present disclosure;
5 is a diagram for explaining a process of estimating a non-observation area according to an embodiment of the present disclosure;
6 to 8 are diagrams for explaining a process of obtaining a plurality of pose values according to an embodiment of the present disclosure;
9 and 10 are diagrams for explaining in detail evaluation information according to an embodiment of the present disclosure;
11 is a block diagram showing in detail the configuration of a robot according to an embodiment of the present disclosure, and
12 is a flowchart illustrating a method for controlling a robot according to an embodiment of the present disclosure.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Since the present embodiments can apply various transformations and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to the specific embodiments, and should be understood to include various modifications, equivalents, and/or alternatives of the embodiments of the present disclosure. In connection with the description of the drawings, like reference numerals may be used for like elements.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. In describing the present disclosure, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the gist of the present disclosure, a detailed description thereof will be omitted.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.In addition, the following embodiments may be modified in many different forms, and the scope of the technical idea of the present disclosure is not limited to the following embodiments. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the spirit of the disclosure to those skilled in the art.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Terms used in this disclosure are only used to describe specific embodiments, and are not intended to limit the scope of rights. Singular expressions include plural expressions unless the context clearly dictates otherwise.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. In the present disclosure, expressions such as “has,” “can have,” “includes,” or “can include” indicate the presence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). , which does not preclude the existence of additional features.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this disclosure, expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, Or (3) may refer to all cases including at least one A and at least one B.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as "first," "second," "first," or "second," used in the present disclosure may modify various elements regardless of order and/or importance, and may refer to one element as It is used only to distinguish it from other components and does not limit the corresponding components.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is "(operatively or communicatively) coupled with/to" another component (e.g., a second component); When referred to as "connected to", it should be understood that the certain component may be directly connected to the other component or connected through another component (eg, a third component).
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.On the other hand, when an element (eg, a first element) is referred to as being “directly connected” or “directly connected” to another element (eg, a second element), the element and the above It may be understood that other components (eg, a third component) do not exist between the other components.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. The expression “configured to (or configured to)” as used in this disclosure means, depending on the situation, for example, “suitable for,” “having the capacity to.” ," "designed to," "adapted to," "made to," or "capable of." The term "configured (or set) to" may not necessarily mean only "specifically designed to" hardware.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.Instead, in some contexts, the phrase "device configured to" may mean that the device is "capable of" in conjunction with other devices or components. For example, the phrase "a processor configured (or configured) to perform A, B, and C" may include a dedicated processor (eg, embedded processor) to perform the operation, or by executing one or more software programs stored in a memory device. , may mean a general-purpose processor (eg, CPU or application processor) capable of performing corresponding operations.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In an embodiment, a 'module' or 'unit' performs at least one function or operation, and may be implemented with hardware or software, or a combination of hardware and software. In addition, 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.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. Meanwhile, various elements and regions in the drawings are schematically drawn. Therefore, the technical spirit of the present invention is not limited by the relative size or spacing drawn in the accompanying drawings.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, an embodiment according to the present disclosure will be described in detail so that those skilled in the art can easily implement it.
도 1은 본 개시의 일 실시 예에 따른 로봇(100)을 나타내는 도면이고, 도 2는 본 개시의 일 실시 예에 따른 로봇(100)의 구성을 간략하게 나타내는 블록도이다. 1 is a diagram showing a
본 개시에 따른 로봇(100)은 매니퓰레이터(120)를 이용하여 오브젝트를 파지할 수 있는 장치를 말한다. 본 개시에 따른 로봇(100)은 도 1에 도시된 바와 같은 구조와 형상을 가질 수 있으나 이는 일 예시에 불과하다. 즉, 본 개시에 따른 로봇(100)과 매니퓰레이터(120)의 구조, 형상, 크기 등에 특별한 제한이 따르는 것은 아니다.The
도 1에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 로봇(100)은 카메라(110) 및 매니퓰레이터(120)를 포함할 수 있다. 그리고, 도 1에는 도시되어 있지 않지만, 로봇(100)은 도 2에 도시된 바와 같이, 로봇(100)의 내부에 복수의 모터(130), 메모리(140) 및 프로세서(150)를 포함할 수 있다. As shown in FIG. 1 , a
카메라(110)는 적어도 하나의 오브젝트에 대한 이미지를 획득할 수 있다. 구체적으로, 카메라(110)는 이미지 센서를 포함하고, 이미지 센서는 렌즈를 통해 들어오는 빛을 전기적인 영상 신호로 변환할 수 있다. The
특히, 본 개시에 따른 다양한 실시 예에 있어서, 카메라(110)는 오브젝트에 대한 이미지를 획득할 수 있는바, 본 개시에 다른 오브젝트에 대한 이미지는 오브젝트에 대한 싱글 뷰(single view) 이미지를 말한다. 즉, 본 개시에 있어서, 프로세서(150)는 카메라(110)의 위치 또는 각도를 이동시키면서 오브젝트에 대한 멀티 뷰(multi-view) 이미지를 획득하는 것이 아니라, 오브젝트에 대한 하나의 이미지인 싱글 뷰 이미지만을 획득하고, 획득된 싱글 뷰 이미지에 기초하여 후술하는 바와 같이 오브젝트를 파지하기 위한 포즈 값을 획득할 수 있다. In particular, in various embodiments according to the present disclosure, the
매니퓰레이터(120)는 인간의 팔 및 손과 유사한 동작을 수행할 수 있다. 구체적으로, 매니퓰레이터(120)는 사용자의 팔의 상박 및 하박 각각에 대응되는 링크를 포함할 수 있으며, 복수의 핑거를 포함하는 핸드를 포함할 수 있다. 매니퓰레이터(120)는 복수의 모터(130)와 연결될 수 있으며, 특히 매니퓰레이터(120)의 상박, 하박, 핸드 및 복수의 핑거 각각에 대응되는 복수의 모터(130)와 연결될 수 있다. The
그리고, 프로세서(150)는 본 개시에 따른 포즈 값에 기초하여 복수의 모터(130)를 제어함으로써, 매니퓰레이터(120)의 동작을 제어할 수 있다. 매니퓰레이터(120)는 인간의 팔 및 손과 유사한 다양한 동작을 제공할 수 있지만, 본 개시에 있어서는 매니퓰레이터(120)를 이용하여 오브젝트를 파지하는 경우를 전제로 하여 본 개시에 따른 다양한 실시 예에 대해 설명한다.Also, the
메모리(140)에는 로봇(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(140)에는 로봇(100)을 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(140)에는 본 개시의 다양한 실시 예들에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(140)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.At least one instruction for the
구체적으로, 메모리(140)에는 본 개시의 다양한 실시 예에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(150)는 메모리(140)에 저장된 각종 소프트웨어 모듈을 실행하여 로봇(100)의 동작을 제어할 수 있다. 즉, 메모리(140)는 프로세서(150)에 의해 액세스되며, 프로세서(150)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. Specifically, various software modules for operating the
한편, 본 개시에서 메모리(140)라는 용어는 메모리(140), 프로세서(150) 내 롬(미도시), 램(미도시) 또는 로봇(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.Meanwhile, in the present disclosure, the
특히, 본 개시에 따른 다양한 실시 예에 있어서, 메모리(140)에는 오브젝트에 대한 이미지, 포인트 클라우드 정보, 복수의 엣지(edge) 포인트에 대한 정보, 복수의 바디(body) 포인트에 대한 정보, 복수의 포즈 값에 대한 정보, 복수의 포즈 값 각각에 대한 평가 정보 등이 저장될 수 있다. 또한, 메모리(140)에는 복수의 포인트 별 ZMS(zero moment shift) 벡터에 대한 정보, 매니퓰레이터(120)의 좌표 계에 대한 정보 등과 같은 다양한 정보가 저장될 수 있다. In particular, in various embodiments according to the present disclosure, the
그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(140)에 저장될 수 있으며, 메모리(140)에 저장된 정보는 서버 또는 외부 장치로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.In addition, various information required within the scope of achieving the object of the present disclosure may be stored in the
프로세서(150)는 로봇(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(150)는 카메라(110), 매니퓰레이터(120), 복수의 모터(130) 및 메모리(140)를 포함하는 로봇(100)의 구성과 연결되며, 상술한 바와 같은 메모리(140)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 로봇(100)의 동작을 전반적으로 제어할 수 있다.The
프로세서(150)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(150)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 한편, 본 개시에서 프로세서(150)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(150)는 오브젝트에 대한 이미지를 기하학적으로 분석하는 것에 기초하여, 오브젝트를 파지하기 위한 매니퓰레이터(120)의 포즈 값을 획득할 수 있다. In particular, in various embodiments according to the present disclosure, the
구체적으로, 프로세서(150)는 카메라(110)를 통해 오브젝트에 대한 이미지를 획득할 수 있다. 특히, 본 개시에 있어서 오브젝트에 대한 이미지는 오브젝트에 대한 싱글 뷰(single view) 이미지를 말한다는 것은 전술한 바 있다. Specifically, the
오브젝트에 대한 이미지가 획득되면, 프로세서(150)는 획득된 이미지에 기초하여 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드(point cloud) 정보를 획득할 수 있다. 여기서, 포인트 클라우드란 오브젝트 표면의 점들에 대응되는 복수의 포인트의 집합을 말한다. 구체적으로, 프로세서(150)는 오브젝트에 빛/신호를 전송한 후 빛/신호가 오브젝트의 표면에서 반사되어 카메라(110)에 포함된 이미지 센서에 수신된 시간에 기초하여 오브젝트 표면의 점들에 대한 거리 정보를 산출하고, 그에 기초하여 오브젝트의 표면의 점들에 대응되는 복수의 포인트를 포함하는 포인트 클라우드 정보를 획득할 수 있다. When an image of an object is obtained, the
일 실시 예에 있어서, 프로세서(150)는 포인트 클라우드 정보가 획득되면, 포인트 클라우드 정보에 포함된 노이즈를 제거하기 위한 전처리 과정을 수행하고, 전처리 과정이 수행된 포인트 클라우드 정보에 기초하여 복수의 엣지 포인트 및 복수의 바디 포인트를 식별할 수도 있다. 다만, 전처리 과정은 오브젝트를 파지하기 위한 매니퓰레이터(120)의 포즈 값의 정확도를 높이기 위한 것일 뿐, 본 개시에 있어서 반드시 수행되어야 하는 과정은 아니다. In one embodiment, when the point cloud information is obtained, the
포인트 클라우드 정보가 획득되면, 프로세서(150)는 복수의 포인트 중 오브젝트의 엣지를 나타내는 복수의 엣지 포인트 및 오브젝트의 엣지를 제외한 바디 영역을 나타내는 복수의 바디 포인트를 식별할 수 있다. 즉, 프로세서(150)는 포인트 클라우드 정보에 기초하여 포인트 클라우드 정보에 포함된 복수의 포인트를 복수의 엣지 포인트와 복수의 바디 포인트로 구별할 수 있다. 여기서, 엣지 포인트란 오브젝트의 외곽 영역에 포함되는 포인트를 말하며, 바디 포인트란 물체의 외곽 영역을 제외한 나머지 영역에 포함되는 포인트를 말한다. When the point cloud information is acquired, the
일 실시 예에 있어서, 프로세서(150)는 복수의 포인트 별로, 복수의 포인트에서 복수의 포인트를 중심으로 하는 기 설정된 크기의 원 안에 포함된 포인트들의 중심점을 향하는 ZMS(zero moment shift) 벡터를 식별할 수 있다. 복수의 포인트 별로 ZMS 벡터가 식별되면, 프로세서(150)는 복수의 포인트 중 ZMS 벡터의 크기가 기 설정된 임계 값 이상인 벡터들에 대응되는 포인트들을 엣지 포인트로 식별하고, 복수의 포인트 중 ZMS 벡터의 크기가 임계 값 미만인 벡터들에 대응되는 포인트들을 바디 포인트로 식별할 수 있다. 엣지 포인트와 바디 포인트의 식별 과정에 대해서는 도 3 및 도 4를 참조하여 보다 구체적으로 설명한다.In an embodiment, the
복수의 엣지 포인트 및 복수의 바디 포인트가 식별되면, 프로세서(150)는 매니퓰레이터(120)가 복수의 엣지 포인트 및 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득할 수 있다. 여기서, 포즈 값이란 매니퓰레이터(120)를 오브젝트의 어떠한 지점에서 어떠한 방향으로 파지할 것인지에 대한 정보를 포함할 수 있다. 그리고, 포즈 값은 파지점에 대한 정보 및 매니퓰레이터(120)의 좌표계를 구성하는 좌표축의 방향에 대한 정보 등을 포함할 수 있다. If the plurality of edge points and the plurality of body points are identified, the
구체적으로, 프로세서(150)는 복수의 엣지 포인트와 복수의 바디 포인트 중 적어도 일부 포인트들을 임의로 샘플링하고, 샘플링된 일부 포인트들 각각에 대한 복수의 포즈 값을 획득할 수 있다. 또한, 프로세서(150)는 샘플링 된 일부 포인트가 엣지 포인트인지 아니면 바디 포인트인지에 따라 상이한 방법을 적용하여 복수의 포즈 값을 획득할 수 있다. Specifically, the
일 실시 예에 있어서, 프로세서(150)는 매니퓰레이터(120)의 하박 관절을 향하는 방향과 반대 방향을 향하도록 정의된 매니퓰레이터(120)의 z축이 식별된 엣지 포인트에 대한 ZMS 벡터의 방향에 대응되도록 하고, 매니퓰레이터(120)에 포함된 하나의 핑거에서 반대 방향의 다른 핑거를 향하도록 정의된 매니퓰레이터(120)의 y축이 식별된 엣지 포인트의 표면에 수직인 방향에 대응되도록 하기 위한 매니퓰레이터(120)의 포즈를 식별함으로써, 복수의 포즈 값 중 복수의 엣지 포인트에 대응되는 포즈 값들을 획득할 수 있다. In one embodiment, the
일 실시 예에 있어서, 프로세서(150)는 z축이 복수의 포인트의 표면에 수직인 방향에 대응되도록 하고, y축이 복수의 포인트에서 곡률이 가장 큰 방향에 대응되도록 하기 위한 매니퓰레이터(120)의 포즈를 식별함으로써, 복수의 포즈 값 중 복수의 바디 포인트에 대응되는 포즈 값들을 획득할 수 있다. In one embodiment, the
복수의 엣지 포인트와 복수의 바디 포인트 중 적어도 일부 포인트들을 샘플링하고 복수의 포즈 값을 획득하는 과정에 대해서는 도 6 내지 8을 참조하여 보다 구체적으로 설명한다. A process of sampling at least some of the plurality of edge points and the plurality of body points and obtaining a plurality of pose values will be described in more detail with reference to FIGS. 6 to 8 .
복수의 포즈 값이 획득되면, 프로세서(150)는 복수의 포즈 값에 따라 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득할 수 있다. 여기서, 평가 정보는 매니퓰레이터(120)에 포함된 두 개의 핑거의 표면에서 수직인 방향과 두 개의 핑거가 오브젝트와 접촉되는 접촉 영역의 표면에서 수직인 방향 사이의 각도에 따라 산출되는 제1 스코어, 접촉 영역에 포함된 포인트의 개수에 따라 산출되는 제2 스코어, 두 개의 핑거 중 하나의 핑거와 접촉 영역 사이의 거리 및 두 개의 핑거 중 다른 하나의 핑거와 접촉 영역 사이의 거리 사이의 차이에 따라 산출되는 제3 스코어 및 적어도 일부 포인트가 오브젝트의 무게 중심에 가까운지 여부에 따라 산출되는 제4 스코어 중 적어도 하나를 포함할 수 있다. When the plurality of pose values are obtained, the
프로세서(150)는 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어의 가중합에 기초하여 최종 스코어를 산출함으로써, 복수의 포즈 값 각각에 대한 평가 정보를 획득할 수 있다. 평가 정보에 포함된 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어 각각의 의미에 대해서는 도 9 및 도 10을 참조하여 보다 구체적으로 설명한다. The
평가 정보가 획득되면, 프로세서(150)는 평가 정보에 기초하여 복수의 포즈 값 중 하나의 포즈 값을 식별할 수 있다. 그리고, 복수의 포즈 값 중 하나의 포즈 값이 식별되면, 프로세서(150)는 식별된 하나의 포즈 값에 기초하여 매니퓰레이터(120)가 동작하도록 복수의 모터(130)를 제어할 수 있다. 구체적으로, 프로세서(150)는 복수의 포즈 값 중 평가 정보에 포함된 최종 스코어가 가장 높은 하나의 포즈 값을 식별할 수 있으며, 식별된 하나의 포즈에 기초하여 매니퓰레이터(120)의 동작을 제어함으로써 오브젝트를 파지할 수 있다. When the evaluation information is acquired, the
이상에서 상술한 실시 예, 그리고 이하에서 상세하게 설명할 다양한 실시 예에 따르면, 로봇(100)은 오브젝트에 대한 싱글 뷰 이미지만을 획득하고, 신경망 모델과 딥 러닝 기술을 사용하지 않고 싱글 뷰 이미지를 기하학적으로 분석함으로써, GPU와 같은 고성능의 하드웨어 사용 없이 CPU만을 이용하여 안정적이고도 효율적으로 오브젝트를 파지할 수 있게 된다. 특히, 본 개시에 따르면, 높은 파지율로 오브젝트를 파지할 수 있게 되며, 또한 오브젝트와의 충돌을 최소화하면서 오브젝트의 손상 없이 오브젝트를 파지할 수 있게 된다. According to the embodiments described above and various embodiments to be described in detail below, the
도 3은 본 개시의 일 실시 예에 따른 엣지 포인트와 바디 포인트의 식별 과정에 대해 설명하기 위한 도면이고, 도 4는 본 개시의 일 실시 예에 따른 트루 엣지 포인트와 폴스 엣지 포인트를 구별하는 과정에 대해 설명하기 위한 도면이다. 3 is a diagram for explaining a process of identifying an edge point and a body point according to an embodiment of the present disclosure, and FIG. 4 is a diagram for a process of distinguishing a true edge point from a false edge point according to an embodiment of the present disclosure. It is a drawing for explanation.
도 3의 좌측 도면은 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드 정보를 나타내는 도면이다. 그리고, 도 3의 우측 도면은 오브젝트를 나타내는 복수의 포인트 중 두 개의 포인트를 각각 확대하여 나타내는 도면이다.The left view of FIG. 3 is a view showing point cloud information including a plurality of points representing objects. And, the drawing on the right side of FIG. 3 is a drawing showing enlarged two points among a plurality of points representing an object.
전술한 바와 같이, 프로세서(150)는 복수의 포인트 별로 ZMS 벡터를 식별하고, 식별된 ZMS(zero moment shift) 벡터의 크기에 기초하여 복수의 엣지 포인트 및 복수의 바디 포인트를 식별할 수 있다. 구체적으로, 프로세서(150)는 복수의 포인트 별로, 복수의 포인트에서 복수의 포인트를 중심으로 하는 기 설정된 크기의 원 안에 포함된 포인트들의 중심점을 향하는 ZMS 벡터를 식별할 수 있다. 그리고, 프로세서(150)는 복수의 포인트 중 ZMS 벡터의 크기가 기 설정된 임계 값 이상인 벡터들에 대응되는 포인트들을 엣지 포인트로 식별하며, 복수의 포인트 중 ZMS 벡터의 크기가 임계 값 미만인 벡터들에 대응되는 포인트들을 바디 포인트로 식별할 수 있다. As described above, the
예를 들어, 프로세서(150)는 도 3에 도시된 바와 같이 포인트 a를 중심으로 하는 기 설정된 원(B) 안에 포함된 포인트들의 중심점을 향하는 ZMS 벡터를 식별할 수 있다. 포인트 a는 오브젝트의 외곽에 대응되는 영역에 포함된 포인트이기 때문에 포인트 a를 중심으로 하는 기 설정된 원(B) 안에 포함된 포인트들의 중심점(예를 들어, 무게 중심을 나타내는 점)은 포인트 a를 기준으로 특정한 방향을 향해 치우쳐 있을 수 있다. 따라서, 포인트 a에 대응되는 ZMS 벡터의 크기(m), 즉 놈(norm)은 0보다 큰 소정의 값을 가질 수 있다. 프로세서(150)는 포인트 a에 대응되는 ZMS 벡터(m)의 크기가 기 설정된 임계 값 이상이면, 포인트 a를 엣지 포인트로 식별할 수 있다. For example, as shown in FIG. 3 , the
한편, 프로세서(150)는 도 3에 도시된 바와 같이 포인트 b를 중심으로 하는 기 설정된 원(B) 안에 포함된 포인트들의 중심점을 향하는 ZMS 벡터를 식별할 수 있다. 포인트 b는 오브젝트의 외곽을 제외한 나머지 영역에 포함된 포인트이기 때문에 포인트 b를 중심으로 하는 기 설정된 원(B) 안에 포함된 포인트들의 중심점은 포인트 b와 일치하거나 가까운 거리에 위치할 수 있다. 따라서, 포인트 b에 대응되는 ZMS 벡터의 크기(m)는 0에 가까운 값을 가질 수 있다. 프로세서(150)는 포인트 b에 대응되는 ZMS 벡터의 크기가 기 설정된 임계 값 미만이면, 포인트 b를 바디 포인트로 식별할 수 있다. Meanwhile, as shown in FIG. 3 , the
이상에서 엣지 포인트에 대응되는 ZMS 벡터를 식별하기 위한 임계 값과 바디 포인트에 대응되는 ZMS 벡터를 식별하기 위한 임계 값은 서로 동일할 수 있으며, 상이할 수도 있다. 그리고, 엣지 포인트에 대응되는 ZMS 벡터를 식별하기 위한 임계 값과 바디 포인트에 대응되는 ZMS 벡터를 식별하기 위한 임계 값은 사용자 또는 개발자의 설정에 따라 변경될 수 있음은 물론이다. As described above, the threshold value for identifying the ZMS vector corresponding to the edge point and the threshold value for identifying the ZMS vector corresponding to the body point may be the same or different. Further, it is needless to say that the threshold value for identifying the ZMS vector corresponding to the edge point and the threshold value for identifying the ZMS vector corresponding to the body point may be changed according to the settings of the user or developer.
한편, 전술한 바와 같이 본 개시에 있어서 오브젝트에 대한 이미지는 오브젝트에 대한 한 장의 싱글 뷰 이미지를 의미하기 때문에, 오브젝트에 대한 이미지에는 싱글 뷰 이미지만으로는 관측할 수 없는 영역, 즉 비관측 영역(unobservable area)이 포함될 수 있다. 따라서, 상술한 바와 같은 방법으로 엣지 포인트를 식별하는 경우, 실제 오브젝트의 외곽 영역에 포함되는 포인트들이 아닌 비관측 영역의 외곽 영역에 포함되는 포인트들이 엣지 포인트로 식별되는 문제가 발생할 수 있다. On the other hand, as described above, since the image of an object in the present disclosure means one single-view image of the object, the image of the object includes an area that cannot be observed with only a single-view image, that is, an unobservable area. ) may be included. Therefore, when edge points are identified by the above-described method, a problem may arise in that points included in the outer area of the non-observation area are identified as edge points, rather than points included in the outer area of the actual object.
따라서, 프로세서(150)는 상술한 바와 같이 ZMS 벡터의 크기에 기초하여 복수의 엣지 포인트 및 복수의 바디 포인트를 1차적으로 식별한 후, 1차적으로 식별된 복수의 엣지 포인트 중에서 실제 오브젝트의 외곽 영역에 포함되는 트루(true) 엣지 포인트들과 비관측 영역의 외곽 영역에 포함되는 폴스(false) 엣지 포인트들을 구별할 수 있다. Therefore, as described above, the
구체적으로, 프로세서(150)는 엣지 포인트로 식별된 하나의 포인트에 대한 ZMS 벡터와 카메라(110)에서 하나의 포인트를 향하는 레이(ray) 벡터 사이의 각도에 기초하여 트루 엣지 포인트들과 폴스 엣지 포인트들을 식별하고, 식별된 폴스 엣지 포인트들을 바디 포인트들로 취급할 수 있다. 보다 구체적으로, 제1 엣지 포인트에 대한 ZMS 벡터와 카메라(110)에서 제1 엣지 포인트를 향하는 레이 벡터 사이의 각도가 기 설정된 임계 각도 미만이면, 프로세서(150)는 제1 엣지 포인트를 트루 엣지 포인트로 식별할 수 있다. 반면, 제2 엣지 포인트에 대한 ZMS 벡터와 카메라(110)에서 제2 엣지 포인트를 향하는 레이(ray) 벡터 사이의 각도가 기 설정된 임계 각도 이상이면, 프로세서(150)는 제2 엣지 포인트를 폴스 엣지 포인트로 식별할 수 있다. 여기서, 트루 엣지 포인트로 식별된 제1 엣지 포인트는 최종적으로 엣지 포인트로 취급되며, 폴스 엣지 포인트로 식별된 제2 엣지 포인트는 최종적으로 트루 엣지 포인트로 취급될 수 있다. Specifically, the
예를 들어, 도 4를 참조하면, 카메라(110)에서 실제 오브젝트의 외곽 영역에 포함되는 제1 엣지 포인트()를 향하는 제1 레이 벡터와 제1 엣지 포인트()의 ZMS 벡터 사이의 각도는 90도 미만이다. 반면, 카메라(110)에서 비관측 영역의 외곽 영역에 포함되는 제2 엣지 포인트()를 향하는 제2 레이 벡터와 제2 엣지 포인트()의 ZMS 벡터 사이의 각도는 90도 이상이다. 이 경우, 제1 엣지 포인트는 트루 엣지 포인트로 식별되며 제2 엣지 포인트는 폴스 엣지 포인트로 식별되고, 따라서 제1 엣지 포인트는 최종적으로 엣지 포인트로 취급되는 반면, 제2 엣지 포인트는 최종적으로 바디 포인트로 취급될 수 있다.For example, referring to FIG. 4 , a first edge point included in the outer area of the real object in the camera 110 ( ) and the first ray vector and the first edge point ( ) is less than 90 degrees. On the other hand, the second edge point included in the outer area of the non-observation area in the camera 110 ( ) and the second ray vector and the second edge point ( ) is greater than 90 degrees. In this case, the first edge point is identified as a true edge point and the second edge point is identified as a false edge point, so the first edge point is finally treated as an edge point, while the second edge point is finally treated as a body point. can be treated as
도 5는 본 개시의 일 실시 예에 따른 비관측 영역의 추정 과정에 대해 설명하기 위한 도면이다. 5 is a diagram for explaining a process of estimating a non-observation area according to an embodiment of the present disclosure.
한편, 전술한 바와 같이 본 개시에 있어서 오브젝트에 대한 이미지에는 싱글 뷰 이미지만으로는 관측할 수 없는 영역, 즉 비관측 영역이 포함될 수 있다. 그리고, 매니퓰레이터(120)를 이용하여 오브젝트를 효과적으로 파지하기 위해서는 비관측 영역을 추정할 필요가 있다. 예를 들어, 도 5의 첫번째 이미지(510)을 참조하면, 카메라(110)를 통해 오브젝트에 대한 이미지를 획득하고 획득된 이미지에 기초하여 포인트 클라우드 정보를 획득하는 경우, 포인트 클라우드 정보는 오브젝트에서 카메라(110)의 반대쪽 표면에 위치한 영역에 대응되는 포인트들에 대한 정보는 포함하지 않게 될 수 있다. Meanwhile, as described above, in the present disclosure, an image of an object may include an area that cannot be observed with only a single view image, that is, a non-observation area. In addition, in order to effectively grip the object using the
따라서, 프로세서(150)는 식별된 엣지 포인트에 대한 ZMS 벡터 및 레이 벡터에 기초하여, 이미지에 포함된 비관측 영역에 대응되는 복수의 추정 포인트에 대한 정보를 획득할 수 있다. 여기서, 식별된 엣지 포인트는 비관측 영역과 관측 영역을 구분하는 경계에 대응되는 엣지 포인트이므로, 특히 전술한 바와 같은 폴스 엣지 포인트일 수 있다.Accordingly, the
구체적으로, 프로세서(150)는 하나의 엣지 포인트에서부터 그 엣지 포인트에 대한 ZMS 벡터의 반대 방향에 위치하는 기 설정된 길이의 선분을 비관측 영역의 일부로 추정할 수 있다. 여기서, 기 설정된 길이의 선분을 추정하는 것은 폴스 엣지 포인트에서 데이터가 손실될 가능성을 고려하여, 그 손실을 보상하기 위한 것이라고 할 수 있다. 한편, 추정되는 선분의 길이는 사용자 또는 개발자의 설정에 따라 변경될 수 있으며, 오브젝트의 크기에 기초하여 결정될 수도 있다. Specifically, the
또한, 프로세서(150)는 추정된 선분에서부터 연장되며, 카메라(110)에서 하나의 엣지 포인트를 향하는 레이 벡터를 벗어나지 않는 곡선을 비관측 영역의 또 다른 일부로 추정할 수 있다. 구체적으로, 비관측 영역의 표면은 레이 벡터와 동일 선상에 위치하거나 레이 벡터에서 오브젝트를 향하는 방향의 안쪽에 위치할 수밖에 없다. 따라서, 프로세서(150)는 앞서 추정된 선분에서부터 지면까지 연장되는 곡선을 레이 벡터를 벗어나지 않는 범위 내에서 추정할 수 있다. 일 실시 예에 있어서, 프로세서(150)는 비관측 영역의 반대쪽 영역과의 대칭성을 고려하여 곡선을 추정할 수도 있으며, 다만 이에 국한되는 것은 아니다.In addition, the
예를 들어, 도 5의 두번째 이미지(520)을 참조하면, 프로세서(150)는 하나의 엣지 포인트()에서부터 그 엣지 포인트에 대한 ZMS 벡터(m)의 반대 방향에 위치하는 기 설정된 길이의 선분을 추정할 수 있다. 그리고, 프로세서(150)는 추정된 선분에서부터 연장되며, 카메라(110)에서 하나의 엣지 포인트를 향하는 레이 벡터(r)를 벗어나지 않는 곡선을 비관측 영역의 또 다른 일부로 추정할 수 있다. 도 3의 두번째 이미지(520)에서 추정된 비관측 영역을 실선으로 표시하였으며, 도 3의 세번째 이미지(530)에서는 본 개시에 따른 비관측 영역의 추정에 의해 획득된 복수의 추정 포인트들을 나타내었다.For example, referring to the
상술한 바와 같이 비관측 영역이 추정되면, 프로세서(150)는 비관측 영역에 대응되는 복수의 추정 포인트들을 바디 포인트로 취급하여 복수의 포즈 값을 획득하는데 이용할 수 있다. 또한, 프로세서(150)는 비관측 영역에 대응되는 복수의 추정 포인트들을 후술하는 바와 같은 접촉 영역의 식별에 이용할 수도 있다. 접촉 영역의 식별에 대해서는 도 9를 참조하여 보다 구체적으로 설명한다. As described above, if the non-observation area is estimated, the
도 6 내지 도 8은 본 개시의 일 실시 예에 따른 복수의 포즈 값의 획득 과정에 대해 설명하기 위한 도면이다. 6 to 8 are diagrams for explaining a process of obtaining a plurality of pose values according to an embodiment of the present disclosure.
상술한 바와 같은 과정을 통해 복수의 엣지 포인트 및 복수의 바디 포인트가 식별되면, 프로세서(150)는 매니퓰레이터(120)가 복수의 엣지 포인트 및 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득할 수 있다. 여기서, 포즈 값이란 매니퓰레이터(120)를 오브젝트의 어떠한 지점에서 어떠한 방향으로 파지할 것인지를 나타낼 수 있다. 그리고, 포즈 값은 파지점에 대한 정보 및 매니퓰레이터(120)의 좌표계를 구성하는 좌표축의 방향에 대한 정보 등을 포함할 수 있다. When the plurality of edge points and the plurality of body points are identified through the above process, the
구체적으로, 프로세서(150)는 복수의 엣지 포인트와 복수의 바디 포인트 중 적어도 일부 포인트들을 임의로 샘플링하고, 샘플링된 일부 포인트들 각각에 대한 복수의 포즈 값을 획득할 수 있다. 또한, 프로세서(150)는 샘플링 된 일부 포인트가 엣지 포인트인지 아니면 바디 포인트인지에 따라 상이한 방법을 적용하여 복수의 포즈 값을 획득할 수 있다. Specifically, the
도 6은 본 개시의 일 실시 예에 따른 매니퓰레이터(120)의 좌표계를 설명하기 위한 도면으로서, 도 6에는 매니퓰레이터(120)의 좌표계에 대응되는 단위 벡터들이 도시되어 있다. 여기서, x축에 대응되는 단위 벡터는 , y축에 대응되는 단위 벡터는 , 그리고 z축에 대응되는 단위 벡터는 로 나타내었다. FIG. 6 is a diagram for explaining the coordinate system of the
구체적으로, 매니퓰레이터(120) 좌표계의 z축은 매니퓰레이터(120)의 하박 관절을 향하는 방향과 반대 방향을 향하도록 정의될 수 있다. 다시 말해, 매니퓰레이터(120) 좌표계의 z축은 매니퓰레이터(120) 팔의 반대 방향을 향하도록 정의될 수 있다. 그리고, 매니퓰레이터(120) 좌표계의 y축은 매니퓰레이터(120)에 포함된 하나의 핑거에서 반대 방향의 다른 핑거를 향하도록 정의될 수 있다. 다시 말해, 매니퓰레이터(120) 좌표계의 y축은 매니퓰레이터(120)의 핑거가 닫히는 방향과 평행하도록 정의될 수 있다. z축과 y축이 정의되면, 매니퓰레이터(120) 좌표계의 x축은 x축에 대응되는 단위 벡터와 y축에 대응되는 단위 벡터 사이의 외적에 기초하여 결정될 수 있다. Specifically, the z-axis of the coordinate system of the
이하에서는 도 7을 참조하여 본 개시의 일 실시 예에 따른 엣지 포인트에 대한 좌표 값을 획득하는 과정을 설명하고, 도 8을 참조하여 본 개시의 일 실시 예에 따른 바디 포인트에 대한 좌표 값을 획득하는 과정을 설명한다. Hereinafter, a process of obtaining coordinate values for an edge point according to an embodiment of the present disclosure will be described with reference to FIG. 7 , and obtaining coordinate values for a body point according to an embodiment of the present disclosure will be described with reference to FIG. 8 . explain the process of
일 실시 예에 있어서, 프로세서(150)는 매니퓰레이터(120)의 z축이 식별된 엣지 포인트에 대한 ZMS 벡터의 방향에 대응되도록 하고, 매니퓰레이터(120)의 y축이 식별된 엣지 포인트의 표면에 수직인 방향에 대응되도록 하기 매니퓰레이터(120)의 포즈를 식별함으로써, 복수의 포즈 값 중 복수의 엣지 포인트에 대응되는 포즈 값들을 획득할 수 있다. 여기서, 엣지 포인트의 표면에 수직인 방향이란 엣지 포인트에서 지면을 향하는 법선 벡터의 방향을 말한다.In one embodiment, the
도 7의 예를 참조하면, 매니퓰레이터(120)의 z축이 엣지 포인트()에 대한 ZMS 벡터의 방향에 대응되도록 하고, 매니퓰레이터(120)의 y축이 엣지 포인트()의 표면에 수직인 방향에 대응되도록 하기 위한 포즈 값을 획득할 수 있다. 다시 말해, 프로세서(150)는 매니퓰레이터(120) 좌표계의 z축을 해당 엣지 포인트의 ZMS 벡터() 방향으로 정렬시키고, 매니퓰레이터(120) 좌표계의 y축을 해당 엣지 포인트에서 지면을 향하는 법선 벡터()의 방향으로 정렬시킴으로써, 각각의 엣지 포인트에 대응되는 포즈 값을 획득할 수 있다.Referring to the example of FIG. 7 , the z-axis of the
일 실시 예에 있어서, 프로세서(150)는 매니퓰레이터(120)의 z축이 복수의 포인트의 표면에 수직인 방향에 대응되도록 하고, 매니퓰레이터(120)의 y축이 복수의 포인트에서 곡률(curvature)이 가장 큰 방향에 대응되도록 하기 위한 매니퓰레이터(120)의 포즈를 식별함으로써, 복수의 포즈 값 중 복수의 바디 포인트에 대응되는 포즈 값들을 획득할 수 있다. 여기서, 바디 포인트의 표면에 수직인 방향이란 바디 포인트에서 지면을 향하는 법선 벡터의 방향을 말한다. In one embodiment, the
도 8의 예를 참조하면, 매니퓰레이터(120)의 z축이 바디 포인트()의 표면에 수직인 방향에 대응되도록 하고, 매니퓰레이터(120)의 y축이 바디 포인트()에서 곡률이 가장 큰 방향에 대응되도록 하기 위한 포즈 값을 식별할 수 있다. 다시 말해, 프로세서(150)는 매니퓰레이터(120) 좌표계의 z축을 해당 바디 포인트에서 지면을 향하는 법선 벡터의 방향으로 정렬시키고, 매니퓰레이터(120) 좌표계의 y축은 해당 바디 포인트에서 곡률이 가장 큰 방향, x축은 해당 바디 포인트에서 곡률이 가장 작은 방향으로 정렬시킴으로써, 각각의 바디 포인트에 대응되는 포즈 값을 획득할 수 있다.Referring to the example of FIG. 8 , the z-axis of the
한편, 상술한 바와 같이 임의로 샘플링된 엣지 포인트들과 바디 포인트들에 대응되는 포즈 값들이 획득되면, 프로세서(150)는 획득된 포즈 값들에 기초하여 포즈 값들을 증강시킬 수 있다. 구체적으로, 프로세서(150)는 복수의 엣지 포인트에 대응되는 포즈 값들 및 복수의 바디 포인트에 대응되는 포즈 값들의 일부 좌표축을 변경함으로써, 복수의 포즈 값을 증강시킬 수 있다. Meanwhile, when pose values corresponding to randomly sampled edge points and body points are obtained as described above, the
다시 말해, 프로세서(150)는 임의로 샘플링된 엣지 포인트들과 바디 포인트들에 대응되는 포즈 값들을 획득하기 위한 과정(소위 coarse 샘플링 과정이라고 지칭될 수 있음)을 수행한 후, 획득된 포즈 값들이 나타내는 x축, y축 또는 z축 중 적어도 하나의 좌표축을 기 설정됨 임계 각도 내에서 변경함으로써, 복수의 포즈 값을 증강시키는 과정(소위 fine 샘플링 과정이라고 지칭될 수 있음)을 수행할 수 있다. 이에 따라, 프로세서는 효율적인 방법으로 많은 개수의 포즈 값을 획득할 수 있게 된다. In other words, the
도 9 및 도 10은 본 개시의 일 실시 예에 따른 평가 정보에 대해 상세하게 설명하기 위한 도면이다. 9 and 10 are diagrams for explaining in detail evaluation information according to an embodiment of the present disclosure.
전술한 바와 같이, 복수의 포즈 값이 획득되면, 프로세서(150)는 복수의 포즈 값에 따라 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득할 수 있다. 여기서, 평가 정보는 후술하는 바와 같은 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어 등을 포함할 수 있다.As described above, when a plurality of pose values are obtained, the
이하에서는 도 9를 참조하여, 매니퓰레이터(120)의 접촉 영역에 대해 정의하고, 도 10을 참조하여 본 개시에 따른 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어에 대해 상세하게 설명한다. Hereinafter, the contact area of the
매니퓰레이터(120)의 접촉 영역은 도 9에 도시된 바와 같이 정의될 수 있다. 구체적으로, 매니퓰레이터(120)에 포함된 두 개의 핑거의 표면들 사이의 영역은 클로징 영역(closing region)으로 정의될 수 있으며, 클로징 영역에서 두 개의 핑거가 오브젝트와 접촉되는 영역 소정의 두께(tc)를 갖는 영역이 접촉 영역(contact region)으로 정의될 수 있다. 그리고, 접촉 영역은 두 개의 핑거 중 하나의 핑거가 오브젝트와 접촉되는 영역인 좌측 접촉 영역(left contact region) 및 두 개의 핑거 중 다른 하나의 핑거가 오브젝트와 접촉되는 영역인 우측 접촉 영역(right contact region)을 포함할 수 있다.The contact area of the
한편, 전술한 바와 같이 오브젝트에 대한 이미지에는 비관측 영역이 포함될 수 있으며, 프로세서(150)는 비관측 영역에 대응되는 복수의 추정 포인트에 대한 정보를 획득할 수 있다. 그리고, 비관측 영역에 대응되는 복수의 추정 포인트에 대한 정보가 획득되면, 프로세서(150)는 두 개의 핑거의 표면적에 대한 정보, 매니퓰레이터(120)의 복수의 엣지 포인트, 복수의 바디 포인트 및 복수의 추정 포인트에 기초하여 접촉 영역을 식별할 수 있다.Meanwhile, as described above, the image of the object may include a non-observation area, and the
제1 스코어는 매니퓰레이터(120)에 포함된 두 개의 핑거의 표면에서 수직인 방향과 두 개의 핑거가 오브젝트와 접촉되는 접촉 영역의 표면에서 수직인 방향 사이의 각도에 따라 산출될 수 있다. 구체적으로, 두 개의 핑거의 표면에서 수직인 방향과 두 개의 핑거가 오브젝트와 접촉되는 접촉 영역의 표면에서 수직인 방향이 일치할수록 제1 스코어는 높게 산출될 수 있다. 즉, 매니퓰레이터(120)에 포함된 두 개의 핑거 표면의 법선 벡터의 방향과 접촉 영역의 법선 벡터(,)의 방향이 일치할수록 제1 스코어는 높게 산출될 수 있는바, 이는 두 개의 핑거에서 전달되는 힘이 많이 전달될수록 높은 스코어를 할당하기 위한 것이라고 할 수 있다. 제1 스코어는 소위 antipodal quality를 평가하기 위한 것이라고 할 수 있다. The first score may be calculated according to an angle between a direction perpendicular to the surface of the two fingers included in the
제2 스코어는 접촉 영역에 포함된 포인트의 개수에 따라 산출될 수 있다. 구체적으로, 제2 스코어는 매니퓰레이터(120)에 포함된 두 개의 핑거가 오브젝트와 접촉되는 면적이 넓을수록 높게 산출될 수 있다. 이는 두 개의 핑거와 접촉 면적 사이의 마찰력이 높을수록 높은 스코어를 할당하기 위한 것이라고 할 수 있다. 제2 스코어는 소위 contact quality를 평가하기 위한 것이라고 할 수 있다.The second score may be calculated according to the number of points included in the contact area. Specifically, the second score may be calculated higher as the contact area of the two fingers included in the
제3 스코어는 두 개의 핑거 중 하나의 핑거와 접촉 영역 사이의 거리 및 두 개의 핑거 중 다른 하나의 핑거와 접촉 영역 사이의 거리 사이의 차이에 따라 산출될 수 있다. 구체적으로, 제3 스코어는 좌측 접촉 면적과 우측 접촉 면적이 오브젝트의 중심을 기준으로 좌우 대칭에 가까울수록 높게 산출될 수 있다. 제3 스코어는 소위 displacement quality를 평가하기 위한 것이라고 할 수 있다.The third score may be calculated according to the difference between the distance between one of the two fingers and the contact area and the distance between the other one of the two fingers and the contact area. Specifically, the third score may be calculated higher as the left contact area and the right contact area are closer to left-right symmetry with respect to the center of the object. The third score may be for evaluating so-called displacement quality.
제4 스코어는 상기 복수의 엣지 포인트 및 상기 복수의 바디 포인트 중 적어도 일부 포인트가 오브젝트의 무게 중심에 가까운지 여부에 따라 산출될 수 있다. 구체적으로, 제4 스코어는 복수의 포즈 값을 획득하는데 이용된 포인트가 오브젝트의 무게 중심에 가까울수록 높게 산출될 수 있다. 제1 스코어는 소위 gravity quality를 평가하기 위한 것이라고 할 수 있다.The fourth score may be calculated according to whether at least some of the plurality of edge points and the plurality of body points are close to the center of gravity of the object. Specifically, the fourth score may be calculated higher as points used to obtain the plurality of pose values are closer to the center of gravity of the object. The first score can be said to be for evaluating the so-called gravity quality.
상술한 바와 같이, 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어가 획득되면, 프로세서(150)는 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어의 가중합에 기초하여 최종 스코어를 산출함으로써, 복수의 포즈 값 각각에 대한 평가 정보를 획득할 수 있다. As described above, when the first score, the second score, the third score, and the fourth score are obtained, the
복수의 포즈 값 중 하나의 포즈 값이 식별되면, 프로세서(150)는 식별된 하나의 포즈 값에 기초하여 매니퓰레이터(120)가 동작하도록 복수의 모터(130)를 제어할 수 있다. 구체적으로, 프로세서(150)는 복수의 포즈 값 중 평가 정보에 포함된 최종 스코어가 가장 높은 하나의 포즈 값을 식별할 수 있으며, 식별된 하나의 포즈에 기초하여 매니퓰레이터(120)의 동작을 제어함으로써 오브젝트를 파지할 수 있다. If one of the plurality of pose values is identified, the
한편, 이상에서는 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어에 기초하여 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득하는 과정에 대해 설명하였으나, 이는 일 실시 예에 불과할 뿐, 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타낼 수 있는 다양한 방법이 본 개시에 적용될 수 있음은 물론이다. Meanwhile, in the foregoing, a process of obtaining evaluation information representing stability when the
특히, 본 개시에 있어서는 인공 지능 모델 내지는 신경망 모델을 이용하지 않고, 상술한 바와 같은 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어를 이용하여 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득할 수 있는바, 이에 따라 GPU(graphics processing unit)를 이용하여 높은 리소스를 사용하지 않고도 CPU (central processing unit)만을 이용하여 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 평가할 수 있게 된다.In particular, in the present disclosure, the case where the
도 11은 본 개시의 일 실시 예에 따른 로봇(100)의 구성을 상세하게 나타내는 블록도이다. 11 is a block diagram showing the configuration of the
도 2에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 로봇(100)은 카메라(110), 매니퓰레이터(120), 복수의 모터(130)를 포함한다. 또한, 도 3에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 로봇(100)은 통신 인터페이스(170), 입력 인터페이스(180) 및 출력 인터페이스(190)를 더 포함할 수 있다. 그러나, 도 2 및 도 3에 도시된 바와 같은 구성들은 예시적인 것에 불과할 뿐이며, 본 개시를 실시함에 있어 도 2 및 도 3에 도시된 바와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음은 물론이다.As shown in FIG. 2 , the
센서(160)는 로봇(100) 내부 및 외부의 다양한 정보를 감지할 수 있다. 구체적으로, 센서(160)는 GPS(Global Positioning System) 센서(160), 자이로 센서(160)(gyro sensor, gyroscope), 가속도 센서(160)(acceleration sensor, accelerometer), 라이다 센서(160)(lidar sensor), 관성 센서(160)(Inertial Measurement Unit, IMU) 및 모션 센서(160) 중 적어도 하나를 포함할 수 있다. 뿐만 아니라, 센서(160)는 온도 센서(160), 습도 센서(160), 적외선 센서(160), 바이오 센서(160) 등과 같은 다양한 종류의 센서(160)를 포함할 수도 있다. The
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(150)는 센서(160)를 통해 로봇(100)과 오브젝트 사이의 거리, 오브젝트의 움직임 등과 같은 다양한 정보를 획득할 수 있으며, 이와 같이 획득된 정보들은 매니퓰레이터(120)의 동작을 제어하여 오브젝트를 파지함에 있어서 매니퓰레이터(120)의 포즈 값과 함께 이용될 수도 있다.In particular, in various embodiments according to the present disclosure, the
통신 인터페이스(170)는 회로를 포함하며, 서버 또는 외부 장치와의 통신을 수행할 수 있다. 구체적으로, 프로세서(150)는 통신 인터페이스(170)를 통해 연결된 서버 또는 외부 장치로부터 각종 데이터 또는 정보를 수신할 수 있으며, 서버 또는 외부 장치로 각종 데이터 또는 정보를 전송할 수도 있다.The
통신 인터페이스(170)는 WiFi 모듈, Bluetooth 모듈, 무선 통신 모듈, NFC 모듈 및 UWB 모듈(Ultra Wide Band) 중 적어도 하나를 포함할 수 있다. 구체적으로, WiFi 모듈과 Bluetooth 모듈 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. WiFi 모듈이나 Bluetooth 모듈을 이용하는 경우에는 SSID 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. The
또한, 무선 통신 모듈은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G(5th Generation) 등과 같은 다양한 통신 규격에 따라 통신을 수행할 수 있다. 그리고, NFC 모듈은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 통신을 수행할 수 있다. 또한, UWB 모듈은 UWB 안테나 간 통신을 통하여, 펄스가 목표물에 도달하는 시간인 ToA(Time of Arrival), 송신 장치에서의 펄스 도래각인 AoA(Ange of Arrival)을 정확히 측정할 수 있고, 이에 따라 실내에서 수십 cm 이내의 오차 범위에서 정밀한 거리 및 위치 인식이 가능하다.In addition, the wireless communication module may perform communication according to various communication standards such as IEEE, Zigbee, 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), and 5th Generation (5G). In addition, the NFC module may perform communication using a Near Field Communication (NFC) method using a 13.56 MHz band among various RF-ID frequency bands such as 135 kHz, 13.56 MHz, 433 MHz, 860 ~ 960 MHz, and 2.45 GHz. In addition, the UWB module can accurately measure Time of Arrival (ToA), which is the time at which a pulse arrives at a target, and Ange of Arrival (AoA), which is the angle of arrival of a pulse in a transmitting device, through communication between UWB antennas. It is possible to recognize precise distance and location within the error range of several tens of cm.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(150)는 오브젝트에 대한 이미지, 포인트 클라우드 정보, 복수의 엣지 포인트에 대한 정보, 복수의 바디 포인트에 대한 정보, 복수의 포즈 값에 대한 정보, 복수의 포즈 값 각각에 대한 평가 정보, 복수의 포인트 별 ZMS(zero moment shift) 벡터에 대한 정보, 매니퓰레이터(120)의 좌표 계에 대한 정보 등을 서버 또는 외부 장치로 전송하도록 통신 인터페이스(170)를 제어할 수 있으며, 통신 인터페이스(170)를 통해 상술한 정보 등을 비롯한 다양한 정보를 수신할 수도 있다. In particular, in various embodiments according to the present disclosure, the
입력 인터페이스(180)는 회로를 포함하며, 프로세서(150)는 입력 인터페이스(180)를 통해 로봇(100)의 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 구체적으로, 입력 인터페이스(180)는 마이크, 카메라(110)(미도시), 및 리모컨 신호 수신부(미도시) 등과 같은 구성으로 이루어 질 수 있다. 그리고, 입력 인터페이스(180)는 터치 스크린으로서 디스플레이에 포함된 형태로 구현될 수도 있다. 특히, 마이크는 음성 신호를 수신하고, 수신된 음성 신호를 전기 신호로 변환할 수 있다.The
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(150)는 입력 인터페이스(180)를 통해 매니퓰레이터(120)를 이용하여 오브젝트를 파지하기 위한 사용자 명령을 수신할 수 있다. In particular, in various embodiments according to the present disclosure, the
출력 인터페이스(190)는 회로를 포함하며, 프로세서(150)는 출력 인터페이스(190)를 통해 로봇(100)이 수행할 수 있는 다양한 기능을 출력할 수 있다. 그리고, 출력 인터페이스(190)는 디스플레이, 스피커 및 인디케이터 중 적어도 하나를 포함할 수 있다.The
디스플레이는 프로세서(150)의 제어에 의하여 영상 데이터를 출력할 수 있다. 구체적으로, 디스플레이는 프로세서(150)의 제어에 의하여 메모리(140)에 기 저장된 영상을 출력할 수 있다. 특히, 본 개시의 일 실시 예에 따른 디스플레이는 메모리(140)에 저장된 사용자 인터페이스(User Interface)를 표시할 수도 있다. The display may output image data under the control of the
디스플레이는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으며, 또한 디스플레이는 경우에 따라 플렉서블 디스플레이, 투명 디스플레이 등으로 구현되는 것도 가능하다. 다만, 본 개시에 따른 디스플레이가 특정한 종류에 한정되는 것은 아니다.The display may be implemented with a liquid crystal display panel (LCD), organic light emitting diodes (OLED), or the like, and the display may also be implemented with a flexible display, a transparent display, or the like, depending on circumstances. However, the display according to the present disclosure is not limited to a specific type.
스피커는 프로세서(150)의 제어에 의하여 오디오 데이터를 출력할 수 있으며, 인디케이터는 프로세서(150)의 제어에 의하여 점등될 수 있다.The speaker may output audio data under the control of the
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(150)는 출력 인터페이스(190)를 통해 오브젝트의 파지가 진행 중임을 나타내는 정보, 오브젝트의 파지가 완료되었음을 나타내는 정보 등과 같은 다양한 정보를 출력할 수 있다. In particular, in various embodiments according to the present disclosure, the
도 12는 본 개시의 일 실시 예에 따른 로봇(100)의 제어 방법을 나타내는 흐름도이다.12 is a flowchart illustrating a control method of the
도 12를 참조하면, 로봇(100)은 카메라(110)를 통해 오브젝트에 대한 이미지를 획득할 수 있다(S1210). 특히, 본 개시에 있어서 오브젝트에 대한 이미지는 오브젝트에 대한 싱글 뷰(single view) 이미지를 말한다는 것은 전술한 바 있다. Referring to FIG. 12 , the
오브젝트에 대한 이미지가 획득되면, 로봇(100)은 획득된 이미지에 기초하여 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드(point cloud) 정보를 획득할 수 있다(S1210).When an image of an object is obtained, the
일 실시 예에 있어서, 로봇(100)은 포인트 클라우드 정보가 획득되면, 포인트 클라우드 정보에 포함된 노이즈를 제거하기 위한 전처리 과정을 수행하고, 전처리 과정이 수행된 포인트 클라우드 정보에 기초하여 복수의 엣지 포인트 및 복수의 바디 포인트를 식별할 수도 있다.In one embodiment, when point cloud information is acquired, the
포인트 클라우드 정보가 획득되면, 로봇(100)은 복수의 포인트 중 오브젝트의 엣지를 나타내는 복수의 엣지 포인트 및 오브젝트의 엣지를 제외한 바디 영역을 나타내는 복수의 바디 포인트를 식별할 수 있다(S1230).When the point cloud information is obtained, the
일 실시 예에 있어서, 로봇(100)은 복수의 포인트 별로, 복수의 포인트에서 복수의 포인트를 중심으로 하는 기 설정된 크기의 원 안에 포함된 포인트들의 중심점을 향하는 ZMS(zero moment shift) 벡터를 식별할 수 있다. 복수의 포인트 별로 ZMS 벡터가 식별되면, 로봇(100)은 복수의 포인트 중 ZMS 벡터의 크기가 기 설정된 임계 값 이상인 벡터들에 대응되는 포인트들을 엣지 포인트로 식별하며, 복수의 포인트 중 ZMS 벡터의 크기가 임계 값 미만인 벡터들에 대응되는 포인트들을 바디 포인트로 식별할 수 있다.In one embodiment, the
복수의 엣지 포인트 및 복수의 바디 포인트가 식별되면, 로봇(100)은 매니퓰레이터(120)가 복수의 엣지 포인트 및 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득할 수 있다(S1240).If the plurality of edge points and the plurality of body points are identified, the
구체적으로, 로봇(100)은 복수의 엣지 포인트와 복수의 바디 포인트 중 적어도 일부 포인트들을 임의로 샘플링하고, 샘플링된 일부 포인트들 각각에 대한 복수의 포즈 값을 획득할 수 있다. 또한, 로봇(100)은 샘플링 된 일부 포인트가 엣지 포인트인지 아니면 바디 포인트인지에 따라 상이한 방법을 적용하여 복수의 포즈 값을 획득할 수 있다. Specifically, the
일 실시 예에 있어서, 로봇(100)은 매니퓰레이터(120)의 하박 관절을 향하는 방향과 반대 방향을 향하도록 정의된 z축이 식별된 엣지 포인트에 대한 ZMS 벡터의 방향에 대응되도록 하고, 매니퓰레이터(120)에 포함된 하나의 핑거에서 반대 방향의 다른 핑거를 향하도록 정의된 y축이 식별된 엣지 포인트의 표면에 수직인 방향에 대응되도록 하기 위한 매니퓰레이터(120)의 포즈를 식별함으로써, 복수의 포즈 값 중 복수의 엣지 포인트에 대응되는 포즈 값들을 획득할 수 있다. In one embodiment, the
일 실시 예에 있어서, 로봇(100)은 z축이 복수의 포인트의 표면에 수직인 방향에 대응되도록 하고, y축이 복수의 포인트에서 곡률이 가장 큰 방향에 대응되도록 하기 위한 매니퓰레이터(120)의 포즈를 식별함으로써, 복수의 포즈 값 중 복수의 바디 포인트에 대응되는 포즈 값들을 획득할 수 있다. In one embodiment, the
복수의 포즈 값이 획득되면, 로봇(100)은 복수의 포즈 값에 따라 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득할 수 있다(S1250).When a plurality of pose values are obtained, the
여기서, 평가 정보는 매니퓰레이터(120)에 포함된 두 개의 핑거의 표면에서 수직인 방향과 두 개의 핑거가 오브젝트와 접촉되는 접촉 영역의 표면에서 수직인 방향 사이의 각도에 따라 산출되는 제1 스코어, 접촉 영역에 포함된 포인트의 개수에 따라 산출되는 제2 스코어, 두 개의 핑거 중 하나의 핑거와 접촉 영역 사이의 거리 및 두 개의 핑거 중 다른 하나의 핑거와 접촉 영역 사이의 거리 사이의 차이에 따라 산출되는 제3 스코어 및 적어도 일부 포인트가 오브젝트의 무게 중심에 가까운지 여부에 따라 산출되는 제4 스코어 중 적어도 하나를 포함할 수 있다. Here, the evaluation information is a first score calculated according to an angle between a direction perpendicular to the surface of two fingers included in the
로봇(100)은 제1 스코어, 제2 스코어, 제3 스코어 및 제4 스코어의 가중합에 기초하여 최종 스코어를 산출함으로써, 복수의 포즈 값 각각에 대한 평가 정보를 획득할 수 있다.The
평가 정보가 획득되면, 로봇(100)은 평가 정보에 기초하여 복수의 포즈 값 중 하나의 포즈 값을 식별할 수 있다(S1260). 복수의 포즈 값 중 하나의 포즈 값이 식별되면, 로봇(100)은 식별된 하나의 포즈 값에 기초하여 매니퓰레이터(120)가 동작하도록 복수의 모터(130)를 제어할 수 있다(S1270). 구체적으로, 로봇(100)은 복수의 포즈 값 중 평가 정보에 포함된 최종 스코어가 가장 높은 하나의 포즈 값을 식별할 수 있으며, 식별된 하나의 포즈에 기초하여 매니퓰레이터(120)의 동작을 제어함으로써 오브젝트를 파지할 수 있다. When the evaluation information is acquired, the
한편, 상술한 실시 예에 따른 로봇의 제어 방법은 프로그램으로 구현되어 로봇에 제공될 수 있다. 특히, 로봇의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다. Meanwhile, the robot control method according to the above-described embodiment may be implemented as a program and provided to the robot. In particular, a program including a method for controlling a robot may be stored and provided in a non-transitory computer readable medium.
구체적으로, 로봇의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 로봇의 제어 방법은 오브젝트에 대한 이미지를 획득하는 단계, 획득된 이미지에 기초하여 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드 정보(point cloud information)를 획득하는 단계, 복수의 포인트 중 오브젝트의 엣지(edge)를 나타내는 복수의 엣지 포인트 및 오브젝트의 엣지를 제외한 바디(body) 영역을 나타내는 복수의 바디 포인트를 식별하는 단계, 매니퓰레이터(120)가 복수의 엣지 포인트 및 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득하는 단계, 복수의 포즈 값에 따라 매니퓰레이터(120)가 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득하는 단계, 평가 정보에 기초하여 복수의 포즈 값 중 하나의 포즈 값을 식별하는 단계 및 식별된 하나의 포즈 값에 기초하여 매니퓰레이터(120)가 동작하도록 복수의 모터(130)를 제어하는 단계를 포함할 수 있다. Specifically, in a non-transitory computer-readable recording medium containing a program that executes a method for controlling a robot, the method for controlling a robot includes acquiring an image of an object, a plurality of points indicating the object based on the acquired image. Obtaining point cloud information including a plurality of edge points representing an edge of an object among a plurality of points and a plurality of body points representing a body area excluding the edge of the object Identifying, obtaining a plurality of pose values indicating poses when the
이상에서 로봇의 제어 방법, 그리고 로봇의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 로봇에 대한 다양한 실시 예는 로봇의 제어 방법, 그리고 로봇의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.In the above, the control method of the robot and the computer readable recording medium including the program for executing the control method of the robot have been briefly described, but this is only for omitting redundant description, and various embodiments of the robot Of course, it can also be applied to a computer readable recording medium including a control method and a program for executing the control method of the robot.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as . For example, a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리(140)와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store TM ) or between two user devices ( It can be distributed (eg downloaded or uploaded) online, directly between smartphones. In the case of online distribution, at least a portion of a computer program product (eg, a downloadable app) is a device-readable storage such as a manufacturer's server, an application store's server, or a relay server's
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. Each of the components (eg, modules or programs) according to various embodiments of the present disclosure as described above may be composed of a single object or a plurality of entities, and some of the sub-components described above are omitted. or other sub-elements may be further included in various embodiments. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity and perform the same or similar functions performed by each corresponding component prior to integration.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.According to various embodiments, operations performed by modules, programs, or other components may be executed sequentially, in parallel, repetitively, or heuristically, or at least some operations may be executed in a different order, may be omitted, or other operations may be added. can
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.On the other hand, the term "unit" or "module" used in the present disclosure includes units composed of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic blocks, parts, or circuits, for example. can A “unit” or “module” may be an integrated component or a minimum unit or part thereof that performs one or more functions. For example, the module may be composed of an application-specific integrated circuit (ASIC).
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 로봇(100))를 포함할 수 있다. Various embodiments of the present disclosure may be implemented as software including commands stored in a storage medium readable by a machine (eg, a computer). The device calls the stored commands from the storage medium. And, as a device capable of operating according to the called command, it may include an electronic device (eg, the robot 100) according to the disclosed embodiments.
상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. When the command is executed by a processor, the processor may directly or use other elements under the control of the processor to perform a function corresponding to the command. An instruction may include code generated or executed by a compiler or interpreter.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.Although the preferred embodiments of the present disclosure have been shown and described above, the present disclosure is not limited to the specific embodiments described above, and is common in the art to which the disclosure belongs without departing from the gist of the present disclosure claimed in the claims. Of course, various modifications are possible by those with knowledge of, and these modifications should not be individually understood from the technical spirit or perspective of the present disclosure.
100: 로봇
110: 카메라
120: 매니퓰레이터
130: 복수의 모터
140: 메모리
100: robot 110: camera
120: manipulator 130: multiple motors
140: memory
Claims (10)
카메라;
매니퓰레이터(manipulator);
상기 매니퓰레이터의 동작을 제어하기 위한 복수의 모터;
적어도 하나의 인스트럭션(instructions)을 저장하는 메모리; 및
상기 적어도 하나의 인스트럭션을 실행하는 프로세서; 를 포함하고,
상기 프로세서는,
상기 카메라를 통해 오브젝트에 대한 이미지를 획득하고,
상기 획득된 이미지에 기초하여 상기 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드 정보(point cloud information)를 획득하며,
상기 복수의 포인트 중 상기 오브젝트의 엣지(edge)를 나타내는 복수의 엣지 포인트 및 상기 오브젝트의 엣지를 제외한 바디(body) 영역을 나타내는 복수의 바디 포인트를 식별하고,
상기 매니퓰레이터가 상기 복수의 엣지 포인트 및 상기 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 상기 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득하며,
상기 복수의 포즈 값에 따라 상기 매니퓰레이터가 상기 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득하고,
상기 평가 정보에 기초하여 상기 복수의 포즈 값 중 하나의 포즈 값을 식별하고,
상기 식별된 하나의 포즈 값에 기초하여 상기 매니퓰레이터가 동작하도록 상기 복수의 모터를 제어하는 로봇.
in robots,
camera;
manipulators;
a plurality of motors for controlling the operation of the manipulator;
a memory for storing at least one instruction; and
a processor to execute the at least one instruction; including,
the processor,
Obtaining an image of an object through the camera,
Obtaining point cloud information including a plurality of points representing the object based on the obtained image;
Identifying a plurality of edge points representing an edge of the object and a plurality of body points representing a body area excluding the edge of the object among the plurality of points;
obtaining a plurality of pose values representing a pose when the manipulator grips the object by using at least some of the plurality of edge points and the plurality of body points as gripping points, respectively;
obtaining evaluation information representing stability when the manipulator grips the object according to the plurality of pose values;
Identifying one pose value among the plurality of pose values based on the evaluation information;
A robot that controls the plurality of motors to operate the manipulator based on the identified one pose value.
상기 프로세서는,
상기 복수의 포인트 별로, 상기 복수의 포인트에서 상기 복수의 포인트를 중심으로 하는 기 설정된 크기의 원 안에 포함된 포인트들의 중심점을 향하는 ZMS(zero moment shift) 벡터를 식별하고,
상기 복수의 포인트 중 상기 ZMS 벡터의 크기가 기 설정된 임계 값 이상인 벡터들에 대응되는 포인트들을 상기 엣지 포인트로 식별하며,
상기 복수의 포인트 중 상기 ZMS 벡터의 크기가 상기 임계 값 미만인 벡터들에 대응되는 포인트들을 상기 바디 포인트로 식별하는 로봇.
According to claim 1,
the processor,
For each of the plurality of points, a zero moment shift (ZMS) vector directed from the plurality of points to a center point of points included in a circle having a preset size centered on the plurality of points is identified,
Among the plurality of points, points corresponding to vectors having a magnitude of the ZMS vector greater than or equal to a predetermined threshold value are identified as the edge points;
Among the plurality of points, the robot identifies points corresponding to vectors in which the size of the ZMS vector is less than the threshold value as the body point.
상기 프로세서는,
상기 엣지 포인트로 식별된 하나의 포인트에 대한 ZMS 벡터와 상기 카메라에서 상기 하나의 포인트를 향하는 레이(ray) 벡터 사이의 각도가 기 설정된 임계 각도 이상이면, 상기 하나의 포인트를 상기 바디 포인트로 식별하는 로봇.
According to claim 2,
the processor,
If the angle between the ZMS vector for the one point identified as the edge point and the ray vector directed from the camera to the one point is equal to or greater than a preset threshold angle, identifying the one point as the body point robot.
상기 프로세서는,
상기 매니퓰레이터의 하박 관절을 향하는 방향과 반대 방향을 향하도록 정의된 상기 매니퓰레이터의 z축이 상기 식별된 엣지 포인트에 대한 ZMS 벡터의 방향에 대응되도록 하고, 상기 매니퓰레이터에 포함된 하나의 핑거에서 반대 방향의 다른 핑거를 향하도록 정의된 상기 매니퓰레이터의 y축이 상기 식별된 엣지 포인트의 표면에 수직인 방향에 대응되도록 하기 위한 상기 매니퓰레이터의 포즈를 식별함으로써, 상기 복수의 포즈 값 중 상기 복수의 엣지 포인트에 대응되는 포즈 값들을 획득하는 로봇.
According to claim 3,
the processor,
The z-axis of the manipulator, which is defined to face in a direction opposite to the direction toward the lower arm joint of the manipulator, corresponds to the direction of the ZMS vector for the identified edge point, and in one finger included in the manipulator, in the opposite direction Corresponding to the plurality of edge points among the plurality of pose values by identifying poses of the manipulator so that the y-axis of the manipulator, which is defined to face the other finger, corresponds to a direction perpendicular to the surface of the identified edge points. A robot that obtains the pose values to be.
상기 프로세서는,
상기 z축이 상기 복수의 포인트의 표면에 수직인 방향에 대응되도록 하고, 상기 y축이 상기 복수의 포인트에서 곡률이 가장 큰 방향에 대응되도록 하기 위한 상기 매니퓰레이터의 포즈를 식별함으로써, 상기 복수의 포즈 값 중 상기 복수의 바디 포인트에 대응되는 포즈 값들을 획득하는 로봇.
According to claim 4,
the processor,
The plurality of poses by identifying a pose of the manipulator so that the z-axis corresponds to a direction perpendicular to the surface of the plurality of points and the y-axis corresponds to a direction of greatest curvature at the plurality of points A robot that obtains pose values corresponding to the plurality of body points among values.
상기 프로세서는,
상기 복수의 엣지 포인트에 대응되는 포즈 값들 및 상기 복수의 바디 포인트에 대응되는 포즈 값들의 일부 좌표축을 변경함으로써, 상기 복수의 포즈 값을 증강시키는 로봇.
According to claim 5,
the processor,
A robot that augments the plurality of pose values by changing some coordinate axes of pose values corresponding to the plurality of edge points and pose values corresponding to the plurality of body points.
상기 평가 정보는 상기 매니퓰레이터에 포함된 두 개의 핑거의 표면에서 수직인 방향과 상기 두 개의 핑거가 상기 오브젝트와 접촉되는 접촉 영역의 표면에서 수직인 방향 사이의 각도에 따라 산출되는 제1 스코어, 상기 접촉 영역에 포함된 포인트의 개수에 따라 산출되는 제2 스코어, 상기 두 개의 핑거 중 하나의 핑거와 상기 접촉 영역 사이의 거리 및 상기 두 개의 핑거 중 다른 하나의 핑거와 상기 접촉 영역 사이의 거리 사이의 차이에 따라 산출되는 제3 스코어 및 상기 적어도 일부 포인트가 상기 오브젝트의 무게 중심에 가까운지 여부에 따라 산출되는 제4 스코어 중 적어도 하나를 포함하는 로봇.
According to claim 6,
The evaluation information is a first score calculated according to an angle between a direction perpendicular to the surface of two fingers included in the manipulator and a direction perpendicular to the surface of the contact area where the two fingers contact the object, the contact A second score calculated according to the number of points included in the area, a difference between the distance between one of the two fingers and the contact area and the distance between the other of the two fingers and the contact area A robot including at least one of a third score calculated according to and a fourth score calculated according to whether the at least some points are close to the center of gravity of the object.
상기 프로세서는,
상기 제1 스코어, 상기 제2 스코어, 상기 제3 스코어 및 상기 제4 스코어의 가중합에 기초하여 최종 스코어를 산출함으로써, 상기 복수의 포즈 값 각각에 대한 평가 정보를 획득하는 로봇.
According to claim 7,
the processor,
A robot that obtains evaluation information for each of the plurality of pose values by calculating a final score based on a weighted sum of the first score, the second score, the third score, and the fourth score.
상기 프로세서는,
상기 식별된 엣지 포인트에 대한 ZMS 벡터 및 상기 레이 벡터에 기초하여, 상기 이미지에 포함된 비관측 영역에 대응되는 복수의 추정 포인트에 대한 정보를 획득하고,
상기 두 개의 핑거의 표면적에 대한 정보, 상기 매니퓰레이터의 복수의 엣지 포인트, 상기 복수의 바디 포인트 및 상기 복수의 추정 포인트에 기초하여 상기 접촉 영역을 식별하는 로봇.
According to claim 8,
the processor,
Obtaining information on a plurality of estimation points corresponding to a non-observation area included in the image based on the ZMS vector and the ray vector for the identified edge point;
and identifying the contact area based on the information on the surface areas of the two fingers, the plurality of edge points of the manipulator, the plurality of body points, and the plurality of estimated points.
오브젝트에 대한 이미지를 획득하는 단계;
상기 획득된 이미지에 기초하여 상기 오브젝트를 나타내는 복수의 포인트를 포함하는 포인트 클라우드 정보(point cloud information)를 획득하는 단계;
상기 복수의 포인트 중 상기 오브젝트의 엣지(edge)를 나타내는 복수의 엣지 포인트 및 상기 오브젝트의 엣지를 제외한 바디(body) 영역을 나타내는 복수의 바디 포인트를 식별하는 단계;
상기 매니퓰레이터가 상기 복수의 엣지 포인트 및 상기 복수의 바디 포인트 중 적어도 일부 포인트들 각각을 파지점으로 하여 상기 오브젝트를 파지하는 경우의 포즈를 나타내는 복수의 포즈 값을 획득하는 단계;
상기 복수의 포즈 값에 따라 상기 매니퓰레이터가 상기 오브젝트를 파지하는 경우의 안정성을 나타내는 평가 정보를 획득하는 단계;
상기 평가 정보에 기초하여 상기 복수의 포즈 값 중 하나의 포즈 값을 식별하는 단계; 및
상기 식별된 하나의 포즈 값에 기초하여 상기 매니퓰레이터가 동작하도록 상기 복수의 모터를 제어하는 단계; 를 포함하는 로봇.
A control method of a robot including a manipulator and a plurality of motors for controlling the operation of the manipulator, comprising:
acquiring an image of the object;
obtaining point cloud information including a plurality of points representing the object based on the obtained image;
identifying a plurality of edge points representing an edge of the object and a plurality of body points representing a body area excluding the edge of the object from among the plurality of points;
obtaining a plurality of pose values representing poses when the manipulator grips the object by using at least some of the plurality of edge points and the plurality of body points as gripping points;
obtaining evaluation information representing stability when the manipulator grips the object according to the plurality of pose values;
identifying one of the plurality of pose values based on the evaluation information; and
controlling the plurality of motors to operate the manipulator based on the identified one pose value; A robot comprising a.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210114667 | 2021-08-30 | ||
KR20210114667 | 2021-08-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230032852A true KR20230032852A (en) | 2023-03-07 |
Family
ID=85513526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220062330A KR20230032852A (en) | 2021-08-30 | 2022-05-20 | Robot and controlling method of robot |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230032852A (en) |
-
2022
- 2022-05-20 KR KR1020220062330A patent/KR20230032852A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10222868B2 (en) | Wearable device and control method using gestures | |
Li | Human–robot interaction based on gesture and movement recognition | |
US9811555B2 (en) | Recognition of free-form gestures from orientation tracking of a handheld or wearable device | |
JP6927938B2 (en) | Robot system incorporating cloud service system | |
US11625841B2 (en) | Localization and tracking method and platform, head-mounted display system, and computer-readable storage medium | |
EP3007030B1 (en) | Portable device and control method via gestures | |
Gośliński et al. | Performance comparison of EKF-based algorithms for orientation estimation on Android platform | |
WO2020190166A1 (en) | Method and system for grasping an object by means of a robotic device | |
US11279036B2 (en) | Methods and systems for implementing customized motions based on individual profiles for identified users | |
CN103529944A (en) | Human body movement identification method based on Kinect | |
CN109955244B (en) | Grabbing control method and device based on visual servo and robot | |
EP3725217A1 (en) | Electronic device and method for measuring heart rate | |
CN113119104B (en) | Mechanical arm control method, mechanical arm control device, computing equipment and system | |
Barber et al. | Visual and tactile interfaces for bi-directional human robot communication | |
KR20230032852A (en) | Robot and controlling method of robot | |
CN111290574A (en) | Method and device for controlling unmanned aerial vehicle by using gestures and readable storage medium | |
WO2023250267A1 (en) | Robotic learning of tasks using augmented reality | |
KR102565444B1 (en) | Method and apparatus for identifying object | |
JP6455869B2 (en) | Robot, robot system, control device, and control method | |
US10678337B2 (en) | Context aware movement recognition system | |
CN114882587A (en) | Method, apparatus, electronic device, and medium for generating countermeasure sample | |
CN116600945A (en) | Pixel-level prediction for grab generation | |
JP2021122868A (en) | Robot, control method, information processor, and program | |
US10902629B2 (en) | Information processing device, information processing method, and program | |
JP7265656B2 (en) | Methods and systems for recognizing human activity in industrial environments |