KR101313692B1 - 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 - Google Patents

로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 Download PDF

Info

Publication number
KR101313692B1
KR101313692B1 KR1020090126638A KR20090126638A KR101313692B1 KR 101313692 B1 KR101313692 B1 KR 101313692B1 KR 1020090126638 A KR1020090126638 A KR 1020090126638A KR 20090126638 A KR20090126638 A KR 20090126638A KR 101313692 B1 KR101313692 B1 KR 101313692B1
Authority
KR
South Korea
Prior art keywords
component
executor
robot
software component
execution
Prior art date
Application number
KR1020090126638A
Other languages
English (en)
Other versions
KR20110070007A (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 KR1020090126638A priority Critical patent/KR101313692B1/ko
Priority to US12/843,513 priority patent/US8332069B2/en
Publication of KR20110070007A publication Critical patent/KR20110070007A/ko
Application granted granted Critical
Publication of KR101313692B1 publication Critical patent/KR101313692B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

본 발명은 분산 환경에서 약결합된 형태를 취하고 있는 로봇용 소프트웨어 컴포넌트들을 구동시키는 컴포넌트 실행 방법에 있어서, 다중 컴포넌트를 실행할 때, 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 방지하는 방법 및 그 장치에 관한 것이다.
본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법은, 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 컴포넌트 실행기에 할당하는 단계, 운영체제로부터 하나의 쓰레드를 할당받아 상기 컴포넌트 실행기를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계, 상기 실행한 결과를 실행기 모니터에 통보하는 단계, 및 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우 새로운 컴포넌트 실행기를 생성하는 단계를 포함하여 구성될 수 있다.
로봇, 소프트웨어 컴포넌트, 고장 감내, Fault Tolerance

Description

로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 {Fault Tolerance Method for Robot Software Component}
본 발명은 분산 환경에서 약결합된 형태를 취하고 있는 로봇용 소프트웨어 컴포넌트들을 구동시키는 컴포넌트 실행 방법에 있어서, 다중 컴포넌트를 실행할 때, 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 방지하는 방법 및 그 장치에 관한 것이다.
로봇용 소프트웨어 컴포넌트는 재사용 및 교체가 가능한 소프트웨어 모듈로서, 외부 컴포넌트 사용자 입장에서는 컴포넌트가 제공하는 인터페이스만을 이용하며 해당 인터페이스에 대한 상세 구현은 알 필요 없이 컴포넌트의 조합만으로 로봇 응용을 구성하게 된다.
로봇 소프트웨어 구조에서 사용되는 로봇 컴포넌트는 각각의 내부상태를 갖으며 능동적인 형태로 동작하고, 컴포넌트 인터페이스를 통해 컴포넌트 상호 간의 데이터 교환 및 메쏘드(method) 호출이 수행되면서 로봇 제어가 이루어진다. 최근 에 이러한 로봇의 특징을 지원하기 위해 Orocos(Open Robot Control Software), RTC(Robot Technology Component) 등은 능동적 패턴(active pattern) 형태의 컴포넌트를 이용한 로봇 프로그래밍 방식을 제시하고 있다.
로봇용 소프트웨어 컴포넌트들을 구동시키기 위해서는 운영체제의 쓰레드(thread)를 이용하여 컴포넌트들을 주어진 주기대로 실행하게 된다. 하지만, 로봇은 다양한 장치와 알고리즘이 사용되므로 사용되는 컴포넌트의 수가 많을 수 밖에 없으며, 이런 경우 개별 컴포넌트마다 하나의 쓰레드를 할당하여 사용하게 되면 운영체제의 시스템 자원이 낭비될 뿐만 아니라 쓰레드 문맥 교환 과정이 빈번하게 발생되어 시스템 성능을 저하시키게 된다.
따라서, OROCOS와 같이 종래 기술에서는 개별 컴포넌트 마다 쓰레드를 할당하여 발생되는 시스템 성능의 저하를 막기 위해서 주기가 동일한 컴포넌트는 하나의 쓰레드로 처리하도록 하여 시스템 성능 저하를 막도록 하였다.
이와 같이 여러 컴포넌트를 하나의 쓰레드로 처리하게 되는 경우에는 매 주기마다 해당 쓰레드에 등록된 컴포넌트를 순차적으로 처리하게 된다.
하지만, 하나의 쓰레드에 등록된 컴포넌트를 순차적으로 처리하는 도중에 특정 컴포넌트의 고장이 발생하거나 컴포넌트의 실행시간이 길어져서 주어진 주기 내에 모든 컴포넌트를 실행하지 못하게 되는 경우에는, 다른 컴포넌트의 실행도 방해하게 되고 결국에는 컴포넌트 하나의 고장으로 인해서 전체 로봇 시스템의 동작에 이상이 발생된다.
본 발명의 실시예는 앞에서 설명한 문제점을 해결하기 위한 것으로서, 로봇용 다중 소프트웨어 컴포넌트를 실행할 때, 시스템 성능을 유지하면서도 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 방지하는 방법 및 장치를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치는, 운영체제로부터 쓰레드(thread)를 할당받아 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 상기 쓰레드를 이용하여 실행하는 컴포넌트 실행기, 상기 컴포넌트 실행기의 동작을 주기적으로 모니터링하여 상기 컴포넌트 실행기가 실행하는 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 고장 여부를 판단하는 실행기 모니터, 및 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 할당하여 상기 컴포넌트 실행기를 생성하며, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우 새로운 컴포넌트 실행기를 생성하는 실행기 관리자를 포함하여 구성된다.
여기서, 상기 컴포넌트 실행기는, 상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행할 수 있다.
그리고, 상기 컴포넌트 실행기는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장할 수 있다.
또한, 상기 컴포넌트 실행기는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료되면, 상기 실행기 모니터에 실행 완료 통보를 할 수 있다.
한편, 상기 실행기 모니터는, 상기 컴포넌트 실행기로부터 상기 실행 완료 통보가 정해진 주기에 따라 전달되는지를 감시할 수 있다.
또한, 상기 실행기 모니터는, 미리 정해진 횟수의 주기 동안 상기 컴포넌트 실행기에서 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하여 상기 실행기 관리자에 통보할 수 있다.
그리고, 상기 실행기 관리자는, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 상기 새로운 컴포넌트 실행기를 생성할 수 있다.
또한, 상기 컴포넌트 실행기는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하며, 상기 실행기 관리자는, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 판단할 수 있다.
여기서, 상기 실행기 관리자는, 상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시킬 수 있다.
그리고, 상기 실행기 관리자는 상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제할 수도 있다.
본 발명의 또 다른 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법은, 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 컴포넌트 실행기에 할당하는 단계, 운영체제로부터 하나의 쓰레드를 할당받아 상기 컴포넌트 실행기를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계, 상기 실행한 결과를 실행기 모니터에 통보하는 단계, 및 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우 새로운 컴포넌트 실행기를 생성하는 단계를 포함하여 구성될 수 있다.
이때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계는, 상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행하는 것을 특징으로 할 수 있다.
그리고, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행 시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장할 수 있다.
여기서, 상기 실행기 모니터에 통보하는 단계는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료될 때마다, 상기 실행기 모니터에 실행 완료 통보를 하는 것을 특징으로 할 수 있다.
한편, 상기 컴포넌트 실행기의 동작에 고장이 있는 지 여부는 상기 실행 완료 통보가 정해진 주기에 따라 전달되고 있는지에 의해 결정되는 것을 특징으로 할 수 있다.
또한, 미리 정해진 횟수의 주기 동안 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하는 것을 특징으로 할 수 있다.
그리고, 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 상기 새로운 컴포넌트 실행기를 생성하는 단계를 더 포함할 수 있다.
한편, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계는, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행 시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는 것을 특징으로 하며, 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포 넌트가 어느 것인지 판단하는 것을 특징으로 할 수 있다.
또, 상기 컴포넌트 실행기의 동작을 폐기하고 새로운 컴포넌트 실행기를 생성하는 단계는, 상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 동일한 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시키는 것을 특징으로 할 수 있다.
아울러, 상기 새로운 컴포넌트 실행기에 등록하여 이전시키는 과정과 함께 상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제할 수도 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상기와 같은 구성을 갖는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포포넌트 실행에서의 고장 감내 방법 및 장치에 의하면 다중의 소프트웨어 컴포넌트 각각의 성능을 유지하면서도 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되어 시스템 전체의 성능을 저하시키는 것을 방지할 수 있는 이점이 있다.
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 실시형태의 모듈, 기능 블록들 또는 수단들은 전자 회로, 집적 회로, ASIC (Application Specific Integrated Circuit) 등 공지된 다양한 소자들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 1은 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치의 구성을 개념적으로 나타낸 블록도이며, 도 2는 도 1에 표시된 고장 감내 장치의 인터페이스와 내부 자료 구조를 도시한 클래스 다이어그램이다.
도 1 및 도 2을 참조하면, 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치는, 운영체제로부터 쓰레드(thread)를 할당받아 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트들을 상기 할당받은 하나의 쓰레드를 이용하여 실행하는 컴포넌트 실행기, 컴포넌트 실행기의 동작을 주기적으로 모니터링하여 컴포넌트 실행기가 실행하는 로봇용 소프트웨어 컴포넌트의 고장 여부를 판단하는 실행기 모니터, 및 동일한 우선순위와 주기를 갖는 로봇용 소프트웨어 컴포넌트들을 할당하여 컴포넌트 실행기를 생성하며, 실행기 모니터가 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단하는 경우 새로운 컴포넌트 실행기를 생성하는 실행기 관리자를 포함하여 구성된다.
운영체제로부터 쓰레드를 할당받아 여러 개의 컴포넌트를 실행시키기 위해서는 쓰레드와 컴포넌트 사이를 연결해주기 위한 매개체가 필요하다. 본 발명의 실시예에서는 컴포넌트 실행기가 운영체제로부터 쓰레드를 할당받고, 여러 컴포넌트들을 등록하여 할당받은 쓰레드로 컴포넌트들을 실행시키는 역할을 수행한다.
컴포넌트 실행기는 실행기 관리자를 통해서 생성되며, 실행기 모니터가 컴포넌트의 실행을 모니터링한다. 컴포넌트 실행기와 실행기 모니터, 실행기 관리자의 인터페이스와 내부 자료 구조는 도 2의 클래스 다이어그램에 나타나 있다.
컴포넌트 실행기는 우선순위와 주기를 갖고 있어서, 같은 우선순위와 같은 주기를 갖는 컴포넌트들을 같은 컴포넌트 실행기에 등록하여 실행시킨다. 컴포넌트 실행기에 설정된 우선순위와 주기는 컴포넌트 실행기가 여러 개인 경우 실시간 운영체제(Real Time Operation System:RTOS)의 스케쥴링 정책에 사용된다.
한편, 도 3은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법이 수행되는 순차적인 흐름을 도시한 흐름도이다.
도 3을 참조하면, 컴포넌트 실행기는 운영체제의 스케쥴링에 따라 정해진 주기가 돌아왔을 때 자신이 갖고 있는 쓰레드를 이용하여 컴포넌트 실행기에 등록된 컴포넌트들을 순차적으로 실행시킨다. 이때, 컴포넌트들을 순차적으로 실행시키면 서, 실행시키고자 하는 컴포넌트 정보를 컴포넌트 실행기 내부에 저장하여 놓는다. 컴포넌트 실행기는, 등록된 컴포넌트들의 순차적인 실행을 모두 마치고, 한주기 실행이 완료되면, 실행기 모니터에 실행 완료 통보를 한다(1).
한편, 실행기 모니터는 컴포넌트 실행기로부터 실행 완료 통보가 정해진 주기에 따라 전달되는지를 계속 감시하는 역할을 수행한다(2). 만약, 미리 정해진 몇번의 주기동안 컴포넌트 실행기에서 실행 완료 통보가 전달되지 않을 경우, 컴포넌트를 실행하는 컴포넌트 실행기에 고장이 발생한 것으로 판단하고, 이를 실행기 관리자에 통보한다(3).
한편, 고장 판단을 통보받은 실행기 관리자는 고장난 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 컴포넌트 실행기를 새로 생성한다(4). 그리고, 실행기 관리자는, 현재 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 컴포넌트 실행기에 저장된 정보를 이용하여 알아낸 후, 고장난 컴포넌트 실행기에서 현재 실행되고 있는 컴포넌트를 제외한 컴포넌트들을 새로운 컴포넌트 실행기에 등록하여 이전시킨다(6).
한편, 기존 컴포넌트 실행기에서는 새로운 컴포넌트 실행기로 이전 등록된 컴포넌트들을 삭제한다(5). 새롭게 생성된 컴포넌트 실행기는 고장난 컴포넌트를 제외한 다른 컴포넌트들을 등록하여 운영체제로부터 새롭게 쓰레드를 할당받고 순차적 실행을 재개한다(7).
이처럼, 컴포넌트 실행기의 동작을 매주기마다 모니터링하여 고장 여부를 판단하고, 신속하게 고장난 컴포넌트를 검출해내어 새로운 컴포넌트 실행기를 생성할 뿐만 아니라, 고장난 컴포넌트를 컴포넌트 실행과정 중에서 순차적으로 저장한 정보를 이용하여 알아낸 후 선별적으로 제외하여 새로운 컴포넌트 실행을 수행하기 때문에 특정 컴포넌트의 고장이 전체 시스템의 고장으로 확대되는 것을 신속하고 정확하게 방지할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성요소의 재질, 크기 등을 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
도 1은 본 발명의 실시예에 따른, 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치의 구성을 개념적으로 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치의 인터페이스와 내부 자료 구조를 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법이 수행되는 순차적인 흐름을 도시한 흐름도이다.

Claims (20)

  1. 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법을 수행하기 위한 장치에 있어서,
    운영체제로부터 쓰레드(thread)를 할당받아 동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 상기 쓰레드를 이용하여 실행하고, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는 컴포넌트 실행기,
    상기 컴포넌트 실행기의 동작을 주기적으로 모니터링하여 상기 컴포넌트 실행기가 실행하는 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 고장 여부를 판단하는 실행기 모니터, 및
    동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 할당하여 상기 컴포넌트 실행기를 생성하며, 상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 상기 새로운 컴포넌트 실행기를 생성하는 실행기 관리자를 포함하고,
    상기 실행기 관리자는,
    상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 판단하고,
    상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시키고,
    상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제하는 것인, 로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
  2. 제1항에 있어서,
    상기 컴포넌트 실행기는,
    상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
  3. 제2항에 있어서,
    상기 컴포넌트 실행기는,
    상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행할 때, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
  4. 제1항에 있어서,
    상기 컴포넌트 실행기는,
    상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료되면, 상기 실행기 모니터에 실행 완료 통보를 하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
  5. 제4항에 있어서,
    상기 실행기 모니터는,
    상기 컴포넌트 실행기로부터 되는 상기 실행 완료 통보가 정해진 주기에 따라 전달되는지를 감시하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
  6. 제4항에 있어서,
    상기 실행기 모니터는,
    미리 정해진 횟수의 주기 동안 상기 컴포넌트 실행기에서 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하여 상기 실행기 관리자에 통보하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 로봇용 소프트웨어 컴포넌트를 구동시키는데 있어서 실행기 관리자가 컴포넌트 구동 시 발생하는 고장을 감내하는(fault tolerance) 방법에 있어서,
    동일한 우선순위와 주기를 갖는 적어도 하나의 로봇용 소프트웨어 컴포넌트를 컴포넌트 실행기에 할당하는 단계,
    운영체제로부터 하나의 쓰레드를 할당받아 상기 컴포넌트 실행기를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하고, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는 단계,
    상기 실행한 결과를 실행기 모니터에 통보하는 단계, 및
    상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 컴포넌트 실행기와 동일한 우선순위와 주기를 갖는 새로운 컴포넌트 실행기를 생성하는 단계를 포함하고,
    상기 실행기 관리자는,
    상기 실행기 모니터가 상기 컴포넌트 실행기의 동작에 고장이 있는 것으로 판단한 경우, 상기 순차적으로 저장된 정보를 이용하여 상기 컴포넌트 실행기가 실행 중인 컴포넌트가 어느 것인지 판단하고,
    상기 컴포넌트 실행기에서 실행 중인 것으로 판단된 컴포넌트를 제외한 나머지 우선순위와 주기를 갖는 컴포넌트를 상기 새로운 컴포넌트 실행기에 등록하여 이전시키고,
    상기 새로운 컴포넌트 실행기에 등록하여 이전시킨 컴포넌트들을 상기 컴포넌트 실행기에서 삭제하는 것인, 로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
  12. 제11항에 있어서,
    상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 실행하는 단계는,
    상기 운영체제의 스케쥴링 정책에 따른 기 설정된 주기가 돌아왔을 때, 상기 할당된 쓰레드를 이용하여 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행하는 것을 특징으로 하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
  13. 제12항에 있어서,
    상기 적어도 하나의 로봇용 소프트웨어 컴포넌트를 순차적으로 실행 시, 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트에 대한 정보를 순차적으로 저장하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
  14. 제11항에 있어서,
    상기 실행기 모니터에 통보하는 단계는,
    상기 적어도 하나의 로봇용 소프트웨어 컴포넌트의 한 주기 실행이 완료될 때마다, 상기 실행기 모니터에 실행 완료 통보를 하는 것을 특징으로 하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
  15. 제14항에 있어서,
    상기 컴포넌트 실행기의 동작에 고장이 있는 지 여부는 상기 실행 완료 통보가 정해진 주기에 따라 전달되고 있는지에 의해 결정되는 것을 특징으로 하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
  16. 제14항에 있어서,
    미리 정해진 횟수의 주기 동안 상기 실행 완료 통보가 전달되지 않을 경우 상기 적어도 하나의 로봇용 소프트웨어 컴포넌트 중 하나에 고장이 발생한 것으로 판단하는 것을 특징으로 하는
    로봇용 소프트웨어 컴포넌트 실행 동작의 고장 감내 방법.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020090126638A 2009-12-18 2009-12-18 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 KR101313692B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090126638A KR101313692B1 (ko) 2009-12-18 2009-12-18 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치
US12/843,513 US8332069B2 (en) 2009-12-18 2010-07-26 Fault tolerance method and apparatus for robot software component

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090126638A KR101313692B1 (ko) 2009-12-18 2009-12-18 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110070007A KR20110070007A (ko) 2011-06-24
KR101313692B1 true KR101313692B1 (ko) 2013-10-02

Family

ID=44152215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090126638A KR101313692B1 (ko) 2009-12-18 2009-12-18 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치

Country Status (2)

Country Link
US (1) US8332069B2 (ko)
KR (1) KR101313692B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018074750A1 (ko) * 2016-10-18 2018-04-26 주식회사 유니온플레이스 열차 정보 관리 장치
KR20190132097A (ko) * 2018-05-18 2019-11-27 강원대학교산학협력단 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치
KR102387137B1 (ko) * 2020-12-23 2022-04-15 재단법인대구경북과학기술원 전자식 변속 제어기의 고장 검출 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110153079A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunication Research Institute Apparatus and method for distributing and monitoring robot application and robot driven thereby
KR20140062288A (ko) * 2012-11-14 2014-05-23 한국전자통신연구원 로봇 컴포넌트 오류 처리 장치 및 그 방법
KR102251991B1 (ko) 2015-05-14 2021-05-17 한국전자통신연구원 결함 주입 및 결함 감내 분석을 위한 방법 및 장치
IL249816B (en) * 2016-12-28 2019-03-31 Gross Amit System and methods for diagnosing and repairing a smart mobile device by neutralization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290637A (ja) * 2000-04-05 2001-10-19 Nec Corp コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体
JP2006338069A (ja) * 2005-05-31 2006-12-14 Hitachi Ltd コンポーネントソフトウェアの運用方法および運用基盤

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983161A (en) * 1993-08-11 1999-11-09 Lemelson; Jerome H. GPS vehicle collision avoidance warning and control system and method
US6748556B1 (en) 2000-08-15 2004-06-08 International Business Machines Corporation Changing the thread capacity of a multithreaded computer processor
KR20070053581A (ko) 2005-11-21 2007-05-25 엘지전자 주식회사 사용자인식 소프트웨어 컴포넌트 api에서 에러 핸들링방법
US8355818B2 (en) * 2009-09-03 2013-01-15 Battelle Energy Alliance, Llc Robots, systems, and methods for hazard evaluation and visualization
US8073564B2 (en) * 2006-07-05 2011-12-06 Battelle Energy Alliance, Llc Multi-robot control interface
US7801644B2 (en) * 2006-07-05 2010-09-21 Battelle Energy Alliance, Llc Generic robot architecture
US7668621B2 (en) * 2006-07-05 2010-02-23 The United States Of America As Represented By The United States Department Of Energy Robotic guarded motion system and method
US7211980B1 (en) * 2006-07-05 2007-05-01 Battelle Energy Alliance, Llc Robotic follow system and method
US7974738B2 (en) * 2006-07-05 2011-07-05 Battelle Energy Alliance, Llc Robotics virtual rail system and method
US7587260B2 (en) * 2006-07-05 2009-09-08 Battelle Energy Alliance, Llc Autonomous navigation system and method
US7584020B2 (en) * 2006-07-05 2009-09-01 Battelle Energy Alliance, Llc Occupancy change detection system and method
US7620477B2 (en) * 2006-07-05 2009-11-17 Battelle Energy Alliance, Llc Robotic intelligence kernel
KR100877715B1 (ko) 2007-02-02 2009-01-09 한국과학기술연구원 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조
KR100896705B1 (ko) 2007-02-06 2009-05-14 한국과학기술연구원 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템
US7926035B2 (en) * 2007-04-24 2011-04-12 Microsoft Corporation Testing multi-thread software using prioritized context switch limits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290637A (ja) * 2000-04-05 2001-10-19 Nec Corp コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体
JP2006338069A (ja) * 2005-05-31 2006-12-14 Hitachi Ltd コンポーネントソフトウェアの運用方法および運用基盤

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018074750A1 (ko) * 2016-10-18 2018-04-26 주식회사 유니온플레이스 열차 정보 관리 장치
KR20190132097A (ko) * 2018-05-18 2019-11-27 강원대학교산학협력단 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치
KR102149171B1 (ko) * 2018-05-18 2020-08-28 강원대학교산학협력단 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치
KR102387137B1 (ko) * 2020-12-23 2022-04-15 재단법인대구경북과학기술원 전자식 변속 제어기의 고장 검출 시스템

Also Published As

Publication number Publication date
US8332069B2 (en) 2012-12-11
KR20110070007A (ko) 2011-06-24
US20110153073A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
KR101313692B1 (ko) 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치
US20200379858A1 (en) Proactive cluster compute node migration at next checkpoint of cluster upon predicted node failure
CN105389243A (zh) 一种容器监控方法和装置
US9298553B2 (en) Methods, apparatus and system for selective duplication of subtasks
US9519532B2 (en) Handling system interrupts with long-running recovery actions
EP2672341A1 (en) Safety control device and safety control method
WO2014200551A1 (en) Identifying the introduction of a software failure
US20150089505A1 (en) Systems and methods for fault tolerant batch processing in a virtual environment
US9329937B1 (en) High availability architecture
CN105408868B (zh) 稳健的硬件/软件错误恢复系统
US20140129880A1 (en) Generation of memory dump of a computer process without terminating the computer process
CN104391754A (zh) 一种任务异常的处理方法及装置
KR102020994B1 (ko) 결함 주입 테스트 방법 및 장치
TWI654561B (zh) 用於控制時間密集的指令的資訊處理設備及方法
US9563494B2 (en) Systems and methods for managing task watchdog status register entries
Guo et al. Real-time fault-tolerant scheduling algorithm with rearrangement in cloud systems
JP6303486B2 (ja) 情報処理システム、監視方法、及び、プログラム
Zagan et al. Improving the performances of the nMPRA processor using a custom interrupt management scheduling policy
US8984518B2 (en) Apparatus and method for executing components based on thread pool
CN114661432A (zh) 任务调度方法、装置、设备及存储介质
Alho et al. Software fault detection and recovery in critical real-time systems: An approach based on loose coupling
JP2018165908A (ja) 情報処理装置、情報処理方法及びプログラム
JP6819061B2 (ja) 情報処理装置、プロセス切り替え方法及びプログラム
CN116820715A (zh) 作业重启方法、装置、计算机设备和可读存储介质
JP2008077388A (ja) マルチプロセッサ制御システム、方法、およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E801 Decision on dismissal of amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee