KR20200107789A - 로봇 광 센서에 대한 자동 보정 - Google Patents
로봇 광 센서에 대한 자동 보정 Download PDFInfo
- Publication number
- KR20200107789A KR20200107789A KR1020200011714A KR20200011714A KR20200107789A KR 20200107789 A KR20200107789 A KR 20200107789A KR 1020200011714 A KR1020200011714 A KR 1020200011714A KR 20200011714 A KR20200011714 A KR 20200011714A KR 20200107789 A KR20200107789 A KR 20200107789A
- Authority
- KR
- South Korea
- Prior art keywords
- optical sensor
- poses
- pose
- robot
- images
- Prior art date
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000012937 correction Methods 0.000 claims description 76
- 239000012636 effector Substances 0.000 claims description 24
- 230000009471 action Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000003610 charcoal Substances 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000003908 quality control method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011109 contamination Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23K—SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- B23K26/00—Working by laser beam, e.g. welding, cutting or boring
- B23K26/02—Positioning or observing the workpiece, e.g. with respect to the point of impact; Aligning, aiming or focusing the laser beam
- B23K26/04—Automatically aligning, aiming or focusing the laser beam, e.g. using the back-scattered light
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/246—Calibration of cameras
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L21/00—Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
- H01L21/67—Apparatus specially adapted for handling semiconductor or electric solid state devices during manufacture or treatment thereof; Apparatus specially adapted for handling wafers during manufacture or treatment of semiconductor or electric solid state devices or components ; Apparatus not specifically provided for elsewhere
- H01L21/67005—Apparatus not specifically provided for elsewhere
- H01L21/67242—Apparatus for monitoring, sorting or marking
- H01L21/67259—Position monitoring, e.g. misposition detection or presence detection
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Optics & Photonics (AREA)
- Orthopedic Medicine & Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Manufacturing & Machinery (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Fuzzy Systems (AREA)
- Plasma & Fusion (AREA)
- Artificial Intelligence (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Manipulator (AREA)
- Image Analysis (AREA)
Abstract
로봇 광 센서에 대한 자동 내부 및 외부 보정을 위한 시스템들 및 방법들이 제공된다. 구현은 광 센서; 로봇 암; 보정 차트; 하나 이상의 프로세서들; 및 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령들을 저장하는 메모리를 포함하며, 이 동작들은: 제1 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작; 한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션 및 배향 데이터를 포함하는 포즈 데이터를 생성하는 동작; 포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 동작; 복수의 포즈들의 각각의 포즈에서, 제1 광 센서로 보정 차트의 한 세트의 이미지들을 캡처하고 포즈를 기록하는 동작; 캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들을 계산하는 동작; 및 캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들을 계산하는 동작을 포함한다.
Description
카메라들과 같은 광 센서들은 일부 로봇 애플리케이션들, 예를 들어 내비게이션, 품질 관리(QC: quality control) 및 검출된 객체에 대한 다른 기능들, 이를테면 제조 및 창고 자재 취급에 일반적인 것들을 수행하는 컴퓨터 비전(CV: computer vision) 애플리케이션들에 사용된다. CV 애플리케이션들에 의해 수집된 이미저리의 적절한 해석은 광 센서들이 보정될 것을 요구한다. 이는 엔드 이펙터와 관련한 객체들의 정확한 위치 지정을 달성하는 것이 요구된다.
두 가지 기본 타입들: 내부(intrinsic) 및 외부(extrinsic)의 보정이 있다. 통상적으로, 내부 보정은 광 센서 렌즈에 대한 파라미터들을 추정하여 예를 들어, 시스템에 내재하는 광학 수차들 또는 비일관성들을 설명하는데, 이러한 파라미터들은 이상적인 조건들에서 이미지들의 제1 데이터 세트를 수동으로 캡처함으로써 실험실 환경에서 계산된다. 광 센서 장착 포지션의 외부 보정 파라미터 값들은 또한 통상적으로, 내부 보정 프로세스를 이미 완료한 이후 이상적인 조건들에서 이미지들의 제2 데이터 세트를 수동으로 캡처함으로써 실험실 환경에서 계산된다. 로봇의 사용 중에, 진동, 렌즈 오염 및 센서 충돌과 같은 다양한 환경 요인들이 종종 광 센서의 재보정에 대한 필요성을 트리거한다. 앞서 설명한 보정 프로시저들은 수동이며, 두 단계들로의 별도의 이미지 수집들을 필요로 한다. 수동 프로세스이기 때문에, 보정이 일관되지 않을 수 있으며 작업자의 기술에 의존한다.
개시되는 예들은 아래에 기재된 첨부 작성 도면들을 참조하여 아래에서 상세히 설명된다. 아래의 요약은 본 명세서에서 개시되는 구현들을 예시하기 위해 제공된다. 그러나 모든 예들을 임의의 특정 구성 또는 동작들의 순서로 제한하는 것으로 여겨지지는 않는다.
본 명세서에 개시된 일부 양상들 및 구현들은 로봇 장착 광 센서에 대한 자동 내부 및 외부 보정에 관한 것이다. 구현은 광 센서; 로봇 암; 보정 차트; 하나 이상의 프로세서들; 및 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령들을 저장하는 메모리를 포함하며, 이 동작들은: 제1 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작; 한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션 및 배향 데이터를 포함하는 포즈 데이터를 생성하는 동작; 포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 동작; 복수의 포즈들의 각각의 포즈에서, 제1 광 센서로 보정 차트의 한 세트의 이미지들을 캡처하는 동작; 캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들을 계산하는 동작; 및 캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들을 계산하는 동작을 포함한다.
논의된 특징들, 기능들 및 이점들은 다양한 구현들에서 독립적으로 달성되거나 또 다른 구현들에서는 결합되는데, 이들의 추가 세부사항들은 다음 설명 및 도면들과 관련하여 확인된다.
개시되는 예들은 아래에 기재된 첨부 작성 도면들을 참조하여 아래에서 상세히 설명된다:
도 1a는 일례에 따른 로봇(100)의 정면도이다.
도 1b는 일례에 따른 로봇(100)의 측면도이다.
도 2는 일례에 따른 로봇 베이스 장착 광 센서(502a)로부터의 뷰를 예시한다.
도 3은 일례에 따른 보정 차트(300)를 예시한다.
도 4는 일례에 따른 다양한 좌표들 간의 관계들을 예시한다.
도 5는 일례에 따라 일반 광 센서(502)의 출력을 보정된 이미지들(508)로 평행이동(이미지 교정)하기 위한 프로세스(500)를 예시한다.
도 6은 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 프로세스(600)를 예시하는 블록도이다.
도 7은 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 제어기(700)를 예시하는 블록도이다.
도 8은 일례에 따른 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정의 구현을 예시하는 흐름도이다.
도 9는 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 프로세스(900)를 예시하는 블록도이다.
도 10은 일례에 따라, 본 개시내용의 다양한 양상들을 구현하기에 적합한 컴퓨팅 디바이스(1000)의 블록도이다.
도 11은 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 유리하게 이용하는 장치 제조 및 서비스 방법(1100)의 블록도이다.
도 12는 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 유리하게 이용하는 장치(1200)의 블록도이다.
도 13은 일례에 따른 특정 비행 모듈(1201)의 개략적인 사시도이다.
대응하는 참조 부호들은 도면들 전반에서 대응하는 부분들을 나타낸다.
도 1a는 일례에 따른 로봇(100)의 정면도이다.
도 1b는 일례에 따른 로봇(100)의 측면도이다.
도 2는 일례에 따른 로봇 베이스 장착 광 센서(502a)로부터의 뷰를 예시한다.
도 3은 일례에 따른 보정 차트(300)를 예시한다.
도 4는 일례에 따른 다양한 좌표들 간의 관계들을 예시한다.
도 5는 일례에 따라 일반 광 센서(502)의 출력을 보정된 이미지들(508)로 평행이동(이미지 교정)하기 위한 프로세스(500)를 예시한다.
도 6은 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 프로세스(600)를 예시하는 블록도이다.
도 7은 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 제어기(700)를 예시하는 블록도이다.
도 8은 일례에 따른 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정의 구현을 예시하는 흐름도이다.
도 9는 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 프로세스(900)를 예시하는 블록도이다.
도 10은 일례에 따라, 본 개시내용의 다양한 양상들을 구현하기에 적합한 컴퓨팅 디바이스(1000)의 블록도이다.
도 11은 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 유리하게 이용하는 장치 제조 및 서비스 방법(1100)의 블록도이다.
도 12는 일례에 따라 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 유리하게 이용하는 장치(1200)의 블록도이다.
도 13은 일례에 따른 특정 비행 모듈(1201)의 개략적인 사시도이다.
대응하는 참조 부호들은 도면들 전반에서 대응하는 부분들을 나타낸다.
첨부 도면들을 참조로 다양한 구현들이 상세히 설명될 것이다. 가능하면 어디든, 동일한 또는 비슷한 부분들을 나타내기 위해 도면들 전반에서 동일한 참조 번호들이 사용될 것이다. 특정 양상들 및 구현들과 관련하여 본 개시내용 전반에 걸쳐 이루어진 참조들은 단지 예시의 목적으로만 제공되지만, 반대로 지시되지 않는 한, 모든 구현을 제한하는 것으로 여겨지지는 않는다.
전술한 요약뿐만 아니라, 특정 구현들에 대한 다음의 상세한 설명도 첨부된 도면들과 함께 읽으면 더 잘 이해될 것이다. 본 명세서에서 사용될 때, 단수로 언급되며 단수 표현이 선행되는 엘리먼트 또는 단계는, 복수의 엘리먼트들 또는 단계들을 반드시 배제하지는 않는 것으로 이해되어야 한다. 또한, "일 구현"에 대한 언급들은 열거된 특징들을 또한 포함하는 추가 구현들의 존재를 배제하는 것으로 해석되도록 의도되는 것은 아니다. 더욱이, 명백히 반대로 언급되지 않는 한, 특정한 특성을 갖는 엘리먼트 또는 복수의 엘리먼트들을 "포함하는" 또는 "갖는" 구현들은 그 특성을 갖지 않는 추가 엘리먼트들을 포함할 수 있다.
카메라들과 같은 광 센서들은 일부 로봇 애플리케이션들, 예를 들어 내비게이션, 품질 관리(QC) 및 검출된 객체에 대한 다른 기능들, 이를테면 제조 및 창고 자재 취급에 일반적인 것들을 수행하는 컴퓨터 비전(CV) 애플리케이션들에 사용된다. 그러나 CV 애플리케이션들에 의해 수집된 이미저리의 적절한 해석은 이미저리 내의 객체의 실제 포지션이 가능한 한 예상 포지션에 가깝도록 광 센서들이 보정될 것을 요구한다. 이는 엔드 이펙터와 관련한 객체들의 정확한 위치 지정을 달성하는 것이 요구된다. 본 명세서에서 설명되는 실시예들은 이러한 그리고 다른 요인들을 고려한다. 본 명세서의 실시예들의 기술적 효과는 로봇 애플리케이션을 보정하기 위한 감소된 양의 시간을 포함한다. 본 명세서의 실시예들의 기술적 효과는 CV 애플리케이션들의 정확도의 향상을 포함한다. 본 명세서의 실시예들의 기술적 효과는 수동 보정에 대한 감소된 의존성을 포함한다.
두 가지 기본 타입들: 내부 및 외부의 보정이 있다. 외부 보정 파라미터들은 "외부 보정 값들" 및/또는 "외부 보정 파라미터 값들"로도 또한 지칭된다. 내부 보정 파라미터들은 또한 "내부 보정 파라미터들" 및/또는 "내부 보정 파라미터 값들"로 지칭된다. 본 명세서에서 사용되는 내부 보정은 일반적으로 카메라 시스템에서 이어받은 인공물들, 이를테면 예를 들어, 렌즈에 내재하는 광학 수차들과 같은 비일관성들에 대한 보상에 관한 것이다. 내부 보정 파라미터들은 비일관성들의 영향들을 무효화하거나 설명하려고 시도한다. 통상적으로, 광 센서 렌즈에 대한 내부 보정 파라미터들은 이상적인 조건들에서 이미지들의 제1 데이터 세트를 수동으로 캡처함으로써 실험실 환경에서 계산된다. 각각의 이미지는 체스판 또는 차르코 보드(charuco board)와 같은 검출 가능한 알려진 크기의 기준(fiducial)을 포함한다. 데이터가 캡처되면, 각각의 이미지는 개별적으로 처리되어 기준 키 포인트들의 위치를 찾는다. 그 다음, 측정된 기준 키 포인트들의 세트는 공칭 기준 보드 포인트들의 세트와 상관된다. 예를 들어, Levenberg-Marquardt 최적화와 같은 최적화 방법이 렌즈의 광학 파라미터들을 해결하는 데 사용된다.
본 명세서에서 사용되는 외부 보정은 일반적으로 센서 좌표들로부터 로봇 좌표계로의 변환을 정의하기 위한 한 세트의 값들을 결정하는 것에 관련된다. 통상적으로, 이것은 센서에 대한 로봇의 엔드 이펙터의 운동학적 움직임을 매핑하는 것(예컨대, 손/눈 조정 보정)을 수반한다. 예를 들어, 매핑은 AX = XB로서 모델링될 수 있는데, 여기서 A와 B는 서로 다른 포지션들로부터의 센서 측정들이고, X는 센서 측정들을 공간의 서로 다른 포지션들에 상관시키는 알려지지 않은 변환이다. 당해 기술분야에 알려진 바와 같이 변환에 도달하기 위해 임의의 접근 방식이 사용될 수 있다. 광 센서 장착 포지션의 외부 보정 파라미터들은 또한 통상적으로, 내부 보정 프로세스를 이미 완료한 이후 이상적인 조건들에서 이미지들의 제2 데이터 세트를 수동으로 캡처함으로써 실험실 환경에서 계산된다. 내부 보정이 이미 완료되었으므로, 각각의 이미지는 왜곡되지 않으며 각각의 기준의 위치는 예를 들어, PnP(Perspective-n-Point) 최적화를 사용하여 결정된다. PnP는 세계에서 n개의 3D 포인트들의 세트와 이미지에서 이들의 해당 2D 투사들이 주어지면 내부적으로 보정된 광 센서의 포즈를 추정하는 것을 수반한다. 외부 보정으로도 또한 알려진 광 센서 포즈는 세계에 대한 광 센서의 회전(롤, 피치 및 요) 및 3D 평행이동(예컨대, X, Y 및 Z)으로 구성된 6 자유도(DOF: degrees-of-freedom)로 구성된다.
로봇의 사용 중에, 다양한 환경 요인들(예컨대, 진동), 렌즈 오염, 센서 부정확성들, 드리프트, 비동시성, 폐색들 및 광 센서 충돌이 종종 재보정에 대한 필요성을 트리거한다. 공교롭게도, 이러한 프로시저들은 수동이며, 두 단계들로의 별도의 이미지 수집들을 필요로 한다.
본 명세서에 개시되는 양상들 및 구현들은 로봇 광 센서에 대한 자동 내부 및 외부 보정에 관한 것이다. 구현은 광 센서; 로봇 암; 보정 차트; 하나 이상의 프로세서들; 및 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령들을 저장하는 메모리를 포함하며, 이 동작들은: 제1 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작; 한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션 및 배향 데이터를 포함하는 포즈 데이터를 생성하는 동작; 포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 동작; 복수의 포즈들의 각각의 포즈에서, 제1 광 센서로 보정 차트의 한 세트의 이미지들을 캡처하는 동작; 캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들을 계산하는 동작; 및 캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들을 계산하는 동작을 포함한다.
일 구현은 보정 엔드 이펙터(보정 차트 상에서 알려진 패턴을 가진 엔드 이펙터)를 로봇 암에 부착하는 것을 수반한다. 카메라에 보정판 투시도들의 균일한 확산을 제공하는 적절한 세트의 포즈들이 결정된다. 그런 다음, 로봇 암이 각각의 포즈로 자동 이동되고, 보정 차트의 포지션 및 배향과 함께 이미지가 캡처되고 기록된다. 결과적인 세트의 이미지들이 내부 렌즈 보정을 계산하는 데 사용된다. 이 다음에, 렌즈 보정이 사용되어 각각의 이미지의 왜곡을 제거하고, 각각의 이미지에 대해 보정 차트의 정확한 포즈가 결정된다. 보정 차트의 측정된 포즈, 및 각각의 이미지에 대해 기록된 로봇 암 포즈를 사용하여, 두 세트들의 변환들이 구성된다. 그런 다음, 이 변환 리스트들이 AX = XB 최적화 문제를 해결하는 데 사용됨으로써, 단일 세트의 이미지들로 광 센서의 외부 보정을 해결할 수 있다. 이는 보정 프로세스를 가속화하여, 더 짧은 로봇 정지 시간 및 보다 양호한 활용도를 야기하며, 제조, 유지보수 및 창고 운영과 같은 모바일 조작기 로봇들과 관련된 여러 시나리오들에 적용 가능하다.
도면들을 보다 구체적으로 참조하면, 도 1a는 로봇(100)의 정면도이고, 도 1b는 로봇(100)의 측면도이다. 로봇(100)은 다수의 세그먼트들(104a-104e), 그리고 세그먼트들(104a-104e) 사이의 다수의 조인트들(106b-106e)을 갖는 로봇 암(102)을 갖는다. 조인트(106a)는 로봇 암(102)의 세그먼트(104a)를 로봇 바디(108)에 연결한다. 예시된 바와 같이, 로봇 바디(108)는 베이스(108b) 상에서 회전하는 최상부 세그먼트(108a)를 갖는다. 포지션들을 조작함으로써(예컨대, 조인트들(106a-106e)을 돌림으로써), 로봇 암(102)은 다양한 배향들을 갖는 다수의 포지션들로 이동 가능하다. 로봇 암(102)의 일부 구현들은 3D 포지션(예컨대, 데카르트 축들을 따라 X, Y 및 Z 평행이동) 제어 그리고 또한 3D 배향 제어(예컨대, 롤, 피치 및 요)에 따른 6 자유도(6DoF: six degrees of freedom)를 갖는다. 도 7과 관련하여 보다 상세히 기술되는 제어기(700)는 로봇(100)의 동작들을 제어한다.
광 센서 하우징(110)은 로봇 바디(108)의 최상부 세그먼트(108a)의 전면에 장착된 것으로 예시되지만, 다른 구현에서 광 센서 하우징(110)은 로봇 암(102) 상에 장착된다. 광 센서 하우징(110)은 3개의 개구들(112a-112c)을 갖는 것으로 예시되지만, 대안적인 구현들에는 다른 수의 개구들이 사용되는 것으로 이해되어야 한다. 제1 로봇 광 센서(502a)는 중간 개구(112b) 뒤에 있다. 제2 로봇 광 센서(502b)는 개구(112a) 뒤에 있다. 다른 광 센서 또는 조명기(예컨대, LED)는 개구(112c) 뒤에 있다. 일 구현에서, 로봇 광 센서들(502a, 502b)은 가시광 파장들에서 작동하는 카메라들이다. 일부 구현에서, 로봇 광 센서들(502a, 502b)은 가시광선 파장들 밖에서, 예를 들어 적외선(IR: infrared)에서 작동한다. 일부 구현들에서, 로봇 광 센서들(502a, 502b)은 각각 서로 다른 파장들 상에서 작동한다. 이중 센서들의 사용은 스테레오 이미저리 그리고 또한 비교를 가능하게 하는데, 예를 들어 로봇 광 센서들(502a, 502b)의 출력들을 서로 비교함으로써 재보정에 대한 필요성이 결정될 수 있다. 보정 차트(300)를 유지하기 위한 엔드 이펙터(114)가 제자리에 있는데, 이는 도 3과 관련하여 보다 상세히 설명된다.
도 2는 로봇 암(102)이 도 1b에 예시된 것과 유사한 포지션에 있을 때 로봇 광 센서(502a)로부터의 뷰(200)를 예시한다. 이 뷰(200)는 로봇 암(102), 로봇 암의 그림자(202) 및 엔드 이펙터(114)를 포함한다. 도 1b 및 도 2에 예시된 엔드 이펙터(114)는 바둑판 패턴을 갖지만, 일부 구현들에서는 도 3에 보정 차트(300)로 도시된 7×8 차르코 보정판 패턴이 사용된다. 차르코 보드는 ArUco 패턴을 바둑판(일명 체스판)과 조합하고, 추가 수의 에지들 및 형상들을 제공하여 정렬 정확도를 향상시킨다. 예를 들어, 도 3의 차르코 보드는 회전 대칭이 아니다.
도 4는 다양한 좌표들 사이의 관계들의 세트(400)를 예시한다. 세계 좌표들(402)은 글로벌 기준 프레임에서 어떤 객체의 위치를 기술하는 반면, 카메라 좌표들(404)은 카메라 또는 다른 센서(예컨대, 로봇 광 센서(502a))의 초점에 대한 객체의 위치를 기술한다. 세계 좌표들(402)과 카메라 좌표들(404)은 3D에서 3D로의 변환에 의해 관련된다. 3D 대 2차원(2D: two-dimensional) 매핑으로, 카메라 좌표들(404)은 이미지 내 객체의 위치를 나타내는 2D 픽셀 좌표들(406)을 지정한다. 외부 보정 파라미터들(408)은 세계 좌표들(402)을 카메라 좌표들(404)과 관련시키고, 내부 보정 파라미터들(410)은 카메라 좌표들(404)을 픽셀 좌표들(406)과 관련시킨다.
도 5는 일반 광 센서(502)의 출력을 보정된 이미지들(508)로 평행이동하기 위한 프로세스(500)를 예시한다. 광 센서(502)의 다양한 특정 구현들은 로봇 광 센서(502a) 및 로봇 광 센서(502b)를 포함한다. 광 센서(502)는 원시 이미지들(504)을 출력한다. 원시 이미지들(504)에 대해 동작하는 보정 동작(506)은 (예컨대, CV 애플리케이션에서) 데이터 추출에 적합한 보정된 이미지들(508)을 생성한다. 일반적으로, 내부 보정은 렌즈 왜곡을 제거하여 정확히 보이는 이미지를 생성하는 것과 연관된다. 내부 보정 파라미터들은 또한 2D 좌표에서 3D 좌표로 투사하는 데 사용된다(예컨대, 객체가 이미지 내에서 어디에 있는지를 기초로 객체가 공간 내에서 어디에 있는지를 결정함). 외부 보정은 외부 프레임(예컨대, 로봇 프레임 또는 장착 지점)을 참조하여 센서 광학 평면을 위치시키는 것과 연관된다.
도 6은 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 프로세스(600)를 예시하는 블록도이다. 원하는 커버리지 파라미터들이 동작(602)에서 결정된다. 일 구현에서, 이것은 원하는 보정 정확도를 포함한다. 동작(604)에서 한 세트의 포즈들이 결정된다. 일 구현에서, 로봇 광 센서(502a)의 시야(예컨대, 결과적인 이미지 범위)에 걸친 보정판 투시도들의 균일한 확산이 결정된다. 일 구현은 수집된 이미지들의 데이터 세트에 걸쳐 보정 차트(300)의 투시도들의 효과적인 분포를 위한 포즈들을 자동으로 결정하기 위한 알고리즘을 사용한다. 이는 데이터 세트를 수동으로 캡처할 필요성을 없애며, 보다 균일하게 분산된 데이터 세트를 제공하는데, 이는 최적화에 기여한다.
동작(604)은 다수의 동작들(606-630)을 포함한다. 동작(606)에서, 로봇 광 센서(502a)의 시야 내의 2D 커버리지가 결정된다. 동작(608)에서 스케일링이 적용되고, 동작(610)에서 평행이동들이 적용되며, 동작(612)에서 스큐(skew)들이 적용되어, 예를 들어 이미지 데이터를 디-스큐(de-skew)하며, 동작(614)에서 회전들이 적용된다. 그 다음, 동작(616)은 동작들(618-628)로 포즈들을 세분화한다. 동작(618)에서 2D 커버리지가 3D 포즈로 변환되고, 동작(620)은 PnP 최적화를 포함하였다. 동작(622)에서 역운동학을 사용하여 도달 가능성이 결정된다. 역운동학은 엔드 이펙터(114)의 원하는 포지션을 제공하는 조인트 파라미터들을 결정하기 위해 로봇 암(102)의 운동학 방정식들을 사용하는 것을 의미한다. 엔드 이펙터(114)가 원하는 작업을 달성하도록 하는 로봇 암(102)의 움직임의 규격은 모션 계획으로 공지되어 있다. 역운동학은 모션 계획을 로봇 암(102)에 대한 조인트 액추에이터 궤도들로 변환한다. 결정 동작(624)에서 결정되는 대로 포즈에 도달 가능하다면, 동작(626)에서는 포즈가 한 세트의 포즈들에 수용(유지)되고; 그렇지 않으면 동작(628)에서 포즈가 거부된다. 일 구현에서, 도달 가능성을 결정하는 것은 로봇 암(102)이 정해진 포지션으로 이동할 수 있는지 여부 그리고 또한 보정 차트(300)가 로봇 광 센서(502a)의 시야 내에 있음을 결정하는 것 모두를 포함한다. 동작(630)에서, 예를 들어 로봇 팔이 모든 포즈들을 통과하는 데 필요한 모션을 최소화함으로써 포즈 순서가 최적화된다.
동작들(634-642)을 포함하는 동작(632)에서 보정 데이터가 캡처된다. 동작(634)은 한 세트의 포즈들 내의 각각의 포즈를 반복한다. 동작(636)은 포즈 데이터에 적어도 기초하여 로봇 암(102)을 복수의 포즈들 각각으로 이동시키는 동작을 포함한다. 동작(638)은 로봇 암이 엔드 이펙터(114)를 어디로 이동시켰는지에 기초하여 보정 차트(300)의 포지션 데이터를 캡처하는 동작을 포함한다. 동작(640)에서 이미지들이 캡처되고, 동작(642)은 이미지 및 변환 쌍들을 기록하는 동작을 포함한다. 이미지 데이터 세트가 이제 보정에 사용하기 위해 이용 가능하다. 동작(644)은 내부 보정 파라미터들(410)을 계산하는 동작을 포함하고, 동작(646)은 외부 보정 파라미터들(408)을 계산하는 동작을 포함한다. 프로세스의 개요는, 내부 보정 파라미터들(410)이 보정 차트(300)의 알려진 특성들 및 이미지 세트로부터 컴퓨팅되고; 캡처된 이미지들의 왜곡을 제거하기 위해 내부 보정이 적용되고; 왜곡이 제거된 이미지들에 마커 검출이 적용되고; 최적화기를 사용하여 마커 검출 결과들이 (동작(638)으로부터의) 이전에 기록된 포지션과 비교됨으로써, 외부 보정 파라미터들(408)을 생성하는 것이다.
보다 구체적으로, 내부 렌즈 왜곡 보정 값들은 캡처된 데이터를 사용하여(예컨대, 측정된 보정판 키 포인트들을 공칭 세트와 비교하는 Levenberg-Marquardt 최적화를 사용하여) 해결된다. 그런 다음, 이미지들은 왜곡이 제거될 수 있다. 각각의 이미지에서 (보정 차트(300)를 유지하는) 엔드 이펙터(114)의 포지션은 PnP 최적화를 사용하여 계산된다. 각각의 포즈는 로봇 광 센서(502a)에 대해 대응하는 계산된 포지션과 쌍을 이룬다. 일 구현에서, 로봇 광 센서(502a)의 장착 포지션은 예를 들어, 이중 쿼터니언(dual-quaternion) 방법인 포즈 생성 알고리즘을 사용하여 AX = XB 문제를 해결함으로써 해결된다.
도 7은 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 제어기(700)를 예시하는 블록도이다. 일 구현에서, 제어기(700)는 로봇(100)의 로봇 바디(108) 내에 위치된다. (도 1a 참조.) 일 구현에서, 제어기(700)는 컴퓨팅 디바이스(1000)의 명시이며, 이는 도 10과 관련하여 보다 상세히 설명된다. 제어기(700)는 메모리(1002)에 결합된 하나 이상의 프로세서들(1004)을 포함한다. 제어기(700)는 로봇 광 센서(502a) 및/또는 로봇 광 센서(502b)를 나타내는 광 센서(502)에 결합된다. 제어기(700)는 또한 로봇 암(102)(구체적으로는 세그먼트들(104a-104e), 조인트들(106a-106e) 및 엔드 이펙터(114))의 포지션 및 배향을 감지하는 포지션 센서들(732)에 결합된다. (도 6의) 동작(638)에서 캡처되는 포지션 데이터(716)는 포지션 센서들(732)에 의해 캡처된다. 제어기(700)는 또한 조인트들(106a-106e)을 이동시킴으로써 로봇 암(102)을 이동시키는 로봇 암 서보 모터들(730)에 결합된다.
메모리(1002)는 프로세서들(1004)에 의해 실행 가능한 명령뿐만 아니라 저장된 데이터를 포함한다. 메모리(1002)는 로봇 광 센서들(502a, 502b)을 제어하는 광 센서 제어부(702)를 포함한다. 메모리는 또한 로봇 암 제어부(704)를 포함하는데, 로봇 암 제어부(704)는 엔드 이펙터(114)를 지정된 포즈(예컨대, 지정된 3D 포지션 및 배향)로 포지셔닝하도록 포지션 센서들(732)로부터의 피드백을 사용하여 로봇 암 서보 모터들(730)을 제어한다. 메모리는 또한 본 명세서에서 설명되는 보정 프로시저들 동안 수집된 이미지들에 대한 기준 또는 디폴트 보정으로서 사용되는 사전 보정 데이터(706)를 포함한다. 일 구현에서, 사전 보정 데이터(706)는 디폴트 보정 데이터로 대체된다. 보정 모니터링 컴포넌트(708)는 예를 들어, 서로 다른 이미지들로부터 계산된 객체 포지션들을 비교하거나 타이머를 모니터링함으로써 트리거 기준들(710)에 따라 보정 트리거 이벤트를 결정한다. 포즈 생성기 및 최적화기 컴포넌트(712)는 보정 프로시저 동안 로봇 암(102)을 이동시키기 위한 포즈 데이터(714)를 생성한다.
원시 이미지들(504)인 이미지들은 다양한 포즈들에서 광 센서(502)로부터 출력되고, 동작(642)에서 기록된 이미지 및 변환 쌍들(718)을 또한 사용하는 보정에 사용된다. 보정 프로세스 제어부(720)는 본 명세서에서 설명되는 계산들을 수행하는 데 필요한 로직 및 데이터를 포함하는 내부 보정 지원 데이터(722) 및 외부 보정 지원 데이터(724)를 사용하여 내부 및 외부 보정들을 수행한다. 내부 보정 지원 데이터(722)는 또한 보정 차트(300)에 대한 데이터를 포함한다. 외부 보정 파라미터들(408)과 내부 보정 파라미터들(410)을 모두 포함하는 계산된 보정 파라미터들(726)이 또한 메모리(1002) 내에 있다. 메모리(1002)는 또한 결과적인 보정된 이미지들(508) 및 본 명세서에서 설명되는 동작들을 실행하는 데 필요한 다른 로직 및 데이터(728)를 보유한다.
이제 도 8을 참조하면, 흐름도(800)는 로봇 광 센서(502a)의 자동 보정을 위한 동작의 구현을 예시한다. 일 구현에서, 도 8에 예시된 동작들은 적어도 부분적으로는, 하나 이상의 프로세서들(1004)에 의해 명령들을 실행함으로써 수행된다. 동작(802)은 로봇 광 센서(502a)를 보정하기 위한 트리거 이벤트를 결정하는 동작을 포함한다. 일 구현에서, 동작(802)은 로봇 광 센서(502a)로 캡처된 이미지들을 로봇 암 광 센서(502b)로 캡처된 이미지들과 비교하는 동작을 포함한다. 예를 들어, 객체의 포지션은 로봇 광 센서(502a)로부터의 이미지들에 대해 동작하는 CV 알고리즘을 사용하여 계산되고, 동일한 객체의 포지션은 로봇 광 센서(502b)로부터의 이미지들에 대해 동작하는 CV 알고리즘을 사용하여 계산된다. 계산된 포지션들이 어떤 임계 이벤트보다 더 많이 다르다면, 이것이 결정된 트리거 이벤트이다. 일 구현에서, 트리거 이벤트는 타이머의 경과이다. 일 구현에서, 트리거 이벤트는 사용자 입력이다. 일 구현에서, 트리거 이벤트는 가공물에 대한 손상 또는 CV에 의해 제어되는 동작에 대한 예상치 못한 물리적 저항을 검출하는 것이다.
동작(804)은 로봇 광 센서(502b)를 보정하기 위한 한 세트의 포즈들을 결정하는 동작을 포함한다. 일 구현에서, 이것은 (도 6의) 동작(604)에 대해 설명된 동작들의 적어도 일부를 포함한다. 동작(806)은 한 세트의 포즈들에 적어도 기초하여, 3D 포지션 및 배향 데이터를 포함하는 포즈 데이터(714)를 생성하는 동작을 포함한다. 동작(808)은, 포지션 및 배향 데이터를 사용하여, 한 세트의 포즈들 내의 포즈가 도달 가능한지 여부를 결정하는 동작을 포함한다. 일 구현에서, 도달 가능성을 결정하는 것은 로봇 암(102)이 정해진 포지션으로 이동할 수 있는지 여부 그리고 또한 보정 차트(300)가 로봇 광 센서(502a)의 시야 내에 있음을 결정하는 것 모두를 포함한다. 결정 동작(810)에 따라 적어도, 포즈가 도달 가능한 것에 기초하여, 동작(812)은 포즈를 수용하는 동작을 포함한다. 결정 동작(810)에 따라 적어도, 포즈가 도달 가능하지 않은 것에 기초하여, 동작(814)은 포즈를 거부하는 동작을 포함한다. 그 다음, 동작(816)은 한 세트의 포즈들에 적어도 기초하여 포즈 순서를 결정하는 동작을 포함한다. 일 구현에서, 포즈들은 로봇 암(102)의 총 모션을 최소화하는 방식으로 시퀀싱되므로, 로봇 암(102)은 불필요하게 앞뒤로 움직이지 않고 있다.
동작(818)은 포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 동작을 포함한다. 예를 들어, (최소 수의 전환 단계들로 근거리에서부터 최대 거리까지) 거리들의 바람직한 범위, (최소 수의 전환 단계들로 제1 각도에서부터 제2 각도까지) 배향들의 범위; 수평 및 수직 평행이동 모두에서의 포지션들의 범위 등에서 보정 차트(300)의 이미지들을 제공하여, 엔드 이펙터(114)의 6DoF에 대해 (눈에 띄는 갭들 없이) 포괄적인 커버리지를 제공하도록 한 세트의 포즈들이 선택된다. 예를 들어, 주어진 범위 및 평행이동 포지션에서, 보정 차트(300)를 보유하는 엔드 이펙터(114)는 갭들을 피하기 위해 각각의 배향 차원에서 충분한 수의 전환 각도들로 롤, 피치 및 요 각각에서의 범위 또는 배향 각도들을 통해 단계적으로 진행된다. 그 다음, 엔드 이펙터(114)는 다른 평행이동 포지션으로 이동되고 배향 변동들이 다시 단계적으로 진행된다. 이는 충분한 이미저리가 도달 가능한 6DoF의 범위를 커버할 때까지 반복된다.
복수의 포즈들의 각각의 포즈에서, 동작(820)은 로봇 광 센서(502b)로 보정 차트(300)의 한 세트의 이미지들을 캡처하는 동작을 포함한다. 일 구현에서, 보정 차트(300)는 로봇 암(102)의 엔드 이펙터(114)에 부착되고, 로봇 광 센서(502b)는 로봇 바디(108) 상에 장착된다. 일 구현에서, 로봇 광 센서(502b)는 로봇 암(102) 상에(예컨대, 엔드 이펙터(114) 상에) 장착되며, 따라서 로봇 광 센서(502b)는 로봇 암(102)과 함께 이동한다. 이러한 구현에서, 보정 차트(300)는 다른 곳에, 이를테면 알려진 위치의 벽에 또는 로봇 바디(108) 상에 배치된다.
동작(822)은 캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들(410)을 계산하는 동작을 포함한다. 동작(824)은 내부 보정 파라미터들(410)을 캡처된 한 세트의 이미지들에 적용하는 동작을 포함하고, 동작(826)은 캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들(408)을 계산하는 동작을 포함한다.
도 9는 로봇 광 센서(502a)에 대한 자동 내부 및 외부 보정을 위한 프로세스(900)를 예시하는 블록도이다. 구체적으로, 프로세스(900)는 일 구현에서 흐름도(800)의 다양한 동작들을 수행하는 엘리먼트들을 제어기(700) 내에서 식별한다. 보정 모니터링 컴포넌트(708)는 동작(802)을 수행한다. 포즈 생성기 및 최적화기 컴포넌트(712)는 동작들(804-806)을 수행한다. 로봇 암 제어부(704)는 동작(818)을 수행하고, 광 센서 제어부(702)는 동작(820)을 수행한다. 마지막으로, 보정 프로세스 제어부(720)는 동작들(822-826)을 수행한다.
이제 도 10을 참조하면, 본 개시내용의 다양한 양상들을 구현하기에 적합한 컴퓨팅 디바이스(1000)의 블록도가 제공된다. 일부 구현들에서, 컴퓨팅 디바이스(1000)는 하나 이상의 프로세서들(1004), 하나 이상의 표현 컴포넌트들(1006) 및 메모리(1002)를 포함한다. 컴퓨팅 디바이스(1000)와 연관된 개시된 구현들은 개인용 컴퓨터들, 랩톱들, 스마트폰들, 모바일 태블릿들, 핸드헬드 디바이스들, 가전 제품, 특수 컴퓨팅 디바이스들 등을 포함하는 다양한 컴퓨팅 디바이스들에 의해 실시된다. 이러한 범주들 사이에는 "워크스테이션", "서버", "랩톱", "핸드헬드 디바이스" 등으로서의 구별이 이루어지지 않는데, 이는 모두가 도 10의 범위 내에서 그리고 "컴퓨팅 디바이스"에 대한 본 명세서의 언급들 내에서 고려되기 때문이다. 개시된 구현들은 또한 분산 컴퓨팅 환경들에서 실시되는데, 여기서 작업들은 통신 네트워크를 통해 링크되는 원격 처리 디바이스들에 의해 수행된다. 또한, 컴퓨팅 디바이스(1000)는 겉보기에는 단일 디바이스로서 도시되지만, 일 구현에서는 다수의 컴퓨팅 디바이스들이 함께 작동하여 도시된 디바이스 자원들을 공유한다. 예컨대, 일 구현에서, 메모리(1002)는 다수의 디바이스들에 걸쳐 분산되고, 제공된 프로세서(들)(1004)는 서로 다른 디바이스들 상에 수용되는 식이다.
일 구현에서, 메모리(1002)는 본 명세서에서 논의되는 컴퓨터 판독 가능 매체들 중 임의의 컴퓨터 판독 가능 매체를 포함한다. 일 구현에서, 메모리(1002)는 본 명세서에 개시된 다양한 동작들을 실행하도록 구성된 명령들을 저장하고 액세스하는 데 사용된다. 일부 구현들에서, 메모리(1002)는 휘발성 및/또는 비휘발성 메모리, 착탈식 또는 비-착탈식 메모리, 가상 환경들의 데이터 디스크들, 또는 이들의 조합의 형태의 컴퓨터 저장 매체들을 포함한다. 일 구현에서, 프로세서(들)(1004)는 메모리(1002) 또는 입력/출력(I/O: input/output) 컴포넌트들(1010)과 같은 다양한 엔티티들로부터 데이터를 판독하는 임의의 양의 처리 유닛들을 포함한다. 구체적으로, 프로세서(들)(1004)는 본 개시내용의 양상들을 구현하기 위한 컴퓨터 실행 가능 명령들을 실행하도록 프로그래밍된다. 일 구현에서, 명령들은 프로세서에 의해, 컴퓨팅 디바이스(1000) 내의 다수의 프로세서들에 의해, 또는 컴퓨팅 디바이스(1000) 외부의 프로세서에 의해 수행된다. 일부 구현들에서, 프로세서(들)(1004)는 아래에서 논의되며 첨부 도면들에 도시된 흐름도들에 예시된 것들과 같은 명령들을 실행하도록 프로그래밍된다.
표현 컴포넌트(들)(1006)는 데이터 표시들을 조작자에게 또는 다른 디바이스에 제시한다. 일 구현에서, 표현 컴포넌트들(1006)은 디스플레이 디바이스, 스피커, 프린팅 컴포넌트, 진동 컴포넌트 등을 포함한다. 당해 기술분야에서 통상의 지식을 가진 자는 컴퓨터 데이터가 다수의 방식들로, 이를테면 그래픽 사용자 인터페이스(GUI: graphical user interface)에서 시각적으로, 스피커들을 통해 청각적으로, 컴퓨팅 디바이스(1000) 사이에서 무선으로, 유선 접속을 통해, 또는 다른 방식들로 제시된다는 것을 이해하고 인식할 것이다. 일 구현에서, 표현 컴포넌트(들)(1006)는 프로세스들 및 동작들이 충분히 자동화되어 인간 상호 작용에 대한 필요성이 줄거나 필요하지 않을 때는 사용되지 않는다. I/O 포트들(1008)은 컴퓨팅 디바이스(1000)가, 일부는 내장되어 있는 I/O 컴포넌트들(1010)을 포함하는 다른 디바이스들에 논리적으로 결합될 수 있게 한다. I/O 컴포넌트들(1008)의 구현들은 예를 들어, 마이크로폰, 키보드, 마우스, 조이스틱, 게임 패드, 위성 접시, 스캐너, 프린터, 무선 디바이스 등을 포함한다(그러나 제한 없음).
컴퓨팅 디바이스(1000)는 다음의 디바이스들: 메모리(1002), 하나 이상의 프로세서들(1004), 하나 이상의 표현 컴포넌트들(1006), 입력/출력(I/O) 포트들(1008), I/O 컴포넌트들(1010), 전원(1012) 및 네트워크 컴포넌트(1014)를 직접 또는 간접적으로 결합하는 버스(1016)를 포함한다. 컴퓨팅 디바이스(1000)는 본 명세서에 예시된 임의의 단일 컴포넌트 또는 컴포넌트들의 조합과 관련된 어떠한 의존이나 요건도 갖는 것으로 해석되지 않아야 한다. 버스(1016)는 (어드레스 버스, 데이터 버스 또는 이들의 조합과 같은) 하나 이상의 버스들을 나타낸다. 도 10의 다양한 블록들은 명확성을 위해 선들로 도시되지만, 일부 구현들은 본 명세서에서 설명된 다양한 서로 다른 컴포넌트들에 대한 기능을 모호하게 한다.
일부 구현들에서, 컴퓨팅 디바이스(1000)는 네트워크 컴포넌트(1014)를 사용하여 네트워크(1018)에 통신 가능하게 결합된다. 일부 구현들에서, 네트워크 컴포넌트(1014)는 네트워크 인터페이스 카드 및/또는 네트워크 인터페이스 카드를 동작시키기 위한 컴퓨터 실행 가능 명령들(예컨대, 드라이버)을 포함한다. 일 구현에서, 컴퓨팅 디바이스(1000)와 다른 디바이스들 간의 통신은 유선 또는 무선 접속(1020)을 통해 임의의 프로토콜 또는 메커니즘을 사용하여 발생한다. 일부 구현들에서, 네트워크 컴포넌트(1014)는 전송 프로토콜을 사용하여 공개, 개인 또는 하이브리드(공개 및 개인)를 통해, 단거리 통신 기술들(예컨대, 근접장 통신(NFC: near-field communication), Bluetooth®브랜드 통신들 등), 또는 이들의 조합을 사용하여 무선으로 디바이스들 간에 데이터를 통신하도록 동작 가능하다.
컴퓨팅 디바이스(1000)와 관련하여 설명되지만, 본 개시내용의 구현들은 수많은 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경들, 구성들 또는 디바이스들에 의한 구현이 가능하다. 본 개시내용의 양상들과 함께 사용하기에 적합한 잘 알려진 컴퓨팅 시스템들, 환경들 및/또는 구성들의 구현들은 스마트폰들, 모바일 태블릿들, 모바일 컴퓨팅 디바이스들, 개인용 컴퓨터들, 서버 컴퓨터들, 핸드헬드 또는 랩톱 디바이스들, 멀티프로세서 시스템들, 게임 콘솔들, 마이크로프로세서 기반 시스템들, 셋톱 박스들, 프로그래밍 가능 가전 제품, 휴대 전화들, 웨어러블 또는 액세서리 폼 팩터들(예컨대, 시계들, 안경, 헤드셋들, 또는 이어폰들) 내의 모바일 컴퓨팅 및/또는 통신 디바이스들, 네트워크 PC들, 미니 컴퓨터들, 메인프레임 컴퓨터들, 상기 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산 컴퓨팅 환경들, VR 디바이스들, 홀로그래픽 디바이스 등을 포함한다(그러나 이들에 제한되지는 않음). 이러한 시스템들 또는 디바이스들은 키보드 또는 포인팅 디바이스와 같은 입력 디바이스들로부터, 제스처 입력, 근접 입력(이를테면, 호버링에 의해)을 통해 그리고/또는 음성 입력을 통하는 것을 포함하여 임의의 방식으로 사용자로부터의 입력을 받는다.
본 개시내용의 구현들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 컴퓨터 실행 가능 명령들, 이를테면 프로그램 모듈들의 일반적인 맥락에서 설명된다. 일 구현에서, 컴퓨터 실행 가능 명령들은 하나 이상의 컴퓨터 실행 가능 컴포넌트들 또는 모듈들로 구성된다. 일반적으로, 프로그램 모듈들은 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들 및 데이터 구조들을 포함한다(그러나 이들로 제한되지는 않음). 일 구현에서, 본 개시내용의 양상들은 임의의 수 및 구성의 이러한 컴포넌트들 또는 모듈들로 구현된다. 예를 들어, 본 개시내용의 양상들은 도면들에 도시되고 본 명세서에서 설명된 특정 컴퓨터 실행 가능 명령들 또는 특정 컴포넌트들 또는 모듈들로 제한되지 않는다. 본 개시내용의 다른 구현들은 본 명세서에서 예시되고 설명된 것보다 더 많은 또는 더 적은 기능을 갖는 서로 다른 컴퓨터 실행 가능 명령들 또는 컴포넌트들을 포함한다. 범용 컴퓨터를 수반하는 구현들에서, 본 개시내용의 양상들은 본 명세서에서 설명되는 명령들을 실행하도록 구성될 때 범용 컴퓨터를 특수 목적 컴퓨팅 디바이스로 변환한다.
제한이 아닌 예로서, 컴퓨터 판독 가능 매체들은 컴퓨터 저장 매체들 및 통신 매체들을 포함한다. 컴퓨터 저장 매체들은 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 등과 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비-착탈식 메모리를 포함한다. 컴퓨터 저장 매체들은 유형적이며 통신 매체들에 대해 상호 배타적이다. 컴퓨터 저장 매체들은 하드웨어로 구현되며 반송파들 및 전파 신호들을 제외한다. 본 개시내용의 목적들을 위한 컴퓨터 저장 매체들은 그 자체가 신호들은 아니다. 일 구현에서, 컴퓨터 저장 매체들은 하드 디스크들, 플래시 드라이브들, 솔리드 스테이트 메모리, 상변화 랜덤 액세스 메모리(PRAM: phase change random-access memory), 정적 랜덤 액세스 메모리(SRAM: static random-access memory), 동적 랜덤 액세스 메모리(DRAM: dynamic random-access memory), 다른 타입들의 랜덤 액세스 메모리(RAM: random-access memory), 판독 전용 메모리(ROM: read-only memory), 전기적으로 소거 가능한 프로그래밍 가능 판독 전용 메모리(EEPROM: electrically erasable programmable read-only memory), 플래시 메모리 또는 다른 메모리 기술, 콤팩트 디스크 판독 전용 메모리(CD-ROM: compact disk read-only memory), 디지털 다기능 디스크들(DVD: digital versatile disks) 또는 다른 광 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 컴퓨팅 디바이스에 의해 액세스할 정보를 저장하는 데 사용되는 임의의 다른 비송신 매체를 포함한다. 대조적으로, 통신 매체는 통상적으로, 변조된 데이터 신호, 이를테면 반송파 또는 다른 전송 메커니즘으로 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 등을 담고, 임의의 정보 전달 매체들을 포함한다.
(도 1a 및 도 1b의) 로봇(100)의 일부 예들은 도 11 내지 도 13과 관련하여 도시되고 설명된 바와 같은 제조 및 서비스 애플리케이션들에 사용된다. 따라서 본 개시내용의 구현들은 도 11에 도시된 장치 제조 및 서비스 방법(1100) 그리고 도 12에 도시된 장치(1200)와 관련하여 설명된다. 도 11에서, 일 구현에 따라 장치 제조 및 서비스 방법을 예시하는 도면이 도시된다. 일 구현에서, 예비 생산 동안, 장치 제조 및 서비스 방법(1100)은 도 12의 장치(1200)의 규격 및 설계(1102) 그리고 자재 조달(1104)을 포함한다. 생산 동안에는, 도 12의 장치(1200)의 컴포넌트 및 하위 부품 제조(1106) 그리고 시스템 통합(1108)이 이루어진다. 이후, 도 12의 장치(1200)는 운항(1112)되기 위해 인증 및 납품(1110)을 거친다. 고객에 의한 운항 동안, 도 12의 장치(1200)는 정기 유지보수 및 서비스(1114)를 위해 스케줄링되는데, 이는 일 구현에서 수정, 재구성, 개조, 및 본 명세서에서 설명된 다른 유지보수 또는 서비스를 포함한다.
일 구현에서, 장치 제조 및 서비스 방법(1100)의 프로세스들 각각은 시스템 통합자, 제3자 및/또는 조작자에 의해 수행 또는 실행된다. 이러한 구현들에서, 조작자는 고객일 수 있다. 이러한 설명을 목적으로, 시스템 통합자는 임의의 수의 장치 제조업체들 및 메이저 시스템 하도급 업체들을 포함하고; 제3자는 임의의 수의 판매사들, 하도급 업체들 및 공급사들을 포함하며; 일 구현에서, 조작자는 장치의 소유자 또는 장치의 함대, 장치 또는 장치의 함대를 담당하는 관리자, 장치를 작동시키는 사용자, 리스(leasing) 회사, 군수업체, 서비스 기관 등이다.
이제 도 12를 참조하면, 장치(1200)가 제공된다. 도 12에 도시된 바와 같이, 장치(1200)의 일례는 항공 우주 비행체, 항공기, 항공 화물, 비행 차량 등과 같은 비행 장치(1201)이다. 도 12에 또한 도시된 바와 같이, 장치(1200)의 추가 예는 자동차, 트럭, 중장비, 건설 장비, 보트, 선박, 잠수함 등과 같은 지상 운송 장치(1202)이다. 도 12에 도시된 장치(1200)의 추가 예는 다음의 모듈들: 공중 모듈, 탑재 모듈 및 지상 모듈 중 적어도 하나 이상을 포함하는 모듈식 장치(1203)이다. 공중 모듈은 공중 수송(air lift) 또는 비행 능력을 제공한다. 탑재 모듈은 화물 또는 살아있는 객체들(사람들, 동물들 등)과 같은 객체들을 이송하는 능력을 제공한다. 지상 모듈은 지상 이동 능력을 제공한다. 본 명세서에 개시된 해결책은 개별적으로 또는 공중 모듈 및 탑재 모듈, 또는 탑재 모듈 및 지상 모듈 등 또는 모든 모듈들과 같은 그룹들로 모듈들 각각에 적용된다.
이제 도 13을 참조하면, 본 개시내용의 구현이 유리하게 이용되는 비행 모듈(1201)의 보다 구체적인 도면이 도시된다. 이 예에서, 비행 모듈(1201)은 도 11의 장치 제조 및 서비스 방법(1100)에 의해 생산되는 항공기이며, 복수의 시스템들(1304) 및 내부(1306)와 함께 기체(1303)를 포함한다. 복수의 시스템들(1304)의 구현들은 추진 시스템(1308), 전기 시스템(1310), 유압 시스템(1312) 및 환경 시스템(1314) 중 하나 이상을 포함한다. 그러나 다른 시스템들이 또한 포함할 후보들이 된다. 항공 우주 산업의 예가 도시되지만, 다른 유리한 구현들이 자동차 산업 등과 같은 다른 산업들에 적용된다,
본 명세서에 개시된 구현들은 컴퓨터 또는 개인용 데이터 보조기기나 다른 핸드헬드 디바이스와 같은 다른 기계에 의해 실행되는 컴퓨터 실행 가능 명령들, 이를테면 프로그램 컴포넌트들을 포함하여, 컴퓨터 코드 또는 기계 사용 가능 명령들의 일반적인 맥락에서 설명된다. 일반적으로, 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함하는 프로그램 컴포넌트들은 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 코드를 의미한다. 개시된 구현들은 개인용 컴퓨터들, 랩톱들, 스마트폰들, 모바일 태블릿들, 핸드헬드 디바이스들, 가전 제품, 특수 컴퓨팅 디바이스들 등을 포함하는 다양한 시스템 구성들로 실시된다. 개시된 구현들은 또한 분산 컴퓨팅 환경들에서 실시되는데, 여기서 작업들은 통신 네트워크를 통해 링크되는 원격 처리 디바이스들에 의해 수행된다.
다음 단락들은 본 개시내용의 추가 양상들을 설명한다:
조항 1.
로봇 광 센서의 자동 보정을 위한 시스템으로서, 이 시스템은:
광 센서;
로봇 암;
보정 차트;
하나 이상의 프로세서들; 및
하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령들을 저장하는 메모리를 포함하며, 이 동작들은:
광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작;
한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션 및 배향 데이터를 포함하는 포즈 데이터를 생성하는 동작;
포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 동작;
복수의 포즈들의 각각의 포즈에서, 광 센서로 보정 차트의 한 세트의 이미지들을 캡처하는 동작;
캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들을 계산하는 동작; 및
캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들을 계산하는 동작을 포함한다.
조항 2.
조항 1의 시스템에서, 동작들은:
외부 보정 파라미터들을 계산하는 동작 전에, 캡처된 한 세트의 이미지들에 내부 보정 파라미터들을 적용하는 동작을 더 포함한다.
조항 3.
조항 1 또는 조항 2의 시스템에서, 동작들은:
한 세트의 포즈들 내의 포즈가 도달 가능한지 여부를 결정하는 동작; 및
적어도 포즈가 도달 가능하지 않은 것에 기초하여, 포즈를 거부하는 동작을 더 포함한다.
조항 4.
조항 1 내지 조항 3 중 어느 한 조항의 시스템에서, 보정 차트는 로봇 암의 엔드 이펙터에 부착되고, 광 센서는 로봇의 바디 상에 장착된다.
조항 5.
조항 1 내지 조항 3 중 어느 한 조항의 시스템에서, 광 센서는 로봇 암 상에 장착된다.
조항 6.
조항 1 내지 조항 5 중 어느 한 조항의 시스템에서, 동작들은:
광 센서를 보정하기 위한 트리거 이벤트를 결정하는 동작을 더 포함하며,
광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작은: 적어도 트리거 이벤트에 기초하여, 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작을 포함한다.
조항 7.
조항 6의 시스템에서, 광 센서는 제1 광 센서이고, 이 시스템은:
제2 광 센서를 더 포함하며,
트리거 이벤트를 결정하는 동작은 제1 광 센서로 캡처된 이미지들을 제2 광 센서로 캡처된 이미지들과 비교하는 동작을 포함한다.
조항 8.
로봇 광 센서의 자동 보정 방법으로서, 이 방법은:
광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 단계;
한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션 및 배향 데이터를 포함하는 포즈 데이터를 생성하는 단계;
포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 단계;
복수의 포즈들의 각각의 포즈에서, 광 센서로 보정 차트의 한 세트의 이미지들을 캡처하는 단계;
캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들을 계산하는 단계; 및
캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들을 계산하는 단계를 포함한다.
조항 9.
조항 8의 방법은:
외부 보정 파라미터들을 계산하는 단계 전에, 캡처된 한 세트의 이미지들에 내부 보정 파라미터들을 적용하는 단계를 더 포함한다.
조항 10.
조항 8 또는 조항 9의 방법은:
한 세트의 포즈들 내의 포즈가 도달 가능한지 여부를 결정하는 단계; 및
적어도 포즈가 도달 가능하지 않은 것에 기초하여, 포즈를 거부하는 단계를 더 포함한다.
조항 11.
조항 8 내지 조항 10 중 어느 한 조항의 방법에서, 보정 차트는 로봇 암의 엔드 이펙터에 부착되고, 광 센서는 로봇의 바디 상에 장착된다.
조항 12.
조항 8 내지 조항 11 중 어느 한 조항의 방법에서, 광 센서는 로봇 암 상에 장착된다.
조항 13.
조항 8 내지 조항 12 중 어느 한 조항의 방법은:
광 센서를 보정하기 위한 트리거 이벤트를 결정하는 단계를 더 포함하며,
광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 단계는: 적어도 트리거 이벤트에 기초하여, 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 단계를 포함한다.
조항 14.
조항 13의 방법에서, 광 센서는 제1 광 센서이고, 트리거 이벤트를 결정하는 단계는:
제1 광 센서로 캡처된 이미지들을 제2 광 센서로 캡처된 이미지들과 비교하는 단계를 포함한다.
조항 15.
컴퓨터 프로그램 제품은 컴퓨터 판독 가능 프로그램 코드가 내부에 구현된 컴퓨터 사용 가능 매체를 포함하며, 컴퓨터 판독 가능 프로그램 코드는 로봇 광 센서를 자동으로 보정하기 위한 방법을 구현하도록 실행되게 적응되고, 이 방법은:
광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 단계;
한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션 및 배향 데이터를 포함하는 포즈 데이터를 생성하는 단계;
포즈 데이터에 적어도 기초하여 로봇 암을 복수의 포즈들로 이동시키는 단계;
복수의 포즈들의 각각의 포즈에서, 광 센서로 보정 차트의 한 세트의 이미지들을 캡처하는 단계;
캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들을 계산하는 단계; 및
캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들을 계산하는 단계를 포함한다.
조항 16.
조항 15의 컴퓨터 프로그램 제품에서, 동작들은:
외부 보정 파라미터들을 계산하는 동작 전에, 캡처된 한 세트의 이미지들에 내부 보정 파라미터들을 적용하는 동작을 더 포함한다.
조항 17.
조항 15 또는 조항 16의 컴퓨터 프로그램 제품에서, 동작들은:
한 세트의 포즈들 내의 포즈가 도달 가능한지 여부를 결정하는 동작; 및
적어도 포즈가 도달 가능하지 않은 것에 기초하여, 포즈를 거부하는 동작을 더 포함한다.
조항 18.
조항 15 내지 조항 17 중 어느 한 조항의 컴퓨터 프로그램 제품에서, 보정 차트는 로봇 암의 엔드 이펙터에 부착되고, 광 센서는 로봇의 바디 상에 장착된다.
조항 19.
조항 15 내지 조항 18 중 어느 한 조항의 컴퓨터 프로그램 제품에서, 광 센서는 로봇 암 상에 장착된다.
조항 20.
조항 15 내지 조항 19 중 어느 한 조항의 컴퓨터 프로그램 제품에서, 광 센서는 제1 광 센서이고, 동작들은:
제1 광 센서를 보정하기 위한 트리거 이벤트를 결정하는 동작을 더 포함하며, 트리거 이벤트를 결정하는 동작은:
제1 광 센서로 캡처된 이미지들을 제2 광 센서로 캡처된 이미지들과 비교하는 동작을 포함하고;
제1 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작은:
적어도 트리거 이벤트에 기초하여, 제1 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작을 포함한다.
본 개시내용의 양상들 또는 그 구현들의 엘리먼트들을 도입할 때, 단수 표현들 및 "상기"라는 표현들은 엘리먼트들 중 하나 이상이 존재함을 의미하는 것으로 의도된다. "구성되는", "포함하는" 및 "갖는"이라는 용어들은 포괄적인 것으로 의도되며 열거된 엘리먼트들 이외의 추가 엘리먼트들이 존재할 수 있음을 의미한다. "구현"이라는 용어는 "~의 일례"를 의미하는 것으로 의도된다. "다음: A, B 및 C 중 하나 이상"이라는 문구는 "A 중 적어도 하나 그리고/또는 B 중 적어도 하나 그리고/또는 C 중 적어도 하나"를 의미한다.
본 개시내용의 양상들을 상세히 설명하였지만, 첨부된 청구항들에 정의된 바와 같은 본 개시내용의 양상들의 범위를 벗어나지 않으면서 수정들 및 변형들이 가능하다는 점이 명백할 것이다. 본 개시내용의 양상들의 범위를 벗어나지 않고 상기 구성들, 제품들 및 방법들에서 다양한 변경들이 이루어질 수 있기 때문에, 상기 설명에 포함되고 첨부 도면들에 도시된 모든 사항은 제한적인 의미가 아닌 예시적인 것으로 해석될 것이다.
Claims (14)
- 광 센서(502a);
로봇(100) 암(102);
보정 차트(300);
하나 이상의 프로세서들(1004); 및
상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령들을 저장하는 메모리(1002)를 포함하며,
상기 동작들은,
상기 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작(804);
상기 한 세트의 포즈들에 적어도 기초하여, 3차원(3D: three dimensional) 포지션(716) 및 배향 데이터를 포함하는 포즈 데이터(714)를 생성하는 동작(806);
상기 포즈 데이터에 적어도 기초하여 상기 로봇 암을 복수의 포즈들로 이동시키는 동작(818);
복수의 포즈들의 각각의 포즈에서, 상기 광 센서로 상기 보정 차트의 한 세트의 이미지들(504)을 캡처하는 동작(820);
캡처된 한 세트의 이미지들에 적어도 기초하여 내부(intrinsic) 보정 파라미터들(410)을 계산하는 동작(822); 및
상기 캡처된 한 세트의 이미지들에 적어도 기초하여 외부(extrinsic) 보정 파라미터들(408)을 계산하는 동작(826)을 포함하는,
로봇 광 센서의 자동 보정을 위한 시스템. - 제1 항에 있어서,
상기 동작들은,
상기 외부 보정 파라미터들을 계산하는 동작 전에, 상기 캡처된 한 세트의 이미지들에 상기 내부 보정 파라미터들을 적용하는 동작(824)을 더 포함하는,
로봇 광 센서의 자동 보정을 위한 시스템. - 제1 항 또는 제2 항에 있어서,
상기 동작들은,
상기 한 세트의 포즈들 내의 포즈가 도달 가능한지 여부를 결정하는 동작(808); 및
적어도 상기 포즈가 도달 가능하지 않은 것에 기초하여, 상기 포즈를 거부하는 동작(814)을 더 포함하는,
로봇 광 센서의 자동 보정을 위한 시스템. - 제1 항 내지 제3 항 중 어느 한 항에 있어서,
상기 보정 차트는 상기 로봇 암의 엔드 이펙터(114)에 부착되고,
상기 광 센서는 상기 로봇의 바디(108) 상에 장착되는,
로봇 광 센서의 자동 보정을 위한 시스템. - 제1 항 내지 제3 항 중 어느 한 항에 있어서,
상기 광 센서는 상기 로봇 암 상에 장착되는,
로봇 광 센서의 자동 보정을 위한 시스템. - 제1 항 내지 제5 항 중 어느 한 항에 있어서,
상기 동작들은,
상기 광 센서를 보정하기 위한 트리거 이벤트를 결정하는 동작(802)을 더 포함하며,
상기 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작은,
적어도 상기 트리거 이벤트에 기초하여, 상기 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 동작을 포함하는,
로봇 광 센서의 자동 보정을 위한 시스템. - 제6 항에 있어서,
상기 광 센서는 제1 광 센서이고,
상기 시스템은,
제2 광 센서(502b)를 더 포함하며,
상기 트리거 이벤트를 결정하는 동작은 상기 제1 광 센서로 캡처된 이미지들을 상기 제2 광 센서로 캡처된 이미지들과 비교하는 동작을 포함하는,
로봇 광 센서의 자동 보정을 위한 시스템. - 광 센서(502a)를 보정하기 위한 한 세트의 포즈들을 결정하는 단계(804);
상기 한 세트의 포즈들에 적어도 기초하여, 3차원(3D) 포지션(716) 및 배향 데이터를 포함하는 포즈 데이터(714)를 생성하는 단계(806);
상기 포즈 데이터에 적어도 기초하여 로봇(100) 암(102)을 복수의 포즈들로 이동시키는 단계(818);
상기 복수의 포즈들의 각각의 포즈에서, 상기 광 센서로 보정 차트(300)의 한 세트의 이미지들(504)을 캡처하는 단계(820);
캡처된 한 세트의 이미지들에 적어도 기초하여 내부 보정 파라미터들(410)을 계산하는 단계(822); 및
상기 캡처된 한 세트의 이미지들에 적어도 기초하여 외부 보정 파라미터들(408)을 계산하는 단계(826)를 포함하는,
로봇 광 센서의 자동 보정 방법. - 제8 항에 있어서,
상기 외부 보정 파라미터들을 계산하는 단계 전에, 상기 캡처된 한 세트의 이미지들에 상기 내부 보정 파라미터들을 적용하는 단계(824)를 더 포함하는,
로봇 광 센서의 자동 보정 방법. - 제8 항 또는 제9 항에 있어서,
상기 한 세트의 포즈들 내의 포즈가 도달 가능한지 여부를 결정하는 단계(808); 및
적어도 상기 포즈가 도달 가능하지 않은 것에 기초하여, 상기 포즈를 거부하는 단계(814)를 더 포함하는,
로봇 광 센서의 자동 보정 방법. - 제8 항 내지 제10 항 중 어느 한 항에 있어서,
상기 보정 차트는 상기 로봇 암의 엔드 이펙터(114)에 부착되고,
상기 광 센서는 상기 로봇의 바디(108) 상에 장착되는,
로봇 광 센서의 자동 보정 방법. - 제8 항 내지 제10 항 중 어느 한 항에 있어서,
상기 광 센서는 상기 로봇 암 상에 장착되는,
로봇 광 센서의 자동 보정 방법. - 제8 항 내지 제12 항 중 어느 한 항에 있어서,
상기 광 센서를 보정하기 위한 트리거 이벤트를 결정하는 단계(802)를 더 포함하며,
상기 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 단계는,
적어도 상기 트리거 이벤트에 기초하여, 상기 광 센서를 보정하기 위한 한 세트의 포즈들을 결정하는 단계를 포함하는,
로봇 광 센서의 자동 보정 방법. - 제13 항에 있어서,
상기 광 센서는 제1 광 센서이고,
상기 트리거 이벤트를 결정하는 단계는,
상기 제1 광 센서로 캡처된 이미지들을 제2 광 센서(502b)로 캡처된 이미지들과 비교하는 단계를 포함하는,
로봇 광 센서의 자동 보정 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/293,584 | 2018-12-21 | ||
US16/293,584 US11254019B2 (en) | 2019-03-05 | 2019-03-05 | Automatic calibration for a robot optical sensor |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200107789A true KR20200107789A (ko) | 2020-09-16 |
Family
ID=69770499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200011714A KR20200107789A (ko) | 2019-03-05 | 2020-01-31 | 로봇 광 센서에 대한 자동 보정 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11254019B2 (ko) |
EP (1) | EP3706080A1 (ko) |
JP (1) | JP2020172017A (ko) |
KR (1) | KR20200107789A (ko) |
CN (1) | CN111660290A (ko) |
BR (1) | BR102020004017A2 (ko) |
CA (1) | CA3067515A1 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7307262B2 (ja) * | 2020-02-20 | 2023-07-11 | ファナック株式会社 | ロボットシステム |
US11919174B2 (en) | 2020-08-04 | 2024-03-05 | Artificial, Inc. | Protocol simulation in a virtualized robotic lab environment |
CN112525074B (zh) * | 2020-11-24 | 2022-04-12 | 杭州素问九州医疗科技有限公司 | 标定方法、***、机器人、计算机装置和导航*** |
CN112894882A (zh) * | 2020-12-30 | 2021-06-04 | 哈尔滨工业大学芜湖机器人产业技术研究院 | 基于工业互联网的机器人故障检测*** |
CN112914731A (zh) * | 2021-03-08 | 2021-06-08 | 上海交通大学 | 基于增强现实的介入机器人无接触遥操***及标定方法 |
JP7437343B2 (ja) | 2021-03-29 | 2024-02-22 | 株式会社日立製作所 | ロボット制御用のキャリブレーション装置 |
US11912513B1 (en) * | 2021-04-14 | 2024-02-27 | Amazon Technologies, Inc. | Robotic system camera calibration and localization using robot-mounted registered patterns |
EP4094897B1 (de) * | 2021-05-26 | 2023-09-20 | MVTec Software GmbH | Hand-auge-kalibrierung von kamerageführten apparaturen |
CN113246135B (zh) * | 2021-06-03 | 2021-10-12 | 季华实验室 | 机器人手眼标定方法、装置、电子设备及存储介质 |
US20220392012A1 (en) * | 2021-06-07 | 2022-12-08 | Alcon Inc. | Optical axis calibration of robotic camera system |
US11911915B2 (en) * | 2021-06-09 | 2024-02-27 | Intrinsic Innovation Llc | Determining robotic calibration processes |
CN113538590B (zh) * | 2021-06-15 | 2024-07-02 | 深圳云天励飞技术股份有限公司 | 一种变焦相机的标定方法、装置、终端设备和存储介质 |
CN113447064A (zh) * | 2021-06-30 | 2021-09-28 | 东莞市小精灵教育软件有限公司 | 一种校准方法和电子设备 |
US20230086050A1 (en) * | 2021-09-21 | 2023-03-23 | The Boeing Company | Method and apparatus for modeling dynamic intrinsic parameters of a camera |
US11941840B2 (en) | 2021-09-21 | 2024-03-26 | The Boeing Company | Method and apparatus for hand-off and tracking for pose estimation of a fiducial marker |
CN115890638A (zh) * | 2021-09-30 | 2023-04-04 | 台达电子工业股份有限公司 | 自动化机械手臂*** |
CN113771096A (zh) * | 2021-11-09 | 2021-12-10 | 北京壹点灵动科技有限公司 | 机械臂的位姿信息的处理方法和装置 |
DE102021213358A1 (de) | 2021-11-26 | 2023-06-01 | Physik Instrumente (PI) GmbH & Co KG | Posenbestimmung bei Parallelkinematiken mit Referenzmarkern |
CN114419164B (zh) * | 2022-01-17 | 2023-03-24 | 深圳市海柔创新科技有限公司 | 位姿标定数据生成方法、装置、电子设备及存储介质 |
CN114700943B (zh) * | 2022-04-02 | 2023-07-07 | 武汉数字化设计与制造创新中心有限公司 | 一种大型水轮机在位机器人加工坐标系标定方法 |
CN114677429B (zh) * | 2022-05-27 | 2022-08-30 | 深圳广成创新技术有限公司 | 一种机械手的定位方法、装置、计算机设备和存储介质 |
CN116117818A (zh) * | 2023-02-28 | 2023-05-16 | 哈尔滨工业大学 | 一种机器人传感器手眼标定方法及*** |
CN116299374B (zh) * | 2023-05-17 | 2023-08-04 | 苏州艾秒科技有限公司 | 基于机器视觉的声呐成像水下自动校准定位方法和*** |
CN117077384A (zh) * | 2023-08-01 | 2023-11-17 | 中铁隧道局集团有限公司 | 一种锚杆台车机械臂末端锚杆位姿的逆解方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011009108A2 (en) | 2009-07-17 | 2011-01-20 | Universal Robotics, Inc. | System and method for automatic calibration of stereo images |
US11699247B2 (en) * | 2009-12-24 | 2023-07-11 | Cognex Corporation | System and method for runtime determination of camera miscalibration |
US9393694B2 (en) * | 2010-05-14 | 2016-07-19 | Cognex Corporation | System and method for robust calibration between a machine vision system and a robot |
US9188973B2 (en) * | 2011-07-08 | 2015-11-17 | Restoration Robotics, Inc. | Calibration and transformation of a camera system's coordinate system |
US10664994B2 (en) * | 2013-02-25 | 2020-05-26 | Cognex Corporation | System and method for calibration of machine vision cameras along at least three discrete planes |
EP2981397B1 (en) * | 2013-04-05 | 2017-06-14 | ABB Schweiz AG | A robot system and method for calibration |
US9193073B1 (en) * | 2014-10-15 | 2015-11-24 | Quanta Storage Inc. | Robot calibration apparatus for calibrating a robot arm |
CN105522576A (zh) * | 2014-10-27 | 2016-04-27 | 广明光电股份有限公司 | 机器手臂自动再校正的方法 |
WO2016079967A1 (en) * | 2014-11-21 | 2016-05-26 | Seiko Epson Corporation | Robot and robot system |
CN105014667B (zh) * | 2015-08-06 | 2017-03-08 | 浙江大学 | 一种基于像素空间优化的相机与机器人相对位姿标定方法 |
CN106483963B (zh) * | 2015-08-26 | 2020-02-11 | 泰科电子(上海)有限公司 | 机器人***的自动标定方法 |
JP6710946B2 (ja) * | 2015-12-01 | 2020-06-17 | セイコーエプソン株式会社 | 制御装置、ロボットおよびロボットシステム |
DK3436876T3 (da) * | 2016-03-29 | 2021-10-11 | Cognibotics Ab | Fremgangsmåde, begrænsningsindretning og system til bestemmelse af geometriske egenskaber for en manipulator |
DE102016212694A1 (de) * | 2016-05-31 | 2017-11-30 | Siemens Aktiengesellschaft | Verfahren zur Orientierung eines Industrieroboters und Industrieroboter |
EP3264359A1 (en) | 2016-06-28 | 2018-01-03 | Dassault Systèmes | A computer-implemented method of calibrating a camera |
US10076842B2 (en) * | 2016-09-28 | 2018-09-18 | Cognex Corporation | Simultaneous kinematic and hand-eye calibration |
KR102576842B1 (ko) * | 2017-01-04 | 2023-09-12 | 삼성전자주식회사 | 핸드-아이 캘리브레이션을 수행하는 로봇 및 전자 장치 |
JP6396516B2 (ja) * | 2017-01-12 | 2018-09-26 | ファナック株式会社 | 視覚センサのキャリブレーション装置、方法及びプログラム |
CN108436909A (zh) * | 2018-03-13 | 2018-08-24 | 南京理工大学 | 一种基于ros的相机和机器人的手眼标定方法 |
DE102018129143B4 (de) * | 2018-11-20 | 2021-06-17 | Carl Zeiss Industrielle Messtechnik Gmbh | Variabler messobjektabhängiger Kameraaufbau und Kalibrierung davon |
US10628968B1 (en) * | 2018-12-05 | 2020-04-21 | Toyota Research Institute, Inc. | Systems and methods of calibrating a depth-IR image offset |
-
2019
- 2019-03-05 US US16/293,584 patent/US11254019B2/en active Active
-
2020
- 2020-01-10 CN CN202010026286.6A patent/CN111660290A/zh active Pending
- 2020-01-10 CA CA3067515A patent/CA3067515A1/en active Pending
- 2020-01-31 KR KR1020200011714A patent/KR20200107789A/ko not_active Application Discontinuation
- 2020-02-18 JP JP2020025162A patent/JP2020172017A/ja active Pending
- 2020-02-28 BR BR102020004017-0A patent/BR102020004017A2/pt unknown
- 2020-03-03 EP EP20160707.4A patent/EP3706080A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN111660290A (zh) | 2020-09-15 |
US11254019B2 (en) | 2022-02-22 |
CA3067515A1 (en) | 2020-09-05 |
JP2020172017A (ja) | 2020-10-22 |
EP3706080A1 (en) | 2020-09-09 |
US20200282575A1 (en) | 2020-09-10 |
BR102020004017A2 (pt) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200107789A (ko) | 로봇 광 센서에 대한 자동 보정 | |
US11911914B2 (en) | System and method for automatic hand-eye calibration of vision system for robot motion | |
CN111801198B (zh) | 一种手眼标定方法、***及计算机存储介质 | |
JP5850962B2 (ja) | ビジュアルフィードバックを利用したロボットシステム | |
CN114012731B (zh) | 手眼标定方法、装置、计算机设备和存储介质 | |
EP2543482B1 (en) | Information processing apparatus and information processing method | |
JP6855492B2 (ja) | ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法 | |
US9519736B2 (en) | Data generation device for vision sensor and detection simulation system | |
JP2018169403A5 (ko) | ||
JP2017037642A (ja) | 案内された組立環境におけるマシンビジョン座標空間を結合するためのシステム及び方法 | |
CN113379849B (zh) | 基于深度相机的机器人自主识别智能抓取方法及*** | |
US20210294328A1 (en) | Systems and methods for determining a pose of a sensor on a robot | |
US9992480B1 (en) | Apparatus and methods related to using mirrors to capture, by a camera of a robot, images that capture portions of an environment from multiple vantages | |
CN112330752A (zh) | 多相机联合标定方法、装置、终端设备及可读存储介质 | |
JP6699097B2 (ja) | ロボット及び制御装置 | |
US20230071953A1 (en) | Systems, and methods for real time calibration of multiple range sensors on a robot | |
JP2016017913A (ja) | 姿勢情報作成システム、姿勢情報作成方法及び姿勢情報作成プログラム | |
Wang et al. | Measurement error correction model of TOF depth camera | |
US20220212811A1 (en) | Fuel receptacle and boom tip position and pose estimation for aerial refueling | |
CN111699445A (zh) | 机器人运动学模型优化方法、***和存储装置 | |
Kulpate et al. | An eye-to-hand visual servoing structure for 3d positioning of a robotic arm using one camera and a flat mirror | |
Huynh et al. | Dynamic Hybrid Filter for Vision‐Based Pose Estimation of a Hexa Parallel Robot | |
Lin et al. | Dsp based uncalibrated visual servoing for a 3-dof robot manipulator | |
JP2015123560A (ja) | ロボットシステム、ロボット制御装置、及びロボット制御方法 | |
Schmitt et al. | Single camera-based synchronisation within a concept of robotic assembly in motion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |