KR20130029251A - 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체 - Google Patents

컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체 Download PDF

Info

Publication number
KR20130029251A
KR20130029251A KR1020110092553A KR20110092553A KR20130029251A KR 20130029251 A KR20130029251 A KR 20130029251A KR 1020110092553 A KR1020110092553 A KR 1020110092553A KR 20110092553 A KR20110092553 A KR 20110092553A KR 20130029251 A KR20130029251 A KR 20130029251A
Authority
KR
South Korea
Prior art keywords
component
components
virtual
port
application
Prior art date
Application number
KR1020110092553A
Other languages
English (en)
Other versions
KR101773102B1 (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 KR1020110092553A priority Critical patent/KR101773102B1/ko
Priority to US13/595,256 priority patent/US8769488B2/en
Publication of KR20130029251A publication Critical patent/KR20130029251A/ko
Application granted granted Critical
Publication of KR101773102B1 publication Critical patent/KR101773102B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/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
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23389Modular program, each process has corresponding program module

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 로봇용 응용 소프트웨어 생성을 위해 컴포넌트를 조합할 때, 다이어그램 상에서 컴포넌트간의 연결 관계를 단순화하여 보다 손쉽게 컴포넌트들을 조합하여 로봇 응용 프로그램을 완성할 수 있는 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체를 제공한다.
이를 위하여 본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치는 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소와, 컴포넌트 저장소에 저장된 컴포넌트들의 선택을 통해 응용 구성도를 생성하는 응용 구성도 생성부와, 응용 구성도 내 컴포넌트 및 응용 구성도 내 컴포넌트의 포트 정보 및 응용 구성도 내 컴포넌트간 포트 연결 정보가 저장되어 있는 정보 저장소와, 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하는 가상 컴포넌트 처리부를 포함할 수 있다.

Description

컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체{COMPONENT COMPOSING APPARATUS AND METHOD USING VIRTUAL COMPONENTS IN COMPONENT-BASED ROBOT SOFTWARE DEVELOPMENT}
본 발명은 로봇 응용 소프트웨어 생성을 위한 컴포넌트 조합에 관한 것으로, 로봇 응용을 위한 응용 구성도에 참여한 컴포넌트 중 선택된 컴포넌트와 같은 가상 컴포넌트를 복사하여 응용 구성도에 참여할 수 있도록 하여 복잡한 연결 관계를 단순화시킬 수 있는 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체에 관한 것이다.
일반적으로 로봇용 소프트웨어 컴포넌트는 재사용 및 교체가 가능한 소프트웨어 모듈로서, 외부 컴포넌트 사용자 입장에서는 컴포넌트가 제공하는 인터페이스만을 이용하며 해당 인터페이스에 대한 상세 구현은 알 필요가 없이 컴포넌트의 조합만으로 로봇 응용을 구성하게 된다.
로봇 소프트웨어 구조에서 사용되는 로봇 컴포넌트는 각각의 내부상태를 가지며 능동적인 형태로 동작하고, 컴포넌트 인터페이스를 통해 컴포넌트 상호간의 데이터 교환 및 메쏘드 호출이 수행되면서 로봇 제어가 이루어진다. 최근에 이러한 로봇의 특징을 지원하기 위해 OPRoS(Open Platform for Robotic Services), RTC(Robot Technology Component), Orocos(Open RObot Control Software), ROS(Robot Operating System)등은 능동적 패턴(active pattern) 형태의 컴포넌트를 이용한 로봇 프로그래밍 방식을 제시하고 있다.
상기와 같은 컴포넌트 기반 개발 방법론에 따라 만들어진 개별 컴포넌트들은 실세계의 디바이스 및 각종 알고리즘에 대한 대리인 역할을 수행하게 된다. 로봇 개발자들은 미리 만들어지고 독립적으로 테스트가 완료된 컴포넌트들을 조합하여 로봇의 서비스를 완성할 수 있게 된다.
한편, 이러한 컴포넌트들은 컴포넌트 조합 도구에 의해서 조합될 수 있다. 컴포넌트 조합도구는 로봇 서비스 개발자들로 하여금 응용 구성도(Diagram) 상에서 이러한 개별 컴포넌트들을 연결하여 서비스를 완성할 수 있게 해주는 GUI(Graphical User Interface) 기반의 모델링 도구이다. GUI 기반의 컴포넌트 조합도구를 이용하여 컴포넌트들을 조합하는 경우, 컴포넌트의 인터페이스 포트가 다른 컴포넌트와 어떻게 연결되는지 시각적으로 확인하면서 조합할 수 있어서 손쉽게 컴포넌트들을 조합하여 시스템을 완성할 수 있다.
하지만, 로봇이 점점 다양한 서비스를 제공할 수 있도록 로봇을 구성하는 각종 디바이스가 늘어나고 있으며 여러 가지 알고리즘들이 추가되어, 각종 디바이스 및 알고리즘을 대변하는 컴포넌트의 개수도 늘어나고 있으며, 이들을 조합하기 위한 컴포넌트간의 연결 관계도 비례하여 증가되고 있다.
따라서, GUI 기반 컴포넌트 조합 장치를 이용하여 응용 구성도에 너무 많은 개수의 컴포넌트들의 연결 관계를 표현하려면, 연결선이 서로 교차되거나, 멀리 떨어져 있는 컴포넌트 사이에 연결을 해야 하거나, 반대 방향에 있는 컴포넌트 인터페이스 포트와 연결을 해야 하는 등의 문제로 응용 구성도 상에 표시되는 연결선이 매우 복잡해져서 시스템의 구성을 이해하는데 방해가 되어, 컴포넌트를 조합하여 시스템을 완성하는데 어려움이 따르는 문제가 있다.
대한민국 등록특허 등록번호 제0426312호 "컴포넌트 기반 소프트웨어 시스템의 컴포넌트 식별 장치 및 그 방법과 이에 관련된 프로그램의 기록매체"에는 객체간의 관계만을 고려하거나 혹은 유스케이스만을 고려하여 컴포넌트를 식별하였을 경우 발생되는 재사용성의 문제를 해결하고, 컴포넌트 식별의 과정을 체계적이면서 자동화된 도구로 생성하는 방법에 대한 기술이 개시되어 있다.
본 발명은 이와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, 로봇용 응용 소프트웨어 생성을 위해 컴포넌트를 조합할 때, 다이어그램 상에서 컴포넌트간의 연결 관계를 단순화하여 보다 손쉽게 컴포넌트들을 조합하여 로봇 응용 프로그램을 완성할 수 있는 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체를 제공한다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 관점에 따르면, 본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치는 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소와, 상기 컴포넌트 저장소에 저장된 컴포넌트들의 선택을 통해 응용 구성도를 생성하는 응용 구성도 생성부와, 상기 응용 구성도 내 컴포넌트 및 상기 응용 구성도 내 컴포넌트의 포트 정보 및 상기 응용 구성도 내 컴포넌트간 포트 연결 정보가 저장되어 있는 정보 저장소와, 상기 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하는 가상 컴포넌트 처리부를 포함할 수 있다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치에서 상기 가상 컴포넌트 처리부는, 상기 가상 컴포넌트의 위치를 지정할 수 있는 인터페이스를 제공하며, 상기 인터페이스를 통해 지정된 위치에 상기 가상 컴포넌트를 생성하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치에서 상기 가상 컴포넌트 처리부는, 상기 정보 저장소 내 상기 선택한 컴포넌트의 정보를 이용하여 상기 가상 컴포넌트에 대한 정보를 생성하되, 상기 가상 컴포넌트와 상기 선택한 컴포넌트를 구별하기 위한 식별자 값을 설정하여 상기 가상 컴포넌트에 대한 정보를 생성하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치에서 상기 가상 컴포넌트 처리부는, 상기 가상 컴포넌트에 대응되는 컴포넌트가 삭제되는 경우 상기 응용 구성도 내 가상 컴포넌트를 삭제시키는 것을 특징으로 한다.
본 발명의 다른 관점에 따르면, 본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법은 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소에 저장된 컴포넌트들 중 사용자가 선택한 컴포넌트를 이용하여 응용 구성도를 생성하는 단계와, 상기 응용 구성도 내 컴포넌트들간에 포트가 연결됨에 따라 상기 응용 구성도 내 컴포넌트간 포트 연결 정보를 생성하여 정보 저장소에 저장하는 단계와, 상기 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하는 단계와, 상기 가상 컴포넌트의 포트와 상기 응용 구성도 내 임의의 컴포넌트들의 포트를 연결시키는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법에서 상기 가상 컴포넌트를 생성하는 단계는, 상기 가상 컴포넌트의 위치를 지정할 수 있는 인터페이스를 제공하는 단계와, 상기 인터페이스를 통해 지정된 위치에 상기 가상 컴포넌트를 생성하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법에서 상기 가상 컴포넌트를 생성하는 단계는, 상기 정보 저장소 내 상기 선택한 컴포넌트의 정보를 복사하는 단계와, 상기 복사한 선택한 컴포넌트의 정보에서 컴포넌트 ID를 변경하고, 상기 가상 컴포넌트와 상기 선택한 컴포넌트를 구별하기 위한 식별자 값을 설정하여 상기 가상 컴포넌트에 대한 정보를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법은 상기 가상 컴포넌트에 대응되는 컴포넌트가 삭제되는 경우 상기 응용 구성도 내 가상 컴포넌트를 삭제시키는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법은 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소에 저장된 컴포넌트들 중 사용자가 선택한 컴포넌트를 이용하여 응용 구성도를 생성하되, 상기 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하며, 상기 가상 컴포넌트의 포트와 상기 응용 구성도 내 임의의 컴포넌트들의 포트를 연결시키며, 상기 사용자가 선택한 컴포넌트가 삭제됨에 따라 상기 가상 컴포넌트를 삭제하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 통해 구현할 수 있다.
본 발명의 실시 예에 의하면, 로봇용 응용 소프트웨어를 구성하기 위해 컴포넌트를 조합할 때 가상 컴포넌트를 이용함으로써, 로봇용 응용 소프트웨어의 복잡도를 줄일 수 있을 뿐만 아니라 컴포넌트간의 연결 관계를 단순화시킬 수 있는 이점이 있다.
도 1은 본 발명에 적용되는 컴포넌트의 구조를 설명하기 위한 도면,
도 2는 본 발명의 실시 예에 적용되는 응용 구성도의 인터페이스 화면을 도시한 도면,
도 3은 본 발명의 실시 예에 따른 컴포넌트 로봇 응용 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치를 도시한 블록도,
도 4a는 본 발명의 실시 예에 따른 컴포넌트 조합 장치에서 관리하는 컴포넌트 리스트의 구조를 도시한 도면,
도 4b는 본 발명의 실시 예에 따른 컴포넌트 조합 장치에서 관리하는 포트 리스트의 구조를 도시한 도면,
도 4c는 본 발명의 실시 예에 따른 컴포넌트 조합 장치에서 관리하는 포트 연결 리스트의 구조를 도시한 도면,
도 5는 본 발명의 실시 예에 따른 컴포넌트 조합 장치가 가상 컴포넌트를 생성하는 과정을 설명하기 위한 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 따른 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법에 대해 설명한다.
설명에 앞서, 로봇 서비스는 컴포넌트들의 연결로 구성되는데, 컴포넌트간의 결합도를 낮추기 위한 방법으로 포트(Port)를 통한 컴포넌트 연결 방법이 사용되고 있다. 포트란 컴포넌트가 외부 환경과 상호작용하는 지점을 의미한다. 컴포넌트들은 포트를 통해 다른 컴포넌트들과 연결하고 상호간 통신을 수행한다. 포트를 통한 연결을 통해 외부 컴포넌트 사용자 입장에서는 컴포넌트가 제공하는 인터페이스만을 이용하며, 해당 인터페이스에 대한 상세 구현은 알 필요가 없게 된다. 즉, 컴포넌트는 외부에 공개된 인터페이스 이외에는 알 수 없는 블랙박스가 된다. 이렇게 함으로써 외부 인터페이스가 변경되지 않는 한, 내부 구현은 자유롭게 변경이 가능하게 된다.
컴포넌트 기반 로봇 소프트웨어에서는 컴포넌트들은 서로 연결을 맺고 통신을 수행한다. 즉, 컴포넌트 사이의 연결은 송신 컴포넌트의 포트와 수신 컴포넌트 포트의 연결을 통해 이루어지는데, 로봇 소프트웨어 컴포넌트 간 정보 종류에 따라 여러 가지 통신 방법을 사용하는데, RPC(Remote Procedure Call)과 같이 주로 컴포넌트간의 원격 메쏘드 호출을 위한 통신 방식과, 주기적으로 컴포넌트 간 데이터를 전달하는 방식, 혹은 간헐적으로 발생하는 이벤트를 전달하는 방식 등이 이용될 수 있다. 컴포넌트는 이들 방법 중 필요한 방법을 임의대로 선택하여 이용할 수 있다. 한 예로, 도 1에 도시된 바와 같이 OPRoS(Open Platform for Robotic Services)의 경우에는, RPC를 위해 메쏘드 포트를 두어 외부 메쏘드를 호출할 필요가 있는 경우에는 요청 메쏘드 포트를 두고, 외부에 서비스를 제공할 필요가 있는 경우에는 제공 메쏘드 포트를 둘 수 있다. 또한, 외부에 주기적으로 데이터를 전송하고자 하는 경우에는 출력 데이터 포트를 두고, 외부에서 주기적으로 데이터를 입력 받고자 하는 경우에는 입력 데이터 포트를 둘 수 있으며, 마찬가지로 이벤트를 위한 입력 이벤트 포트와 출력 이벤트 포트를 둘 수 있다.
한편, 컴포넌트 조합 도구는 컴포넌트들을 조합하여 로봇 응용을 만드는데 사용된다. 컴포넌트 조합 도구는 개별적으로 만들어진 컴포넌트를 저장할 수 있는 저장소를 갖고 있어서, 저장소에 저장되어 있는 컴포넌트는 로봇 응용 개발에 사용할 수 있도록 아이콘과 같은 형태로 컴포넌트 조합 도구 화면에 목록으로 나타난다. 로봇 응용 개발자는, 도 2에 도시된 바와 같이, 목록에 나타난 개별 컴포넌트들을 마우스 장치를 이용하여 끌어서 응용 구성도(Diagram) 창에 갖다 놓으면, 컴포넌트가 갖고 있는 인터페이스 포트가 표시되고, 로봇 응용 개발자는 컴포넌트 사이의 포트를 연결하여 로봇 응용을 만든다.
도 3은 본 발명의 실시 예에 따른 가상 컴포넌트를 이용한 컴포넌트 조합 장치의 내부 구성을 도시한 블록도로서, 컴포넌트가 저장된 컴포넌트 저장소(100), 컴포넌트 저장소(100)에 저장된 컴포넌트를 이용하여 응용 구성도를 생성하는 응용 구성도 생성부(200), 응용 구성도 내에 포함된 컴포넌트들에 대한 정보가 저장되어 있는 정보 저장소(300) 및 응용 구성도 내 가상 컴포넌트를 생성 또는 삭제하기 위한 가상 컴포넌트 처리부(400) 등을 포함할 수 있다.
정보 저장소(300)에는 응용 구성도에 참여한 컴포넌트들의 리스트 정보가 저장되어 있는 컴포넌트 리스트(310), 컴포넌트 리스트(310) 내 각 컴포넌트들이 이용하는 포트들에 대한 정보가 저장되어 있는 포트 리스트(320) 및 컴포넌트 리스트(310) 내 각 컴포넌트들간의 포트 연결 관계에 대한 정보가 저장되어 있는 포트 연결 리스트(320) 등을 포함하고 있다.
응용 구성도 생성부(200)는 컴포넌트 저장소(100)에 저장된 컴포넌트들을 화면 상에 디스플레이해주며, 디스플레이된 컴포넌트들 중 사용자가 선택한 컴포넌트를 이용하여 응용 구성도를 생성할 수 있다. 이때, 응용 구성도 생성부(200)는 사용자가 선택한 컴포넌트에 대한 정보와 선택한 컴포넌트가 갖는 포트 정보를 이용하여 정보 저장소(300) 내 컴포넌트 리스트(310) 및 포트 리스트(320)를 업데이트할 수 있다.
또한, 응용 구성도 생성부(200)는 사용자가 응용 구성도 상에 디스플레이된 컴포넌트들간의 포트 연결을 정의함에 따라 이에 따른 정보를 정보 저장소(300) 내 포트 연결 리스트(320)를 업데이트할 수 있다.
컴포넌트 리스트(310)는, 도 4a에 도시된 바와 같이, 컴포넌트 ID, 컴포넌트 이름(Name), 위치(Position), 해당 컴포넌트가 가상인지의 여부를 나타내는 식별자(Is_Virtual) 및 해당 컴포넌트가 갖고 있는 포트에 대한 참조자(Pointer_of_PortList) 등으로 구성될 수 있다.
포트 리스트(320)는 컴포넌트 리스트(310) 내 참조자를 이용하여 생성될 수 있으며, 해당 컴포넌트의 컴포넌트 ID, 포트 이름(Name), 포트 타입(Type) 및 포트 위치(Position) 등으로 구성될 수 있다.
포트 연결 리스트(320)는 응용 구성도 내 각 컴포넌트간의 연결 관계, 즉 소스 및 타겟 연결 관계를 기반으로 생성될 수 있으며, 소스 컴포넌트 ID, 소스 포트 ID, 타켓 컴포넌트 ID 및 타겟 포트 ID 등으로 구성될 수 있다.
본 발명의 실시 예에 따른 컴포넌트 리스트(310)에는 응용 구성도에 참여한 컴포넌트가 실제 컴포넌트인지 가상 컴포넌트인지에 대한 식별자, 예컨대 플래그(Is_Virtual 플래그)가 설정되어 있다.
가상 컴포넌트 처리부(400)는 사용자의 요청에 따라 사용자가 응용 구성도 내에서 선택한 컴포넌트에 대한 가상 컴포넌트를 생성할 수 있으며, 생성된 가상 컴포넌트에 대한 정보를 컴포넌트 리스트(310)에 저장할 수 있다. 여기에서, 가상 컴포넌트의 정보는 컴포넌트 리스트(310) 내 사용자가 선택한 컴포넌트(실제 컴포넌트)의 정보를 복사하여 생성될 수 있다.
즉, 가상 컴포넌트 처리부(400)는 실제 컴포넌트의 정보를 복사하여 컴포넌트 리스트(310) 상에 새로운 행을 만든 후 컴포넌트 ID가 유일한 값을 갖도록 수정하여 가상 컴포넌트에 대한 정보를 컴포넌트 리스트(310)에 생성할 수 있다. 이때, 가상 컴포넌트의 식별자 값은 "Y(Yes)"가 될 수 있다.
또한, 가상 컴포넌트 처리부(400)는 가상 컴포넌트가 생성될 위치를 지정할 수 있는 인터페이스를 제공하며, 인터페이스를 통해 지정된 위치에 가상 컴포넌트를 생성할 수 있다.
가상 컴포넌트 처리부(400)는 가상 컴포넌트가 생성될 때 가상 컴포넌트에 대한 포트 정보 및 포트 연결 정보를 실제 컴포넌트의 정보가 저장된 정보 저장소(300)를 이용하여 생성할 수 있으며, 생성된 가상 컴포넌트에 대한 정보를 이용하여 정보 저장소(300) 내 포트 리스트(320) 및 포트 연결 리스트(320)를 업데이트할 수 있다.
한편, 가상 컴포넌트 처리부(400)는 가상 컴포넌트를 갖는 실제 컴포넌트가 응용 구성도 내에서 삭제될 경우 정보 저장소(300)를 업데이트할 수 있는데, 즉 컴포넌트 리스트(310), 포트 리스트(320) 및 포트 연결 리스트(320)에서 가상 컴포넌트의 정보를 삭제할 수 있다.
본 발명의 실시 예에 따르면, 로봇용 응용 소프트웨어를 구성하기 위해 컴포넌트를 조합할 때 가상 컴포넌트를 이용함으로써, 로봇용 응용 소프트웨어의 복잡도를 줄일 수 있을 뿐만 아니라 컴포넌트간의 연결 관계를 단순화시킬 수 있다.
한편, 본 발명의 실시 예에 따른 컴포넌트 조합 장치는 컴퓨터에 컴포넌트 기반의 로봇 응용 소프트웨어를 개발하는 시스템에서 컴포넌트를 조합하는 프로그램을 갖는 기록매체를 통해 구현될 수 있는데, 즉 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소(100)에 저장된 컴포넌트들 중 사용자가 선택한 컴포넌트를 이용하여 응용 구성도를 생성하되, 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하며, 가상 컴포넌트의 포트와 상기 응용 구성도 내 임의의 컴포넌트들의 포트를 연결시키며, 사용자가 선택한 컴포넌트가 삭제됨에 따라 가상 컴포넌트를 삭제하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 통해 구현할 수 있다.
상기와 같은 구성을 갖는 가상 컴포넌트를 이용한 컴포넌트 조합 장치가 동작하는 과정에 대해 도 5를 참조하여 설명한다.
먼저, 컴포넌트 조합 장치는 컴포넌트 저장소(100)에 저장된 컴포넌트들을 화면 상에 디스플레이해준 후 디스플레이된 컴포넌트들 중 사용자가 선택한 컴포넌트들을 이용하여 응용 구성도를 구성한다. 즉, 응용 구성도 생성부(200)는 사용자가 선택한 컴포넌트들을 화면 상에 배치한 후 배치된 컴포넌트간의 포트 연결을 설정해줌으로써, 응용 구성도를 생성할 수 있다.
응용 구성도를 구성하는 중에 너무 많은 개수의 컴포넌트가 필요한 경우에는 컴포넌트간의 연결선이 서로 교차하거나, 멀리 떨어져 있는 컴포넌트 사이에 연결해야 하거나, 반대 방향에 있는 컴포넌트의 포트와 연결해야 하는 경우가 발생할 수 있는데, 이때 사용자의 요청에 따라 사용자가 임의로 선택한 컴포넌트를 이용하여 사용자가 지정한 응용 구성도 상의 위치에 가상 컴포넌트를 생성할 수 있다. 예를 들어, 도 5에 도시된 바와 같이, 카메라 컴포넌트, 얼굴 검출 컴포넌트, 초음파 센서 컴포넌트, 로봇 장치 컴포넌트, 레이저 센서 컴포넌트, 이동 제어 컴포넌트 등을 이용하여 응용 구성도를 구성하고, 각 컴포넌트들간의 포트를 연결하는 연결선을 생성하는 과정에서 이동 제어 컴포넌트의 휠 제어(Wheel Control) 메쏘드 포트에 로봇 장치 컴포넌트의 휠 제어(Wheel Control) 메쏘드 포트를 연결하고자 할 때, 로봇 장치 컴포넌트에 대응되는 가상 로봇 장치 컴포넌트를 이동 제어 컴포넌트의 근처에 생성할 수 있다. 즉, 가상 컴포넌트 처리부(400)는 사용자가 로봇 장치 컴포넌트를 선택한 후 소정의 인터페이스(가상 컴포넌트 생성 메뉴)를 조작하면, 로봇 장치 컴포넌트에 대응되는 가상 로봇 장치 컴포넌트를 생성한 후 생성된 가상 로봇 장치 컴포넌트를 이동 제어 컴포넌트 근처 또는 사용자가 지정한 위치에 생성할 수 있다.
이때, 가상 컴포넌트 처리부(400)는 가상 로봇 장치 컴포넌트에 대한 정보를 생성할 수 있는데, 즉 컴포넌트 리스트(310) 상에 존재하는 로봇 장치 컴포넌트에 대한 정보를 복사한 후 컴포넌트 리스트(310) 상에 새로운 행을 만든 후 컴포넌트 ID가 유일한 값을 갖도록 수정하여 가상 로봇 장치 컴포넌트에 대한 정보를 컴포넌트 리스트(310)에 생성할 수 있다. 이때, 가상 컴포넌트의 식별자 값은 "Y(Yes)"가 될 수 있다.
한편, 가상 로봇 장치 컴포넌트의 휠 제어 포트와 이동 제어 컴포넌트의 휠 제어 포트가 연결되면, 포트 연결 리스트(320) 내 로봇 장치 컴포넌트에 대한 포트 연결 정보가 업데이트될 수 있다.
이러한 응용 구성도 상에서 가상 로봇 장치 컴포넌트가 삭제되는 경우, 실제 로봇 장치 컴포넌트와 가상 로봇 장치 컴포넌트 모두가 삭제되며, 정보 저장소(300) 내 로봇 장치 컴포넌트 및 가상 로봇 장치 컴포넌트의 정보가 모두 삭제될 수 있다.
본 발명의 실시 예에 따르면 로봇 응용을 위한 응용 구성도에 참여한 컴포넌트 중 선택된 컴포넌트와 같은 가상 컴포넌트를 복사하여 응용 구성도에 참여할 수 있도록 하여 복잡한 연결 관계를 단순화시킬 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성요소를 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
100 : 컴포넌트 저장소
200 : 응용 구성도 생성부
300 : 정보 저장소
310 : 컴포넌트 리스트
320 : 포트 리스트
330 : 포트 연결 리스트
400 : 가상 컴포넌트 처리부

Claims (9)

  1. 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소와,
    상기 컴포넌트 저장소에 저장된 컴포넌트들의 선택을 통해 응용 구성도를 생성하는 응용 구성도 생성부와,
    상기 응용 구성도 내 컴포넌트 및 상기 응용 구성도 내 컴포넌트의 포트 정보 및 상기 응용 구성도 내 컴포넌트간 포트 연결 정보가 저장되어 있는 정보 저장소와,
    상기 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하는 가상 컴포넌트 처리부를 포함하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치.
  2. 제 1 항에 있어서,
    상기 가상 컴포넌트 처리부는,
    상기 가상 컴포넌트의 위치를 지정할 수 있는 인터페이스를 제공하며, 상기 인터페이스를 통해 지정된 위치에 상기 가상 컴포넌트를 생성하는 것을 특징으로 하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치.
  3. 제 1 항에 있어서,
    상기 가상 컴포넌트 처리부는,
    상기 정보 저장소 내 상기 선택한 컴포넌트의 정보를 이용하여 상기 가상 컴포넌트에 대한 정보를 생성하되, 상기 가상 컴포넌트와 상기 선택한 컴포넌트를 구별하기 위한 식별자 값을 설정하여 상기 가상 컴포넌트에 대한 정보를 생성하는 것을 특징으로 하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치.
  4. 제 1 항에 있어서,
    상기 가상 컴포넌트 처리부는,
    상기 가상 컴포넌트에 대응되는 컴포넌트가 삭제되는 경우 상기 응용 구성도 내 가상 컴포넌트를 삭제시키는 것을 특징으로 하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치.
  5. 적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소에 저장된 컴포넌트들 중 사용자가 선택한 컴포넌트를 이용하여 응용 구성도를 생성하는 단계와,
    상기 응용 구성도 내 컴포넌트들간에 포트가 연결됨에 따라 상기 응용 구성도 내 컴포넌트간 포트 연결 정보를 생성하여 정보 저장소에 저장하는 단계와,
    상기 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하는 단계와,
    상기 가상 컴포넌트의 포트와 상기 응용 구성도 내 임의의 컴포넌트들의 포트를 연결시키는 단계를 포함하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법.
  6. 제 5 항에 있어서,
    상기 가상 컴포넌트를 생성하는 단계는,
    상기 가상 컴포넌트의 위치를 지정할 수 있는 인터페이스를 제공하는 단계와,
    상기 인터페이스를 통해 지정된 위치에 상기 가상 컴포넌트를 생성하는 단계를 포함하는 것을 특징으로 하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법.
  7. 제 5 항에 있어서,
    상기 가상 컴포넌트를 생성하는 단계는,
    상기 정보 저장소 내 상기 선택한 컴포넌트의 정보를 복사하는 단계와,
    상기 복사한 선택한 컴포넌트의 정보에서 컴포넌트 ID를 변경하고, 상기 가상 컴포넌트와 상기 선택한 컴포넌트를 구별하기 위한 식별자 값을 설정하여 상기 가상 컴포넌트에 대한 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법.
  8. 제 5 항에 있어서,
    상기 컴포넌트 조합 방법은,
    상기 가상 컴포넌트에 대응되는 컴포넌트가 삭제되는 경우 상기 응용 구성도 내 가상 컴포넌트를 삭제시키는 단계를 더 포함하는 것을 특징으로 하는
    컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 방법.
  9. 컴퓨터에 컴포넌트 기반의 로봇 응용 소프트웨어를 개발하는 시스템에서 컴포넌트를 조합하는 프로그램을 갖는 기록매체에 있어서,
    적어도 하나 이상의 포트를 갖는 다수의 컴포넌트가 저장된 컴포넌트 저장소에 저장된 컴포넌트들 중 사용자가 선택한 컴포넌트를 이용하여 응용 구성도를 생성하되, 상기 응용 구성도 내 컴포넌트들 중 사용자가 선택한 컴포넌트에 대한 가상 컴포넌트를 생성하며,
    상기 가상 컴포넌트의 포트와 상기 응용 구성도 내 임의의 컴포넌트들의 포트를 연결시키며,
    상기 사용자가 선택한 컴포넌트가 삭제됨에 따라 상기 가상 컴포넌트를 삭제하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

KR1020110092553A 2011-09-14 2011-09-14 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체 KR101773102B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110092553A KR101773102B1 (ko) 2011-09-14 2011-09-14 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체
US13/595,256 US8769488B2 (en) 2011-09-14 2012-08-27 Component composing apparatus and method using virtual components in component-based robot software development

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110092553A KR101773102B1 (ko) 2011-09-14 2011-09-14 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체

Publications (2)

Publication Number Publication Date
KR20130029251A true KR20130029251A (ko) 2013-03-22
KR101773102B1 KR101773102B1 (ko) 2017-08-31

Family

ID=47831027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110092553A KR101773102B1 (ko) 2011-09-14 2011-09-14 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체

Country Status (2)

Country Link
US (1) US8769488B2 (ko)
KR (1) KR101773102B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5984148B2 (ja) * 2014-05-13 2016-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 遠隔手続き呼び出しを制御する装置及び方法
US10884717B2 (en) * 2019-04-09 2021-01-05 Raytheon Company Resource management system featuring a sensor-agnostic software architecture

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100426312B1 (ko) 2001-12-28 2004-04-08 한국전자통신연구원 컴포넌트 기반 소프트웨어 개발 시스템의 컴포넌트식별장치 및 그 방법과 이에 관련된 프로그램의 기록매체
US9195233B2 (en) 2006-02-27 2015-11-24 Perrone Robotics, Inc. General purpose robotics operating system
US7990375B2 (en) 2006-04-03 2011-08-02 Cadence Design Systems, Inc. Virtual view schematic editor
EP2117782B1 (en) 2007-01-12 2014-07-30 Hansjorg Baltes Method and system for robot generation
KR101473337B1 (ko) 2007-10-01 2014-12-16 삼성전자 주식회사 컴포넌트 모델을 기반으로 하는 인터페이스 호환성 결정 방법 및 장치
US20090106011A1 (en) 2007-10-22 2009-04-23 International Business Machines Corporation System and method for developing and deploying sensor and actuator applications over distributed computing infrastructure
US20100168914A1 (en) 2008-12-29 2010-07-01 Electronics And Telecommunications Research Institute Diagnosis and management server for multi-kinds robots

Also Published As

Publication number Publication date
KR101773102B1 (ko) 2017-08-31
US20130067429A1 (en) 2013-03-14
US8769488B2 (en) 2014-07-01

Similar Documents

Publication Publication Date Title
Macenski et al. Robot operating system 2: Design, architecture, and uses in the wild
US7590680B2 (en) Extensible robotic framework and robot modeling
CN103365262B (zh) 用于确定现场装置之间的操作兼容性的设备和方法
US11218535B2 (en) Information processing apparatus, information processing method, and computer program
US20220308734A1 (en) Asset management system
US11281435B2 (en) Application development environment providing system, application development environment provision method, terminal device, and application display method
KR102051543B1 (ko) Vr 훈련 시스템 및 방법
CN110096424A (zh) 测试的处理方法、装置、电子设备及存储介质
CN111444092A (zh) 智能合约的测试方法、装置、电子设备及存储介质
CN115526578A (zh) 生成项目流的方法、装置、电子设备及存储介质
US20230316946A1 (en) System and method for vr training
CN108874501A (zh) 软件定义的微服务
KR101773102B1 (ko) 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체
KR102013704B1 (ko) 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법
Liu et al. Distributed service integration for disaster monitoring sensor systems
Lehrbaum et al. Enabling customizable workflows for industrial ar applications
Lourenço et al. Cloudcity: A live environment for the management of cloud infrastructures
Elkady et al. A structured approach for modular design in robotics and automation environments
Shahriar Towards a Cyber-Physical Manufacturing Cloud through Operable Digital Twins and Virtual Production Lines
US20220113993A1 (en) Graphical user interfaces for exploring and interacting with distributed software applications
Ollila Creating architecture for a digital information system leveraging virtual environments
GOMES AUGMENTED REALITY FOR AGENT-BASED INDUSTRIAL CYBER-PHYSICAL SYSTEMS
Gomez-Sanz et al. Ingenias
Kyburz et al. SensorFlow
CN117032778A (zh) 活动配置方法、装置、可读介质及电子设备

Legal Events

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