KR20190117812A - 구축가능성 분석에 기초한 프로젝트들의 계획 및 적응 - Google Patents

구축가능성 분석에 기초한 프로젝트들의 계획 및 적응 Download PDF

Info

Publication number
KR20190117812A
KR20190117812A KR1020197029571A KR20197029571A KR20190117812A KR 20190117812 A KR20190117812 A KR 20190117812A KR 1020197029571 A KR1020197029571 A KR 1020197029571A KR 20197029571 A KR20197029571 A KR 20197029571A KR 20190117812 A KR20190117812 A KR 20190117812A
Authority
KR
South Korea
Prior art keywords
product
sequence
model
task
task sequence
Prior art date
Application number
KR1020197029571A
Other languages
English (en)
Other versions
KR102334995B1 (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 KR20190117812A publication Critical patent/KR20190117812A/ko
Application granted granted Critical
Publication of KR102334995B1 publication Critical patent/KR102334995B1/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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • 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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/10Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
    • G05B19/102Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4189Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the transport system
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35193Manufacturability
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35499Model of process, machine and parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Manipulator (AREA)
  • General Factory Administration (AREA)

Abstract

본 명세서에서는 모델에 따라 제품을 구축하기 위해 제1 작업 시퀀스를 생성하는 단계를 수반하는 작업 현장 자동화 프로세스가 개시된다. 프로세스는 하나 이상의 로보틱 디바이스로 하여금 제1 작업 시퀀스를 실행하기 시작함으로써 제품을 구축하게 하는 단계를 더 수반한다. 또한, 제1 작업 시퀀스의 실행 동안, 제1 작업 시퀀스를 실행함으로써 제품을 완성할 가능성을 결정하기 위해 구축가능성 분석을 수행한다. 분석에 기초하여, 제1 작업 시퀀스를 실행함으로써 제품을 완성하는 것이 불가능하다고 결정하고, 이에 응답하여, 모델에 따라 제품을 완성하기 위한 제2 작업 시퀀스를 생성한다. 다음으로, 하나 이상의 로보틱 디바이스로 하여금 제2 작업 시퀀스를 실행하기 시작함으로써 제품을 계속하여 구축하게 한다.

Description

구축가능성 분석에 기초한 프로젝트들의 계획 및 적응
본 명세서에서 달리 나타나지 않는 한, 본 섹션에 설명된 자료들은 본 출원의 청구항들에 대한 종래 기술이 아니며, 이러한 섹션에 포함됨으로써 종래 기술인 것으로 인정되지 않는다.
자동화된 제조 프로세스들은 자동차, 벽, 가구, 또는 임의의 수의 다른 물리적 제조물과 같은 생산 제품을 건설하는 데 사용될 수 있는 하나 이상의 로보틱 디바이스의 사용을 수반할 수 있다. 로보틱 디바이스들은 건설 프로세스 동안 사용될 수 있는 그리퍼 또는 드릴과 같은 엔드 이펙터 장착 도구들을 구비할 수 있다. 로보틱 디바이스들은 특정 모션 커맨드들, 및 로보틱 디바이스들로 하여금 프로세스를 완료하게 하기 위한 다른 동작들에 대한 커맨드들의 시퀀스들로 프로그래밍될 수 있다.
본 개시내용은 제품들을 구축 또는 조립하기 위한 작업 현장들에서의 작업들의 로보틱 자동화와 관련된 시스템들 및 프로세스들을 제공한다. 자동화된 작업들이 작업 현장에서 수행되고 있을 때, 본 명세서에 개시된 시스템들 및 프로세스들은 구축 중인 제품의 모델(예를 들어, 구조)로부터의 편차들에 대해 조절될 수 있다. 예를 들어, 작업 현장 자동화 시스템은 최종 제품을 구축하기 위해 작업 시퀀스를 조정할 수 있다. 시스템이 제품을 구축하고 있을 때, 시스템은 시스템이 모델에 따라 제품을 구축하지 못하게 할 수 있는 임의의 문제들을 검출하기 위해 구축가능성 분석을 수행할 수 있다. 구축가능성 분석에 의해, 제품이 현재 작업 시퀀스를 사용하여 구축가능하지 않은 것으로 나타나는 경우, 시스템은 제품의 모델을 반드시 변경하지 않고서도 시스템이 제품을 계속하여 구축하는 것을 허용하는 새로운 작업 시퀀스를 생성할 수 있다. 예를 들어, 시스템이 제품을 구축하는 동안 문제를 검출하는 경우, 시스템은 시스템이 지금까지 구축된[즉, "구축된(as-built)"] 제품의 부분을 완전히 구축해내고 제품이 모델의 요건들을 만족시키도록 제품을 완성하는 것을 허용하는 새로운 작업 시퀀스를 생성한다. 따라서, 시스템은 문제가 검출되기 전에 완료된 임의의 작업을 보존할 수 있다.
일 양태에서, 컴퓨터 구현 방법이 제공된다. 방법은 제품을 구축(building)하는 구축-전 위상(pre-build phase) 동안, 제품의 모델에 따라 제품을 구축하기 위한 제1 작업 시퀀스를 생성하는 단계를 수반한다. 방법은 또한 구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금 제1 작업 시퀀스를 실행하기 시작함으로써 제품을 구축하게 하는 단계를 수반한다. 또한, 방법은 제1 작업 시퀀스의 실행 동안, 제1 작업 시퀀스를 실행함으로써 제품을 완성할 가능성을 결정하기 위해 구축가능성 분석(buildability analysis)을 수행하는 단계를 수반한다. 방법은 분석에 기초하여, 제1 작업 시퀀스를 실행함으로써 제품을 완성하는 것이 불가능하다고 결정하는 단계를 더 수반한다. 그리고, 방법은 제1 작업 시퀀스를 수행함으로써 제품을 완성하는 것이 불가능하다는 결정에 응답하여, 모델에 따라 제품을 완성하기 위한 제2 작업 시퀀스를 생성하는 단계를 수반하고, 여기서 제2 작업 시퀀스는 제1 작업 시퀀스와 다르다. 또한, 방법은 하나 이상의 로보틱 디바이스로 하여금 제2 작업 시퀀스를 실행하기 시작함으로써 제품을 계속하여 구축하게 하는 단계를 수반한다.
다른 양태에서, 작업 현장 자동화 시스템이 제공된다. 시스템은 하나 이상의 로보틱 디바이스; 및 하나 이상의 프로세서 및 하나 이상의 데이터 저장 디바이스를 포함하는 제어 시스템을 포함한다. 제어 시스템은 제품을 구축하라는 명령어를 수신하도록 구성되고, 명령어는 제품에 대한 하나 이상의 제약을 포함한다. 제어 시스템은 또한 구축-전 위상 동안: (ⅰ) 제품에 대한 모델을 결정하고, (ⅱ) 모델에 따라 제품을 구축하기 위한 제1 작업 시퀀스를 생성하도록 구성된다. 또한, 제어 시스템은 구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금 제1 작업 시퀀스의 작업들을 실행하기 시작함으로써 제품을 구축하게 하고; 제1 작업 시퀀스의 실행에서, 제1 작업 시퀀스를 실행함으로써 제품을 완성할 가능성을 결정하기 위해 제1 작업 시퀀스의 구축가능성 분석을 수행하도록 구성된다. 분석에 기초하여, 제품을 완성하는 것이 불가능한 경우, 제어 시스템은 모델에 따라 제품을 완성하기 위한 제2 작업 시퀀스를 생성하고 - 제2 작업 시퀀스는 제1 작업 시퀀스와 다름 -; 하나 이상의 로보틱 디바이스로 하여금 제2 작업 시퀀스를 실행하기 시작함으로써 제품을 계속하여 구축하게 하도록 구성된다.
또 다른 양태에서, 방법이 제공된다. 방법은 설계 위상 동안, 제품의 제1 모델에 대한 제1 작업 시퀀스를 생성하는 단계를 수반한다. 방법은 또한 구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금 제1 작업 시퀀스를 실행하기 시작함으로써 제품을 구축하게 하는 단계를 수반한다. 방법은 제1 작업 시퀀스의 수행 동안, 제1 모델에 따라 제품을 구축할 가능성을 결정하기 위해 제1 모델의 제1 구축가능성 분석을 수행하는 단계, 및 분석에 기초하여, 제2 모델을 결정하는 단계를 더 수반한다. 또한, 방법은 하나 이상의 로보틱 디바이스로 하여금 제2 모델에 따라 제품을 계속하여 구축하게 하는 단계를 수반한다.
이들 및 다른 양태들, 장점들 및 대안들은 적절한 경우 첨부 도면들을 참조하여 이하의 상세한 설명을 읽음으로써 본 기술분야의 통상의 기술자에게 명백해질 것이다. 또한, 이러한 발명의 내용 섹션 및 본 문서의 다른 곳에서 제공되는 설명은 청구 대상을 제한이 아니라 예로서 예시하는 것으로 의도됨을 이해해야 한다.
도 1은 예시적인 실시예에 따른 작업 현장을 도시한다.
도 2는 예시적인 실시예에 따른 로보틱 디바이스 제어 시스템의 컴포넌트들을 도시하는 간략화된 블록도이다.
도 3은 예시적인 실시예에 따른, 제품을 구축하는 위상들을 도시하는 흐름도이다.
도 4는 예시적인 실시예에 따른, 제품을 구축하는 위상들의 프로세스들을 도시하는 흐름도이다.
도 5는 예시적인 실시예에 따른, 설계 위상 동안 수행되는 프로세스들을 도시하는 흐름도이다.
도 6은 예시적인 실시예에 따른 의자의 템플릿을 도시한다.
도 7a는 예시적인 실시예에 따른 테이블에 대한 제약들을 도시한다.
도 7b, 도 7c, 도 7d, 도 7e 및 도 7f는 각각 예시적인 실시예에 따른 테이블의 설계를 도시한다.
도 8a는 예시적인 실시예에 따른 트리 구조를 도시한다.
도 8b는 예시적인 실시예에 따른 작업을 수행하는 로보틱 디바이스를 도시한다.
도 9는 예시적인 실시예에 따른 방법을 도시하는 흐름도이다.
도 10은 예시적인 실시예에 따른 다른 방법을 도시하는 흐름도이다.
도 11은 예시적인 실시예에 따른 로봇의 도면을 도시한다.
도 12는 예시적인 실시예에 따른 로보틱 디바이스의 컴포넌트들을 도시하는 간략화된 블록도이다.
도 13은 예시적인 실시예에 따른 컴퓨팅 디바이스의 컴포넌트들을 도시하는 간략화된 블록도이다.
본 명세서에서는 예시적인 방법들 및 시스템들이 설명된다. 본 명세서에 설명된 임의의 예시적인 실시예 또는 피처는 반드시 다른 실시예들 또는 피처들보다 바람직하거나 유리한 것으로 해석될 필요는 없다. 본 명세서에 설명된 예시적인 실시예들은 제한적인 것으로 의도되지 않는다. 개시된 시스템들 및 방법들의 특정 양태들은 매우 다양한 상이한 구성들로 배열되고 조합될 수 있으며, 이들 모두는 본 명세서에서 고려된다는 것이 쉽게 이해될 것이다.
또한, 도면들에 도시된 특정 배열들은 제한적인 것으로 간주되어서는 안 된다. 다른 실시예들은 주어진 도면에 도시된 각각의 구성요소를 더 많이 또는 더 적게 포함할 수 있음을 이해해야 한다. 또한, 도시된 구성요소들 중 일부는 결합되거나 생략될 수 있다. 또한, 예시적인 실시예는 도면들에 도시되지 않은 구성요소들을 포함할 수 있다.
I. 개요
본 명세서에서는 제품을 구축하기 위한 작업들의 시퀀스를 자동화할 수 있는 시스템이 개시된다. 시스템에 의해 구축되고 있는 제품은 개별 제품일 수 있거나 더 큰 제품 또는 구조물의 일부인 제품일 수 있다. 제품은 제품에 대한 제약들을 또한 지정할 수 있는 사용자에 의해 설계될 수 있다. 지정된 제약들은 제품의 기능적 및/또는 비-기능적 피처들에 대한 제약일 수 있다. 제약들은 또한 제품을 구축하는 프로세스에 대한 성능 제약들일 수 있다. 특히, 제품을 구축하기 위해, 시스템은 제약들을 만족시키는 제품의 모델을 결정할 수 있다. 다음으로, 시스템은 모델에 따라 제품을 구축하기 위해 수행될 수 있는 작업 시퀀스를 결정할 수 있다.
특히, 제품을 구축하는 것은 두 개의 위상을 수반할 수 있다. 제1 위상은 2개의 서브 위상, 즉 설계 위상 및 시뮬레이션 위상을 수반하는 구축-전 위상이다. 설계 위상에서, 시스템은 제품에 대한 모델을 결정할 수 있고, 또한 모델에 따라 제품을 구축하기 위한 작업 시퀀스를 결정할 수 있다. 그리고, 시뮬레이션 위상에서, 시스템은 아마도 제품을 구축하기 위한 작업 시퀀스의 수행, 제품이 구축 중일 때의 제품의 거동(예를 들어, 제품의 안정성) 및/또는 제품의 중간 스테이지들을 시뮬레이션함으로써 제품 구축을 시뮬레이션할 수 있다. 제품을 구축하는 제2 위상은 구축 위상이다. 구축 위상에서, 시스템은 실제 제품을 구축하기 위해 작업 시퀀스를 수행할 수 있다.
그러나, 위상들 중 임의의 것에서, 시스템이 제품을 구축하는 것을 방해할 수 있는 오류들이 발생할 수 있다. 특히, 오류들은 시스템으로 하여금 요구되는 사양들로부터 벗어나는 제품을 구축하게 할 수 있다. 예를 들어, 구축 위상 동안, 구축된 제품의 모델로부터의 편차들이 발생할 수 있다. 이러한 편차들은 누적되어 최종 제품에 바람직하지 않은 효과(예를 들어, 결함)를 발생시킬 수 있다. 일반적으로, 시스템은 구축-전 위상 및/또는 구축 위상에서 최종 제품에 바람직하지 않은 효과들을 발생시킬 수 있는 문제들에 직면할 수 있다.
따라서, 시스템이 제품을 구축하는 것을 방해할 수 있거나 시스템으로 하여금 요구되는 사양들을 만족시키지 않는 제품을 구축하게 할 수 있는 오류들을 피하기 위해, 시스템은 제품 또는 그것의 특정 부분을 구축할 가능성을 결정하는 구축가능성 분석을 수행할 수 있다. 일반적으로, 시스템은 구축-전 위상 동안 구축-전 구축가능성 분석들을 수행한 다음, 구축 위상 동안(예를 들어, 구축의 시작에서 및/또는 구축 도중에) 구축 구축가능성 분석들을 수행할 수 있다. 구축-전 구축가능성 분석들은, 시스템이 제품의 모델을 정확하고 효율적으로 결정하는 것을 허용할 수 있다. 구축-전 구축가능성 분석들은 시스템이 특정 작업 시퀀스가 제품의 성공적인 완성을 야기할 수 있음을 검증하는 것을 허용할 수 있다. 또한, 구축 구축가능성 분석에 의해, 시스템은 시스템이 제품을 구축하고 있는 동안 발생할 수 있는 임의의 문제들 또는 변경들을 검출하고 효율적으로 그에 맞춰 적응할 수 있게 된다. 시스템은 문제들을 검출하고 그에 맞춰 적응함으로써, 요구되는 사양들에 따라 제품이 구축될 가능성을 향상시킬 수 있다.
예에서, 시스템은 시스템이 설계 위상에서 제품의 모델을 결정함에 따라 제1 구축가능성 분석을 수행할 수 있다. 특히, 제1 구축가능성 분석은 모델이 제품에 대한 임의의 제약들을 만족시키는지를 결정할 수 있다. 본 명세서에서 설명되는 바와 같이, 제품 제약들은 구축 중인 제품을 포괄하는 제품들의 클래스의 피처들을 정의한다. 예를 들어, 테이블에 대한 제품 제약은, 테이블이 표면을 지지하는 하나 이상의 다리 또는 지지 부재를 가지며, 그에 의해 다리들이 평평한 바닥에 배치될 때 표면이 평평하거나 수평이게 된다는 것일 수 있다. 모델을 결정한 후, 제1 구축가능성 분석은 테이블의 모델이 다른 제약들 중에서도 최소 다리 개수 및 최상부 표면의 배향에 대한 제약들을 만족시키는 테이블을 설명하는지를 결정할 수 있다. 분석에 의해, 모델이 제약들을 만족시키지 않는 것으로 결정되면, 시스템은 모델이 구축가능하지 않다고 결정할 수 있다. 그러나, 모델이 제약들을 만족시키면, 분석은 모델이 구축가능하고 결정할 수 있다.
설계 위상 동안 수행되는 구축가능성 분석은, 모델이 예를 들어 사용자에 의해 지정될 수 있는 테이블에 대한 다른 요구되는 제약들을 만족시키는지를 또한 결정할 수 있다. 예를 들어, 제약들은 다른 피처들 또는 속성들 중에서도 테이블의 하중 제한, 무게 중심, 안정성, 응력(예를 들어, 휨 응력), 강도(예를 들어, 좌굴 강도)와 같은, 테이블의 요구되는 피처들 또는 속성들을 정의할 수 있다. 설계 위상 동안의 구축가능성 분석은 또한 모델이 제약들에 의해 정의되는 비-기능적 피처들을 만족시키는지를 결정할 수 있다. 예를 들어, 시스템은 모델이 제약들에 의해 정의되는 요구되는 심미적 피처들(예를 들어, 각인, 고정물 등)을 만족시키는지를 결정할 수 있다.
구축가능성 분석이 모델이 구축가능하지 않다고 결정하는 경우, 시스템은 새로운 모델을 결정할 수 있고, 또한 새로운 모델에 대해 구축가능성 분석을 수행할 수 있다. 이 프로세스는 주기적이므로, 구축가능성 분석은 시스템에 의해 구축가능한 모델을 결정할 때까지 반복될 수 있다. 시스템이 구축가능한 모델을 결정하고 나면, 시스템은 구축가능한 모델을 만족시키는 제품을 구축하기 위해 수행될 수 있는 작업 시퀀스를 생성할 수 있다. 실시예에서, 시스템은 제품을 구축하기 위해 가능한 작업 시퀀스를 생성하기 위해 트리 구조를 사용할 수 있다. 다음으로, 시스템은 제품을 구축하기 위해 가능한 작업 시퀀스를 선택할 수 있다.
일단 작업 시퀀스가 선택되고 나면, 시스템은 시뮬레이션 위상으로 진행할 수 있고, 그 동안 시스템은 작업 시퀀스의 수행을 시뮬레이션할 수 있다. 구체적으로, 시스템은 시스템에 이용가능한 자원들을 사용하여 작업들의 수행을 시뮬레이션할 수 있다. 자원들은 작업을 수행하기 위한 이용가능한 작업자들, 작업자들이 작업들을 수행하기 위해 사용할 수 있는 이용가능한 도구들, 및 제품을 구축하기 위한 이용가능한 재료들을 포함할 수 있다. 예를 들어, 시스템은 시스템에 이용가능한 자원들(예를 들어, 부품들, 재료들 등)을 사용하여 작업 시퀀스를 수행하는 로보틱 디바이스들을 시뮬레이션할 수 있다. 시스템에 이용가능한 자원들을 사용하여 작업 시퀀스를 시뮬레이션함으로써, 시스템은 구축가능성 분석을 수행하여, 자신이 결정된 모델에 따라 제품을 구축할 자원들을 갖는지를 결정할 수 있다. 예를 들어, 시뮬레이션 동안, 분석은 시스템이 작업 시퀀스의 각각의 작업을 수행하도록 구성될 수 있는 로보틱 디바이스들에 액세스할 수 있는지를 결정할 수 있다. 예로서, 테이블을 구축하는 작업들 중 하나는 샌딩 작업일 수 있고, 구축가능성 분석은 시스템이 샌딩 작업을 수행하도록 구성될 수 있는 로보틱 디바이스를 포함하는지를 결정할 수 있다.
시뮬레이션 위상 동안, 시스템은 또한 시퀀스의 작업들이 수행되는 순서("동작들의 순서"라고도 함)를 결정할 수 있다. 이러한 시스템에서, (시뮬레이션 위상 동안의) 구축가능성 분석은 결정된 동작들의 순서에 따라 작업들이 수행될 수 있는지를 결정하는 것을 수반할 수 있다. 예에서, 분석은 작업들이 결정된 순서대로 수행되는 경우 제품이 구축되고 있는 동안 안정적인지를 결정할 수 있다. 다른 예에서, 분석은 또한 제품을 구축할 때 임의의 충돌들이 발생하는지를 결정할 수 있다. 예를 들어, 분석은 작업들을 수행하도록 할당된 로보틱 디바이스들 사이에서 임의의 타이밍 또는 공간 충돌이 발생하는지를 결정할 수 있다. 또 다른 예에서, 분석은 결정된 작업 시퀀스를 사용하여 제품이 구축되는 경우 성능 제약들이 만족되는지를 결정할 수 있다. 예를 들어, 시뮬레이션에 기초하여, 분석은 제품을 구축하기 위한 추정 시간을 결정한 다음, 성능 시간이 성능 제약들을 만족시키는지를 결정할 수 있다.
시뮬레이션 위상 동안 구축가능성 분석을 수행함으로써, 시스템은 시스템에 이용가능한 자원들을 사용하여 제품이 구축가능한지를 결정할 수 있다. 제품이 구축가능하지 않은 경우, 시스템은 모델에 따라 제품을 구축하기 위한 새로운 작업 시퀀스를 결정할 수 있다. 일부 예들에서, 시스템은 미리 결정된 임계 수의 시퀀스들을 테스트할 수 있고, 분석은 그것들 각각이 구축불가능하다고 결정한다. 이러한 예들에서, 시스템은 모델이 구축가능하지 않다고 결정할 수 있고, 제품에 대한 새로운 모델을 결정하기 위해 설계 위상으로 되돌아갈 수 있다. 반대로, 분석에 의해, 시스템의 자원들을 사용하여 제품이 구축가능하다고 결정되면, 시스템은 구축 위상으로 이동할 수 있다.
구축 위상에서, 시스템은 작업 현장에 위치된 로보틱 디바이스들에 명령어들을 송신함으로써 작업 현장에서 제품을 구축할 수 있다. 명령어들은 로보틱 디바이스들로 하여금, 결정된 동작들의 순서에 따라 작업들을 수행하게 한다. 이 위상에서, 시스템은 시스템이 그에 맞춰 적응할 것을 요구할 수 있는 임의의 문제들 또는 변화들이 발생했는지를 결정하기 위해 구축가능성 분석을 수행할 수 있다. 구체적으로, 시스템은 작업 현장을 나타내는 데이터를 (예를 들어, 센서들로부터 및/또는 로보틱 디바이스들로부터의 피드백으로부터) 수신할 수 있고, 분석은 모델로부터의 임의의 편차들이 발생했는지를 결정하기 위해 그 데이터를 사용할 수 있다. 분석은 또한 장래에 임의의 편차들이 발생할 수 있는지를 결정할 수 있다. 분석은 작업 현장의 조건들(예를 들어, 환경 조건들, 장애물들), 제품의 현재 상태(예를 들어, 완성된 구조물들 및/또는 완료된 작업들의 상태), 이용가능한 자원들, (예를 들어, 사용자에 의한) 제약들에 대한 변경들, 및 설계로부터의 편차(예를 들어, 구조 설계로부터의 편차들 또는 시간 지연)에 기초할 수 있다. 분석이 편차(현재의 편차 또는 예상되는 편차)를 검출하면, 분석은 제품이 구축가능하지 않다고 나타낼 수 있다.
실시예에서, 제품이 구축가능하지 않다는 결정에 응답하여, 시스템은 설계 위상으로 되돌아갈 수 있다. 설계 스테이지에서, 시스템은 트리 구조를 사용하여, 원래의 작업 시퀀스를 대신하여 수행될, 제품을 구축하기 위한 새로운 작업 시퀀스를 생성할 수 있다. 구체적으로, 시스템은 지금까지 구축된 제품의 부분 상에 구축하는 작업 시퀀스를 생성하기 위해 트리 구조를 사용할 수 있다. 이러한 것으로서, 새로운 작업 시퀀스는 수행된 작업을 보존한다. 수행된 작업을 보존하면, 시간 및 비용들을 절약할 수 있다. 또한, 새로운 모델을 생성하는 것은 집약적인 컴퓨팅 전력 및 상당한 시간량을 필요로 할 수 있고, 이는 높은 비용을 초래하고 제품 완성을 지연시킬 것이므로, 새로운 작업 시퀀스를 생성하는 것이 유리할 수 있다.
II. 예시적인 시스템들 및 방법들
A. 예시적인 작업 현장 좌표 프레임
도 1은 예시적인 실시예에 따른 작업 현장 좌표 프레임(100)을 도시한다. 작업 현장 좌표 프레임(100)은 객체들, 기계들, 및 아마도 사람들이 위치될 수 있는 물리적 환경의 부분을 정의할 수 있다. 작업 현장 좌표 프레임(100)은 3차원 형태를 취할 수 있으며, 다양한 목적으로 사용될 수 있다. 예를 들어, 작업 현장 좌표 프레임(100)은 건물의 건설 또는 다른 프로젝트가 수행되고 있거나 수행되려고 하는 건설 현장에 대해 정의될 수 있다. 이러한 것으로서, 작업 현장 좌표 프레임(100)은 물리적 구축 프로세스가 물리적 세계 내에서 계획되거나 발생하고 있는 물리적 스테이지 또는 스테이지(들)를 포함할 수 있다.
그러나, 본 개시내용의 다양한 양태들은 아래에서 건설 현장의 맥락에서 논의되지만, 예시적인 구현예들은 건설 현장들로 제한되지 않으며, 다른 예들 중에서도 소매 공간, 제조 시설, 유통 시설, 사무실 공간, 쇼핑 센터, 축제장 및/또는 공항 등과 같은 다양한 다른 작업 현장 좌표 프레임들로 확장될 수 있다. 추가적으로, 하나의 작업 현장 좌표 프레임(100)이 도 1에 도시되어 있지만, 예시적인 구현예들은 복수의 작업 현장 좌표 프레임의 맥락에서 수행될 수 있다.
도 1에 도시된 바와 같이, 작업 현장 좌표 프레임(100)은 복수의 자원을 포함한다. 자원들은 하나 이상의 행위자, 디바이스, 하드웨어 컴포넌트 및/또는 물리적 재료를 포함할 수 있다. 물리적 재료들은 건설 자재들(140)일 수 있으며, 이는 건설 현장에 위치된 임의의 재료들 또는 도구들일 수 있다. 예를 들어, 도 1에서, 건설 자재들(140)은 벽돌들의 팔레트로서 도시되어 있다. 예들에서, 작업 현장 좌표 프레임(100) 내의 행위자들은 로보틱 행위자들 및 인간 행위자들을 포함할 수 있다. 인간 행위자들은 하나 이상의 기술을 가질 수 있다. 예를 들어, 인간 행위자는 목수일 수 있다. 또한, 인간 행위자들은 컴퓨팅 디바이스들을 사용하여 로보틱 행위자들 및 디바이스들과 인터페이스할 수 있다.
작업자 로봇(130)은 작업 현장 좌표 프레임(100) 내에서 작업을 수행하도록 구성된 로보틱 디바이스일 수 있다. 도시된 시나리오에서, 작업자 로봇(130)은 로보틱 암에 장착된 엔드 이펙터 도구를 포함한다. 엔드 이펙터 도구들은 작업 표면 상에서, 드릴링, 밀링, 절단, 용접, 네일링, 리벳팅, 샌딩, 스프레이, 그리핑, 압출, 에칭, 각인 또는 건물의 건설 동안 일반적으로 수행되는 다른 작업과 같은 작업을 수행하도록 구성될 수 있다. 또한, 작업자 로봇(130)의 로보틱 암은 상이한 유형들의 엔드 이펙터들이 부착될 수 있는 마운트를 포함할 수 있다. 그러한 것으로서, 작업자 로봇(130)이 상이한 유형들의 작업들을 수행할 수 있도록 상이한 엔드 이펙터들이 교체될 수 있다. 또한, 작업자 로봇(130)은 작업 현장 전체를 이동할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 작업자 로봇(130)은 휠들을 포함할 수 있다. 그러나, 이동성을 제공하기 위한 다른 구성들(예를 들어, 2족 디바이스들, 4족 디바이스들, 트레드들, 트랙들 등)도 가능하다.
도 1에 도시된 바와 같이, 작업 현장 좌표 프레임(100)은 다수의 파일론 마커(pylon markers)(104)를 포함한다. 파일론 마커들(104)은 작업 현장 좌표 프레임(100)의 경계들에 및/또는 작업 현장 좌표 프레임(100) 전체에 걸쳐 위치될 수 있고, 작업 현장 좌표 프레임(100) 내에 3차원 좌표계(102)를 확립하기 위해 이용될 수 있다. 예를 들어, 3차원 좌표계(102)는 x축, y축 및 z축을 갖는 직교 좌표계일 수 있다. 파일론 마커들(104) 중 하나는 좌표계(102)의 원점으로서 지정될 수 있고, 나머지 파일론 마커들(104)은 원점으로부터 알려진 거리만큼 이격될 수 있다. 결과적으로, 파일론 마커들(104) 각각은 좌표계(102) 내의 알려진 (x, y, z) 좌표에 연관될 수 있으며, 여기서 x, y 및 z 좌표는 각각 x, y 및 z축을 따른 원점 파일론 마커로부터의 거리에 대응한다.
파일론 마커들(104)은 반드시 작업 현장 좌표 프레임(100)의 경계들에 위치될 필요가 있는 것이 아니라, 대안적으로 또는 추가적으로 작업 현장 좌표 프레임(100) 전체에 걸쳐 다양한 알려진 위치들에 배열될 수 있다. 예를 들어, 일부 실시예들에서, 파일론 마커들(104)은 작업 현장 전체에 걸쳐 2차원 또는 3차원 그리드로 배열될 수 있다. 그러나, 다른 구성들도 물론 가능하며, 파일론 마커들(104)은 작업 현장 좌표 프레임(100) 내의 임의의 방식의 알려진 위치들에 배열될 수 있다.
파일론 마커들(104)은 로보틱 디바이스(120)의 레이저 트래커가 로보틱 디바이스(120)에 대한 파일론 마커들(104)의 위치를 측정할 수 있도록 역반사성(retroreflective)일 수 있다. 로보틱 디바이스(120)로부터 알려진 좌표들을 갖는 파일론 마커의 위치를 결정함으로써, 로보틱 디바이스(120)의 좌표들이 도출될 수 있다. 로보틱 디바이스(120)가 작업 현장 좌표 프레임(100) 주위를 이동할 때, 그것은 때때로 그것의 레이저 트래커와 파일론 마커(104) 사이에 시선을 제공할 수 있다. 이는 그것이 작업 현장 좌표 프레임(100) 주위를 이동할 때 로보틱 디바이스(120)의 위치에 대한 업데이트된 좌표들을 제공한다.
파일론 마커들(104)에 더하여, 작업 현장 좌표 프레임(100)은 다수의 추가 마커(112)를 포함할 수 있다. 마커들(112)은 작업 현장 좌표 프레임(100) 전체에 걸쳐 다양한 대상 객체들에 부착될 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 각각의 마커들(112)은 로보틱 디바이스(120), 작업자 로봇(130), 및/또는 건설 자재들(140)에 부착될 수 있다. 마커들(112)의 위치는 로보틱 디바이스(120), 작업자 로봇(130), 및/또는 건설 자재들(140)에 연관된 좌표계(102) 내의 좌표들을 제공하도록 측정될 수 있다.
일부 실시예들에서, 작업 현장 좌표 프레임(100) 내에서 대상 객체의 위치를 결정하는 것은 단순히 3차원 좌표계 내에서 단일 지점의 위치를 결정하는 것 이상을 수반할 수 있다. 예를 들어, 일부 실시예들에서, 한 세트의 지점들의 위치들은 대상 객체의 체적을 정의하도록 결정될 수 있다. 예를 들어, 도 1을 참조하면, 건설 자재들(140)의 체적을 표현하는 3차원 공간이 결정될 수 있다. 로보틱 디바이스는 건설 자재들(140)에 부착된 한 세트의 마커들(112)의 위치들을 결정할 수 있다. 마커들(112)은 건설 자재들(140)의 경계들 또는 에지들에 부착될 수 있거나, 일부 실시예들에서, 마커들(112)은 임의의 알려진 방식으로 건설 자재들(140) 상에 배열될 수 있다. 건설 자재들(140) 상에 배열된 마커들(112)의 세트의 위치를 결정함으로써, 작업 현장 좌표 프레임(100) 내의 건설 자재들(140)의 형상을 나타내는 3차원 체적의 위치가 결정될 수 있다. 마찬가지로, 다양한 대상 객체들 상에 배열된 마커들(112)의 세트들의 위치들을 결정함으로써, 이동자 로봇(120), 작업자 로봇(130), 또는 작업 현장 좌표 프레임(100) 내의 임의의 다른 객체에 대해, 작업 현장 좌표 프레임(100) 내에서의 3차원 체적들 및 그들의 위치들이 결정될 수 있다.
일부 실시예들에서, 작업 현장 좌표 프레임(100)에서의 대상 객체의 위치를 결정하는 것은 작업 현장 좌표 프레임(100)에 대한 대상 객체의 자세를 결정하는 것을 포함할 수 있다. 대상 객체의 자세는 객체의 위치 및 배향의 조합을 포함할 수 있다. 다른 것들 중에서도, 분석적 또는 기하학적 방법들, 유전자 알고리즘 방법들, 및/또는 학습-기반 방법들을 포함하여, 대상 객체의 자세를 결정하기 위해 다양한 프로세스가 사용될 수 있다.
일부 실시예들에서, 대상 객체가 로보틱 디바이스인 경우, 로봇의 자세는 그것의 동작 상태에 기초하여 결정될 수 있다. 로보틱 디바이스는 상이한 자세들을 초래하는 다양한 동작 상태들을 가질 수 있다. 제어 시스템은 로보틱 디바이스의 동작 상태를 결정할 수 있다. 로보틱 디바이스의 체적 및/또는 형상이 이미 알려져 있거나 다르게 결정되었다면, 제어 시스템은 결정된 동작 상태에 기초하여 로보틱 디바이스의 자세를 결정할 수 있다.
예를 들어, 도 1을 참조하면, 작업자 로봇(130)은 그것의 동작 상태에 기초하여 임의의 수의 자세로 위치될 수 있는 로보틱 암을 포함한다. 하나의 동작 상태는 작업 표면 상에 작업을 수행하도록 로보틱 암을 구성하는 것을 포함할 수 있다. 그러나, 동작 상태는 연관된 자세를 야기하는 작업 현장 좌표 프레임(100) 내의 로보틱 디바이스의 임의의 구성을 포함할 수 있다. 로보틱 암의 다양한 컴포넌트들의 체적 및 형상은 알려져 있거나 다르게 결정될 수 있다. 따라서, 작업자 로봇(130)의 동작 상태에 기초하여 로보틱 암의 자세(예를 들어, 위치 및 배향)를 결정함으로써, 작업 현장 좌표 프레임(100) 내에서 로보틱 암이 차지하는 공간을 표현하는 3차원 체적이 결정될 수 있다.
B. 예시적인 로보틱 제어 시스템들
도 2는 본 명세서에 설명된 실시예들과 관련하여 사용될 수 있는 로보틱 제어 시스템(200)의 예시적인 구성을 도시한다. 로보틱 제어 시스템(200)은 자율적으로, 반자율적으로, 및/또는 사용자(들)에 의해 제공된 지시들을 사용하여 동작하도록 구성될 수 있다. 로보틱 제어 시스템(200)은 건설 현장, 생산 현장, 제조 현장, 검사 또는 품질 관리 현장 등과 같은 작업 현장의 관리를 책임질 수 있다. 예를 들어, 건설 또는 제조 작업 현장에서, 로보틱 제어 시스템(200)은 제품(또는 상호교환가능하게 "생산 제품"이라고도 지칭됨)의 건설 또는 제조를 조정할 책임이 있을 수 있다. 특히, 이러한 로보틱 제어 시스템은 제품을 건설하도록 하나 이상의 로보틱 디바이스를 제어할 수 있고, 또한 하나 이상의 센서를 사용하여 환경을 모니터링할 수 있다.
도 2에 도시된 바와 같이, 로보틱 디바이스 제어 시스템(200)은 엔드 이펙터(220)를 제어하도록 구성된 로보틱 디바이스(210)를 포함한다. 엔드 이펙터(220)는 작업 표면(예를 들어, 생산 제품의 표면) 상에서 작업을 수행하도록 구성된 도구 엔드 이펙터일 수 있고, 로보틱 디바이스(210)의 로보틱 암과 같은 이동가능한 컴포넌트에 장착될 수 있다. 로보틱 디바이스(210)는 작업 현장[예를 들어, 도 1에 도시된 현장(100)] 내에 위치될 수 있다.
일례에 따르면, 작업 현장은 로보틱 디바이스들이 제품(예를 들어, 테이블, 비행기 날개 등)을 조립하기 위해 조립 라인에 부품들을 설치하는 공장 플로어일 수 있다. 추가 예에 따르면, 작업 현장은 조립 라인이 아니라, 로보틱 디바이스들이 다양한 부품들을 결합하여 물리적 구조물을 건설하는 작업 현장일 수 있다. 이러한 예들에서, 작업 현장은 임시 위치일 수 있고, 최종 물리적 구조물은 완전히 구축된 때 그 위치로부터 (예를 들어, 제품으로서) 다른 위치(예를 들어, 유통업자 또는 고객 위치)로 배송될 수 있다.
또 다른 예에 따르면, 작업 현장은 로보틱 디바이스들이 무거운 건설 자재들로 작업하여 교량 또는 도로를 건설하는 도시 현장일 수 있다. 다른 예에 따르면, 작업 현장은 로보틱 디바이스들이 건설 자재들로 작업하여 주택 또는 건물을 건설하는 건설 현장일 수 있다. 작업 현장은 또한 로보틱 디바이스들이 주택의 한 섹션을 건설하기 위해 하우징 자재들을 설치하는 주택의 내부일 수 있다. 이러한 예들에서, 최종 물리적 구조물은 작업 현장에 설치된다.
로보틱 제어 시스템(200)은 작업 현장을 나타내는 환경 데이터를 제공하도록 구성된 로컬 센서(들)(230) 및 글로벌 센서(들)(240)를 더 포함할 수 있다. 예를 들어, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)는 예를 들어 시스템에 의해 구축되고 있는 제품과 같은 작업 현장 내의 다양한 객체들의 위치를 결정할 수 있다. 다른 예로서, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)는 로보틱 제어 시스템(200)이 작업 현장의 "월드 맵"을 생성하기 위해 사용할 수 있는 데이터를 로보틱 제어 시스템(200)에 제공할 수 있다. 월드 맵은 작업 현장의 실시간 또는 거의 실시간 표현을 나타낼 수 있다. 따라서, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)는 로보틱 제어 시스템(200)이 월드 맵을 연속적으로 또는 주기적으로 업데이트할 수 있도록 데이터를 로보틱 제어 시스템(200)에 제공할 수 있다. 로보틱 제어 시스템(200)은 또한 센서 데이터 및/또는 월드 맵을 사용하여 작업 현장에서의 작업의 수행을 추적할 수 있다. 구체적으로, 로보틱 제어 시스템(200)은 작업에 참여하는 임의의 로보틱 디바이스, 작업을 수행하는 데 사용된 임의의 재료들, 및 작업을 수행한 결과로서의 구축된 제품에 대한 임의의 변경들을 추적할 수 있다.
추가적으로, 로컬 센서(들)(230)는 로보틱 디바이스(210) 상에 또는 로보틱 디바이스 내에 배열될 수 있고, 작업 표면(예를 들어, 구축 중인 제품의 표면)에 대한 엔드 이펙터(220)의 위치를 측정하도록 구성될 수 있다. 로컬 센서(들)(230)는 또한 작업 표면의 피처들을 스캔하거나 캡처하도록 구성될 수 있다. 한편, 글로벌 센서(들)(240)는 작업 현장 내에 배열될 수 있고, 작업 현장의 좌표계에 대한 생산 제품의 위치를 측정하도록 구성될 수 있다. 글로벌 센서(들)(240)는 또한 좌표계 또는 다른 객체(예를 들어, 로보틱 디바이스의 베이스의 위치)에 대한 엔드 이펙터(220)의 위치를 측정하도록 구성될 수 있다. 또한, 글로벌 센서(들)는 로보틱 디바이스(210)의 위치를 측정하도록 구성될 수도 있다.
실시예에서, 글로벌 센서(들)(240)는 매우 높은 해상도(예를 들어, 수백 분의 1 밀리미터)를 갖는 레이저 트래커 시스템을 포함할 수 있다. 레이저 트래커 시스템은 작업 현장에서 객체들의 위치를 결정하는 데 사용될 수 있다. 그러나, 글로벌 센서(들)(240)는 레이저 트래커 시스템들로 제한되는 것이 아니라, 다른 것들 중에서도 특히, 모션 캡처 센서들, 스캐너들, 광 검출 및 레인지(light detection and range)(LIDAR) 센서들, 포인트 클라우드 센서들, 초음파 레인지 센서들, 전지구적 측위 시스템(Global Positioning System)(GPS) 수신기들, 소나, 광학 센서들, 무선 주파수 식별(Radio Frequency identification)(RFID) 시스템, 근거리 통신(Near Field Communication)(NFC) 칩들, 무선 센서들, 라디오 센서들, 레이더들, 카메라들(예를 들어, 컬러 카메라, 흑백 카메라, 및/또는 적외선 카메라들), 및/또는 레인지 센서들(예를 들어, 초음파 및/또는 적외선)과 같이, 작업 현장에 위치된 객체들의 피처들을 캡처할 수 있는 임의의 센서를 포함할 수 있다.
로컬 센서(들)(230)는 광학 흐름 데이터를 제공하기 위한 고속 카메라 또는 관성 측정 유닛(IMU)을 포함할 수 있다. 그러나, 로컬 센서(들)(230)는 고속 카메라들 또는 IMU들에 제한되는 것이 아니라, 작업 표면에 대하여 엔드 이펙터(220)의 위치를 측정할 수 있거나, 작업 표면의 피처들을 캡처할 수 있는 임의의 센서를 포함할 수 있다. 이러한 센서들은 다른 것들 중에서도 특히, 힘 센서들, 근접 센서들, 모션 센서들(예를 들어, 자이로스코프들 및/또는 가속도계들), 하중 센서들, 위치 센서들, 열 화상 센서들, 깊이 센서들(예를 들어, RGB-D, 레이저, 구조화된 광 및/또는 비행 시간 카메라), 초음파 레인지 센서들, 적외선 센서들, 광학 센서들, 무선 주파수 식별(RFID) 시스템들, 근거리 통신(NFC) 칩들, 무선 센서들, 광 센서들, 터치 센서들(예를 들어, 용량성 센서들), 스캐너들, 카메라들(예를 들어, 컬러 카메라들, 흑백 카메라들 및/또는 적외선 카메라들) 및/또는 레인지 센서들(예를 들어, 초음파 및/또는 적외선)을 포함한다. 일부 실시예들에서, 작업 표면에 대한 엔드 이펙터(220)의 위치는 휠 주행거리 측정 및/또는 로봇 포워드 운동학을 사용하여 결정될 수 있다.
추가적으로, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)는 다른 가능한 위치들 중에서도 작업 현장의 내부 또는 근처에 위치될 수 있다. 예를 들어, 로컬 센서(들)(230)는 로보틱 디바이스(210)에 부착될 수 있다. 일부 실시예들에서, 글로벌 센서(들)(240)는 예를 들어 전용 감지 설비로서 작업 현장에 걸쳐 고정된 위치들에 배열될 수 있다. 또한, 예시적인 구현예는 또한 이동 전화기들, 랩탑들 및/또는 태블릿들과 같은 기존 디바이스들 내에 통합된 센서들을 사용할 수 있다. 이러한 디바이스들은 생산 현장에 위치해 있는 작업자들, 예를 들어 건설 현장의 건설 작업자들의 소유물일 수 있다.
도 2는 또한 로컬 센서(들)(230) 및 글로벌 센서(들)(240)로부터 데이터를 수신할 수 있는 컨트롤러(250)를 도시한다. 특히, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)는 통신 유닛(260)을 통해 센서 데이터를 컨트롤러(250)에 제공할 수 있다. 통신 유닛(260)은 유선 링크들 및/또는 무선 링크들(예를 들어, 다양한 무선 송신기들 및 수신기들을 사용함)을 포함할 수 있다. 유선 링크는 예를 들어 병렬 버스, 또는 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" 데이터 접속과 같은 다수의 유선 및/또는 무선 프로토콜이 사용될 수 있다.
다른 예들에서, 로보틱 제어 시스템(200)은 액세스 포인트를 포함할 수 있고, 로컬 센서(들)(230) 및 글로벌 센서(들)(240) 및/또는 컨트롤러(250)는 그를 통해 클라우드 서버와 통신할 수 있다. 액세스 포인트들은 무선 액세스 포인트(WAP) 또는 무선 라우터의 형태와 같은 다양한 형태들을 취할 수 있다. 또한, CDMA 또는 GSM 프로토콜과 같은 셀룰러 에어 인터페이스 프로토콜을 사용하여 접속이 이루어지면, 액세스 포인트는 셀룰러 네트워크를 통해 인터넷 접속을 제공하는 셀룰러 네트워크의 기지국일 수 있다. 다른 예들도 가능하다.
컨트롤러(250)는 하나 이상의 프로세서(들)(252), 데이터 저장소(254), 프로그램 명령어들(256), 입력/출력 유닛(258), 및 전력 소스(262)를 포함하는 것으로 도시되어 있다. 본 개시내용의 범위를 벗어나지 않고서, 컨트롤러(250)는 추가적인 컴포넌트들을 포함할 수 있고/있거나 하나 이상의 컴포넌트를 제거할 수 있으므로, 컨트롤러(250)는 예시의 목적으로만 보여진다는 점에 유의해야 한다. 또한, 컨트롤러(250)의 다양한 컴포넌트들은 임의의 방식으로 배열되고 접속될 수 있음에 유의해야 한다. 컨트롤러(250)는 로보틱 디바이스(210)에 전체적으로 또는 부분적으로 통합될 수 있고, 또는 다른 가능한 것들 중에서도 데스크탑 컴퓨터, 랩탑, 태블릿, 웨어러블 컴퓨팅 디바이스, 및/또는 이동 전화기의 형태를 취할 수 있다.
하나 이상의 프로세서(들)(252)로부터의 각각의 프로세서는 범용 프로세서 또는 특수 목적 프로세서(예를 들어, 디지털 신호 프로세서들, 주문형 집적 회로들 등)일 수 있다. 프로세서(들)(252)는 데이터 저장소(254)에 저장되고 본 명세서에 설명된 컨트롤러(250)의 기능을 제공하도록 실행가능한 컴퓨터 판독가능한 프로그램 명령어들(256)을 실행하도록 구성될 수 있다. 예를 들어, 프로그램 명령어들(256)은 로컬 센서(들)(230) 및 글로벌 센서(들)(240)로부터 수신된 센서 데이터의 처리를 제공하도록 실행가능할 수 있다.
데이터 저장소(254)는 프로세서(들)(252)에 의해 판독되거나 액세스될 수 있는 하나 이상의 컴퓨터 판독가능한 저장 매체의 형태를 취하거나 그것을 포함할 수 있다. 하나 이상의 컴퓨터 판독가능한 저장 매체는 프로세서(들)(252)와 전체적으로 또는 부분적으로 통합될 수 있는 광학, 자기, 유기, 또는 다른 메모리 또는 디스크 저장소와 같은 휘발성 및/또는 비-휘발성 저장 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 데이터 저장소(254)는 단일 물리적 디바이스(예를 들어, 하나의 광학, 자기, 유기 또는 다른 메모리 또는 디스크 저장 유닛)를 사용하여 구현될 수 있는 한편, 다른 실시예들에서, 데이터 저장소(254)는 둘 이상의 물리적 디바이스를 사용하여 구현될 수 있다. 또한, 컴퓨터 판독가능한 프로그램 명령어들(256)에 더하여, 데이터 저장소(254)는 다른 가능한 것들 중에서도 진단 데이터와 같은 추가 데이터를 포함할 수 있다. 또한, 컨트롤러(250)는 컨트롤러(250)의 다양한 컴포넌트들에 전력을 공급하도록 구성된 전력 소스(262)를 또한 포함할 수 있다. 배터리로부터의 직류 또는 전기 본선으로부터의 교류와 같은 임의의 유형의 전력 소스가 사용될 수 있다.
도 1은 입력/출력 유닛(258)을 포함하는 컨트롤러(250)를 더 도시한다. 입력/출력 유닛(258)은 디스플레이를 통해 사용자에게 정보를 출력할 수 있다. 디스플레이는 임의의 형태를 취할 수 있고, 이미지 및/또는 그래픽을 컨트롤러(250)의 사용자에게 투영하도록 배열될 수 있다. 예시적인 배열에서, 입력/출력 유닛(258) 내의 프로젝터는 이미지들 및/또는 그래픽들의 다양한 투영들을 디스플레이의 표면 상에 투영하도록 구성될 수 있다. 디스플레이는 전계발광 디스플레이 또는 액정 디스플레이와 같은 불투명 또는 투명(또는 반투명) 매트릭스 디스플레이, 이미지를 사용자의 눈에 전달하기 위한 하나 이상의 도파관, 또는 이미지를 사용자에게 전달할 수 있는 다른 광학 요소를 포함할 수 있다. 이러한 매트릭스 디스플레이를 구동하기 위해, 대응하는 디스플레이 드라이버가 컨트롤러(250) 내에 배치될 수 있다. 디스플레이를 위한 다른 배열들도 가능할 수 있다. 그러한 것으로서, 디스플레이는 애플리케이션을 제공할 수 있는 그래픽 인터페이스를 보여줄 수 있고, 사용자는 그를 통해 본 명세서에 개시된 시스템들과 상호작용할 수 있다.
또한, 로보틱 제어 시스템(200)은 입력/출력 유닛(258)의 디스플레이 상에 월드 맵을 디스플레이할 수 있다. 따라서, 입력/출력 유닛(258)은 구축된 제품을 포함하여, 작업 현장의 실시간 또는 거의 실시간 표현을 디스플레이할 수 있다. 따라서, 사용자는 생산 제품의 구축 또는 조립의 진행을 모니터링할 수 있다. 작업 현장을 나타내는 실시간 피드백 데이터[예를 들어, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)로부터의 데이터]에 기초하여, 디스플레이된 월드 맵은 작업 현장에서의 실시간 변화들을 반영하도록 업데이트될 수 있다.
입력/출력 유닛(258)은 또한 작업 컨트롤들을 포함할 수 있다. 작업 컨트롤들은 사용자에게 작업 실행의 실시간 컨트롤을 제공할 수 있다. 예를 들어, 사용자는 작업을 시작, 중지, 건너뛰기 또는 수정할 수 있는 입력을 제공할 수 있다. 예를 들어, 디스플레이 상에 디스플레이되는 그래픽 인터페이스는 로보틱 제어 시스템(200)이 수행할 작업들의 작업 큐를 포함할 수 있다. 그래픽 인터페이스는 사용자가 작업을 시작, 중지, 건너뛰기 또는 수정하는 것을 허용할 수 있다. 일부 구현예들에서, 그래픽 인터페이스는 사용자가 생산 제품에 관련된 파라미터들을 입력하는 것을 허용할 수 있다. 그래픽 인터페이스는 사용자가 치수들, 밀도, 곡률 속성들, 다른 기하학적 속성들, 사용될 재료들 및/또는 다른 숫자 입력들을 포함하여 생산 제품의 양태들에 관련될 수 있는 파라미터를 입력하는 것을 허용할 수 있다.
다른 예들에서, 그래픽 인터페이스는 생산 제품을 구축하는 타임라인을 포함할 수 있다. 타임라인은 생산 제품을 구축하는 프로세스의 특정 시점을 표현할 수 있는 현재 타임스탬프를 표현하는 커서를 가질 수 있다. 추가적으로, 타임라인은 프로세스를 특정 속도로 재생하거나, 프로세스를 빨리 감거나 되감는 버튼들을 포함할 수 있다. 타임라인은 작업 현장의 기하구조 및/또는 다른 양태들이 디스플레이 내에 디스플레이되는 시점을 제어하기 위해 사용될 수 있다. 또한, 타임라인은 생산 제품을 시뮬레이션하거나 작업 현장 내에서 발생하는 실제 물리적 구축 프로세스를 소프트웨어 내에서 시각화할 목적으로 특정 시점을 나타내는 데에 사용될 수 있다. 또한, 사용자는 그래픽 인터페이스를 통해 생산 제품의 설계를 수정할 수 있다.
일부 예들에서, 디스플레이는 사용자에게 작업 현장의 다수의 3D 뷰를 제공할 수 있고, 사용자가 특정 뷰의 배향 및/또는 줌을 변경하는 것을 허용할 수 있다. 다른 예들에서, 디스플레이는 수치 표현과 같은 작업 현장의 다른 유형의 표현들을 함께 또는 대신에 제시할 수 있다. 추가 예들에서, 사용자들은 3차원(3D) 모델링 그래픽 인터페이스를 제공받을 수 있으며, 이는 사용자가 작업 현장에서의 구축 프로세스에 영향을 미치는, 작업 현장 및/또는 요구되는 생산 제품을 설명하는 하나 이상의 변수를 변경하는 것을 허용한다.
다른 예들에서, 그래픽 인터페이스는 런타임 동안 프로세스의 양태들을 설명하는 파라미터들을 포함할 수 있다. 특히, 로보틱 디바이스(210)의 위치, 로보틱 디바이스(210)에 의해 현재 사용되고 있는 물리적 도구, 및/또는 로보틱 디바이스(210)가 작업 현장에서 현재 동작하고 있는 축들과 같은 로보틱 디바이스(210)의 특성들을 설명하는 로봇 파라미터들이 디스플레이될 수 있다. 추가적으로, 엔드 이펙터(220)의 동작 특성들을 설명하는 도구 파라미터들이 디스플레이될 수 있다. 예를 들어, 스핀들에 공급되는 전력의 양 또는 그리퍼와 함께 사용되는 힘의 양은 예시적인 그래픽 인터페이스 내에 디스플레이될 수 있다. 추가적으로, 그래픽 인터페이스는 센서 데이터를 디스플레이할 수 있다. 그래픽 인터페이스는 또한 작업들의 실행의 순서 및/또는 속도와 관련된 컨트롤들을 포함할 수 있다. 또한, 그래픽 인터페이스는 로봇 위치들 및 진단들과 같은 로봇 행위자들에 관련된 컨트롤들을 포함할 수 있다. 추가적으로, 그래픽 인터페이스는 생산 제품의 상이한 속성들의 컨트롤을 허용할 수 있다. 그래픽 인터페이스 내에서, 런타임 동안 실행되는 하나 이상의 작업을 조작하기 위한 컨트롤들이 제공될 수 있다. 예를 들어, 사용자는 계획된 작업을 실시간 또는 거의 실시간으로 변경함으로써 구축 프로세스를 수정하기 위해 터치 입력을 사용하여 그래픽과 상호작용할 수 있다.
일부 예들에서, 그래픽 인터페이스는 작업 현장 내에서 특정 디바이스를 선택하기 위해 디바이스 컨트롤을 포함할 수 있다. 예를 들어, 그래픽 인터페이스는 작업 현장 내의 로봇 행위자들을 디스플레이할 수 있으며, 특정 로보틱 디바이스의 선택을 허용할 수 있다. 추가적으로, 그래픽 인터페이스는 로보틱 디바이스들의 현재 위치를 설명하는 위치 정보와 같은 로봇 파라미터들을 포함할 수 있다. 일부 예들에서, 위치는 직교 좌표로서, 로봇 축 값으로서 또는 둘 다로서 디스플레이될 수 있다. 다른 예들에서, 위치 정보는 로봇 행위자의 엔드 이펙터 또는 로봇의 엔드 이펙터에 장착된 물리적 도구의 위치를 반영할 수 있다.
추가적으로, 입력/출력 유닛(258)은 [예를 들어, 컨트롤러(250)의 사용자로부터] 사용자 입력을 수신할 수 있다. 특히, 입력/출력 유닛(258)은 다른 가능한 상호작용들 중에서도, 스크롤링, 텍스트 제공 및/또는 애플리케이션의 다양한 피처들의 선택과 같은 그래픽 인터페이스와의 상호작용을 허용할 수 있다. 입력/출력 유닛(258)은 다양한 형태들을 취할 수 있다. 일례에서, 입력/출력 유닛(258)은 그래픽 인터페이스의 컨트롤에 사용되는 컴퓨팅 마우스와 같은 포인팅 디바이스를 포함할 수 있다. 그러나, 입력/출력 유닛(258)이 터치 스크린 디스플레이를 포함하는 경우, 그래픽 인터페이스의 컨트롤을 허용하는 터치 입력이 수신될 수 있다(예를 들어, 손가락 또는 스타일러스를 사용하는 것). 다른 예에서, 입력/출력 유닛(258)은 그래픽 인터페이스를 통해 디스플레이될 숫자, 문자 및/또는 심볼의 선택을 제공하는 키보드를 포함할 수 있다. 예를 들어, 입력/출력 유닛(258)이 터치 스크린 디스플레이를 포함하는 배열에서, 디스플레이의 일부분들은 키보드를 보여줄 수 있다. 따라서, 키보드를 포함하는 디스플레이 부분 상의 터치 입력은 디스플레이를 통해 그래픽 인터페이스 상에 보여질 특정 숫자들, 문자들 및/또는 심볼들의 선택과 같은 사용자 입력을 야기할 수 있다. 또 다른 예에서, 입력/출력 유닛(258)은 예컨대 마이크로폰을 통해 사용자로부터 오디오 입력을 수신한 다음, 다양한 음성 인식 기술들 중 하나를 사용하여 디스플레이를 통해 보여질 수 있는 하나 이상의 문자로 해석할 수 있는 음성 입력 디바이스를 포함할 수 있다. 다른 예들이 또한 가능할 수 있다.
C. 작업 현장 자동화 시스템
예시적인 실시예들은 다른 유형의 작업 사이트들 중에서도 제조, 제작 및 건설 작업 사이트에서 작업 현장 자동화를 위한 시스템 및 프로세스를 제공할 수 있다. 작업 현장 자동화는 작업 현장에서 제품을 설계 및/또는 구축하는 프로세스를 자동화하는 것을 수반할 수 있다. 구체적으로, 작업 현장 자동화 시스템은 제품에 대한 모델을 결정하고, 다음으로 모델에 따라 제품을 구축하기 위해 수행될 수 있는 작업 시퀀스를 생성할 수 있다. 그리고, 작업 시퀀스는 작업 현장에 위치된 이용가능한 행위자들에 의해 실행될 수 있다. 작업들을 실행할 때, 행위자들은 작업 현장 내에 또는 근처에 배치된 이용가능한 자원들을 이용할 수 있다. 예에서, 작업들은 로보틱 디바이스들에 의해 실행될 수 있고, 따라서 제품은 로보틱 디바이스들에 의해 부분적으로 또는 전체적으로 구축될 수 있다.
도 3은 예시적인 실시예에 따른 제품을 구축하는 위상들(300)을 도시한다. 도 3에 도시된 바와 같이, 제품을 구축하는 것은 3개의 위상, 즉 설계 위상(302), 시뮬레이션 위상(304), 및 구축 위상(306)을 수반할 수 있다. 특히, 설계 위상(302) 및 시뮬레이션 위상(304)은 제품을 구축하기 전에 수행되는 프로세스들을 수반할 수 있고, 따라서 설계 위상(302) 및 시뮬레이션 위상(304)은 집합적으로 구축-전 위상으로 지칭될 수 있다. 그러나, 아래에서 설명되는 바와 같이, 시스템은 구축 위상(306)이 개시된 후 구축-전 위상으로 되돌아갈 수 있다.
또한, 위상들(300) 각각은 사용자로부터의 입력이 거의 또는 전혀 없는 상태에서 수행될 수 있다. 그러한 것으로서, 시스템은 제품을 반-자율적으로 또는 자율적으로 구축할 수 있다. 또한, 설계 위상(302) 및 시뮬레이션 위상(304)은 컴퓨팅 디바이스를 사용하여 수행될 수 있다. 일부 예들에서, 설계 위상(302) 및 시뮬레이션 위상(304)은 구축 위상(306) 동안 행위자들에게 명령어들을 제공하는 동일한 컴퓨팅 디바이스를 사용하여 수행될 수 있다.
실시예에서, 도 3에 도시된 바와 같이, 작업 현장 자동화 시스템은 입력(308)을 수신할 수 있다. 입력(308)은 사용자로부터 (예를 들어, 컴퓨팅 디바이스에 대한 입력을 통해) 수신되거나 다른 컴퓨팅 디바이스로부터 수신될 수 있다. 예들에서, 입력(308)은 작업 현장에서 제품을 구축하거나 조립하기 위한 명령어들을 나타낼 수 있다. 그러한 것으로서, 입력(308)을 수신하는 것에 응답하여, 시스템은 제품을 구축하거나 조립할 수 있다. 특히, 시스템은 위상들(300) 각각에 연관된 프로세스들을 수행함으로써 제품을 구축할 수 있다. 도 3에 도시된 바와 같이, 입력(308)을 수신하는 것에 응답하여, 시스템은 설계 위상(302)에 연관된 프로세스들을 수행함으로써 제품의 설계를 결정할 수 있다.
a. 설계 위상
도 4는 예시적인 실시예에 따른, 제품을 구축하는 위상들(300) 각각에 연관된 프로세스들을 도시한다. 도 4에 도시된 바와 같이, 설계 위상(302)의 제1 프로세스(402)에서, 시스템은 제품에 대한 모델을 결정하도록 구성될 수 있다. 생산 제품의 모델은 제품의 2차원(2D) 또는 3차원(3D) 표현일 수 있다. 일반적으로, 모델은 제품의 물리적 구조가 구성될 방법, 및 제품이 시스템에 의해 구축되고 난 후 기능할 방법을 나타낼 수 있다. 모델은 또한 제품을 구축하기 위해 이용되는 재료들 및 부품들의 특성들과 같은, 제품의 다른 피처들을 나타낼 수 있다.
일 구현예에서, 시스템은 시스템의 사용자로부터 모델을 수신함으로써 제품을 위한 모델을 결정할 수 있다. 예를 들어, 사용자는 모델을 설계할 수 있고, 다음으로 입력(308)의 부분으로서 모델을 포함할 수 있다. 전형적으로, 사용자는 모델을 개발하기 위해 설계 소프트웨어를 사용할 수 있다. 특히, 설계되는 모델은 다른 유형들의 모델들 중에서도 2D 또는 3D 컴퓨터 보조 설계(CAD)일 수 있다. 예를 들어, 건설 작업 현장에서, 건설 프로젝트를 설계하고 모델링하기 위해 빌딩 정보 모델링(BIM)이 사용될 수 있다. 모델의 유형은 제품 유형의 규약들 및/또는 사용자의 기호와 같은 인자들에 의존할 수 있다.
다른 구현예에서, 시스템은 다른 시스템 또는 디바이스로부터 모델을 수신함으로써 제품을 위한 모델을 결정할 수 있다. 예를 들어, 입력(308)을 수신하는 것에 응답하여, 시스템은 데이터베이스로부터 모델을 검색할 수 있다. 데이터베이스는 공통적으로 건설되거나 조립되는 제품들과 같은 다양한 제품들의 모델들을 포함할 수 있다. 추가적으로 및/또는 대안적으로, 데이터베이스는 시스템에 의해 구매될 수 있는 모델들을 저장하는 상업용 데이터베이스일 수 있다.
또 다른 구현예에서, 시스템은 제품을 위한 모델을 생성함으로써 제품을 위한 모델을 결정할 수 있다. 이러한 구현예에서, 입력(308)은 제품의 유형, 및 제품에 대한 하나 이상의 제약을 나타낼 수 있다. 제품 유형 및 하나 이상의 제약은 예를 들어 사용자에 의해 정의될 수 있다. 시스템이 입력(308)을 수신하고 나면, 시스템은 제품 유형, 및 제품을 위한 모델에 대한 제약들에 기초하여 생성할 수 있다. 더 구체적으로, 제품 유형에 기초하여, 시스템은 제품 유형을 정의하는 특성들을 결정할 수 있다. 다음으로, 시스템은 모델이 제품 특성들 및 요구되는 제약들을 만족시키도록 모델을 생성하기 위해, 결정된 특성들 및 하나 이상의 제약을 이용할 수 있다.
실시예에서, 입력(308)에 포함되는 제약들은 제품의 부류(genus) 또는 종과 같은 제품의 요구되는 하이레벨 사양들을 정의할 수 있다. 하이레벨 사양들은 또한 제품에서 사용될 재료들, 제품의 기능적 피처들, 제품의 심미적 피처들 등을 포함할 수 있다. 예를 들어, 제약들은 제품의 파라미터들(예를 들어, 치수들)에 대한 최대 및/또는 최소 값들을 정의할 수 있다. 추가적으로 및/또는 대안적으로, 제약들은 작업 현장 내의 공간적 고려사항들(예를 들어, 제품을 구축할 장소, 장애물들의 위치 등)을 나타낼 수 있다. 추가적으로 및/또는 대안적으로, 제약들은 제품의 컴포넌트들 사이의 관계들에 대한 제약들(예를 들어, 상대적인 위치지정)을 나타낼 수 있는 로우레벨 사양들을 정의할 수 있다. 추가적으로 및/또는 대안적으로, 제약들은 제품의 구축 프로세스에 대한 성능 제약들을 나타낼 수 있다. 성능 제약들의 예들은 구축 시간, 속도, 제조 방법들, 효율, 비용, 재료 낭비, 사용되는 자원들 등을 포함하지만, 그에 제한되지 않는다.
예를 들어, 입력(308)이 제품 유형이 의자임을 나타내는 것을 고려한다. 입력(308)은 의자의 유형(예를 들어, 안락 의자), 안락 의자에 사용될 요구되는 재료, 하중 지지 제약들(예를 들어, 최소/최대 중량 지지, 하중 지지 표면 위치들 등), 작업 현장 내에서 안락 의자를 설치할 장소 등을 나타내는 하이레벨 제약들을 포함할 수 있다. 다음으로, 입력(308)에 기초하여, 시스템은 안락 의자를 위한 모델을 생성할 수 있다.
도 5는 예시적인 실시예에 따른 모델을 결정하는 프로세스(402)의 단계들을 도시한다. 도 5에 도시된 바와 같이, 제1 단계(502)는 시스템이 제품의 유형(예를 들어, 클래스)을 정의하는 특성들을 결정하는 것일 수 있다. 특성들은 제품 유형의 구조적으로 건전한 구조를 구성하는 것이 무엇인지를 정의하는 기능적 특성들일 수 있다. 특성들은 또한 제품 유형의 심미적 피처들을 정의하는 비-기능적 특성들일 수 있다. 특성들은 제품 유형에 속하는 제품들의 일부 또는 전부 사이에서 공유될 수 있다. 예들에서, 특성들은 시스템에 의해 액세스될 수 있는 데이터베이스에 저장될 수 있다.
도 5에 도시된 바와 같이, 다음 단계(504)는 시스템이 제품의 컴포넌트들을 결정하는 것일 수 있다. 특히, 시스템은 제품의 가능한 컴포넌트들을 결정하기 위해 제품 유형을 사용할 수 있다. 예를 들어, 시스템은 제품 유형에서 사용되는 컴포넌트들을 데이터베이스로부터 결정할 수 있다. 예를 들어, 데이터베이스는 다양한 제품 유형들의 템플릿들을 포함할 수 있다. 템플릿은 제품 유형에 포함될 수 있는 컴포넌트들, 예컨대 제품 유형의 제품들 간에 공통인 컴포넌트들을 나타낸다. 일부 예들에서, 템플릿은 또한 제품 유형의 제품에서의 컴포넌트들의 샘플 배열을 나타낼 수 있다.
도 6은 예시적인 실시예에 따른 안락 의자(600)의 예시적인 템플릿을 도시한다. 도 6에 도시된 바와 같이, 템플릿은 허용가능한 개수의 다리들 및 팔들과 같은 안락 의자(600)의 컴포넌트들을 포함할 수 있다. 예를 들어, 안락 의자(600)는 4개의 다리(606)를 포함한다. 템플릿은 또한 안락 의자(600)가 등 지지대(610), 시트(604), 및 2개의 암(602)을 포함할 수 있음을 지정할 수 있다. 템플릿은 또한 안락 의자의 컴포넌트들의 샘플 배열을 지정할 수 있다. 예를 들어, 도 6에 도시 된 바와 같이, 템플릿은 다리들(606) 각각이 한쪽 단부에서 시트(604)에 결합됨을 나타낼 수 있다. 또한, 템플릿은 제품의 컴포넌트들 사이의 가능한 관계들(예를 들어, 컴포넌트들의 상대적 위치지정)을 나타낼 수 있다.
추가적으로, 템플릿은 안락 의자(600)의 가능한 특성들을 나타낼 수 있다. 도 6에 도시된 바와 같이, 템플릿은 안락 의자(600)의 다양한 컴포넌트들의 치수들의 허용가능한 값들의 범위를 나타낼 수 있다. 이 예에서, 안락 의자(600)의 템플릿은 다른 치수들 중에서도, 시트(604)의 높이를 나타내는 높이(H1), 팔걸이 높이(H2), 어레스트 폭(W2), 시트 폭(W1), 등받이 높이(H3), 시트 길이(L2), 팔걸이 길이(L1)를 도시한다. 각각의 값은 각각의 피처에 대한 허용가능한 값들의 범위를 나타낼 수 있다. 템플릿은 또한 안락 의자(600)의 컴포넌트들이 제조될 수 있는 허용가능한 재료들과 같은 비-기능적 특성들을 나타낼 수 있다. 안락 의자(600)에 사용될 수 있는 허용가능한 재료들의 예들은 다른 재료들 중에서도 단단한 목재, 목재 슬랫, 패딩된 가죽, 스터핑된 패브릭, 금속, 성형 플라스틱을 포함한다.
도 5로 되돌아가면, 시스템이 제품의 컴포넌트들을 결정하는 프로세스(504)를 수행한 후, 시스템은 컴포넌트들 각각에 대한 모델을 결정하는 프로세스(506)를 수행할 수 있다. 일 구현예에서, 제품 유형의 템플릿은 각각의 컴포넌트의 샘플 모델들을 지정할 수 있으므로, 시스템은 템플릿으로부터 각각의 컴포넌트에 대한 모델을 결정할 수 있다. 시스템이 샘플 컴포넌트 모델들을 사용하는 경우, 시스템은 필요한 경우 각각의 모델이 제품에 대한 임의의 제약들을 만족시키도록 각각의 컴포넌트의 모델을 조절할 수 있다.
다른 구현예에서, 시스템은 각각의 컴포넌트에 대한 모델을 생성할 수 있다. 이러한 구현예에서, 시스템은 컴포넌트의 기하구조를 반복적으로 생성하기 위해, 컴포넌트의 특성들 및 제약들을 사용할 수 있다. 컴포넌트의 기하구조를 반복적으로 생성하는 것은, 시스템이 컴포넌트의 특성들에 기초하여 컴포넌트에 대한 모델을 생성한 다음, 모델이 컴포넌트의 제약들을 만족시킬 때까지 모델을 반복적으로 조절하는 것을 수반할 수 있다. 대안적으로, 시스템은 컴포넌트의 특성들에 기초하여, 컴포넌트에 대한 복수의 모델을 생성한 다음, 제약들을 만족시키는 모델을 선택할 수 있다.
도 5에 도시된 바와 같이, 프로세스(506)를 수행한 후, 시스템은 제품에 대한 모델을 생성하는 프로세스(508)를 수행할 수 있다. 예에서, 시스템은 [프로세스(506) 동안 결정된] 제품의 각각의 컴포넌트의 하나 이상의 모델을 통합함으로써 하나 이상의 모델을 반복적으로 생성할 수 있다. 하나 이상의 모델을 반복적으로 생성하는 것은 각각의 모델이 컴포넌트들의 다양한 모델들의 상이한 순열을 포함하도록 제품에 대한 하나 이상의 모델을 생성하는 것을 수반할 수 있다. 또한, 일부 예들에서, 컴포넌트들의 모델들은 분리될 수 있고, 그에 의해 모델은 하나의 컴포넌트를 다른 컴포넌트에 접속하는 커넥터의 설계를 포함하지 않을 수 있게 된다. 그러한 예들에서, 제품 모델을 생성하는 것은 상이한 컴포넌트들 사이의 커넥터들의 설계를 생성하는 것을 포함할 수 있다. 추가적으로 및/또는 대안적으로, 제품 모델을 생성하는 것은 제품의 심미적 피처들을 설계하는 것을 포함할 수 있다.
일례에서, 시스템은 상향식 프로세스(bottom up process)로 모델을 생성할 수 있다. 시스템은 먼저 2개의 컴포넌트를 통합하는 방법을 결정할 수 있다. 이 단계는 컴포넌트들의 기능적 피처들, 2개의 컴포넌트들 사이의 커넥터들의 설계, 심미적 피처들 등을 결정하는 것을 포함할 수 있다. 다음으로, 시스템은 2개의 컴포넌트를 접속할 수 있고, 모델이 2개의 컴포넌트에 대한 임의의 제약들을 만족시킬 때까지 2개의 컴포넌트의 모델을 반복적으로 조절할 수 있다. 다음으로, 시스템은 다른 컴포넌트를 2개의 컴포넌트와 통합하는 방법을 결정할 수 있다. 이러한 프로세스는 모든 컴포넌트들이 모델에 통합될 때까지 반복될 수 있다.
시스템이 제품의 모델을 생성하고 나면, 시스템은 모델이 제약들을 만족시킬 때까지 모델을 반복적으로 조절할 수 있다. 실시예에서, 모델이 제약들을 만족시키도록 모델을 반복적으로 조절하는 것은 모델의 하나 이상의 파라미터를 조절하는 것을 포함할 수 있다. 조절될 수 있는 파라미터들은 컴포넌트들의 기하구조, 컴포넌트들의 치수들, 컴포넌트들의 재료들 등을 포함한다. 시스템은 파라미터들의 값들이 제품의 특성들에 의해 정의된 값들의 범위 내에 있는 한 이러한 파라미터들을 조절할 수 있다. 추가적으로, 시스템은 모델이 임의의 성능 제약들을 만족시키도록 파라미터들을 조절할 수 있다. 시스템이 제약들을 만족시키도록 모델을 조절할 수 없는 경우, 시스템은 모델이 구축가능하지 않다고 결정할 수 있고, 따라서 모델을 폐기할 수 있다. 제품에 대한 모델을 생성하는 다른 방법들도 가능하다. 예를 들어, 시스템은 모델이 모델에 대한 제약 조건들을 만족시킬 때까지 제품의 상이한 컴포넌트들의 파라미터들을 무작위적으로 반복하여 조절함으로써 모델을 생성할 수 있다.
시스템이 제품의 하나의 모델 또는 모델들을 생성하고 나면, 시스템은 하나 이상의 모델로부터 모델을 선택할 수 있다. 예에서, 시스템은 성능 제약을 가장 잘 만족시키는 모델을 선택할 수 있다. 예를 들어, 성능 제약은 시스템이 모델을 비용에 대해 최적화해야 함을 나타낼 수 있다. 따라서, 시스템은 최저 추정 비용을 갖는 모델을 선택할 수 있다. 일부 예들에서, 시스템의 사용자는 그에 대해 최적화할 디폴트 성능 제약을 정의할 수 있다. 대안적으로, 프로젝트에 대한 성능 제약이 존재하지 않는 경우, 시스템은 제약들을 만족시키는 모델들 중 임의의 것을 선택할 수 있다. 성능 제약들의 예들은 다른 예들 중에서도 심미적 또는 기능적 속성에 대한 최적화, 시간에 대한 최적화, 정확성에 대한 최적화를 포함한다.
도 7a 내지 도 7f는 제품의 모델을 결정하는 프로세스(402)를 수행하는 시스템의 예를 도시한다. 이러한 예에서, 시스템으로의 입력(308)은 제품이 테이블임을 나타낼 수 있다. 그리고, 입력(308)은 또한 테이블에 대한 요구되는 제약들을 나타낼 수 있다. 실시예에서, 입력(308)을 수신하는 것에 응답하여, 시스템은 테이블의 모델을 결정하는 프로세스(402)를 수행함으로써 설계 위상(302)을 개시할 수 있다. 특히, 프로세스(402)의 제1 단계는 테이블의 제품 특성들을 결정하는 것이다[도 5의 단계(502)]. 예들에서, 시스템은 테이블의 특성들을 결정하기 위해 테이블의 템플릿을 사용할 수 있다.
도 7a는 예시적인 실시예에 따른 예시적인 테이블 템플릿(700)을 도시한다. 템플릿은 다른 특성들 중에서도 테이블의 상이한 컴포넌트들, 컴포넌트들의 가능한 배열들, 테이블의 가능한 치수들, 테이블이 구성될 수 있는 재료들과 같은 테이블의 특성을 나타낼 수 있다. 도 7a에 도시된 바와 같이, 테이블 템플릿(700)은 지지 구조물에 의해 지지되는 표면(702)을 포함할 수 있다. 예를 들어, 테이블 템플릿(700)은 테이블의 지지 구조가 하나 이상의 다리인 것을 나타낼 수 있다.
또한, 도 7a는 또한 테이블에 대한 요구되는 제약들을 나타낸다. 예를 들어, 제약들은 도 7a에서 최대 폭(w1) 및 최대 길이(l1)에 의해 나타나는 테이블의 최대 둘레와 같은, 테이블의 요구되는 치수들을 나타낼 수 있다. 제약들은 또한 테이블의 요구되는 높이(h1)를 나타낼 수 있다. 위에서 설명된 바와 같이, 제약들은 테이블의 치수들, 테이블을 구성하는 재료들, 성능 제약들, 하중 제약들 등을 나타낼 수 있다.
시스템이 테이블의 특성들을 결정하고 나면, 시스템은 테이블의 컴포넌트들 각각에 대한 모델을 생성할 수 있다. 특히, 시스템은 위에서 설명된 프로세스들을 사용하여 테이블의 컴포넌트들의 하나 이상의 모델을 생성할 수 있다. 이러한 예에서, 테이블의 컴포넌트들은 표면(702), 및 테이블이 평평한 표면 상에 배치될 때 표면(702)이 수평이거나 평평하도록 표면(702)을 지지하는 구조물이다. 그리고, 시스템이 컴포넌트들 각각에 대해 하나 이상의 모델을 결정하고 나면, 시스템은 위의 프로세스를 사용하여 테이블에 대한 하나 이상의 모델을 생성할 수 있다.
도 7b 내지 도 7f는 각각 예시적인 실시예들에 따라 시스템에 의해 생성된 테이블에 대한 모델을 도시한다. 특히, 도 7b, 도 7c, 도 7d, 도 7e 및 도 7f는 각각 테이블 모델들(704, 708, 710, 712 및 714)을 도시한다. 이러한 도면들에 도시된 바와 같이, 각각의 테이블은 표면 및 지지 구조물을 포함하므로, 각각의 테이블 모델은 테이블의 특성들을 만족시킨다. 또한, 도 7b 내지 도 7f에 도시된 바와 같이, 각각의 테이블은 테이블에 대한 제약들을 만족시킨다. 예를 들어, 각각의 테이블은 제약들에 의해 지정된 최대 치수들 내에 있다.
도 4로 되돌아가면, 모델을 결정하는 단계(402) 후에, 시스템은 구축가능성 분석(404)을 수행하도록 구성될 수 있다. 특히, 구축가능성 분석(404)은 모델이 제품 제약들을 만족시키는지를 결정할 수 있다. 예를 들어, 도 7a의 테이블(700)에 대한 제품 제약은 테이블의 최대 폭(w1) 및 최대 길이(l1)에 의해 나타난 것과 같은 테이블의 최대 둘레를 나타낼 수 있다. 이러한 예에서, 구축가능성 분석(404)은 생성된 모델(예를 들어, 도 7b-도 7f에 도시된 모델들 중 하나)이 제약을 만족시키는 테이블을 설명하는지를 결정할 수 있다. 분석에 의해, 모델이 해당 제약을 만족시키지 않는 것으로 결정되면, 시스템은 모델을 구축불가능한 것으로 결정할 수 있다. 반면에, 모델이 제약들을 만족시킨다면, 분석은 모델이 구축가능하다고 결정할 수 있다.
구축가능성 분석(404)은 또한 모델이 제품의 다른 기능적 피처들을 만족시키는지를 결정할 수 있다. 예를 들어, 기능적 피처들은 하중 제한, 무게 중심, 안정성, 응력(예를 들어, 휨 응력), 강도(예를 들어, 좌굴 강도) 등과 같은 제품의 속성들을 정의할 수 있다. 구축가능성 분석(404)은 또한 모델이 제약들에 의해 정의되는 비-기능적 피처들을 만족시키는지를 결정할 수 있다. 예를 들어, 시스템은 모델이 제약들에 의해 정의된 심미적 피처들(예를 들어, 각인, 고정물 등)을 만족시키는지를 결정할 수 있다. 분석에 기초하여, 시스템은 결정 요소(406)에서 진행할지를 결정할 수 있다. 모델이 구축가능하지 않은 경우, 시스템은 단계(402)로 되돌아가서 새로운 모델을 결정할 수 있다. 모델이 구축가능한 경우, 시스템은 단계(408)로 진행할 수 있다.
단계(408)에서, 시스템은 모델에 따라 제품을 구축하는 작업 시퀀스를 생성할 수 있다. 작업은 제품을 구축하는 것과 관련하여 수행될 수 있는 임의의 유형의 작업일 수 있다. 예시적인 작업 유형들은 건설 작업, 제조 작업, 조립 작업, 처리 작업 등을 포함한다. 추가적으로, 작업은 부품들, 도구들, 장애물들 등과 같은 작업 현장 내에 위치된 객체들과 상호작용하는 것을 수반할 수 있다. 또한, 작업은 작업 현장에서 이용가능한 하나 이상의 도구를 사용하여 수행될 수 있다.
실시예에서, 시스템은 선택된 모델에 따라 제품을 구축하기 위해 수행될 수 있는 작업 시퀀스의 순열들을 생성할 수 있다. 예에서, 시스템은 트리 구조를 사용하여 작업 시퀀스의 순열들을 생성할 수 있다. 트리 구조는 루트 노드와 하나 이상의 최종 노드 사이에 복수의 노드를 포함할 수 있다. 노드들은 루트 노드가 하나 이상의 노드로 분기되고, 이들 각각이 또한 하나 이상의 노드로 분기되도록 배열된다. 노드들은 최종 노드에 도달될 때까지 하나 이상의 노드로 계속 분기된다. 또한, 루트 노드는 제품의 현재 상태를 표현하며, 각각의 노드는 작업을 표현할 수 있다. 그리고, 최종 노드는 제품을 구축하는 것의 완료 또는 최종 작업을 나타낼 수 있다.
도 8a는 예시적인 실시예에 따른 트리 구조(820)를 도시한다. 도 8a에 도시된 바와 같이, 트리 구조(822)는 루트 노드(822)를 포함하며, 이는 구축 및/또는 작업 현장의 현재 상태를 나타낼 수 있다. 도 8a에 더 도시된 바와 같이, 하나 이상의 제1 단계는 루트 노드로부터 분기될 수 있다. 이러한 예에서, 2개의 가능한 제1 단계(824 및 826)는 루트 노드(822)로부터 분기된다. 추가로 도시된 바와 같이, 3개의 제2 단계(828, 830, 및 832)는 제1 단계(824), 및 3개의 제2 단계(834, 836 및 838)로부터 분기한다. 각각의 노드는 최종 노드에 도달될 때까지 하나 이상의 노드로 분기될 수 있으며, 여기서 최종 노드는 최종 단계를 표현한다. 도 8a에 도시된 바와 같이, (타원에 의해 표현되는) 제2 노드들 각각과 최종 노드들(840, 842, 844, 846, 848 및 850) 사이에는 하나 이상의 노드가 존재한다.
루트 노드로부터 최종 노드까지의 연속적인 노드 시퀀스를 선택함으로써 작업 시퀀스의 순열이 결정될 수 있다. 선택된 노드들의 시퀀스는 구축 프로세스의 순열의 단계들을 표현한다. 예를 들어, 제품의 어떠한 부분도 아직 구축되지 않은 경우, 루트 노드는 제품이 구축될 작업 현장의 현재 상태를 나타낼 수 있다. 그리고, 루트 노드로부터 분기된 노드들로부터 선택된 제1 노드는 작업 현장에서 제품을 구축하기 위한 작업 시퀀스의 제1 단계이다. 그러나, 구축된 제품의 부분이 존재하는 경우, 루트 노드는 제품의 구축된 부분을 나타낸다. 그리고, 루트 노드로부터 분기된 노드들로부터 선택된 제1 노드는 제품의 구축된 부분을 완전히 구축해내는 작업 시퀀스의 제1 단계이다.
다음으로, 시스템은 제약들을 만족시키는 작업 시퀀스들의 순열을 선택할 수 있다. 예에서, 시스템은 임의의 지정된 성능 제약들에 기초하여 순열을 선택할 수 있다. 예를 들어, 성능 제약은 시스템이 모델을 비용에 대해 최적화해야 함을 나타낼 수 있다. 따라서, 시스템은 최저 추정 비용을 갖는 작업 시퀀스의 순열을 선택할 수 있다. 일부 예들에서, 시스템의 사용자는 최적화할 디폴트 성능 제약을 정의할 수 있다. 대안적으로, 제품에 대한 성능 제약이 존재하지 않는 경우, 시스템은 제약들을 만족시키는 작업 시퀀스의 순열들 중 임의의 것을 선택할 수 있다.
시스템이 작업 시퀀스의 순열을 선택하고 나면, 시스템은 시뮬레이션 위상(304)으로 진행할 수 있다. 시뮬레이션 위상(304)에서, 시스템은 단계(410)에서 시뮬레이션을 수행할 수 있다. 구체적으로, 시뮬레이션을 수행하기 위해, 시스템은 선택된 작업 시퀀스를 수행하기 위한 동작들의 순서를 결정할 수 있다. 이는, 각각의 작업에 대해 자원들을 결정하는 것, 그러한 각각의 작업에 필요한 자원들을 할당하는 것, 및 작업들이 수행될 순서를 결정하는 것을 포함할 수 있다. 일부 예들에서, 시스템은 작업 시퀀스에 대한 동작들의 순서를 결정하지 못할 수 있으므로, 시스템은 선택된 작업 시퀀스를 실행할 수 없다고 결정할 수 있다. 이러한 시나리오에서, 시스템은 작업 시퀀스의 순열이 가능하지 않다고 결정할 수 있고, 작업 시퀀스의 상이한 순열을 선택할 수 있다. 이러한 프로세스는 시스템이 모델에 대한 제약들을 만족시키는 그것의 순열을 선택할 때까지 반복될 수 있다.
시스템이 동작들의 순서를 결정하고 나면, 시스템은 작업 시퀀스의 수행을 시뮬레이션할 수 있다. 시뮬레이션 동안, 시스템은 시스템의 자원들을 사용하여 작업 시퀀스가 수행될 수 있는지를 결정하기 위해 구축가능성 분석(412)을 수행할 수 있다. 일 양태에서, 시스템은 선택된 작업 시퀀스가 시스템에 이용가능한 로보틱 디바이스들에 의해 수행될 수 있는지를 결정할 수 있다. 예에서, 시스템은 선택된 순열의 각각의 작업이 로보틱 디바이스에 의해 수행될 수 있는지를 결정할 수 있다. 구축가능성 분석의 다른 양태에서, 시스템은 시스템이 선택된 모델 및 선택된 작업 시퀀스에 따라 제품을 구축하기 위한 재료들 및 부품들을 갖는지를 결정할 수 있다. 시스템이 임의의 이유(예를 들어, 자원 부족 등)로 구축가능성이 실패할 수 있음을 검출하면, 시스템은 작업 시퀀스의 상이한 순열을 선택하기 위해 작업 시퀀스를 생성하는 단계(408)로 되돌아갈 수 있다.
또한, 시뮬레이션 단계(410) 동안, 시스템은 선택된 작업 시퀀스의 작업들을 작업 현장에서 이용가능한 하나 이상의 행위자에 할당할 수 있다. 예에서, 시스템은 작업자 스케줄을 유지할 수 있으며, 이는 작업 현장에 위치된 작업자(로봇 및 인간 둘 다)의 스케줄을 나타낸다. 다음으로, 시스템은 구축 프로세스의 작업들을 작업 현장 내의 이용가능한 행위자에게 할당할 수 있다. 예에서, 시스템은 모든 작업을 이용가능한 로보틱 디바이스들에게 할당하여, 제품이 로보틱 디바이스들에 의해 독점적으로 구축되도록 할 수 있다. 로보틱 디바이스가 할당받는 작업은 로보틱 디바이스의 엔드 이펙터의 유형에 의존할 수 있다. 시스템은 그 특정 작업을 수행하도록 구성된 엔드 이펙터를 포함하는 로보틱 디바이스에 작업을 할당할 수 있다. 예를 들어, 객체 이동을 수반하는 작업은 그리퍼 엔드 이펙터를 포함하는 로보틱 디바이스에 할당될 수 있다.
b. 시뮬레이션 위상
일단 작업들이 행위자들에게 할당되고 나면, 시스템은 작업 시퀀스를 시뮬레이션할 수 있다. 이 단계에서, 시스템은 작업 현장에서 작업 시퀀스들 중 하나 이상의 작업을 실행하기 위해 자원들을 이용하는 행위자들을 시뮬레이션할 수 있다. 시뮬레이션은 작업 현장 내의 로보틱 디바이스들이 동작들의 순서에 의해 지정된 순서대로 작업들을 실행하는 방법을 나타낼 수 있다. 일부 예들에서, 로보틱 디바이스들이 작업 현장에서 작업들을 수행하는 것과 동일한 속도로 시뮬레이션이 수행될 수 있다. 다른 예들에서, 시뮬레이션은 더 빠른 속도로 수행될 수 있다. 또한, 일부 예들에서, 시뮬레이션의 표현은 컴퓨팅 디바이스의 디스플레이 상에 디스플레이될 수 있다. 추가적으로 및/또는 대안적으로, 시뮬레이션은 장래의 분석을 위해 기록될 수 있다.
또한, 구축가능성 분석(412)은 시뮬레이션된 로보틱 디바이스들이 지정된 자원들을 사용하여, 그리고 동작들의 순서에 의해 나타난 순서로 그들의 할당된 작업들을 수행할 수 있는지를 결정할 수 있다. 구축가능성 분석(412)의 일 양태에서, 시스템은 각각의 시뮬레이션된 로보틱 디바이스가 그것의 할당된 작업을 수행할 수 있는지를 결정할 수 있다. 예에서, 시스템은 각각의 시뮬레이션된 로보틱 디바이스(작업을 할당받음)가 그것의 할당된 작업을 수행할 때 문제에 직면할 것인지를 결정할 수 있다. 예를 들어, 구축가능성 분석은 로보틱 디바이스들의 운동학적 한계들(예를 들어, 조인트 한계 및/또는 도달 가능성 한계)로 인한 고장 또는 문제를 검출할 수 있다. 다른 예에서, 시스템은 우리의 작업자들에 대한 속도 또는 가속 제약들을 결정할 수 있으며, 특정 종류의 작업들(예를 들어, 접착제 퇴적 도구 경로들)이 이용가능한 로보틱 디바이스의 능력들을 초과하는지를 식별할 수 있다.
추가적으로, 다른 양태에서, 구축가능성 분석은 작업 현장에 위치되는 임의의 객체들 사이에서 발생할 수 있는 임의의 충돌들, 예컨대 다른 예들 중에서도 그들 각각의 작업들을 수행하는 로보틱 디바이스들 사이의 잠재적 충돌, 로보틱 디바이스와 작업 현장 내의 객체 사이의 충돌들을 검출할 수 있다. 시스템은 또한 각각의 시뮬레이션된 로보틱 디바이스가 그것의 할당된 작업을 수행하기 위해 위치되어야 하는 영역들에 도달할 수 있는지를 결정할 수 있다.
구축가능성 분석(412)의 또 다른 양태에서, 시스템은 시뮬레이션된 구조물이 제품의 건설 전체에 걸쳐 안정적인지를 결정할 수 있다. 또 다른 양태에서, 시스템은 또한 시스템에 이용가능한 자원들이 프로젝트를 완료하기에 적합한지를 결정할 수 있다. 구축가능성 분석(412) 동안, 시스템이 선택된 구축 프로세스(즉, 선택된 모델 및/또는 선택된 작업 시퀀스)를 사용하여 설계가 구축가능하지 않음을 검출하면, 시스템은 결정 요소(414)에서 작업 시퀀스의 상이한 순열을 선택하기 위해 작업 시퀀스를 생성하는 단계(408)로 되돌아가기로 결정할 수 있다. 반대로, 시스템이 시뮬레이션을 완료하고 작업 시퀀스에서 어떠한 문제도 검출하지 못하면, 시스템은 결정 요소(414)에서 구축 위상(306)으로 진행하기로 결정할 수 있다.
c. 구축 위상
구축 단계(416)에서, 시스템은 작업 현장 내의 행위자들로 하여금 선택된 작업 시퀀스를 수행하게 함으로써 작업 현장에서 선택된 모델을 구현할 수 있다. 작업 시퀀스의 단계를 수행하기 위해, 시스템은 행위자들로 하여금 그들에게 할당된 작업들을 수행하게 하는 명령어들을 행위자들에게 송신할 수 있다. 예를 들어, 로보틱 디바이스가 작업을 수행하도록 스케줄링될 때 작업에 대한 명령어들이 로보틱 디바이스에 송신될 수 있다. 다른 예에서, 시스템은 작업자들이 시스템과 인터페이스하기 위해 사용하고 있을 수 있는 컴퓨팅 디바이스들을 통해 인간 작업자들에게 명령어들을 송신할 수 있다.
추가적으로, 구축 위상(306)에서, 시스템은 작업 현장을 나타내는 데이터를 포함하는 월드 맵을 생성 및 유지할 수 있다. 시스템은 작업 현장에 위치된 디바이스들[예를 들어, 도 2의 글로벌 및 로컬 센서들(230 및 240)]로부터 수신된 데이터를 사용하여 월드 맵을 생성할 수 있다. 월드 맵은 작업 현장 내의 행위자들 전부의 개요, 행위자들에 의해 수행되는 작업들, 작업 현장 내의 자원들 및 객체들의 관련 위치들을 포함할 수 있다. 월드 맵은 또한 작업 현장 내의 자원들 각각의 설명, 위치 및 양을 포함할 수 있다. 예를 들어, 월드 맵은 시스템에 이용가능한 각각의 유형의 재료에 대한 인벤토리를 포함할 수 있다. 또한, 시스템은 작업 현장 내에 위치된 디바이스들(예를 들어, 로보틱 디바이스들, 센서들 등)로부터 수신된 데이터를 적어도 사용하여, 실시간으로 월드 맵을 동적으로 업데이트할 수 있다. 그러한 것으로서, 월드 맵은 작업 현장의 공간적 피처들을 정의할 수 있을 뿐만 아니라 작업 현장에서 실시간으로 발생하고 있을 수 있는 변경들과 같은 작업 현장의 물리적 세부사항들도 포함할 수 있다. 따라서, 월드 맵과 물리적 세계 사이의 라이브 링크가 확립될 수 있다.
도 8b는 교량(804)을 건설하는 로보틱 디바이스(802)의 월드 맵(800)을 도시한다. 도 8b에 도시된 바와 같이, 월드 맵(800)은 브리지(804)의 "구축된" 부분(808A)을 도시한다. 또한, 도 8b에 도시된 바와 같이, 월드 맵은 또한 구축될 교량(804)의 부분의 설계(808)의 개요를 도시한다. 이 예에서, 로보틱 디바이스는 교량 건설의 구축 위상을 개시했다. 따라서, 로보틱 디바이스(802)는 자원들(806)을 사용하여 교량(804)을 구축하기 위해 작업 시퀀스에 연관된 작업들을 수행할 수 있다.
실시예에서, 시스템은 구축 위상(306) 동안 주기적으로 또는 연속적으로 구축가능성 분석(418)을 수행할 수 있다. 구축가능성 분석(418)은 작업 시퀀스 및/또는 모델에 따라 제품을 구축하는 가능성을 분석한다. 예들에서, 구축가능성 분석(418)은 제품을 구축하기 전에 수행될 수 있다. 추가적으로 및/또는 대안적으로, 구축가능성 분석(418)은 제품이 구축되고 있는 동안 수행될 수 있다. 프로세스(416) 및 프로세스(418)가 도 4에서 2개의 개별 프로세스로 도시되어 있지만, 시스템은 프로세스를 동시에 수행할 수 있음에 유의해야 한다. 그러한 것으로서, 작업자들이 구축(416)을 수행함에 따라, 시스템은 구축가능성 분석(418)을 수행할 수 있다.
실시예에서, 구축가능성 분석(418)을 수행하기 위해, 시스템은 제품을 구축하는 가능성에 영향을 미칠 수 있는 임의의 문제들을 검출하기 위해 월드 맵으로부터의 데이터를 분석할 수 있다. 일 양태에서, 시스템은 제품의 구축된 부분을 제품의 모델과 비교할 수 있다. 시스템이 모델로부터의 구축된 부분의 편차를 검출하면, 시스템은 제품이 여전히 제약들을 만족시키는지를 결정할 수 있다. 추가적으로 및/또는 대안적으로, 시스템은 수행되지 않은 작업 시퀀스의 작업들이 여전히 수행될 수 있는지를 결정할 수 있다. 추가적으로 및/또는 대안적으로, 시스템은 수행되지 않은 작업들을 수행하면 편차들이 더 악화되어 최종 제품이 제약들을 만족시키지 않게 될지를 결정할 수 있다.
예를 들어, 시스템은 교량 프로젝트의 월드 맵(800)을 분석할 수 있다. 예를 들어, 시스템은 아마도 구축된 부분(808A)의 치수들을 모델의 대응 부분의 치수들과 비교함으로써, 구축된 부분(808A)이 모델에 따라 구축되는지를 결정할 수 있다. 시스템은 또한 교량의 중량 지지 용량과 같은 구축된 부분(808A)의 특성들을 결정할 수 있고, 결정된 특성들을 요구되는 특성들과 비교할 수 있다. 시스템은 또한 아마도 자원들(806)이 교량(804)을 구축하는 데 필요한 자원들을 포함하는지를 결정함으로써, 로보틱 디바이스(802)가 교량(804)의 비구축 부분을 구축할 수 있는지를 결정할 수 있다. 시스템은 또한 구축되지 않은 부분(808B)을 구축하는 것에 연관된 작업들이 수행될 수 있는지를 결정할 수 있다. 예를 들어, 시스템은 교량(804)을 구축하는 데 임의의 지연이 있었는지 여부, 및 지연이 있었다면, 시스템이 여전히 제약들에 의해 설정된 시간 제한 내에서 수행되지 않은 작업을 완료할 수 있는지를 결정할 수 있다.
시스템은 프로젝트의 구축가능성에 영향을 줄 수 있는 월드 맵으로부터의 다른 데이터를 분석할 수 있다. 일례에서, 시스템은 작업 현장의 자원들이 제품의 구성을 완료하기에 충분한지를 결정할 수 있다. 다른 예에서, 시스템은 작업 시퀀스의 수행을 방해할 수 있는 작업 현장 내의 임의의 변경들 또는 이벤트들을 검출할 수 있다. 예를 들어, 시스템은 작업 현장 내의 조건들이 구축 프로세스에 영향을 줄 수 있는 방식(예를 들어, 상당한 온도 변화)으로 변경되는지 검출할 수 있다. 시스템은 또한 작업 현장에 도입된 임의의 새로운 장애물을 검출할 수 있고, 이는 작업 시퀀스의 수행에 영향을 줄 수 있다.
구축가능성 분석(418)의 다른 양태에서, 시스템은 설계 및/또는 제약들에 대한 변경을 나타내는 입력을 수신할 수 있다. 그리고, 이에 응답하여, 시스템은 설계 및/또는 제약들에 대한 변경들에 비추어, 제품이 선택된 작업 시퀀스를 사용하여 여전히 구축가능한지를 결정할 수 있다. 예를 들어, 시스템은 성능 제약에 대한 변경을 나타내는 입력을 수신할 수 있다. 이에 응답하여, 시스템은 현재 작업 시퀀스가 새로운 성능 제약을 만족시킬 수 있는지를 결정할 수 있다.
시스템이 현재 작업 시퀀스를 사용하여 제품이 구축가능하지 않다고 결정하면, 시스템은 새로운 작업 시퀀스를 선택하기로 결정할 수 있다. 실시예에서, 제품이 구축가능하지 않다고 결정한 것에 응답하여, 시스템은 결정 요소(420)에서 오류를 검출할 수 있다. 그 후, 시스템은 작업 시퀀스를 생성하는 단계(408)로 되돌아갈 수 있다. 작업 시퀀스를 생성하는 단계(408)에서, 시스템은 새로운 작업 시퀀스를 생성할 수 있다. 예에서, 새로운 작업 시퀀스는 아마도 상이한 단계들을 사용하여, 이전 작업 시퀀스와 동일한 설계를 달성할 수 있다. 
실시예에서, 시스템은 새로운 작업 시퀀스를 생성하기 위해 트리 구조를 사용할 수 있다. 위에서 설명된 바와 같이, 트리 구조의 루트 노드는 프로젝트의 현재 상태를 표현한다. 이러한 경우에서, 제품의 구축된 부분은 프로젝트의 현재 상태이고, 따라서 루트 노드로서 표현된다. 그러한 것으로서, 루트 노드로부터 분기 된 제1 노드들은 제품의 구축된 부분을 완전히 구축해내는 제1 단계들을 표현한다. 다음으로, 시스템은 루트 노드로부터 시작하여 트리 구조의 최종 노드에서 끝나는 작업 시퀀스를 선택할 수 있다. 새로운 작업 시퀀스의 최종 노드는 원래 작업 시퀀스와 동일한 최종 노드이거나, 다른 최종 노드일 수 있다. 이러한 방식으로 새로운 작업 시퀀스를 생성함으로써, 시스템은 생산 제품의 구축된 부분 상에 구축할 수 있고, 따라서 시스템은 이미 수행된 작업을 보존할 수 있다.
새로운 작업 시퀀스를 생성하는 것을 용이하게 하기 위해, 시스템은 시스템이 새로운 새로운 작업 시퀀스를 생성하기로 결정하기 전에 수행된 마지막 작업을 결정할 수 있다. 그러면, 시스템은 그 작업이 연관된 구축 트리 내의 노드를 결정하고, 그 노드를 루트 노드로 지정할 수 있다. 다음으로, 시스템은 루트 노드와 최종 노드 사이의 연속적인 노드 시퀀스를 선택할 수 있다. 새로운 노드 시퀀스는 원래 선택된 노드 시퀀스와 다르다. 새로운 시퀀스가 생성되고 나면, 시스템은 도 4에 나타낸 것과 같이 프로세스들을 수행할 수 있다.
일부 예들에서, 시스템은 원래 설계에 대한 작업 시퀀스가 달성불가능하다고 결정할 수 있다. 그 후, 시스템은 제품에 대한 모델을 결정하는 단계(402)로 되돌아갈 수 있다. 단계(402)에서, 시스템은 이전에 생성되었고 제약들을 만족시키는 모델들 중 하나를 선택할 수 있다. 대안적으로, 시스템은 제품의 구축된 부분을 완전히 구축해내는 새로운 모델을 생성할 수 있다. 새로운 모델이 생성되면, 시스템은 위에서 설명한 바와 같이 각각의 위상의 프로세스들을 수행할 수 있다. 일부 예들에서, 시스템은 설계 위상(302)의 프로세스들을 완료한 후에, 시뮬레이션 위상(304)을 건너뛰고 구축 위상(306)으로 직접 이동할 수 있다.
그럼에도 불구하고, 새로운 작업 시퀀스 및/또는 모델이 생성되고 나면, 시스템은 제품 구축을 재개할 수 있다. 일부 예들에서, 문제가 실제로 발생하기 전에 시스템이 잠재적인 문제를 검출하는 경우, 시스템은 구축(416)을 중단하지 않고서 문제에 대해 조절할 수 있다. 그러나, 발생하는 문제가 현재 수행 중인 작업에 영향을 미치는 경우, 시스템이 조절을 결정할 때까지 시스템은 구축(416)을 일시정지할 수 있다. 조절이 결정되고 나면, 시스템은 구축(416)을 재개할 수 있다.
위에서 설명된 로보틱 제어 시스템에 관한 동작들은 하나 이상의 프로세서에 의한 방법으로서 구현될 수 있다. 위에서 설명된 바와 같이, 로보틱 제어 시스템은 하나 이상의 로보틱 디바이스를 동작시킬 수 있다. 따라서, 로보틱 디바이스와 로보틱 제어 시스템 사이에 신호들의 교환이 존재할 수 있다. 로보틱 제어 시스템의 동작들을 설명하는 예시적인 방법들(900 및 1000)은 각각 도 9 및 도 10에 흐름도의 형태로 도시되어 있다.
도 9는 예시적인 실시예에 따른, 생산 제품을 구축하는 작업 현장 자동화 시스템의 예시적인 방법(900)을 도시한다. 블록(902)에 도시된 바와 같이, 방법(900)은 제품을 구축하는 구축-전 위상 동안, 제품의 모델에 따라 제품을 구축하기 위한 제1 작업 시퀀스를 생성하는 단계를 수반한다. 블록(904)에 의해 도시된 바와 같이, 방법(900)은 또한 구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금 제1 작업 시퀀스를 실행하기 시작함으로써 제품을 구축하게 하는 단계를 수반한다. 블록(906)에 도시된 바와 같이, 방법(900)은 제1 작업 시퀀스의 실행 동안, 제1 작업 시퀀스를 실행함으로써 제품을 완성할 가능성을 결정하기 위해 구축가능성 분석을 수행하는 단계를 더 수반한다.
블록(908)에 의해 도시된 바와 같이, 방법(900)은 분석에 기초하여, 제1 작업 시퀀스를 실행함으로써 제품을 완성하는 것이 불가능하다고 결정하는 단계를 더 수반한다. 블록(910)에 의해 도시된 바와 같이, 방법(900)은 제1 작업 시퀀스를 수행함으로써 제품을 완성하는 것이 불가능하다는 결정에 응답하여, 모델에 따라 제품을 완성하기 위한 제2 작업 시퀀스를 생성하는 단계를 추가적으로 수반하며, 여기서 제2 작업 시퀀스는 제1 작업 시퀀스와 다르다. 블록(912)에 의해 도시된 바와 같이, 방법(900)은 하나 이상의 로보틱 디바이스로 하여금 제2 작업 시퀀스를 실행하기 시작함으로써 제품을 계속하여 구축하게 하는 단계를 더 수반한다. 구체적으로, 시스템은 제1 작업 시퀀스를 실행하는 대신에 제2 작업 시퀀스를 실행하기 시작한다. 또한, 이 프로세스는 순환적일 수 있다. 예를 들어, 제2 작업 시퀀스의 실행 동안, 시스템은 구축가능성 분석에 기초하여 제2 작업 시퀀스를 수행함으로써 제품을 완성하는 것이 불가능하다고 결정할 수 있다. 따라서, 시스템은 제3 작업 시퀀스를 생성할 수 있다. 다음으로, 시스템은 제2 작업 시퀀스를 실행하는 대신 제3 작업 시퀀스를 실행하기 시작할 수 있는 등이다.
도 10은 예시적인 실시예에 따른, 생산 제품을 구축하는 작업 현장 자동화 시스템의 다른 예시적인 방법(1000)을 도시한다. 블록(1002)에 의해 도시된 바와 같이, 방법(1000)은 구축-전 위상 동안 제품의 제1 모델에 대한 제1 작업 시퀀스를 생성하는 단계를 수반한다. 또한, 블록(1004)에 의해 도시된 바와 같이, 방법(1000)은 구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금, 제1 작업 시퀀스를 실행하기 시작함으로써 제품을 구축하게 하는 단계를 수반한다. 블록(1006)에 의해 도시된 바와 같이, 방법(1000)은 또한 제1 작업 시퀀스의 실행 동안, 제1 모델에 따라 제품을 구축할 가능성을 결정하기 위해 제1 모델의 제1 구축가능성 분석을 수행하는 단계를 수반한다. 또한, 블록(1008)에 의해 도시된 바와 같이, 방법(1000)은 분석에 기초하여 제2 모델을 결정하는 단계를 수반한다. 추가적으로, 블록(1010)에 의해 도시된 바와 같이, 방법(1000)은 하나 이상의 로보틱 디바이스로 하여금 제2 모델에 따라 제품을 계속 구축하게 하는 단계를 수반한다.
D. 예시적인 로보틱 디바이스
도 11은 예시적인 실시예에 따른 로보틱 디바이스를 도시한다. 특히, 로보틱 디바이스(1100)는 하나 이상의 상이한 도구, 그리퍼 또는 가이드가 장착될 수 있는 엔드 이펙터(1104)를 갖는 로보틱 암(1102)을 포함할 수 있다. 로보틱 암(1102)은 도 11a에 A1-A6으로서 도시된 6개의 자유도를 따라 운동할 수 있다. 특정한 예들에서, 로보틱 디바이스(1100)는 하나 이상의 축(A0)을 따라, 예컨대 좌우 이동을 허용하는 도시되지 않은 레일을 따라 더 이동할 수 있다. 특정 실시예들에서, 엔드 이펙터(1104)를 특정 위치에 위치시키기 위한 명령어들이 주어질 수 있고, A1-A6을 따른 로보틱 암(1104)의 위치들, 및/또는 하나 이상의 축 A0을 따른 로보틱 디바이스 행위자(1100)의 위치들은 관련된 컨트롤러의 프로세스에 의해 계산될 수 있다. 대안적인 실시예들에서, 로보틱 디바이스(1100) 및/또는 로보틱 암(1102)의 위치 컨트롤은 별개의 개별 세팅들 및 제어 커맨드들을 요구할 수 있다. 일부 예들에서는 더 적은 자유도로 동작하는 로보틱 디바이스들이 함께 또는 대신하여 사용될 수 있다.
로보틱 디바이스(1100)는 고정된 엔드 이펙터를 가질 수 있거나, 엔드 이펙터들을 상호교환할 수 있다. 엔드 이펙터들을 상호교환하기 위해, 로보틱 디바이스(1100)는 로보틱 디바이스(1100) 상에 또는 그 근처에 보관될 수 있는 복수의 엔드 이펙터에 액세스할 수 있다. 복수의 엔드 이펙터는 도구 엔드 이펙터, 그리퍼 엔드 이펙터 및 가이드 엔드 이펙터와 같이, 상이한 유형들의 엔드 이펙터들을 포함할 수 있다. 그러한 것으로서, 엔드 이펙터들을 상호교환하는 능력을 갖는 로보틱 디바이스(1100)는 상이한 유형의 엔드 이펙터들을 요구하는 상이한 작업들을 할당받을 수 있다. 본 명세서에 설명되는 바와 같이, 로보틱 디바이스(1100)는 로보틱 디바이스(1100)에 할당된 작업에 기초하여 엔드 이펙터를 선택할 수 있다.
도 12는 로보틱 디바이스(1200)의 예시적인 구성을 도시한다. 일반적으로, 로보틱 디바이스(1200)는 컴퓨팅 능력을 가지며, 다른 것들 중에서도 광 및/또는 소리와 같은 물리적 현상을 방출/생성하는 능력 및/또는 작동 능력으로 그것의 주변과 상호작용하는 임의의 디바이스일 수 있다. 예를 들어, 로보틱 디바이스(1200)는 다른 것들 중에서도 휴머노이드 로봇, 로보틱 암 또는 4족 로봇일 수 있다. 로보틱 디바이스는 또한 본 기술분야의 통상의 기술자들에게 일반적으로 "로보틱"인 것으로 이해되는 임의의 디바이스일 수 있다. 로보틱 디바이스(1200)는 또한 다른 것들 중에서도, 로보틱 디바이스, 로보틱 조작기, 로봇 클라이언트, 또는 로봇으로 지칭될 수 있다.
로보틱 디바이스(1200)는 프로세서(들)(1202), 데이터 저장소(1204), 프로그램 명령어들(1206), 컨트롤러(1208), 센서(들)(1210), 전력 소스(들)(1212), 액추에이터(들)(1214), 및 이동가능한 컴포넌트(들)(1216)를 포함하는 것으로 도시되어 있다. 로보틱 디바이스(1200)는 단지 예시의 목적으로 도시되고, 본 개시내용의 범위를 벗어나지 않고서, 로보틱 디바이스(1200)가 추가적인 컴포넌트들을 포함할 수 있고/거나, 하나 이상의 컴포넌트가 제거될 수 있음에 유의해야 한다. 또한, 로보틱 디바이스(1200)의 다양한 컴포넌트들은 임의의 방식으로 배열되고 접속될 수 있음에 유의해야 한다.
또한, 프로세서(들)(252), 데이터 저장소(254), 프로그램 명령어들(256), 센서들[예를 들어, 로컬 센서(들)(230) 및 글로벌 센서(들)(240)] 및/또는 전력 소스(262)에 대한 상기 설명은 다른 시스템 또는 배열들에서 사용되는 각각의 컴포넌트들에 관한 이하의 임의의 논의에 적용될 수 있다. 예를 들어, 언급된 바와 같이, (다른 가능한 도면들 중에서도) 도 12는 프로세서들, 데이터 저장소, 프로그램 명령어들, 센서들, 및/또는 전력이 다른 배열로 통합된 것으로 도시한다. 따라서, 문제의 이러한 컴포넌트들은 도 2와 연관하여 위에서 논의된 각각의 컴포넌트들과 동일하거나 유사한 특성(및/또는 형태)을 취할 수 있다. 그러나, 본 개시내용의 범위를 벗어나지 않고서, 문제의 컴포넌트들은 또한 다른 특성(및/또는 형태)을 취할 수 있다.
언급된 바와 같이, 로보틱 디바이스(1200)는 (예를 들어, 마이크로컨트롤러의 형태를 취하는) 컨트롤러(1208)를 포함할 수 있다. 컨트롤러(1208)는 처리 유닛 및 데이터 저장소를 포함할 수 있고, [예를 들어, 개별적으로 또는 프로세서(들)(1202)와 협력하여] 다양한 동작들을 관리 또는 수행하도록 배열될 수 있다. 따라서, 이러한 컨트롤러(1208)는 위에서 언급된 컨트롤러(250)와 동일하거나 유사한 특성들(및/또는 형태)을 취할 수 있지만, 다른 특성들(및/또는 형태)도 취할 수 있다. 따라서, 일부 구현예들에서, 컨트롤러(250)는 로보틱 디바이스(1200)의 일부로서 통합될 수 있고, 따라서 컨트롤러(250) 자체가 컨트롤러(1208)일 수 있다. 다른 구현예에서, 컨트롤러(1208)는 로보틱 디바이스(1200)의 일부로서 포함될 수 있고, 컨트롤러(250)는 로보틱 디바이스(1200)로부터 분리될 수 있다. 구현에 관계없이, 이러한 컨트롤러들은 다양한 형태들을 취할 수 있다. 예를 들어, 컨트롤러는 다른 가능성들 중에서도 칩셋, 서버 시스템, 디지털 신호 프로세서, 프로그래머블 로직 컨트롤러 및/또는 샘플링된 데이터 시스템의 형태를 취할 수 있다. 더욱이, 컨트롤러는 본 명세서에서 다른 것들 중에서도 제어 시스템이라고도 지칭될 수 있다.
추가적으로, 로보틱 디바이스(1200)는 또한 하나 이상의 액추에이터(들)(1214)를 포함할 수 있다. 액추에이터는 기계적 모션을 도입하기 위해 사용될 수 있는 메커니즘이다. 특히, 액추에이터는 저장된 에너지를 하나 이상의 컴포넌트의 이동으로 변환하도록 구성될 수 있다. 액추에이터에 전력을 공급하기 위해 다양한 메커니즘이 사용될 수 있다. 예를 들어, 액추에이터들은 다른 가능성들 중에서도 화학물질들, 압축 공기, 유압, 또는 전기에 의해 전력을 공급받을 수 있다. 이러한 배열로, 액추에이터(들)(1214)는 로보틱 디바이스(1200)의 다양한 이동가능한 컴포넌트(들)(1216)의 이동을 야기할 수 있다. 이동가능한 컴포넌트(들)(1216)는 다른 것들 중에서도, 로보틱 암들, 레그들, 및/또는 핸드들과 같은 부속기들/부재들을 포함할 수 있다. 이동가능한 컴포넌트(들)(1216)는 또한 다른 것들 중에서도 이동가능한 베이스, 휠들, 및/또는 엔드 이펙터들을 포함할 수 있다. 또한, 로보틱 디바이스(1200)가 적어도 하나의 엔드 이펙터를 포함할 때, 이러한 엔드 이펙터는 위에서 논의된 바와 같이, 다른 것들 중에서도 특히, 도구[예를 들어, 스크류 드라이버, 드릴, 용접 철(welding iron) 또는 이들의 일부 조합] 및/또는 그리퍼일 수 있다.
E. 예시적인 컴퓨팅 디바이스
도 13은 하나 이상의 프로세서(1302), 데이터 저장소(1304), 프로그램 명령어(1306), 전력 소스(들)(1308), 센서(1310), 디스플레이(1312), 및 입력 방법 에디터(Input Method Editor)(IME)(1314)를 포함하는 예시적인 컴퓨팅 디바이스(1300)의 컴포넌트들을 도시하는 블록도이다. 컴퓨팅 디바이스(1300)는 예시의 목적으로만 도시되고, 본 개시내용의 범위를 벗어나지 않고서, 컴퓨팅 디바이스(1300)는 추가적인 컴포넌트들을 포함할 수 있고/거나 하나 이상의 컴포넌트가 제거될 수 있음에 유의해야 한다. 또한, 컴퓨팅 디바이스(1300)의 다양한 컴포넌트들은 임의의 방식으로 배열되고 접속될 수 있음에 유의한다.
디스플레이(1312)는 임의의 형태(예를 들어, LED, LCD, OLED 등)를 취할 수 있다. 또한, 디스플레이(1312)는 터치 스크린 디스플레이(예를 들어, 태블릿 상의 터치스크린 디스플레이)일 수 있다. 디스플레이(1312)는 사용자가 그를 통해 본 명세서에 개시된 시스템들과 상호작용할 수 있는 애플리케이션을 제공할 수 있는 그래픽 사용자 인터페이스(GUI)를 보여줄 수 있다.
또한, 컴퓨팅 디바이스(1300)는 IME(1314)를 통해 [예를 들어, 컴퓨팅 디바이스(1300)의 사용자로부터] 사용자 입력을 수신할 수 있다. 특히, IME(1314)는 다른 가능한 상호작용들 중에서도, 스크롤링, 텍스트 제공, 및/또는 애플리케이션의 다양한 피처들의 선택과 같은 GUI와의 상호작용을 허용할 수 있다. IME(1314)는 다양한 형태들을 취할 수 있다. 일례에서, IME(1314)는 GUI의 제어에 사용되는 컴퓨팅 마우스와 같은 포인팅 디바이스일 수 있다. 그러나, 디스플레이(1312)가 터치 스크린 디스플레이인 경우, GUI의 제어를 허용하는 사용자 터치 입력이 수신 될 수 있다(예를 들어, 손가락 또는 스타일러스를 사용하는 것). 다른 예에서, IME(1314)는 GUI를 통해 디스플레이될 숫자, 문자 및/또는 심볼의 선택을 제공하는 키보드와 같은 텍스트 IME일 수 있다.
예를 들어, 디스플레이(1312)가 터치 스크린 디스플레이인 배열에서, 디스플레이(1312)의 부분들은 IME(1314)를 보여줄 수 있다. 따라서, IME(1314)를 포함하는 디스플레이(1312)의 부분 상의 터치 입력은 디스플레이(1312)를 통해 GUI 상에 보여질 특정 숫자들, 문자들, 및/또는 심볼들의 선택과 같은 사용자 입력을 야기할 수 있다. 또 다른 예에서, IME(1314)는 예컨대 컴퓨팅 디바이스(1300)의 마이크로폰을 통해 사용자로부터 오디오 입력을 수신한 다음, 다양한 음성 인식 기술들 중 하나를 사용하여 디스플레이(1312)를 통해 보여질 수 있는 하나 이상의 문자로 해석할 수 있는데 사용될 수 있는 음성 IME일 수 있다. 다른 예들도 또한 가능할 수 있다.
컴퓨팅 디바이스(1300)는 통신 유닛(1316)을 또한 포함할 수 있다. 통신 유닛(1316)은 유선 링크들 및/또는 무선 링크들(예를 들어, 다양한 무선 송신기들 및 수신기들을 사용함)을 포함할 수 있다. 유선 링크는 예를 들어 병렬 버스, 또는 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" 데이터 접속과 같은 다수의 유선 및/또는 무선 프로토콜이 사용될 수 있다.
컴퓨팅 디바이스(1300)는 다른 것들 중에서도 광학 흐름 센서들, 힘 센서들, 근접 센서들, 모션 센서들(예를 들어, 자이로스코프들 및/또는 가속도계들), 하중 센서들, 위치 센서들, 열 화상 센서들, 깊이 센서들(예를 들어, RGB-D, 레이저, 구조화된 광 및/또는 비행 시간 카메라), 초음파 레인지 센서들, 적외선 센서들, 광학 센서들, 무선 주파수 식별(RFID) 시스템들, 근거리 통신(NFC) 칩들, 무선 센서들, 광 센서들, 터치 센서들(예를 들어, 용량성 센서들), 카메라들(예를 들어, 컬러 카메라들, 흑백 카메라들 및/또는 적외선 카메라들) 및/또는 레인지 센서들(예를 들어, 초음파 및/또는 적외선)과 같은 하나 이상의 센서와 결합될 수 있다.
Ⅲ. 추가적인 피처들
A. 직렬화
예들에서, 시스템에 의해 생성된 다양한 데이터는 직렬화되어 시스템의 데이터 저장소[예를 들어, 도 13의 데이터 저장소(1304)]에 저장될 수 있다. 예를 들어, 시스템은 시스템에 의해 생성된 다른 데이터 중에서도, 제품 모델, 가능한 작업 시퀀스들을 생성하기 위해 사용되는 트리, 작업 현장의 월드 맵을 직렬화할 수 있다. 특히, 데이터를 직렬화하면, 시스템이 제품 구축을 일시 중지하고 나중에 재개하는 것이 허용된다. 예를 들어, 근무 시간이 끝나면 구축 프로세스가 일시 중지될 수 있고, 근무 시간이 시작될 때 재개될 수 있다. 구축 프로세스가 재개되고 나면, 시스템은 데이터의 마지막 인스턴스(예를 들어, 마지막 모델, 트리 구조, 월드 맵 등)를 검색할 수 있다. 다음으로, 시스템은, 시스템이 일시 정지된 동안 발생했을 수 있는 임의의 변경들을 처리하기 위해 데이터를 업데이트할 수 있다. 데이터가 업데이트되고 나면, 시스템은 모델의 마지막 인스턴스 및/또는 작업 시퀀스가 여전히 사용될 수 있는지를 결정하기 위해 구축가능성 분석을 수행할 수 있다.
B. 기계 학습
위에서 설명된 예들에 추가하여, 시스템은 기계 학습, 통계 분석, 및/또는 다른 분석 기술들을 사용하여 특정 제품이 정의되는 방법을 학습할 수 있다. 특히, 시스템은 예를 들어 온라인 카탈로그들 또는 다른 소스들로부터 의자들의 3D 모델들을 수집함으로써 특정 제품이 무엇인지 학습할 수 있다. 다음으로, 시스템은 의자 및/또는 그것의 컴포넌트들의 기능적 속성들을 학습할 수 있다. 예를 들어, 시스템은 제품의 속성 세트와 같은 데이터를 분석할 수 있다. 예를 들어, 속성들의 세트는 다른 속성들 중에서도 컬러, 마킹, 시각적 패턴 및 표면 마감/텍스처와 같은 심미적 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 휨 강도, 취성(brittleness), 벌크 모듈러스, 마찰 계수, 압축 강도, 크리프(creep), 탄성, 피로 강도, 가요성, 파괴 인성(fracture toughness), 경도, 가소성, 탄력성, 전단 강도(shear strength), 강성(stiffness), 응력/변형 속성들, 표면 거칠기, 인장 강도, 인성(toughness), 점도(viscosity), 항복 강도, 및 중량과 같은 기계적 속성들을 나타낼 수 있다. 추가적으로 및/또는 대안적으로, 속성들의 세트는 형상, 크기, 배향, 각도 등과 같은 기하학적 속성들을 나타낼 수 있다.
추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 커패시턴스, 전도도, 밀도, 유전 강도, 전계 특성, 인덕턴스, 유전율 및 저항과 같은 전기적 및/또는 자기적 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 내식성, 가연성, pH, 반응성, 안정성, 표면 에너지/인장 및 독성과 같은 화학적 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 기술들 중에서도 코팅, 절단, 드릴링, 형성 및 성형 프로세스들, 열 처리, 접합, 기계 가공, 롤링, 샌딩 및 용접을 위한 제조 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 흡광도(absorbance), 형광, 감광성, 반사율, 굴절률, 산란 및 투과율과 같은 광학 속성들을 나타낼 수 있다. 추가적으로 또는 대안적으로, 속성들의 세트는 다른 속성들 중에서도 비점, 임계점, 방사율, 융점, 비열, 열전도도, 열 확산율 및 열 팽창과 같은 열적 속성들을 나타낼 수 있다.
예를 들어, 시스템은 다른 피처들 중에서도 의자를 정의하는 가능한 하중 지지 제약들(예를 들어, 사람의 체중, 하중 지지 표면 위치)을 학습함으로써 의자가 무엇인지를 학습할 수 있다. 다음으로, 그러한 시스템은 의자의 정의에 따라 의자의 모델을 생성할 수 있다. 또한, 시스템은 특정 제품에 대한 그것의 정의 또는 이해를 정제하는 데 사용할 수 있는 피드백을 수신할 수 있다. 이러한 피드백은 제품의 사용자로부터의 피드백을 포함할 수 있다. 추가적으로, 피드백은 기계 학습 모델에 입력될 수 있고, 그에 의해 시스템은 제품의 정의를 계속하여 정제할 수 있다.
Ⅳ. 결론
본 개시내용은 본 출원에 설명된 특정 실시예들에 관련하여 제한되지 않으며, 이는 다양한 양태들의 예시들로서 의도된다. 본 기술분야의 통상의 기술자들에게 명백한 바와 같이, 그것의 사상 및 범위를 벗어나지 않고서, 많은 수정들 및 변형들이 이루어질 수 있다. 본 명세서에 열거된 것들에 추가하여, 본 개시내용의 범위 내의 기능적으로 등가인 방법들 및 장치들은 상술한 설명으로부터 본 기술분야의 통상의 기술자에게 명백해질 것이다. 이러한 수정들 및 변형들은 첨부된 청구항들의 범위 내에 속하는 것으로 의도된다.
위의 상세한 설명은 첨부 도면들을 참조하여 개시된 시스템들, 디바이스들, 및 방법들의 다양한 피처들 및 기능들을 설명한다. 도면들에서, 문맥이 달리 지시하지 않는 한, 유사한 심볼들은 전형적으로 유사한 컴포넌트들을 식별한다. 본 명세서들 및 도면들에 설명된 예시적인 실시예는 제한적인 것으로 의도되지 않는다. 본 명세서에 제시된 주제의 사상 또는 범위를 벗어나지 않고서, 다른 실시예들이 이용될 수 있고, 다른 변경들이 이루어질 수 있다. 본 명세서에 일반적으로 설명되고 도면들에 일반적으로 도시된 바와 같은 본 개시내용의 양태들은 매우 다양한 상이한 구성들로 배열, 대체, 조합, 분리 및 설계될 수 있으며, 이들 모두는 본 명세서에서 명시적으로 고려된다는 점이 쉽게 이해될 것이다.
위에서 설명된 방법의 블록과 같은 정보의 처리를 표현하는 블록은 본 명세서에 설명된 방법 또는 기술의 특정 논리적 기능들을 수행하도록 구성될 수 있는 회로에 대응할 수 있다. 대안적으로 또는 추가적으로, 정보의 처리를 표현하는 블록은 모듈, 세그먼트 또는 프로그램 코드의 일부(관련 데이터 포함)에 대응할 수 있다. 프로그램 코드는 방법 또는 기술의 특정 논리적 기능들 또는 액션들을 구현하기 위해 프로세서에 의해 실행가능한 하나 이상의 명령어를 포함할 수 있다. 프로그램 코드 및/또는 관련된 데이터는 디스크 또는 하드 드라이브 또는 다른 저장 매체를 포함하는 저장 디바이스와 같은 임의의 유형의 컴퓨터 판독가능한 매체에 저장될 수 있다.
컴퓨터 판독가능한 매체는 또한 레지스터 메모리, 프로세서 캐시 및 랜덤 액세스 메모리(RAM)와 같이, 단기간 동안 데이터를 저장하는 컴퓨터 판독가능한 매체와 같은 비-일시적 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 또한 예를 들어 판독 전용 메모리(ROM), 광학 또는 자기 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM)와 같은 2차 또는 영구 장기 저장소와 같이, 더 긴 기간 동안 프로그램 코드 및/또는 데이터를 저장하는 비-일시적 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 또한 임의의 다른 휘발성 또는 비-휘발성 저장 시스템들일 수 있다. 컴퓨터 판독가능한 매체는 예를 들어 컴퓨터 판독가능한 저장 매체, 또는 유형의 저장 디바이스로 고려될 수 있다.
또한, 하나 이상의 정보 전송을 표현하는 블록은 동일한 물리적 디바이스 내의 소프트웨어 및/또는 하드웨어 모듈들 사이의 정보 전송들에 대응할 수 있다. 그러나, 다른 정보 전송들은 상이한 물리적 디바이스들의 소프트웨어 모듈들 및/또는 하드웨어 모듈들 사이에서 이루어질 수 있다.
도면들에 도시된 특정 배열들은 제한적인 것으로 간주되어서는 안 된다. 다른 실시예들은 주어진 도면에 도시된 각각의 요소를 더 많이 또는 더 적게 포함할 수 있음을 이해해야 한다. 또한, 도시된 요소들 중 일부는 결합되거나 생략될 수 있다. 또한, 예시적인 실시예는 도면들에 도시되지 않은 요소들을 포함할 수 있다.
다양한 양태들 및 실시예들이 여기에 개시되었지만, 다른 양태들 및 실시예들이 본 기술분야의 통상의 기술자에게 명백할 것이다. 본 개시내용에 개시된 다양한 양태들 및 실시예들은 예시를 목적으로 하는 것이고 제한으로 의도되지 않으며, 그것의 진정한 범위는 이하의 청구항들에 의해 나타난다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    제품을 구축하는 구축-전 위상(pre-build phase) 동안, 제품의 모델에 따라 상기 제품을 구축하기 위한 제1 작업 시퀀스(sequence of tasks)를 생성하는 단계;
    구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금 상기 제1 작업 시퀀스를 실행하기 시작함으로써 상기 제품을 구축하게 하는 단계;
    상기 제1 작업 시퀀스의 실행 동안, 상기 제1 작업 시퀀스를 실행함으로써 상기 제품을 완성할 가능성을 결정하기 위해 구축가능성 분석(buildability analysis)을 수행하는 단계;
    상기 분석에 기초하여, 상기 제1 작업 시퀀스를 실행함으로써 상기 제품을 완성하는 것이 불가능하다고 결정하는 단계;
    상기 제1 작업 시퀀스를 수행함으로써 상기 제품을 완성하는 것이 불가능하다는 결정에 응답하여, 상기 모델에 따라 상기 제품을 완성하기 위한 제2 작업 시퀀스를 생성하는 단계 - 상기 제2 작업 시퀀스는 상기 제1 작업 시퀀스와 상이함 -; 및
    상기 하나 이상의 로보틱 디바이스로 하여금 상기 제2 작업 시퀀스를 실행하기 시작함으로써 상기 제품을 계속하여 구축하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 분석에 기초하여, 상기 제1 작업 시퀀스를 실행함으로써 상기 제품을 완성하는 것이 가능하다고 결정하는 단계; 및
    이에 응답하여, 상기 하나 이상의 로보틱 디바이스로 하여금 상기 제1 작업 시퀀스의 실행을 계속함으로써 상기 제품을 계속하여 구축하게 하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서, 제1 작업 시퀀스를 생성하는 단계는:
    트리 구조의 루트 노드와 최종 노드 사이에서 노드들의 시퀀스를 선택하는 단계를 포함하고, 각각의 노드는 작업들 각각에 연관되는 컴퓨터 구현 방법.
  4. 제3항에 있어서, 제2 작업 시퀀스를 생성하는 단계는:
    (ⅰ) 상기 제1 작업 시퀀스의 최종 수행된 작업, 및 (ⅱ) 상기 최종 수행된 작업에 연관된 최종 수행된 노드를 결정하는 단계; 및
    선택된 노드들이 상기 최종 수행된 노드와 제2 최종 노드 사이의 노드들의 시퀀스를 포함하도록, 상기 최종 수행된 노드와 상기 제2 최종 노드 사이에서 하나 이상의 노드를 선택하는 단계
    를 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 제1 작업 시퀀스의 구축가능성 분석을 수행하는 단계는:
    상기 제1 구축 프로세스가 지정된 성능 제약을 만족시키지 않는다고 결정하는 단계; 및
    이에 응답하여, 상기 제1 작업 시퀀스를 수행하여 상기 제품을 완성하는 것이 불가능하다고 결정하는 단계
    를 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서, 상기 지정된 성능 제약은 시간, 비용 및 효율 중 적어도 하나를 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 제품은 작업 현장에서 구축되고 있고, 상기 방법은:
    상기 작업 현장의 맵을 생성하는 단계를 더 포함하고, 상기 작업 현장의 맵은 상기 작업 현장에서 이용가능한 하나 이상의 자원의 설명, 및 상기 제품의 구축된 부분의 설명을 포함하는 컴퓨터 구현 방법.
  8. 제7항에 있어서, 상기 제1 작업 시퀀스의 구축가능성 분석을 수행하는 단계는:
    상기 제품의 구축된 부분의 설명에 기초하여, 상기 제품의 구축된 부분과 상기 모델 사이의 편차를 결정하는 단계;
    상기 편차가 상기 제품의 완성의 가능성에 영향을 미치는지를 결정하는 단계; 및
    상기 편차가 상기 제품의 완성의 가능성에 영향을 미치는 경우, 상기 제1 작업 시퀀스의 작업들을 실행함으로써 상기 제품을 완성하는 것이 불가능하다고 결정하는 단계
    를 포함하는 컴퓨터 구현 방법.
  9. 제7항에 있어서, 상기 제1 작업 시퀀스의 구축가능성 분석을 수행하는 단계는:
    상기 작업 현장의 맵을 분석하는 단계; 및
    상기 분석에 기초하여, 아직 실행되지 않은 상기 제1 작업 시퀀스의 작업들을 실행하는 것이 불가능하다고 결정하는 단계
    를 포함하는 컴퓨터 구현 방법.
  10. 제9항에 있어서, 상기 작업 현장의 맵을 분석하는 단계는:
    로보틱 디바이스가 상기 제1 작업 시퀀스의 작업을 실행하는 것을 방해하는 상기 작업 현장 내의 장애물들을 검출하는 단계, 및 상기 로보틱 디바이스가 상기 제1 작업 시퀀스의 작업을 실행하는 것을 방해하는 상기 로보틱 디바이스의 기하구조를 검출하는 단계 중 적어도 하나를 포함하는 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 구축-전 위상 동안, 상기 제1 작업 시퀀스를 실행하는 상기 하나 이상의 로보틱 디바이스를 시뮬레이션하는 단계;
    상기 시뮬레이션 동안, 상기 작업 현장에서 이용가능한 자원들을 사용하여 상기 제1 작업 시퀀스를 실행할 가능성을 결정하기 위해 상기 제1 작업 시퀀스의 시뮬레이션 구축가능성 분석을 수행하는 단계; 및
    상기 분석에 기초하여, 새로운 작업 시퀀스를 생성하기로 결정하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  12. 제1항에 있어서,
    상기 제2 작업 시퀀스의 실행 동안, 상기 제2 작업 시퀀스를 실행함으로써 상기 제품을 완성할 가능성을 결정하기 위해 구축가능성 분석을 수행하는 단계;
    상기 분석에 기초하여, 상기 제2 작업 시퀀스를 실행함으로써 상기 제품을 완성하는 것이 불가능하다고 결정하는 단계;
    이에 응답하여, 상기 모델에 따라 상기 제품을 완성하기 위해 제3 작업 시퀀스를 생성하는 단계 - 상기 제3 작업 시퀀스는 상기 제2 작업 시퀀스와 상이함 -;
    상기 하나 이상의 로보틱 디바이스로 하여금 상기 제3 작업 시퀀스를 실행하기 시작함으로써 상기 제품을 계속 구축하게 하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  13. 작업 현장 자동화 시스템으로서,
    하나 이상의 로보틱 디바이스; 및
    하나 이상의 프로세서 및 하나 이상의 데이터 저장 디바이스를 포함하는 제어 시스템
    을 포함하고, 상기 제어 시스템은:
    제품을 구축하라는 명령어를 수신하고 - 상기 명령어는 상기 제품에 대한 하나 이상의 제약을 포함함 -;
    구축-전 위상 동안: (ⅰ) 상기 제품에 대한 모델을 결정하고, (ⅱ) 상기 모델에 따라 상기 제품을 구축하기 위한 제1 작업 시퀀스를 생성하고;
    구축 위상 동안, 상기 하나 이상의 로보틱 디바이스로 하여금 상기 제1 작업 시퀀스의 작업들을 실행하기 시작함으로써 상기 제품을 구축하게 하고;
    상기 제1 작업 시퀀스의 실행 동안, 상기 제1 작업 시퀀스를 실행함으로써 상기 제품을 완성할 가능성을 결정하기 위해 상기 제1 작업 시퀀스의 구축가능성 분석을 수행하고;
    상기 분석에 기초하여, 상기 제품을 완성하는 것이 불가능한 경우:
    상기 모델에 따라 상기 제품을 완성하기 위한 제2 작업 시퀀스를 생성하고 - 상기 제2 작업 시퀀스는 상기 제1 작업 시퀀스와 상이함 -;
    상기 하나 이상의 로보틱 디바이스로 하여금 상기 제2 작업 시퀀스를 실행하기 시작함으로써 상기 제품을 계속하여 구축하게 하도록
    구성되는 작업 현장 자동화 시스템.
  14. 제13항에 있어서, 상기 제어 시스템은 추가로:
    상기 제1 작업 시퀀스를 수행함으로써 상기 제품을 완성하는 것이 가능한 경우:
    상기 하나 이상의 로보틱 디바이스로 하여금 상기 제1 작업 시퀀스를 실행함으로써 상기 제품을 계속하여 구축하게 하도록
    구성되는 작업 현장 자동화 시스템.
  15. 제13항에 있어서, 상기 제약들은 상기 제품의 모델에 대한 설계 제약들 및 성능 제약들을 포함하는 작업 현장 자동화 시스템.
  16. 제13항에 있어서, 제1 작업 시퀀스를 생성하도록 구성되는 상기 제어 시스템은:
    트리 구조의 루트 노드와 제1 최종 노드 사이에서 노드들의 시퀀스를 선택하도록 구성되는 제어 시스템을 포함하고, 각각의 노드는 상기 작업들 각각에 연관되는 작업 현장 자동화 시스템.
  17. 제16항에 있어서, 상기 모델에 대한 제2 작업 시퀀스를 생성하도록 구성되는 상기 제어 시스템은:
    (ⅰ) 상기 제1 작업 시퀀스의 최종 수행된 작업, 및 (ⅱ) 상기 최종 수행된 작업에 연관된 최종 수행된 노드를 결정하고;
    선택된 노드들이 상기 최종 수행된 노드와 제2 최종 노드 사이의 노드들의 시퀀스를 포함하도록, 상기 최종 수행된 노드와 상기 제2 최종 노드 사이에서 하나 이상의 노드를 선택하도록
    구성되는 제어 시스템을 포함하는 작업 현장 자동화 시스템.
  18. 컴퓨터 구현 방법으로서,
    구축-전 위상 동안, 제품의 제1 모델에 대한 제1 작업 시퀀스를 생성하는 단계;
    구축 위상 동안, 하나 이상의 로보틱 디바이스로 하여금 상기 제1 작업 시퀀스를 실행하기 시작함으로써 상기 제품을 구축하게 하는 단계;
    상기 제1 작업 시퀀스의 실행 동안, 상기 제1 모델에 따라 상기 제품을 구축할 가능성을 결정하기 위해 상기 제1 모델의 제1 구축가능성 분석을 수행하는 단계;
    상기 분석에 기초하여, 제2 모델을 결정하는 단계; 및
    상기 하나 이상의 로보틱 디바이스로 하여금 상기 제2 모델에 따라 상기 제품을 계속하여 구축하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  19. 제18항에 있어서, 상기 제2 모델을 생성하는 단계는 상기 제2 모델에 대한 제2 작업 시퀀스를 생성하는 단계를 포함하고, 상기 하나 이상의 로보틱 디바이스로 하여금 상기 제2 모델에 따라 상기 제품을 계속하여 구축하게 하는 단계는 상기 하나 이상의 로보틱 디바이스로 하여금 상기 제2 작업 시퀀스를 실행하게 하는 단계를 포함하는 컴퓨터 구현 방법.
  20. 제18항에 있어서, 상기 제1 모델의 구축가능성 분석을 수행하는 단계는:
    상기 제품의 구축된 부분과 상기 제1 모델 사이의 편차를 결정하는 단계;
    상기 편차가 상기 제품을 완성할 가능성에 영향을 미치는지를 결정하는 단계; 및
    상기 편차가 상기 제1 모델에 따라 상기 제품을 완성할 가능성에 영향을 미치는 경우, 상기 제1 모델에 따라 상기 제품을 완성하는 것이 불가능하다고 결정하는 단계
    를 포함하는 컴퓨터 구현 방법.
KR1020197029571A 2017-06-01 2018-03-22 구축가능성 분석에 기초한 프로젝트들의 계획 및 적응 KR102334995B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/611,777 US20180348742A1 (en) 2017-06-01 2017-06-01 Planning and Adapting Projects Based on a Buildability Analysis
US15/611,777 2017-06-01
PCT/US2018/023775 WO2018222252A1 (en) 2017-06-01 2018-03-22 Planning and adapting projects based on a buildability analysis

Publications (2)

Publication Number Publication Date
KR20190117812A true KR20190117812A (ko) 2019-10-16
KR102334995B1 KR102334995B1 (ko) 2021-12-06

Family

ID=64455475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197029571A KR102334995B1 (ko) 2017-06-01 2018-03-22 구축가능성 분석에 기초한 프로젝트들의 계획 및 적응

Country Status (7)

Country Link
US (2) US20180348742A1 (ko)
EP (1) EP3586207B1 (ko)
JP (1) JP6895539B2 (ko)
KR (1) KR102334995B1 (ko)
CN (1) CN110494813B (ko)
CA (1) CA3059412C (ko)
WO (1) WO2018222252A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150034126A (ko) * 2012-07-24 2015-04-02 디아이씨 가부시끼가이샤 금속 나노 입자 복합체, 금속 콜로이드 용액 및 그들의 제조 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016189896A1 (ja) * 2015-05-22 2016-12-01 富士フイルム株式会社 ロボット装置及びロボット装置の移動制御方法
US11162241B2 (en) * 2018-03-27 2021-11-02 Deere & Company Controlling mobile machines with a robotic attachment
US10810524B1 (en) * 2018-05-21 2020-10-20 Amazon Technologies, Inc. Dynamic resource prediction simulation
US11745345B2 (en) 2019-08-30 2023-09-05 Intrinsic Innovation Llc Planning by work volumes to avoid conflicts
US11747787B2 (en) 2019-08-30 2023-09-05 Intrinsic Innovation Llc Combining transformers for robotics planning
US11577392B2 (en) 2019-08-30 2023-02-14 Intrinsic Innovation Llc Splitting transformers for robotics planning
US11890758B2 (en) 2019-08-30 2024-02-06 Intrinsic Innovation Llc Robot planning from process definition graph
US11813751B2 (en) 2019-08-30 2023-11-14 Intrinsic Innovation Llc Multi-objective robot path planning
US11787048B2 (en) 2019-08-30 2023-10-17 Intrinsic Innovation Llc Robot planning from process definition graph
KR102382749B1 (ko) * 2019-09-17 2022-04-06 한국전자기술연구원 조립 구조물 지원 장치와 방법
US11526823B1 (en) 2019-12-27 2022-12-13 Intrinsic Innovation Llc Scheduling resource-constrained actions
US11511419B2 (en) * 2020-05-01 2022-11-29 Intrinsic Innovation Llc Task planning for measurement variances
EP3926422A1 (en) * 2020-06-17 2021-12-22 Siemens Aktiengesellschaft Method for programming at least one machine in an industrial automation system
CN111764665A (zh) * 2020-07-10 2020-10-13 上海雅跃智能科技有限公司 一种基于bim的智能爬架与外墙作业机器人系统
US11763223B1 (en) * 2022-05-18 2023-09-19 Realization Technologies, Inc System for generating and maintaining a resource deployment map over a communications network
CN116540659B (zh) * 2023-07-04 2023-11-10 成都飞机工业(集团)有限责任公司 一种大型复杂产品车间调度方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120215352A1 (en) * 2011-02-17 2012-08-23 Convergent Information Technologies Gmbh Method for the automated programming and optimization of robotic work sequences
US20150239127A1 (en) * 2014-02-25 2015-08-27 Gm Global Technology Operations Llc. Visual debugging of robotic tasks

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5969973A (en) * 1994-11-09 1999-10-19 Amada Company, Ltd. Intelligent system for generating and executing a sheet metal bending plan
US5835684A (en) * 1994-11-09 1998-11-10 Amada Company, Ltd. Method for planning/controlling robot motion
WO2001016838A2 (en) * 1999-08-30 2001-03-08 Strategic Simulation Systems, Inc. Project management, scheduling system and method
US10110795B2 (en) * 2002-06-04 2018-10-23 General Electric Company Video system and method for data communication
JP2004240659A (ja) * 2003-02-05 2004-08-26 Hitachi Ltd 作業指示システム
JP4319026B2 (ja) * 2003-12-26 2009-08-26 株式会社神戸製鋼所 スケジュール作成方法及びスケジュール作成システム、並びにプログラム
US8355818B2 (en) * 2009-09-03 2013-01-15 Battelle Energy Alliance, Llc Robots, systems, and methods for hazard evaluation and visualization
CN104453789B (zh) * 2007-12-05 2017-12-22 霍利贝顿能源服务公司 改进井具的设计、制造、性能和/或使用的方法和系统
US9144904B2 (en) * 2008-05-21 2015-09-29 Fanuc Robotics America Corporation Method and system for automatically preventing deadlock in multi-robot systems
US20100017009A1 (en) * 2008-06-30 2010-01-21 International Business Machines Corporation System for monitoring multi-orderable measurement data
US8560358B2 (en) * 2008-09-23 2013-10-15 Sap Ag Collaborative environment to assess, design, and implement product changes
US8290830B2 (en) * 2010-04-07 2012-10-16 Siemens Product Lifecycle Management Software Inc. System and method for visualization and comparison of physical assets using engineering design data
US8744626B2 (en) * 2010-05-27 2014-06-03 Deere & Company Managing autonomous machines across multiple areas
EP2637594A4 (en) * 2010-11-11 2015-05-06 Univ Johns Hopkins ROBOT SYSTEMS FOR HUMAN MACHINE COLLABORATION
US8401687B2 (en) * 2010-11-24 2013-03-19 Sap Ag Visual assembly tool
US20120283863A1 (en) * 2011-05-02 2012-11-08 Interface Technologies Resource scheduling and adaptive control software for cutting room operations
JP5689396B2 (ja) * 2011-10-06 2015-03-25 株式会社日立製作所 生産計画装置および生産計画方法
US20140025230A1 (en) * 2012-07-17 2014-01-23 Elwha LLC, a limited liability company of the State of Delaware Unmanned device interaction methods and systems
US20140249882A1 (en) * 2012-10-19 2014-09-04 The Curators Of The University Of Missouri System and Method of Stochastic Resource-Constrained Project Scheduling
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US20140278712A1 (en) * 2013-03-15 2014-09-18 Oracle International Corporation Asset tracking in asset intensive enterprises
WO2015113203A1 (en) * 2014-01-28 2015-08-06 Abb Technology Ltd Method and apparatus for optimizing performance of robotic cell
US9278449B1 (en) * 2014-05-21 2016-03-08 Bot & Dolly, Llc Closed-loop control system for robotic operation
US20150363513A1 (en) * 2014-06-13 2015-12-17 Wolfram Alpha Llc Method and system for designing products
US9686275B2 (en) * 2014-07-07 2017-06-20 International Business Machines Corporation Correlating cognitive biometrics for continuous identify verification
US9272417B2 (en) * 2014-07-16 2016-03-01 Google Inc. Real-time determination of object metrics for trajectory planning
US9440353B1 (en) * 2014-12-29 2016-09-13 Google Inc. Offline determination of robot behavior
WO2016138242A1 (en) 2015-02-25 2016-09-01 Abb Technology Ag Robotic additive manufacturing apparatuses, systems and methods
CN104808627A (zh) * 2015-04-20 2015-07-29 海安县申菱电器制造有限公司 一种离散制造系统的车间布局方法
DE112016002431T8 (de) 2015-05-29 2018-04-05 Abb Schweiz Ag Verfahren und System zur robotischen adaptiven Produktion
EP3101566A1 (de) * 2015-06-05 2016-12-07 Invenio Virtual Technologies GmbH Verfahren und vorrichtung zum überprüfen der baubarkeit eines virtuellen prototyps
US10803207B2 (en) 2015-07-23 2020-10-13 Autodesk, Inc. System-level approach to goal-driven design

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120215352A1 (en) * 2011-02-17 2012-08-23 Convergent Information Technologies Gmbh Method for the automated programming and optimization of robotic work sequences
US20150239127A1 (en) * 2014-02-25 2015-08-27 Gm Global Technology Operations Llc. Visual debugging of robotic tasks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150034126A (ko) * 2012-07-24 2015-04-02 디아이씨 가부시끼가이샤 금속 나노 입자 복합체, 금속 콜로이드 용액 및 그들의 제조 방법

Also Published As

Publication number Publication date
CA3059412A1 (en) 2018-12-06
EP3586207A4 (en) 2021-01-20
EP3586207A1 (en) 2020-01-01
JP2020522037A (ja) 2020-07-27
CA3059412C (en) 2023-09-26
CN110494813A (zh) 2019-11-22
EP3586207B1 (en) 2023-05-31
US11256240B2 (en) 2022-02-22
WO2018222252A1 (en) 2018-12-06
JP6895539B2 (ja) 2021-06-30
US20200174460A1 (en) 2020-06-04
US20180348742A1 (en) 2018-12-06
CN110494813B (zh) 2022-08-30
KR102334995B1 (ko) 2021-12-06

Similar Documents

Publication Publication Date Title
KR102334995B1 (ko) 구축가능성 분석에 기초한 프로젝트들의 계획 및 적응
US10967501B1 (en) Guide placement by a robotic device
US20200218223A1 (en) Automatic Generation of Toolpaths
US20220009100A1 (en) Software Interface for Authoring Robotic Manufacturing Process
US11253991B1 (en) Optimization of observer robot locations
US20190240833A1 (en) Trajectory generating method, and trajectory generating apparatus
EP3166084B1 (en) Method and system for determining a configuration of a virtual robot in a virtual environment
Leu et al. CAD model based virtual assembly simulation, planning and training
Yap et al. Virtual reality based support system for layout planning and programming of an industrial robotic work cell
US11726448B1 (en) Robotic workspace layout planning
Stumm et al. On-site robotic construction assistance for assembly using a-priori knowledge and human-robot collaboration
CN106457570A (zh) 作业机器人示教数据生成装置以及示教数据生成方法
US20220019939A1 (en) Method and system for predicting motion-outcome data of a robot moving between a given pair of robotic locations
EP3638463A1 (en) Method and system for teaching a robot in reaching a given target in robot manufacturing
Ramer et al. A robot motion planner for 6-DOF industrial robots based on the cell decomposition of the workspace
Ding et al. A human-guided vision-based measurement system for multi-station robotic motion platform based on v-rep
JP2022550242A (ja) ロボット振付師
EP4088883A1 (en) Method and system for predicting a collision free posture of a kinematic system
Xia et al. DTMR: Industrial Digital Twin Architecture for New Production Line Design in Mixed Reality Environment
Zhao et al. Development of a CMM training system in virtual environments
BUSHRA AHMED MOHAMED ENERGY MODELLING AND SIMULATION FOR INDUSTRIAL ROBOTS

Legal Events

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