KR20230160276A - Autonomous welding robot - Google Patents

Autonomous welding robot Download PDF

Info

Publication number
KR20230160276A
KR20230160276A KR1020237032884A KR20237032884A KR20230160276A KR 20230160276 A KR20230160276 A KR 20230160276A KR 1020237032884 A KR1020237032884 A KR 1020237032884A KR 20237032884 A KR20237032884 A KR 20237032884A KR 20230160276 A KR20230160276 A KR 20230160276A
Authority
KR
South Korea
Prior art keywords
candidate
welding
computer
implemented method
sim
Prior art date
Application number
KR1020237032884A
Other languages
Korean (ko)
Inventor
알렉산더 제임스 론즈베리
앤드류 고든 론즈베리
니마 아잼 가르
콜린 벙커
카를로스 파비앙 베니테스 퀴로즈
마드하분 칸다다이 바수
Original Assignee
패스 로보틱스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 패스 로보틱스, 인코포레이티드 filed Critical 패스 로보틱스, 인코포레이티드
Publication of KR20230160276A publication Critical patent/KR20230160276A/en

Links

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/1694Programme 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/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K37/00Auxiliary devices or processes, not specially adapted to a procedure covered by only one of the preceding main groups
    • B23K37/02Carriages for supporting the welding or cutting element
    • B23K37/0211Carriages for supporting the welding or cutting element travelling on a guide member, e.g. rail, track
    • B23K37/0229Carriages for supporting the welding or cutting element travelling on a guide member, e.g. rail, track the guide member being situated alongside the workpiece
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K37/00Auxiliary devices or processes, not specially adapted to a procedure covered by only one of the preceding main groups
    • B23K37/02Carriages for supporting the welding or cutting element
    • B23K37/0258Electric supply or control circuits therefor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K37/00Auxiliary devices or processes, not specially adapted to a procedure covered by only one of the preceding main groups
    • B23K37/04Auxiliary devices or processes, not specially adapted to a procedure covered by only one of the preceding main groups for holding or positioning work
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/0019End effectors other than grippers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • 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
    • B25J9/1666Avoiding collision or forbidden zones
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45104Lasrobot, welding robot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30152Solder
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Abstract

다양한 실시예에서, 웰딩 로봇을 위한 명령을 생성하는 컴퓨터-구현된 방법이다. 상기 컴퓨터-구현된 방법은 웰딩 될 파트의 Computer Aided Design(CAD) 모델에 기초하여 상기 파트 상 후보 심의 예상되는 위치를 식별하는 것 상기 파트의 리프레젠테이션을 생성하도록 상기 파트를 포함하는 워크스페이스를 스캔하는 것 상기 후보 심의 예상되는 위치 및 상기 파트의 리프레젠테이션에 기초하여 상기 파트 상 후보 심을 식별하는 것 상기 후보 심의 실제 위치를 결정하는 것 및 상기 후보 심의 실제 위치에 적어도 부분적으로 기초하여 상기 웰딩 로봇에 대한 웰딩 명령을 생셩하는 것을 포함한다.In various embodiments, a computer-implemented method of generating commands for a welding robot. The computer-implemented method includes: identifying expected locations for candidate consideration of the part based on a Computer Aided Design (CAD) model of the part to be welded; scanning a workspace containing the part to create a representation of the part; Identifying a candidate seam on the part based on the expected location of the candidate seam and a representation of the part; Determining an actual location of the candidate seam; and At least in part based on the actual position of the candidate seam to the welding robot. This includes generating welding commands for:

Description

오토노머스 웰딩 로봇Autonomous welding robot

본 출원은 "SYSTEMS AND METHODS FOR OPERATING AND CONTROLLING A WELDING ROBOT"이라는 제목으로 2021년 2월 24일에 출원된 미국 임시 특허 출원 번호 63/153,109, 및 "SYSTEMS AND METHODS FOR OPERATING AND CONTROLLING A WELDING ROBOT"이라는 제목으로 2021년 11월 24일에 출원된 미국 임시 특허 출원 일련 번호 63/282,827의 이점을 주장하며, 각 내용의 전체 내용은 모든 목적을 위해 여기에 참조로 포함된다.This application is related to U.S. Provisional Patent Application No. 63/153,109, filed February 24, 2021, entitled “SYSTEMS AND METHODS FOR OPERATING AND CONTROLLING A WELDING ROBOT” Claims the benefit of U.S. Provisional Patent Application Serial No. 63/282,827, filed November 24, 2021, the entire contents of which are hereby incorporated by reference for all purposes.

로보틱(robotic) 제조에는 제조 공정의 하나 이상의 측면을 수행하기 위해 로봇(robot)을 사용하는 것이 포함된다. 로봇 웰딩은 로보틱 제조 분야의 한 응용 분야이다. 로봇 웰딩에서 로봇은 하나 이상의 심(seam)을 따라 두 개 이상의 컴포넌트를 함께 웰딩한다. 이러한 로봇은 사람이 수행하거나 사람이 직접 제어하는 기계에 의해 수행되는 프로세스를 자동화하기 때문에 생산 시간, 신뢰성, 효율성 및 비용 측면에서 상당한 이점을 제공한다.Robotic manufacturing involves using robots to perform one or more aspects of a manufacturing process. Robot welding is one application area in robotic manufacturing. In robotic welding, a robot welds two or more components together along one or more seams. These robots offer significant advantages in terms of production time, reliability, efficiency and cost because they automate processes previously performed by humans or by machines directly controlled by humans.

다양한 예에서는 웰딩 로봇에 대한 명령을 생성하는 컴퓨터 구현 방법이 있다. 컴퓨터-구현된 방법은, 파트(part)의 Computer Aided Design(CAD) 모델(model)에 기초하여 웰딩 될 파트 상 후보(candidate) 심(seam)의 예상되는 위치를 식별(identifying)하는 것; 상기 파트의 리프레젠테이션(representation)을 생성하도록 상기 파트를 포함하는 워크스페이스(workspace)를 스캔(scanning)하는 것; 상기 후보 심의 예상되는 위치 및 상기 파트의 리프레젠테이션에 기초하여 상기 파트 상 후보 심을 식별하는 것; 상기 후보 심의 실제 위치를 결정하는 것; 및 상기 후보 심의 실제 위치에 적어도 부분적으로 기초하여 상기 웰딩 로봇에 대한 웰딩 명령을 생셩하는 것;을 포함한다.Various examples include computer-implemented methods for generating commands for welding robots. The computer-implemented method includes identifying expected locations of candidate seams on a part to be welded based on a Computer Aided Design (CAD) model of the part; scanning a workspace containing the part to create a representation of the part; identifying candidate Sims for the part based on the expected location of the candidate Sims and the representation of the part; determining the actual location of said candidate deliberation; and generating a welding command for the welding robot based at least in part on the actual location of the candidate seam.

예를 들어, 웰딩 로봇을 위한 웰딩 명령을 생성하는 컴퓨터 구현 방법이 있다. 상기 방법은, 센서를 통해, 웰딩될 파트를 포함하는 워크스페이스의 이미지 데이터를 수득하는 것; 상기 이미지 데이터에 기초하여 웰딩될 파트 상 복수의 포인트를 식별하는 것; 상기 복수의 포인트로부터 웰딩될 파트 상 후보 심을 식별하는 것; 및 상기 후보 심의 식별에 적어도 부분적으로 기초하여 상기 웰딩 로봇에 대한 웰딩 명령을 생성하는 것;을 포함한다.For example, there is a computer-implemented method for generating welding commands for a welding robot. The method includes obtaining image data of a workspace including a part to be welded through a sensor; identifying a plurality of points on the part to be welded based on the image data; identifying candidate seams on parts to be welded from the plurality of points; and generating a welding command for the welding robot based at least in part on the candidate deliberation identification.

도 1은 다양한 실시예에 따른 오토노머스 로봇식 웰딩 시스템의 블록도이다.
도 2는 다양한 실시예에 따른 오토노머스 로봇식 웰딩 시스템의 개략도이다.
도 3은 다양한 실시예에 따른 오토노머스 로봇식 웰딩 시스템의 개략도이다.
도 4는 다양한 실시예에 따른 웰딩 가능한 심을 갖는 파트의 예시적인 포인트 크라우드(point cloud)다.
도 5는 다양한 실시예에 따른 웰딩 가능한 심을 갖는 파트의 예시적인 포인트 크라우드다.
도 6은 다양한 실시예에 따른 레지스트레이션(registration) 프로세스(process) 플로(flow)를 도시하는 블록도이다.
도 7은 다양한 실시예에 따라 로봇의 경로 계획을 결정할 수 있는 그래프 검색 기술(graph-search technique)의 개략도이다 .
도 8은 다양한 실시예에 따른 로봇 팔의 수학적 모델이다.
도 9는 다양한 실시예에 따른 오토노머스 웰딩을 수행하는 방법의 흐름도이다.
도 10은 다양한 실시예에 따른 오토노머스 웰딩을 수행하는 방법의 흐름도이다.
도 11은 다양한 실시예에 따른 오토노머스 웰딩을 수행하는 방법의 흐름도이다.
1 is a block diagram of an autonomous robotic welding system according to various embodiments.
2 is a schematic diagram of an autonomous robotic welding system according to various embodiments.
3 is a schematic diagram of an autonomous robotic welding system according to various embodiments.
4 is an example point cloud of a part with weldable seams according to various embodiments.
5 is an example point crowd of a part with weldable seams according to various embodiments.
FIG. 6 is a block diagram illustrating a registration process flow according to various embodiments.
7 is a schematic diagram of a graph-search technique that can determine a path plan for a robot according to various embodiments.
8 is a mathematical model of a robot arm according to various embodiments.
Figure 9 is a flowchart of a method for performing autonomous welding according to various embodiments.
Figure 10 is a flowchart of a method for performing autonomous welding according to various embodiments.
Figure 11 is a flowchart of a method for performing autonomous welding according to various embodiments.

기존의 웰딩 기술은 지루하고 노동 집약적이며 비효율적이다. 또한 기존 웰딩 기술은 제조 공정에서 흔히 발생하는 불규칙성을 수용할 만큼 유연성이 부족하여 바람직하지 않은 가동 중지 시간과 비효율성을 초래한다. 예를 들어, 기존 웰딩 기술에서는 숙련된 프로그래머가 웰딩 로봇이 웰딩 작업을 수행하는 데 필요한 명령(instruction)을 생성해야 한다. 이러한 명령은 웰딩 로봇에게 특정 웰딩 작업을 수행하는 데 사용해야 하는 동작, 경로, 궤적 및 웰딩 파라미터를 지시한다. 동일한 웰딩 작업을 여러 번 반복하는 대량 작업을 수행한다는 가정 하에 명령이 작성되었다. 따라서 웰딩 공정(예컨대, 다른 파트) 중에 발생하는 모든 수차(aberrations)로 인해 웰딩 위치가 잘못될 수 있다. 잘못 배치된 웰딩은 결과적으로 비효율성, 비용 및 대량 생산의 기타 부정적인 측면을 증가시킨다.Conventional welding techniques are tedious, labor-intensive and inefficient. Additionally, existing welding technologies are not flexible enough to accommodate the irregularities that commonly occur in manufacturing processes, resulting in undesirable downtime and inefficiencies. For example, existing welding technology requires a skilled programmer to generate the instructions needed for a welding robot to perform the welding task. These commands instruct the welding robot what motions, paths, trajectories, and welding parameters it should use to perform a specific welding task. The commands were written under the assumption that a large amount of work would be performed, repeating the same welding operation multiple times. Therefore, any aberrations that occur during the welding process (e.g., other parts) may result in incorrect welding positions. Misplaced welds ultimately increase inefficiencies, costs and other negative aspects of mass production.

어떤 경우에는 파트의 CAD(컴퓨터 지원 설계) 모델이 웰딩 작업을 용이하게 하기 위해 웰딩 로봇에 유용할 수 있다. 예를 들어, 웰딩할 파트의 CAD 모델을 웰딩 로봇에 제공하고, 웰딩 로봇은 CAD 모델을 이용하여 웰딩할 심의 위치 등의 움직임을 안내할 수 있다. 웰딩할 심에는 CAD 모델에 주석(예컨대, 각 모서리가 심을 나타내는 사용자가 선택한 가장자리를 포함하는 주석)이 지정되고, 웰딩 로봇은 센서를 사용하여 심을 찾은 후 어노테이션(annotations)에 따라 웰딩을 한다. 이러한 접근 방식은 숙련된 프로그래머나 제조 엔지니어의 필요성을 줄이거나 없앨 수 있지만 한계가 있다. 예를 들어 웰딩 작업은 매우 정밀한 작업이다. 일반적으로 허용 가능한 웰딩을 생성하려면 웰딩 팁이 심과 관련된 목표 위치로부터 1mm 이내에 위치하는 것이 바람직하다. CAD 모델을 기반으로 웰딩 로봇을 안내할 때 파트가 CAD 모델과 밀접하게 일치하더라도 실제 심은 모델링된 위치에서 1mm 이상 떨어져 있을 수 있으며, 이로 인해 허용 가능한 웰딩을 생성하기 위한 웰딩 팁의 정확한 위치 지정이 어렵거나 불가능할 수 있다. CAD 모델이 실제 파트를 단순화한 경우(소량 생산에서 흔히 발생) 심은 모델링된 위치에서 1cm 이상 제거될 수 있다. 따라서 알려진 기술을 사용하면 CAD 모델을 기반으로 심을 정확하게 찾는 것이 어려울 수 있다. 따라서 웰딩 로봇은 허용할 수 없는 웰딩을 생성하여 불량 파트를 생성할 수 있다.In some cases, a computer-aided design (CAD) model of a part may be useful to a welding robot to facilitate the welding operation. For example, a CAD model of the part to be welded may be provided to the welding robot, and the welding robot may use the CAD model to guide movements such as the position of the seam to be welded. The seam to be welded is assigned an annotation to the CAD model (e.g., an annotation containing a user-selected edge where each corner represents a seam), and the welding robot uses a sensor to find the seam and then welds according to the annotations. This approach can reduce or eliminate the need for skilled programmers or manufacturing engineers, but it has limitations. For example, welding work is a very precise work. In general, to produce an acceptable weld, it is desirable for the welding tip to be located within 1 mm of the target position relative to the seam. When guiding a welding robot based on a CAD model, even if the part closely matches the CAD model, the actual shim may be more than 1 mm away from the modeled position, making precise positioning of the welding tip to produce an acceptable weld difficult. Or it may be impossible. If the CAD model is a simplification of the actual part (which is common in low-volume production), the shim may be removed by more than 1 cm from the modeled location. Therefore, using known techniques, it can be difficult to accurately find seams based on a CAD model. Therefore, welding robots can produce unacceptable welds, resulting in defective parts.

또한, 웰딩 로봇을 제어하기 위한 이전 솔루션에서는 다른 구성 요소(예: 부품, 센서, 클램프 등)와의 충돌을 피하기 위해 웰딩 로봇(더 구체적으로 로봇 팔)이 제조 워크스페이스 내에서 심과 같은 첫 번째 포인트에서 두 번째 포인트까지의 경로를 따라 이동할 때 웰딩 로봇에 특정 명령을 제공하는 숙련된 작업자가 필요했다. 장애물과 충돌이 없는 경로(예컨대, 로봇이 심을 웰딩하기 위해 따를 수 있는 경로)를 식별하는 것을 여기에서는 경로 계획이라고 한다. 숙련된 작업자에게 로봇 팔의 수십 또는 수백 개의 잠재적 경로에 대한 경로 계획을 수행하도록 요구하는 것은 비효율적이고 지루하며 비용이 많이 든다. 게다가 기존 웰딩 로봇은 동일한 경로, 동일한 동작, 동일한 궤적을 반복적으로 따르도록 프로그래밍되는 경우가 많다. 이러한 반복적으로 수행되는 프로세스는 제조 프로세스가 고도로 성숙한 대량 제조 환경에서 허용될 수 있으나, 그러나 낮은 또는 중간 볼륨 설정에서는 구성 요소가 웰딩 로봇을 기준으로 예상치 못한 위치에 배치될 수 있으며, 이로 인해 충돌, 부품 정렬 불량, 공차 불량 및 기타 문제가 발생할 수 있다. 따라서 특정 설정에서는 웰딩을 용이하게 하기 위해 숙련된 작업자가 필요할 수 있다.Additionally, previous solutions for controlling welding robots required that the welding robot (more specifically the robotic arm) move to the first point, such as a seam, within the manufacturing workspace to avoid collisions with other components (e.g. parts, sensors, clamps, etc.). A skilled operator was needed to give specific commands to the welding robot as it moved along the path from to the second point. Identifying a path free of obstacles and collisions (e.g. a path that a robot can follow to weld a seam) is referred to here as path planning. Requiring skilled workers to perform path planning for tens or hundreds of potential paths for a robotic arm is inefficient, tedious, and expensive. Moreover, existing welding robots are often programmed to repeatedly follow the same path, same motion, and same trajectory. This repetitive process may be acceptable in a high-volume manufacturing environment where the manufacturing process is highly mature; however, in low or medium volume settings, components may be placed in unexpected positions relative to the welding robot, resulting in collisions, Misalignment, poor tolerances, and other problems can occur. Therefore, in certain settings, a skilled operator may be required to facilitate welding.

본 명세서에 설명된 웰딩 기술은 심을 정확하고 정확하게 식별하고 웰딩하기 위해 웰딩 로봇에 유용한 명령을 자동으로 동적으로 생성할 수 있기 때문에 이전의 웰딩 로봇 및 기술보다 우수하다. 이전 시스템 및 기술과 달리, 여기에 설명된 웰딩 기술은 웰딩될 부품의 CAD 모델을 반드시 요구하지는 않으며(비록 일부 예와 아래에 설명된 바와 같이 CAD 모델이 유용할 수 있음), 또한 부품이나 제조 워크스페이스에 대한 선험적 정보가 반드시 필요한 것도 아니다. 오히려, 여기에 설명된 웰딩 기술은 이동식 센서를 사용하여 제조 작업 공간(특히 파트 및 심)을 3차원(3D) 공간에 매핑하고 이러한 지도를 사용하여 높은 수준의 정확성과 정밀도로 심을 찾아 용접한다. 여기에 설명된 웰딩 기술에는 웰딩을 위한 여러 후보 심을 식별하는 기능, 웰딩을 위한 후보 심을 선택하기 위해 사용자와 상호 작용하는 기능, 웰딩 파라미터를 동적으로 변경하고 웰딩 작업에 대한 피드백을 제공한다. 또한, 여기에 설명된 웰딩 기술은 센서에 의해 획득된 데이터를 사용하여 자동으로 동적으로 경로 계획을 수행하도록 구성되며, 즉, 선험적 정보 없이 로봇이 따라가는 제조 워크스페이스에서 하나 이상의 경로를 자동으로 동적으로 식별하고, 암(arm)은 다른 구성 요소와 충돌하지 않고 이동할 수 있다. 본 명세서에 설명된 웰딩 기술은 또한 센서에 의해 획득된 데이터와 사전 정보(예: 주석이 달린 CAD 모델)의 조합을 사용하여 경로 계획 및 웰딩을 동적으로 수행하도록 구성된다. 이제 이들 실시예 및 기타 실시예가 도면을 참조하여 아래에 설명된다.The welding technology described herein is superior to previous welding robots and technologies because it can automatically and dynamically generate commands useful to the welding robot to accurately and accurately identify and weld seams. Unlike previous systems and techniques, the welding techniques described here do not necessarily require a CAD model of the part to be welded (although CAD models may be useful in some examples and as described below), nor do they necessarily require a CAD model of the part or manufacturing workpiece. A priori information about space is not necessarily necessary. Rather, the welding technology described here uses mobile sensors to map the manufacturing workspace (particularly parts and seams) in three-dimensional (3D) space and uses these maps to locate and weld seams with a high level of accuracy and precision. The welding technology described here includes the ability to identify multiple candidate seams for welding, interact with the user to select candidate seams for welding, dynamically change welding parameters, and provide feedback on the welding operation. Additionally, the welding technology described herein is configured to automatically and dynamically perform path planning using data acquired by sensors, i.e. automatically and dynamically plan one or more paths in the manufacturing workspace followed by the robot without any a priori information. identified, the arm can move without colliding with other components. The welding technology described herein is also configured to dynamically perform path planning and welding using a combination of data acquired by sensors and prior information (e.g., an annotated CAD model). These and other embodiments are now described below with reference to the drawings.

도 1은 다양한 실시예에 따른 오토노머스 로봇식 웰딩 시스템(100)의 블록도이다. 시스템(100)은 제조 워크스페이스(101), 사용자 인터페이스(106), 컨트롤러(108), 데이터베이스(112)를 저장하는 스토리지(storage; 109)를 포함한다. 시스템(100)은 본 명세서에 명시적으로 설명되지 않은 다른 구성요소 또는 서브시스템을 포함할 수 있다. 제조 워크스페이스(101)은 하나 이상의 센서를 통해 수신된 정보의 도움을 받는 동안 플랫폼이나 포지셔너에 의해 위치 지정, 결합 또는 지원되는 하나 이상의 파트에서 로봇 암(들)이 작동하는 영역 또는 인클로저이다. 실시예에서, 워크스페이스(101)은 웰딩을 위한 적절한 안전 조치로 설계된 임의의 적절한 웰딩 영역일 수 있다. 예를 들어, 워크스페이스(101)은 작업장, 작업장, 제조 공장, 제조 공장 등에 위치한 웰딩 영역일 수 있다. 실시예에서, 제조 워크스페이스(101)(또는 보다 일반적으로 워크스페이스(101))은 센서(102), 웰딩, 브레이징 및 본딩과 같은 웰딩 유형 프로세스를 수행하도록 구성된 로봇(110), 웰딩될 파트(114)(예컨대, , 심이 있는 부분) 및 픽스쳐(fixture; 116)를 포함한다. 픽스쳐(116)는 파트(114)을 유지, 위치 지정 및/또는 조작할 수 있으며, 예를 들어 클램프, 플랫폼, 포지셔너 또는 기타 유형의 픽스쳐일 수 있다. 픽스쳐(116)는 파트(114)을 단단히 고정하도록 구성될 수 있다. 예에서, 픽스쳐(116)은 사용자에 의해 수동으로 또는 모터에 의해 자동으로 조정 가능하다. 예를 들어, 픽스쳐(116)은 웰딩 프로세스 전이나 웰딩 프로세스 중에 그 위치, 배향, 또는 다른 물리적 구성을 동적으로 조정할 수 있다. 일부 예에서, 로봇(110)은 하나 이상의 센서(102)를 포함할 수 있다. 예를 들어, 하나 이상의 센서(102)는 로봇(110)의 암(예를 들어, 암에 부착된 웰딩 헤드)에 위치할 수 있다. 다른 예에서, 하나 이상의 센서(102)는 이동 가능한 웰딩되지 않은 로봇 암(로봇(110)과 다를 수 있음)에 위치할 수 있다. 또 다른 예에서, 하나 이상의 센서(102) 중 하나는 로봇(110)의 암에 위치될 수 있고, 하나 이상의 센서(102) 중 다른 하나는 워크스페이스의 이동 가능한 장비에 위치될 수 있다. 또 다른 예에서, 하나 이상의 센서(102) 중 하나는 로봇(110)의 암에 위치될 수 있고, 하나 이상의 센서(102) 중 다른 하나는 이동 가능한 비웰딩 로봇 암에 위치될 수 있다.Figure 1 is a block diagram of an autonomous robotic welding system 100 according to various embodiments. System 100 includes a manufacturing workspace 101, a user interface 106, a controller 108, and storage 109 that stores a database 112. System 100 may include other components or subsystems not explicitly described herein. Manufacturing workspace 101 is an area or enclosure where robotic arm(s) operate on one or more parts positioned, coupled or supported by a platform or positioner while aided by information received through one or more sensors. In embodiments, workspace 101 may be any suitable welding area designed with appropriate safety measures for welding. For example, the workspace 101 may be a welding area located in a workshop, workshop, manufacturing plant, manufacturing plant, etc. In an embodiment, manufacturing workspace 101 (or more generally workspace 101 ) includes sensors 102 , robots 110 configured to perform welding-type processes such as welding, brazing, and bonding, and parts to be welded ( 114) (e.g., a portion with a seam) and a fixture 116. Fixture 116 may hold, position, and/or manipulate part 114 and may be, for example, a clamp, platform, positioner, or other type of fixture. Fixture 116 may be configured to securely secure part 114. In examples, fixture 116 can be adjusted manually by a user or automatically by a motor. For example, fixture 116 may dynamically adjust its position, orientation, or other physical configuration before or during the welding process. In some examples, robot 110 may include one or more sensors 102. For example, one or more sensors 102 may be located on an arm of the robot 110 (e.g., a welding head attached to the arm). In another example, one or more sensors 102 may be located on a movable, unwelded robot arm (which may be different from robot 110). In another example, one of the one or more sensors 102 may be located on an arm of the robot 110 and another of the one or more sensors 102 may be located on a movable piece of equipment in the workspace. In another example, one of the one or more sensors 102 may be located on an arm of the robot 110 and the other of the one or more sensors 102 may be located on a movable, non-welding robot arm.

센서(102)는 워크스페이스(101)에 대한 정보를 캡처하도록 구성된다. 실시예에서, 센서(102)는 워크스페이스(101)에 대한 시각적 정보(예를 들어, 2차원(2D) 이미지)를 캡처하도록 구성되는 이미지 센서이다. 예를 들어, 센서(102)는 카메라(예를 들어 레이저가 내장된 카메라), 스캐너(예를 들어 레이저 스캐너) 등을 포함할 수 있다. 센서(102)는 LiDAR(Light 감지 및 범위 지정) 센서와 같은 센서를 포함할 수 있다. 대안적으로 또는 추가적으로, 센서(102)는 SONAR(Sound Navigation and Ranging) 장치와 같은 사운드를 방출 및/또는 캡처하도록 구성된 오디오 센서일 수 있다. 대안적으로 또는 추가적으로, 센서(102)는 무선 탐지 및 거리 측정(RADAR) 장치와 같은 전자기(EM)파를 방출 및/또는 포착하도록 구성된 전자기 센서일 수 있다. 시각, 청각, 전자기 및/또는 기타 감지 기술을 통해 센서(102)는 워크스페이스(101)의 물리적 구조에 대한 정보를 수집할 수 있다. 워크스페이스(101) 의 움직이는 구조물)를 수집하고, 또 다른 예에서는 센서(102)가 정적 정보와 동적 정보의 조합을 수집한다. 센서(102)는 워크스페이스(101)의 물리적 구조에 관한 모든 정보의 임의의 적절한 조합을 수집할 수 있으며 이러한 정보를 다른 구성요소(예를 들어, 컨트롤러(108))에 제공하여 워크스페이스(101)의 물리적 구조의 3D 표현을 생성할 수 있다. 위에서 설명한 바와 같이, 센서(102)는 다양한 정보 유형 중 임의의 정보를 캡처하고 전달할 수 있으나, 이 설명은 센서(102)가 워크스페이스(101)의 시각적 정보(예를 들어, 2D 이미지)를 주로 캡처하고, 이후에 후술하는 바와 같이 워크스페이스(101)의 3D 표현을 생성하기 위해 한꺼번에 사용된다고 가정한다.Sensor 102 is configured to capture information about workspace 101 . In an embodiment, sensor 102 is an image sensor configured to capture visual information (e.g., a two-dimensional (2D) image) about workspace 101. For example, the sensor 102 may include a camera (eg, a camera with a built-in laser), a scanner (eg, a laser scanner), etc. Sensor 102 may include a sensor, such as a LiDAR (Light Detection and Ranging) sensor. Alternatively or additionally, sensor 102 may be an audio sensor configured to emit and/or capture sound, such as a Sound Navigation and Ranging (SONAR) device. Alternatively or additionally, sensor 102 may be an electromagnetic sensor configured to emit and/or capture electromagnetic (EM) waves, such as a radio detection and ranging (RADAR) device. Sensors 102 may collect information about the physical structure of workspace 101 through visual, auditory, electromagnetic and/or other sensing technologies. (moving structures of the workspace 101), and in another example, sensors 102 collect a combination of static and dynamic information. Sensors 102 may collect any suitable combination of information regarding the physical structure of workspace 101 and provide such information to other components (e.g., controller 108) to provide workspace 101 ) can create a 3D representation of the physical structure. As described above, sensor 102 may capture and convey any of a variety of information types, but this description does not apply to sensor 102 primarily capturing visual information (e.g., 2D images) of workspace 101. It is assumed that they are captured and used en masse to create a 3D representation of the workspace 101, as described later.

워크스페이스(101)의 3D 리프레젠테이션(representation)을 생성하기 위해 센서(102)는 다양한 각도에서 워크스페이스(101)의 물리적 구조의 2D 이미지를 캡처한다. 예를 들어, 비록 픽스쳐(116) 또는 파트(114)의 단일 2D 이미지가 해당 구성 요소의 3D 리프레젠테이션을 생성하는 데 부적절할 수 있고, 마찬가지로 단일 각도, 뷰 또는 평면에서 픽스쳐(116) 또는 파트(114)의 여러 2D 이미지 세트는 해당 구성 요소의 3D 리프레젠테이션을 생성하는 데 부적절할 수 있으나, 워크스페이스(101) 내의 다양한 위치에서 여러 각도에서 캡처된 여러 2D 이미지는 픽스쳐(116) 또는 파트(114)과 같은 구성 요소의 3D 리프레젠테이션을 생성하는 데 적합할 수 있다. 2D 이미지를 여러 방향으로 캡쳐하는 것은 구성 요소의 정면, 프로필 및 하향식 보기를 포함하는 구성 요소의 평면도는 해당 구성 요소의 3D 표현을 생성하는 데 필요한 모든 정보를 제공하는 방식과 개념적으로 유사하게 부품에 대한 3차원 공간정보를 제공하기 때문이다. 따라서, 실시예에서, 센서(102)는 워크스페이스(101) 내의 구조의 3D 리프레젠테이션을 생성하기에 적합한 정보를 캡처하기 위해 워크스페이스(101) 주위를 이동하도록 구성된다. 예에서, 센서는 고정되어 있지만 전술한 3D 리프레젠테이션을 생성하기 위해 적절한 정보가 센서(102)에 의해 캡처되도록 워크스페이스(101) 주위에 적절한 수와 적절하게 다양한 위치에 존재한다. 센서(102)가 이동 가능한 예에서, 워크스페이스(101) 주위의 그러한 움직임을 용이하게 하는 데 임의의 적합한 구조가 유용할 수 있다. 예를 들어, 하나 이상의 센서(102)는 전동식 트랙 시스템에 위치할 수 있다. 트랙 시스템 자체는 고정되어 있을 수 있지만 센서(102)는 트랙 시스템의 워크스페이스(101) 주위를 이동하도록 구성되어 있다. 그러나 일부 예에서는 센서(102)가 트랙 시스템에서 이동 가능하고 트랙 시스템 자체가 워크스페이스(101) 주위에서 이동 가능한다. 또 다른 예에서, 하나 이상의 거울은 점이나 축을 중심으로 및/또는 이를 따라 피벗, 선회, 회전 또는 병진할 수 있는 센서(102)와 함께 워크스페이스(101) 내에 배열되어, 센서(102)는 제1 구성에 있을 때 초기 유리한 지점으로부터 2D 이미지를 캡처하고, 제2 구성에 있을 때 거울을 사용하여 다른 유리한 지점으로부터 2D 이미지를 캡처하도록 한다. 또 다른 예에서, 센서(102)는 포인트 또는 축을 중심으로 및/또는 이를 따라 피벗, 선회, 회전 또는 병진운동하도록 구성될 수 있는 암에 매달릴 수 있고, 센서(102)는 이들 암이 전체 동작 범위를 통해 연장될 때 다양한 유리한 지점에서 2D 이미지를 캡처하도록 구성될 수 있다.To create a 3D representation of workspace 101, sensor 102 captures 2D images of the physical structure of workspace 101 from various angles. For example, although a single 2D image of a fixture 116 or part 114 may be inadequate for creating a 3D representation of that component, likewise a single 2D image of a fixture 116 or part 114 may be viewed from a single angle, view, or plane. While a set of multiple 2D images 114 may be inadequate for creating a 3D representation of a given component, multiple 2D images captured from multiple angles at various locations within the workspace 101 can be used to create a fixture 116 or part 114 ) may be suitable for creating 3D representations of components such as Capturing 2D images in multiple orientations allows you to view a part conceptually similar to how a top view of a component, including front, profile, and top-down views of the component, provides all the information needed to create a 3D representation of that component. This is because it provides three-dimensional spatial information. Accordingly, in embodiments, sensors 102 are configured to move around workspace 101 to capture information suitable for creating a 3D representation of structures within workspace 101 . In the example, the sensors are stationary but present in an appropriate number and appropriately varied locations around the workspace 101 such that the appropriate information is captured by the sensors 102 to generate the 3D representation described above. In instances where sensor 102 is movable, any suitable structure may be useful to facilitate such movement around workspace 101. For example, one or more sensors 102 may be located in a powered track system. The track system itself may be stationary, but the sensors 102 are configured to move around the workspace 101 of the track system. However, in some examples, the sensors 102 are movable in the track system and the track system itself is movable around the workspace 101. In another example, one or more mirrors are arranged within the workspace 101 with a sensor 102 capable of pivoting, pivoting, rotating or translating about and/or along a point or axis, so that the sensor 102 When in the first configuration, capture a 2D image from an initial vantage point, and when in the second configuration, use a mirror to capture a 2D image from a different vantage point. In another example, the sensor 102 may be suspended from an arm that may be configured to pivot, pivot, rotate, or translate about and/or along a point or axis, and the sensor 102 may be configured to move these arms throughout their entire range of motion. When extended through, it can be configured to capture 2D images from various vantage points.

일부 실시예에서, 전술한 센서(102) 구성 중 일부 또는 전부가 구현된다. 다른 센서(102) 구성이 고려되고 본 개시의 범위에 포함된다.In some embodiments, some or all of the sensor 102 configurations described above are implemented. Other sensor 102 configurations are contemplated and are included within the scope of this disclosure.

여전히 도 1을 참조하면, 로봇(110)(예를 들어, 로봇(110)의 웰딩 헤드)은 아래 설명되는 바와 같이 컨트롤러(108)로부터 수신된 경로 계획에 따라 워크스페이스(101) 내에서 이동하도록 구성된다. 로봇(110)은 컨트롤러(108)로부터 수신된 명령에 따라 파트(114)에 대해 하나 이상의 적절한 제조 프로세스(예를 들어, 웰딩 작업)를 수행하도록 추가로 구성된다. 일부 실시예에서, 로봇(110)은 웰딩 암을 갖춘 6-축 로봇일 수 있다. 로봇(110)은 YASKAWA® 로봇 암, ABB® IRB 로봇, KUKA® 로봇 등과 같은 임의의 적합한 로봇 웰딩 장비일 수 있다. 로봇(110)은 아크 웰딩, 저항 웰딩, 스폿 웰딩, TIG(텅스텐 불활성 가스) 웰딩, MAG(금속 활성 가스) 웰딩, MIG(금속 불활성 가스) 웰딩, 레이저 웰딩, 플라즈마 웰딩, 이들의 조합 및/또는 이와 유사한 것을 수행하도록 구성될 수 있다.Still referring to FIG. 1 , robot 110 (e.g., a welding head of robot 110) is configured to move within workspace 101 according to a path plan received from controller 108, as described below. It is composed. Robot 110 is further configured to perform one or more suitable manufacturing processes (e.g., welding operations) on part 114 in accordance with instructions received from controller 108. In some embodiments, robot 110 may be a six-axis robot equipped with a welding arm. Robot 110 may be any suitable robotic welding equipment, such as a YASKAWA® robot arm, ABB® IRB robot, KUKA® robot, etc. The robot 110 may be used for arc welding, resistance welding, spot welding, TIG (tungsten inert gas) welding, MAG (metal activated gas) welding, MIG (metal inert gas) welding, laser welding, plasma welding, combinations thereof, and/or It could be configured to do something similar.

여전히 도 1을 참조하면 , 워크스페이스(101), 특히 워크스페이스(101) 내의 센서(들)(102) 및 로봇(110)은 컨트롤러(108)에 연결된다. 컨트롤러(108)는 여기에서 컨트롤러(108) 또는 보다 일반적으로 시스템(100)에 부여된 동작을 수행하도록 구체적이고 특별하게 구성된(예를 들어, 프로그래밍된) 임의의 적합한 기계이다. 일부 실시예에서, 컨트롤러(108)는 범용 컴퓨터가 아니며, 그 대신 여기에서 컨트롤러(108) 또는 더 일반적으로는 시스템(100)에 부여된 작업을 수행하도록 특별히 프로그래밍 및/또는 하드웨어 구성된다. 일부 실시예에서, 컨트롤러(108)는 여기에서 컨트롤러(108) 또는 더 일반적으로 시스템(100)에 부여된 동작을 수행하도록 구성된 주문형 집적 회로(ASIC)이거나 이를 포함한다. 일부 실시예에서, 컨트롤러(108)는 중앙 처리 장치(CPU)와 같은 프로세서를 포함하거나 프로세서이다. 일부 실시예에서, 컨트롤러(108)는 현장 프로그래밍 가능 게이트 어레이(FPGA)이다. 실시예에서, 컨트롤러(108)는 컨트롤러(108)에 의해 실행될 때 컨트롤러(108)가 여기에서 컨트롤러(108) 또는 더 일반적으로 시스템(100)에 귀속된 동작 중 하나 이상을 수행하게 하는 실행 가능한 코드를 저장하는 메모리를 포함한다. 컨트롤러(108)는 본 명세서에 설명된 특정 예로 제한되지 않는다.Still referring to FIG. 1 , workspace 101 , particularly sensor(s) 102 and robots 110 within workspace 101 , are connected to controller 108 . Controller 108 herein is any suitable machine that is specifically and specially configured (e.g., programmed) to perform the operations assigned to controller 108 or, more generally, system 100. In some embodiments, controller 108 is not a general-purpose computer, but is instead specifically programmed and/or hardware configured to perform tasks assigned herein to controller 108, or more generally to system 100. In some embodiments, controller 108 is or includes an application specific integrated circuit (ASIC) configured to perform operations assigned herein to controller 108 or, more generally, to system 100. In some embodiments, controller 108 includes or is a processor, such as a central processing unit (CPU). In some embodiments, controller 108 is a field programmable gate array (FPGA). In embodiments, the controller 108 includes executable code that, when executed by the controller 108, causes the controller 108 to perform one or more of the operations attributed herein to the controller 108 or, more generally, to the system 100. Includes memory to store . Controller 108 is not limited to the specific examples described herein.

컨트롤러(108)는 워크스페이스(101) 내의 센서(들)(102) 및 로봇(110)을 제어한다. 일부 실시예에서, 컨트롤러(108)는 워크스페이스(101) 내의 픽스쳐(들)(116)을 제어한다. 예를 들어, 컨트롤러(108)는 전술한 바와 같이 워크스페이스(101) 내에서 이동하고/하거나 전술한 바와 같이 2D 이미지, 오디오 데이터 및/또는 EM 데이터를 캡처하도록 센서(들)(102)를 제어할 수 있다. 예를 들어, 컨트롤러(108)는 웰딩 작업을 수행하고 아래에 설명되는 경로 계획 기술에 따라 워크스페이스(101) 내에서 이동하도록 본 명세서에 설명된 로봇(110)을 제어할 수 있다. 예를 들어, 컨트롤러(108)는 포지셔너(예를 들어, 플랫폼, 클램프 등)와 같은 픽스쳐(들)(116)를 조작하여 워크스페이스(101) 내의 하나 이상의 파트를 회전, 병진 이동 또는 이동시킬 수 있다. 컨트롤러(108)는 또한 시스템(100)의 다른 측면을 제어할 수도 있다. 예를 들어, 컨트롤러(108)는 UI(106) 상에 그래픽 인터페이스를 제공함으로써 사용자 인터페이스(UI)(106)와 추가로 상호작용할 수 있고, 예컨대 사용자에게 및/또는 사용자로부터 다양한 유형의 정보를 제공 및/또는 수신함으로써(예: 웰딩 후보인 식별된 심, 경로 계획 중 가능한 경로, 웰딩 파라미터 옵션 또는 선택 등), 이를 통해 사용자는 시스템(100)과 상호 작용하고 시스템(100)에 입력을 제공할 수 있고, 이를 통해 컨트롤러(108)는 사용자와 상호작용할 수 있다. UI(106)는 터치스크린 인터페이스, 음성 활성화 인터페이스, 키패드 인터페이스, 이들의 조합 등을 포함하는 임의의 유형의 인터페이스일 수 있다.The controller 108 controls the sensor(s) 102 and the robot 110 within the workspace 101. In some embodiments, controller 108 controls fixture(s) 116 within workspace 101. For example, controller 108 may move within workspace 101 as described above and/or control sensor(s) 102 to capture 2D images, audio data, and/or EM data as described above. can do. For example, the controller 108 may control the robot 110 described herein to perform welding operations and move within the workspace 101 according to path planning techniques described below. For example, the controller 108 may manipulate fixture(s) 116 such as positioners (e.g., platforms, clamps, etc.) to rotate, translate, or move one or more parts within the workspace 101. there is. Controller 108 may also control other aspects of system 100. For example, the controller 108 may further interact with the user interface (UI) 106 by providing a graphical interface on the UI 106, such as providing various types of information to and/or from the user. and/or by receiving (e.g., identified seams that are candidates for welding, possible routes during route planning, welding parameter options or selections, etc.), which allows the user to interact with the system 100 and provide input to the system 100. and through this the controller 108 can interact with the user. UI 106 may be any type of interface, including a touchscreen interface, voice activated interface, keypad interface, combinations thereof, etc.

또한, 컨트롤러(108)는 예를 들어 데이터베이스(112)에 데이터를 저장하고/하거나 데이터베이스(112)로부터 데이터를 검색함으로써 데이터베이스(112)와 상호작용할 수 있다. 데이터베이스(112)는 보다 일반적으로 모든 유형의 정보를 저장하도록 구성된 임의의 적합한 유형의 스토리지(109)에 저장될 수 있다. 일부 실시예에서, 데이터베이스(112)는 RAM(Random Access Memory), 메모리 버퍼, 하드 드라이브, EPROM(Erasable Programmable Read-Only Memory), 전기적으로 지울 수 있는 읽기 전용 메모리(EEPROM), ROM(읽기 전용 메모리), 플래시 메모리 등와 같은 스토리지(109)에 저장될 수 있다. 일부 실시예에서, 데이터베이스(112)는 클라우드 기반 플랫폼에 저장될 수 있다. 데이터베이스(112)는 웰딩 작업을 수행할 때 시스템(100)에 유용한 임의의 정보를 저장할 수 있다. 예를 들어, 데이터베이스(112)는 파트(114)의 CAD 모델을 저장할 수 있다. 다른 예로서, 데이터베이스(112)는 파트(114)의 CAD 모델의 주석이 달린 버전을 저장할 수 있다. 데이터베이스(112)는 또한 CAD 모델을 사용하여 생성된 파트(114)의 포인트 클라우드(본 명세서에서는 CAD 모델 포인트 클라우드라고도 함)를 저장할 수 있다. 유사하게, 파트(114)의 3D 리프레젠테이션 및/또는 파트(114)에 관해 제공된 사용자 입력(예를 들어, 웰딩할 파트(114)의 심, 웰딩 파라미터 등에 관한)에 기초하여 생성된 파트(114)에 대한 웰딩 명령이 제공될 수 있고, 이는 데이터베이스(112)에 저장될 수 있다. 예에서, 스토리지(109)는 실행될 때 컨트롤러(108)가 여기에서 컨트롤러(108) 또는 더 일반적으로 시스템(100)에 귀속되는 하나 이상의 동작을 수행하게 하는 실행 가능 코드(111)를 저장한다. 예에서, 실행 가능 코드(111)는 단일의 자체 포함된 프로그램이고, 다른 실시예에서 실행 가능 코드는 스토리지(109) 또는 다른 곳에 저장될 수 있는 다른 실행 가능 코드에 대한 하나 이상의 함수 호출을 갖는 프로그램이다. 일부 실시예에서, 실행 코드(111)의 실행에 기인하는 하나 이상의 기능은 하드웨어에 의해 구현될 수 있다. 예를 들어, 다중 프로세서는 실행 코드(111)의 하나 이상의 개별 작업을 수행하는 데 유용할 수 있다.Additionally, controller 108 may interact with database 112 , such as by storing data in and/or retrieving data from database 112 . Database 112 may be stored in any suitable type of storage 109 more generally configured to store any type of information. In some embodiments, database 112 may include random access memory (RAM), a memory buffer, a hard drive, erasable programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), or read-only memory (ROM). ), may be stored in storage 109 such as flash memory, etc. In some embodiments, database 112 may be stored on a cloud-based platform. Database 112 may store any information useful to system 100 when performing a welding operation. For example, database 112 may store a CAD model of part 114. As another example, database 112 may store an annotated version of a CAD model of part 114. Database 112 may also store a point cloud of part 114 created using a CAD model (also referred to herein as a CAD model point cloud). Similarly, part 114 is generated based on a 3D representation of part 114 and/or user input provided regarding part 114 (e.g., regarding the seam of part 114 to be welded, welding parameters, etc.). ) may be provided and stored in the database 112. In an example, storage 109 stores executable code 111 that, when executed, causes controller 108 to perform one or more operations attributed herein to controller 108 or, more generally, to system 100. In an example, executable code 111 is a single, self-contained program, and in other embodiments, executable code is a program that has one or more function calls to other executable code, which may be stored in storage 109 or elsewhere. am. In some embodiments, one or more functions resulting from execution of executable code 111 may be implemented by hardware. For example, multiple processors may be useful for performing one or more individual tasks of executable code 111.

도 2는 다양한 실시예에 따른 도시된 오토노머스 로봇식 웰딩 시스템(200)의 개략도이다. 시스템(200)은 도 1의 시스템(100)의 예이며, 유사한 참조번호는 유사한 구성요소를 지칭한다. 예를 들어, 시스템(200)은 워크스페이스(201)을 포함한다. 워크스페이스(201)은 선택적으로 이동 가능한 센서(202), 로봇(210)((이동 가능한 센서(202)에 추가로 그 위에 장착된 하나 이상의 센서(202)를 포함할 수 있음) 및 픽스쳐(216)를 포함한다. 로봇(210)은 로봇(210)이 임의의 적절한 자유도로 이동할 수 있게 하는 다중 관절 및 부재(예를 들어, 어깨, 암, 팔꿈치 등)를 포함한다. 로봇(210)은 파트, 예를 들어 픽스쳐(216)(예를 들어 클램프)에 의해 지지될 수 있는 파트에 대한 웰딩 작업을 수행하는 웰딩 헤드(210A)를 포함한다. 시스템(200)은 작업공간(201)에 연결된 UI(206)를 더 포함한다. 작동 시, 센서(202)는 워크스페이스(201)의 2D 이미지를 수집하고 2D 이미지를 컨트롤러(도 2에는 명시적으로 도시되지 않음)에 제공한다. 컨트롤러는 픽스쳐(216), 픽스쳐(216)에 의해 지지되는 부분, 및/또는 워크스페이스(201) 내의 다른 구조와 같은 워크스페이스(201)의 3D 리프레젠테이션(예컨대, 포인트 클라우드)을 생성한다. 컨트롤러는 본원에 설명된 바와 같이 심을 웰딩하도록 로봇(210)을 컨트롤하고, 워크스페이스(201) 내 구조와 로봇(210)이 충돌함이 없게 심을 웰딩하기 위한 경로를 계획하도록 심(예컨대, 픽스쳐(216)에 의해 지지되는 파트)를 식별하도록 3D 리프레젠테이션을 사용한다.2 is a schematic diagram of an illustrated autonomous robotic welding system 200 according to various embodiments. System 200 is an example of system 100 of Figure 1, with like reference numbers referring to like elements. For example, system 200 includes workspace 201 . The workspace 201 optionally includes a movable sensor 202, a robot 210 (which may include one or more sensors 202 mounted thereon in addition to the movable sensor 202), and a fixture 216. ). The robot 210 includes multiple joints and members (e.g., shoulders, arms, elbows, etc.) that allow the robot 210 to move in any suitable degree of freedom. The robot 210 has parts , for example, includes a welding head 210A that performs a welding operation on a part that can be supported by a fixture 216 (e.g. a clamp). The system 200 has a UI connected to the workspace 201. It further includes 206. In operation, the sensor 202 collects a 2D image of the workspace 201 and provides the 2D image to a controller (not explicitly shown in Figure 2). The controller controls the fixture ( 216), generate a 3D representation (e.g., a point cloud) of the workspace 201, such as portions supported by fixtures 216, and/or other structures within the workspace 201. The controller is described herein. Control the robot 210 to weld the seam as shown, and plan a path for welding the seam so that the robot 210 does not collide with the structure in the workspace 201, supported by a seam (e.g., fixture 216). Use 3D representation to identify parts that are

도 3은 다양한 실시예에 따른 오토노머스 로봇식 웰딩 시스템(300)의 개략도이다. 시스템(300)은 도 1의 시스템(100)과 도 2의 시스템(200)의 예이며, 동일한 번호는 유사한 구성요소를 지칭한다. 예를 들어, 시스템(300)은 워크스페이스(301)을 포함한다. 워크스페이스(301)은 선택적으로 이동 가능한 센서(302), 로봇(310)(하나 이상의 센서(302)가 장착될 수 있음) 및 픽스쳐(316)(예컨대, 플랫폼 또는 포지셔너)를 포함한다. 로봇(310)은 로봇(310)이 임의의 적절한 자유도로 이동할 수 있게 하는 다중 관절 및 부재(예를 들어, 어깨, 암, 팔꿈치 등)를 포함한다. 로봇(310)은 파트, 예를 들어 픽스쳐(316)에 의해 지지될 수 있는 파트에 웰딩 작업을 수행하는 웰딩 헤드(310A)를 포함한다. 시스템(300)은 작업공간(301)에 연결된 UI(306)를 더 포함한다. 작동 시, 센서(302)는 워크스페이스(301)의 2D 이미지를 수집하고 2D 이미지를 컨트롤러(도 3에는 명시적으로 도시되지 않음)에 제공한다. 컨트롤러는 픽스쳐(316), 픽스쳐(316)에 의해 지지되는 파트 및/또는 워크스페이스(301) 내의 다른 구조와 같은 워크스페이스(301)의 3D 리프레젠테이션(예컨대, 포인트 클라우드)을 생성한다. 컨트롤러는 3D 리프레젠테이션을 사용하여 심(예컨대, 픽스쳐(316)에 의해 지지되는 파트)를 식별하고, 로봇(310)이 워크스페이스(301) 내의 구조물과 충돌하지 않고 심을 웰딩하기 위한 경로를 계획하고, 로봇(310)을 제어하여 본원에 설명된 대로 심을 웰딩하는 것을 수행한다. 3 is a schematic diagram of an autonomous robotic welding system 300 according to various embodiments. System 300 is an example of system 100 of FIG. 1 and system 200 of FIG. 2, with like numbers referring to similar elements. For example, system 300 includes workspace 301. Workspace 301 optionally includes a movable sensor 302, a robot 310 (which may be equipped with one or more sensors 302), and a fixture 316 (e.g., a platform or positioner). Robot 310 includes multiple joints and members (eg, shoulders, arms, elbows, etc.) that allow robot 310 to move with any suitable degree of freedom. The robot 310 includes a welding head 310A that performs a welding operation on a part, for example, a part that can be supported by the fixture 316. System 300 further includes UI 306 connected to workspace 301. In operation, sensor 302 collects a 2D image of workspace 301 and provides the 2D image to a controller (not explicitly shown in Figure 3). The controller generates a 3D representation (e.g., a point cloud) of the workspace 301, such as the fixtures 316, the parts supported by the fixtures 316, and/or other structures within the workspace 301. The controller uses the 3D representation to identify a seam (e.g., a part supported by fixture 316) and plan a path for robot 310 to weld the seam without colliding with structures within workspace 301. , the robot 310 is controlled to perform welding the seam as described herein.

도 1을 다시 참조하면, 위에서 설명된 바와 같이, 컨트롤러(108)는 센서(102)로부터 2D 이미지(및 가능하면 오디오 데이터 또는 EM 데이터와 같은 다른 데이터)를 수신하고 2D 이미지에 도시된 구조의 3D 리프레젠테이션을 생성하도록 구성된다. 3D 리프레젠테이션은 포인트 클라우드라고 할 수 있다. 포인트 클라우드는 파트(114) 및/또는 픽스쳐(116)의 표면에 있는 점의 3D 공간 위치를 각각 나타내는 포인트 세트일 수 있다. 일부 실시예에서, 하나 이상의 2D 이미지(예를 들어, 파트(114)에 대해 특정 방향으로 센서(들)(102)에 의해 캡처된 이미지 데이터)는 컨트롤러(108)에 의해 중첩 및/또는 함께 스티칭되어 워크스페이스(101)의 3D 이미지 데이터를 재구성하고 생성할 수 있다. 3D 이미지 데이터는 포인트 클라우드의 적어도 일부 포인트에 대한 연관된 이미지 데이터와 함께 포인트 클라우드를 생성하기 위해 대조될 수 있다.Referring back to Figure 1, as described above, controller 108 receives a 2D image (and possibly other data, such as audio data or EM data) from sensor 102 and displays a 3D image of the structure depicted in the 2D image. It is configured to create a representation. A 3D representation can be called a point cloud. A point cloud may be a set of points each representing a 3D spatial location of a point on the surface of part 114 and/or fixture 116. In some embodiments, one or more 2D images (e.g., image data captured by sensor(s) 102 in a particular orientation relative to part 114) are superimposed and/or stitched together by controller 108. 3D image data of the workspace 101 can be reconstructed and generated. The 3D image data may be collated to create a point cloud with associated image data for at least some of the points in the point cloud.

실시예에서, 3D 이미지 데이터는 데이터로부터 생성된 포인트 클라우드가 6개의 자유도를 가질 수 있는 방식으로 컨트롤러(108)에 의해 대조될 수 있다. 예를 들어, 포인트 클라우드의 각 포인트는 3D 공간에서 극히 작은 위치를 나타낼 수 있다. 전술한 바와 같이, 센서(들)(102)는 다양한 각도에서 포인트의 다수의 2D 이미지를 캡처할 수 있다. 이들 다수의 2D 이미지는 각 포인트에 대한 평균 이미지 픽셀을 결정하기 위해 컨트롤러(108)에 의해 대조될 수 있다. 평균화된 이미지 픽셀을 포인트에 부착할 수 있다. 예를 들어, 센서(들)(102)가 적색, 녹색 및 청색 채널을 갖는 컬러 카메라인 경우, 6개의 자유도는 {x-위치, y-위치, z-위치, 적색 강도, 녹색 강도 및 청색 강도}가 될 수 있다. 예를 들어, 센서(들)(102)가 흑백 채널을 갖는 흑백 카메라라면, 4개의 자유도가 생성될 수 있다.In embodiments, 3D image data may be collated by controller 108 in such a way that a point cloud generated from the data may have six degrees of freedom. For example, each point in a point cloud may represent an infinitesimal location in 3D space. As described above, sensor(s) 102 may capture multiple 2D images of a point from various angles. These multiple 2D images can be collated by controller 108 to determine the average image pixel for each point. Averaged image pixels can be attached to points. For example, if sensor(s) 102 is a color camera with red, green, and blue channels, the six degrees of freedom are {x-position, y-position, z-position, red intensity, green intensity, and blue intensity. } can be. For example, if sensor(s) 102 is a black and white camera with a black and white channel, four degrees of freedom can be created.

도 4는 다양한 실시예에 따른 웰딩 가능한 심을 갖는 파트의 예시적인 포인트 크라우드(400)이다. 보다 구체적으로, 포인트 클라우드(400)는 심(406)를 따라 함께 웰딩될 파트(402)과 파트(404)을 나타낸다. 도 5는 다양한 실시예에 따른 웰딩 가능한 심을 갖는 파트의 예시적인 포인트 크라우드(500)이다. 보다 구체적으로, 포인트 클라우드(500)는 심(506)를 따라 함께 웰딩될 파트(502)과 파트(504)을 나타낸다. 컨트롤러(108)(도 1)는 전술한 바와 같이 센서(102)에 의해 캡처된 2D 이미지에 기초하여 3D 포인트 클라우드(400, 500)를 생성하도록 구성된다. 그런 다음 컨트롤러(108)는 웰딩 경로를 계획하고, 로봇(110)을 사용하여 심(406, 506)를 따라 심(406, 506)를 따라 웰딩을 배치하기 위해(도 1) 심(406, 506)와 같은 심을 식별하고 위치를 지정하기 위해 포인트 클라우드(400, 500)(또는 일부 실시예에서는 포인트 클라우드(400, 500)를 생성하는 데 유용한 이미지 데이터)를 사용할 수 있다. 심 식별 및 경로 계획을 포함하는 이러한 작업을 수행하기 위해 컨트롤러(108)가 실행 코드(111)(도 1)를 실행하는 방식이 이제 상세하게 설명된다.4 is an example point crowd 400 of a part with weldable seams according to various embodiments. More specifically, point cloud 400 represents parts 402 and 404 to be welded together along seams 406. 5 is an example point crowd 500 of a part with weldable seams according to various embodiments. More specifically, point cloud 500 represents parts 502 and 504 to be welded together along seams 506 . Controller 108 (FIG. 1) is configured to generate 3D point clouds 400, 500 based on 2D images captured by sensor 102, as described above. The controller 108 then plans the welding path and uses the robot 110 to place the weld along the seams 406, 506 (FIG. 1). ) (or, in some embodiments, image data useful for generating point clouds 400, 500) may be used to identify and locate seams such as ). How controller 108 executes executable code 111 (Figure 1) to perform these tasks, including seam identification and path planning, is now described in detail.

실행 가능한 코드(111)를 실행할 때 컨트롤러(108)는 신경망을 사용하여 픽셀 단위(예를 들어, 센서(102)에 의해 캡처된 이미지를 사용하거나 센서(102)에 의해 캡처된 이미지를 기반으로 함) 및/또는 포인트 단위(예를 들어 하나 또는 더 많은 포인트 클라우드) 분류를 통해 워크스페이스(101) 내의 구조를 식별하고 분류한다. 예를 들어, 컨트롤러(108)는 워크스페이스(101) 내의 각각의 이미지화 된 구조를 파트(114)으로, 파트(114)의 심으로서 또는 다수의 파트(114) 사이의 인터페이스에서 식별하기 위해 픽셀별 및/또는 점별 분류를 수행할 수 있다(참조: 여기서는 후보 심), 픽스쳐(116), 로봇(110) 등으로 사용된다. 예를 들어, 컨트롤러(108)는 적절한 트레이닝 데이터를 사용하여 트레이닝된 신경망(예를 들어, U-net 모델)을 기반으로 픽셀 및/또는 포인트를 식별하고 분류할 수 있다. 신경망은 이미지 데이터, 포인트 클라우드 데이터, 공간 정보 데이터 또는 이들의 조합에 대해 훈련될 수 있다. 포인트 클라우드 및/또는 이미지 데이터는 워크스페이스(101) 내의 다양한 유리한 포인트에서 캡처된 정보를 포함하기 때문에, 신경망은 여러 각도 및/또는 관점으로부터 파트(들)(114)의 픽스쳐(116) 또는 후보 심을 분류하도록 작동 가능하다. 일부 실시예에서, 신경망은 일련의 점에서 직접 작동하도록 훈련될 수 있고, 동적 그래프 컨벌루션 신경망(k), 신경망을 구현하여 포인트 클라우드 상의 정리되지 않은 포인트를 분석할 수 있다. 일부 실시예에서, 제1 신경망은 포인트별 분류를 수행하기 위해 포인트 클라우드 데이터에 대해 훈련될 수 있고, 제2 신경망은 픽셀별 분류를 수행하기 위해 이미지 데이터에 대해 훈련될 수 있다. 제1 신경망과 제2 신경망은 개별적으로 후보 심을 식별하고 후보 심을 위치화할 수 있다. 제1 신경망과 제2 신경망의 출력은 파트(114)의 하나 이상의 후보 심의 위치와 방향을 결정하기 위한 최종 출력으로 결합될 수 있다.When executing executable code 111 , the controller 108 uses a neural network to determine pixel-by-pixel values (e.g., using images captured by sensor 102 or based on images captured by sensor 102 ). ) and/or point-by-point (e.g., one or more point cloud) classification to identify and classify structures within the workspace 101. For example, the controller 108 may be used on a pixel-by-pixel basis to identify each imaged structure within the workspace 101 as a part 114, as a seam of a part 114, or at an interface between multiple parts 114. and/or can perform point-by-point classification (reference: here candidate shim), and are used as fixtures 116, robots 110, etc. For example, the controller 108 may identify and classify pixels and/or points based on a neural network (e.g., a U-net model) trained using appropriate training data. Neural networks can be trained on image data, point cloud data, geospatial data, or a combination of these. Because the point cloud and/or image data includes information captured from various vantage points within the workspace 101, the neural network can simulate fixtures 116 or candidate images of part(s) 114 from multiple angles and/or perspectives. It can be operated to classify. In some embodiments, a neural network can be trained to operate directly on a set of points, and a dynamic graph convolutional neural network (k), a neural network, can be implemented to analyze disorganized points on a point cloud. In some embodiments, a first neural network may be trained on point cloud data to perform point-by-point classification and a second neural network may be trained on image data to perform pixel-by-pixel classification. The first neural network and the second neural network may individually identify candidate Sims and localize candidate Sims. The outputs of the first neural network and the second neural network may be combined into a final output for determining the location and direction of one or more candidate deltas of part 114.

일부 실시예에서, 픽셀별 분류가 수행되면 결과는 3D 포인트 클라우드 데이터 및/또는 포인트 클라우드 데이터의 메시 버전으로 투영될 수 있으며, 그에 따라 워크스페이스(101)에서 픽스쳐(116)의 위치에 대한 정보를 제공할 수 있다. 입력 데이터가 영상 데이터(예를 들어, 컬러 영상)인 경우, 픽셀 단위의 분할을 위해 컬러 데이터와 함께 깊이 정보 등의 공간 정보도 포함될 수 있다. 일부 실시예에서, 아래에 추가로 설명되는 바와 같이 후보 심을 식별하고 파트(114)에 대해 후보 심을 위치화하기 위해 픽셀별 분류가 수행될 수 있다.In some embodiments, once pixel-by-pixel classification is performed, the results may be projected onto 3D point cloud data and/or a mesh version of the point cloud data, thereby providing information about the location of fixture 116 in workspace 101. can be provided. When the input data is image data (for example, a color image), spatial information such as depth information may be included along with the color data for pixel-level segmentation. In some embodiments, pixel-by-pixel classification may be performed to identify candidate seams and locate candidate seams relative to part 114, as described further below.

전술한 바와 같이, 컨트롤러(108)는 픽셀 및/또는 포인트를 픽스쳐(116), 파트(114), 파트(114)의 후보 심 등과 같은 워크스페이스(101) 내의 특정 구조로 식별하고 분류할 수 있다. 픽스쳐(116)과 같은 비파트 및 비후보 심 구조로 분류된 이미지 및/또는 포인트 클라우드 데이터의 부분은 데이터에서 분할(예를 들어, 수정 또는 제거)될 수 있으며, 그에 따라 파트(114) 및/또는 파트(114)의 후보 심에 해당하도록 식별되고 분류된 데이터를 격리할 수 있다. 일부 실시예에서, 후보 심을 식별하고 위에서 설명한 대로(또는 선택적으로 이러한 분할 이전에) 비파트(114) 및 비후보 심 데이터를 분할한 후, 신경망은 각 후보 심을 분석하여 심의 종류를 결정하도록 구성될 수 있다. 예를 들어, 신경망은 후보 심이 맞대기 조인트, 코너 조인트, 엣지 조인트, 랩 조인트, 티 조인트 등인지 판단하도록 구성될 수 있다. 모델(예를 들어, U-net 모델)은 워크스페이스(101) 내의 여러 유리한 포인트에서 캡처된 데이터를 기반으로 심의 유형을 분류할 수 있다.As described above, controller 108 may identify and classify pixels and/or points into specific structures within workspace 101, such as fixtures 116, parts 114, candidate seams for part 114, etc. . Portions of the image and/or point cloud data classified as non-part and non-candidate seam structures, such as fixtures 116, may be segmented (e.g., modified or removed) from the data, thereby forming parts 114 and/or Alternatively, data identified and classified to correspond to the candidate Sim of part 114 may be isolated. In some embodiments, after identifying the candidate Sims and partitioning the non-part 114 and non-candidate Sim data as described above (or optionally prior to such partitioning), the neural network may be configured to analyze each candidate Sim to determine the Sim type. You can. For example, a neural network can be configured to determine whether a candidate seam is a butt joint, corner joint, edge joint, lap joint, tee joint, etc. A model (e.g., a U-net model) may classify deliberation types based on data captured from multiple vantage points within workspace 101.

이미지 데이터를 사용하여 픽셀별 분류가 수행되는 경우, 컨트롤러(108)는 관심 픽셀(예를 들어, 파트(114)을 나타내는 픽셀 및 파트(114)의 후보 심)을 3D 공간에 투영하여 파트(114)의 후보 심 및 파트(114)을 나타내는 3D 포인트 셋을 생성할 수 있다. 또는, 포인트 클라우드 데이터를 이용하여 포인트별 분류를 수행한다면, 관심 포인트는 포인트 클라우드 내의 3차원 공간에 이미 존재할 수도 있다. 어느 경우든, 컨트롤러(108)에 있어서, 3D 포인트는 순서가 지정되지 않은 포인트 셋이고 3D 포인트 중 적어도 일부는 함께 뭉쳐질 수 있다. 이러한 노이즈를 제거하고 후보 심을 나타내는 연속적이고 연속적인 포인트 서브셋을 생성하려면 MBMS(Manifold Blurring and Mean Shift) 기술 또는 유사한 기술이 적용될 수 있다. 이러한 기술은 점을 압축하고 노이즈를 제거할 수 있다. 이어서, 컨트롤러(108)는 후보 심을 개별 후보 심으로 분해하기 위해 클러스터링 방법을 적용할 수 있다. 달리 말하면, 여러 심을 나타내는 점의 여러 서브셋을 갖는 대신 클러스터링을 사용하면 점의 각 서브셋을 개별 심으로 나눌 수 있다. 클러스터링 후에, 컨트롤러(108)는 포인트의 각각의 개별 서브셋에 스플라인을 맞출 수 있다. 따라서 점의 각 개별 서브셋은 개별 후보 심이 될 수 있다.When pixel-by-pixel classification is performed using image data, controller 108 projects pixels of interest (e.g., pixels representing part 114 and candidate seams for part 114) into 3D space to classify part 114. ) can generate a 3D point set representing the candidate seam and part 114. Alternatively, if classification by point is performed using point cloud data, the point of interest may already exist in the three-dimensional space within the point cloud. In either case, for the controller 108, the 3D points are an unordered set of points and at least some of the 3D points may be lumped together. To remove this noise and generate a continuous and continuous subset of points representing candidate seams, the Manifold Blurring and Mean Shift (MBMS) technique or similar techniques can be applied. These techniques can compress points and remove noise. Controller 108 may then apply a clustering method to decompose the candidate Sims into individual candidate Sims. In other words, instead of having multiple subsets of points representing multiple seams, clustering allows us to divide each subset of points into individual seams. After clustering, controller 108 can fit a spline to each individual subset of points. Therefore, each individual subset of points can be an individual candidate seam.

제한 없이 요약하면, 위에 설명된 기술을 사용하여 컨트롤러(108)는 워크스페이스(101) 내의 다양한 위치와 유리한 포인트에서 센서(102)에 의해 캡처된 이미지 데이터를 수신한다. 컨트롤러(108)는 신경망을 사용하여 픽셀별 및/또는 포인트별 분류 기술을 수행하여 각 픽셀 및/또는 포인트를 파트(114), 파트(114)의 후보 심 또는 여러 파트(114), 픽스쳐(116) 등 사이의 인터페이스로 분류하고 식별한다. 비파트(114) 구조 및 비후보 심 구조로 식별된 구조는 분할되고, 컨트롤러(108)는 (예를 들어, 잡음을 완화하기 위해) 나머지 포인트에 대해 추가 처리를 수행할 수 있다. 이들 동작을 수행함으로써, 컨트롤러(108)는 파트(114)에 해당 심의 위치 및 방향을 나타내는 후보 심 셋을 생성할 수 있다. 이제 설명되는 바와 같이, 컨트롤러(108)는 후보 심이 실제로 심인지 여부를 결정할 수 있고 선택적으로 파트 및 심의 CAD 모델과 같은 선험적 정보를 사용하여 추가 처리를 수행할 수 있다. 결과 데이터는 아래에 설명된 바와 같이 식별된 심을 따라 웰딩을 배치하기 위한 경로를 계획하기 위해 컨트롤러(108)에 의해 사용하기에 적합하다.To summarize and not by way of limitation, using the techniques described above, controller 108 receives image data captured by sensor 102 at various locations and vantage points within workspace 101. The controller 108 uses a neural network to perform pixel-by-pixel and/or point-by-point classification techniques to classify each pixel and/or point as a part 114, a candidate seam for part 114, or multiple parts 114, fixtures 116. ), etc. are classified and identified as interfaces between them. Structures identified as non-part 114 structures and non-candidate seam structures are split, and the controller 108 may perform further processing on the remaining points (e.g., to mitigate noise). By performing these operations, the controller 108 can generate a candidate shim set indicating the location and direction of the shim in the part 114. As will now be described, the controller 108 may determine whether the candidate seam is in fact a seam and may optionally perform further processing using a priori information such as the CAD model of the part and the seam. The resulting data is suitable for use by the controller 108 to plan a path for placing welds along identified seams, as described below.

어떤 경우에는 식별된 후보 심이 심이 아닐 수도 있다(즉, 식별된 후보 심이 위양성일 수 있음). 식별된 후보 심이 실제로 심인지 여부를 결정하기 위해, 컨트롤러(108)는 워크스페이스(101) 내부의 다양한 유리한 포인트에서 센서(102)에 의해 캡처된 이미지를 사용하여 신뢰도 값을 결정한다. 신뢰도는 해당 시점에서 결정된 후보 심이 실제 심일 가능성을 나타낸다. 그런 다음 컨트롤러(108)는 서로 다른 관점에 대한 신뢰도 값을 비교하고 실제 심이 아닐 가능성이 있는 후보 심을 제거할 수 있다. 예를 들어, 컨트롤러(108)는 특정 후보 심과 연관된 후보 값의 평균, 중앙값, 최대값 또는 임의의 다른 적절한 요약 통계를 결정할 수 있다. 일반적으로, 실제 심에 대응하는 후보 심은 해당 후보 심을 캡처하는 데 사용되는 다양한 유리한 포인트에 걸쳐 지속적으로 높은(예를 들어 임계값 초과) 신뢰도 값을 갖게 된다. 후보 심에 대한 신뢰도의 요약 통계가 임계값 이상인 경우, 제어부(108)는 후보 심을 실제 심으로 지정할 수 있다. 반대로, 후보 심에 대한 신뢰도 값의 요약 통계가 임계값 미만인 경우 후보 심은 웰딩에 적합하지 않은 위양성으로 지정될 수 있다.In some cases, the identified candidate Sim may not be a Sim (i.e., the identified candidate Sim may be a false positive). To determine whether an identified candidate Sim is in fact a Sim, controller 108 uses images captured by sensor 102 at various vantage points within workspace 101 to determine confidence values. Reliability indicates the possibility that the candidate Sim determined at that point is the actual Sim. The controller 108 may then compare the confidence values for the different perspectives and remove candidate Sims that may not be actual Sims. For example, controller 108 may determine the mean, median, maximum, or any other suitable summary statistic of the candidate values associated with a particular candidate Sim. Typically, a candidate Sim that corresponds to a real Sim will have consistently high (e.g., above a threshold) confidence values across the various vantage points used to capture that candidate Sim. If the summary statistics of reliability for the candidate Sim are greater than or equal to the threshold, the control unit 108 may designate the candidate Sim as the actual Sim. Conversely, if the summary statistics of the reliability value for the candidate seam are below the threshold, the candidate seam may be designated as a false positive not suitable for welding.

위에서 언급한 바와 같이, 실제로 심인 후보 심을 식별한 후, 컨트롤러(108)는 CAD 모델(또는 CAD 모델의 포인트 클라우드 버전)과 같은 선험적 정보를 사용하여 여기에서 등록이라고 하는 추가 처리를 수행할 수 있다. 보다 구체적으로, 어떤 경우에는 파트의 심 치수와 CAD 모델의 심 치수 사이에 차이가 있을 수 있으며, CAD 모델은 그러한 차이를 설명하기 위해 변형(예컨대, 업데이트)되어야 한다. 이후에 여기에 설명된 대로 경로 계획을 수행하는 데 사용된다. 따라서, 컨트롤러(108)는 제1 심(예컨대 실제 심으로 검증된 부품 114의 후보 심)과 제2 심(예컨대 제1 심에 해당하는 CAD 모델에 (예컨대 작업자/사용자에 의해) 애노테이션이 달린 심)을 비교하여 제1 심과 제2 심 사이의 차이를 결정한다. 위에서 설명한 대로 CAD 모델의 심에 애노테이션을 달 수 있다. CAD 모델 및/또는 컨트롤러(108)가 후보 심의 위치를 정확하게 예측하는 경우, 제1 심과 제2 심은 거의 동일한 위치에 있을 수 있다. 대안적으로, CAD 모델 및/또는 컨트롤러(108)가 부분적으로 정확한 경우, 제1 심과 제2 심이 부분적으로 겹칠 수 있다. 컨트롤러(108)는 제1 심과 제2 심의 비교를 수행할 수 있다. 제1 심과 제2 심의 이러한 비교는 두 심의 모양과 공간에서의 상대 위치에 부분적으로 기초할 수 있다. 제1 심과 제2 심이 상대적으로 모양이 유사하고 서로 인접해 있으면 제2 심이 제1 심과 동일한 것으로 식별될 수 있다. 이러한 방식으로, 컨트롤러(108)는 CAD 모델에서 정확하게 표현되지 않는 파트 표면의 지형을 설명할 수 있다. 이러한 방식으로, 컨트롤러(108)는 후보 심을 식별할 수 있고 파트의 CAD 모델을 사용하여 파트에 대해 후보 심을 하위 선택하거나 개선하거나 업데이트할 수 있다. 각 후보 심은 파트를 기준으로 후보 심의 위치와 방향을 나타내는 업데이트된 포인트 셋일 수 있다.As mentioned above, after identifying a candidate Sim that is actually a Sim, the controller 108 may use a priori information, such as a CAD model (or a point cloud version of the CAD model), to perform further processing, referred to herein as registration. More specifically, in some cases there may be differences between the seam dimensions of the part and the seam dimensions of the CAD model, and the CAD model must be transformed (e.g., updated) to account for those differences. It is later used to perform route planning as described here. Accordingly, the controller 108 configures a first Sim (e.g., a candidate Sim for part 114 that has been verified as an actual Sim) and a second Sim (e.g., a Sim annotated (e.g., by an operator/user) to a CAD model corresponding to the first Sim). ) is compared to determine the difference between the first and second trials. As described above, you can annotate the seam of a CAD model. If the CAD model and/or controller 108 accurately predicts the position of the candidate shim, the first shim and the second shim may be at approximately the same position. Alternatively, if the CAD model and/or controller 108 is partially accurate, the first shim and the second shim may partially overlap. The controller 108 may perform a comparison between the first and second trials. This comparison of the first and second shims may be based in part on the shapes of the two shims and their relative positions in space. If the first core and the second core have relatively similar shapes and are adjacent to each other, the second core can be identified as being identical to the first core. In this way, controller 108 can account for topography of the part surface that is not accurately represented in the CAD model. In this way, the controller 108 can identify the candidate seams and use the CAD model of the part to sub-select, improve, or update the candidate seams for the part. Each candidate Sim may be an updated set of points indicating the position and direction of the candidate Sim relative to the part.

도 6은 다양한 실시예에 따른 등록 프로세스 플로(600)을 도시하는 블록도이다. 등록 프로세스 흐름(600)의 일부 또는 모든 단계는 컨트롤러(108)(도 1)에 의해 수행된다. 컨트롤러(108)는 먼저 CAD 모델(604)의 포인트 클라우드와 센서(102)에 의해 캡처된 이미지를 사용하여 형성된 스캔 포인트 클라우드(606)를 사용하여 대략적인 등록(602)을 수행할 수 있다. CAD 모델 포인트 클라우드(604) 및 스캔 포인트 클라우드(606)는 그들의 포인트가 균일하거나 거의 균일한 분산을 갖고 둘 다 동일하거나 대략 동일한 포인트 밀도를 갖도록 샘플링될 수 있다. 예에서, 컨트롤러(108)는 선택되지 않은 나머지 포인트를 유지하고 폐기하기 위해 클라우드에서 포인트를 무작위로 균일하게 선택함으로써 포인트 클라우드(604, 606)를 다운샘플링한다. 예를 들어, 일부 실시예에서는 PDS(Poisson Disk Sampling) 다운 샘플링 알고리즘이 구현될 수 있다. 컨트롤러(108)는 포인트 클라우드(604, 606)의 경계, 샘플 사이의 최소 거리, 및 샘플이 거부되기 전에 선택할 샘플의 한계를 PDS 알고리즘에 대한 입력으로서 제공할 수 있다. 일부 실시예에서, 델타 네트워크는 대략적인 등록(602) 동안 한 모델을 다른 모델로 변형하는 데 유용할 수 있다. 델타 네트워크는 소스 모델과 타겟 모델을 가져와 이를 잠재 벡터로 인코딩하는 Siamese 네트워크일 수 있다. 컨트롤러(108)는 잠재 벡터를 사용하여 하나의 모델을 다른 모델로 변형하거나 업데이트하는 점별 변형을 예측할 수 있다. 델타 네트워크에는 학습 데이터 셋이 필요하지 않을 수 있다. CAD 모델 및 스캔 포인트 클라우드(604, 606)가 주어지면, 델타 네트워크의 맥락에서 컨트롤러(108)는 둘 사이의 유사성 또는 유사성 정도를 학습하는 데 하나 이상의 에포크를 소비한다. 이 에포크 동안 Delta 네트워크는 이후 등록에 유용한 의미 있는 기능을 학습한다. 델타 네트워크는 변형을 학습하기 위해 건너뛰기 연결을 사용할 수 있지만 일부 실시예에서는 건너뛰기 연결을 사용하지 않을 수도 있다. 경우에 따라 CAD 모델에는 캡처된 이미지(예컨대, 스캔)를 사용하여 생성된 3D 포인트 클라우드에 존재하지 않는 표면이 포함된다. 이러한 경우, 델타 네트워크는 CAD 모델 포인트 클라우드(604)의 누락된 표면에 해당하는 모든 포인트를 스캔 포인트 클라우드(606)의 일부 포인트로 이동한다(그리고 스캔 포인트 클라우드(606)를 업데이트한다). 따라서, 등록 동안, 컨트롤러(108)(예를 들어, 델타 네트워크)는 학습된 특징을 사용하고 원본 CAD 모델을 변환(또는 업데이트)할 수 있거나, 학습된 특징을 사용하고 변형된 CAD 모델을 변환할 수 있다. 예에서, 델타 네트워크는 DGCNN(Dynamic Graph Convolutional Neural Network)과 같은 인코더 네트워크를 포함할 수 있다. 포인트 클라우드가 특징으로 인코딩된 후 CAD와 스캔 임베딩으로 구성된 연결된 벡터가 형성될 수 있다. 풀링 연산(예를 들어, 맥스풀링)을 구현한 후, 결과 벡터에 디코더가 적용될 수 있다. 일부 실시예에서, 디코더는 특정 필터(예를 들어, 256, 256, 512, 1024, Nx3 필터)를 갖는 5개의 컨벌루션 계층을 포함할 수 있다. 결과 출력은 CAD 모델 및 스캔 임베딩과 연결되고 최대 풀링된 후 디코더에 한 번 더 제공될 수 있다. 최종 결과에는 포인트별 변환이 포함될 수 있다.Figure 6 is a block diagram illustrating a registration process flow 600 according to various embodiments. Some or all steps of registration process flow 600 are performed by controller 108 (Figure 1). Controller 108 may first perform coarse registration 602 using a point cloud of CAD model 604 and a scanned point cloud 606 formed using images captured by sensor 102 . The CAD model point cloud 604 and the scan point cloud 606 may be sampled so that their points have a uniform or nearly uniform distribution and both have the same or approximately the same point density. In the example, controller 108 downsamples point clouds 604, 606 by randomly and uniformly selecting points in the cloud to retain and discard remaining unselected points. For example, in some embodiments, a Poisson Disk Sampling (PDS) down-sampling algorithm may be implemented. The controller 108 may provide the boundaries of the point clouds 604, 606, the minimum distance between samples, and the limit of samples to select before a sample is rejected as inputs to the PDS algorithm. In some embodiments, a delta network may be useful for transforming one model into another during coarse registration 602. A delta network can be a Siamese network that takes a source model and a target model and encodes them into latent vectors. Controller 108 can use latent vectors to predict point-by-point transformations that transform or update one model to another. Delta networks may not require a training data set. Given a CAD model and a scanned point cloud 604, 606, the controller 108 in the context of a delta network spends one or more epochs learning the similarity or degree of similarity between the two. During this epoch, the Delta network learns meaningful features that are useful for subsequent registrations. Delta networks may use skip connections to learn transformations, but some embodiments may not use skip connections. In some cases, CAD models include surfaces that do not exist in the 3D point cloud created using captured images (e.g., scans). In this case, the delta network moves all points corresponding to the missing surfaces in the CAD model point cloud 604 to some points in the scan point cloud 606 (and updates the scan point cloud 606). Accordingly, during registration, the controller 108 (e.g., a delta network) may use the learned features and transform (or update) the original CAD model, or use the learned features and transform the transformed CAD model. You can. In an example, the delta network may include an encoder network such as a Dynamic Graph Convolutional Neural Network (DGCNN). After the point cloud is encoded with features, a concatenated vector consisting of CAD and scan embeddings can be formed. After implementing the pooling operation (e.g., maxpooling), a decoder can be applied to the resulting vector. In some embodiments, the decoder may include five convolutional layers with specific filters (e.g., 256, 256, 512, 1024, Nx3 filters). The resulting output can be concatenated with the CAD model and scan embeddings, max-pulled, and then provided once more to the decoder. The final result may include point-by-point transformations.

관련 없는 데이터 및 데이터의 노이즈(예를 들어, 대략적 등록(602)의 출력)은 파트(114)의 등록에 영향을 미칠 수 있다. 적어도 이러한 이유로 관련 없는 데이터와 노이즈를 최대한 제거하는 것이 바람직하다. 바운딩 박스(608)는 등록이 수행되는 영역을 제한하기 위해 이러한 관련 없는 데이터 및 노이즈(예를 들어, 픽스쳐(116))를 제거하는 데 유용한다. 다르게 말하면 바운딩 박스 내부의 데이터는 유지되지만 바운딩 박스 외부의 모든 데이터(3D 또는 기타)는 삭제된다. 전술한 바운딩 박스는 CAD 모델 자체를 (예를 들어 부분적으로 또는 완전히) 둘러싸거나 캡슐화할 수 있는 임의의 형상일 수 있다. 예를 들어, 바운딩 박스는 CAD 모델의 확장되거나 확대된 버전일 수 있다. 바운딩 박스 외부의 데이터는 최종 등록에서 제거되거나 여전히 포함될 수 있지만 영향을 완화하기 위해 가중치가 부여될 수 있다.Irrelevant data and noise in the data (e.g., the output of coarse registration 602) may affect the registration of part 114. At least for this reason, it is desirable to remove as much irrelevant data and noise as possible. Bounding box 608 is useful for removing such extraneous data and noise (e.g., fixture 116) to limit the area over which registration is performed. In other words, data inside the bounding box is maintained, but all data (3D or otherwise) outside the bounding box is deleted. The bounding box described above may be of any shape that can enclose or encapsulate (eg partially or completely) the CAD model itself. For example, the bounding box may be an expanded or enlarged version of the CAD model. Data outside the bounding box may be removed from the final registration or may still be included but may be weighted to mitigate the impact.

여전히 도 6을 참조하면, 정제된 등록(610) 동안, 컨트롤러(108)는 바운딩 박스(608)의 출력을 오토인코더로서 훈련된 신경망의 컨벌루션 계층 셋을 통해 패치로 전달한다. 보다 구체적으로, 데이터는 오토인코더의 인코더 부분을 통과할 수 있고, 오토인코더의 디코더 부분은 사용되지 않을 수 있다. 입력 데이터는 예를 들어 (128, 3) 모양의 패치 포인트의 XYZ 위치일 수 있다. 출력은 예를 들어 길이 1024의 벡터일 수 있으며 이 벡터는 포인트별 특징에 유용하다.Still referring to Figure 6, during refined registration 610, controller 108 passes the output of bounding box 608 to the patch through a set of convolutional layers of a neural network trained as an autoencoder. More specifically, data may pass through the encoder portion of the autoencoder, and the decoder portion of the autoencoder may be unused. The input data may be, for example, the XYZ location of a patch point in the shape of (128, 3). The output could be a vector of length 1024, for example, which is useful for point-wise features.

CAD 포인트 클라우드와 스캔 포인트 클라우드 모델 간의 엄격한 변환을 가장 잘 지원하는 해당 포인트 셋은 등록 중에 결정되어야 한다. 해당 후보는 각 요소가 두 포인트 간의 일치 확률 또는 신뢰도를 저장하는 행렬로 (예를 들어 데이터베이스(112)에) 저장될 수 있다.The corresponding point set that best supports rigorous conversion between the CAD point cloud and the scanned point cloud model must be determined during registration. The candidate may be stored (e.g., in the database 112) as a matrix in which each element stores the probability or reliability of a match between two points.

이 행렬에서 대응점을 찾는 데는 하드 대응, 소프트 대응, 제품 매니폴드 필터, 그래프 파벌, 공분산 등과 같은 다양한 방법이 유용한다. 정제된 등록(610)이 완료된 후, 등록 프로세스가 완료된다(612).Various methods are useful for finding corresponding points in this matrix, such as hard correspondence, soft correspondence, product manifold filter, graph faction, covariance, etc. After the refined registration (610) is completed, the registration process is completed (612).

전술한 바와 같이, 일부 실시예에서 파트(114)의 심의 실제 위치는 센서 이미징(예를 들어, 스캔 포인트 클라우드를 사용하여)을 사용하여 컨트롤러(108)에 의해 결정된 심 위치 및/또는 CAD 모델에 의해 결정된 심 위치와 다를 수 있다(예컨대, CAD 모델 포인트 클라우드 사용). 이러한 경우, 스캐닝 절차(본 명세서에서 사전 스캔이라고도 함)는 파트(114)의 실제 심 위치와 더 가깝거나 정확하게 일치하도록 결정된 심 위치를 수정하는 데 유용한다. 스캐닝 절차에서, 로봇(110)에 위치하는 센서(102)(여기서는 온보드 센서라고 함)가 심의 스캔을 수행한다. 일부 경우에, 이 스캔은 CAD 모델, 스캔 또는 이들의 조합을 사용하여 컨트롤러(108)에 의해 생성된 초기 모션 및/또는 경로 계획을 사용하여 수행될 수 있다. 예를 들어, 센서(102)는 워크스페이스(101)의 일부 또는 모든 영역을 스캔할 수 있다. 이러한 초기 모션 및/또는 경로 계획을 수행하는 동안, 센서(102)는 관찰 이미지 및/또는 데이터를 캡처할 수 있다. 관찰 이미지 및/또는 데이터는 심 포인트 클라우드 데이터를 생성하기 위해 컨트롤러(108)에 의해 처리될 수 있다. 컨트롤러(108)는 심 위치를 수정하기 위해 포인트 클라우드(들)(604 및/또는 606)를 처리할 때 심 포인트 클라우드 데이터를 사용할 수 있다. 컨트롤러(108)는 또한 경로 수정 및 모션 계획에 심 포인트 클라우드 데이터를 사용할 수도 있다.As previously discussed, in some embodiments the actual position of the shims of part 114 may be determined by the seam position by the controller 108 using sensor imaging (e.g., using a scan point cloud) and/or relative to the CAD model. may differ from the seam position determined by the seam position (e.g., using a CAD model point cloud). In such cases, a scanning procedure (also referred to herein as a pre-scan) is useful to correct the determined seam position to closer or exactly match the actual seam position of the part 114. In the scanning procedure, a sensor 102 located on the robot 110 (herein referred to as an onboard sensor) performs a deliberative scan. In some cases, this scan may be performed using an initial motion and/or path plan generated by the controller 108 using a CAD model, scan, or a combination thereof. For example, sensor 102 may scan some or all areas of workspace 101 . While performing this initial motion and/or path planning, sensor 102 may capture observation images and/or data. Observation images and/or data may be processed by controller 108 to generate seam point cloud data. Controller 108 may use seam point cloud data when processing point cloud(s) 604 and/or 606 to modify seam positions. Controller 108 may also use seam point cloud data for path correction and motion planning.

일부 실시예에서, 위에 설명된 등록 기술은 온보드 센서(102)에 더해 센서(102)를 사용하여 결정된 심을 온보드 센서(102)에 의해 식별된 것과 비교하고 일치시키는 데 유용할 수 있다. 이러한 방식으로 심을 일치시킴으로써 로봇(110)(더 구체적으로 로봇(110)의 머리)은 원하는 대로 실제 심에 대해 위치가 지정된다.In some embodiments, the registration techniques described above may be useful in addition to onboard sensor 102 to compare and match a Sim determined using sensor 102 to that identified by onboard sensor 102. By aligning the Sims in this way, the robot 110 (more specifically the head of the robot 110) is positioned relative to the actual Sim as desired.

일부 실시예에서, 로봇(110)의 사전 스캔 궤적은 심을 따라 웰딩하기 위해 계획된 것과 동일하다. 이러한 일부 실시예에서, 사전 스캔 동안 로봇(110)에 대해 취해진 모션은 확률을 제한하거나 충돌의 인스턴스를 줄이기 위해, 온보드 센서(102)로 심 또는 키 기하학적 구조를 더 잘 시각화하거나 문제의 심 주위의 기하학(geometry)를 스캔하기 위해 별도로 생성될 수 있다.In some embodiments, the pre-scan trajectory of robot 110 is identical to that planned for welding along the seam. In some such embodiments, the motion taken relative to the robot 110 during the pre-scan may be used to better visualize the seam or key geometry with the onboard sensors 102, to limit the probability or reduce instances of collisions, or to better visualize the seam or key geometry around the seam in question. Can be created separately to scan geometry.

일부 실시예에서, 사전 스캔 기술은 특정 심 또는 심들보다 더 많은 스캐닝을 포함할 수 있으며, 오히려 파트(들)(114)의 다른 기하학적 구조의 스캐닝도 포함할 수 있다. 스캔 데이터는 심을 찾고, 위치를 찾고, 감지하고 로봇(110)의 머리가 원하는 심을 따라 배치되고 이동되도록 보장하기 위해 여기에 설명된 기술(예컨대, 등록 기술) 중 일부 또는 모두를 보다 정확하게 적용하는 데 유용할 수 있다. In some embodiments, the pre-scan technique may include scanning more than a specific seam or seams, but rather other geometries of the part(s) 114. Scan data can be used to more accurately apply any or all of the techniques described herein (e.g., registration techniques) to find, locate, and detect the seam and ensure that the head of the robot 110 is positioned and moved along the desired seam. It can be useful.

일부 실시예에서, 스캐닝 기술(예컨대, 웰딩 암/웰딩 헤드에 장착된 센서/카메라를 사용하여 실제 심 스캐닝)은 심에 대한 위치 및 방향 정보보다는 심에 대한 간격 변동성 정보를 식별하는 데 유용할 수 있다. 예를 들어, 스캐닝 절차 동안 로봇(110)의 센서(들)(102)에 의해 캡처된 스캔 이미지는 간격의 가변성을 식별하고 그러한 간격을 설명하기 위해 웰딩 궤적 또는 경로 계획을 조정하는 데 유용할 수 있다. 예를 들어, 3D 포인트에서 2D 이미지 픽셀 또는 이들의 조합은 웰딩할 파트(114) 사이의 가변 간격을 찾는 데 유용할 수 있다. 일부 실시예에서는 가변 간격 찾기가 유용하며, 여기서는 3D 점, 2D 이미지 픽셀 또는 이들의 조합이 함께 웰딩될 파트(114) 사이의 여러 간격의 가변 크기를 찾아 식별하고 측정하는 데 유용하다. 가웰딩 찾기 또는 일반 웰딩 찾기에서, 이전 웰딩부 또는 웰딩될 파트(114) 사이의 갭에 있는 재료 퇴적물은 3D 포인트 및/또는 2D 이미지 픽셀을 사용하여 식별될 수 있다. 이러한 기술 중 일부 또는 전부는 경로 계획을 포함하여 웰딩을 최적화하는 데 유용할 수 있다. 일부 경우에, 간격의 가변성은 센서(102)에 의해 캡처된 이미지를 사용하여 생성된 3D 포인트 클라우드 내에서 식별될 수 있다. 또 다른 경우에, 간격의 변동성은 작업에 대한 웰딩 작업을 수행하는 동안 수행되는 스캐닝 기술(예컨대, 웰딩 암/웰딩 헤드에 장착된 센서/카메라를 사용하여 실제 심을 스캐닝)로 식별될 수 있다. 어느 한 경우에 있어서, 컨트롤러(108)는 결정된 위치 및 갭의 크기에 기초하여 웰딩 명령을 동적으로(예를 들어, 웰딩 전압) 적응시키도록 구성될 수 있다. 가변 간격에서 심을 정밀하게 웰딩할 수 있다. 웰딩 명령 조정에는 웰딩기 전압, 웰딩기 전류, 전기 펄스 지속 시간, 전기 펄스 모양 및 재료 공급 속도 중 하나 이상을 조정하는 것이 포함될 수 있다.In some embodiments, scanning techniques (e.g., scanning the actual seam using sensors/cameras mounted on the welding arm/welding head) may be useful for identifying gap variability information about the seam rather than position and orientation information about the seam. there is. For example, scanned images captured by the sensor(s) 102 of the robot 110 during a scanning procedure may be useful for identifying variability in gaps and adjusting the welding trajectory or path plan to account for such gaps. there is. For example, 3D point to 2D image pixels or a combination thereof may be useful for finding variable spacing between parts 114 to be welded. Variable gap finding is useful in some embodiments, where 3D points, 2D image pixels, or combinations thereof are useful for locating, identifying, and measuring variable sizes of various gaps between parts 114 to be welded together. In a temporary weld finder or a general weld finder, material deposits in the gap between previous welds or parts to be welded 114 may be identified using 3D points and/or 2D image pixels. Any or all of these techniques may be useful for optimizing welding, including path planning. In some cases, variability in spacing may be identified within a 3D point cloud generated using images captured by sensor 102. In still other cases, variability in spacing may be identified with scanning techniques performed while performing welding operations on a job (e.g., scanning the actual seam using a sensor/camera mounted on a welding arm/welding head). In either case, the controller 108 may be configured to dynamically adapt the welding command (e.g., welding voltage) based on the determined position and size of the gap. Seams can be precisely welded at variable intervals. Welding command adjustments may include adjusting one or more of welder voltage, welder current, electrical pulse duration, electrical pulse shape, and material feed rate.

실시예에서, 사용자 인터페이스(106)는 사용자에게 후보 심을 볼 수 있는 옵션을 제공할 수 있다. 예를 들어, 사용자 인터페이스(106)는 파트(114) 및/또는 파트(114) 상의 후보 심의 그래픽 리프레젠테이션을 제공할 수 있다. 추가적으로 또는 대안적으로, 사용자 인터페이스(106)는 심의 유형에 기초하여 후보 심을 그룹화할 수 있다. 전술한 바와 같이, 컨트롤러(108)는 심의 유형을 식별할 수 있다. 예를 들어, 랩 조인트로 식별된 후보 심은 "랩 조인트"라는 라벨로 그룹화될 수 있으며, "랩 조인트"라는 라벨 아래의 사용자 인터페이스(106)를 통해 사용자에게 제시될 수 있다. 유사하게, 에지 조인트로 식별된 후보 심은 "에지 조인트"라는 라벨 아래에 그룹화될 수 있고 "에지 조인트"라는 라벨 아래의 사용자 인터페이스(106)를 통해 사용자에게 제시될 수 있다.In embodiments, user interface 106 may provide users with the option to view candidate Sims. For example, user interface 106 may provide part 114 and/or a graphical representation of candidate deliberations on part 114 . Additionally or alternatively, user interface 106 may group candidate Sims based on Sim type. As described above, controller 108 may identify the type of deliberation. For example, candidate shims identified as lap joints may be grouped under the label “lap joints” and presented to the user through user interface 106 under the label “lap joints.” Similarly, candidate seams identified as edge joints may be grouped under the label “Edge Joints” and presented to the user via user interface 106 under the label “Edge Joints.”

사용자 인터페이스(106)는 로봇(110)에 의해 웰딩될 후보 심을 선택하기 위한 옵션을 사용자에게 더 제공할 수 있다. 예를 들어, 파트(114)의 각 후보 심은 사용자 인터페이스(106)의 누름 버튼으로 표시될 수 있다. 사용자가 특정 후보 심을 누르면 선택 사항이 컨트롤러(108)로 전송될 수 있다. 컨트롤러(108)는 로봇(110)이 특정 후보 심에 웰딩 작업을 수행하도록 하는 명령을 생성할 수 있다. The user interface 106 may further provide the user with options for selecting candidate seams to be welded by the robot 110 . For example, each candidate seam of part 114 may be represented by a push button in user interface 106. When a user taps on a particular candidate Sim, the selection may be transmitted to the controller 108. The controller 108 may generate a command to cause the robot 110 to perform a welding operation on a specific candidate seam.

일부 실시예에서, 웰딩 파라미터를 업데이트하는 옵션이 사용자에게 제공될 수 있다. 예를 들어, 사용자 인터페이스(106)는 사용자에게 다양한 웰딩 파라미터의 목록을 제공할 수 있다. 사용자는 업데이트할 특정 파라미터를 선택할 수 있다. 선택한 파라미터는 드롭다운 메뉴, 텍스트 입력 등을 통해 변경할 수 있다. 이 업데이트는 컨트롤러(108)로 전송되어 컨트롤러(108)가 로봇(110)에 대한 명령을 업데이트할 수 있도록 할 수 있다.In some embodiments, the user may be provided with the option to update welding parameters. For example, user interface 106 may provide the user with a list of various welding parameters. Users can select specific parameters to update. Selected parameters can be changed through drop-down menus, text input, etc. This update may be sent to controller 108 so that controller 108 can update commands for robot 110.

시스템(100)에 파트(114)의 사전 정보(예컨대, CAD 모델)가 제공되지 않는 실시예에서, 센서(들)(102)는 파트(114)을 스캔할 수 있다. 파트(114)의 리프레젠테이션은 사용자 인터페이스(106)를 통해 사용자에게 제시될 수 있다. 파트(114)의 이러한 리프레젠테이션은 센서(들)(102)로부터 획득된 파트(114)의 스캔 이미지의 투영된 3D 데이터를 포함하는 포인트 클라우드 및/또는 포인트 클라우드의 메쉬일 수 있다. 사용자는 사용자 인터페이스(106)를 통해 리프레젠테이션에서 웰딩될 심에 애노테이션을 달 수 있다. 대안적으로, 컨트롤러(108)는 파트(114)의 리프레젠테이션에서 후보 심을 식별할 수 있다. 후보 심은 사용자 인터페이스(106)를 통해 사용자에게 제시될 수 있다. 사용자는 후보 심 중에서 웰딩할 심을 선택할 수 있다. 사용자 인터페이스(106)는 사용자의 선택에 기초하여 리프레젠테이션에 애노테이션을 달 수 있다. 일부 실시예에서, 애노테이션이 달린 리프레젠테이션은 데이터베이스(112)에 저장될 수 있다.In embodiments where system 100 is not provided with prior information (e.g., CAD model) of part 114, sensor(s) 102 may scan part 114. A representation of part 114 may be presented to the user via user interface 106. This representation of part 114 may be a point cloud and/or a mesh of point clouds containing projected 3D data of a scanned image of part 114 acquired from sensor(s) 102. A user can annotate seams to be welded in the representation through the user interface 106. Alternatively, controller 108 may identify candidate Sims in the representation of part 114. Candidate Sims may be presented to the user via user interface 106. The user can select the seam to be welded from among the candidate seams. User interface 106 may annotate the representation based on the user's selections. In some embodiments, annotated representations may be stored in database 112.

위에서 설명된 기술을 사용하여(또는 다른 적절한 기술을 사용하여) 파트(들)(114)의 하나 이상의 심이 식별되고 가능한 정도로 수정된 후, 컨트롤러(108)는 후속 웰딩 프로세스 동안 로봇(110)에 대한 경로를 계획한다. 일부 실시예에서, 그래프 매칭 및/또는 그래프 검색 기술은 로봇(110)의 경로를 계획하는 데 유용할 수 있다. 위에서 설명된 바와 같이 식별된 특정 심은 다수의 포인트를 포함할 수 있으며, 경로 계획 기술은 주어진 심을 따라 이러한 각 포인트에 대해 로봇(110)의 다른 상태를 결정하는 것을 수반한다. 로봇(110)의 상태는 예를 들어 워크스페이스(101) 내의 로봇(110)의 위치 및 적용될 수 있는 임의의 수의 자유도로 로봇(110) 암의 특정 구성을 포함할 수 있다. 예를 들어, 6개의 자유도를 갖는 암을 가진 로봇(110)의 경우, 로봇(110)의 상태는 워크스페이스(101)에서의 로봇(110)의 위치(예를 들어, 3차원 x-y-z 공간에서 로봇(110)의 용접 헤드 위치) 뿐만 아니라 각 로봇 팔의 6개 자유도에 대해 특정 하위 상태도 포함한다. 또한, 로봇(110)이 제1 상태에서 제2 상태로 전이하는 경우, 워크스페이스(101) 내에서 자신의 위치를 변경할 수 있으며, 이러한 경우 로봇(110)은 워크스페이스(101) 내에서 특정 경로(예를 들어, 웰딩되는 심을 따라)를 반드시 횡단하게 된다. 따라서, 로봇(110)의 일련의 상태를 지정하는 것은 로봇(110)이 워크스페이스(101) 내에서 이동할 경로를 지정하는 것을 필연적으로 수반한다. 컨트롤러(108)는 경로 계획이 완료된 후에 사전 스캔 기술 또는 그 변형을 수행할 수 있고, 컨트롤러(108)는 임의의 다양한 적절한 조정을 수행하기 위해 사전 스캔 기술 동안 캡처된 정보를 사용할 수 있다(예컨대 솔기를 따라 실제 용접을 수행하는 데 사용되는 X-Y-Z 축 또는 좌표계 조정).After one or more seams of part(s) 114 have been identified and modified to the extent possible using the techniques described above (or using other suitable techniques), the controller 108 provides guidance to the robot 110 during the subsequent welding process. Plan your route. In some embodiments, graph matching and/or graph search techniques may be useful in planning the path of robot 110. As described above, a particular seam identified may contain multiple points, and path planning techniques involve determining a different state of the robot 110 for each of these points along a given seam. The state of the robot 110 may include, for example, the position of the robot 110 within the workspace 101 and the specific configuration of the arm of the robot 110 with any number of degrees of freedom that may be applied. For example, in the case of a robot 110 with an arm having six degrees of freedom, the state of the robot 110 is the location of the robot 110 in the workspace 101 (e.g., the robot in a three-dimensional x-y-z space). (110) of the welding head position) as well as specific substates for the six degrees of freedom of each robot arm. Additionally, when the robot 110 transitions from the first state to the second state, it can change its position within the workspace 101, and in this case, the robot 110 follows a specific path within the workspace 101. (For example, along the seam being welded). Accordingly, specifying a series of states of the robot 110 necessarily entails specifying a path for the robot 110 to move within the workspace 101. Controller 108 may perform a pre-scan technique, or a variation thereof, after path planning is complete, and controller 108 may use information captured during the pre-scan technique to make any of a variety of appropriate adjustments (e.g., seam (along the X-Y-Z axis or coordinate system used to perform the actual welding).

도 7은 로봇(110)에 대한 경로 계획이 (예를 들어, 컨트롤러(108)에 의해) 결정될 수 있는 그래프 검색 기술의 개략도(700)이다. 다이어그램(700)의 각 원은 로봇(110)의 서로 다른 상태(예를 들어, 워크스페이스(101) 내 로봇(110)의 특정 위치(예를 들어, 3D 공간에서 로봇(110)의 용접 헤드 위치)와 로봇(110) 암의 다른 구성뿐만 아니라 포지셔너, 클램프 등과 같은 부품을 지지하는 고정 장치의 위치 및/또는 구성)를 나타낸다. 각각의 컬럼(702, 706, 710)은 웰딩될 심을 따라 다른 포인트를 나타낸다. 따라서, 컬럼(702)에 대응하는 심 포인트에 대해, 로봇(110)은 상태 704A-704D 중 어느 하나에 있을 수 있다. 마찬가지로, 컬럼(706)에 대응하는 심 포인트의 경우, 로봇(110)은 상태 708A-708D 중 어느 하나에 있을 수 있다. 마찬가지로, 컬럼(710)에 대응하는 심 포인트에 대해 로봇(110)은 상태 712A-712D 중 어느 하나에 있을 수 있다. 예를 들어, 로봇(110)이 컬럼(702)에 대응하는 심 포인트에 있을 때 상태 704A에 있는 경우, 로봇(110)은 컬럼(706)에 대응하는 다음 심 포인트에 대해 상태(708A-708D) 중 하나로 전환할 수 있다. 유사하게, 상태 708A-708D에 진입하면, 로봇(110)은 이어서 컬럼(710)에 대응하는 다음 심 포인트에 대해 상태 712A-712D 중 임의의 상태로 전환할 수 있는 등등이다. 일부 실시예에서, 특정 상태에 진입하면 다른 상태에 진입하는 것이 불가능해질 수 있다. 예를 들어, 상태 704A에 들어가면 상태 708A-708C에 들어갈 가능성이 허용되지만 708D에 들어갈 가능성은 허용되지 않는 반면, 상태 704B에 들어가면 상태 708A-708B에 들어가지 않고 상태 708C와 708D에 들어갈 가능성이 허용될 수 있다. 본 개시의 범위는 임의의 특정 수의 심 포인트 또는 임의의 특정 수의 로봇(110) 상태로 제한되지 않는다.7 is a schematic diagram 700 of a graph search technique by which a path plan for robot 110 may be determined (e.g., by controller 108). Each circle in the diagram 700 represents a different state of the robot 110 (e.g., a specific position of the robot 110 within the workspace 101 (e.g., the welding head position of the robot 110 in 3D space). ) and other configurations of the arm of the robot 110, as well as the location and/or configuration of fixtures supporting components such as positioners, clamps, etc. Each column 702, 706, 710 represents a different point along the seam to be welded. Accordingly, for a seam point corresponding to column 702, robot 110 may be in any of states 704A-704D. Likewise, for a seam point corresponding to column 706, robot 110 may be in any of states 708A-708D. Likewise, for the seam point corresponding to column 710, robot 110 may be in any of states 712A-712D. For example, if robot 110 is in state 704A when it is at a seam point corresponding to column 702, robot 110 will be in states 708A-708D for the next seam point corresponding to column 706. You can switch to either one. Similarly, upon entering states 708A-708D, robot 110 may then transition to any of states 712A-712D for the next seam point corresponding to column 710, and so on. In some embodiments, entering a particular state may make it impossible to enter another state. For example, entering state 704A allows the possibility of entering states 708A-708C but not 708D, while entering state 704B allows the possibility of entering states 708C and 708D without entering states 708A-708B. You can. The scope of the present disclosure is not limited to any particular number of seam points or any particular number of robot 110 states.

일부 예에서, 그래프 검색 기술(예를 들어, 다이어그램(700)에 묘사된 기술에 따름)을 사용하여 로봇(110)에 대한 경로 계획을 결정하기 위해, 컨트롤러(108)는 상태(704A-704D)로부터 심 지점(N)에 대응하는 상태(예컨대 상태 712A-712D)까지의 최단 경로를 결정할 수 있다. 각 상태와 상태 간의 각 전환에 비용을 할당함으로써 목적 함수는 컨트롤러(108)에 의해 설계될 수 있다. 컨트롤러(108)는 목적 함수에 대해 가능한 최소 비용 값을 초래하는 경로를 찾는다. 여러 시작점과 끝점을 선택할 수 있으므로 Dijkstra 알고리즘이나 A*와 같은 그래프 검색 방법을 구현할 수 있다. 일부 실시예에서, 무차별 대입 방법은 적절한 경로 계획을 결정하는 데 유용할 수 있다. 무차별 대입 기술은 컨트롤러(108)가 모든 가능한 경로를 계산하고(예를 들어 다이어그램(700)을 통해) 가장 짧은 경로를 선택하는 것을 수반한다.In some examples, to determine a path plan for the robot 110 using a graph search technique (e.g., according to the technique depicted in diagram 700), the controller 108 may operate on states 704A-704D. The shortest path from can be determined to a state (e.g., states 712A-712D) corresponding to the seam point (N). An objective function can be designed by the controller 108 by assigning a cost to each state and each transition between states. Controller 108 finds the path that results in the lowest possible cost value for the objective function. Multiple start and end points can be selected, allowing you to implement graph search methods such as Dijkstra's algorithm or A*. In some embodiments, brute force methods may be useful in determining an appropriate route plan. The brute force technique involves the controller 108 calculating all possible paths (e.g. via diagram 700) and selecting the shortest path.

컨트롤러(108)는 각 심 지점의 상태가 가능한지 여부를 판단할 수 있으며, 이는 컨트롤러(108)가 심의 심 지점의 시퀀스를 따라 상태 체인을 구현하는 것이 로봇(110)과 작업 공간(101)의 구조물 사이, 또는 로봇(110) 자체의 일부와도 임의의 충돌을 일으킬지 여부를 결정할 수 있다는 것을 적어도 부분적으로 의미한다. 이를 위해, 심의 서로 다른 포인트에서 서로 다른 상태를 실현한다는 개념은 대안적으로 여러 웨이포인트를 갖는 심의 맥락에서 표현될 수도 있다. 먼저, 컨트롤러(108)는 식별된 심을 일련의 웨이포인트로 분리할 수 있다. 세가지 (공간/병진) 자유도로 로봇(120)에 연결된 웰딩 헤드의 방향을 제한할 수 있다. 일반적으로, 로봇(120)의 웰딩 헤드 방향에 대한 제한은 일부 원하는 품질의 웰딩을 생성할 목적으로 각 웨이포인트에 대해 하나 또는 두 개의 회전 자유도로 제공되고; 제약 조건은 일반적으로 웨이포인트와 웰딩 심의 경로에서 나오는 표면 법선 벡터에 상대적이다. 예를 들어, 웰딩 헤드의 위치는 x축, y축, z축뿐만 아니라 웰딩 와이어 축이나 웰딩기 팁에 수직인 웨이포인트와 이에 연결된 일부 공칭 좌표계에 대한 약 1~2개의 회전 축으로 제한될 수 있다. 일부 실시예에서 이러한 제약은 각도에 대한 한계 또는 허용 가능한 범위일 수 있다. 당업자는 이상적인 또는 원하는 웰딩 각도가 파트 또는 심 형상, 심에 대한 중력 방향 및 기타 요인에 따라 달라질 수 있음을 인식할 것이다. 일부 실시예에서, 컨트롤러(108)는 (최적화 목적을 위한 웰딩과 경로 계획 사이의 균형을 찾는 것과 같은) 하나 이상의 이유로 심이 중력에 수직임을 보장하기 위해 1F 또는 2F 웰딩 위치를 제한할 수 있다. 따라서 웰딩 헤드의 위치는 심에 대해 적절한 방향으로 각 웨이포인트에 의해 유지(제한)될 수 있다. 일반적으로 웰딩 헤드는 웰딩 헤드 축과 동축인 회전축(θ)에 대해 구속되지 않는다. 예를 들어, 각 웨이포인트는 웰딩 로봇(120)의 웰딩 헤드의 위치를 정의하여 각 웨이포인트에서 웰딩 헤드가 웰딩 심에 대해 고정된 위치 및 방향에 있도록 할 수 있다. 일부 구현에서, 웨이포인트는 웰딩 헤드의 움직임을 실질적으로 연속적으로 만들 수 있을 만큼 충분히 미세하게 분리된다.The controller 108 can determine whether the state of each sim point is possible, which means that the controller 108 implements a state chain following the sequence of the sim point of the robot 110 and the structure of the work space 101. This means, at least in part, that it is possible to determine whether to cause a random collision with the robot 110 itself, or with a part of the robot 110 itself. To this end, the concept of realizing different states at different points in a deliberation could alternatively be expressed in the context of a deliberation with multiple waypoints. First, the controller 108 may separate the identified seam into a series of waypoints. The direction of the welding head connected to the robot 120 can be limited by three degrees of freedom (spatial/translational). Typically, constraints on the direction of the welding head of the robot 120 are provided for one or two rotational degrees of freedom for each waypoint, with the aim of producing a weld of some desired quality; Constraints are generally relative to the surface normal vector from the waypoint and the path of the welding seam. For example, the position of the welding head can be limited to about one or two axes of rotation about the there is. In some embodiments, these constraints may be limits or allowable ranges for angles. Those skilled in the art will recognize that the ideal or desired welding angle may vary depending on part or seam geometry, direction of gravity relative to the seam, and other factors. In some embodiments, the controller 108 may limit the 1F or 2F welding position to ensure that the seam is perpendicular to gravity for one or more reasons (such as finding a balance between welding and path planning for optimization purposes). Therefore, the position of the welding head can be maintained (limited) by each waypoint in an appropriate direction with respect to the seam. In general, the welding head is not constrained about the rotation axis (θ), which is coaxial with the welding head axis. For example, each waypoint may define the position of the welding head of the welding robot 120 so that the welding head at each waypoint is at a fixed position and orientation with respect to the welding seam. In some implementations, the waypoints are separated fine enough to make the movement of the welding head substantially continuous.

컨트롤러(108)는 각각의 웨이포인트를 다수의 노드로 나눌 수 있다. 각 노드는 해당 웨이포인트에서 웰딩 헤드의 가능한 방향을 나타낼 수 있다. 비제한적인 예로서, 웰딩 헤드는 웰딩 헤드가 각 웨이포인트에서 회전 축(θ)을 따라 회전(예를 들어, 360도)할 수 있도록 웰딩 헤드의 축과 동축인 회전 축 주위에 구속되지 않을 수 있다. 각 웨이포인트는 20개의 노드로 분할될 수 있으며, 각 웨이포인트의 각 노드는 18도 회전 증분의 웰딩 헤드를 나타낸다. 예를 들어, 제1 웨이포인트-노드 쌍은 웰딩 헤드의 0도 회전을 나타낼 수 있고, 제2 웨이포인트-노드 쌍은 웰딩 헤드의 18도 회전을 나타낼 수 있으며, 세 번째 웨이포인트-노드 쌍은 36도에서 웰딩 헤드의 회전 등을 나타낼 수 있다. 각 웨이포인트는 2, 10, 20, 60, 120, 360 또는 적절한 수의 노드로 나눌 수 있다. 노드의 세분화는 1 이상의 자유도에서 방향의 분할을 나타낼 수 있다. 예를 들어, 웨이포인트에 대한 웰딩기 팁의 방향은 3가지 각도로 정의될 수 있다. 각 웨이포인트-노드 쌍을 연결하여 웰딩 경로를 정의할 수 있다. 따라서, 웨이포인트 사이의 거리와 인접한 웨이포인트 노드 사이의 오프셋은 웰딩 헤드가 노드-웨이포인트 쌍 사이에서 이동할 때 웰딩 헤드의 변환 및 회전의 양을 나타낼 수 있다.The controller 108 may divide each waypoint into multiple nodes. Each node can indicate a possible direction of the welding head at that waypoint. As a non-limiting example, the welding head may be unrestrained about a rotation axis coaxial with the axis of the welding head such that the welding head can rotate (e.g., 360 degrees) along the rotation axis θ at each waypoint. there is. Each waypoint can be divided into 20 nodes, where each node of each waypoint represents a welding head with a rotation increment of 18 degrees. For example, the first waypoint-node pair may represent a 0-degree rotation of the welding head, the second waypoint-node pair may represent an 18-degree rotation of the welding head, and the third waypoint-node pair may represent a 0-degree rotation of the welding head. It can indicate the rotation of the welding head at 36 degrees. Each waypoint can be divided into 2, 10, 20, 60, 120, 360, or any appropriate number of nodes. Subdivision of a node may represent a division of direction in one or more degrees of freedom. For example, the direction of the welding machine tip with respect to the waypoint can be defined by three angles. Each waypoint-node pair can be connected to define a welding path. Accordingly, the distance between waypoints and the offset between adjacent waypoint nodes can indicate the amount of translation and rotation of the welding head as it moves between node-waypoint pairs.

컨트롤러(108)는 웰딩의 타당성에 대해 각각의 웨이포인트-노드 쌍을 평가할 수 있다. 예를 들어, 웨이포인트를 20개의 노드로 나누는 비제한적인 예를 고려한다. 컨트롤러(108)는 0도로 유지되는 웰딩 헤드를 나타내는 제1 웨이포인트-노드 쌍이 실행 가능한지 여부를 평가할 수 있다. 다르게 말하면, 컨트롤러(108)는 웨이포인트-노드 쌍에 의해 정의된 위치 및 방향에 배치되면 로봇(110)이 파트, 픽스쳐 또는 웰딩 로봇 자체와 충돌하거나 간섭하는지 여부를 평가할 수 있다. 유사한 방식으로, 컨트롤러(108)는 제2 웨이포인트-노드 쌍, 제3 웨이포인트-노드 쌍 등이 실행 가능한지 여부를 평가할 수 있다. 컨트롤러(108)는 각각의 웨이포인트를 유사하게 평가할 수 있다. 이러한 방식으로 모든 웨이포인트의 가능한 모든 노드를 결정할 수 있다.Controller 108 may evaluate each waypoint-node pair for adequacy of welding. For example, consider the non-limiting example of dividing a waypoint into 20 nodes. Controller 108 may evaluate whether the first waypoint-node pair representing the welding head maintained at 0 degrees is feasible. Stated differently, the controller 108 may evaluate whether the robot 110 will collide or interfere with a part, a fixture, or the welding robot itself when placed at a position and orientation defined by a waypoint-node pair. In a similar manner, controller 108 may evaluate whether a second waypoint-node pair, a third waypoint-node pair, etc. are feasible. Controller 108 may evaluate each waypoint similarly. In this way, all possible nodes for all waypoints can be determined.

일부 실시예에서, 여기에 설명된 충돌 분석은 워크스페이스(101)의 3D 모델과 로봇(110)의 3D 모델을 비교하여 두 모델이 중첩되는지, 선택적으로 삼각형 중 일부 또는 전부가 중첩되는지를 결정함으로써 수행될 수 있다. 두 모델이 중첩되는 경우, 컨트롤러(108)는 충돌 가능성이 있다고 판단할 수 있다. 두 모델이 중첩되지 않는 경우, 컨트롤러(108)는 충돌 가능성이 없다고 판단할 수 있다. 더 구체적으로, 일부 실시예에서, 컨트롤러(108)는 웨이포인트-노드 쌍 셋(상술한 웨이포인트-노드 쌍과 같은) 각각에 대한 모델을 비교하고 웨이포인트-노드 쌍 중 두 모델이 서브셋에 대해 또는 심지어 가능하게는 모두 중첩된다고 결정할 수 있다. 모델 교차점이 식별되는 경유지-노드 쌍의 서브셋에 대해, 컨트롤러(108)는 계획된 경로에서 해당 서브셋의 경유지-노드 쌍을 생략할 수 있으며 해당 경유지-노드 쌍에 대한 대안을 식별할 수 있다. 컨트롤러(108)는 충돌 없는 경로가 계획될 때까지 필요에 따라 이 프로세스를 반복할 수 있다. 컨트롤러(108)는 충돌 회피 분석의 도구로서 효율적인 충돌 검출 및 근접성 계산을 위한 다양한 기술을 포함하는 유연한 충돌 라이브러리(FCL)를 사용할 수 있다. FCL은 다양한 모델 리프레젠테이션에 대해 다중 근접 쿼리를 수행하는 데 유용하며 포인트 클라우드 간의 확률적 충돌 식별을 수행하는 데 사용될 수 있다. FCL과 함께 또는 대신하여 추가 또는 대체 리소스를 사용할 수 있다.In some embodiments, collision analysis described herein may be performed by comparing the 3D model of workspace 101 with the 3D model of robot 110 to determine whether the two models overlap, and optionally whether some or all of the triangles overlap. It can be done. If the two models overlap, the controller 108 may determine that there is a possibility of conflict. If the two models do not overlap, the controller 108 may determine that there is no possibility of conflict. More specifically, in some embodiments, controller 108 compares the models for each of a set of waypoint-node pairs (such as the waypoint-node pairs described above) and determines whether two of the waypoint-node pairs match the models for the subset. Or you could even possibly decide that they all overlap. For a subset of waypoint-node pairs for which model intersections are identified, the controller 108 may omit that subset's waypoint-node pairs from the planned route and may identify alternatives for those waypoint-node pairs. Controller 108 can repeat this process as needed until a collision-free path is planned. Controller 108 may use a flexible collision library (FCL) that includes various techniques for efficient collision detection and proximity calculation as a tool for collision avoidance analysis. FCL is useful for performing multiple proximity queries over different model representations and can be used to perform probabilistic collision identification between point clouds. Additional or alternative resources may be used in conjunction with or in place of FCL.

컨트롤러(108)는 물리적으로 실행 가능하다면 하나 이상의 실행 가능한 시뮬레이션(또는 본 명세서에서 상호 교환적으로 사용되는 두 용어 모두 평가) 웰딩 경로를 생성할 수 있다. 웰딩 경로는 웰딩 로봇이 후보 심을 웰딩하기 위해 사용하는 경로일 수 있다. 일부 실시예에서, 웰딩 경로는 심의 모든 중간점을 포함할 수 있다. 일부 실시예에서, 웰딩 경로는 후보 심의 전체가 아닌 일부 웨이포인트를 포함할 수 있다. 웰딩 경로에는 웰딩 헤드가 각 웨이포인트-노드 쌍 사이를 이동할 때 로봇과 웰딩 헤드의 동작이 포함될 수 있다. 노드-웨이포인트 쌍 사이의 실행 가능한 경로가 식별되면 다음 순차적 웨이포인트에 대한 실행 가능한 노드-웨이포인트 쌍이 존재하는 경우 이를 식별할 수 있다. 당업자는 실현 가능한 노드-웨이포인트 쌍의 공간을 평가하기 위해 많은 검색 트리 또는 다른 전략이 사용될 수 있다는 것을 인식할 것이다. 본 명세서에서 더 자세히 논의된 바와 같이, 비용 파라미터는 각 노드-경유지 쌍에서 후속 노드-경유지 쌍으로의 이동에 대해 할당되거나 계산될 수 있다. 비용 파라미터는 이동 시간, 노드-중간점 쌍 간의 이동량(예컨대, 회전 포함), 및/또는 이동 중 웰딩 헤드에 의해 생성된 시뮬레이션/예상 웰딩 품질과 연관될 수 있다.Controller 108 may generate one or more executable simulation (or evaluation, as both terms are used interchangeably herein) welding paths if physically feasible. The welding path may be a path used by the welding robot to weld the candidate seam. In some embodiments, the welding path may include all midpoints of the seam. In some embodiments, the welding path may include some waypoints but not all of the candidate deliberations. The welding path may include the motion of the robot and welding head as the welding head moves between each waypoint-node pair. Once a feasible path between a node-waypoint pair is identified, a feasible node-waypoint pair for the next sequential waypoint can be identified, if one exists. Those skilled in the art will recognize that many search trees or other strategies can be used to evaluate the space of feasible node-waypoint pairs. As discussed in more detail herein, cost parameters may be assigned or calculated for movement from each node-stop pair to a subsequent node-stop pair. Cost parameters may be associated with travel time, amount of movement (e.g., including rotation) between node-midpoint pairs, and/or simulated/expected welding quality produced by the welding head during movement.

하나 이상의 웨이포인트에 대한 용접이 가능한 노드가 없거나 이전 웨이포인트-노드 쌍과 특정 웨이포인트의 웨이포인트-노드 쌍 사이를 이동할 수 있는 경로가 없는 경우, 컨트롤러(108)는 적어도 일부 추가적인 웨이포인트-노드 쌍이 용접을 위해 가능해지도록 대체 용접 파라미터를 결정할 수 있다. 예를 들어, 컨트롤러(108)가 제1 웨이포인트에 대한 웨이포인트-노드 쌍 중 어느 것도 실행 가능하지 않다고 결정하여 제1 웨이포인트를 웰딩 불가능하게 만드는 경우, 컨트롤러(108)는 대체 웰딩 각도와 같은 대체 웰딩 파라미터를 결정할 수 있어 적어도 일부 제1 웨이포인트에 대한 웨이포인트-노드 쌍이 웰딩 가능해진다. 예를 들어, 컨트롤러(108)는 x 및/또는 y축을 중심으로 한 회전에 대한 제약을 제거하거나 완화할 수 있다. 유사하게 말하면, 컨트롤러(108)는 웰딩 각도가 하나 또는 두 개의 추가 회전(각도) 치수로 변경되도록 허용할 수 있다. 예를 들어, 컨트롤러(108)는 웰딩 불가능한 웨이포인트를 2차원 또는 3차원 노드로 나눌 수 있다. 그런 다음 각 노드는 웰딩 로봇의 웰딩 타당성과 다양한 웰딩 각도 및 회전 상태에서 유지되는 웰딩을 평가할 수 있다. X축 및/또는 Y축 또는 기타 자유도에 대한 추가 회전으로 인해 웰딩 헤드가 충돌하지 않도록 웨이포인트가 웰딩 헤드에 접근할 수 있다. 일부 구현에서, 컨트롤러(108)는 - 하나 이상의 웨이포인트에 대한 웰딩이 가능한 노드가 없거나 이전 웨이포인트-노드 쌍과 특정 경로의 웨이포인트-노드 쌍 중 임의의 것 사이를 이동할 수 있는 실행 가능한 경로가 존재하지 않는 경우 웨이포인트 - 이전 웨이포인트-노드 쌍과 특정 웨이포인트의 웨이포인트-노드 쌍 사이의 가능한 경로를 결정할 때 포지셔너 시스템에서 제공하는 자유도를 사용할 수 있다.If there are no nodes capable of welding for one or more waypoints, or if there is no path available to travel between the previous waypoint-node pair and the waypoint-node pair of a particular waypoint, the controller 108 may determine at least some additional waypoint-nodes. Alternative welding parameters can be determined so that the pair becomes available for welding. For example, if the controller 108 determines that none of the waypoint-node pairs for the first waypoint are feasible, making the first waypoint unweldable, the controller 108 determines the alternative weld angle, such as Alternative welding parameters can be determined so that waypoint-node pairs for at least some of the first waypoints can be welded. For example, controller 108 may remove or relax constraints on rotation about x and/or y axes. Similarly, the controller 108 may allow the weld angle to be changed by one or two additional rotational (angular) dimensions. For example, the controller 108 may divide non-weldable waypoints into two-dimensional or three-dimensional nodes. Each node can then evaluate the welding feasibility of the welding robot and the welding maintained at various welding angles and rotation states. The waypoint can approach the welding head so that additional rotations about the X and/or Y axes or other degrees of freedom do not cause the welding head to collide. In some implementations, the controller 108 determines that - if there is no node capable of welding to one or more waypoints or if there is no feasible path to travel between the previous waypoint-node pair and any of the waypoint-node pairs of the particular path. If one does not exist, the degrees of freedom provided by the positioner system can be used when determining possible paths between a waypoint - the previous waypoint-node pair and the waypoint-node pair of a particular waypoint.

생성된 웰딩 경로에 기초하여, 컨트롤러(108)는 웰딩을 위한 웰딩 경로를 최적화할 수 있다. (본 명세서에서 사용되는 최적 및 최적화는 절대적인 최상의 웰딩 경로를 결정하는 것을 의미하지 않지만 일반적으로 덜 효율적인 웰딩 경로에 비해 웰딩 시간을 줄이고/하거나 웰딩 품질을 향상시킬 수 있는 기술을 의미한다.) 예를 들어, 컨트롤러(108)는 로봇(110)의 모션에 대한 로컬 및/또는 글로벌 최소값을 찾는 비용 함수를 결정할 수 있다. 일반적으로 웰딩 헤드 회전은 심 웰딩 시간을 늘리거나 웰딩 품질을 저하시킬 수 있기 때문에 최적의 웰딩 경로는 웰딩 헤드 회전을 최소화한다. 따라서, 웰딩 경로를 최적화하는 것은 최소한의 회전량으로 최대 개수의 웨이포인트를 통해 웰딩 경로를 결정하는 것을 포함할 수 있다.Based on the generated welding path, the controller 108 can optimize the welding path for welding. (As used herein, optimal and optimized do not refer to determining the absolute best welding path, but generally refer to techniques that can reduce welding time and/or improve welding quality compared to less efficient welding paths.) Examples: For example, controller 108 may determine a cost function that finds local and/or global minima for the motion of robot 110. In general, the optimal welding path minimizes welding head rotation because welding head rotation can increase seam welding time or reduce welding quality. Accordingly, optimizing the welding path may include determining the welding path through the maximum number of waypoints with the minimum amount of rotation.

분할된 노드 또는 노드-경로 쌍 각각에서 웰딩의 타당성을 평가할 때, 컨트롤러(108)는 다중 계산을 수행할 수 있다. 일부 실시예에서, 다수의 계산 각각은 서로 상호 배타적일 수 있다. 일부 실시예에서, 제1 계산은 채용되는 웰딩 로봇의 로봇(110)의 암이 노드 또는 노드-웨이포인트 쌍에 의해 정의된 상태에 기계적으로 도달(또는 존재할) 수 있는지 여부를 계산하는 운동학적 타당성 계산을 포함할 수 있다. 일부 실시예에서, 제1 계산에 추가하여, 제1 계산과 상호 배타적일 수 있는 제2 계산도 컨트롤러(108)에 의해 수행될 수 있다. 제2 계산은 심 부분(예컨대 문제의 노드 또는 노드-웨이포인트 쌍)에 접근할 때 로봇(110)의 암이 충돌(예컨대 작업공간(101) 또는 작업공간(101)의 구조물과 충돌)에 직면할지 여부를 결정하는 것을 포함할 수 있다.When evaluating the adequacy of welding at each partitioned node or node-path pair, the controller 108 may perform multiple calculations. In some embodiments, each of multiple calculations may be mutually exclusive of each other. In some embodiments, the first calculation is a kinematic feasibility calculation of whether an arm of the robot 110 of the employed welding robot can mechanically reach (or be in) a state defined by a node or node-waypoint pair. May include calculations. In some embodiments, in addition to the first calculation, a second calculation may also be performed by the controller 108, which may be mutually exclusive with the first calculation. A second calculation determines whether the arm of robot 110 encounters a collision (e.g., a collision with workspace 101 or a structure in workspace 101) when approaching a seam portion (e.g., the node or node-waypoint pair in question). This may include deciding whether or not to do so.

컨트롤러(108)는 제2 계산을 수행하기 전에 제1 계산을 수행할 수 있다. 일부 예시에서, 제2 계산은 제1 계산의 결과가 긍정적인 경우(예를 들어, 로봇(110)의 암이 노드 또는 노드-웨이포인트 쌍에서 정의한 상태에 기계적으로 도달(또는 존재)할 수 있다고 판단된 경우에만 수행될 수 있다. 일부 예시에서는, 1차 연산의 결과가 부정적일 경우(예를 들어, 로봇(110)의 암이 노드 또는 노드-웨이포인트 쌍에서 정의한 상태에 기계적으로 도달(또는 존재)할 수 없는 것으로 판단되는 경우에는 2차 연산을 수행하지 않을 수 있다.Controller 108 may perform the first calculation before performing the second calculation. In some examples, the second calculation may be performed if the result of the first calculation is positive (e.g., that the arm of robot 110 can mechanically reach (or exist in) the state defined by the node or node-waypoint pair. In some examples, if the result of the primary operation is negative (e.g., the arm of the robot 110 has mechanically reached the state defined by the node or node-waypoint pair (or If it is determined that it cannot exist, the secondary operation may not be performed.

운동학적 타당성은 사용된 로봇 암의 유형과 연관될 수 있다. 본 설명의 목적을 위해, 웰딩 로봇(110)은 구형 리스트(wrist)을 갖는 6축 로봇 웰딩 암을 포함하는 것으로 가정된다. 6축 로봇 암은 6개의 자유도, 즉, X-, Y-, Z-직교 좌표계에서 3개의 자유도와 로봇(110)의 리스트(wrist)과 같은 특성으로 인해 3개의 추가 자유도를 가질 수 있다. 예를 들어, 로봇(110)의 리스트(wrist)과 같은 특성은 리스트(wrist) 올리기/내리기 방식(예컨대 리스트(wrist)이 +y 및 -y 방향으로 움직이는 경우)에서 4차 자유도, 리스트(wrist) 측면 방식(예컨대 -x 및 +x 방향으로 움직이는 리스트(wrist))에서 5차 자유도, 회전에 있어서 6차 자유도를 가져온다. 일부 실시예에서, 웰딩 토치는 로봇(110)의 리스트(wrist) 부분에 부착된다.Kinematic feasibility can be related to the type of robotic arm used. For the purposes of this description, welding robot 110 is assumed to include a six-axis robotic welding arm with a spherical wrist. A six-axis robot arm may have six degrees of freedom, three degrees of freedom in X-, Y-, and Z-cartesian coordinate systems, and three additional degrees of freedom due to the wrist-like nature of the robot 110. For example, the wrist-like characteristics of the robot 110 have a fourth degree of freedom in the wrist raising/lowering method (e.g., when the wrist moves in the +y and -y directions), the list ( wrist) resulting in a 5th degree of freedom in a lateral manner (e.g. a wrist moving in the -x and +x directions) and a 6th degree of freedom in rotation. In some embodiments, the welding torch is attached to the wrist portion of the robot 110.

채용된 로봇(110)의 암이 노드 또는 노드-웨이포인트 쌍에 의해 정의된 상태에 기계적으로 도달(또는 존재)할 수 있는지 여부를 결정하기 위해(즉, 제1 계산을 수행하기 위해) 로봇(110)은 도 8의 예시 모델(800)에 도시된 바와 같이 수학적으로 모델링될 수 있다. 일부 실시예에서, 컨트롤러(108)는 리스트(wrist) 위치에 기초하여 처음 3개의 관절 변수를 풀고 리스트(wrist) 방향에 기초하여 나머지 3개의 관절 변수를 풀 수 있다. 토치가 리스트(wrist)에 단단히 부착되어 있는 것이 주목된다. 따라서 토치 팁과 리스트(wrist) 사이의 변형은 고정된 것으로 가정된다. 처음 3개의 결합 변수(예를 들어, 각각 802, 804, 806의 변수 S, L, U)를 찾기 위해 기하학적 접근법(예를 들어 코사인 법칙)이 사용될 수 있다.To determine whether an arm of an employed robot 110 can mechanically reach (or exist in) a state defined by a node or node-waypoint pair (i.e., to perform a first calculation), the robot ( 110) can be mathematically modeled as shown in the example model 800 of FIG. 8. In some embodiments, controller 108 may solve the first three joint variables based on the wrist position and the remaining three joint variables based on the wrist orientation. It is noted that the torch is securely attached to the wrist. Therefore, the strain between the torch tip and the wrist is assumed to be fixed. A geometric approach (e.g., the law of cosines) can be used to find the first three combined variables (e.g., variables S, L, and U of 802, 804, and 806, respectively).

처음 3개의 결합 변수(즉, S, L, U)가 성공적으로 계산된 후, 컨트롤러(108)는 다음과 같이 마지막 3개의 결합 변수(즉, 각각 808, 810, 812에서 R, B, T)를 풀 수 있고, 예를 들어 리스트(wrist) 방향을 ZYZ 오일러 각도로 간주한다. 컨트롤러(108)는 로봇(110)의 일부 오프셋을 고려할 수 있다. URDF(통합 로봇 설명 형식) 파일의 불일치로 인해 이러한 오프셋을 고려하고 설명해야 할 수도 있다. 예를 들어, 일부 실시예에서, 관절(예를 들어, 로봇(110)의 실제 관절) 위치의 값(예를 들어, 관절의 X축)은 URDF 파일에 명시된 값과 일치하지 않을 수 있다. 그러한 오프셋 값은 테이블로 컨트롤러(108)에 제공될 수 있다. 일부 실시예에서 컨트롤러(108)는 로봇(110)을 수학적으로 모델링하는 동안 이들 오프셋 값을 고려할 수 있다. 일부 실시예에서, 로봇(110)이 수학적으로 모델링된 후, 컨트롤러(108)는 로봇(110)의 암이 노드 또는 노드-경로 쌍에 의해 정의된 상태에 기계적으로 도달할 수 있는지(또는 존재할 수 있는지)를 결정할 수 있다.After the first three combined variables (i.e., S, L, and U) are successfully calculated, the controller 108 calculates the last three combined variables (i.e., R, B, and T in 808, 810, and 812, respectively) as follows: can be solved, for example, considering the wrist direction as ZYZ Euler angles. Controller 108 may take some offset of robot 110 into account. These offsets may need to be considered and accounted for due to inconsistencies in the Unified Robot Description Format (URDF) files. For example, in some embodiments, the value of a joint (e.g., an actual joint of robot 110) position (e.g., the joint's X-axis) may not match the value specified in the URDF file. Such offset values may be provided to the controller 108 in a table. In some embodiments, controller 108 may consider these offset values while mathematically modeling robot 110. In some embodiments, after robot 110 has been mathematically modeled, controller 108 determines whether an arm of robot 110 can mechanically reach (or exist in) a state defined by a node or node-path pair. can be determined).

위에서 언급한 바와 같이, 컨트롤러(108)는 로봇(110)이 웨이포인트-노드 쌍에 의해 정의된 위치 및 방향에 배치되면 로봇(110) 자체를 포함하여 워크스페이스(101)에 있는 파트(114), 픽스쳐(116) 또는 다른 모든 것과 충돌하거나 간섭하는지 여부를 평가할 수 있다. 컨트롤러(108)가 로봇 암이 존재할 수 있는 상태를 결정하면, 컨트롤러(108)는 제2 계산을 사용하여 전술한 평가(예를 들어, 로봇이 그 환경에서 무언가와 충돌할지 여부에 관한)를 수행할 수 있다.As mentioned above, the controller 108 controls the parts 114 in the workspace 101, including the robot 110 itself, once the robot 110 is placed in the position and orientation defined by the waypoint-node pair. , it can be evaluated whether it collides with or interferes with the fixture 116 or anything else. Once the controller 108 determines a state in which the robot arm can exist, the controller 108 uses the second calculation to make the aforementioned evaluation (e.g., regarding whether the robot will collide with something in its environment). can do.

도 9는 다양한 실시예에 따른 오토노머스 웰딩을 수행하기 위한 방법(900)의 흐름도이다. 보다 구체적으로, 도 9는 일부 예에 따른 웰딩 로봇(예를 들어, 도 1의 로봇(110))을 작동 및 제어하기 위한 방법(900)의 흐름도이다. 단계 902에서, 방법(900)은 하나 이상의 센서(예를 들어, 도 1의 센서(들)(102))를 사용하여 워크스페이스(예를 들어, 도 1의 워크스페이스(101))의 이미지 데이터를 획득하는 단계를 포함한다. 이미지 데이터에는 워크스페이스의 2D 및/또는 3D 이미지가 포함될 수 있다. 전술한 바와 같이, 웰딩될 하나 이상의 파트, 파트를 안전한 방식으로 고정할 수 있는 픽스쳐 및/또는 클램프가 워크스페이스에 위치할 수 있다. 일부 실시예에서는 이미지 데이터로부터 포인트 클라우드가 생성될 수 있다. 예를 들어, 이미지들을 서로 겹쳐서 3차원 이미지 데이터를 재구성하고 생성할 수 있다. 3차원 이미지 데이터를 조합하여 포인트 클라우드를 생성할 수 있다.Figure 9 is a flowchart of a method 900 for performing autonomous welding according to various embodiments. More specifically, Figure 9 is a flow diagram of a method 900 for operating and controlling a welding robot (e.g., robot 110 of Figure 1) according to some examples. At step 902, method 900 collects image data of a workspace (e.g., workspace 101 of FIG. 1) using one or more sensors (e.g., sensor(s) 102 of FIG. 1). It includes the step of obtaining. Image data may include 2D and/or 3D images of the workspace. As described above, one or more parts to be welded, fixtures and/or clamps capable of holding the parts in a secure manner may be located in the workspace. In some embodiments, a point cloud may be generated from image data. For example, three-dimensional image data can be reconstructed and generated by overlapping the images. A point cloud can be created by combining 3D image data.

단계(904)에서, 방법(900)은 이미지일 수 있는 센서 데이터에 기초하여 웰딩될 파트 상의 포인트 셋을 식별하는 것을 포함한다. 포인트 셋은 웰딩될 심의 가능성을 나타낼 수 있다. 일부 실시예에서, 신경망은 포인트 셋을 식별하기 위해 이미지 데이터에 대해 픽셀 단위 분할을 수행할 수 있다. 이미지 데이터의 픽스처(Fixture)와 클램프(Clamp)는 이미지 분류를 기반으로 신경망을 통해 분류될 수 있다. 픽스쳐 및/또는 클램프와 연관된 이미지 데이터의 부분은 이미지 데이터의 해당 부분이 포인트 세트를 식별하는 데 사용되지 않도록 분할될 수 있고, 이는 검색 공간을 줄임으로써 웰딩할 포인트 세트를 식별하는 데 필요한 계산 리소스를 줄일 수 있다. 이러한 실시예에서, 포인트 셋은 이미지 데이터의 다른 파트(예를 들어, 분할되지 않은 이미지 데이터의 부분)으로부터 식별될 수 있다.At step 904, method 900 includes identifying a set of points on the part to be welded based on sensor data, which may be an image. The point set can indicate the possibility of a seam being welded. In some embodiments, the neural network may perform pixel-wise segmentation on the image data to identify a set of points. Fixtures and clamps of image data can be classified through a neural network based on image classification. Portions of the image data associated with fixtures and/or clamps may be segmented such that those portions of the image data are not used to identify sets of points, which reduces the search space and thus frees up computational resources needed to identify sets of points to weld. It can be reduced. In such embodiments, point sets may be identified from different parts of the image data (eg, portions of the unsegmented image data).

단계(906)에서, 방법(900)은 포인트 셋으로부터 후보 심을 식별하는 단계를 포함한다. 예를 들어, 포인트 집합 내의 포인트 서브셋을 후보 심으로 식별할 수 있다. 신경망은 이미지 분류 및/또는 깊이 분류를 수행하여 후보 심을 식별할 수 있다. 일부 실시예에서, 후보 심은 파트에 대해 위치화될 수 있다. 예를 들어, 후보 심을 위치화하기 위해 후보 심의 위치와 방향이 파트에 대해 결정될 수 있다.At step 906, the method 900 includes identifying candidate Sims from the point set. For example, a subset of points within a point set can be identified as a candidate seam. A neural network can perform image classification and/or depth classification to identify candidate cores. In some embodiments, candidate seams may be located relative to the part. For example, to locate a candidate seam, the location and orientation of the candidate seam may be determined for the part.

추가적으로, 방법(900)은 후보 심이 실제 심인지 여부를 검증하는 단계를 더 포함한다. 위에서 설명한 것처럼 센서는 여러 각도에서 이미지 데이터를 수집할 수 있다. 서로 다른 각도에서 캡쳐된 각 이미지에 대해 해당 각도에서 결정된 후보 심이 실제 심인지 여부를 나타내는 신뢰도를 결정할 수 있다. 여러 각도에서 캡쳐한 뷰를 기반으로 신뢰도 값이 임계값을 초과하는 경우 후보 심이 실제 심으로 검증될 수 있다. 일부 실시예에서, 방법(900)은 또한 후보 심을 심 유형으로 분류하는 단계를 포함한다. 예를 들어, 신경망은 후보 심이 맞대기 조인트, 코너 조인트, 에지 조인트, 랩 조인트, 티 조인트 등인지 결정할 수 있다.Additionally, method 900 further includes verifying whether the candidate Sim is an actual Sim. As explained above, sensors can collect image data from multiple angles. For each image captured at a different angle, a confidence level indicating whether the candidate image determined at that angle is the actual image can be determined. If the reliability value exceeds a threshold based on views captured from multiple angles, the candidate Sim can be verified as an actual Sim. In some embodiments, method 900 also includes classifying candidate Sims into Sim types. For example, a neural network can determine whether a candidate seam is a butt joint, corner joint, edge joint, lap joint, tee joint, etc.

일부 실시예에서, 후보 심이 식별되고 검증된 후, 점들의 서브셋이 함께 클러스터되어 연속적이고 연속적인 심을 형성할 수 있다. 단계(908)에서, 방법(900)은 후보 심에 기초하여 웰딩 로봇에 대한 웰딩 명령을 생성하는 것을 포함한다. 예를 들어, 웰딩 명령은 포인트 서브셋의 한쪽 끝에서 포인트 서브셋의 다른 쪽 끝까지의 경로를 추적하여 생성될 수 있다. 이렇게 하면 심의 경로가 생성될 수 있다. 다르게 말하면, 웰딩 헤드로 이 경로를 추적하여 웰딩을 만들 수 있다. 또한 식별되고 지역화된 후보 심을 기반으로 경로 계획을 수행할 수 있다. 예를 들어, 점의 서브셋을 클러스터링하여 생성할 수 있는 심의 경로를 기반으로 경로 계획을 수행할 수 있다.In some embodiments, after candidate seams are identified and verified, subsets of points may be clustered together to form continuous, contiguous seams. At step 908, the method 900 includes generating a welding command for the welding robot based on the candidate seam. For example, a welding command may be generated by tracing a path from one end of a subset of points to the other end of the subset of points. This way, a deliberation path can be created. In other words, a weld can be created by tracing this path with the welding head. Additionally, route planning can be performed based on identified and localized candidate simulations. For example, path planning can be performed based on a deliberative path that can be generated by clustering a subset of points.

일부 실시예에서, 웰딩 명령은 심의 유형(예를 들어 맞대기 심, 코너 심, 모서리 심, 랩 심, T자형 심 등)에 기초할 수 있다. 일부 실시예에서, 웰딩 명령은 사용자 인터페이스(예를 들어, 도 1의 사용자 인터페이스(106))를 통한 사용자로부터의 입력에 기초하여 업데이트될 수 있다. 사용자는 사용자 인터페이스를 통해 사용 가능한 모든 후보 심 중에서 웰딩할 후보 심을 선택할 수 있다. 선택한 후보 심에 대해 경로 계획을 수행할 수 있으며 선택한 후보 심에 대한 웰딩 명령을 생성할 수 있다. 일부 실시예에서, 사용자는 사용자 인터페이스를 통해 웰딩 파라미터를 업데이트할 수 있다. 웰딩 명령은 업데이트된 웰딩 파라미터에 따라 업데이트될 수 있다.In some embodiments, welding instructions may be based on the type of seam (e.g., butt seam, corner seam, corner seam, lap seam, T-shaped seam, etc.). In some embodiments, welding instructions may be updated based on input from the user through a user interface (e.g., user interface 106 of FIG. 1). The user can select a candidate seam to weld from among all available candidate seams through the user interface. Path planning can be performed on the selected candidate seam and welding commands can be created for the selected candidate seam. In some embodiments, a user can update welding parameters through a user interface. Welding commands can be updated according to updated welding parameters.

이러한 방식으로, 웰딩 로봇은 웰딩할 파트에 대한 사전 정보(예를 들어 CAD 모델) 없이 방법(900)을 구현함으로써 작동 및 제어될 수 있다. 웰딩 명령을 생성하기 위해 파트가 스캔되므로 파트의 스캔된 이미지 리프레젠테이션에 하나 이상의 후보 심이 애노테이션으로 추가될 수 있다(예컨대, 사용자 인터페이스를 통해). 애노테이션이 달린 리프레젠테이션을 사용하여 파트의 3D 모델을 정의할 수 있다. 파트의 3D 모델은 파트의 추가 인스턴스를 후속 웰딩하기 위해 데이터베이스에 저장할 수 있다.In this way, the welding robot can be operated and controlled by implementing the method 900 without prior information about the part to be welded (e.g., a CAD model). As the part is scanned to generate welding instructions, one or more candidate seams may be annotated (e.g., via a user interface) to a scanned image representation of the part. You can use annotated representations to define a 3D model of a part. The 3D model of the part can be stored in a database for subsequent welding of additional instances of the part.

도 10은 다양한 실시예에 따른 오토노머스 웰딩을 수행하기 위한 방법(1000)의 흐름도이다. 보다 구체적으로, 도 10은 일부 예에 따른 웰딩 로봇(예를 들어, 도 1의 로봇(110))을 작동 및 제어하기 위한 방법(1000)의 흐름도이다. 단계(1002)에서, 방법(1000)은 파트의 CAD 모델에 기초하여 웰딩될 파트 상의 후보 심의 예상 방향 및 예상 위치를 식별하는 단계를 포함한다. 예상 방향과 예상 위치는 사용자/작업자가 CAD 모델에 제공한 애노테이션을 사용하여 결정될 수 있다. 추가적으로 또는 대안적으로, 컨트롤러(예를 들어, 도 1의 컨트롤러(108))는 모델 기하학적 구조에 기초하여 후보 심을 식별하도록 작동가능할 수 있다. 파트의 구성요소를 CAD 모델의 구성요소와 일치시키기 위해 객체 일치를 수행할 수 있다. 즉, 객체 매칭을 기반으로 후보 심의 예상 위치와 방향을 식별할 수 있다.Figure 10 is a flowchart of a method 1000 for performing autonomous welding according to various embodiments. More specifically, FIG. 10 is a flow diagram of a method 1000 for operating and controlling a welding robot (e.g., robot 110 of FIG. 1) according to some examples. At step 1002, the method 1000 includes identifying an expected direction and expected location of a candidate seam on a part to be welded based on a CAD model of the part. The expected direction and expected position can be determined using annotations provided to the CAD model by the user/operator. Additionally or alternatively, a controller (e.g., controller 108 of FIG. 1) may be operable to identify candidate seams based on model geometry. You can perform object matching to match components in a part to components in a CAD model. In other words, the expected location and direction of candidate deliberation can be identified based on object matching.

단계(1004)에서, 방법(1000)은 하나 이상의 센서(예를 들어, 도 1의 센서(들)(102))를 사용하여 워크스페이스(예를 들어, 도 1의 워크스페이스(101))의 이미지 데이터를 획득하는 단계를 포함한다. 이미지 데이터에는 워크스페이스의 2D 및/또는 3D 이미지가 포함될 수 있다. 전술한 바와 같이, 작업공간은 웰딩될 하나 이상의 파트와 파트를 안전한 방식으로 고정할 수 있는 픽스쳐 및/또는 클램프를 포함할 수 있다. 일부 실시예에서, 이미지 데이터로부터 포인트 클라우드가 생성될 수 있다. 예를 들어, 영상을 서로 겹쳐서 3차원 영상 데이터를 재구성하고 생성할 수 있다. 3D 이미지 데이터를 조합하여 포인트 클라우드를 생성할 수 있다.At step 1004, method 1000 uses one or more sensors (e.g., sensor(s) 102 of FIG. 1) to monitor a workspace (e.g., workspace 101 of FIG. 1). It includes acquiring image data. Image data may include 2D and/or 3D images of the workspace. As described above, the workspace may include one or more parts to be welded and fixtures and/or clamps to secure the parts in a secure manner. In some embodiments, a point cloud may be generated from image data. For example, three-dimensional image data can be reconstructed and generated by overlapping images. A point cloud can be created by combining 3D image data.

일부 실시예에서, 웰딩 명령을 생성하는 처리 시간을 줄이기 위해 센서는 부분 스캔을 수행하도록 구성된다. 다르게 말하면 워크스페이스를 모든 각도에서 스캔하는 대신 몇 가지 각도(예컨대, 후보 심이 보일 것으로 예상되는 각도)에서 이미지 데이터가 수집된다. 이러한 실시예에서 이미지 데이터로부터 생성된 포인트 클라우드는 부분 포인트 클라우드이다. 예를 들어 모델에서 웰딩할 심이 포함되지 않은 것으로 표시된 파트 부분을 포함하지 않는 부분 포인트 크라우드를 생성하면 스캔 및/또는 처리 시간을 줄일 수 있다. In some embodiments, the sensor is configured to perform partial scans to reduce processing time to generate welding commands. Put differently, instead of scanning the workspace from every angle, image data is collected from several angles (e.g., the angles at which candidate Sims are expected to be viewed). In this embodiment, the point cloud generated from image data is a partial point cloud. For example, creating a partial point crowd that does not include parts of the part that are marked as not containing seams to be welded in the model can reduce scanning and/or processing time.

단계(1006)에서, 방법(1000)은 이미지 데이터, 포인트 클라우드, 및/또는 부분 포인트 클라우드에 기초하여 후보 심을 식별하는 것을 포함한다. 예를 들어, 컨트롤러(108)(도 1)는 위에서 설명한 기술을 사용하여 후보 심을 식별할 수 있다. At step 1006, method 1000 includes identifying candidate seams based on image data, point clouds, and/or partial point clouds. For example, controller 108 (Figure 1) may identify candidate Sims using the techniques described above.

단계(1008)에서, 방법(1000)은 후보 심의 실제 위치 및 실제 방향을 식별하는 것을 포함한다. 예를 들어, 단계 1002에서 점의 제1 서브셋이 모델링된 심으로 식별될 수 있다. 단계 1006에서, 점들의 제2 서브셋이 후보 심으로 식별될 수 있다. 일부 실시예에서, 포인트의 제1 하위 셋과 포인트의 제2 하위 셋이 비교될 수 있다(예를 들어, 도 6과 관련하여 위에 설명된 등록 기술을 사용하여). 후보 심의 실제 위치와 방향을 결정하기 위해 점의 제1 서브셋을 변형할 수 있다. 일부 실시예에서, 점들의 제1 서브셋과 점들의 제2 서브셋 사이의 비교는 점들의 제1 서브셋에 대한 허용오차(예를 들어, 후보 심의 예상 위치 및 예상 방향)를 결정하는 데 도움이 될 수 있다. 이러한 실시예에서, 점의 제1 서브셋은 후보 심의 실제 위치와 방향을 결정하기 위해 공차를 기반으로 변형되도록 허용될 수 있다. 다르게 말하면, 후보 심의 예상 위치와 예상 방향은 후보 심의 실제 위치와 실제 방향을 결정하기 위해 (일부 실시예에서는 허용 오차를 기반으로) 정제될 수 있다. 이러한 변형/정제 기술은 CAD 모델(예를 들어, 단계 1002의 CAD 모델)에서 정확하게 리프레젠테이션되지 않는 파트 표면의 지형을 설명할 수 있다.At step 1008, the method 1000 includes identifying the actual location and actual orientation of the candidate Sim. For example, in step 1002 a first subset of points may be identified as modeled seams. At step 1006, a second subset of points may be identified as candidate seams. In some embodiments, a first subset of points and a second subset of points may be compared (e.g., using the registration technique described above with respect to FIG. 6). The first subset of points may be transformed to determine the actual location and direction of the candidate deliberation. In some embodiments, a comparison between the first subset of points and the second subset of points may help determine a tolerance for the first subset of points (e.g., expected location and expected direction of a candidate deliberation). there is. In this embodiment, a first subset of points may be allowed to transform based on a tolerance to determine the actual location and orientation of the candidate seam. Stated differently, the predicted position and expected direction of the candidate seam may be refined (in some embodiments, based on a tolerance) to determine the actual position and actual direction of the candidate seam. These transformation/refinement techniques may describe topography of the part surface that is not accurately represented in the CAD model (e.g., the CAD model of step 1002).

단계(1010)에서, 방법(1000)은 후보 심의 실제 위치 및 실제 방향에 기초하여 웰딩 로봇에 대한 웰딩 명령을 생성하는 단계를 포함한다. 예를 들어, 후보 심의 실제 위치와 실제 방향을 기반으로 경로 계획을 수행할 수 있다.At step 1010, the method 1000 includes generating a welding command for the welding robot based on the actual location and actual orientation of the candidate seam. For example, route planning can be performed based on the candidate's actual location and actual direction.

도 9의 방법(900)과 같이, 후보 심의 실제 위치와 실제 방향이 식별되면, 방법(1000)은 위에서 설명된 기술을 사용하여 후보 심을 검증하는 단계를 포함할 수 있다. 그러나 방법(900)과 달리 방법(1000)에서는 사용자 상호작용이 필요하지 않을 수도 있다. 이는 웰딩할 하나 이상의 심이 이미 CAD 모델에 애노테이션으로 표시되어 있을 수 있기 때문이다. 따라서 어떤 경우에는 웰딩 로봇이 사용자 상호 작용 없이 방법(1000)을 구현함으로써 작동 및 제어될 수 있다.As with method 900 of FIG. 9, once the actual location and actual orientation of a candidate Sim are identified, method 1000 may include verifying the candidate Sim using the techniques described above. However, unlike method 900, method 1000 may not require user interaction. This is because one or more seams to be welded may already be annotated in the CAD model. Accordingly, in some cases a welding robot may be operated and controlled by implementing method 1000 without user interaction.

추가로, 또는 방법(1000)과 관련하여 위에서 설명한 단계에 대한 대안으로, 웰딩 로봇(예를 들어, 도 1의 로봇(110))은 다음과 같은 방식으로 오토노머스 웰딩을 수행하기 위해 웰딩 로봇을 작동 및 제어할 수 있다. 로봇(110), 특히 로봇(11)의 컨트롤러(108)는 워크스페이스 내의 파트의 위치(예: 포지셔너의 부품 위치)를 결정하고 파트의 리프레젠테이션(예: 포인트 클라우드 리프레젠테이션)을 생성하기 위해 파트가 포함된 워크스페이스를 스캔할 수 있다. 컨트롤러(108)에는 파트의 애노테이션이 달린 CAD 모델이 제공될 수 있다. 그런 다음, 컨트롤러(108)는 파트의 CAD(Computer Aided Design) 모델 및 파트의 리프레젠테이션에 따라(또는 그에 기초하여) 파트 상의 후보 심의 예상 위치 및 예상 방향을 결정할 수 있다. 예를 들어, 컨트롤러(108)는 모델 기하학적 구조에 기초하여 후보 심을 식별하도록 동작할 수 있고, 즉, 파트 리프레젠테이션의 구성요소 또는 특징(예를 들어 지형학적 특징)을 CAD 모델의 구성요소 또는 특징과 일치시키기 위해 객체 매칭이 수행될 수 있으며, 컨트롤러(108)는 파트 상의 후보 심의 예상 위치 및 예상 방향을 결정하는 데 이 객체 매칭을 사용하도록 동작가능할 수 있다. 예상 위치 및 방향이 결정되면, 컨트롤러(108)는 파트의 리프레젠테이션에 적어도 부분적으로 기초하여 후보 심의 실제 위치 및 실제 방향을 결정할 수 있다. 실제 위치 및 방향은 단계(1008)에 설명된 변형/정제 기술을 사용하여 결정될 수 있다.Additionally, or as an alternative to the steps described above with respect to method 1000, a welding robot (e.g., robot 110 in FIG. 1) may be used to perform autonomous welding in the following manner. can be operated and controlled. The controller 108 of the robot 110, particularly the robot 11, determines the position of the part within the workspace (e.g., part position in a positioner) and generates a representation of the part (e.g., a point cloud representation). You can scan workspaces that contain . The controller 108 may be provided with an annotated CAD model of the part. The controller 108 may then determine the expected location and expected direction of the candidate threads on the part according to (or based on) a computer aided design (CAD) model of the part and a representation of the part. For example, the controller 108 may operate to identify candidate seams based on model geometry, i.e., matching components or features of the part representation (e.g., topographic features) to components or features of the CAD model. Object matching may be performed to match and the controller 108 may be operable to use this object matching to determine the expected location and expected direction of the candidate core on the part. Once the expected location and orientation are determined, the controller 108 may determine the actual location and actual orientation of the candidate seam based at least in part on the representation of the part. The actual location and orientation may be determined using the transformation/refinement technique described in step 1008.

도 11은 다양한 실시예에 따른 오토노머스 웰딩을 수행하기 위한 방법(1100)의 흐름도이다. 보다 구체적으로, 도 11에는 로보틱 제조 환경에서 제조 로봇(110)(도 1)의 작동에 대한 예시적인 방법(1100)이 도시되어 있다. 제조 작업(예를 들어, 웰딩)이 수행될 하나 이상의 파트(114)은 제조 워크스페이스(101)의 다른 픽스쳐(116)(예를 들어, 포지셔너)에 픽스쳐(116)을 사용하여 위치 지정 및/또는 고정되는 것으로 가정된다. 하나 이상의 파트(114)을 배치한 후에 방법(1100)이 시작될 수 있다. 초기 단계로서, 방법(1100)은 하나 이상의 부분을 스캐닝하는 것을 포함한다(예를 들어, 블록 1110). 스캐닝은 하나 이상의 센서(102)(예를 들어, 로봇(110)에 연결되지 않은 스캐너)에 의해 수행될 수 있으며; 컨트롤러(108)는 제조 워크스페이스(101) 내의 파트의 위치를 결정하고 센서로부터 획득된 이미지 데이터 및/또는 이미지 또는 센서 데이터로부터 도출된 포인트 클라우드를 사용하여 파트 상의 하나 이상의 심을 식별하도록 구성될 수 있다(블록 1112 및 1114). 파트와 심은 도 1과 관련하여 설명된 기술 중 하나를 기반으로 위치를 파악하고 식별할 수 있다. 파트 및 심 위치가 결정되면, 컨트롤러(108)는 식별된 심을 따라 제조 로봇(110)에 대한 경로를 플롯팅한다(블록 1116). 플롯된 경로는 제조 워크스페이스(101)에서 자체 또는 다른 것과 충돌하지 않고 웰딩을 완료하기 위해 제조 로봇(110)의 최적화된 모션 파라미터를 포함할 수 있다. 웰딩을 완료하기 위해 제조 로봇(110)의 최적화된 동작 파라미터를 생성하는 데 인간의 입력이 필요하지 않다. 경로/궤적은 위에서 설명한 경로 계획 기술 중 하나를 기반으로 계획될 수 있다.Figure 11 is a flowchart of a method 1100 for performing autonomous welding according to various embodiments. More specifically, Figure 11 shows an example method 1100 for operation of a manufacturing robot 110 (Figure 1) in a robotic manufacturing environment. One or more parts 114 on which a manufacturing operation (e.g., welding) is to be performed is positioned using a fixture 116 to another fixture 116 (e.g., a positioner) in the manufacturing workspace 101 and/ Or it is assumed to be fixed. The method 1100 may begin after placing one or more parts 114. As an initial step, method 1100 includes scanning one or more portions (e.g., block 1110). Scanning may be performed by one or more sensors 102 (e.g., a scanner not connected to robot 110); The controller 108 may be configured to determine the location of a part within the manufacturing workspace 101 and identify one or more seams on the part using image data acquired from sensors and/or a point cloud derived from the image or sensor data. (Blocks 1112 and 1114). Parts and shims may be located and identified based on one of the techniques described with respect to FIG. 1 . Once the part and shim positions are determined, the controller 108 plots a path for the manufacturing robot 110 along the identified shims (block 1116). The plotted path may include optimized motion parameters of the manufacturing robot 110 to complete the welding without colliding with itself or anything else in the manufacturing workspace 101 . No human input is required to create optimized operating parameters of the manufacturing robot 110 to complete welding. The path/trajectory can be planned based on one of the path planning techniques described above.

"위치" 및 "방향"이라는 용어는 위의 공개에서 별도의 개체로 설명된다. 그러나 파트와 관련하여 사용되는 "위치"라는 용어는 " 파트가 배치되거나 배열되는 특정 방식"을 의미한다. 심과 관련하여 사용되는 "위치"라는 용어는 "파트의 심이 위치하거나 방향을 지정하는 특정 방식"을 의미한다. 따라서 파트/심의 위치는 본질적으로 파트/심의 방향을 설명할 수 있다. 따라서 '위치'에는 '방향'이 포함될 수 있다. 예를 들어, 위치에는 파트 또는 후보 심의 상대적인 물리적 위치나 방향(예컨대, 각도)이 포함될 수 있다. The terms “position” and “orientation” are described as separate entities in the above disclosure. However, the term "position" when used in relation to a part means "the particular way in which the part is placed or arranged." The term "position" when used in relation to seams means "the specific way in which the seams of a part are positioned or oriented." Therefore, the location of the part/seam can essentially describe the direction of the part/seam. Therefore, ‘location’ can include ‘direction’. For example, the location may include the relative physical position or orientation (e.g., angle) of the part or candidate seam.

달리 명시하지 않는 한, 값보다 앞선 "대략", "대략" 또는 "실질적으로"는 명시된 값의 +/- 10%를 의미한다. 달리 명시하지 않는 한, "평행"으로 설명된 두 개체는 나란히 있고 두 개체 사이의 거리는 일정하거나 10% 이하로 변화한다. 달리 명시하지 않는 한, 수직인 것으로 설명되는 두 객체는 80도에서 100도 사이의 각도로 교차한다. 설명된 실시예에서는 수정이 가능하며, 청구 범위 내에서 다른 예도 가능하다.Unless otherwise specified, the words "approximately", "approximately" or "substantially" preceding a value mean +/- 10% of the stated value. Unless otherwise specified, two objects described as "parallel" are side by side and the distance between them is constant or varies by no more than 10%. Unless otherwise specified, two objects described as perpendicular intersect at an angle between 80 and 100 degrees. Modifications are possible in the described embodiments and other examples are possible within the scope of the claims.

Claims (26)

웰딩(welding) 로봇(robot)에 대한 명령(instruction)을 생성하는 컴퓨터-구현된(computer-implemented) 방법으로서,
웰딩 될 파트(part)의 Computer Aided Design(CAD) 모델(model)에 기초하여 상기 파트 상 후보(candidate) 심(seam)의 예상되는 위치를 식별(identifying)하는 것;
상기 파트의 리프레젠테이션(representation)을 생성하도록 상기 파트를 포함하는 워크스페이스(workspace)를 스캔(scanning)하는 것;
상기 후보 심의 예상되는 위치 및 상기 파트의 리프레젠테이션에 기초하여 상기 파트 상 후보 심을 식별하는 것;
상기 후보 심의 실제 위치를 결정하는 것; 및
상기 후보 심의 실제 위치에 적어도 부분적으로 기초하여 상기 웰딩 로봇에 대한 웰딩 명령을 생셩하는 것;
을 포함하는,
컴퓨터-구현된 방법.
A computer-implemented method of generating instructions for a welding robot, comprising:
identifying the expected location of a candidate seam on the part based on a Computer Aided Design (CAD) model of the part to be welded;
scanning a workspace containing the part to create a representation of the part;
identifying candidate Sims for the part based on the expected location of the candidate Sims and the representation of the part;
determining the actual location of said candidate deliberation; and
Generating welding commands for the welding robot based at least in part on the actual location of the candidate seam;
Including,
Computer-implemented method.
제1항에 있어서,
상기 후보 심의 실제 위치를 결정하는 것은,
상기 파트의 리프레젠테이션에 적어도 부분적으로 기초하여 상기 후보 심의 예상되는 위치를 업데이트(update)하는 것
을 더 포함하는,
컴퓨터-구현된 방법.
According to paragraph 1,
To determine the actual location of the candidate deliberation,
updating the expected position of the candidate deliberations based at least in part on the representation of the part.
Containing more,
Computer-implemented method.
제1항에 있어서,
상기 후보 심의 실제 위치를 결정하는 것은,
상기 파트의 리프레젠테이션에 적어도 부분적으로 기초하여 상기 후보 심의 예상되는 위치에 대한 톨러렌스(tolerance)를 결정하는 것; 및
상기 톨러렌스에 적어도 부분적으로 기초하여 상기 후보 심의 예상되는 위치를 리파이닝(refining)하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to paragraph 1,
To determine the actual location of the candidate deliberation,
determining tolerance for the expected position of the candidate deliberation based at least in part on the representation of the part; and
refining the expected location of the candidate deliberation based at least in part on the tolerance;
Containing more,
Computer-implemented method.
제1항에 있어서,
상기 후보 심의 예상되는 위치를 식별하는 것은 상기 CAD 모델 내 컴포넌트(component)의 리프레젠테이션을 웰딩 될 파트 상의 상기 컴포넌트에 매칭(matching)하는 것을 더 포함하는,
컴퓨터-구현된 방법.
According to paragraph 1,
Identifying the expected location of the candidate thread further comprises matching a representation of a component in the CAD model to the component on the part to be welded,
Computer-implemented method.
제1항에 있어서,
상기 CAD 모델은 상기 후보 심의 어노테이션(annotation)을 포함하는,
컴퓨터-구현된 방법.
According to paragraph 1,
The CAD model includes the candidate deliberation annotation,
Computer-implemented method.
제1항에 있어서,
상기 후보 심을 식별하는 것은
상기 파트의 리프레젠테이션에 기초하여 웰딩될 파트 상의 복수의 포인트, 즉 심을 형성하는 복수의 포인트 중 적어도 일부 포인트를 식별하는 것
을 더 포함하는,
컴퓨터-구현된 방법.
According to paragraph 1,
Identifying the candidate Sim is
Identifying at least some points of a plurality of points on the part to be welded, i.e., a plurality of points forming a seam, based on the representation of the part.
Containing more,
Computer-implemented method.
제1항에 있어서,
상기 후보 심을 식별하는 것은,
상기 파트의 리프레젠테이션에 기초하여 웰딩될 파트 상의 복수의 포인트, 즉 심을 형성하는 복수의 포인트 중 적어도 일부 포인트를 식별하는 것;
상기 후보 심이 심인지 확인(verify)하는 것; 및
뉴럴 네트워크(neural network)를 이용하여, 상기 후보 심을 심의 타입(type)으로 식별하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to paragraph 1,
Identifying the candidate Sim is,
identifying at least some points of a plurality of points on a part to be welded, i.e., a plurality of points forming a seam, based on the representation of the part;
Verifying whether the candidate Sim is a Sim; and
Identifying the candidate Sim as a Sim type using a neural network;
Containing more,
Computer-implemented method.
제7항에 있어서,
상기 후보 심이 심인지 확인하는 것은,
이미지 데이터의 적어도 서브셋(subset)을 분석하는 것으로서, 상기 이미지 데이터의 서브셋이 상기 파트의 복수의 이미지를 포함하고, 상기 복수의 이미지로부터의 각 이미지는 상이한 앵글(angle)로부터 상기 파트의 포션(portion)을 캡쳐한 것인, 분석하는 것;
상기 복수의 이미지로부터의 각 이미지에 대하여: 상기 후보 심이 실제 심인지의 컨피던스(confidence) 값을 결정하는 것; 및
상기 복수의 이미지로부터의 각 이미지에 대한 컨피던스 값에 기초하여 상기 후보 심이 상기 심인지 확인하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
In clause 7,
To check whether the candidate Sim is a Sim,
Analyzing at least a subset of image data, wherein the subset of image data includes a plurality of images of the part, wherein each image from the plurality of images represents a portion of the part from a different angle. ) to capture, analyze;
For each image from the plurality of images: determining a confidence value that the candidate Sim is a real Sim; and
confirming whether the candidate Sim is the Sim based on a confidence value for each image from the plurality of images;
Containing more,
Computer-implemented method.
웰딩 로봇에 대해 웰딩 명령을 생성하는 컴퓨터-구현된 방법으로서, 상기 컴퓨터-구현된 방법은,
센서를 통해, 웰딩될 파트를 포함하는 워크스페이스의 이미지 데이터를 수득하는 것;
상기 이미지 데이터에 기초하여 웰딩될 파트 상 복수의 포인트를 식별하는 것;
상기 복수의 포인트로부터 웰딩될 파트 상 후보 심을 식별하는 것; 및
상기 후보 심의 식별에 적어도 부분적으로 기초하여 상기 웰딩 로봇에 대한 웰딩 명령을 생성하는 것;
을 포함하는,
컴퓨터-구현된 방법.
A computer-implemented method of generating welding commands for a welding robot, the computer-implemented method comprising:
Obtaining, through a sensor, image data of the workspace containing the part to be welded;
identifying a plurality of points on the part to be welded based on the image data;
identifying candidate seams on parts to be welded from the plurality of points; and
generating welding instructions for the welding robot based at least in part on the candidate deliberation identification;
Including,
Computer-implemented method.
제9항에 있어서,
상기 후보 심을 식별하는 것은
상기 이미지 데이터에 기초하여 상기 파트에 대해 상기 심을 로컬라이징(localizing)하는 것을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
Identifying the candidate Sim is
Further comprising localizing the shim to the part based on the image data,
Computer-implemented method.
제9항에 있어서,
상기 후보 심을 식별하는 것은 상기 후보 심을 형성하는 복수의 포인트 중 포인트의 서브셋을 식별하는 것을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
Identifying the candidate seam further comprises identifying a subset of points among the plurality of points forming the candidate seam.
Computer-implemented method.
제9항에 있어서,
상기 웰딩 명령은 상기 파트를 웰딩하는 웰딩 로봇에 대한 웰딩 경로(path)를 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
The welding command includes a welding path for a welding robot that welds the part,
Computer-implemented method.
제9항에 있어서,
뉴럴 네트워크를 이용하여, 상기 이미지 데이터에 기초하여 클램프 또는 픽스쳐 중 하나 이상으로서 상기 워크스페이스에 포함된 하나 이상의 오브젝트(object)를 분류(classifying)하는 것
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
Using a neural network, classifying one or more objects included in the workspace as one or more of a clamp or fixture based on the image data.
Containing more,
Computer-implemented method.
제13항에 있어서,
상기 하나 이상의 오브젝트를 분류하는 것은,
상기 이미지 데이터의 픽셀-와이즈(pixel-wise) 분류(classification)을 수행하는 것
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 13,
Classifying one or more objects includes:
Performing pixel-wise classification of the image data
Containing more,
Computer-implemented method.
제14항에 있어서,
상기 픽셀-와이즈 분류에 기초하여 하나 이상의 오브젝트의 리프레젠테이션을 포함하는 상기 이미지 데이터를 포함하는 하나 이상의 이미지 내 제1 포션을 식별하는 것; 및
상기 하나 이상의 이미지의 제2 포션으로부터 또 다른(another) 후보 심을 식별하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 14,
identifying a first portion within one or more images containing the image data including a representation of one or more objects based on the pixel-wise classification; and
identifying another candidate Sim from a second portion of the one or more images;
Containing more,
Computer-implemented method.
제9항에 있어서,
벗 조인트(butt joint), 코너 조인트(corner joint), 엣지 조인트(edge joint), 랩 조인트(lap joint), 및 티 조인트(tee joint)로 구성된 심의 타입(type)의 군(group)에 속하는 것으로 상기 후보 심을 식별하는 것;을 더 포함하고,
상기 웰딩 명령은 상기 심의 타입에 적어도 부분적으로 기초하여 생성되는.
컴퓨터-구현된 방법.
According to clause 9,
Belonging to a group of seam types consisting of butt joints, corner joints, edge joints, lap joints, and tee joints. Further comprising: identifying the candidate Sim,
The welding command is generated based at least in part on the shim type.
Computer-implemented method.
제9항에 있어서,
상기 후보 심을 식별하는 것은
상기 후보 심이 심인지 확인하는 것; 및
뉴럴 네트워크를 이용하여 심의 타입으로서 상기 후보 심을 식별하는 것;
을 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
Identifying the candidate Sim is
confirming whether the candidate Sim is a Sim; and
Identifying the candidate Sim as a Sim type using a neural network;
Including,
Computer-implemented method.
제17항에 있어서,
상기 후보심이 심인지 확인하는 것은
상기 이미지 데이터의 적어도 서브셋을 분석하는 것으로서, 상기 이미지 데이터의 서브셋이 상기 파트의 복수의 이미지를 포함하고, 상기 복수의 이미지로부터의 각 이미지는 상이한 앵글로부터 상기 파트의 포션을 캡쳐한 것인, 분석하는 것;
상기 복수의 이미지로부터의 각 이미지에 대하여: 상기 후보 심이 실제 심인지의 컨피던스 값을 결정하는 것; 및
상기 복수의 이미지로부터의 각 이미지에 대한 컨피던스 값에 기초하여 상기 후보 심이 상기 심인지 확인하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 17,
Checking whether the candidate is
Analyzing at least a subset of the image data, wherein the subset of image data includes a plurality of images of the part, each image from the plurality of images capturing a portion of the part from a different angle. to do;
For each image from the plurality of images: determining a confidence value whether the candidate Sim is a real Sim; and
confirming whether the candidate Sim is the Sim based on a confidence value for each image from the plurality of images;
Containing more,
Computer-implemented method.
제9항에 있어서,
상기 후보 심을 식별하는 것은:
상기 심이 심인지 확인하는 것;
뉴럴 네트워크를 이용하여, 상기 후보심을 심의 타입으로 식별하는 것; 및
상기 후보 심이 상기 심임을 확인하는 것에 응답으로, 상기 복수의 포인트 내 포인트의 서브셋의 클러스터를 정의(defining)하고, 이에 의해 상기 심을 형성하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
Identifying the candidate Sim is:
confirming that the shim is a shim;
Identifying the candidate mind as a deliberation type using a neural network; and
in response to confirming that the candidate seam is the seam, defining a cluster of a subset of points within the plurality of points, thereby forming the seam;
Containing more,
Computer-implemented method.
제9항에 있어서,
상기 후보 심은 제1 후보 심이고, 상기 컴퓨터-구현된 방법은,
유저 인터페이스(user interface)를 통해, 및 유저에게, 웰딩 될 수 있는 복수의 후보 심을 디스플레이(displaying)하는 것으로서, 상기 복수의 후보 심은 제1 후보 심을 포함하는, 디스플레이 하는 것;
상기 유저 인터페이스를 통해, 상기 복수의 후보 심으로부터의 제2 후보 심이 웰딩 될 것이라는 인디케이션(indication)을 리시브(receiving)하는 것; 및
상기 웰딩 로봇에 관한 상기 웰딩 명령을 업데이트(updating)하여, 상기 웰딩 로봇이 상기 제2 후보 심을 웰딩하는 명령을 받도록(instructed) 업데이트 하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
The candidate Sim is a first candidate Sim, and the computer-implemented method includes:
displaying, via a user interface and to a user, a plurality of candidate seams capable of being welded, the plurality of candidate seams including a first candidate seam;
receiving, through the user interface, an indication that a second candidate seam from the plurality of candidate seams will be welded; and
updating the welding instruction for the welding robot so that the welding robot is instructed to weld the second candidate seam;
Containing more,
Computer-implemented method.
제9항에 있어서,
유저 인터페이스를 통해, 유저로부터 웰딩 파라미터(parameter)의 변화를 리시브 하는 것;

상기 웰딩 파라미터 내 상기 변화에 적어도 부분적으로 기초하여 상기 웰딩 로봇에 관한 상기 웰딩 명령을 업데이트 하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
Receiving changes in welding parameters from the user through a user interface;
and
updating the welding command for the welding robot based at least in part on the change in the welding parameter;
Containing more,
Computer-implemented method.
제9항에 있어서,
웰딩 될 상기 파트를 스캔하는 것;
웰딩 될 상기 파트 상 하나 이상의 후보 심을 웰딩하는 명령을 포함하는 유저로부터 유저 인풋(input)을 리시브하는 것; 및
상기 스캔 및 상기 유저 인풋에 적어도 부분적으로 기초하여 웰딩 될 상기 파트의 3D 모델을 정의하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
scanning the part to be welded;
receiving user input from a user including instructions for welding one or more candidate seams on the part to be welded; and
defining a 3D model of the part to be welded based at least in part on the scan and the user input;
Containing more,
Computer-implemented method.
제9항에 있어서,
웰딩 될 상기 파트를 스캔하는 것;
웰딩 될 상기 파트 상 하나 이상의 후보 심을 웰딩하는 명령을 포함하는 유저로부터 유저 인풋을 리시브하는 것;
상기 스캔 및 상기 유저 인풋에 적어도 부분적으로 기초하여 웰딩 될 상기 파트의 3D 모델을 정의하는 것; 및
데이터베이스(database) 내 웰딩 될 상기 파트의 3D 모델을 세이브(saving)하는 것;
을 더 포함하는,
컴퓨터-구현된 방법.
According to clause 9,
scanning the part to be welded;
receiving user input from a user including instructions for welding one or more candidate seams on the part to be welded;
defining a 3D model of the part to be welded based at least in part on the scan and the user input; and
Saving the 3D model of the part to be welded in a database;
Containing more,
Computer-implemented method.
웰딩 로봇에 대한 명령을 생성하는 컴퓨터-구현된 방법으로서, 상기 컴퓨터-구현된 방법은:
상기 파트를 포함하는 워크스페이스를 스캔하여:
- 상기 워크스페이스 내 상기 파트의 위치를 결정하는 것; 및
- 상기 파트의 리프레젠테이션을 생성하는 것;
상기 파트의 상기 리프레젠테이션 및 상기 파트의 Computer Aided Design (CAD) 모델에 따라 웰딩 될 파트 상 후보 심의 예상되는 위치를 결정하는 것; 및
상기 파트의 상기 리프레젠테이션에 적어도 부분적으로 기초하여 상기 후보 심의 실제 위치를 결정하는 것;
을 포함하는,
컴퓨터-구현된 방법.
A computer-implemented method of generating instructions for a welding robot, the computer-implemented method comprising:
By scanning the workspace containing the above parts:
- determining the location of the part within the workspace; and
- creating a representation of said part;
determining the expected position of a candidate for a part to be welded according to the representation of the part and a Computer Aided Design (CAD) model of the part; and
determining an actual location of the candidate deliberation based at least in part on the representation of the part;
Including,
Computer-implemented method.
제24항에 있어서,
상기 CAD 모델은 상기 후보 심의 어노테이션을 포함하는,
컴퓨터-구현된 방법.
According to clause 24,
The CAD model includes the candidate deliberation annotation,
Computer-implemented method.
제25항에 있어서,
상기 후보 심의 실제 위치를 결정하는 것은 상기 파트의 리프레젠테이션에 적어도 부분적으로 기초하여 상기 후보 심의 예상되는 위치를 업데이트하는 것을 포함하는,
컴퓨터-구현된 방법.
According to clause 25,
Determining the actual location of the candidate deliberation includes updating the expected position of the candidate deliberation based at least in part on the representation of the part.
Computer-implemented method.
KR1020237032884A 2021-02-24 2022-02-24 Autonomous welding robot KR20230160276A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163153109P 2021-02-24 2021-02-24
US63/153,109 2021-02-24
US202163282827P 2021-11-24 2021-11-24
US63/282,827 2021-11-24
PCT/US2022/017741 WO2022182894A1 (en) 2021-02-24 2022-02-24 Autonomous welding robots

Publications (1)

Publication Number Publication Date
KR20230160276A true KR20230160276A (en) 2023-11-23

Family

ID=82901371

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237032884A KR20230160276A (en) 2021-02-24 2022-02-24 Autonomous welding robot
KR1020237032885A KR20230160277A (en) 2021-02-24 2022-02-24 Autonomous welding robot

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237032885A KR20230160277A (en) 2021-02-24 2022-02-24 Autonomous welding robot

Country Status (6)

Country Link
US (6) US11548162B2 (en)
EP (2) EP4297923A2 (en)
JP (2) JP2024508564A (en)
KR (2) KR20230160276A (en)
CA (2) CA3211502A1 (en)
WO (2) WO2022182894A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11407110B2 (en) * 2020-07-17 2022-08-09 Path Robotics, Inc. Real time feedback and dynamic adjustment for welding robots
CA3211502A1 (en) 2021-02-24 2022-09-01 Path Robotics, Inc. Autonomous welding robots
US11900534B2 (en) * 2021-07-30 2024-02-13 The Boeing Company Systems and methods for synthetic image generation
US11651554B2 (en) * 2021-07-30 2023-05-16 The Boeing Company Systems and methods for synthetic image generation
CN116604243B (en) * 2023-06-21 2024-02-27 中建国际城市建设有限公司 Welding mechanical arm for intelligent construction and welding method thereof

Family Cites Families (183)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1724301A (en) 1928-01-16 1929-08-13 Moriarty Alma Peck Silhouette corselet ensemble
US4148061A (en) 1972-05-18 1979-04-03 Lemelson Jerome H Scanning apparatus and method
US3532807A (en) 1967-10-05 1970-10-06 Webb James E Automatic closed circuit television arc guidance control
US4021840A (en) 1975-01-24 1977-05-03 General Dynamics Corporation Seam tracking welding system
US4011437A (en) 1975-09-12 1977-03-08 Cincinnati Milacron, Inc. Method and apparatus for compensating for unprogrammed changes in relative position between a machine and workpiece
US4255643A (en) 1979-03-28 1981-03-10 C-R-O, Inc. Programmed welding machine with continuously monitored override control
US4234777A (en) 1979-08-15 1980-11-18 C-R-O, Inc. Programmed welding machine with weld head speed override
US4380696A (en) 1980-11-12 1983-04-19 Unimation, Inc. Method and apparatus for manipulator welding apparatus with vision correction for workpiece sensing
JPS57113111A (en) 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
GB2092497B (en) 1981-02-06 1985-01-16 Honda Motor Co Ltd Welding torch assembly
IN155236B (en) 1981-03-20 1985-01-12 Gould Inc
JPH065486B2 (en) 1981-03-26 1994-01-19 株式会社安川電機 Robot trajectory control method
US6163946A (en) 1981-05-11 2000-12-26 Great Lakes Intellectual Property Vision target based assembly
US5608847A (en) 1981-05-11 1997-03-04 Sensor Adaptive Machines, Inc. Vision target based assembly
US6317953B1 (en) 1981-05-11 2001-11-20 Lmi-Diffracto Vision target based assembly
US5602967A (en) 1981-05-11 1997-02-11 Sensor Adaptive Machines, Inc. Vision target based assembly
US4412121A (en) 1981-08-28 1983-10-25 S R I International Implement positioning apparatus and process
US4492847A (en) 1981-09-30 1985-01-08 Unimation, Inc. Manipulator welding apparatus with sensing arrangements for weld slam tracking
JPS5858607A (en) 1981-10-05 1983-04-07 Sankyo Seiki Mfg Co Ltd Point measuring system of preset type robot
JPS5890113A (en) 1981-11-25 1983-05-28 Yamazaki Mazak Corp Establishment control of coordinate system at machining center
US5506682A (en) 1982-02-16 1996-04-09 Sensor Adaptive Machines Inc. Robot vision using targets
US4613942A (en) 1982-02-19 1986-09-23 Chen Richard M Orientation and control system for robots
JPS58177295A (en) 1982-04-07 1983-10-17 株式会社日立製作所 Robot
SE452719B (en) 1982-06-29 1987-12-14 Asea Ab INDUSTRIAL ROBOT
JPS5988279A (en) 1982-10-15 1984-05-22 新明和工業株式会社 Device for converting coordinate of robot with joint
ZA838150B (en) 1982-11-01 1984-06-27 Nat Res Dev Automatic welding
US4593173A (en) 1982-11-08 1986-06-03 National Research Development Corp. Electronic apparatus for automatic control of the placing of material at a junction between surfaces
US4590577A (en) 1982-12-01 1986-05-20 Yaskawa Electric Mfg. Co., Ltd. Welding robot controlling method
IL67599A (en) 1982-12-31 1986-09-30 Laser Ind Ltd Control apparatus particularly useful for controlling a laser
US4497996A (en) 1983-01-18 1985-02-05 Automatix Incorporated Arc welding system with vision
US4567348A (en) 1983-01-25 1986-01-28 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Automated weld torch guidance control system
FR2553698B1 (en) 1983-10-20 1987-05-15 Commissariat Energie Atomique TOOL HOLDER, FOR ROBOT, AND METHOD FOR IMPLEMENTING SAME
IT1174831B (en) 1983-11-30 1987-07-01 Armco Spa AUTOMATIC ELECTROWELDING MACHINE
JPS60177888A (en) 1984-02-22 1985-09-11 フアナツク株式会社 Combination system of visual sensor processor and robot controller
US4578554A (en) 1984-04-30 1986-03-25 Teledyne, Inc. Laser welding apparatus
DE3417868C2 (en) 1984-05-14 1986-08-07 Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt e.V., 5000 Köln Method for controlling robot movements
JPS6132113A (en) 1984-07-23 1986-02-14 Seiko Instr & Electronics Ltd Robot control system
JPS6150795A (en) 1984-08-17 1986-03-13 セイコーインスツルメンツ株式会社 Industrial robot
US5267143A (en) 1984-10-12 1993-11-30 Sensor Adaptive Machines, Incorporated Vision assisted fixture construction
US5374830A (en) 1984-10-12 1994-12-20 Sensor Adaptive Machines, Inc. Target based determination of robot and sensor alignment
US4555613A (en) 1984-10-17 1985-11-26 Unimation, Inc. Image sensing and welding arrangement for manipulator welding apparatus
JPS61183716A (en) 1985-02-08 1986-08-16 Hitachi Ltd Guiding device
US4804860A (en) 1985-05-02 1989-02-14 Robotic Vision Systems, Inc. Robot cell safety system
JPS61296409A (en) 1985-06-25 1986-12-27 Fanuc Ltd Robot control system
US4724301A (en) 1985-10-21 1988-02-09 Hitachi, Ltd. Apparatus utilizing light stripe image for detecting portion to be welded prior to welding thereof
US4675502A (en) 1985-12-23 1987-06-23 General Electric Company Real time tracking control for taught path robots
US4745857A (en) 1986-02-28 1988-05-24 Markem Corporation Programmable pad printing apparatus and method
JPS62232006A (en) 1986-04-02 1987-10-12 Yokogawa Electric Corp Robot system
US4725965A (en) 1986-07-23 1988-02-16 American Telephone And Telegraph Company Method for calibrating a SCARA robot
US5219264A (en) 1986-09-19 1993-06-15 Texas Instruments Incorporated Mobile robot on-board vision system
US4812614A (en) 1987-02-26 1989-03-14 Industrial Technology Research Institute Machine vision seam tracking method and apparatus for welding robots
JP2713899B2 (en) 1987-03-30 1998-02-16 株式会社日立製作所 Robot equipment
US4833383A (en) 1987-08-13 1989-05-23 Iowa State University Research Foundation, Inc. Means and method of camera space manipulation
US4907169A (en) 1987-09-30 1990-03-06 International Technical Associates Adaptive tracking vision and guidance system
US4845992A (en) 1987-12-22 1989-07-11 Dean Michael J Method and apparatus for bending rotor vanes
EP0323875A3 (en) 1988-01-08 1989-11-15 Prolion B.V. Ultrasonic detector, methods for searching a moving object, ultrasonic sensor unit, element for positioning an animal, terminal apparatus for an automatic milking system, and method for automatically milking an animal
JP2708458B2 (en) 1988-04-01 1998-02-04 株式会社豊田中央研究所 Copy control robot
US4969108A (en) 1988-04-08 1990-11-06 Cincinnati Milacron Inc. Vision seam tracking method and apparatus for a manipulator
US4979949A (en) 1988-04-26 1990-12-25 The Board Of Regents Of The University Of Washington Robot-aided system for surgery
DE3823836A1 (en) 1988-07-14 1990-01-18 Fraunhofer Ges Forschung METHOD FOR MEASURING THE EQUIPMENT OF CONSTRUCTION ELEMENTS, AND DEVICE FOR IMPLEMENTING THE METHOD
DE3830892C1 (en) 1988-09-10 1989-09-28 Fried. Krupp Gmbh, 4300 Essen, De
US4945493A (en) 1988-09-26 1990-07-31 Ford Motor Company Method and system for correcting a robot path
JPH02256430A (en) 1989-03-29 1990-10-17 Mitsubishi Electric Corp Automatic assembly device and method
US5053976A (en) 1989-05-22 1991-10-01 Honda Giken Kogyo Kabushiki Kaisha Method of teaching a robot
US5001324A (en) 1989-09-14 1991-03-19 General Electric Company Precision joint tracking laser welding system
JP2690603B2 (en) 1990-05-30 1997-12-10 ファナック株式会社 Vision sensor calibration method
US5096353A (en) 1990-07-27 1992-03-17 Motorola, Inc. Vision system for a robotic station
US5083073A (en) 1990-09-20 1992-01-21 Mazada Motor Manufacturing U.S.A. Corp. Method and apparatus for calibrating a vision guided robot
JP2764485B2 (en) 1991-08-27 1998-06-11 ファナック株式会社 Diagnosis method of real-time sensor
US5245409A (en) 1991-11-27 1993-09-14 Arvin Industries, Inc. Tube seam weld inspection device
US5300869A (en) 1992-07-30 1994-04-05 Iowa State University Research Foundation, Inc. Nonholonomic camera space manipulation
KR0160992B1 (en) 1992-08-13 1998-12-15 윤종룡 Position decision control method of robot
JP3053501B2 (en) 1992-10-20 2000-06-19 ファナック株式会社 Robot position teaching method
US5288991A (en) 1992-12-04 1994-02-22 International Business Machines Corporation Optical system for rapid inspection of via location
GB9300403D0 (en) 1993-01-11 1993-03-03 Huissoon Jan P Dynamic seam tracking with redundant axes control
JPH06328385A (en) 1993-05-20 1994-11-29 Fanuc Ltd Attitude control of visual sensor of industrial robot
JPH07266272A (en) 1994-03-29 1995-10-17 Nippon Telegr & Teleph Corp <Ntt> Follow-up method and device for manipulator
JP3040670B2 (en) 1994-08-22 2000-05-15 ファナック株式会社 Welding line tracking method and robot controller using laser sensor
US5798627A (en) 1995-01-04 1998-08-25 Gilliland; Malcolm T. Method for simultaneous operation of robot welders
US5572102A (en) 1995-02-28 1996-11-05 Budd Canada Inc. Method and apparatus for vision control of welding robots
US5612785A (en) 1996-01-03 1997-03-18 Servo Robot Inc. Twin sensor laser probe
US5925268A (en) 1996-06-06 1999-07-20 Engauge Inc. Laser welding apparatus employing a tilting mechanism and seam follower
US5961858A (en) 1996-06-06 1999-10-05 Engauge Inc. Laser welding apparatus employing a tilting mechanism
FR2752180B1 (en) 1996-08-08 1999-04-16 Axal WELDING STEERING METHOD AND DEVICE FOR WELDING BEAM
KR100200204B1 (en) 1996-11-18 1999-06-15 윤종용 Vision treatment and vision sensor for auto arc welder
KR100222940B1 (en) 1997-08-30 1999-10-01 윤종용 Calibration method utilizing a sensor and its system
US5959425A (en) 1998-10-15 1999-09-28 Fanuc Robotics North America, Inc. Vision guided automatic robotic path teaching method
JP2000135689A (en) 1998-10-30 2000-05-16 Fanuc Ltd Image processor for robot
JP4037588B2 (en) 1999-03-16 2008-01-23 株式会社東芝 Reactor control rod manufacturing method and manufacturing apparatus
US6304050B1 (en) 1999-07-19 2001-10-16 Steven B. Skaar Means and method of robot control relative to an arbitrary surface using camera-space manipulation
SE0001312D0 (en) 2000-04-10 2000-04-10 Abb Ab Industrial robot
US6430474B1 (en) 2001-04-03 2002-08-06 Xerox Corporation Tooling adapter for allowing selected manipulation of a workpiece
JP4257570B2 (en) 2002-07-17 2009-04-22 株式会社安川電機 Transfer robot teaching device and transfer robot teaching method
US6909066B2 (en) 2003-07-30 2005-06-21 Edison Welding Institute Adaptive and synergic fill welding method and apparatus
DE10345743A1 (en) 2003-10-01 2005-05-04 Kuka Roboter Gmbh Method and device for determining the position and orientation of an image receiving device
DE10361018C9 (en) 2003-12-23 2021-03-04 QUISS Qualitäts-Inspektionssysteme und Service GmbH Method for recognizing a structure to be applied to a substrate with a plurality of cameras and a device therefor
JP4917252B2 (en) 2004-07-23 2012-04-18 ファナック株式会社 Arc welding equipment
US20060047363A1 (en) 2004-08-31 2006-03-02 Farrelly Philip J Machine vision system for lab workcells
US20060049153A1 (en) 2004-09-08 2006-03-09 Cahoon Christopher L Dual feed laser welding system
GB0513899D0 (en) 2005-07-06 2005-08-10 Airbus Uk Ltd Program-controlled process
CN101351559A (en) 2005-11-09 2009-01-21 普里梅拉生物系统有限公司 Multiplexed quantitative detection of pathogens
WO2007072837A1 (en) 2005-12-20 2007-06-28 Semiconductor Energy Laboratory Co., Ltd. Laser irradiation apparatus and method for manufacturing semiconductor device
US7974737B2 (en) 2006-10-31 2011-07-05 GM Global Technology Operations LLC Apparatus and method of automated manufacturing
US9937577B2 (en) 2006-12-20 2018-04-10 Lincoln Global, Inc. System for a welding sequencer
DE102007008598A1 (en) 2007-02-19 2008-08-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Automatic programming of robots to weld stapled profiles onto micropanels using digital image capture
US7946439B1 (en) 2007-04-09 2011-05-24 Tech Serv LLC Protective steel membrane system and method of erection for secondary containment for an above ground storage tank
DE102007033309A1 (en) 2007-07-18 2009-01-22 Abb Ag Method for processing a contour on at least one workpiece by means of a robot
JP4302160B2 (en) 2007-09-12 2009-07-22 ファナック株式会社 Robot programming device for palletizing work by robot
US20120096702A1 (en) * 2007-09-14 2012-04-26 Alan Kingsley Automated construction system
ATE455618T1 (en) 2007-11-20 2010-02-15 Trumpf Werkzeugmaschinen Gmbh METHOD FOR DETERMINING A CHARACTERISTIC FOR THE ACCURACY OF A SEAM POSITION CONTROL
EP2090408B1 (en) 2008-02-13 2009-12-16 Abb As System and a method for visualization of process errors
DE102008032509A1 (en) 2008-07-10 2010-01-14 Epcos Ag Heating device and method for producing the heating device
US20100114338A1 (en) 2008-10-31 2010-05-06 Gm Global Technology Operations, Inc. Multi-goal path planning of welding robots with automatic sequencing
US9221117B2 (en) 2009-07-08 2015-12-29 Lincoln Global, Inc. System for characterizing manual welding operations
US9773429B2 (en) 2009-07-08 2017-09-26 Lincoln Global, Inc. System and method for manual welder training
DE102009045400B3 (en) 2009-10-06 2011-06-09 Bayerische Motoren Werke Aktiengesellschaft Joining device for a cohesive joining by means of a filler material
US8941726B2 (en) 2009-12-10 2015-01-27 Mitsubishi Electric Research Laboratories, Inc. Method and system for segmenting moving objects from images using foreground extraction
US9993891B2 (en) 2010-07-14 2018-06-12 Illinois Tool Works Inc. Welding parameter control via welder motion or position monitoring
US20130119040A1 (en) 2011-11-11 2013-05-16 Lincoln Global, Inc. System and method for adaptive fill welding using image capture
CA3041707C (en) 2011-11-15 2021-04-06 Manickam UMASUTHAN Method of real-time tracking of moving/flexible surfaces
WO2013147919A1 (en) 2012-03-29 2013-10-03 Dcg Systems, Inc. Method for evaluating the centerline of an arbitrarily shaped object
WO2014043697A2 (en) 2012-09-17 2014-03-20 Omniguide, Inc. Devices and methods for laser surgery
US9221137B2 (en) 2012-10-05 2015-12-29 Beckman Coulter, Inc. System and method for laser-based auto-alignment
KR20150067163A (en) 2012-10-05 2015-06-17 베크만 컬터, 인코포레이티드 System and method for camera-based auto-alignment
US10040141B2 (en) 2013-05-23 2018-08-07 Crc-Evans Pipeline International, Inc. Laser controlled internal welding machine for a pipeline
US9821415B2 (en) 2014-03-28 2017-11-21 Crc-Evans Pipeline International, Inc. Internal pipeline cooler
WO2014201163A1 (en) 2013-06-11 2014-12-18 Somatis Sensor Solutions LLC Systems and methods for sensing objects
US20150072323A1 (en) 2013-09-11 2015-03-12 Lincoln Global, Inc. Learning management system for a real-time simulated virtual reality welding training environment
US20150122781A1 (en) 2013-11-04 2015-05-07 Illinois Tool Works Inc. System and method for selecting weld parameters
US10083627B2 (en) 2013-11-05 2018-09-25 Lincoln Global, Inc. Virtual reality and real welding training system and method
US9836987B2 (en) 2014-02-14 2017-12-05 Lincoln Global, Inc. Virtual reality pipe welding simulator and setup
JP6286276B2 (en) 2014-05-09 2018-02-28 株式会社アマダホールディングス Welding machine and control method thereof
CN106233358A (en) 2014-06-02 2016-12-14 林肯环球股份有限公司 System and method for artificial welders training
US9724787B2 (en) 2014-08-07 2017-08-08 Illinois Tool Works Inc. System and method of monitoring a welding environment
CN107003656B (en) 2014-08-08 2020-02-07 机器人视觉科技股份有限公司 Sensor-based safety features for robotic devices
US10201868B2 (en) 2014-09-30 2019-02-12 Illinois Tool Works Inc. Systems and methods for gesture control of a welding system
JP5980867B2 (en) 2014-10-07 2016-08-31 ファナック株式会社 Robot teaching device that teaches robots offline
US10402959B2 (en) * 2014-11-05 2019-09-03 Illinois Tool Works Inc. System and method of active torch marker control
US10373304B2 (en) * 2014-11-05 2019-08-06 Illinois Tool Works Inc. System and method of arranging welding device markers
US9975196B2 (en) 2015-01-05 2018-05-22 University Of Kentucky Research Foundation Measurement of three-dimensional welding torch orientation for manual arc welding process
US9808993B2 (en) 2015-03-03 2017-11-07 Ricoh Co., Ltd. Method for solid freeform fabrication
US9643314B2 (en) 2015-03-04 2017-05-09 The Johns Hopkins University Robot control, training and collaboration in an immersive virtual reality environment
EP3268949B1 (en) 2015-03-09 2021-05-26 Illinois Tool Works Inc. Methods and apparatus to provide visual information associated with welding operations
US9977242B2 (en) 2015-03-26 2018-05-22 Illinois Tool Works Inc. Control of mediated reality welding system based on lighting conditions
US9666160B2 (en) 2015-03-26 2017-05-30 Illinois Tool Works Inc. Control of mediated reality welding system based on lighting conditions
JP2016219604A (en) 2015-05-20 2016-12-22 シチズン電子株式会社 Light-emitting device
WO2017012114A1 (en) 2015-07-23 2017-01-26 Abb Schweiz Ag Method and apparatus of identifying welding seams of welding object
US10290118B2 (en) 2015-08-06 2019-05-14 Cognex Corporation System and method for tying together machine vision coordinate spaces in a guided assembly environment
US10197987B2 (en) 2015-08-26 2019-02-05 The Boeing Company Use of manufacturing compounds to create fiducial marks
FI126900B (en) 2015-12-29 2017-07-31 Optiweld Oy Procedure and arrangement for analyzing a property of a weld joint
US10525596B2 (en) 2016-02-11 2020-01-07 Darryl Hammock Teleoperated robot for flood-welding operations
US10788836B2 (en) * 2016-02-29 2020-09-29 AI Incorporated Obstacle recognition method for autonomous robots
US10754337B2 (en) 2016-06-20 2020-08-25 Hypertherm, Inc. Systems and methods for planning paths to guide robots
EP3269487A1 (en) * 2016-07-12 2018-01-17 Fronius International GmbH Method for determining welding parameters for a welding process
GB201614989D0 (en) 2016-09-05 2016-10-19 Rolls Royce Plc Welding process
US10545480B2 (en) 2016-11-07 2020-01-28 Lincoln Global, Inc. System and method for manufacturing and control thereof
JP6682466B2 (en) 2017-03-17 2020-04-15 株式会社東芝 Optical inspection device
US10705024B2 (en) * 2017-03-17 2020-07-07 Lincoln Global, Inc. System and method for positive metal identification and intelligent consumable identification
JP6914067B2 (en) 2017-03-21 2021-08-04 株式会社神戸製鋼所 Motion program correction method and welding robot system
US10955814B2 (en) 2017-04-24 2021-03-23 Autodesk, Inc. Closed-loop robotic deposition of material
US20180322623A1 (en) * 2017-05-08 2018-11-08 Aquifi, Inc. Systems and methods for inspection and defect detection using 3-d scanning
US10853539B2 (en) 2017-05-26 2020-12-01 Autodesk, Inc. Robotic assembly of a mesh surface
US11179793B2 (en) 2017-09-12 2021-11-23 Autodesk, Inc. Automated edge welding based on edge recognition using separate positioning and welding robots
US11004202B2 (en) 2017-10-09 2021-05-11 The Board Of Trustees Of The Leland Stanford Junior University Systems and methods for semantic segmentation of 3D point clouds
US20210069813A1 (en) 2018-02-08 2021-03-11 Novarc Technologies Inc. Systems and methods for seam tracking in pipe welding
JP2021515250A (en) 2018-04-30 2021-06-17 パス ロボティクス,インコーポレイテッド Reflection falsification laser scanner
KR102087609B1 (en) 2018-07-10 2020-03-11 주식회사 성우하이텍 Vision unit
CN109226967B (en) 2018-07-25 2021-03-09 同高先进制造科技(太仓)有限公司 Active laser vision steady weld joint tracking system for laser-arc hybrid welding
US11440119B2 (en) 2018-10-12 2022-09-13 Teradyne, Inc. System and method for weld path generation
US11883909B2 (en) 2018-10-31 2024-01-30 Illinois Tool Works Inc. Systems and methods to design part weld processes
CN109540142B (en) 2018-11-27 2021-04-06 达闼科技(北京)有限公司 Robot positioning navigation method and device, and computing equipment
US11358282B2 (en) 2019-04-08 2022-06-14 Teradyne, Inc. System and method for constraint management of one or more robots
CN110064818B (en) 2019-05-21 2021-09-10 武汉东焊汽车装备有限公司 Double-layer welding equipment for automobile exhaust pipe
CN110524581B (en) 2019-09-16 2023-06-02 西安中科光电精密工程有限公司 Flexible welding robot system and welding method thereof
EP3812105B1 (en) 2019-10-24 2022-03-02 Deutsche Telekom AG Artificial intelligence architecture for industrial welding
CN111189393B (en) 2020-01-21 2021-10-01 北京卫星制造厂有限公司 High-precision global vision measurement method for three-dimensional thin-wall structural weld joint
US20210318673A1 (en) 2020-04-08 2021-10-14 BWXT Advanced Technologies LLC In-Situ Inspection Method Based on Digital Data Model of Weld
US11407110B2 (en) 2020-07-17 2022-08-09 Path Robotics, Inc. Real time feedback and dynamic adjustment for welding robots
MX2022000588A (en) 2021-01-15 2022-11-07 Illinois Tool Works Systems and methods to select weld parameters based on thermal, electrical, and/or chemical properties.
US20220250183A1 (en) 2021-02-10 2022-08-11 Illinois Tool Works Inc. Methods and apparatus to train a robotic welding system to perform welding
US20220258267A1 (en) 2021-02-15 2022-08-18 Illinois Tool Works Inc. Helmet based weld tracking systems
CA3211502A1 (en) 2021-02-24 2022-09-01 Path Robotics, Inc. Autonomous welding robots
CA3162295A1 (en) 2021-06-18 2022-12-18 Techjig Inc. Robotic cell and method of operating same

Also Published As

Publication number Publication date
US20220266453A1 (en) 2022-08-25
JP2024508564A (en) 2024-02-27
WO2022182896A3 (en) 2022-11-10
EP4297937A1 (en) 2024-01-03
JP2024508563A (en) 2024-02-27
US20220305593A1 (en) 2022-09-29
US11548162B2 (en) 2023-01-10
US20230047632A1 (en) 2023-02-16
US20220410402A1 (en) 2022-12-29
CA3211502A1 (en) 2022-09-01
KR20230160277A (en) 2023-11-23
US11801606B2 (en) 2023-10-31
US11759958B2 (en) 2023-09-19
WO2022182896A2 (en) 2022-09-01
US20240075629A1 (en) 2024-03-07
CA3211499A1 (en) 2022-09-01
EP4297923A2 (en) 2024-01-03
US20240033935A1 (en) 2024-02-01
WO2022182894A1 (en) 2022-09-01
US11648683B2 (en) 2023-05-16

Similar Documents

Publication Publication Date Title
US11648683B2 (en) Autonomous welding robots
Fang et al. Robot path planning optimization for welding complex joints
JP5981143B2 (en) Robot tool control method
US20190143523A1 (en) Robotic system architecture and control processes
US20130060369A1 (en) Method and system for generating instructions for an automated machine
Erdős et al. Process planning and offline programming for robotic remote laser welding systems
CN112958959A (en) Automatic welding and detection method based on three-dimensional vision
US20190009412A1 (en) Computer-Implemented Methods and Systems for Generating Material Processing Robotic Tool Paths
Ahmed et al. Object detection and motion planning for automated welding of tubular joints
US20230278224A1 (en) Tool calibration for manufacturing robots
US20230123712A1 (en) Generating simulated weld paths for a welding robot
CN113634958A (en) Three-dimensional vision-based automatic welding system and method for large structural part
JP3327854B2 (en) Teaching method and teaching device for welding robot
US20230330764A1 (en) Autonomous assembly robots
US20230173676A1 (en) Machine learning logic-based adjustment techniques for robots
JPH1063324A (en) Picture input-type robot system
US20240042614A1 (en) Techniques for multipass welding
US20230403475A1 (en) Reflection refuting laser scanner
Tsai et al. An automatic golf head robotic welding system using 3D machine vision system
US20240042605A1 (en) Apparatus and a Method for Automatically Programming a Robot to Follow Contours of Objects
CN117436255A (en) Virtual-real-fusion robot welding process evaluation method and system
CN114683283A (en) Teaching-free welding method and device for welding robot