KR20200037253A - 서로 다른 변형들을 갖는 작업편들을 처리하기 위한 로봇들의 효율적인 프로그래밍 - Google Patents

서로 다른 변형들을 갖는 작업편들을 처리하기 위한 로봇들의 효율적인 프로그래밍 Download PDF

Info

Publication number
KR20200037253A
KR20200037253A KR1020207003759A KR20207003759A KR20200037253A KR 20200037253 A KR20200037253 A KR 20200037253A KR 1020207003759 A KR1020207003759 A KR 1020207003759A KR 20207003759 A KR20207003759 A KR 20207003759A KR 20200037253 A KR20200037253 A KR 20200037253A
Authority
KR
South Korea
Prior art keywords
tool
work piece
workpiece
robot
variants
Prior art date
Application number
KR1020207003759A
Other languages
English (en)
Other versions
KR102532843B1 (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 KR20200037253A publication Critical patent/KR20200037253A/ko
Application granted granted Critical
Publication of KR102532843B1 publication Critical patent/KR102532843B1/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
    • 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/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/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/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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • G05B19/40931Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine concerning programming of geometry
    • G05B19/40935Selection of predetermined shapes and defining the dimensions with parameter input
    • 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/31From computer integrated manufacturing till monitoring
    • G05B2219/31068Relative positioning of assembled parts with small geometric deviations
    • 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/36174Program divided into modules
    • 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/36228Combine two programs to obtain new shifted positions and new processing data
    • 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/40515Integration of simulation and planning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Geometry (AREA)
  • Manufacturing & Machinery (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

작업편들을 프로세싱하기 위한 로봇들의 컴퓨터-보조 프로그래밍을 위한 방법이 기술된다. 예시적인 일 실시예에 따르면, 이 방법은 워크스테이션 상에서 실행되는 소프트웨어 툴을 이용해 수 개의 작업편의 작업편 변형들의 모델들을 중첩하는 것에 의해 제1 가상의 작업편을 생성하는 단계 및 상기 작업편의 적어도 하나의 제1 영역에 대하여 툴 경로들을 결정하기 위해 경로 계획을 수행하고 또한 상기 제1 가상의 작업편에 기초하여 결정된 툴 경로들을 증명하는 단계를 포함한다. 작업편 변형들 각각은 기본 몸체의 결정된 국소 기하 형태들의 세트에 의해 주어진다. 서로 다른 기하 형태들이 작업편 기본 몸체 상에 배치되는 예를 들어 부착 부분들에 의해 또는 작업편 기본 몸체의 외부 기하 형태의 변형에 의해 형성될 수 있다.

Description

서로 다른 변형들을 갖는 작업편들을 처리하기 위한 로봇들의 효율적인 프로그래밍
본 발명은 로봇들, 예를 들어 다수의 서로 다른 기하학적 변형들을 갖는 작업 표면들의 측정 또는 프로세싱(도색, 연마, 용접, 실링 조인트 등)하기 위한 로봇들의 컴퓨터-지원(자동 및 반자동) 프로그래밍에 관한 것이다.
제조에 있어서 로봇들의 태스크 중 하나는 작업편 표면들의 자동 프로세싱(예. 도색, 연마, 분쇄 및 유사한 프로세스들 등)에 있다. 이 태스크들의 프로그래밍을 위해, 로봇 컨트롤러에 의해 구현될 수 있는, 실행가능한 로봇 프로그램들은 오프라인 프로그래밍 또는 "티치인(Teach-in)" 또는 "데모에 의한 프로그래밍" 등 다른 방법들을 이용해, 생성된다. 로봇 프로그램은 로봇 컨트롤러에 의해 프로세싱되고 또한 이에 의해 로봇 및 이 로봇에 의해 사용되는 툴들을 위한 대응하는 제어 신호들로 변환될 수 있는 명령들을 기술하여, 이로써 로봇은 작업편 표면의 원하는 프로세싱을 완료하는 데 필요한 행위들 및 프로그래밍된 움직임들을 수행하도록 영향을 주게 된다.
로봇들을 프로그래밍하기 위한 티치인 방법들은 점점 예를 들어 워크스테이션 상에서 실행되고 또한 로봇 프로그램 오프라인을 생성 및 시뮬레이션(및 증명)할 수 있는 반자동 및 전자동 소프트웨어 툴들에 의해 교체되고 있다. 이 시뮬레이션들은 전체 로봇 셀(즉, 로봇, 작업편, 및 로봇의 작업장소)를 아우를 수 있고 또한 시뮬레이션들은 로봇의 움직임들 뿐만 아니라 로봇이 개별적인 태스크를 수행하는 방식 모두를 수반한다. 로봇에 의해 이 태스크 수행(예를 들어, 작업편의 표면 도색)은 이하에서 프로세스로서 지칭될 것이다. 프로세스의 결과들(예를 들어, 프로세스 동안 적용된 페인트 층의 두께)는 또한 상기에서 언급된 소프트웨어 툴들을 이용하여 시뮬레이션될 수 있다.
로봇들의 컴퓨터-보조(자동 또는 반자동) 프로그래밍에 있어서 첫번째 단계들 중 하나는 경로 계획, 즉, 로봇의 툴 중심점(TCP)의 궤적(위치 및 방향)의 계획 및 이와 함께 로봇에 의해 이용되는 툴의 궤적의 계획이다. 궤적은 다수의 경로 부분들로 구성될 수 있는데, 이것은 작업편의 CAD 모델에 기초하여 컴퓨터(즉, 컴퓨터에-기반하지만, 계획에 개입할 수 있는 사람의 추가적인 보조를 받는)에 의해 자동 또는 반자동으로 결정될 수 있다.
알려진 자동 경로 계획을 위한 컴퓨터에-기반한 방법들은 특정 기하구조(기하 형태)를 이용하는 작업편들을 위한 로봇 프로그램을 생성한다. 몇몇의 응용들에 있어서, 작업편들은 다수의 서로 다른 징후들/ 주어진 기본 형태의 변형들로 나타낼 수 있다. 이 기본 형태의 서로 다른 변형들은 예를 들어, 베이스 몸체(예. 섀시)의 서로 다른 부분들이 서로 다른 기하 특성들을 가질 때, 발생할 수 있다. 이 서로 다른 기하 특성들은, 예를 들어 부가 구성요소들의 서로 다른 버전들로부터 귀인한다. 이것은, 예를 들어 변형에 따라서 - 부가 구성요소들의 서로 다른 조합들이 베이스 몸체(예. 섀시) 상에 장착될 수 있음을 의미한다. 예를 들어, 변형에 따라서, 트랙터들, 세미트레일러들 또는 트레일러들이 서로 다른 연료 탱크들, 에어 탱크들, 악셀들, 화물 공간들, 추가적인 모듈들 등을 가질 것이다. 주어진 수(N)의 다양한 부가 구성요소들 및 주어진 수의 버전들(V)이 각각의 부가 구성요소에 대하여 존재한다고 가정하면(예. 대, 중 소), 그때는 작업편의 기본 형태의 (V+1)N 개의 변형들 만큼 존재할 것이다. (부가 구성요소가 V 개의 버전들 중 하나에 부착되거나, 또는 전혀 부착되지 않을 수 있기 때문에 V+1)
기본 형태의 서로 다른 변형들은 또한 예를 들어, 서로 다른 카테고리들의 작업편들이 제조될 때(예. 트레일러의 긴 또는 짧은 버전으로, 다양한 수들 및 크기들의 균형추들로, 다양한 크기들의 프레임들을 가지는, 등) 발생할 수 있다. 서로 다른 카테고리들에 있어서, 작업편의 부분들 또는 영역들은 유사할 수 있거나(표면상으로 또는 프로세스와 관련하여) 또는 작업편의 부분들/영역들은 유사하거나 또는 동일하지만 작업편 상의 서로 다른 위치들에 배치될 수 있다(예. 작업편들이 서로 다른 길이들을 가질 때). 기본 형태의 다른 변형들은 소위 "외장개조(facelift)"로부터 발생할 수 있는데, 이 경우에 있어서 처리되어야 하는 작업편들은 어떤 측면들에서는 이전의 작업편들과 유사하고 또한 다른 측면들에서는 새롭거나 또는 다르다. 동일한 작업편의 상이한 제품 생성들은 다를 수 있고 단지 최소한이라면, 동일한 작업편의 서로 다른 변형들로서 간주될 수 있다.
로봇 경로의 컴퓨터로-보조받는 계획을 위해 알려진 방법들이 로봇 프로그램들을 생성하기 위해 채용될 때, 별도로 분리된 경로 계획이 수행되어야 하고 또한 모든 작업편 각각에 대하여 대응하는 로봇 프로그램이 생성(뿐만 아니라 시뮬레이션 및 증명)되어야 한다. 프로그래밍 태스크가 부분들로 분할될 때, 예를 들어 또는 결과들 몇몇은 다른 변형들을 위해 재사용될 때, 특히 경로 계획이 완전히 자동으로 수행되는 것을 허용하지 않고 대신 사람이 수동으로 계획 프로세스에 개입해야 하는 복잡한 기하구조를 가지는 작업편들의 경우에 있어서 또한, 특히 완전히 자동으로 또는 상호작용적으로 결정된 로봇 프로그램이 실행 전 또는 후에 최적화될 필요가 있을 때, 계획은 상당 시간 소요될 수 있다. 발명자는 이 문제를 인지하였고 본 발명의 목적 중 하나는 가능한 한 적은 노력을 들여 변형들의 다수(또는 최대한으로, 심지어 모두)를 효율적으로 프로그래밍 - 및 최적화-하는 데 있다. 특히 첫번째의 경우에 있어서(서로 다른 부가 구성요소들의 다양한 버전들을 수반하는), 프로그램들은 많은(예. 수천의) 가능한 작업편 변형들(부가 구성요소들의 조합들의 변형들)의 로봇들에 적용가능하게 만들어져야 할 것이다. 종종 필요한 로봇 프로그램들의 후속적인 최적화 때문에, 가능한 많은 변형들이 가능한 한 적은 프로그래밍 또는 계획을 위한 노력을 들여 각각 프로그램에 의해 커버되어야 할 뿐만 아니라, 주어진 변형들은 또한 가능한 한 적은(후속적으로 필요한 만큼만) 프로그램들에 의해 커버되어야 하고 또한 변형들 그 자체는 가능한 한 적은 다른 툴 경로들(최적화를 필요로 하는)에서 처리되어야 한다.
상기에서 언급된 목적은 청구항 제 1 항에 따른 방법에 의해 달성된다. 다양한 실시예들 및 추가적인 개선들은 종속항들의 요지를 형성한다.
작업편들을 처리하기 위한 로봇들의 컴퓨터-보조 프로그래밍을 위한 방법이 설명된다. 일 실시예에 따르면, 본 방법은 워크스테이션 상에서 실행되는 소프트웨어 툴을 이용해 다수의 작업편 변형들의 모델들을 가상적으로 중첩시키는 모델들에 의해 제1 가상(반드시 구현가능한 것이 아닌) 작업편을 생성하는 단계 뿐만 아니라, 상기 작업편의 적어도 하나의 제1 영역에 대하여 툴 경로들을 결정하기 위해 경로 계획을 수행하고 또한 상기 제1 가상의 작업편에 기초하여 결정된 툴 경로들을 증명하는 단계를 포함한다. 작업편 변형들 각각은 베이스 몸체의 다수의 특정한, 국소적인 기하학적 표현들에 의해 정의된다. 다양한 기하학적 표현들은, 예를 들어 작업편의 베이스 몸체 상의 부가 구성요소들에 의해 또는 작업편의 베이스 몸체의 외부 기하학적 형태의 변형들에 의해 형성될 수 있다. 나아가, 이 (부분적인) 자동화된, 컴퓨터-보조 프로그래밍을 위한 대응하는 시스템이 설명된다.
본 발명은 도면들에 도시된 예들에 기초하여 더 상세하게 설명될 것이다. 도시들은 반드시 실제 크기일 필요는 없고 본 발명은 여기에 도시된 측면들에 한정되지 않는다. 대신 본 발명의 기본 원리들을 설명하는 것이 중요하다.
도 1은 다양한 작업편 변형들의 CAD 데이터를 중첩하는 것에 의한 최대 모델의 형성을 보여준다.
도 2는 도 1에 따른 최대 모델의 형성에 기여하는 3 개의 서로 다른 작업편 변형들의 예들을 보여준다.
도 3은 로봇을 위한 프로그램을 생성하는 다양한 단계들을 보여주는 흐름도이다.
도 4는 작업편의 다양한 부분들을 위한 컴퓨터-보조 프로그램 생성을 예시적으로 보여준다.
도 5는 오프라인 프로그래밍(OLP)의 구조 예를 보여주는 블록도이다.
도 6은 여기에 설명된 컴퓨터-보조 방법의 일 예를 나타내는 블록도이다.
도 7은 서로 다른 작업편 변형들을 위한 툴 경로의 개별적인 계획을 보여준다.
도 8은 도 7로부터의 수 개의 작업편 변형들의 가상적 중첩에 기초한 툴 경로의 계획을 보여준다.
도 9는 도 7로부터의 수 개의 작업편 변형들의 가상적 중첩의 2 개의 서로 다른 예들에 기초한 2 개의 툴 경로들의 계획을 보여준다. 특히, 현재 처리되고 있는 부가 구성요소의 경로들 상에 현재 처리되고 있지 않는 이웃하는 부가 구성요소들의 영향이 도시되어 있고 또한 이로부터 부가 구성요소를 위한 2 개의 경로들은 생성될 수 있다(디커플링 없음).
도 10은 구체적으로 구현가능한 다양한 작업편 변형들을 위한 툴 경로들(또는 툴 경로들의 그룹들)의 개별적인 계획의 일 예를 보여준다. 이것은 또한 현재 처리되고 있는 영역의 외부에 가상의 작업편의 최대 모델을 채용하는 것에 의해 어떻게 가능한 조합들의 수가 감소될 수 있는지 보여준다.
도 11은 여기에 기술된 방법들을 채용하는 것에 의해 감소되는 툴 경로들(즉, 툴 경로들의 그룹들)의 수를 예시적으로 보여준다.
도 12는 여기에 기술된 방법들이 어떻게 하나의 베이스 몸체의 변형들로서 간주될 수 있는 다수의 유사한 작업편들에 적용되고; 계획이 다수의 작업편들의 가상적 중첩을 이용해 3 개의 서로 다른 변형들에 대한 최소 수의 툴 경로들(3x4 경로들 대신 3+2 경로들로 감소된)을 생성하는지 보여준다.
로봇들의 프로그래밍에 대한 이하의 접근법들(A - D)(예. 자동, 반자동, 컴퓨터-보조, 수동 등 경로 계획을 포함하여)이 알려져 있다: (A) 예를 들어, 오프라인 프로그래밍(OLP)을 이용해 또는 로봇 셀 내의 데모(PBD)에 의한 티치인 또는 프로그래밍을 이용해, 작업편의 각각의 변형에 대한 로봇 당 하나의 프로그램의 프로그래밍. (B) 작업편의 형태/치수(부분들로 가상의 "절단")에 따라 또는 로봇들의 배치 영역들에 따라 또는 추가적인 엑츄에이터들 및 그 각각에 대하여 하나의 로봇 당 하나의 프로그램이 생성되는 것에 따라 발생하는 작업편 당 프로그램들의 분할. 예를 들어, 작업편이 회전가능하거나 또는 이동가능한 플랫폼 상에 배치될 때, 개별적인 프로그램은 작업편의 다양한 위치들에 대하여 생성된다. 이 접근법은 접근법 A와 조합될 수 있다. (C) 개별적인 부가 구성요소들에 대한 및 지지 구조들에 대한 로봇 경로들의 개별적인 프로그래밍은, 예를 들어, 개별적인 프로그램들 또는 서브프로그램들의 형태로 후속적으로 서로 결합되거나, 차례로 실행될 수 있다. 이 접근법은 접근법들 A 및/또는 B와 결합될 수 있다. (D) CAD 데이터에 기초한(예. 창틀 도색을 위한) 또는 구성요소들의 실제 형태를 나타내는 3D 센서 데이터에 기초한 로봇 경로들의 완전 자동화 계획.
접근법들(B 및 C)와 조합하여 티치인, 서로 다른 PBD 또는 OLP (접근법 A)을 채용하는 것이 더 효율적일 수 있지만, 수동 프로그래밍은 시간이 많이 들고 또한 매우 많은 수의 유닛들이 생산될 때에만 경제적이다. 분할이 능숙하게 수행될 때, 프로그래밍을 위해 작업편 당 프로그램들을 부분들로 분해하는 것(접근법 B)은 또한 모든 작업편들에 대하여 동일한 부분들을 생성할 것이고 이로써 작업편의 서로 다른 변형들에 재사용될 수 있기 때문에 한번 프로그램될 필요가 있다. 이것은 서로 다른 변형들에 대하여 서로 다르게 프로그램되어야 하는 부분들의 크기를 감소시키고, 이로써 각각의 부분의 처리 및 프로그래밍에 필요한 시간을 감소시킨다. 이것은 또한 조합들 및 최종적인 로봇 프로그램 변형들의 수를 낮출 수 있다. V 개의 버전들이 있는 N 개의 부가 구성요소들이 주어진다면, 프로그램들의 수는 이론상으로 최대 (V+1)N으로부터 Sx(F+1)N /s로 감소될 것이고, 이로써 N 개의 구성요소들이 작업편의 S 개의 부분들에 고르게 분포된다고 가정되는데, 이것은 수반되는 노력을 감소시키기 위해서는 유리하지만 반드시 필요하지는 않다. 이것은 이 방법을 이용해, 부가 구성요소들의 모든 조합들을 커버하는 데 필요한 프로그램들의 수는 기하급수적으로 뿐만 아니라 부가 구성요소들의 수로부터 부분적으로 추가되는 것을 의미한다. 하지만, 이 방식으로 결정되는 프로그램들(프로그램 부분들)은 서로 독립적인 것으로 간주된다. 예를 들어, 한 부분에 있는 부가 구성요소들은 이웃하는 부분의 영역들이 로봇이 이용하는 툴에 대하여 접근불가하도록 만들어주거나 또는 이웃하는 부분의 프로세싱에 다른 영향을 주거나 또는 이들이 로봇과 충돌하도록 야기시킬 수 있다. 이러한 경우에 있어서, 접근법 B는 실패하고 작업편의 이웃하는 부분들은 분리되어 취급될 수 없다. 마지막으로, 개별적인 프로그램 부분들을 함께 연결하는 것 또한 어려움들을 야기시킬 수 있다.
모든 부가 요소(또는 다른 구성요소) 및 부가 구성요소들이 부착되는 베이스 몸체(지지 구조/커버)의 영역에 대하여 개별적으로 로봇 경로들을 계획하는 것은 입상도(granularity)를 증가시킬 수 있고 이로써 접근법 B보다 (서브-)프로그램들의 길이를 단축시킬 수 있다(이론적으로 (V+1)N에서 (V+1)xN 서브프로그램들로). 더 적은 수의 경로들은 프로세싱을 최적화하는 것을 더 용이하게 해준다. 그럼에도 불구하고, 개별적인 서브프로그램들은 접근법 C가 취해질 때, 이웃하는 부가 구성요소들 및 베이스 몸체들이 반복적인 프로세싱 결과들에 상당한 영향을 줄 수 있기 때문에(cf. 도색 동안 정전기, 마스킹 등의 영향), 실제로 서로 독립적으로 간주될 수 없다. 부가 구성요소들에의 계획된 경로들의 접근성에 대한 영향은 접근법 B보다 더 크다(예. 다른 부가 요소들과의 가능한 충돌로 인해). (개별적인 버전의) 이웃하는 부가 구성요소에 따라서, 몇몇의 버전들의 부가 구성요소는 다른 것들과는 다르게 접근되고 처리되어야 할 것이다(도 9 내지 도 11 참조). 나아가, 개별적인 경로들은 서로 결합되어야 하고, 더 적은 수의 경로들이 프로그램되어야 할 것이지만, 경로 결합들의 서로 다른 조합들의 수는 더 커질 것이다.
CAD 데이터에 기초한 또는 3D 센서 데이터에 기초한 모든 경로들의 완전히 자동화된 프로그래밍에 의해 제공되는 장점은 이것이 하나 또는 복수의 프로그램들을 각각의 특정 작업편에 대하여 개별적으로 생성하는 것을 가능하게 해준다는 사실에 놓여 있다. 하지만, 복잡한 작업편들의 경우에 있어서, 이것은 고도의 처리력을 필요로 하고 또한 이로써 달성되는 품질은 종종 불충분하다. 나아가, 프로그래밍이 완전히 자동으로 수행될 때, 이것은 전문가들 부분에서 로봇 경로들의 가능한 개선들/최적화를 허용하지 않고 또한 최적화가 재사용되지도 못한다. 완전히 자동화된 로봇 프로그램 생성의 종래의 방법들은 상당히 큰 수의 서로 다른 프로그램들을 생성할 것이고, 그 각각은 최적화되어야 하고, 매우 불충분한 결과들을 전한다.
여기서 설명되는 예들은 상기에서 언급된 접근법들 B, C 및 D을 향상 또는 개선시키기 위해 적용될 수 있고 예를 들어, 다수의 변형들을 가지는 작업편들에 적절하다. 로봇 경로들은 오프라인 프로그래밍 환경(OLP 환경)에서 각각의 작업편에 대한 방향으로 계획되고 또한 충돌의 위험이 없음을 증명하기 위해 로봇의 움직임으로, 프로세싱 결과들은 시뮬레이션된다. 여기서 다양한 자동화 레벨들이 가능하다.
여기서 설명되는 실시예들에 따라서, 예를 들어, 워크스테이션(예. 개인용 컴퓨터) 상에서 실행될 수 있는 OLP 프로그래밍 환경(OLP 소프트웨어 툴로서 알려진)을 갖는 시스템이 제공된다. (유사한) 작업편들의 그룹으로부터 다수의 작업편들의 저장된 CAD 모델들이 OLP 프로그래밍 환경으로 업로드된다. 이 작업편들의 그룹은, 예를 들어 작업편의 다수의 변형들을 포함할 수 있다. 도 1 및 도 2에 작업편의 다수의 변형들의 예들이 도시되어 있다.
서로 다른 변형들은 예를 들어, 부가 구성요소들의 상이한 버전들의 결과로서 발생하는 개별적인 변형들에서 국소적으로 상이한 기하 형태들을 가지는 작업편의 기하구조에 있어서의 변형들로부터 귀결된다. 그룹의 개별적인 작업편들(도 2 참조, "변형 1", "변형 2", "변형 3" 등) 각각은, 예를 들어 국소 기하 형태들, 베이스 몸체(B)의 예를 들어 부가 구성요소들(A1, A2, 등)의 개별적인 서로 다른 조합에 대응한다. 그 위에 부가 구성요소(예. 탱크)가 4 개의 서로 다른 위치들(P1, P2, P3 및 P4)에 배치될 수 있는 베이스 몸체(B)의 예가 예시적인 목적으로 보여진다(설명을 단순화하기 위해, 4 개의 위치들 중 단지 2 개만이 도 1 및 도 2에 도시되어 있다). 각각의 부가 요소의 예를 들어, 3 개의 버전들, 즉 버전들(V1, V2 및 V3)이 있을 수 있는데(예. 탱크의 서로 다른 구조 형태들 및 크기들), V0는 부가 요소가 각각의 위치에서 생략되었음을 의미한다. 이것은 4 개의 위치들(P1, P2, P3 및 P4) 각각에 대하여 4 개의 서로 다른 가능성들, 소위 "부가 구성 요소 없음(V0), 부가 요소의 버전(V1), 부가 요소의 버전(V2) 또는 부가 요소의 버전(V3)이 있음을 의미한다. 그러므로, 전체적으로 작업편의 44 = 256 개의 변형들이 있고, 그 중 적어도 수 개 또는 모두는 작업편들의 하나의 그룹으로 함께 그룹핑될 수 있다.
상기에서 언급된 예로 계속하면, (P1, P2, P3 및 P4 위치들에 있는) 부가 구성요소들(A1, A2 등) 모두의 모든 버전들의, 및 베이스 몸체의 CAD 모델들은 OLP 프로그래밍 환경으로 업로드된다. 이 방식으로, 작업편들의 그룹의 모든 가능한 작업편 변형들은 업로드된 CAD 모델들로부터 구축될 수 있다. 서로 다른 추가적인 버전들(부가 요소 A1의 버전들(V1, V2 및 V3), 부가 요소 A2의 버전들(V1, V2 및 V3) 등)의 및 베이스 몸체(B)의 CAD 모델들은 가상의 "최대 모델"을 형성하기 위해 중첩(결합)된다(도 1 참조). 이로써 이 최대 모델의 CAD 모델은 작업편들의 그룹 내에 포함된 작업편 변수들을 구성하는 부가 구성요소들(A1, A2 등)의 모든 가능한 버전들 및 베이스 몸체(B)를 포함한다. 여기서 일반적으로, 이 가상의 최대 모델은 다수의 작업편 구성요소들 또는 부가 요소들이 동일한 공간을 차지할 것이기 때문에 실제로 존재할 수 없음에 유의해야 한다. OLP 프로그래밍 환경은 사용자 또는 자동화된 계획 툴(소프트웨어)에 부가 요소들 또는 작업편 구성요소들의 개별적인 버전들을 활성화시키거나(즉, 이들을 모델로 포함시키고) 또는 이들을 비활성화시킬(즉, 이들을 모델로부터 제거하는) 가능성을 제공한다.
하지만, 상기에서 언급된 부가 요소들/작업편 구성요소들의 활성화 및 비활성화는 개별적으로 존재하는 작업편 변형 각각을 쉽게 표현하거나 또는 묘사할 목적으로 사용되도록 의도되지 않는다. 대신, 활성화 및 비활성화는 문제의 작업편들의 그룹의 실제로 존재하는 작업편 구성요소들에 완전히 자유롭고 독립적이다. 실제로 OLP 소프트웨어 툴에 의해 제공되는 방법들은 이들을 활성화 또는 비활성화시킴으로써, 존재하지 않거나, 또는 실제로 존재할 수 없는, 예. 실제로 존재하는 변형들의 혼합 형태들, "나쁜 예 변형들", 최대 치수의 변형들 등 작업편 변형들을 표현하는 것을 가능하게 해준다. 이것은 작업편의 선택된 부분들에 대해서 뿐만 아니라, 전체 작업편에 대해서도 모두 수행될 수 있다. 이것은 가상의 작업편들이 또한 예를 들어, 영역 A에서 변형 1에 그리고 영역 B, C 등에서 변형 1이 아닌 변형들, 즉 최대 모델들(부가 요소들/구성요소들의 모든 버전들) 또는 예를 들어, "미완성 최대 모델들"과 같은 중간 형태들(즉, 도 1의 최대 모델보다 더 적은 수의 부가 구성요소들의 버전들을 갖지만 변형 1 또는 변형 1보다 더 적은 수의 부가 구성요소들을 갖는 변형보다 더 많은 부가 구성요소들을 갖는 모델들(변형 1과 베이스 몸체(최소 모델) 사이의 중간 형태))에 대응하는 것을, 나타낼 수 있음을 의미한다.
OLP 소프트웨어 툴로 표현되고 또한 이에 기초하여 로봇 프로그램들이 생성되는 가상의 작업편의 모델은 이하의 프로그래밍 단계들/레벨들 모두에서 동일할 필요는 없다. 도 3에 도시된 로봇 프로그램의 생성에 있어서의 개별적인 단계들/레벨들은 (그 중에서도) 이하와 같다: (S1) 작업편 상에서 툴의 경로의 결정, (S2) 작업편의 처리 결과들(즉, 예를 들어 도색 결과들)의 시뮬레이션, (S3) 결정된 툴 경로들이 따르는 로봇(및 툴)의 충돌 위험들의 시뮬레이션 및 (S4) 툴 경로들을 따르는 데 필요한 충돌-없는 로봇 움직임들 및 개별적인 툴 경로들 사이에 필요한 중간 움직임들의 시퀀스(공간 및 시간에서)의 결정 또는 계획.
툴 경로들은 이들을 부분들로 분할하는 것에 의해 가장 잘 결정되어, 이로써 처리되어야 하는 부분들 모두에 대하여 이용가능한 툴 경로들을 발견할 수 있다면, 현재 프로그래밍되고 있지 않거나 및/또는 이미 프로그래밍된 이 부분들은 예를 들어 동시에(실제로는 가능하지 않더라도) 모든 버전들(V0, V1, V2, V3 등)에 있어서 모든 부가 구성요소들(A1, A2 등)을 갖는 최대 모델 상에서 충돌 테스팅을 위해 적어도 표현된다. 이 경우가 아니라면, 현재 프로그램되고 있지 않은 부분들에 있어서 부가 버전들은 문제의 부분에서 사용될 수 있는 서브그룹들 각각에 대한 작업 경로들이 발견될 때까지 서브그룹들로 분할되어야 한다.
툴 경로들의 결정은 각각의 부가 요소에 대한(또는 다수의 부가 요소들의 중첩에 대한) 부가 구성요소들의 영역 내에서 개별적으로 수행될 수 있고, 이때 부가 요소들은 고립되어 고려되지 않고, 대신 부착된 상태에서, 즉 다른 부가 구성요소들 및 베이스 몸체와 조합하여, 고려된다. 예를 들어, 추가적인 축들을 가지는 로봇들 또는 조작되는 작업편들의 경우에 있어서, 툴 경로들의 계획 및 시뮬레이션(도 3, 단계 S1)은 최소 수의 툴 경로들을 따라 다수의 작업편 변형들을 프로세싱할 수 있도록 하기 위해 로봇 움직임 시퀀스의 계획 및 시뮬레이션(도 3, 단계 S3 및 S4)으로부터 분리될 수 있다. 하나의 로봇이 (운동학에 따라) 동일한 툴 경로를 따라 일반적으로 2x2x2=8 구성들/축 위치들("엘보우 업", "엘보우 다운", 등)에 이를 수 있다고 가정하면, 로봇이 동일한 경로를 따를 수 있는 축 위치들의 수는 추가적인 축들이 채용될 때 상당히 커진다. 결정된/계획된 툴 경로에 대한 로봇의 프로세싱 움직임들의 자유도에 있어서의 결과들은 추가적인 축들의 위치/움직임을 변경함으로써 서로 다른 버전들에서 부가 구성요소들과의 충돌을 피하는 것을 가능하게 해준다.
여기서 설명되는 절차들은 많은 응용들에 있어서 유리할 수 있다. "부착된 상태"(가상의 작업편 모델에 부착된)에서 모든 부가 구성요소를 프로그래밍하는 것은 로봇에 실제로 접근가능한 이러한 영역들만 프로세싱되는 것을 보장한다. 가상의 작업편 모델의 주어진 부분에 대한 툴 경로들이 결정된 때(예. 최대 모델에 대한), 예를 들어 가능한 버전들 모두에 있어서 모든 가능한 부가 구성요소들은 개별적인 다른 부분들 각각에 대하여 활성화될 수 있다(최대 모델). 부가 구성요소들의 서로 다른 버전들은 이 경우에 있어서, 즉 실제적으로 실현불가능한, 중첩하는 영역들을 차지할 수 있지만, 이것은 로봇의 움직임들이 충돌 위험이 없을 것을 보장할 것이다. 이러한 상황은 도 4에 요약되어 있다. 도시된 예에 있어서, 작업편 모델의 부분(X)에 있어서 툴 경로(Ti)는 부가 구성요소(A1)의 특정 버전(V1)에 대하여 계획된다(cf. 도 3에 따른 프로그램 생성의 단계(S1) 뿐만 아니라). 계획된 툴 경로(Ti)의 충돌 위험의 프로세싱 및 테스팅을 시뮬레이션할 때(cf. 도 3에 따른 프로그램 생성의 단계들(S2 및 S3)), 최대 모델은 존재하는 종속성들을 고려하기 위해 (부분(X)를 제외하고) 모든 다른 부분들에서 고려된다. 툴 경로(Ti)를 따른 충돌-없는 진행이 가능한 것으로 결정되고 또한 최대 모델의 시뮬레이션된 프로세싱 품질이 수용가능한 것으로 발견되기만 하면, (툴 경로들의 전체성을 나타내는) 하나의 서브프로그램 버전만이 부가 구성요소들이 다른 구성요소들과 함께 나타나는 모든 가능한 조합들로 이 부가 요소(A1), 버전(V1)에 대하여 정의되어야 할 것이다. 이것은 가능한 조합들의 수가 상당히 감소될 것이기 때문에 필요한 프로그래밍 노력의 커다란 감소로 귀결된다. 이것은 또한 이러한 방식으로 최적화에 필요한 더 적은 프로그램들이 생성될 것이기 때문에 후속하는 최적화 노력을 상당히 완화시킨다. 이것이 가능하지 않다면(즉, 툴 경로(Ti)를 따라 충돌-없는 진행), 부분(Y)에서의 부가 구성요소들은 이것이 (개별적인 그룹 각각에 대하여) 가능해질 때까지 그룹들로 점점 더 (서로 다른 버전들로) 분할될 것이다. 이것은 더 많은 수의 프로그램들로 귀결되지만, 그럼에도 불구하고 그 최소 수로 귀결된다. 여기서 - 가능한 정도로 - 부가 구성요소들의 모든 변형들이 동시에 다른 부분들에서뿐만 아니라(예. 부분(Y)에서) 고려되어야 하고, 현재 프로세싱되지 않은 동일한 부분(X)에 부가 요소들에도 최대 모델 맥락에서 고려되어야 함이 지적되어야 한다. 하지만, 이것은 원래 어떻게 부분들의 경계들이 결정되는지에 달려 있다.
도 4에 도시된 경우에 있어서, 단지 4 개의 서브프로그램들 (충분한 (시뮬레이션된) 프로세싱 품질을 생산하는 충돌-없는 툴 경로들)은 다른 부분들에서 부가 구성요소들의 모든 조합들이 충돌 테스팅에 대한 최대 모델에 포함되기 때문에 버전들(V0, V1, V2 및 V3)에 대하여 이용가능하게 될 필요가 있다. 최대 모델에 대한 툴 경로(T1)가 충돌-없이 따르는 것이 가능하지 않다면, 또는 최대 모델에 대한 시뮬레이션된 프로세싱 품질이 불충분하다면, 최대 모델 대신 미완성 최대 모델(즉, 부가 요소의 배치들의 다수의 조합들)은 프로그램들의 수를 상당히 감소시키고 또한 계획된 경로들이 충돌-없이 남아 있음을 보장하지만, 현재 프로그램되지 않은(예. 부분(Y)) 부분들에 채용될 수 있다. 여기에 도시된 예들에 있어서 부분 당 단지 하나의 부가 구성요소가 있다. 다수의 부가 요소들이 현재 프로세싱되는 부분 X에 존재한다면, 최대 모델은 또한 현재 고려되지 않고 있는 부가 구성요소들에 대하여 부분 X에서 "활성화"될 수 있다.
다양한 부가 구성요소들을 활성화/비활성화(디스플레이/숨김)하는 것에 의해, 현재 조사되는 (가상의) 작업편 변형들은 부가 구성요소들의 다른 버전들과 같은 시간에 고려될 수 있다. 이것은 부가 요소의 동시에 묘사되는 다수의 버전들(버전들 모두 또는 더 적은 수의 가능한 부가 요소 버전들)에 대한 툴 경로들(및 이들로부터 결과적으로 유도되는 로봇 움직임들)이 동시에 계획(완전히 자동으로, 상호작용적이거나 또는 수동적으로) 및/또는 정의(예. 투사) 및 시뮬레이션(프로세싱 품질, 충돌 위험)될 수 있고, 또는 이들은 프로그래머에 대한 보조로서 또한 시뮬레이션 등에서 이들을 고려하지 않고 시각화될 수 있다.
인간 프로그래머는, 묘사된 부가 구성요소(예. 다양한 색상들로 및/또는 다양한 투명도로)의 예. 2 개 또는 더 이상의 버전들(V0, V1, V2 등)을 가질 수 있고(서로 다른 버전들의 중첩) 또한 이러한 방식으로 동시에 프로그래밍이 필요한 감소된 수의 변형들로부터 잘 균형잡힌 결과들을 획득하기 위해 다수의 버전들에 대한 툴 경로들(프로세싱 품질, 충돌-없는 진행 또는 접근성)을 최적화할 수 있다(다수의 작업편 변형들의 병합/중첩에 의한 조합의 감소).
자동화 프로그래밍 또는 최적화는 부가 구성요소들의 다수의 또는 모든 버전들의 동일한 또는 상이한 평가를 수반할 수 있고 이로써 작업편 변형들 모두의 CAD 모델들 모두에 대하여 반복되지 않고 (서브프로그램들의 수를 감소시키는) 다수의 변형들에 대한 절충 경로들을 획득할 수 있다. 충돌 위험을 테스트하기 위해, 부가 요소의 다수의 또는 모든(최대 모델) 버전들은 즉시 중첩되고 이로써 더 신뢰도 높은 결과들을 생성하면서 필요한 프로그래밍 시간을 감소시키는 것이, 고려될 수 있다.
여기에 설명된 예들에 따라서, 현재 프로세싱되는 것이 아닌 부분들(cf. 도 4, 부분들 X, Y, 접근법 B) 또는 부가 구성요소들(접근법 C)은 현재 프로세싱되는 변형들의 특정 표현으로 고려되지 않고 대신, 예를 들어 최대 모델로서, 이웃하는 부분들 또는 부가 요소들은, 사실상 서로에 독립적으로 고려될 수 있다. 이것은 가능한 조합들의 수 및 프로그램들의 수(툴 경로들로부터 유도되는)를 상당히 감소시킨다. 매우 일반적인 용어로 이것은 V 개의 버전들을 가지는 N 개의 주어진 부가 구성요소들을 가지고, 프로그램들의 수는 이론적으로 감소될 뿐만 아니라(모든 조합들이 접근가능한 충돌 없는 것으로 판명되는 것이 발생한다면) 사실상, 최대 (V+1)N로부터 Sx(V+1)N /S으로 감소된다(이때 여기서 S 개의 부분들에 대한 N 개의 구성요소들의 고른 분포가 가정되고, 이것은 유리하지만 계산적인 노력을 감소시키는 데 반드시 필요치는 않다).
툴 경로의 계획(결정) 및 시뮬레이션은 툴 경로를 따르는 데 필요한 로봇 움직임들의 시뮬레이션(충돌 테스팅을 위한)으로부터 분리될 수 있다. 이것은 추가적인 축들을 가지는 로봇들에 대한 또는 조작자들에 의해 위치되는 작업편들에 대한 특별한 장점일 수 있다. 동일한 툴 경로는 이들이 부가 구성요소들의 다른 조합들 모두에서 동일한 로봇 움직임들을 갖는 로봇에 접근가능하지 않을지라도, 현재 고려되지 않고 있는 부가 구성요소들의 서로 다른 버전들에 대하여 반복적으로 사용될 수 있고; 추가적인 축들의 위치만이 충돌을 피하기 위해 다른 "디스플레이된" 부가 요소들에 대하여 변화되어야 한다 - 이것은 최적화되는 데 필요한 툴 경로들 및 조합들의 수를 감소시킨다. 이것은 작업편에 대한 로봇의 위치가 추가적인 축의 서로 다른 위치를 선택하는 것에 의해 변화되었을 때 그 후 시간에서, 툴 경로의 진행은 로봇 축들이 완전히 다르게 움직인다는 사실에도 불구하고 약간 벗어날 것이고(로봇은 예. 부가 구성요소 옆 및 앞 또는 옆 및 뒤에 서 있고), 추가적인 축의 서로 다른 위치들을 가정하는 것에 의해 서로 다른 부가 구성요소들과 충돌을 피하는 것을 가능하게 해준다. 툴 경로의 시간-소모적인 최적화(종종 로봇 셀에서의 시험들에 의해, 또는 도색의 경우에 있어서, 달성된 층 두께를 측정하는 것에 의해)는 이로써 서로 다른 부가 구성요소들에 대하여 동일할 수 있고 또한 최적화의 결과들은 프로그램들 모두에 대하여, 즉 동일한 툴 경로를 갖는 - 단지 로봇 움직임 그 자체만 다른 - 부가 구성요소들의 모든 변형들에 대하여, 사용될 수 있다. 하지만 후자는 시험을 하지 않고(예. 도색) 충돌-없이 자동으로 계획될 수 있다.
일반적으로, 여기서 설명된 절차들은 (추가적인 조합들의 감소된 수로 인해) 자동으로 OLP 소프트웨어 툴을 이용해 움직임들이 계획될 때 (부가 구성요소들의 서로 다른 버전들에 대하여) 서브프로그램들을 쉽게 소환하여 자동으로 결합하는 것을 가능하게 해준다. 실제에 있어서 이것은 툴 경로들 및 프로그램들이 그 수가 감소될 것이기 때문에 보다 쉽게 최적화될 수 있음을 의미한다. 여기서 설명되는 예들은 툴 경로들의 완전한 자동화 계획을 위해 적용가능하다. 이것은 프로그램들을 생성하는 데 필요한 계산적 노력을 상당히 감소시키고 또한, 특히 최적화에 필요한 프로그램들 및 툴 경로들의 수가 상당히 낮아질 것이기 때문에 툴 경로들을 최적화하는 데 그 후에 필요한 노력을 감소시킨다. 작업편 변형들의 수에 따라서, 여기서 설명되는 절차들은 경로들을 계획하고, 프로그램들을 생성하고 또한, 필요하다면, 현실적인 시간 동안 이들을 최적화하는 것을 가능하게 해준다.
"고전적인" OLP 프로그래밍과는 달리, 이러한 방식으로 프로그램을 생성할 때 툴 경로들을 결정(cf. 도 3, 단계 S1)하는 단계들 및 로봇의 움직임(시공간에서)을 (자동으로) 계획하는 이후의 단계(충돌 테스팅을 포함하는)는 동일한 (CAD) 모델 상에서 수행되지 않는다. 프로그래밍 및 로봇 프로그램들의 최적화에 수반되는 생산 비용은 프로그램들 및 이들이 포함하는 툴 경로들의 결정 및 유지(최적화)로부터 대부분 발생한다. 특히 예를 들어 도색과 같이 쉽게 시뮬레이션되지 않는 복잡한 프로세스들의 경우에 있어서, 경로들의 정의 및 최적화는 - 경로들(경로 및 구성 뿐만 아니라 추가적인 축들의 위치)을 따르는 데 필요한 로봇 움직임들을 최적화하는 데 필요한 시간보다 더 많은 - 많은 시간을 필요로 한다. 이 경우에 있어서 후속하는, 예를 들어 자동적인 움직임 계획으로부터 (작업편의 "가상의" 변형에 대한) 툴 경로들을 결정하는 것을 수반하는 상기에서 언급된 해법은 툴 경로 그 자체 - 스프레이 페인트 적용(도색 프로세스의 경우에 있어서)에도 불구하고 실제 스프레이 페인트의 적용을 이용해 분석 및 최적화되어야 하지만(복잡한 프로세스들 및 작업편 기하구조들에서 발생하는 프로세싱 시뮬레이션의 부적당함으로 인해), 제2 부분 - 움직임의 계획-이 시뮬레이션 및 계획하기에 용이하기 때문에 고전적인 OLP에서 수행될 때 로봇의 움직임들을 정의하는 것보다 특히 장점이 있다.
상기에서 설명된 바와 같이, 툴 경로들을 정의하는 태스크를 로봇의 움직임들을 (시공간에서) 계획하는 태스크로부터 분리하는 것 및, 특히 이를 최적화될 툴 경로로부터 프로세싱되지 않고 있는 (동일한 및/또는 상이한 부분들에서) 부가 구성요소들의 다수의 버전들을 동시에 고려하는 것을 포함하는 상기에서 설명된 접근법과 조합하는 것은, 다수의 프로그램들에서 (종종 로봇의 상이한 축-위치를 가지는) 많은 변형들에 대하여 하나의 툴 경로를 사용하는 것을 가능하게 해준다. 이러한 방식으로, 이 툴 경로가 사용되는 제1 작업편 변형을 따라서, 하나의 프로그램 또는 로봇 움직임이 하나의 변형에 대하여 뿐만 아니라, 다른 변형들이 프로세싱될 수 있는 툴 경로도 최적화될 것이다. 나아가, 이 툴 경로를 따르기 위해 로봇(로봇 프로그램)에 의해 필요한 실제 움직임들이 예. 자동적으로 모든 변형들에 대하여 계산될 수 있고 부가 구성요소들의 다수의 버전들이 (수동 또는 자동으로) 고려될 수 있어, 작업편의 많은 변형들이 한번에 최적화되는 것을 허용한다.
공간적으로 협착된 로봇 셀들에 있어서, 바른 움직임들을 발견하는 것은 더 어렵다. 즉, 충돌-없는 움직임의 자동적인 계획은 더 많은 계산적 노력이 필요하다. 이러한 경우들에 있어서, 중첩된 부가 요소들을 이용하는 것은 바른 로봇 움직임들을 찾는 것을 덜 복잡한 태스크로 만들어줄 뿐만 아니라, 부가 요소들의 다수의 버전들에 대하여 이들을 이용하는 것은 계획 툴이 운영되어야 하는 횟수를 또한 감소시킨다.
이하에서, 종래의 OLP 프로그래밍의 일 예는 도 5의 블록도에 기초하여 더 상세하게 설명될 것이다. Ⅰ로 라벨링된 도메인은 (무엇보다도) 모듈들 1 내지 6을 포함하는데, 이것은 워크스테이션 상의 소프트웨어로서 구현된다. 이 모듈들 1 내지 6은 자동으로, 또는 프로세스 운영자와 상호작용하여(예. 작업편의 표면을 도색할 때), 로봇의 움직임을 (시공간에서) 계획하고 또한 로봇 컨트롤러 상에서 실행될 수 있는 로봇 프로그램들(움직임 명령들, 변수들, 신호들,...)을 생성하는 소프트웨어 툴에 의해 제공된다. Ⅱ로 라벨링된 도메인은 로봇 컨트롤러 및 (로봇의 TCP에) 툴이 장착되는 적어도 하나의 로봇을 포함하는 로봇 셀을 나타낸다. 로봇(들)은 하나 또는 그 이상의 작업편들을 처리한다. 대안적으로, 로봇은 작업편을 잡고 툴에 대하여 움직일 수 있는데, 이것은 이 경우에 있어서 로봇 상에 장착되지 않고, 차라리 셀 상에, 추가적인 엑츄에이터 상에 또는 추가적인 로봇 상에 장착된다. 툴을 갖는 로봇은 모듈 7에 의해 도 5에 표현되어 있다.
모듈 1에 공급되는 입력 데이터는 작업편 변형들 및 부가 구성요소들(A1, A2 등)(이들의 모든 버전들(V1, V2 등)에서)의 보통 베이스 몸체 B(cf. 도 1)의 CAD 데이터 뿐만 아니라, 표면 프로세싱의 원하는 결과들(작업편 변형이 후처리되는 원하는 상태)을 나타내는 추가적인 변수들 및 로봇 셀에 관련된 CAD 데이터를 나타낸다. 모듈 1은 하나의 작업편 변형의 설명 또는 작업편 베이스 몸체 및 베이스 몸체와 부가 요소들의 선택된 조합을 결합시키는 것에 의해 작업편 변형에 부가될 수 있는 부가 구성요소들의 설명을 입력하기 위한 인터페이스(예. 인간-기계 인터페이스, 사용자 인터페이스, 기계-기계 인터페이스 등)을 나타낸다. 작업편은 그후 가상의 로봇 셀 내에 배치된다.
모듈 2는 수동으로, 반자동으로 또는 자동으로 실제 존재하는 작업편의 변형에 대응하는, 작업편(또는 그 일부)에 대한 툴 경로들 또는 툴 경로들의 그룹들을 정의/결정하기 위한 기능들을 제공한다. 그래픽 인터페이스가 또한 시뮬레이션 결과들을 디스플레이하도록 제공될 수 있다(모듈들 3 및 4). 모듈 3은 툴 경로들을 따르는 데 필요한 로봇 움직임들(전체 로봇/모듈 5로부터) 및 툴 경로들(모듈 2로부터)의 충돌-없는 진행을 (시뮬레이션을 이용해) 증명하기 위한 기능들을 제공한다. 시뮬레이션을 시각화하는 것 또한 가능하여, 가능한 충돌의 자동 인식에 더하여, 또한 충돌이 사용자에게 디스플레이될 수 있다. 시뮬레이션은 2 개의 단계들로 수행될 수 있는데, 먼저 결정된 경로를 따른 툴의 움직임이 시뮬레이션되고 충돌 위험이 테스팅된다. 다음 단계에서, 필요한 로봇 움직임 및 그들의 연대순이 계산될 수 있고 시뮬레이션은 계획된 로봇 움직임들이 충돌-없을 것임을 증명하는 데 이용될 수 있다.
모듈 4는 프로세스를 시뮬레이션하기 위한, 특히 툴(예. 분사기)가 계획된 대로 미리 결정된 툴 경로를 따라 움직일 때 생성될 수 있는 프로세싱 결과들(예. 도색 프로세스에서 페인트의 층 두께)을 시뮬레이션하기 위한 기능들을 제공한다. 다시 말하면, 모듈은 시뮬레이션을 위한 프로세스 모델을 이용하고 이 프로세스 모듈의 도움으로, (하나 또는 그 이상의) 계획된/최적화된 툴 경로들을 따라 작업편을 프로세싱하는 결과들로 시뮬레이션할 수 있는 프로세스 시뮬레이터를 포함한다. 프로세스 모델은 시뮬레이션을 위해 필요한 정보를 포함한다. 도색 프로세스의 경우에 있어서, 예를 들어, 이 정보는 분사기에 의해 생성되는 분사 패턴, 표면까지의 분사기의 최소 및 최대 거리, 최소 및 최대 원하는 층 두께, 정전기 등을 포함할 수 있다.
모듈 5는 툴 경로를 따른 움직임에 대하여 뿐만 아니라, 개별적인 툴 경로들 사이의 움직임에 대하여(즉, 한 경로의 끝에서 다음 경로의 시작까지) 로봇의 움직임들의, 만약 주어진다면, 존재하는 추가적인 축들의 (시간적 및 공간적) 계획을 위한 기능들을 제공한다. 이 계획은 수동으로, 반자동으로, 또는 완전히 자동으로 수행될 수 있다.
모듈 6은 작업편 변형을 위한 또는 변형들의 그룹을 위한 로봇 프로그램들을 엑스포트하기 위한 기능들을 제공한다. 최대한 이것은 프로그램 명칭들 또는 제조 실행 시스템(MES) 또는 유사한 시스템으로부터 프로그램들이 검색되는 것을 허용하는 다른 명확한 확인 수단(예. 제품 번호)을 이용해 수행된다. 엑스포팅된 프로그램들은 추후에 또는 재사용을 위해 실행되기 위해, 저장된다. 모듈 7은 로봇 및 이전에 생성된 로봇 프로그램을 실행하고자 하는 로봇 컨트롤러를 나타내는데, 이때 실제 성능 및 달성되는 실제 프로세싱 결과들은 프로세싱이 수행된 후(예. 도색시, 선택되는 적용 점들에서의 페인트 층 두께를 측정하는 것에 의해 및 광학적 센서들을 이용해 페인트 흐름 또는 너무 적은 페인트가 적용된 장소들을 점검하는 것에 의해) 뿐만 아니라, 프로세싱 중에도(예. 실링 조인트/용접시, 툴 뒤에 배치되는 센서를 이용해) 평가될 수 있다.
개별적인 모듈들 사이의 데이터 흐름은 도 5에서 a) 내지 o)의 문자들로 라벨링되어 있다. 문자 a)는 (특정 작업편 변형들의) 처리되어야 하는 물체에 대한 그리고 프로그래밍이 수행될 로봇 셀에 대한 설명을 나타낸다. 문자 b)는 예. TCP의 속력, 전이부들에서 분쇄 거리들, 에어브러슁 설정들, 분사기 온/오프 등과 같은 프로세싱 변수들과 같은 변수들 및 처리될 물체(특정 작업편 변형의 물체)의 및 충돌 테스팅이 수행되어야 하는 로봇 셀(또는 작업편과 툴 만)의 설명을 갖는 결정된 툴 경로들을 나타낸다. 문자 c)는 충돌 테스팅에 종속되는 툴 경로들에 대한 충돌 테스팅의 결과들을 나타낸다. 후자의 가능한 결과들은 "충돌" 및 "충돌 없음", 및 충돌 위험이 검출된 때, 충돌의 시간 및 공간에 대한 정보(즉, 충돌이 발생하는 경로, 충돌이 발생한 시간 및 경로 상의 점 및 충돌한 물체들)를 포함한다.
문자 d)는 변수들(예. TCP의 속력, 전이부들에서 분쇄 거리들, 에어브러슁 설정들, 분사기 온/오프 등과 같은 프로세싱 변수들) 및 처리될 물체(특정 작업편 변형의 물체)의 및 프로세싱 시뮬레이션(예. 도색 프로세스의 시뮬레이션)이 수행되어야 하는 로봇 셀(또는 작업편과 툴 만)의 설명을 갖는 결정된 툴 경로들을 나타낸다. 프로세싱 결과들에 대한 개별적인 툴 경로들의 영향 또한 고려될 수 있다. 문자 e)는 시뮬레이션된 프로세싱 결과들, 예. 프로세싱 결과들에 미치는 시뮬레이션된 툴 경로(들)(문자 d)의 영향을 나타낸다. 이 프로세싱 결과들은, 예를 들어 페인트 층 두께를 포함할 수 있다.
문자 f)는 모듈 2에서 계획되고 모듈들 3 및 4에서 시뮬레이션에 의해 증명된 특정 작업편 변형에 대한 툴 경로들을 나타낸다. 문자 g)는 모듈 2가 툴 경로들을 보정하는 것이 필요한 문제가 확인되면 수행되는 모듈 5로부터 로봇의 움직임들의 시뮬레이션/증명의 결과들을 나타낸다. 예를 들어, 계획된 툴 경로는 로봇에 의해 따라갈 때 충돌로 이어질 수 있다(예. 다른 로봇이 문제의 툴 경로를 따라가고 있는 로봇과 충돌하거나, 또는 문제의 툴 경로를 따르는 로봇이 - 불가피하게 - 그 환경과 충돌 위험을 또는 특이점에 너무 가까이 접근할 위험을 가지고 있다). 문자들 h), i), j) 및 k)는 기본적으로 문자들 b), c), d) 및 e)에 대응하는데, 이때 모듈 3 및 4에서 2번째 시뮬레이션 동안, 계획된 툴 경로를 따른 툴의 움직임 및 이로써 달성되는 프로세싱 결과들만이 아니라, 대신 계획된 경로들을 따라 움직이는 로봇의 전체 움직임이 시뮬레이션되는데, 이 경우는 다른 로봇들 및 로봇 셀 내에서 발견되는 기계들과 함께 있을 수 있고 또한, 필요하다면 로봇에 관련된 세목들(전이부들의 분쇄, 속력에 있어서의 편차들, 질량, 동역학 등)에 의해 야기되는 계획된 경로로부터의 편차들을 포함하기 때문이다.
문자 l)은 툴의 속력을 포함하는, 시뮬레이션(모듈 3의 움직임 시뮬레이션 및 모듈 4의 프로세스 시뮬레이션)에 의해 증명되는, 계획된 툴 경로들을 나타낸다. 문자 m)은 로봇 컨트롤러로의 실행가능한 로봇 프로그램의 전송(움직임 명령들, 변수들, 신호들 등)을 나타낸다(모듈 7). 문자 n)은 프로그램이 실제로 실행되는 동안 문제가 발생하면(예. 프로세싱 결과들이 불만족스럽다면) 생성되는 메세지를 나타낸다. 문자 o)는 후속하는 작업편 변형을 위한 프로그램 생성 시작으로의 복귀를 나타낸다.
도 5는 다양한 모듈들에 프로그램 생성의 개별적인 단계들/레벨들의 분포를 설명하기 위해 제공되는 한편, 도 3에 도시된 절차들을 더 상세하게 설명한다. 이러한 측면에서 모듈들 2 및 5는 하나의 모듈로 조합될 수 있음에 유의해야 한다. 이 경우에 있어서 이때 그 자체의 툴 경로들 및 대응하는 로봇 움직임들의 계획 및 증명은 별도로 분리되어 수행되지 않는다. 대신 로봇 움직임들은 개별적인 경로들에 대하여 즉시 결정되고 시뮬레이션에 의해 증명된다. 도 5에 도시된 바와 같은 "고전적인" 프로그램 생성에 있어서, 단지 하나의 특정 작업편 변형이 한번에 고려되고(추가적인 버전들(A1, A2 등)의 특정 조합과 베이스 몸체(B)) 전체 절차는 매 작업편 변형에 대하여 반복되어야(cf, 도 5, 문자 o) 함은 언급할 가치가 있다. "고전적인" 프로그램 생성(도 5에 도시된 바와 같이)으로, 개별적인 변형에 대해 계획된 프로그램(또는 개별적인 변형에 대해 계획된 경로)가 다른 변형에 대해 사용될 수 있는지 여부를 테스트하는 것이 가능하지만, 프로세싱과 움직임 사이의 상호작용은 수행시 고려되지 않기 때문에, 일반적으로 이것은 단지 소수의 이용가능한(또는 보정 없이 이용가능한) 프로그램들 또는 툴 경로들만 생성한다.
여기에 설명된 접근법들에 따라 개선된 OLP 프로그래밍의 일 예는 이제 도 6의 블록도를 이용해 설명될 것이다. 도시된 모듈들 2 내지 7은 도 5의 예에서의 모듈들과 본질적으로 동일하다. 주요 차이점은 개별적인 툴 경로들을 계획하고 움직임 및 프로세싱을 시뮬레이션할 때 동일한 작업편들의 동일한 CAD 모델들이 사용되지 않는다는 것이다. 도메인들 Ⅰ 및 Ⅱ(소프트웨어/워크스테이션 및 로봇 셀)에 있어서, 도 5의 설명을 참조한다. 이하에서, 도 5에 도시된 방법과 도 6의 방법 사이의 차이점들이 주요 논점이 될 것이다.
먼저, 가상의 작업편이 작업편의 다수의 변형들의 (예. CAD) 모델들을 결합하는 것에 의해 생성된다. 여기서 입력 데이터는, 작업편 변형들 및 로봇에 의해 프로세싱 후 원하는 마감 상태를 정의하는 예. CAD 데이터를 포함한다. 모듈 1은 별도의 구성요소들로서(예. 베이스 몸체 및 모든 부가 요소들의 모델) 작업편 설명들(CAD 모델들)을 검색하고 또한 상기에서 설명된 가상의 최대 모델을 표현하기 위해 작업편 변형들 모두에 있어서의 구성요소들 모두를 결합하도록 구성된다. 이것은 - 도 5에 따른 예와 달리 - 특정 작업편 변형들이 베이스 몸체와 부가 구성요소들의 특정 조합으로부터 생성되지 않고, 대신 비-실제적인, 가상의 작업편들이 다수의 부가 요소들의 버전들(또는 베이스 몸체의 서로 다른 버전들)의 중첩에 의해 생성되는 것을 의미한다. 모델은 가상의 로봇 셀 내에 위치된다. 모델이 완성(모든 변형들을 커버하는 - 최대 모델)인지 또는 미완성(가능한 변형들 일부만을 커버하는)인지에 상관없이, 처리될 작업편의 다수의 변형들은 모두 중첩되고 가상의 작업편을 형성하기 위해 결합된다. 특정의 부가 구성요소들의 개별적인 버전들은 선택적으로 활성화되거나(디스플레이되고 가상의 작업편에 추가되고) 또는 비활성화될(가상의 작업편으로부터 제거되고 숨겨지고) 수 있다. 여기서 다시 가상의 작업편에서, 다수의 부가 구성요소들 또는 그 버전들은, 실제로는 가능하지 않지만, 동일한 공간을 차지할 수 있다는 사실에 주목해야 한다.
모듈 2는 존재하는, 가상의 작업편 변형들에 반드시 대응할 필요없는 부가 구성요소들의 다양한 조합들에 대한 툴 경로들 또는 툴 경로들의 그룹들의 수동의, 상호작용적인 또는 자동적인 정의/계획을 위한 모듈을 나타낸다. 모든 툴 경로 또는 툴 경로들의 그룹에 대하여(또한 이로써 툴 경로들에 의해 커버되는 작업편의 모든 영역에 대하여) 어떤 부가 구성요소들이 "활성화"되어야 하는지, 즉 시뮬레이션에 고려되어야 하는지(충돌 테스트 및 프로세싱 시뮬레이션에 대하여), 및 활성화되지 말아야 하는지 정의하는 것이 가능하다. 다시 말하면, 이것이 계획된 툴 경로들이 할당되는 특정 변형들 또는 변형들의 그룹들이 첫번째로 작동하는 지점이다. 툴 경로 또는 툴 경로들의 그룹은 서로 다른 변형들(예. 부가 요소의 서로 다른 버전들)의 국소 형태에 대하여 최적화되고, 시뮬레이션되고 증명될 수 있고 또한 그후 다양한 작업편 변형들에 즉시(국소적으로) 할당될 수 있는 한편, 다른 부가 구성요소들에 대하여(동일한 또는 상이한 부분들에 있어서) 변형의 CAD 설명을 이용하지 않고 대신 부가 요소의 모든 변형들의 중첩(즉, 최대 형태, 최악- 형태) 또는 해법이 모두에 대해서 발견되지 않는다면 변형들 모두의 더 작은 그룹의 중첩이 최상이다. 이것은 다른 부가 구성요소들 중 어떤 것도 충돌 위험을 무릅쓰거나 또는 악영향을 미치거나(숨겨진) 하지 않고 작업편의 (국소) 영역(즉 부분 또는 작업편의 환경을 갖는 부가 구성요소 또는 부분의 일부) 내 툴 경로들이 정의/계획될 필요가 있는 조합들의 수를 상당히 감소시킨다. 그래픽 인터페이스는 시뮬레이션의 결과들을 디스플레이하도록 제공될 수 있다.
모듈들 3 및 4에 있어서, 도 5의 설명을 참조한다. 툴 경로들의 시뮬레이션은 2 개의 단계들(먼저 툴의 움직임만 이후에 이들의 연대순을 포함하는 로봇의 움직임들 모두)로 또는 한 단계(계획된 경로들에 필요한 로봇 움직임들만)로 수행될 수 있다. 적어도 작업편의 몇몇의 부분들 또는 영역들에서, 특정 변형이 아니고, 차라리 다수의(또는 모든) 변형들(즉, 가상의 작업편)의 중첩이 고려된다. 프로세싱 결과들의 시뮬레이션에도 동일하게 적용된다. 여기서 다시 한번 가상의 작업편에서 중첩되는 기하 형태들(즉, 부가 구성요소들)의 수는 툴 경로들의 계획(및 증명)이 현재 수행되는 영역 내에서 가상의 작업편(이에 대해서는 현재 계획되어 있지만 그럼에도 불구하고 증명/시뮬레이션 동안 고려되는 경로들이 없다. 이 최상의 경우에 있어서, 작업편의 모든 기하 형태들의 중첩은 잔여 영역들 내에서 고려될 수 있다(즉, 최대 모델))의 (동일한 부분의 또는 다른 부분들의) 다른 영역들과 다를 것임(또한 단지 하나인 최상의 경우에 있어서, 일반적으로 더 적음)이 지적되어야 한다.
도 6의 예에 있어서, 모듈 5는 모듈 2의 도움으로 이전에 계획된 툴 경로들을 따르는 충돌-없는 로봇 움직임들(그들의 연대순을 포함하여)을 정의(즉, 계획)하도록 기능한다. 툴 경로들의 계획을 위해 모듈 2에서 사용되는 가상의 작업편은 로봇 움직임의 (예. 자동화된) 계획을 위해 사용되는 가상의 작업편과 동일할 필요는 없음에 유의하는 것이 중요하다. 다시 말하면, 툴 경로들은 베이스 몸체 및 부가 구성요소들의 (가상이지만 반드시 구현가능할 필요는 없는) 조합에 기초하여 계획되지만, 이 툴 경로를 따를 필요가 있는 로봇 움직임들은 베이스 몸체 및 부가 구성요소들의 다른 (가상이지만 반드시 구현가능할 필요는 없는) 조합에 기초하여 계획된다. 프로세스에 있어서, 이하의 상황들이 발생할 수 있다: (ⅰ) 가상의 작업편은 조립체의 결함에 대한 안전성을 보상하기 위해 그리고 (동일한 수의 툴 경로들을 가지고) 프로그램들의 수를 작게 유지하기 위해 툴 경로들의 계획을 위한 것보다 더 많은 로봇 경로들의 계획을 위한 부가 구성요소들의 버전들을 포함할 수 있다; (ⅱ) 가상의 작업편은 실행 시간이 최적화 기준이고 또한 가능한 최단 움직임이 언제나 발견될 때 툴 경로들의 계획을 위한 것보다 더 적은 로봇 경로들의 계획을 위한 부가 구성요소들의 버전들을 포함할 수 있다(서로 다른 작업편 변형들을 위한 툴 경로들이 프로세싱 결과들의 추후의 최적화에 필요한 시간을 감소시키기 위해 동일해야 할 때조차); (ⅲ) 툴 경로들의 계획을 위해 사용되는 것과 동일한 가상의 작업편이 로봇 움직임들의 계획을 위해 사용되는데, 이것은 로봇 움직임들을 최적화하는 데 필요한 시간을 감소시킨다. 이전에 설명된 바와 같이, 서로 다른 가상의 작업편들은 부가 구성요소들의 특정 버전들을 활성화 또는 비활성화하는 것에 의해 소프트웨어 툴을 이용해 매우 쉽게 생성될 수 있다. 이것은 모든 가상의 작업편이 부가 구성요소들의 원하는 조합이 남을 때까지(그 자체가 다양한, 실제로 구현가능한 작업편 변형들의 중첩을 포함할 수 있는) 개별적인 부가 구성요소들을 비활성화시키는 것에 의해 (완전한) 최대 모델로부터 유도될 수 있음을 의미한다.
어떠한 로봇 움직임도 동일한 수용가능한 로봇 움직임들을 갖는 부가 구성요소들의 모든 선택된 버전들에 대하여 사용될 수 있는 툴 경로에 대하여 발견될 수 없다면, 모든 3 가지 경우들(ⅰ, ⅱ, ⅲ)에 있어서 3 가지 가능한 행동 방침이 있다: (a) 첫번째로, 로봇 움직임을 계획하기 위해 변형들은 더 세분되고 문제(예. 충돌, 우회 움직임 미발견, 로봇이 닿는 범위 아닌 위치들 등)를 야기하는 부가 구성요소들의 이러한 버전들에 대하여 서브그룹들로 분할되고 각각의 서브그룹에 대하여 서로 다른 로봇 움직임들이 계획된다. (b) 두번째로, 툴 경로는 로봇 움직임을 계획할 때 문제와 관련되어 얻어진 데이터에 기초하여 모든 변형들에 대하여 보정된다(예. 툴의 위치 또는 방향이 변경된다, TCP 또는 플랜지 위치가 충돌로부터 "로봇을 멀리 밀기"로 변경되거나 또는 TCP 또는 플랜지 위치가 손 닿는 범위 내에 있지 않을 때 "로봇을 더 가까이 당기기"로 변경된다). (c) 세번째로, 툴 경로들은 중첩되고 툴 경로에 대한 로봇 움직임이 계획될 수 없고 새로운 툴 경로에 대하여 계획되는 이러한 변형들(부가 구성요소들의 버전들)에 대하여만 보정된다.
하지만, 모듈 2와 달리, 로봇 움직임(그 연대순을 포함하여)을 계획할 때, 각각의 툴 경로(또는 툴 경로들의 그룹)에 대하여 어떠한 부가 구성요소들이 활성화되어야 하고(즉, (충돌 및 프로세싱 결과들) 시뮬레이션들에서 고려되는) 또한 어떠한 것들이 활성화되지 않아야 하는지 정의되지 않는다. 대신, 여기서는 완전한, 충돌-없는 움직임 시퀀스(즉, 추후에 엑스포팅될 수 있는 로봇 프로그램을 위한 기초, 모듈 6 참조)가 각각의 부분 및 로봇에 대하여 그리고 일반적으로 다수의 작업편의 변형들에 대하여 정의/계획되고, 이로써 개별적인 변형에 대응하는 툴 경로들만이 사용된다.
모듈 2와 대조적으로, 계획은 영역별로 경로 순서대로(예. 부가 요소 순서대로) 수행되지 않고(남은 영역들/부가 요소들은 독립적으로 선택될 수 있다, 예. 가능한 긴 최대 모델), 대신 실제로 (가까운 미래 또는 먼 미래에) 생산되거나 또는 처리되는 전체 현재 부분에 대하여 이러한 변형들(만) 고려되는 한편, 모듈들 2, 3, 및 4(가장 가능한 중첩된 변형들을 갖는 하나)로부터의 결과들에 따라 최대한으로 가능한 모델은 외부 오류들을 보상하기 위해 다른 부분들에 대하여 유지된다. 이를 위해, 고려되는 부분 내의 (일반적으로 국소적인 기하 특성들을 갖는 영역들인) 부가 구성요소들이 변형들의 목록으로부터 확인되고 대응하는 모델(즉, 가상의 작업편)이 구축된다. 그후 모듈 2의 부가 요소들의 조합에 대하여 계획되고 모듈들 3 및 4에서 시뮬레이션되는 툴 경로들이 선택되고 또한 남아 있는 (같은 그리고 다른 부분들로부터) 부가 구성요소들 모두는 모듈들 2, 3, 및 4에서 선택된 툴 경로들에 대하여 계획되고 테스팅되었고 또한 적어도 그 변형에서 정의된 추가적인 버전들을 포함하는 부가 구성요소들의 교차 세트에 따라서 선택된다(단순한 경우들에 있어서, 다른 부분들에 대하여 이것은 최대 모델일 것이고 현재 부분에 대하여는 변형에 더하여, 어떤 경우들에 있어서는 이 부가 요소들의 추가적인 버전들에 대응하는 부가 구성요소들의 버전들일 것이다). 완전한 움직임 시퀀스가 경로들 및 부가 요소들과 선택된 로봇의 이 조합에 대하여 계획되는 한편, 이들에 할당되는 부분들, 경로들 및 부가 요소들을 갖는 다른 로봇들은, 충돌 가능성을 배제하기 위해 움직임 계획에 포함될 수 있다.
사용되는 경로들 각각은 부가 구성요소들의 정의된/알려진 변형들에 대하여 모듈들 2, 3 및 4에서 개별적으로 테스팅되었고 (이로써) 작업편들의 정의된/알려진 변형들을, 현재 사용되는 경로들에 할당된 추가적인 버전들 또는 변형들의 교차 세트로부터, 배제하고(모듈 5에서), 최종적인 로봇 움직임들(추후에 모듈 6에서 로봇 프로그램에 대응하는, 움직임 시퀀스)에 의해 커버되는 변형들 모두가 확인된다. 구성요소 변형들의 전체 교차 세트는 이 로봇 움직임들 또는 로봇 프로그램들에 할당된다. 대안으로서, 또는 부가 요소들의 모든 사용된 버전들의 상세사항들에 대응하는 툴 경로들(모듈 2에서) 또는 로봇 움직임들(모듈 5에서)을 변경하는 것에 의해 원하는 결과들을 획득하는 것이 가능하지 않다면, 커버되는 버전들의 그룹은 움직임 계획을 2 또는 그 이상의 경우들(제품 변형들의 그룹들)로 나누는 것에 의해 세분되는데 이때 결정적인 부가 구성요소들은 커버되는 버전들의 서브그룹들에 넣어지고 (모듈 2에서) 툴 경로들(뿐만 아니라 신호들, 프로세싱 변수들 등) 및/또는 (모듈 5에서) 로봇 움직임들은 추가적인 버전들의 모든 새로운 서브그룹들에 대하여 (별도로 분리되어) 계획되고 개선된다. 대안적으로, 각각의 부분에서의 로봇 움직임의 계획은 현재 변형에 대해서만 수행될 수 있고, "동결액(frozen solution)"의 경우에 있어서 이것은 부가 구성요소들의 다른 버전들을 활성화시키는 것에 의해 다른 변형들에 대하여 테스팅되고 확장된다.
상기에서 설명된 모든 경우들에 있어서, 고려되는 툴 경로들로부터 프로세싱되지 않은 구성요소의 영역들(예. 부분들에서 처리될 때 또는 스키드 또는 구성요소의 회전 또는 변환/전진과 함께 처리될 때)은 구현되는 특정 작업편 변형에 의해 표현되지 않지만, 사용되는 툴 경로들에 대하여 "ok"로서 부가 구성요소들의 모든 버전들을 중첩하는 것에 의해, 즉 모듈 2의 움직임 계획 및 모듈들 3 및 4의 시뮬레이션들에서 확인되었던 부가 구성요소들의 모든 버전들을 중첩하는 것에 의해, 표현된다. 이것은 이 부가 구성요소들 모두가 충돌 및 다른 악영향(숨김)을 피하고 또한 문제의 영역에 대한 툴 경로들이 정의되어야 하는 조합들의 수를 상당히 감소시킨다는 것이 보장될 것이다. 모듈들 6 및 7에 있어서, 도 5의 설명을 참조한다.
모듈들 사이의 데이터 흐름은 도 5에서와 같이, 문자들 a) 내지 n)으로 표현된다. 문자 a)는 로봇 셀의 그리고 그룹의 모든 작업편 변형들(특정 작업편 변형 아님)의 설명, 예를 들어 상기에서 언급된 (가상의) 최대 모델에 중첩/결합될 수 있는 모든 부가 요소들 모두의 모든 버전들의 및 베이스 몸체의 CAD 모델을 나타낸다. 문자 b)는 모든 변형들의 서브그룹에 대하여 계획된 툴 경로들(또는 툴 경로들 및 그들의 변수들), 툴 경로들이 정의되었던 모든 가능한 변형들의 서브그룹을 포함하는 처리되어야 하는 가상의 물체의 설명 뿐만 아니라 (선택적으로) 충돌 테스트가 추후에 수행되는지에 대한 로봇 셀의 설명을 나타낸다. 문자 c)는 모듈 3에 공급되는 경로들의 충돌 테스팅의 결과들을 나타낸다. 가능한 반응들은 "충돌" "충돌 없음"이고, 충돌이 경우에 있어서, 충돌의 시간 및 공간에 관한 상세 데이터(이와 함께 충돌이 발생하지 않는 경로, 발생한다면, 그 때 물체 및 위치 등)이다.
문자 d)는 변수들 및 프로세싱 시뮬레이션(예. 도색 프로세스의 시뮬레이션)이 수행되는 로봇 셀(또는 작업편 및 툴만)의 그리고 현재 고려되고 있는 모든 가능한 작업편 변형들의 서브그룹의 설명(CAD 모델)을 가지고 정의된 툴 경로들을 나타낸다. 프로세스에서, 별도의 분리된 툴 경로들의 프로세싱 결과들에 미치는 영향이 고려될 수 있다. 문자 e)는 시뮬레이션되는 프로세싱 결과들 또는 시뮬레이션된 툴 경로(들)의 프로세싱 결과(문자 d)에 대해 미치는 영향을 나타낸다. 프로세싱 결과들은 예를 들어, 페인트 층의 두께를 포함할 수 있다. 프로세싱 결과들은 부가 구성요소의 모든 버전에 대하여 또는 모든 변형에 대하여 시뮬레이션되고 개별적으로 또는 요약하여 디스플레이되거나 또는 릴레이된다(예. 도색 프로세스들에서, 개별적인 변형의 표면의 모든 부분에 대한 상세한 프로세싱 결과들 또는 단지 "ok" 또는 "not ok"인 것들, 다양한 층 두께들을 가지는 표면들의 퍼센트로서).
문자 f)는 모든 작업편 변형들 또는 그 서브그룹에 대하여 모듈 2에서 계획되고 모듈들 3 및 4에서 시뮬레이션에 의해 증명되었던 툴 경로들을 나타낸다. 이전에 언급된 바와 같이, 모듈 5는 툴 경로들을 따르는 데 필요한 로봇 움직임들을 계획하고 시뮬레이션에 의해 이들을 증명하도록 구성된다. 문자 g)는 모듈 2에서 툴 경로들의 보정을 필요로 하는 문제가 확인되면 수행되는 모듈 5로부터 로봇 움직임들의 시뮬레이션/증명의 결과들을 나타낸다. 예를 들어, 계획된 툴 경로는 로봇에 의해 따를 때 충돌을 야기시킬 수 있다(예. 다른 로봇이 고려된 툴 경로를 따르는 이 로봇과 충돌한다). 문자들 h), i), j) 및 k)는 기본적으로 문자들 b), c), d) 및 e)에 대응하지만, 계획된 툴 경로를 따르는 툴의 움직임 및 이로써 획득되는 프로세싱 결과들은 모듈들 3 및 4에서 제2 시뮬레이션으로 시뮬레이션되지 않고, 계획된 경로를 따라 툴이 움직일 때 로봇의 전체 움직임이 그 경우에 로봇 셀 내의 기계들 또는 다른 로봇들과 함께 일 수 있기 때문에, 필요하다면 로봇의 행동으로 인해 계획된 툴 경로로부터의 움직임들의 편차들을 포함하여(그 동역학, 분쇄 시 전이 등) 시뮬레이션된다.
문자 l)은 시뮬레이션(모듈 3에서 움직임 시뮬레이션 및 모듈 4에서 프로세싱 시뮬레이션)에 의해 증명되는, (툴의 속력을 포함하여) 계획된 툴 경로들을 나타낸다. 문자 m)은 로봇 컨트롤러로 실행가능한 로봇 프로그램(움직임 명령들, 변수들, 신호들 등)의 전송을 나타낸다(모듈 7). 문자 n)은 로봇 프로그램이 실제로 구현될 때 문제가 발생하는 이벤트에 대한 오류 메세지를 나타낸다(예. 프로세싱 결과들이 불만족스럽다).
이하의 도면들에서, 대표적인 예들이 여기서 설명되는 로봇 프로그래밍에의 접근들이 어떻게 프로세싱 결과들이 최적화되어야 하고 계획이 필요한 로봇 경로들의 수를 상당히 감소시키도록 적용될 수 있는지 다시 한번 더 강조하는 데 사용될 것이다. 도 7은 고전적인 OLP에서 수행되는 바와 같이 다양한, 실제로 구현가능한 작업편 변형들에 대한 하나의 툴 경로의 계획을 보여준다. 단순한 예로서, 2 개의 부가 요소들(A1 및 A2)을 갖는 베이스 몸체(B)가 고려되는데, 이때 부가 구성요소(A1)의 버전(V1)이 사용되고 차례로, 버전들(V0(부가 요소 없음), 부가 구성요소(A2)의 V1, V2 및 V3)이 사용된다. 이로써 툴 경로들은 4 개의 서로 다른 변형들에 대하여, 소위 A1 (V1) + A2 (V0), A1 (V1) + A2 (V1), A1 (V1) + A2 (V2) 및 A1 (V1) + A2 (V3)에 대하여 계획되어야 한다. 이 4 개의 작업편 변형들은 도 7의 A, B, C 및 D 도면들로 묘사되어 있다. 해당 예의 툴(W)은 작업편의 표면을 도색하는 데 사용되는 분사기이다.
다른 부가 구성요소들 역시 부가 구성요소(A1)(이 경우에 있어서, 부가 구성요소(A2))의 영역 내에서 툴 경로들의 위치에 영향을 미친다. 작업편이 프로세싱될 때, V 개의 서로 다른 툴 경로들(이 경우에 있어서, T1, T2, T3 및 T4)은, (V 개의 버전들을 포함할 수 있는) "이웃하는" 부가 요소에 따라서, 작업편의 일 영역(예. 부가 구성요소(A1)의 특정 버전(V1) 주위의 일 영역)을 처리하는 데 필요할 수 있다. 그 각각의 V 개의 버전들을 갖는 주어진 N 개의 이웃하는 부가 구성요소들은 VN 개의 서로 다른 툴 경로들일 것이다. 그 각각의 단지 소수의 버전들을 갖는 단지 소수의 부가 요소들만이 있을 때조차도, 이것은 상대적으로 큰 수의 상이한 툴 경로들로 귀결된다. V = 4 및 N = 10은 이미 백만 개 이상의 가능한 조합들에 이른다. 여기서 설명되는 접근법은 이 수를 크게 감소시키는 데 도움을 줄 수 있다. 도 7의 예를 따르는 것에 의해, 상이한 툴 경로들(또는 툴 경로들의 그룹들)의 수는, 최상의 경우에 있어서, 1로 감소될 수 있다. 이 상황은 도 8에 도시되어 있다.
도 8에 따르면, 하나의 툴 경로(TV)(또는 툴 경로들의 그룹)는 부가 구성요소(A1)(버전 V1)의 영역 내에서 작업편의 프로세싱에 대하여 계획되지만, 부가 구성요소(A2)의 모든 가능한 버전들이 중첩되는 가상의 작업편이 툴 경로의 계획을 위해 또한 충돌 테스팅(도 6, 모듈 3)을 위해 사용된다. 여기서 설명되는 예에 있어서, 특정한 부가 구성요소(A1)를 제외하고, 최대 모델이 사용된다. 시뮬레이션 또한 각각의 변형에 대하여 별도로 (병렬로) 수행될 수 있고 그 결과들은 (각각의 변형에 대하여 별도로 또는 모든 변형들의 합으로서) 디스플레이되거나 또는 평가될 수 있다.
툴 경로(Ti)의 증명이 실패하면(예. 시뮬레이션이 충돌을 예측하거나 또는 시뮬레이션된 프로세싱 결과들이 불만족스럽다면), 툴 경로의 계획은 도 9에 도시된 바와 같이, 2 가지 경우들로 분할될 수 있다. 도 9의 도면 A에서 툴 경로(T1")는 부가 구성요소(A1)의 버전들(V1 및 V2)이 중첩되는 가상의 작업편에 대하여 계획되고, 도 9의 도면 B에서 툴 경로(T2")는 부가 구성요소(A2)의 버전들(V0 및 V3)이 중첩되는 가상의 작업편에 대하여 계획된다. 툴 경로들의 수를 (도 8의 예에서와 같이) 절대 최소까지 감소시키는 것이 가능하지 않는 이러한 경우들에 있어서조차, 툴 경로들의 수의 상당한 감소(도 9의 예에 있어서 반감)는 그럼에도 불구하고 종종 달성될 수 있다.
도 10은 고전적인 OLP에서 수행되는 바와 같이, 실제로 구현가능한 작업편 변형들(하나의 영역 내에서)에 대한 툴 경로들(또는 툴 경로들의 그룹들)의 개별적인 계획을 보여준다(도시된 좌측 영역 내 작업편의 다양한 국소 기하 형태들). 하지만, 모든 기하 형태들(부가 구성요소의 버전들)의 중첩은 도시된 우측 영역 내 부가 요소에 대하여 고려된다. 단순한 예로서, 2 개의 부가 구성요소들(A1 및 A2)을 갖는 베이스 몸체(B)가 고려되지만, 부가 구성요소(A1)의 버전을 변경(및 부가 구성요소(A2)를 동일하게 유지)하는 것에 의해, 좌측 영역 내에서, (부가 구성요소(A2) 주위의 영역 내에서 최대 모델을 이용하여) 4 개의 서로 다른 작업편 변형들이 고려되는 것과는 달리, 우측 영역 내에서, 부가 구성요소(A2)의 모든 버전들이 고려된다. 어떠한 부가 요소도 베이스 몸체(B)에 대하여 도 10의 도 A에서 의도되지 않고(즉, 버전 V0) 툴 경로(T1)는 베이스 몸체의 표면에 평행하게 (부가 구성요소(A2)까지) 이어질 수 있다. 도 10의 도 B에 도시된 바와 같이, 부가 구성요소(A1)의 (큰) 버전(V1)이 사용되고 툴 경로(T2)는 부가 구성요소(A1) 주위로 이어질 수 있다. 도 10의 도 C에서 부가 구성요소(A1)의 (작은) 버전(V2)이 사용되고 비록 도 A보다는 베이스 몸체(B)까지의 거리가 더 짧지만, 툴 경로(T3) 또한 부가 구성요소(A1) 주위로 이어질 수 있다. 부가 구성요소(A1)의 (중간 크기의) 버전(V3)에 대한 툴 경로(T4)도 유사한 방식으로 계획된다. 이로써 부가 구성요소의 V 개의 주어진 버전들이 있을 때, (이웃하는 부가 구성요소들이 동일하게 유지된다면) V 개의 툴 경로들이 계획된다. 도 10의 예를 따르는 것에 의해, 서로 다른 툴 경로들(또는 툴 경로들의 그룹들)의 수는, 최상의 경우에 있어서, 1로 감소될 수 있고 또한, 도 11에 도시된 실제 경우에 있어서 1로 감소되었다. 이 상황은 도 11에 도시되어 있다. 여기서 4 개의 툴 경로들 대신, 오른쪽 부가 구성요소(A2)에 대하여 모든 버전이 별도로 고려된다면, 16 (4 x 4)이 계획될 수 있음을 지적하는 것은 중요하다.
부가 구성요소(또는 다수의 부가 구성요소들)의 하나의 또는 다수의 버전들을 선택적으로 활성화/비활성화시키는 것에 의해, 여기서 설명되는 프로그램 생성에의 접근법은 상이한 버전들이 사용되는 각각의 부가 구성요소에 대하여 계획, 증명 및 최적화되어야 하는 경로들의 세트를 감소시키는 데 도움을 준다. 도 11에 도시된 바와 같이, 하나의 툴 경로(T2')는 부가 구성요소(A1)의 2 가지 버전들(V1 및 V3)(도 11 참조, 도 B)을 위해 사용된다(경로들이 계획되고, 프로세싱 결과들이 시뮬레이션되고, 툴의 충돌-없는 움직임이 시뮬레이션되고 또한 로봇의 움직임이 계획/증명된 후). 여기에 도시된 예에 있어서, 별도의 분리된 경로(T1 및 T3)는 버전(V0)(부가 구성요소(A1) 없음)에 대하여 및 부가 구성요소(A1)의 작은 버전(V2)에 대하여만 계획된다. 이 경로들(T1 및 T3)은 예를 들어 프로세싱 시뮬레이션/증명이 경로(T2')가 버전들(V0 및 V2)에 대하여 만족스러운 프로세싱 결과들을 생성하지 않는다는 것을 드러내면, (별도로) 계획된다. 경로들의 수는 4에서 3으로 감소된다.
도 12의 예가 강조한 바와 같이, 여기서 설명되는 프로그램 생성에의 접근법은 (동일한) 베이스 몸체에 부가 구성요소들의 서로 다른 조합들로부터 기인하는 작업편 변형들뿐만 아니라, 유사한 작업편들의 그룹, 예를 들어 제품 군의 유사한 제품 변형들에도 적용될 수 있다. 이 경우에 있어서 물론, 고려되는 군의 다수의(또는 모든) 제품 변형들은 중첩될 수 있고 가상의 작업편으로 결합될 수 있다. 도 12에 도시된 예에 있어서, 3 개의 변형들의 중첩은 최대 모델을 나타낸다. 제품 그룹의 작업편의 모든 변형들에 대한 툴 경로들(T1, T2 및 T3)은 동시에 결정/계획되고 시뮬레이션(프로세싱, 충돌 테스팅)되고, 이때 모든 작업편 변형들(최대 모델)은 계획을 위해 활성화된다. 가상의 작업편의 일부 영역들이 충분한 품질로 프로세싱될 수 없이 남아 있다면(이것은 프로세싱 결과들의 시뮬레이션 동안 드러날 것이고), 툴 경로들의 최소 세트가 모든 작업편 변형들의 서브그룹들에 대하여 (이상적인 경우에 있어서) 정의될 것이고 또한 고려되는 서브그룹의 각각의 작업편 변형들에 할당될 것이다.
이하에서, 본 발명의 중요한 측면들은 요약될 것이다. 여기서 이것은 필수적인 특징들의 완전한 열거가 아니라 예시적인 요약임에 유의해야 한다. 일 실시예는 작업편들의 프로세싱을 위한 로봇들의 컴퓨터-보조 프로그래밍을 위한 방법에 관한 것이다. 이 방법은 워크스테이션 상에서 실행되는 소프트웨어 툴을 이용해 다수의 변형들의 (예. CAD) 모델들을 중첩시키는 것에 의해 제1 가상의 작업편을 생성하는 단계 뿐만 아니라, 작업편의 적어도 하나의 제1 영역에 대한 툴 경로들을 결정하기 위해 경로 계획을 수행하는 단계를 포함하고 또한 제1 가상의 작업편에 기초하여 결정된 툴 경로들을 증명하는 단계를 포함한다. 이 방법은 소프트웨어 툴을 이용해 작업편의 다수의 변형들의 모델들을 중첩시키는 것에 의해 제2 가상의 작업편을 생성하는 단계를 더 포함하고, 이때 제1 가상의 작업편은 제2 가상의 작업편과 동일한 수의 중첩되는 작업편 변형들을 포함하지 않고 또한, 최종적으로, 작업편의 적어도 하나의 제2 영역에 대한 툴 경로들을 결정하기 위해 경로 계획을 수행하는 단계 및 제2 가상의 작업편에 기초하여 결정된 툴 경로들을 증명하는 단계를 포함한다(cf. 도 6). 경로들의 계획/증명은 이로써 서로 다른 가상의 작업편들에 기초하여 작업편의 서로 다른 영역들에 대하여 영역별로 수행된다. 현재 고려되는 영역 외부에서, 모든 가능한 변형들의 중첩을 나타내는, 예를 들어 최대 모델이 사용되거나 또는, 충돌-없는 움직임이 최대 모델에 대하여 발견되거나 또는 고려되는 영역 외부에서, "최대 모델에 가능한 한 가까운" 서로 다른 버전들이 테스팅된다. 이것은 적절한 별도의 로봇 움직임들이 그 각각에 대하여 계획될 수 있을 때까지 계획이 다양한 서브그룹들(가상의, 미완성 모델들)로 더 분할되는 것을 의미한다.
여기서 설명되는 예에 있어서, 작업편의 모든 변형은 베이스 몸체의 특정 국소 기하 형태들의 수에 의해 형성되는데, 서로 다른 기하 형태들은 작업편의 베이스 몸체 상에 배치되는 부가 구성요소들에 의해(cf. 도 9 내지 도 11) 또는 작업편 베이스 몸체의 외부 기하 형태를 변형하는 것에 의해(cf. 도 12) 생성될 수 있다. 예를 들어, 제1 가상의 작업편은 제1 영역 내에 제1 수의 기하 형태들의 중첩 및 제2 영역 내에 제2 수의 기하 형태들의 중첩을 포함할 수 있다. 제2 (및 모든 추가적인) 가상의 작업편에 동일하게 적용된다. 특히, 툴 경로들이 계획되는 작업편의 다양한 영역들 내의 기하 형태들은 작업편이 실제로 구현될 때 상호 배타적인 것으로 판명될 수 있다. 따라서, 가상의 작업편이 예를 들어 2 개의 서로 다른 부가 구성요소들이 중첩되기 때문에 실현될 수 없다(cf. 도 9).
툴 경로들을 계획 및 증명하기 위한 기술들은 널리 알려져 있다. 결정된 툴 경로들을 증명하는 것은, 예를 들어 이하를 포함할 수 있다: 계획된 툴 경로를 따라 툴의 움직임을 시뮬레이션하고 이 툴의 충돌-없는 움직임이 가능한지 여부를 시뮬레이션에서 테스팅하는 것 뿐만 아니라, (추가적으로 또는 대안적으로) 움직일 때 툴에 의해 획득되는 프로세싱 결과들을 시뮬레이션하고 이 결과들이 특정 기준(예. 도색 프로세스에 적용되는 페인트의 충분한 두께)을 충족하는지 여부를 시뮬레이션에서 테스팅하는 것. 계획된 툴 경로들을 따라 툴의 움직임을 시뮬레이션하는 것은 일반적으로 툴의 움직임을 고려할 뿐 툴을 움직이는 로봇의 움직임을 고려하지 않는다. 작업편의 제1 영역에 대하여 툴 경로들을 계획할 때, 최대 수의 가능한 기하 형태들은 작업편의 제2 영역 내 시뮬레이션(최대로, 기하 형태들 모두)에서 고려되지만, 제2 영역 내에서 증명이 충돌 위험 또는 특정 기준의 불충족을 드러낸 (단지) 이 기하 형태들만 고려되지 않은 채 남겨진다. 그러므로, 시뮬레이션들이 툴 경로들이 (가능한 충돌 때문에) 따를 수 없거나 또는 프로세싱(예. 도색)이 원하는 결과들을 생성하지 않음을 드러내는 작업편 변수들 모두는 제1 가상의 작업편으로부터 제거된다. 제1 가상의 작업편 내에 남아 있는 작업편 변형들 모두에 대하여, 계획된 툴 경로들을 (충돌 없이) 따를 수 있고 프로세싱은 원하는 결과들을 생성한다.
결정된 툴 경로들에 기초하여, (시공간에서) 로봇 움직임들이 결정될 수 있다. 따라서, 툴을 가지고 작업편의 제1 영역 내에서 결정된 툴 경로들을 따르기에 적절한 로봇 움직임들은 컴퓨터의 도움으로 결정된다. 이것은 제1 가상의 작업편에 또는 추가적인, 변형된 버전에 기초한 시뮬레이션들을 이용하여 결정된 로봇 움직임들을 증명하는 것을 포함한다. 이후에 증명된 로봇 움직임들을 나타내는 로봇 프로그램은 자동으로 생성된다. (한 경로의 끝점으로부터 다음 경로의 시작점까지) 로봇의 중간 움직임들을 포함하여, 주어진 툴 경로에 대하여 로봇 움직임을 자동으로 결정하기 위한 소프트웨어 툴들이, 일반적으로 알려져 있다. 하지만, 여기서 이 예를 따르는 것에 의해, 이를 위해 경로 계획 그 자체를 위해 사용되는 것과 다른 가상의 작업편이 사용될 수 있다. 예를 들어, (제1 영역 내에서 경로들을 계획하는 데 사용되었던) 제1 가상의 작업편은 이 작업편 변형들을 로봇 움직임들의 시뮬레이션(툴 경로를 따른 툴 움직임의 시뮬레이션과 혼동되지 않는)이 충돌 위험을 드러내는 제2 영역 내에서 국소 기하 형태들을 가지는 가상의 작업편으로부터 제거하는 것에 의해 로봇 움직임들을 결정하기 위해 변형될 수 있다. 변형된 가상의 작업편은 이 작업편 변형들을 로봇 움직임들의 시뮬레이션이 (로봇과의) 충돌 위험을 드러내는 제1 또는 제2 영역 내에서 국소 기하 형태들을 가지는 변형된 가상의 작업편으로부터 제거하는 것에 의해 (점진적으로) 더 변형될 수 있다.
이 예에 따르면, 제1 및 제2 영역들은 한 단계에서 프로세싱되고 통합된 로봇 움직임들이 계획되는 작업편의 하나의 부분 내에 위치된다. 이 경우에 있어서 이 방법은 제1 가상의 작업편 내에서 뿐만 아니라, 제2 가상의 작업편 내에 모두 포함되는 작업편 변형들의 적어도 일부, 최대한으로 모두를 포함하는, 변형된 가상의 작업편을 생성하는 것을 포함할 수 있다(작업편 변형들의 교차 세트). 이후에, 작업편의 그 부분 내에서 결정된 경로들을 따르기에 적절한 로봇 움직임들은 소프트웨어 툴을 이용해 자동으로 결정될 수 있다. 이것은 변형된 가상의 작업편에 기초한 시뮬레이션을 이용해, 결정된 로봇 움직임들을 증명하는 것을 포함한다. 결정된 로봇 움직임들, 또는 이로부터 유도되는 로봇 프로그램은, 변형된 가상의 작업편에 포함된 작업편 변형들에 할당되고 또한 특정 변형의 프로세싱을 위한 생산 동안 선택될 수 있다.
또 다른 실시예는 작업편들의 프로세싱을 위한 로봇들의 컴퓨터-보조 프로그래밍을 위한 시스템에 관한 것이다. 이 시스템은 적어도 하나의 프로세서를 갖는 워크스테이션 뿐만 아니라, 워크스테이션의 적어도 하나의 프로세서 상에서 실행하는 소프트웨어 툴을 포함하고, 이 소프트웨어 툴은 다양한 가상의 작업편들을 생성하고, 이때 다수의 개별적인 작업편들의 모델들은 중첩되고, 또한 시뮬레이션들을 이용해 작업편의 서로 다른 영역들의 프로세싱을 위한 툴 경로들을 증명하도록: 프로그램되는데, 이때 서로 다른 가상의 작업편들은 작업편의 서로 다른 영역들에 대하여 사용된다. 소프트웨어 툴은 툴을 가지고 제1 영역 내에서 결정된 툴 경로들을 따르기에 적절한 로봇 움직임들을 결정하고, 제1 영역의 툴 경로들을 증명하는 데 사용되었던 제1 가상의 작업편에 기초하여 또는 변형된 가상의 작업편에 기초하여 시뮬레이션을 이용해 결정된 로봇 움직임들을 증명하고, 또한 증명된 로봇 움직임들을 나타내는 로봇 프로그램을 생성하기 위해 더 프로그램될 수 있다.

Claims (15)

  1. 작업편들을 처리하기 위한 컴퓨터-보조 프로그래밍을 위한 방법에 있어서,
    워크스테이션 상에서 실행되는 소프트웨어 툴을 이용해 다수의 작업편 변형들의 모델들을 가상적으로 중첩시키는 모델들에 의해 제1 가상의 작업편을 생성하는 단계;
    상기 작업편의 적어도 하나의 제1 영역에 대하여 툴 경로들을 결정하기 위해 경로 계획을 수행하고 또한 상기 제1 가상의 작업편에 기초하여 결정된 툴 경로들을 증명하는 단계;
    워크스테이션 상에서 실행되는 소프트웨어 툴을 이용해 다수의 작업편 변형들의 모델들을 가상적으로 중첩시키는 모델들에 의해 제2 가상의 작업편을 생성하는 단계. 이때 상기 제1 가상의 작업편은 상기 제2 가상의 작업편과 동일한 수의 중첩된 작업편 변형들을 포함하지 않고; 및
    상기 작업편의 적어도 하나의 제2 영역에 대하여 툴 경로들을 결정하기 위해 경로 계획을 수행하고 또한 상기 제2 가상의 작업편에 기초하여 결정된 툴 경로들을 증명하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 작업편 변형들 각각은 베이스 몸체의 다수의 특정 국소 기하 형태들로 구성되는, 방법.
  3. 제 2 항에 있어서,
    상기 서로 다른 기하 형태들은 상기 작업편 베이스 몸체 상에 배치되는 부가 구성요소들에 의해 또는 상기 작업편 베이스 몸체의 외부 기하 형태를 변형하는 것에 의해 생성되는, 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제1 가상의 작업편은 상기 제1 영역 내 제1 수의 기하 형태들의 중첩 및 상기 제2 영역 내 제2 수의 기하 형태들의 중첩을 포함하고,
    상기 제2 가상의 작업편은 상기 제1 영역 내 제3 수의 기하 형태들의 중첩 및 상기 제2 영역 내 제4 수의 기하 형태들의 중첩을 포함하고,
    상기 제1 영역 내 및/또는 상기 제2 영역 내 기하 형태들은 상기 작업편의 실제 구현에 있어서 상호 배타적일 수 있는, 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 상기 결정된 툴 경로들을 증명하는 단계는,
    상기 계획된 툴 경로들을 따라 툴의 움직임을 시뮬레이션하고, 또한 상기 시뮬레이션에 기초하여, 상기 툴의 시뮬레이션된 움직임이 충돌 없이 가능한지 여부를 테스트하거나, 및/또는
    상기 툴이 움직이는 동안 상기 툴에 의해 획득되는 프로세싱 결과들을 시뮬레이션하고, 또한 상기 시뮬레이션에 기초하여, 상기 결과들이 특정한 기준을 충족시키는지 여부를 테스트하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서, 상기 계획된 툴 경로들을 따라 상기 툴의 움직임을 시뮬레이션할 때 상기 툴을 움직이는 로봇의 움직임이 아닌 상기 툴의 움직임만 고려되는, 방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 제1 영역 내 경로 계획에 있어서, 상기 시뮬레이션에 고려되는 상기 제2 영역 내 상기 제2 수의 기하 형태들은 가능한 한 많고, 이로써, 상기 제2 영역 내에서, 이 기하 형태들은 그 증명이 충돌 위험 또는 상기 특정 기준의 불충족을 드러내기 때문에 고려되지 않는, 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    툴로 상기 제1 영역 내에서 결정된 상기 툴 경로들을 따르기에 적절한 로봇 움직임들의 컴퓨터-보조 결정,
    상기 제1 가상의 작업편 또는 추가적으로 변형된 제1 가상의 작업편에 기초한 시뮬레이션을 이용한 상기 결정된 로봇 움직임들의 증명; 및
    상기 증명된 로봇 움직임들을 나타내는 로봇 프로그램의 자동 생성을 더 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 제1 가상의 작업편은 상기 로봇 움직임들의 시뮬레이션이 충동 위험을 드러내기 때문에 상기 제2 영역 내 국소 기하 형태들을 가지는 상기 가상의 작업편으로부터 이 작업편 변형들을 제거하는 것에 의해 변형되는, 방법.
  10. 제 8 항에 있어서,
    상기 제1 및 상기 제2 영역들은 상기 작업편의 일 부분 내에 위치되고, 상기 방법은
    상기 제1 가상의 작업편 뿐만 아니라 상기 제2 가상의 작업편 모두에 포함된 상기 작업편 변형들의 적어도 일부, 특히 모두를 포함하는, 변형된 가상의 작업편을 생성하는 단계;
    상기 작업편의 상기 부분 내에서 상기 결정된 툴 경로들을 따르기에 적합한 로봇 움직임들의 컴퓨터-보조 결정; 및
    상기 변형된 가상의 작업편에 기초한 시뮬레이션을 이용해 상기 결정된 로봇 움직임들을 증명하는 단계를 더 포함하는, 방법.
  11. 제 9 항에 있어서, 상기 변형된 가상의 작업편은 상기 로봇 움직임들의 시뮬레이션이 충돌 위험을 드러내기 때문에 상기 제1 또는 제2 영역 내 국소 기하 형식들을 갖는 상기 변형된 가상의 작업편으로부터 이 작업편 변형들을 제거하는 것에 의해 더 변형되는, 방법.
  12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 변형된 가상의 작업편 내에 포함된 상기 작업편 변형들에 상기 결정된 로봇 움직임들 또는 이로부터 유도되는 로봇 프로그램을 할당하는 단계를 더 포함하는, 방법.
  13. 워크스테이션 상에서 실행될 때, 상기 워크스테이션이 제 1 항 내지 제 12 항 중 어느 한 항에 따른 방법을 수행하도록 야기시키는 소프트웨어 명령들을 포함하는 컴퓨터 프로그램 제품.
  14. 작업편들을 처리하기 위한 로봇들의 컴퓨터-보조 프로그래밍을 위한 시스템에 있어서,
    적어도 하나의 프로세서를 갖는 워크스테이션,
    상기 워크스테이션의 적어도 하나의 프로세서에 의해 실행되는 소프트웨어 툴을 포함하고, 상기 소프트웨어 툴은
    다양한 가상의 작업편들을 생성하기 위해, 이때 작업편의 다수의 작업편 변형들의 모델들은 가상으로 중첩되고;
    상기 작업편의 서로 다른 영역들의 처리를 위해 시뮬레이션으로 툴 경로들을 증명하는 한편, 서로 다른 가상의 작업편들은 상기 작업편의 서로 다른 영역들에 이용되기 위해 프로그램되어 있는, 시스템.
  15. 제 14 항에 있어서, 상기 소프트웨어 툴은
    툴로 상기 작업편의 제1 영역 내 상기 결정된 툴 경로들을 따르기에 적합한 로봇 움직임들을 결정하기 위해,
    상기 제1 영역의 툴 경로들의 증명을 위해 이용되었던 제1 가상의 작업편에 기초한 또는 변형된 가상의 작업편에 기초한 시뮬레이션을 이용해 상기 결정된 로봇 움직임들을 증명하기 위해; 및
    상기 증명된 로봇 움직임들을 나타내는 로봇 프로그램을 생성하기 위해 더 프로그램되어 있는, 시스템.
KR1020207003759A 2017-07-27 2018-07-27 서로 다른 변형들을 갖는 작업편들을 처리하기 위한 로봇들의 효율적인 프로그래밍 KR102532843B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17183552.3 2017-07-27
EP17183552.3A EP3434424A1 (de) 2017-07-27 2017-07-27 Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
PCT/EP2018/070499 WO2019020818A1 (de) 2017-07-27 2018-07-27 Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten

Publications (2)

Publication Number Publication Date
KR20200037253A true KR20200037253A (ko) 2020-04-08
KR102532843B1 KR102532843B1 (ko) 2023-05-15

Family

ID=59649459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207003759A KR102532843B1 (ko) 2017-07-27 2018-07-27 서로 다른 변형들을 갖는 작업편들을 처리하기 위한 로봇들의 효율적인 프로그래밍

Country Status (5)

Country Link
US (1) US20210086359A1 (ko)
EP (1) EP3434424A1 (ko)
KR (1) KR102532843B1 (ko)
DE (1) DE112018003234A5 (ko)
WO (1) WO2019020818A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11135720B2 (en) * 2018-10-23 2021-10-05 Siemens Industry Software Ltd. Method and system for programming a cobot for a plurality of industrial cells
CN109986167A (zh) * 2019-05-15 2019-07-09 广东工业大学 一种大型三维复杂构件双六轴弧焊机器人智能避障方法
CN111390915B (zh) * 2020-04-17 2022-07-15 上海智殷自动化科技有限公司 一种基于ai的自动焊缝路径识别方法
US20220152816A1 (en) * 2020-11-13 2022-05-19 Intrinsic Innovation Llc Decentralized robotic operating environment optimization
CN113733085B (zh) * 2021-08-30 2023-04-11 三一建筑机器人(西安)研究院有限公司 工业机器人离线编程方法及装置
CN114055255B (zh) * 2021-11-18 2022-11-15 中南大学 一种基于实时点云的大型复杂构件表面打磨路径规划方法
US11809160B2 (en) * 2021-12-09 2023-11-07 Autodesk, Inc. Multi-tooltip control for computer-aided manufacturing
CN114488943B (zh) * 2022-01-07 2024-01-12 华中科技大学 面向配合工况下的随机多区域高效打磨路径规划方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1533087A2 (en) * 2003-11-17 2005-05-25 Fanuc Ltd Operation program preparation device
KR20140090601A (ko) * 2011-09-15 2014-07-17 컨버전트 인포메이션 테크놀로지스 게엠베하 로봇 프로그램의 자동 생성을 위한 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006005344A1 (de) * 2006-02-07 2007-08-09 Daimlerchrysler Ag Verfahren zur Simulation eines Montagevorgangs für ein Anbauteil

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1533087A2 (en) * 2003-11-17 2005-05-25 Fanuc Ltd Operation program preparation device
JP2005149216A (ja) * 2003-11-17 2005-06-09 Fanuc Ltd 作業プログラム作成装置
JP3905075B2 (ja) * 2003-11-17 2007-04-18 ファナック株式会社 作業プログラム作成装置
KR20140090601A (ko) * 2011-09-15 2014-07-17 컨버전트 인포메이션 테크놀로지스 게엠베하 로봇 프로그램의 자동 생성을 위한 시스템 및 방법
US20140371905A1 (en) * 2011-09-15 2014-12-18 Convergent Information Technologies Gmbh System and method for the automatic generation of robot programs

Also Published As

Publication number Publication date
DE112018003234A5 (de) 2020-04-09
KR102532843B1 (ko) 2023-05-15
US20210086359A1 (en) 2021-03-25
EP3434424A1 (de) 2019-01-30
WO2019020818A1 (de) 2019-01-31

Similar Documents

Publication Publication Date Title
KR102532843B1 (ko) 서로 다른 변형들을 갖는 작업편들을 처리하기 위한 로봇들의 효율적인 프로그래밍
JP6580602B2 (ja) ロボットをプログラムする方法およびシステム
CN110315534B (zh) 船舶焊接机器人离线编程的处理方法和系统
US20190391597A1 (en) Robot coordination in a shared workspace
US9104197B2 (en) Method and system for off-line programming of multiple interacting robots
Hamid et al. Virtual reality applications in manufacturing system
EP3643455B1 (en) Method and system for programming a cobot for a plurality of industrial cells
WO2010092981A1 (ja) 産業用ロボットシステム
CN103809463A (zh) 用于机器人模拟器的示教点指令选择方法
Tahriri et al. Optimizing the robot arm movement time using virtual reality robotic teaching system
EP1459144A2 (en) 3d virtual manufacturing process
Schuh et al. Effects of digital twin simulation modelling on a flexible and fixtureless production concept in automotive body shops
KR101640038B1 (ko) 블록단위 로봇 olp를 위한 파라미트릭 방식의 모델링 시스템 및 방법
Tarallo et al. Robust interactive design for ergonomics and safety: R-IDEaS procedure and applications
Buchholz et al. SHPbench–a smart hybrid prototyping based environment for early testing, verification and (user based) validation of advanced driver assistant systems of cars
Meddahi et al. API based graphical simulation of robotized sites
Yuvaraj et al. Investigation on spot welding and roller hemming by robots
Ji et al. Interface architecture design for minimum programming in human-robot collaboration
KR101881915B1 (ko) 차량 설계를 위한 플러그인 시스템
Shewchuk et al. Virtual environments in manufacturing
JPH07210223A (ja) ロボットの動作時間評価方法および装置
García-Sedano et al. Stamping line optimization using genetic algorithms and virtual 3d line simulation
Sanjog et al. Digital human modeling software in secondary manufacturing sector: A review
Ledere Making virtual manufacturing a reality
Hilmann On the development of a process chain for structural optimization in vehicle passive safety

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant