KR20220002279A - 방법, 시스템 및 비휘발성 저장 매체 - Google Patents

방법, 시스템 및 비휘발성 저장 매체 Download PDF

Info

Publication number
KR20220002279A
KR20220002279A KR1020217032067A KR20217032067A KR20220002279A KR 20220002279 A KR20220002279 A KR 20220002279A KR 1020217032067 A KR1020217032067 A KR 1020217032067A KR 20217032067 A KR20217032067 A KR 20217032067A KR 20220002279 A KR20220002279 A KR 20220002279A
Authority
KR
South Korea
Prior art keywords
machine
model
sub
sensor
data
Prior art date
Application number
KR1020217032067A
Other languages
English (en)
Inventor
크리스티안 피에크닉
클라우스 바그너
Original Assignee
반델봇츠 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 반델봇츠 게엠베하 filed Critical 반델봇츠 게엠베하
Publication of KR20220002279A publication Critical patent/KR20220002279A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/423Teaching successive positions by walk-through, i.e. the tool head or end effector being grasped and guided directly, with or without servo-assistance, to follow a path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/427Teaching successive positions by tracking the position of a joystick or handle to control the positioning servo of the tool head, master-slave control
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36436Arm follows movement of handheld device, camera detects, analyses motion
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36479Record position on trigger of touch probe
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40116Learn by operator observation, symbiosis, show, watch
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

다양한 실시예에 따르면, 방법은 데이터 - 데이터는, 프로세스 플로우의 수행(101)에서, 작업 도구(104)의 핸들링을 나타내고, 프로세스 플로우는 복수의 하위 프로세스를 포함하고, 프로세스 모델(104m)은, 프로세스 활동을, 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 하위 프로세스의 공간 정보와 링크함 - 에 기초하여 머신 독립적인 프로세스 모델(104m)을 결정하는 것(103); 머신 독립적인 프로세스 모델(104m)을 머신(114)의 모델(114m)을 사용하여 머신(114)의 머신 특정적 제어 모델(116m) - 머신 특정적 제어 모델(116m)은 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 머신(114)의 동작 지점을 정의하고, 상기 동작 지점은 프로세스 활동 및 하위 프로세스의 공간 정보에 대응함 - 로 매핑하는 것(105)을 포함할 수 있다.

Description

방법, 시스템 및 비휘발성 저장 매체
다양한 실시예는 방법, 시스템 및 비휘발성 저장 매체에 관한 것이다.
산업용 로봇의 프로그래밍 및 관련 플랜트 제어의 프로그래밍은 모두 통상적으로 공급업체에 종속적이고 로봇에 종속적이다. 프로그래밍은 일반적으로 한 명 이상의 특별히 훈련된 전문가에 의해 프로그램 코드의 형태로 구현된다. 따라서, 프로그래밍은 특히, 트랙 기반의 애플리케이션(track-based application)(예를 들면, 용접, 접착(gluing), 페인팅)의 경우 복잡하고 비용이 많이 든다.
중소기업은 비용을 상쇄할 수 있는 정도의 낮은 생산 변동성의 대량 생산을 하지 않기 때문에, 비용으로 인해 산업용 로봇(간단히 로봇이라고도 함)에 의한 자동화는 이들 중소기업에 경제적으로 매력적이지 않다. 반대로, 대기업의 경우, 프로그래밍의 유연성 부족이 매력적이지 않을 수 있다. 프로그래밍 변환은 시간 소모적이며, 그 결과, 더 짧고 비경제적인 생산 사이클로 나타난다.
산업용 로봇과, 예를 들면, 엔드 이펙터(end effector)(예를 들면, 글루 건), 센서 시스템(예를 들면, 카메라) 및 제어 시스템(예를 들면, 프로그래머블 로직 컨트롤러(programmable logic controller; PLC))과 같은 아주 다양한 컴포넌트의 통합에 기인하여, 프로그래밍의 복잡성이 증가한다. 이와 관련하여, 종래에는 다음의 양태, 즉, 궤적의 형태의 이동 계획 및 이동 제어, 로봇에 부착되는 도구의 통합 및 제어, 장애 검출 및 핸들링을 비롯한 프로세스 로직, 프로세스 파라미터 및 변경된 경계 조건에 대한 가능한 적응, 및 플랜트 전체 제어에 대한 로봇의 제어의 통합이 고려되고 핸들링된다.
산업용 로봇의 프로그래밍은, 예를 들면, 전문가에 의해 수동으로 수행될 수 있다. 이것은 현재 96%보다 더 많은 애플리케이션에 여전히 적용된다. 프로그래머는, 로봇으로 하여금 실행 시간에 애플리케이션을 자율적으로 수행하게 하는 프로그램 코드를 수동으로 작성한다.
산업용 로봇의 프로그래밍은 CAD 기반의 코드 생성에 의해 전문가에 의해 대안적으로 또는 추가적으로 수행될 수 있다. 현실의 가상 표현(가상 세계로서 또한 지칭됨)이 생성되고 로봇은 가상 세계에서 프로그래밍된다. 시뮬레이션과 함께, 이것은 또한 보다 간단한 액세스를 가능하게 한다. 그러나, 이 CAD 기반의 코드 생성은 기술적 비전문가(layman)에 의해 쉽게 구현되지 않을 수 있다. 또한, 가상 세계는 종종 현실과는 크게 다르다. 심지어 약간의 차이가 실제 로봇의 작업에서 상당한 불일치로 나타날 수 있다. 이러한 이유 때문에, 코드 생성에 의해 생성되는 프로그램 코드는 일반적으로 프로그래머에 의해 추가적으로 조정된다.
종래에는, 모든 수동 프로그래밍에 대한 대안으로서 교수법(teaching method)(티치인(teach-in)이라고도 함)이 사용된다.
로봇은 교수법에 대해, 예를 들면 수동으로, 제어될 수 있다. 예를 들면, 민감한 로봇(코봇(cobot)이라고도 함)이 수동으로 또한 동작될 수 있다. 궤적(즉, 로봇이 이동하도록 의도되는 트랙)은 메커니즘 둘 모두를 사용하여 나타내어질 수 있다. 그러나, 로봇이 수행하도록 의도되는 궤적을 넘어 확장되는 활동은 여전히 복잡하며 따라서 교수법에 의해 고려되지 않는다. 예를 들면, 엔드 이펙터, 센서 및 제어 시스템과 같은 로봇의 아주 다양한 컴포넌트를, 따라서 수동으로 프로그래밍되어야만 하는 수행될 프로세스에 통합함에 있어서 복잡도가 존재한다.
교수법은 상호 작용식 입력 디바이스를 통해 대안적으로 또는 추가적으로 수행될 수 있다. 종래에는, 이 목적을 위해, 예를 들면, 6D 마우스 또는 상호 작용 펜(interaction pen)과 같은 판매자 특정적 입력 디바이스가 사용된다. 수동 제어 또는 수동 조작 제어와 유사하게, 이 경우, 궤적만이 유사하게 학습될(taught) 수 있다. 따라서, 로봇의 상이한 컴포넌트의 통합은 프로그래밍을 통해 수동으로 수행된다.
교수법은 센서 데이터 프로세싱에 의해 대안적으로 또는 추가적으로 수행될 수 있다. 이것을 행하기 위해, 센서 시스템(예를 들면, 카메라)을 로봇 제어에 직접적으로 통합하는, 이 목적을 위해 장착되는 로봇의 엔드 이펙터에 대한 상이한 확장부가 제공될 수 있다. 기술적인 한계에 기인하여, 이것은 지금까지 픽 앤드 플레이스(pick-and-place) 애플리케이션에만 적용 가능하였다.
일반적으로 말하면, 종래에는, 수동 프로그래밍 컴포넌트가 항상 수반된다. 따라서, 이들 종래의 방법의 공통적인 피쳐(feature)는, 수동 프로그래밍 컴포넌트가 기술적 비전문가의 능력을 초과하는 경우 그에 의해 구현이 완전히 취해지지 않을 수 있다는 것이다. 이것에 대한 이유는, 애플리케이션 전체가 (예를 들면, 궤적, 엔드 이펙터 제어, 센서 데이터 프로세싱 및 프로세스 제어에 대한 통합과 같은) 다양한 요인의 상호 작용을 수반하기 때문이다. 따라서, 간단한 교수법은 오로지 궤적의 명세(specification)에만 집중한다. 센서 데이터 프로세싱을 사용한 교수법은 로봇에 직접적으로 부착되는 센서에 기초한다. 그러나, 가시 범위는 엔드 이펙터 및 로봇에 의해 종종 제한된다. 또한, (예를 들면, 페인팅 동안) 공기 입자 또는 조명 조건을 변경하는 것은 로봇 상의 센서에 대해 부정적인 영향을 끼친다.
다양한 실시예에 따르면, 프로세스 플로우(process flow)의 자동화를 단순화하는 방법, 시스템 및 비휘발성 저장 매체가 제공된다.
다양한 실시예에 따르면, 방법은 다음의 것을 포함할 수 있다: 데이터 - 데이터는, 프로세스 플로우를 수행할 때, 작업 도구의 핸들링을 나타내고, 프로세스 플로우는 복수의 하위 프로세스를 포함하고, 프로세스 모델은, 프로세스 활동을, 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 하위 프로세스의 공간 정보와 링크함 - 를 기반으로 머신 독립적인 프로세스 모델을 결정하는 것; 머신 독립적인 프로세스 모델을 머신의 모델을 사용하여 머신의 머신 특정적 제어 모델 - 머신 특정적 제어 모델은 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 머신의 동작 지점을 정의하고, 상기 동작 지점은 프로세스 활동 및 하위 프로세스의 공간 정보에 대응함 - 로 매핑하는 것. 데이터는 작업 도구에 의한 프로세스 플로우의 수행에서 작업 도구의 핸들링을 나타낼 수 있다.
다양한 실시예에 따르면, 완료될 프로세스 태스크의 전체 인간 프로세스를 설명하는 머신 비특정적(machine-unspecific) 프로세스 모델이 생성되는 것으로 도시된다. 프로세스 모델은, 예를 들면, 프로세스 태스크가 사람에 의해 수행하는 방법을 추적하는 것에 의해 생성될 수 있다.
그 다음, 머신 비특정적 프로세스 모델은, 프로세스 태스크를 자동화된 방식으로 수행하도록 의도되는 하드웨어 플랫폼(일반적으로 머신이라고도 함)에 맞게 재단되는 머신 특정적 제어 모델로 변환된다. 선택된 하드웨어 플랫폼의 머신 특정적 정보가 고려된다.
하드웨어 플랫폼, 예를 들면, 그 PLC(프로그래머블 로직 컨트롤러)가 실행할 수 있는 제어 프로그램은, 그 다음, 머신 특정적 제어 모델로부터 형성될 수 있다.
도 1 및 도 3은 각각 다양한 실시예에 따른 방법을 개략적인 측면도로 도시한다.
도 2 및 도 4a는 각각 다양한 실시예에 따른 방법을 개략적인 흐름도로 도시한다.
도 4b는 다양한 실시예에 따른 방법을 실행하기 위한 시스템을 개략적인 시스템 다이어그램으로 도시한다.
도 5는 다양한 실시예에 따른 방법을 개략적인 모델 다이어그램으로 도시한다.
도 6은 다양한 실시예에 따른 방법을 개략적인 흐름도로 도시한다.
도 7은 다양한 실시예에 따른 머신을 개략적인 구조도로 도시한다.
다음의 상세한 설명에서, 상세한 설명의 일부를 형성하며 본 발명이 구현될 수 있는 특정한 실시예가 예시를 통해 도시되는 첨부의 도면에 대한 참조가 이루어진다. 이와 관련하여, 설명되는 도면(들)의 방위와 관련하여, "위", "아래", "전방", "후방", "앞", "뒤", 등등과 같은 방향의 용어가 사용된다. 실시예의 컴포넌트가 다수의 상이한 방위에서 배치될 수 있기 때문에, 방향 용어는 예시를 위한 역할을 하며 어떤 식으로든 제한하지는 않는다. 본 발명의 보호 범위를 벗어나지 않으면서, 다른 실시예가 명백하게 사용될 수 있고 구조적 또는 논리적 수정이 이루어질 수 있다. 본원에서 설명되는 다양한 실시예의 피쳐는, 달리 구체적으로 나타내지 않는 한, 서로 결합될 수 있다. 따라서, 다음의 상세한 설명은 제한적인 의미로 해석되어서는 안되며, 본 발명의 보호 범위는 첨부된 청구범위에 의해 정의된다.
이 설명의 맥락에서, 용어 "링크되는(linked)", "연결되는(connected)" 및 "커플링되는(coupled)"은, 직접적인 및 간접적인 링크, 직접적인 또는 간접적인 연결, 및 직접적인 또는 간접적인 커플링 양자, 예를 들면, 기계적인, 정수학적인, 열적인 및/또는 전기적인, 예를 들면, 직접적인 또는 간접적인, 연결 및/또는 상호 작용을 설명하기 위해 사용된다. 동일한 또는 유사한 엘리먼트는, 도면에서 동일한 참조 번호를 사용하여 표시되는 것이 적절한 한, 도면에서 동일한 참조 번호를 사용하여 표시된다. 커플링은 기계적 상호 작용(예를 들면, 힘, 토크, 등등)을 전달하도록 구성될 수 있다.
용어 "프로세서"는 데이터 또는 신호의 프로세싱을 허용하는 임의의 타입의 엔티티를 의미하는 것으로 이해될 수 있다. 데이터 또는 신호는 프로세서에 의해 실행되는 적어도 하나의(즉, 하나의 또는 하나보다 더 많은) 특정한 기능에 따라 프로세싱될 수 있다. 프로세서는 아날로그 회로, 디지털 회로, 혼합 신호 회로, 논리 회로, 마이크로프로세서, 중앙 프로세싱 유닛(central processing unit; CPU), 그래픽 프로세싱 유닛(GPU), 디지털 신호 프로세서(digital signal processor; DSP), 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 집적 회로 또는 이들의 임의의 조합을 구비할 수 있거나 또는 이들로부터 형성될 수 있다. 이하에서 더욱 상세하게 설명되는 각각의 기능의 임의의 다른 타입의 구현도 또한 프로세서 또는 논리 회로를 의미하는 것으로 이해될 수 있다. 본원에서 상세하게 설명되는 방법 단계 중 하나 이상은, 프로세서에 의해 실행되는 하나 이상의 특정한 기능에 의해, 프로세서에 의해 명백하게 실행(예를 들면, 구현)될 수 있다.
용어 "시스템"은 상호 작용하는 엔티티의 세트를 의미하는 것으로 이해될 수 있다. 상호 작용하는 엔티티의 세트는 적어도 하나의 기계적 컴포넌트, 적어도 하나의 전기 기계적 트랜스듀서(또는 다른 타입의 액추에이터), 적어도 하나의 전기 컴포넌트, 적어도 하나의 명령어(예를 들면, 저장 매체에서 코딩됨), 및/또는 적어도 하나의 제어 디바이스를 구비할 수 있거나 또는 이들로부터 형성될 수 있다.
용어 "액추에이터"는 제어에 응답하여 메커니즘 또는 프로세스에 영향을 끼치도록 구성되는 컴포넌트를 의미하는 것으로 이해될 수 있다. 액추에이터는 제어 디바이스에 의해 출력되는 명령어("제어")를 기계적 움직임 또는 압력 또는 온도와 같은 물리적 파라미터에서의 변화로 변환할 수 있다. 액추에이터, 예를 들면, 전기기계 컨버터는, 예를 들면, 제어에 응답하여 (예를 들면, 움직임을 통해) 전기 에너지를 기계적 에너지로 변환하도록 구성될 수 있다.
용어 "제어 디바이스"는, 예를 들면, 저장 매체에, 펌웨어에 또는 이들의 조합으로 저장되는 소프트웨어를 실행할 수 있고, 그에 기초하여 명령어를 출력할 수 있는 회로부(circuitry) 및/또는 프로세서를 구비할 수 있는 임의의 타입의 로직 구현 엔티티를 의미하는 것으로 이해될 수 있다. 제어 디바이스는, 시스템(예를 들면, 그 동작 지점)의, 예를 들면, 머신 또는 플랜트, 예를 들면, 적어도 그것의 운동학적 체인(kinematic chain)의 동작을 제어하기 위해, 예를 들면, 코드 세그먼트(예를 들면, 소프트웨어)에 의해 구성될 수 있다.
제어는 시스템의 의도적인 영향을 의미하는 것으로 이해될 수 있다. 시스템의 상태는 액추에이터를 사용하여 명세에 따라 수정될 수 있다. 규제는 제어를 의미하는 것으로 이해될 수 있는데, 여기서 장애에 기인하는 시스템의 상태의 변화가 추가적으로 대응된다. 제어는 명확하게 순방향으로 지향된 제어 경로(forward-directed control path)를 가질 수 있으며, 따라서, 입력 파라미터를 출력 파라미터로 변환하는 프로세스 제어를 명확하게 구현할 수 있다. 그러나, 제어 경로는 제어 루프의 또한 일부일 수 있고, 그 결과, 규제가 구현된다. 순방향 전용 제어와는 대조적으로, 규제는 제어 루프(피드백)에 의해 영향을 받는 입력 파라미터에 대한 출력 파라미터에 의한 영향을 지속적으로 발휘한다.
프로세스 플로우는 사전 정의된 프로세스 태스크를 수행하는 모든 프로시져(예를 들면, 제어된 이벤트의 시간적 시퀀스)의 합계를 의미하는 것으로 이해될 수 있다. 프로세스 플로우의 하위 프로세스 각각은 하위 태스크(즉, 프로세스 태스크의 일부)를 수행할 수 있다. 프로세스 플로우의 타입에 따라, 개개의 하위 프로세스는 연동될(interlocked) 수 있고 및/또는 서로에 기초할 수 있는데, 예를 들면, 엄격한 시퀀스로 발생할 수 있고, 및/또는 서로 독립적일 수 있는데, 예를 들면, 상호 교환 가능할 수 있다. 예를 들면, 정확하게, 조건부 하위 프로세스에 할당되는 프로세스 상황이 발생하는 경우, 예를 들면, 측정량(measured quantity)에 대한 임계 값이 미달되거나 또는 패턴 인식이 프로세싱될 워크피스를 인식하는 경우, 조건부 하위 프로세스가 수행, 시작 또는 종료될 수 있다.
프로세스 활동 및 프로세스 활동의 적어도 하나의 벡터가 각각의 하위 프로세스에 할당될 수 있다. 벡터는 프로세스 활동의 적어도 하나의 포지션, 내부에서의 변화, 공간 분포 및/또는 적어도 하나의 방향을 정의할 수 있다. 벡터에 의해 단순화된 형태로 설명되는 프로세스 활동에 관련이 있는 공간 세부 사항은 또한 더 복잡하거나 또는 더욱 상세할 수 있다(본원에서 더 일반적으로는 공간 정보로서 지칭됨). 프로세스 활동에 관련이 있으며, 예를 들면, 프로세스 활동의 지속 기간, 시작, 종료 및/또는 타이밍을 정의하는 시간 표시가 공간 정보에 옵션 사항으로(optionally) 할당될 수 있다.
프로세스 플로우가 수동으로 작동되는 작업 도구에 의해 수행되는 경우, 프로세스 활동은, 작업 도구에 대한 프로세스 태스크를 달성하기 위한 대응하는 효과를 제공하기 위해(즉, 하위 태스크를 수행하기 위해) 작업 도구에 의해 수행되는 프로시져의 합을 설명할 수 있다. 대응하는 공간 정보는, 효과가 어느 곳에 제공되도록 의도되는지 및/또는 효과가 어떤 분포를 가지고 제공되도록 의도되는지 및/또는 이 목적을 위해 작업 도구가 어떤 공간 위치(즉, 포지션 및/또는 방위) 내에 배치되는지를 설명할 수 있다. 작업 도구의 핸들링은, 작업 도구가 프로세스 플로우의 수행에서 동작되고 및/또는 작동되는 방식, 예를 들면, 그것이 어떻게 유지되는지, 그것이 어떻게 견고하게 적용되는지, 및/또는 프로시져가 어떻게 실행되는지를 설명할 수 있다.
모델은 원래의 것(original), 예를 들면, 물리적 오브젝트(예를 들면, 머신) 또는 프로시져(예를 들면, 제어 프로시져 또는 프로세스 플로우)의 데이터 기반의 (예를 들면, 디지털 및/또는 가상) 표현을 의미하는 것으로 이해될 수 있다. 원래의 것은, 모델("모델 정보", 즉, 모델 상으로의 원래의 것의 매핑)을 형성하기 위해, 추상화, 파라미터화 및/또는 단순화될 수 있다. 모델은, 예를 들면, 원래의 것에 관련이 있는 물리적 정보(예를 들면, 길이, 거리, 중량, 볼륨, 구성, 등등), 움직임 관련 정보(예를 들면, 포지션, 방위, 이동의 방향, 가속도, 이동의 속도, 등등), 논리적 정보(링크, 시퀀스, 커플링, 상호 작용, 종속성, 등등), 시간 관련 정보(예를 들면, 시간, 총 지속 기간, 빈도, 사이클 지속 기간, 등등), 및/또는 기능 정보(예를 들면, 전류 강도, 효과, 특성 다이어그램 또는 특성 곡선, 동작 지점 공간, 힘, 자유도, 등등)를 포함할 수 있다.
제어 모델은, 상응하여, 자동화된 제어의 형식적인 표현을 나타낼 수 있다. 제어 모델은 (예를 들면, 머신을 동작 지점으로 이동시키기 위한) 제어에 대한 복수의 명령어 및 더구나 기준 - 기준의 이행은 그들 기준에 할당되는 명령어를 유발, 종료 또는 유지함 - 을 가질 수 있다. 제어 모델은, 복수의 기준 및/또는 복수의 명령어를 논리적으로 상호 링크하며, 흐름(예를 들면, 흐름도) - 이 흐름에 따라 제어가 수행됨 - 을 구현하는 제어 로직을 추가로 가질 수 있다.
프로세스 모델은, 유사하게, 프로세스 플로우의 형식적인 표현을 나타낼 수 있다. 프로세스 모델은, 프로세스 활동과 대응하는 공간 정보 사이에서 복수의 링크를 가질 수 있고, 옵션 사항으로, 예를 들면, 프로세스 활동에서 발생하는, 프로세스 활동을 결정하는 또는 종료시키는 대응하는 프로세스 상황을 프로세스 활동에 할당할 수 있다. 프로세스 모델은 또한, 복수의 프로세스 상황 및/또는 복수의 프로세스 활동을 논리적으로 상호 링크하는, 및/또는 흐름(예를 들면, 흐름도) - 이 흐름에 따라 프로세스 플로우가 수행됨 - 을 구현하는 프로세스 로직을 더 가질 수 있다. 프로세스 상황은, 예를 들면, 공간 정보(조건부 하위 프로세스를 나타냄)에 따라 자신에게 할당되는 프로세스 활동을 결정할 수 있다. 동일한 프로세스 활동은, 발생하는 프로세스 상황에 따라, 예를 들면, 상이한 위치에서 명확하게 발생할 수 있다.
일반적으로 말하면, 흐름도는 적어도 분기, 점프 및/또는 루프를 가질 수 있다. 프로세스 상황의 존재 또는 부재는, 예를 들면, 프로세스 상황이 존재하거나 또는 부재하는 경우, 충족되는 적어도 하나의 기준에 의해 일반적으로 표현될 수 있다.
매핑은 출력량의 엘리먼트(원형(archetype)이라고도 함)를 타겟 양으로 변환하는 것을 포함할 수 있는데, 여기서, 그러면, 타겟 양의 엘리먼트는 원형의 복제(매핑)이다. 매핑은 매핑의 적어도 하나의 엘리먼트를 원형의 각각의 엘리먼트에 할당할 수 있다. 매핑은, 예를 들면, 출력량의 엘리먼트에 연산자, 변환 및/또는 링크를 적용하는 것을 포함할 수 있다. 엘리먼트는 일반적으로 다음의 것을 포함할 수 있다: 논리적 연결, 링크, 정보, 특성, 좌표 또는 관련된 좌표 시스템, 수학적 오브젝트(예컨대, 공식 또는 숫자), 프로시져, 활동, 등등.
코드 생성기는, 예를 들면, 모델링 언어로 존재하는 모델을 프로그래밍 언어, 예를 들면, 머신의 제어 디바이스의 프로그래밍 언어로 변환하도록 구성되는 컴퓨터 프로그램을 의미하는 것으로 이해될 수 있다. 그러나, 모델링 언어, 예를 들면, 통합 모델링 언어(unified modelling language; UML)에 대해 대안적으로 또는 추가적으로, 모델은 마크업 언어, 구조 차트, 결정 테이블 또는 상이한 형식의 언어로도 또한 존재할 수 있다. 코드 생성기는, 프로그램을 형성하기 위해 다른 옵션 사항의 프로그램 부분과 결합될 수 있는 코드 세그먼트를 생성한다(코드 생성이라고도 함).
공간적 위치(위치 정보 또는 간단히 위치로서 또한 지칭됨)는 본원에서 오브젝트의 방위 및/또는 포지션의 공간 정보를 의미하는 것으로 이해될 수 있다. 포지션은 공간 내의 장소(예를 들면, 지점)를 명확하게 설명할 수 있고, 방위는 공간과 관련한 오브젝트의 각각의 방위(예를 들면, 방향)을 설명할 수 있다. 궤적은 오브젝트에 의해 연속적으로 채택되는 공간적 위치 정보 엘리먼트의 시퀀스를 의미하는 것으로 이해될 수 있다. 위치 정보는, 타이밍 또는 속도에 따라, 옵션 사항으로, 시간 종속적일 수 있고(즉, 움직임에 관련될 수 있음, 그러면, 움직임이라고도 함), 그 결과, 궤적을 따르는 움직임이 고려된다. 일반적으로 말하면, 삼차원 공간에서의 공간적 위치 정보 또는 다른 공간 정보는 데카르트(Cartesian) 좌표에 의해 일반적으로 설명될 수 있다. 그러나, 예를 들면, 원통형 좌표와 같은 상이한 좌표 시스템이 또한 사용될 수 있다.
도 1은 다양한 실시예에 따른 방법(100)을 개략적인 측면도로 도시한다.
도 1은 프로그래밍될 머신(114)을 추가로 도시한다. 프로그래밍될 머신(114)은 워크피스의 핸들링, 조립 또는 프로세싱을 위한 로봇, 예를 들면, 산업용 로봇일 수 있다. 방법(100)은, 예를 들면, 기술적 비전문가에 의한 완전한 자동화 애플리케이션(프로세스 파라미터 및 통합을 포함함)의 최종 사용자 프로그래밍을 가능하게 한다.
프로그래밍될 머신(114)은, 조작기(manipulator; 114p, 114e) 및 조작기(114p, 114e)가 지지되는 프레임(114u)을 일반적으로 구비할 수 있다. 용어 조작기(114p, 114e)는, 예를 들면, 프로세스 플로우를 수행하기 위해, 그 제어가 환경과의 물리적 상호 작용을 가능하게 하는 머신(114)의 이동 엘리먼트(114v, 114g, 114e)의 전체를 요약한다. 제어를 위해, 머신(114)은 제어 프로그램에 따라 환경과의 상호 작용을 구현하도록 구성되는 제어 디바이스(712)를 구비할 수 있다. 조작기(114p, 114e)의 최종 엘리먼트(114e)(엔드 이펙터(114e)로서 또한 지칭됨)는, 예를 들면, 용접 토치, 파지(gripping) 기구, 페인팅 설비 또는 등등과 같은 하나 이상의 도구를 가질 수 있다.
조작기(114p, 114e)는, 엔드 이펙터(114e)가 부착되는 적어도 하나의 위치 결정 디바이스(114p), 예를 들면, 로봇 암(114p)(더 일반적으로 관절식 암(articulated arm)이라고도 함)을 구비할 수 있다. 로봇 암(114p)은 인간 팔의 것들과 유사한 기능을 제공할 수 있는 기계식 암을 제공하는 것으로 도시되어 있다.
위치 결정 디바이스(114p)의 엘리먼트는, 예를 들면, 연결 엘리먼트(114v) 및 링크 엘리먼트(114g)일 수 있는데, 여기서 연결 엘리먼트(114v)는 링크 엘리먼트(114g)에 의해 상호 연결된다. 링크 엘리먼트(114g)는, 예를 들면, 하나 이상의 링크를 가질 수 있는데, 여기서 각각의 링크는 자신에게 연결되는 연결 엘리먼트(114v)에, 서로에 관한 회전 운동(즉, 선회 운동) 및/또는 병진 운동(즉, 변위)을 제공할 수 있다. 링크 엘리먼트(114g)의 움직임은 제어 디바이스(702)에 의해 제어되는 액추에이터에 의해 유발될 수 있다.
101에서, 센서 배열체(sensor arrangement; 102)(적어도 하나의 트래커를 구비함)가 작업 도구(104) 상으로 장착될 수 있다. 사람(106)은, 센서 배열체(102)가 부착되는 작업 도구(104)에 의해 프로세스 태스크를 완료하기 위한 활동(예를 들면, 컴포넌트의 페인팅, 제조 및/또는 조립)을 수행한다. 작업 도구(104)는, 예를 들면, 인간 작업자(106)가 그의 활동 동안 그의 활동에서 사용할 수 있는, 이동시킬 수 있는, 유지할 수 있는, 들어올릴 수 있는 및/또는 핸들링할 수 있는 임의의 수동으로 동작되는 작업 도구(104)(예를 들면, 핸드헬드 드라이버(handheld screwdriver), 페인트 스프레이 건, 무선 드라이버 또는 글루 건)일 수 있다.
한편, 센서 배열체(102)는 데이터를 외부 수신기로 송신하는데, 상기 데이터는 센서 배열체(102)의 통합 센서 시스템을 통해 캡처된다. 데이터는, 예를 들면, 공간에서 센서 배열체(102)의 위치 및/또는 움직임(예를 들면, 가속도 및/또는 속도)을 나타낼 수 있고, 작업 도구(104)에 대한 작동(actuation)(예를 들면, 제거가 작동되는 때 및/또는 어떤 강도를 가지고 제거가 작동되는지)을 검출하는 적어도 하나의 작동 센서(예를 들면, 버튼 또는 스위치, 더 일반적으로 트리거로서 또한 지칭됨)로부터의 옵션 사항의 데이터를 또한 나타낼 수 있다.
따라서, 외부 수신기는 공간(701, 703, 705)에서 센서 배열체(102)의 시간 종속 위치를 수신한다. 작업 도구(104)의 시간 종속 위치는 이것에 기초하여 결정될 수 있다. 추가적인 외부 센서 시스템(112)(추가적인 센서 배열체(112)로서 또한 지칭됨)으로부터의 데이터 및/또는 PLC 데이터가, 옵션 사항으로, 수신기에 의해 수신될 수 있다. 추가적인 센서 배열체(112)는 고정식으로 일반적으로 구성될 수 있고, 예를 들면, 레이저 스캐너, 카메라 및/또는 거리 센서를 구비할 수 있다.
결과적으로, 전체 프로세스 플로우를 설명하는 시간 기반의 데이터가, 센서 배열체(102, 112)에 의해, 예를 들면, 고주파수에서 캡처되고 기록된다.
이들 데이터는, 옵션 사항으로, 하기에서 더욱더 정확하게 설명되는 바와 같이, 활동 특정적 프로세스 파라미터를 가질 수 있다. 활동 특정적 프로세스 파라미터는 작업 도구(104)의 동작 지점의 및/또는 각각의 기능의 파라미터(예를 들면, 페인트 스프레이 건의 체적 유량(volume flow))를 포함할 수 있다.
103에서, 프로세스 태스크의 플랫폼 독립적인 모델(104m)(프로세스 모델(104m)로서 또한 지칭됨)은 데이터 및 옵션 사항인 활동 특정적 프로세스 파라미터에 기초하여 결정될 수 있다. 이 프로세스 모델(104m)은 프로세스 태스크의 전체 인간 프로세스를 명확하게 설명한다. 프로세스 모델(104m)은, 옵션 사항으로, 사람(106)에 의해 검사되고 적응될 수 있다.
하나의 예에서, 유입하는 데이터는 사람에 의해 유지되는 작업 도구(104)의 시간 기반의 움직임 데이터, 트리거(들)로부터의 데이터 및 타임스탬프를 통해 동기화되며 서로 관련되는 추가적인 외부 센서로부터의 데이터이다. 이들 데이터는 사전 프로세싱된다. 데이터 양은, 데이터의 유효성에서 상당한 손실 없이, 감소된다. 데이터의 시간적 시퀀스는, 그 다음, 태스크 특정적 분석 알고리즘을 통해 하위 프로세스(예를 들면, 시작 포지션의 채택, 페인팅 프로시져 시작, 페인팅, 프로세스 완료)로 분할된다. 그 다음, 플랫폼 독립적인 프로세스 모델(104m)의 인스턴스가, 예를 들면, 메타모델의 형태로 생성된다. 메타모델은 모델 인스턴스의 데이터 타입 및 그들의 가능한 관계를 설명한다. 이 경우, 모델은, 예로서, 타입이 분류된 노드(typed node)를 갖는 지향성 그래프이다. 노드는, 모델의 파라미터 및 그들의 값 범위를 설명하는 데이터 타입(메타모델의 노드)을 갖는다. 입력 데이터에 기초한 모델 인스턴스의 생성은, 예를 들면, 인공 신경망의 도움으로 수행된다. 인공 신경망(artificial neural network; ANN)은, 종래의 트레이닝 방법, 예를 들면, 역전파 방법(back propagation method)을 사용하여 트레이닝될 수 있다. 트레이닝에서, 트레이닝 벡터는 각각의 소망되는 입력 파라미터(예를 들면, 작업 도구의 부분 오브젝트의 공간 좌표, 관련된 시간 표시, 작업 도구의 동작 지점/제어 지점, 작업 도구의 프로세스 파라미터, 작업 도구의 공간 방위(위치 정보), 등등)에 따라 결정된다. ANN의 입력 벡터에 포함되는 파라미터 및 ANN의 출력 벡터에 포함되는 파라미터 둘 모두는 강하게 애플리케이션 종속적이거나 또는 프로세스 종속적이며 그에 따라 선택된다는 것을 유의해야 한다.
특정한 하드웨어 플랫폼(114)(더 일반적으로 머신(114)이라고도 함)(예를 들면, 특정한 로봇 타입 또는 엔드 이펙터, 등등)이 추가로 선택될 수 있다. 머신(114)의 머신 특성(예를 들면, 설계)은 머신(114)의 모델(116m)에 의해 고려될 수 있다.
105에서, 소프트웨어는 머신(114)의 모델(114m) 및 프로세스 모델(104m)에 기초하여 로봇 제어(702)를 위한 플랫폼 특정적 모델(116m)(제어 모델(116m)로서 또한 지칭됨)을 생성할 수 있다. 예를 들면, 활동 특정적 프로세스 파라미터에 대응하는 머신 특정적 프로세스 파라미터(예를 들면, 페인팅 엔드 이펙터 상의 체적 유량 및/또는 이동 유량(movement flow))가 결정될 수 있다.
하나의 예에서, 유입하는 데이터는 플랫폼 독립적인 메타모델(더 일반적으로는, 플랫폼 독립적인 모델(104m))의 인스턴스 및 사용되는 자동화 디바이스(로봇, 엔드 이펙터, 등등)와 관련되는 추가적인 정보이다. 플랫폼 독립적인 모델(104m)은 모델 대 모델 변환을 통해 플랫폼 종속 모델(116m)로 변환된다. 플랫폼 종속 모델(116m)은 메타 모델을 통해 유사하게 설명된다. 플랫폼 독립적인 모델(104m)과 유사하게, 플랫폼 종속 모델(116m)은 플랫폼 독립적인 모델(104m)의 데이터 타입 및 관계를 설명한다. 모델 변환은, 플랫폼 독립적인 모델(104m)로부터의 노드 또는 노드의 그룹이 플랫폼 종속 모델(116m)의 노드 또는 노드의 그룹으로 매핑되는 방법을 나타내는 매핑 함수를 설명한다. 이들 생성된 노드의 상호 관계가 추가적으로 설명된다. 매핑은, 예를 들면, 각각의 사용된 플랫폼, 예를 들면, 머신의 각각의 특성/피쳐를 고려하면서 수행된다.
예를 들면, 머신의 모델은, 예를 들면, 다음의 것을 포함할 수 있고 따라서 고려할 수 있다:
- 머신의 물리적 정보(즉, 물리적 아키텍쳐), 예를 들면, 엔드 이펙터의 길이 및/또는 위치 결정 디바이스의 컴포넌트의 길이;
- 머신의 특성 다이어그램 또는 특성 곡선에 관련이 있는 정보, 예를 들면, 엔드 이펙터의 최대 파지력(gripping force) 및/또는 위치 결정 디바이스의 움직임의 자유도 또는 범위;
- 머신의 논리적 아키텍쳐, 예를 들면, 머신의 개개의 컴포넌트(예를 들면, 액추에이터)의 상호 작용 및 논리적 상호 링크(interlinking);
- 특정한 또는 잠재적으로 이용 가능한 도구 선택 또는 그 도구 특성;
- 제어 경로 또는 제어 루프의 파라미터, 예를 들면, 제어 파라미터 또는 규제 파라미터, 개개의 액추에이터의 입력 파라미터 또는 개개의 센서의 출력 파라미터;
- 프로그래밍 특정적 정보, 예를 들면, 프로그래밍 언어, 프로그래밍 인터페이스, 등등.
- 머신의 좌표 시스템, 예를 들면, 각각의 경우에서, 서로 내부에 적층되는 머신의 개개의 액추에이터 또는 링크 엘리먼트의 부분 좌표 시스템, 개개의 부분 좌표 시스템의 원점, 부분 좌표 시스템의 최종 포지션;
- 예를 들면, 최대 동작 온도와 같은 머신의 허용 가능한 동작 파라미터.
매핑은 프로세스 모델에 따라 추상 프로세스 플로우에 대한 각각의 경우에서 특히 사용되는 플랫폼(예를 들면, 머신)의 특성의 영향을 명확하게 설명한다.
107에서, 프로그램 코드(116)(예를 들면, 소스 코드)는 코드 생성기(412)에 의해 제어 모델(116m)에 기초하여 생성될 수 있다. 프로그램 코드(116)는 제어 프로그램(116)이 작성되는 각각의 코드를 나타낼 수 있다. 프로세스 태스크, 정보 기술 인프라 및 특정한 요건에 따라, 프로그램 코드(116)가 실행되도록 의도되는 상이한 타겟 플랫폼이 동작될 수 있다. 프로그램 코드(116)는 완전한 통신 시스템(예를 들면, 로봇 제어 및 PLC 제어)을 위해 생성될 수 있다. 프로그램 코드(116)는, 옵션 사항으로, 프로그램 코드(116)가 개발자에 의해 적응될 수 있는 사전 정의된 부분을 가질 수 있다.
하나의 예에서, 코드 생성은 각각의 타겟 언어에 대해 존재하는 템플릿의 형태로 발생한다. 이들 템플릿은 플랫폼 종속 모델의 인스턴스를 입력으로서 가지며 메타모델 레벨에서 그로부터 텍스트 단편(text fragment)이 생성되는 방식을 설명한다. 또한, 텍스트 전용 출력과 함께, 이들 템플릿은 제어 구조(예를 들면, 분기)를 또한 구비한다. 템플릿 엔진은, 결과적으로, 템플릿 및 플랫폼 독립적인 모델의 인스턴스를 입력으로서 가지며 그들로부터 하나 이상의 텍스트 파일을 생성한다.
도 2는 다양한 실시예에 따른 방법(100)을 개략적인 흐름도(200)로 도시한다.
101에서, 방법(100)은 다음의 것을 포함할 수 있다: 모바일 센서 배열체(102)를, 머신(114)(예를 들면, 산업용 로봇)에 의해 수행되도록 의도되는 수동 프로세스 플로우의 작업 도구(104)에 부착하는 것(201). 프로세스 플로우는, 예를 들면, (예를 들면, 접착, 용접, 페인팅 또는 밀링과 같은) 트랙 기반이다.
센서 배열체(102)는, 클램핑 나사를 사용하여, 클립 또는 후크 앤드 루프 체결구(hook-and-loop fastener)를 사용하여 작업 도구(104)에 자기적으로 부착될 수 있고, 옵션 사항으로, 수동 프로세스 플로우의 복수의 작업 도구(104)에 순차적으로 부착될 수 있다.
센서 배열체(102)는, 예를 들면, 상이하게 측정될 측정량에 대한(예를 들면, 위치, 가속도, 등등에 대한) 각각의 경우에서, 하나 이상의 센서, 예를 들면, 복수의 상이한 센서 타입을 가질 수 있다. 센서 배열체(102)는, 옵션 사항으로, 하나 이상의 모바일 유닛을 구비할 수 있고, 여기서 각각의 모바일 유닛, 예를 들면, 궤적 센서(트래커로서 또한 지칭됨)를 갖는 모바일 유닛은 센서 배열체(102)의 적어도 하나의 센서를 구비한다. 모바일 유닛 또는 각각의 모바일 유닛은, 예를 들면, 그 자신의 에너지 공급부를 위해 및/또는 무선 통신을 위해 자율적으로 구성될 수 있다. 예를 들면, 복수의 센서가 모바일 유닛의 하나의 하우징 내에서 공동으로 수용될 수 있다(내부 센서로서 또한 지칭됨).
센서(검출기로서 또한 지칭됨)는, 자신의 환경의 특성을 정성적으로(qualitatively) 또는 센서 타입에 대응하는 측정량, 예를 들면, 물리적 또는 화학적 속성 및/또는 재료 특성으로서 측정하도록 구성되는 컨버터일 수 있다. 측정량은 센서에 의한 측정이 적용되는 물리량이다.
측정량의, 예를 들면, 특정한 센서 타입의 상황에 따라, 센서는, 예를 들면, 동작 지점 센서, 작동 센서 또는 궤적 센서일 수 있다. 동작 지점 센서는, 예를 들면, 작업 도구(104)의 동작 지점을 검출할 수 있다. 궤적 센서는, 예를 들면, 움직임 및/또는 위치(즉, 방위 및/또는 포지션)를 검출할 수 있다.
센서 배열체(102)는, 예를 들면, 적어도 하나의 광전자 센서(예를 들면, 카메라), 적어도 하나의 궤적 센서 및/또는 적어도 하나의 동작 지점 센서(예를 들면, 스루풋 센서)를 구비할 수 있다. 궤적 센서는, 예를 들면, 움직임 센서(예를 들면, 가속도 센서 및/또는 속도 센서를 구비함) 및/또는 위치 센서(예를 들면, 방위 센서 및/또는 포지션 센서를 구비함)를 구비할 수 있다.
센서 배열체(102) 및/또는 추가적인 센서 배열체(112)는, 예를 들면, 전기역학적 특성(예를 들면, 전류, 전압, 자기장 또는 전력)을 측정하도록 구성되는 적어도 하나의 센서, 위치 관련 특성(예를 들면, 방위 및/또는 포지션)을 측정하도록 구성되는 적어도 하나의 센서, 움직임 관련 특성(예를 들면, 속도 및/또는 가속도)을 측정하도록 구성되는 적어도 하나의 센서, 열 특성(예를 들면, 온도 또는 온도 차이)을 측정하도록 구성되는 적어도 하나의 센서, 기하학적 특성(예를 들면, 거리, 입체각, 볼륨)을 측정하도록 구성되는 적어도 하나의 센서, 측광(photometric) 특성(예를 들면, 광 강도, 밝기, 컬러, 에너지 또는 파워)을 측정하도록 구성되는 적어도 하나의 센서, 및/또는 기계적 특성(예를 들면, 힘, 압력, 질량, 에너지, 동력, 토크, 작동, 등등)을 측정하도록 구성되는 적어도 하나의 센서를 구비할 수 있다.
센서 배열체(102)의 적어도 하나의(즉, 하나의 또는 하나보다 더 많은) 센서는, 옵션 사항으로, 모바일 유닛에 의해 별개로 제공될 수 있다. 적어도 하나의 센서는, 예를 들면, 작동 센서 및/또는 동작 지점 센서를 구비할 수 있다. 적어도 하나의 센서는 (예를 들면, 체적 유량, 온도 또는 전류 강도를 측정하기 위해), 예를 들면, 수작업 도구(104)의 공급 디바이스의 수작업 도구(104)에 부착될 수 있다. 수작업 도구(104)는, 예를 들면, 고정식 공급 디바이스에 의해, 예를 들면, 유체 또는 에너지를 공급받는 핸드헬드 도구일 수 있다.
동작 지점은, 시스템 특성과 작용하는 외부 영향 및 디바이스의 파라미터에 기초하여 채택되는 기술 디바이스의 특성 다이어그램 또는 특성 곡선에서의 지점을 설명할 수 있다. 동작 지점은 디바이스가 가지는 동작 상태를 명확하게 설명할 수 있다.
101에서, 방법(100)은, 옵션 사항으로, 다음의 것을 더 포함할 수 있다: 센서 배열체(102)를 교정하는 것(203). 교정은 작업 도구(104)의 좌표 시스템, 추가적인 센서 배열체(112) 및/또는 전역적 좌표 시스템과 관련하여 센서 배열체(102)의 포지션을 교정하는 것을 포함할 수 있다. 전역적 좌표 시스템은, 예를 들면, 고정적일 수 있다, 즉, 지구의 표면과 관련하여 불변의 위치를 가질 수 있다.
교정은, 예를 들면, 다음의 것을 포함할 수 있다: 작업 도구(104)와 관련하여 센서 배열체(102)의 위치를 검출하는 것. 교정은, 대안적으로 또는 추가적으로, 다음의 것을 포함할 수 있다: 예를 들면, 전역적 좌표 시스템과 관련하여 공간에서 센서 배열체(102)의 위치를 검출하는 것. 공간에서 상대적으로 그리고 작업 도구(104)에 대해 센서 배열체(102)를 설명하는 두 개의 위치 정보 엘리먼트에 의해, 작업 도구(104)의 궤적(111)은 센서 배열체(102)의 궤적에 기초하여 결정될 수 있다(도 1 참조).
101에서, 방법(100)은 다음의 것을 포함할 수 있다: 프로세스 플로우를 수동으로 수행하는 것(405). 수동으로 수행하는 것(405)은, 작업 도구(104)가 수작업으로(즉, 사람에 의해) 운반 및/또는 작동된다는 것을 의미하는 것으로 이해될 수 있다. 작업 도구(104)는, 예를 들면, 근력에 의해 운반되는 또는 적어도 이동되는 작업 도구일 수 있다.
프로세스 플로우의 수행(005) 동안, 적어도 하나의 센서 배열체(102, 112)는 데이터를 외부 수신기로 송신할 수 있고 및/또는 외부 수신기는, 예를 들면, 추가적인 센서 배열체(112)에 의해 공간에서의 센서 배열체(102)의 포지션 및 움직임을 검출할 수 있다. 예를 들면, 외부 수신기로의 신호 송신은 무선 링크(예를 들면, 블루투스(Bluetooth))를 통해 발생할 수 있다. 대안적으로 또는 추가적으로, 센서 배열체(102)는 작업 도구(104)의 사용자 인터페이스에 커플링되는 적어도 하나의 트리거를 구비할 수 있다. 트리거는, 예를 들면, 사용자 인터페이스에서 작업 도구(104)의 수동 제어를 검출할 수 있다.
프로세스 플로우의 수행(405) 동안, 센서 배열체(102)의 궤적(111)(예를 들면, 위치 및/또는 움직임)은, 대안적으로 또는 추가적으로, 적어도 하나의 카메라(112) 또는 상이한 센서 타입(112)에 의해, 예를 들면, 레이저 스캐너(112), 거리 센서(112), 소나 센서(112) 및/또는 레이더 센서(112)에 의해 검출될 수 있다.
103에서, 방법(100)은 옵션 사항으로 다음의 것을 더 포함할 수 있다: (예를 들면, 203 및/또는 205 동안) 191에서 캡처되는 데이터를 프로세싱 유닛(302)(도 3 참조)으로 송신하는 것 및 프로세스 모델(104m)을 형성하기 위해, 옵션 사항으로, 프로세스 플로우의 저장된 활동 특정적 프로세스 파라미터로 데이터를 보충하는 것. 움직임 데이터 또는 궤적(111)은 또한 (예를 들면, 그들이 이동의 축을 따라 가능한 한 선형이 되도록) 옵션 사항으로 평활화될 수 있다
프로세스 플로우의 저장된 파라미터는, 예를 들면, 최적 값 및/또는 한계 값을 나타내는 것과 같은 경계 조건을 옵션 사항으로 구비할 수 있다. 대안적으로 또는 추가적으로, 저장된 파라미터는, 예를 들면, 동작 속도, 유지 시간, 압축력, 등등과 같은, 프로세스 플로우를 추가로 명시할 수 있다.
결정된 프로세스 모델(104m)은 플랫폼 독립적인 것으로, 즉, 특정한 로봇(114)에 관련되지 않는 것으로 구성될 수 있다.
105에서, 방법(100)은 다음의 것을 포함할 수 있다: 프로세스 모델(104m)을 제어 모델(116m)로 변환하는 것(209). 이 목적 때문에, 프로세스 모델(104m)은, 머신(114)에 대한 제어 모델(116m)(프로세스 특정적 및 머신 특정적 모델(116m)로서 또한 지칭됨)을 형성하기 위해 하나 이상의 상이한 머신(114)의 저장된 머신 특정적 정보(114m)를 사용하여 프로세싱될 수 있다. 머신 특정적 정보(114m)의 합은 머신(114) 또는 각각의 머신(114)의 모델(114m)로서 또한 지칭될 수 있다.
머신 특정적 정보(114m)는, 위치 결정 정확도 및 반복 정확도, 이동의 최대 범위, 속도, 가속도, 등등과 같은 머신 특정적 파라미터를 포함할 수 있다. 대안적으로 또는 추가적으로, 머신 특정적 정보(114m)는, 예를 들면, 머신(114)의 위치 결정 디바이스(114p)에 부착되는 머신(114)의 적어도 하나의 도구(114e)(또한 머신 도구(114e)로서 또한 지칭됨)를 나타낼 수 있다.
103에서, 방법(100)은 옵션 사항으로 다음의 것을 포함할 수 있다: 프로세스 모델(104m)을 사후 프로세싱하는 것(207). 105에서, 방법(100)은 옵션 사항으로 다음의 것을 포함할 수 있다: 형성된 제어 모델(116m)을 사후 프로세싱하는 것(211). 사후 프로세싱(207)은, 예를 들면, 사용자 인터페이스(406) 및/또는 (애플리케이션) 소프트웨어(예를 들면, PC, 태블릿 또는 스마트폰 상에서 실행됨, 도 4a 참조)의 도움으로 사용자에 의해 수행될 수 있다. 207 또는 211에서, 방법은 옵션 사항으로 다음의 것을 포함할 수 있다: 가상 환경에서 제어 모델(116m) 또는 프로세스 모델(104m)을 시각화 및 시뮬레이팅하는 것, 및/또는 궤적(111, 113), 프로세스 로직, 프로세스 파라미터를 편집하고 사용자에 의해 머신에 부착되는 도구를 통합 및 제어하는 것. 프로세스 모델(104m)의 공간적 하위 모델(502)의 옵션 사항의 시각화는, 예를 들면, 대응하는 워크피스(도 5 참조)의 표현을 사용하여 수행될 수 있다.
107에서, 방법(100)은 다음의 것을 더 포함할 수 있다: 옵션 사항으로 가능한 상이한 PLX 제어 시스템을 고려하여, 옵션 사항으로 상이한 타입의 하나 이상의 머신(114)에 대한 코드를 생성하는 것. 대응하는 머신(114)에 의해 실행 가능한 제어 프로그램(116)은 코드 생성(107)에 의해 형성될 수 있다.
코드 생성(107)은, 예를 들면, 각각의 타겟 언어에 대해 존재하는 템플릿의 형태로 발생한다. 이들 템플릿은 플랫폼 종속 모델의 인스턴스를 입력으로서 가지며 메타모델 레벨에서 그로부터 텍스트 단편이 생성되는 방식을 설명한다. 또한, 텍스트 전용 출력과 함께, 이들 템플릿은 제어 구조(예를 들면, 분기)를 또한 구비한다. 템플릿 엔진은, 결과적으로, 템플릿 및 플랫폼 독립적인 모델의 인스턴스를 입력으로서 가지며 그들로부터 하나 이상의 텍스트 파일을 생성한다.
코드 생성(107)은, 예를 들면, 로봇 제어(702) 및/또는 PLC 제어(702)에 대해 수행될 수 있다. 코드 생성(107)은, 예를 들면, 사람이 판독 가능한 코드 세그먼트(즉, 소스 코드) 및/또는 머신 판독 가능 코드 세그먼트(즉, 머신 코드)(107)를 생성할 수 있다. 소스 코드는, 예를 들면, 대응하는 머신에 적절한 타겟 언어에 따라, 상이한 타겟 언어에 대해 생성될 수 있다. 소스 코드는, 옵션 사항으로, 예를 들면, 개발자에 의해, 예를 들면, 사용자 인터페이스(406)에 의해, 후속하여 적응되고 프로세싱될 수 있다.
도 3은 다양한 실시예에 따른 방법(100)을 개략적인 측면도(300)로 도시한다.
센서 배열체(102)는, 예를 들면, 산업용 로봇을 가르치기 위한 소프트웨어 지원 방법(100)을 가능하게 할 수 있는데, 상기 방법은 기술적 비전문가(106)가 또한 액세스 가능하다. 따라서, 예를 들면, 비프로그래머(non-programmer; 106)가 완전히 통합된 방식으로 산업용 로봇(114)을 가르치도록 될 수 있다.
적어도 한 명의 태스크 전문가(106)(예를 들면, 정비공 또는 용접공)가 방법(100)에 의해 예로서 프로세스 플로우의 하나 이상의 활동을 시연할 수 있다. 모든 필수 소프트웨어 컴포넌트를 비롯한, 로봇(114)의 필요한 제어 소프트웨어는 그 기초 상에서 완전히 자동화된 방식으로 생성될 수 있다. 방법(100)에 의해 제공되는 제어 모델(116m)은 특정한 머신 타입과는 독립적이며, 그에 의해, 예를 들면, 상이한 공급업체로부터의 임의의 머신 타입에 대해 또한 재사용될 수 있다. 따라서, 머신(114)의 변환이 단순화될 수 있다.
101에서, 방법(100)은 다음의 것을 포함할 수 있다: 센서 배열체(102)(여기서는 물리적 센서 컴포넌트) 및/또는 추가적인(여기서는 외부) 센서 배열체(112)에 의해 데이터를 캡처하는 것. 모바일 유닛 또는 각각의 모바일 유닛은 작업 도구(104)에 부착될 수 있고 그 안에 통합되는 적어도 하나의 센서에 의해 작업 도구(104)의 위치 및/또는 가속도를 검출할 수 있다. 101에서, 센서 배열체(102)의 모바일 유닛 또는 각각의 모바일 유닛은 부착 디바이스에 의해(예를 들면, 클립, 또는 후크 앤드 루프 체결구에 의해 자기적으로) 작업 도구(104)에 부착될 수 있다.
작업 도구(104)의 궤적(예를 들면, 위치 및/또는 움직임)을 나타내는 다른 측정량도 또한 캡처될 수 있다.
센서 배열체(102)는 또한, 작업 도구(104)의 수동 제어를 검출하는 적어도 하나의 트리거(102t)(예를 들면, 글루 건 트리거)를 구비할 수 있다. 추가적인 센서 배열체(112)는 공간(301)에서 센서 배열체(102)의 포지션을 검출할 수 있다. 센서 배열체(102)(예를 들면, 그것의 모바일 유닛)로부터의 데이터 및 외부 센서 시스템(112)으로부터의 데이터 둘 모두는, 외부 수신기를 구비하는 또는 그에 대한 통신 연결을 갖는 컴퓨팅 유닛(302)(예를 들면, PC, 랩탑, 등등)에 시간적으로 동기화된 방식으로 송신될 수 있다.
센서 배열체(102)는 작업 도구(104)에 대한 자신의 위치(즉, 포지션 및/또는 방위)에서, 옵션 사항으로, 교정될 수 있다(203). 센서 배열체(102)의 포지션 및/또는 방위는, 예를 들면, 작업 도구(104)의 좌표 시스템에서 결정될 수 있다. 교정은 또한, 센서 배열체(102)의 좌표 시스템을 머신(114)의 좌표 시스템과 링크하는 전역적 좌표 시스템에서, 이들 시스템 사이에서 변환이 발생할 수 있도록, 발생할 수 있다.
도 4a는 다양한 실시예에 따른 방법(100)을 개략적인 흐름도(400a)로 도시한다.
101에서, 사람은 실제 작업 도구(104)를 사용하여,예로서, 한 번 또는 다수 회 프로세스 플로우를 수행할 수 있다(205). 프로세스 플로우는, 예를 들면, 전기 드라이버(104)를 사용하여 나사를 조이는 것을 포함할 수 있다. 센서 배열체(102) 및/또는 추가적인 센서 배열체(112)는 작업 도구(104)의 공간적 위치(및/또는 내부에서의 변화)를 나타내는 적어도 하나의 측정량을 캡처할 수 있다. 더 일반적으로 말하면, 작업 도구(104)의 궤적(111)이 검출될 수 있다. 작업 도구(104)의 궤적(111)은, 예를 들면, 작업 도구(104)의 속도, 포지션, 가속도 및/또는 방위에 관련이 있는 정보를 포함할 수 있다.
유사하게, 작업 도구(104)에 의해 제공되는 기능(및/또는 내부에서의 변화)은 파라미터화된 방식으로, 예를 들면, 작업 도구의 샤프트의 회전 속도, 작업 도구의 가열 디바이스의 온도, 작업 도구의 용접 팁을 통과하는 전류, 등등으로 검출될 수 있다. 대안적으로 또는 추가적으로, 작동이 발생하는 순간, 작동이 발생하는 길이 및/또는 작업 도구(104)의 어떤 강도를 가지고 작동이 발생하는지를 트리거(102t)에 의해 파라미터화된 방식으로 검출하는 것이 가능하다. 더 일반적으로 말하면, 트리거(102t)는, 예를 들면, 작업 도구(104)의 사용자 인터페이스에서 작업 도구(104)의 수동 제어를 검출하도록 구성될 수 있다.
101에서 수집되는 데이터(402)는 컴퓨팅 유닛(302)(또는 상이한 프로세싱 유닛)으로 송신될 수 있고, 활동 특정적 프로세스 파라미터(404)(예를 들면, 페인트 스프레이 건(104)의 체적 유량)를 사용하여 거기에서 증강될 수 있다(403). 활동 특정적 프로세스 파라미터(404)를 사용한 증강은, 예를 들면, 자동적으로 또는 수동으로 (예를 들면, 사용자 입력을 통해) 수행될 수 있다.
하나의 예에서, 사용자는 이 목적을 위해 컴퓨팅 유닛의 그래픽 인터페이스에서 작업 도구(예를 들면, 페인트 스프레이 건)의 범위로부터 옵션을 선택할 수 있다. 태스크에 따라, 프로세스 특정적 파라미터(예를 들면, 체적 유량)가, 그 다음, 입력 형태를 통해 조회된다(queried).
컴퓨팅 유닛(302)은 캡처된 데이터(402)에 기초하여 프로세스 모델(104m)(프로세스 특정적 모델로서 또한 지칭됨)을 생성(103)할 수 있는데, 상기 모델은 특정한 자동화를 참조하지 않으면서 프로세스 태스크를 설명한다. 프로세싱 유닛(302)은, 옵션 사항으로, 데이터(402)를 수정하도록, 예를 들면, 최적화 및/또는 추상화하도록 구성될 수 있다. 수정은, 예를 들면, 궤적(111)(예를 들면, 움직임 데이터)을 박형화 및/또는 평활화하는 것, 하위 프로세스를 식별 및/또는 최적화하는 것, 및 논리적 연결을 만드는 것을 포함할 수 있다.
프로세스 모델(104m)은, 옵션 사항으로, 사용자 인터페이스(406)(예를 들면, PC, 태블릿 또는 스마트폰 상에서 제공됨)에 의해 사후 프로세싱될 수 있다. 작업 도구(104)의 궤적(111)(작업 도구 경로(111)로서 또한 지칭됨)의 컴포넌트(예를 들면, 세그먼트 또는 개개의 지점)는, 예를 들면, 적응 및/또는 미세 튜닝될 수 있다. 대안적으로 또는 추가적으로, 적어도 하나의 트리거(102t)를 사용한 작동이 추적될 수 있고, 수정될 수 있고 및/또는 궤적(111)과 링크될 수 있다.
프로세스 모델(104m)은 또한, (예를 들면, 특정한 로봇 플랫폼(114)으로부터의 또는 적어도 엔드 이펙터(114e)로부터의) 머신 특정적 정보(114m), 예를 들면, 머신 특정적 프로세스 파라미터(114m)(예를 들면, 페인팅 엔드 이펙터 상의 체적 유량)를 사용하여 증강될 수 있다(405). 프로세싱 유닛(302)은 프로세스 모델(104m) 및 제공된 머신 특정적 정보(114m)로부터 제어 모델(116m)을 자동적으로 결정할 수 있다. 제어 모델(116m)은 특정한 하드웨어 플랫폼(112) 및 하드웨어 구성을 위한 자동화 스크립트를 나타낸다.
하나의 예에서, 유입하는 데이터는 플랫폼 독립적인 메타모델(더 일반적으로는, 플랫폼 독립적인 모델(104m))의 인스턴스 및 사용되는 자동화 디바이스(로봇, 엔드 이펙터, 등등)와 관련되는 추가적인 정보이다. 플랫폼 독립적인 모델(104m)은 모델 대 모델 변환을 통해 플랫폼 종속 모델(116m)로 변환된다. 플랫폼 종속 모델(116m)은 메타 모델을 통해 유사하게 설명된다. 플랫폼 독립적인 모델(104m)과 유사하게, 플랫폼 종속 모델(116m)은 플랫폼 독립적인 모델(104m)의 데이터 타입 및 관계를 설명한다. 모델 변환은, 플랫폼 독립적인 모델(104m)로부터의 노드 또는 노드의 그룹이 플랫폼 종속 모델(116m)의 노드 또는 노드의 그룹으로 매핑되는 방법을 나타내는 매핑 함수를 설명한다. 이들 생성된 노드의 상호 관계가 추가적으로 설명된다. 매핑은, 예를 들면, 각각의 사용된 플랫폼, 예를 들면, 머신의 각각의 특성/피쳐를 고려하면서 수행된다.
예를 들면, 머신의 모델은, 예를 들면, 다음의 것을 포함할 수 있고 따라서 고려할 수 있다:
- 머신의 물리적 정보(즉, 물리적 아키텍쳐), 예를 들면, 엔드 이펙터의 길이 및/또는 위치 결정 디바이스의 컴포넌트의 길이;
- 머신의 특성 다이어그램 또는 특성 곡선에 관련이 있는 정보, 예를 들면, 엔드 이펙터의 최대 파지력 및/또는 위치 결정 디바이스의 움직임의 자유도 또는 범위;
- 머신의 논리적 아키텍쳐, 예를 들면, 머신의 개개의 컴포넌트(예를 들면, 액추에이터)의 상호 작용 및 논리적 상호 링크;
- 특정한 또는 잠재적으로 이용 가능한 도구 선택 또는 그 도구 특성;
- 제어 경로 또는 제어 루프의 파라미터, 예를 들면, 제어 파라미터 또는 규제 파라미터, 개개의 액추에이터의 입력 파라미터 또는 개개의 센서의 출력 파라미터;
- 프로그래밍 특정적 정보, 예를 들면, 프로그래밍 언어, 프로그래밍 인터페이스, 등등.
- 머신의 좌표 시스템, 예를 들면, 각각의 경우에서, 서로 내부에 적층되는 머신의 개개의 액추에이터 또는 링크 엘리먼트의 부분 좌표 시스템, 개개의 부분 좌표 시스템의 원점, 부분 좌표 시스템의 최종 포지션;
- 예를 들면, 최대 동작 온도와 같은 머신의 허용 가능한 동작 파라미터.
매핑은 프로세스 모델에 따라 추상 프로세스 플로우에 대한 각각의 경우에서 특히 사용되는 플랫폼(예를 들면, 머신)의 특성의 영향을 명확하게 설명한다.
머신 특정적 제어 모델(116m)은, 옵션 사항으로, (예를 들면, PC, 태블릿 또는 스마트폰 상에서 제공되는) 사용자 인터페이스(406)에 의해 사후 프로세싱될 수 있다(211). 예를 들면, 머신(114)의(예를 들면, 엔드 이펙터(114e)의) 궤적(113)은 적응 및/또는 수정될 수 있다. 대안적으로 또는 추가적으로, 상이한 앵커 포인트 사이의 전환, 이동 속도, 유지 시간 또는 유사한 것이 수정될 수 있는데, 예를 들면, 명시될 수 있다. 에러 보상 및/또는 통신 경로는, 옵션 사항으로, 플랜트 제어와 함께 정의될 수 있다.
머신(114)의 제어 디바이스(702)(컨트롤러(702)로서 또한 지칭됨)에 대해 실행될 수 있으며, 예를 들면, 학습된 프로세스 플로우를 완전히 구현하는 프로그램 코드(116)는 제어 모델(116m)로부터 추가로 생성될 수 있다.
하나의 예에서, 코드 생성은 각각의 타겟 언어에 대해 존재하는 템플릿의 형태로 발생한다. 이들 템플릿은 플랫폼 종속 모델의 인스턴스를 입력으로서 가지며 메타모델 레벨에서 그로부터 텍스트 단편이 생성되는 방식을 설명한다. 또한, 텍스트 전용 출력과 함께, 이들 템플릿은 제어 구조(예를 들면, 분기)를 또한 구비한다. 템플릿 엔진은, 결과적으로, 템플릿 및 플랫폼 독립적인 모델의 인스턴스를 입력으로서 가지며 그들로부터 하나 이상의 텍스트 파일을 생성한다.
엔드 이펙터(114e)를 제어하기 위해, 외부 시스템, 예를 들면, PC, PLC 또는 유사한 것이 옵션 사항으로 사용될 수 있다. 이 경우, 머신의 내부 제어 디바이스(116a)에 대한 프로그램 코드(116)(로봇 코드로서 또한 지칭됨)에 대해 대안적으로 또는 추가적으로, 외부 시스템(116b)에 대해 및/또는 후자에 대한 통신 인터페이스(116b)에 대해 프로그램 코드(116)가 생성될 수 있다.
더 일반적으로 말하면, 머신(114)은, 머신(114)의 위치 결정 디바이스(114p) 및/또는 엔드 이펙터(114e)를 제어하도록 구성되는 내부(116a) 및/또는 외부(116p) 제어 디바이스(702)를 구비할 수 있다. 프로그램 코드(116)는 제어 디바이스(116a, 116b)에 의해 실행될 수 있다.
프로그램 코드(116)는 제어 프로그램(116)이 작성되는 각각의 코드를 나타낼 수 있다. 프로세스 태스크, 정보 기술 인프라 및 특정한 요건에 따라, 프로그램 코드(116)가 실행되도록 의도되는 상이한 타겟 플랫폼이 동작될 수 있다. 프로그램 코드(116)는 완전한 통신 시스템(예를 들면, 로봇 제어 및 PLC 제어)을 위해 생성될 수 있다. 프로그램 코드(116)는, 옵션 사항으로, 프로그램 코드(116)가 개발자에 의해 적응될 수 있는 사전 정의된 부분을 가질 수 있다.
프로그램 코드(116)는, 옵션 사항으로, 예를 들면, 사용자 인터페이스(406)에 의해 및/또는 사람(106)에 의해 후속하여 수정될 수 있는데, 예를 들면, 적응될 수 있다.
도 4b는 다양한 실시예에 따른 방법(100)을 실행하기 위한 시스템(400b)을 개략적인 시스템 다이어그램으로 도시한다.
시스템(400b)은 적어도 하나의 센서 배열체(452), 예를 들면, 작업 도구(104) 또는 고정식 센서 배열체(112)에 부착 가능한 센서 배열체(102)를 구비할 수 있다. 시스템(400b)은, 방법(100)을 실행하도록 구성되는 하나 이상의 프로세서를 구비하는 적어도 하나의 컴퓨팅 유닛(302)을 추가로 구비할 수 있다. 시스템(400b)은, 머신 특정적 제어 모델(116m)을 제어 프로그램(116)으로 변환하도록(209) 구성되는 코드 생성기(412)를 옵션 사항으로 구비할 수 있다. 시스템(400b)은, 제어 프로그램(116)을 사용하여 프로그래밍되는 제어 디바이스(702) 및 프로그래밍 인터페이스(702i) - 이것에 의해 제어 프로그램(116)은 제어 디바이스(702)에 제공됨 - 를 구비하는 머신(114)을 옵션 사항으로 구비할 수 있다.
도 5는 다양한 실시예에 따른 방법(100)을 개략적인 모델 다이어그램(500)으로 도시한다.
프로세스 모델(104m)(프로세스 특정적 모델)은 기저의(underlying) 자동화 솔루션을 참조하지 않고도 프로세스 태스크를 명확하게 설명한다. 프로세스 모델(104m)은 (예를 들면, 각각의 하위 프로세스에 대한) 복수의 하위 모델(502, 504, 506)을 구비할 수 있다.
제1 하위 모델(502)(공간 모델(502)로서 또한 지칭됨)은 물리적, 기하학적, 위치 관련 및/또는 움직임 관련 특성, 예를 들면, 오브젝트, 데카르트 공간(701, 703, 705)에서의 그들의 형상 또는 포지션, 및 데카르트 공간(701, 703, 705)에서의 적어도 하나의 궤적(111)을 설명할 수 있다. 공간 모델(502)은 데카르트 주석이 달린 프로세스 활동(Cartesian-annotated process activity)(예를 들면, 오브젝트를 파지함) 및/또는 활동 관련 프로세스 파라미터를 추가로 설명할 수 있다. 데카르트 공간은, 예를 들면, 정지되어 있는 방향(701, 703, 705)에 의해 정의될 수 있다.
제1 하위 모델(502)은, 옵션 사항으로, 서로에 대한 대안이며 제3 모델(506)(로직 모델(506)로서 또한 지칭됨)에 의해 참조되는 궤적(111) 또는 그 섹션을 설명할 수 있다. 공간 모델(502)은 물리적 공간(701, 703, 705)에서 프로세스 태스크가 완료되는 방법 및 어떤 태스크 특정적 프로세스 활동(예를 들면, 페인트 스프레이 건의 스프레이 기능을 활성화시키는 것)이 그들과 링크되는지를 명확하게 설명한다. 프로세스 활동은 적어도 하나의 활동 관련 프로세스 파라미터에 의해, 예를 들면, 적어도 하나의 위치 관련 및/또는 움직임 관련 프로세스 파라미터(예를 들면, 속도) 및/또는 적어도 하나의 기능적 프로세스 파라미터(예를 들면, 페인트 스프레이 건의 체적 유량)에 의해 표현될 수 있다.
공간 모델(502)은, 예를 들면, 시간 경과에 따른 삼차원 공간에서의 도구의 포지션 및 회전을 설명한다.
제2 하위 모델(504)(머신 비특정적 적응 모델로서 또한 지칭됨)은, 어떤 상이한 프로세스 상황(514)(예를 들면, 컴포넌트 A 또는 컴포넌트 B의 페인팅)이 발생할 수 있는지 및/또는 (예를 들면, 컴포넌트 A의 형상 또는/또는 컴포넌트 B의 형상에 기초하여) 이들 프로세스 상황(514)이 어떻게 다를 수 있는지를, 예를 들면, 기준에 기초하여 설명할 수 있다. 제2 하위 모델(504)은, 예를 들면, (예를 들면, 컴포넌트의 형상을 검출하기 위한 카메라에 의해) 프로세스 상황(514)을 검출하기 위한 기준을 설명한다. 제2 하위 모델(504)은, 옵션 사항으로, 예를 들면, 교수(teaching; 101) 동안 기록된 기준에 대한 기준 데이터(예를 들면, 컴포넌트의 예시적인 이미지)를 설명한다.
하나의 예에서, 환경 변수(예를 들면, 컴포넌트의 형상, 온도, 등등)가 이러한 목적을 위해 정의된다. 상황은 환경 변수에 기초한 이들 환경 변수의 특정한 값 할당을 위해 정의된다(예를 들면, 추운 환경에서의 자동차 도어). 그 다음, 이들 상황은 자동화 프로세스(예를 들면, 대안적인 궤적을 이동함) 또는 프로세스 파라미터(예를 들면, 속도)의 적응을 수행하기 위해 로직 모델(506)에서 참조될 수 있다.
제3 하위 모델(506)(머신 비특정적 로직 모델로서 또한 지칭됨)은 기저의 프로세스 로직(516)을 설명한다. 프로세스 로직(516)은, 예를 들면, 프로그래밍 언어의 적어도 하나의 제어 구조(516s)(예를 들면, 루프, 분기, 점프, 호출, 등등)를 가질 수 있고, 상기 제어 구조를 공간 모델(502) 및 적응 모델(504)과 링크할 수 있다. 복잡한 흐름도가 이러한 방식으로 표현될 수 있는데, 예를 들면, "컴포넌트 A가 검출된 경우, 그곳에서 주석이 달린 프로세스 파라미터를 갖는 경로(111)로 점프하라"로 표현될 수 있다.
제어 모델(116m)은 특정한 하드웨어 선택(위치 결정 디바이스(114p), 제어 디바이스(702) 및/또는 엔드 이펙터(114e))을 위한 완전히 통합된 자동화 스크립트를 나타낼 수 있다. 제어 모델(116m)은 복수의 하위 모델(552, 554, 556, 558)을 구비할 수 있다.
물리적 모델(502)과 유사하게, 추가적인 제1 하위 모델(552)(물리적 모델(552)로서 또한 지칭됨)은 공간 정보를 명확하게 설명하지만, 그러나 머신(114)와 관련하여 명확하게 설명한다. 예를 들면, 프로세스 특정적 정보는 머신(114)의 좌표 시스템(705, 713)으로 전송될 수 있다. 머신(114)의 엔드 이펙터(114e)의 부착 및 방위는, 교수 프로세스(101) 동안 작업 도구(104)의 검출에서, 좌표 시스템(701, 703, 705)을, 머신(705, 713), 예를 들면, 그것의 도구(114e)의 좌표 시스템(705, 713)으로 매핑하기(105a) 위해 고려될 수 있다. 제1 하위 모델(502)의 적어도 하나의 활동 관련 프로세스 파라미터는, 옵션 사항으로, 엔드 이펙터(114e)의 특정한 도구에 (즉, 머신에 특정적으로) 매핑될 수 있다(105a).
추가적인 제2 하위 모델(554)(머신 특정적 적응 모델(554)로서 또한 지칭됨)은 복수의 파라미터 및 상황을 설명할 수 있다. 파라미터는 이름 및 데이터 타입을 가질 수 있다. 예를 들면, 하나 이상의 기준에 의해, (예를 들면, 머신(114)의 센서에 의해) 특정한 파라미터 값에 기초하여 프로세스 상황이 검출될 수 있는 방법을 정의하는 것이 가능하다. 의존성은, 예를 들면, 머신(114)의 이용 가능한 센서(114s)에 기초하여 파라미터 값(측정 값이라고도 함)을 결정하기 위해 명시될 수 있다. 머신 특정적 적응 모델(554)은 머신 비특정적 적응 모델(504)로부터의 매핑(105b)에 의해 유도될 수 있고, 옵션 사항으로, 사용자에 의해 추가로 개선될(refined) 수 있다(211).
추가적인 제3 하위 모델(556)(머신 특정적 로직 모델로서 또한 지칭됨)은 제어 구조(516s)(예를 들면, 루프, 조건, 등등)를 갖는 절차적 프로그래밍 언어의 프로그래밍 언어 독립적인 표현을 가질 수 있다. 머신 특정적 로직 모델(556)은 다른 하위 모델, 예를 들면, 물리적 모델(552), 상호 작용 모델(558) 및 머신 특정적 적응 모델(556)을 명확하게 상호 링크할 수 있다. 머신 특정적 로직 모델(556)은 머신 비특정적 로직 모델(506)로부터 매핑(105c)에 의해 결정될 수 있다.
제4 하위 모델(558)(상호 작용 모델로서 또한 지칭됨)은 가능한 외부 시스템(518)과의 자동화 스크립트의 통합을 설명할 수 있다. 외부 시스템(518)은 적어도 하나의 센서(예를 들면, 적어도 하나의 카메라), 제어 디바이스 또는 전사적 자원 관리 시스템(enterprise resource planning system; ERP 시스템)을 가질 수 있다.
시스템 랜드스케이프(system landscape)에 통신 가능하게(520) 머신(114)을 임베딩하는 적어도 하나의 통합 특정적 프로토콜이 이 목적을 위해 정의될 수 있다. 상호 작용 모델(558)은, 예를 들면, 머신 비특정적 로직 모델(504)에 기초하여 결정될 수 있고, 옵션 사항으로, 사용자에 의해 추가로 개선될 수 있다(211).
물리적 모델(552)은 엔드 이펙터(114e)의 활동과 조합하여 움직임 프로시져 및 움직임 시퀀스를 명확하게 정의할 수 있다. 상호 작용 모델은, 머신(114)이 시스템 랜드스케이프에서 통신하는(예를 들면, 외부 시스템(518)으로 및/또는 외부 시스템(518)으로부터 데이터를 송신 및/또는 수신하는) 방법을 설명한다. 머신 특정적 적응 모델(556)은 주어진 프로시져가 요구되는 조건을 설명한다.
도 6은 다양한 실시예에 따른 방법(100)을 개략적인 흐름도(600)로 도시한다.
제어 모델(116m)의 복수의 하위 모델(프로세스 특정적 및 머신 특정적 모델)은 코드 생성기(412)에 의해 코드 세그먼트로 변환될 수 있다. 다시 말하면, 머신(114)에 의해 실행 가능한 제어 프로그램(116)이 형성될 수 있다.
제어 프로그램(116)은 머신(114)의 각각의 타겟 포맷으로 구성되는 소스 코드 파일을 가질 수 있다. 각각의 머신(114)(예를 들면, 로봇 플랫폼)은 적어도 하나의 프로그래밍 언어(예를 들면, KRL, Rapid(래피드), Visual Basic(비주얼 베이직), 등등)로 제어 프로그램(116)의 코드를 실행할 수 있다. 제어 모델(116m)의 복수의 하위 모델은 템플릿을 사용하여 텍스트로(즉, 코드 세그먼트로) 변환될 수 있다. 템플릿은 프로세스 특정적 및 머신 특정적 모델(114m, 104m)로 예시화될 수 있고, 각각의 프로그램 코드를 생성할 수 있다.
도 7은 다양한 실시예에 따른 머신(114)을 개략적인 흐름도(700)로 도시한다.
머신(114)은 본원에서 제어 프로그램(116)에 의해 프로그래머블 머신일 수 있다. 일단 프로그래밍되면, 머신(114)은 프로세스 플로우를 자율적으로 수행하도록 그리고 옵션 사항으로 센서 정보에 따른 한계 내에서 프로세스 플로우(즉, 태스크의 수행)를 변경하도록 구성될 수 있다.
머신(114)은, 제어 프로그램(116)에 따라 머신(114)의 적어도 하나의 액추에이터(704)를 제어하도록 구성되는 제어 디바이스(702)를 구비할 수 있다. 제어 디바이스(702)는, 예를 들면, 하나 이상의 프로세서 및/또는 저장 매체를 가질 수 있다. 머신(114)의 조작기(114p, 114e)는 운동학적 체인(706)을 구비할 수 있는데, 이것을 따라, 예를 들면, 운동학적 체인(706)의 링크의 상호 연결을 따라, 적어도 하나의 액추에이터(704)의 효과가 전달된다. 제어 디바이스(702)는, 예를 들면, 프로그래머블 로직 제어(PLC) 시스템을 가질 수 있다.
운동학적 체인(706)은 위치 결정 디바이스(114p) 및 위치 결정 디바이스(114p)에 의해 위치 결정 가능한 엔드 이펙터(114e)를 구비할 수 있다. 엔드 이펙터(114c)는, 워크피스에 대해 직접적으로 작용하도록, 예를 들면, 그것을 프로세싱하도록 구성되는 머신(114)의 운동학적 체인(706)의 최종 링크를 의미하는 것으로 이해될 수 있다. 워크피스에 대한 액션, 그것을 위한 준비 단계 또는 그것에 대한 사후 프로세싱 단계와 같은 활동 - 이것은 프로세스 플로우에 대응함 - 은, 더 일반적으로 프로세스 활동으로서 지칭될 수 있다. 프로세스 활동은, 예를 들면, 주조, 접합(jointing)(예를 들면, 용접, 코팅, 나사 결합, 삽입, 접촉, 접착 또는 다른 형태의 장착 또는 조립), 분리(예를 들면, 연삭, 밀링, 톱질(sawing) 또는 다른 형태의 기계가공, 프레싱 또는 분해), 재성형, 가열, 재배치(예를 들면, 파지, 채우기, 회전 또는 시프팅), 또는 유사한 것을 포함할 수 있다. 프로세스 플로우는 트랙 기반일 수 있다, 즉, 궤적(113)을 따라 엔드 이펙터(114e)의 이동에 의해 매핑될 수 있다.
위치 결정 디바이스(114p)는, 엔드 이펙터(114e)를 한 포지션으로 이동시키도록(위치 결정이라고도 함) 구성되는 적어도 하나의 액추에이터(704)를 구비할 수 있다. 엔드 이펙터(114e)는, 예를 들면, 엔드 이펙터(114e)의 도구에 의해 프로세스 활동을 수행하도록 구성되는 적어도 하나의 액추에이터(704)를 구비할 수 있다. 도구는, 일반적으로, 프로세스 활동에 따른 기능을 제공할 수 있는데, 그 프로세스 활동에 의해, 작업 단편(work piece)에 대해 액션이 수행될 수 있다. 도구는, 예를 들면, 주조 도구, 접합 도구(예를 들면, 드라이버, 글루 건 또는 용접 디바이스), 변위 도구(예를 들면, 그리퍼(gripper)), 분리 도구, 또는 유사한 것을 포함할 수 있다. 접합 도구는, 예를 들면, 코팅 도구(예를 들면, 페인트 스프레이 건, 분말 코팅 건)를 포함할 수 있거나 또는 그로부터 형성될 수 있다.
머신(114)은, 예를 들면, 규제를 구현하기 위해, 운동학적 체인의 동작 지점을 검출하도록 구성되는 적어도 하나의 내부 센서(114i)를, 옵션 사항으로, 포함할 수 있다. 대안적으로 또는 추가적으로, 머신(114)은 머신(114)의 환경의 특성을 검출하도록 구성되는 적어도 하나의 외부 센서(114s)(예를 들면, 카메라)를 포함할 수 있다. 예를 들면, 외부 센서(114s)에 의해, 사전 정의된 프로세스 상황이 우세한지(즉, 상황 관련 기준이 충족되는지)의 여부를 검출하는 것이 가능하다.
예를 들면, 기준이 충족되는지의 여부를 적어도 하나의 센서(114s, 114i)에 의해 검출되는 특성에 기초하여 결정하는 것이 가능하다. 기준이 센서 타입에 따라 파라미터화되면(즉, 센서 타입에 의해 검출 가능한 특성으로 매핑되면), 기준이 충족되는지의 여부를 결정하기 위해, 센서에 의해 검출되는 특성은 파라미터화된 기준과 비교될 수 있다.
프로세스 플로우가 프로그래머블 머신(114)에 의해 에뮬레이팅된다면, 머신(114)은, 전체적으로, 공간 정보에 따른 프로세스 활동에 가능한 한 밀접하게 대응하는 동작 지점으로 이동될 수 있다. 동작 지점은, 예를 들면, 엔드 이펙터(114e)가 이동되도록 의도되는 포지션 및 그곳에서 엔드 이펙터(114e)가 제공하도록 의도되는 효과를 정의할 수 있다. 동작 지점은, 예를 들면, 머신(114)의 개개의 액추에이터(704)의 상태의 합을 설명할 수 있다.
저장 매체는 제어 디바이스(702)의 일부로서 및/또는 그와는 별개로 제공될 수 있다. 저장 매체는, 예를 들면, 전자 반도체 저장 매체, 예를 들면, 리드 온리 메모리(read-only memory; ROM) 또는 랜덤 액세스 메모리(random-access memory; RAM), 메모리 카드, 플래시 메모리, 범용 직렬 버스(universal serial bus)용 스틱(USB 스틱), 솔리드 스테이트 드라이브(solid-state drive; SSD), 및/또는 하드 디스크 드라이브(hard disk drive; HDD), 메모리 디스크(memory disk; MD), 홀로그래픽 저장 매체(holographic storage medium), 광학 저장 매체, 컴팩트 디스크, 디지털 다기능 디스크(digital versatile disk; DVD), 또는 광자기 디스크를 포함할 수 있다.
제어는 머신을 참조하여 상기에서 설명되었다. 유추로서, 설명은, 예를 들면, 서로 통신하는(예를 들면, 프로세스 경로) 별개의 복수의 머신에, 그리고 또한, 복수의 위치 결정 디바이스 및/또는 엔드 이펙터를 구비하는 머신에 적용될 수 있다.
상기의 설명에 설명되고 도면에서 예시되는 세부 사항과 관련되는 상이한 예가 하기에서 설명된다.
예 1은 다음의 것을 포함하는 방법이다: 데이터 - 데이터는, 프로세스 플로우를 수행할 때, 작업 도구의 핸들링을 나타내고, 프로세스 플로우는 복수의 하위 프로세스를 포함하고, 프로세스 모델은, 프로세스 활동을, 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 하위 프로세스의 공간 정보와 링크함 - 를 기반으로 머신 독립적인 프로세스 모델을 결정하는 것; 머신 독립적인 프로세스 모델을 머신의 모델을 사용하여 머신의 머신 특정적 제어 모델 - 머신 특정적 제어 모델은 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 머신의 동작 지점을 정의하고, 상기 동작 지점은 프로세스 활동 및 하위 프로세스의 공간 정보에 대응함 - 로 매핑하는 것.
예 2는 예 1에 따른 방법으로서, 매핑은 공간 정보를 머신의 위치 결정 디바이스의 동작 지점으로 매핑하는 것을 포함하고; 및/또는 매핑은, 프로세스 활동을, 머신의 (예를 들면, 이동 가능하게 장착된) 엔드 이펙터(예를 들면, 그 도구)의 동작 지점으로 매핑하는 것을 포함하고; 엔드 이펙터는, 예를 들면, 위치 결정 디바이스에 의해 이동 가능하게 장착되고, 위치 결정 디바이스는, 예를 들면, 로봇 암을 포함하고, 엔드 이펙터는, 예를 들면, 프로세스 활동을 수행하도록 구성된다.
예 3은 예 1 또는 2에 따른 방법으로서, 머신은 동작 지점이 관련되는 적어도 하나의 액추에이터를 포함하고, 예를 들면, 액추에이터는 모터이고, 예를 들면, 액추에이터는 위치 결정 디바이스 및/또는 엔드 이펙터의 일부이다.
예 4는 예 1 내지 3 중 하나에 따른 방법으로서, 공간 정보는 (예를 들면, 데카르트 좌표 시스템에 따른) 정확하게 세 개의 위치 좌표 및/또는 정확하게 세 개의 방향 좌표를 가지고 및/또는 공간 정보는 선형 좌표 시스템에 관련된다.
예 5는 예 1 내지 4 중 하나에 따른 방법으로서, 복수의 하위 프로세스 중 하나 이상의 하위 프로세스(조건부 하위 프로세스로서 또한 지칭됨)는 기준에 따라 결정되고, 머신의 모델은 머신의 센서 타입을 나타내고, 매핑은 센서 타입에 따라 기준을 파라미터화하는 것을 포함하고(예를 들면, 기준을 센서 검출 공간으로 매핑함), 예를 들면, 프로세스 모델을 결정하는 것은 기준 및/또는 조건부 하위 프로세스를 (예를 들면, 데이터에 기초하여) 결정하는 것을 포함한다.
예 6은 예 1 내지 5 중 하나에 따른 방법으로서, 매핑은, 공간 정보를, (예를 들면, 머신의 적어도 하나의 액추에이터에 관련되는) 머신의 좌표 시스템으로 매핑하는 것을 포함한다.
예 7은 예 1 내지 6 중 하나에 따른 방법으로서, 프로세스 모델을 결정하는 것은, 하나 이상의 프로세스 로직(예를 들면, 규칙) - 프로세스 로직에 따라 머신 독립적인 프로세스 모델이 실행됨 - 을 (예를 들면, 데이터에 기초하여) 결정하는 것을 포함하고, 프로세스 로직은, 옵션 사항으로, 기준이 충족되는지의 여부를 결정하도록 구성되고, 예를 들면, 파라미터화된 기준은 센서에 의해 검출 가능하고, 예를 들면, 매핑은 프로세스 로직을 제어 로직에 매핑하는 것을 포함한다.
예 8은 예 1 내지 7 중 하나에 따른 방법으로서, 머신 독립적인 프로세스 모델(예를 들면, 그것의 프로세스 로직)은 복수의 하위 프로세스의 적어도 하나의 하위 프로세스에 대한 하위 프로세스의 프로세스 활동 및 공간 정보의 적어도 두 개의 링크를 포함하고, 두 개의 링크는 대안적이고, 그 중 하나는 (예를 들면, 프로세스 로직에 의해) 기준에 기초하여 선택된다.
예 9는 예 1 내지 8 중 하나에 따른 방법으로서, 공간 정보는 작업 도구의 포지션 및/또는 방위를 나타내고; 및/또는 프로세스 활동은 작업 도구의 작동 및/또는 동작 지점을 나타낸다.
예 10은 예 1 내지 9 중 하나에 따른 방법으로서, 다음의 것을 더 포함한다: 사용자 입력에 기초하여 머신 독립적인 프로세스 모델 또는 머신 특정적 제어 모델을 수정하도록 구성되는 사용자 인터페이스에 의해 머신 독립적인 프로세스 모델 및/또는 머신 특정적 제어 모델을 제시하는 것.
예 11은 예 1 내지 10 중 하나에 따른 방법으로서: 작업 도구에 부착되는 센서 배열체에 의해 데이터를 적어도 부분적으로 캡처하는 것을 더 포함하는데, 작업 도구는, 옵션 사항으로, 사람(예를 들면, 그의 손)에 의해 (예를 들면, 직접적으로 및/또는 근력으로) 핸들링 및/또는 운반되고, 예를 들면, 센서 배열체는 작업 도구에 제거 가능하게(즉, 가역적으로) 부착된다.
예 12는: 데이터, 예를 들면, 예 1 내지 11 중 하나에 따른 데이터를, (예를 들면, 수동으로 이동 가능한) 작업 도구 - 데이터는, 프로세스 플로우가 작업 도구에 의해 수행되는 동안 작업 도구의 핸들링을 나타내고, 작업 도구는 사람에 의해 이동됨 - 에 제거 가능하게 부착되는 센서 배열체에 의해 적어도 부분적으로 캡처하는 것; 데이터에 기초하여 머신 독립적인 프로세스 모델 - 상기 프로세스 모델은 프로세스 플로우를 나타냄 - 을 결정하는 것을 포함하는 방법인데, 예를 들면, 다음의 것을 더 포함한다: 머신 독립적인 프로세스 모델을 머신의 모델을 사용하여 머신 특정적 제어 모델로 매핑하는 것.
예 13은 예 11 또는 12에 따른 방법으로서, 센서 배열체는 부착 디바이스를 포함하는데, 이 부착 디바이스에 의해, 센서 배열체는 작업 도구에 제거 가능하게 부착된다.
예 14는 예 11 내지 13 중 하나에 따른 방법으로서, 센서 배열체(예를 들면, 그것의 부착 디바이스)는 하나 이상의 자석; 및/또는 클램핑 디바이스(예를 들면, 클립 및/또는 클램핑 나사를 가짐)를 구비하고; 및/또는 후크 앤드 루프 체결구를 구비한다.
예 15는 예 11 내지 14 중 하나에 따른 방법으로서, 센서 배열체는 작업 도구와는 별개로 에너지를 공급받고; 및/또는 센서 배열체는 작업 도구로부터 갈바닉 절연된다(galvanically isolated).
예 16은 예 11 내지 15 중 하나에 따른 방법으로서, 센서 배열체는 하나 이상의 궤적 센서(예를 들면, 위치 센서 및/또는 움직임 센서)를 구비하는데, 그 궤적 센서에 의해, 데이터가 캡처된다.
예 17은 예 11 내지 16 중 하나에 따른 방법으로서, 센서 배열체는 동작 지점 센서를 구비하는데, 그 동작 지점 센서에 의해 작업 도구의 동작 지점이 검출되고, 예를 들면, 동작 지점 센서는 스루풋 센서, 온도 센서 및/또는 전류 센서(예를 들면, 전력 센서)를 구비한다.
예 18은 예 11 내지 17 중 하나에 따른 방법으로서: 센서 배열체로부터 기지국으로 데이터를 무선으로 송신하는 것을 더 포함하는데, 기지국은, 예를 들면, 컴퓨팅 유닛을 포함하고, 머신 독립적인 프로세스 모델은 컴퓨팅 유닛에 의해 결정된다.
예 19는 예 1 내지 18 중 하나에 따른 방법으로서, 예를 들면, 센서 배열체에 의해 캡처되는 데이터는 작업 도구의 궤적(예를 들면, 위치 관련 및/또는 움직임 관련 특성)을 나타내고, 및/또는 작업 도구의 동작 지점에 따른 특성(예를 들면, 체적 유량, 온도 또는 전류 강도)을 나타낸다.
예 20은 예 19에 따른 방법으로서, 머신 독립적인 프로세스 모델을 결정하는 것은, 프로세스 플로우의 궤적 - 예를 들면, 이 궤적을 따라, 작업 도구가 안내되고 및/또는 하위 프로세스가 발생함 - 을 결정하는 것, 상기 궤적을 평활화하는 것 및/또는 궤적의 하나 이상의 지점을 버리는 것을 포함한다.
예 21은 예 1 내지 20 중 하나에 따른 방법으로서, 머신 독립적인 프로세스 모델을 결정하는 것은 프로세스 활동 및/또는 공간 정보에 대한 적어도 하나의 경계 조건을 고려하는 것을 더 포함하고, 예를 들면, 머신 독립적인 프로세스 모델을 결정하는 것은 복수의 하위 프로세스 중 적어도 하나의 하위 프로세스의 모델 - 상기 모델은 경계 조건을 정의함 - 을 고려하는 것을 더 포함하고, 경계 조건은, 예를 들면, 파라미터화되고(즉, 파라미터에서 정의되고), 경계 조건은, 예를 들면, 전체 프로세스 플로우에 대해 정의된다.
예 22는 예 21에 따른 방법인데, 적어도 하나의 경계 조건은 시간 정보 및/또는 기계적 정보에 관련되고, 예를 들면, 적어도 하나의 경계 조건은 동작 속도, 유지 시간, 힘, 및/또는 압력을 포함한다.
예 23은 예 1 내지 22 중 하나에 따른 방법으로서, 데이터는 시간 분해 방식으로 캡처된다.
예 24는 예 1 내지 23 중 하나에 따른 방법으로서, 머신의 모델은 머신의 센서 타입, 머신의 엔드 이펙터, 머신의 위치 결정 디바이스 및/또는 엔드 이펙터의 및/또는 위치 결정 디바이스의 물리적 아키텍쳐를 고려하고, 및/또는 머신의 모델은 엔드 이펙터의 기능적 특성을 고려한다.
예 25는 예 1 내지 24 중 하나에 따른 방법으로서, 머신 독립적인 프로세스 모델은 프로세스 플로우의 결과를 추가로 나타낸다.
예 26은 예 1 내지 25 중 하나에 따른 방법으로서: 머신 특정적 제어 모델을, 머신에 의해 실행 가능한 제어 프로그램 상으로 매핑하는 것을 더 포함하는데, 예를 들면, 상기 제어 프로그램의 코드 세그먼트는 머신의 프로그래밍 인터페이스에 따라 구성된다.
예 27은 예 26에 따른 방법으로서, 제어 프로그램에 대한 머신 특정적 제어 모델의 매핑은 하나 이상의 템플릿을 사용하는 것을 포함한다.
예 28은 예 27에 따른 방법으로서, 템플릿은 머신의 모델, 프로세스 모델 및/또는 적어도 하나의 하위 프로세스의 모델에 의해 예시화된다.
예 29는 예 1 내지 28 중 하나에 따른 방법으로서: 고정 방식으로 배치되는 추가적인 센서 배열체에 의해 적어도 부분적으로 데이터를 캡처하는 것을 더 포함하는데, 예를 들면, 추가적인 센서 배열체 및 센서 배열체의 검출 및/또는 데이터의 대응하는 부분은 동기화된다.
예 30은 예 29에 따른 방법으로서, 추가적인 센서 배열체는 광전자 센서, 거리 센서, 소나 센서 및/또는 레이더 센서를 구비하고; 및/또는 추가적인 센서 배열체에 의해 캡처되는 데이터는 작업 도구의 궤적(예를 들면, 위치 관련 및/또는 움직임 관련 특성)을 나타낸다.
예 31은: 예 1 내지 30 중 하나에 따른 방법을 실행하도록 구성되는 하나 이상의 프로세서를 포함하는 시스템인데, 옵션 사항으로, 센서 배열체 및/또는 추가적인 센서 배열체와의 무선 통신을 위한 무선 통신 디바이스를 더 구비한다.
예 32는 예 31에 따른 시스템으로서, 다음의 것을 더 포함한다: 머신 독립적인 프로세스 모델, 머신 특정적 제어 모델 및/또는 머신의 모델이 저장되는 하나 이상의 비휘발성 메모리; 및/또는 데이터를 캡처하기 위한 하나 이상의 센서 배열체.
예 33은, 프로세서에 의해 실행될 때 예 1 내지 30 중 하나에 따른 방법을 실행하도록 구성되는 코드 세그먼트를 구비하는 비휘발성 메모리이다.
예 34는 머신 독립적인 프로세스 모델, 예를 들면, 예 1 내지 30 중 하나에 따른 방법으로부터의 프로세스 모델로서, 프로세스 모델은 프로세스 활동을 복수의 하위 프로세스의 각각의 하위 프로세스에 대한 하위 프로세스의 공간 정보와 링크하고, 복수의 하위 프로세스는 작업 도구에 의해 수행되는 프로세스 플로우의 일부이고, 예를 들면, 공간 정보는 (예를 들면, 데카르트 좌표 시스템에 따른) 정확하게 세 개의 위치 좌표 및/또는 정확하게 세 개의 방향 좌표를 포함하고, 공간 정보는 선형 좌표 시스템에 관련된다.

Claims (15)

  1. 방법(100)으로서,
    데이터에 기초하여 머신 독립적인 프로세스 모델(104m) - 상기 데이터는 프로세스 플로우를 수행할 때(101) 작업 도구(104)의 핸들링을 나타내고, 상기 프로세스 플로우는 복수의 하위 프로세스를 포함하고, 상기 프로세스 모델(104m)은, 상기 복수의 하위 프로세스의 각각의 하위 프로세스에 대해, 프로세스 활동을, 상기 하위 프로세스의 공간 정보와 링크함 - 을 결정하는 단계(103)와,
    머신(114)의 모델(114m)을 사용하여 상기 머신 독립적인 프로세스 모델(104m)을 상기 머신(114)의 머신 특정적 제어 모델(116m) - 상기 머신 특정적 제어 모델은(116m)은, 상기 복수의 하위 프로세스의 각각의 하위 프로세스에 대해, 상기 하위 프로세스의 상기 공간 정보에 그리고 상기 프로세스 활동에 대응하는 상기 머신(114)의 동작 지점을 정의함 - 에 매핑하는 단계(105)를 포함하는,
    방법(100).
  2. 제1항에 있어서,
    상기 매핑하는 단계(105)는 상기 공간 정보를 상기 머신(114)의 위치 결정 디바이스(114p)의 동작 지점에 매핑하는 단계를 포함하는,
    방법(100).
  3. 제2항에 있어서,
    상기 매핑하는 단계(105)는, 상기 프로세스 활동을, 상기 위치 결정 디바이스(114p)를 통해 이동 가능하게 장착되는 상기 머신(114)의 엔드 이펙터(end effector; 114e)의 동작 지점에 매핑하는 단계를 포함하는,
    방법(100).
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 하위 프로세스 중 적어도 하나의 하위 프로세스는 기준에 따른 조건부이고,
    상기 매핑하는 단계(105)는 상기 머신(114)의 센서 타입에 따라 상기 기준을 파라미터화하는 단계를 포함하는,
    방법(100).
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 공간 정보는 상기 작업 도구(104)의 포지션 및/또는 방위를 나타내는,
    방법(100).
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 프로세스 활동은 상기 작업 도구(104)의 작동 및/또는 동작 지점을 나타내는,
    방법(100).
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    사용자 입력에 기초하여 상기 머신 독립적인 프로세스 모델(104m) 또는 상기 머신 특정적 제어 모델(116m)을 수정하도록 구성되는 사용자 인터페이스에 의해 상기 머신 독립적인 프로세스 모델(104m) 및/또는 상기 머신 특정적 제어 모델(116m)을 제시하는 단계를 더 포함하는,
    방법(100).
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 작업 도구(104)에 부착되는 센서 배열체(sensor arrangement; 102)에 의해 상기 데이터를 적어도 부분적으로 캡처하는 단계를 더 포함하는,
    방법(100).
  9. 제8항에 있어서,
    상기 센서 배열체(102)에 의해 캡처되는 상기 데이터는, 상기 작업 도구(104)의 궤적 및 상기 작업 도구(104)의 동작 지점에 따른 특성 중 하나 이상을 나타내는,
    방법(100).
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    고정 방식으로 배치되는 추가적인 센서 배열체(112)에 의해 상기 데이터를 적어도 부분적으로 캡처하는 단계를 더 포함하는,
    방법(100).
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 머신 특정적 제어 모델(116m)을, 상기 머신(114)에 의해 실행 가능한 제어 프로그램에 매핑하는 단계를 더 포함하는,
    방법(100).
  12. 제11항에 있어서,
    상기 제어 프로그램에 대한 상기 머신 특정적 제어 모델(116m)의 매핑은 하나 이상의 템플릿을 사용하는 것을 포함하는,
    방법(100).
  13. 제12항에 있어서,
    상기 템플릿은 상기 머신(114)의 상기 모델(114m)에 의해 예시화되는,
    방법(100).
  14. 시스템으로서,
    제1항 내지 제13항 중 어느 한 항에 따른 방법(100)을 수행하도록 구성되는 하나 이상의 프로세서를 포함하는,
    시스템.
  15. 프로세서에 의해 실행될 때, 제1항 내지 제13항 중 어느 한 항에 따른 방법(100)을 실행하도록 구성되는 코드 세그먼트를 포함하는,
    비휘발성 저장 매체.
KR1020217032067A 2019-03-07 2020-03-06 방법, 시스템 및 비휘발성 저장 매체 KR20220002279A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102019105820.1A DE102019105820A1 (de) 2019-03-07 2019-03-07 Verfahren, System sowie nichtflüchtiges Speichermedium
DE102019105820.1 2019-03-07
PCT/EP2020/056052 WO2020178435A1 (de) 2019-03-07 2020-03-06 Verfahren, system sowie nichtflüchtiges speichermedium

Publications (1)

Publication Number Publication Date
KR20220002279A true KR20220002279A (ko) 2022-01-06

Family

ID=69784434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217032067A KR20220002279A (ko) 2019-03-07 2020-03-06 방법, 시스템 및 비휘발성 저장 매체

Country Status (7)

Country Link
US (1) US20220143830A1 (ko)
EP (1) EP3934858A1 (ko)
JP (1) JP2022524385A (ko)
KR (1) KR20220002279A (ko)
CN (1) CN113710430A (ko)
DE (1) DE102019105820A1 (ko)
WO (1) WO2020178435A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11654566B2 (en) * 2020-08-12 2023-05-23 General Electric Company Robotic activity decomposition
CA3219543A1 (en) 2021-05-17 2022-11-24 Cobionix Corporation Proximity sensing autonomous robotic systems and apparatus

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776477B2 (ja) * 1996-02-13 1998-07-16 川崎重工業株式会社 ロボット3次元位置姿勢教示システム
SE531104C2 (sv) * 2002-12-30 2008-12-16 Abb Research Ltd Metod och system för programmering av en industrirobot
ATE414594T1 (de) * 2006-04-03 2008-12-15 Abb Research Ltd Vorrichtung und verfahren zur bahnerzeugung für einen industrieroboter
US7865285B2 (en) * 2006-12-27 2011-01-04 Caterpillar Inc Machine control system and method
US20090132088A1 (en) * 2007-04-24 2009-05-21 Tairob Ltd. Transfer of knowledge from a human skilled worker to an expert machine - the learning process
US9731419B2 (en) * 2010-08-03 2017-08-15 Praxair S.T. Technology, Inc. System and method for programming robots
US8578346B2 (en) * 2010-09-10 2013-11-05 International Business Machines Corporation System and method to validate and repair process flow drawings
AT12208U3 (de) * 2011-09-06 2013-07-15 Keba Ag Verfahren, steuerungssystem und bewegungsvorgabemittel zum programmieren oder vorgeben von bewegungen oder abläufen eines industrieroboters
JP5549749B1 (ja) * 2013-01-16 2014-07-16 株式会社安川電機 ロボット教示システム、ロボット教示プログラムの生成方法および教示ツール
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
JP2015111338A (ja) * 2013-12-06 2015-06-18 株式会社ツガミ 加工プログラム生成装置、加工システム、及び、加工プログラム生成用のプログラム
WO2015149360A1 (en) * 2014-04-04 2015-10-08 Abb Technology Ltd Portable apparatus for controlling robot and method thereof
US20150024345A1 (en) * 2014-10-09 2015-01-22 Reza Eftekhar Ashtiani A milling blank and a method for fabricating dental bridgework using milling blank
TWI805545B (zh) * 2016-04-12 2023-06-21 丹麥商環球機器人公司 用於藉由示範來程式化機器人之方法和電腦程式產品
US10807233B2 (en) * 2016-07-26 2020-10-20 The University Of Connecticut Skill transfer from a person to a robot
JP6469069B2 (ja) * 2016-12-13 2019-02-13 ファナック株式会社 学習を容易化する機能を備えたロボット制御装置、及びロボット制御方法
JP6392905B2 (ja) * 2017-01-10 2018-09-19 ファナック株式会社 教示装置への衝撃を学習する機械学習装置、教示装置の衝撃抑制システムおよび機械学習方法
US10751879B2 (en) * 2017-06-05 2020-08-25 Autodesk, Inc. Adapting simulation data to real-world conditions encountered by physical processes
JP6514278B2 (ja) * 2017-07-04 2019-05-15 ファナック株式会社 レーザ加工ロボットシステム
CN107738256A (zh) * 2017-10-17 2018-02-27 佛山市南方数据科学研究院 一种手把手仿人示教机器人编程系统
CN108161904B (zh) * 2018-01-09 2019-12-03 青岛理工大学 基于增强现实的机器人在线示教装置、系统、方法、设备
US11281936B2 (en) * 2018-12-31 2022-03-22 Kofax, Inc. Systems and methods for identifying processes for robotic automation and building models therefor

Also Published As

Publication number Publication date
US20220143830A1 (en) 2022-05-12
WO2020178435A1 (de) 2020-09-10
DE102019105820A1 (de) 2020-09-10
EP3934858A1 (de) 2022-01-12
JP2022524385A (ja) 2022-05-02
CN113710430A (zh) 2021-11-26

Similar Documents

Publication Publication Date Title
Villani et al. Survey on human-robot interaction for robot programming in industrial applications
Hägele et al. Industrial robotics
Suh et al. A framework for an intelligent CNC and data model
Nagata et al. Development of CAM system based on industrial robotic servo controller without using robot language
US20230011979A1 (en) Handheld device for training at least one movement and at least one activity of a machine, system and method
Nilsson Industrial robot programming
KR20220002279A (ko) 방법, 시스템 및 비휘발성 저장 매체
Giusti et al. Flexible automation driven by demonstration: Leveraging strategies that simplify robotics
Nair et al. Development of an easy teaching and simulation solution for an autonomous mobile robot system
Wang et al. Augmented reality enabled human–robot collaboration
Matthaiakis et al. Flexible programming tool enabling synergy between human and robot
Tirmizi et al. User-friendly programming of flexible assembly applications with collaborative robots
Alvares et al. Retrofitting of ASEA IRB2-S6 industrial robot using numeric control technologies based on LinuxCNC and MACH3-MatLab
Huckaby et al. Modeling robot assembly tasks in manufacturing using sysml
Lind et al. Open real-time robot controller framework
Linnerud et al. CAD-based system for programming of robotic assembly processes with human-in-the-loop
Wahl et al. Robot programming-from simple moves to complex robot tasks
Blank et al. Adaptive Motion Control Middleware for Teleoperation Based on Pose Tracking and Trajectory Planning
Schlette et al. 3D simulation-based user interfaces for a highly-reconfigurable industrial assembly cell
Protic et al. Development of a novel control approach for collaborative robotics in i4 intelligent flexible assembling cells
Perumal et al. Physical interaction and control of robotic systems using hardware-in-the-loop simulation
Freund et al. A system to automate the generation of program variants for industrial robot applications
Iqbal et al. Intelligent Motion Planning in Human-Robot Collaboration Environments
Schäle et al. Programming Fine Manufacturing Tasks on Collaborative Robots: A Case Study on Industrial Gluing
Sun et al. Direct virtual-hand interface in robot assembly programming

Legal Events

Date Code Title Description
E902 Notification of reason for refusal