KR20220131359A - 도구 경로들의 자동 생성 - Google Patents

도구 경로들의 자동 생성 Download PDF

Info

Publication number
KR20220131359A
KR20220131359A KR1020227032204A KR20227032204A KR20220131359A KR 20220131359 A KR20220131359 A KR 20220131359A KR 1020227032204 A KR1020227032204 A KR 1020227032204A KR 20227032204 A KR20227032204 A KR 20227032204A KR 20220131359 A KR20220131359 A KR 20220131359A
Authority
KR
South Korea
Prior art keywords
end effector
representation
predetermined
adjusting
features
Prior art date
Application number
KR1020227032204A
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 KR20220131359A publication Critical patent/KR20220131359A/ko

Links

Images

Classifications

    • 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/408Numerical 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 data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • 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/402Numerical 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 control arrangements for positioning, e.g. centring a tool relative to a hole in the workpiece, additional detection means to correct position
    • 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/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/0019End effectors other than grippers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • 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/31081Detect position robot, agv relative to machine to start communication
    • 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/36405Adjust path by detecting path, line with a photosensor
    • 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/36407Follow path with probe, store deviations for correction during normal operation
    • 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/36415Adjust path and attitude tool by detecting path, line with a photosensor, laser
    • 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/36416Adapt teached position as function of deviation 3-D, 2-D position of end effector, tool
    • 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/40512Real time path planning, trajectory generation
    • 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/40519Motion, trajectory planning
    • 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/40564Recognize shape, contour of object, extract position and orientation
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/30End effector
    • Y10S901/41Tool
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/30End effector
    • Y10S901/41Tool
    • Y10S901/43Spray painting or coating
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • Y10S901/47Optical

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)
  • Earth Drilling (AREA)
  • Percussive Tools And Related Accessories (AREA)
  • Surgical Instruments (AREA)

Abstract

예시적인 구현예들은 로보틱 작업들을 위한 명령어들을 생성하는 것에 관한 것이다. 방법은 객체 상에서의 엔드 이펙터에 의한 경로 기반 작업의 작업 정보를 결정하는 단계를 수반할 수 있고, 작업 정보는 (ⅰ) 적어도 하나의 작업 파라미터, 및 (ⅱ) 객체의 공칭 표현을 포함한다. 방법은 또한 작업 정보에 기초하여, 엔드 이펙터가 작업을 수행하기 위한 하나 이상의 파라메트릭 명령어를 결정하는 단계를 수반하고, 하나 이상의 파라메트릭 명령어는 엔드 이펙터가 작업을 수행할 때 따라야 할 도구 경로를 나타낸다. 방법은 또한 센서 데이터에 기초하여, 객체의 관찰된 표현을 생성하는 단계; 및 관찰된 표현과 공칭 표현을 비교하는 단계를 수반한다. 방법은 비교에 기초하여, 파라메트릭 명령어들을 객체의 관찰된 표현에 맵핑하는 단계를 더 수반한다.

Description

도구 경로들의 자동 생성{AUTOMATIC GENERATION OF TOOLPATHS}
로봇은 로봇이 객체들을 조작하는 것을 허용하는 하나 이상의 엔드 이펙터, 및 객체들의 조작을 안내하는 하나 이상의 센서를 포함할 수 있다. 예를 들어, 로봇은 복수의 객체를 원하는 물리적 구조로 결합하기 위해, 엔드 이펙터(들) 및 센서(들)를 사용할 수 있다.
로보틱 디바이스는 대상 객체와 관련하여 작업을 수행하기 위해 특정 도구 경로를 따르도록 엔드 이펙터를 제어할 수 있다. 실제로, 엔드 이펙터는 일반적으로 미리 정의된 궤적을 따르므로, 대상 객체가 그것의 모델로부터 벗어난 경우, 미리 결정된 궤적을 따르는 엔드 이펙터는 요구되는 대로 작업을 수행할 가능성이 없다. 본 명세서에는 엔드 이펙터가 대상 객체와 관련하여 경로 기반 작업을 수행하기 위한 명령어들을 생성하기 위한 시스템 및 방법이 개시된다. 명령어들은 대상 객체의 파라메트릭 모델에 기초하여 생성된다. 특히, 시스템은 엔드 이펙터에 대해 파라메트릭 모델의 하나 이상의 피처에 대해 정의된 파라메트릭 도구 경로를 결정할 수 있다. 다음으로, 런타임 시에, 시스템은 파라메트릭 도구 경로를 구축된 대상 객체(as-built target object)의 피처들에 맵핑할 수 있다. 객체 및/또는 작업 현장에 대해 파라메트릭 방식으로(parametrically) 도구 경로를 정의한 후, 도구 경로를 구축된 대상 객체 및/또는 작업 현장에 맵핑함으로써, 엔드 이펙터는 대상 객체가 그것의 모델로부터 벗어나더라도 요구되는 경로 기반 작업을 수행할 수 있다.
일 양태에서, 방법이 제공된다. 방법은 객체 상에서의 엔드 이펙터에 의한 경로 기반 작업의 작업 정보를 결정하는 단계를 수반하고, 작업 정보는 (ⅰ) 적어도 하나의 작업 파라미터, 및 (ⅱ) 객체의 공칭 표현(nominal representation)을 포함한다. 방법은 작업 정보에 기초하여, 엔드 이펙터가 작업을 수행하기 위한 하나 이상의 파라메트릭 명령어를 결정하는 단계를 더 수반하고, 하나 이상의 파라메트릭 명령어는 엔드 이펙터가 경로 기반 작업을 수행할 때 따라야 할 도구 경로를 나타낸다. 방법은 또한 센서 데이터에 기초하여, 객체의 관찰된 표현을 생성하는 단계를 수반한다. 또한, 방법은 객체의 관찰된 표현과 공칭 표현을 비교하는 단계, 및 비교에 기초하여, 하나 이상의 파라메트릭 명령어를 객체의 관찰된 표현에 맵핑하는 단계를 수반한다. 방법은 로보틱 디바이스로 하여금 경로 기반 작업을 수행하게 하도록, 맵핑된 명령어들을 엔드 이펙터에 송신하는 단계를 더 수반한다.
다른 양태에서, 시스템이 제공된다. 시스템은 로보틱 디바이스와의 통신을 위한 적어도 하나의 통신 인터페이스를 포함하고, 로보틱 디바이스는 객체 표면들과 상호작용하도록 구성된 엔드 이펙터를 포함한다. 시스템은 또한 스캐너 디바이스와의 통신을 위한 적어도 하나의 통신 인터페이스, 및 적어도 하나의 프로세서를 포함한다. 시스템은 기능들을 수행하기 위해 적어도 하나의 프로세서에 의해 실행가능한 프로그램 명령어들을 포함하는 비-일시적 컴퓨터 판독가능한 매체(computer readable medium)(CRM)를 더 포함하고, 기능들은 객체의 표면 상에서의 엔드 이펙터에 의한 경로 기반 작업에 대한 하나 이상의 파라메트릭 명령어를 결정하는 기능을 포함하고, 하나 이상의 파라메트릭 명령어는 표면 상의 경로를 나타내고, 하나 이상의 파라메트릭 명령어는 표면의 공칭 표현에 기초한다. 기능들은 또한 표면의 제작이 완료된 것으로 결정하고, 그에 응답하여 스캐너 디바이스로 하여금 표면의 스캔을 수행하게 하는 기능을 더 포함한다. 기능들은 스캔에 기초하여 표면의 관찰된 표현을 결정하는 기능; 및 표면의 관찰된 표현과 표면의 공칭 표현의 비교에 기초하여, 표면의 관찰된 표현에 따라 표면 상에서의 경로 기반 작업의 수행을 제공하기 위해 하나 이상의 파라메트릭 기반 명령어를 업데이트하는 기능을 더 포함한다. 기능들은 추가적으로 로보틱 디바이스로 하여금 표면 상에서 경로 기반 작업을 수행하게 하기 위해, 적어도 하나의 통신 인터페이스를 통해, 하나 이상의 업데이트된 명령어를 로보틱 디바이스에 송신하는 기능을 포함한다.
또 다른 양태에서, 방법이 제공된다. 방법은 객체의 파라메트릭 모델을 분석하는 단계를 수반한다. 방법은 분석에 기초하여, (ⅰ) 엔드 이펙터에 의해 객체에 대해 수행될 경로 기반 작업의 파라미터를 결정하고, (ⅱ) 엔드 이펙터에 대한 파라메트릭 도구 경로를 생성하는 단계를 더 수반한다. 방법은 또한 경로 기반 작업의 런타임에서, 객체의 표현을 나타내는 센서 데이터를 수신하는 단계를 수반한다. 또한, 방법은 센서 데이터에 기초하여, 파라메트릭 도구 경로를 객체의 표현에 맵핑하는 단계를 수반한다. 방법은 엔드 이펙터로 하여금 맵핑된 도구 경로를 따라 경로 기반 작업을 수행하게 하는 명령어들을 생성하는 단계를 더 수반한다. 방법은 로보틱 디바이스로 하여금 객체에 대해 경로 기반 작업을 수행하게 하도록 명령어들을 엔드 이펙터에 송신하는 단계를 수반한다.
이들 및 다른 양태들, 장점들 및 대안들은 적절한 경우 첨부 도면들을 참조하여 이하의 상세한 설명을 읽음으로써 본 기술분야의 통상의 기술자에게 명백해질 것이다. 또한, 이러한 발명의 내용 및 본 문서의 다른 곳에서 제공되는 설명은 청구 대상을 제한이 아니라 예로서 예시하는 것으로 의도됨을 이해해야 한다.
도 1은 예시적인 실시예에 따른 로보틱 제어 시스템의 블록도를 도시한다.
도 2는 예시적인 실시예에 따른 로봇의 도면을 도시한다.
도 3은 예시적인 실시예에 따른 생산 현장에 배치된 로보틱 디바이스의 도면을 도시한다.
도 4a는 예시적인 실시예에 따른 객체의 파라메트릭 모델을 도시한다.
도 4b는 예시적인 실시예에 따른 구축된 객체를 도시한다.
도 5a는 예시적인 실시예에 따른, 객체에 대해 엔드 이펙터에 의해 수행되는 다른 작업을 도시한다.
도 5b, 도 5c 및 도 5d는 예시적인 실시예에 따른 각각의 퇴적 패턴 형상을 각각 도시한다.
도 6은 예시적인 실시예에 따른, 객체에 대해 엔드 이펙터에 의해 수행되는 또 다른 작업을 도시한다.
도 7은 예시적인 실시예에 따른 프로세스의 흐름도이다.
도 8은 예시적인 실시예에 따른 다른 프로세스의 흐름도이다.
도 9는 예시적인 실시예에 따른 다른 프로세스의 흐름도이다.
도 10은 예시적인 실시예에 따른 또 다른 프로세스의 흐름도이다.
도 11은 예시적인 실시예에 따른 로보틱 디바이스의 블록도를 도시한다.
이하의 상세한 설명은 첨부 도면들을 참조하여 개시된 시스템들 및 방법들의 다양한 특징들 및 기능들을 설명한다. 도면들에서, 문맥이 달리 지시하지 않는 한, 유사한 기호들은 유사한 컴포넌트들을 나타낸다. 본 명세서에 설명된 예시적인 시스템 및 방법 실시예들은 제한적인 것으로 의도되지 않는다. 개시된 시스템들 및 방법들의 특정 양태들은 매우 다양한 상이한 구성들로 배열되고 조합될 수 있으며, 이들 모두는 본 명세서에서 고려된다는 것이 쉽게 이해될 것이다.
I. 개요
로보틱 제어 시스템은 작업 현장에 위치된 로보틱 디바이스를 포함할 수 있고, 로보틱 디바이스는 로보틱 디바이스가 물리적 객체들을 조작하거나 다르게 연루시키는 것을 수반하는 작업들을 수행하는 것을 허용하는 하나 이상의 엔드 이펙터(예를 들어, 엔드-오브-암 도구)를 포함할 수 있다. 로보틱 디바이스는 물리적 객체들에 대한 엔드 이펙터의 조작을 안내하는 다른 컴포넌트들(예를 들어, 센서)도 포함할 수 있다. 예들에서, 컨트롤러는 로보틱 디바이스에게, 물리적 객체들의 조작 또는 그것들과의 상호작용을 수반하는 작업들을 수행하기 위해 엔드 이펙터(들) 및 센서(들)를 사용하라는 명령어들을 송신할 수 있다. 작업은 시스템이 작업 현장에서 구현하고 있는 더 큰 프로세스 또는 프로젝트, 예를 들어, 건설 프로젝트의 일부일 수 있다.
실제로, 로보틱 제어 시스템들은 경로 기반 작업들과 같은 상이한 유형들의 작업들을 수행하도록 엔드 이펙터를 프로그래밍할 수 있다. 경로 기반 작업들을 수행하기 위해, 엔드 이펙터는 정의된 궤적(예를 들어, 경로)을 따르도록 프로그래밍될 수 있으며, 경로를 따라 이동하는 동안 다양한 위치들 또는 영역들에서 취해야 할(또는 취하지 않아야 할) 액션들에 대한 명령어들을 제공받는다. 특히, 작업은 정의된 궤적을 따라 상이한 지점들 또는 영역들에서 엔드 이펙터에 의해 수행될 다수의 액션을 포함할 수 있다. 궤적은 사용자(예를 들어, 설계자)에 의해 미리 결정될 수 있거나 제어 시스템에 의해 미리 결정될 수 있다. 또한, 로보틱 디바이스는 한 유형의 작업을 실행할 때 미리 결정된 궤적을 반복적으로 수행하도록 구성 될 수 있다. 예를 들어, 작업은 접착제 어플리케이터를 포함하는 엔드 이펙터가 객체 상에 접착제를 퇴적하는 작업을 수행하는 퇴적 작업일 수 있다. 로보틱 디바이스는 접착제를 객체 상에 퇴적하기 위해 미리 결정된 궤적으로 엔드 이펙터를 이동시킬 수 있다. 일부 예들에서, 로보틱 디바이스는 (예를 들어, 제조 또는 처리 환경에서) 미리 결정된 궤적을 따라 엔드 이펙터를 이동시킴으로써 작업을 반복적으로 수행하도록 구성될 수 있다.
경로 기반 작업의 예는 윤곽들을 갖는 표면 상의 풀(glue), 코크(caulk), 모르타르와 같은 접착제가 표면 위에 퇴적되는 퇴적 작업일 수 있다. 작업을 할당받은 로보틱 디바이스는 접착제를 표면들 상에 공급할 수 있는 엔드 이펙터를 구비할 수 있다. 로보틱 명령어들은 엔드 이펙터를 제어하는 로보틱 암의 이동을 지정할 수 있다. 명령어들은 로보틱 암으로 하여금 엔드 이펙터를 이동시켜 표면 상에 요구되는 패턴으로 접착제를 퇴적하게 할 수 있다. 위에서 설명된 바와 같이, 실제로, 로보틱 디바이스들은 예컨대 제조 프로세스에서 로보틱 암으로 하여금 미리 결정된 궤적을 따라 이동하여 접착제 퇴적 작업을 수행하게 하는 미리 결정된 명령어들을 포함할 수 있다.
일부 경우들에서, 로보틱 디바이스는 더 큰 프로젝트의 일부로서 경로 기반 작업을 수행할 수 있다. 로보틱 디바이스는 설계에 기초하여 생산 제품을 구축하기 위한 프로젝트를 실행하고 있는 시스템의 일부일 수 있다. 생산 제품을 구축하는 프로세스의 일부는 로보틱 디바이스가 경로 기반 작업을 수행하는 것을 수반할 수 있다. 예를 들어, 로보틱 디바이스는 제품이 시스템에 의해 제작되거나 구축된 후 생산 제품의 표면을 페인팅하도록 구성될 수 있다.
그러나, 실제로 행해지고 있는 바와 같이, 도구 경로의 미리 결정된 프로그래밍은 재료 퇴적, 샌딩, 디버링(deburring), 연삭(grinding), 엄격한 공차들을 갖는 삽입, 연마 등과 같은 경로 기반 작업들에 적합하지 않다. 궤적을 미리 정의함으로써 로보틱 디바이스를 프로그래밍하면, 작업이 수행될 때마다 모델이 동일하지 않은 한, 경로 기반 작업들을 수행하는 동안 불일치들이 야기될 수 있다. 불일치들은 "구축된" 물리적 제품이 그것의 공칭 설계로부터 벗어나는 결과를 야기할 수 있다.
본 명세서에는 엔드 이펙터가 대상 객체와 관련하여 작업을 수행할 때 따라야 하는, 엔드 이펙터를 위한 파라메트릭 도구 경로를 생성할 수 있는 방법들 및 시스템들이 개시된다. 구현예에서, 구축-전 위상 동안, 시스템은 엔드 이펙터가 모델에 의해 지정된 결과(즉, 작업 파라미터)를 달성하도록 객체를 조작하게끔 엔드 이펙터를 이동시키는 방법을 결정하기 위해 객체의 모델을 분석할 수 있다. 예를 들어, 객체의 모델은 객체의 표면이 요구되는 마감(finish)을 가짐을 나타낼 수 있다. 다음으로, 시스템은 모델을 분석하여, (ⅰ) 표면의 요구되는 마감을 결정하고, (ⅱ) 엔드 이펙터가 도구 경로를 따라갈 때 표면을 요구되는 마감으로 샌딩할 수 있도록 샌딩 엔드 이펙터에 대한 도구 경로를 생성할 수 있다. 구체적으로, 시스템은 도구 경로를 하나 이상의 파라미터의 함수로 정의할 수 있다. 예를 들어, 파라메트릭 도구 경로는 모델링된 객체의 하나 이상의 피처에 대한 위치(예를 들어, 거리 및/또는 배향)의 함수로서 정의될 수 있다.
다음으로, 시스템이 구축 위상 동안 작업(즉, 런타임)을 수행하도록 스케줄링되고 나면, 시스템은 작업 현장을 나타내는 실시간 센서 데이터를 수신할 수 있고, 그 데이터에 기초하여 작업 현장의 표현을 생성할 수 있다. 다음으로, 시스템은 파라메트릭 도구 경로를 작업 현장의 표현에 맵핑할 수 있다. 파라메트릭 도구 경로를 맵핑하는 것은 (ⅰ) 표현 상에서, 그에 대해 도구 경로가 정의된 피처들을 식별하고, (ⅱ) 그러한 피처들에 대해 도구 경로를 생성하는 것을 포함한다.
다음으로, 시스템은 엔드 이펙터가 경로 기반 작업을 수행하게 하는 명령어들을 생성할 수 있다. 다른 것들 중에서도 특히, 이러한 명령어들은 엔드 이펙터로 하여금 작업 수행 시에 맵핑된 파라메트릭 도구 경로를 따라 이동하게 할 수 있다. 다음으로, 시스템은 로보틱 디바이스가 작업을 수행할 수 있도록 로보틱 디바이스에 명령어들을 송신할 수 있다.
미리 결정된 위치적 명령어들과는 대조적으로, 파라메트릭 도구 경로를 정의함으로써, 시스템은 작업 현장 및/또는 구축된 대상 객체에서 그들 각각의 모델로부터의 임의의 편차들을 처리할 수 있다. 구체적으로, 파라메트릭 도구 경로를 작업 현장의 실시간 표현에 맵핑하면 임의의 편차들이 처리되는데, 왜냐하면 맵핑된 도구 경로는 객체 및/또는 작업 현장의 모델에 의해 나타난 위치들이 아니라 피처들의 실제 위치들에 대해 정의되기 때문이다.
이를 설명하기 위해, 객체의 표면에 접착제를 퇴적하는 작업을 고려한다. 현재의 시스템들은 객체의 모델을 사용하여, 작업 현장에서 표면이 위치될 곳을 결정한다. 다음으로, 이러한 시스템들은 모델이 표면이 위치할 것임을 나타내는 장소에 기초하여 도구 경로를 정의한다. 그러나, 구축된 상태가 모델로부터 벗어나서, 표면의 위치가 모델에 의해 나타난 위치로부터 시프트된 시나리오에서, 도구 경로를 따르는 엔드 이펙터는 표면의 요구되는 영역들 상에 접착제를 퇴적시킬 가능성이 낮다. 이 결과는 도구 경로가 표면의 실제 위치가 아니라, 표면이 위치될 것으로 모델에 의해 나타내어진 곳에 기초하여 정의되었다는 사실에 기인한다.
반대로, 본 명세서에 개시된 시스템에서, 파라메트릭 도구 경로는 표면의 피처들에 대하여 정의될 수 있다. 그러면, 런타임 시에, 시스템은 객체를 스캔할 수 있고, 파라메트릭 도구 경로를 표면의 피처들에 맵핑할 수 있다. 구체적으로, 도구 경로를 맵핑하는 것은 표면의 피처들을 식별하고 도구 경로가 표면의 피처들로부터 정의된 거리에 있도록 도구 경로에 대한 좌표들을 결정하는 것을 포함한다. 따라서, 특정 표면이 더 이상 객체의 모델에 의해 나타난 위치에 있지 않더라도, 파라메트릭 도구 경로는 구축된 대상 객체에 맵핑되었기 때문에, 맵핑된 파라메트릭 도구 경로를 따르는 엔드 이펙터는 특정 표면에 접착제를 퇴적할 것이다. 따라서, 본 명세서에 개시된 시스템은 작업 현장 또는 객체의 그들 각각의 모델들로부터의 임의의 편차들 또는 변화들에 대해 온-더-플라이 방식으로 조절할 수 있다. 온-더-플라이 방식으로 조절하는 능력은 시스템이 상당한 지연 없이 작업을 수행하는 것을 허용하는데, 왜냐하면 시스템이 모델을 업데이트하지 않아도 되고, 모델로부터의 편차들 또는 변경들을 검출한 것에 응답하여 새로운 작업 명령어들을 생성할 필요가 없기 때문이다.
Ⅱ. 예시적인 로보틱 시스템
도 1은 본 명세서에 설명된 실시예들과 관련하여 사용될 수 있는 로보틱 제어 시스템(100)의 예시적인 구성을 도시한다. 로보틱 제어 시스템(100)은 자율적으로, 반자율적으로, 및/또는 사용자(들)에 의해 제공된 지시들을 사용하여 동작하도록 구성될 수 있다. 로보틱 제어 시스템(100)은 건설 현장, 생산 현장, 제조 현장, 검사 또는 품질 관리 현장 등과 같은 작업 현장의 관리를 책임질 수 있다. 예를 들어, 건설 또는 제조 작업 현장에서, 로보틱 제어 시스템(100)은 제품(또는 상호교환가능하게 "생산 제품"이라고도 지칭됨)의 건설 또는 제조를 조정할 책임이 있을 수 있다. 특히, 이러한 로보틱 제어 시스템은 제품을 건설하도록 하나 이상의 로보틱 디바이스를 제어할 수 있고, 또한 하나 이상의 센서를 사용하여 환경을 모니터링할 수 있다.
도 1에 도시된 바와 같이, 로보틱 디바이스 제어 시스템(100)은 엔드 이펙터(120)를 제어하도록 구성된 로보틱 디바이스(110)를 포함한다. 엔드 이펙터(120)는 작업 표면(예를 들어, 생산 제품의 표면) 상에서 작업을 수행하도록 구성된 도구 엔드 이펙터일 수 있고, 로보틱 디바이스(110)의 로보틱 암과 같은 이동가능한 컴포넌트에 장착될 수 있다. 로보틱 디바이스(110)는 작업 현장[예를 들어, 도 3에 도시된 생산 현장(302)] 내에 위치될 수 있다.
일례에 따르면, 작업 현장은 로보틱 디바이스들이 제품(예를 들어, 테이블, 비행기 날개 등)을 조립하기 위해 조립 라인에 부품들을 설치하는 공장 플로어일 수 있다. 추가 예에 따르면, 작업 현장은 조립 라인이 아니라, 로보틱 디바이스들이 다양한 부품들을 결합하여 물리적 구조물을 건설하는 작업 현장일 수 있다. 이러한 예들에서, 작업 현장은 임시 위치일 수 있고, 최종 물리적 구조물은 완전히 구축된 때 그 위치로부터 (예를 들어, 제품으로서) 다른 위치(예를 들어, 유통업자 또는 고객 위치)로 배송될 수 있다.
또 다른 예에 따르면, 작업 현장은 로보틱 디바이스들이 무거운 건설 자재들로 작업하여 교량 또는 도로를 건설하는 도시 현장일 수 있다. 추가 예에 따르면, 작업 현장은 로보틱 디바이스들이 건설 자재들로 작업하여 주택 또는 건물을 건설하는 건설 현장일 수 있다. 작업 현장은 또한 로보틱 디바이스들이 주택의 한 섹션을 건설하기 위해 하우징 자재들을 설치하는 주택의 내부일 수 있다. 이러한 예들에서, 최종 물리적 구조물은 작업 현장에 설치된다. 또 다른 예에 따르면, 예를 들어, 작업 현장은 로보틱 디바이스들이 제품들을 스캔하여, 제품들이 지정된 표준들을 충족하는지 결정하는 품질 또는 검사 제어 현장일 수 있다.
로보틱 제어 시스템(100)은 작업 현장을 나타내는 환경 데이터를 제공하도록 구성된 로컬 센서(들)(130) 및 글로벌 센서(들)(140)를 더 포함할 수 있다. 예를 들어, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)는 예를 들어 시스템에 의해 구축되고 있는 제품과 같은 작업 현장 내의 다양한 객체들의 위치를 결정할 수 있다. 다른 예로서, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)는 로보틱 제어 시스템(100)이 작업 현장의 "월드 맵"을 생성하기 위해 사용할 수 있는 데이터를 로보틱 제어 시스템(100)에 제공할 수 있다. 월드 맵은 작업 현장의 실시간 또는 거의 실시간 표현을 나타낼 수 있다. 따라서, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)는 로보틱 제어 시스템(100)이 월드 맵을 연속적으로 또는 주기적으로 업데이트할 수 있도록 데이터를 로보틱 제어 시스템(100)에 제공할 수 있다. 로보틱 제어 시스템(100)은 또한 센서 데이터 및/또는 월드 맵을 사용하여 작업 현장에서의 작업의 수행을 추적할 수 있다. 구체적으로, 로보틱 제어 시스템(100)은 작업에 참여하는 임의의 로보틱 디바이스, 작업을 수행하는 데 사용된 임의의 재료들, 및 작업을 수행한 결과로서의 구축된 제품에 대한 임의의 변경들을 추적할 수 있다.
추가적으로, 로컬 센서(들)(130)는 로보틱 디바이스(110) 상에 또는 로보틱 디바이스 내에 배열될 수 있고, 작업 표면(예를 들어, 구축 중인 제품의 표면)에 대한 엔드 이펙터(120)의 위치를 측정하도록 구성될 수 있다. 로컬 센서(들)(130)는 또한 작업 표면의 피처들을 스캔하거나 캡처하도록 구성될 수 있다. 한편, 글로벌 센서(들)(140)는 작업 현장 내에 배열될 수 있고, 생산 현장의 좌표계에 대한 생산 제품의 위치를 측정하도록 구성될 수 있다. 글로벌 센서(들)(140)는 또한 좌표계 또는 다른 객체(예를 들어, 로보틱 디바이스의 베이스의 위치)에 대한 엔드 이펙터(120)의 위치를 측정하도록 구성될 수 있다. 또한, 글로벌 센서(들)는 로보틱 디바이스(110)의 위치를 측정하도록 구성될 수도 있다.
실시예에서, 글로벌 센서(들)(140)는 매우 높은 해상도(예를 들어, 수백 분의 1 밀리미터)를 갖는 레이저 트래커 시스템을 포함할 수 있다. 레이저 트래커 시스템은 작업 현장에서 객체들의 위치를 결정하는 데 사용될 수 있다. 그러나, 글로벌 센서(들)(140)는 레이저 트래커 시스템들로 제한되는 것이 아니라, 다른 것들 중에서도 특히, 모션 캡처 센서들, 스캐너들, 광 검출 및 레인지(light detection and range)(LIDAR) 센서들, 포인트 클라우드 센서들, 초음파 레인지 센서들, 전지구적 측위 시스템(Global Positioning System)(GPS) 수신기들, 소나, 광학 센서들, 무선 주파수 식별(Radio Frequency identification)(RFID) 시스템, 근거리 통신(Near Field Communication)(NFC) 칩들, 무선 센서들, 라디오 센서들, 레이더들, 카메라들(예를 들어, 컬러 카메라, 흑백 카메라, 및/또는 적외선 카메라), 및/또는 레인지 센서들(예를 들어, 초음파 및/또는 적외선)과 같이, 작업 현장에 위치된 객체들의 피처들을 캡쳐할 수 있는 임의의 센서를 포함할 수 있다.
로컬 센서(들)(130)는 광학 흐름 데이터를 제공하기 위한 고속 카메라 또는 관성 측정 유닛(IMU)을 포함할 수 있다. 그러나, 로컬 센서(들)(130)는 고속 카메라들 또는 IMU들에 제한되는 것이 아니라, 작업 표면에 대하여 엔드 이펙터(120)의 위치를 측정하거나, 작업 표면의 피처들을 캡쳐할 수 있는 임의의 센서를 포함할 수 있다. 이러한 센서들은 다른 것들 중에서도 특히, 힘 센서들, 근접 센서들, 모션 센서들(예를 들어, 자이로스코프들 및/또는 가속도계들), 하중 센서들, 위치 센서들, 열 화상 센서들, 깊이 센서들(예를 들어, RGB-D, 레이저, 구조화된 광 및/또는 비행 시간 카메라), 초음파 레인지 센서들, 적외선 센서들, 광학 센서들, 무선 주파수 식별(RFID) 시스템들, 근거리 통신(NFC) 칩들, 무선 센서들, 광 센서들, 터치 센서들(예를 들어, 용량성 센서들), 스캐너들, 카메라들(예를 들어, 컬러 카메라들, 흑백 카메라들 및/또는 적외선 카메라들) 및/또는 레인지 센서들(예를 들어, 초음파 및/또는 적외선)을 포함한다. 일부 실시예들에서, 작업 표면에 대한 엔드 이펙터(120)의 위치는 휠 주행거리 측정 및/또는 로봇 포워드 운동학을 사용하여 결정될 수 있다.
추가적으로, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)는 다른 가능한 위치들 중에서도 작업 현장의 내부 또는 근처에 위치될 수 있다. 예를 들어, 로컬 센서(들)(130)는 로보틱 디바이스(110)에 부착될 수 있다. 일부 실시예들에서, 글로벌 센서(들)(140)는 예를 들어 전용 감지 설비로서 작업 현장에 걸쳐 고정된 위치들에 배열될 수 있다. 또한, 예시적인 구현예는 또한 이동 전화기들, 랩탑들 및/또는 태블릿들과 같은 기존 디바이스들 내에 통합된 센서들을 사용할 수 있다. 이러한 디바이스들은 생산 현장에 위치해 있는 작업자들, 예를 들어 건설 현장의 건설 작업자들의 소유물일 수 있다.
도 1은 또한 로컬 센서(들)(130) 및 글로벌 센서(들)(140)로부터 데이터를 수신할 수 있는 컨트롤러(150)를 도시한다. 특히, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)는 통신 유닛(160)을 통해 센서 데이터를 컨트롤러(150)에 제공할 수 있다. 통신 유닛(160)은 유선 링크들 및/또는 무선 링크들(예를 들어, 다양한 무선 송신기들 및 수신기들을 사용함)을 포함할 수 있다. 유선 링크는 예를 들어 병렬 버스, 또는 USB(Universal Serial Bus)와 같은 직렬 버스를 포함할 수 있다. 무선 링크는 다른 가능한 것들 중에서도, 예를 들어 블루투스, IEEE 802.11(IEEE 802.11은 IEEE 802.11-2007, IEEE 802.11n-2009 또는 임의의 다른 IEEE 802.11 개정을 지칭할 수 있음), 셀룰러(예컨대, GSM, GPRS, CDMA, UMTS, EV-DO, WiMAX, HSPDA 또는 LTE) 또는 Zigbee를 포함할 수 있다. 또한, 셀룰러 통신 프로토콜(예를 들어, CDMA, GSM 또는 WiMAX뿐만 아니라 802.11을 사용한 "WiFi" 접속)을 사용하는 "3G" 또는 "4G" 데이터 접속과 같은 다수의 유선 및/또는 무선 프로토콜이 사용될 수 있다.
다른 예들에서, 로보틱 제어 시스템(100)은 액세스 포인트를 포함할 수 있고, 로컬 센서(들)(130) 및 글로벌 센서(들)(140) 및/또는 컨트롤러(150)는 그를 통해 클라우드 서버와 통신할 수 있다. 액세스 포인트들은 무선 액세스 포인트(WAP) 또는 무선 라우터의 형태와 같은 다양한 형태들을 취할 수 있다. 또한, CDMA 또는 GSM 프로토콜과 같은 셀룰러 에어 인터페이스 프로토콜을 사용하여 접속이 이루어지면, 액세스 포인트는 셀룰러 네트워크를 통해 인터넷 접속을 제공하는 셀룰러 네트워크의 기지국일 수 있다. 다른 예들도 가능하다.
컨트롤러(150)는 하나 이상의 프로세서(들)(152), 데이터 저장소(154), 프로그램 명령어들(156), 입력/출력 유닛(158), 및 전력 소스(162)를 포함하는 것으로 도시되어 있다. 본 개시내용의 범위를 벗어나지 않고서, 컨트롤러(150)는 추가적인 컴포넌트들을 포함할 수 있고/있거나 하나 이상의 컴포넌트를 제거할 수 있으므로, 컨트롤러(150)는 예시의 목적으로만 보여진다는 점에 유의해야 한다. 또한, 컨트롤러(150)의 다양한 컴포넌트들은 임의의 방식으로 배열되고 접속될 수 있음에 유의해야 한다. 컨트롤러(150)는 로보틱 디바이스(110)에 전체적으로 또는 부분적으로 통합될 수 있고, 또는 다른 가능한 것들 중에서도 데스크탑 컴퓨터, 랩탑, 태블릿, 웨어러블 컴퓨팅 디바이스, 및/또는 이동 전화기의 형태를 취할 수 있다.
하나 이상의 프로세서(들)(152)로부터의 각각의 프로세서는 범용 프로세서 또는 특수 목적 프로세서(예를 들어, 디지털 신호 프로세서들, 주문형 집적 회로들 등)일 수 있다. 프로세서(들)(152)는 데이터 저장소(154)에 저장되고 본 명세서에 설명된 컨트롤러(150)의 기능을 제공하도록 실행가능한 컴퓨터 판독가능한 프로그램 명령어들(156)을 실행하도록 구성될 수 있다. 예를 들어, 프로그램 명령어들(156)은 로컬 센서(들)(130) 및 글로벌 센서(들)(140)로부터 수신된 센서 데이터의 처리를 제공하도록 실행가능할 수 있다.
데이터 저장소(154)는 프로세서(들)(152)에 의해 판독되거나 액세스될 수 있는 하나 이상의 컴퓨터 판독가능한 저장 매체의 형태를 취하거나 그것을 포함할 수 있다. 하나 이상의 컴퓨터 판독가능한 저장 매체는 프로세서(들)(152)와 전체적으로 또는 부분적으로 통합될 수 있는 광학, 자기, 유기, 또는 다른 메모리 또는 디스크 저장소와 같은 휘발성 및/또는 비-휘발성 저장 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 데이터 저장소(154)는 단일 물리적 디바이스(예를 들어, 하나의 광학, 자기, 유기 또는 다른 메모리 또는 디스크 저장 유닛)를 사용하여 구현될 수 있는 한편, 다른 실시예들에서, 데이터 저장소(154)는 둘 이상의 물리적 디바이스를 사용하여 구현될 수 있다. 또한, 컴퓨터 판독가능한 프로그램 명령어들(156)에 더하여, 데이터 저장소(154)는 다른 가능한 것들 중에서도 진단 데이터와 같은 추가 데이터를 포함할 수 있다. 또한, 컨트롤러(150)는 컨트롤러(150)의 다양한 컴포넌트들에 전력을 공급하도록 구성된 전력 소스(162)를 또한 포함할 수 있다. 배터리로부터의 직류 또는 전기 본선으로부터의 교류와 같은 임의의 유형의 전력 소스가 사용될 수 있다.
데이터 저장소(154)는 또한 로보틱 제어 시스템(100)에 의해 구축되거나 조립될 수 있는 생산 제품들의 설계들(본 명세서에서는 모델들로도 지칭됨)(164)을 포함할 수 있다. 설계들(164)은 2차원(2D) 및/또는 3차원(3D) CAD(computer-aided design)일 수 있다. 또한, 설계들(164)은 데이터 저장소(154)에 저장된 컴퓨터 판독가능한 프로그램 명령어들로서 구현될 수 있다. 또한, 설계들(164)은 로보틱 디바이스(110)가 조작 및/또는 상호작용할 수 있는 객체들의 설계들일 수 있다. 건설 자재들(예를 들어, 벽돌, 타일 등)과 같은 이러한 객체들은 작업 현장에 위치될 수 있고, 로보틱 디바이스(110)에 의해 생산 제품을 건설하는 데 사용될 수 있다.
설계들(164)은 또한 생산 제품의 물리적 구조들이 구성될 방법, 및 그것이 로보틱 디바이스(110)에 의해 일단 구성되고 난 후 수행될 방법을 나타낼 수 있다. 그러한 것으로서, 아래에 설명되는 바와 같이, 컨트롤러(150)는 로보틱 디바이스(110)에 대한 명령어들을 생성하기 위한 가이드로서 설계들(164)을 사용할 수 있다. 명령어들은 생산 제품의 일부 또는 전부를 건설하기 위해 로보틱 디바이스(110)에 의해 수행될 수 있는 특정 로보틱 액션들을 나타낼 수 있다.
설계들(164)은 또한 생산 제품의 속성들의 세트를 나타낼 수 있다. 예를 들어, 속성들의 세트는 다른 속성들 중에서도 컬러, 마킹, 시각적 패턴 및 표면 마감/텍스처와 같은 심미적 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 굽힘 강도, 취성(brittleness), 벌크 모듈러스, 마찰 계수, 압축 강도, 크리프(creep), 탄성, 피로 강도, 가요성, 파괴 인성(fracture toughness), 경도, 가소성, 탄력성, 전단 강도(shear strength), 강성(stiffness), 응력/변형 속성들, 표면 거칠기, 인장 강도, 인성(toughness), 점도(viscosity), 항복 강도, 및 중량과 같은 기계적 속성들을 나타낼 수 있다. 추가적으로 및/또는 대안적으로, 속성들의 세트는 형상, 크기, 배향, 각도 등과 같은 기하학적 속성들을 나타낼 수 있다.
추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 커패시턴스, 전도도, 밀도, 유전 강도, 전계 특성, 인덕턴스, 유전율 및 저항과 같은 전기적 및/또는 자기적 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 내식성, 가연성, pH, 반응성, 안정성, 표면 에너지/인장 및 독성과 같은 화학적 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 기술들 중에서도 코팅, 절단, 드릴링, 형성 및 성형 프로세스들, 열 처리, 접합, 기계 가공, 롤링, 샌딩 및 용접을 위한 제조 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 흡광도(absorbance), 형광, 감광성, 반사율, 굴절률, 산란 및 투과율과 같은 광학 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 비점, 임계점, 방사율, 융점, 비열, 열전도도, 열 확산율 및 열 팽창과 같은 열적 속성들을 나타낼 수 있다.
도 1은 입력/출력 유닛(158)을 포함하는 컨트롤러(150)를 추가로 도시한다. 입력/출력 유닛(158)은 디스플레이를 통해 사용자에게 정보를 출력할 수 있다. 디스플레이는 임의의 형태를 취할 수 있고, 이미지 및/또는 그래픽을 컨트롤러(150)의 사용자에게 투영하도록 배열될 수 있다. 예시적인 배열에서, 입력/출력 유닛(158) 내의 프로젝터는 이미지들 및/또는 그래픽들의 다양한 투영들을 디스플레이의 표면 상에 투영하도록 구성될 수 있다. 디스플레이는 전계발광 디스플레이 또는 액정 디스플레이와 같은 불투명 또는 투명(또는 반투명) 매트릭스 디스플레이, 이미지를 사용자의 눈에 전달하기 위한 하나 이상의 도파관, 또는 이미지를 사용자에게 전달할 수 있는 다른 광학 요소를 포함할 수 있다. 이러한 매트릭스 디스플레이를 구동하기 위해, 대응하는 디스플레이 드라이버가 컨트롤러(150) 내에 배치될 수 있다. 디스플레이를 위한 다른 배열들도 가능할 수 있다. 그러한 것으로서, 디스플레이는 애플리케이션을 제공할 수 있는 그래픽 인터페이스를 보여줄 수 있고, 사용자는 그를 통해 본 명세서에 개시된 시스템들과 상호작용할 수 있다.
또한, 로보틱 제어 시스템(100)은 입력/출력 유닛(158)의 디스플레이 상에 월드 맵을 디스플레이할 수 있다. 따라서, 입력/출력 유닛(158)은 구축된 제품을 포함하여, 작업 현장의 실시간 또는 거의 실시간 표현을 디스플레이할 수 있다. 따라서, 사용자는 생산 제품의 구축 또는 조립의 진행을 모니터링할 수 있다. 작업 현장을 나타내는 실시간 피드백 데이터[예를 들어, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)로부터의 데이터]에 기초하여, 디스플레이된 월드 맵은 작업 현장에서의 실시간 변화들을 반영하도록 업데이트될 수 있다.
입력/출력 유닛(158)은 또한 작업 컨트롤들을 포함할 수 있다. 작업 컨트롤들은 사용자에게 작업 실행의 실시간 컨트롤을 제공할 수 있다. 예를 들어, 사용자는 작업을 시작, 중지, 건너뛰기 또는 수정할 수 있는 입력을 제공할 수 있다. 예를 들어, 디스플레이 상에 디스플레이되는 그래픽 인터페이스는 로보틱 제어 시스템(100)이 수행할 작업들의 작업 큐를 포함할 수 있다. 그래픽 인터페이스는 사용자가 작업을 시작, 중지, 건너뛰기 또는 수정하는 것을 허용할 수 있다. 일부 구현예들에서, 그래픽 인터페이스는 사용자가 생산 제품에 관련된 파라미터들을 입력하는 것을 허용할 수 있다. 그래픽 인터페이스는 사용자가 치수들, 밀도, 곡률 속성들, 다른 기하학적 속성들, 사용될 재료들 및/또는 다른 숫자 입력들을 포함하여 생산 제품의 양태들에 관련될 수 있는 파라미터를 입력하는 것을 허용할 수 있다.
추가 예들에서, 그래픽 인터페이스는 생산 제품을 구축하는 타임라인을 포함할 수 있다. 타임라인은 생산 제품을 구축하는 프로세스의 특정 시점을 표현할 수 있는 현재 타임스탬프를 표현하는 커서를 가질 수 있다. 추가적으로, 타임라인은 프로세스를 특정 속도로 재생하거나, 프로세스를 빨리 감거나 되감는 버튼들을 포함할 수 있다. 타임라인은 작업 현장의 기하형태 및/또는 다른 양태들이 디스플레이 내에 디스플레이되는 시점을 제어하기 위해 사용될 수 있다. 또한, 타임라인은 생산 제품을 시뮬레이션하거나 작업 현장 내에서 발생하는 실제 물리적 구축 프로세스를 소프트웨어 내에서 시각화할 목적으로 특정 시점을 나타내는 데에 사용될 수 있다. 또한, 사용자는 그래픽 인터페이스를 통해 생산 제품의 설계를 수정할 수 있다.
일부 예들에서, 디스플레이는 사용자에게 작업 현장의 복수의 3D 뷰를 제공할 수 있고, 사용자가 특정 뷰의 배향 및/또는 줌을 변경하는 것을 허용할 수 있다. 다른 예들에서, 디스플레이는 수치 표현과 같은 작업 현장의 다른 유형의 표현들을 함께 또는 대신에 제시할 수 있다. 추가 예들에서, 사용자들은 3차원(3D) 모델링 그래픽 인터페이스를 제공받을 수 있으며, 이는 사용자가 작업 현장에서의 구축 프로세스에 영향을 미치는, 작업 현장 및/또는 요구되는 생산 제품을 설명하는 하나 이상의 변수를 변경하는 것을 허용한다.
추가 예들에서, 그래픽 인터페이스는 런타임 동안 프로세스의 양태들을 설명하는 파라미터들을 포함할 수 있다. 특히, 로보틱 디바이스(110)의 위치, 로보틱 디바이스(110)에 의해 현재 사용되고 있는 물리적 도구, 및/또는 로보틱 디바이스(110)가 작업 현장에서 현재 동작하고 있는 축들과 같은 로보틱 디바이스(110)의 특성들을 설명하는 로봇 파라미터들이 디스플레이될 수 있다. 추가적으로, 엔드 이펙터(120)의 동작 특성들을 설명하는 도구 파라미터들이 디스플레이될 수 있다. 예를 들어, 스핀들에 공급되는 전력의 양 또는 그리퍼와 함께 사용되는 힘의 양은 예시적인 그래픽 인터페이스 내에 디스플레이될 수 있다. 추가적으로, 그래픽 인터페이스는 센서 데이터를 디스플레이할 수 있다. 그래픽 인터페이스는 또한 작업들의 실행의 순서 및/또는 속도와 관련된 컨트롤들을 포함할 수 있다. 또한, 그래픽 인터페이스는 로봇 위치들 및 진단들과 같은 로봇 행위자들에 관련된 컨트롤들을 포함할 수 있다. 추가적으로, 그래픽 인터페이스는 생산 제품의 상이한 속성들의 컨트롤을 허용할 수 있다. 그래픽 인터페이스 내에서, 런타임 동안 실행되는 하나 이상의 작업을 조작하기 위한 컨트롤들이 제공될 수 있다. 예를 들어, 사용자는 계획된 작업을 실시간 또는 거의 실시간으로 변경함으로써 구축 프로세스를 수정하기 위해 터치 입력을 사용하여 그래픽과 상호작용할 수 있다.
일부 예들에서, 그래픽 인터페이스는 작업 현장 내에서 특정 디바이스를 선택하기 위해 디바이스 컨트롤을 포함할 수 있다. 예를 들어, 그래픽 인터페이스는 작업 현장 내의 로봇 행위자들을 디스플레이할 수 있으며, 특정 로보틱 디바이스의 선택을 허용할 수 있다. 추가적으로, 그래픽 인터페이스는 로보틱 디바이스들의 현재 위치를 설명하는 위치 정보와 같은 로봇 파라미터들을 포함할 수 있다. 일부 예들에서, 위치는 직교 좌표로서, 로봇 축 값으로서 또는 둘 다로서 디스플레이될 수 있다. 추가 예들에서, 위치 정보는 로봇 행위자의 엔드 이펙터 또는 로봇의 엔드 이펙터에 장착된 물리적 도구의 위치를 반영할 수 있다.
추가적으로, 입력/출력 유닛(158)은 [예를 들어, 컨트롤러(150)의 사용자로부터] 사용자 입력을 수신할 수 있다. 특히, 입력/출력 유닛(158)은 다른 가능한 상호작용들 중에서도, 스크롤링, 텍스트 제공 및/또는 애플리케이션의 다양한 피처들의 선택과 같은 그래픽 인터페이스와의 상호작용을 허용할 수 있다. 입력/출력 유닛(158)은 다양한 형태들을 취할 수 있다. 일례에서, 입력/출력 유닛(158)은 그래픽 인터페이스의 컨트롤에 사용되는 컴퓨팅 마우스와 같은 포인팅 디바이스를 포함할 수 있다. 그러나, 입력/출력 유닛(158)이 터치 스크린 디스플레이를 포함하는 경우, 그래픽 인터페이스의 컨트롤을 허용하는 터치 입력이 수신될 수 있다(예를 들어, 손가락 또는 스타일러스를 사용하는 것). 다른 예에서, 입력/출력 유닛(158)은 그래픽 인터페이스를 통해 디스플레이될 숫자, 문자 및/또는 심볼의 선택을 제공하는 키보드를 포함할 수 있다. 예를 들어, 입력/출력 유닛(158)이 터치 스크린 디스플레이를 포함하는 배열에서, 디스플레이의 일부분들은 키보드를 보여줄 수 있다. 따라서, 키보드를 포함하는 디스플레이 부분 상의 터치 입력은 디스플레이를 통해 그래픽 인터페이스 상에 보여질 특정 숫자들, 문자들 및/또는 심볼들의 선택과 같은 사용자 입력을 야기할 수 있다. 또 다른 예에서, 입력/출력 유닛(158)은 예컨대 마이크로폰을 통해 사용자로부터 오디오 입력을 수신한 다음, 다양한 음성 인식 기술들 중 하나를 사용하여 디스플레이를 통해 보여질 수 있는 하나 이상의 문자로 해석할 수 있는 음성 입력 디바이스를 포함할 수 있다. 다른 예들이 또한 가능할 수 있다.
Ⅲ. 예시적인 로보틱 디바이스
도 2는 예시적인 실시예에 따른 로보틱 디바이스(200)를 도시한다. 로보틱 디바이스(200)는 도 1에 도시된 로보틱 디바이스(110)의 양태들을 포함할 수 있다. 도 2에 도시된 바와 같이, 로보틱 디바이스(200)는 엔드 이펙터(204)를 구비한 로보틱 암(202)을 포함할 수 있다. 엔드 이펙터(204)는 하나 이상의 다른 도구, 그리퍼 또는 가이드를 구비할 수 있다. 로보틱 암(202)은 하나 이상의 자유도를 따라 이동할 수 있다. 예를 들어, 로보틱 암(202)은 도 2에서 A1-A6으로 도시된 6개의 자유도를 따라 이동할 수 있다. 특정한 예들에서, 로보틱 디바이스(200)는 하나 이상의 축(A0)을 따라, 예컨대 좌우 이동을 허용하는 레일(도시되지 않음)을 따라 이동할 수 있다.
특정 실시예들에서, 로보틱 암(202)을 특정 위치에 위치시키기 위해 로보틱 디바이스(200)에 명령어들이 제공될 수 있다. 본 명세서에 설명된 바와 같이, A1-A6을 따른 로보틱 암(202)의 위치들, 및/또는 하나 이상의 축 A0을 따른 로보틱 디바이스(200)의 위치들은 관련된 컨트롤러의 프로세스에 의해 계산될 수 있다. 대안적인 실시예들에서, 로보틱 디바이스(200) 및/또는 로보틱 암(202)의 위치 제어는 별개의 개별 세팅들 및 제어 커맨드들을 요구할 수 있다. 일부 예들에서는 더 적은 자유도로 동작하는 로보틱 디바이스들이 함께 또는 대신하여 사용될 수 있다.
로보틱 디바이스(200)는 또한 엔드 이펙터들을 상호교환할 수 있다. 엔드 이펙터들을 상호교환하기 위해, 로보틱 디바이스(200)는 로보틱 디바이스(200) 상에 또는 그 근처에 보관될 수 있는 복수의 엔드 이펙터에 액세스할 수 있다. 복수의 엔드 이펙터는 도구, 그리퍼, 센서 및 가이드 엔드 이펙터와 같이, 상이한 유형들의 엔드 이펙터들을 포함할 수 있다. 그러한 것으로서, 엔드 이펙터들을 상호교환하는 능력을 갖는 로보틱 디바이스(200)는 상이한 유형의 엔드 이펙터들을 요구하는 상이한 작업들을 할당받을 수 있다. 로보틱 디바이스(200)가 할당받은 작업은 로보틱 디바이스(200)가 선택하는 엔드 이펙터를 결정할 수 있다.
예들에서, 로보틱 디바이스(200)는 생산 제품을 조립 또는 건설하기 위한 작업을 수행하는 데 사용될 수 있다. 일반적으로, 작업은 로보틱 디바이스(200)가 엔드 이펙터를 사용하여 객체(본 명세서에서 대상 객체라고도 지칭됨)와 상호작용하거나 그것을 조작하는 것을 수반할 수 있다. 작업을 수행하기 위해, 로보틱 디바이스는 객체와 상호작용하거나 객체를 조작하기 위해 경로를 따라 엔드 이펙터를 이동시킬 수 있다.
위에서 논의된 바와 같이, 일반적으로 존재하는 로보틱 제어 시스템들은 엔드 이펙터가 미리 결정된 궤적을 따르게 한다(예를 들어, 생산 라인 내의 각각의 객체 상에 동일한 패턴으로 접착제를 반복적으로 퇴적하는 생산 라인의 접착제 퇴적기). 전형적으로, 그러한 로보틱 제어 시스템들은 생산 제품의 모델을 분석한 다음, 생산 제품의 모델에 기초하여 엔드 이펙터에 대한 미리 결정된 도구 경로를 생성한다.
그러나, 위에서 논의된 바와 같이, 구축된 제품은 생산 제품의 모델로부터 벗어날 수 있다. 따라서, 엔드 이펙터가 구축된 제품과 상호작용하는 작업을 수행할 때 미리 결정된 도구 경로를 따르는 경우, 대상 객체의 조작 결과도 제품의 모델로부터 벗어날 수 있다. 그러한 것으로서, 미리 결정된 도구 경로를 따라 작업을 수행하면, 구축된 제품에 변형/오류가 도입될 수 있다. 변형/오류 자체가 경미한 것처럼 보일 수 있더라도, 변형들/오류들의 증가는 생산 프로세스가 모델에 의해 정의된 최종 제품을 생산하지 못하게 할 수 있다. 이러한 문제를 극복하는 데에 도움을 주기 위해, 본 명세서에서는 작업에 대한 엔드 이펙터의 성능이 생산 제품의 모델을 만족시키도록 엔드 이펙터를 위한 도구 경로를 생성하기 위한 다양한 구현들이 개시된다.
Ⅳ. 예시적인 시스템 및 방법
도 3은 예시적인 실시예에 따라, 로보틱 디바이스(200)가 위치된 생산 현장(302)을 도시한다. 구체적으로, 로보틱 디바이스(200)의 컨트롤러(308)(예를 들어, 로보틱 제어 시스템의 컨트롤러)는 작업 현장에서 새로운 객체를 구축하거나 기존 객체와 상호작용하라는 명령어를 수신할 수 있다. 예를 들어, 컨트롤러(308)는 작업 현장에서 기존 객체를 수정하라는 명령어를 수신할 수 있다. 도 3에 도시된 바와 같이, 컨트롤러(308)는 로보틱 디바이스(200)를 동작시킬 수 있고, 로보틱 디바이스(200)가 아마도 새로운 객체를 구축하거나 기존 객체를 수정하기 위해, 생산 현장(302) 내에 또는 근처에 위치한 물리적 객체들과 상호작용하거나 그것들을 조작하게 할 수 있다. 도 3은 구축된 제품(306)을 추가적으로 예시한다. 구축된 제품은 로보틱 디바이스(200)에 의해 구축되고 있는 생산 제품의 구축된 부분일 수 있다. 예들에서, 생산 제품을 구축하는 프로세스는 설계 위상(즉, 구축-전 위상) 및 구축 위상을 수반할 수 있다.
실시예에서, 설계 위상 동안, 컨트롤러(308)는 로보틱 디바이스(200)가 구축 및/또는 조작하고 있는 객체(본 명세서에서 생산 제품이라고도 지칭됨)의 모델을 결정할 수 있다. 특히, 컨트롤러(308)는 생산 제품의 파라메트릭 설계[예를 들어, 설계(156)]를 결정할 수 있고, 생산 제품을 구축 및/또는 조작하는 방법을 결정하기 위해 설계를 분석할 수 있다. 파라메트릭 설계는 생산 제품의 재료들을 나타내며 생산 제품을 파라미터들에 관련하여 정의하기 때문에, 컨트롤러(308)는 파라메트릭 모델에 기초하여 생산 제품을 구성하는 방법을 결정할 수 있다. 생산 제품을 건설하는 것은 생산 제품을 구축하는 것(즉, 기능적 피처들에 의해 정의됨), 및 생산 제품의 비-기능적인 것(예를 들어, 심미적 피처들)을 달성하도록 구축된 생산 제품을 수정하는 것을 포함한다. 구체적으로, 생산 제품은 적어도 하나의 재료로 각각 만들어진 하나 이상의 물리적 조각을 포함할 수 있다. 그리고, 이러한 조각(들)은 예컨대 하나 이상의 도구에 의해 요구되는 제품으로 절단, 합체, 및/또는 성형함으로써 생산 제품을 생산하기 위해 작업될 수 있다. 예로서, 생산 제품은 다른 가능한 것들 중에서도 합체되고/되거나 각각 성형될 수 있는 금속 조각 및 나무 조각을 포함할 수 있다.
실시예에서, 파라메트릭 모델은 생산 제품의 다양한 피처들을 표현할 수 있다. 일반적으로, 각각의 그러한 피처는 제품의 고유한 속성 또는 양태일 수 있다. 예로서, 제품의 피처는 다른 가능한 것들 중에서도 테이블의 표면, 테이블의 다리, 및/또는 테이블의 표면에 형성된 컵 홀더일 수 있다. 또한, 제품의 각각의 피처는 또한 하나 이상의 파라미터에 의해 각각 정의될 수 있다. 특히, 파라미터는 제품의 피처 및/또는 제품 동작의 조건들을 정의하는 데 도움이 되는 임의의 수치적 또는 기타 측정가능한 인자일 수 있다. 또한, 각각의 파라미터는 각각의 피처가 생산되어야 하는 방식을 명시적으로 정의하는 각각의 값을 가질 수 있다. 예를 들어, 테이블의 다리는 길이의 파라미터에 의해 정의될 수 있고, 그 길이는 테이블의 다리의 길이 및/또는 다리가 가져야 하는 길이를 명시적으로 정의하는 값[예를 들어, 5 미터(5m)]을 가질 수 있다. 그러한 것으로서, 제품의 모델은 하나 이상의 피처에 대한 하나 이상의 파라미터는 물론, 각각의 그러한 파라미터에 대한 각각의 값을 지정할 수 있으며, 그러면 제품은 그러한 사양들에 따라 생산된다.
추가적으로, 모델의 피처들 간의 관계는 하나 이상의 파라미터 및/또는 알고리즘에 의해 정의될 수 있다. 예를 들어, 두 개의 요소 사이의 관계는 길이의 파라미터에 의해 정의될 수 있고, 그 길이는 값[예를 들어, 5 미터(5m)]을 가질 수 있다. 그러한 것으로서, 제품의 모델은 피처들 간의 관계를 정의하는 하나 이상의 파라미터는 물론, 각각의 그러한 파라미터에 대한 각각의 값을 지정할 수 있으며, 그러면 제품은 그러한 사양들에 따라 생산된다.
실제로, 다양한 파라미터들은 제품에 대한 모델에서 실현가능하게 지정될 수 있고/있거나, 다르게는 제품이 생산되거나 생산 중일 때 제품에 의해 나타날 수 있다. 본 명세서에서는 일부 파라미터들이 예로서 논의되지만, 본 개시내용의 범위를 벗어나지 않으면서 다른 파라미터들도 역시 가능하다는 것을 이해해야 한다. 예를 들어, 다른 파라미터들은 다른 것들 중에서도, 현재 알려져 있고/거나 장래에 개발되는 CAD(computer-aided design) 소프트웨어에서 지정될 수 있는 것들 중 임의의 것(예를 들어, 동심도)을 포함할 수 있다.
하나의 경우에, 파라미터는 제품의 피처의 위치일 수 있다. 일례에서, 위치는 좌표계에 대한 좌표 값에 의해 정의될 수 있다. 다른 예에서, 위치는 다른 것들 중에서도 물리적 공간 내의 지점 및/또는 구조물 상의 지점까지의 거리를 나타내는 거리 값에 의해 정의될 수 있다. 또 다른 예에서, 위치는 크기(예를 들어, 거리) 및 물리적 공간에서의 방향(예를 들어, 피처가 바라봐야 방향) 둘 다를 나타내는 공간 벡터에 의해 정의될 수 있다.
다른 경우에, 파라미터는 제품의 피처의 배향일 수 있다. 일례에서, 배향은 다른 것에 대한 피처의 각도를 나타내는 각도 값에 의해 정의될 수 있다. 예를 들어, 배향은 다른 피처에 대한 평행성 또는 직교성의 표시에 의해 정의될 수 있다.
또 다른 경우에서, 파라미터는 제품의 피처의 재료 속성일 수 있다. 예를 들어, 재료 속성은 다른 것들 중에서도 재료 밀도, 곡률, 재료 강도, 크기, 형상, 전도도, 온도 및/또는 컬러의 값 또는 다른 표시에 의해 정의될 수 있다.
또 다른 경우에서, 파라미터는 구조물의 피처와의 상호작용의 속성일 수 있다. 예를 들어, 상호작용의 속성은 피처에 적용되었고/거나 적용되어야 하는 힘을 나타내는 힘 값에 의해 정의될 수 있다. 다른 예에서, 상호작용의 속성은 피처에 적용되었고/거나 적용되어야 하는 압력을 나타내는 압력 값에 의해 정의될 수 있다. 또 다른 예에서, 상호작용의 속성은 피처를 이동시키기 위한 접근법의 표시에 의해 정의될 수 있다(예를 들어, 구조물의 생산 동안 노브를 시계 방향으로 돌리는 것 대 반시계 방향으로 돌리는 것). 또 다른 예에서, 상호작용의 속성은 피처가 나타내야 하는 이동 특성의 표시에 의해, 예컨대 피처가 회전할 수 있는 최대 속도에 의해 정의될 수 있다. 다른 경우들 및 예들도 가능하다.
컨트롤러(308)가 파라메트릭 모델 생산 제품을 분석하고 나면, 다음으로 컨트롤러(308)는 생산 제품을 구축 및/또는 수정하기 위해 수행될 수 있는 작업들을 생성할 수 있다. 작업은 제품을 구축하는 것과 관련하여 수행될 수 있는 임의의 유형의 작업일 수 있다. 작업들의 예시적인 유형들은 건설 작업, 제조 작업, 조립 작업, 처리 작업 등을 포함한다. 추가적으로, 작업은 작업 현장(302)에 위치된 객체들, 예컨대 부품들, 도구들, 장애물 등과 상호작용하는 것을 수반할 수 있다. 또한, 작업은 작업 현장(302) 내에서 이용가능한 하나 이상의 도구를 사용하여 수행될 수 있다. 예에서, 컨트롤러(308)는 로보틱 디바이스(200)에 의해 수행될 하나 이상의 경로 기반 작업을 생성할 수 있다. 또한, 설계 위상 동안, 컨트롤러(308)는 작업을 수행할 순서(즉, 동작들의 순서)를 결정할 수 있다.
작업을 생성함에 있어서, 컨트롤러(308)는 생산 제품의 파라메트릭 모델의 분석에 기초하여 작업을 정의할 수 있다. 예를 들어, 경로 기반 작업에 대해, 컨트롤러(308)는 파라메트릭 모델에 기초하여 경로 기반 작업에 대한 작업 파라미터를 결정할 수 있다. 그 후, 컨트롤러(308)는 작업 파라미터가 만족되도록 작업을 정의할 수 있다. 예로서, 페인팅 작업에 대해, 컨트롤러(308)는 객체의 파라메트릭 모델에 기초하여, 페인팅될 객체의 하나 이상의 표면의 결정할 수 있다. 컨트롤러(308)는 파라메트릭 모델에 기초하여 페인팅 작업의 작업 파라미터를 결정할 수 있다. 예를 들어, 작업 파라미터는 다른 예들 중에서도 페인팅될 객체의 표면적, 사용할 특정 페인트, 페인팅할 특정 설계를 정의할 수 있다.
추가적으로, 컨트롤러(308)는 엔드 이펙터가 경로 기반 작업을 수행하기 위한 도구 경로를 결정할 수 있다. 예를 들어, 컨트롤러(308)는 페인트 작업 파라미터들을 만족시킬 페인팅 패턴을 결정할 수 있다. 다음으로, 컨트롤러(308)는 페인트 브러시가 페인팅 패턴에 따라 객체를 페인팅할 수 있도록 페인트 브러시 엔드 이펙터를 위한 도구 경로를 생성할 수 있다. 실시예에서, 컨트롤러(308)는 생성된 도구 경로를 파라메트릭 방식으로 정의할 수 있다. 예를 들어, 생성된 도구 경로는 생산 제품의 특정 피처로부터의 거리의 함수로서 및/또는 작업 현장의 특정 피처 또는 좌표계로부터의 거리의 함수로서 정의될 수 있다. 다른 예시적인 파라미터들이 가능하다.
컨트롤러(308)가 생산 제품과 관련하여 수행될 하나 이상의 작업을 결정하고 나면, 컨트롤러(308)는 생산 제품이 구축 및/또는 수정되는 생산 위상을 (즉시 또는 나중에) 시작할 수 있다. 구체적으로, 컨트롤러(308)는 로보틱 디바이스(200)로 하여금 하나 이상의 작업을 수행하게 할 수 있다. 예를 들어, 로보틱 디바이스(200)가 작업을 수행하도록 스케줄링된 때(즉, 작업의 런타임), 컨트롤러(308)는 로보틱 디바이스(200)가 작업을 수행하기 위한 명령어들을 생성할 수 있다.
실시예에서, 컨트롤러(308)는 작업 파라미터들 또는 작업 데이터 및 실시간 작업 현장 데이터에 기초하여 명령어들을 생성할 수 있다. 특히, 명령어들은 엔드 이펙터의 도구 경로를 나타내는 명령어들을 포함할 수 있다. 예들에서, 컨트롤러(308)에 의해 생성되고, 엔드 이펙터로 하여금 파라메트릭 도구 경로를 따라 작업을 수행하게 하는 명령어들은 "파라메트릭 명령어들"로 지칭될 수 있다. 도구 경로를 나타내는 명령어들을 생성하기 위해, 컨트롤러(308)는 작업 현장의 표현을 수신하거나 생성하기 위해 실시간 작업 현장 데이터를 사용할 수 있다. 다음으로, 컨트롤러(308)는 (설계 위상에서 생성된) 도구 경로가 그와 관련하여 정의된 피처들(예를 들어, 작업 현장 및/또는 구축된 것의 피처들)을 식별할 수 있다. 피처들이 식별되고 나면, 컨트롤러(308)는 파라메트릭 도구 경로를 식별된 피처들에 맵핑할 수 있다. 다음으로, 컨트롤러(308)는 맵핑된 도구 경로를 나타내는 명령어들을 생성할 수 있다. 런타임 시 작업들에 대해 명령어들을 생성함으로써/파라메트릭 명령어들을 맵핑함으로써, 컨트롤러(308)는 작업 현장에서의 임의의 변화들 및/또는 파라메트릭 모델로부터의 임의의 편차들을 처리할 수 있다. 그리고 그렇게 함으로써, 모델/이상적인 작업에 대해 더 정확하게 작업이 수행된다.
도 4a 및 도 4b는 예시적인 실시예에 따른, 로보틱 디바이스(200)에 의해 수행되는 예시적인 작업을 도시한다. 이 예에서, 작업은 접착제 도포 작업이고, 따라서 로보틱 디바이스(200)의 엔드 이펙터(310)는 어플리케이터 또는 디스펜서 도구(402)를 포함한다. 어플리케이터(402)는 실란트, 접착제, 코팅, 코크, 바인더, 석고 등과 같은 재료를 저장하는 밸브를 포함할 수 있다. 그리고, 재료는 고체, 가스, 젤, 액체, 에어로졸 등을 포함하는 상이한 형태들을 가질 수 있다.
또한, 어플리케이터(402)는 개구(예를 들어, 노즐)를 통해 재료를 도포하거나 공급하도록 구성될 수 있다. 예를 들어, 어플리케이터(402)는 재료를 객체에 도포할 수 있다. 따라서, 로보틱 디바이스(200)는 재료 퇴적을 수반하는 작업들을 수행하기 위해 어플리케이터(402)를 사용하도록 구성될 수 있다. 이러한 예에서, 로보틱 디바이스(200)에 할당된 작업은 접착제 도포 작업일 수 있고, 여기서 로보틱 디바이스(200)는 본 예에서는 타일인 대상 객체에 접착제를 도포한다.
실시예에서, 컨트롤러(308)는 접착제 도포 작업을 수행하기 위한 로보틱 디바이스(200)에 대한 명령어들을 생성할 수 있다. 특히, 명령어들은 타일의 파라메트릭 모델(400A)에 기초할 수 있으며, 이는 도 4a에 도시되어 있다. 파라메트릭 모델(400A)은 생산 제품의 더 큰 파라메트릭 모델의 일부일 수 있다. 또한, 파라메트릭 모델(400A)은 퇴적의 요구되는 파라미터를 기술할 수 있다. 구현예에서, 시스템은 파라미터를 결정하기 위해 파라메트릭 모델을 분석할 수 있다. 예로서, 파라메트릭 모델은 두 개의 별개의 조각이 제품에서 함께 결합되었음을 나타낸다. 따라서, 시스템은 두 개의 조각이 접착제를 사용하여 함께 결합될 수 있다고 결정할 수 있다. 다음으로, 시스템은 요구되는 퇴적을 설명하는 파라미터를 결정할 수 있다. 예를 들어, 파라미터는 타일의 표면(404A) 상의 요구되는 퇴적 커버리지 영역일 수 있다. 요구되는 퇴적 커버리지 영역은 타일의 표면(410A)에서 커버될 특정 영역들을 포함할 수 있거나, 커버될 타일의 표면 상의 면적의 백분율(예를 들어, 커버될 표면의 20%)로서 정의될 수 있다. 다른 예에서, 퇴적의 요구되는 파라미터는 퇴적의 균일성, 요구되는 강도 또는 요구되는 풀링 영역(pulling area)일 수 있다.
하나 이상의 파라미터에 기초하여, 컨트롤러(308)는 타일의 표면(410A) 상에 퇴적될 접착제 퇴적 패턴을 결정할 수 있다. 특히, 접착제 퇴적 패턴은 패턴이 파라메트릭 모델(400A)에 의해 나타나는 요구되는 파라미터(예를 들어, 퇴적 커버리지 영역)를 만족시키도록 결정된다. 예들에서, 시스템은 하나 이상의 파라미터를 만족시키는 접착제 퇴적 패턴을 결정하기 위해 타일의 하나 이상의 특성 및/또는 작업 현장의 하나 이상의 특성을 사용할 수 있다. 하나 이상의 객체 특성은 타일 및/또는 센서 데이터(예를 들어, 로컬 센서들 및/또는 글로벌 센서들로부터의 데이터)의 파라메트릭 모델(400A)로부터 결정될 수 있다. 접착제 도포 작업에 대한 관련 객체 특성들의 예는 대상 객체의 치수들, 대상 객체의 재료, 대상 객체의 잠재적인 인장 변형, 압축 응력, 및/또는 변형, 대상 객체가 경험할 수 있는 잠재적 충격 및 진동력, 잠재적 피로, 다른 화학 물질과의 잠재적 접촉 등을 포함할 수 있다. 그리고, 관련 작업 현장 특성들의 예들은 온도, 습도, 기압, UV 노출 등을 포함한다.
도 4a는 예시적인 퇴적 패턴(412A)을 도시한다. 도 4a에 도시된 바와 같이, 퇴적 패턴(412A), 퇴적 패턴은 세그먼트들(401A, 403A 및 405A)을 포함할 수 있다. 퇴적 패턴(412A)을 결정하는 것은 퇴적 패턴(412A)의 각각의 세그먼트의 두께/깊이, 폭 및 길이와 같은 패턴의 치수들을 결정하는 것을 수반한다. 그것은 또한 퇴적할 접착제의 유형과 같은 퇴적의 다른 피처들을 결정하는 것을 수반할 수 있다. 다른 피처들도 결정될 수 있다.
시스템이 퇴적 패턴을 결정하고 나면, 시스템은 하나 이상의 파라미터의 함수로서 퇴적 패턴을 정의할 수 있다. 이 예에서, 퇴적 패턴은 타일의 하나 이상의 피처로부터의 거리의 함수로서 정의된다. 도 4a에 도시된 바와 같이, 표면(410A) 상의 퇴적 패턴(412A)은 타일의 에지(406A)와 퇴적 패턴의 세그먼트(401A) 사이의 거리(d1), 타일의 에지(404A)와 퇴적 패턴의 세그먼트(403A) 사이의 거리(d2), 및 타일의 에지(408A)와 퇴적 패턴의 세그먼트(405A) 사이의 거리(d3)가 존재하도록 에지들(404A, 406A, 408A)에 대해 정의된다.
추가적으로 및/또는 대안적으로, 컨트롤러(308)는 어플리케이터(402)에 대해 따라야 할 도구 경로를 결정하여, 어플리케이터(402)가 파라메트릭 퇴적 패턴(412)에 따라 접착제를 퇴적하게 할 수 있다. 구체적으로, 컨트롤러(308)는 퇴적 패턴(412A)으로 접착제를 퇴적하기 위해 엔드 이펙터가 따를 수 있는 도구 경로를 결정하기 위해, 운동학적 제약들(예를 들어, 충돌, 조인트 한계 등) 및/또는 자유와 같은 로보틱 디바이스(200)의 특성을 사용할 수 있다. 도구 경로를 결정한 후, 컨트롤러(308)는 다음으로 타일의 하나 이상의 피처에 대하여 도구 경로를 정의할 수 있다. 예를 들어, 퇴적 패턴(412A)과 마찬가지로, 도구 경로는 타일의 에지들(404A, 406A 및 408A)로부터의 거리의 함수로서 정의될 수 있다.
후속하여, 예를 들어 런타임에서, 컨트롤러(308)는 로보틱 디바이스(200)로 하여금 접착제 도포 작업을 수행하게 할 수 있는 작업 명령어들을 생성할 수 있다. 특히, 작업 명령어들은 로보틱 디바이스(200)로 하여금 퇴적 패턴(412A)에 따라 접착제를 퇴적하도록 엔드 이펙터를 제어하게 할 수 있다. 따라서, 명령어들은 퇴적 패턴(412A)으로 접착제를 퇴적하기 위해 엔드 이펙터(402)가 따르는 도구 경로를 나타낼 수 있다. 추가적으로, 명령어들은 엔드 이펙터로 하여금 퇴적 패턴(412A)으로 접착제를 퇴적하고 퇴적의 다른 피처들(예를 들어, 깊이, 접착제 유형, 경화 시간 등)을 만족시키게 하는 제어 파라미터들을 나타낼 수 있다.
도구 경로를 나타내는 명령어들을 결정하기 위해, 컨트롤러(308)는 센서 데이터를 사용하여, 그에 대해 도구 경로가 정의되는 에지들의 위치를 결정할 수 있다. 예를 들어, 컨트롤러(308)는 타일의 속성들(예를 들어, 그것이 제조되는 재료, 표면 평활도 등)을 나타내는 정보를 포함하여, 타일을 나타내는 정보를 결정하기 위해 센서들을 사용할 수 있다. 추가적으로, 컨트롤러(308)는 센서 데이터를 사용하여 타일의 2D 또는 3D 표현을 생성하거나 수신할 수 있다. 타일의 표현은 타일의 에지들의 위치 및 치수들과 같이, 구축된 타일의 피처들을 결정하기 위해 사용될 수 있다.
도 4b는 예시적인 실시예에 따른 구축된 타일의 표현(400B)을 도시한다. 도 4b에 도시된 바와 같이, 구축된 타일(400B)은 에지(404B), 에지(406B) 및 에지(408B)를 포함한다. 구축된 것의 에지(404B), 에지(406B) 및 에지(408B)는 각각 파라메트릭 모델의 에지(404A), 에지(406A) 및 에지(408A)에 대응한다. 그리고, 구축된 것의 표면(410B)은 모델의 표면(410A)에 대응한다. 그러나, 이러한 예에서, 타일을 제조할 때의 제조 오류들로 인해, 구축된 타일(400B)의 치수들은 타일의 공칭 모델(400A)의 치수들로부터 벗어난다. 특히, 구축된 것의 에지들(404B, 406B 및 408B)의 길이는 각각 파라메트릭 모델의 에지들(404A, 406A 및 408A)의 길이들보다 짧다.
예들에서, 일단 컨트롤러가 구축된 것의 피처들을 식별하고 나면, 컨트롤러(308)는 접착제 어플리케이터(402)의 도구 경로를 구축된 것에 맵핑할 수 있다. 도구 경로를 맵핑하는 것은 구축된 타일의 에지들(404B, 406B 및 408B)에 대한 도구 경로를 정의하는 것을 포함할 수 있다. 다음으로, 접착제 어플리케이터(402)가 맵핑된 도구 경로를 따라가고 나면, 어플리케이터(402)는 표면(410B) 상에 퇴적 패턴(412B)으로 접착제를 퇴적할 수 있다. 도 4b에 도시된 바와 같이, 퇴적 패턴(412B)은 타일의 에지(406B)와 퇴적 패턴의 세그먼트(401B) 사이의 거리(d1), 타일의 에지(404B)와 퇴적 패턴의 세그먼트(403B) 사이의 거리(d2), 및 타일의 에지(408B)와 퇴적 패턴의 세그먼트(405B) 사이의 거리(d3)가 존재하도록 에지들(404B, 406B 및 408B)에 대해 위치된다. 도 4b에 도시된 거리들(d1, d2 및 d3)은 도 4a에 도시된 거리들(d1, d2 및 d3)과 등가이다. 따라서, 모델 에지들(404A, 406A, 408A)로부터의 에지들(404B, 406B, 408B)의 길이들의 편차에도 불구하고, 퇴적 패턴(412B)은 모델에 의해 지정된 바와 같이 에지들(404B, 406B, 408B)에 대해 위치된다[즉, 에지들(404A, 406A 및 408A)에 대한 퇴적 패턴(412A)의 위치].
다음으로, 컨트롤러(308)는 엔드 이펙터로 하여금 접착제 퇴적 작업을 수행하게 하는 명령어들을 생성할 수 있다. 특히, 컨트롤러(308)는 어플리케이터(402)의 도구 경로 및 하나 이상의 제어 파라미터를 나타내는 명령어들을 생성한다. 어플리케이터(402)의 제어 파라미터들은 어플리케이터(402)의 속도, 어플리케이터(402)가 접착제를 퇴적하는 압력, 퇴적될 접착제의 유형 등을 포함할 수 있다. 일부 예들에서, 어플리케이터(402)의 노즐의 크기(즉, 팁 크기)는 조절가능할 수 있다. 그러한 예들에서, 파라메트릭 명령어들은 또한 노즐의 크기를 지정할 수 있다. 명령어들은 또한 어플리케이터(402)에 대한 공급 시간을 지정할 수 있다. 다른 제어 파라미터들이 가능하다.
도 4a 내지 도 4b는 접착제 어플리케이터(402)를 사용하여 수행될 수 있는 예시적인 접착제 도포 작업을 도시하지만, 이러한 예는 제한적이지 않아야 한다. 예를 들어, 로보틱 디바이스(200)는 어플리케이터(402) 외에 다른 도구를 포함할 수 있다. 도구는 어플리케이터(402)에 의해 퇴적된 임의의 재료를 성형, 패터닝, 평활화 및/또는 이동시킬 수 있는 임의의 도구일 수 있다. 그러한 예들에서, 어플리케이터(402)는 재료를 표면(410B) 상에 퇴적할 수 있고, 다음으로 제2 도구[예를 들어, 흙손(trowel)]는 재료를 특정 형상 또는 패턴으로 성형하기 위해 사용될 수 있다.
도 5a는 예시적인 실시예에 따른, 구축된 객체(306)(도 3에 도시됨)와 관련하여 수행되는 경로 기반 작업의 다른 예를 도시한다. 이러한 예에서, 컨트롤러(308)는 객체의 모델에 기초하여 객체의 생산 프로세스가 객체(500)의 만곡된 표면(502) 상에 접착제를 퇴적하는 작업을 포함한다는 것을 결정할 수 있다. 다음으로, 시스템은 모델에 의해 나타나는 요구되는 결과를 달성하는 퇴적 패턴을 생성할 수 있다. 예에서, 퇴적 패턴은 작업 현장의 피처들 및/또는 객체(500)의 피처들에 기초할 수 있다. 위에서 설명된 바와 같이, 접착제 도포 작업에 대한 관련 피처들은 대상 객체의 치수들, 대상 객체의 재료, 대상 객체의 잠재적인 인장 변형, 압축 응력, 및/또는 변형, 대상 객체가 경험할 수 있는 잠재적 충격 및 진동력, 잠재적 피로, 다른 화학 물질과의 잠재적 접촉 등을 포함할 수 있다. 도 5a에 도시된 바와 같이, 컨트롤러(306)는 세그먼트들(504A, 504B, 504C, 504D, 504E 및 504F)을 포함하는 퇴적 패턴을 생성할 수 있다. 예들에서, 컨트롤러(306)는 객체(500)의 하나 이상의 피처에 대한 패턴을 정의함으로써 퇴적 패턴을 파라메트릭 방식으로 정의할 수 있다.
도 5b는 예시적인 실시예에 따른 객체(500)의 측면도를 도시한다. 도 5b에 도시된 바와 같이, 컨트롤러(306)는 퇴적 패턴의 각각의 세그먼트가 직사각형 형상을 갖는 것으로 결정할 수 있다. 도 5b에 추가로 도시된 바와 같이, 퇴적 패턴의 세그먼트(504C)는 폭(w1), 높이(h1), 및 길이(도 5b에 도시되지 않음)를 가질 수 있다. 또한, 퇴적 패턴의 세그먼트(504C)와 세그먼트(504D) 사이에 간격(s1)이 있을 수 있다. 표면(502) 상의 퇴적 패턴의 상이한 부분들은 상이한 형상들, 치수들, 및 간격들을 가질 수 있음에 유의해야 한다.
추가적으로 및/또는 대안적으로, 제어 시스템(306)은 엔드 이펙터가 퇴적 패턴으로 접착제를 퇴적할 수 있도록 엔드 이펙터의 하나 이상의 제어 파라미터를 결정할 수 있다. 제어 파라미터들은 어플리케이터의 궤적, 어플리케이터의 속도, 어플리케이터가 접착제를 퇴적하는 압력, 퇴적될 접착제의 유형, 어플리케이터의 노즐의 크기(즉, 팁 크기), 공급 시간, 접착제 유형 등을 포함한다.
런타임에서, 컨트롤러(306)는 모델로부터의 임의의 편차를 결정하기 위해 객체(500)를 스캔할 수 있다. 편차를 검출하는 것에 응답하여, 컨트롤러(306)는 편차를 처리하는 퇴적 패턴을 생성하기 위해 하나 이상의 제어 파라미터를 업데이트할 수 있다. 예를 들어, 컨트롤러(306)는 도 5c에 도시된 퇴적 패턴을 생성할 수 있다. 도 5c에 도시된 바와 같이, 퇴적 패턴의 세그먼트들은 삼각형 형상을 가질 수 있다. 도 5c에 추가로 도시된 바와 같이, 퇴적 패턴의 세그먼트(506)는 베이스 폭(w2), 높이(h2) 및 길이(도 5c에 도시되지 않음)를 가질 수 있다. 또한, 퇴적 패턴의 세그먼트(506)와 세그먼트(508) 사이에 간격(s2)이 있을 수 있다. 도 5d는 또 다른 예시적인 퇴적 패턴을 도시한다. 도 5d에 도시된 바와 같이, 퇴적 패턴의 세그먼트들은 원형 또는 반원형 형상을 가질 수 있다. 도 5d에 추가로 도시된 바와 같이, 퇴적 패턴의 세그먼트(510)는 직경(d1) 및 길이(도 5d에 도시되지 않음)를 가질 수 있다. 또한, 퇴적 패턴의 세그먼트(510)와 세그먼트(512) 사이에 간격(s3)이 있을 수 있다. 다른 퇴적 패턴들, 형상들 및 치수들이 가능하다.
도 4a-도 4b, 및 도 5a-도 5d는 예시적인 접착제 도포 작업들을 도시하지만, 이러한 예들은 제한적이지 않아야 한다. 다른 예시적인 경로 기반 작업들은 엔드 이펙터가 특정 궤적으로 객체의 표면에 대해 이동하는 임의의 작업을 포함할 수 있다. 이러한 경로 기반 작업들은 다른 유형의 도구들을 사용하여 수행할 수 있다. 이러한 도구들은 객체를 조작(예를 들어, 표면으로부터의 재료를 제거)하고/하거나 객체를 조작하지 않고서 객체와 상호작용할 수 있다(예를 들어, 센서, 스캐너 등). 표면으로부터 재료들을 제거할 수 있는 예시적인 도구들은 샌딩, 디버링, 연마 등을 수행하도록 구성된 도구들을 포함한다.
예에서, 로보틱 제어 시스템은 생산 제품의 생산 프로세스의 일부로서 샌딩 작업을 수행할 수 있다. 시스템은 생산 제품의 파라메트릭 모델을 분석하여 샌딩 작업의 파라미터를 정의할 수 있다. 예를 들어, 시스템은 객체의 표면이 특정한 마감을 갖는다고 결정할 수 있고, 다음으로, 표면의 요구되는 마감이 되도록 파라미터를 정의할 수 있다. 다음으로, 시스템은 대상 객체의 요구되는 마감을 달성하는 샌딩 패턴을, 객체의 표면을 따라 생성할 수 있다. 추가적으로, 시스템은 샌딩 패턴을 파라메트릭 방식으로 정의할 수 있으며, 샌딩 패턴을 사용하여 샌더 엔드 이펙터에 대한 파라메트릭 도구 경로를 생성할 수 있다.
런타임에서, 시스템은 센서 데이터를 사용하여 객체의 파라메트릭 모델로부터의 객체의 편차를 검출할 수 있다. 예를 들어, 시스템은 툴링과 표면 사이에서 원래 결정된 것과 다른 상호작용을 야기할 수 있는 작업 현장의 변화들 및/또는 모델로부터의 편차들을 검출할 수 있다. 예를 들어, 표면, 예를 들어 목재 경도에 대한 변경으로 인해, 시스템은 요구되는 표면 마감을 달성하기 위해 샌더를 사용하여 가할 상이한 압력을 결정할 수 있다. 추가적으로, 센서 데이터에 기초하여, 시스템은 파라메트릭 도구 경로를 대상 객체에 맵핑할 수 있다. 다음으로, 시스템은 도구 경로를 나타내는 명령어 및/또는 샌더의 제어 파라미터들(예를 들어, 샌더의 회전 속도, 샌더를 사용하여 인가되는 압력 등)를 나타내는 명령어들과 같은 샌딩 작업을 수행하기 위한 명령어들을 결정할 수 있다.
일부 실시예들에서, 로보틱 제어 시스템은 시스템이 모델을 갖지 않는 작업 현장에서 객체를 조작하거나 객체와 상호작용할 수 있다. 그러한 예들에서, 시스템은 엔드 이펙터에 대한 파라메트릭 도구 경로를 실시간으로 생성할 수 있다. 예를 들어, 시스템은 센서 데이터를 사용하여 객체의 표현을 생성할 수 있다. 다음으로, 시스템은 객체의 표현을 사용하여 객체에 대한 파라메트릭 도구 경로를 생성할 수 있다.
도 6은 예시적인 실시예에 따른 카빙 작업을 도시한다. 이러한 예에서, 작업은 표면(600)을 조각하는 카빙 작업이다. 시스템은 스캐너(도시되지 않음)로 하여금 표면(600)을 스캔하게 하고, 표면의 스캔에 기초하여, 시스템은 표면(600)의 관련 피처들을 결정할 수 있다. 카빙 작업의 관련 피처들은 대상 객체의 치수들, 대상 객체의 재료, 대상 객체의 잠재적인 인장 변형, 압축 응력, 및/또는 변형, 대상 객체가 경험할 수 있는 잠재적 충격 및 진동력, 잠재적 피로 등을 포함할 수 있다.
피처들에 기초하여, 시스템은 카빙 도구 엔드 이펙터를 위한 제어 파라미터들에 대한 하나 이상의 값을 결정할 수 있다. 제어 파라미터들은 도구의 궤적, 도구의 속도, 도구를 표면에 적용할 압력, 도구 또는 도구 팁의 크기 등을 포함한다. 특히, 이들 제어 파라미터들에 대한 값들을 결정함으로써, 시스템은 표면(600) 상의 카빙 패턴(602)을 결정할 수 있다. 카빙 패턴은 표면으로부터 지정된 양의 재료가 제거되는 결과를 초래할 수 있고, 따라서 특정 형상들이 표면 내에 카빙되는 결과를 초래한다. 일부 예들에서, 시스템은 스캔을 사용하여 카빙 패턴을 결정할 수 있다. 다음으로, 시스템은 요구되는 카빙 패턴을 달성하는 제어 파라미터들의 값을 결정할 수 있다.
V. 추가 피처들
A. 구축-전 위상 동안의 명령어들의 생성
위에서 설명된 바와 같이, 시스템은 구축 위상 동안(즉, 해당 특정 작업의 런타임에서) 작업에 대한 명령어들을 생성할 수 있다. 그러나, 다른 실시예에서, 시스템은 또한 설계 위상 동안 명령어들을 생성할 수 있다. 특히, 설계 위상에서 하나 이상의 작업을 생성한 후, 시스템은 경로 기반 작업과 같은 하나 이상의 작업에 대한 명령어들을 생성할 수 있다. 명령어들을 생성하기 위해, 시스템은 하나 이상의 작업 파라미터에 관련하여, 요구되는 경로 기반 작업을 정의할 수 있다. 다음으로, 시스템은 경로 기반 작업의 하나 이상의 작업 파라미터에 기초하여 생성할 수 있고, 시스템은 작업을 위한 파라메트릭 명령어들을 생성할 수 있다. 파라메트릭 명령어들은 엔드 이펙터의 제어 파라미터들의 값들을 나타낼 수 있다. 특히, 엔드 이펙터의 제어 파라미터들이 결정된 값들로 설정되면, 엔드 이펙터는 수행의 결과가 작업 파라미터들을 충족시키도록 작업을 수행할 것이다. 일부 예들에서, 시스템은 경로 기반 작업의 파라미터들 및 대상 객체의 공칭 모델을 사용하여, 작업에 대한 파라메트릭 명령어들을 생성할 수 있다. 예로서, 시스템은 엔드 이펙터의 도구 경로를 나타내는 파라메트릭 명령어들을 생성할 수 있다. 이러한 파라메트릭 명령어들은 객체 및/또는 작업 현장의 하나 이상의 피처와 관련하여 도구 경로를 파라메트릭 방식으로 정의한다.
위에서 설명된 바와 같이, 일부 경우들에서, 대상 객체는 생산 현장에서 건설되거나 조립될 수 있다. 그러나, "구축된" 대상 객체는 객체의 공칭 모델로부터 벗어날 수 있다. 공칭 모델과 구축된 물리적 객체 사이에 존재할 수 있는 임의의 편차들을 설명하기 위해, 제어 시스템은 스캐너로 하여금 구축된 물리적 객체를 스캔하게 할 수 있다. 객체의 스캔에 기초하여, 제어 시스템은 구축된 물리적 객체와 객체의 공칭 모델 사이의 임의의 편차들을 결정할 수 있다.
제어 시스템이 임의의 편차들을 검출하면, 제어 시스템은 편차들을 처리하기 위해 파라메트릭 명령어들을 업데이트할 수 있다. 특히, 도구 경로가 파라메트릭 방식으로 설명되기 때문에, 제어 시스템은 업데이트된 명령어들이 작업 파라미터들을 만족시키도록 편차들을 처리하기 위해 명령어들을 신속하게 업데이트할 수 있다. 미리 결정된 위치적 명령어들과는 대조적으로, 파라메트릭 명령어들을 조절하기 위해 시스템에 제공되는 유연성은, 시스템이 생산 현장에서의 임의의 편차들 또는 변화들을 처리하는 것을 허용한다. 또한, 그것은 시스템이 생산 프로세스에서 상당한 지연 없이 임의의 편차들을 신속하게 처리하는 것을 허용한다.
Ⅵ. 예시적인 동작들
위에서 설명된 로보틱 제어 시스템에 관한 동작들은 하나 이상의 프로세서에 의한 방법으로서 구현될 수 있다. 위에서 설명된 바와 같이, 로보틱 제어 시스템은 하나 이상의 로보틱 디바이스를 동작시킬 수 있다. 따라서, 로보틱 디바이스와 로보틱 제어 시스템 사이에 신호들의 교환이 존재할 수 있다. 로보틱 제어 시스템의 동작들을 설명하는 예시적인 방법들(700, 800, 900 및 1000)은 각각 도 7, 8, 9 및 10에 흐름도의 형태로 도시되어 있다.
도 7은 예시적인 실시예에 따른 작업을 수행하는 로보틱 제어 시스템의 예시적인 방법(700)을 도시한다. 블록(702)에 도시된 바와 같이, 방법(700)은 객체 상에서의 엔드 이펙터에 의한 경로 기반 작업의 작업 정보를 결정하는 단계를 수반하며, 여기서 작업 정보는 (ⅰ) 적어도 하나의 작업 파라미터 및 (ⅱ) 객체의 공칭 표현을 포함한다. 블록(704)에 의해 도시된 바와 같이, 방법(700)은 또한 작업 정보에 기초하여 작업을 수행하기 위해 엔드 이펙터에 대한 하나 이상의 파라메트릭 명령어를 결정하는 단계를 수반하며, 여기서 하나 이상의 파라메트릭 명령어는 경로 기반 작업을 수행할 때 엔드 이펙터가 따라야 할 도구 경로를 나타낸다.
블록(706)에 도시된 바와 같이, 방법(700)은 센서 데이터에 기초하여 객체의 관찰된 표현을 생성하는 단계를 더 수반한다. 블록(708)에 의해 도시된 바와 같이, 방법(700)은 객체의 관찰된 표현과 공칭 표현을 비교하는 단계를 더 수반한다. 블록(710)에 의해 도시된 바와 같이, 방법(700)은 비교에 기초하여 하나 이상의 파라메트릭 명령어를 객체의 관찰된 표현에 맵핑하는 단계를 더 수반한다. 일부 예들에서, 하나 이상의 파라메트릭 명령어는 실시간으로 업데이트될 수 있다. 블록(712)에 의해 도시된 바와 같이, 방법(700)은 로보틱 디바이스로 하여금 경로 기반 작업을 수행하게 하기 위해, 맵핑된 명령어들을 엔드 이펙터에 송신하는 단계를 추가적으로 수반한다.
도 8은 예시적인 실시예에 따른, 작업을 수행하는 로보틱 제어 시스템의 다른 예시적인 방법(800)을 도시한다. 블록(802)에 도시된 바와 같이, 방법(800)은 객체의 표면 상에서의 엔드 이펙터에 의한 경로 기반 작업에 대한 하나 이상의 파라메트릭 명령어를 결정하는 단계를 수반하며, 여기서 하나 이상의 파라메트릭 명령어는 표면 상의 경로를 나타내며, 여기서 하나 이상의 파라메트릭 명령어는 표면의 공칭 표현에 기초한다. 블록(804)에 의해 도시된 바와 같이, 방법(800)은 또한 표면의 제조가 완료되었다고 결정하고, 그에 응답하여, 스캐너 디바이스로 하여금 표면의 스캔을 수행하게 하는 단계를 수반한다. 예를 들어, 로보틱 제어 시스템은 센서 데이터에 기초하여 제조가 완료되었다고 결정할 수 있다. 추가적으로 및/또는 대안적으로, 로보틱 제어 시스템은 엔드 이펙터를 제어하는 로보틱 디바이스로부터 엔드 이펙터가 표면의 제조를 완료했다는 표시를 수신할 수 있다.
블록(806)에 도시된 바와 같이, 방법(800)은 스캔에 기초하여 표면의 관찰된 표현을 결정하는 단계를 더 수반한다. 블록(808)에 의해 도시된 바와 같이, 방법(800)은 표면의 관찰된 표현을 표면의 공칭 표현과 비교한 것에 기초하여, 표면의 관찰된 표현에 따라 표면 상에서의 경로 기반 작업의 수행을 제공하기 위해 하나 이상의 파라메트릭 기반 명령어를 업데이트하는 단계를 더 수반한다. 블록(810)에 의해 도시된 바와 같이, 방법(800)은 로보틱 디바이스로 하여금 표면 상에서 경로 기반 작업을 수행하게 하도록, 적어도 하나의 통신 인터페이스를 통해 하나 이상의 업데이트된 명령어를 로보틱 디바이스에 송신하는 단계를 추가적으로 수반한다.
도 9는 예시적인 실시예에 따라, 작업을 수행하는 로보틱 제어 시스템의 다른 예시적인 방법(900)을 도시한다. 블록(902)에 도시된 바와 같이, 방법(900)은 설계 위상 동안, 로보틱 작업의 적어도 하나의 파라미터에 기초하여 객체의 표면 상에서의 엔드 이펙터에 대한 작업을 정의하는 단계를 수반한다. 블록(904)에 의해 도시된 바와 같이, 방법(900)은 또한 표면의 공칭 표현 및 파라메트릭 방식으로 정의된 작업에 기초하여, 작업에 대한 하나 이상의 파라메트릭 명령어를 결정하는 단계를 수반하고, 여기서 하나 이상의 파라메트릭 명령어는 엔드 이펙터가 경로 기반 작업을 수행할 때 따라야 하는 표면 상의 경로를 나타낸다.
블록(906)에 도시된 바와 같이, 방법(900)은 구축 위상 동안, 스캐너로부터 표면의 관찰된 표현을 수신하는 단계를 더 수반한다. 블록(908)에 의해 도시된 바와 같이, 방법(900)은 표면의 관찰된 표현과 공칭 표현을 비교하는 단계를 더 수반한다. 블록(910)에 의해 도시된 바와 같이, 방법(900)은 비교에 기초하여, 표면의 관찰된 표현에 따라 표면 상의 경로 기반 작업의 수행을 제공하기 위해 하나 이상의 파라메트릭 명령어를 업데이트하는 단계를 추가적으로 수반한다. 블록(912)에 의해 도시된 바와 같이, 방법(900)은 로보틱 디바이스로 하여금 표면 상에서 경로 기반 작업을 수행하도록 하기 위해, 업데이트된 명령어를 엔드 이펙터에 송신하는 단계를 추가적으로 수반한다.
도 10은 예시적인 실시예에 따른 작업을 수행하는 로보틱 제어 시스템의 다른 예시적인 방법(1000)을 도시한다. 블록(1002)에 의해 도시된 바와 같이, 방법(1000)은 객체의 파라메트릭 모델을 분석하는 단계를 수반한다. 또한, 블록(1004)에 의해 도시된 바와 같이, 방법(1000)은 분석에 기초하여, (ⅰ) 엔드 이펙터에 의해 객체 상에서 수행될 경로 기반 작업의 파라미터를 결정하고, (ⅱ) 엔드 이펙터를 위한 파라메트릭 도구 경로를 생성하는 단계를 수반한다. 블록(1006)에 의해 도시된 바와 같이, 방법(1000)은 또한 경로 기반 작업의 런타임에서, 객체의 표현을 나타내는 센서 데이터를 수신하는 단계를 수반한다. 또한, 블록(1008)에 의해 도시된 바와 같이, 방법(1000)은 센서 데이터에 기초하여 파라메트릭 도구 경로를 객체의 표현에 맵핑하는 단계를 수반한다. 또한, 블록(1010)에 의해 도시된 바와 같이, 방법(1000)은 엔드 이펙터로 하여금 맵핑된 도구 경로를 따라 경로 기반 작업을 수행하게 하는 명령어들을 생성하는 단계를 더 수반한다. 또한, 블록(1012)에 의해 도시된 바와 같이, 방법(1000)은 로보틱 디바이스로 하여금 객체 상에서의 경로 기반 작업을 수행하게 하기 위해 명령어들을 엔드 이펙터에 송신하는 단계를 더 수반한다.
도 11은 로보틱 디바이스(1100)의 예시적인 구성을 도시한다. 일반적으로, 로보틱 디바이스(1100)는 컴퓨팅 능력을 가지며, 다른 것들 중에서도 빛 및/또는 소리와 같은 물리적 현상을 방출/생성하는 능력 및 작동 능력으로 그것의 주변과 상호작용하는 임의의 디바이스일 수 있다. 예를 들어, 로보틱 디바이스(1100)는 다른 것들 중에서도 휴머노이드 로봇, 로보틱 암 또는 4족 로봇일 수 있다. 로보틱 디바이스는 또한 본 기술분야의 통상의 기술자들에게 일반적으로 "로보틱"인 것으로 이해되는 임의의 디바이스일 수 있다. 로보틱 디바이스(1100)는 또한 다른 것들 중에서도, 로보틱 디바이스, 로보틱 조작기, 로봇 클라이언트, 또는 로봇으로 지칭될 수 있다.
로보틱 디바이스(1100)는 프로세서(들)(1102), 데이터 저장소(1104), 프로그램 명령어들(1106), 컨트롤러(1108), 센서(들)(1110), 전력 소스(들)(1112), 액추에이터(들)(1114), 및 이동가능한 컴포넌트(들)(1116)를 포함하는 것으로 도시되어 있다. 로보틱 디바이스(1100)는 단지 예시의 목적으로 도시되고, 본 개시내용의 범위를 벗어나지 않고서, 로보틱 디바이스(1100)가 추가의 컴포넌트들을 포함할 수 있고/거나, 하나 이상의 컴포넌트가 제거될 수 있음에 유의해야 한다. 또한, 로보틱 디바이스(1100)의 다양한 컴포넌트들은 임의의 방식으로 배열되고 접속될 수 있음에 유의해야 한다.
또한, 프로세서(들)(152), 데이터 저장소(154), 프로그램 명령어들(156), 센서들[예를 들어, 로컬 센서(들)(130) 및 글로벌 센서(들)(140)] 및/또는 전력 소스(162)에 대한 상기 설명은 다른 시스템 또는 배열들에서 사용되는 각각의 컴포넌트들에 관한 이하의 임의의 논의에 적용될 수 있다. 예를 들어, 언급된 바와 같이, (다른 가능한 도면들 중에서도) 도 11은 프로세서들, 데이터 저장소, 프로그램 명령어들, 센서들, 및/또는 전력이 다른 배열로 통합된 것으로 도시한다. 따라서, 문제의 이러한 컴포넌트들은 도 1과 연관하여 위에서 논의된 각각의 컴포넌트들과 동일하거나 유사한 특성(및/또는 형태)을 취할 수 있다. 그러나, 본 개시내용의 범위를 벗어나지 않고서, 문제의 컴포넌트들은 또한 다른 특성(및/또는 형태)을 취할 수 있다.
언급된 바와 같이, 로보틱 디바이스(1100)는 (예를 들어, 마이크로컨트롤러의 형태를 취하는) 컨트롤러(1108)를 포함할 수 있다. 컨트롤러(1108)는 처리 유닛 및 데이터 저장소를 포함할 수 있고, [예를 들어, 개별적으로 또는 프로세서(들)(1102)와 협력하여] 다양한 동작들을 관리 또는 수행하도록 배열될 수 있다. 따라서, 이러한 컨트롤러(1108)는 위에서 언급된 컨트롤러(150)와 동일하거나 유사한 특성들(및/또는 형태)을 취할 수 있지만, 다른 특성들(및/또는 형태)도 취할 수 있다. 따라서, 일부 구현예들에서, 컨트롤러(150)는 로보틱 디바이스(1100)의 일부로서 통합될 수 있고, 따라서 컨트롤러(150) 자체가 컨트롤러(1108)일 수 있다. 다른 구현예에서, 컨트롤러(1108)는 로보틱 디바이스(1100)의 일부로서 포함될 수 있고, 컨트롤러(150)는 로보틱 디바이스(1100)로부터 분리될 수 있다. 구현에 관계없이, 이러한 컨트롤러들은 다양한 형태들을 취할 수 있다. 예를 들어, 컨트롤러는 다른 가능성들 중에서도 칩셋, 서버 시스템, 디지털 신호 프로세서, 프로그래머블 로직 컨트롤러 및/또는 샘플링된 데이터 시스템의 형태를 취할 수 있다. 더욱이, 컨트롤러는 본 명세서에서 다른 것들 중에서도 제어 시스템이라고도 지칭될 수 있다.
부가적으로, 로보틱 디바이스(1100)는 또한 하나 이상의 액추에이터(들)(1114)를 포함할 수 있다. 액추에이터는 기계적 모션을 도입하기 위해 사용될 수 있는 메커니즘이다. 특히, 액추에이터는 저장된 에너지를 하나 이상의 컴포넌트의 이동으로 변환하도록 구성될 수 있다. 액추에이터에 전력을 공급하기 위해 다양한 메커니즘이 사용될 수 있다. 예를 들어, 액추에이터들은 다른 가능성들 중에서도 화학물질들, 압축 공기, 유압, 또는 전기에 의해 전력을 공급받을 수 있다. 이러한 배열로, 액추에이터(들)(1114)는 로보틱 디바이스(1100)의 다양한 이동가능한 컴포넌트(들)(1116)의 이동을 야기할 수 있다. 이동가능한 컴포넌트(들)(1116)는 다른 것들 중에서도, 로보틱 암들, 레그들, 및/또는 핸드들과 같은 부속기들/부재들을 포함할 수 있다. 이동가능한 컴포넌트(들)(1116)는 또한 다른 것들 중에서도 이동가능한 베이스, 휠들, 및/또는 엔드 이펙터들을 포함할 수 있다. 또한, 로보틱 디바이스(1100)가 적어도 하나의 엔드 이펙터를 포함할 때, 이러한 엔드 이펙터는 위에서 논의된 바와 같이, 다른 것들 중에서도 특히, 도구[예를 들어, 스크류 드라이버, 드릴, 용접 철(welding iron) 또는 이들의 일부 조합] 및/또는 그리퍼일 수 있다.
Ⅶ. 결론
본 개시내용은 본 출원에 설명된 특정 실시예들에 관련하여 제한되지 않으며, 이는 다양한 양태들의 예시들로서 의도된다. 본 기술분야의 통상의 기술자들에게 명백한 바와 같이, 그것의 사상 및 범위를 벗어나지 않고서, 많은 수정들 및 변형들이 이루어질 수 있다. 본 명세서에 열거된 것들에 추가하여, 본 개시내용의 범위 내의 기능적으로 등가인 방법들 및 장치들은 상술한 설명으로부터 본 기술분야의 통상의 기술자에게 명백해질 것이다. 이러한 수정들 및 변형들은 첨부된 청구항들의 범위 내에 속하는 것으로 의도된다.
위의 상세한 설명은 첨부 도면들을 참조하여 개시된 시스템들, 디바이스들, 및 방법들의 다양한 피처들 및 기능들을 설명한다. 도면들에서, 문맥이 달리 지시하지 않는 한, 유사한 심볼들은 전형적으로 유사한 컴포넌트들을 식별한다. 본 명세서들 및 도면들에 설명된 예시적인 실시예는 제한적인 것으로 의도되지 않는다. 본 명세서에 제시된 주제의 사상 또는 범위를 벗어나지 않고서, 다른 실시예들이 이용될 수 있고, 다른 변경들이 이루어질 수 있다. 본 명세서에 일반적으로 설명되고 도면들에 일반적으로 도시된 바와 같은 본 개시내용의 양태들은 매우 다양한 상이한 구성들로 배열, 대체, 조합, 분리 및 설계될 수 있으며, 이들 모두는 본 명세서에서 명시적으로 고려된다는 점이 쉽게 이해될 것이다.
위에서 설명된 방법의 블록과 같은 정보의 처리를 표현하는 블록은 본 명세서에 설명된 방법 또는 기술의 특정 논리적 기능들을 수행하도록 구성될 수 있는 회로에 대응할 수 있다. 대안적으로 또는 추가적으로, 정보의 처리를 표현하는 블록은 모듈, 세그먼트 또는 프로그램 코드의 일부(관련 데이터 포함)에 대응할 수 있다. 프로그램 코드는 방법 또는 기술의 특정 논리적 기능들 또는 액션들을 구현하기 위해 프로세서에 의해 실행가능한 하나 이상의 명령어를 포함할 수 있다. 프로그램 코드 및/또는 관련된 데이터는 디스크 또는 하드 드라이브 또는 다른 저장 매체를 포함하는 저장 디바이스와 같은 임의의 유형의 컴퓨터 판독가능한 매체에 저장될 수 있다.
컴퓨터 판독가능한 매체는 또한 레지스터 메모리, 프로세서 캐시 및 랜덤 액세스 메모리(RAM)와 같이, 단기간 동안 데이터를 저장하는 컴퓨터 판독가능한 매체와 같은 비-일시적 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 또한 예를 들어 판독 전용 메모리(ROM), 광학 또는 자기 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM)와 같은 2차 또는 영구 장기 저장소와 같이, 더 긴 기간 동안 프로그램 코드 및/또는 데이터를 저장하는 비-일시적 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 또한 임의의 다른 휘발성 또는 비-휘발성 저장 시스템들일 수 있다. 컴퓨터 판독가능한 매체는 예를 들어 컴퓨터 판독가능한 저장 매체, 또는 유형의 저장 디바이스로 고려될 수 있다.
또한, 하나 이상의 정보 전송을 표현하는 블록은 동일한 물리적 디바이스 내의 소프트웨어 및/또는 하드웨어 모듈들 사이의 정보 전송들에 대응할 수 있다. 그러나, 다른 정보 전송들은 상이한 물리적 디바이스들의 소프트웨어 모듈들 및/또는 하드웨어 모듈들 사이에서 이루어질 수 있다.
도면들에 도시된 특정 배열들은 제한적인 것으로 간주되어서는 안된다. 다른 실시예들은 주어진 도면에 도시된 각각의 요소를 더 많이 또는 더 적게 포함할 수 있음을 이해해야 한다. 또한, 도시된 요소들 중 일부는 결합되거나 생략될 수 있다. 또한, 예시적인 실시예는 도면들에 도시되지 않은 요소들을 포함할 수 있다.
다양한 양태들 및 실시예들이 여기에 개시되었지만, 다른 양태들 및 실시예들이 본 기술분야의 통상의 기술자에게 명백할 것이다. 본 개시내용에 개시된 다양한 양태들 및 실시예들은 예시를 목적으로 하는 것이고 제한으로 의도되지 않으며, 그것의 진정한 범위는 이하의 청구항들에 의해 나타난다.

Claims (19)

  1. 방법으로서,
    (i) 엔드 이펙터를 포함하는 로보틱 디바이스에 의해 객체에 대해 수행될 작업, 및 (ii) 상기 객체의 2D 또는 3D 공칭 표현을 결정하는 단계;
    상기 객체의 공칭 표현에 적어도 기초하여, 상기 작업을 수행하기 위해 상기 엔드 이펙터가 상기 객체의 공칭 표현의 하나 이상의 공칭 피처와 관련하여 정의된 미리 결정된 도구 경로를 따르게 하는 미리 결정된 객체 조작 또는 결합 커맨드를 결정하는 단계;
    카메라 센서를 포함하는 하나 이상의 센서에 의해 생성된 센서 데이터에 기초하여, 상기 객체의 2D 또는 3D 관찰된 표현을 생성하는 단계;
    상기 센서 데이터에 기초하여, 상기 객체의 상기 2D 또는 3D 관찰된 표현의 하나 이상의 구축된 피처를 식별하는 단계;
    상기 미리 결정된 도구 경로로부터, 상기 하나 이상의 공칭 피처의 상기 하나 이상의 구축된 피처에 대한 매핑에 기초하여, 상기 객체의 상기 관찰된 표현의 상기 하나 이상의 구축된 피처와 관련하여 정의된 매핑된 도구 경로를 결정하는 단계;
    상기 작업을 수행하기 위해 상기 엔드 이펙터가 상기 매핑된 도구 경로를 따르도록 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계; 및
    상기 조정된 객체 조작 또는 결합 커맨드를 반영하는 데이터를 상기 로보틱 디바이스에 송신하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 미리 결정된 객체 조작 또는 결합 커맨드는 상기 엔드 이펙터가 미리 결정된 도구 경로를 따르게 하는 커맨드 이외의 것인, 방법.
  3. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 어플리케이터의 속도를 조정하는 단계를 포함하는, 방법.
  4. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 어플리케이터가 접착제를 퇴적하는 압력을 조정하는 단계를 포함하는, 방법.
  5. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 어플리케이터로 퇴적하기 위한 접착제의 타입을 조정하는 단계를 포함하는, 방법.
  6. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 크기가 조정 가능한 스프레이 노즐의 팁 크기를 조정하는 단계를 포함하는, 방법.
  7. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 스프레이 노즐이 재료를 공급하는(dispense) 시간의 양을 조정하는 단계를 포함하는, 방법.
  8. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 상기 객체 상에 퇴적될 재료의 형상 또는 패턴을 조정하는 단계를 포함하는, 방법.
  9. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 상기 객체 상에 퇴적될 재료의 평활도를 조정하는 단계를 포함하는, 방법.
  10. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 샌더의 회전 속도를 조정하는 단계를 포함하는, 방법.
  11. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 샌더에 의해 상기 객체에 인가되는 압력을 조정하는 단계를 포함하는, 방법.
  12. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 상기 엔드 이펙터에 의해 상기 객체 상에 새겨질 패턴을 조정하는 단계를 포함하는, 방법.
  13. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 상기 객체 상에 퇴적될 인접한 세그먼트들 사이의 간격을 조정하는 단계를 포함하는, 방법.
  14. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 오브젝트 조작 또는 결합 커맨드를 조정하는 단계는 상기 엔드 이펙터에 의해 수행될 미리 결정된 디버링 동작을 조정하는 단계를 포함하는 방법.
  15. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 상기 엔드 이펙터에 의해 수행될 미리 결정된 연마 동작을 조정하는 단계를 포함하는, 방법.
  16. 제1항에 있어서, 상기 엔드 이펙터에 대한 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 단계는 상기 엔드 이펙터에 의해 인가되는 토크를 조정하는 단계를 포함하는 방법.
  17. 제1항에 있어서, 상기 객체의 상기 관찰된 표현의 상기 하나 이상의 구축된 피처를 식별하는 단계는 상기 관찰된 표현으로부터 객체의 하나 이상의 에지를 식별하는 단계를 포함하는, 방법.
  18. 하나 이상의 컴퓨터에 의해 실행가능한 명령어들을 포함하는 소프트웨어를 저장하는 비일시적 컴퓨터 판독가능 저장매체로서, 상기 명령어들은, 이러한 실행 시에, 상기 하나 이상의 컴퓨터가 동작들을 수행하도록 하고, 상기 동작들은:
    (i) 엔드 이펙터를 포함하는 로보틱 디바이스에 의해 객체에 대해 수행될 작업, 및 (ii) 상기 객체의 2D 또는 3D 공칭 표현을 결정하는 것;
    상기 객체의 공칭 표현에 적어도 기초하여, 상기 작업을 수행하기 위해 상기 엔드 이펙터가 상기 객체의 공칭 표현의 하나 이상의 공칭 피처와 관련하여 정의된 미리 결정된 도구 경로를 따르게 하는 미리 결정된 객체 조작 또는 결합 커맨드를 결정하는 것;
    카메라 센서를 포함하는 하나 이상의 센서에 의해 생성된 센서 데이터에 기초하여, 상기 객체의 2D 또는 3D 관찰된 표현을 생성하는 것;
    상기 센서 데이터에 기초하여, 상기 객체의 상기 2D 또는 3D 관찰된 표현의 하나 이상의 구축된 피처를 식별하는 것;
    상기 미리 결정된 도구 경로로부터, 상기 하나 이상의 공칭 피처의 상기 하나 이상의 구축된 피처에 대한 매핑에 기초하여, 상기 객체의 상기 관찰된 표현의 상기 하나 이상의 구축된 피처와 관련하여 정의된 매핑된 도구 경로를 결정하는 것;
    상기 작업을 수행하기 위해 상기 엔드 이펙터가 상기 매핑된 도구 경로를 따르도록 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 것; 및
    상기 조정된 객체 조작 또는 결합 커맨드를 반영하는 데이터를 상기 로보틱 디바이스에 송신하는 것
    을 포함하는, 비일시적 컴퓨터 판독가능 저장매체.
  19. 시스템으로서, 하나 이상의 컴퓨터 및 상기 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 동작들을 수행하게 하도록 동작가능한 명령어들을 저장하는 하나 이상의 저장 디바이스를 포함하고, 상기 동작들은:
    (i) 엔드 이펙터를 포함하는 로보틱 디바이스에 의해 객체에 대해 수행될 작업, 및 (ii) 상기 객체의 2D 또는 3D 공칭 표현을 결정하는 것;
    상기 객체의 공칭 표현에 적어도 기초하여, 상기 작업을 수행하기 위해 상기 엔드 이펙터가 상기 객체의 공칭 표현의 하나 이상의 공칭 피처와 관련하여 정의된 미리 결정된 도구 경로를 따르게 하는 미리 결정된 객체 조작 또는 결합 커맨드를 결정하는 것;
    카메라 센서를 포함하는 하나 이상의 센서에 의해 생성된 센서 데이터에 기초하여, 상기 객체의 2D 또는 3D 관찰된 표현을 생성하는 것;
    상기 센서 데이터에 기초하여, 상기 객체의 상기 2D 또는 3D 관찰된 표현의 하나 이상의 구축된 피처를 식별하는 것;
     상기 미리 결정된 도구 경로로부터, 상기 하나 이상의 공칭 피처의 상기 하나 이상의 구축된 피처에 대한 매핑에 기초하여, 상기 객체의 관찰된 표현의 상기 하나 이상의 구축된 피처와 관련하여 정의된 매핑된 도구 경로를 결정하는 것;
     상기 작업을 수행하기 위해 상기 엔드 이펙터가 상기 매핑된 도구 경로를 따르도록 상기 미리 결정된 객체 조작 또는 결합 커맨드를 조정하는 것; 및
    상기 조정된 객체 조작 또는 결합 커맨드를 반영하는 데이터를 상기 로보틱 디바이스에 송신하는 것
    을 포함하는, 시스템.
KR1020227032204A 2017-06-01 2018-03-22 도구 경로들의 자동 생성 KR20220131359A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/611,769 US20180348730A1 (en) 2017-06-01 2017-06-01 Automatic Generation of Toolpaths
US15/611,769 2017-06-01
KR1020197029590A KR20190118679A (ko) 2017-06-01 2018-03-22 도구 경로들의 자동 생성
PCT/US2018/023698 WO2018222250A1 (en) 2017-06-01 2018-03-22 Automatic generation of toolpaths

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197029590A Division KR20190118679A (ko) 2017-06-01 2018-03-22 도구 경로들의 자동 생성

Publications (1)

Publication Number Publication Date
KR20220131359A true KR20220131359A (ko) 2022-09-27

Family

ID=64455440

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227032204A KR20220131359A (ko) 2017-06-01 2018-03-22 도구 경로들의 자동 생성
KR1020197029590A KR20190118679A (ko) 2017-06-01 2018-03-22 도구 경로들의 자동 생성

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197029590A KR20190118679A (ko) 2017-06-01 2018-03-22 도구 경로들의 자동 생성

Country Status (5)

Country Link
US (2) US20180348730A1 (ko)
EP (1) EP3585570A4 (ko)
JP (1) JP6997797B2 (ko)
KR (2) KR20220131359A (ko)
WO (1) WO2018222250A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6687575B2 (ja) * 2017-10-05 2020-04-22 ファナック株式会社 数値制御装置
WO2019127024A1 (en) * 2017-12-26 2019-07-04 Abb Schweiz Ag Method and apparatus for robotic machining
FR3076239B1 (fr) * 2017-12-29 2020-01-10 Safran Nacelles Dispositif pour la depose d'un cordon d'une substance plastique et son procede de mise en oeuvre
CN109454642B (zh) * 2018-12-27 2021-08-17 南京埃克里得视觉技术有限公司 基于三维视觉的机器人涂胶轨迹自动生产方法
KR20210122819A (ko) * 2019-02-05 2021-10-12 쓰리엠 이노베이티브 프로퍼티즈 컴파니 시나리오에 의한 페인트 보수 프로세스
CN110355759A (zh) * 2019-07-05 2019-10-22 保定科海自动化科技有限公司 一种基于视觉的工业机器人涂胶控制系统
JP2022551721A (ja) * 2019-10-14 2022-12-13 スリーエム イノベイティブ プロパティズ カンパニー 線形モデリング及び最適化を用いた液体接着剤自動分注
US11644811B2 (en) * 2019-10-30 2023-05-09 Fanuc Corporation Adaptive path generation for CNC machining
JP7481829B2 (ja) * 2019-11-11 2024-05-13 株式会社Subaru 組立装置
CN111216124B (zh) * 2019-12-02 2020-11-06 广东技术师范大学 基于融入全局视觉和局部视觉的机器人视觉引导方法和装置
JP7249419B2 (ja) * 2020-02-14 2023-03-30 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド ロボット
CN114578720B (zh) * 2020-12-01 2023-11-07 合肥欣奕华智能机器股份有限公司 控制方法及控制系统
US20240034084A1 (en) * 2022-08-01 2024-02-01 The Boeing Company Apparatus and method for printing a contoured surface

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5429682A (en) * 1993-08-19 1995-07-04 Advanced Robotics Technologies Automated three-dimensional precision coatings application apparatus
JP3670700B2 (ja) * 1994-04-27 2005-07-13 株式会社日立製作所 ロボット機構制御方法
DE10048749A1 (de) * 2000-09-29 2002-04-11 Josef Schucker Anordnung zum Aufbringen von Klebstoff auf ein Werkstück
AU2003239171A1 (en) * 2002-01-31 2003-09-02 Braintech Canada, Inc. Method and apparatus for single camera 3d vision guided robotics
JP2003330511A (ja) 2002-05-16 2003-11-21 Suzuki Motor Corp シーラー塗布装置
SE524818C2 (sv) * 2003-02-13 2004-10-05 Abb Ab En metod och ett system för att programmera en industrirobot att förflytta sig relativt definierade positioner på ett objekt
JP4167940B2 (ja) * 2003-05-29 2008-10-22 ファナック株式会社 ロボットシステム
WO2006020685A2 (en) * 2004-08-11 2006-02-23 Cornell Research Foundation, Inc. Modular fabrication systems and methods
US9456250B2 (en) * 2006-12-15 2016-09-27 At&T Intellectual Property I, L.P. Automatic rating optimization
EP1974869A1 (en) * 2007-03-26 2008-10-01 Honda Research Institute Europe GmbH Apparatus and method for generating and controlling the motion of a robot
CN103909743B (zh) * 2007-12-31 2017-01-11 埃克阿泰克有限责任公司 用于打印三维物品的装置和方法
US8020306B2 (en) * 2009-01-27 2011-09-20 Dimitrios E Grivas Non-marring high-precision marking and measuring tool
US20130150994A1 (en) * 2011-12-08 2013-06-13 Wesley V. Barbir Method of carving three-dimensional artwork
US9227323B1 (en) * 2013-03-15 2016-01-05 Google Inc. Methods and systems for recognizing machine-readable information on three-dimensional objects
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
US10112303B2 (en) * 2013-10-25 2018-10-30 Aleksandar Vakanski Image-based trajectory robot programming planning approach
US9463571B2 (en) * 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9606527B2 (en) * 2014-06-30 2017-03-28 Caterpillar Inc. Automated fabrication system implementing 3-D void modeling
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
JP6754771B2 (ja) * 2014-11-18 2020-09-16 パーシモン テクノロジーズ コーポレイションPersimmon Technologies, Corp. エンドエフェクタ位置推定を実行するロボット適応型配置システム
US9486921B1 (en) * 2015-03-26 2016-11-08 Google Inc. Methods and systems for distributing remote assistance to facilitate robotic object manipulation
US20180029235A1 (en) * 2016-07-28 2018-02-01 X Development Llc Error Accrual and Mitigation During Robotic Process
US10226944B2 (en) * 2016-08-30 2019-03-12 The Boeing Company Adaptable surface treatment repair system

Also Published As

Publication number Publication date
US20180348730A1 (en) 2018-12-06
JP2020521641A (ja) 2020-07-27
US20200218223A1 (en) 2020-07-09
KR20190118679A (ko) 2019-10-18
JP6997797B2 (ja) 2022-01-18
WO2018222250A1 (en) 2018-12-06
EP3585570A4 (en) 2020-12-16
EP3585570A1 (en) 2020-01-01

Similar Documents

Publication Publication Date Title
US20200218223A1 (en) Automatic Generation of Toolpaths
US11256240B2 (en) Planning and adapting projects based on a buildability analysis
US10800036B1 (en) Tooltip stabilization
JP7111782B2 (ja) 現場で収集された測定値に基づくカスタマイズされたロボット設置
US11253991B1 (en) Optimization of observer robot locations
US10967501B1 (en) Guide placement by a robotic device
US11230016B1 (en) Multi-resolution localization system
JP7158862B2 (ja) 情報処理方法及び情報処理装置
CN103085072A (zh) 基于三维建模软件实现工业机器人离线编程的方法
JP7027036B2 (ja) 自己位置決めロボット
US11040448B2 (en) Methods and systems for establishing and maintaining a pre-build relationship
KR20220140707A (ko) 머신의 하나 이상의 움직임 및 하나 이상의 활동을 훈련하기 위한 핸드헬드 디바이스, 시스템 및 방법
Bidgoli Towards an integrated design making approach in architectural robotics
Bard et al. Decorative Robotic Plastering
BUSHRA AHMED MOHAMED ENERGY MODELLING AND SIMULATION FOR INDUSTRIAL ROBOTS

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E601 Decision to refuse application