KR20230126012A - 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템 - Google Patents

아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템 Download PDF

Info

Publication number
KR20230126012A
KR20230126012A KR1020220022977A KR20220022977A KR20230126012A KR 20230126012 A KR20230126012 A KR 20230126012A KR 1020220022977 A KR1020220022977 A KR 1020220022977A KR 20220022977 A KR20220022977 A KR 20220022977A KR 20230126012 A KR20230126012 A KR 20230126012A
Authority
KR
South Korea
Prior art keywords
matrix
pcs
coordinate system
axis
parameters
Prior art date
Application number
KR1020220022977A
Other languages
English (en)
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 KR1020220022977A priority Critical patent/KR20230126012A/ko
Priority to PCT/KR2023/000504 priority patent/WO2023163373A1/ko
Publication of KR20230126012A publication Critical patent/KR20230126012A/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4086Coordinate conversions; Other special calculations
    • G06T3/0006
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템에 관한 것이다. 본 발명의 일 실시예에 따른 방법은 모션 제어기를 포함하는 시스템에서 수행되며, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션을 수행하기 위한 방법으로서, 서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하는 1차 단계; 상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 특정 지점에 대한 위치 값을 측정하여, 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하는 2차 단계; 상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여, 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하는 3차 단계; 및 상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구하는 단계;를 포함한다.

Description

아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템{METHOD AND APPARATUS FOR PARAMETER CALIBRATION OF AFFINE TRANSFORMATION, AND MOTION CONTROL SYSTEM USING THE SAME}
본 발명은 아핀 변환의 파라미터 캘리브레이션 기술에 관한 것으로서, 더욱 상세하게는 좌표계가 상이한 공간 상에서 이동 중인 공작물의 픽 앤 플레이스(pick-and-place) 등의 작업을 위한 아핀 변환(affine transform) 행렬의 파라미터(parameter)를 캘리브레이션(calibration)하기 위한 방법 및 장치와, 이를 이용하는 모션 제어 시스템에 관한 것이다.
일반적으로 모션 제어기(motion controller) 등의 산업용 제어기는 특정 메이커 또는 제품으로 한정되지 않고 상호 호환성을 위해 PLCopen 규격을 따르도록 설계된다. 즉, PLCopen 규격은 다양한 명령어의 펑션 블록(function block)에 대해 정의하고 있으며, 특히 기존 PLC의 I/O 시퀀스 제어 외에도 모션 제어 및 Safety 관련 기술에 대한 규격을 가진다. 이때, 모션 제어 관련 기능은 단축 및 다축 제어 기술을 포함하는데, CAM 및 그룹 운전을 위한 동기(synchronize) 제어 기술 등이 다축 제어 기술에서 함께 구현된다.
이러한 PLCopen 규격에서, 기계 좌표계(machine coordinate system; MCS) 외에 공작물 좌표계(product coordinate system; PCS)(또는 "사용자 좌표계"라고도 지칭)를 설정하여, 선형/비선형의 프로파일(궤적)을 좌표계가 트래킹(tracking)하면서, 동기(synchronize) 제어가 가능하도록 구현된다.
도 1은 오브젝트(object)의 상태에 따른 모션 제어의 일 예를 나타낸다. 즉, 도 1(a)는 오브젝트가 정지 상태인 경우에 대한 모션 제어의 일 예를 나타내고, 도 1(b)는 오브젝트가 움직이는 상태인 경우에 대한 모션 제어의 일 예를 나타낸다.
즉, 도 1(a)의 경우, 오브젝트인 가공물은 정지 상태이며, 로봇 B가 그 가공물을 잡고 있으면 그 가공물의 위치와 자세에 맞춰서 로봇 A가 점 용접의 작업을 수행한다. 또한, 도 1(b)의 경우, 오브젝트인 쿠키는 움직이는 상태이며, 직교 로봇 A가 컨베이어 벨트 B 위에서 움직이고 있는 쿠키 위에 초콜렛을 묻혀주는 작업을 수행한다.
도 1(a) 및 (b)의 경우 모두, B가 마스터 모션이 되고 A가 그 모션을 따라가는 형태이며, MCS와 PCS 간의 축-그룹 동기(synchronize)가 1:1로 매칭될 수 있는 경우에 해당한다.
이때, "축-그룹"은 다수 축을 포함하는 그룹으로서, 그 중에 어느 한 축(마스터 축)에 대한 좌표계 표현을 통해 나머지 다른 모든 축(슬레이브 축)에 대한 좌표계 표현이 가능한 그룹을 의미한다. 즉, 축-그룹은 마스터 축에 대해 각 슬레이브 축이 특정 관계(즉, 마스터 축의 위치에 따라 선형 또는 비선형적으로 슬레이브 축의 위치가 결정되는 관계)를 가지며, 이러한 특정 관계에 대한 프로파일이 이미 알려진 상태인 그룹이다.
특히, 좌표계가 상이한 공간 상에서 무작위로 놓인 채 이동 중인 공작물(workpiece)에 대해 픽 앤 플레이스(pick-and-place; PnP) 등과 같은 복잡한 모션 제어를 수행을 위해, 공작물(workpiece)을 촬영하는 비전 시스템이 이용될 수 있다. 이때, 비전 시스템에서 촬영된 영상데이터를 기반으로 기계 장치에 대한 모션 제어를 수행하기 위해서는 상이한 좌표계 간에 공작물의 상대적인 위치와 자세를 실시간 파악할 수 있는 기술이 필요하다.
즉, 상술한 복잡한 모션 제어를 위해서는 비전 시스템의 카메라 좌표계를 PCS 또는 MCS로 변환하는 아핀 변환(affine transformation) 행렬이 필요한데, 이러한 아핀 변환 행렬을 구하기 위해서는 아핀 변환 행렬을 이루는 각 파라미터의 설정하기 위한 캘리브레이션 기술이 적용되어 한다. 하지만, 아직까지 PLCopen 규격에 따른 상술한 캘리브레이션 기술은 전무한 실정이다.
다만, 상술한 내용은 단순히 본 발명에 대한 배경 정보를 제공할 뿐 기 공개된 기술에 해당하는 것은 아니다.
상기한 바와 같은 문제점을 해결하기 위하여, 본 발명은 Pick-and-Place(PnP) 등의 모션 제어에서 비전 시스템의 카메라 좌표계를 PCS로 변환하기 위한 아핀 변환(affine transform) 행렬의 파라미터(parameter)를 캘리브레이션(calibration)하기 위한 기술을 제공하는데 그 목적이 있다.
즉, 본 발명은 서로 다른 좌표계 간에 무작위로 놓인 공작물의 상대적인 위치와 자세를 파라미터화 함으로써 아핀 변환 행렬을 구할 수 있는 기술을 제공하는데 그 목적이 있다.
또한, 본 발명은 비전 시스템을 이용한 캘리브레이션 시에 공작물을 이송하는 기계 장치와 비전 시스템을 서로 동기화할 수 있는 PLCopen 규격에 따른 명령어 트리거 인터페이스를 구성하는 기술을 제공하는데 그 다른 목적이 있다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예에 따른 방법은 모션 제어기를 포함하는 시스템에서 수행되며, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션을 수행하기 위한 방법으로서, 서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하는 1차 단계; 상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 특정 지점에 대한 위치 값을 측정하여, 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하는 2차 단계; 상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여, 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하는 3차 단계; 및 상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구하는 단계;를 포함한다.
상기 특정 지점은 상기 복수의 피듀셜 마크 중에 하나이거나, 복수의 피듀셜 마크의 무게 중심점일 수 있다.
상기 복수의 피듀셜 마크는 상기 기계 장치 상의 x축에 배치된 제1 마크와, 상기 제1 마크에 대해 y축 방향으로 수직 이동한 위치에 배치된 제2 마크를 포함할 수 있다.
상기 1차 단계에서 상기 기준 시편은 상기 복수의 피듀셜 마크 중에 하나가 상기 PCS의 원점이나 상기 PCS의 x축 상에 놓이도록 정렬될 수 있다.
상기 1차 단계는 하기 식을 이용하여, a13 및 a23의 파라미터의 값을 획득할 수 있다.
(여기서, 는 제1 행렬이고, xfov_fid1 및 yfov_fid1는 기준 시편의 특정 지점에 대한 카메라 좌표계의 x축 및 y축의 위치 값임)
상기 2차 단계는 하기 식을 이용하여, a11 및 a21의 파라미터의 값을 획득할 수 있다.
(여기서, 는 제1 행렬이고, Xcv_step는 기준 시편이 PCS의 x축 방향으로 이동한 거리이며, xfov_step 및 yfov_step은 x축 방향으로 이동한 특정 지점에 대한 카메라 좌표계의 x축 증분량 및 y축 증분량)
상기 3차 단계는 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계의 영상데이터에서 상기 복수의 피듀셜 마크를 기반으로 측정할 수 있다.
상기 복수의 피듀셜 마크는 상기 PCS 상의 x축에 배치된 제1 마크와, 상기 제1 마크에 대해 상기 PCS 상의 y축 방향으로 수직 이동한 위치에 배치된 제2 마크를 포함하며, 상기 3차 단계는 하기 식을 이용하여, a12 및 a22의 파라미터의 값을 획득할 수 있다.
(여기서, 는 제1 행렬이고, Ycv_fid13은 PCS에서 제1 및 제2 마크 간의 거리이며, xfov_fid13 및 yfov_fid13은 1차 또는 2차 단계의 영상데이터에서 제1 마크에서부터 제2 마크로 가상 이동한 특정 지점에 대한 카메라 좌표계의 x축 가상 증분량 및 y축 가상 증분량)
상기 3차 단계는 상기 특정 지점의 위치를 상기 2차 단계에서 측정된 위치 값을 기반으로 계산할 수 있다.
상기 3차 단계는 하기 식을 이용하여, a12 및 a22의 파라미터의 값을 획득할 수 있다.
(여기서, 는 제1 행렬이고, Ycv_fid13은 2차 단계에서 기준 시편이 PCS의 x축 방향 대신 y축 방향으로 이동한 것으로 가상한 이동 거리이며, xfov_fid13 및 yfov_fid13은 2차 단계에서 특정 지점이 x축 방향 대신 y축 방향으로 이동한 것으로 가상한 지점에 대한 카메라 좌표계의 x축 가상 증분량 및 y축 가상 증분량)
본 발명의 일 실시예에 따른 모션 제어기는, 메모리; 및 상기 메모리에 저장된 정보를 이용하여, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션 수행을 제어하는 제어부;를 포함한다.
상기 제어부는, 서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하도록 1차 제어하고, 상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서 상기 특정 지점에 대한 위치 값을 측정하여 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하도록 2차 제어하며, 상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하도록 3차 제어하고, 상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구하도록 제어할 수 있다.
상기 제어부는 상기 기준 시편이 상기 복수의 피듀셜 마크 중에 하나가 상기 PCS의 원점이나 상기 PCS의 x축 상에 놓이도록 정렬된 상태에서 상기 1차 제어를 수행할 수 있다.
상기 제어부는 상기 3차 제어에서 상기 특정 지점의 위치를 상기 1차 제어 또는 상기 2차 제어의 영상데이터에서 상기 복수의 피듀셜 마크를 기반으로 측정할 수 있다.
상기 제어부는 상기 3차 제어에서 상기 2차 제어에서 측정된 위치 값을 기반으로 상기 특정 지점의 위치를 계산할 수 있다.
본 발명의 일 실시예에 따른 모션 제어 시스템은, 카메라를 이용하여 촬영을 수행하는 비전 시스템; 모션 제어기로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 드라이브; 및 드라이브의 운전을 제어하며, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션을 수행하는 모션 제어기;를 포함한다.
상기 모션 제어기는, 서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하고, 상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서 상기 특정 지점에 대한 위치 값을 측정하여 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하며, 상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하고, 상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구한다.
상기와 같이 구성되는 본 발명은 Pick-and-Place(PnP) 등의 모션 제어에서 비전 시스템의 카메라 좌표계를 PCS로 변환하기 위한 아핀 변환 행렬의 파라미터를 보다 정확하게 캘리브레이션할 수 있는 이점이 있다.
즉, 본 발명은 서로 다른 좌표계 간에 무작위로 놓인 공작물의 상대적인 위치와 자세를 파라미터화 한 아핀 변환 행렬을 구현함으로써, Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 비전 시스템 기반의 모션 제어가 가능한 이점이 있다.
또한, 본 발명은 비전 시스템을 이용한 캘리브레이션 시에 공작물을 이송하는 기계 장치와 비전 시스템을 서로 동기화할 수 있는 PLCopen 규격에 따른 명령어 트리거 인터페이스의 구현이 가능한 이점이 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 오브젝트(object)의 상태에 따른 모션 제어의 일 예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 모션 제어 시스템(10)의 블록 구성도를 나타낸다.
도 3는 PLCopen 규격에서 정의한 좌표계 종류를 나타낸다.
도 4는 PLCopen 규격에 따른 마스터(master)와 슬레이브(slave)의 축 대 축 간의 동기화(synchronize)의 프로파일(profile) 및 명령어의 일 예를 나타낸다.
도 5는 PLCopen 규격에 따른 공작물 좌표계(PCS) 설정의 명령어 및 파라미터의 일 예를 나타낸다.
도 6는 축-그룹 대 축-그룹 간의 트래킹(tracking) 및 그 명령어의 일 예를 나타낸다.
도 7은 특정 축에 대해 트래킹 중인 2개의 PCS 간에 Pick-and-Place(PnP)가 요구되는 상황에 대한 일 예를 나타낸다.
도 8은 좌표계 기준이 서로 다른 카메라 좌표계와 공작물 좌표계(PCS) 간의 변환에 대한 일 예를 나타낸다.
도 9는 좌표계 기준 정의에 관련된 도면이다.
도 10은 아핀 변환 행렬의 파라미터를 설정하기 위한 캘리브레이션 과정에 대한 일 예를 나타낸다.
도 11은 좌표계 기준에 따른 카메라 좌표계의 공작물 좌표계에 대한 가상의 y축 이송에 대한 계산 상의 회전 방향 정의에 관련된 도면이다.
도 12는 캘리브레이션 시에 이송 시스템과 비전 시스템을 간을 동기화할 수 있는 명령어 트리거 인터페이스의 구성에 대한 일 예를 나타낸다.
도 13은 캘리브레이션의 시뮬레이션의 모습 및 그 결과(4회 스텝 이동)를 나타낸다.
도 14는 캘리브레이션된 아핀 변환 행렬을 통해 팔레트의 파티션에 Pick-and-Place(PnP)를 하는 시뮬레이션 검증 결과를 나타낸다.
도 15는 축-그룹 대 축-그룹 간의 일반적 형태의 트래킹(Tracking) 구성으로 확장된 예들을 나타낸다.
도 16은 XYT 스테이지의 경우에 대한 일 예를 나타낸다.
도 17은 UVWR 스테이지의 경우에 대한 일 예를 나타낸다.
본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", "구비하다", "마련하다" 또는 "가지다" 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서, "또는", "적어도 하나" 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, "A 또는 B", "A 및 B 중 적어도 하나"는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.
본 명세서에서, "예를 들어" 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.
본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 모션 제어 시스템(10)의 블록 구성도를 나타낸다.
본 발명의 일 실시예에 따른 모션 제어 시스템(10)은 서보 모터, 스텝 모터 등과 같은 다수의 모션 장치(또는 액추에이터)를 제어하기 위한 시스템으로서, 도 2에 도시된 바와 같이, 외부 장치(100), 모션 제어기(200), 드라이브(300), 비전 시스템(400), 모션 장치(미도시) 등을 포함한다.
외부 장치(100)는 모션 제어 시스템(10)의 모든 제어 동작을 관리하는 장치이다. 즉, 사용자 또는 관리자 등은 외부 장치(100)를 통해 모션 제어기(200)에 접속하여 각 드라이브(300)의 동작에 대한 제어를 설정 관리할 수 있다. 가령, 외부 장치(100)는 운전 명령, 튜닝 명령 등의 제어 명령을 모션 제어기(200)에 전달할 수 있다.
외부 장치(100)은 컴퓨팅(computing)이 가능한 단말 또는 PLC(Programmable Logic Controller) 등과 같은 전자 장치일 수 있다. 예를 들어, 단말은 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 스마트폰(smart phone), 스마트패드(smart pad), 또는 PDA(personal digital assistant) 등일 수 있으나, 이에 한정되는 것은 아니다.
다만, 이러한 외부 장치(100) 외에, 조작 패널 등의 사용자 인터페이스(미도시)를 통해 모션 제어기(200)로 제어 명령을 전달할 수도 있다.
모션 제어기(200)는 각 드라이브(300)와 연결되며, 외부 장치(100) 또는 사용자 인터페이스로부터 수신된 제어 명령에 따라 각 드라이브(300)의 운전을 제어한다. 이때, 모션 제어기(200)는 PLCopen 규격에 따라 각 드라이브(300)의 운전을 제어할 수 있다. 가령, 모션 제어기(200)는 기 저장된 운전용 프로파일 정보, 튜닝 파라미터 정보 등의 데이터에 기초하여, 각 드라이브(300)를 운전할 수 있다.
드라이브(300)는 모션 제어기(200)로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 장치이다. 이러한 드라이브(300)는 복수개(300-1, …단, n은 2이상의 자연수)가 구비되며, 각 드라이브(300)가 개별적으로 각 모션 장치를 구동한다. 예를 들어, 드라이브(300)는 스텝 모터 드라이브, 또는 서보 모터 드라이브 등일 수 있으나, 이에 한정되는 것은 아니다.
일례로, 드라이브(300)는 공작물(workpiece)을 이송하는 기계 장치(가령, 컨베이어 벨트, 로터리 테이블, 로봇 등)의 모터나, 이동 중인 공작물 처리하는 기계 장치(가령, PnP을 위한 gripper, 로봇 등)의 모터 등을 구동할 수 있다.
이러한 복수의 드라이브(300)는 모션 제어기(200)와 다양한 방식의 토폴로지(topology)로 연결될 수 있다. 예를 들어, 이러한 토폴로지는 버스 토폴로지(bus topology), 스타 토폴로지(star topology), 링 토폴로지(ring topology), 트리 토폴로지(tree topology), 또는 메시 토폴로지(mesh topology) 등일 수 있으나, 이에 한정되는 것은 아니다. 또한, 이들 드라이브(300) 중에는 마스터(master)인 드라이브와 슬레이브(slave)인 드라이브를 포함할 수 있다.
비전 시스템(400)은 공작물(workpiece)을 촬영하여 그에 대한 영상데이터를 모션 제어기(200)에 제공하거나, 해당 영상데이터에서 공작물의 피듀셜 마크(Fiducial mark)의 위치에 대한 카메라 좌표계의 정보를 모션 제어기(200)에 제공하는 시스템이다. 이를 위해, 비전 시스템(400)은 카메라 및 카메라를 제어하는 제어부를 포함할 수 있다. 예를 들어, 제어부는 프로세서(processor)를 포함하거나, 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process)를 포함할 수 있다.
일례로, 비전 시스템(400)은 이동 중인 공작물이 특정 지점에 근접하는 경우, 해당 근접을 감지하는 센서로부터의 센싱 신호를 받으며, 해당 센싱 신호에 따라 해당 특정 지점에 대한 촬영을 수행할 수 있다. 특히, 비전 시스템(400)은 카메라의 FOV(Field-of-View) 영역 내의 ROI(Region of interest) 영역을 카메라 좌표계로 삼아 공작물의 피듀셜 마크의 위치를 포함한 영상을 촬영하여, 해당 영상데이터를 모션 제어기(200)로 전송하거나, 해당 영상데이터에서의 공작물의 피듀셜 마크 위치에 대한 카메라 좌표계의 정보를 모션 제어기(200)로 전송할 수 있다. 이때, 모션 제어기(200)로 전달된 영상데이터 또는 공작물의 피듀셜 마크 위치에 대한 카메라 좌표계의 정보는 모션 제어기(200)의 좌표계 변환부(210)에서 처리될 수 있다.
한편, 본 발명의 일 실시예에 따른 모션 제어 시스템(10)은 로봇, 컨베이어(conveyor), 로터리 테이블(rotary table) 등과 같은 복수의 기계 장치를 포함할 수 있다. 이때, 하나의 기계 장치에는 적어도 하나의 모션 장치가 구비될 수 있다. 또한, 모션 장치의 구동에 따라 오브젝트(object)의 위치가 달라질 수 있다.
한편, 모션 제어기(200)는, 도 2에 도시된 바와 같이, 좌표계 변환부(210) 및 운전 제어부(220)를 포함할 수 있으며, 이들 구성은 하드웨어인 프로세서(processor)에 포함되거나, 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process)에 포함될 수 있으나, 이에 한정되는 것은 아니다.
이때, 좌표계 변환부(210)는 기준 공작물을 기반으로 좌표계 변환부(210)에서 수행되는 아핀 변환 행렬의 설정(즉, 아핀 변환 행렬의 각 파라미터 값에 대한 캘리브레이션)을 수행할 수 있다. 또한, 좌표계 변환부(210)는 설정된 아핀 변환 행렬을 적용하여 대상 공작물에 대한 좌표계 변환을 수행할 수 있다.
또한, 운전 제어부(220)는 좌표계 변환부(210)에서 변환된 좌표계를 이용하여 대상 공작물에 대한 다양한 모션 제어를 수행할 수 있다. 즉, 운전 제어부(220)는 드라이브(300)의 구동을 위한 제어 신호를 생성할 수 있다.
한편, 좌표계 변환부(210)는 별도의 전자 장치의 구성으로 포함될 수도 있다. 이 경우, 해당 전자 장치는 모션 제어기(200)에 연결되며, 기준 공작물을 기반으로 좌표계 변환부(210)에서 수행되는 아핀 변환 행렬의 설정과, 설정된 아핀 변환 행렬 적용을 통한 대상 공작물에 대한 좌표계 변환을 수행할 수 있다. 이러한 전자 장치는 비전 시스템(400)을 포함하거나 비전 시스템(400)에 연결될 수 있으며, 모션 제어기(200)에 연결될 수도 있다. 이 경우, 모션 제어기(200)는 전자 장치에서 설정된 아핀 변환 행렬을 저장하고, 저장된 아핀 변환 행렬 적용을 통한 대상 공작물에 대한 좌표계 변환을 수행할 수 있다.
예를 들어, 전자 장치는 컴퓨팅이 가능한 장치로서, 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer) 등과 같은 범용의 컴퓨팅 장치일 수도 있고, 임베디드 리눅스(Embeded Linux) 등을 기반으로 구현된 전용의 임베디드 시스템일 수도 있다.
이 경우, 전자 장치는 좌표계 변환부(210)의 기능을 위해 필요한 정보를 저장한 메모리와, 메모리에 저장된 정보를 이용하여 좌표계 변환부(210)의 기능 수행을 제어하는 프로세서 등의 제어부를 포함할 수 있다.
또한, 모션 제어기(200)는 모션 제어기(200)의 동작에 필요한 각종 데이터를 저장한 메모리(미도시)를 더 포함할 수 있다. 즉, 메모리는 좌표계 변환부(210) 및 운전 제어부(220)의 동작을 위해 필요한 정보를 저장한다. 저장 데이터로는 후술할 다양한 식에 대한 정보, 아핀 변환 행렬의 파라미터에 대한 캘리브레이션 과정 수행에 관련된 프로그램 정보, 캘브레이션된 아핀 변환 행렬의 적용 과정 수행에 관련된 프로그램 정보 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.
예를 들어, 메모리는 그 유형에 따라 하드디스크 타입(hard disk type), 마그네틱 매체 타입(Magnetic media type), CD-ROM(compact disc read only memory), 광기록 매체 타입(Optical Media type), 자기-광 매체 타입(Magneto-optical media type), 멀티미디어 카드 마이크로 타입(Multimedia card micro type), 플래시 저장부 타입(flash memory type), 롬 타입(read only memory type), 또는 램 타입(random access memory type) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 메모리(320)는 그 용도/위치에 따라 캐시(cache), 버퍼, 주기억장치, 또는 보조기억장치이거나 별도로 마련된 저장 시스템일 수 있으나, 이에 한정되는 것은 아니다.
도 3는 PLCopen 규격에서 정의한 좌표계 종류를 나타낸다.
도 3을 참조하면, PLCopen 규격에서 정의한 좌표계의 종류로는 축 좌표계(axis coordinate system; ACS), 기계 좌표계(machine coordinate system; MCS), 공작물 좌표계(product coordinate system; PCS) 등이 있다. 이때, ACS로부터 MCS를 얻고 PCS로 동차 변환할 수 있다.
도 4는 PLCopen 규격에 따른 마스터(master)와 슬레이브(slave)의 축 대 축 간의 동기화(synchronize)의 프로파일(profile) 및 명령어의 일 예를 나타낸다. 즉, 도 4(a)는 마스터 축 대 슬레이브 축의 프로파일의 일 예를 나타내고, 도 4(b)는 마스터 축 대 슬레이브 축에 대한 동기화 명령어의 펑션 블록(function block)의 일 예를 나타낸다.
도 4를 참조하면, 축 대 축 간 동기화를 위해, 축 간의 동기화 명령어로 정의된 MC_CamIn을 사용할 수 있다.
도 5는 PLCopen 규격에 따른 공작물 좌표계(PCS) 설정의 명령어 및 파라미터의 일 예를 나타낸다. 즉, 도 5(a)는 PCS 설정 명령어의 펑션 블록의 일 예를 나타내고, 도 5(b)는 변환 파라미터(translation parameters)의 일 예, 즉 translation 및 rotation되어 MCS에서 PCS로 좌표계 변환되는 일 예를 나타내며, 도 5(c)는 회전 파라미터(rotation parameters)의 일 예를 나타낸다.
한편, 도 5를 참조하면, PCS 설정을 위해 다음과 같은 과정을 수행할 수 있다. 즉, A 및 B를 축-그룹으로 구성하면, A 축-그룹의 MCS 좌표계는 MCSA, 그 PCS 좌표계는 PCSA로 표현하고, B 축-그룹의 MCS 좌표계는 MCSB, 그 PCS 좌표계는 PCSB로 표현할 수 있다. 이들 좌표계는 하기 식(1) 내지 식(3)을 이용한 변환이 가능하다.
(1)
(2)
(3)
이때, 식(1)은 MCS 좌표계의 P점에 대해 PCS 좌표계 원점(PPCSORG) 및 회전 행렬(R)로 구성된 동차 변환 행렬(Homogeneous transformation matrix)을 나타내고, 식(2)는 MCS 좌표계와 PCS 좌표계 간의 역행렬을 나타낸다. 또한, 식(3)은 A 축-그룹의 PCS 좌표계와 B 축-그룹의 PCS 좌표계를, A 축-그룹과 B 축-그룹 간의 좌표계 변환으로 매핑하는 것을 나타낸다.
가령, 축-그룹 A 및 B 간(즉, 축-그룹들 간)에 좌표계 변환()은 펑션 블록으로 정의된 MC_SetDynCoordTransform의 명령어를 이용할 수 있다. 또한, 축-그룹 B 내에서 좌표계 변환()은 펑션 블록으로 정의된 MC_SetCoordinateTransform의 명령어를 이용할 수 있다.
도 6는 축-그룹 대 축-그룹 간의 트래킹(tracking) 및 그 명령어의 일 예를 나타낸다. 즉, 도 6(a)는 컨베이어 벨트(conveyor belt)에 대한 트래킹을 나타내고, 도 6(b)는 컨베이어 벨트의 트래킹을 위한 명령어의 펑션 블록을 나타낸다. 또한, 즉, 도 6(c)는 로터리 테이블(rotary table)에 대한 트래킹을 나타내고, 도 6(d)는 로터리 테이블의 트래킹을 위한 명령어의 펑션 블록을 나타낸다.
축-그룹 대 축-그룹 간 트래킹 명령어는 축-그룹 간의 동기화를 위해 정의될 수 있다. 이때, 동기화된 모션 궤적은 두 독립 모션의 중첩(superposition)으로 볼 수 있다. 이러한 축-그룹 대 축-그룹 간 트래킹 명령어의 구현을 위해, 다차원 기어 운전(좌표 별 선형 중첩) 적용하는 방법(제1 구현 방법)과, 좌표계 변환 행렬을 적용(즉, PLCOpen 규격에 따른 펑션 블록을 채택)하는 방법(제2 구현 방법)이 있을 수 있다.
도 6(a)는 로봇이 컨베이어 벨트 위에 놓인 물체를 트래킹하는 경우를 나타낸다. 이 경우, 컨베이어 벨트 전용으로 파라미터화한 펑션 블록을, 도 6(b)와 같이, MC_TrackConveyorBelt의 명령어를 정의할 수 있는데, 축-그룹들 간에 좌표계 변환의 명령어(MC_SetDynCoordTransform)를 통해 구현하여 그 인터페이스를 구성할 수 있다. 구체적으로, 로봇의 MCS 좌표계를 기준으로, 컨베이어 벨트의 이동량(TransMCS_CB)와 컨베이어 벨트의 회전량(RotMCS_CB)을 구할 수 있다. 또한, 컨베이어 벨트의 MCS 좌표계를 기준으로, PCS 좌표계의 이동량(TransCB_PCS)과 PCS 좌표계의 회전량(RotCB_PCS)을 구할 수 있다. 또한, 컨베이어 벨트의 PCS 좌표계 기준으로, 오브젝트의 위치(PPCS)를 구할 수 있다.
한편, 도 6(b)는 로봇이 로터리 테이블에 놓여 회전하는 물체를 트래킹하는 경우를 나타낸다. 이 경우, 로터리 테이블 전용으로 파라미터화한 펑션 블록을, 도 6(d)와 같이, MC_TrackRotaryTable의 명령어로 정의할 수 있는데, 축-그룹들 간)에 좌표계 변환의 명령어(MC_SetDynCoordTransform)를 통해 구현하여 그 인터페이스 구성할 수 있다. 구체적으로, 로봇의 MCS 좌표계 기준으로, 로터리 테이블의 이동량과 로터리 테이블의 회전량을 구할 수 있다. 또한, 로터리 테이블의 MCS 좌표계 기준으로, 그 PCS 좌표계의 이동량 및 회전량을 구할 수 있다. 또한, 로터리 테이블의 PCS 좌표계를 기준으로, 오브젝트의 위치를 구할 수 있다.
도 7은 특정 축에 대해 트래킹 중인 2개의 PCS 간에 Pick-and-Place(PnP)가 요구되는 상황에 대한 일 예를 나타낸다. 즉, 도 7은 로터리 테이블 및 컨베이어 벨트에서 각각 회전/이동 중인 서로 다른 팔레트(pallet) 간에, 로봇을 이용해 PnP 운전을 수행해야하는 장비를 나타낸다. 이러한 도 7의 경우는 다수개의 PCS를 가지는 복잡한 경우에 해당하며, 종래에 PLCOpen 규격에서 정의된 모션 제어 명령어만으로는 그 구현이 어려운 경우에 해당한다.
구체적으로, 도 7의 경우에 대한 운용 시나리오는 다음과 같다.
<운용 시나리오>
① 컨베이어 벨트 위에는 팔레트가 무작위의 위치와 각도로 놓인 채 컨베이어 벨트를 따라 이동함
② 로터리 테이블 위에는 팔레트가 부착되어 로터리 테이블과 함께 회전함
③ 컨베이어에는 기준 위치로부터 컨베이어 벨트의 이송량을 알 수 있는 센서(로터리 엔코더)가 부착됨
④ 로터리 테이블에는 기준 위치로부터 로터리 테이블의 회전량을 알 수 있는 센서(엔코더)가 부착됨
⑤ 컨베이어에는 팔레트의 유무를 감지할 수 있는 근접 센서가 장착됨
⑥ 컨베이어 벨트 및 로터리 테이블의 팔레트는 정해진 간격으로 홈(파티션)이 파여 있고 그 홈에는 오브젝트(가령, 쇠구슬 등)(이하, 오브젝트가 쇠구슬인 것으로 가정)가 들어 있음
⑦ 델타 로봇은 전자석을 그리퍼(gripper)에 장착하고 있고 그 전자석으로 컨베이어 벨트에서 이동 중인 팔레트의 쇠구슬을 차례로 집어서 로터리 테이블에서 회전 중인 팔레트에 쇠구슬을 옮겨야 함
⑧ 로터리 테이블은 컨베이어 벨트의 이동과 동기화되어 회전함
⑨ 로터리 테이블의 쇠구슬을 모두 옮기고 난 후, 반대로 로터리 테이블로부터 컨베이어 벨트의 빈 팔레트로 쇠구슬을 다시 차례로 옮겨야 함
특히, 도 7의 경우에 따른 운용 시나리오에서, PLCOpen 기반의 종래 명령어를 이용하여 모션 제어를 하려는 경우에 발생하는 문제점은 다음과 같다.
- 종래 PLCOpen 스펙에서 정의된 동기 운전 기술은 기준이 되는 기계 좌표계(MCS)에서 상대적으로 놓이는 공작물 좌표계(PCS)가 각 축 별로 위치와 회전량이 얼마나 바뀌는지를 엔코더나 리니어 스케일을 읽어 그 변화량만큼을 동차 변환하는 형태로 구현되어 있음
- 그런데, ①에서 팔레트(공작물에 해당)가 무작위의 위치와 각도로 놓인 채 이동하는 경우는 공작물 좌표계(PCS) 상에서 다시 좌표계 이동 및 회전이 일어난 것으로 간주할 수 있는데, 이 경우 축-그룹 간의 좌표계 변환을 위한 MC_SetDynCoordTransform 또는 동일 축-그룹 안에 좌표계 변환을 위한 MC_SetCoordinateTransform 명령으로 대응이 되지 않음
- 더구나, 엔코더나 리니어 스케일 등으로는 팔레트가 컨베이어 벨트 위에 놓인 채 이동하는 경우에 공작물 좌표계 상에서의 이동과 회전량을 알기가 어렵기 때문에, 이 경우의 일반적인 접근 방법은, 비전 시스템(vision system)을 추가하고 ⑤에서 센서가 감지하는 시점에 비전 시스템의 카메라의 FOV(Field-of-View) 영역 내의 ROI(Region of interest) 영역을 카메라 좌표계로 삼아 팔레트의 피듀셜 마크(Fiducial mark)의 위치를 카메라 좌표계 기준의 픽셀 단위로 측정함(이때, 피듀셜 마크는 팔레트의 상면에 추가적인 홈 등을 통해 구현됨)
- 하지만, 피듀셜 마크의 (x, y) 픽셀 좌표를 측정하더라도 현재는 카메라 좌표계와 공작물 좌표계(PCS) 간에 좌표계 변환을 위한 방법이 준비되지 않은 상태이므로, ⑤의 비전 측정 단계에서 얻은 팔레트의 위치와 자세 정보를 ⑦과 ⑨의 Pick-and-Place 단계에서 MCS->PCS 좌표계 변환 이후에 다시 카메라 좌표계로 변화하면서 트래킹(Tracking)을 할 수 있는 기술이 전무한 실정임
이러한 문제점을 해결하기 위해, 본 발명은 Pick-and-Place(PnP) 등의 복잡한 모션 제어를 위해 비전 시스템(400)의 카메라 좌표계를 PCS 또는 MCS로 변환하기 위한 아핀 변환 행렬의 파라미터를 캘리브레이션 하는 기술을 제공하고자 한다.
도 8은 좌표계 기준이 서로 다른 카메라 좌표계와 공작물 좌표계(PCS) 간의 변환에 대한 일 예를 나타낸다.
즉, 도 8은 특정한 상황의 카메라 좌표계(camera coordinate)와 공작물 좌표계(PCS) 간에 단위와 방향을 나타내는데, 도 8(a)는 카메라 좌표계를 나타내고, 도 8(b) 공작물 좌표계(PCS)를 나타낸다. 이러한 공작물 좌표계(PCS)를 stage coordinate라 지칭할 수도 있다.
도 8(a)를 참조하면, 카메라 좌표계에서 어느 한 점은 (x, y, x축에서의 각도)로 표현될 수 있으며, 이때 x 및 y는 각각 x축 및 y축에서의 값으로서, 카메라의 FOV(Field-of-View) 영역(즉, 카메라에서 촬영된 이미지 영역)에서 원점을 기준으로 해당 점이 떨어진 픽셀 수의 값을 가질 수 있다. 또한, 도 8(b)를 참조하면, 공작물 좌표계(PCS)에서 어느 한 점은 (x, y, x축에서 각도)로 표현될 수 있으며, 이때 x 및 y는 길이 단위(일례로, mm 등)를 가질 수 있다.
도 9는 좌표계 기준 정의에 관련된 도면이다.
도 8의 각 좌표계를 일반화하여 오른손 좌표계 또는 왼손 좌표계로 각각 명명하여 도 9와 같이 나타낼 수 있다. 즉, 도 9(a)는 오른손 좌표계(Right hand system)인 공작물 좌표계를 나타내고, 도 9(b)는 왼손 좌표계(Left hand system)인 카메라 좌표계를 나타낸다.
도 10은 아핀 변환 행렬의 파라미터를 설정하기 위한 캘리브레이션 과정에 대한 일 예를 나타낸다. 즉, 도 10은 MCS 기준의 PCS 원점에 정렬해서 이동 중인 기준 시편에 대한 아핀 변환 행렬의 파라미터의 캘리브레이션을 위한 과정의 일 예를 나타낸다.
이하, 컨베이어 벨트에서 움직이는 기준 시편의 공작물(즉, 기준 공작물)을 이용하여, 비전 시스템(400)의 카메라 좌표계를 PCS로 변환하기 위한 아핀 변환 행렬의 파라미터 설정 과정에 대해서 설명하도록 한다.
즉, 도 10에 도시된 바와 같이, 복수의 피듀셜 마크(Fiducial Mark)를 포함한 기준 시편을 컨베이어 벨트에 배치하며, 그 공작물 좌표계(PCS)를 컨베이어 벨트 상의 원점 위치에 정렬한다. 이때, 위치 및 거리 등에 대해 이미 알고 있는(즉, 정해진) 다양한 위치에서 기준 시편에 대한 비전 시스템(400)의 촬영이 수행된다. 이와 같이 촬영된 영상데이터의 카메라 좌표계에서의 복수의 피듀셜 마크에 대한 좌표값과, 그 PCS에서의 정해진 좌표값을 각각 매칭시킨다. 이러한 매칭을 통해, 카메라 좌표계를 PCS로 변환하기 위한 아핀 변환 행렬의 파라미터(a11, a12, a13, a21, a22, a23)를 구할 수 있다. 이러한 아핀 변환 행렬의 파라미터에 대한 캘리브레이션 과정과, 캘리브레이션된 아핀 변환 행렬의 적용 과정에 대한 구체적인 내용은 다음과 같다.
<제1 단계>
먼저, 기준 시편을 컨베이어 벨트 상에 배치한다. 이때, 기준 시편은 적어도 2개의 이격된 피듀셜 마크(Fiducial Mark)(FID1, FID3)를 포함한다. 즉, PCS에서 정렬된 FID1 및 FID3는 서로 다른 좌표 값을 가지는 것이 바람직하다.
물론, 도 10에서, FID1 및 FID3 외에 서로 이격된 FID2 및 FID4의 피듀셜 마크가 기준 시편에 더 포함되는 것으로 도시되었으나, 이러한 FID2 및 FID4는 옵션 사항이다.
다만, FID1 및 FID3을 연결하는 제1 가상 선분(FID13)과, FID3 및 FID4를 연결하는 제2 가상 선분(FID24)이 서로 수직이 되도록 4개의 피듀셜 마크가 배치되는 경우, PCS에서의 기준 시편의 정렬이 훨씬 더 수월해질 수 있는 이점이 있다.
일례로, FID1이 PCS의 원점이나 PCS의 x축 상에 놓이도록 기준 시편을 PCS에 정렬할 수 있다. 이 경우, FID13은 PCS의 y축에 평행하도록 정렬될 수 있다.
<제2 단계>
기준 시편이 컨베이어 벨트의 좌표계 상에 기준 지점에 위치하도록 정렬한다. 즉, 기준 시편의 공작물 좌표계(PCS)가 컨베이어 벨트의 좌표계 상의 원점에 위치하도록 정렬한다.
일례로, 도 6(a)에서, t0 시각에 PCS.x0와 PCS.y0의 위치에 PCS를 놓은 것을 의미할 수 있다. 즉, 도 10에서, t0 시각에 PCS의 원점 위치는 O0인데, 이것은 PCS를 컨베이어 벨트의 x축을 따라서 회전 없이 양(+)의 방향으로 이동한 지점이다.
다만, 이러한 기준 지점은 비전 시스템(400)의 카메라의 FOV(Field-of-View) 내에 기준 시편이 들어와서 촬상 트리거가 입력될 수 있는 지점에 해당하는 것이 바람직할 수 있다. 이는 후술할 제3 단계에서 비전 시스템(400)의 촬영이 가능하게 하기 위함이다.
<제3 단계>
비전 시스템(400)의 카메라의 FOV(Field-of-View) 내에 기준 시편이 들어오고 촬상 트리거가 입력되면서 비전 시스템(400)의 촬영이 수행되며, 촬영된 영상데이터의 카메라 좌표계에서 기준 시편의 특정 지점(FID1)의 현재 위치를 측정한다. 즉, 정렬된 기준 시편의 초기 시점에 대한 비전 시스템(400)의 촬영이 수행된다.
비전 시스템(400)의 FOV 영역의 카메라 좌표계에서, 기준 시편의 특정 지점(FID1)에 대한 x축 픽셀 값(xfov_fid1)과 y축 픽셀 값(yfov_fid1) 측정하여, 식(4)에 대입한다.
(4)
식(4)에서, xfov_fid1 및 yfov_fid1는 정렬된 기준 시편에 대한 초기의 영상데이터에서 기준 시편의 특정 지점에 대한 카메라 좌표계에서의 x축 픽셀 값 및 y축 픽셀 값을 각각 나타낸다. 또한, 식(4)에서, a11, a12, a13, a21, a22 및 a23의 파라미터를 포함하는 행렬(이하, "제1 행렬")은 기준 시편의 특정 지점에 대한 공작물 좌표계(PCS)에서의 x축 값 및 y축 값을 카메라 좌표계의 x축 픽셀 값 및 y축 픽셀 값으로 변환하기 위한 행렬이다. 즉, 제1 행렬은 이다.
다만, 상술한 특정 지점의 측정 시, 외란 등의 영향을 최소화하기 위해서, FID1 대신에 모든 피듀셜 마크(FID1~ FID4)들의 무게 중심점을 구해서, 그 무게 중심점을 특정 지점으로 하여 식(4)의 xfov_fid1 및 yfov_fid1에 대입할 수도 있다. 이는 기준 시편에 대해 다수 측정되는 영상데이터의 카메라 좌표계에서 기준 시편의 특정 지점의 상대 변화량을 이용하기만 하면 되기 때문이다.
이와 같이 측정된 xfov_fid1 및 yfov_fid1의 값을 식(4)에 대입하면, 하기 식(5)와 같이, 제1 행렬의 파라미터들 중에 a13 및 a23의 2개 파라미터에 대한 캘리브레이션이 완료된다.
(5)
상술한 제3 단계의 동작은 좌표계 변환부(210)의 제어에 따라 수행될 수 있다.
<제4 단계>
기준 시편을 컨베이어 상에서 x축 방향으로 정해진 일정 거리(Xcv_step)만큼을 이동시킨 후, 비전 시스템(400)의 카메라의 FOV 영역 내에서 촬상 트리거가 입력되면서 비전 시스템(400)의 촬영이 수행되며, 촬영된 영상데이터의 카메라 좌표계에서 기준 시편의 특정 지점(FID1)의 증분 이동량을 측정한다. 즉, 초기 이후 시점에서 기준 시편의 일정 거리 이동된 영역에 대한 비전 시스템(400)의 촬영이 수행된다.
비전 시스템(400)의 FOV 영역의 카메라 좌표계에서, 기준 시편의 특정 지점(FID1)에 대한 현재 x축 픽셀 값과 y축 픽셀 값을 측정하고, 이들 현재 측정 픽셀 값이 제3 단계에서 측정된 xfov_fid1 및 yfov_fid1으로부터 증가된 정도의 값인 xfov_step(x축에서의 픽셀 값 증분량) 및 yfov_step(y축에서 픽셀 값 증분량)을 각각 계산하여, 식(6)에 대입한다.
(6)
식(6)에서, xfov_step 및 yfov_step은 x축 방향으로 정해진 만큼 이동한 기준 시편에 대한 영상데이터에서 기준 시편의 특정 지점에 대한 카메라 좌표계에서의 x축 픽셀 값 증분량 및 y축 픽셀 값 증분량을 각각 나타낸다. 또한, Xcv_step는 기준 시편이 PCS에서 x축 방향으로 이동한 일정 거리로서, 정해진 값(이미 알고 있는 값)이다.
다만, 제3 단계 3에서와 마찬가지로, 상술한 특정 점의 측정 시, 외란 등의 영향을 최소화하기 위해서, FID1 대신에 모든 피듀셜 마크(FID1~ FID4)들의 무게 중심점을 구해서, 그 무게 중심점을 특정 지점으로 하여, 이들에 대한 픽셀 증분량인 xfov_ step과 yfov_ step를 계산할 수도 있다.
이와 같이 계산된 xfov_step 및 yfov_step의 값과, 이미 알고 있는 Xcv_step을 식(6)에 대입하면, 하기 식(7)과 같이, 제1 행렬의 파라미터들 중에 a13 및 a23의 2개 파라미터에 대한 캘리브레이션이 완료된다.
(7)
상술한 제4 단계의 동작은 좌표계 변환부(210)의 제어에 따라 수행될 수 있다.
<제5 단계>
기준 시편을 컨베이어 상에서 y축 방향으로 일정 거리(Ycv_fid13)를 가상 이동한 후, 기준 시편의 특정 지점(FID1 또는 무게 중심)의 픽셀 증분량을 추정한다. 즉, 컨베이어 벨트는 x축 방향의 단축 운전을 하므로 y축 방향의 이동이 없다. 하지만, 카메라 좌표계에서는 FOV 영역 안에서 x축과 y축 방향의 이동이 동시에 생기므로, 상대 운동 관점에서 컨베이어 상에서 y축 이송에 대한 변환 행렬의 파라미터 값도 함께 고려해야 한다.
일례로, 기준 시편이 y축 방향으로 가상으로 일정 거리만큼 이동한 값인 Ycv_fid13를 편의상 FID13인 것으로 가상 설정하면, 기준 시편의 특정 지점에 대한 비전 시스템(400)의 카메라의 FOV 상에서의 x축 가상 픽셀 증분량(xfov_fid13) 및 y축 가상 픽셀 증분량(yfov_fid13)을 각각 측정하여, 식(8)에 대입할 수 있다.
(8)
식(8)에서, xfov_fid13 및 yfov_ fid13은 y축 방향으로 정해진 만큼 가상 이동한 기준 시편에 대해 기준 시편의 특정 지점에 대한 카메라 좌표계에서의 x축 픽셀 값 가상 이동량 및 y축 픽셀 값 가상 이동량을 각각 나타낸다. 또한, Ycv_fid13은 기준 시편이 PCS에서 y축 방향으로 가상 이동한 일정 거리로서, 정해진 값(이미 알고 있는 값)이다. 이때, 제3 단계 또는 제4 단계에서의 영상데이터를 활용하여 해당 카메라 좌표계에서의 x축 픽셀 값 가상 이동량 및 y축 픽셀 값 가상 이동량을 각각 측정할 수 있다.
이와 같이 측정된 xfov_fid13 및 yfov_fid13의 값과, 이미 알고 있는 Ycv_FID13을 식(8)에 대입하면, 하기 식(9)와 같이, 제1 행렬의 파라미터들 중에 a12와 a22의 2개 파라미터에 대한 캘리브레이션이 완료된다.
(9)
다른 예로서, Ycv_fid13가 편의상 제4 단계에서의 Xcv_step만큼인 것으로 가상 설정할 수도 있다. 이 경우, Ycv_fid13는 제4 단계에서 특정 지점(FID1 또는 무게 중심)이 이동한 방향에서 90도 수직한 방향으로 동일한 증분량 만큼을 기준 시편이 이동한 것으로 볼 수 있다. 즉, FID1 또는 무게 중심이 제4 단계에서의 Xcv_step만큼을 y축 방향으로 가상 이동한 것으로 설정할 수 있다.
도 11은 좌표계 기준에 따른 카메라 좌표계의 공작물 좌표계에 대한 가상의 y축 이송에 대한 계산 상의 회전 방향 정의에 관련된 도면이다. 즉, 도 11(a)는 오른손 좌표계(Right hand system)의 경우를 나타내고, 도 11(b)는 왼손 좌표계(Left hand system)의 경우를 나타낸다.
이 경우에 대한 가상적인 증분량을 r로 표현하고 그 증분각 θ로 표현한다면, 식(10)과 같이 나타낼 수 있다. 이때, θ에 대해, 오른손 좌표계의 경우는 식(11)과 같이 90도를 (+) 회전시킨 것에 대응시킬 수 있고, 왼손 좌표계의 경우는 식(12)와 같이 90도를 (-) 회전시킨 것에 대응시킬 수 있으며, 이러한 대응 관계는 도 11과 같이 표현할 수 있다.
(10)
(11)
(12)
즉, 식(11)은 오른손 좌표계에 대한 식이며, 식(12)는 왼손 좌표계에 대한 식이다. 식(11)와 식(12)에서, α는 카메라 좌표계에서 x축과 y축 간의 스케일 보정 값으로서, x축과 y축 간이 1:1 스케일이면 α은 1이다.
이에 따라, 기준 시편이 y축 방향으로 가상으로 일정 거리 가상 이동한 경우에 대해, 기준 시편의 특정 지점에 대한 비전 시스템(400)의 카메라의 FOV 상에서의 x축 가상 이동량(xfov_fid13) 및 y축 가상 이동량(yfov_fid13)을 식(10) 및 식(11)을 이용하거나 식(10) 및 식(12)를 이용하여 각각 계산하여, 식(8)에 대입할 수 있다. 즉, 이와 같이 계산된 xfov_fid13 및 yfov_fid13의 값과, 이미 알고 있는 Ycv_FID13을 식(8)에 대입하면, 상술한 식(9)와 같이, 제1 행렬의 파라미터들 중에 a12와 a22의 2개 파라미터에 대한 캘리브레이션이 완료된다.
상술한 제5 단계의 동작은 좌표계 변환부(210)의 제어에 따라 수행될 수 있다.
<제6 단계>
제1 행렬에서, a11, a12, a13, a21, a22 및 a23의 파라미터에 대한 캘리브레이션 모두 완료되었다. 이러한 제1 행렬은 기준 시편의 특정 지점에 대한 공작물 좌표계(PCS)에서의 x축 값 및 y축 값을 카메라 좌표계의 x축 픽셀 값 및 y축 픽셀 값으로 변환하기 위한 행렬이다. 이에 따라, 식(13)과 같이 제1 행렬의 역행렬(이하, "제2 행렬"이라 지칭함)(T)을 계산하면, 지금까지 공작물 좌표계(PCS)에서 카메라 좌표계로 변환한 것을 역으로 변환할 수 있다.
(13)
즉, 제2 행렬(T)은 카메라 좌표계를 기준 시편의 공작물 좌표계(PCS)로 좌표계 변환하는 아핀 변환 행렬에 해당한다. 즉, 제2 행렬(T)을 이용하면, 비전 시스템(400)에서 촬영된 영상데이터로부터 측정한 카메라 좌표계에서의 어떤 공작물(즉, 대상 공작물)의 특정 지점에 대한 좌표 값(즉, 픽셀 값)을, 실제 공작물 좌표계(PCS)에서의 좌표 값으로 변환할 수 있다.
상술한 제6 단계의 동작은 좌표계 변환부(210)의 제어에 따라 수행될 수 있다.
<제7 단계>
제2 행렬(T)은 카메라 좌표계를 공작물 좌표계(PCS)로 좌표계 변환하는 아핀 변환 행렬에 해당한다. 따라서, PCS에서 MCS로의 변환이 필요할 수 있다. 또한, 기계 장치가 복수개인 경우, 변환된 어느 한 기계 장치의 MCS를 다른 기계 장치의 MCS로 변환이 필요할 수도 있다.
다만, 이러한 PCS에서 어느 한 기계 장치의 MCS로의 변환 행렬(이하, "제3 행렬"이라 지칭함)과, 변환된 어느 한 기계 장치의 MCS를 다른 기계 장치의 MCS로의 변환 행렬(이하, "제4 행렬"이라 지칭함)은 일반적으로 널리 알려진 변환 행렬에 해당하므로, 본 발명에서는 이에 대해 상세히 다루지는 않는다.
일례로, 제2 행렬(T)에 의해 변환된 PCS의 좌표점을 컨베이어 벨트 MCS의 좌표점으로 변환하는 제3 행렬과, 변환된 컨베이어 벨트 MCS의 좌표점을 로봇 MCS의 좌표점으로 변환하는 제4 행렬이 각각 사용될 수 있다. 이때, 제3 및 제4 행렬은 공지 기술에 해당하므로, 이러한 공지 기술을 활용하여 PCS에서 최종 목적 기계 장치 MCS로의 변환이 이루어질 수 있다. 예를 들어, 상술한 식(1) 내지 식(3)의 행렬들이나, 이들의 역변환 행렬을 활용하면, 제3 및 제4 행렬을 구할 수 있다.
상술한 PCS에서 MCS로의 변환은 좌표계 변환부(210)의 제어에 따라 수행될 수 있다.
이후, 모션 제어기(200)는 운전 제어부(220)는 MCS로 최종 변환된 정보를 이용하여, 대상 공작물에 대한 모션 제어를 수행한다.
일례로, 컨베이어 벨트 상에서 이동하는 대상 공작물의 홈에 담긴 오브젝트(쇠구슬 등)에 대한 Pick and Place 작업이 필요한 경우, 좌표계 변환부(210)는 상술한 제1 내지 제6 단계에 따라 기 마련된 제2 행렬(T) 또는 추가적으로 제3 행렬까지 이용하여, 대상 공작물의 특정 지점의 카메라 좌표계에서의 좌표점(즉, 오브젝트의 위치)을 MCS의 좌표점으로 변환한다. 또한, 필요에 따라, 제4 행렬을 이용하여, 변환된 MCS의 좌표점을 다른 MCS의 좌표점으로 변환할 수도 있다. 이에 따라, 운전 제어부(220)는 변환된 MCS의 좌표점을 이용하여 해당 오브젝트에 대한 Pick and Place을 수행하도록 모션 제어할 수 있다.
<명령어 트리거 인터페이스의 구성>
도 12는 캘리브레이션 시에 이송 시스템과 비전 시스템을 간을 동기화할 수 있는 명령어 트리거 인터페이스의 구성에 대한 일 예를 나타낸다.
한편, 상술한 제3 및 제4 단계에서, 컨베이어 벨트에서 이동 중인 기준 시편물이 비전 시스템(400)의 카메라 FOV 영역 내에 위치하게 될 때에 비전 시스템(400)에 측정 지령을 내리는 동기 프로세스가 중요하다. 이를 위해, 도 12에 도시된 바와 같이, Pick-and-Place 작업과 비전 시스템(400)의 비전 측정을 동기화할 수 있는 명령어 트리거 인터페이스를 구성할 수 있다.
즉, 아핀 변환 행렬의 6개 파라미터를 측정하기 위해, LS_VisionCalibration 펑션 블록의 입력단은, 비전 시스템의 캘리브레이션과 관련된 자료 구조를 입력할 수 있는 포트(VisionCalib) 및 비전 시스템 자체와 관련된 자료 구조를 입력할 수 있는 포트(VisionCfg)와, 컨베이어 벨트와 같은 단축 이송 기구 시스템 외에 다양한 구성의 이송 기구 시스템에서도 적용할 수 있도록 그 캘리브레이션을 위한 이송 패턴을 선택할 수 있는 포트(PatternType, PatternStep)와, 측정 시 기구물 등의 흔들림이 멈추는 시간 동안 측정을 잠깐 대기하는 시간을 주는 입력 포트(CalibWaitTime)와, 컨베이어와 같은 이송 기구 시스템의 정해진 스텝 이송량(PatternStep)이 완료되었음을 알려주는 동기 입력 포트(DoneMoveXYT)와, 비전 시스템(400)에서 카메라의 측정이 완료되었음을 알려주는 동기 입력 포트(DoneMeasure)와, 비전 시스템에서 측정된 Fiducial Mark의 픽셀 위치 값의 입력 포트(MarkPixelPos)와, 상기 픽셀 위치 값의 유효 및 무효를 지정할 수 있는 마스킹 포트(MarkMsk)를 포함할 수 있다.
또한, LS_VisionCalibration 펑션 블록의 출력단은, 비전 측정 트리거 출력 포트(ExecuteMeasure)와, 컨베이어 벨트와 같은 이송 기구 시스템에 정해진 스텝의 이송이 이루어지도록 지령하는 출력 포트(ExecuteMoveXYT)와, 이송 기구 시스템의 목표 이동 위치(CmdPositionXYT)와 목표 이동 속도(CmdVelocityXYT)를 포함할 수 있다.
한편, 비전 시스템(400)의 카메라를 제어하기 위한 LS_VisionMeasureMakr 펑션 블록의 입력단은, VisionCalibration 펑션 블록의 트리거 출력인 ExecuteMeasure 지령의 상향 에지를 감지하는 비전 측정 트리거 입력(Execute) 포트와, 비전 시스템 자체와 관련된 자료 구조를 입력할 수 있는 포트(VisionCfg)를 포함한다.
LS_VisionMeasureMakr 펑션 블록의 출력단은, Fiducial Mark의 픽셀 위치 값을 출력하는 포트(MarkPixelPos)를 포함한다. 이때, 출력 포트(MarkPixelPos)는 VisionCalibration 펑션 블록의 입력 포트인 MarkPixelPos으로 피드백된다.
<시뮬레이션 수행>
도 13은 캘리브레이션의 시뮬레이션의 모습 및 그 결과(4회 스텝 이동)를 나타낸다. 즉, 도 13(a)는 FOV(사각영역) 내의 기준 시편의 모습을 나타내고, 도 13(b)는 기준 시편의 Fiducial Mark 측정 결과를 나타낸다.
한편, 상술한 제1 내지 제5 단계에 따른 아핀 변환 행렬의 파라미터의 캘리브레이션 과정에 대해 시뮬레이션을 수행하였다.
즉, 제1 및 제2 단계에 따라 도 13(a)와 같이 공작물의 기준 시편이 정렬되고, 제3 및 제4 단계에 따라 시뮬레이션 상에서 컨베이어를 xcv_step만큼 이동하면서 4개의 FID1, FID2, FID3 및 FID4가 비전 시스템(400)의 카메라의 FOV 상에서 픽셀 단위로 측정되었으며, 그 결과는 도 13(b)와 같다.
또한, 측정의 신뢰성을 높이기 위해서, FOV 상에서 4회 이동하면서 측정하였으며, 그 결과는 다음의 표 1과 같다.
측정 회수 Fiducial Marks FID1 FID2 FID3 FID4
1st Xpixel 1646 1443 1154 1357
Ypixel 674 385 588 877
2nd Xpixel 1454 1251 962 1165
Ypixel 641 351 554 843
3rd Xpixel 1060 857 568 771
Ypixel 571 282 484 774
4th Xpixel 1257 1054 765 968
Ypixel 606 316 519 809
5th Xpixel 863 661 371 574
Ypixel 536 247 450 739
즉, 표 1은 캘리브레이션 시 Fiducial Mark의 측정 결과(4개 Fiducial Mark 위치의 무게 중심을 구해 평균함)이다.4개의 Fiducial Mark의 무게 중심 값의 평균 값에 대해서, 제3 및 제4 단계에 따라 파라미터 a13 및 a23와, a11 및 a21를 구하고, 제5 단계에서 파라미터 a12 및 a22를 구함으로써, 총 6개 파라미터를 모두 얻었다.
이때, 캘리브레이션된 6개 파라미터에 대해, 제6 단계의 식(13)에 따라 제1 행렬의 역행렬인 제2 행렬(T), 즉 아핀 변환 행렬을 식(14)와 같이 구한다. 이러한 제2 행렬(T)을 이용하면, 카메라 좌표계에서 공작물 좌표계(PCS)로 좌표계 변환이 가능하다. 즉, 카메라 좌표계에서의 대상 공작물의 특정 좌표점을 PCS의 좌표점으로 변환할 수 있다.
(14)
도 14는 캘리브레이션된 아핀 변환 행렬을 통해 팔레트의 파티션에 Pick-and-Place(PnP)를 하는 시뮬레이션 검증 결과를 나타낸다. 도 14에서, 팔레트 내의 4개 홈 중의 하나에 표시된 동그란 점은 로봇의 그리퍼(gripper) 위치를 나타낸다.
그 결과, 도 14에 나타난 바와 같이, 공작물이 무작위로 틀어진 상태에서도 Fiducial Mark들의 카메라 측정 값으로 공작물 좌표계(PCS)로의 좌표계 변환이 가능하였고, 변환된 좌표계를 따라 로봇의 그리퍼(빨간 점)가 공작물에 해당하는 팔레트의 특정 파티션에 Pick-and-Place가 가능하였다. 도 14에서, 노란색 사각 영역은 카메라의 FOV를 나타내며, 카메라가 그리퍼 옆에 고정되어 함께 이동하는 구조이다.
한편, 이러한 시뮬레이션에서 수행 전에 사전 세팅된 고정 파라미터의 값은 표 2와 같다.
설정값 설명
좌표계 설정 왼손 좌표계 컨베이어 y축 방향이 FOV 방향과 반대
FID24가 컨베이어 y축과 이루는 각도 90˚ FID13이 컨베이어의 y축 방향과 일치하도록 정렬됨
FOV상에서 FID13과 FID24 간의 비율 1.0 카메라 FOV 상에서 x축과 y축간에 비율
한편, 상술한 시뮬레이션의 캘리브레이션 시에, 카메라와 이송용 기계 장치 간의 지령 동기를 맞추기 위해, 도 12에 따라 제시한 명령어 인터페이스의 구성을 적용하였다.<다른 실시예>
지금까지 컨베이어 벨트 위를 이동하는 공작물의 Pick-and-Place를 대상으로 카메라와 이송용 기계 장치 간의 좌표계 변환에 대한 실시예를 설명하였다. 하지만, 컨베이어 벨트의 경우 단축의 단방향 이송용 기계 장치에 대한 하나의 실시예에 불과하다.
도 15는 축-그룹 대 축-그룹 간의 일반적 형태의 트래킹(Tracking) 구성으로 확장된 예들을 나타낸다.
즉, 도 15에 도시된 바와 같이 이송용 기계 장치의 구동기 타입을 확장할 수 있다. 이러한 도 15에 따르면, 지금까지 실시예를 든 컨베이어 벨트는 단방향 단축 이송용 기계 장치로서, 패턴 타입 1(pattern Type 1)에 해당한다.
또한, 단축 이송용 기계 장치나 양방향 단축 이송용 기계 장치인 경우, 패턴 타입 2(pattern Type 2)에 해당한다. 이 경우, 캘리브레이션을 위한 이송 스텝은 컨베이어처럼 양(+)의 방향 뿐 아니라 음(-)의 방향도 포함될 수 있다.
이송용 기계 장치에 회전형 구동기가 적용되어 상술한 단방향 단축 이송용 기계 장치나 양방향 단축 이송용 기계 장치에 결합되는 X(Y)T 스테이지 형태인 경우, 패턴 타입 3(pattern Type 3)으로 정의 가능하다. 이 경우, 캘리브레이션을 위한 이송 스텝은 패턴 타입 2(pattern Type 2)에서 회전각 θstep을 더 포함한다.
도 16은 XYT 스테이지의 경우에 대한 일 예를 나타내며, 도 17은 UVWR 스테이지의 경우에 대한 일 예를 나타낸다.
단축이 아니라 2축의 양방향 구동기가 적용되되, 추가로 회전 구동기까지 결합된 이송용 기계 장치(도 16의 XYT 스테이지 또는 도 17의 UVWR 스테이지)를 가정할 수 있다. 이 경우, 패턴 타입 4(pattern Type 4)에 해당하며, 캘리브레이션을 위한 이송 스텝은 패턴 타입 3(pattern Type 3)의 θste에 x축과 y축 방향의 스텝 형태의 소용돌이 모양 이송 스텝도 포함한다.
패턴 타입 4(pattern Type 4)의 경우, 직진 운동을 위한 두 개의 단축이 모두 실제 축이므로, 식(10) 내지 식(13)과 같이 추정하지 않고 실제 측정값을 활용해야 한다.
상술한 바와 같이 구성되는 본 발명은 Pick-and-Place(PnP) 등의 모션 제어에서 비전 시스템의 카메라 좌표계를 PCS로 변환하기 위한 아핀 변환 행렬의 파라미터를 보다 정확하게 캘리브레이션할 수 있는 이점이 있다. 즉, 본 발명은 서로 다른 좌표계 간에 무작위로 놓인 공작물의 상대적인 위치와 자세를 파라미터화 한 아핀 변환 행렬을 구현함으로써, Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 비전 시스템 기반의 모션 제어가 가능한 이점이 있다. 또한, 본 발명은 비전 시스템을 이용한 캘리브레이션 시에 공작물을 이송하는 기계 장치와 비전 시스템을 서로 동기화할 수 있는 PLCopen 규격에 따른 명령어 트리거 인터페이스의 구현이 가능한 이점이 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 청구범위 및 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10: 모션 제어 시스템 100: 외부 장치
200: 모션 제어기 210: 좌표계 설정부
220: 운전 제어부 300: 드라이브
400: 비전 시스템

Claims (17)

  1. 모션 제어기를 포함하는 시스템에서 수행되며, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션을 수행하기 위한 방법으로서,
    서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하는 1차 단계;
    상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 특정 지점에 대한 위치 값을 측정하여, 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하는 2차 단계;
    상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여, 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하는 3차 단계; 및
    상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구하는 단계;
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 특정 지점은 상기 복수의 피듀셜 마크 중에 하나이거나, 복수의 피듀셜 마크의 무게 중심점인 방법.
  3. 제2항에 있어서,
    상기 복수의 피듀셜 마크는 상기 기계 장치 상의 x축에 배치된 제1 마크와, 상기 제1 마크에 대해 y축 방향으로 수직 이동한 위치에 배치된 제2 마크를 포함하는 방법.
  4. 제1항에 있어서,
    상기 1차 단계에서 상기 기준 시편은 상기 복수의 피듀셜 마크 중에 하나가 상기 PCS의 원점이나 상기 PCS의 x축 상에 놓이도록 정렬되는 방법.
  5. 제1항에 있어서,
    상기 1차 단계는 하기 식을 이용하여, a13 및 a23의 파라미터의 값을 획득하는 방법.

    (여기서, 는 제1 행렬이고, xfov_fid1 및 yfov_fid1는 기준 시편의 특정 지점에 대한 카메라 좌표계의 x축 및 y축의 위치 값임)

  6. 제1항에 있어서,
    상기 2차 단계는 하기 식을 이용하여, a11 및 a21의 파라미터의 값을 획득하는 방법.

    (여기서, 는 제1 행렬이고, Xcv_step는 기준 시편이 PCS의 x축 방향으로 이동한 거리이며, xfov_step 및 yfov_step은 x축 방향으로 이동한 특정 지점에 대한 카메라 좌표계의 x축 증분량 및 y축 증분량)

  7. 제1항에 있어서,
    상기 3차 단계는 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계의 영상데이터에서 상기 복수의 피듀셜 마크를 기반으로 측정하는 방법.
  8. 제7항에 있어서,
    상기 복수의 피듀셜 마크는 상기 PCS 상의 x축에 배치된 제1 마크와, 상기 제1 마크에 대해 상기 PCS 상의 y축 방향으로 수직 이동한 위치에 배치된 제2 마크를 포함하며,
    상기 3차 단계는 하기 식을 이용하여, a12 및 a22의 파라미터의 값을 획득하는 방법.

    (여기서, 는 제1 행렬이고, Ycv_fid13은 PCS에서 제1 및 제2 마크 간의 거리이며, xfov_fid13 및 yfov_fid13은 1차 또는 2차 단계의 영상데이터에서 제1 마크에서부터 제2 마크로 가상 이동한 특정 지점에 대한 카메라 좌표계의 x축 가상 증분량 및 y축 가상 증분량)

  9. 제1항에 있어서,
    상기 3차 단계는 상기 특정 지점의 위치를 상기 2차 단계에서 측정된 위치 값을 기반으로 계산하는 방법.
  10. 제9항에 있어서,
    상기 3차 단계는 하기 식을 이용하여, a12 및 a22의 파라미터의 값을 획득하는 방법.

    (여기서, 는 제1 행렬이고, Ycv_fid13은 2차 단계에서 기준 시편이 PCS의 x축 방향 대신 y축 방향으로 이동한 것으로 가상한 이동 거리이며, xfov_fid13 및 yfov_fid13은 2차 단계에서 특정 지점이 x축 방향 대신 y축 방향으로 이동한 것으로 가상한 지점에 대한 카메라 좌표계의 x축 가상 증분량 및 y축 가상 증분량)
  11. 메모리; 및
    상기 메모리에 저장된 정보를 이용하여, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션 수행을 제어하는 제어부;를 포함하며,
    상기 제어부는,
    서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하도록 1차 제어하고,
    상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 특정 지점에 대한 위치 값을 측정하여, 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하도록 2차 제어하며,
    상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여, 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하도록 3차 제어하고,
    상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구하도록 제어하는 모션 제어기.
  12. 제11항에 있어서,
    상기 특정 지점은 상기 복수의 피듀셜 마크 중에 하나이거나, 복수의 피듀셜 마크의 무게 중심점인 모션 제어기.
  13. 제12항에 있어서,
    상기 복수의 피듀셜 마크는 상기 기계 장치 상의 x축에 배치된 제1 마크와, 상기 제1 마크에 대해 y축 방향으로 수직 이동한 위치에 배치된 제2 마크를 포함하는 모션 제어기.
  14. 제11항에 있어서,
    상기 제어부는 상기 기준 시편이 상기 복수의 피듀셜 마크 중에 하나가 상기 PCS의 원점이나 상기 PCS의 x축 상에 놓이도록 정렬된 상태에서 상기 1차 제어를 수행하는 모션 제어기.
  15. 제11항에 있어서,
    상기 제어부는 상기 3차 제어에서 상기 특정 지점의 위치를 상기 1차 제어 또는 상기 2차 제어의 영상데이터에서 상기 복수의 피듀셜 마크를 기반으로 측정하는 모션 제어기.
  16. 제11항에 있어서,
    상기 제어부는 상기 3차 제어에서 상기 2차 제어에서 측정된 위치 값을 기반으로 상기 특정 지점의 위치를 계산하는 방법.
  17. 카메라를 이용하여 촬영을 수행하는 비전 시스템;
    모션 제어기로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 드라이브; 및
    드라이브의 운전을 제어하며, 비전 시스템의 카메라 좌표계를 공작물 좌표계(product coordinate system; PCS)로 변환하는 아핀 변환 행렬의 파라미터에 대한 캘리브레이션을 수행하는 모션 제어기;를 포함하며,
    상기 모션 제어기는,
    서로 이격된 복수의 피듀셜 마크(Fiducial Mark)를 포함하는 기준 시편에 대해 어느 한 기계 장치의 기준 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 피듀셜 마크들을 활용하여 도출되는 상기 기준 시편의 특정 지점에 대한 위치 값을 측정하여, 상기 PCS에서 상기 카메라 좌표계로 변환하는 제1 행렬의 파라미터들 중 일부에 대한 값을 획득하고,
    상기 기준 시편을 상기 PCS 상의 x축 방향으로 일정 거리를 이동시킨 지점에서 촬영된 상기 비전 시스템의 영상데이터에서, 상기 특정 지점에 대한 위치 값을 측정하여, 상기 제1 행렬의 파라미터들 중 다른 일부에 대한 값을 획득하며,
    상기 기준 시편을 상기 PCS 상의 y축 방향으로 일정 거리를 가상으로 이동시킨 지점에서의 상기 특정 지점의 위치를 상기 1차 단계 또는 상기 2차 단계에서의 정보를 기반으로 도출하여, 상기 제1 행렬의 파라미터들 중 나머지에 대한 값을 획득하고,
    상기 제1 행렬에 대한 역행렬을 계산하여 상기 아핀 변환 행렬인 제2 행렬을 구하는 모션 제어기.
KR1020220022977A 2022-02-22 2022-02-22 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템 KR20230126012A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220022977A KR20230126012A (ko) 2022-02-22 2022-02-22 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템
PCT/KR2023/000504 WO2023163373A1 (ko) 2022-02-22 2023-01-11 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220022977A KR20230126012A (ko) 2022-02-22 2022-02-22 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템

Publications (1)

Publication Number Publication Date
KR20230126012A true KR20230126012A (ko) 2023-08-29

Family

ID=87766204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220022977A KR20230126012A (ko) 2022-02-22 2022-02-22 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템

Country Status (2)

Country Link
KR (1) KR20230126012A (ko)
WO (1) WO2023163373A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100911330B1 (ko) * 2008-12-30 2009-08-07 주식회사 탑 엔지니어링 어레이 테스트 장치와, 상기 어레이 테스트 장치의 기판 일지점 위치 측정 방법과, 카메라 어셈블리에 촬상된 특정 위치좌표 측정 방법
KR101128913B1 (ko) * 2009-05-07 2012-03-27 에스엔유 프리시젼 주식회사 비전 검사시스템 및 이를 이용한 좌표변환방법
KR101657949B1 (ko) * 2012-02-28 2016-09-20 주식회사 고영테크놀러지 검사방법
KR101452928B1 (ko) * 2013-02-26 2014-10-22 애니모션텍 주식회사 카메라와 변위센서를 이용한 스테이지 캘리브레이션 방법
KR102437013B1 (ko) * 2020-07-31 2022-08-29 프레임웍스 주식회사 피가공물 연삭 방법

Also Published As

Publication number Publication date
WO2023163373A1 (ko) 2023-08-31

Similar Documents

Publication Publication Date Title
JP7063560B2 (ja) 適応型のロボット式エンドエフェクタのための方法及び装置
CN109153125B (zh) 用于定向工业机器人的方法和工业机器人
CN106873550B (zh) 模拟装置以及模拟方法
JP6685199B2 (ja) 案内された組立環境におけるマシンビジョン座標空間を結合するためのシステム及び方法
CN105509671B (zh) 一种利用平面标定板的机器人工具中心点标定方法
TWI594097B (zh) 用於組裝系統中物件之虛擬組裝的系統及方法
EP2547490B1 (en) Calibration of a base coordinate system for an industrial robot
US20160279800A1 (en) Robot, robot control device, and robotic system
CN109877840B (zh) 一种基于相机光轴约束的双机械臂标定方法
WO2019138111A1 (en) Vision-based sensor system and control method for robot arms
US11403780B2 (en) Camera calibration device and camera calibration method
CN104786226A (zh) 抓取在线工件的机器人位姿及运动轨迹定位系统与方法
CN204585232U (zh) 抓取在线工件的机器人位姿及运动轨迹定位系统
JP2016000442A (ja) ロボット、ロボットシステム及び制御装置
JP2013043271A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
CN110148187A (zh) 一种SCARA机械手Eye-in-Hand的高精度手眼标定方法和系统
CN113001535A (zh) 机器人工件坐标系自动校正系统与方法
CN110480642A (zh) 工业机器人及其利用视觉标定用户坐标系的方法
CN110581946B (zh) 控制系统、控制装置、图像处理装置以及存储介质
JP2019119027A (ja) ロボットシステムの制御方法、およびロボットシステム
WO2018043524A1 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
CN114654466B (zh) 自动标定方法、装置、系统、电子设备及存储介质
Hvilshøj et al. Calibration techniques for industrial mobile manipulators: Theoretical configurations and best practices
Li et al. Research on hand-eye calibration technology of visual service robot grasping based on ROS
CN114029982A (zh) 一种相机在机器臂外的手眼标定装置及其标定方法