KR20230139061A - Apparatus for controlling robot posture - Google Patents

Apparatus for controlling robot posture Download PDF

Info

Publication number
KR20230139061A
KR20230139061A KR1020220037203A KR20220037203A KR20230139061A KR 20230139061 A KR20230139061 A KR 20230139061A KR 1020220037203 A KR1020220037203 A KR 1020220037203A KR 20220037203 A KR20220037203 A KR 20220037203A KR 20230139061 A KR20230139061 A KR 20230139061A
Authority
KR
South Korea
Prior art keywords
robot
camera
posture control
data
robot hand
Prior art date
Application number
KR1020220037203A
Other languages
Korean (ko)
Inventor
한용희
임성진
Original Assignee
두산로보틱스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 두산로보틱스 주식회사 filed Critical 두산로보틱스 주식회사
Priority to KR1020220037203A priority Critical patent/KR20230139061A/en
Publication of KR20230139061A publication Critical patent/KR20230139061A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 로봇 핸드의 자세를 자동으로 변환하는 피벗 모션을 이용하여 로봇과 카메라 간에 신속하고 정확하게 캘리브레이션을 수행하고, 작업면에 수직한 로봇 자세를 구현하여 로봇 작업의 정확성을 향상시킬 수 있는 로봇자세 제어장치에 관한 것이다.
본 발명의 실시예에 따른 로봇자세 제어장치는,
로봇 핸드의 자세 데이터와, 상기 로봇 핸드에 부착된 카메라가 상기 로봇 핸드의 작업 영역에 배치된 체스보드를 촬영한 복수개의 체스보드 이미지를 이용하여 상기 카메라와 로봇 핸드 간의 캘리브레이션(calibration)을 수행하여 캘리브레이션 데이터를 생성하는 캘리브레이션부; 입력된 높이 정보와 상기 캘리브레이션 데이터를 이용하여 상기 로봇 핸드의 작업 영역에 수직인 3차원 작업 포즈를 생성하는 수직자세 제어부;를 포함한다.
The present invention uses a pivot motion that automatically changes the posture of the robot hand to quickly and accurately calibrate between the robot and the camera, and implements a robot posture perpendicular to the work surface to improve the accuracy of robot work. It's about control devices.
The robot posture control device according to an embodiment of the present invention,
Calibration is performed between the camera and the robot hand using the posture data of the robot hand and a plurality of chess board images captured by a camera attached to the robot hand of a chess board placed in the work area of the robot hand. A calibration unit that generates calibration data; It includes a vertical posture control unit that generates a three-dimensional work pose perpendicular to the work area of the robot hand using the input height information and the calibration data.

Description

로봇자세 제어장치 {Apparatus for controlling robot posture}Robot posture control device {Apparatus for controlling robot posture}

본 발명은 로봇 핸드의 자세를 자동으로 변환하는 피벗 모션을 이용하여 로봇과 카메라 간에 신속하고 정확하게 캘리브레이션을 수행하고, 작업면에 수직한 로봇 자세를 구현하여 로봇 작업의 정확성을 향상시킬 수 있는 로봇자세 제어장치에 관한 것이다. The present invention uses a pivot motion that automatically changes the posture of the robot hand to quickly and accurately calibrate between the robot and the camera, and implements a robot posture perpendicular to the work surface to improve the accuracy of robot work. It's about control devices.

일반적으로, 전기적 또는 자기적인 작용을 이용하여 인간의 동작과 닮은 운동을 행하는 기계장치를 로봇이라고 한다. 초기의 로봇은 생산 현장에서의 작업 자동화ㆍ무인화 등을 목적으로 한 매니퓰레이터(manipulator)나 반송 로봇 등의 산업용 로봇으로 인간을 대신하여 위험한 작업이나 단순한 반복 작업, 큰 힘을 필요로 하는 작업을 수행하였으나, 최근에는 인간과 유사한 관절체계를 가지고 인간의 작업 및 생활공간에서 인간과 공존하며 다양한 서비스를 제공하는 인간형 로봇(humanoid robot)의 연구 개발이 활발하게 진행되고 있다.In general, a mechanical device that performs movements similar to human movements using electrical or magnetic action is called a robot. Early robots were industrial robots such as manipulators and transfer robots aimed at automating and unmanning work at production sites. They performed dangerous tasks, simple repetitive tasks, and tasks requiring a lot of force on behalf of humans. , Recently, research and development of humanoid robots, which have a joint system similar to that of humans and coexist with humans in their work and living spaces and provide various services, are actively underway.

이러한 인간형 로봇은 전기적ㆍ기계적 메카니즘에 의해서 팔이나 손의 동작에 가깝게 운동할 수 있도록 만들어진 매니퓰레이터를 이용하여 작업을 수행한다. 현재 사용되고 있는 대부분의 매니퓰레이터는 여러 개의 링크(link)들이 서로 연결되어 구성된다. 각 링크들의 연결 부위를 관절(joint)이라 하는데 매니퓰레이터는 이러한 링크와 관절들 사이의 기하학적인 관계에 따라 운동 특성이 결정된다. 이 기하학적인 관계를 수학적으로 표현한 것이 기구학(Kinematics)이며 대부분의 매니퓰레이터는 이러한 기구학적 특성(kinematics characteristic)을 가지고 작업을 수행하기 위한 방향(목표 위치)으로 로봇 핸드(예컨대, 엔드 이펙터)를 이동시킨다. These humanoid robots perform tasks using manipulators that are designed to move closer to arm or hand movements through electrical and mechanical mechanisms. Most manipulators currently in use are composed of multiple links connected to each other. The connection part of each link is called a joint, and the movement characteristics of the manipulator are determined by the geometric relationship between these links and joints. Kinematics is a mathematical expression of this geometric relationship, and most manipulators use these kinematics characteristics to move the robot hand (e.g., end effector) in the direction (target position) to perform the task. .

한편, 카메라를 부착한 로봇시스템의 보정은 크게 로봇 베이스와 로봇 핸드의 보정, 카메라의 보정, 로봇 베이스 또는 로봇 핸드와 카메라의 보정(hand/eye calibration)으로 분류된다.Meanwhile, calibration of a robot system with a camera attached is largely classified into calibration of the robot base and robot hand, calibration of the camera, and calibration of the robot base or robot hand and camera (hand/eye calibration).

종래의 로봇 핸드와 카메라의 보정은, 초기의 로봇 자세 데이터 및 카메라로 촬영한 체스보드 이미지에서 체스보드의 코너점을 검출한 후, 작업자가 로봇의 자세를 수동으로 움직여서 해당 자세에서의 로봇 자세 데이터 및 체스보드 코너점을 검출하는 작업을 수회 반복 수행하여 서로 다른 로봇 자세 및 이에 대응하는 체스보드 코너점을 이용한다.Calibration of the conventional robot hand and camera involves detecting the corner point of the chessboard from the initial robot posture data and the chessboard image taken with a camera, and then having the operator manually move the robot's posture to obtain robot posture data in that posture. And the task of detecting the chessboard corner point is repeated several times to use different robot postures and corresponding chessboard corner points.

이러한 방식은, 작업자가 수동으로 로봇을 움직여야 하므로 휴먼 에러(human error)가 발생하며, 로봇-카메라 간 보정 절차에 걸리는 시간 소모가 증가하는 문제가 있다.In this method, human error occurs because the operator must manually move the robot, and there is a problem that time consumption for the calibration procedure between the robot and the camera increases.

또한 한편, 카메라는 2D 카메라 또는 3D 카메라를 사용할 수 있는데, RGB 이미지를 사용하는 2D 카메라의 경우, 카메라의 수평 방향과 작업 영역(작업면)이 정확히 수평을 이루어야 인식 성능이 향상된다.Additionally, the camera can be a 2D camera or a 3D camera. In the case of a 2D camera using RGB images, recognition performance improves only when the horizontal direction of the camera and the work area (work surface) are exactly horizontal.

그러나, 현재 작업자의 수동 작업에 의해 카메라와 작업 영역의 수평을 조절하고 있어서 작업면에 수직한 로봇 자세를 구현하기 어려워서 로봇 작업의 정확성을 떨어지는 문제가 있다.However, since the camera and the level of the work area are currently adjusted by the operator's manual work, it is difficult to implement a robot posture perpendicular to the work surface, which reduces the accuracy of the robot work.

한국등록특허 10-1465652호Korean Patent No. 10-1465652

본 발명은 로봇 핸드의 자세를 자동으로 변환하는 피벗 모션을 이용하여 로봇과 카메라 간에 신속하고 정확하게 캘리브레이션을 수행하고, 작업면에 수직한 로봇 자세를 구현하여 로봇 작업의 정확성을 향상시킬 수 있는 로봇자세 제어장치를 제공하는 것을 목적으로 한다.The present invention uses a pivot motion that automatically changes the posture of the robot hand to quickly and accurately calibrate between the robot and the camera, and implements a robot posture perpendicular to the work surface to improve the accuracy of robot work. The purpose is to provide a control device.

본 발명의 실시예에 따른 로봇자세 제어장치는,The robot posture control device according to an embodiment of the present invention,

로봇 핸드의 자세 데이터와, 상기 로봇 핸드에 부착된 카메라가 상기 로봇 핸드의 작업 영역에 배치된 체스보드를 촬영한 복수개의 체스보드 이미지를 이용하여 상기 카메라와 로봇 핸드 간의 캘리브레이션(calibration)을 수행하여 캘리브레이션 데이터를 생성하는 캘리브레이션부; 입력된 높이 정보와 상기 캘리브레이션 데이터를 이용하여 상기 로봇 핸드의 작업 영역에 수직인 3차원 작업 포즈를 생성하는 수직자세 제어부;를 포함한다.Calibration is performed between the camera and the robot hand using the posture data of the robot hand and a plurality of chess board images captured by a camera attached to the robot hand of a chess board placed in the work area of the robot hand. A calibration unit that generates calibration data; It includes a vertical posture control unit that generates a three-dimensional work pose perpendicular to the work area of the robot hand using the input height information and the calibration data.

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 캘리브레이션부는, 상기 로봇 핸드의 자세를 자동으로 변환하는 피벗 모션을 이용하여 복수개의 자세 데이터를 생성하고, 변환된 복수개의 자세 데이터에 따른 복수개의 체스보드 이미지를 이용하여 상기 캘리브레이션 데이터를 생성할 수 있다.In the robot posture control device according to an embodiment of the present invention, the calibration unit generates a plurality of posture data using a pivot motion that automatically converts the posture of the robot hand, and generates a plurality of posture data according to the converted plurality of posture data. The calibration data can be generated using chessboard images.

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 피벗 모션은, 상기 체스보드의 중심점인 피봇 앵커를 기준으로 기설정된 높이를 유지하면서 서로 다른 방향을 취할 수 있도록 설정된 로봇 모션으로, 상기 로봇 핸드를 포함하는 로봇의 링크 길이를 고려하여 상기 체스보드 이미지가 상기 로봇 핸드의 작업 영역 내에 위치하도록 하며, 상기 카메라가 상기 체스보드 전체를 촬영하도록 설정된다. In the robot posture control device according to an embodiment of the present invention, the pivot motion is a robot motion set to take different directions while maintaining a preset height with respect to the pivot anchor, which is the center point of the chessboard, wherein the robot Considering the link length of the robot including the hand, the chessboard image is positioned within the work area of the robot hand, and the camera is set to capture the entire chessboard.

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 피벗 모션은,In the robot posture control device according to an embodiment of the present invention, the pivot motion is,

상기 피봇 앵커를 원점으로 하고 상기 기설정된 높이를 반지름으로 하는 가상의 3차원 피봇 구면 상에 형성된 복수개의 위치 데이터로 이루어질 수 있다.It may be composed of a plurality of position data formed on a virtual three-dimensional pivot sphere with the pivot anchor as the origin and the preset height as the radius.

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 복수개의 위치 데이터 중 일부는 상기 피봇 구면 상에서 아우터 서클을 형성하고, 상기 복수개의 위치 데이터 중 나머지는 상기 피봇 구면 상에서 적어도 하나의 이너 서클을 형성할 수 있다. In the robot posture control device according to an embodiment of the present invention, some of the plurality of position data form an outer circle on the pivot sphere, and the remainder of the plurality of position data form at least one inner circle on the pivot sphere. can be formed.

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 아우터 서클과 상기 이너 서클 각각에 배치되는 위치 데이터는, 위치 데이터의 개수(N)에 따라 상기 아우터 서클과 상기 이너 서클을 균분하는 각도 크기(360°/N)로 형성될 수 있다.In the robot posture control device according to an embodiment of the present invention, the position data disposed in each of the outer circle and the inner circle is an angle size that equally distributes the outer circle and the inner circle according to the number (N) of position data. It can be formed as (360°/N).

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 캘리브레이션부는, 상기 카메라가 상기 체스보드 전체를 촬영할 수 있도록 하기 식 (1)의 관계식에 따라 상기 카메라의 틸팅 각도를 제어할 수 있다.In the robot posture control device according to an embodiment of the present invention, the calibration unit may control the tilting angle of the camera according to the relationship of equation (1) below so that the camera can capture the entire chessboard.

식 (1) : Rx = tan-1 ((r*sinθ)/h)Equation (1): Rx = tan -1 ((r*sinθ)/h)

Ry = tan-1 ((r*cosθ)/h)Ry = tan -1 ((r*cosθ)/h)

(여기서, Rx 및 Ry는 피봇 앵커와 초기 위치 데이터가 이루는 직선을 기준으로 피봇 앵커와 현재 위치 데이터가 이루는 선분의 x축 틸팅 각도 및 y축 틸팅 각도이고, r은 피봇 구면의 평면도인 xy평면 상의 초기 위치 데이터와 현재 위치 데이터 사이의 거리이며, h는 피봇 앵커와 초기 위치 데이터 간 설정된 높이이고, θ는 x축을 기준으로 초기 위치 데이터와 현재 위치 데이터가 xy 평면 상에서 이루는 각도임)(Here, Rx and Ry are the x-axis tilting angle and y-axis tilting angle of the line segment formed by the pivot anchor and the current position data based on the straight line formed by the pivot anchor and the initial position data, and r is the is the distance between the initial position data and the current position data, h is the height set between the pivot anchor and the initial position data, and θ is the angle formed by the initial position data and the current position data on the xy plane based on the x axis)

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 수직자세 제어부는, 상기 카메라를 기준으로 상기 로봇 핸드의 위치()를 산출하고, 로봇 베이스 기준으로 상기 체스보드의 위치()를 산출한 후, 상기 3차원 작업 포즈()를 생성할 수 있다.In the robot posture control device according to an embodiment of the present invention, the vertical posture control unit is configured to determine the position of the robot hand relative to the camera ( ) is calculated, and the position of the chessboard relative to the robot base ( ) After calculating the 3D work pose ( ) can be created.

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 카메라 기준 로봇 핸드의 위치()는 상기 캘리브레이션부에서 생성된 캘리브레이션 데이터이고, 상기 로봇 베이스 기준 체스보드의 위치()는 하기의 식 (3)을 이용하여 산출할 수 있다.In the robot posture control device according to an embodiment of the present invention, the position of the robot hand relative to the camera ( ) is the calibration data generated by the calibration unit, and the position of the chessboard relative to the robot base ( ) can be calculated using equation (3) below.

식 (3) : Equation (3):

(여기서, 는 로봇 베이스 기준 카메라의 위치이며, 는 카메라 기준 체스보드의 위치임)(here, is the position of the camera relative to the robot base, is the position of the chessboard relative to the camera)

본 발명의 실시예에 따른 로봇자세 제어장치에 있어서, 상기 수직자세 제어부는, 하기의 식 (4)를 이용하여 상기 3차원 작업 포즈()를 산출하여 생성할 수 있다.In the robot posture control device according to an embodiment of the present invention, the vertical posture control unit uses the equation (4) below to determine the three-dimensional work pose ( ) can be generated by calculating.

식 (4) : Equation (4):

(여기서, 는 로봇 베이스 기준 체스보드의 위치이고, 는 카메라 기준 로봇 핸드의 위치이며, 의 역행렬임)(here, is the position of the chessboard relative to the robot base, is the position of the robot hand relative to the camera, Is is the inverse matrix of)

기타 본 발명의 다양한 측면에 따른 구현예들의 구체적인 사항은 이하의 상세한 설명에 포함되어 있다.Details of other implementations of various aspects of the present invention are included in the detailed description below.

본 발명의 실시 형태에 따르면, 로봇 핸드의 자세를 자동으로 변환하는 피벗 모션을 이용하여 로봇과 카메라 간에 신속하고 정확하게 캘리브레이션을 수행할 수 있다. 또한, 작업면에 수직한 로봇 자세를 구현하여 로봇 작업의 정확성을 향상시킬 수 있다. According to an embodiment of the present invention, calibration between a robot and a camera can be performed quickly and accurately using a pivot motion that automatically changes the posture of the robot hand. Additionally, the accuracy of robot work can be improved by implementing a robot posture perpendicular to the work surface.

도 1은 본 발명의 일 실시예에 따른 로봇 자세 제어 장치가 도시된 블록도이다.
도 2는 본 발명의 일 실시예에 따른 로봇 자세 제어 장치의 제어 대상인 로봇 핸드가 예시된 도면이다.
도 3은 캘리브레이션 데이터 생성을 위해 캘리브레이션부에 의해 자동 변환되는 카메라의 이동 궤적인 피벗 모션이 도시된 도면이다.
도 4는 카메라가 체스보드 전체를 촬영할 수 있도록 틸팅 각도를 제어하는 과정을 설명하기 위한 도면이다.
도 5는 틸팅 각도를 구하는 과정을 예시적으로 설명하기 위한 도면이다.
도 6 및 도 7은 로봇의 수직 자세 제어 필요성을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 로봇 자세 제어 장치의 동작 과정이 도시된 타임 스케줄이다.
도 9은 본 발명의 실시예에 따른, 컴퓨팅 장치가 도시된 도면이다.
Figure 1 is a block diagram showing a robot posture control device according to an embodiment of the present invention.
Figure 2 is a diagram illustrating a robot hand that is controlled by a robot posture control device according to an embodiment of the present invention.
Figure 3 is a diagram showing a pivot motion, which is a movement trajectory of a camera that is automatically converted by a calibration unit to generate calibration data.
Figure 4 is a diagram for explaining the process of controlling the tilting angle so that the camera can capture the entire chessboard.
Figure 5 is a diagram for exemplarily explaining the process of calculating the tilting angle.
Figures 6 and 7 are diagrams to explain the necessity of controlling the vertical posture of the robot.
Figure 8 is a time schedule showing the operation process of the robot posture control device according to an embodiment of the present invention.
Figure 9 is a diagram illustrating a computing device according to an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예를 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can be modified in various ways and can have various embodiments, specific embodiments will be exemplified and explained in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all transformations, equivalents, and substitutes included in the spirit and technical scope of the present invention.

본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, '포함하다' 또는 '가지다' 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 이하, 도면을 참조하여 본 발명의 일 실시예에 따른 로봇자세 제어장치를 설명한다. The terms used in the present invention are only used to describe specific embodiments and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In the present invention, terms such as 'include' or 'have' are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof. Hereinafter, a robot posture control device according to an embodiment of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 로봇자세 제어장치가 도시된 블록도이고, 도 2는 로봇자세 제어장치의 제어 대상인 로봇 핸드가 예시된 도면이다.Figure 1 is a block diagram showing a robot posture control device according to an embodiment of the present invention, and Figure 2 is a diagram illustrating a robot hand that is a control target of the robot posture control device.

도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 로봇자세 제어장치(200)는, 캘리브레이션부(210)와 수직자세 제어부(220)를 포함하고, 로봇자세 제어장치(200)의 제어 대상인 로봇(100)은 로봇 핸드(110)와 카메라(120)를 포함한다. 로봇자세 제어장치(200)는 제어 대상인 로봇(100)의 내부 또는 외부에 존재할 수 있다. 편의상, 도면에서 로봇자세 제어장치(200)를 로봇 제어기로 도시한다.1 and 2, the robot posture control device 200 according to an embodiment of the present invention includes a calibration unit 210 and a vertical posture control unit 220, and the robot posture control device 200 The robot 100 to be controlled includes a robot hand 110 and a camera 120. The robot posture control device 200 may exist inside or outside the robot 100 to be controlled. For convenience, the robot posture control device 200 is shown as a robot controller in the drawing.

로봇 핸드(110)는 적어도 하나 이상의 링크(111)들이 서로 연결되어 구성되고, 관절(112)은 링크들을 연결한다. 로봇 핸드(110)는 링크와 관절들 사이의 기하학적인 관계에 따라 운동 특성이 결정된다. 앤드 이펙터(113)는 로봇이 작업을 할 때 작업 대상에 직접 작용하는 기능을 가진 부분으로, 예를 들어, 그리퍼(Gripper)일 수 있다.The robot hand 110 is composed of at least one link 111 connected to each other, and the joint 112 connects the links. The movement characteristics of the robot hand 110 are determined according to the geometric relationship between links and joints. The end effector 113 is a part that has a function of directly acting on the work object when the robot performs work, and may be, for example, a gripper.

카메라(120)는 로봇(100)의 말단인 엔드 이펙터(113)에 탑재되어 로봇(100)의 작업 영역 내에 존재하는 체스보드(CB)를 촬영하여 체스보드 이미지를 획득할 수 있다. 또한, 카메라(120)는 로봇의 작업을 위하여 필요한 영상을 획득할 수 있다. 카메라(120)는 엔드 이펙터(113)와 함께 회전 또는 이동할 수 있다. 본 발명에서 카메라(120)는 상대적으로 저가이며, 깊이 이미지를 획득할 수 없는 2D 비전 카메라이다.The camera 120 is mounted on the end effector 113, which is the end of the robot 100, and can obtain a chess board image by photographing the chess board (CB) existing in the work area of the robot 100. Additionally, the camera 120 can acquire images necessary for the robot's work. The camera 120 may rotate or move together with the end effector 113. In the present invention, the camera 120 is a relatively inexpensive 2D vision camera that cannot acquire depth images.

링크(111), 엔드 이펙터(113), 카메라(120)는 제어 장치(200)와 I/O 버스, USB, RS 232c 등과 같은 유선 통신 수단 또는, TCP/IP, IR 적외선 통신, 블루투스(Bluetooth), 지그비(ZigBee), RFID(Radio Frequency Identification) 등의 무선 통신 수단에 의해 연결되어 유선 통신 또는 무선 통신으로 정보를 송수신할 수 있다.The link 111, the end effector 113, and the camera 120 are connected to the control device 200 and a wired communication means such as an I/O bus, USB, RS 232c, etc., or TCP/IP, IR infrared communication, or Bluetooth. , ZigBee, RFID (Radio Frequency Identification), etc. can be connected by wireless communication means to transmit and receive information through wired or wireless communication.

로봇자세 제어장치(200)는 로봇 핸드(110)의 자세를 자동으로 변환하는 피벗 모션을 이용하여 로봇과 카메라 간에 신속하고 정확하게 캘리브레이션을 수행하고, 로봇 핸드(110)의 자세를 작업면에 수직하게 배치한다. 로봇자세 제어장치(200)는 캘리브레이션부(210)와 수직자세 제어부(220)를 포함한다.The robot posture control device 200 performs quick and accurate calibration between the robot and the camera using a pivot motion that automatically changes the posture of the robot hand 110, and adjusts the posture of the robot hand 110 perpendicular to the work surface. Place it. The robot posture control device 200 includes a calibration unit 210 and a vertical posture control unit 220.

캘리브레이션부(210)는 로봇 핸드(110)의 자세 데이터와 카메라(120)가 로봇 핸드의 작업 영역에 배치된 체스보드(CB)를 촬영한 복수개의 체스보드 이미지를 이용하여 카메라(120)와 로봇 핸드(110) 간의 캘리브레이션(calibration)을 수행하여 캘리브레이션 데이터를 생성한다.The calibration unit 210 uses the posture data of the robot hand 110 and a plurality of chess board images taken by the camera 120 of the chess board (CB) placed in the work area of the robot hand to calibrate the camera 120 and the robot. Calibration between hands 110 is performed to generate calibration data.

종래의 캘리브레이션은 작업자가 로봇의 자세를 수동으로 움직여서 해당 자세에서의 로봇 자세 데이터 및 체스보드 코너점을 검출하는 작업을 수회 반복 수행하는 것이나, 이에 의하면 작업자가 수동으로 로봇을 움직여야 하므로 휴먼 에러(human error)가 발생하며, 로봇-카메라 간 보정 절차에 걸리는 시간 소모가 증가하는 문제가 있다.In the conventional calibration, the operator manually moves the robot's posture and detects the robot's posture data and chessboard corner points in the corresponding posture, repeating the process several times. However, according to this, the operator must manually move the robot, so human error (human error) occurs. error) occurs, and there is a problem that the time consumption for the calibration procedure between the robot and the camera increases.

이를 해소하기 위해, 본 발명의 실시예에서 캘리브레이션부(210)는 로봇 핸드(110)의 자세를 자동으로 변환하는 피벗 모션(pivot motion)을 이용하여 복수개의 자세 데이터를 생성하고, 변환된 복수개의 자세 데이터에 따른 복수개의 체스보드 이미지를 이용하여 캘리브레이션 데이터를 생성한다.To solve this problem, in an embodiment of the present invention, the calibration unit 210 generates a plurality of posture data using a pivot motion that automatically converts the posture of the robot hand 110, and generates a plurality of converted posture data. Calibration data is generated using a plurality of chessboard images according to posture data.

본 명세서에서, 피벗 모션은 다음 조건을 만족하도록 정의한다.In this specification, pivot motion is defined to satisfy the following conditions.

조건 1. 피봇 앵커(pivot anchor)를 기준으로 초기 설정된 높이(h)를 유지하면서 서로 다른 방향(orientation)을 취할 수 있도록 설정된 로봇 모션Condition 1. Robot motion set to take different orientations while maintaining the initially set height (h) based on the pivot anchor.

조건 2. 로봇의 링크 길이를 고려하여 로봇의 작업 영역을 벗어나지 않도록 설정된 로봇 모션Condition 2. Robot motion set so as not to leave the robot's work area, taking into account the robot's link length

조건 3. 카메라가 체스보드 전체를 촬영할 수 있도록 설정된 로봇 모션Condition 3. Robot motion set so that the camera can capture the entire chessboard.

이하, 상기와 같이 정의되는 피벗 모션에 대해 도 3 및 도 4를 참조하여 설명한다. 도 3은 캘리브레이션 데이터 생성을 위해 캘리브레이션부에 의해 자동 변환되는 카메라의 이동 궤적인 피벗 모션이 도시된 도면이고, 도 4는 카메라가 체스보드 전체를 촬영할 수 있도록 틸팅 각도를 제어하는 과정을 설명하기 위한 도면이며, 도 5는 틸팅 각도를 구하는 과정을 예시적으로 설명하기 위한 도면이다. Hereinafter, the pivot motion defined as above will be described with reference to FIGS. 3 and 4. Figure 3 is a diagram showing the pivot motion, which is the movement trajectory of the camera automatically converted by the calibration unit to generate calibration data, and Figure 4 is a diagram for explaining the process of controlling the tilting angle so that the camera can photograph the entire chessboard. It is a drawing, and FIG. 5 is a drawing for exemplarily explaining the process of calculating the tilting angle.

도 3의 (a)는 피벗 모션을 상부에서 바라본 평면으로 3차원 직교 좌표의 xy 평면에 해당한다. 도 3의 (b)는 도 3의 (a)의 A-A'라인에서 바라본 피벗 모션 측면으로 3차원 직교 좌표의 xz 평면에 해당한다. 도 3의 (c)는 도 3의 (a)의 B-B'라인에서 바라본 피벗 모션 측면으로 3차원 직교 좌표의 yz 평면에 해당한다.Figure 3(a) is a plane viewed from the top of the pivot motion and corresponds to the xy plane of three-dimensional orthogonal coordinates. Figure 3(b) corresponds to the xz plane of three-dimensional Cartesian coordinates in terms of the pivot motion viewed from line A-A' in Figure 3(a). Figure 3(c) corresponds to the yz plane of three-dimensional Cartesian coordinates in terms of the pivot motion viewed from line B-B' in Figure 3(a).

도 3의 (a) 내지 (c)를 참조하면, 피벗 모션은 피봇 앵커(PA)를 원점으로 하고 기설정된 높이(h)를 반지름으로 하는 가상의 3차원 구면(PM, 이하 '피봇 구면'이라 함) 상에 형성된 복수개의 위치 데이터(도면에서 점으로 표시됨)로 이루어지는 카메라의 이동 궤적이다. Referring to Figures 3 (a) to (c), the pivot motion is a virtual three-dimensional sphere (PM, hereinafter referred to as 'pivot sphere') with the pivot anchor (PA) as the origin and the preset height (h) as the radius. It is a movement trajectory of a camera consisting of a plurality of position data (indicated by dots in the drawing) formed on the camera.

여기서, 피봇 앵커(PA)는 캘리브레이션을 위한 체스보드(CB)의 중심점이고, 위치 데이터는 체스보드 코너점을 검출하기 위한 불연속 데이터이다. 위치 데이터는 복수개의 자세 데이터의 개수와 동일한 개수로 마련될 수 있다. 예를 들어, 자세 데이터 및 위치 데이터는 20개로 설정될 수 있으며, 반드시 이에 한정되는 것은 아니다. 도 3에서는 초기 위치 데이터(P0)를 포함하여 21개의 위치 데이터가 피벗 모션을 이루는 것이 예시되어 있다. 초기 위치 데이터(P0)는 피봇 구면(PM)의 원점에 배치된다.Here, the pivot anchor (PA) is the center point of the chessboard (CB) for calibration, and the position data is discontinuous data for detecting the chessboard corner point. The position data may be provided in the same number as the plurality of posture data. For example, posture data and location data may be set to 20, but are not necessarily limited thereto. In Figure 3, it is illustrated that 21 pieces of position data, including initial position data (P0), form a pivot motion. The initial position data (P0) is placed at the origin of the pivot sphere (PM).

도 3의 (a)를 참조하면, 복수개의 위치 데이터는 상기 조건 1 내지 조건 3을 만족하는 피봇 구면(PM) 상에 규칙적으로 또는 불규칙적으로 배치될 수 있다. Referring to (a) of FIG. 3, a plurality of position data may be arranged regularly or irregularly on the pivot sphere (PM) satisfying conditions 1 to 3 above.

캘리브레이션 정확도를 향상시키기 위해, 복수개의 위치 데이터 중 일부는 피봇 구면(PM) 상에서 아우터 서클(OC)을 형성하고, 복수개의 위치 데이터 중 나머지는 피봇 구면(PM) 상에서 적어도 하나의 이너 서클(IC)을 형성할 수 있다. 도 3 (a)는 이너 서클(IC)이 하나인 경우를 예시한다.In order to improve calibration accuracy, some of the plurality of position data forms an outer circle (OC) on the pivot sphere (PM), and the remainder of the plurality of position data forms at least one inner circle (IC) on the pivot sphere (PM). can be formed. Figure 3 (a) illustrates the case where there is one inner circle (IC).

이너 서클(IC)의 개수에 따라 이너 서클(IC)의 반경은 아우터 서클(OC)의 반경을 균분하는 크기로 형성될 수 있다. 예를 들어, 도 3의 (a)와 같이 이너 서클(IC)이 하나인 경우, 이너 서클(IC)의 반경은 아우터 서클(OC)의 반경의 1/2 크기로 형성될 수 있다. 만약, 이너 서클(IC)이 2개인 경우, 이너 서클(IC)의 반경은 아우터 서클(OC)의 반경의 1/3 크기로 형성될 수 있다.Depending on the number of inner circles (IC), the radius of the inner circle (IC) may be formed in a size that equalizes the radius of the outer circle (OC). For example, when there is one inner circle (IC) as shown in (a) of FIG. 3, the radius of the inner circle (IC) may be formed to be 1/2 the radius of the outer circle (OC). If there are two inner circles (IC), the radius of the inner circle (IC) may be formed to be 1/3 of the radius of the outer circle (OC).

그리고, 아우터 서클(OC)과 이너 서클(IC) 각각에 배치되는 위치 데이터는, 위치 데이터의 개수(N)에 따라 아우터 서클(OC)과 이너 서클(IC)을 균분하는 각도 크기(360°/N)로 형성될 수 있다. 예를 들어, 도 3의 (a)와 같이 이너 서클(IC)에 8개의 위치 데이터가 배치되는 경우, 각각의 위치 데이터는 초기 위치 데이터(P0)를 기준으로 45°(=360°/8 ) 간격으로 이격되어 배치될 수 있다.In addition, the position data placed in each of the outer circle (OC) and inner circle (IC) has an angle size (360°/ N) can be formed. For example, when 8 pieces of position data are placed in the inner circle (IC) as shown in (a) of Figure 3, each position data is 45° (=360°/8) based on the initial position data (P0). It can be placed spaced apart at intervals.

한편, 카메라(120)가 초기 위치 데이터(P0)에 따른 위치에서 다른 위치로 이동한 경우, 카메라의 시야(촬영 방향)가 틸팅되지 않으면 도 4의 (a)와 같이 체스보드 전체를 촬영하지 못하게 되어 조건 3을 만족하지 못하게 된다. On the other hand, when the camera 120 moves from a position according to the initial position data (P0) to a different position, if the camera's field of view (shooting direction) is not tilted, it is prevented from filming the entire chessboard as shown in (a) of FIG. 4. Therefore, condition 3 is not satisfied.

따라서, 캘리브레이션부(210)는 도 4의 (b)와 같이 카메라(120)가 체스보드 전체를 촬영할 수 있도록 틸팅 각도를 제어한다. 보다 바람직하게는, 캘리브레이션부(210)는 카메라(120)의 시야 중심이 피봇 앵커(PA)를 촬영할 수 있도록 하기 식 (1)의 관계식에 따라 카메라(120)의 틸팅 각도를 제어한다.Therefore, the calibration unit 210 controls the tilting angle so that the camera 120 can photograph the entire chessboard, as shown in (b) of FIG. 4. More preferably, the calibration unit 210 controls the tilting angle of the camera 120 according to the relationship of equation (1) below so that the center of view of the camera 120 can capture the pivot anchor (PA).

식 (1) : Rx = tan-1 ((r*sinθ)/h)Equation (1): Rx = tan -1 ((r*sinθ)/h)

Ry = tan-1 ((r*cosθ)/h)Ry = tan -1 ((r*cosθ)/h)

여기서, Rx 및 Ry는 피봇 앵커(PA)와 초기 위치 데이터(P0)가 이루는 직선을 기준으로 피봇 앵커(PA)와 현재 위치 데이터(P1, 도 5 참조)가 이루는 선분의 x축 축회전 각도(x축 틸팅 각도) 및 y축 축회전 각도(y축 틸팅 각도)이고, r은 피봇 구면의 평면도인 xy평면을 기준으로 초기 위치 데이터(P0)와 현재 위치 데이터(P1) 사이의 거리이며, h는 피봇 앵커와 초기 위치 데이터 간 설정된 높이이고, θ는 x축을 기준으로 초기 위치 데이터(P0)와 현재 위치 데이터(P1)가 xy 평면 상에서 이루는 각도이다.Here, Rx and Ry are the x-axis rotation angle ( x-axis tilting angle) and y-axis rotation angle (y-axis tilting angle), r is the distance between the initial position data (P0) and the current position data (P1) based on the xy plane, which is the top view of the pivot sphere, and h is the height set between the pivot anchor and the initial position data, and θ is the angle formed by the initial position data (P0) and the current position data (P1) on the xy plane based on the x-axis.

도 5는 틸팅 각도를 구하는 과정을 예시적으로 설명하기 위한 도면이다.Figure 5 is a diagram for exemplarily explaining the process of calculating the tilting angle.

도 5의 (a)는 피벗 모션을 상부에서 바라본 xy 평면이며, 도 5의 (b)는 도 5의 (a)의 A-A'라인에서 바라본 xz 평면이고, 도 5의 (c)는 도 5의 (a)의 B-B'라인에서 바라본 yz 평면이다.Figure 5(a) is the xy plane viewed from the top of the pivot motion, Figure 5(b) is the xz plane seen from the line A-A' in Figure 5(a), and Figure 5(c) is the This is the yz plane seen from the B-B' line in (a) of 5.

도 5의 (a)를 참조하면, 캘리브레이션 데이터 생성을 위해 카메라(120)가 아우터 서클(OC)의 어느 한 위치인 P1에 위치된 경우에 해당한다. P0와 P1 사이의 거리(피봇 구면 상에서의 거리가 아니고, 피봇 구면을 평면으로 투영시킨 xy 평면 상에서의 거리임)는 r이고, r을 x축으로 투영시킨 Px(r의 x값)는 r*cosθ 이고, r을 y축으로 투영시킨 Py(r의 y값)는 r*sinθ 이다.Referring to (a) of FIG. 5, this corresponds to a case where the camera 120 is located at a location P1 of the outer circle (OC) to generate calibration data. The distance between P0 and P1 (not the distance on the pivot sphere, but the distance on the xy plane projected on the pivot sphere onto the plane) is r, and Px (the x value of r) projected on r to the x-axis is r* cosθ, and Py (y value of r) projected on r to the y-axis is r*sinθ.

도 5의 (b)를 참조하면, y축 틸팅 각도인, tan(Ry) = Px/h = (r*cosθ)/h이며, 이를 정리하면 Ry = tan-1 ((r*cosθ)/h)이다.Referring to (b) of FIG. 5, the y-axis tilting angle, tan(Ry) = Px/h = (r*cosθ)/h, which can be summarized as Ry = tan -1 ((r*cosθ)/h )am.

도 5의 (c)를 참조하면, x축 틸팅 각도인, tan(Rx) = Py/h = (r*sinθ)/h이며, 이를 정리하면 Rx = tan-1 ((r*sinθ)/h)이다.Referring to (c) of Figure 5, the x-axis tilting angle, tan(Rx) = Py/h = (r*sinθ)/h, which can be summarized as Rx = tan -1 ((r*sinθ)/h )am.

즉, 캘리브레이션부(210)는 카메라(120)의 현재 위치에 따라 카메라(120)를 x축 축회전(x축 틸팅) 및 y축 축회전(y축 틸팅)하여 카메라(120)가 체스보드 전체를 촬영할 수 있도록 틸팅 각도를 제어한다.That is, the calibration unit 210 rotates the camera 120 along the Control the tilting angle so that you can shoot.

이와 같은 방식으로, 캘리브레이션부(210)는 로봇 핸드(110)의 자세를 자동으로 변환하는 피벗 모션(pivot motion)을 이용하여 복수개의 자세 데이터를 생성하고, 변환된 복수개의 자세 데이터에 따라 카메라(120)의 틸팅 각도를 제어하여 체스보드 전체가 촬영될 수 있도록 한다. 이에 따라, 캘리브레이션부(210)는 여러 자세에서의 로봇 자세 데이터 및 체스보드 코너점을 검출하고, 이를 이용하여 캘리브레이션 데이터를 생성한다.In this way, the calibration unit 210 generates a plurality of posture data using a pivot motion that automatically converts the posture of the robot hand 110, and uses a camera ( 120) to control the tilting angle so that the entire chessboard can be photographed. Accordingly, the calibration unit 210 detects robot posture data and chessboard corner points in various postures and generates calibration data using this.

수직자세 제어부(220)는 로봇 핸드(110)의 자세를 작업면에 수직하게 배치하여 로봇 작업의 정확성을 향상시킨다. 이에 대해 도 6 및 도 7을 참조하여 설명한다. 도 6 및 도 7은 로봇의 수직 자세 제어 필요성을 설명하기 위한 도면이다.The vertical posture control unit 220 improves the accuracy of robot work by arranging the posture of the robot hand 110 perpendicular to the work surface. This will be explained with reference to FIGS. 6 and 7 . Figures 6 and 7 are diagrams to explain the necessity of controlling the vertical posture of the robot.

도 6의 (a)는 경사면에 직사각형 형태의 체스보드가 놓인 상태에서 로봇 핸드(110)에 부착된 카메라(120)로 체스보드를 촬영한 이미지이다. 도 6의 (a)를 참조하면, 체스보드의 일단은 카메라(120)와 가깝고 체스보드의 타단은 카메라(120)와 멀리 위치하여, 그 촬영 이미지는 도 6의 (b)와 같이 사다리꼴 형태가 되어 이미지 왜곡이 발생한다. 이에 따라 로봇 핸드(110)의 Pick & Place 작업의 정확성이 떨어지게 된다.Figure 6 (a) is an image taken of a chessboard with a camera 120 attached to the robot hand 110 with a rectangular chessboard placed on an inclined surface. Referring to (a) of Figure 6, one end of the chess board is close to the camera 120 and the other end of the chess board is located far from the camera 120, and the captured image has a trapezoidal shape as shown in (b) of Figure 6. This causes image distortion. Accordingly, the accuracy of the Pick & Place operation of the robot hand 110 decreases.

따라서, 로봇 핸드(110)의 자세를 작업면에 수직하게 배치하는 과정이 필요한데, 종래에는 작업자의 육안으로 수동으로 로봇 핸드(110)를 작업면에 수직하게 움직여서 작업 포즈(Shoot Pose)를 생성하였는데, 이와 같은 방식은 휴먼 에러가 발생하여 로봇 작업의 정확성이 떨어질 가능성이 크다는 문제가 있다.Therefore, a process of arranging the posture of the robot hand 110 perpendicular to the work surface is necessary. Conventionally, the work pose (Shoot Pose) was created by manually moving the robot hand 110 perpendicular to the work surface with the operator's naked eye. , this method has the problem that human error is likely to occur and the accuracy of robot work is likely to decrease.

이에, 본 발명에서 수직자세 제어부(220)는 도 7의 (a)와 같이 자동으로 로봇 핸드(110)에 부착된 카메라(120)가 작업면에 대해 수직하게 배치되도록 하여 로봇 작업의 정확성을 향상시킨다.Accordingly, in the present invention, the vertical posture control unit 220 improves the accuracy of robot work by automatically arranging the camera 120 attached to the robot hand 110 perpendicular to the work surface as shown in (a) of Figure 7. I order it.

작업면에 수직한 로봇자세 설정을 위해서 캘리브레이션 데이터, 작업면과 카메라(120) 사이의 높이 정보, 현재 로봇의 위치 정보 등이 필요하며, 수직자세 제어부(220)는 카메라(120)와 로봇 끝단(로봇 핸드)의 좌표를 곱하여 로봇 베이스 좌표에서 카메라(120)까지의 좌표를 구한다. 그리고, 사용자에 의해 카메라 캘리브레이션 작업 영역의 원점으로부터 수직으로 떨어진 높이 정보가 입력되면, 수직자세 제어부(220)는 호모지니어스 변환 관계를 이용해 작업 영역으로부터 원하는 높이에서의 자세를 구한다. 사용자에 의한 높이 정보 입력이 필요한 이유는, 본 발명의 실시예에서, 카메라(120)는 깊이 이미지를 획득할 수 없는 2D 비전 카메라이기 때문에다.To set the robot posture perpendicular to the work surface, calibration data, height information between the work surface and the camera 120, and current robot position information are required, and the vertical posture control unit 220 controls the camera 120 and the robot end ( Multiply the coordinates of the robot hand to obtain the coordinates from the robot base coordinates to the camera 120. And, when height information vertically away from the origin of the camera calibration work area is input by the user, the vertical posture control unit 220 uses the homogeneous transformation relationship to obtain the posture at the desired height from the work area. The reason why input of height information by the user is necessary is because, in the embodiment of the present invention, the camera 120 is a 2D vision camera that cannot acquire a depth image.

보다 구체적으로, 수직자세 제어부(220)는 하기의 과정을 수행한다.More specifically, the vertical posture control unit 220 performs the following process.

① 카메라(120) 기준으로 로봇 핸드(110)의 위치를 산출함 ① Calculate the position of the robot hand (110) based on the camera (120)

② 로봇 베이스 기준으로 체스보드의 위치를 산출함 ② Calculate the position of the chessboard based on the robot base.

③ 작업 포즈(Shoot Pose)를 산출함③ Calculate the work pose (Shoot Pose)

상기에서 ① 카메라(120) 기준 로봇 핸드(110)의 위치는 행렬 로 표시하고, ② 로봇 베이스 기준 체스보드의 위치는 행렬 로 표시하며, ③ 산출된 작업 포즈는 행렬 로 표시한다.In the above, ① the position of the robot hand 110 relative to the camera 120 is a matrix , and ② the position of the chessboard relative to the robot base is a matrix , and ③ the calculated work pose is a matrix It is displayed as

카메라(120) 기준 로봇 핸드(110)의 위치()는 캘리브레이션부(210)에서 생성된 캘리브레이션 데이터를 의미한다. 수직자세 제어부(220)는 캘리브레이션부(210)로부터 를 획득한다.The position of the robot hand 110 relative to the camera 120 ( ) means calibration data generated in the calibration unit 210. The vertical posture control unit 220 receives information from the calibration unit 210. obtain.

그 다음, 수직자세 제어부(220)는 하기의 식 (3)을 이용하여 를 산출한다.Next, the vertical posture control unit 220 uses equation (3) below Calculate .

식 (3) : Equation (3):

여기서, 는 로봇 베이스 기준 카메라의 위치이며, 는 카메라 기준 체스보드의 위치이다. here, is the position of the camera relative to the robot base, is the position of the chessboard relative to the camera.

는 카메라(120) 기준 로봇 핸드(110)의 위치()와, 로봇 베이스와 로봇 핸드(110)의 위치 관계를 이용하여 산출될 수 있다. 로봇 베이스와 로봇 핸드(110)의 위치 관계는 로봇에 내장된 엔코더(encoder)로부터 획득될 수 있다. is the position of the robot hand 110 relative to the camera 120 ( ) and can be calculated using the positional relationship between the robot base and the robot hand 110. The positional relationship between the robot base and the robot hand 110 can be obtained from an encoder built into the robot.

그 다음, 수직자세 제어부(220)는 하기의 식 (4)를 이용하여 작업 포즈 를 산출한다.Next, the vertical posture control unit 220 uses the equation (4) below to pose the work pose. Calculate .

식 (4) : Equation (4):

여기서, 는 로봇 베이스 기준 체스보드의 위치, 는카메라(120) 기준 로봇 핸드(110)의 위치이다. 그리고, 는 카메라 기준 체스보드의 위치인 의 역행렬이다.here, is the position of the chessboard relative to the robot base, is the position of the robot hand 110 relative to the camera 120. and, is the position of the chessboard relative to the camera. It is the inverse matrix of .

예를 들어, 는 하기 행렬과 같이 주어질 수 있다.for example, can be given as the following matrix.

여기서, 는 로봇 핸드(Gripper)의 위치 행렬 좌표이고, 는 체스보드의 가로 세로 크기이며, 는 사용자에 입력된 높이 정보이다.here, is the position matrix coordinate of the robot hand (Gripper), is the horizontal and vertical size of the chessboard, is the height information entered by the user.

수직자세 제어부(220)는 사용자에 의해 입력된 높이(h)와 상기 식 (3) 및 식 (4)를 이용하여 작업면에 수직하게 배치되는 로봇 핸드(110)의 자세(Shoot Pose)를 계산하여 산출할 수 있다.The vertical posture control unit 220 calculates the shoot pose of the robot hand 110 placed perpendicular to the work surface using the height (h) input by the user and equations (3) and (4) above. It can be calculated as follows.

다음, 도 8을 참조하여 본 발명의 일 실시예에 따른 로봇자세 제어장치의 동작 과정을 설명한다. 도 8은 본 발명의 일 실시예에 따른 로봇자세 제어장치의 동작 과정이 도시된 타임 스케줄이다.Next, the operation process of the robot posture control device according to an embodiment of the present invention will be described with reference to FIG. 8. Figure 8 is a time schedule showing the operation process of the robot posture control device according to an embodiment of the present invention.

먼저, 로봇자세 제어장치(200)의 캘리브레이션부(210)는 로봇 핸드(110)의 자세를 자동으로 변환하는 피벗 모션을 생성하여 로봇(100)으로 전달한다. (S110) 이를 수신한 로봇(100)은 피벗 모션에 따라 로봇 핸드(110)의 위치를 피봇 구면(PM) 상의 여러 위치로 이동시키면서, 카메라(120)를 x축 축회전(x축 틸팅) 및 y축 축회전(y축 틸팅)하여 카메라(120)가 체스보드 전체를 촬영하여 체스보드 이미지를 전송한다. (S120)First, the calibration unit 210 of the robot posture control device 200 generates a pivot motion that automatically changes the posture of the robot hand 110 and transmits it to the robot 100. (S110) Upon receiving this, the robot 100 moves the position of the robot hand 110 to various positions on the pivot sphere (PM) according to the pivot motion, and rotates the camera 120 along the x-axis (tilting the x-axis). By rotating the y-axis (tilting the y-axis), the camera 120 captures the entire chessboard and transmits the chessboard image. (S120)

다음, 캘리브레이션부(210)는 피벗 모션에 따른 여러 자세에서의 로봇 자세 데이터 및 체스보드 코너점을 검출하고, 이를 이용하여 캘리브레이션 데이터를 생성한다. (S130)Next, the calibration unit 210 detects the robot posture data and chessboard corner points in various postures according to the pivot motion and uses this to generate calibration data. (S130)

다음, 로봇자세 제어장치(200)의 수직자세 제어부(220)는, S130 단계에서 생성된 캘리브레이션 데이터와, 하기 식 (3) 및 식 (4)를 이용하여 작업면에 수직하게 배치되는 로봇 핸드(110)의 자세()를 산출한다.Next, the vertical posture control unit 220 of the robot posture control device 200 uses the calibration data generated in step S130 and the following equations (3) and (4) to control the robot hand ( 110) posture ( ) is calculated.

식 (3) : Equation (3):

식 (4) : Equation (4):

여기서, 는 로봇 베이스 기준 카메라의 위치이며, 는 카메라 기준 체스보드의 위치이고, 는 로봇 베이스 기준 체스보드의 위치, 는카메라(120) 기준 로봇 핸드(110)의 위치이다. 그리고, 는 카메라 기준 체스보드의 위치인 의 역행렬이다. (S140)here, is the position of the camera relative to the robot base, is the position of the chessboard relative to the camera, is the position of the chessboard relative to the robot base, is the position of the robot hand 110 relative to the camera 120. and, is the position of the chessboard relative to the camera. It is the inverse matrix of . (S140)

다음, 로봇자세 제어장치(200)가 로봇 핸드의 자세 정보()를 로봇(100)으로 전송(S150)하면, 로봇(100)은 해당 자세 정보에 따라 작업면에 수직인 자세로 이동하게 된다. (S160)Next, the robot posture control device 200 provides posture information of the robot hand ( ) is transmitted to the robot 100 (S150), the robot 100 moves to a posture perpendicular to the work surface according to the corresponding posture information. (S160)

도 9는 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다. 도 9의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 로봇자세 제어장치의 하드웨어적인 구성일 수 있다.9 is a diagram illustrating a computing device according to an embodiment of the present invention. The computing device TN100 of FIG. 9 may be a hardware configuration of the robot posture control device described in this specification.

도 9의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.In the embodiment of FIG. 9 , the computing device TN100 may include at least one processor TN110, a transceiver device TN120, and a memory TN130. Additionally, the computing device TN100 may further include a storage device TN140, an input interface device TN150, an output interface device TN160, etc. Components included in the computing device TN100 may be connected by a bus TN170 and communicate with each other.

프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.The processor TN110 may execute a program command stored in at least one of the memory TN130 and the storage device TN140. The processor TN110 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed. Processor TN110 may be configured to implement procedures, functions, and methods described in connection with embodiments of the present invention. The processor TN110 may control each component of the computing device TN100.

메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다. Each of the memory TN130 and the storage device TN140 can store various information related to the operation of the processor TN110. Each of the memory TN130 and the storage device TN140 may be comprised of at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory TN130 may be comprised of at least one of read only memory (ROM) and random access memory (RAM).

송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다. The transceiving device TN120 can transmit or receive wired signals or wireless signals. The transmitting and receiving device (TN120) can be connected to a network and perform communication.

한편, 본 발명은 컴퓨터프로그램으로 구현될 수도 있다. 본 발명은 하드웨어와 결합되어, 컴퓨터가 판독 가능한 기록매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.Meanwhile, the present invention may be implemented as a computer program. The present invention can be combined with hardware and implemented as a computer program stored on a computer-readable recording medium.

본 발명의 실시예에 따른 방법들은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. Methods according to embodiments of the present invention may be implemented in the form of programs readable through various computer means and recorded on a computer-readable recording medium. Here, the recording medium may include program instructions, data files, data structures, etc., singly or in combination.

기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. Program instructions recorded on the recording medium may be those specifically designed and constructed for the present invention, or may be known and available to those skilled in the art of computer software.

예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CDROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. For example, recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CDROMs and DVDs, and magneto-optical media such as floptical disks. optical media), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc.

프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어를 포함할 수 있다. Examples of program instructions may include machine language, such as that created by a compiler, as well as high-level languages that can be executed by a computer using an interpreter, etc.

이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.These hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상, 본 발명의 일 실시예에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.Above, an embodiment of the present invention has been described, but those skilled in the art can add, change, delete or add components without departing from the spirit of the present invention as set forth in the patent claims. The present invention may be modified and changed in various ways, and this will also be included within the scope of rights of the present invention.

100 : 로봇
110 : 로봇 핸드 120 : 카메라
200 : 로봇자세 제어장치
210 : 캘리브레이션부 220 : 수직자세 제어부
100: Robot
110: robot hand 120: camera
200: Robot posture control device
210: Calibration unit 220: Vertical posture control unit

Claims (10)

로봇 핸드의 자세 데이터와, 상기 로봇 핸드에 부착된 카메라가 상기 로봇 핸드의 작업 영역에 배치된 체스보드를 촬영한 복수개의 체스보드 이미지를 이용하여 상기 카메라와 로봇 핸드 간의 캘리브레이션(calibration)을 수행하여 캘리브레이션 데이터를 생성하는 캘리브레이션부;
입력된 높이 정보와 상기 캘리브레이션 데이터를 이용하여 상기 로봇 핸드의 작업 영역에 수직인 3차원 작업 포즈를 생성하는 수직자세 제어부;
를 포함하는, 로봇자세 제어장치.
Calibration is performed between the camera and the robot hand using the posture data of the robot hand and a plurality of chess board images captured by a camera attached to the robot hand of a chess board placed in the work area of the robot hand. A calibration unit that generates calibration data;
a vertical posture control unit that generates a three-dimensional work pose perpendicular to the work area of the robot hand using the input height information and the calibration data;
Including a robot posture control device.
청구항 1에 있어서, 상기 캘리브레이션부는,
상기 로봇 핸드의 자세를 자동으로 변환하는 피벗 모션을 이용하여 복수개의 자세 데이터를 생성하고, 변환된 복수개의 자세 데이터에 따른 복수개의 체스보드 이미지를 이용하여 상기 캘리브레이션 데이터를 생성하는, 로봇자세 제어장치.
The method of claim 1, wherein the calibration unit,
A robot posture control device that generates a plurality of posture data using a pivot motion that automatically converts the posture of the robot hand, and generates the calibration data using a plurality of chessboard images according to the converted posture data. .
청구항 2에 있어서, 상기 피벗 모션은,
상기 체스보드의 중심점인 피봇 앵커를 기준으로 기설정된 높이를 유지하면서 서로 다른 방향을 취할 수 있도록 설정된 로봇 모션으로,

상기 로봇 핸드를 포함하는 로봇의 링크 길이를 고려하여 상기 체스보드 이미지가 상기 로봇 핸드의 작업 영역 내에 위치하도록 하며,
상기 카메라가 상기 체스보드 전체를 촬영하도록 설정되는, 로봇자세 제어장치.
The method of claim 2, wherein the pivot motion is:
A robot motion set to take different directions while maintaining a preset height based on the pivot anchor, which is the central point of the chessboard,

Considering the link length of the robot including the robot hand, the chessboard image is positioned within the work area of the robot hand,
A robot posture control device in which the camera is set to photograph the entire chessboard.
청구항 3에 있어서, 상기 피벗 모션은,
상기 피봇 앵커를 원점으로 하고 상기 기설정된 높이를 반지름으로 하는 가상의 3차원 피봇 구면 상에 형성된 복수개의 위치 데이터로 이루어지는, 로봇자세 제어장치.
The method of claim 3, wherein the pivot motion is:
A robot posture control device comprising a plurality of position data formed on a virtual three-dimensional pivot sphere with the pivot anchor as the origin and the preset height as the radius.
청구항 4에 있어서,
상기 복수개의 위치 데이터 중 일부는 상기 피봇 구면 상에서 아우터 서클을 형성하고, 상기 복수개의 위치 데이터 중 나머지는 상기 피봇 구면 상에서 적어도 하나의 이너 서클을 형성하는, 로봇자세 제어장치.
In claim 4,
Some of the plurality of position data form an outer circle on the pivot sphere, and the remainder of the plurality of position data form at least one inner circle on the pivot sphere.
청구항 5에 있어서,
상기 아우터 서클과 상기 이너 서클 각각에 배치되는 위치 데이터는, 위치 데이터의 개수(N)에 따라 상기 아우터 서클과 상기 이너 서클을 균분하는 각도 크기(360°/N)로 형성되는, 로봇자세 제어장치.
In claim 5,
The position data disposed in each of the outer circle and the inner circle is formed in an angle size (360°/N) equalizing the outer circle and the inner circle according to the number (N) of position data. A robot posture control device .
청구항 4에 있어서, 상기 캘리브레이션부는,
상기 카메라가 상기 체스보드 전체를 촬영할 수 있도록 하기 식 (1)의 관계식에 따라 상기 카메라의 틸팅 각도를 제어하는, 로봇자세 제어장치.
식 (1) : Rx = tan-1 ((r*sinθ)/h)
Ry = tan-1 ((r*cosθ)/h)
(여기서, Rx 및 Ry는 피봇 앵커와 초기 위치 데이터가 이루는 직선을 기준으로 피봇 앵커와 현재 위치 데이터가 이루는 선분의 x축 틸팅 각도 및 y축 틸팅 각도이고, r은 피봇 구면의 평면도인 xy평면 상의 초기 위치 데이터와 현재 위치 데이터 사이의 거리이며, h는 피봇 앵커와 초기 위치 데이터 간 설정된 높이이고, θ는 x축을 기준으로 초기 위치 데이터와 현재 위치 데이터가 xy 평면 상에서 이루는 각도임)
The method of claim 4, wherein the calibration unit,
A robot posture control device that controls the tilting angle of the camera according to the relational expression (1) below so that the camera can photograph the entire chessboard.
Equation (1): Rx = tan -1 ((r*sinθ)/h)
Ry = tan -1 ((r*cosθ)/h)
(Here, Rx and Ry are the x-axis tilting angle and y-axis tilting angle of the line segment formed by the pivot anchor and the current position data based on the straight line formed by the pivot anchor and the initial position data, and r is the is the distance between the initial position data and the current position data, h is the height set between the pivot anchor and the initial position data, and θ is the angle formed by the initial position data and the current position data on the xy plane based on the x axis)
청구항 1에 있어서, 상기 수직자세 제어부는,
상기 카메라를 기준으로 상기 로봇 핸드의 위치()를 산출하고, 로봇 베이스 기준으로 상기 체스보드의 위치()를 산출한 후, 상기 3차원 작업 포즈()를 생성하는, 로봇자세 제어장치.
The method according to claim 1, wherein the vertical posture control unit,
The position of the robot hand relative to the camera ( ) is calculated, and the position of the chessboard relative to the robot base ( ) After calculating the 3D work pose ( ), a robot posture control device that generates
청구항 8에 있어서,
상기 카메라 기준 로봇 핸드의 위치()는 상기 캘리브레이션부에서 생성된 캘리브레이션 데이터이고,
상기 로봇 베이스 기준 체스보드의 위치()는 하기의 식 (3)을 이용하여 산출하는, 로봇자세 제어장치.
식 (3) :
(여기서, 는 로봇 베이스 기준 카메라의 위치이며, 는 카메라 기준 체스보드의 위치임)
In claim 8,
The position of the robot hand relative to the camera ( ) is the calibration data generated in the calibration unit,
The position of the chessboard relative to the robot base ( ) is a robot posture control device calculated using equation (3) below.
Equation (3):
(here, is the position of the camera relative to the robot base, is the position of the chessboard relative to the camera)
청구항 9에 있어서, 상기 수직자세 제어부는,
하기의 식 (4)를 이용하여 상기 3차원 작업 포즈()를 산출하여 생성하는, 로봇자세 제어장치.
식 (4) :
(여기서, 는 로봇 베이스 기준 체스보드의 위치이고, 는카메라 기준 로봇 핸드의 위치이며, 의 역행렬임)
The method of claim 9, wherein the vertical posture control unit,
The three-dimensional work pose ( ), a robot posture control device that calculates and generates
Equation (4):
(here, is the position of the chessboard relative to the robot base, is the position of the robot hand relative to the camera, Is is the inverse matrix of)
KR1020220037203A 2022-03-25 2022-03-25 Apparatus for controlling robot posture KR20230139061A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220037203A KR20230139061A (en) 2022-03-25 2022-03-25 Apparatus for controlling robot posture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220037203A KR20230139061A (en) 2022-03-25 2022-03-25 Apparatus for controlling robot posture

Publications (1)

Publication Number Publication Date
KR20230139061A true KR20230139061A (en) 2023-10-05

Family

ID=88294405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220037203A KR20230139061A (en) 2022-03-25 2022-03-25 Apparatus for controlling robot posture

Country Status (1)

Country Link
KR (1) KR20230139061A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465652B1 (en) 2013-04-12 2014-11-28 성균관대학교산학협력단 Apparatus and method for calibration of a robot hand and a camera attached to robot hand

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465652B1 (en) 2013-04-12 2014-11-28 성균관대학교산학협력단 Apparatus and method for calibration of a robot hand and a camera attached to robot hand

Similar Documents

Publication Publication Date Title
US11046530B2 (en) Article transfer apparatus, robot system, and article transfer method
JP6427972B2 (en) Robot, robot system and control device
US20200298411A1 (en) Method for the orientation of an industrial robot, and industrial robot
CN113001535B (en) Automatic correction system and method for robot workpiece coordinate system
CN107901041A (en) A kind of robot vision servo control method based on image blend square
JP7111114B2 (en) Information processing device, information processing method, and information processing system
US20170266815A1 (en) Control device, robot, and robot system
JP2018176334A5 (en)
US20170277167A1 (en) Robot system, robot control device, and robot
US20080249659A1 (en) Method and system for establishing no-entry zone for robot
CN114012731A (en) Hand-eye calibration method and device, computer equipment and storage medium
JPWO2018043525A1 (en) Robot system, robot system control apparatus, and robot system control method
CN111590593B (en) Calibration method, device and system of mechanical arm and storage medium
KR102094004B1 (en) Method for controlling a table tennis robot and a system therefor
CN114043087A (en) Three-dimensional trajectory laser welding seam tracking attitude planning method
JP5223407B2 (en) Redundant robot teaching method
WO2018043524A1 (en) Robot system, robot system control device, and robot system control method
JP2020138292A (en) Robot system and control method
US20180215044A1 (en) Image processing device, robot control device, and robot
CN114074331A (en) Disordered grabbing method based on vision and robot
CN112598752B (en) Calibration method and operation method based on visual recognition
JP2020138293A (en) Robot system and control method
KR20230139061A (en) Apparatus for controlling robot posture
Ranjan et al. Identification and control of NAO humanoid robot to grasp an object using monocular vision
WO2023013740A1 (en) Robot control device, robot control system, and robot control method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal