KR102235168B1 - 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템 - Google Patents

계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템 Download PDF

Info

Publication number
KR102235168B1
KR102235168B1 KR1020160020776A KR20160020776A KR102235168B1 KR 102235168 B1 KR102235168 B1 KR 102235168B1 KR 1020160020776 A KR1020160020776 A KR 1020160020776A KR 20160020776 A KR20160020776 A KR 20160020776A KR 102235168 B1 KR102235168 B1 KR 102235168B1
Authority
KR
South Korea
Prior art keywords
layer
real
device control
time
control system
Prior art date
Application number
KR1020160020776A
Other languages
English (en)
Other versions
KR20170034754A (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 CN201680054891.6A priority Critical patent/CN108136578B/zh
Priority to EP16848786.6A priority patent/EP3354416A4/en
Priority to US15/762,063 priority patent/US10857672B2/en
Priority to JP2018514449A priority patent/JP6938473B2/ja
Priority to PCT/KR2016/008037 priority patent/WO2017052060A1/ko
Publication of KR20170034754A publication Critical patent/KR20170034754A/ko
Application granted granted Critical
Publication of KR102235168B1 publication Critical patent/KR102235168B1/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/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/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
    • 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/1674Programme controls characterised by safety, monitoring, diagnostic
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • 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
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/06Communication with another machine
    • Y10S901/08Robot
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Evolutionary Computation (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Feedback Control In General (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

본 발명의 실시 예에 따른 실시간 로봇 제어 시스템은, 상기 하나 이상의 제어 대상 디바이스를 포함하는 제1 계층; 상기 제1 계층의 상위단에서 상기 디바이스를 직접적으로 제어하는 디바이스 제어 모듈을 포함하는 제2 계층; 상기 제2 계층의 상위단에서 상기 디바이스 제어 모듈과 연결되는 공유 메모리를 포함하는 제3 계층; 상기 제3 계층의 상위단에서 상기 공유 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 에이전트들을 포함하는 제4 계층; 및 상기 제4 계층의 상위단에서 사용자 명령에 따라 상기 하나 이상의 에이전트들을 제어하는 제5 계층을 포함한다.

Description

계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템{A REALTIME DEVICE CONTROL SYSTEM HAVING HIERARCHICAL ARCHITECTURE AND A REALTIME ROBOT CONTROL SYSTEM}
본 발명은 실시간 디바이스 제어 시스템 및 실시간 로봇 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 정확한 실시간 처리가 가능하며, 개발 및 디버깅이 용이하고, 하드웨어적으로 강인한 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템에 관한 것이다.
현재 국내외의 많은 기관에서 로봇에 대한 연구가 활발하게 이루어지고 있다. 로봇은 크게 하드웨어와 소프트웨어로 나눌 수 있고, 이들이 통합되어 하나의 시스템을 이루게 된다.
로봇 하드웨어를 구성하는 요소로는 로봇 관절을 움직이기 위한 구동기와 제어기, 배터리와 전원 제어기, 통신 모듈, 센서, 로봇의 외골격, 전자 회로, 배터리 등이 있다. 이러한 여러 종류의 요소들을 각자의 원하는 로봇의 특성대로 조합하여 로봇 하드웨어 플랫폼을 형성한다.
각각의 요소들도 설계 목적에 따라서 크기, 외형, 성능, 제조사 등이 다르고, 결과적으로 무궁무진한 종류의 로봇 하드웨어 플랫폼을 만들게 된다. 실제로도 전세계적으로 매우 다양한 로봇들이 존재하고 있다. 그래서 공통적으로 목적하는 로봇 플랫폼의 성능과 기능을 조사하고, 하나의 대표되는 표준형 로봇 플랫폼을 개발하려는 연구가 전 세계적으로 진행 중이다.
또한, 하드웨어적으로 위와 같이 표준형 로봇 플랫폼을 개발하는 방향의 연구가 있는 것과 같이, 소프트웨어도 공용으로 사용 가능한 표준형 로봇 소프트웨어에 대한 연구가 있다. 로봇 하드웨어에 속하는 구동 제어기나 센서와 같은 로봇 디바이스들을 제어하기 위한 소프트웨어, 로봇 모션을 쉽게 개발하도록 돕기 위한 소프트웨어, 태스크들간의 연관관계를 결정하여 로봇 운영을 돕는 소프트웨어, 네비게이션이나 비전 솔루션들을 제공하는 소프트웨어 등 다양한 소프트웨어의 종류들이 있으며, 표준형 소프트웨어의 개발도 표준형 하드웨어의 개발과 유사한 목적 하에 연구가 진행되고 있다.
그러나, 상기 표준형 소프트웨어의 개발에 있어서, 여러 개발자들이 공통으로 요구하는 사항들을 해결하기 위한 표준 솔루션을 제공하는 것이 어려운 실정이다.
특히, 하드웨어적으로 변경되는 사항이 많아짐에 따라 개발자들간 협업이 어려울 뿐만 아니라, 여러 사람이 동시에 개발한 기능 또는 프로세스에 의해 처리가 중복되는 문제점들이 발생할 수 있다. 이에 따라, 실시간 동기화가 어렵고, 하드웨어의 안정성 또는 강인성이 떨어질 수 있으며, 개발 시간 또한 오래 걸리는 문제점이 있다.
또한, 하드웨어 개발에 있어서도 상기 표준 소프트웨어와의 호환성을 유지하기 위해 추가적인 기능 변경을 부가해야 함으로써 구동 성능이 떨어질 수 있는 문제점이 있다.
본 발명은 상기과 같은 과제를 해결하기 위한 것으로, 실시간성이 필요한 로봇 제어 시스템에 있어서, 동일한 하드웨어 제어 및 처리에 대한 여러 독립적 프로세스들이 공존할 수 있으면서도, 이에 따른 로봇의 동작이 안정적으로 제어될 수 있고, 그 강인성 및 확장성을 제공할 수 있는 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템을 제공하는데 그 목적이 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 시스템은, 실시간 디바이스 제어 시스템에 있어서, 상기 하나 이상의 제어 대상 디바이스를 포함하는 제1 계층; 상기 제1 계층의 상위단에서 상기 디바이스를 직접적으로 제어하는 디바이스 제어 모듈을 포함하는 제2 계층; 상기 제2 계층의 상위단에서 상기 디바이스 제어 모듈과 연결되는 공유 메모리를 포함하는 제3 계층; 상기 제3 계층의 상위단에서 상기 공유 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 에이전트들을 포함하는 제4 계층; 및 상기 제4 계층의 상위단에서 사용자 명령에 따라 상기 하나 이상의 에이전트들을 제어하는 제5 계층을 포함한다.
또한, 상기와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 시스템은, 실시간 로봇 제어 시스템에 있어서, 로봇의 관절 또는 센서에 대응하는 하나 이상의 제어 대상 디바이스; 및 상기 하나 이상의 제어 대상 디바이스와 연결되어 상기 디바이스를 운영하는 제어 시스템을 포함하고, 상기 제어 시스템은 하나 이상의 제어 대상 디바이스를 포함하는 제1 계층과, 상기 제1 계층의 상위 레이어에서 상기 디바이스를 직접적으로 제어하는 디바이스 제어 모듈을 포함하는 제2 계층과, 상기 제2 계층의 상위 레이어에서 상기 디바이스 제어 모듈과 연결되는 공유 메모리를 포함하는 제3 계층과, 상기 제3 계층의 상위 레이어에서 상기 공유 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 에이전트들을 포함하는 제4 계층; 및 상기 제4 계층의 상위 레이어에서 사용자 명령에 따라 상기 하나 이상의 에이전트들을 제어하는 제5 계층을 포함하여 상기 각 계층간 상호 인접한 계층간 통신을 이용하여 상기 하나 이상의 디바이스를 운영한다.
한편, 상기와 같은 과제를 해결하기 위한 방법은, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램 및 상기 프로그램이 기록된 기록 매체로 구현될 수 있다.
본 발명의 실시 예에 따르면, 상호 독립적인 프로세스를 갖는 복수의 에이전트와 상기 복수의 에이전트들의 동작에 따라 생성되는 레퍼런스가 저장되는 공유 메모리를 제공하고, 상기 레퍼런스를 이용하여 상기 하드웨어 디바이스로를 제어하는 별도의 디바이스 제어 모듈을 제공함으로써, 실시간성이 필요한 로봇 제어 시스템에 있어서, 동일한 하드웨어 제어에 대한 여러 독립적 프로세스들이 공존할 수 있으면서도, 이에 따른 로봇의 동작이 안정적으로 제어될 수 있다.
이에 따른 본 발명의 실시 예에 따르면, 각 에이전트를 독립적으로 개발하더라도, 공유 메모리를 통해 레퍼런스의 합성 및 선별이 가능하게 되어, 상호 충돌가능성을 줄일 수 있고 강인한 실시간성을 확보할 수 있다. 또한, 오류 발생시의 에이전트 대체 및 실시간 디버깅 등이 용이하게 되므로, 협업 편의성 및 확장성을 가져올 수 있다.
또한, 본 발명의 실시 예에 따르면, 각각의 디바이스, 디바이스 제어 모듈, 공유 메모리 및 에이전트들간 계층화된 아키텍처를 제공하여, 통제된 시스템을 통해서 안정화되고 체계적인 시스템을 유지할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 2는 본 발명의 실시 예에 따른 로봇 제어 시스템의 제어 방법을 설명하기 위한 흐름도이다.
도 3 내지 도 4는 본 발명의 실시 예에 따른 공유 메모리 및 시스템간 관계를 설명하기 위한 도면들이다.
도 5는 본 발명의 실시 예에 따른 디바이스 제어 모듈 및 에이전트간 데이터교환을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 디바이스 제어 모듈을 설명하기 위한 블록도이다.
도 7은 본 발명의 다른 일 실시 예에 따른 로봇 제어 시스템의 제어 동작을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시 예에 따른 계층 구조 및 동작환경을 설명하기 위한 도면이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비 휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지관용의 다른 하드웨어도 포함될 수 있다.
본 명세서의 청구범위에서, 상세한 설명에 기재된 기능을 수행하기 위한 수단으로 표현된 구성요소는 예를 들어 상기 기능을 수행하는 회로 소자의 조합 또는 펌웨어/마이크로 코드 등을 포함하는 모든 형식의 소프트웨어를 포함하는 기능을 수행하는 모든 방법을 포함하는 것으로 의도되었으며, 상기 기능을 수행하도록 상기 소프트웨어를 실행하기 위한 적절한 회로와 결합된다. 이러한 청구범위에 의해 정의되는 본 발명은 다양하게 열거된 수단에 의해 제공되는 기능들이 결합되고 청구항이 요구하는 방식과 결합되기 때문에 상기 기능을 제공할 수 있는 어떠한 수단도 본 명세서로부터 파악되는 것과 균등한 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 전체 시스템은, 하나 이상의 디바이스(100), 디바이스 제어 모듈(200), 공유 메모리(300), 하나 이상의 에이전트(400) 및 사용자 시스템(500)을 포함한다.
디바이스(100)는 최종적으로 로봇 제어 시스템의 동작을 수행하는 하나 이상의 구동 장치를 포함할 수 있다. 구동 장치는 하드웨어 장치 또는 소프트웨어 장치를 포함할 수 있다. 구동 장치는 예를 들어, 관절 모터에 대한 구동을 제어하는 관절 디바이스, 센서 보드를 포함하는 센서 디바이스 또는 시뮬레이터 장치들중 적어도 하나를 포함할 수 있다.
또한, 디바이스(100)는 디바이스 제어 모듈(200)로부터 수신되는 제어 신호에 따라 제어되고, 상기 디바이스 제어 모듈(200)로 센서 데이터와 같은 다양한 데이터를 출력할 수 있다. 또한, 여기서 디바이스(100)라는 용어는 하드웨어에 한정되는 것이 아니라, 실제 하드웨어 디바이스를 구동하기 위한 소프트웨어 드라이버를 포함하는 개념으로 이용될 수 있다. 따라서, 각 디바이스(100)는 디바이스 제어 모듈(200)과 물리적 및 소프트웨어적으로도 연결될 수 있다.
그리고, 각 디바이스(100)는 디바이스 제어 모듈(200)과의 통신 네트워크를 형성할 수 있다. 통신 네트워크는 시스템 안정성을 위해 CAN(Controller Area Network)방식의 프로토콜을 이용한 시스템 네트워크를 형성할 수 있다.
예를 들어, 각각의 디바이스(100)는 디바이스 제어 모듈(200)과 하나 이상의 CAN 통신 채널로 연결될 수 있으며, 상기 CAN 통신 채널을 통해 미리 설정된 제어 주기에 따라, CAN 프레임 데이터로 구성되는 메시지를 수신하거나 상기 디바이스 제어 모듈(200)로 메시지를 출력할 수 있다. 여기서, 상기 메시지는 모터 제어 레퍼런스, 엔코더 값, 제어기 상태 값, PWM(Pulse Width Modulation) 명령, 센서 값 또는 기타 다양한 설정 또는 출력 값들을 포함할 수 있다.
그리고, 디바이스 제어 모듈(200)은 상기 복수의 에이전트(400)들로부터 생성되어 상기 공유 메모리에 저장된 각각의 레퍼런스로부터, 하나 이상의 디바이스(100) 제어를 위한 하드웨어 제어 데이터를 획득하고, 상기 하드웨어 제어 데이터로부터 선택되는 상기 하나 이상의 디바이스(100)로 상기 레퍼런스에 따른 제어 신호를 전달한다.
디바이스 제어 모듈(200)은 로봇 제어 시스템의 제어를 위한 운영 시스템상에 항상 상주할 수 있으며, 백그라운드에서 실행될 수 있다.
디바이스 제어 모듈(200)은 상기 공유 메모리(300)를 참조하여 디바이스(100)를 유일하게 직접적으로 통신할 수 있고, 상기 통신 채널을 통해 제어 신호를 전달하거나 센서 신호를 수신할 수 있다.
예를 들어, 디바이스 제어 모듈(200)은 관절 디바이스(100)의 제어를 위한 레퍼런스를 상기 관절 디바이스(100)로 전달하거나, 센서 디바이스(100)로부터 필요한 센서 정보를 수신할 수 있다.
또한, 상기 디바이스 제어 모듈(200)은 상기 운영 시스템상에 생성된 실시간 쓰레드(thread)를 포함할 수 있다. 그리고, 상기 쓰레드는 시스템의 모션 생성 동작 주기와 동기화됨으로써 실시간 처리를 가능하게 한다. 또한, 디바이스 제어 모듈(200)에는 데이터 리딩 및 변환 등의 처리를 위한 비실시간 쓰레드를 더 포함할 수 있다.
그리고, 상기 복수의 에이전트(400)들은 상호 독립적인 프로세스를 갖는 독립적인 소프트웨어 모듈로 구현될 수 있다. 예를 들어, 에이전트(400)들은 각각 서로 다른 모션을 처리하고, 이에 대응하는 레퍼런스를 출력하기 위한 프로세스를 수행할 수 있다. 예를 들어, 각 에이전트(400)들은 모션 에이전트, 컨트롤러 에이전트, 통신 에이전트 또는 워킹(walking) 에이전트, 댐핑(damping) 에이전트, 기타 다양한 에이전트를 포함할 수 있다.
상기와 같은 에이전트(400)들은 기능적으로 프로세스가 분리되어 있기 때문에, 힙(heap), 데이터(data) 및 스태틱(static) 메모리를 공유하지 않고, 각각의 쓰레드를 생성하여 동작할 수 있으며, 상호 공유를 위한 필요 데이터는 각각 공유 메모리(300)로 제공할 수 있으며, 이에 따른 상호 충돌 없이 유기적인 처리가 가능하게 되며, 소프트웨어 개발 및 처리가 용이하게 된다.
특히, 본 발명의 실시 예에 따르면, 상기 복수의 에이전트(400)들은 상호 독립된 프로세스의 동작에 따라, 상기 공유 메모리(300)로부터 센서 데이터를 본 발명의 실시 예에 따르면, 각각의 에이전트(400)들은 각각 정의된 프로세스에 따라 공유 메모리(300)의 하드웨어 추상화 데이터 및 사용자 정의 데이터를 참조하고, 이에 기초하여 생성되는 레퍼런스 데이터를 공유 메모리(300)의 하드웨어 추상화 데이터에 저장할 수 있다.
여기서, 사용자 정의 데이터는 에이전트(400)간 정보 공유를 위한 공유 데이터 및 사용자 정의 가능한 기타 시스템 구동을 위한 다양한 데이터를 포함할 수 있다.
그리고, 하드웨어 추상화 데이터는 디바이스(100)를 제어하기 위해 추상화된 레퍼런스, 센서 데이터, 모션 오너 변수 및 명령 데이터를 포함할 수 있다. 그리고, 디바이스 제어 모듈(200)은 상기 하드웨어 추상화 데이터와 하드웨어 데이터베이스(250)에 미리 저장된 하드웨어 정보를 이용하여, 각 디바이스(100)별 제어 신호를 생성할 수 있다.
이에 따라, 디바이스 제어 모듈(200)은 상기 공유 메모리(300)로부터 추출되는 하드웨어 추상화 데이터를 이용하여, 제어 대상 디바이스(100)를 식별하고, 제어 대상 디바이스(100)들에 대한 제어 신호를 생성하여, 제어 대상 디바이스(100)로 상기 레퍼런스에 따른 제어 신호를 출력할 수 있다.
그리고, 강인한 실시간성의 보장을 위해, 각 에이전트(400)들의 처리 주기는 시스템의 모션 정보를 처리하는 동작 주기보다 짧을 필요성이 있다. 이에 따라, 상기 에이전트(400)들이 센서 데이터로부터 레퍼런스를 생성하고, 공유 메모리(300)를 통해 상기 디바이스 제어 모듈(200)이 레퍼런스로부터 제어 신호를 생성 및 출력하며, 센서 데이터를 갱신하는 시간은 상기 시스템의 제1 동작 주기 내에 포함될 수 있다. 따라서, 상기 일련의 동작들은 상기 제1 동작 주기 내에 모두 처리될 수 있다.
한편, 사용자 시스템(500)은 에이전트(400) 및 디바이스 제어 모듈(200)의 제어 및 모니터링을 위한 유저 인터페이스를 제공할 수 있다. 또한, 사용자 시스템(500)은 에이전트(400)의 제어를 위한 미들웨어를 포함할 수도 있으며, 기타 외부 시스템과 연결될 수 있는 다양한 인터페이스를 제공할 수 있다.
도 2는 본 발명의 실시 예에 따른 로봇 제어 시스템의 제어 방법을 설명하기 위한 흐름도이다.
그리고, 도 3 내지 도 4는 본 발명의 실시 예에 따른 공유 메모리 및 시스템간 관계를 설명하기 위한 도면들이다.
또한, 도 5는 본 발명의 실시 예에 따른 디바이스 제어 모듈 및 에이전트간 데이터교환을 설명하기 위한 도면이다.
이하에서는 상기 도 2 내지 도 5를 참조하여 본 발명의 로봇 제어 시스템과 그 제어 방법에 대해 보다 구체적으로 설명하도록 한다.
도 2를 참조하면, 본 발명의 실시 예에 따른 로봇 제어 시스템의 제어 방법은 먼저 상호 독립적인 프로세스를 갖는 복수의 에이전트(400)들의 동작이 수행된다(S101).
그리고, 디바이스 제어 모듈(200)은 공유 메모리(300)에 저장된 레퍼런스로부터 하드웨어 추상화 데이터를 획득한다(S103).
그리고, 디바이스 제어 모듈(200)은 하드웨어 추상화 데이터로부터 하드웨어 제어를 위한 제어 신호를 생성하며(S107), 생성된 제어 신호를 하나 이상의 디바이스(100)들로 전달한다(S109).
한편, 디바이스 제어 모듈(200)은 센서에 대응하는 디바이스(100)들로부터 센서 데이터를 수신하고(S111), 상기 수신된 센서 데이터를 공유 메모리(300)에 업데이트한다(S113).
그리고, 상기 일련의 동작 단계들은 로봇 제어 시스템의 실시간 동작 주기에 대응하는 제1 주기 내에 모두 처리될 수 있어, 실시간성을 보장할 수 있다.
이와 같은 프로세스를 위해, 도 3에 도시된 바와 같이, 각각의 에이전트(400)들과 디바이스 제어 모듈(200)은 공유 메모리(300)를 이용하여 데이터 교환 및 전달 처리를 수행할 수 있다.
각 에이전트(400)들의 동작에 따라, 공유 메모리(300)에는 각 디바이스(100)에 대응하는 레퍼런스들이 저장될 수 있고, 디바이스 제어 모듈(200)은 레퍼런스를 획득하여 제어 신호를 출력하는데 이용할 수 있다.
이와 같은 복수의 에이전트(400)과 디바이스 제어 모듈(200)은 공유 메모리(300)를 중심으로 멀티 에이전트 시스템을 구성할 수 있다. 이에 따라 독립된 일을 수행하는 각각의 파트를 여러 개발자들이 분리해서 개발할 수도 있고, 협업할 수도 있는 로봇 제어 시스템 개발 환경에서의 유리한 구조를 가질 수 있다.
본 발명의 실시 예에 따른 에이전트(400)를 이용하면, 개발자들은 프로세스 동시 개발 모델로부터 독립된 개발 공간을 보장 받으면서도, 공유 메모리(300)를 이용함으로써 다른 에이전트(400)의 연산 결과물과 상호 작용하거나 데이터를 주고 받을 수 있게 된다.
한편, 도 4에 도시된 바와 같이, 공유 메모리(300)상에는 하드웨어 추상화 데이터 및 사용자 정의 데이터가 포함될 수 있다.
하드웨어 추상화 데이터는 센서 데이터, 레퍼런스 데이터, 모션 오너 (motion own-er) 및 명령 데이터를 포함할 수 있으며, 디바이스 제어 모듈(200)은 공유 메모리(300)의 상기 하드웨어 추상화 데이터 영역에만 접근할 수 있다.
이에 따라, 디바이스 제어 모듈(200)은 공유 메모리(300)의 하드웨어 추상화 데이터 영역에 접근하여 디바이스(100)로부터 수신한 센서 데이터를 업데이트하거나, 갱신된 레퍼런스 데이터를 획득하여 디바이스(100)에 대한 제어 신호를 생성할 수 있다.
여기서, 하드웨어 추상화 데이터는 로봇 디바이스 제어에 관한 세부적인 데이터를 추상화하여 변환된 데이터 포맷을 가질 수 있으며, 디바이스 제어 모듈(200)은 이를 실제 하드웨어 제어 신호로 변환하여 적절한 디바이스(100)들로 전달할 수 있다.
이에 따라, 에이전트(400) 개발자나 사용자는 하드웨어에 대한 깊은 이해 없이도 제어를 용이하게 할 수 있다. 개발자나 사용자자는 공유 메모리(300)를 통해서 추상화된 하드웨어 입력 정보를 레퍼런스로 전달하고, 디바이스 제어 모듈(200)은 상기 하드웨어 추상화 데이터로부터 디바이스(100) 제어를 위한 저수준 제어 신호를 생성할 수 있다.
또한 하드웨어의 확장성과 하드웨어의 변경 및 수정이 있을 수 있으므로, 디바이스 제어 모듈(200)은 전술한 하드웨어 데이터베이스(250)을 이용하여 상기 제어 신호를 생성하는데 필요한 하드웨어 정보를 관리할 수 있다. 하드웨어 정보는 예를 들어, 디바이스(100)들의 리스트, 관절 모터 정보(감속비, 엔코더 펄스, 구동기 채널 수 등) 또는 통신 규약 등을 포함할 수 있다.
디바이스 제어 모듈(200)은 상기 하드웨어 데이터베이스(250)를 로드하여 구동 대상 디바이스(100)의 하드웨어 정보를 파악할 수 있고, 이에 따라, 이 구동 대상 디바이스(100)의 제어를 위한 최적의 제어 신호를 생성할 수 있다. 또한 하드웨어의 변경이 있거나 새로운 구성의 하드웨어를 사용하더라도, 하드웨어 데이터베이스(250)의 수정만으로도 적용 가능하게 되므로, 하드웨어 변화에 강인하고, 하드웨어가 확장 가능한 특성을 제공할 수 있다.
그리고, 하드웨어 추상화 데이터는 레퍼런스 데이터, 센서 데이터, 모션 오너 및 명령 데이터를 포함할 수 있다.
여기서, 상기 레퍼런스 데이터는 각 에이전트(400)에서 연산 결과에 따라 업데이트될 수 있으며, 디바이스 제어 모듈(200)이 각 디바이스(100)들을 제어하기 위한 현재 스텝에서의 목표 값을 포함할 수 있다. 예를 들어, 레퍼런스 데이터는 관절 모션 레퍼런스 및 관절 컨트롤러 레퍼런스를 포함할 수 있다.
또한, 센서 데이터는 디바이스 제어 모듈(200)이 각 디바이스(100)들로부터 수신되는 측정 데이터를 포함할 수 있다. 여기서 측정 데이터는 예를 들어, 관절 디바이스의 엔코더 값, 센싱 데이터를 포함하는 현재 스텝에서의 상태 정보를 포함할 수 있다.
한편, 명령 데이터는 디바이스 제어 모듈(200) 및 에이전트(400)를 상위 시스템 레벨에서 제어하기 위한 명령 정보를 포함할 수 있으며, 명령 대상 프로세스 정보 및 매개변수 정보를 포함할 수 있다.
한편, 다른 공유 메모리(300)의 데이터들은 에이전트(400)가 리드하는 값이기 때문에 혼동의 여지가 없지만, 레퍼런스 데이터의 경우에는 동일한 관절 디바이스(100)에 대해 각 에이전트(400)마다 출력하는 값들이 다를 수 있다. 이에 따른 충돌 여지를 제거하기 위해, 공유 메모리(300)는 모션 오너(owner) 정보를 포함할 수 있다.
그리고, 도 5에 도시된 바와 같이, 도 5는 본 발명의 실시 예에 따른 디바이스 제어 모듈(200) 및 에이전트(400)간 데이터 교환에 있어서, 모션 오너와 레퍼런스 데이터의 관계가 설명될 수 있다.
도 5에 도시된 바와 같이, 공유 메모리(300)의 하드웨어 추상화 데이터 영역에는 각 에이전트(400)별로 레퍼런스 데이터를 업데이트할 수 있는 에이전트(400)별 메모리 영역(350)을 포함할 수 있다.
이에 따라, 각 에이전트(400)들은 자신의 메모리 공간 영역에 자신이 계산한 레퍼런스를 업데이트할 수 있다.
여기서, 각 에이전트(400)들은 각 디바이스(100)들에 대응하는 레퍼런스 데이터를 연산하여 업데이트 할 수 있다. 예를 들어, 관절 디바이스(100)가 J1~J31까지 총 31개 존재하는 경우, 각 에이전트(400)별 메모리 공간 영역에는 상기 각각의관절 디바이스(100)들에 대응되는 레퍼런스 데이터 영역이 포함될 수 있다.
이와 함께, 공유 메모리(300)는 상기 관절 디바이스(100) 각각에 대한 모션 오너 변수를 포함할 수 있다. 따라서, 각 모션 오너 변수 공간에는 관절 디바이스(100)의 개수와 동일한 개수의 모션 오너 변수가 포함될 수 있다.
그리고, 각 모션 오너 변수는 미리 설정된 복수의 에이전트(400)들 중 상기 관절 디바이스(100)에 대한 권한을 갖는 하나의 에이전트을 나타낼 수 있다. 이에 따라, 해당 관절 디바이스(100)에 대한 제어권이 어떠한 에이전트(400)에 종속되어 있는지를 디바이스 제어 모듈(200)이 판단할 수 있다.
또한, 각 관절 디바이스(100)들에 대한 제어권은 모션 오너 변수의 변경에 따라 다른 에이전트(400) 또는 디바이스 제어 모듈(200)로도 이전될 수 있다.
이를 위해, 디바이스 제어 모듈(200)은 우선적으로 모션 오너 변수로부터 특정 관절 디바이스(100)의 제어권을 갖는 에이전트(400)를 식별할 수 있다. 그리고, 디바이스 제어 모듈(200)은 식별된 에이전트(400)의 레퍼런스 데이터를 수집하며, 상기 수집된 레퍼런스 데이터를 결합하여 종합적으로 구성된 전체 관절 디바이스(100)에 대한 전체 레퍼런스 데이터를 생성할 수 있다.
그리고, 디바이스 제어 모듈(200)은 전체 레퍼런스 데이터를 이용하여, 각 디바이스(100)에 대한 제어 신호를 생성할 수 있고, 적절하게 전달할 수 있다.
에게 있는지 살펴보고, 해당하는 관절 레퍼런스의 값을 읽어오고, 그렇게 하여 종합적으로 단 하나의 세트로 구성된 로봇 전체 관절의 레퍼런스를 구성하고, 이를 로봇 디바이스로 전달하여 구동하게 된다.
이와 같은 데이터 교환 방식을 통해, 로봇의 각 관절들을 서로 다른 에이전트(400)들에서 충돌 없이 제어할 수 있다. 예를 들어 하나의 에이전트(400)에서는 하체의 자세 안정화에 대한 알고리즘을 통해서 하체 관절들을 제어하고, 다른 하나의 에이전트(400)에서는 상체의 특정 태스크 모션을 생성하면, 두 에이전트(400)들의 결과가 종합되어 로봇의 전신 태스크가 수행될 수 있다. 이는 로봇의 멀티 에이전트 시스템의 특성에 맞는 효율적인 제어를 가능하게 한다.
도 6은 본 발명의 실시 예에 따른 디바이스 제어 모듈을 설명하기 위한 블록도이다.
도 6을 참조하면, 디바이스 제어 모듈(200)은 모션 셀렉터(210), 컨트롤러 신호 누적부(220), 신호 결합부(230), 정보 핸들러(240)를 포함한다.
본 발명의 실시 예에 따르면, 관절에 대한 레퍼런스 데이터는 관절 모션 제어 및 세부 컨트롤을 위한 2 이상의 레퍼런스 신호를 포함할 수 있다. 이에 따라, 각 관절 디바이스(100)에 대응되는 에이전트(400)는 상기 2 이상의 레퍼런스 신호를 레퍼런스 데이터로서 생성하여 공유 메모리(300)에 저장할 수 있다.
또한, 도 6에 도시된 바와 같이, 레퍼런스 신호는 모션 레퍼런스와 컨트롤러 레퍼런스로 명칭될 수 있다. 모션 레퍼런스는 각 관절에 지배적인 값을 제공하는 레퍼런스 데이터를 포함할 수 있고, 컨트롤러 레퍼런스는 미시적으로 모션 레퍼런스에 가감되는 세부 레퍼런스 데이터를 포함할 수 있다. 다만, 본 발명의 실시 예에서 상기 레퍼런스가 그 명칭으로 한정되는 것은 아니다.
이에 따라, 디바이스 제어 모듈(200)에는 공유 메모리(300)로부터 모션 레퍼런스 출력 데이터(M1~Mm)와 컨트롤러 레퍼런스(M1~Mm)이 입력될 수 있다.
그리고, 모션 레퍼런스는 하나의 관절 디바이스(100)별로 하나가 선택될 수 있으나, 컨트롤러 레퍼런스는 모두 누적되어 가감될 수 있다.
이를 위해, 모션 셀렉터(210)는 상기 모션 오너 변수 정보에 기초하여, 상기 모션 레퍼런스 데이터로부터 각 관절 디바이스(100)에 대응하는 모션 레퍼런스 데이터를 선택하며, 이를 신호 결합부(230)로 출력할 수 있다. 따라서, 하나의 관절 디바이스(100)에는 하나의 모션 레퍼런스 데이터가 선택될 수 있다.
또한, 컨트롤러 신호 누적부(220)에서는 상기 모션 오너 변수와 관계 없이, 각 컨트롤러 레퍼런스 데이터를 누적하여 결과값을 신호 결합부(230)로 출력할 수 있다.
그리고, 신호 결합부(230)에서는 상기 모션 레퍼런스 데이터와 상기 컨트롤러 레퍼런스 데이터 누적 결과값을 합성하여 최종 관절 디바이스(100)별 레퍼런스 데이터를 생성할 수 있으며, 적절한 타겟 관절 디바이스(100)들로 출력할 수 있다.
여기서, 신호 결합부(230)는 레퍼런스의 타입을 식별하고, 레퍼런스 타입에 따른 처리공간을 구분할 수 있다. 이를 위해, 신호 결합부(230)는 타입 식별부 및 공간 처리부를 포함할 수 있다.
예를 들어, 레퍼런스 데이터는 관절 동작 뿐만 아니라, 태스크 처리와 같은 다른 타입을 가질 수 있으며, 이에 따라 타입 식별부는 상기 태스크 타입 또는 관절 타입인지 여부를 식별할 수 있고, 공간 처리부는 상기 타입에 따라 서로 다른 데이터 공간의 처리를 제공할 수 있다.
이와 같이, 모션 레퍼런스와 컨트롤러 레퍼런스를 분리함으로써 로봇 모션을 생성하는 과정에서 기능적인 분리가 가능해질 수 있다. 예를 들어서 이족보행의 모션을 생성한다면, 하나의 에이전트(400)에서 기본 보행 패턴을 생성하여 모션 레퍼런스를 생성하고, 다른 하나의 에이전트(400)에서 댐핑 컨트롤러를 설계하고, 또 다른 에이전트(400)에서 진동을 잡아주는 컨트롤러를 설계하여 컨트롤러 레퍼런스로 출력함에 따라 매우 용이하게 설계 및 개발이 가능하게 된다.
한편, 정보 핸들러(240)는 센서 디바이스(100) 또는 기타 측정 대상 디바이스들로부터 수집되는 센서 데이터를 종합하여, 공유 메모리(300)로 출력하는 기능을 수행할 수 있다.
도 7은 본 발명의 다른 일 실시 예에 따른 로봇 제어 시스템의 제어 동작을 설명하기 위한 흐름도이다.
일반적으로 로봇을 사용한 실제 실험에서 문제가 발생하게 되면 일반적으로 로봇을 다시 처음부터 구동시켜야 한다. 모바일 플랫폼의 경우에는 로봇 초기화 과정이 간단하지만, 휴머노이드와 같이 다관절 시스템이나 지면에서 초기화를 수행하기 어렵고 크레인 등을 이용해서 공중에서 초기화를 해야 하는 경우에는 전체적인 초기화 과정이 매우 번거롭고 많은 시간을 소요하게 된다.
따라서, 도 7에 도시된 바와 같이, 본 발명의 실시 예에 따른 디바이스 제어 모듈(200)은 이러한 로봇을 초기화 하는 과정이 없이 디버깅을 하고 다시 로봇을 테스트 할 수 있다.
이를 위해, 먼저 시스템 초기화가 수행되고(S201), 각각의 상호 독립적 프로세스를 갖는 복수의 에이전트(400)들이 동작한다(S202).
이후, 오류가 발생된 특정 에이전트가 존재하는 경우(S203), 상기 오류 발생된 에이전트의 동작은 중단되고, 디바이스 제어 모듈(200) 또는 다른 에이전트(400)가 상기 모션 오너 변수를 다른 에이전트로 변경한다(S205).
이에 따라, 사용자가 에이전트(400)를 통해 모션 알고리즘을 테스트하다가 문제가 발행하면 단지 다른 에이전트(400) 또는 디바이스 제어 모듈(200)로 모션 오너를 넘겨주고, 중단된 에이전트(400)에 대한 코드를 수정할 수 있다.
그리고 작성한 코드를 컴파일하여 디버깅이 완료된 경우(S207), 다시 모션 오너 변수를 원래의 에이전트(400)로 스위치할 수 있다(S209).
이와 같이, 개발자는 모션 오너를 가져온 이후에 실험을 계속할 수 있다. 이는 결과적으로 개발을 가속시킬 수 있고, 사용자의 입장에서 이를 좀 더 활용하여 다른 특수한 알에서 로봇의 관절 레퍼런스를 지속적으로 관찰하여 충돌이 일어나는 것을 감지하여 충돌이 발생할 경우에 모션 오너를 스위칭하여 로봇을 안전하게 실험하도록 할 수도 있게 되는 효과를 갖는다.
도 8은 본 발명의 실시 예에 따른 로봇 시스템의 동작환경을 설명하기 위한 도면이다.
본 발명의 실시 예에 따르면, 범용적으로 로봇 소프트웨어가 쓰이기 위해서는 단 하나의 로봇 플랫폼만을 동작시킬 수 있는 소프트웨어가 아닌 여러 다양한 형태의 로봇을 동작시킬 수 있어야 하기 때문에 확장 가능하면서 로봇 하드웨어의 변화에 쉽게 적응할 수 있어야 한며, 실제적인 로봇 플랫폼뿐만 아니라 로봇 시뮬레이터도 같은 소프트웨어로도 제어될 필요성이 있다.
이에 따라, 본 발명의 실시 예에 따른 로봇 제어 시스템(1000)은 미국의 ROS(Robot Operation System)나, 한국의 OPRoS(Open Platform for Robotics Services)와 같은 다른 유용한 로봇 미들웨어들의 기능들을 이용할 수 있는 범융 시스템을 구축할 수 있다. 이에 따라 클라우드 로봇 체계상의 소프트웨어에서 제공하는 여러 가지 비전 솔루션이나 로봇의 태스크를 관리하는 기능들을 본 발명의 시스템에 쉽게 적용할 수 있는 환경을 제공할 수 있다.
이를 위해, 로봇 제어 시스템(1000)의 각 에이전트들(400)이 모션을 생성하면, 이에 따라 각 로봇 디바이스(100)들을 제어하는 디바이스 제어 모듈(200)이 동작하여 전체 시스템의 실시간 제어를 제공할 수 있다. 또한, 상위의 다른 로봇 소프트웨어들에서 모션들 간의 연결 혹은 판단 기준 등을 제시하거나 여러 개의 로봇들을 동시에 운용할 수도 있다.
이는 도 9에서 설명되는 로봇 제어 시스템(1000)의 계층적 아키텍처에 의해 보다 구체적으로 설명될 수 있다.
도 9는 본 발명의 실시 예에 따른 로봇 시스템의 계층적 아키텍처 설계를 나타내는 도면이다.
상기와 같이 다른 일반적 외부 프로세스에서, 본 발명의 실시 예에 따른 복수 에이전트에 접근하거나 임의의 에이전트를 생성하여, 독립적으로 동작시킬 수 있는 환경을 제공하기 위해, 로봇 제어 시스템(1000)은 각 데이터 처리모듈들이 계층(layer)화된 구조를 포함할 수 있다.
그리고, 각 계층화된 구조는 상기 로봇 제어 시스템(1000)과 연결되거나, 상기 로봇 제어 시스템(1000)을 탑재하거나 설치된 실시간 운영 시스템(RTOS)상에서 소프트웨어 또는 하드웨어적으로 구현될 수 있다. 또한, 각 계층간 동작 주기 동가화를 위해, 실시간 운영 시스템은 글로벌한 타이머 인터럽트(Timer Interupt)를 제 4계층 및 제2 계층으로 제공할 수 있다.
예를 들어, 제4 계층의 각 에이전트들은 상기 실시간 운영 시스템의 프로세스로 구현될 수 있으며, 프로세스에 포함된 쓰레드 동작에 따라 공유 메모리에 접근하고, 센서 데이터를 획득하며 레퍼런스 데이터를 저장할 수 있다. 이에 동기화된 제2 계층의 디바이스 제어 모듈은 상기 실시간 운영 시스템상에서의 쓰레드 동작에 따라, 디바이스의 센서 데이터를 공유 메모리에 저장하고, 공유 메모리의 레퍼런스 데이터 및 모션 오너에 따른 디바이스 제어 신호를 생성하여 각 디바이스들로 출력할 수 있다.
이와 같이 실시간 운영 시스템상에서 구현가능한 본 발명의 실시 예에 따른 로봇 제어 시스템(1000)은 로봇 플랫폼 또는 시뮬레이터에 포함된 하나 이상의 제어 대상 디바이스(joint 또는 Sensor)를 포함하는 제1 계층과, 상기 제1 계층의 상위단에서 상기 디바이스를 직접적으로 제어하는 디바이스 제어 모듈을 포함하는 제2 계층과, 상기 제2 계층의 상위단에서 상기 디바이스 제어 모듈과 연결되는 공유 메모리를 포함하는 제3 계층과, 상기 제3 계층의 상위단에서 상기 공유 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 에이전트들을 포함하는 제4 계층; 및 상기 제4 계층의 상위단에서 사용자 명령에 따라 상기 하나 이상의 에이전트들을 제어하는 제5 계층을 포함하는 계층적 아키텍처로 구성될 수 있다.
여기서, 상기 제1 내지 제5 계층들은 상호 인접한 계층간에만 통신 가능하도록, 각각의 통신 프로토콜이 미리 설정될 수 있다. 각 계층은 상위 또는 하위 계층을 통해서만 그 다음 계층에 접근할 수 있고, 이렇게 통제된 시스템을 통해서 안정화되고 체계적인 시스템을 유지할 수 있다.
먼저, 제1 계층에는 각 디바이스들이 포함될 수 있다. 디바이스들은 실질적인 제어의 대상들인 저수준 로봇 디바이스들을 포함할 수 있으며, 예를 들어 구동기의 제어기, 센서 보드 또는 로봇 시뮬레이터의 디바이스들이 포함될 수 있다.
그리고, 제2 계층에는 디아비스 제어 모듈(200)이 로봇을 제어하기 위해 백그라운드에서 항상 상주하여 실행될 수 있다. 제2 계층은 로봇 시스템의 디바이스들을 직접적으로 제어할 수 있는 유일한 계층일 수 있다.
예를 들어, 제2 계층의 디바이스 제어 모듈은 공유 메모리로부터 생성된 관절의 레퍼런스를 로봇 디바이스에 전달하고, 반대로 센서의 값을 디바이스로부터 획득할 수 있다. 제2 계층은 실시간 운영체제(RTOS)로부터 생성되는 실시간 쓰레드에 의해 동작할 수 있으며, 제2 계층의 쓰레드는 모션 생성의 제어주기와 동기화된 주기를 가질 수 있다. 만약 디바이스가 시뮬레이터와 연동한 경우, 제2 계층의 쓰레드는 시뮬레이터의 시간과 동기화 되어 동작할 수 있다. 제2 계층은 명령을 읽어 들이고 해석할 수 있는 비실시간 쓰레드도 가질 수 있으며, 비실시간 쓰레드는 실시간 쓰레드에서 남는 시간에 다른 명령을 받아서 처리할 수 있다.
이에 따라, 디바이스 제어 모듈은 상기 시스템의 백그라운드에서 상주하며, 상기 공유 메모리로부터 획득되는 레퍼런스로부터 상기 디바이스를 제어하기 위한 제어 신호를 상기 제1 계층으로 전달하는 계층적 아키텍처를 가질 수 있다.
한편, 제3 계층은 공유 메모리 계층으로서, 하드웨어의 추상화 데이터부 및 사용자 정의 데이터부를 포함할 수 있다. 도 9에 도시된 바와 같이, 하드웨어 추상화 데이터부에는 전술한 하드웨어 추상화 데이터가 포함될 수 있으며, 하드웨어 추상화 데이터의 종류로는 센서 데이터, 레퍼런스 데이터, 모션 오너 (motion owner) 및 명령 정보를 포함할 수 있다. 제2 계층의 디바이스 제어 모듈은 오직 제3 계층의 공유메모리에만 연결될 수 있다.
한편, 사용자 정의 데이터부는 제4 계층에 존재하는 복수의 에이전트 프로세스들 사이에서 공유되는 에이전트 공유 데이터와, 사용자 정의에 따른 로봇 구동 데이터를 임시 또는 영구적으로 저장할 수 있다.
그리고, 제4 계층은 외부 프로세스의 사용자가 자신만의 로봇 모션 등을 생성하기 위한 각 에이전트 프로세스들을 구동시키는 계층으로서, 에이전트 프로세스들은 포도 알과 같이 계층 내에서 상호 독립적으로 실행되기 때문에, 특별히 알 (AL)이라고도 할 수 있다. 각 에이전트들은 상호 독립적으로 제3 계층의 공유메모리부터 센서 데이터를 읽어서 모션을 생성하고, 생성된 모션의 관절 레퍼런스를 공유메모리에 업데이트 할 수 있다.
또한, 제4 계층의 에이전트 프로세스들은 그리고, 모션 오너에 어떤 알이 해당 관절의 레퍼런스에 대한 소유권을 가지고 있는지를 설정할 수 있다.
또한, 각 에이전트들은 실시간 운영체제(RTOS)로부터 매우 짧은 주기의 빠른 실시간 쓰레드를 생성할 수 있으며, 빠른 쓰레드는 각 에이전트들의 모션 생성 쓰레드를 전술한 제4 계층의 디바이스 제어 모듈의 실시간 쓰레드와의 동기화하는데 이용될 수 있다. 예를 들어, 모션을 생성하는 쓰레드는 상기 빠른 쓰레드에 의해 디바이스 제어 모듈과 실시간 동기화될 수 있으며, 동기화와 동시에 연산이 재개(Resume)되고, 한 번의 레퍼런스 연산 루프를 돌고 나면 유예(Suspend)될 수 있다. 이 동작이 계속적으로 반복되어 일어남으로써 로봇 제어 시스템(1000)의 제어가 이루어질 수 있다.
여기서, 모든 에이전트들이 로봇의 모션을 직접적으로 생성하는 것은 아니며, 충돌을 감지하여 모션 오너를 다른 에이전트로부터 가져와, 로봇을 안전하게 만들어주는 에이전트가 있을 수 있으며, 다른 에이전트들을 도와주는 부수적인 처리를 할 수도 있고, 통신 모듈(comm. module)로 구현되어 제5 계층과의 정보를 주고 받으며 다른 에이전들을 제어하는 역할을 하는 에이전트(도 9에서는 에이전트 N)도 존재할 수 있다.
한편, 제5 계층은 상기 에이전트들에 대응하는 제어 및 로봇 제어 시스템(1000)에 대한 모니터링 기능을 제공하는 유저 인터페이스 모듈을 포함할 수 있다.
이에 따라, 제5 계층은 로봇을 제어하기에 편의를 제공하기 위한 다양한 프로세스들을 포함할 수 있다. 예를 들어, 제5 계층에는 명령을 쉽게 주거나, 모니터링하기 위한 GUI (Graphic User Interface) 혹은 데이터를 저장해주는 로깅 프로그램이 포함될 수 있다.
또한, 상기 제5 계층은 외부 프로세스의 접근 가능한 영역으로서, 기존의 ROS와 OPRoS와 같은 로봇 미들웨어들이 에이전트들을 제어하기 위한 하나 이상의 인터페이스 기능을 제공할 수 있다.
또한, 상위의 다른 로봇 제어 시스템이 존재하여, 제5 계층을 통해 하위의 로봇 제어 시스템(1000)을 제어할 수도 있다. 따라서, 상기 제5 계층을 통해서 로봇 제어 시스템(1000)은 무한히 확장 될 수 있는 구조를 포함할 수 있으며, 이를 통해 하이퍼 멀티 에이전트(hyper multi-agent) 시스템을 제어할 수 있는 구조적인 가능성을 제공할 수 있다.
한편, 상술한 본 발명에 따른 시스템 및 방법들은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (13)

  1. 실시간 디바이스 제어 시스템에 있어서,
    하나 이상의 제어 대상 디바이스를 포함하는 제1 계층;
    상기 제1 계층의 상위단에서 상기 디바이스를 직접적으로 제어하는 디바이스 제어 모듈을 포함하는 제2 계층;
    상기 제2 계층의 상위단에서 상기 디바이스 제어 모듈과 연결되는 공유 메모리를 포함하는 제3 계층;
    상기 제3 계층의 상위단에서 상기 공유 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 에이전트들을 포함하는 제4 계층; 및
    상기 제4 계층의 상위단에서 사용자 명령에 따라 상기 하나 이상의 에이전트들을 제어하는 제5 계층을 포함하고,
    상기 공유 메모리는
    상기 제2 계층의 상기 디바이스 제어 모듈의 동작을 위한 정보를 저장하는 하드웨어 추상화 데이터부; 및
    상기 제4 계층의 에이전트들간 공유되는 에이전트 공유 데이터를 저장하는 사용자 정의 데이터부를 포함하는
    계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템.
  2. 제1항에 있어서,
    상기 제1 내지 제5 계층들은 상호 인접한 계층간에만 통신 가능한 것을 특징으로 하는 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템.
  3. 제1항에 있어서,
    상기 제2 계층의 디바이스 제어 모듈은,
    상기 시스템의 백그라운드에서 상주하며, 상기 공유 메모리로부터 획득되는 레퍼런스로부터 상기 디바이스를 제어하기 위한 제어 신호를 상기 제1 계층으로 전달하는 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템.
  4. 제3항에 있어서,
    상기 디바이스 제어 모듈은,
    상기 디바이스 제어 시스템과 연결된 운영 체제상에, 상기 하나 이상의 에이전트들과 동기화된 제어 주기를 갖는 실시간 쓰레드를 생성하는 모듈인
    계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 제4 계층의 에이전트들은 각각 상기 시스템과 연결된 실시간 운영체제상에 실시간 쓰레드를 생성하고, 상기 실시간 쓰레드의 동작 주기는 상기 디바이스 제어 모듈과 동기화되는
    계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템.
  7. 제1항에 있어서,
    상기 제5 계층은 상기 에이전트들에 대응하는 제어 및 모니터링 기능을 제공하는 유저 인터페이스 모듈을 포함하는
    계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템.
  8. 실시간 로봇 제어 시스템에 있어서,
    로봇의 관절 또는 센서에 대응하는 하나 이상의 제어 대상 디바이스; 및
    상기 하나 이상의 제어 대상 디바이스와 연결되어 상기 디바이스를 운영하는 제어 시스템을 포함하고,
    상기 제어 시스템은
    하나 이상의 제어 대상 디바이스를 포함하는 제1 계층과, 상기 제1 계층의 상위 레이어에서 상기 디바이스를 직접적으로 제어하는 디바이스 제어 모듈을 포함하는 제2 계층과, 상기 제2 계층의 상위 레이어에서 상기 디바이스 제어 모듈과 연결되는 공유 메모리를 포함하는 제3 계층과, 상기 제3 계층의 상위 레이어에서 상기 공유 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 에이전트들을 포함하는 제4 계층; 및 상기 제4 계층의 상위 레이어에서 사용자 명령에 따라 상기 하나 이상의 에이전트들을 제어하는 제5 계층을 포함하여 상기 각 계층간 상호 인접한 계층간 통신을 이용하여 상기 하나 이상의 디바이스를 운영하고,
    상기 공유 메모리는
    상기 제2 계층의 상기 디바이스 제어 모듈의 동작을 위한 정보를 저장하는 하드웨어 추상화 데이터부; 및
    상기 제4 계층의 에이전트들간 공유되는 에이전트 공유 데이터를 저장하는 사용자 정의 데이터부를 포함하는
    실시간 로봇 제어 시스템.
  9. 제8항에 있어서,
    상기 제2 계층의 디바이스 제어 모듈은,
    상기 시스템의 백그라운드에서 상주하며, 상기 공유 메모리로부터 획득되는 레퍼런스로부터 상기 디바이스를 제어하기 위한 제어 신호를 상기 제1 계층으로 전달하는 실시간 로봇 제어 시스템.
  10. 제9항에 있어서,
    상기 디바이스 제어 모듈은,
    상기 로봇 제어 시스템과 연결된 운영 체제상에 상기 하나 이상의 에이전트들과 동기화된 제어 주기를 갖는 실시간 쓰레드를 생성하는 모듈인 실시간 로봇 제어 시스템.
  11. 삭제
  12. 제8항에 있어서,
    상기 제4 계층의 에이전트들은 각각 상기 시스템과 연결된 실시간 운영체제상에 실시간 쓰레드를 생성하고, 상기 실시간 쓰레드의 동작 주기는 상기 디바이스 제어 모듈과 동기화되는
    실시간 로봇 제어 시스템.
  13. 제8항에 있어서,
    상기 제5 계층은 상기 에이전트들에 대응하는 제어 및 모니터링 기능을 제공하는 유저 인터페이스 모듈을 포함하는
    실시간 로봇 제어 시스템.
KR1020160020776A 2015-09-21 2016-02-22 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템 KR102235168B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201680054891.6A CN108136578B (zh) 2015-09-21 2016-07-22 具有分层架构的实时设备控制系统及利用其的实时机器人控制系统
EP16848786.6A EP3354416A4 (en) 2015-09-21 2016-07-22 REAL-TIME DEVICE CONTROL SYSTEM HAVING HIERARCHICAL ARCHITECTURE AND REAL-TIME ROBOT CONTROL SYSTEM USING SAME
US15/762,063 US10857672B2 (en) 2015-09-21 2016-07-22 Real-time device control system having hierarchical architecture and realtime robot control system using same
JP2018514449A JP6938473B2 (ja) 2015-09-21 2016-07-22 階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム
PCT/KR2016/008037 WO2017052060A1 (ko) 2015-09-21 2016-07-22 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562221215P 2015-09-21 2015-09-21
US62/221,215 2015-09-21

Publications (2)

Publication Number Publication Date
KR20170034754A KR20170034754A (ko) 2017-03-29
KR102235168B1 true KR102235168B1 (ko) 2021-04-02

Family

ID=58498109

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020160006426A KR102235166B1 (ko) 2015-09-21 2016-01-19 실시간 로봇 시스템, 로봇 시스템 제어 장치 및 로봇 시스템 제어 방법
KR1020160020779A KR102235947B1 (ko) 2015-09-21 2016-02-22 Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템
KR1020160020775A KR102235167B1 (ko) 2015-09-21 2016-02-22 스텝 기반 실시간 디바이스 시스템 제어 방법, 디바이스 시스템 제어 장치 및 스텝 기반 디바이스 제어 시스템
KR1020160020776A KR102235168B1 (ko) 2015-09-21 2016-02-22 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020160006426A KR102235166B1 (ko) 2015-09-21 2016-01-19 실시간 로봇 시스템, 로봇 시스템 제어 장치 및 로봇 시스템 제어 방법
KR1020160020779A KR102235947B1 (ko) 2015-09-21 2016-02-22 Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템
KR1020160020775A KR102235167B1 (ko) 2015-09-21 2016-02-22 스텝 기반 실시간 디바이스 시스템 제어 방법, 디바이스 시스템 제어 장치 및 스텝 기반 디바이스 제어 시스템

Country Status (5)

Country Link
US (3) US10857672B2 (ko)
EP (3) EP3354417A4 (ko)
JP (3) JP6771027B2 (ko)
KR (4) KR102235166B1 (ko)
CN (3) CN108025436B (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106737686A (zh) * 2017-01-18 2017-05-31 成都黑盒子电子技术有限公司 一种机器人互动内容扩展方法及系统
CN107584491B (zh) * 2017-09-29 2020-03-24 深圳市盛路物联通讯技术有限公司 一种基于测向天线的机器人移动控制方法及设备
KR102370493B1 (ko) 2017-10-30 2022-03-04 현대자동차주식회사 로봇을 이용한 공유 모빌리티 시스템 및 제어방법
JP6969447B2 (ja) 2018-03-05 2021-11-24 日本電産株式会社 ロボット制御装置、記録の作成方法およびプログラム
WO2019178144A1 (en) * 2018-03-12 2019-09-19 Creator, Inc. Control system architecture and distributed human-machine interface for robot control
US10678228B2 (en) * 2018-04-04 2020-06-09 Invia Robotics, Inc. Autonomous robots performing concerted operation based on shared sensory access and holistic flow of information
JP6481248B1 (ja) * 2018-06-22 2019-03-13 ソフトサーボシステムズ株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
EP3812853B1 (en) 2018-06-22 2024-01-17 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
KR102258667B1 (ko) * 2018-06-22 2021-06-01 소프트 서보 시스템즈 가부시키가이샤 모션 제어 프로그램, 모션 제어 방법 및 모션 제어 장치
US11325263B2 (en) * 2018-06-29 2022-05-10 Teradyne, Inc. System and method for real-time robotic control
US10848160B2 (en) * 2018-07-10 2020-11-24 Aerotech, Inc. Devices, systems, and methods for reducing jitter in control systems
WO2020032257A1 (ja) * 2018-08-10 2020-02-13 川崎重工業株式会社 仲介装置および仲介方法
US10949800B2 (en) * 2018-12-21 2021-03-16 Invia Robotics, Inc. Partitioning and coalescing operation of robots for coordinated autonomous execution
JP7303132B2 (ja) * 2019-01-10 2023-07-04 モベンシス株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
JP7303061B2 (ja) * 2019-01-10 2023-07-04 モベンシス株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
JP7303131B2 (ja) * 2019-01-23 2023-07-04 モベンシス株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
JP7417356B2 (ja) * 2019-01-25 2024-01-18 株式会社ソニー・インタラクティブエンタテインメント ロボット制御システム
JP7190919B2 (ja) 2019-01-25 2022-12-16 株式会社ソニー・インタラクティブエンタテインメント 画像解析システム
WO2020179660A1 (ja) * 2019-03-01 2020-09-10 日本電気株式会社 制御装置、制御システム、ネットワークシステム、制御方法およびコンピュータ可読媒体
CN110008267B (zh) * 2019-03-12 2022-06-14 北京国电智深控制技术有限公司 一种数据处理的系统及方法
JP7003951B2 (ja) * 2019-03-14 2022-01-21 オムロン株式会社 制御システム
CN111745636B (zh) * 2019-05-15 2022-01-07 北京京东乾石科技有限公司 机器人控制方法及控制系统、存储介质及电子设备
CN110297471B (zh) * 2019-06-24 2021-10-01 佛山智异科技开发有限公司 一种工业机器人实验数据的采集方法及其采集装置
CN110497410A (zh) * 2019-08-22 2019-11-26 苏州浪潮智能科技有限公司 一种机器人控制系统及方法
KR102216824B1 (ko) * 2019-11-04 2021-02-18 (주)로보티즈 로봇 시스템의 구동부 연동 모듈 및 방법
JP7444591B2 (ja) * 2019-12-04 2024-03-06 ファナック株式会社 制御装置
CN111085999B (zh) * 2019-12-18 2022-11-15 达闼机器人股份有限公司 机器人控制方法、装置、系统及机器人控制器
US11498211B2 (en) * 2019-12-30 2022-11-15 Intrinsic Innovation Llc Composability framework for robotic control system
CN111061203A (zh) * 2019-12-31 2020-04-24 深圳市优必选科技股份有限公司 机器人的实时控制系统及机器人
CN111745651B (zh) * 2020-06-15 2022-04-05 哈工大机器人(合肥)国际创新研究院 一种智能机器人操作系统结构及其运作方法
EP4225535A1 (en) * 2020-10-12 2023-08-16 The Johns Hopkins University Robot watchdog
CN112757291A (zh) * 2020-12-24 2021-05-07 北方工业大学 一种水下设施表面攀爬机器人通信系统及其控制方法
CN112936276B (zh) * 2021-02-05 2023-07-18 华南理工大学 基于ros系统的类人机器人关节多级控制装置及方法
US20220347846A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US11992948B2 (en) 2021-04-30 2024-05-28 Intrinsic Innovation Llc Real-time robotics control framework
US12011832B2 (en) 2021-04-30 2024-06-18 Intrinsic Innovation Llc Real-time robotics control framework
CN114932961B (zh) * 2022-06-15 2023-10-10 中电海康集团有限公司 一种四足机器人运动控制系统
KR20240011342A (ko) * 2022-07-19 2024-01-26 코가로보틱스 주식회사 로봇 제어를 위한 데이터 처리 장치 및 방법
US20240165816A1 (en) * 2022-11-23 2024-05-23 Intrinsic Innovation Llc Streaming input buffer for real-time robotic control
KR20240137170A (ko) * 2023-03-07 2024-09-20 주식회사 제우스 로봇 제어 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002187082A (ja) 2000-10-11 2002-07-02 Sony Corp ロボット制御システム及びロボット制御方法

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61117605A (ja) * 1984-11-14 1986-06-05 Hitachi Ltd ロボツトの制御方法
JPS63289607A (ja) * 1987-05-21 1988-11-28 Toshiba Corp 知能ロボットのモジュ−ル間通信制御方式
US5047700A (en) * 1988-03-23 1991-09-10 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Universal computer control system for motors
US5038089A (en) * 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
JPH0538689A (ja) * 1991-07-29 1993-02-19 Toshiba Corp 多関節ロボツトの分散制御システム
JP3832517B2 (ja) * 1996-07-05 2006-10-11 セイコーエプソン株式会社 ロボット用コントローラ及びその制御方法
JP3269003B2 (ja) * 1997-05-12 2002-03-25 川崎重工業株式会社 ロボット制御装置
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
JP4402797B2 (ja) * 2000-03-02 2010-01-20 株式会社日立製作所 情報処理装置
JP3486774B2 (ja) * 2000-03-13 2004-01-13 住友重機械工業株式会社 多軸制御システム
US6442451B1 (en) * 2000-12-28 2002-08-27 Robotic Workspace Technologies, Inc. Versatile robot control system
JP3826004B2 (ja) 2001-10-04 2006-09-27 オークマ株式会社 数値制御装置及び制御方法
JP3577028B2 (ja) * 2001-11-07 2004-10-13 川崎重工業株式会社 ロボットの協調制御システム
KR100454714B1 (ko) 2002-02-16 2004-11-05 한국과학기술연구원 작업용 로봇, 작업용 로봇을 위한 액츄에이터 및 작업용 로봇의 제어방법
KR100520779B1 (ko) * 2003-01-09 2005-10-12 삼성중공업 주식회사 Fpga를 이용한 다 축 위치 제어장치
JP3920818B2 (ja) 2003-07-22 2007-05-30 株式会社東芝 スケジューリング方法および情報処理システム
JP4661074B2 (ja) * 2004-04-07 2011-03-30 ソニー株式会社 情報処理システム、情報処理方法、並びにロボット装置
US20060010446A1 (en) 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
JP2006146758A (ja) * 2004-11-24 2006-06-08 Matsushita Electric Ind Co Ltd コンピュータシステム
US7554560B2 (en) * 2004-12-24 2009-06-30 Donald Pieronek System for defining network behaviors within application programs
JP2006255797A (ja) 2005-03-15 2006-09-28 Sanyo Electric Co Ltd ロボット装置
JP2007011978A (ja) 2005-07-04 2007-01-18 Toyota Motor Corp ロボットの運動制御装置
KR20070075957A (ko) * 2006-01-17 2007-07-24 주식회사 로보스타 멀티 타스킹을 위한 타스크 기반 로봇 제어시스템
US20080027580A1 (en) * 2006-07-28 2008-01-31 Hui Zhang Robot programming method and apparatus with both vision and force
KR100896705B1 (ko) * 2007-02-06 2009-05-14 한국과학기술연구원 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템
KR100906121B1 (ko) 2007-10-25 2009-07-07 강원대학교산학협력단 이종 인터페이스들로 구성된 모듈 기반의 지능형로봇시스템을 위한 계층 구조 및 이의 구조화 방법
WO2009089914A1 (en) * 2008-01-18 2009-07-23 Abb Technology Ab A control system for controlling an industrial robot
WO2009123650A1 (en) * 2008-04-02 2009-10-08 Irobot Corporation Robotics systems
CN101826032B (zh) * 2009-03-06 2013-07-31 盈威力新能源科技(上海)有限公司 一种高效实时多任务操作系统内核
IL203642A (en) * 2010-02-01 2014-01-30 Yesaiahu Redler A system and method for optimizing electric current utilization in the control of multiplex motors, and a projectile device containing it
US8364314B2 (en) 2009-04-30 2013-01-29 GM Global Technology Operations LLC Method and apparatus for automatic control of a humanoid robot
KR101234204B1 (ko) * 2010-08-11 2013-02-18 한국과학기술원 로봇의 고 신뢰도 분산 제어를 위한 실시간 감시 방법
JP5582992B2 (ja) 2010-12-13 2014-09-03 川崎重工業株式会社 ロボット教示データの算出方法およびロボットのコントローラ
KR101809973B1 (ko) * 2011-01-24 2017-12-19 삼성전자주식회사 로봇 제어 시스템 및 로봇 제어 방법
JP5613114B2 (ja) 2011-06-29 2014-10-22 本田技研工業株式会社 分散制御システム
DE102011107169A1 (de) * 2011-07-13 2013-01-17 Kuka Roboter Gmbh Steuerung eines Roboter
EP2575002B1 (de) * 2011-09-28 2018-02-21 Siemens Aktiengesellschaft Verfahren und Virtualisierungssoftware für die Bereitstellung von unabhängigen Zeitquellen für virtuelle Laufzeitumgebungen
KR101337650B1 (ko) * 2011-11-02 2013-12-05 삼성중공업 주식회사 실시간 위빙 모션 제어 장치 및 그 방법
KR101275020B1 (ko) 2011-11-18 2013-06-17 한국생산기술연구원 통신망을 이용한 로봇 개발 플랫폼의 집단협업공간 제공시스템
KR101399588B1 (ko) * 2012-03-29 2014-05-27 주식회사 엔티리서치 의료용 수술 로봇 장치
JP5943676B2 (ja) * 2012-03-30 2016-07-05 株式会社デンソーウェーブ ロボットの制御システム及びエンコーダシステム
US9461471B2 (en) * 2012-06-20 2016-10-04 Causam Energy, Inc System and methods for actively managing electric power over an electric power grid and providing revenue grade date usable for settlement
JP2014027595A (ja) * 2012-07-30 2014-02-06 Yamaha Corp 音響信号処理方法および音声信号処理システム
CN104798046A (zh) * 2012-10-01 2015-07-22 Abb技术有限公司 对称多处理器布置、安全关键系统及其方法
BR112015027632A2 (pt) * 2013-05-10 2017-08-22 Cnh Ind America Llc Arquitetura de controle de robôs múltiplos e método para controlar uma arquitetura de robôs múltiplos
KR101491622B1 (ko) 2014-02-17 2015-02-11 연세대학교 산학협력단 자율 주행형 차량의 주행 제어 장치 및 방법
US20160019105A1 (en) * 2014-07-16 2016-01-21 Machiko MIKAMI Computer embedded apparatus, recording medium and computer embedded apparatus test system
CN110087960B (zh) * 2016-12-21 2022-06-17 本田技研工业株式会社 车辆控制系统、车辆控制方法及存储介质
EP3548845B1 (en) * 2017-01-12 2021-10-13 Mobileye Vision Technologies Ltd. Navigation based on vehicle activity
US11402839B2 (en) * 2017-03-07 2022-08-02 Robert Bosch Gmbh Action planning system and method for autonomous vehicles
US10513268B2 (en) * 2017-04-07 2019-12-24 Steering Solutions Ip Holding Corporation Vehicle safety system
JP6704890B2 (ja) * 2017-11-08 2020-06-03 本田技研工業株式会社 車両制御装置、車両制御方法、およびプログラム
US10423558B1 (en) * 2018-08-08 2019-09-24 Apple Inc. Systems and methods for controlling data on a bus using latency

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002187082A (ja) 2000-10-11 2002-07-02 Sony Corp ロボット制御システム及びロボット制御方法

Also Published As

Publication number Publication date
US11135719B2 (en) 2021-10-05
US10857672B2 (en) 2020-12-08
KR20170034754A (ko) 2017-03-29
JP6771027B2 (ja) 2020-10-21
CN108136577B (zh) 2021-10-08
US20180281195A1 (en) 2018-10-04
CN108136578B (zh) 2021-08-20
EP3354415A4 (en) 2019-08-21
US20180281187A1 (en) 2018-10-04
JP6938473B2 (ja) 2021-09-22
CN108025436B (zh) 2021-08-03
EP3354416A1 (en) 2018-08-01
KR102235947B1 (ko) 2021-04-05
KR20170034752A (ko) 2017-03-29
EP3354417A4 (en) 2019-07-10
CN108136577A (zh) 2018-06-08
KR102235167B9 (ko) 2021-09-17
KR20170034755A (ko) 2017-03-29
KR102235167B1 (ko) 2021-04-02
US20180229367A1 (en) 2018-08-16
KR20170034753A (ko) 2017-03-29
EP3354417A1 (en) 2018-08-01
JP2018530443A (ja) 2018-10-18
KR102235166B1 (ko) 2021-04-02
CN108025436A (zh) 2018-05-11
EP3354416A4 (en) 2019-05-29
EP3354415A1 (en) 2018-08-01
US10864635B2 (en) 2020-12-15
CN108136578A (zh) 2018-06-08
JP2018527680A (ja) 2018-09-20
JP6836585B2 (ja) 2021-03-03
JP2018535468A (ja) 2018-11-29

Similar Documents

Publication Publication Date Title
KR102235168B1 (ko) 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
AU2016102440A4 (en) Autonomous localization and navigation equipment, localization and navigation method, and autonomous localization and navigation system
Guzmán et al. PELEA: a domain-independent architecture for planning, execution and learning
Hu et al. Model continuity to support software development for distributed robotic systems: A team formation example
WO2017052060A1 (ko) 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
Krupitzer et al. RoCoSys: A framework for coordination of mobile IoT devices
Tira-Thompson et al. The Tekkotsu robotics development environment
Nestinger et al. Mobile-R: A reconfigurable cooperative control platform for rapid deployment of multi-robot systems
Wesz Integrating robot control into the Agentspeak (L) programming language
Villemure et al. SwarmUS: An open hardware and software on-board platform for swarm robotics development
Ouellet et al. Control of swarms of autonomous robots using Model Driven Development-A state-based approach
Taherkordi et al. Service virtualization for self-adaptation in mobile cyber-physical systems
KR20240083288A (ko) 로봇 제어용 코어엔진을 이용한 모션 제어 시스템
KR20110064895A (ko) 로봇 시스템의 행위 기반 태스크 구현 방법
Nebot et al. A framework for the development of cooperative robotic applications
Muecke et al. A distributed, heterogeneous, target-optimized operating system for a multi-robot search and rescue application
Karaduman et al. Development of autonomous cyber-physical systems using intelligent agents and LEGO technology
Domínguez-Brito et al. Coolbot: A component model and software infrastructure for robotics
Choi et al. Issues in software architectures for intelligent underwater robots
Muratore et al. XBot: A Cross-Robot Software Framework for Real-Time Control
Kwe Programming platforms of autonomous robotic systems
Medvidovic et al. RoboPrism, a framework that supports software-architecture-based de-velopment of robotic systems, is accessible to nonexperts in robotics, deals effectively with heterogeneity in distributed and mobile robotics systems, and facilitates adaptation in complex, dynamic environments.
Ringdahl Umeå University November 18, 2014

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