KR102392114B1 - 유연한 인간-기계 협업을 위한 시스템 및 방법 - Google Patents

유연한 인간-기계 협업을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102392114B1
KR102392114B1 KR1020177008653A KR20177008653A KR102392114B1 KR 102392114 B1 KR102392114 B1 KR 102392114B1 KR 1020177008653 A KR1020177008653 A KR 1020177008653A KR 20177008653 A KR20177008653 A KR 20177008653A KR 102392114 B1 KR102392114 B1 KR 102392114B1
Authority
KR
South Korea
Prior art keywords
capability
robot
action
tool
user
Prior art date
Application number
KR1020177008653A
Other languages
English (en)
Other versions
KR20170047364A (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 더 존스 홉킨스 유니버시티
Priority to KR1020227013923A priority Critical patent/KR102564933B1/ko
Publication of KR20170047364A publication Critical patent/KR20170047364A/ko
Application granted granted Critical
Publication of KR102392114B1 publication Critical patent/KR102392114B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • 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/1628Programme controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • 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
    • 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/33Director till display
    • G05B2219/33051BBC behavior based control, stand alone module, cognitive, independent agent
    • 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/36422During teaching shut off, disable motor to move arm easy
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39365By using a cue, part of a stimulus to prompt an adapted reaction pattern
    • 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/40118Task oriented virtual tool, developed for task, assists operator in task
    • 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/40122Manipulate virtual object, for trajectory planning of real object, haptic display
    • 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/40131Virtual reality control, programming of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer
    • 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
    • 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/02Arm motion controller
    • 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/02Arm motion controller
    • Y10S901/03Teaching system
    • Y10S901/04Manual lead through
    • 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

Abstract

인간-기계 협업을 가능하게 하는 방법 및 시스템은 로봇 능력 표현 및 인간-기계 협업 작용의 동적 적응 및 재사용을 지원하는 일반화가능 프레임워크(320, 350)를 포함한다. 구체적으로, 사용자-로봇 협업을 가능하게 하는 컴퓨터 구현 방법(600, 700, 800)은 사용자 상호작용 능력 및 로봇 능력(표 1)의 구성(도 2, 400)을 제공하는 단계(614)로서, 로봇 능력은 파라미터의 세트에 기초하여 작업 액션의 타입을 수행하는 로봇(340, 380)의 기능성을 모델링하는 단계; 파라미터의 세트를 캡슐화하는 정보 커널로 로봇 능력을 특수화하는 단계(616, 714, 716); 로봇 능력 및 정보 커널에 기초하여 로봇 능력 요소를 제공하는 단계(712, 714, 716) 및 사용자 상호작용 능력에 기초하여 상호작용 능력 요소를 제공하는 단계(718); 로봇 능력 요소를 상호작용 능력 요소에 연결하는 단계(618, 800); 파라미터의 세트와 연관되는 사용자 입력(510, 520, 530, 540)을 취득하기 위해 상호작용 능력 요소에 기초하여 사용자 인터페이스(310, 370, 500)를 제공하는 단계(620); 및 작업 액션의 타입의 작업 액션을 수행하기 위해 사용자 입력 및 정보 커널에 기초하여 로봇 능력 요소를 통해 로봇의 기능성을 제어하는 단계(620)를 포함한다.

Description

유연한 인간-기계 협업을 위한 시스템 및 방법{SYSTEM AND METHOD FOR FLEXIBLE HUMAN-MACHINE COLLABORATION}
우선권 주장
본 출원은 Kelleher Guerin, Gregory D. Hager, 및 Sebastian Riedel에 의해 2014년 9월 2일에 출원되고, 발명의 명칭이 "System and Method for Flexible Human-Machine Collaboration"인 미국 특허 출원 제14/475,184호에 관한 것이며, 그 출원으로부터 우선권이 주장되고, 그것의 내용은 이로써 본원에 전체적으로 참조로 포함된다.
정부 지원 진술
본 발명은 미국 국립 과학 재단에 의해 수여되는 승인 번호 NRI-1227277 하에 정부 지원으로 이루어졌다. 미국 정부는 이 발명에 일정 권리를 갖는다.
분야
본 개시는 일반적으로 로봇 능력 표현 및 인간-기계 협업 작용의 동적 적응 및 재사용을 지원하는 일반화가능 프레임워크를 통해 인간-기계 협업을 가능하게 하는 시스템 및 방법에 관한 것이다.
로봇 산업 자동화는 작업 예컨대 용접, 절단, 스탬핑, 페인팅, 중재료(heavy material) 취급, 정밀 재료 기계가공 등을 위한 규모에 상당한 장점을 제공하기 때문에 대규모 제조에서 상당한 성공을 보여왔다. 대규모 제조에서 로봇 자동화의 성공은 로봇 자동화의 사용을 중소 규모의 제조 기업("SME")으로 확장하는 오래된 요구를 초래했다. 그러나 대규모 제조와 대조적으로, SME 생산 프로세스는 전형적으로 적은 생산량 및/또는 높은 제품 가변성에 특징이 있다. 따라서, 유연한 로봇 자동화의 인프라스트럭처, 전문화된 직원, 셋업, 및 프로그래밍을 상각하는(amortize) 능력은 SME에 대해 훨씬 감소된다.
SME 프로세스는 때때로 고레벨의 맞춤화를 필요로 하고 및 따라서 필연적으로 인간 기술 및 판단을 수반하는 작업을 포함한다. 예를 들어, 재연마 작업 및 수주 생산 제조 프로세스는 예측하지 못한 워크피스 분산 및 장비 수정을 수용해야 한다. 그와 같은 경우에, 기존 인간 중심 생산 프로세스는 어디서 또는 어떻게 로봇 자동화가 그것의 복제 또는 감소보다는 오히려, 효과적인 인간 집약적 프로세스에의 유용한 추가일 수 있는지를 판단하는 것을 어렵게 할 수 있다. 다수의 고숙련 직원을 갖는 맞춤 가구 제조를 전문으로 하는 SME를 예로써 취한다. 그러한 SME는 능란한 액션을 수반하는 반복 작업, 예컨대 드릴링 또는 샌딩 작업을 자동화하기 위해 로봇 시스템을 사용함으로써 그의 직원의 효율 및 생산성을 개선하기를 원할 수 있다. 그러나 상용 재고 로봇 시스템은 SME가 그의 직원의 기존 작업 지식 및 경험을 강화하는 것이 불가능하기 때문에 이러한 경우에 유용하지 않을 것이다.
그러므로, 종래 기술에 의해 제공되는 이러한 및 다른 문제를 극복하는 시스템 및 방법에 대한 요구가 있다.
많은 작업 영역은 자동화된 로봇 시스템에 유연하고 효율적인 상호작용을 제공하는 적절한 협업 시스템의 부족 때문에 그러한 로봇 시스템을 아직 활용하지 못하고 있다. 그러한 작업 영역의 예는 SME 프로세스, 신체 장애자에 대한 집에서의 원조, 협업 로봇 수술 등을 포함한다. 이러한 작업 영역에서, 작업을 수동으로 수행하는 것 또는 작업을 완전히 자동화하는 것은 바람직하지 않으며 실용적이지 않다. 그러므로, 유연하고 효율적인 사용자-로봇 상호작용을 제공하고 사용자 상호작용에 관해 다양한 지속, 복잡성, 및 제약을 갖는 광범위한 작업에 걸쳐 효과적인 협업 로봇 시스템 및 방법에 대한 요구가 존재한다.
다양한 구현예에 따른 예시적 협업 로봇 시스템은 광범위한 작업을 수행하기 위해 일반화가능 방식으로 명령받거나 트레이닝되고 리트레이닝 없이 적절하게 작업 사이에서 전환될 수 있다. 협업 로봇 시스템은 광범위한 사용자 역할 및 로봇 능력에 대한 인간-로봇 협업 동작을 지원하고, 로봇 능력을 사용자 인터페이스 또는 상호작용 패러다임인 특정 사용자 상호작용 능력에 관련시키는 로봇 능력 및 협업 작용의 세트를 통해 인간-로봇 시스템을 모델링한다. 로봇 능력은 다른 로봇 능력과 복합되고 특정 작업에 대해 특수화될 수 있다. 작업을 수행하기 위해, 협업 로봇 시스템은 다양한 작업 관련 정보 또는 파라미터, 예컨대 도구 행동유도성 또는 도구 작용 제약, 도구 이동 프리미티브, 및 지각 그라운딩 템플릿을 사용하여 로봇 능력을 동적으로 적응시킬 수 있다. 특정 작업 및 로봇 능력에 대해, 협업 로봇 시스템은 이용 가능 인터페이스의 제약을 받는 작업을 달성하기 위해 로봇 능력에 의해 요구되는 하나 이상의 사용자 상호작용 양상을 결정해야 한다. 그러므로, 하나 이상의 로봇 능력 및 하나 이상의 사용자 상호작용 능력의 구성을 포함하는 협업 작용은 사용자 상호작용에 대한 로봇 능력의 요건을 충족시키기 위해 사용자 상호작용 능력을 로봇 능력에 매핑해야 한다.
본 개시의 구현예는 로봇 능력 표현 및 인간-기계 협업 작용의 동적 적응 및 재사용을 지원하는 일반화가능 프레임워크를 통해 인간-기계 협업을 가능하게 하는 시스템 및 방법에 관한 것이다. 구체적으로, 사용자-로봇 협업을 가능하게 하는 컴퓨터 구현 방법은 로봇 능력 및 하나 이상의 사용자 상호작용 능력의 구성을 제공하는 단계로서, 로봇 능력은 하나 이상의 파라미터의 세트에 기초하여 작업 액션의 타입을 수행하는 로봇의 적어도 하나의 기능성을 모델링하는 단계; 정보 커널로 로봇 능력을 특수화하는 단계로서, 정보 커널은 하나 이상의 파라미터의 세트를 캡슐화하는 단계; 로봇 능력 및 정보 커널에 기초하여 로봇 능력 요소를 제공하는 단계로서, 로봇 능력 요소는 로봇 능력의 인스턴스인 단계; 하나 이상의 사용자 상호작용 능력에 기초하여 하나 이상의 상호작용 능력 요소를 제공하는 단계로서, 하나 이상의 상호작용 능력 요소는 하나 이상의 사용자 상호작용 능력의 인스턴스인 단계; 로봇 능력 요소를 하나 이상의 상호작용 능력 요소에 연결하는 단계; 하나 이상의 파라미터의 세트와 연관되는 사용자 입력을 취득하기 위해 하나 이상의 상호작용 능력 요소에 기초하여 하나 이상의 UI를 제공하는 단계; 및 작업 액션의 타입의 작업 액션을 수행하기 위해 사용자 입력 및 정보 커널에 기초하여 로봇 능력 요소를 통해 로봇의 적어도 하나의 기능성을 제어하는 단계를 포함한다.
본 개시의 구현예의 부가 목적 및 장점은 이하의 설명에서 부분적으로 진술되고, 부분적으로 설명으로부터 분명해지거나, 구현예의 실시에 의해 습득될 수 있다. 구현예의 목적 및 장점은 첨부된 청구항에 특히 언급되는 요소 및 조합에 의해 실현되고 달성될 것이다.
상술한 일반적 설명 및 이하의 상세한 설명 둘 다는 청구되는 바와 같이, 단지 예시적이고 설명적이며 구현예로 제한되지 않는다는 점이 이해되어야 한다.
도 1a는 본 개시의 구현예에 따른 다양한 타입의 도구와 연관되는 다양한 타입의 도구 작용 제약의 예를 예시하는 도해이다.
도 1b는 사용자가 본 개시의 구현예에 따른 모션 궤적을 지정하기 위해 로봇의 아바타와 상호작용할 수 있는 실감 가상 현실 환경을 도시한다.
도 2는 사용자 및 로봇에 연결되는 능력의 구성을 포함하는 협업 작용의 일 예를 예시한다.
도 3a 및 도 3b는 본 개시의 원리에 따른 인간-기계 협업 시스템의 예시적 구현예를 예시한다.
도 4는 본 개시의 원리에 따른 협업 작용에 의해 요구되는 작용 구성요소를 지정하는 작용 매니페스트의 일 예를 예시한다.
도 5는 본 개시의 원리에 따른 인간-기계 협업 시스템에 의해 제공되는 사용자 인터페이스의 일 예를 예시한다.
도 6은 본 개시의 구현예에 따른 로봇 능력 표현 및 인간-기계 협업 작용의 동적 적응 및 재사용을 지원하는 일반화가능 프레임워크를 통해 인간-기계 협업을 가능하게 하는 예시적 방법을 예시하는 흐름도이다.
도 7 및 도 8은 본 개시의 구현예에 따른 인간-기계 협업 작용을 구현하는 다양한 타입의 능력 및 링크를 제공하기 위한 예시적 방법을 예시하는 흐름도이다.
도 9는 본 개시의 구현예에 따른 인간-기계 협업 작용을 구성하는 예시적 방법을 예시하는 흐름도이다.
도 10은 본 개시에 따른 개시된 구현예를 수행하는 예시적 컴퓨터 시스템이다.
참조는 이제 첨부 도면에 예시되는 예시적 구현예에 상세히 이루어질 것이다. 적절할 경우, 동일한 참조 번호는 동일 또는 유사한 부분을 언급하기 위해 도면의 도처에서 사용된다.
단순화 및 예시적 목적을 위해, 본 개시의 원리는 그것의 예시적 구현예를 주로 언급함으로써 설명된다. 그러나 당업자는 동일한 원리가 모든 타입의 정보 및 시스템에 동등하게 적용 가능하고 모든 타입의 정보 및 시스템에 구현될 수 있는 것, 및 임의의 그러한 변형이 본 개시의 진정한 사상 및 범위로부터 벗어나지 않는 것을 용이하게 인식할 것이다. 더욱이, 이하의 상세한 설명에서, 참조는 특정 예시적 구현예를 예시하는 첨부 도면에 이루어진다. 전기적, 기계적, 논리적 및 구조적 변경은 본 개시의 사상 및 범위로부터 벗어나는 것 없이 예시적 구현예에 이루어질 수 있다. 그러므로, 이하의 상세한 설명은 제한적 의미로 해석되지 않아야 하고 본 개시의 범위는 첨부된 청구항 및 그것의 균등물에 의해 정의된다.
인간 안전 산업 로봇의 증가하는 보급은 SME 및 다른 최근 작업 영역 예컨대 구식 또는 손상 및 협업 수술 로보틱스에 대한 원조를 위해, 인간 사용자 및 로봇이 반구조화된 작업의 세트 주위에서 상호작용하는 협업 로봇 시스템의 관심을 자극하고 있다. 이러한 작업 영역에 수행되는 작업의 범위는 빠르게 변화될 수 있으므로, 협업 로봇 시스템이 완전한 재프로그래밍을 필요로 하는 것 없이 작업에 걸쳐 적절하게 적응되는 요구가 존재한다.
본 개시의 다양한 구현예는 협업 설계 및 사용 패턴의 넓은 군을 지원하는 프레임워크를 통해 인간-기계 협업을 가능하게 하는 시스템 및 방법을 포함한다. 본 개시의 다양한 구현예에 따른 예시적 인간-기계 협업 시스템은 하나 이상의 인간 사용자에 의해 하나 이상의 로봇의 동작, 트레이닝, 트러블슈팅, 또는 리태스킹의 적어도 하나의 특정 모드를 가능하게 하기 위해, 재사용가능 로봇 능력 표현의 구성, 동적 적응, 및 관리를 지원하는 일반화가능 프레임워크를 구현한다. 로봇 능력 표현의 동적 적응은 협업 시스템이 일반적으로 로봇 능력 표현을 저장하고 다양한 타입의 작업 액션을 재사용할 수 있는 도구, 워크피스, 및/또는 로봇의 워크 환경에 관하여 협업 시스템에 의해 캡처되는 정보 및 파라미터를 일반화하는 것을 포함한다. 작업 액션의 타입은 예를 들어 모션 제약, 모션 즉시 재생, 궤적 발생 등을 포함할 수 있다. 로봇 능력 표현의 동적 적응은 또한 특정 작업 액션을 수행하기 위해 일반 로봇 능력 표현을 특수화하는 것을 포함한다. 일반화가능 프레임워크는 능력 표현의 구성, 예를 들어 로봇 능력 및 사용자 상호작용 능력, 및 능력 표현 사이의 매핑을 포함하는 인간-기계 협업 작용의 구성, 재사용, 및 관리를 지원한다. 일반화가능 프레임워크를 구현함으로써, 협업 시스템은 광범위한 작업 및 작업 액션을 수행하기 위해 일반화가능 방식으로 명령받고 트레이닝될 수 있고, 리트레이닝 또는 완전한 재프로그래밍 없이 적절하게 작업 사이에서 전환될 수 있다.
본 개시에서, 단어 "로봇"은 로봇 조작자 또는 로봇 조작자의 세트 대신에 사용될 것이다. 전형적으로, 로봇은 자동화 또는 반자동화 생산 적용을 위한 산업 로봇 조작자 또는 산업 로봇 조작자의 세트이다. 로봇의 한계 공간은 로봇이 물리적으로 이동하거나 도달할 수 있는 모션의 범위이며, 이 범위는 로봇의 엔드 이펙터에 의해 도달될 수 있는 공간에 포인트의 세트를 포함하고, 엔드 이펙터는 로봇에 부착되는 도구 이펙터 또는 로봇에 부착되는 그리퍼 타입 엔드 이펙터에 의해 잡히거나 유지되는 도구일 수 있다. 예를 들어, 로봇의 한계 공간은 로봇의 도구 이펙터 포인트("TEP")가 물리적으로 이동하거나 도달할 수 있는 모션의 범위를 포함할 수 있다. 로봇의 TEP는 로봇에 부착되는 도구 이펙터의 포인트 클라우드 내의 참조 포인트(예를 들어, 사용자 선택 포인트, 도구 이펙터의 엔드포인트, 로봇에의 부착의 포인트 등) 또는 로봇의 엔드 이펙터에 의해 잡히는 도구 내의 참조 포인트(예를 들어, 사용자 선택 포인트, 도구의 엔드포인트, 엔드 이펙터가 도구를 잡는 포인트 등)로 정의될 수 있다. 로봇의 한계 공간의 크기 및 형상은 로봇의 좌표 기하학적 구조에 의존하고 로봇의 설계, 예컨대 로봇의 구성(예를 들어, 조인트의 타입, 조인트의 이동 범위, 조인트를 연결하는 링크의 길이 등), 자유도("DOF")의 수 등에 영향을 받는다. 일부 구현예에서, 로봇의 한계 공간의 크기 및 형상은 또한 로봇에 부착되는 도구 이펙터 또는 로봇의 엔드 이펙터에 의해 잡히는 도구의 크기 및 형상에 영향을 받을 수 있다. 로봇은 일반적으로 로봇의 한계 공간에서 포인트의 모두 또는 거의 모두를 포함하는 최대 워크스페이스 내에서 워크를 수행할 수 있다. 협업 시스템은 하나 이상의 제약을 집행하거나 적용하기 위해 로봇의 워크스페이스를 로봇의 최대 워크스페이스 내의 포인트의 서브세트에 제약할 수 있으며, 그것은 아래에 더 상세히 설명된다.
일반화가능 프레임워크를 통해, 협업 시스템은 적어도 하나의 로봇으로 작업을 협업적으로 수행하기 위해 사용되는 작업 지식을 캡처하기 위해 적어도 하나의 인간 사용자와 상호작용하고, 그 다음에 로봇 및/또는 적어도 하나의 다른 로봇에 의해, 효율적이고 휴대 방식으로 다른 작업을 협업적으로 수행하기 위해 캡처된 작업 지식을 적응시킬 수 있다. 협업 시스템은 더 많은 작업 지식이 캡처됨에 따라 더 유능해지며, 협업 시스템이 더 유능해짐에 따라, 작업마다 사용자로부터 더 적은 양의 정보가 요구된다. 더욱이, 캡처된 작업 지식의 성질은 저레벨(예를 들어, 밀집한 궤적의 수동 증명)로부터 더 높은 레벨(예를 들어, 마우스 클릭 입력, 구두 명령 등)로 진행될 수 있다. 시스템 능력이 증가하고 상세한 사용자 상호작용에 대한 요구가 감소함에 따라, 협업 시스템은 새로운 적용을 위해 축소되고 환경 구조 또는 모델링의 부족으로 인해 전형적으로 통합된 자동화를 갖지 않는 환경으로 점차 도입될 수 있다.
다양한 구현예에서, 일반화가능 프레임워크는 (1) 드물게 변화하는 파라미터에 기초하여 입력 정보를 출력 정보 또는 액션에 매핑하는 더 높은 차수의 기능인 능력, 및 (2) 작업을 완료하기 위해 로봇과 작업하도록 인간 사용자에 대한 적어도 하나의 적절한 인터페이스에 작업의 적어도 하나의 미지의 차원 사이의 매핑인 협업 작용에 대한 모델을 정의하고 제공한다. 일반화가능 프레임워크는 로봇 능력 및 사용자 상호작용 능력을 포함하는 상이한 클래스의 능력을 제공할 수 있다. 로봇 능력은 특정 작업에 대해 특수화될 수 있는 재사용가능 로봇 능력 표현의 역할을 하고, 로봇 능력은 런타임에서 로봇의 적어도 하나의 기능성을 모델링하고 사용자 상호작용 능력 또는 다른 로봇 능력에 연결될 수 있다. 사용자 상호작용 능력은 입력 커맨드를 필요로 하거나 피드백을 디스플레이함으로써 하나 이상의 인터페이스 양상을 사용자에게 제공한다. 일반화가능 프레임워크에 의해 제공되는 능력 및 협업 작용의 사용을 통해, 협업 시스템은 협업 상호작용의 동적 성질을 설명할 수 있는 유연한 인간-로봇 협업을 위해 환경 구조를 제공한다.
협업 시스템은 하나의 상황으로부터 정보를 캡처하고 일반화함으로써 일반 로봇 능력을 생성하고, 그 다음에 일반 로봇 능력을 하나 이상의 상황 특정 파라미터로 인스턴스화하고 파라미터화함으로써 상이한 및 심지어 새로운 상황에 대한 일반 로봇 능력을 특수화할 수 있다. 일반 로봇 능력은 작업 관련 파라미터의 세트를 필요로 하는 작업 액션의 타입을 수행하기 위해 도구 타입의 부착된 도구를 사용하는 로봇의 적어도 하나의 기능성을 모델링한다. 다양한 구현예에서, 협업 시스템은 3개의 타입의 작업 관련 파라미터: 즉, 도구 작용 제약 또는 도구 행동유도성, 도구 이동 프리미티브, 및 지각 템플릿에 기초하여 다양한 타입의 작업 액션에 대한 로봇 능력을 동적으로 적응시킬 수 있다.
도구에 대한 도구 작용 제약은 도구의 적어도 하나의 도구 행동유도성에 기초하여 결정될 수 있다. 도구 행동유도성은 개체(예를 들어, 로봇, 사람, 다른 도구 등)가 도구로 하나 이상의 액션을 수행할 여유가 있거나 수행할 수 있게 하는 도구의 하나 이상의 특징, 성질, 속성, 또는 특성이다. 협업 시스템은 모션 증명, 도구 및 워크피스에 관한 파라미터, 및 하나 이상의 작업 액션을 로봇의 워크 환경에 관련시키는 파라미터를 통해 정보를 캡처할 수 있다. 캡처된 정보는 캡슐화되고 일반화된 다음에 재사용가능 로봇 능력 표현에 저장될 수 있다. 예를 들어, 특정 드릴 파라미터는 1 초과 타입의 드릴 비트 또는 워크피스에 대해 유효하고, 모션 증명은 특정 상황을 위해 조절될 수 있는 원형 모션, 예컨대 부착된 드릴 비트의 세로 축과 평행한 선형 드릴링 모션을 정의할 수 있다.
협업 시스템은 특정 작업 액션 또는 특정 타입의 작업 액션을 로봇 능력의 구성으로 수행하는 하나 이상의 로봇 능력을 구성하고, 로봇 능력에 사용자 상호작용에 대한 로봇 능력의 요건을 충족시키는 하나 이상의 사용자 상호작용 능력을 매핑함으로써 협업 작용을 생성할 수 있다. 작업 또는 부작업 특정 로봇 지원 또는 증대를 제공하기 위해, 협업 시스템은 로봇 능력의 구성을 수정하고 및/또는 최종 사용자 증명 및/또는 경량 파라미터화 및 상호작용을 통해 주어진 작업의 특정 요구에 로봇 능력을 특수화할 수 있다. 협업 시스템은 새로운 작업을 수행하기 위해 기존 로봇 능력 및 협업 작용의 동적 적응을 지원하며, 따라서 간단한 작업에 대한 신속한 로봇 트레이닝을 용이하게 하고 복잡한 작업에 대한 로봇 트레이닝을 더 직관적이게 하는 다양한 도구 및 워크피스와의 유연한 상호작용을 가능하게 한다. 일반화가능 프레임워크를 구현함으로써, 협업 시스템은 사용자 상호작용, 사용자 증명, 다양한 도구 및 워크피스와의 유연한 상호작용 등을 통해 사용자(예를 들어, 최종 사용자, 현장 엔지니어 등)에 의한 간단하고 직관적 로봇 프로그래밍 재프로그래밍, 트레이닝, 및 리트레이닝을 가능하게 한다.
협업 시스템은 로봇 능력 요소("RC 요소")의 형태인 로봇 능력의 인스턴스를 사용하여 구현될 수 있는, 작업 지식 및 그러한 지식을 사용하는 권한을, 로봇으로 오프로딩할 수 있다. 협업 시스템은 또한 사용자가 로봇과 협업하고, 로봇과 상호작용하고 입력을 로봇에 제공하기 위해, 사용자 상호작용 능력 요소("IC 요소")의 형태인 사용자 상호작용 능력의 인스턴스를 사용하여 구현될 수 있는 적절한 사용자 인터페이스("UI") 요소를 제공할 수 있다. 작업을 수행하는데 필요한 능력 요소의 세트(예를 들어, RC 요소 및 IC 요소)는 작업 지식, 그러한 지식을 사용하는 권한, 및 작업을 수행하는데 요구되는 사용자 입력이 그러한 복잡성으로 변화될 수 있기 때문에, 작업의 복잡성에 따라 변할 수 있다.
능력
다양한 구현예에서, 능력은 하나 이상의 드물게 변화하는 파라미터로 정의되는 정보 커널에 기초하여 입력 정보를 출력 정보 또는 액션에 매핑하는 더 높은 차수의 기능으로 정의된다. 일반성의 손실 없이, 그러한 파라미터는 런타임에서 평가되는 기능일 수 있다. 협업 시스템은 동적 및 불확실 환경에서 하나 이상의 로봇 액션을 성공적으로 실행하는 능력을 사용할 수 있다.
보다 형식적으로, 능력(C)은 C(κ):γ→φ로 정의될 수 있으며, κ는 정보 커널이고, γ는 능력에 대한 입력의 세트이고, φ는 출력의 세트이다. 정보 커널(κ)이 정의되지 않으면, 이때 능력(C)은 비인스턴스화되거나 일반적인 것으로 간주되고, 그러므로 입력(γ)에 대해 동작하기 위해 필요한 정보가 없다. 일반화가능 프레임워크는 또한 2개의 구성 연산자: 즉 직렬 구성(
Figure 112017030923908-pct00001
) 및 병렬 구성(
Figure 112017030923908-pct00002
)을 정의한다. 당업자는 다른 구성 연산자가 본 개시의 사상 및 범위로부터 벗어나는 것 없이 가능한 것을 이해할 것이다. 구성 연산자의 사용을 통해, 능력(C)은 다른 능력으로 구성될 수 있다. 따라서, 능력(C)은 다른 능력의 구성이고 복합 능력으로 간주될 수 있다. 반대로, 능력(C)은 능력(C)이 다른 능력을 포함하지 않으면 베이스 능력인 것으로 간주될 수 있다.
직렬 구성 연산자(
Figure 112017030923908-pct00003
)는 일반적으로 비가환성이고 한 능력의 출력을 다른 능력의 입력으로 연결하는 것을 표현한다:
Figure 112017030923908-pct00004
병렬 구성 연산자(
Figure 112017030923908-pct00005
)는 가환성이고 2개의 능력의 합집합을 표현한다:
Figure 112017030923908-pct00006
병렬 구성에서, 출력(φΑ 및 φΒ)은 능력이 CA 또는 CB로부터 상충된 출력을 선택하는 판단 함수로 구성될 수 있기 때문에 일반성의 손실 없이 분리되는 것으로 가정된다. 부가적으로, 능력의 양 종류의 구성은 복합 능력에 대한 정보 커널의 합집합을 필요로 한다.
능력은 사용자 상호작용 능력 및 로봇 능력으로 분류될 수 있다. 사용자 상호작용 능력(
Figure 112017030923908-pct00007
)(여기서,
Figure 112017030923908-pct00008
는 협업 시스템에 이용 가능한 모든 사용자 상호작용 능력의 세트임)은 입력 커맨드를 필요로 하거나 피드백을 디스플레이함으로써 하나 이상의 인터페이스 양상을 사용자에게 제공한다.
로봇 능력(
Figure 112017030923908-pct00009
)(여기서,
Figure 112017030923908-pct00010
은 협업 시스템에 이용 가능한 모든 로봇 능력의 세트임)은 런타임에서 로봇의 적어도 하나의 기능성을 모델링하고 하나 이상의 사용자 상호작용 능력 및/또는 하나 이상의 다른 로봇 능력에 연결될 수 있다. 로봇 능력의 예는 표 1에 제시된다.
로봇 능력의 예
능력 명칭 심볼 입력 γ 출력 φ 이하에 의해 인스턴스화되고/특수화됨
(a) 모션 제약 Rmc 포즈(SE(3)) 제약된 포즈(SE(3)) 도구 작용 제약
(b) 모션 즉시 재생 Rir 시작 포즈(SE(3)) 조인트 속도 커맨드 도구 이동 프리미티브("TMP")
(c) 궤적 발생기 Rtg 시작 및 종료 포즈(SE(3)) 조인트 속도 커맨드 TMP, 지각 템플릿
   로봇 능력(R)은 초기에 일반적일 수 있거나, 인스턴스화되지 않을 수 있고, 이러한 형태에서 정보 커널(κ)의 파라미터화에 의해 정의되는 작업 및 작업 액션의 공간에 대해 일반화 가능하다. 협업 시스템은 특정 상황이 인스턴스화된 로봇 능력(R(κ))을 형성하도록 정보 커널(κ)로 로봇 능력(R)을 파라미터화할 수 있다. 그 다음, 협업 시스템은 로봇에게 하나 이상의 특정 작업 액션을 수행하라고 명령하는 것과 같이, 출력(φ)을 생성하기 위해 입력(γ)으로 인스턴스화된 로봇 능력(R(κ))을 동작시킬 수 있다.
로봇 집행 모션 제약과 협업적으로 구멍을 정확히 드릴링하는 예시적 작업을 수행하기 위해, 협업 시스템은 2개의 능력을 필요로 한다: 사용자로부터 포즈 커맨드를 수신하는 사용자 상호작용 능력, 및 특정 드릴을 설명하는 정보 커널에 의해 부과되는 제약을 받는 로봇을 이동시키는 일반 로봇 능력(Rmc). 일반 로봇 능력(Rmc)의 일 예는 표 1에 제시된다. 드릴을 사용하는데 필요한 공통 모션 제약을 포함하는 정보 커널(κdrill)을 고려하면, 협업 시스템은 드릴 모션 제약을 제공하는 인스턴스화된 로봇 능력(Rmcdrill))을 형성하기 위해 일반 로봇 능력(Rmc)을 인스턴스화할 수 있다. 이러한 예에서, 정보 커널(κdrill)은 드릴의 기하학적 특징을 데카르트 제약에 매핑하는 파라미터를 캡슐화하고, 협업 시스템은 동일한 특징을 갖는 임의의 도구(예를 들어, 다른 드릴)을 위해 이러한 파라미터를 재사용할 수 있다. 더욱이, 협업 시스템은 그것의 인터페이스 γ 및 φ를 변경하는 것 없이 드릴만이 아니라 다른 도구를 제약하기 위해 일반 로봇 능력(Rmc)을 인스턴스화할 수 있다.
능력의 특수화
다양한 구현예에서, 사용자는 지정된 파라미터의 세트, 증명, 또는 다른 사용자 제공 정보에 기초하여 정보 커널을 정의하는 명령어를 통해 능력을 특수화하기 위해 협업 시스템을 사용할 수 있다. 명령어는 새로운 정보 커널을 생성하거나 기존 정보 커널의 파라미터를 지정하기 위해 사용자 증명 또는 파라미터화를 사용하는 방법으로 정의될 수 있다. 드릴링에 대한 로봇 능력(Rmc)을 특수화하기 위해 구멍을 정확히 드릴링하는 상기 설명된 예시적 작업을 사용하여, 사용자는 드릴 기하학적 구조로부터 제약 기하학적 구조로 매핑을 지정하는 명령어(Idrill)를 수행할 수 있다. 협업 시스템은 이러한 매핑을 κdrill에 캡슐화하고, 그렇게 함으로써, Rmc를 Rmcdrill)에 특수화할 수 있다.
협업 시스템은 (1) 도구 작용 제약을 사용하는 도구 행동유도성, (2) TMP를 사용하는 모션 궤적, 및 (3) 지각 템플릿을 사용하는 지각 그라운딩을 포함하는, 다양한 타입의 작업 액션을 수행하는데 유용한 다양한 클래스의 정보에 기초하여 능력을 특수화할 수 있다. 예를 들어, 협업 시스템은 사용자가 능력을 특수화하기 위해 명령어를 수행하는 것에 응답하여 능력을 특수화할 수 있으며, 명령어는 (1) 어떻게 도구 워크를 설명하고 작업 액션을 수행하기 위해 도구의 사용에 관한 하나 이상의 작용 제어를 제공하는 도구 작용 제어, (2) 작업 액션을 수행할 시에 수반되는 하나 이상의 모션을 설명하는 TMP, 및/또는 (3) 로봇의 워크 환경의 맥락에서 하나 이상의 작용 제어를 제공하는 지각 템플릿을 지정한다. 당업자는 다른 클래스의 정보가 본 개시의 사상 및 범위로부터 벗어나는 것 없이 능력을 특수화하기 위해 사용될 수 있는 것을 이해할 것이다.
도구 작용 제약
도구는 전형적으로 특정 사용 경우를 고려하여, 특히 산업 제조의 영역에서 설계되며, 그것은 통상 작업을 수행하기 위해 도구로 이루어질 수 있는 모션에 제약을 수반한다. 협업 시스템에 의해 구현되는 프레임워크는 이러한 양태의 도구 사용을 도구 작용 제약으로 공식화한다. 특히, 도구와 연관되는 도구 작용 제약은 어떻게 도구 워크의 사전 형성된 개념을 설명하고 하나 이상의 작업 액션을 수행할 시에 도구의 사용에 하나 이상의 작용 제어 및/또는 모션 제약을 제공한다. 도구 작용 제약은 도구의 적어도 하나의 도구 행동유도성에 기초하여 결정될 수 있다. 도구 행동유도성은 개체가 도구로 하나 이상의 액션을 수행할 여유가 있거나 수행할 수 있게 하는 도구의 하나 이상의 특징, 성질, 속성, 또는 특성으로 정의된다. 사용자가 도구와 실질적으로 동일한 특성 및 특징을 갖는 도구 또는 다른 도구의 사용을 필요로 하는 작업을 수행하거나 원조하기 위해 로봇을 원할 때, 사용자는 도구가 작업을 수행하기 위해 어떻게 사용될 수 있는지의 개념을 로봇에 제공하기 위해 도구와 연관되는 적어도 하나의 도구 작용 제약을 파라미터화할 수 있다. 사용자는 도구의 기하학적 형상을 지정함으로써 도구에 대한 도구 작용 제약을 파라미터화할 수 있으며, 로봇은 도구 등을 잡거나 부착한다.
도구에 관한 로봇 능력을 모델링할 때, 협업 시스템은 각각의 도구 또는 도구의 타입이 유용한 액션을 제공하는 기하학적 특징을 갖는다는 사실을 강화하고 그것에 의해 유용한 액션을 달성할 수 있는 모션을 제약할 수 있다. 예를 들어, 드릴의 원통형 비트는 라인을 따라 드릴의 모션을 제약하고, 드릴이 구멍 드릴링을 위해 사용되고 있을 때, 부착된 드릴 비트는 축 병진 방향을 정의하며; 유사한 제약은 홀 펀처 또는 시트 금속 스탬퍼에 적용된다. 다른 예로써, 샌딩 또는 연마 도구는 일반적으로 평면 동작 표면을 가지며, 그것은 평면 동작 표면을 따라 접선 접촉에 도구의 모션을 제약한다. 유사하게, 다양한 도구 작용 제약은 종종 직선 라인 또는 곡선에 제한되는 절단 도구와 같은 다른 도구 적용에 적용된다.
보다 형식적으로, 도구(t)는 3-투플(t = <r, A, G>)로 표현될 수 있으며, r은 도구(t)의 3차원("3-D") 기하학적 구조의 표현 또는 모델이고, A = (a0, a1,..., an)는 작용 제약의 세트이고, G = <g0, g1,..., gn>는 표현(r)에 대한 그라스프 구성의 세트이다. 협업 시스템은 실질적으로 동일한 특성 및 특징을 공유하는 특정 클래스의 도구에 특정 도구 또는 임의의 도구를 표현하기 위해 도구(t)를 사용할 수 있다. 고정 엔드 이펙터인 것을 가정하면, gi ∈ SE(3)는 특정 도구-상대 위치이다. 각각의 작용 제약은 차례로 쌍(a = <p, q>)이며, p ∈ SE(3)는 제약 프레임이고 q는 제약 타입이며, 즉 q ∈ 축, 곡선, 각도, 평면,... 이다. 도구(t)에 대해, 협업 시스템은 도구(t)의 표현(r)을 제약 타입(q)에 맞춤으로써 제약 타입(q)에 기초하여 제약 프레임(p)을 발생시킬 수 있다. 표현(r)은 도구(t)를 전적으로 또는 부분적으로 모델링할 수 있다. 표현(r)의 형태인 도구(t)의 기하학적 구조를 제약 타입(q)에 매핑함으로써, 협업 시스템은 로봇 능력(R)(예를 들어, 표 1에 제시된 바와 같은 모션 제약 능력(Rmc))을 특수화된 로봇 능력(R(κt))으로 특수화하기 위해, 재사용가능 정보 커널(κt)을 형성할 수 있다. 도구(t)가 로봇에 부착될 때, 협업 시스템은 로봇을 제어하기 위해 특수화된 로봇 능력(R(κt))을 동작시킬 수 있다. 다양한 타입의 도구 작용 제약의 예는 표 2에 제시되고 도 1a에 예시된다.
제약 타입의 예
타입 q 도구 이펙터 매핑 프리 DoF 도구 사용 예
축, 평행 원위 포인트에서의 프레임(p), 방향(d)의 x축 축 모션 및 축을 따르는 회전 드릴링, 펀칭, 스탬핑
평면 중심에서의 프레임(p), 수직 방향의 x축 평면 모션 y/z 평면, x축 주위의 회전 샌딩, 연마
   로봇이 도구를 잡거나 캡처할 때, 협업 시스템은 예를 들어 널 스페이스(null-space) 프로젝션 방법을 사용함으로써 도구 이동이 제약된 DOF 및 외부로 제어된 DOF로 분해되는 것을 허용하는 하나 이상의 제약을 정의하기 위해 도구와 연관되는 하나 이상의 도구 작용 제약을 사용할 수 있다. 예를 들어, 협업 시스템은 도구의 기하학적 특징의 표현, 예컨대 도구의 3-D 포인트 클라우드로 시작함으로써 도구와 연관되는 도구 작용 제약을 지정할 수 있다. 협업 시스템은 사용자가 기존 표현을 선택하거나, 새로운 표현을 발생시키거나, 기존 표현을 선택하고 수정하게 함으로써 도구의 표현을 제공할 수 있다. 다양한 구현예에서, 협업 시스템은 또한 도구의 표현을 자체적으로 제공할 수 있다. 사용자는 포인트 클라우드의 영역을 도구 원점으로 상호작용적으로 선택하고 그 다음에 제약 타입을 선택하기 위해 협업 시스템을 사용할 수 있다. 선택된 영역 및 제약 타입에 기초하여, 협업 시스템은 도구 원점에 대해 도구 팁 프레임 및 하나 이상의 도구 작용 제약을 결정할 수 있다. 협업 시스템은 사용자 선택에 기초하여 도구의 임의의 영역을 도구 작용 제약에 매핑할 수 있다. 협업 시스템은 또한 도구의 포인트 클라우드의 임의의 영역을 선택하거나 사용자 선택 또는 다른 고려에 기초하여 도구 원점 또는 도구 팁 프레임을 도구의 TEP로 사용할 수 있다.
예를 들어, 도구(t1)가 드릴인 것을 가정하면, 협업 시스템은 부착된 비트의 표현(rbit)을 포함하는 드릴의 3-D 표현(r1)을 제공하고 그 다음에 "축"을 제약 타입(q1)으로 선택할 수 있다. 따라서, 도구(t1)가 로봇에 부착될 때, 표현(r1 또는 rbit)은 로봇의 모션에 축 제약을 부과하는 반면에 로봇은 드릴링 작업을 수행하기 위해 도구(t1)를 사용한다. 표현(r1)의 형태인 도구(t1)의 기하학적 구조 및/또는 표현(rbit)의 형태인 부착된 비트를 제약 타입(q1)에 매핑함으로써, 협업 시스템은 예를 들어 모션 제약 로봇 능력(Rmc)(표 1에 제시된 바와 같음)을 특수화된 로봇 능력(Rmcdrill))으로 특수화하기 위해 재사용가능 6 DOF 정보 커널(κdrill)을 형성할 수 있다. 그 다음, 협업 시스템은 도구(t1)를 사용할 때 로봇의 모션을 제약하기 위해 특수화된 로봇 능력(Rmcdrill))을 동작시킬 수 있다.
도구 이동 프리미티브
TMP는 로봇이 작업을 수행하기 위해 도구로 이루는 모션을 설명하며; 도구는 유사한 또는 심지어 실질적으로 동일한 특성 및 특징을 공유하는 도구의 클래스에서 특정 도구 또는 임의의 도구일 수 있다. 다양한 구현예에서, 협업 시스템은 다른 파라미터를 제약되지 않은 상태로 방치하는 동안 도구 관련 특징 및 파라미터를 캡처하는 방식으로 재사용가능 모션을 TMP로 표현할 수 있다. TMP는 동적 이동 프리미티브("DMP")를 연장할 수 있으며, 이 프리미티브는 모션의 구조를 유지하는 동안 재파라미터화될 수 있는 재사용가능 모션 표현을 위한 기초를 제공한다.
TMP는 도구의 맥락에서 궤적 데이터를 캡슐화하고 로봇의 워크스페이스 및/또는 환경에서 하나 이상의 포인트 또는 다른 제약을 캡슐화할 수 있다. 보다 형식적으로, TMP T는 T=<a, d>로 표현될 수 있으며, a=<p, q>는 도구와 연관되는 도구 작용 제약이고 d는 증명된 궤적을 나타낸다. TMP T는 도구 작용 제약 프레임(p1...pn) 중 하나에 구성되는 DMP일 수 있으며, 따라서 협업 시스템이 일부 임의적 월드 프레임에 대한 로봇의 엔드 이펙터의 배향 대신에, 도구와 궤적 프레임 사이에서 상대 배향 또는 정렬을 캡처하는 것을 허용한다. 이러한 방식으로, TMP T에 의해 특수화되는 로봇 능력(예를 들어, 표 1에 제시된 바와 같은 모션 즉시 재생 능력(Rir) 또는 궤적 발생기 능력(Rtg))은 상이한 워크 환경에 대해 재파라미터화될 수 있고, 모션은 TMP T에 지정되는 도구 작용 제약을 공유하는 임의의 도구를 위해 적절히 재사용될 수 있다.
협업 시스템은 사용자 증명, 관련 UI, 또는 그것의 조합을 통해 궤적 데이터를 우선 취득한 다음, 도구를 사용하는 것을 수반하는 다양한 작업에서의 사용을 위해 궤적 데이터를 일반화함으로써 도구와 연관되는 TMP를 발생시킬 수 있다. 궤적 데이터는 작업을 완료하는 액션을 수행하기 위해 도구를 사용할 시에 수반되는 하나 이상의 모션을 설명한다. 협업 시스템은 습득 모드에 진입하고, 사용자가 모션을 증명하게 하고, 증명된 모션을 지각하거나 감지하여 궤적 데이터를 캡처함으로써 사용자 증명을 통해 궤적 데이터를 취득할 수 있다.
샌딩 작업을 일 예로 사용하여, 사용자는 샌더의 면과 동일면에서, 시작 포인트로부터 밖으로 진행하는 샌더에 의해 나선형 샌딩 궤적을 증명할 수 있다. 협업 시스템은 나선형 샌딩 궤적의 형상 및 궤적의 방향에 대한 샌더의 정렬 또는 배향을 취득하거나 캡처할 수 있다. 예를 들어, 협업 시스템은 샌더의 면이 궤적의 방향과 평행한 것을 캡처할 수 있다. 협업 시스템은 또한 시작 포인트의 맥락에서 나선형 샌딩 궤적을 캡슐화하고 나선형 샌딩 궤적의 방향의 맥락에서 샌더의 정렬 또는 배향을 캡슐화하는 TMP Tsander를 발생시킬 수 있다.
궤적 데이터 취득 다음에, 협업 시스템은 궤적 데이터를 일반화함으로써 TMP를 발생시킬 수 있다. 협업 시스템은 예를 들어, 새로운 작업과 연관되는 사용자 지정 포인트 및/또는 지각 템플릿에 기초하여 새로운 작업에 대한 TMP를 적응시키거나 재파라미터화할 수 있다. 다양한 구현예에서, 협업 시스템은 사용자가 6 DOF 포즈 궤적을 따라 어드미턴스 제어를 통해 로봇을 이동시키게 함으로써 TMP를 취득할 수 있다. 협업 시스템은 로봇의 워크스페이스 또는 환경 및/또는 하나 이상의 지각 템플릿에서 하나 이상의 타겟 포인트를 고려하여 새로운 모션을 발생적으로 생성하기 위해 사용될 수 있는, DMP 또는 TMP로 포즈 궤적을 저장할 수 있다. 협업 시스템은 또한 로봇의 초기 포즈에 대해 포즈 궤적을 저장할 수 있어, 새로운 모션을 발생시킬 때, 협업 시스템은 부착된 도구의 도구 팁 프레임에 모션을 제약하고 일부 임의적 좌표 시스템을 제약하지 않는다. 능력에 캡슐화되는 도구 작용 제약 및 TMP에 대해, 협업 시스템은 다른 능력에 이용 가능한 적어도 하나의 경량 데이터베이스에 최종 프레임, 기하학적 정보, 궤적, 및 다른 데이터를 저장할 수 있다. 상기 설명된 예시적 TMP Tsander를 사용하여, 협업 시스템은 나선형 샌딩 궤적을 정확하게, 예를 들어 샌더의 면과 평행한 방향으로 적용할 수 있지만, TMP Tsander는 면이 상이한 각도에서 장착된 샌더에 의해 기록되었다.
다양한 구현예에서, 협업 시스템은 사용자가 도구로 작업을 수행할 시에 수반되는 하나 이상의 모션을 증명하고 있을 때 도구와 연관되는 하나 이상의 적용가능 도구 작용 제약을 집행할 수 있다. 특히, 사용자 증명 동안, 협업 시스템은 로봇의 워크스페이스를 로봇의 최대 워크스페이스 내의 포인트의 서브세트에 제약함으로써 적용가능 도구 작용 제약을 집행하거나 적용할 수 있다. 사용자가 사용자 증명 동안 로봇을 지시하거나 안내하기 위해 도구 상에 또는 근방에 힘을 인가할 때, 사용자 인가 힘은 로봇(예를 들어, 로봇의 TEP)이 그것의 제약된 워크스페이스를 나가게 하는 하나 이상의 바람직하지 않은 방향으로 하나 이상의 구성요소를 가질 수 있다. 이것을 다루기 위해, 협업 시스템은 로봇에게 제약된 워크스페이스 내에 체류하거나 제약된 워크스페이스로 복귀하라고 명령할 수 있다. 로봇은 바람직하지 않은 방향으로 사용자 인가 힘의 성분만에 저항하고, 전체로 사용자 인가 힘에 저항하는 등으로써 제약된 워크스페이스 내에 체류하도록 명령받을 수 있다. 로봇은 음의 힘 피드백을 (예를 들어, 임피던스 제어, 진동 또는 다른 형태의 햅틱 피드백 등을 통해) 제공하고, 로봇을 제약된 워크스페이스 내의 포인트로 이동시키고 및/또는 사용자에게 안전할 때 로봇을 재배향시키는 등 함으로써 제약된 워크스페이스로 복귀하도록 명령받을 수 있다. 도구와 연관되는 적용가능 도구 작용 제약을 집행함으로써, 협업 시스템은 사용자가 도구를 사용하는 법을 더 정확하게 및 효과적으로 증명하는 것을 허용한다. 협업 시스템은 예를 들어 도구에 대한 정보 커널(κtool)을 형성하고, 정보 커널(κtool)을 갖는 모션 제약 능력(Rmc)을 특수화된 로봇 능력(Rmctool))으로 특수화하고, 특수화된 로봇 능력(Rmctool))의 인스턴스를 RC 요소로 제공하고, RC 요소를 동작시켜 적용가능 도구 작용 제약에 따라 로봇을 제어함으로써 모션 증명 동안 적용가능 도구 작용 제약을 집행할 수 있다.
예를 들어, 상기 설명된 드릴링 작업을 수행하는 드릴링 모션의 사용자 증명 동안, 협업 시스템은 드릴이 활성화되는 동안 로봇에게 사용자가 선형 모션만으로 드릴을 이동시키는 것을 허용하라고 명령할 수 있으며, 그것은 사용자가 정확한 단일 샷 증명을 이루는 것을 원조한다. 협업 시스템은 로봇의 워크스페이스를 드릴에 부착된 드릴 비트의 세로 축을 따르는 직선 라인 내의 포인트의 세트에 제약함으로써 그렇게 행할 수 있다. 드릴이 활성화되는 동안, 사용자가 로봇에게 사용자 인가 힘을 통해 드릴 비트의 세로 축을 따르는 라인에서 벗어나도록 명령하려고 시도하면, 협업 시스템은 예를 들어 하나 이상의 바람직하지 않은 방향으로 사용자 인가 힘의 하나 이상의 구성요소에 저항함으로써(예를 들어, 드릴 비트의 세로 축을 따르는 방향으로 사용자 인가 힘의 성분만을 허용함으로써) 로봇에게 드릴 비트의 세로 축을 따르는 방향만으로 이동하라고 명령할 수 있다. 대안적으로 또는 부가적으로, 협업 시스템은 로봇에게 사용자 인가 힘과 반대의 댐핑력을 통해 음의 피드백을 제공하고, 사용자에게 안전할 때 제약된 워크스페이스에 복귀하고, 엔드 이펙터를 재배향시킴으로써 드릴 비트가 사용자에게 안전할 때 제약된 워크스페이스에 복귀하도록 하는 등을 명령할 수 있다. 다른 예로써, 상기 설명된 샌딩 작업을 수행하는 샌딩 모션의 사용자 증명 동안, 협업 시스템은 샌더가 활성화되는 동안 로봇에게 사용자가 평면(예를 들어, 평면 모션) 또는 미리 정의된 표면에 접선인 모션만으로 샌더를 이동시키는 것을 허용하라고 명령할 수 있다.
지각 템플릿
지각 템플릿은 착수되는 타겟 워크피스의 하나 이상의 특성, 로봇의 워크스페이스 내의 하나 이상의 포인트 등과 같은, 로봇의 워크 환경과 연관되는 지각 데이터에 대해 설명되는 하나 이상의 작용 제어를 제공함으로써 제약된 도구 이동의 정의를 지원한다. 따라서, 지각 템플릿은 워크 환경의 맥락에서 하나 이상의 작용 제어를 제공한다. 보다 형식적으로, 지각 템플릿(P)은 선택된 장면 영역(S)을 장면 내의 지정된 기하학적 개체(E = [e1...en])에 관련시키는 쌍(P = <S, E>)이다. 장면 영역(S)은 3-D 포인트 클라우드 또는 적색, 녹색, 및 청색 플러스 깊이("RGBD") 데이터의 선택된 체적, 이미지의 선택된 2차원("2-D") 영역 등일 수 있다. 기하학적 개체(E)의 기하학적 개체(ei)는 작업 관련 기하학적 특징, 예컨대 포인트, 라인 또는 곡선, 평면 또는 표면, 3-D 공간 등이다. 협업 시스템은 도구 작용 제약, TMP, 및 다른 작업 제약을 지각 데이터에 그라운딩하기 위해 지각 템플릿을 사용할 수 있다. 도구 작용 제약 및 TMP는 제약 및 모션 데이터를 재사용하는 메커니즘을 제공하지만, 지각 템플릿은 작업 액션을 수행하기 위해 지정될 필요가 있지만 도구 작용 제약 또는 TMP에 의해 캡처되지 않는 작업 관련 파라미터를 제공한다.
작업 관련 파라미터는 타겟 워크피스의 위치 및/또는 배향에 대해 지정되는 파라미터와 같은, 로봇의 워크 환경에 대해 사용자 지정될 수 있다. 대안적으로 또는 부가적으로, 협업 시스템은 로봇의 워크 환경을 설명하고 지각 템플릿에 의해 제공되는 작업 관련 파라미터와 관련되는 지각 데이터를 획득할 수 있다. 협업 시스템은 (예를 들어, 센서, 카메라 등을 통해) 지각 또는 검출로부터의 지각 데이터, (예를 들어, 상호작용 셋업, 직접 사용자 입력 또는 선택 등을 통해) 사용자 상호작용, 저장된 데이터, 또는 그것의 조합을 획득할 수 있다. 협업 시스템은 사용자가 타겟 워크피스를 재위치시키거나 이동시키는 것을 허용하기 위해 적절한 속도(예를 들어, 1 Hz, 5 Hz 등)로 지각 데이터를 연속적으로 획득할 수 있다. 저장된 데이터는 하나 이상의 재사용가능 작업 관련 파라미터와 연관되는 데이터 값 및 정보, 예컨대 워크피스의 타입과 연관되는 데이터 값, 유사한 타입의 워크피스 상에 유사한 작업을 수행하기 위해 이전에 입력된 데이터 값 등을 포함할 수 있다. 사용자는 또한 타겟 워크피스 또는 그것의 타입과 연관되는 하나 이상의 지각 템플릿에 지각 및/또는 사용자 상호작용을 통해 취득되는 데이터 및 정보를 저장할 수 있다.
다양한 구현예에서, 협업 시스템은 작업 액션을 수행하기 위해 로봇 능력을 동작시키는 동안 지각 데이터를 획득할 수 있다. 지각 데이터를 획득한 다음에, 협업 시스템은 로봇 능력 및 임의의 작업 제약과 연관되는 임의의 도구 작용 제약 및 TMP를 그라운딩하기 위해 지각 데이터에 기초하여 작업 관련 파라미터를 지정할 수 있다. 따라서, 협업 시스템은 로봇의 워크 환경의 선험적 지식 없이 작업 액션을 수행하는 동안 작업 관련 파라미터, 예컨대 로봇에 대한 타겟 워크피스 위치 및/또는 배향을 재사용할 수 있다.
구멍의 패턴을 부품의 작동 시에 반자동화 방식으로 반복적으로 드릴링하는 예시적 작업에 대해, 적용가능 지각 템플릿(Pholes)은 예시적 작업을 수행하기 위해 지정될 필요가 있는 작업 관련 파라미터, 예컨대 워크피스 표면에 대한 드릴링 각도, 워크피스 표면상에서 하나 이상의 포인트에 대해 드릴링되는 구멍의 패턴 등을 포함할 수 있다. 구멍의 패턴은 워크피스 표면에 대한 각도에서 라인으로 표현될 수 있다. 작업 액션을 수행하기 위해 로봇 능력을 동작시키는 동안, 협업 시스템은 지각 데이터, 예컨대 타겟 워크피스 표면(Sw), 타겟 워크피스 표면(Sw) 상의 하나 이상의 참조 포인트, 타겟 워크피스 표면(Sw)의 배향 등을 획득하기 위해 지각 템플릿(Pholes)을 사용할 수 있다. 부품의 작동 시의 각각의 부품에 대해, 협업 시스템은 (1) 부품을 설명하는 관련 지각 데이터를 획득하고, (2) 지각 데이터에 기초하여 적절한 작업 관련 파라미터를 지정하고, (3) 특수화된 로봇 능력(R(Pholes)을 형성하기 위해 κ=Pholes를 설정함으로써 로봇 능력(R)(예를 들어, 표 1에 제시된 바와 같은 궤적 발생기 능력(Rtg))을 특수화하고, (4) 특수화된 로봇 능력(R(Pholes))의 인스턴스를 RC 요소로 제공하고, (5) RC 요소를 사용하여 로봇에게 타겟 표면(Sw)에 대한 지정된 각도에서 부품의 타겟 표면(Sw) 상의 구멍의 패턴에 의해 지정되는 위치에 드릴링하라고 명령하기 위해 지각 템플릿(Pholes)을 사용할 수 있다.
지각 데이터는 하나 이상의 센서를 사용하여, 사용자, 저장된 데이터, 또는 그것의 조합으로부터 획득될 수 있다. 예를 들어, 협업 시스템은 카메라로 입력 깊이 데이터를 획득하고 입력 깊이 데이터로 워크피스의 하나 이상의 평면 표면을 검출함으로써 하나 이상의 워크피스 표면 및 그것의 배향을 우선 지각할 수 있다. 그 다음, 협업 시스템은 사용자에게 타겟 워크피스 표면으로부터의 타겟 표면(Sw), 타겟 표면(Sw) 상의 하나 이상의 참조 포인트, 및/또는 구멍의 패턴을 선택하도록 재촉할 수 있다. 협업 시스템은 또한 이전에 저장된 구멍의 패턴을 로딩할 수 있다.
능력을 특수화하는 인스트럭터
다양한 구현예에서, 협업 시스템은 지정된 파라미터의 세트, 증명, 또는 다른 사용자 제공 정보에 기초하여 명령어를 발생시키는 적어도 하나의 인스트럭터를 제공한다. 인스트럭터는 새로운 정보 커널을 생성하거나 기존 정보 커널의 파라미터를 지정하기 위해 사용될 수 있으며, 그것과 함께 협업 시스템은 로봇 능력을 특수화할 수 있다. 협업 시스템은 상이한 클래스의 정보, 예컨대 도구 작용 제약, TMP의 형태인 모션 궤적, 지각 템플릿 등을 획득하기 위해 인스트럭터를 호출할 수 있다.
하나 이상의 도구 작용 제약을 지정하는 명령어를 발생시키기 위해, 인스트럭터는 사용자에 의해 선택되거나 로봇에 부착되는 도구에 기초하는 도구의 표현(예를 들어, 3-D 포인트 클라우드)을 제공할 수 있다. 표현은 적어도 하나의 도구 원점을 포함할 수 있다. 인스트럭터는 자체적으로 또는 상호작용 사용자 선택에 기초하여, 표현 내의 영역 및 제약 타입을 선택할 수 있다. 그 다음, 인스트럭터는 제약 프레임을 정의하기 위해 선택된 영역 및 제약 타입에 기초하여 도구의 표현을 제약 타입에 맞출 수 있고, 따라서 도구 원점에 대해 도구 이펙터 및 하나 이상의 도구 작용 제약을 발생시킬 수 있다. 도구의 임의의 영역은 사용자 선택에 기초하여 도구 작용 제약에 매핑될 수 있다. 인스트럭터는 도구 작용 제약을 저장하고 하나 이상의 도구 작용 제약을 필요로 하는 임의의 능력, 예컨대 표 1에 제시된 모션 제약 능력(Rmc)에 의해 로딩될 수 있는 포맷된 정보 커널의 형태로 도구 작용 제약을 지정하는 명령어를 발생시킬 수 있다.
하나 이상의 TMP의 형태로 지정된 도구 또는 지정된 클래스 내의 도구를 사용하기 위한 하나 이상의 모션 궤적을 지정하는 명령어를 발생시키기 위해, 인스트럭터는 모션 궤적을 취득하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 인스트럭터는 도 1b에 도시된 바와 같은 실감 가상 현실("VR") 환경을 제공할 수 있다. VR 환경을 통해, 사용자는 모션 궤적을 지정하기 위해 로봇의 아바타와 상호작용할 수 있다. 사용자는 가상 도구 프록시, 예컨대 3-D 포인팅 디바이스를, 도구가 로봇에 의해 잡히는 방법과 동일한 위치에 유지하고, 임의의 수의 6 DOF 모션 궤적을 증명할 수 있다. 인스트럭터는 증명된 모션 궤적을 선택된 도구에 대한 하나 이상의 DMP로 기록하고, 도구와 연관되는 제약 프레임 및 DMP에 기초하여 하나 이상의 TMP를 발생시키고, 선택된 도구 또는 지정된 클래스 내의 도구에 대한 TMP를 저장할 수 있다. TMP를 지정하는 명령어는 하나 이상의 TMP를 필요로 하는 임의의 로봇 능력, 예컨대 표 1에 제시된 모션 즉시 응답 능력(Rir) 또는 궤적 발생기 능력(Rtg)에 의해 로딩될 수 있는 포맷된 정보 커널을 발생시킨다.
하나 이상의 지각 템플릿을 지정하는 명령어를 발생시키기 위해, 인스트럭터는 로봇의 워크 환경에서 장면을 지각하고 장면을 실시간으로 디스플레이하고 사용자가 장면에서 하나 이상의 포인트, 라인, 또는 평면을 선택하는 것을 허용하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 인스트럭터는 RGBD 센서를 사용하여 장면을 지각하고, 장면에서 후보 특징(예를 들어, 워크피스의 정점, 에지, 표면 등)을 검출하고, 장면 및 임의의 후보 특징의 3-D 시각화를 실시간으로 디스플레이할 수 있다. 인스트럭터는 자체적으로 또는 사용자 선택에 기초하여, 후보 특징으로부터 적어도 하나의 참조 특징을 선택할 수 있다. 인스트럭터는 또한 사용자 선택에 기초하여 템플릿 특징을 선택하고 각각의 템플릿 특징의 상대 위치, 각도, 배향, 깊이, 또는 참조 특징에 대한 다른 속성과 같은, 참조 특징의 맥락에서 각각의 템플릿 특징을 정의할 수 있다. 예를 들어, 인스트럭터는 참조 표면으로써 워크피스의 후보 표면 및 템플릿 특징으로써 드릴링되는 구멍의 사용자 선택 패턴을 선택할 수 있다. 패턴 내의 각각의 구멍의 각도는 참조 표면에 대해 정의될 수 있고, 각각의 구멍의 위치는 참조 표면의 2개 이상의 에지에 대해 정의될 수 있다. 인스트럭터는 지각 템플릿 내의 특징 사이의 관계뿐만 아니라, 후보 특징, 참조 특징, 및/또는 템플릿 특징을 저장할 수 있다. 지각 템플릿을 지정하는 명령어는 하나 이상의 지각 템플릿을 필요로 하는 임의의 로봇 능력, 예컨대 표 1에 제시된 궤적 발생기 능력(Rtg)에 의해 로딩될 수 있는 포맷된 정보 커널을 발생시킨다.
협업 작용
협업 작용은 하나 이상의 로봇 능력, 하나 이상의 사용자 상호작용 능력, 및 로봇 능력과 사용자 상호작용 능력 사이의 매핑의 구성을 포함한다. 로봇 능력은 특정 작업 액션 또는 특정 타입의 작업 액션을 수행하기 위해 로봇을 제어하는데 구축되고 복합될 수 있지만, 협업 시스템은 임의의 특정 로봇 작용 및 능력의 레벨을 위해 협업 시스템 및/또는 로봇과의 사용자 상호작용에 필요한 인터페이스를 사용자에게 제공하기 위해 협업 작용에 의존한다. 적어도 이러한 양태에서, 협업 시스템은 기존 로봇 시스템과 다르며, 기존 로봇 시스템은 고레벨 사용자-로봇 협업 관계에 오로지 집중하되 저레벨 인터페이스 요소를 무시한다.
복합 능력 내의 각각의 로봇 능력에 대해, 협업 시스템은 어떤 입력이 사용자에게 요구되는지, 어떤 피드백이 사용자에게 제공되어야 하는지, 및 따라서 어떤 사용자 상호작용 능력이 요구되는지에 관한 명시적 정보를 필요로 한다. 로봇 능력(R = γR → φR)이 인스턴스화된 또는 특수화된 로봇 능력R11),..., Rnn)의 세트로부터 구성 연산자(예를 들어,
Figure 112017030923908-pct00011
Figure 112017030923908-pct00012
)를 통해 복합되는 것을 가정한다. 협업 시스템에 이용 가능한 로봇 능력(R) 및 모든 사용자 인터페이스 능력의 세트(
Figure 112017030923908-pct00013
)에 대해, 호환성 기능(
Figure 112017030923908-pct00014
)은 사용자 인터페이스 능력 U:γU → φU의 적절한 세트를 선택하며,
Figure 112017030923908-pct00015
는 어느 하나의 입력을 R에 제공하거나 R로부터 출력을 받아들이지만, 임의의 피드백 루프가 인간 운영자(예를 들어, 사용자)를 통해 폐쇄되기 때문에, 둘 다가 아니다:
Figure 112017030923908-pct00016
따라서, 협업 작용(B)은 로봇 능력(R)의 구성으로 정의될 수 있으며, 로봇 능력(R)의 구성에 대한 모든 사용자 상호작용 요건은 사용자 상호작용 능력의 세트(
Figure 112017030923908-pct00017
)에 의해 충족된다. 로봇 능력(R)은 베이스 로봇 능력 또는 복합 로봇 능력일 수 있다. 도 2는 사용자 및 로봇에 통신 연결되는 능력의 구성을 포함하는 협업 작용의 일 예를 예시한다. 협업 시스템은 어떤 정보가 사용자에게 전달되고 사용자로부터 전달되는지를 제어하기 위해 협업 작용에서의 능력 사이에서 연결을 관리하지만, 능력과 연관되는 사용자 인터페이스에 대한 임의의 특정 디자인을 설계하지 않으며 지시하지 않는다는 점이 주목되어야 한다. 그 대신에, 능력의 생성자 및 설계자는 능력과 연관되는 사용자 인터페이스를 자유롭게 설계한다.
로봇 집행 모션 제약과 협업적으로 구멍을 정확히 드릴링하는 상기 설명된 예시적 작업을 수행하기 위해, 협업 시스템은 능력의 구성을 발생시키고 및/또는 수정하고 협업 작용(B1)에 구성을 저장할 수 있다. 예시적 작업에서, 드릴 특수화된 모션 제약 로봇 능력(Rmcdrill))은 사용자로부터 적어도 하나의 6 DOF 커맨드를 필요로 한다. 협업 시스템은 호환성 기능(Δ)에 기초하여, 6 DOF 커맨드를 매칭시키는 요구된 출력을 갖는 힘 안내 사용자 상호작용 능력(Uforce)을 선택할 수 있다. 그러므로, 협업 작용(B1)은 B1 = Uforce
Figure 112017030923908-pct00018
Rmcdrill)일 수 있다. 협업 시스템은 다른 작업, 예컨대 사용자에 의해 수동으로 안내되는 위치에서 유사한 구멍을 드릴링하는 작업 또는 지각 템플릿에 대해 상기 설명된 반자동화 방식으로 부품의 작동 시에 구멍의 패턴을 반복적으로 드릴링하는 예시적 작업에 대한 더 복잡한 상호작용 요건을 유도하기 위해 유사한 접근법을 사용할 수 있다.
예시적 구현예
도 3a 및 도 3b는 본 개시의 원리에 따른 협업 시스템의 예시적 구현예를 예시한다. 다양한 구현예에서, 그것의 일 예는 도 3a에 도시되며, 협업 시스템은 적어도 하나의 UI(310)를 통해 적어도 하나의 사용자(도시되지 않음)와 상호작용할 수 있는 컴퓨터(300)를 포함할 수 있다. 컴퓨터(300)는 당업자에게 널리 공지된 일반 목적 또는 주문형 컴퓨터, 예컨대 데스크톱, 랩톱, 태블릿, 이동 디바이스, 로봇 컨트롤러, 서버, 클러스터 등, 또는 그것의 임의의 조합일 수 있다. 컴퓨터(300)는 또한 임의의 적절한 타입의 기계, 예컨대 가상 기계, 물리 기계 등, 또는 그것의 임의의 조합일 수 있다. 컴퓨터(300) 상에 설치되는 소프트웨어는 협업 프레임워크(320) 및 적어도 하나의 운영 체제("OS")(330)를 포함할 수 있다.
협업 프레임워크(320)는 능력, 링크, 및 협업 작용을 위해 모델을 정의하고 제공하는 상기 설명된 일반화가능 프레임워크의 예시적 구현예이다. 협업 프레임워크(320)는 협업 작용과 연관되는 협업/보조 기능성을 습득하고 및/또는 제공하기 위해 적어도 하나의 로봇(340) 및/또는 사용자와 통신하고 상호작용할 수 있다. 예를 들어, 사용자는 모션을 통해 로봇(340)을 명령함으로써 사용자 증명을 통해 협업 프레임워크(320)에 협업/보조 기능성과 연관되는 하나 이상의 모션을 교시할 수 있다. 협업 프레임워크(320)는 사용자와 통신하고 상호작용하기 위해 UI(310)를 사용할 수 있고, 컴퓨터(300)의 하나 이상의 구성요소 또는 주변장치, 예컨대 시각 디스플레이, 포인팅 디바이스 또는 컨트롤러, 키보드/키패드, 전기음향 변환기, 운동의 또는 유형의 사용자 인터페이스 등, 또는 그것의 임의의 조합을 통해 UI(310)를 제공할 수 있다. 포인팅 디바이스 또는 컨트롤러는 예를 들어 마우스, 3-D 포인팅 디바이스, 터치스크린, 터치패드, 조이스틱, 티치 펜던트(teach pendant) 등을 포함할 수 있다. 협업 프레임워크(320)는 또한 로봇(340)의 하나 이상의 구성요소, 예컨대 센서, 액추에이터 등, 또는 그것의 임의의 조합을 통해 UI(310)를 제공할 수 있다. 센서는 예를 들어 힘 센서, 위치 센서, 시각 센서, 촉각 센서 등을 포함할 수 있다. 당업자는 UI(310)가 본 개시의 사상 및 범위로부터 벗어나는 것 없이 다른 구성요소 및 주변장치를 사용하여 제공될 수 있는 것을 인식할 것이다.
협업 프레임워크(320)는 OS(330)에 의해 지원되고 및/또는 OS의 위에 구축될 수 있다. OS(330)는 임의의 상업적, 개방 소스, 또는 상표로써 등록된 운영 체제 또는 플랫폼, 예컨대 로봇 운영 체제("ROS")일 수 있으며, 그것은 소프트웨어 기능성 및 네트워크 및 프로세스 관리의 구성요소 기반 구성에 대한 미들웨어로써 기능할 수 있다. 본 개시의 원리에 따른 운영 체제의 다른 널리 공지된 예는 리눅스, 유닉스, 오라클 솔라리스, 마이크로소프트 윈도우즈, 맥 OS, OPEN VMS, 및 IBM AIX를 포함한다.
도 3a는 UI(310)를 제공하고 직접 통신 링크를 통해 로봇(340)에 통신 결합되는 것으로 협업 프레임워크(320)를 도시하지만, 당업자는 협업 프레임워크(320)가 UI(310)를 제공하고 및/또는 근거리 네트워크, 광역 네트워크, 인트라넷, 인터넷 등과 같은 적어도 하나의 통신 네트워크를 통한 네트워크 연결과 같은 임의의 적절한 타입의 통신 링크를 통해 로봇(340)에 통신 결합될 수 있는 것을 이해할 것이다. 당업자는 또한 도 3a에 도시되는 협업 시스템의 다양한 부분의 배열 및 단일 컴퓨터 구성이 단지 대표적인 것 및 일 예가 도 3b에 예시되고 아래에 더 상세히 설명되는 다른 구성 및 배열이 본 개시의 사상 및 범위로부터 벗어나는 것 없이 가능한 것을 이해할 것이다.
도 3a에 예시된 바와 같이, 협업 프레임워크(320)는 로봇 능력 인터페이스(예를 들어, 입력(γ) 및 출력(φ)) 사이에서 협업 작용, 로봇 능력, 및 링크를 관리하는 작용 매니저(322)뿐만 아니라, 사용자 상호작용 능력을 관리하는 UI 매니저(324)를 포함한다. 작용 매니저(322) 및 UI 매니저(324)가 분리 및 별개 모듈 또는 프로세스로 실행되는 경우, 협업 프레임워크(320)는 협업 작용의 개념 정의와 일관성을 유지하기 위해 사용자 상호작용 능력으로부터 개별적으로 및 별개로 협업 작용, 로봇 능력, 및 링크를 관리할 수 있다. 로봇 및 사용자 상호작용 능력의 명시적 분리는 기계가 서로 통신 결합(예를 들어, 네트워킹)되기만 하면, 작용 매니저(322) 및 UI 매니저(324)가 물리든 또는 가상이든, 개별 기계 상에 실행되는 것을 허용한다. 더욱이, 협업 프레임워크(320)는 하나 이상의 기계 상에 실행하는 UI 매니저(324)의 다수의 인스턴스를 포함할 수 있으며, 그것의 일 예는 도 3b에 예시되고 아래에 더 상세히 설명된다. 협업 프레임워크(320)는 또한 하나 이상의 기계(도시되지 않음) 상에 분산 방식으로 실행되는 작용 매니저(322)의 다수의 인스턴스를 포함할 수 있다.
로봇 능력 및 링크의 관리
다양한 구현예에서, 협업 프레임워크(320)는 런타임 동안을 포함하는, 다양한 상태에서 RC 요소를 관리(예를 들어, 로딩, 초기화, 실행, 정지, 종결, 언로딩 등) 및 동적으로 적응(예를 들어, 특수화, 일반화, 재특수화 등)시킬 뿐만 아니라 로봇 능력을 구성(예를 들어, 작성, 수정, 저장, 삭제 등)하기 위해 작용 매니저(322)를 호출할 수 있다. 협업 프레임워크(320)는 하나 이상의 프로그래밍 언어 예컨대 C++, PYTHON 등으로 로봇 능력을 작성할 수 있고 복합 요소로 구성될 수 있는 소프트웨어 요소로 로봇 능력을 구현할 수 있다. 로봇 능력은 연장되거나 ROS 노드에 기초할 수 있으며, 이 노드는 소프트웨어 요소, 예를 들어 로봇 능력의 인스턴스 사이의 타이핑된 연결을 위해 통신 계층 및 인터페이스를 제공한다. 협업 프레임워크(320)는 발행 및 가입 ROS 토픽의 형태인 링크 요소로 로봇 능력의 입력과 출력 사이의 링크를 구현할 수 있다.
협업 프레임워크(320)는 로봇 능력과 연관되는 ROS 론치 파일을 호출함으로써 로봇 능력의 인스턴스를 RC 요소로써 제공할 수 있다. 협업 프레임워크(320)에 의해 제공되었던 RC 요소는 비인스턴스화된 또는 일반적, 인스턴스화된 또는 특수화된, 실행하는, 대기하는, 정지된 등을 포함하는, 수개의 상태 중 하나 이상에 있을 수 있다. 일반 RC 요소는 원하는 타입의 작업 액션을 수행하는 코드뿐만 아니라, 그것의 인터페이스(즉, 능력 입력 및 출력)로부터 판독되고 그것의 인터페이스에 기록되는 코드를 포함하지만, RC 요소를 위해 요구되는 정보 커널이 기능하는 것을 허용하는 비인스턴스화된 정보 클래스를 포함한다. 협업 프레임워크(320)는 런타임에 메모리로 로딩되고 정보 클래스를 인스턴스화하고 따라서 RC 요소를 특수화하기 위해 사용되는 구체적으로 포맷된 데이터 파일로 정보 커널을 구현할 수 있다. 협업 프레임워크(320)는 정보 커널을 발생시키고 정보 커널을 모든 능력 요소에 액세스 가능한 데이터베이스에 저장하는 적어도 하나의 인스트럭터를 포함할 수 있다.
협업 프레임워크(320)는 요소 론치 파일에서 로봇 능력 및 요구된 정보 커널을 지정함으로써 로봇 능력에 기초하여 특수화된 RC 요소를 제공할 수 있다. 협업 프레임워크(320)는 특수화된 RC 요소의 정보 커널을 상이한 정보 커널과 교환함으로써, 런타임에서 이미 특수화된 RC 요소를 재특수화할 수 있다. 표 1에 일 예로 제시되는 모션 제약 능력(Rmc)을 사용하면, 협업 프레임워크(320)는 모션 제약 능력(Rmc)을 언로딩해야 하는 것 없이, 도구와 연관되는 파라미터를 포함하는 정보 커널을 상이한 도구와 연관되는 파라미터를 포함하는 다른 정보 커널과 교환할 수 있다. 예를 들어, 협업 프레임워크(320)는 Rmc를 언로딩해야 하는 것 없이, 새롭게 특수화된 모션 제약 능력(Rmcsander))을 형성하기 위해 특수화된 모션 제약 능력(Rmcdrill))의 정보 커널(κdrill)을 정보 커널(κsander)과 교환할 수 있다.
사용자 상호작용 능력의 관리
다양한 구현예에서, 협업 프레임워크(320)는 런타임 동안을 포함하는 다양한 상태에서 사용자 상호작용 능력을 작성, 수정, 로딩, 언로딩, 저장, 및 전환하기 위해 UI 매니저(324)를 호출할 수 있다. 협업 프레임워크(320)는 복합 요소로 구성될 수 있는 소프트웨어 요소로 사용자 상호작용 능력을 구현할 수 있다. RC 요소와 같이, IC 요소는 연장되거나 ROS 노드에 기초할 수 있고, 따라서 공통 통신 계층 및 인터페이스를 RC 요소와 공유한다. 협업 프레임워크(320)는 사용자에게 하나 이상의 상호작용 패러다임을 제공하기 위해 IC 요소를 이용하며, 이 패러다임은 주변장치 예컨대 2-D 또는 3-D 디스플레이, 터치스크린 등으로 드라이버의 형태 또는 소프트웨어 인터페이스의 다른 형태를 취할 수 있다. 예를 들어, 사용자가 로봇에 부착되는 6 DOF 조이스틱을 조작하는 것을 허용하는 어드미턴스 제어 상호작용 요소는 사용자의 모션 사이의 매핑을 입력(γ)으로써 제공하고 명령된 포즈 출력을 어드미턴스 제어 상호작용 요소의 출력(φ)으로써 제공할 수 있다.
협업 작용의 관리
협업 작용을 구현하기 위해, 협업 프레임워크(320)는 협업 작용을 위해 로봇 능력의 구성을 구성하고, 구성에서 로봇 능력의 사용자 인터페이스 요건을 유도하고, 유도된 사용자 인터페이스 요건에 기초하여 사용자 상호작용 능력을 구성에서 매핑하는 도구를 제공한다. 협업 프레임워크(320)는 구성에서 로봇 능력 사이의 링크를 지정함으로써 구성을 구성할 수 있다. 다양한 구현예에서, 협업 프레임워크(320)는 작용 매니페스트를 파퓰레이션함으로써 구성을 구축할 수 있으며, 이 매니페스트는 YAML 표준, 자바스크립트 객체 표기법 등에 기초하여 데이터 사양 또는 직렬화 포맷에 따라 포맷되는 파일일 수 있다. 각각의 작용 매니페스트는 협업 작용에 대한 하나 이상의 로봇 능력, 사용자 상호작용 능력, 및 링크를 태그로 캡슐화할 수 있으며, 그것 하에 협업 작용을 위해 요구되는 능력 및 링크가 열거된다. 다양한 능력은 하나 이상의 론치 파일(예를 들어, ROS 론치 파일) 및/또는 작용 매니페스트를 포함하는 파일에 지정될 수 있고, 링크는 하나 이상의 발행 및 가입 토픽(예를 들어, ROS 발행 및 가입 토픽)에 기초하여 지정될 수 있다. 예를 들어, 협업 프레임워크(320)는 이용가능 능력을 지정하는 하나 이상의 론치 파일을 처리할 수 있고, 협업 작용에 의해 요구되는 로봇 능력, 사용자 상호작용 능력, 및 링크를 캡슐화하는 작용 매니페스트를 포함하는 하나 이상의 파일을 처리할 수 있다.
도 4에 도시된 바와 같은 작용 매니페스트(400)는 어드미턴스 제어 협업 작용에 의해 요구되는 로봇 능력, 사용자 상호작용 능력, 및 링크를 지정하는 작용 매니페스트의 일 예이다. YAML 와이어링 포맷에 지정될 수 있는 작용 매니페스트(400)는 적어도 하나의 로봇에 적어도 하나의 사용자 어드미턴스 제어를 제공하며, 도구가 현재 사용되고 및/또는 워크피스가 현재 착수되고 있는 것에 기초하여 로봇의 모션을 제약하는 옵션을 갖는다. 작용 매니페스트(400)는 작용 명칭(410)을 상위 레벨 키로 포함하고 작용 태그(420a 내지 c)를 요구된 능력 또는 링크의 리스트(425a 내지 c)에 대한 하위 레벨 키로 포함할 수 있다. 리스트(425a)는 요구된 로봇 능력의 리스트를 열거할 수 있고, 리스트(425b)는 요구된 사용자 상호작용 능력의 세트를 열거할 수 있고, 리스트(425c)는 요구된 링크의 세트를 열거할 수 있다. 당업자는 작용 매니페스트(400)의 포맷 및 콘텐츠가 단지 대표적인 것 및 다른 포맷 및 콘텐츠가 본 개시의 사상 및 범위로부터 벗어나지 않고 가능한 것을 이해할 것이다.
시동 동안, 협업 프레임워크(320)는 예를 들어 협업 프레임워크(320)와 연관되는 프리픽스를 갖는 임의의 론치 파일에 대해 로컬 파일 시스템을 파싱함으로써 작용 매니저(322)에게 이용가능 로봇 능력의 리스트를 구축하라고 명령할 수 있고, 또한 작용 매니페스트를 포함하는 임의의 파일을 위치시키고 판독할 수 있다. 작용 매니저(322)는 런타임 동안 또는 적어도 하나의 협업 작용이 인게이징되는 동안을 포함하는 다양한 상태에 있는 동안 협업 작용을 로딩, 인게이징, 디스인게이징, 언로딩, 및 전환할 수 있다. 협업 프레임워크(320)의 UI 매니저(324) 및/또는 다른 모듈은 사용자가 다양한 관리 기능을 수행할 수 있는 하나 이상의 관리 UI를 정의하고 제공할 수 있다.
관리 기능은 다양한 능력(예를 들어, 사용자에게 이용 가능하지만, 비로딩된, 로딩된, 비인스턴스화된 또는 일반적, 인스턴스화된 또는 특수화된, 실행하는, 대기하는, 정지된 등인 로봇 능력 및/또는 사용자 상호작용 능력)의 리스트를 보는 것, 새로운 능력을 생성하는 것, 협업 프레임워크(320)에 대한 기존 능력을 선택하여 로딩, 인스턴스화 또는 특수화, 비인스턴스화 또는 일반화, 재인스턴스화 또는 재특수화, 언로딩, 교환, 상술, 수정, 삭제하는 등 하는 것, 및 상이한 능력과 동일한 방식으로 수행될 수 있는 다른 기능을 포함할 수 있다. 관리 기능은 또한 다양한 협업 작용(예를 들어, 사용자에 이용 가능하며, 로딩된, 인게이징된 등인 협업 작용)의 리스트를 보는 것, 새로운 협업 작용을 생성하는 것, 협업 프레임워크(320)에 대한 기존 협업 작용을 선택하여 로딩, 인게이징, 디스인게이징, 언로딩, 교환, 상술, 수정, 삭제하는 등 하는 것, 및 상이한 협업 작용과 동일한 방식으로 수행될 수 있는 다른 기능을 포함할 수 있다. 예를 들어, 사용자는 이용가능 협업 작용의 리스트를 브라우징하고 협업 프레임워크(320)에 대한 협업 작용을 선택하여 로딩 및/또는 인게이징, 상술, 수정, 삭제하는 등 하기 위해 관리 UI를 사용할 수 있다. 다른 예로써, 사용자는 임의의 인게이징된 협업 작용을 브라우징하고 협업 프레임워크(320)에 대한 임의의 인게이징된 협업 작용을 선택하여 디스인게이징, 언로딩, 교환, 상술, 수정하는 등 하기 위해 관리 UI를 사용할 수 있다.
협업 프레임워크(320) 또는 그 안의 임의의 모듈이 협업 작용을 로딩하기 위해 커맨드를 수신하는 것에 응답하여, 작용 매니저(322)는 협업 작용과 연관되는 적어도 하나의 작용 매니페스트에 의해 요구되는 로봇 능력의 구성을 위치시키고, RC 요소를 요구된 로봇 능력에 대한 개별 차일드 프로세스로 론칭할 수 있다. 이것은 작용 매니저(322)가 예를 들어 RC 요소를 필요에 따라 시작, 정지, 재시작, 종결, 또는 킬링함으로써 RC 요소를 관리하고 RC 요소 사이에서 적절하게 전이하는 것을 허용하며; 그러한 전이 동안, 작용 매니저(322)는 로봇을 중단하거나 로봇에게 중단된 상태에 진입하라고 명령하고 진입하는 것을 대기할 수 있다.
모든 요구된 RC 요소를 론칭한 후에, 작용 매니저(322)는 이때 협업 작용 및/또는 요구된 RC 요소에 의해 요구되는 모든 링크에 대한 작용 매니페스트를 고려해 볼 수 있다. 요구된 링크 각각에 대해, 작용 매니저(322)는 링크 요소, 또는 송신 노드(예를 들어, 주어진 토픽에 발행하는 RC 요소)에 가입하고 수신 노드(예를 들어, 주어진 토픽에 가입되는 RC 요소)에 발행하는 로직을 포함하는 명시적으로 발생된 일시적 구성요소를 스포닝(spawning)할 수 있다. 이러한 추상적 개념은 수개의 이득을 제공한다. 링크 요소를 사용함으로써, 각각의 링크는 링크 로직(발행자 및 가입자)이 작용 매니저(322)에 직접 스포닝되게 하는 것보다는 오히려, 그 자체의 프로세스로 구분될 수 있으며, 따라서 작용 매니저(322)가 런타임에서 RC 요소 사이의 링크를 용이하게 재조직하는 것을 허용한다. 이러한 추상적 개념은 또한 연결된 능력 요소의 그래프 유사 구조가 유지되기 때문에 유용한 인트로스펙션(introspection)을 허용한다. 예를 들어, 사용자는 작용 매니저(322)의 중앙 허브에 모두 연결되는 많은 RC 요소보다는 오히려, 시각화 도구(예를 들어, rqt_graph, ROS 그래프 시각화 도구)를 통해 RC 요소 사이에서 명시적 연결을 인식할 수 있다.
각각의 실행 RC 요소 및 링크 요소에 대한 개별 프로세스를 사용하는 결과로서, 작용 매니저(322)는 다양한 다른 작용 커맨드 및 관리 활동을 용이하게 구현하고 수행할 수 있다. 협업 작용을 언로딩하는 커맨드에 응답하여, 작용 매니저(322)는 협업 작용과 연관되는 실행 RC 요소 및 링크 요소를 간단히 종결할 수 있다. 이미 로딩되었던 제1 협업 작용으로부터 요청되고 있지만 로딩되지 않았던 제2 협업 작용으로 전환하는 커맨드에 응답하여, 작용 매니저(322)는 제1 및 제2 협업 작용에 의해 공유되지 않은 RC 요소 및 링크 요소만을 로딩하고 언로딩하기 위해 제1 및 제2 협업 작용에 의해 공유되는 교차 로봇 능력을 발견할 수 있다.
작용 매니저(322)는 개별 RC 요소를 추가하거나 빼고 다양한 상태에 있는 동안 개별 링크를 구성하거나 차단할 수 있다. 예를 들어, 협업 작용을 로딩하거나 심지어 인게이징한 후에, 작용 매니저(322)는 하나 이상의 새로운 개별 RC 요소 및/또는 링크 요소를 협업 작용에 추가할 수 있고 협업 작용과 연관되는 하나 이상의 개별 RC 요소 및/또는 링크 요소를 뺄 수 있으며; 협업 작용이 인게이징된 상태에 있으면, 작용 매니저(322)는 가능한 한 많은 협업 작용의 기능성을 유지하는 동안 개별 RC 요소 및/또는 링크 요소를 추가하거나 뺄 수 있다. 작용 매니저(322)에 대한 요청 또는 커맨드는 서비스(예를 들어, ROS 서비스)로 구현될 수 있으므로, 그것은 그래픽 UI에 용이하게 연결되거나 프로그램적으로 호출될 수 있다.
작용 매니저(322)는 또한 협업 프레임워크(320)가 런타임 동안을 포함하는 다양한 상태에 있는 동안 개별 RC 요소를 동적으로 적응시킬 수 있다. 예를 들어, RC 요소를 로딩한 후에, 작용 매니저(322)는 하나 이상의 명령어를 통해 정의되었던 정보 커널로 RC 요소를 인스턴스화하거나 특수화할 수 있다. 작용 매니저(322)는 RC 요소로부터 기존 정보 커널을 분리함으로써 특수화된 RC 요소를 인스턴스화하지 않거나 일반화할 수 있다. 작용 매니저(322)는 또한 기존 정보 커널을 새로운 정보 커널과 교환함으로써 특수화된 RC 요소를 재인스턴스화하거나 재특수화할 수 있다.
상기 설명된 바와 같이, 협업 프레임워크(320)는 RC 요소 및 링크 요소와 개별적으로 및 별개로 협업 작용과 연관되는 IC 요소를 관리할 수 있다. 협업 작용에 대한 UI 요건을 충족시키기 위해, 협업 프레임워크(320)의 UI 매니저(324)는 이용가능 사용자 상호작용 능력에 기초하여 IC 요소의 세트를 제공할 수 있다. UI 매니저(324)는 작용 매니저(322)가 RC 요소를 론칭하는 방식과 유사하게, IC 요소를 개별 프로세스로써 론칭하고, 따라서 실행 IC 요소를 관리하고 이 요소 사이를 전이할 때 상기 논의된 바와 같은 유사한 기능성 및 이득을 UI 매니저(324)에 제공할 수 있다. 더욱이, IC 요소는 개별 프로세스로서 RC 요소 및 링크 요소로부터 론칭된다. 그러나 UI 매니저(324)는 실행 IC 요소 사이에 명시적 링크를 정의하지 않는다. 그 대신에, UI 매니저(324)는 특정 RC 요소에 대한 IC 요소의 적합성을 결정하기 위해 Δ(즉, 호환성 기능)의 상기 설명된 개념을 이용할 수 있다. 다양한 구현예에서, 협업 작용과 연관되는 호환성 기능은 협업 프레임워크(320)에 의해, 협업 작용 자체(예를 들어, 작용 매니페스트 내의)에 의해 또는 협업 작용 내의 적어도 하나의 특정 로봇 능력(예를 들어, 론치 파일 내의)에 의해 로딩될 때 특정 IC 요소가 그러한 협업 작용을 위해 요구되는 것을 지정할 수 있다. 도 5는 사용자가 샌더와 연관되는 도구 작용 제약을 선택하고 및/또는 적용하게 하는 IC 요소에 의해 제공되는 도구 작용 UI 요소(510)와 파퓰레이션되는 UI(500)의 일 예를 도시하고, UI(500)는 예시적 프로세스에 대해 아래에 더 상세히 설명된다.
다양한 구현예에서, 협업 프레임워크(320)는 호환성 기능(Δ)에 따라, 로봇 능력의 협업 작용의 구성에서 로봇 능력의 모든 사용자 상호작용 요건을 충족시킴으로써 협업 작용을 생성할 수 있다. 각각의 로봇 능력을 구성에 RC 요소로 로딩한 후에, 협업 프레임워크(320)는 로봇 능력에 대한 론치 파일에 열거되는 요건에 기초하여 로봇 능력에 의해 요구되는 사용자 상호작용 능력을 결정할 수 있다. 로봇 능력의 요건은 하나 이상의 명시적으로 요구된 사용자 상호작용 능력 및/또는 하나 이상의 추상적 인터페이스 요건의 리스트를 열거할 수 있다. 예를 들어, 도구 모션 제약 능력은 조이스틱에 의한 데카르트 제어를 위해 특정 사용자 상호작용 능력을 필요로 할 수 있다. 도구 모션 제약 능력은 또한 하나 이상의 추상적 인터페이스 요건의 리스트, 예컨대 텍스트 필드, 버튼, 및 토글을 제공할 수 있다. 협업 프레임워크(320)는 추상적 인터페이스 요건의 리스크를 파싱하고, 어느 사용자 상호작용 능력이 추상적 인터페이스 요건과 매칭하는지를 판단할 수 있다. 그 다음, 협업 프레임워크(320)는 요구된 IC 요소를 위치시키고 로딩하며 IC 요소 또는 IC 요소에 의해 제공되는 사용자 인터페이스를 필요로 하는 하나 이상의 RC 요소에 각각의 IC 요소를 연결할 수 있다.
협업 프레임워크(320) 또는 그 안의 임의의 모듈이 협업 작용을 로딩하기 위해 커맨드를 수신하는 것에 응답하여, UI 매니저(324)는 협업 작용과 연관되는 작용 매니페스트에 UI 요건으로 열거되는 모든 IC 요소를 자동으로 로딩할 수 있다. 부가적으로, 협업 프레임워크(320)가 전체로서 협업 작용의 것을 넘어 특정 UI 요건을 갖는 하나 이상의 필요한 RC 요소를 로딩하면 및 로딩할 때, 필요한 RC 요소는 로딩 프로세스 동안 데이터(예를 들어, ROS 파라미터 서버)에 대한 공유 메모리 공간에 걸쳐 그것의 UI 요건을 브로드캐스팅할 수 있다. 브로드캐스트 UI 요건에 응답하여, UI 매니저(324)는 필요한 RC 요소에 의해 요구되는 IC 요소를 로딩할 수 있다. 협업 작용 및/또는 임의의 필요한 RC 요소에 요구되는 IC 요소를 로딩한 다음에, UI 매니저(324)는 UI 요건에 적절한 하나 이상의 UI 요소를 제공하고 임의의 필요한 연결을 이루기 위해 로딩된 IC 요소를 요청할 수 있다. UI가 협업 작용을 위해 필요한 상호작용 양상을 사용자에게 제공하는 것을 보장하기 위해, 협업 작용의 작성자 또는 설계자는 협업 작용에 대한 UI 요건의 적어도 최소 세트를 명시적으로 지정해야 한다.
다양한 구현예에서, 그것의 일 예는 도 3b에 도시되며, 협업 시스템은 개별 컴퓨터(도시되지 않음)의 그룹상에서 실행되는 모듈을 갖는 분산 협업 프레임워크(350)를 포함할 수 있다. 컴퓨터의 그룹은 다수의 일반 목적 또는 주문형 컴퓨터를 포함할 수 있으며, 그것의 예는 클라이언트-서버 네트워크, 피어 투 피어 네트워크, 컴퓨터 클러스터, 그리드, 클라우드 등, 또는 그것의 임의의 조합을 포함한다. 컴퓨터는 적어도 하나의 네트워크(360)를 통해 통신 결합되는 임의의 타입(예를 들어, 물리, 가상 등)의 기계일 수 있으며, 이 네트워크는 임의의 적절한 타입의 하나 이상의 통신 네트워크, 예컨대 근거리 네트워크, 광역 네트워크, 인트라넷, 인터넷 등을 포함할 수 있다. 예를 들어, 컴퓨터의 그룹은 ROS를 통해 네트워킹되는 개별 기계를 포함할 수 있다. 그룹 내의 각각의 컴퓨터는 그룹 내의 적어도 하나의 다른 컴퓨터에 통신 결합(예를 들어, 네트워킹)될 수 있다. 컴퓨터의 그룹 상에 설치되는 소프트웨어는 분산 협업 프레임워크(350)의 모듈 및 하나 이상의 운영 체제(도시되지 않음)의 다수의 인스턴스를 포함할 수 있다. 분산 협업 프레임워크(350)의 모듈은 운영 체제에 의해 지원되고 및/또는 운영 체제의 위에 구축될 수 있으며, 이 운영 체제는 임의의 상업적, 개방 소스, 또는 상표로써 등록된 운영 체제 또는 플랫폼, 예컨대 ROS 또는 다른 적절한 운영 체제일 수 있다.
분산 협업 프레임워크(350)의 모듈은 RC 요소 및 링크 요소를 관리하는 작용 매니저(352) 및 IC 요소를 관리하는 UI 매니저의 하나 이상의 인스턴스(354)를 포함할 수 있다. 분산 협업 프레임워크(350)는 컴퓨터의 하나 이상의 구성요소 또는 주변장치 및/또는 로봇(380)의 하나 이상의 구성요소를 통해 UI(370)를 제공함으로써 하나 이상의 사용자와 통신하고 상호작용하기 위해 하나 이상의 UI(370)를 사용할 수 있다. 당업자는 UI(370)가 본 개시의 사상 및 범위로부터 벗어나는 것 없이 다른 구성요소 및 주변장치를 통해 제공될 수 있는 것을 인식할 것이다. 분산 협업 프레임워크(350)는 협업 작용과 연관되는 협업/보조 기능성을 습득하고 및/또는 제공하기 위해 네트워크(360)를 통해 하나 이상의 로봇(380) 및/또는 사용자와 통신하고 상호작용할 수 있다.
협업 프레임워크(350)에서 RC 요소 및 IC 요소의 명시적 분리의 경우, UI 매니저 인스턴스(354)의 적어도 하나의 인스턴스 및 작용 매니저(352)는 개별 컴퓨터상에 실행될 수 있다. 그러한 구성 유연성은 하나 이상의 전력 부족 로직 모듈이 로직 구성요소 및 링크를 관리하는 것을 분산 협업 프레임워크(350)가 필요로 하지만 경량 UI 프런트 엔드를 갖는 시나리오에 유용할 수 있다. 이러한 시나리오에서 성능을 최적화하기 위해, 분산 협업 프레임워크(350)는 강력한 원격 컴퓨터 또는 컴퓨터 클러스터(도시되지 않음) 상에 작용 매니저(352)를 실행하고 하나 이상의 덜 강력한 로컬 컴퓨터(도시되지 않음), 예컨대 데스크톱, 랩톱, 태블릿, 이동 디바이스, 로봇 컨트롤러 등 상에 UI 매니저 인스턴스(354)의 하나 이상의 분산 인스턴스를 실행할 수 있다.
더욱이, UI 매니저 인스턴스(354)는 로컬 컴퓨터에 연결되는 구성요소 또는 주변장치(예를 들어, 디스플레이)의 타입 및 성질에 기초하여 UI(370) 내의 요소의 하나 이상의 디스플레이 파라미터 및 다른 특성을 맞춤화할 수 있다. 예를 들어, 소형 터치스크린 태블릿 상에 디스플레이되는 UI(370) 중 하나에 대한 UI 요소는 터치 상호작용을 위해 조정되는 더 큰 버튼으로 더 소형화될 수 있다. 다른 예로써, 가상 현실 디바이스를 통해 디스플레이되는 UI(370) 중 하나에 대한 UI 요소는 실감 UI 요소를 포함할 수 있다. UI(370) 내의 UI 요소 및 개별 컴퓨터에 걸쳐 분산되는 UI 매니저 인스턴스(354)가 맞춤화되는 것을 허용하는 분산 협업 프레임워크(350)의 구성 유연성은 영역 특정 상호작용을 가능하게 하며 UI(370)는 분산 협업 프레임워크(350)가 사용자와 상호작용하는 하드웨어 플랫폼에 기초하여 자동으로 구성될 수 있다.
본원에 설명되고 도 3a 및 도 3b에 예시된 것과 같은 협업 시스템의 예시적 구현예는 개념을 구체적 방식으로 제공하도록 의도되고 당업자가 이러한 구현예를 실시할 수 있게 하도록 충분히 상세하게 설명된다. 그러나 다른 구현예가 이용될 수 있고 변경은 본 개시의 범위로부터 벗어나는 것 없이 이루어질 수 있다.
도 6은 본 개시의 구현예에 따른 재사용가능 능력 표현의 생성, 동적 적응, 및 관리 및 인간-기계 협업 작용의 생성, 재사용, 및 관리를 지원하는 일반화가능 프레임워크에 의해 수행되는 프로세스(600)의 흐름도이다. 프로세스(600)는 협업 프레임워크, 예컨대 도 3a에 도시된 바와 같은 협업 프레임워크(320) 또는 도 3b에 도시된 바와 같은 분산 협업 프레임워크(350)에 의해 수행될 수 있다. 프로세스(600)는 협업 프레임워크를 론칭하거나 제공함으로써 시작될 수 있거나, 프로세스(600)는 협업 프레임워크의 론치 동안 또는 후에 시작될 수 있다.
블록(602)에서, 협업 프레임워크는 작용 매니저(예를 들어, 작용 매니저(322, 352))의 적어도 하나의 인스턴스 및 UI 매니저(예를 들어, UI 매니저(324, 354))의 적어도 하나의 인스턴스를 포함하는 모듈을 제공할 수 있다. 작용 매니저 및 UI 매니저의 인스턴스는 개별 프로세스로 각각 론칭되고 실행될 수 있으며, 따라서 상이한 컴퓨터 또는 기계 상에 실행될 수 있다. 개시 동안 및/또는 후에, 협업 프레임워크는 작용 매니저 및/또는 UI 매니저에게 이용가능 능력 및/또는 협업 작용의 하나 이상의 리스트를 구축하라고 명령할 수 있다. 리스트는 로봇 능력(예를 들어, 일반 로봇 능력, 특수화된 로봇 능력 등), 사용자 상호작용 능력, 링크, RC 요소(즉, 하나 이상의 로봇 능력의 인스턴스), IC 요소(즉, 하나 이상의 사용자 상호작용 능력의 인스턴스), 링크 요소(즉, 하나 이상의 링크의 인스턴스), 정보 커널, 협업 작용 등의 하나 이상의 리스트를 포함할 수 있다. 협업 프레임워크는 협업 프레임워크와 연관되는 프리픽스를 갖는 임의의 론치 파일에 대해 로컬 파일 시스템을 파싱함으로써 이용가능 능력 또는 협업 작용의 리스트를 구축할 수 있고, 또한 작용 매니페스트(예를 들어, 작용 매니페스트(400))를 포함하는 임의의 파일을 위치시키고 판독할 수 있다.
다음에, 블록(604)에서, 협업 프레임워크는 협업 작용을 인게이징하거나 구성하기 위해 입력을 수신할 수 있다. 협업 프레임워크는 새로운 협업 작용을 생성하거나 기존 협업 작용을 선택하여 하나 이상의 UI 요소를 통해, 커맨드 쉘을 통해, 프로그램적으로 등으로 인게이징하고 및/또는 수정하는 커맨드를 수신할 수 있다. 협업 프레임워크가 기존 협업 작용을 인게이징하기 위해 입력을 수신하면, 이때 협업 프레임워크는 블록(612)으로 진행될 수 있다. 대안적으로, 판단 블록(610)에서, 협업 프레임워크가 협업 작용을 구성하기 위해, 예컨대 새로운 협업 작용을 생성하거나 기존 협업 작용을 수정하기 위해 입력을 수신하면, 이때 협업 프레임워크는 처리(900)를 수행할 수 있으며, 처리는 도 9에 대해 아래에 더 상세히 설명된다.
블록(612)에서, 협업 프레임워크는 작업을 협업적으로 수행하기 위해 적어도 하나의 사용자와 상호작용하고 로봇을 제어하는 협업 작용을 선택할 수 있다. 협업 프레임워크는 사용자에 의해, 특정 작업 또는 특정 작업 클래스 내의 작업을 협업적으로 수행하기 위해 로봇을 제어하도록 협업 작용의 능력을 동적으로 적응시킬 수 있다. 작업은 하나 이상의 작업 액션이 완료되는 것을 필요로 할 수 있고, 협업 프레임워크는 작업 액션을 수행하기 위해 하나 이상의 협업 작용을 인게이징할 수 있다. 협업 작용이 워킹 메모리에 로딩되지 않으면, 블록(614)에서 협업 프레임워크는 능력의 협업 작용의 구성을 지정하는 협업 작용의 사양(예를 들어, 작용 매니페스트(400))을 획득하고 파싱할 수 있다.
다음에, 블록(616)에서, 협업 프레임워크는 협업 작용의 능력 구성에 기초하여, 하나 이상의 능력의 인스턴스인, 능력 요소의 세트를 제공할 수 있다. 능력 요소의 세트는 하나 이상의 RC 요소 및 하나 이상의 IC 요소를 포함한다. 다양한 구현예에서, 협업 프레임워크는 도 7에 도시되고 아래에 더 상세히 설명되는 바와 같은 처리(700)를 수행함으로써 능력 요소의 세트를 제공할 수 있다. 그 다음, 블록(618)에서, 협업 프레임워크는 하나 이상의 능력 사이의 하나 이상의 링크의 인스턴스인 링크 요소의 세트를 제공하고, 링크 요소의 세트를 사용하여 능력 요소의 세트를 연결할 수 있다. 다양한 구현예에서, 협업 프레임워크는 도 8에 도시되고 아래에 더 상세히 설명되는 바와 같은 처리(800)를 수행함으로써 링크 요소의 세트를 제공하고 능력 요소의 세트를 연결할 수 있다.
블록(620)에서, 협업 프레임워크는 작업을 수행하기 위해 사용자와 상호작용하고 로봇을 제어하도록 능력 요소의 세트를 실행함으로써 협업 작용을 인게이징할 수 있다. 협업 프레임워크는 로봇에 부착되는 도구로, 작업을 완료하는 하나 이상의 작업 액션을 수행하기 위해 로봇의 하나 이상의 기능을 제어하도록 작용 매니저에게 RC 요소를 실행하고 RC 요소 중 하나 이상을 사용하라고 명령할 수 있다. 협업 프레임워크는 또한 사용자가 로봇 및/또는 협업 프레임워크와 상호작용할 수 있는 하나 이상의 UI를 제공하기 위해 UI 매니저에게 하나 이상의 IC 요소를 실행하라고 명령할 수 있다. 협업 프레임워크는 인게이징된 협업 작용을 디스인게이징하고 및/또는 임의의 시간에 실행 능력 요소를 정지시킬 수 있다. 예를 들어, 인게이징된 협업 작용 및/또는 실행 RC 요소 중 임의의 것은 협업 작용을 디스인게이징하거나 임의의 실행 RC 요소, 작업 또는 작업 액션의 완료, 에러 또는 안전 경보 등을 정지하기 위해 사용자로부터의 커맨드 또는 입력에 응답하여 디스인게이징되거나 정지될 수 있다. 협업 프레임워크는 또한 능력 요소 사이에서 링크를 구성하거나 차단하기 위해 개별 능력 요소 및/또는 링크 요소를 추가하거나 뺄 때 협업 작용을 디스인게이징할 수 있다.
작업 또는 작업 액션을 완료하거나 협업 작용을 디스인게이징한 다음에, 판단 블록(630)에서 협업 프레임워크는 새로운 작업 또는 작업 액션을 수행하는지의 여부를 판단할 수 있다. 협업 프레임워크는 새로운 작업을 수행하는 것을 결정하면, 이때 프로세스(600)는 판단 블록(640)으로 진행될 수 있으며, 그것에서 협업 프레임워크는 능력 요소의 세트에서 협업 작용 및/또는 하나 이상의 능력 요소를 재사용하는지의 여부를 판단할 수 있다. 예를 들어, 협업 프레임워크는 협업 작용이 사용자와 새로운 작업을 협업적으로 수행하는데 적절한지의 여부를 판단할 수 있다. 협업 프레임워크가 능력 요소의 세트에서 협업 작용 및/또는 일부 또는 전부 능력 요소를 재사용하는 것을 결정하면, 이때 협업 프레임워크는 프로세스(600)가 블록(620)으로 점프하기 전에 새로운 작업으로의 전이를 위해 협업 작용 및/또는 능력 요소의 세트를 준비할 수 있다. 예를 들어, 새로운 작업의 요건에 기초하여, 협업 프레임워크는 RC 요소 중 임의의 것을 일반화하거나 재특수화하고, 능력 요소 중 임의의 것 사이에 링크를 재매핑하고, 및/또는 능력 및 링크 요소 중 임의의 것을 종결하고 언로딩함으로써 전이를 위해 능력 요소의 세트를 준비할 수 있다.
판단 블록(640)에서 협업 프레임워크가 협업 작용을 재사용하지 않는 것을 결정하면, 이때 프로세스(600)는 블록(642)으로 진행될 수 있다. 블록(642)에서, 협업 프레임워크는 프로세스(600)가 새로운 작업을 수행하기 위해 다른 협업 작용을 인게이징하거나 구성하도록 판단 블록(610)으로 점프하기 전에, 협업 작용을 디스인게이징하고 언로딩하고 및/또는 능력 및 링크 요소의 일부 또는 전부를 종결하고 언로딩할 수 있다. 협업 프레임워크는 협업 작용 등을 위해 인스턴스화되는 능력 및 링크 요소를 종결하고 언로딩함으로써 협업 작용을 언로딩할 수 있다. 그러나 새로운 작업에 대한 후속 협업 작용이 능력 및/또는 링크 요소 중 하나 이상을 이용할 수 있는 경우, 협업 프레임워크는 워킹 메모리에서 능력 및/또는 링크 요소의 일부 또는 전부를 유지할 수 있고, RC 요소의 일부 또는 전부를 재특수화할 수 있다. 다른 한편, 협업 프레임워크는 후속 협업 작용이 재사용할 수 있는 임의의 능력 또는 링크 요소를 식별하지 않으면, 이때 협업 프레임워크는 다른 협업 작용을 인게이징하고 구성하기 위해 판단 블록(610)으로 점프하기 전에 협업 작용을 언로딩하고 협업 작용과 연관되는 모든 능력 및 링크 요소를 종결하고 언로딩할 수 있다.
대안적으로, 판단 블록(630)에서 협업 프레임워크는 다른 작업을 수행하지 않는 것을 결정하면, 이때 블록(652)에서 협업 프레임워크는 협업 작용을 디스인게이징하고 언로딩하고, 협업 작용과 연관되는 모든 능력 및 링크 요소를 종결하고 언로딩하고, 작용 매니저 및 UI 매니저를 종결하고 언로딩하고, 및/또는 협업 프레임워크를 종결하고 언로딩할 수 있다. 최종적으로, 블록(652) 다음에, 프로세스(600)는 종료된다.
도 7 및 도 8은 본 개시의 구현예에 따른 인간-기계 협업 작용에 기초하여 재사용가능 능력 표현을 제공하고 동적으로 적응시키기 위해 일반화가능 프레임워크에 의해 수행되는 프로세스(700) 및 프로세스(800)의 흐름도이다.
이제 도 7을 참조하면, 협업 프레임워크는 블록(614)(도 6에 도시된 바와 같음)에서 현재 협업 작용의 능력 구성을 획득하고 파싱하는 동안 또는 다음에 프로세스(700)를 수행할 수 있다. 프로세스(700)에서, 협업 프레임워크는 능력 구성에 의해 지정되는 하나 이상의 로봇 능력에 기초하여 RC 요소를 제공하기 위해 작용 매니저를 호출할 수 있다. 협업 프레임워크는 또한 능력 구성에 의해 지정되고 및/또는 능력 구성 내의 개별 로봇 능력에 의해 요청되는 하나 이상의 사용자 상호작용 능력에 기초하여 IC 요소를 로딩하고 실행하기 위해 UI 매니저의 적어도 하나의 인스턴스를 호출할 수 있다. 협업 프레임워크는 각각의 RC 요소 및 각각의 IC 요소를 개별 인스턴스 또는 프로세스로서 제공할 수 있다.
블록(702)에서, 협업 프레임워크는 능력 구성을 파싱하고 능력 구성에 지정되는 능력을 선택할 수 있다. 협업 프레임워크는 또한 능력 구성에 지정되는 사용자 상호작용 능력에 의해 충족되지 않는 적어도 하나의 추상적 인터페이스 요건을 갖는 임의의 필요한 로봇 능력을 식별할 수 있고, 작용 매니저는 공유 메모리 공간을 통해 부가 UI 요건을 브로드캐스팅할 수 있다. 이에 응답하여, UI 매니저는 부가 UI 요건을 충족시키기 위해 적어도 하나의 사용자 상호작용 능력을 선택할 수 있다. UI 매니저는 필요한 로봇 능력상에 호환성 기능을 수행함으로써 적절한 사용자 상호작용 능력을 선택할 수 있다. 그 다음, 블록(704)에서, 협업 프레임워크는 일 타입의 선택된 능력, 예를 들어 로봇 능력 또는 사용자 상호작용 능력을 결정할 수 있다.
판단 블록(710)에서, 선택된 능력이 로봇 능력인 것으로 결정되면, 이때 프로세스(700)는 블록(712)으로 진행될 수 있으며, 그 동안 협업 프레임워크는 로봇 능력의 인스턴스를 RC 요소로 제공할 수 있다. 협업 프레임워크는 협업 작용을 사용하여 수행되는 작업 액션과 연관되는 하나 이상의 작업 액션 타입에 기초하여 작업 액션을 수행하는데 적절한 하나 이상의 일반 로봇 능력에 기초하여 RC 요소를 제공할 수 있다. 예를 들어, 협업 프레임워크는 작용 매니저에게 로봇 능력과 연관되는 론치 파일을 호출하고 RC 요소를 생성하라고 명령함으로써 RC 요소를 제공할 수 있다. 일반 로봇 능력의 예는 모션 제약, 모션 즉시 재생, 궤적 발생 등을 포함한다. 로봇 능력의 인스턴스가 예를 들어 이전 작업을 수행하기 위해 및/또는 이전에 로딩된 협업 작용에 의해 요구되는 바와 같이, 이용가능하고 메모리에 이미 로딩되었다면, 이때 협업 프레임워크는 새로운 RC 요소를 생성하는 대신에 이미 로딩된 RC 요소를 간단히 적응시킬 수 있다.
다음에, 블록(714)에서, 협업 프레임워크는 RC 요소를 인스턴스화하거나 특수화하는 적어도 하나의 정보 커널을 제공할 수 있다. 정보 커널은 RC 요소에 의해 요구되는 하나 이상의 작업 관련 파라미터의 세트를 캡슐화하고, 정보 커널에 캡슐화될 수 있는 파라미터의 타입은 예를 들어 도구 작용 제약, TMP, 지각 템플릿 등을 포함한다. 협업 프레임워크는 능력 구성 및/또는 RC 요소에 의해 요구되는 파라미터의 세트에 기초하여 정보 커널을 식별할 수 있다. 그 다음, 블록(716)에서, 협업 프레임워크는 정보 커널로 RC 요소를 특수화할 수 있다. RC 요소가 상이한 정보 커널로 이미 특수화되었으면, 이때 협업 프레임워크는 예를 들어 RC 요소를 일반화하고(예를 들어, 상이한 정보 커널로부터 RC 요소를 분리하고) 그 다음에 정보 커널로 RC 요소를 특수화함으로써 RC 요소를 재특수화할 수 있다. 블록(716) 다음에, 프로세스(700)는 판단 블록(720)으로 진행될 수 있다.
대안적으로, 판단 블록(710)에서 선택된 능력이 사용자 상호작용 능력인 것으로 결정되면, 이때 프로세스(700)는 블록(718)으로 진행될 수 있으며, 그 동안 협업 프레임워크는 사용자 상호작용 능력의 인스턴스를 IC 요소로 제공할 수 있다. 예를 들어, 협업 프레임워크는 UI 매니저에게 사용자 상호작용 능력과 연관되는 론치 파일을 호출하고 IC 요소를 생성하라고 명령함으로써 IC 요소를 제공할 수 있다. UI 매니저는 또한 IC 요소가 사용자와 상호작용하는 사용자 인터페이스(예를 들어, 디스플레이, 사용자 입력 디바이스 등)의 특성을 결정한 다음, 그러한 특성에 기초하여 IC 요소를 맞춤화할 수 있다. 사용자 상호작용 능력의 인스턴스가 예를 들어 이전 작업을 수행하기 위해 및/또는 이전에 로딩된 협업 작용에 의해 요구되는 바와 같이, 이용가능하고 메모리에 이미 로딩되었다면, 이때 협업 프레임워크는 새로운 IC 요소를 생성하는 대신에 이미 로딩된 IC 요소를 간단히 적응시킬 수 있다. 블록(718) 다음에, 프로세스(700)는 판단 블록(720)으로 진행될 수 있다.
판단 블록(720)에서, 협업 프레임워크는 임의의 필요한 로봇 능력의 능력 구성 및/또는 추상적 인터페이스 요건에 기초하여, 능력의 더 많은 인스턴스를 제공하는지의 여부를 판단할 수 있다. 예 이면, 이때 프로세스(700)는 블록(702)으로 점프할 수 있다. 대안적으로, 아니오 이면, 이때 협업 프레임워크는 프로세스(700)를 종결하고 블록(618)(도 6에 도시된 바와 같음)으로 점프할 수 있다.
이제 도 8을 참조하면, 협업 프레임워크는 능력 구성에 지정되는 로봇 능력과 연관되는 RC 요소를 제공한 다음에 프로세스(800)를 수행할 수 있다. 프로세스(800)에서, 협업 프레임워크는 협업 작용의 능력 구성에 의해 지정되는 링크 및 매핑에 기초하여 링크 요소를 제공하기 위해 작용 매니저를 호출할 수 있고 각각의 링크 요소를 개별 인스턴스 또는 프로세스로 제공할 수 있다.
블록(802)에서, 협업 프레임워크는 능력 사이의 하나 이상의 링크 또는 연결, 예컨대 로봇 능력 사이의 링크 및 로봇 능력과 사용자 상호작용 능력 사이의 매핑을 위해 능력 구성을 파싱할 수 있다. 다음에, 블록(804)에서, 협업 프레임워크는 링크 또는 매핑의 인스턴스를 링크 요소로 제공할 수 있다. 그 다음, 블록(806)에서, 협업 프레임워크는 관련 능력 요소를 연결하기 위해 링크 요소를 사용할 수 있다. 예를 들어, 링크는 능력 구성에 지정되는 링크 또는 매핑에 기초하여 능력 요소의 쌍 사이에 형성될 수 있다. 능력 요소의 링크된 쌍은 발행자 능력 요소 및 가입자 능력 요소를 포함한다. 협업 프레임워크는 토픽의 형태로 링크된 쌍 사이에 링크를 형성할 수 있으며, 발행 능력 요소는 토픽에 발행되고 가입 능력 요소는 토픽에 가입된다.
최종적으로, 판단 블록(810)에서, 협업 프레임워크는 능력 구성 내의 임의의 나머지 링크 및 매핑에 기초하여 더 많은 링크 요소를 제공하는지의 여부를 판단할 수 있다. 예이면, 이때 프로세스(800)는 블록(802)으로 점프할 수 있다. 대안적으로, 아니오 이면, 이때 협업 프레임워크는 프로세스(800)를 종결하고 블록(620)(도 6에 도시된 바와 같음)으로 점프할 수 있다.
도 9는 본 개시의 구현예에 따른 인간-기계 협업 작용을 구성하는 예시적 방법을 예시하는 흐름도이다. 협업 프레임워크는 블록(610)(도 6에 도시된 바와 같음)에서 협업 작용을 구성하기 위해 입력을 수신한 다음에 프로세스(900)를 수행할 수 있다. 블록(902)에서, 협업 프레임워크는 예를 들어 작용 매니저 및/또는 UI 매니저에게 구성자를 제공하라고 명령함으로써 구성자를 제공할 수 있다.
블록(904)에서, 협업 프레임워크는 구성자에게 협업 작용을 위해 능력 구성을 제공하라고 명령할 수 있다. 협업 작용이 새롭거나 능력 구성을 포함하지 않으면, 이때 구성자는 능력 구성을 생성할 수 있다. 대안적으로, 협업 작용이 능력 구성을 포함하면, 이때 구성자는 능력 구성을 로딩할 수 있다. 다음에, 블록(906)에서, 구성자는 이용가능 로봇 능력, 사용자 상호작용 능력, 정보 커널, 구성 연산자 등을 포함하는 작용 구성요소의 리스트를 제공할 수 있다. 구성자는 협업 프레임워크와 연관되는 프리픽스를 갖는 임의의 구성 파일 및/또는 론치 파일에 대해 로컬 파일 시스템을 파싱함으로써 이용가능 작용 구성요소의 리스트를 구축할 수 있다.
블록(908)에서, 구성자는 작용 구성요소를 능력 구성에서, 예를 들어 하나 이상의 UI 요소 또는 커맨드 쉘을 통해, 프로그램적으로 등으로 추가, 수정, 또는 제거하기 위해 사용자로부터 입력을 수신할 수 있다. 그 다음, 판단 블록(920)에서, 구성자는 하나 이상의 작용 구성요소를 추가하거나 수정/제거하는지를 판단할 수 있다.
판단 블록(920)에서 구성자는 사용자가 하나 이상의 작용 구성요소를 능력 구성에 추가하기를 원하는 것을 결정하면, 이때 프로세스(900)는 블록(922)으로 진행될 수 있으며, 그것에서 구성자는 능력을 선택할 수 있다. 구성자는 능력, 커맨드 라인 등의 리스트로부터 사용자의 선택에 응답하여 능력을 선택할 수 있다. 다음에, 블록(924)에서, 구성자는 선택된 능력이 로봇 능력인지의 여부를 판단할 수 있다. 예이면, 이때 구성자는 사용자에게 로봇 능력을 인스턴스화하거나 특수화하는 정보 커널을 선택하도록 재촉할 수 있다. 그 다음, 블록(926)에서, 구성자는 선택된 능력과 연관되는 구성 연산자 및/또는 선택된 능력을 구성하는 피연산자(예를 들어, 다른 능력)를 선택할 수 있다. 구성자는 능력 구성에 선택된 능력 및 임의로 선택된 연산자 및/또는 피연산자를 추가할 수 있다. 블록(926) 다음에, 프로세스(900)는 판단 블록(940)으로 진행될 수 있다.
대안적으로, 판단 블록(920)에서 구성자는 사용자가 능력 구성으로부터 하나 이상의 작용 구성요소를 수정하거나 제거하기를 원한다고 결정하면, 이때 프로세스(900)는 블록(932)으로 진행될 수 있으며, 그것에서 구성자는 능력 구성에서 적어도 하나의 작용 구성요소를 선택하기 위해 능력 구성을 사용자에게 제공하고 사용자 입력을 수신할 수 있다. 그 다음, 블록(934)에서, 구성자는 선택된 작용 구성요소를 수정하거나 능력 구성으로부터 선택된 작용 구성요소를 제거할 수 있다. 블록(934) 다음에, 프로세스(900)는 판단 블록(940)으로 진행될 수 있다.
판단 블록(940)에서, 구성자는 능력 구성을 계속해서 구성하는지의 여부를 판단할 수 있다. 구성자는 사용자 입력에 기초하여 그러한 결정을 이룰 수 있다. 구성자는 또한 능력 구성 내의 로봇 능력의 모든 사용자 상호작용 요건이 호환성 기능에 따라, 능력 구성 내의 사용자 상호작용 능력에 의해 만족되는지의 여부를 판단할 수 있다. 구성자가 계속하는 것을 결정하면, 이때 프로세스(900)는 블록(906)으로 점프할 수 있다. 대안적으로, 구성자가 계속하지 않는 것을 결정하면, 이때 프로세스(900)는 블록(942)으로 진행될 수 있다.
블록(942)에서, 구성자는 능력 구성 내의 능력 사이에 하나 이상의 링크 및 매핑을 제공할 수 있다. 구성자는 능력 구성을 파싱하고 능력 구성 내의 하나 이상의 구성 연산자, 로봇 능력의 추상적 인터페이스 요건, 사용자 입력 등에 기초하여 링크 및 매핑을 제공하거나 유도할 수 있다. 최종적으로, 블록(944)에서, 구성자는 협업 작용과 연관되는 작용 매니페스트에 능력 구성을 저장할 수 있다. 작용 매니페스트는 그것의 일 예가 도 4에 도시되며, 협업 작용을 위한 하나 이상의 로봇 능력, 사용자 상호작용 능력, 및 링크/매핑을 태그로 캡슐화할 수 있으며, 그 아래에 협업 작용을 위해 요구되는 능력 및 링크/매핑이 열거된다. 최종적으로, 블록(944) 다음에, 협업 프레임워크는 프로세스(900)를 종결하고 블록(610)(도 6에 도시된 바와 같음)으로 점프할 수 있다.
예시적 프로세스
협업 프레임워크는 사용자와 샌딩 작업을 협업적으로 수행하기 위해 협업 작용을 생성하거나 로딩할 수 있다. 협업 작용을 생성하거나 로딩하고 협업 작용에 지정되는 적어도 하나의 일반 로봇 능력을 로딩한 후에, 협업 프레임워크는 샌더가 로봇에 부착되는 것을 식별하고 샌더와 연관되는 파라미터를 캡슐화하는 적어도 하나의 정보 커널로 일반 로봇 능력을 인스턴스화할 수 있다. 그 다음, 협업 프레임워크는 인스턴스화된 로봇 능력의 UI 요건에 기초하여 도구 작용 상호작용 능력을 로딩하고, 이미 로딩되지 않았다면, 사용자가 샌더와 연관되는 도구 작용 제약을 선택하고 및/또는 적용하게 하는 도구 작용 UI 요소를 제공할 수 있다. 예를 들어, 도구 작용 상호작용 능력은 협업 작용에 의해 요구되는 능력이 아닐 수 있다. 그 다음, 협업 프레임워크는 사용자가 도구 작용 제약에 지정되는 하나 이상의 작용 제약을 선택하고 집행한 다음, 집행된 작용 제약에 기초하여 로봇의 모션을 제약하는 것을 허용하는 도구 작용 UI 요소(510)(도 5에 도시된 바와 같음)를 제공하기 위해 도구 작용 상호작용 능력을 실행할 수 있다. 예를 들어, 협업 프레임워크는 부착된 샌더의 모션을 그것의 샌딩 패드의 평면 내에만 제약하기 위해 작용 제약을 집행하거나 적용할 수 있다.
협업 프레임워크는 필요하다면, 사용자가 지각 템플릿을 선택하고 및/또는 적용하게 하는 워크피스 상호작용 능력을 유사하게 식별하고 로딩한 다음, 하나 이상의 워크피스 UI 요소(520)를 제공하기 위해 워크피스 상호작용 능력을 실행할 수 있으며, 이 UI 요소는 워크피스의 검출된 평면의 3-D 렌더링 및 사용자가 워크피스 상에서 하나 이상의 타겟 위치를 선택하는 입력 포인트 클라우드를 포함할 수 있다. 워크피스 UI 요소(520)는 사용자가 원격조정을 위해 "스냅 대 선택 표면" 지각 템플릿을 토글링하는 것을 더 허용할 수 있으며, 원격조정은 부착된 샌더의 배향을 선택된 평면 또는 표면의 수직에 제약할 수 있다. 협업 프레임워크는 사용자가 도구 작용 및 지각 템플릿을 선택하게 하는 워크피스 UI 요소(520)를 더 큰 도구 제약 원격조정 작용으로 통합할 수 있으며, 협업 프레임워크는 사용자가 로봇을 어드미턴스 가이드하는 동안 이 원격조정 작용을 집행할 수 있다.
협업 프레임워크는 샌딩 작업을 수행하기 위해 협업 작용에 의해 요구되는 TMP와 연관되는 하나 이상의 사용자 증명 모션을 기록하거나 습득하는 TMP 기록 요소(530)를 제공할 수 있다. 협업 프레임워크는 또한 선택된 포인트에서 저장된 TMP를 인스턴스화하기 위해 워크피스의 평면 또는 표면상에서 포인트를 선택하는 TMP 구현예 UI 요소(도시되지 않음)를 생성할 수 있다. 평면 지각 템플릿을 지정하는 3-D 뷰에서 원하는 워크피스 평면의 사용자 선택을 수신한 후에, 협업 프레임워크는 평면 영역의 직교 하향 뷰를 나타내기 위해 현재 2-D 컬러 이미지를 워핑(warping)할 수 있다. 그 다음, 사용자는 이미지에서 포인트의 세트를 선택할 수 있고 로봇은 UI 요소(540)를 통해 지정되는 횟수 동안 포인트 각각에서 TMP에 캡슐화되는 모션을 자체적으로 실행하기 위해 협업 작용을 인게이징할 수 있다. 이것은 TMP 구현예로 불려지는 더 큰 작용에 사용될 수 있다.
도 10은 본 개시의 구현예에 따른 컴퓨터 시스템(1000)을 예시한다. 일반적으로, 인간-기계 협업 시스템(예를 들어, 협업 프레임워크(320) 및 분산 협업 프레임워크(350))의 구현예는 다양한 컴퓨터 시스템, 예컨대 하나 이상의 개인용 컴퓨터, 서버, 워크스테이션, 내장 시스템, 다기능 디바이스, 또는 그것의 조합에서 구현될 수 있다. 협업 시스템 또는 그 안의 모듈의 특정 구현예는 컴퓨터 프로그램으로 구체화될 수 있다. 컴퓨터 프로그램은 활성 및 비활성 둘 다의 다양한 형태로 존재할 수 있다. 예를 들어, 컴퓨터 프로그램은 소스 코드, 목적 코드, 실행가능 코드 또는 다른 포맷에서 프로그램 명령어로 구성되는 소프트웨어 프로그램(들); 펌웨어 프로그램(들); 또는 하드웨어 기술 언어("HDL") 파일로 존재할 수 있다. 상기 중 임의의 것은 컴퓨터 판독가능 매체상에 구체화될 수 있으며, 이 매체는 저장 디바이스 및 신호를 압축 또는 비압축 형태로 포함한다. 그러나 설명의 목적을 위해, 시스템(1000)은 당업자에게 널리 공지된 일반 목적 컴퓨터로 도시된다. 시스템(1000)에 포함될 수 있는 구성요소 및 주변장치의 예는 이제 설명될 것이다.
도시된 바와 같이, 시스템(1000)은 적어도 하나의 프로세서(1002), 키보드(1017), 포인팅 디바이스(1018)(예를 들어, 마우스, 3-D 포인팅 디바이스, 터치패드 등), 디스플레이(1016), 메인 메모리(1010), 입력/출력 컨트롤러(1015), 및 저장 디바이스(1014)를 포함할 수 있다. 저장 디바이스(1014)는 예를 들어 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 운반하거나 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, 플래시 메모리, EEPROM, CD-ROM 또는 다른 광 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스, 또는 임의의 다른 매체를 포함할 수 있다. 프린터 드라이버의 컴퓨터 프로그램 구현예의 카피는 예를 들어 저장 디바이스(1014) 상에 저장될 수 있다. 시스템(1000)에는 또한 부가 입력/출력 디바이스, 예컨대 프린터(도시되지 않음)가 제공될 수 있다. 시스템(1000)의 다양한 구성요소는 시스템 버스(1012) 또는 유사한 아키텍처를 통해 통신한다. 게다가, 시스템(1000)은 동작 동안 메모리(1010)에 상주하는 운영 체제("OS")(1020)를 포함할 수 있다. 당업자는 시스템(1000)이 다수의 프로세서(1002)를 포함할 수 있는 것을 인식할 것이다. 예를 들어, 시스템(1000)은 동일한 프로세서의 다수의 카피를 포함할 수 있다. 대안적으로, 시스템(1000)은 다양한 타입의 프로세서의 이종 혼합을 포함할 수 있다. 예를 들어, 시스템(1000)은 하나의 프로세서를 1차 프로세서로 사용하고 다른 프로세서를 코-프로세서로 사용할 수 있다. 다른 예로써, 시스템(1000)은 하나 이상의 멀티 코어 프로세서 및 하나 이상의 단일 코어 프로세서를 포함할 수 있다. 따라서, 시스템(1000)은 프로세서(예를 들어, 프로세서(1002))의 세트에 걸쳐 임의의 수의 실행 코어를 포함할 수 있다. 키보드(1017), 포인팅 디바이스(1018), 및 디스플레이(1016)에 관해, 이러한 구성요소는 당업자에게 널리 공지된 구성요소를 사용하여 구현될 수 있다. 당업자는 또한 다른 구성요소 및 주변장치가 시스템(1000)에 포함될 수 있는 것을 인식할 것이다.
메인 메모리(1010)는 시스템(1000)의 1차 저장 영역의 역할을 하고, 바코드 프린팅 시스템 내의 프린터 드라이버와 같은 애플리케이션에 의해 활성적으로 사용되는 데이터를 유지한다. 당업자는 애플리케이션이 시스템(1000)에게 런타임 동안 특정 작업의 세트를 수행하라고 명령하는 컴퓨터 명령어의 세트를 각각 포함하는 소프트웨어 프로그램인 것, 및 용어 "애플리케이션"이 본 교시의 구현예에 따라 애플리케이션 소프트웨어, 애플리케이션 프로그램, 디바이스 드라이버, 및/또는 프로그램과 상호교환 가능하게 사용될 수 있는 것을 인식할 것이다. 메모리(1010)는 당업자에게 널리 공지된, 아래에 설명되는 랜덤 액세스 메모리 또는 다른 형태의 메모리로 구현될 수 있다.
OS(1020)는 시스템(1000) 및 시스템 동작에서 하드웨어의 직접 제어 및 관리를 담당하는 루틴 및 명령어의 통합된 집합이다. 부가적으로, OS(1020)는 애플리케이션 소프트웨어 및 디바이스 드라이버를 실행하는 기초를 제공한다. 예를 들어, OS(1020)는 서비스, 예컨대 자원 할당, 스케줄링, 입력/출력 제어, 및 메모리 관리를 수행할 수 있다. OS(1020)는 대부분 소프트웨어일 수 있지만, 또한 부분적인 또는 전적인 하드웨어 구현예 및 펌웨어를 포함할 수 있다. 본 교시의 원리에 따른 운영 체제의 널리 공지된 예는 로봇 운영 체제, 리눅스, 유닉스, 오라클 솔라리스, 마이크로소프트 윈도우즈, 맥 OS, OPEN VMS, 및 IBM AIX를 포함한다.
상술한 설명은 예시적이고, 구성 및 구현예의 변형들이 당업자에게 가능할 수 있다. 예를 들어, 본원에 개시되는 구현예와 관련하여 설명되는 다양한 예시적 로직, 논리 블록, 모듈, 및 회로는 본원에 설명되는 기능을 수행하도록 설계되는 일반 목적 프로세서(예를 들어, 프로세서(1002)), 주문형 집적 회로, 필드 프로그램가능 게이트 어레이 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소, 또는 그것의 임의의 조합으로 구현되거나 수행될 수 있다. 일반 목적 프로세서는 마이크로프로세서일 수 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 컨트롤러, 마이크로컨트롤러, 또는 상태 기계일 수 있다. 프로세서는 또한 컴퓨팅 디바이스, 예를 들어 마이크로프로세서, 복수의 마이크로프로세서, 또는 임의의 다른 그러한 구성의 조합으로 구현될 수 있다.
하나 이상의 예시적 구현예에서, 설명되는 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 그것의 임의의 조합으로 구현될 수 있다. 소프트웨어 구현예에 대해, 본원에 설명되는 기술은 본원에 설명되는 기능을 수행하는 모듈(예를 들어, 절차, 기능, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스 등)로 구현될 수 있다. 모듈은 정보, 데이터, 인수, 파라미터, 또는 메모리 콘텐츠를 전달하고 및/또는 수신함으로써 다른 모듈 또는 하드웨어 회로에 결합될 수 있다. 정보, 인수, 파라미터, 데이터 등은 메모리 공유, 메시지 전달, 토큰 통과, 네트워크 송신 등을 포함하는 임의의 적절한 수단을 사용하여 전달, 전송, 또는 송신될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되고 프로세서에 의해 실행될 수 있다. 메모리 유닛은 프로세서 내에서 또는 프로세서 외부에서 구현될 수 있으며, 이러한 경우에 그것은 본 기술분야에 공지된 바와 같은 다양한 수단을 통해 프로세서에 통신 결합될 수 있다.
소프트웨어로 구현되면, 기능은 하나 이상의 명령어 또는 코드로서 컴퓨터 판독가능 매체상에 저장되거나 컴퓨터 판독가능 매체를 통해 송신될 수 있다. 컴퓨터 판독가능 매체는 한 곳으로부터 다른 곳으로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 유형의 비일시적 컴퓨터 저장 매체 및 통신 매체 둘 다를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한, 유형의 비일시적 매체일 수 있다. 제한이 아닌 예로서, 그러한 유형의 비일시적 컴퓨터 판독가능 매체는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 운반하거나 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, 플래시 메모리, EEPROM, CD-ROM 또는 다른 광 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스, 또는 임의의 다른 매체를 포함할 수 있다. 디스크(Disk) 및 디스크(disc)는 본원에 사용되는 바와 같이, CD, 레이저 디스크(disc), 광 디스크(disc), DVD, 플로피 디스크(disk) 및 블루 레이 디스크(disc)를 포함하며 디스크(disk)는 통상 데이터를 자기적으로 재생할 수 있는 반면에, 디스크(disc)는 데이터를 광학적으로 레이저에 의해 재생한다. 또한, 임의의 연결은 적절하게는 컴퓨터 판독가능 매체로 불린다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스트 케이블, 디지털 가입자 선(DSL), 또는 무선 기술 예컨대 적외선, 라디오, 및 마이크로웨이브를 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 이때 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술 예컨대 적외선, 라디오, 및 마이크로웨이브는 매체의 정의에 포함된다. 상기의 조합은 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
단수이거나 통합된 것으로 설명되는 자원은 일 구현예에서 복수이거나 분산될 수 있고, 다수이거나 분산된 것으로 설명되는 자원은 구현예에서 조합될 수 있다. 따라서, 본 교시의 범위는 이하의 청구항에 의해서만 제한되도록 의도된다. 본 발명이 특정 구현예에 대해 설명되었지만, 당업자는 다수의 수정이 가능한 것을 인식할 것이다. 예를 들어, 프록시 서버는 본원에 언급되지 않은 부가 기능성을 가질 수 있다. 게다가, 본 개시의 구현예는 전용 구성요소 및/또는 프로그램가능 프로세서 및/또는 다른 프로그램가능 디바이스의 임의의 조합을 사용하여 실현될 수 있다. 상기 설명된 구현예는 특정 하드웨어 및 소프트웨어 구성요소를 참조할 수 있지만, 당업자는 하드웨어 및/또는 소프트웨어 구성요소의 상이한 조합이 또한 사용될 수 있는 것 및 하드웨어로 구현되는 바와 같이 설명되는 특정 동작이 또한 소프트웨어로 구현되거나 그 역도 같을 수 있는 것을 이해할 것이다.

Claims (20)

  1. 사용자-로봇 협업을 가능하게 하는 컴퓨터 구현 방법(600, 700, 800)으로서,
    로봇 능력(표 1) 및 하나 이상의 사용자 상호작용 능력의 구성(도 2, 400)을 제공하는 단계(614)로서, 상기 로봇 능력은 하나 이상의 파라미터의 세트에 기초하여 작업 액션의 타입을 수행하는 로봇(340, 380)의 적어도 하나의 기능성을 모델링하는 단계;
    정보 커널로 상기 로봇 능력을 특수화하는 단계(616, 714, 716)로서, 상기 정보 커널은 상기 하나 이상의 파라미터의 세트를 캡슐화하는 단계;
    상기 로봇 능력 및 상기 정보 커널에 기초하여 로봇 능력 요소를 제공하는 단계(712, 714, 716)로서, 상기 로봇 능력 요소는 로봇 능력의 인스턴스인 단계;
    상기 하나 이상의 사용자 상호작용 능력에 기초하여 하나 이상의 상호작용 능력 요소를 제공하는 단계(718)로서, 상기 하나 이상의 상호작용 능력 요소는 상기 하나 이상의 사용자 상호작용 능력의 인스턴스인 단계;
    상기 로봇 능력 요소를 상기 하나 이상의 상호작용 능력 요소에 연결하는 단계(618, 800);
    상기 하나 이상의 파라미터의 세트와 연관되는 사용자 입력(510, 520, 530, 540)을 취득하기 위해 상기 하나 이상의 상호작용 능력 요소에 기초하여 하나 이상의 UI(310, 370, 500)를 제공하는 단계(620); 및
    상기 작업 액션의 타입의 작업 액션을 수행하기 위해 상기 사용자 입력 및 상기 정보 커널에 기초하여, 상기 로봇 능력 요소를 통해 상기 로봇의 적어도 하나의 기능성을 제어하는 단계(620)를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 작업 액션의 타입은 모션 제약(표 1(a))을 포함하며, 상기 방법은,
    상기 작업 액션의 타입에 기초하여, 상기 작업 액션을 수행하는 도구의 타입을 제공하는 단계(716);
    상기 정보 커널에 도구 작용 제약(도 1a, 표 2)을 캡슐화하는 단계(716, 924, 934)로서, 상기 도구 작용 제약은 상기 도구의 타입과 연관되는 모션 제약(표 1(a))을 제공하는 단계; 및
    상기 작업 액션을 수행하기 위해 상기 하나 이상의 UI를 통해 사용자 입력(510, 520, 530, 540, 620)을 수신하는 단계를 더 포함하며,
    상기 로봇의 적어도 하나의 기능성을 제어하는 단계는 상기 작업 액션을 수행할 시에 상기 로봇의 하나 이상의 모션을 제약하기 위해 상기 모션 제약을 집행하는 단계(620)를 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서, 사용자 입력을 수신하는 단계는,
    상기 하나 이상의 UI 중 어드미턴스 제어 UI(510, 520)를 통해 상기 로봇의 사용자 조작을 수신하는 단계(620, 도 1b)를 더 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 로봇 능력 요소를 연결하는 단계는,
    상기 로봇 능력 요소의 인터페이스(도 2)에 기초하여 상기 로봇 능력 요소의 적어도 하나의 UI 요건을 유도하는 단계(618, 942)를 더 포함하며, 상기 인터페이스는 입력 인터페이스 또는 출력 인터페이스 중 적어도 하나를 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 작업 액션의 타입에 기초하여, 상기 작업 액션을 수행하는 도구의 타입을 제공하는 단계(616);
    상기 정보 커널에 도구 이동 프리미티브(TMP)를 캡슐화하는 단계(616, 924, 934)를 더 포함하며, 상기 TMP는 상기 도구의 타입과 연관되는 도구 모션을 제공하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    사용자 증명 모션을 수신하는 도구의 타입의 도구 프록시를 포함하는 인스트럭터 인터페이스(도 1b 및 도 5)를 제공하는 단계(620);
    상기 도구 프록시의 시작 위치를 결정하는 단계;
    상기 사용자 증명 모션으로부터 상기 도구 프록시의 궤적 데이터(530)를 취득하는 단계;
    상기 TMP를 형성하기 위해 상기 로봇의 시작 위치에 기초하여 상기 궤적 데이터를 일반화하는 단계; 및
    상기 TMP를 저장하는 단계를 더 포함하는 컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 궤적 데이터를 취득하는 단계는,
    상기 도구의 타입과 연관되는 도구 작용 제약(도 1a, 510)을 제공하는 단계(716)로서, 상기 도구 작용 제약은 상기 도구의 타입과 연관되는 모션 제약(표 1(a))을 제공하는 단계; 및
    상기 도구 프록시의 하나 이상의 모션을 제약하기 위해 상기 모션 제약을 집행하는 단계(620)를 더 포함하는 컴퓨터 구현 방법.
  8. 제5항에 있어서,
    상기 로봇의 사용자 조작을 통해 사용자 증명 모션을 수신하는 어드미턴스 제어 인스트럭터 인터페이스(도 1a, 530)를 제공하는 단계(716);
    상기 로봇의 시작 위치를 결정하는 단계;
    상기 사용자 증명 모션으로부터 상기 로봇의 궤적 데이터를 취득하는 단계(530, 620);
    상기 TMP를 형성하기 위해 상기 로봇의 시작 위치에 기초하여 상기 궤적 데이터를 일반화하는 단계; 및
    상기 TMP를 저장하는 단계를 더 포함하는 컴퓨터 구현 방법.
  9. 제8항에 있어서, 상기 궤적 데이터를 취득하는 단계는,
    상기 도구의 타입과 연관되는 도구 작용 제약(도 1a, 510)을 제공하는 단계로서, 상기 도구 작용 제약은 상기 도구의 타입과 연관되는 모션 제약을 제공하는 단계; 및
    상기 로봇의 하나 이상의 모션을 제약하기 위해 상기 모션 제약을 집행하는 단계(620)를 더 포함하는 컴퓨터 구현 방법.
  10. 제5항에 있어서, 상기 작업 액션의 타입은 모션 즉시 재생을 포함하고, 상기 로봇의 적어도 하나의 기능성을 제어하는 단계는,
    상기 도구 모션에 기초하여 상기 작업 액션을 수행하기 위해 상기 로봇을 제어하는 단계(540, 620)를 더 포함하는 컴퓨터 구현 방법.
  11. 제5항에 있어서, 상기 작업 액션의 타입은 궤적 발생을 포함하며, 상기 방법은,
    상기 정보 커널에 지각 템플릿을 캡슐화하는 단계(716, 924, 934)로서, 상기 지각 템플릿은 상기 도구 모션을 제약하는 타겟 워크피스(520)의 적어도 하나의 특성을 제공하는 단계;
    상기 타겟 워크피스의 적어도 하나의 특성과 연관되는 지각 데이터(520, 620)를 획득하는 단계; 및
    상기 지각 데이터에 기초하여 상기 도구 모션을 그라운딩함으로써 모션 궤적을 발생시키는 단계를 더 포함하며,
    상기 로봇의 적어도 하나의 기능성을 제어하는 단계는 상기 모션 궤적에 기초하여 상기 작업 액션을 수행하기 위해 상기 로봇을 제어하는 단계(620)를 포함하는 컴퓨터 구현 방법.
  12. 제1항에 있어서, 상기 로봇 능력을 특수화하는 단계는,
    선택된 도구 타입에 기초하여 상기 정보 커널을 선택하는 단계(714, 924, 934)를 더 포함하는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 로봇 능력 및 상기 하나 이상의 사용자 상호작용 능력의 구성을 포함하는 협업 작용을 제공하는 단계(904);
    상기 협업 작용의 로봇 능력 구성 요건에 기초하여 복수의 로봇 능력을 선택하는 단계(906);
    상기 복수의 로봇 능력을 로봇 능력의 구성으로 구성하는 단계(908 내지 942); 및
    상기 로봇 능력의 구성을 상기 협업 작용과 연관시키는 단계(944)를 더 포함하는 컴퓨터 구현 방법.
  14. 제13항에 있어서, 상기 복수의 로봇 능력을 구성하는 단계는,
    병렬 구성 연산자 또는 직렬 구성 연산자 중 적어도 하나를 사용하여 상기 복수의 로봇 능력 중 2개의 로봇 능력을 구성하는 단계(926, 934)를 더 포함하는 컴퓨터 구현 방법.
  15. 제13항에 있어서,
    상기 로봇 능력의 구성상에 호환성 기능을 수행함으로써 상기 로봇 능력의 구성의 복수의 UI 요건을 유도하는 단계; 및
    상기 복수의 UI 요건을 충족시키는 복수의 상호작용 능력을 결정하는 단계; 및
    상기 복수의 UI 요건에 기초하여 상기 로봇 능력 및 상기 복수의 상호작용 능력의 구성 사이에 매핑을 발생시키는 단계(942)를 더 포함하는 컴퓨터 구현 방법.
  16. 제13항에 있어서,
    복수의 로봇 능력 요소를 제공하는 단계(906)로서, 상기 복수의 로봇 능력 요소는 상기 복수의 로봇 능력의 인스턴스인 단계; 및
    상기 협업 작용의 링크 요건에 기초하여 상기 복수의 로봇 능력 요소의 로봇 능력 요소의 쌍 사이에 링크를 형성하는 단계(942)로서, 상기 로봇 능력 요소의 쌍은 발행자 로봇 능력 요소 및 가입자 로봇 능력 요소를 포함하는 단계를 더 포함하는 컴퓨터 구현 방법.
  17. 제16항에 있어서,
    개별 프로세스에서 상기 복수의 로봇 능력 요소, 상기 하나 이상의 상호작용 능력 요소, 및 상기 링크 각각을 제공하는 단계를 더 포함하는 컴퓨터 구현 방법.
  18. 제16항에 있어서,
    상기 협업 작용과 연관되는 작용 매니페스트(400)에 기초하여 상기 로봇 능력 구성 요건(420a, 425a) 및 상기 링크 요건(420c, 425c)을 제공하는 단계를 더 포함하는 컴퓨터 구현 방법.
  19. 사용자-로봇 협업을 가능하게 하는 시스템으로서:
    명령어를 저장하는 비일시적 메모리(1014); 및
    상기 시스템이 방법(600, 700, 800)을 수행하게 하기 위해 상기 명령어를 실행하는 프로세서(1002)를 포함하며, 상기 방법은,
    로봇 능력(표 1) 및 하나 이상의 사용자 상호작용 능력의 구성(도 2, 400)을 제공하는 단계(614)로서, 상기 로봇 능력은 하나 이상의 파라미터의 세트에 기초하여 작업 액션의 타입을 수행하는 로봇(340, 380)의 적어도 하나의 기능성을 모델링하는 단계;
    정보 커널로 상기 로봇 능력을 특수화하는 단계(616, 714, 716)로서, 상기 정보 커널은 상기 하나 이상의 파라미터의 세트를 캡슐화하는 단계;
    상기 로봇 능력 및 상기 정보 커널에 기초하여 로봇 능력 요소를 제공하는 단계(712, 714, 716)로서, 상기 로봇 능력 요소는 로봇 능력의 인스턴스인 단계;
    상기 하나 이상의 사용자 상호작용 능력에 기초하여 하나 이상의 상호작용 능력 요소를 제공하는 단계(718)로서, 상기 하나 이상의 상호작용 능력 요소는 상기 하나 이상의 사용자 상호작용 능력의 인스턴스인 단계;
    상기 로봇 능력 요소를 상기 하나 이상의 상호작용 능력 요소에 연결하는 단계(618, 800);
    상기 하나 이상의 파라미터의 세트와 연관되는 사용자 입력(510, 520, 530, 540)을 취득하기 위해 상기 하나 이상의 상호작용 능력 요소에 기초하여 하나 이상의 UI(310, 370, 500)를 제공하는 단계(620); 및
    상기 작업 액션의 타입의 작업 액션을 수행하기 위해 상기 사용자 입력 및 상기 정보 커널에 기초하여, 상기 로봇 능력 요소를 통해 상기 로봇의 적어도 하나의 기능성을 제어하는 단계(620)를 포함하는 시스템.
  20. 프로세서(1002) 상에 실행될 때, 방법을 수행하는 명령어를 포함하는 비일시적 컴퓨터 판독가능 저장 매체(1014)로서, 상기 방법은,
    로봇 능력(표 1) 및 하나 이상의 사용자 상호작용 능력의 구성(도 2, 400)을 제공하는 단계(614)로서, 상기 로봇 능력은 하나 이상의 파라미터의 세트에 기초하여 작업 액션의 타입을 수행하는 로봇(340, 380)의 적어도 하나의 기능성을 모델링하는 단계;
    정보 커널로 상기 로봇 능력을 특수화하는 단계(616, 714, 716)로서, 상기 정보 커널은 상기 하나 이상의 파라미터의 세트를 캡슐화하는 단계;
    상기 로봇 능력 및 상기 정보 커널에 기초하여 로봇 능력 요소를 제공하는 단계(712, 714, 716)로서, 상기 로봇 능력 요소는 로봇 능력의 인스턴스인 단계;
    상기 하나 이상의 사용자 상호작용 능력에 기초하여 하나 이상의 상호작용 능력 요소를 제공하는 단계(718)로서, 상기 하나 이상의 상호작용 능력 요소는 상기 하나 이상의 사용자 상호작용 능력의 인스턴스인 단계;
    상기 로봇 능력 요소를 상기 하나 이상의 상호작용 능력 요소에 연결하는 단계(618, 800);
    상기 하나 이상의 파라미터의 세트와 연관되는 사용자 입력(510, 520, 530, 540)을 취득하기 위해 상기 하나 이상의 상호작용 능력 요소에 기초하여 하나 이상의 UI(310, 370, 500)를 제공하는 단계(620); 및
    상기 작업 액션의 타입의 작업 액션을 수행하기 위해 상기 사용자 입력 및 상기 정보 커널에 기초하여, 상기 로봇 능력 요소를 통해 상기 로봇의 적어도 하나의 기능성을 제어하는 단계(620)를 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
KR1020177008653A 2014-09-02 2015-08-28 유연한 인간-기계 협업을 위한 시스템 및 방법 KR102392114B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227013923A KR102564933B1 (ko) 2014-09-02 2015-08-28 유연한 인간-기계 협업을 위한 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/475,184 US9272418B1 (en) 2014-09-02 2014-09-02 System and method for flexible human-machine collaboration
US14/475,184 2014-09-02
PCT/US2015/047394 WO2016036593A1 (en) 2014-09-02 2015-08-28 System and method for flexible human-machine collaboration

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227013923A Division KR102564933B1 (ko) 2014-09-02 2015-08-28 유연한 인간-기계 협업을 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20170047364A KR20170047364A (ko) 2017-05-04
KR102392114B1 true KR102392114B1 (ko) 2022-04-28

Family

ID=55359821

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227013923A KR102564933B1 (ko) 2014-09-02 2015-08-28 유연한 인간-기계 협업을 위한 시스템 및 방법
KR1020177008653A KR102392114B1 (ko) 2014-09-02 2015-08-28 유연한 인간-기계 협업을 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227013923A KR102564933B1 (ko) 2014-09-02 2015-08-28 유연한 인간-기계 협업을 위한 시스템 및 방법

Country Status (10)

Country Link
US (4) US9272418B1 (ko)
EP (1) EP3194123B1 (ko)
JP (3) JP6685999B2 (ko)
KR (2) KR102564933B1 (ko)
CN (2) CN106794581B (ko)
CA (2) CA3230196A1 (ko)
DK (1) DK3194123T3 (ko)
ES (1) ES2944479T3 (ko)
MX (1) MX2017002723A (ko)
WO (1) WO2016036593A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9272418B1 (en) 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
US9643314B2 (en) * 2015-03-04 2017-05-09 The Johns Hopkins University Robot control, training and collaboration in an immersive virtual reality environment
US9707680B1 (en) * 2015-05-28 2017-07-18 X Development Llc Suggesting, selecting, and applying task-level movement parameters to implementation of robot motion primitives
CA3003449C (en) 2015-11-02 2023-03-14 The Johns Hopkins University Generation of robotic user interface responsive to connection of peripherals to robot
WO2017197018A2 (en) * 2016-05-10 2017-11-16 Trustees Of Tufts College Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems
US10571902B2 (en) * 2016-10-12 2020-02-25 Sisu Devices Llc Robotic programming and motion control
CN107168182A (zh) * 2017-06-28 2017-09-15 范崇山 一种室内机器人vr应用的系统及方法
CN109202882B (zh) * 2017-06-29 2021-04-06 深圳模德宝科技有限公司 一种机器人的控制方法及其装置
CN107317822B (zh) * 2017-07-25 2020-03-31 南京物联传感技术有限公司 一种带有虚实交互的智能家居体验系统及其使用方法
US11074528B2 (en) * 2017-08-31 2021-07-27 Accenture Global Solutions Limited Robotic operations control system for a blended workforce
CN107544248B (zh) * 2017-09-13 2019-12-13 上海思岚科技有限公司 一种移动机器人中的任务优化方法及设备
US10890898B2 (en) * 2017-11-03 2021-01-12 Drishti Technologies, Inc. Traceability systems and methods
WO2019095250A1 (zh) 2017-11-17 2019-05-23 腾讯科技(深圳)有限公司 Vr场景下的角色模拟方法和终端设备
CN109968352B (zh) * 2017-12-28 2021-06-04 深圳市优必选科技有限公司 一种机器人控制方法及机器人、具有存储功能的装置
EP3733356A4 (en) * 2017-12-28 2020-12-16 Fuji Corporation INFORMATION PROVIDING DEVICE, INFORMATION PROVIDING PROCEDURE AND PROGRAM
US10913154B2 (en) 2018-01-02 2021-02-09 General Electric Company Systems and method for robotic learning of industrial tasks based on human demonstration
US11281208B2 (en) * 2018-03-02 2022-03-22 Carnegie Mellon University Efficient teleoperation of mobile robots via online adaptation
US11285607B2 (en) * 2018-07-13 2022-03-29 Massachusetts Institute Of Technology Systems and methods for distributed training and management of AI-powered robots using teleoperation via virtual spaces
US10953541B2 (en) * 2018-07-31 2021-03-23 At&T Intellectual Property I, L.P. Providing logistical support for robots
US11440119B2 (en) * 2018-10-12 2022-09-13 Teradyne, Inc. System and method for weld path generation
CN109352661B (zh) * 2018-12-11 2022-01-18 上海辛格林纳新时达电机有限公司 一种机器人关节的控制方法、伺服驱动装置和可存储介质
DE102018133337A1 (de) * 2018-12-21 2020-06-25 Rittal Gmbh & Co. Kg Verfahren zur Verdrahtung von elektrischen Komponenten einer auf einer Montageplatte angeordneten elektrischen Schaltanlage
EP3942146A1 (en) * 2019-03-19 2022-01-26 Sandvik Mining and Construction Oy Mine vehicle boom positioning control
CN110125455B (zh) * 2019-05-27 2020-06-02 清华大学 一种用于机器人钻孔中优化钻头位姿的方法
US11497564B2 (en) * 2019-06-07 2022-11-15 Verb Surgical Inc. Supervised robot-human collaboration in surgical robotics
CN110270998A (zh) * 2019-06-12 2019-09-24 上海宾通智能科技有限公司 机器人调度方法、电子设备和计算机可读存储介质
DE102019216560B4 (de) * 2019-10-28 2022-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zum Trainieren von Manipulationsfertigkeiten eines Robotersystems
CN112847430B (zh) * 2019-11-26 2022-03-29 中国科学院沈阳自动化研究所 一种协作机器人本质安全设计方法
CN110900061A (zh) * 2019-12-13 2020-03-24 遨博(北京)智能科技有限公司 一种焊接工艺块生成方法、装置、焊接机器人及存储介质
CN111267099B (zh) * 2020-02-24 2023-02-28 东南大学 基于虚拟现实的陪护机器控制系统
CN111311106B (zh) * 2020-03-02 2023-02-03 广东工业大学 一种在ros上利用非经典规划器实现任务规划的方法及系统
US11679497B2 (en) * 2020-05-21 2023-06-20 Intrinsic Innovation Llc Distributed robotic demonstration learning
US11534913B2 (en) 2020-05-21 2022-12-27 Intrinsic Innovation Llc Integrating sensor streams for robotic demonstration learning
US11685047B2 (en) 2020-05-21 2023-06-27 Intrinsic Innovation Llc Skill template distribution for robotic demonstration learning
US20210362331A1 (en) * 2020-05-21 2021-11-25 X Development Llc Skill templates for robotic demonstration learning
US11524402B2 (en) * 2020-05-21 2022-12-13 Intrinsic Innovation Llc User feedback for robotic demonstration learning
US11294793B1 (en) * 2020-10-23 2022-04-05 UiPath Inc. Robotic process automation (RPA) debugging systems and methods
CN112356031B (zh) * 2020-11-11 2022-04-01 福州大学 一种基于Kernel采样策略在不确定性环境下的在线规划方法
FR3116747B1 (fr) * 2020-11-30 2023-04-21 Mbda France Système et procédé d’apprentissage de mouvement pour programmer au moins un dispositif robotisé.
CN112936267B (zh) * 2021-01-29 2022-05-27 华中科技大学 一种人机协作智能制造方法及系统
CN113352322B (zh) * 2021-05-19 2022-10-04 浙江工业大学 一种基于最优导纳参数的自适应人机协作控制方法
CN113687817B (zh) * 2021-08-16 2023-10-31 山东新一代信息产业技术研究院有限公司 一种消息格式解析器及解析方法
CN113657059B (zh) * 2021-08-17 2023-05-09 成都视海芯图微电子有限公司 一种适用于点云数据处理器的自动化设计方法及装置
CN113900384A (zh) * 2021-10-13 2022-01-07 达闼科技(北京)有限公司 机器人与智能设备交互的方法、装置及电子设备
CN114219220B (zh) * 2021-11-18 2022-12-09 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 人机工效评估方法、系统、计算机设备和存储介质
DE102021131028A1 (de) 2021-11-26 2023-06-01 Schaeffler Technologies AG & Co. KG Verbesserte Mensch-Roboter-Interaktion durch erweiterte Realität
KR102610426B1 (ko) * 2021-11-30 2023-12-06 서울시립대학교 산학협력단 조직 기반 작업 명세를 이용하는 다중 로봇 작업의 처리 방법 및 장치
KR102604104B1 (ko) 2022-03-02 2023-11-17 광운대학교 산학협력단 인간-로봇 협업 상태 기반 가변 어드미턴스 제어 방법, 이를 수행하는 장치 및 컴퓨터 프로그램
CN114986525A (zh) * 2022-07-13 2022-09-02 佛山纽欣肯智能科技有限公司 一种基于多模态信息的机器人手持示教装置与方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101021836B1 (ko) * 2008-10-09 2011-03-17 한국전자통신연구원 동적 행위 바인딩을 통한 다수 로봇의 협업 구현 시스템 및그 구현 방법
US20130218340A1 (en) * 2010-11-11 2013-08-22 The John Hopkins University Human-machine collaborative robotic systems

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154206A (ja) * 1987-12-10 1989-06-16 Honda Motor Co Ltd ティーチングボックス
US5293461A (en) * 1991-11-20 1994-03-08 The University Of British Columbia System for determining manipulator coordinates
JP3529158B2 (ja) * 1994-05-18 2004-05-24 ファナック株式会社 ロボット動作プログラミング方法及びプログラミング装置
JPH08112790A (ja) * 1994-10-13 1996-05-07 Toshiba Corp 作業ロボット
JPH11191005A (ja) * 1997-12-25 1999-07-13 Tokico Ltd ロボット制御装置
JP2000006068A (ja) 1998-06-25 2000-01-11 Nippon Telegr & Teleph Corp <Ntt> ヒューマン・ロボットコラボレーション制御方法と装置及びプログラムを記録した記録媒体
JP2000010618A (ja) * 1998-06-25 2000-01-14 Nippon Telegr & Teleph Corp <Ntt> ロボット教示装置およびロボット教示装置用アプリケーション製造装置とそのプログラムを記録した記録媒体
US6188348B1 (en) * 1998-08-07 2001-02-13 The Johns Hopkins University Radar ice sounder with parallel doppler processing
US7054798B2 (en) 2001-07-19 2006-05-30 International Business Machines Corporation Punch and die optimization
WO2006062948A2 (en) 2004-12-06 2006-06-15 Honda Motor Co., Ltd. Interface for robot motion control
WO2007096322A2 (en) * 2006-02-23 2007-08-30 Abb Ab A system for controlling the position and orientation of an object in dependence on received forces and torques from a user
US7792602B2 (en) * 2006-08-22 2010-09-07 Precision Automation, Inc. Material processing system and a material processing method including a saw station and an interface with touch screen
CN103433923A (zh) * 2007-01-12 2013-12-11 汉斯乔格·巴尔特斯 用于产生机器人的方法和系统
DE602007013470D1 (de) * 2007-03-30 2011-05-05 Abb Technology Ab Verfahren und vorrichtung zur programmierung eines industrieroboters
JP4997145B2 (ja) * 2008-02-29 2012-08-08 トヨタ自動車株式会社 パワーアシスト装置およびその制御方法
KR20100086262A (ko) * 2009-01-22 2010-07-30 삼성전자주식회사 로봇 및 그 제어방법
CN101549498B (zh) * 2009-04-23 2010-12-29 上海交通大学 智能帮扶式助行机器人的自主跟踪与导航系统
US8260460B2 (en) 2009-09-22 2012-09-04 GM Global Technology Operations LLC Interactive robot control system and method of use
JP5573275B2 (ja) * 2010-03-25 2014-08-20 富士ゼロックス株式会社 特徴点抽出装置及びこれを用いた動作教示装置、動作処理装置
JP2011200997A (ja) * 2010-03-26 2011-10-13 Kanto Auto Works Ltd ロボットのティーチング装置及びティーチング方法
US20120016671A1 (en) * 2010-07-15 2012-01-19 Pawan Jaggi Tool and method for enhanced human machine collaboration for rapid and accurate transcriptions
JP4991023B2 (ja) * 2010-11-12 2012-08-01 パナソニック株式会社 移動経路探索装置および移動経路探索方法
US8818556B2 (en) * 2011-01-13 2014-08-26 Microsoft Corporation Multi-state model for robot and user interaction
US8977388B2 (en) * 2011-04-29 2015-03-10 Sarcos Lc Platform perturbation compensation
JP2013054629A (ja) * 2011-09-06 2013-03-21 Honda Motor Co Ltd 制御装置及び方法
US9085080B2 (en) * 2012-12-06 2015-07-21 International Business Machines Corp. Human augmentation of robotic work
US9272418B1 (en) * 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
JP6441061B2 (ja) * 2014-12-16 2018-12-19 株式会社ダイヘン 機械制御システム及び機械制御システムのユーザインタフェース設定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101021836B1 (ko) * 2008-10-09 2011-03-17 한국전자통신연구원 동적 행위 바인딩을 통한 다수 로봇의 협업 구현 시스템 및그 구현 방법
US20130218340A1 (en) * 2010-11-11 2013-08-22 The John Hopkins University Human-machine collaborative robotic systems

Also Published As

Publication number Publication date
JP7192026B2 (ja) 2022-12-19
DK3194123T3 (da) 2023-05-30
US20160059415A1 (en) 2016-03-03
KR20220063282A (ko) 2022-05-17
EP3194123B1 (en) 2023-03-29
US20160129590A1 (en) 2016-05-12
JP6875578B2 (ja) 2021-05-26
MX2017002723A (es) 2017-05-09
KR20170047364A (ko) 2017-05-04
US10022870B2 (en) 2018-07-17
EP3194123A1 (en) 2017-07-26
CN112428270A (zh) 2021-03-02
US20180290303A1 (en) 2018-10-11
CA2958885A1 (en) 2016-03-10
WO2016036593A1 (en) 2016-03-10
US20170144304A1 (en) 2017-05-25
CA3230196A1 (en) 2016-03-10
JP2020192672A (ja) 2020-12-03
ES2944479T3 (es) 2023-06-21
CN106794581A (zh) 2017-05-31
EP3194123A4 (en) 2018-05-09
CN106794581B (zh) 2020-12-01
JP6685999B2 (ja) 2020-04-22
KR102564933B1 (ko) 2023-08-08
US9272418B1 (en) 2016-03-01
US10807237B2 (en) 2020-10-20
US9586315B2 (en) 2017-03-07
CA2958885C (en) 2024-04-02
JP2021107110A (ja) 2021-07-29
JP2017525574A (ja) 2017-09-07

Similar Documents

Publication Publication Date Title
KR102392114B1 (ko) 유연한 인간-기계 협업을 위한 시스템 및 방법
US11951631B2 (en) Object marking to support tasks by autonomous machines
US10471605B2 (en) Programmable adapters for detachably connecting robotic peripherals to adaptively retool robots
US20220156433A1 (en) Industrial network communication emulation
WO2018176025A1 (en) System and method for engineering autonomous systems
Yun et al. Immersive and interactive cyber-physical system (I2CPS) and virtual reality interface for human involved robotic manufacturing
Minoufekr et al. Modelling of CNC Machine Tools for Augmented Reality Assistance Applications using Microsoft Hololens.
Hinwood et al. A proposed wizard of OZ architecture for a human-robot collaborative drawing task
Siegele et al. Optimizing collaborative robotic workspaces in industry by applying mixed reality
Mocan et al. Designing a multimodal human-robot interaction interface for an industrial robot
David et al. Enabling the digital thread for product aware human and robot collaboration-an agent-oriented system architecture
Solvang et al. On industrial robots and cognitive info-communication
Acosta-Cano et al. Loose coupling based reference scheme for shop floor-control system/production-equipment integration
Horváth et al. Multi-modal interfaces for human–robot communication in collaborative assembly
EP4254098A1 (en) Controlling an automation system comprising a plurality of machines
Rust et al. Extended Reality Collaboration: Virtual and Mixed Reality System for Collaborative Design and Holographic-Assisted On-site Fabrication
Formanek et al. INMOOV PROJECT CONTROLLED BY ROBOT OPERATING SYSTEM (ROS)

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