KR102094004B1 - 탁구 로봇 제어 방법 및 이를 위한 시스템 - Google Patents

탁구 로봇 제어 방법 및 이를 위한 시스템 Download PDF

Info

Publication number
KR102094004B1
KR102094004B1 KR1020180081545A KR20180081545A KR102094004B1 KR 102094004 B1 KR102094004 B1 KR 102094004B1 KR 1020180081545 A KR1020180081545 A KR 1020180081545A KR 20180081545 A KR20180081545 A KR 20180081545A KR 102094004 B1 KR102094004 B1 KR 102094004B1
Authority
KR
South Korea
Prior art keywords
table tennis
tennis ball
camera
robot
detecting
Prior art date
Application number
KR1020180081545A
Other languages
English (en)
Other versions
KR20200013133A (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 KR1020180081545A priority Critical patent/KR102094004B1/ko
Publication of KR20200013133A publication Critical patent/KR20200013133A/ko
Application granted granted Critical
Publication of KR102094004B1 publication Critical patent/KR102094004B1/ko

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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B67/00Sporting games or accessories therefor, not provided for in groups A63B1/00 - A63B65/00
    • A63B67/04Table games physically beneficial for the human body, modelled on outdoor sports, e.g. table tennis
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2102/00Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like
    • A63B2102/16Table tennis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/80Special sensors, transducers or devices therefor
    • A63B2220/806Video cameras

Abstract

실시예는, 말단장치에 탁구채가 결합된 다관절 로봇의 각 관절에 대한 초기 각도 정보에 기초하여 상기 다관절 로봇에 관한 정기구학 모델링을 통해 상기 말단장치의 방위를 계산하는 단계;탁구대의 상부면을 촬영하는 제1카메라 및 탁구대의 측면을 촬영하는 제2카메라의 복수의 촬영 영상에 기초하여 예상타격지점을설정하는 단계;상기 말단장치의 이동의 최적경로를 설정하는 단계; 및 상기 탁구대 상에서 상기 다관절 로봇을 향해 이동하는 탁구공을 타격하기 위하여 상기 말단장치가 상기 최적경로를 따라 이동하도록 상기 다관절 로봇에 관한 역기구학 모델링을 통해 상기 말단장치를 이동시키는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수 있다.

Description

탁구 로봇 제어 방법 및 이를 위한 시스템{Method for controlling a table tennis robot and a system therefor}
본 발명은 탁구 로봇 제어 방법 및 이를 위한 시스템에 관한 것이다.
로봇은 인간을 모방하여 외부환경을 인식하고 상황을 판단하고 자율적으로 동작하는 기계를 의미한다. 로봇은 제조용 로봇과 서비스용 로봇으로 구분되고, 서비스용 로봇은 전문서비스용 로봇과 개인서비스용 로봇으로 분류된다. 최근 제조업의 생산성 경쟁 심화, 안전 이슈 부상, 저출산및 고령화 심화 등으로 인해 로봇산업이 부상하고 있다.
세계 로봇시장 규모는 크게 성장하고 있고,주로 제조용 로봇 중심이나 최근 개인서비스용 로봇 그리고 레크레이션 분야의 로봇 구성비가 확대되었다.
레크레이션 분야의 로봇에 대한 관심을 증대되면서,테니스와 같은 스포츠에서 테니스 공을 수거하거나 대한민국 특허공개공보 제10-2015-0084368호와 같은 테니스 공을 분배하는 로봇과 같이 사람들의 스포츠 활동에 보조적인 로봇이 등장하고 있다.나아가 최근에는 사람대 로봇 사이에서 스포츠를 즐길 수 있도록 하는 로봇 기술에 대한 관심이 높아지고 있다.
대한민국 특허공개공보 제10-2015-0084368호 대한민국 특허공개공보 제10-2009-0020251호
실시예는 로봇과 사람 사이의 탁구 경기가 가능하도록 하는 방법 및 시스템을 제공하는데 목적이 있다.
또한, 실시예는,카메라의 인식범위를 벗어나는 탁구대 공간에서 탁구공이 검출되지 않는 문제를 해결할 수 있는 방법 및 시스템을 제공하는데 목적이 있다.
또한, 실시예는 탁구공의 높이에 따른 실제 좌표와 촬영 영상에서 검출되는 좌표 사이의 위치 오차가 발생하는 문제를 해결할 수 있는 방법 및 시스템을 제공하는데 목적이 있다.
그 밖에, 실시예는 다관절 로봇의 정밀한 위치 제어가 가능한 방법 및 시스템을 제공하는데 목적이 있다.
또한, 실시예는 고가의 정합(스테레오)카메라가 아닌 비교적 저렴한 두 대의 단안 카메라를 이용하여 탁구공을 검출할 수 있는 방법 및 시스템을 제공하는데 목적이 있다.
또한, 실시예는 탁구공의 검출 및 탁구공의 이동 궤적 검출의 정확도를 높인 방법 및 시스템을 제공하는데 목적이 있다.
또한, 실시예는 정밀성과반응 속도를 향상시킨 탁구 로봇 제어 방법 및 시스템을 제공하는데 목적이 있다.
실시예는, 말단장치에 탁구채가 결합된 다관절 로봇의 각 관절에 대한 초기 각도 정보에 기초하여 상기 다관절 로봇에 관한 정기구학 모델링을 통해 상기 말단장치의 방위를 계산하는 단계; 탁구대의 상부면을 촬영하는 제1카메라 및 탁구대의 측면을 촬영하는 제2카메라의 복수의 촬영 영상에 기초하여 예상타격지점을설정하는 단계; 상기 말단장치의 이동의 최적경로를 설정하는 단계; 및 상기 탁구대 상에서 상기 다관절 로봇을 향해 이동하는 탁구공을 타격하기 위하여 상기 말단장치가 상기 최적경로를 따라 이동하도록 상기 다관절 로봇에 관한 역기구학 모델링을 통해 상기 말단장치를 이동시키는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수 있다.
다른 측면에서, 상기 예상타격지점을 설정하는 단계는, 상기 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계; 상기 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계; 및 미리 설정된 타격 평면에 위치한 상기 탁구공을 촬영한 촬영 영상 내의 탁구공의 위치를 검출하여 상기 예상타격지점을 설정하는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서,상기 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계는, 상기 촬영 영상을 이진화하는 단계; 이진화된 영상 내의 탁구공에 대응하는 영역의 중심을 기준으로 전방위 탐색을 진행하여 상기 중심으로부터 탁구공에 대응하는 영역과 배경 영역 사이의 경계 영역까지의 최소 거리를 산출하고 상기 중심을 중심점으로 하고 상기 최소 거리를 반지름으로 하는 원을 설정하는 단계; 및상기 원에 기초하여 상기 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 제1 카메라는 상기 탁구대의 상부면을 밑면으로 하고, 상기 다관절 로봇의 최대구동높이를 높이 값으로 하는 가상의 직육면체 영역을 포함하는 공간을 촬영하는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계는, 상기 제1카메라로부터의 제1복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계;및 상기 제2카메라로부터의 제2 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 제1카메라로부터의 제1복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계는, 상기 원의 반지름의 크기에 따른 상기 제1카메라와 상기 탁구공의 거리를 측정하는 단계; 및비선형 회귀 분석에 기초하여 상기 탁구공의 좌표를 보정하여 상기 탁구공의 궤적을 검출하는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 제2카메라로부터의 제2 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계는, 상기 제2복수의 촬영 영상 내의 탁구공의 위치 변화에 따른 탁구공의 속도에 기초하여 상기 탁구공의 수평도달거리를 산출하는 단계;및 상기 수평도달거리 및 상기 최초 검출된 탁구공의 좌표에 기초하여 상기 탁구공의 궤적을 검출하는 단계;를 포함하는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서,상기 탁구대의 장축 방향을 X 방향,상기 탁구대의 단축 방향을 Y 방향 그리고 상기 탁구대가 설치된 지면을 기준으로 높이 방향을 Z 방향으로 정의하면, 상기 예상타격지점은 상기 X 방향으로 상기 다관절 로봇으로부터 소정의 거리로 이격된 Y-Z 평면인 타격평면 상에 설정되는 탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서, X
Figure 112018069191649-pat00001
Y 픽셀의 해상도의 촬영 영상에서 상기 X 방향에 대응하는 해상도 X축상의 픽셀 값이 원점을 기준으로 미리 설정된 픽셀 이상의 영역에서 상기 탁구공이 검출되는 경우 상기 미리 설정된 픽셀 이하의 영역에서 검출된 복수의 탁구공의 좌표들에 기초하여 회귀 직선식을 설정하고, 상기 설정된 회귀 직선식에 기초하여 상기 예상타격지점의 좌표값을 설정하는탁구 로봇 제어 방법을 제공할 수도 있다.
또 다른 측면에서, 전술한 방법을 수행하기 위한 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체를 제공할 수도 있다.
실시예는 로봇과 사람 사이의 탁구 경기가 가능하도록 하는 시스템을 제공할 수 있다.
또한,다관절 로봇의 정밀한 위치 제어를 통해 탁구공의 타격의 정밀도를 향상시킬 수 있다.
또한, 탁구공의 검출의 정밀도를 향상시키고,제1 및 제2카메라를 통해 탁구공의 이동 궤적 검출의 정확도를 높일 수 있다.
또한,실시예는 정밀성과 반응 속도를 향상시킨 탁구 로봇 제어 시스템을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 탁구 로봇 제어 시스템에 대한 예시도이다.
도 2는 본 발명의 실시예에 따른 다관절 로봇의 예시도이다.
도 3은 다관절 로봇의 좌표계이다.
도 4는 다관절 로봇의 몸통과 손목 부분으로 분리된 로봇의 좌표계이다.
도 5는 몸통을 구성하는 관절 1 내지 3에 대한 도해이다.
도 6은 로봇과의 거리 k를 지닌 타격평면에 대한 예시도이다.
도 7a는 탁구공의 예측 궤적과 타격평면의 교차점(Intersection point)이 말단장치가 이동해야 할 목표지점인 예상타격지점(expected hit point)에 대한 예시도이다.
도 7b는 평면상에서 원의 둘레(Circle circumference)에 대한 예시도이다.
도 8a는 경로 선택 계획 알고리즘에 따른 로봇의 위치 정보를 나타낸 것이다.
도 8b는 예상타격지점으로 가기 위한 경로 선택 계획 알고리즘을 설명하기 위한 도면이다.
도 9는 탁구공의 검출 예시도이다.
도 10은 다관절 로봇의 3차원 좌표계를 나타낸 것이다.
도 11a 및 도 11b는 제1카메라 높이에 따른 탁구공의 인식범위를 설명하기 위한 것이다.
도 12는 삼각함수를 이용한 제1카메라의 최소 높이를 결정하는 방법에 관한 것이다.
도 13은 탁구공의 높이에 따른 좌표 오차를 설명하기 위한 개념도이다.
도 14는 탁구공의 거리에 따른 픽셀변화에 대한 그래프이다.
도 15는 화각 보정을 통한 탁구공의 실제 좌표를 검색하는 방법을 나타낸 개념도이다.
도 16은 보정된 원의 중심을 나타낸 것이다.
도 17 내지 도 19는 X-Y 좌표평면에서의 탁구공의 중심좌표를 검출한 것이다.
도 20은 X-Z 좌표평면에서 탁구공의 좌표를 검출하는 방법을 나타낸 예시도이다.
도 21은 탁구 로봇 제어 방법에 대한 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시예에 따른 탁구 로봇 제어 시스템에 대한 예시도이다.그리고 도 2는 본 발명의 실시예에 따른 다관절 로봇의 예시도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 시스템(10)은 탁구대(30)의 일측에 위치한 탁구 경기의 상대방과 마주하도록 탁구대(30)를 기준으로 상대방의 건너편인 탁구대(30)의 타측에 위치하고 말단장치(101)에 탁구채(20)가 설치된 다관절 로봇(100), 탁구대(30)를 촬영하는 카메라(200), 카메라(200)로부터의 수신된 영상을 처리하여 다관절 로봇(100)를 제어하기 위한 컴퓨팅 장치(300)를 포함할 수 있다.
카메라(200)는 탁구대(30)의 상단에 위치하여 탁구대(30)의 상부면을 촬영하는 제1카메라(210)와 탁구대(30)의 측면에 위치하여 탁구대(30)의 측면을 촬영하는 제2카메라(220)를 포함할 수 있다.
제1카메라(210)는 탁구대(30)의 상부면 전체를 촬영하여 탁구대(30)를 하나의 평면으로 인식하고 탁구공(40)의 직선적인 변화를 관측할 수 있다.
제2카메라(220)는 탁구대(30)의 옆에서 촬영하기에 탁구공(40)의 포물선적인 변화를 관측할 수 있다.
컴퓨팅 장치(300)는 시스템 버스(310)에 접속되는 프로세서(320), 메모리 모듈(330), 저장 장치(340) 및 입-출력 모듈(350)을 포함한다. 입-출력 모듈(350)은 하나 또는 그 이상의 입력 및/또는 출력 장치들(360)과 함께 동작하고, 입-출력 모듈(360)은 시스템(10)의 다른 구성요소들 및 네트워크와 접속되어 동작하기 위한 통신장치를 포함한다. 하나 또는 그 이상의 컴퓨팅 장치(300)는 컴퓨터가 읽을 수 있는 저장 장치에 저장되는 컴퓨터 소프트웨어와 같이, 컴퓨터가 읽을 수 있는 명령어들의 실행에 의해서 시스템(10)에 포함되는 구성요소들의 다양한 기능들을 수행할 수 있다.
컴퓨팅 장치(300)는 다관절 로봇(100)으로 관절을 제어하기 위한 구동 제어 신호를 보내기 위해 먼저 다관절 로봇(100)의 구동 각도를 계산할 수 있다. 즉, 다관절 로봇(100)의 말단장치(101)에 위치한 탁구채(20)가 탁구공(40)을 어느 위치에서 어떠한 방향으로 타격하는가에 대한 계산을 수행할 수 있다. 자세히, 컴퓨팅 장치(300)는 다관절 로봇(100)의 각 관절의 대한 초기 각도 정보를 다관절 로봇(100)으로부터 수신하여 이에 기초하여말단장치(101)의 방향과 위치를 계산할 수 있는 정기구학(Forward kinematic)해석법을 이용하여 탁구채(20)의 방위(orientation)를 결정할 수 있다.
도 2를 참조하면, 다관절 로봇(100)은 다수의 조인트를 포함하는 로봇으로서, 로봇의 자세에 대한 정보를 측정하는 센서를 포함하는 측정 시스템(110) 및 모터 등의 액츄에이터(actuator)를 포함하는 구동 시스템(120)을 포함할 수 있다.
측정 시스템(110)은 가변 저항 및 스트레인 게이지 등의 소자를 포함하는 센서를 이용하여 로봇(100)의 조인트 회전 각도, 링크 내지 암의 변위 등을 측정할 수 있다. 구동 시스템(120)은 모터, 실린더 등의 구성요소를 포함할 수 있다. 측정 시스템(110) 및 구동 시스템(120)의 구현은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람에게 자명한 사항이므로 이하 그 구체적인 설명은 생략된다. 한편,로봇(100)의 일단부에는 말단 장치(end effector)가 부착될 수 있다. 로봇(100)의 말단 장치에는 탁구채(20)가 결합될 수 있다.
또한, 다관절 로봇(100)은 여섯 개의 축(Axis)으로 이루질 수 있고, 지면(base)에서부터 여섯 개의 관절과 여섯 개의 연결 링크(link)를 통해 말단장치(101)의 탁구채(20)까지 연결되어 있다.
컴퓨팅 장치(300)는 추정된 기구학 변수에 기초하여 로봇(100)의 자세를 원하는 대로 제어하기 위해 구동 시스템(120)에 전달할 구동 제어 신호를 생성할 수 있다. 생성된 구동 제어 신호는 구동 시스템(120)의 구성 요소인 모터 및/또는 유압 실린더에 반영되어 로봇(100)의 자세를 변경할 수 있다.
<정기구학 모델링>
이하 본 발명을 설명함에 있어서 X 방향은 탁구대(30)의 장축 방향이고, Y 방향은 탁구대(30)의 단축 방향이며, Z는 탁구대(30)가 설치된 지면을 기준으로 높이 방향이다. 또한, 제1카메라(210)가 촬영하는 촬영 영상의 해상도가 X
Figure 112018069191649-pat00002
Y일 때,해상도의 X는 탁구대(30)의 장축에 대응하고,해상도의 Y는 탁구대(30)의 단축에 대응한다.
프로세서(320)는 메모리 모듈(340)에 저장된 도 3과 같은 직각좌표계의 설정과 표 1과 같은 D-H(Denavit-Hartenberg)변환 파라미터(parameter)에 기초하여 다관절 로봇(100)의 제어를 위한 정기구학 모델링을 수행할 수 있다.
Axis
Figure 112018069191649-pat00003
(deg)
Figure 112018069191649-pat00004
(mm)
Figure 112018069191649-pat00005
(mm)
Figure 112018069191649-pat00006
(deg)
1
Figure 112018069191649-pat00007
Figure 112018069191649-pat00008
Figure 112018069191649-pat00009
-90
2
Figure 112018069191649-pat00010
0
Figure 112018069191649-pat00011
0
3
Figure 112018069191649-pat00012
0
Figure 112018069191649-pat00013
-90
4
Figure 112018069191649-pat00014
Figure 112018069191649-pat00015
0 90
5
Figure 112018069191649-pat00016
0 0 -90
6
Figure 112018069191649-pat00017
Figure 112018069191649-pat00018
0 0
Figure 112018069191649-pat00019
=475,
Figure 112018069191649-pat00020
=350,
Figure 112018069191649-pat00021
=95 ,
Figure 112018069191649-pat00022
=150 ,
Figure 112018069191649-pat00023
=350 ,
Figure 112018069191649-pat00024
=100 자세히, 프로세서(320)는 다관절 로봇(100)의 지면에서부터 말단장치(101) 방향으로 제어 해석을 위한 정기구학모델링을 수행하는데,말단장치(101)의 방향과 위치, 일명 방위를 계산을 수행하기 위하여,각 관절사이의 연속적인 좌표 행렬 변환을 통해 최종적으로 산출되는 동차변환행렬의 곱
Figure 112018069191649-pat00025
을 계산한다.
보다 상세하게는, 프로세서(320)는 D-H 파라미터를 다관절 로봇(100)의 각 관절행렬에 대입하여 각 관절 수학식 1내지 수학식 6에 대한 동차변환행렬을 구할 수 있고 이를 전부 곱하는 연산을 수행하여 수학식 7과 같은
Figure 112018069191649-pat00026
값을 생성할 수 있다.
[수학식 1]
Figure 112018069191649-pat00027
[수학식 2]
Figure 112018069191649-pat00028
[수학식 3]
Figure 112018069191649-pat00029
[수학식 4]
Figure 112018069191649-pat00030
[수학식 5]
Figure 112018069191649-pat00031
[수학식 6]
Figure 112018069191649-pat00032
[수학식 7]
Figure 112018069191649-pat00033
Figure 112018069191649-pat00034
동차변환행렬의 곱
Figure 112018069191649-pat00035
Figure 112018069191649-pat00036
행렬로 로봇의 기저 좌표계(base coordinate system)에서부터 말단부위까지의 정기구학을 나타낸다.
Figure 112018069191649-pat00037
Figure 112018069191649-pat00038
회전행렬로 각 관절의 각도 벡터를 포함한 회전행렬을,
Figure 112018069191649-pat00039
Figure 112018069191649-pat00040
변위행렬로 말단장치(101)의 위치벡터
Figure 112018069191649-pat00041
3차원 좌표 값을 나타낸다. 예를 들어, 프로세서(320)는 6축 로봇의 초기 관절 각도 값들이
Figure 112018069191649-pat00042
Figure 112018069191649-pat00043
라면,전체동차행렬인
Figure 112018069191649-pat00044
값을 생성하고, 위치행렬
Figure 112018069191649-pat00045
의 요소인
Figure 112018069191649-pat00046
의 값들인말단장치(101)의 3차원 좌표로
Figure 112018069191649-pat00047
Figure 112018069191649-pat00048
를 생성하여 방위는 오일러(Euler) 회전각인
Figure 112018069191649-pat00049
로 결정될 수 있다. 이와 같이 프로세서(320)는 다관절 로봇(100)의 초기 각도 정보와 정기구학 모델링을 통해 말달장치(101)의 방위 값을 정밀하게 설정할 수 있다.
또한,프로세서(320)는 말단장치(101)에서부터 지면 방향으로의 다관절 로봇(100)의 제어 해석을 위한 역기구학 모델링을 수행할 수 있다. 이를 위해, 프로세서(320)는 기구학적 분리(kinematics decoupling)기법을 이용하여 역기구학 모델링을 수행할 수 있다.
프로세서(320)는 관절 1 내지 3에 해당하는 몸통 부분(body point)과 관절 4 내지 6에 해당하는 손목 부분(wrist point)으로 다관절 로봇(100)을 분리하여 모델링을 수행할 수 있다. 다시 말해, 도 4와 같이 몸통은 기저 좌표를 중심으로 하여 관절 1 내지 3의 좌표를 결정하고 손목은 말단장치(101)의 방위만 결정하도록 역기구학 모델링을 수행한다.
먼저, 프로세서(320)는 몸통 부분의 역기구학을 기하학적 방법(Geometric method)을 통하여 계산한다. 예를 들어, 도 5와 같이 다관절 로봇(100)을 몸통 부분의 세 개의 관절 포인트 점들과 링크 직선 길이들로 나타내어 3차원 공간 X-Y-Z좌표계에서 수식적으로 표현한 것이다. 프로세서(320)는 몸통부분의 끝 부분인 관절3의 3차원 좌표(
Figure 112018069191649-pat00050
)가 주어지면 역기구학 모델링을 통해 관절 1 내지 3의 각도
Figure 112018069191649-pat00051
값들의 해(solution)를 결정할 수 있다. 자세히,프로세서(320) 는수학식 8 내지 10에 따른 계산 과정을 통해 관절 1 내지 3의 각도
Figure 112018069191649-pat00052
값들의 해를 결정할 수 있다.
[수학식 8]
Figure 112018069191649-pat00053
[수학식 9]
Figure 112018069191649-pat00054
,
Figure 112018069191649-pat00055
Figure 112018069191649-pat00056
Figure 112018069191649-pat00057
Figure 112018069191649-pat00058
Figure 112018069191649-pat00059
Figure 112018069191649-pat00060
[수학식 10]
Figure 112018069191649-pat00061
,
Figure 112018069191649-pat00062
Figure 112018069191649-pat00063
,
Figure 112018069191649-pat00064
Figure 112018069191649-pat00065
<역기구학 모델링>
프로세서(320)는 몸통 부분의 역기구학 모델링을 수행한 후 손목 부분의 역기구학을 모델링한다. 손목 부분의 역기구학은 말단장치(101)인 탁구채(20)의 방위, 즉 방향과 위치를 결정하기 위해 해석된다. 만일 방향을 고려하지 않고 탁구채(20)인 말단장치(101)의 위치만을 고려하여 역기구학을 해석하면 3차원 공간의 자유도(Degrees of Freedom)로 인한 문제가 발생한다. 즉, 말단장치(101)의 위치에 대한 해는 한 가지로 정해져 있음에도 불구하고, 말단장치(101)의 방향에 대한 해는 무수히 많기 때문에 관절 4 내지 6의 각도
Figure 112018069191649-pat00066
값의 해가 무수히 많이 도출되는 문제가 있다. 따라서, 말단장치(101) 부분인 탁구채(20)의 방위를 한 가지 해로 한정하기 위해서, 도 6과 같이 3차원 X-Y-Z좌표계 상에서 다관절 로봇(100)의 기저인 1축 원점의 Y-Z평면으로부터 X축 방향으로 일정한 거리 간격(K)을 지닌 평면을 타격평면(Hit Point Plane)이라 정의하고, 도 2에 표시된 관절 5의 중심이자 링크 3의 끝부분을 좌표(
Figure 112018069191649-pat00067
)로 정의한다.
해상도 X
Figure 112018069191649-pat00068
Y(예를 들어,640
Figure 112018069191649-pat00069
480)일 때,X축과 타격평면이 만나는 지점은 촬영 영상 내의 X=a(a는 해상도의 X보다 작은 값)(예를 들어,해상도가 640(X)
Figure 112018069191649-pat00070
480(Y)일 때, a=600)가 될 수 있고, K 값에 따라 a 값은 달라진다.
몸통 부분과 손목 부분으로 나누어지는 기점인 좌표(
Figure 112018069191649-pat00071
)와 말단장치(101)의 좌표(
Figure 112018069191649-pat00072
), 두 좌표를 다관절 로봇(100)이 탁구채(20)로 탁구공(40)을 가격할 때마다 항상 타격평면 위에 존재하도록 한정한다. 그리고 프로세서(320)는 관절 4 내지 6의 각도
Figure 112018069191649-pat00073
값의 해를 수학식 11 내지 13를 통해 계산한다.
[수학식 11]
Figure 112018069191649-pat00074
[수학식 12]
Figure 112018069191649-pat00075
[수학식 13]
Figure 112018069191649-pat00076
<예상타격지점 설정>
손목 부분의 역기구학을 통해 두 좌표(
Figure 112018069191649-pat00077
),(
Figure 112018069191649-pat00078
)는 탁구공(40)을 타격 시 타격평면 위에 위치하도록 한정된다. 도 7a와 같이 탁구공(40)의 예측 궤적과 타격평면의 교차점(Intersection point)이 말단장치(101)가 이동해야 할 목표지점인 예상타격지점(expected hit point)이기에 좌표(
Figure 112018069191649-pat00079
)의 해는 한 가지만 존재한다. 그러나 몸통 부분과 손목 부분으로 나누어지는 기점인 좌표 (
Figure 112018069191649-pat00080
)에 대해서는 도 7b와 같이 평면상에서 원의 둘레(Circle circumference)를 따라 여전히 여러 해들이 존재하는 문제가 있다. 도 7b의 원은 좌표 (
Figure 112018069191649-pat00081
)로 구성되어 있고 이 좌표가 이동할 수 있는 여러 해들을 나타내고 있다. 따라서 프로세서(320)는 좌표(
Figure 112018069191649-pat00082
) 또한 한 가지의 해만 존재하기 위해 하나의 예상타격지점으로 탁구채(20)를 뻗는 로봇(100)의 동작에 대한 경로 선택 계획 알고리즘(route selection planning algorithm)을 설정한다. 경로 선택 계획 알고리즘은 첫 번째 단계로 도 8a와 같이 타격평면 위에 말단장치(101)의 좌표 (
Figure 112018069191649-pat00083
)를 원의 중심으로 하고 손목 부분의 길이와 탁구채(20) 길이인
Figure 112018069191649-pat00084
(length는 탁구채의 길이로써, 예를 들어 170mm가 될 수 있으나 이에 한정하는 것은 아니다)만큼의 반지름 길이를 가진 원을 그린다. 두 번째 단계는 원의 중심 좌표(
Figure 112018069191649-pat00085
)와 로봇(100)의 초기 자세 사이의 직선을 그려 직선이 원과 만나는 점을 도출하여 프로세서(320)는 교점을 좌표(
Figure 112018069191649-pat00086
)가 이동하고자 하는 해로 설정한다. 프로세서(320)는 탁구공(40)을 타격하기 위해, 탁구채(20)를 뻗을 수 있는 수많은 경로들 중에 가장 근접한 거리를 계산하고 도출하여 관절1내지 6에 대해 최소한의 움직임으로 예상타격지점에 도달할 수 있도록 한다.
컴퓨팅 장치(300)는 정기구학 및 역기구학 모델링을 통해 계산된 관절 1 내지 6의 각도 값과 로봇(100)의 제어 값을 생성하여 이를 로봇(100)에 전송함으로써, 로봇(100)을 제어한다.
<탁구공 검출>
컴퓨팅 장치(300)는 카메라(200)를 이용하여 탁구공(40)의 궤적을 추적하기 위해 탁구공(40)을 관심영역으로 지정하여 중심점 및 반지름을 측정한다. 도 9와 같이 카메라(200)가 촬영한 화면을 Bi-level로 검출하기 위해 탁구공(40)을 흰색, 나머지 색상을 검은색으로 이진화 한다. 영상처리한 화면에서 이동하는 탁구공(40)은 잔상을 남기며 탁구공(40)의 반지름과 중심점을 검출함에 있어 실제 공의 크기와 다르게 값이 나타난다. 탁구공(40) 검출의 정확도를 기하기 위하여 흰색으로 검출되는 영역의 중심점에서 전방위(예를 들어,상,하,좌,우) 탐색을 통해 흰색 부분의 거리가 가장 짧은 경우를 선정하고, 이를 반지름으로 하는 원과 원의 중심을 검출함으로써 탁구공(40)의 중심점을 검출할 수 있다.
컴퓨팅 장치(300)는 탁구공(40)의 반지름과 중심점 검출이 완료된 이후 영상처리 화면 해상도 X
Figure 112018069191649-pat00087
Y(예를 들어,640
Figure 112018069191649-pat00088
480)와 실제 3차원 공간상의 크기가 일치하지 않기 때문에 영상처리 화면에서 측정되는 탁구공(40)의 좌표를 도 10과 같이 실제 3차원 공간상의 탁구공 좌표로 변환한다. 자세히, 컴퓨팅 장치(300)는 수학식 14 및 수학식 15와 같이 화면에서 인식되는 실제 공간의 치수와 영상처리 화면의 해상도 값의 비율을 이용해 수식을 도출한다.
[수학식 14]
제1카메라
Figure 112018069191649-pat00089
[수학식 15]
제2카메라
Figure 112018069191649-pat00090
<카메라 화각을 고려한 카메라의 최소 높이>
제1카메라(210)는 탁구공(40)의 궤적을 추적하기 위해서 상단에서 전체 탁구대(30)의 X-Y좌표평면을 촬영한다. 제1 카메라(210)가 촬영하는 화면에 탁구대(30)만 나오도록 제1 카메라(210)를 설치하면 도 11a와 같이 제1 카메라(210) 화각에 의해 탁구대(30) 영역 안에서 탁구공(40)이 일정 높이 이상 떠오르면 제1 카메라(210) 인식범위를 벗어나 탁구공(40)이 검출되지 않는 현상이 발생한다. 이를 해결하기 위해 도 11b와 같이 탁구대(30) 면적을 밑면, 로봇(100)의 팔의 최대 구동높이를 높이 값으로 지정한 직육면체 영역을 설정하고 직육면체 영역 모두 인식하는 제1 카메라(210)의 최소 높이를 설정하여 X-Y평면을 지나는 탁구공(40)을 검출한다. 탁구공(40)의 궤적을 계산하기 위해서는 앞서 지정한 직육면체 영역이 사각뿔로 표시된 제1 카메라(210)의 인식범위 안에 포함되도록 제1 카메라(210)의 최소높이를 설정하는 것이 바람직하다.
도 12는 제1카메라(210)의 최소 높이를 설정하기 위해 필요한 로봇(100)의 팔의 최대구동높이(b), 탁구공(40)의 중심에서 대각선 끝점까지 거리(a), 제1 카메라(210) 화각
Figure 112018069191649-pat00091
을 표현하였다. 제1 카메라(210)는 탁구대(30)와 수직하게 설치되므로 삼각함수 비율을 이용하여 식(11)와 같이 카메라의 최대 높이를 수학식 16을통해 도출할 수 있다.
[수학식 16]
Figure 112018069191649-pat00092
Figure 112018069191649-pat00093
<카메라 화각에 따른 위치 오차 보정>
제1 카메라(210)를 사용하여 X-Y좌표평면의 탁구공 좌표를 검출할 때 도 13과 같이 제1 카메라(210)의 영상화면에 나타나는 탁구공(40)의 중심점 좌표는 같지만, 탁구공(40)의 높이에 따라 인식되는 탁구공(40)의 크기가 다르므로 A와 B는 X-Y 좌표평면에서 탁구공(40)의 좌표를 검출할 때 좌표 오차가 발생할 수 있다. 이는 제1 카메라(210)의 화각에 의한 문제로, 제1 카메라(210)가 탁구공(40)을 검출하는 영역은 탁구공(40)이 제1 카메라(210)에 가까워질수록 일정하게 줄어든다. 이 때문에 A,B 두 점의 탁구공(40)은 제1카메라(210)와 일직선상에 있어 영상처리 한 화면에서 나타나는 위치만 같을뿐 실제 X-Y평면상에서 위치는 다르다. 따라서 컴퓨팅 장치(300)는 탁구공(40)의 크기에 따라 높이 값을 검출하고, 그 높이에 따라서 변화하는 위치 값을 보정함으로써 정확한 탁구공(40)의 좌표인식을 수행한다.
컴퓨팅 장치(300)는 제1카메라(210)의 영상화면에서 A와 B의 탁구공(40) 픽셀 값을 이용하여 탁구공(40)의 좌표 값을 실제 좌표 값으로 보정할 수 있고, 이 때 삼각비 알고리즘을 적용할 수 있다. 삼각비 비율공식을 사용하기 위해서는 픽셀크기 따른 제1 카메라(210)에서 탁구공(40)까지의 거리에 대한 수식이 필요하다. 이 수식을 도출하기 위해 도 10과 같이 직육면체 인식영역에서만 탁구공(40)을 인식한다고 제한을 두고 도 14와 같이 제1카메라(210)에서 탁구공(40)까지 거리에 따른 탁구공(40)의 픽셀변화를 측정하여 표본으로 검출한다. 컴퓨팅 장치(300)는 이 표본들을 활용하여 수학식 17과 같이 각 표본들에 대한 거리오차의 합(SSE error sum of squares)이 최소가 되는 회귀직선식
Figure 112018069191649-pat00094
을 추정하며, 수학식 18과 같이 픽셀 변화에 따른 제1카메라(210)에서 탁구공(40)까지의 거리를 1차 함수 형태로 도출한다.
[수학식 17]
Figure 112018069191649-pat00095
,
Figure 112018069191649-pat00096
,
Figure 112018069191649-pat00097
,
Figure 112018069191649-pat00098
Figure 112018069191649-pat00099
Figure 112018069191649-pat00100
Figure 112018069191649-pat00101
Figure 112018069191649-pat00102
Figure 112018069191649-pat00103
[수학식 18]
Figure 112018069191649-pat00104
앞서 언급된 도 1에서 제1 카메라(210)가 탁구대(30) 중심에서 수직방향으로 상단에 위치하기 때문에 예를 들어, 640
Figure 112018069191649-pat00105
480해상도 영상화면의 중심 좌표
Figure 112018069191649-pat00106
=
Figure 112018069191649-pat00107
를 원점(Origin) (0,0)으로 잡는 원점 보정 X-Y
Figure 112018069191649-pat00108
좌표평면을 구성한다. 이 때 제1 카메라(210)의X-Y좌표평면의 좌표를 X-Y
Figure 112018069191649-pat00109
좌표평면상으로 보정할 때 좌표를
Figure 112018069191649-pat00110
Figure 112018069191649-pat00111
,
Figure 112018069191649-pat00112
Figure 112018069191649-pat00113
로 표현할 수 있다. 수학식 18을 활용하여 X-Y
Figure 112018069191649-pat00114
좌표평면의 원점에서 제1카메라(210)에 투영된 좌표 B(
Figure 112018069191649-pat00115
)까지의 거리 D와, 수학식 16에서 계산한 최소 높이 L을 이용하여 H를 계산한다. 이때 수학식 18에서 [탁구공의 크기(radius pixel)로 계산된 제1카메라(210)에서 탁구공(40)까지의 거리 y]를 (
Figure 112018069191649-pat00116
)에 대입하면 H'의 길이를 알 수 있고 삼각비
Figure 112018069191649-pat00117
를 이용하여 제1카메라(210)에 투영된 [좌표 B(
Figure 112018069191649-pat00118
)에서 A
Figure 112018069191649-pat00119
(
Figure 112018069191649-pat00120
)까지 거리 D']을 계산할 수 있다. 제1카메라(210)에 투영된 탁구공 좌표 B(
Figure 112018069191649-pat00121
)를 삼각비로 보정하기 위해 원점 보정좌표
Figure 112018069191649-pat00122
를 수학식 20 및 수학식 21을 통해 계산하여 제1 카메라(210)상의 X-Y좌표계의 좌표 A
Figure 112018069191649-pat00123
(
Figure 112018069191649-pat00124
)로 변환한다. 삼각비로 보정하는 과정은 [원점에서 B
Figure 112018069191649-pat00125
까지의 거리 D]를 삼각비 비율 공식을 이용하여 X-Y
Figure 112018069191649-pat00126
좌표평면의 원점
Figure 112018069191649-pat00127
방향으로 [원점에서 좌표 A
Figure 112018069191649-pat00128
Figure 112018069191649-pat00129
까지의 거리
Figure 112018069191649-pat00130
]비율로 좌표를 변환한다. 수학식 19 내지 수학식 21에서 Center(320,240)을 합하는 이유는 원점 보정 X-Y
Figure 112018069191649-pat00131
좌표평면상의 좌표
Figure 112018069191649-pat00132
를 다시 제1 카메라 X-Y 좌표평면상의 좌표로 나타내기 위함이다. 이 과정을 통하여 보정된 좌표는 도 15와 같이 [실제 탁구공의 위치
Figure 112018069191649-pat00133
에 대한 제1카메라 X-Y좌표평면상의 좌표
Figure 112018069191649-pat00134
]로 변환된다. 변환됨 점은 도 16과 같이 점의 형태로 화면상에 검출되며 컴퓨팅 장치(300)는 이 점을 이용하여 실제 탁구공의 좌표 값으로 궤적을 추적하는데 사용한다.
[수학식 19]
Figure 112018069191649-pat00135
,
Figure 112018069191649-pat00136
Figure 112018069191649-pat00137
[수학식 20]
Figure 112018069191649-pat00138
,
Figure 112018069191649-pat00139
Figure 112018069191649-pat00140
Figure 112018069191649-pat00141
[수학식 21]
Figure 112018069191649-pat00142
<제1카메라의 탁구공 궤적 검출>
제1 카메라(210)는 탁구공(40)의 궤적을 추적하기 위해서 3차원 좌표계에서 X-Y좌표평면을 촬영한다. 탁구공(40)의 예상타격평면인 예시적으로 X=600지점에서 Y좌표 값을 검출하기 위해 탁구공(40)의 궤적에 대한 직선 방정식이 필요하며, 탁구공 궤적에 대한 직선방정식을 도출하기 위해 컴퓨팅 장치(300)는 도 17과 같이 영상처리된 화면상의 보정된 원의 중심좌표
Figure 112018069191649-pat00143
를 각 프레임마다 모두 수집하여 표본화(sampling)할 수 있다.
컴퓨팅 장치(300)는 수집된 표본들에 대하여 거리오차의 합(SSE error sum of squares)이 최소가 되는 회귀직선식
Figure 112018069191649-pat00144
을 추정하고, 도 17의 탁구공 중심점 표본들은 다변량 단순 선형 회귀 모델링(univariate simple linear regression)을 이용해 수학식 22와 같이 선형 회귀식(regression equation)으로 도출한다.
[수학식 22]
Figure 112018069191649-pat00145
,
Figure 112018069191649-pat00146
,
Figure 112018069191649-pat00147
,
Figure 112018069191649-pat00148
Figure 112018069191649-pat00149
Figure 112018069191649-pat00150
Figure 112018069191649-pat00151
Figure 112018069191649-pat00152
Figure 112018069191649-pat00153
컴퓨팅 장치(300)는 영상화면에서 처리되는 표본의 개수는 탁구공(40)의 속도와 프레임의 변화에 따라 달라지기 때문에 탁구공(40)의 궤적을 선형 회귀식으로 도출하는데 사용되는 표본의 개수는 도 18 및 도 19에서 예시된 바와 같이 제한할 수 있다. 로봇(100)이 탁구공(40)을 타격하기 위해 예상지점에 도달할 시간이 필요하기 때문에 제1카메라(210)가 촬영하는 화면에서 검출되는 탁구공(40)의 X축 픽셀 값이 원점을 기준으로 미리 설정된 픽셀(V) 이상(예를 들어,해상도가 640
Figure 112018069191649-pat00154
480이고, a=600인 경우 V=576픽셀 이상)의 범위영역에서 최초로 검출되는 경우를 기점으로 탁구공(40)의 직선방정식을 도출하기 위하여 컴퓨팅 장치(300)는 가장 최근에 획득한 5회의 표본을 이용하여 회귀 직선식을 도출하고 이 1차식을 활용하여 로봇의 예상 타격평면인 X=600지점의 Y 값을 검출할 수 있다.
<제2 카메라의 탁구공 궤적 검출>
제2 카메라(220)는 포물선 형태로 운동하는 탁구공(40)의 궤적을 검출하기 위해서 3차원 좌표계에서 X-Z좌표평면을 촬영한다. 도 20와 같이 해당 평면상에서 탁구공(40)은 포물선 형태로 움직인다. 이는 물체의 포물선 방정식으로 나타낼 수 있는데 컴퓨팅 장치(100)는 수학식 23의 연산을 통해 t초 후 X축 방향, Z축 방향으로 운동하는 탁구공의 속도를 계산할 수 있다. 그리고 수학식 23에서 도출한 속도 값을 이용하여 수학식 24의 연산을 통해 t초 동안 물체가 움직인 수평도달거리 계산할 수 있으며 수학식 25의 연산을 통해 한 프레임 마다 계산되는 탁구공(40)의 수평도달거리 값과 제2카메라(220)에서 최초로 검출되는 탁구공(40)의 실제 좌표 값의 차를 이용하여 현재 탁구공(40)의 좌표를 검출하여 구동 제어 신호를 설정하고 이를 통해 탁구공(40)이 예상타격평면에 도달할 때 로봇(100)을 구동하여 탁구공(40)을 타격할 수 있도록 한다.
[수학식 23]
Figure 112018069191649-pat00155
[수학식 24]
Figure 112018069191649-pat00156
[수학식 25]
Figure 112018069191649-pat00157
<탁구 로봇 제어 방법>
도 21은 탁구 로봇 제어 방법에 대한 흐름도이다.
도 21을 참조하면, 실시예에 따른 탁구 로봇 제어 방법(S100)은 말단장치의 방위를 계산하는 단계(S110), 예상타격지점을 설정하는 단계(S120), 말단장치의 이동의 최적경로를 설정하는 단계(S130) 및역기구학 모델링을 통해 말단장치를 이동시키는 단계(S140)를 포함할 수 있다.
상세하게는,실시예에 따른 탁구 로봇 제어 방법(S100)은 말단장치에 탁구채가 결합된 다관절 로봇의 각 관절에 대한 초기 각도 정보에 기초하여 다관절 로봇에 관한 정기구학 모델링을 통해 말단장치의 방위를 계산(S110) 할 수 있다.
또한, 탁구대의 상부면을 촬영하는 제1 카메라 및 탁구대의 측면을 촬영하는 제2 카메라의 복수의 촬영 영상에 기초하여 예상타격지점을 설정(S120) 할 수 있다.
여기서의 제1카메라는 탁구대의 상부면을 밑면으로 하고, 다관절 로봇의 최대구동높이를 높이 값으로 하는 가상의 직육면체 영역을 포함하는 공간을 촬영할 수 있도록 하는 위치에 설치될 수 있다.
예상타격지점을 설정하는 단계는 복수의 촬영 영상 내의 탁구공의 좌표를 검출(S121)하고, 제1 및 제2 카메라 각각으로부터의 복수의 촬영 영상 내의 탁구공의 궤적을 검출하며(S122), 미리 설정된 타격 평면에 위치한 탁구공을 촬영한 촬영 영상 내의 탁구공의 위치를 검출하여 예상타격지점을 설정(S123)할 수 있다.
여기서의 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계(S121)는 촬영 영상을 이진화하는 단계(S121a), 이진화된 영상 내의 탁구공에 대응하는 영역의 중심을 기준으로 전방위 탐색을 진행하여 중심으로부터 탁구공에 대응하는 영역과 배경 영역 사이의 경계 영역까지의 최소 거리를 산출하고 중심을 중심점으로 하고 최소 거리를 반지름으로 하는 원을 설정하는 단계(S121b) 및 원에 기초하여 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계(S121c)를 포함할 수 있다.
또한, 제1카메라로부터의 제1 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계(S122)는, 원의 반지름의 크기에 따른 제1 카메라와 탁구공의 거리를 측정하는 단계(S122a) 및 비선형 회귀 분석에 기초하여 탁구공의 좌표를 보정하여 탁구공의 궤적을 검출하는 단계(S122b)를 포함할 수 있다.
또한, 제2 카메라로부터의 제2 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계(S122)는, 제2 복수의 촬영 영상 내의 탁구공의 위치 변화에 따른 탁구공의 속도에 기초하여 탁구공의 수평도달거리를 산출하는 단계(S122c) 및 수평도달거리 및 최초 검출된 탁구공의 좌표에 기초하여 탁구공의 궤적을 검출하는 단계(S122d)를 포함할 수 있다.
또한, 말단장치의 이동의 최적경로를 설정(S130)할 수 있으며, 탁구대 상에서 다관절 로봇을 향해 이동하는 탁구공을 타격하기 위하여 말단장치가 최적경로를 따라 이동하도록 다관절 로봇에 관한 역기구학 모델링을 통해 상기 말단장치를 이동(S140)시킬 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.

Claims (10)

  1. 말단장치에 탁구채가 결합된 다관절 로봇의 각 관절에 대한 초기 각도 정보에 기초하여 상기 다관절 로봇에 관한 정기구학 모델링을 통해 상기 말단장치의 방위를 계산하는 단계;
    탁구대의 상부면을 촬영하는 제1카메라 및 탁구대의 측면을 촬영하는 제2카메라의 복수의 촬영 영상에 기초하여 예상타격지점을설정하는 단계;
    상기 말단장치의 이동의 최적경로를 설정하는 단계;및
    상기 탁구대 상에서 상기 다관절 로봇을 향해 이동하는 탁구공을 타격하기 위하여 상기 말단장치가 상기 최적경로를 따라 이동하도록 상기 다관절 로봇에 관한 역기구학 모델링을 통해 상기 말단장치를 이동시키는 단계;를 포함하고,
    상기 예상타격지점을 설정하는 단계는,
    복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계;
    복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계; 및
    미리 설정된 타격 평면에 위치한 상기 탁구공을 촬영한 촬영 영상 내의 탁구공의 위치를 검출하여 상기 예상타격지점을 설정하는 단계;를 포함하고,
    상기 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계는,
    촬영 영상을 이진화하는 단계;
    이진화된 영상 내의 탁구공에 대응하는 영역의 중심을 기준으로 전방위 탐색을 진행하여 상기 중심으로부터 탁구공에 대응하는 영역과 배경 영역 사이의 경계 영역까지의 최소 거리를 산출하고 상기 중심을 중심점으로 하고 상기 최소 거리를 반지름으로 하는 원을 설정하는 단계; 및
    상기 원에 기초하여 상기 복수의 촬영 영상 내의 탁구공의 좌표를 검출하는 단계;를 포함하는
    탁구 로봇 제어 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계는,
    상기 제1 카메라로부터의 제1복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계;및
    상기 제2 카메라로부터의 제2 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계;를 포함하는
    탁구 로봇 제어 방법.
  6. 제5 항에 있어서,
    상기 제1 카메라로부터의 제1 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계는,
    상기 원의 반지름의 크기에 따른 상기 제1 카메라와 상기 탁구공의 거리를 측정하는 단계;및
    비선형 회귀 분석에 기초하여 상기 탁구공의 좌표를 보정하여 상기 탁구공의 궤적을 검출하는 단계;를 포함하는
    탁구 로봇 제어 방법.
  7. 제5 항에 있어서,
    상기 제2 카메라로부터의 제2 복수의 촬영 영상 내의 탁구공의 궤적을 검출하는 단계는,
    상기 제2 복수의 촬영 영상 내의 탁구공의 위치 변화에 따른 탁구공의 속도에 기초하여 상기 탁구공의 수평도달거리를 산출하는 단계;및
    상기 수평도달거리 및 상기 최초 검출된 탁구공의 좌표에 기초하여 상기 탁구공의 궤적을 검출하는 단계;를 포함하는
    탁구 로봇 제어 방법.
  8. 제6 항에 있어서,
    상기 탁구대의 장축 방향을 X 방향,상기 탁구대의 단축 방향을 Y 방향 그리고 상기 탁구대가 설치된 지면을 기준으로 높이 방향을 Z 방향으로 정의하면,상기 예상타격지점은 상기 X 방향으로 상기 다관절 로봇으로부터 소정의 거리로 이격된 Y-Z 평면인 타격평면 상에 설정되는
    탁구 로봇 제어 방법.
  9. 제8 항에 있어서,
    X
    Figure 112018069191649-pat00158
    Y 픽셀의 해상도의 촬영 영상에서 상기 X 방향에 대응하는 해상도 X축상의 픽셀 값이 원점을 기준으로 미리 설정된 픽셀 이상의 영역에서 상기 탁구공이 검출되는 경우 상기 미리 설정된 픽셀 이하의 영역에서 검출된 복수의 탁구공의 좌표들에 기초하여 회귀 직선식을 설정하고, 상기 설정된 회귀 직선식에 기초하여 상기 예상타격지점의 좌표값을 설정하는
    탁구 로봇 제어 방법.
  10. 삭제
KR1020180081545A 2018-07-13 2018-07-13 탁구 로봇 제어 방법 및 이를 위한 시스템 KR102094004B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180081545A KR102094004B1 (ko) 2018-07-13 2018-07-13 탁구 로봇 제어 방법 및 이를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180081545A KR102094004B1 (ko) 2018-07-13 2018-07-13 탁구 로봇 제어 방법 및 이를 위한 시스템

Publications (2)

Publication Number Publication Date
KR20200013133A KR20200013133A (ko) 2020-02-06
KR102094004B1 true KR102094004B1 (ko) 2020-03-26

Family

ID=69569178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180081545A KR102094004B1 (ko) 2018-07-13 2018-07-13 탁구 로봇 제어 방법 및 이를 위한 시스템

Country Status (1)

Country Link
KR (1) KR102094004B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230083753A (ko) 2021-12-03 2023-06-12 현대무벡스 주식회사 하차 로봇 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102246141B1 (ko) * 2019-11-28 2021-04-28 재단법인대구경북과학기술원 자세 모니터링이 가능한 벤치프레스 운동기구
CN111283700B (zh) * 2020-05-11 2020-08-14 上海庞勃特科技有限公司 一种乒乓球发球机器人、乒乓球发球方法和计算机可读存储介质
CN114406996B (zh) * 2021-12-30 2023-05-26 长春工业大学 一种输入受限机械臂的合作博弈最优跟踪控制方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008036383A (ja) * 2006-08-09 2008-02-21 Quantaview Inc アーム型卓球対戦ロボット

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930626B1 (ko) 2007-08-23 2009-12-09 전자부품연구원 스테레오 카메라를 구비한 로봇의 물체 자세 인식 방법
KR20150084368A (ko) 2014-01-14 2015-07-22 한국교통대학교산학협력단 테니스볼 픽업 로봇

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008036383A (ja) * 2006-08-09 2008-02-21 Quantaview Inc アーム型卓球対戦ロボット

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230083753A (ko) 2021-12-03 2023-06-12 현대무벡스 주식회사 하차 로봇 시스템

Also Published As

Publication number Publication date
KR20200013133A (ko) 2020-02-06

Similar Documents

Publication Publication Date Title
KR102094004B1 (ko) 탁구 로봇 제어 방법 및 이를 위한 시스템
JP6180087B2 (ja) 情報処理装置及び情報処理方法
JP6855492B2 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
US9616569B2 (en) Method for calibrating an articulated end effector employing a remote digital camera
JP5992184B2 (ja) 画像データ処理装置、画像データ処理方法および画像データ処理用のプログラム
US8265791B2 (en) System and method for motion control of humanoid robot
US9317735B2 (en) Information processing apparatus, information processing method, and program to calculate position and posture of an object having a three-dimensional shape
CN111615443B (zh) 信息处理装置、信息处理方法和信息处理系统
CN109333534B (zh) 预规划的实时步态控制算法
US20100172571A1 (en) Robot and control method thereof
JP6855491B2 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
US10740649B2 (en) Object attitude detection device, control device, and robot system
CN112292235A (zh) 机械手控制装置、机械手控制方法及机械手控制程序
CN111770814A (zh) 校准移动机械手的方法
JP6626338B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
CN111360851B (zh) 一种融合触觉和视觉的机器人混合伺服控制装置及方法
CN108621201B (zh) 一种足式机器人本体状态测量方法
WO2023013740A1 (ja) ロボット制御装置、ロボット制御システム、及びロボット制御方法
Kao et al. Ball catching with omni-directional wheeled mobile robot and active stereo vision
Maeda et al. Frequency response experiments of 3-d pose full-tracking visual servoing with eye-vergence hand-eye robot system
CN111716340B (zh) 3d相机与机械手臂坐标系统的校正装置及方法
JP2003117867A (ja) ビジュアルサーボによる位置姿勢制御方法
JPH06258028A (ja) 視覚に基く三次元位置および姿勢の認識方法とその装置
US11818328B2 (en) Systems and methods for automatically calibrating multiscopic image capture systems
TW202036194A (zh) 移動平台圖資校正系統

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right