KR102013704B1 - 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법 - Google Patents
로봇용 소프트웨어 컴포넌트 조합 장치 및 방법 Download PDFInfo
- Publication number
- KR102013704B1 KR102013704B1 KR1020120134320A KR20120134320A KR102013704B1 KR 102013704 B1 KR102013704 B1 KR 102013704B1 KR 1020120134320 A KR1020120134320 A KR 1020120134320A KR 20120134320 A KR20120134320 A KR 20120134320A KR 102013704 B1 KR102013704 B1 KR 102013704B1
- Authority
- KR
- South Korea
- Prior art keywords
- component
- topic
- display window
- port
- list
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법에 관한 것이다. 개시된 로봇용 소프트웨어 컴포넌트 조합 장치는 입력된 컴포넌트 규격을 해석하여 강결합 형태 또는 약결합 형태의 컴포넌트 소스 코드를 생성하는 코드 생성부와, 생성된 컴포넌트 소스 코드가 저장되는 컴포넌트 저장부와, 그래픽 유저 인터페이스 환경을 통해 컴포넌트 목록 표시창과 토픽 목록 표시창 및 응용 구성도 표시창을 포함하는 컴포넌트 조합 도구를 제공하는 그래픽 유저 인터페이스 처리부와, 저장된 컴포넌트 소스 코드의 컴포넌트 규격을 해석하여 컴포넌트 목록 표시창의 컴포넌트 목록에 컴포넌트를 추가하거나 토픽 목록 표시창의 토픽 목록에 토픽을 추가하는 컴포넌트 목록 생성부와, 컴포넌트 목록 표시창에 나타난 개별 컴포넌트 또는 토픽 목록 표시창에 나타낸 개별 토픽을 끌어서 응용 구성도 표시창에 갖다 놓을 수 있도록 지원하는 포인팅 입력부와, 응용 구성도 표시창에서 컴포넌트의 약결합 방식 포트가 토픽과 연결되거나 강결합 방식의 포트가 다른 컴포넌트의 포트와 직접 연결되면 이렇게 연결된 정보를 응용 패키지 구성 규격으로 만드는 응용 패키지 구성 규격 생성부를 포함한다.
Description
본 발명은 로봇용 소프트웨어 컴포넌트 조합에 관한 것으로, 더욱 상세하게는 컴포넌트 기반 로봇용 소프트웨어를 개발할 때 컴포넌트가 지원하는 결합 방식에 따라 컴포넌트들을 연결할 수 있는 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법에 관한 것이다.
로봇용 소프트웨어 컴포넌트는 재사용 및 교체가 가능한 소프트웨어 모듈로서, 외부 컴포넌트 사용자 입장에서는 컴포넌트가 제공하는 인터페이스만을 이용하며 해당 인터페이스에 대한 상세 구현은 알 필요가 없이 컴포넌트의 조합만으로 로봇 응용을 구성하게 된다.
컴포넌트 기반 개발 방법론에 따라 만들어진 개별 컴포넌트들은 실세계의 디바이스 및 각종 알고리즘에 대한 대리인 역할을 수행하게 된다. 로봇 개발자들은 미리 만들어지고 독립적으로 테스트가 완료된 컴포넌트들을 조합하여 로봇의 서비스를 완성할 수 있게 된다.
로봇 소프트웨어 구조에서 사용되는 로봇 컴포넌트는 각각의 내부상태를 가지며 능동적인 형태로 동작하고, 컴포넌트 인터페이스를 통해 컴포넌트 상호간의 데이터 교환 및 메쏘드 호출이 수행되면서 로봇 제어가 이루어진다. 최근에 이러한 로봇의 특징을 지원하기 위해 OPRoS(Open Platform for Robotic Services), RTC(Robot Technology Component), Orocos(Open RObot Control Software), ROS(Robot Operating System) 등의 소프트웨어 플랫폼은 컴포넌트를 이용한 로봇 프로그래밍 방식을 제시하고 있다.
이중 OPRoS, RTC, Orocos는 개별 컴포넌트들이 제공하는 인터페이스 사이를 TCP/IP 등의 방법을 이용하여 직접 연결하는 강결합 방식을 사용하고 있으며, ROS는 컴포넌트들 사이에 가입/출판(publish/subscribe) 방식을 지원하는 토픽(topic)이라는 매개체를 통해 약결합 방식으로 컴포넌트들이 연결되도록 하고 있다.
이와 같이 컴포넌트 기반 로봇 소프트웨어 개발 방식에서 컴포넌트들이 직접 연결되는 강결합 방식과 중간 매개체를 통해 연결되는 약결합 방식이 혼재하기 때문에 서로 다른 연결방식을 사용하는 컴포넌트들은 서로간에 통신을 할 수 없는 문제점이 있어서 같이 사용하는데 어려움이 있다.
컴포넌트 기반 소프트웨어 플랫폼에서의 컴포넌트 조합 장치는 로봇 서비스 개발자들로 하여금 패키지 구성도(diagram) 상에서 이러한 개별 컴포넌트들을 연결하여 로봇 응용 패키지를 완성할 수 있게 해주는 GUI(Graphical User Interface) 기반의 컴포넌트 조합을 위한 모델링 도구를 제공한다. GUI 기반의 컴포넌트 조합 도구를 이용하여 컴포넌트들을 조합하는 경우, 컴포넌트의 인터페이스 포트가 다른 컴포넌트와 어떻게 연결되는지 시각적으로 확인하면서 조합할 수 있어서 손쉽게 컴포넌트들을 조합하여 응용 패키지를 완성할 수 있다.
하지만, 강결합 연결을 지원하는 컴포넌트는 컴포넌트끼리 직접 연결해야 하고 약결합 연결을 지원하는 컴포넌트는 컴포넌트끼리 직접 연결할 수 없고 중간 매개체를 통해 연결해야 하므로 컴포넌트 조합 장치 및 그 컴포넌트 조합 도구에서 이들을 함께 수용할 수 없는 문제점이 있다.
본 발명의 실시예에 의하면, 컴포넌트 기반 로봇용 소프트웨어를 개발할 때 강결합 및 약결합 방식의 연결 방식을 선택하여 개발할 수 있고, 컴포넌트들을 조합하는 컴포넌트 조합 도구에서 컴포넌트가 지원하는 결합 방식에 따라 컴포넌트들을 연결할 수 있는 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법을 제공한다.
본 발명의 제 1 관점으로서 로봇용 소프트웨어 컴포넌트 조합 장치는, 입력된 컴포넌트 규격을 해석하여 강결합 형태 또는 약결합 형태의 컴포넌트 소스 코드를 생성하는 코드 생성부와, 상기 생성된 컴포넌트 소스 코드가 저장되는 컴포넌트 저장부와, 그래픽 유저 인터페이스 환경을 통해 컴포넌트 목록 표시창과 토픽 목록 표시창 및 응용 구성도 표시창을 포함하는 컴포넌트 조합 도구를 제공하는 그래픽 유저 인터페이스 처리부와, 상기 저장된 컴포넌트 소스 코드의 컴포넌트 규격을 해석하여 상기 컴포넌트 목록 표시창의 컴포넌트 목록에 컴포넌트를 추가하거나 상기 토픽 목록 표시창의 토픽 목록에 토픽을 추가하는 컴포넌트 목록 생성부와, 상기 컴포넌트 목록 표시창에 나타난 개별 컴포넌트 또는 상기 토픽 목록 표시창에 나타낸 개별 토픽을 끌어서 상기 응용 구성도 표시창에 갖다 놓을 수 있도록 지원하는 포인팅 입력부와, 상기 응용 구성도 표시창에서 컴포넌트의 약결합 방식 포트가 토픽과 연결되거나 강결합 방식의 포트가 다른 컴포넌트의 포트와 직접 연결되면 이렇게 연결된 정보를 응용 패키지 구성 규격으로 만드는 응용 패키지 구성 규격 생성부를 포함할 수 있다.
여기서, 상기 코드 생성부는 강결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 출력 형태 포트의 경우에는 클라이언트 코드가 포함되도록 상기 컴포넌트 소스 코드를 생성할 수 있다.
상기 코드 생성부는 강결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 입력 형태 포트의 경우에는 서버 코드가 포함되도록 상기 컴포넌트 소스 코드를 생성할 수 있다.
상기 코드 생성부는 약결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 출력 형태 포트의 경우에는 해당 토픽에 출판하는 상기 컴포넌트 소스 코드를 생성할 수 있다.
상기 코드 생성부는 약결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 입력 형태 포트의 경우에는 해당 토픽에 가입하는 상기 컴포넌트 소스 코드를 생성할 수 있다.
상기 컴포넌트 목록 생성부는 타입 확장 태그가 있는 경우에는 약결합으로 만들어진 컴포넌트로 판정하여 상기 토픽 목록 표시창의 토픽 목록에 등록할 수 있다.
상기 컴포넌트 목록 표시창에 나타난 개별 컴포넌트가 끌려서 상기 응용 구성도 표시창에 놓이면 상기 컴포넌트 규격을 해석하여 컴포넌트가 갖고 있는 인터페이스 포트가 약결합으로 만들어진 경우에는 해당 포트가 토픽과 연결된다는 표시를 해당 포트 옆에 표시하는 컴포넌트 연결부를 더 포함할 수 있다.
상기 응용 패키지 구성 규격 생성부는 강결합 방식으로 만들어진 포트는 컴포넌트끼리 직접 연결하도록 상기 응용 패키지 구성 규격의 소스와 타깃에 컴포넌트를 명시하여 연결 정보를 생성할 수 있다.
상기 응용 패키지 구성 규격 생성부는 약결합 방식으로 만들어진 포트는 컴포넌트와 토픽이 연결되도록 출판의 경우에는 소스를 컴포넌트로 명시하고 타깃을 토픽으로 명시하면, 가입의 경우에는 반대로 하여 연결 정보를 상기 응용 패키지 구성 규격에 포함시켜서 생성할 수 있다.
본 발명의 제 2 관점으로서 로봇용 소프트웨어 컴포넌트 조합 방법은, 입력된 컴포넌트 규격을 해석하여 강결합 형태 또는 약결합 형태의 컴포넌트 소스 코드를 생성하고, 그래픽 유저 인터페이스 환경을 통해 컴포넌트 목록 표시창과 토픽 목록 표시창 및 응용 구성도 표시창을 포함하는 컴포넌트 조합 도구를 제공하며, 상기 생성된 컴포넌트 소스 코드의 컴포넌트 규격을 해석하여 상기 컴포넌트 목록 표시창의 컴포넌트 목록에 컴포넌트를 추가하거나 상기 토픽 목록 표시창의 토픽 목록에 토픽을 추가하고, 상기 컴포넌트 목록 표시창에 나타난 개별 컴포넌트 또는 상기 토픽 목록 표시창에 나타낸 개별 토픽을 끌어서 상기 응용 구성도 표시창에 갖다 놓을 수 있도록 지원하며, 상기 응용 구성도 표시창에서 컴포넌트의 약결합 방식 포트가 토픽과 연결되거나 강결합 방식의 포트가 다른 컴포넌트의 포트와 직접 연결되면 이렇게 연결된 정보를 응용 패키지 구성 규격으로 만들 수 있다.
여기서, 상기 컴포넌트 소스 코드는 강결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 출력 형태 포트의 경우에는 클라이언트 코드가 포함되도록 생성할 수 있다.
상기 컴포넌트 소스 코드는 강결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 입력 형태 포트의 경우에는 서버 코드가 포함되도록 생성할 수 있다.
상기 컴포넌트 소스 코드는 약결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 출력 형태 포트의 경우에는 해당 토픽에 출판하도록 생성할 수 있다.
상기 컴포넌트 소스 코드는 약결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 입력 형태 포트의 경우에는 해당 토픽에 가입하도록 생성할 수 있다.
상기 생성된 컴포넌트 소스 코드의 컴포넌트 규격을 해석하여 타입 확장 태그가 있는 경우에는 약결합으로 만들어진 컴포넌트로 판정하여 상기 토픽 목록 표시창의 토픽 목록에 등록할 수 있다.
상기 컴포넌트 목록 표시창에 나타난 개별 컴포넌트가 끌려서 상기 응용 구성도 표시창에 놓이면 상기 컴포넌트 규격을 해석하여 컴포넌트가 갖고 있는 인터페이스 포트가 약결합으로 만들어진 경우에는 해당 포트가 토픽과 연결된다는 표시를 해당 포트 옆에 표시할 수 있다.
상기 응용 패키지 구성 규격은 강결합 방식으로 만들어진 포트는 컴포넌트끼리 직접 연결하도록 상기 응용 패키지 구성 규격의 소스와 타깃에 컴포넌트를 명시하여 연결 정보를 생성할 수 있다.
상기 응용 패키지 구성 규격은 약결합 방식으로 만들어진 포트는 컴포넌트와 토픽이 연결되도록 출판의 경우에는 소스를 컴포넌트로 명시하고 타깃을 토픽으로 명시하면, 가입의 경우에는 반대로 하여 연결 정보를 상기 응용 패키지 구성 규격에 포함시켜서 생성할 수 있다.
본 발명의 실시 예에 의하면, 컴포넌트 기반 로봇용 소프트웨어를 개발할 때 강결합 및 약결합 방식의 연결 방식을 선택하여 개발할 수 있고, 컴포넌트들을 조합하는 컴포넌트 조합 도구에서 컴포넌트가 지원하는 결합 방식에 따라 컴포넌트들을 연결할 수 있어서 서로 다른 연결 방식을 사용하는 컴포넌트들을 함께 사용하여 로봇 응용 시스템을 만들 수 있는 장점이 있다.
도 1은 컴포넌트의 구조를 나타낸 예시도이다.
도 2는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치의 블록 구성도이다.
도 3은 강결합 형태의 컴포넌트 규격의 출력 예를 나타낸 것이다.
도 4는 약결합 형태의 컴포넌트 규격의 출력 예를 나타낸 것이다.
도 5는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의한 소스 코드 생성 과정을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의한 컴포넌트 및 토픽 목록 생성 과정을 나타낸 흐름도이다.
도 7은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합 도구에서 컴포넌트 표시 상태를 보인 예시도이다.
도 8은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합 도구에서 컴포넌트 및 토픽 표시 상태를 보인 예시도이다.
도 9는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합 도구에서 컴포넌트와 토픽 간의 연결 상태를 보인 예시도이다.
도 10은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 생성되는 응용 패키지 구성 규격의 예시도이다.
도 2는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치의 블록 구성도이다.
도 3은 강결합 형태의 컴포넌트 규격의 출력 예를 나타낸 것이다.
도 4는 약결합 형태의 컴포넌트 규격의 출력 예를 나타낸 것이다.
도 5는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의한 소스 코드 생성 과정을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의한 컴포넌트 및 토픽 목록 생성 과정을 나타낸 흐름도이다.
도 7은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합 도구에서 컴포넌트 표시 상태를 보인 예시도이다.
도 8은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합 도구에서 컴포넌트 및 토픽 표시 상태를 보인 예시도이다.
도 9는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합 도구에서 컴포넌트와 토픽 간의 연결 상태를 보인 예시도이다.
도 10은 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의해 생성되는 응용 패키지 구성 규격의 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
로봇 서비스는 컴포넌트들의 연결로 구성되는데, 컴포넌트간의 결합도를 낮추기 위한 방법으로 포트(port)를 통한 컴포넌트 연결 방법이 사용되고 있다. 포트란 컴포넌트가 외부 환경과 상호작용하는 지점을 의미한다. 컴포넌트들은 포트를 통해 다른 컴포넌트들과 연결하고 상호간 통신을 수행한다. 포트를 통한 연결을 통해 외부 컴포넌트 사용자 입장에서는 컴포넌트가 제공하는 인터페이스만을 이용하며, 해당 인터페이스에 대한 상세 구현은 알 필요가 없게 된다. 즉, 컴포넌트는 외부에 공개된 인터페이스 이외에는 알 수 없는 블랙박스가 된다. 이렇게 함으로써 외부 인터페이스가 변경되지 않는 한, 내부 구현은 자유롭게 변경이 가능하게 된다.
컴포넌트 기반 로봇 소프트웨어에서는 컴포넌트들은 서로 연결을 맺고 통신을 수행한다. 컴포넌트 사이의 연결은 송신 컴포넌트의 포트와 수신 컴포넌트 포트의 연결을 통해 이루어지는데, 로봇 소프트웨어 컴포넌트 간 정보 종류에 따라 여러 가지 통신 방법을 사용하는데, RPC(Remote Procedure Call)과 같이 주로 컴포넌트간의 원격 메쏘드 호출을 위한 통신 방식과, 주기적으로 컴포넌트 간 데이터를 전달하는 방식, 혹은 간헐적으로 발생하는 이벤트를 전달하는 방식 등이 이용될 수 있다. 컴포넌트는 이들 방법 중 필요한 방법을 임의대로 선택하여 이용할 수 있다. 한 예로, OPRoS(Open Platform for Robotic Services)의 경우에는, 도 1에 나타낸 바와 같이 RPC를 위해 컴포넌트(10)는 메쏘드 포트를 두어 외부 메쏘드를 호출할 필요가 있는 경우에는 요청 메쏘드 포트(21)를 두고, 외부에 서비스를 제공할 필요가 있는 경우에는 제공 메쏘드 포트(23)를 둘 수 있다. 또한, 외부에 주기적으로 데이터를 전송하고자 하는 경우에는 출력 데이터 포트(31)를 두고, 외부에서 주기적으로 데이터를 입력 받고자 하는 경우에는 입력 데이터 포트(33)를 둘 수 있으며, 마찬가지로 이벤트를 위한 입력 이벤트 포트(43)와 출력 이벤트 포트(41)를 둘 수 있다.
소프트웨어 컴포넌트를 개발할 때 이와 같이 다양한 인터페이스를 지원하기 위해 컴포넌트개발자로부터 컴포넌트 인터페이스에 대한 규격(프로파일)만을 선언하도록 하면 코드 생성 수단이 각 인터페이스에 맞는 소스 코드를 자동으로 생성한다. 즉, 컴포넌트간에 TCP/IP 등의 방법으로 연결되는 경우에, 메쏘드 포트 사용을 지정하면 코드 생성 수단에 의해 원격 메쏘드 호출을 위한 클라이언트 코드와 서버 코드가 자동으로 포함되도록 컴포넌트 소스 코드를 생성하며, 데이터 포트를 선언한 경우에는 코드 생성 수단에 의해 데이터 마샬링/언마샬링 코드와 버퍼링 기능이 포함되어 컴포넌트 소스 코드가 자동으로 생성되며, 이벤트 포트를 선언한 경우에는 코드 생성 수단에 의해 이벤트 데이터를 처리할 수 있는 소스 코드가 포함된 소스 코드를 자동으로 생성한다.
본 발명의 실시예에 따른 컴포넌트 조합 장치에 의해 제공되는 컴포넌트 조합을 위한 모델링 도구는 컴포넌트들을 조합하여 로봇 응용을 만드는데 사용된다. 이러한 컴포넌트 조합 도구는 개별적으로 만들어진 컴포넌트를 저장할 수 있는 컴포넌트 저장소를 갖고 있어서, 컴포넌트 저장소에 저장되어 있는 컴포넌트는 로봇 응용 개발에 사용할 수 있도록 아이콘과 같은 형태로 컴포넌트 목록 표시창 화면에 목록으로 나타난다. 로봇 응용 개발자는 목록에 나타난 개별 컴포넌트들을 마우스 장치 등과 같은 포인팅 장치를 이용하여 끌어서 응용 구성도(Diagram) 표시창에 갖다 놓으면, 컴포넌트가 갖고 있는 인터페이스 포트가 표시되고, 로봇 응용 개발자는 컴포넌트 사이의 포트를 연결하여 로봇 응용 패키지를 만든다.
이와 같이 컴포넌트 기반 소프트웨어 플랫폼에서는 서로 데이터를 주고 받는 컴포넌트끼리 강결합을 하도록 컴포넌트들을 만들고, 해당 플랫폼의 전용 도구들을 이용하여 컴포넌트끼리 연결을 맺어 로봇 서비스를 위한 응용 패키지를 구성한다.
하지만, ROS(Robot Operating System)와 같은 경우에는 컴포넌트가 직접 다른 컴포넌트와 연결을 맺는 방식이 아니라, 가입/출판 방식을 지원하는 토픽(topic)이라는 매개체를 통해 컴포넌트 사이에 통신을 수행한다. 즉, 다른 컴포넌트로부터 데이터를 전달받고자 하는 컴포넌트는 통신 채널 역할을 수행하는 관심 토픽에 가입을 해 놓고, 송신할 데이터가 있는 컴포넌트는 원하는 토픽에 데이터를 출판하면, 토픽에 가입되어 있는 컴포넌트에게 데이터가 전달돼서 처리하도록 하는 방식으로, 서로 데이터를 주고 받는 컴포넌트끼리 직접 연결되지 않고 토픽을 통해 간접적으로 연결되는 약결합 방식이다. 약결합 방식에서는 직접 연결하는 강결합 보다 데이터 전송 속도 측면에서는 느린 측면이 있지만, 어느 컴포넌트로부터 데이터가 왔는지, 혹은 어느 컴포넌트로 데이터가 가는지 신경 쓸 필요가 없어서 강결합 방식 보다 유연한 조합이 가능하다.
즉, 데이터 전송 속도 측면에서는 강결합이 유리한 면이 있으며, 유연한 조합 측면에서는 약결합이 유리한 면이 있기 때문에 두 가지 결합 방법이 모두 적절하게 이용돼야 한다.
하지만, 강결합을 지원하는 소프트웨어 플랫폼과 약결합을 지원하는 소프트웨어 플랫폼은 서로 자신들의 방식만을 지원하므로 각각의 방식으로 만들어진 컴포넌트는 서로 동시에 사용할 수 없는 문제점이 있다.
따라서, 본 발명의 실시예에서는 소프트웨어 컴포넌트를 개발할 때 강결합 및 약결합 방식의 연결 방식을 선택하여 개발할 수 있도록 하고, 컴포넌트 조합 도구에서는 컴포넌트가 지원하는 결합 방식에 따라 컴포넌트들을 연결하여 조합할 수 있도록 한다.
도 2는 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치의 블록 구성도이다.
이에 나타낸 바와 같이 로봇용 소프트웨어 컴포넌트 조합 장치(100)는 코드 생성부(110), 컴포넌트 저장부(120), 컴포넌트 목록 생성부(130), 포인팅 입력부(140), 컴포넌트 연결부(150), GUI(Grapic User Interface) 처리부(160), 응용 패키지 구성 규격 생성부(170)를 포함한다.
코드 생성부(110)는 입력된 컴포넌트 규격(60)을 해석하여 강결합 형태 또는 약결합 형태의 컴포넌트 소스 코드를 생성한다.
이러한 코드 생성부(110)는 강결합 형태로 컴포넌트 규격(60)이 만들어진 경우, 출력 형태 포트의 경우에는 클라이언트 코드가 포함되도록 컴포넌트 소스 코드를 생성하며, 입력 형태 포트의 경우에는 서버 코드가 포함되도록 컴포넌트 소스 코드를 생성한다.
아울러, 코드 생성부(110)는 약결합 형태로 컴포넌트 규격(60)이 만들어진 경우, 출력 형태 포트의 경우에는 해당 토픽에 출판하는 컴포넌트 소스 코드를 생성하며, 입력 형태 포트의 경우에는 해당 토픽에 가입하는 컴포넌트 소스 코드를 생성한다.
컴포넌트 저장부(120)에는 코드 생성부(110)에 의해 생성된 컴포넌트 소스 코드가 저장된다.
GUI 처리부(160)는 그래픽 유저 인터페이스 환경을 통해 컴포넌트 목록 표시창과 토픽 목록 표시창 및 응용 구성도 표시창을 포함하는 컴포넌트 조합 도구를 제공한다.
컴포넌트 목록 생성부(130)는 컴포넌트 저장부(120)에 저장된 컴포넌트 소스 코드의 컴포넌트 규격을 해석하여 컴포넌트 목록 표시창의 컴포넌트 목록에 컴포넌트를 추가하거나 토픽 목록 표시창의 토픽 목록에 토픽을 추가한다.
이러한 컴포넌트 목록 생성부(130)는 타입 확장 태그가 있는 경우에는 약결합으로 만들어진 컴포넌트로 판정하여 토픽 목록 표시창의 토픽 목록에 등록한다.
포인팅 입력부(140)는 컴포넌트 목록 표시창에 나타난 개별 컴포넌트 또는 토픽 목록 표시창에 나타낸 개별 토픽을 끌어서 응용 구성도 표시창에 갖다 놓을 수 있도록 지원한다.
컴포넌트 연결부(150)는 컴포넌트 목록 표시창에 나타난 개별 컴포넌트가 포인팅 입력부(140)를 통해 화면상에서 끌려서 응용 구성도 표시창에 놓이면 컴포넌트 규격을 해석하여 컴포넌트가 갖고 있는 인터페이스 포트가 약결합으로 만들어진 경우에는 해당 포트가 토픽과 연결된다는 표시를 해당 포트 옆에 표시한다.
응용 패키지 구성 규격 생성부(170)는 응용 구성도 표시창에서 컴포넌트의 약결합 방식 포트가 토픽과 연결되거나 강결합 방식의 포트가 다른 컴포넌트의 포트와 직접 연결되면 이렇게 연결된 정보를 응용 패키지 구성 규격으로 만든다.
이러한 응용 패키지 구성 규격 생성부(170)는 강결합 방식으로 만들어진 포트는 컴포넌트끼리 직접 연결하도록 상기 응용 패키지 구성 규격의 소스와 타깃에 컴포넌트를 명시하여 연결 정보를 생성한다. 아울러, 약결합 방식으로 만들어진 포트는 컴포넌트와 토픽이 연결되도록 출판의 경우에는 소스를 컴포넌트로 명시하고 타깃을 토픽으로 명시하면, 가입의 경우에는 반대로 하여 연결 정보를 상기 응용 패키지 구성 규격에 포함시켜서 생성한다.
이하, 도 2 내지 도 10을 참조하여 본 발명의 실시예에 따른 로봇용 소프트웨어 컴포넌트 조합 장치에 의한 로봇용 소프트웨어 컴포넌트 조합 방법에 대해 살펴보기로 한다.
소프트웨어 컴포넌트를 개발할 때 강결합 및 약결합 방식의 연결 방식을 선택하여 개발할 수 있도록 하기 위해서, 컴포넌트 규격(프로파일) 중 이벤트 포트 선언 규격에 타입(type)과 같은 확장 태그(tag)를 이용하여 이벤트 포트가 강결합 형태로 만들어질지, 토픽을 이용한 약결합 형태로 만들어질지 선택할 수 있도록 한다. 또한, 토픽을 이용한 약결합 형태로 만들어지는 경우 컴포넌트에서 연결할 토픽 이름을 추가로 입력 받을 수 있으며, 컴포넌트 조합 단계에서 토픽 이름을 지정하는 경우에는 토픽 이름이 생략될 수도 있다. 도 3은 강결합 형태의 컴포넌트 규격의 출력 예를 나타낸 것이며, 도 4는 약결합 형태의 컴포넌트 규격의 출력 예를 나타낸 것이다.
이러한 컴포넌트 규격(60)이 입력되면 코드 생성부(110)는 도 5에 나타낸 바와 같이 컴포넌트 규격을 해석(S201)하여 컴포넌트 규격이 강결합 형태로 만들어진 것이지 아니면 약결합 형태로 만들어진 것인지를 판단한다(S203).
강결합 형태로 컴포넌트 규격이 만들어진 경우, 코드 생성부(110)는 컴포넌트간에 TCP/IP 등의 방법으로 연결할 수 있도록 출력(output) 형태 포트의 경우(S205)에는 클라이언트 코드가 포함되도록 컴포넌트 소스 코드를 생성하며(S207), 입력(input) 형태 포트의 경우(S205)에는 서버 코드가 포함되도록 컴포넌트 소스 코드를 생성한다(S209).
반면에, 약결합 형태로 컴포넌트 규격이 만들어진 경우에는, 코드 생성부(110)는 출력 형태 포트의 경우(S211)에는 해당 토픽에 출판(publish)하는 컴포넌트 소스 코드를 생성하며(S213), 입력 형태 포트의 경우에는 해당 토픽에 가입(subscribe)하는 컴포넌트 소스 코드를 생성한다(S215).
이렇게 만들어진 컴포넌트는 컴포넌트 저장부(120)에 저장되고, GUI 처리부(160)에 의한 GUI를 통해 제공되는 컴포넌트 조합 도구를 이용하여 컴포넌트들을 연결할 수 있으며, 이때 컴포넌트가 강결합 형태로 만들어졌는지 아니면 약결합 형태로 만들어졌는지는 해당 컴포넌트와 함께 제공되는 컴포넌트 규격을 읽어서 알 수 있다.
강결합 형태로 만들어진 컴포넌트들은 컴포넌트 조합 도구에서 연결을 맺을 때, 데이터를 송신하는 클라이언트와 데이터를 수신하는 서버의 주소를 서로 알게 되어 통신을 수행하게 된다.
반면에, 약결합 형태로 만들어진 컴포넌트들은 토픽 이름이 주어진 경우에는 해당 토픽에 가입을 하거나 출판을 하게 되며, 토픽 이름이 주어지지 않은 경우에는 컴포넌트 조합 단계에서 토픽의 이름을 알게 되고 해당 토픽에 가입을 하거나 출판을 한다.
이를 위해, 컴포넌트 목록 생성부(130)는 도 6에 나타낸 바와 같이 해당 컴포넌트 규격을 해석(S301)하여 컴포넌트 조합 도구의 컴포넌트 목록에 컴포넌트를 추가하며(S303), 타입(type) 확장 태그가 있는 경우에는 약결합으로 만들어진 컴포넌트로 판정(S305)하여 컴포넌트 조합 도구의 토픽 목록(topic list)에 등록(S309)하고 사용자가 선택할 수 있도록 화면에 표시한다. 이때, 토픽 목록에 토픽을 등록할 때 이미 같은 이름의 토픽이 등록되어 있는 경우에는 이전에 등록된 토픽을 사용하면 되므로 추가 등록을 하지는 않는다(S307). 컴포넌트가 더 있는 경우에는 단계 S301부터 재수행한다(S311).
GUI 처리부(160)는 도 7에 예시한 바와 같이 GUI를 통해 컴포넌트 조합 도구(400)를 제공한다. 이러한 컴포넌트 조합 도구(400)는 컴포넌트 목록 표시창(410)과 토픽 목록 표시창(420) 및 응용 구성도(diagram) 표시창(430)을 포함한다.
로봇 응용 개발자가 도 7에 예시한 바와 같이 컴포넌트 목록 표시창(410)에 나타난 개별 컴포넌트들을 마우스 장치 등과 같은 포인팅 입력부(140)를 이용하여 끌어서 응용 구성도 표시창(430)에 갖다 놓으면, 컴포넌트 연결부(150)는 컴포넌트 규격을 해석하여 약결합으로 만들어진 것인지 아니면 강결합으로 만들어진 것인지를 판단하며, 만약 컴포넌트가 갖고 있는 인터페이스 포트가 약결합으로 만들어진 경우에는, 해당 포트가 토픽과 연결된다는 표시(MyEventPort<<topic>>)를 해당 포트 옆에 표시한다.
토픽과 연결된다는 표시를 한 포트는 다른 컴포넌트의 포트와 직접적인 연결을 할 수 없으며, 같은 데이터 타입(data_type)을 갖는 토픽과만 연결 할 수 있다. 약결합으로 만들어진 컴포넌트가 연결할 토픽을 선택하기 위해서 도 7에 예시한 바와 같이 토픽 목록 표시창(420)의 토픽 목록에 나타난 개별 토픽을 포인팅 입력부(140)를 이용하여 끌어서 응용 구성도 표시창(430)에 갖다 놓으면 GUI 처리부(160)에 의해 해당 토픽이 응용 구성도 표시창(430)에 표시된다.
이렇게 토픽을 응용 구성도 표시창(430)에 갖다 놓은 후에, 도 9에 예시한 바와 같이 약결합으로 만들어진 컴포넌트의 포트를 토픽과 연결한다. 컴포넌트가 약결합과 강결합 방식을 모두 지원하는 경우에는 약결합 방식의 포트는 토픽과 연결되며, 강결합 방식의 포트는 다른 컴포넌트의 포트와 직접 연결된다.
이렇게 연결된 정보는 응용 패키지 구성 규격 생성부(170)에 의해 응용 패키지 구성 규격으로 만들어지는데, 강결합 방식으로 만들어진 포트는 컴포넌트끼리 직접 연결하도록 응용 패키지 구성 규격에 소스(source)와 타깃(target)에 컴포넌트를 명시하여 연결 정보를 생성하고, 약결합 방식으로 만들어진 포트는 컴포넌트와 토픽이 연결되도록 출판(publish)의 경우에는 소스(source)를 컴포넌트로 명시하고 타깃(target)을 토픽으로 명시하면, 가입(subscribe)의 경우에는 반대로 하여 연결 정보를 응용 패키지 구성 규격에 포함시켜서 생성한다. 도 10에는 토픽을 포함한 응용 패키지 구성 규격을 예시하였다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 로봇용 소프트웨어 컴포넌트 조합 장치
110 : 코드 생성부 120 : 컴포넌트 저장부
130 : 컴포넌트 목록 생성부 140 : 포인팅 입력부
150 : 컴포넌트 연결부 160 : GUI 처리부
170 : 응용 패키지 구성 규격 생성부
110 : 코드 생성부 120 : 컴포넌트 저장부
130 : 컴포넌트 목록 생성부 140 : 포인팅 입력부
150 : 컴포넌트 연결부 160 : GUI 처리부
170 : 응용 패키지 구성 규격 생성부
Claims (18)
- 입력된 컴포넌트 규격을 해석하여 강결합 형태 또는 약결합 형태의 컴포넌트 소스 코드를 생성하는 코드 생성부와,
상기 생성된 컴포넌트 소스 코드가 저장되는 컴포넌트 저장부와,
그래픽 유저 인터페이스 환경을 통해 컴포넌트 목록 표시창과 토픽 목록 표시창 및 응용 구성도 표시창을 포함하는 컴포넌트 조합 도구를 제공하는 그래픽 유저 인터페이스 처리부와,
상기 저장된 컴포넌트 소스 코드의 컴포넌트 규격을 해석하여 상기 컴포넌트 목록 표시창의 컴포넌트 목록에 컴포넌트를 추가하거나 상기 토픽 목록 표시창의 토픽 목록에 토픽을 추가하는 컴포넌트 목록 생성부와,
상기 컴포넌트 목록 표시창에 나타난 개별 컴포넌트 또는 상기 토픽 목록 표시창에 나타낸 개별 토픽을 끌어서 상기 응용 구성도 표시창에 갖다 놓을 수 있도록 지원하는 포인팅 입력부와,
상기 응용 구성도 표시창에서 컴포넌트의 약결합 방식 포트가 토픽과 연결되거나 강결합 방식의 포트가 다른 컴포넌트의 포트와 직접 연결되면 이렇게 연결된 정보를 응용 패키지 구성 규격으로 만드는 응용 패키지 구성 규격 생성부를 포함하고,
상기 컴포넌트 목록 생성부는,
상기 컴포넌트 규격에 타입 확장 태그가 존재함에 대응하여 해당 컴포넌트가 약결합인 것으로 결정하고, 상기 컴포넌트를 토픽 목록에 등록하고,
상기 컴포넌트 규격에 타입 확장 태그가 존재하지 않음에 대응하여, 해당 컴포넌트가 강결합인 것으로 결정하고, 상기 컴포넌트를 컴포넌트 목록에 등록하는 것을 특징으로 하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 제 1 항에 있어서,
상기 코드 생성부는 강결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 출력 형태 포트의 경우에는 클라이언트 코드가 포함되도록 상기 컴포넌트 소스 코드를 생성하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 제 1 항에 있어서,
상기 코드 생성부는 강결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 입력 형태 포트의 경우에는 서버 코드가 포함되도록 상기 컴포넌트 소스 코드를 생성하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 제 1 항에 있어서,
상기 코드 생성부는 약결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 출력 형태 포트의 경우에는 해당 토픽에 출판하는 상기 컴포넌트 소스 코드를 생성하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 제 1 항에 있어서,
상기 코드 생성부는 약결합 형태로 상기 컴포넌트 규격이 만들어진 경우, 입력 형태 포트의 경우에는 해당 토픽에 가입하는 상기 컴포넌트 소스 코드를 생성하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 삭제
- 제 1 항에 있어서,
상기 컴포넌트 목록 표시창에 나타난 개별 컴포넌트가 끌려서 상기 응용 구성도 표시창에 놓이면 상기 컴포넌트 규격을 해석하여 컴포넌트가 갖고 있는 인터페이스 포트가 약결합으로 만들어진 경우에는 해당 포트가 토픽과 연결된다는 표시를 해당 포트 옆에 표시하는 컴포넌트 연결부를 더 포함하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 제 1 항에 있어서,
상기 응용 패키지 구성 규격 생성부는 강결합 방식으로 만들어진 포트는 컴포넌트끼리 직접 연결하도록 상기 응용 패키지 구성 규격의 소스와 타깃에 컴포넌트를 명시하여 연결 정보를 생성하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 제 1 항에 있어서,
상기 응용 패키지 구성 규격 생성부는 약결합 방식으로 만들어진 포트는 컴포넌트와 토픽이 연결되도록 출판의 경우에는 소스를 컴포넌트로 명시하고 타깃을 토픽으로 명시하면, 가입의 경우에는 반대로 하여 연결 정보를 상기 응용 패키지 구성 규격에 포함시켜서 생성하는 로봇용 소프트웨어 컴포넌트 조합 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120134320A KR102013704B1 (ko) | 2012-11-26 | 2012-11-26 | 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법 |
US13/945,398 US20140149963A1 (en) | 2012-11-26 | 2013-07-18 | Method and apparatus for combining robot software components |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120134320A KR102013704B1 (ko) | 2012-11-26 | 2012-11-26 | 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140067279A KR20140067279A (ko) | 2014-06-05 |
KR102013704B1 true KR102013704B1 (ko) | 2019-08-23 |
Family
ID=50774482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120134320A KR102013704B1 (ko) | 2012-11-26 | 2012-11-26 | 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140149963A1 (ko) |
KR (1) | KR102013704B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3003449C (en) | 2015-11-02 | 2023-03-14 | The Johns Hopkins University | Generation of robotic user interface responsive to connection of peripherals to robot |
US11544049B2 (en) | 2016-02-12 | 2023-01-03 | Nutanix, Inc. | Virtualized file server disaster recovery |
US10599402B2 (en) * | 2017-07-13 | 2020-03-24 | Facebook, Inc. | Techniques to configure a web-based application for bot configuration |
CN111831272B (zh) * | 2019-04-15 | 2024-09-20 | 阿里巴巴集团控股有限公司 | 一种采用图形化的开发的方法、介质、设备和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030035005A1 (en) * | 2001-08-14 | 2003-02-20 | Kodosky Jeffrey L. | Graphically deployment of a program with automatic conversion of program type |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100426312B1 (ko) | 2001-12-28 | 2004-04-08 | 한국전자통신연구원 | 컴포넌트 기반 소프트웨어 개발 시스템의 컴포넌트식별장치 및 그 방법과 이에 관련된 프로그램의 기록매체 |
KR100871563B1 (ko) * | 2007-02-14 | 2008-12-02 | 삼성전자주식회사 | 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 |
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 |
KR101102930B1 (ko) * | 2008-10-31 | 2012-01-10 | 한국전자통신연구원 | 로봇용 소프트웨어 컴포넌트 장치 및 이를 이용한 쓰레드 처리 방법 |
-
2012
- 2012-11-26 KR KR1020120134320A patent/KR102013704B1/ko active IP Right Grant
-
2013
- 2013-07-18 US US13/945,398 patent/US20140149963A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030035005A1 (en) * | 2001-08-14 | 2003-02-20 | Kodosky Jeffrey L. | Graphically deployment of a program with automatic conversion of program type |
Non-Patent Citations (1)
Title |
---|
D. Brugali 외 3명. Service Component Architectures in Robotics: the SCA-Orocos integration. 2011.10.17. |
Also Published As
Publication number | Publication date |
---|---|
KR20140067279A (ko) | 2014-06-05 |
US20140149963A1 (en) | 2014-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Blackstock et al. | Toward a distributed data flow platform for the web of things (distributed node-red) | |
Li et al. | Programming IoT devices by demonstration using mobile apps | |
KR102013704B1 (ko) | 로봇용 소프트웨어 컴포넌트 조합 장치 및 방법 | |
US11194686B2 (en) | Data agnostic monitoring service | |
US9311063B2 (en) | Method for generating user interface using unified development environment | |
US20120272190A1 (en) | Method and System for Graphically Enabled Service Oriented Architecture | |
Berrouyne et al. | A model-driven approach to unravel the interoperability problem of the internet of things | |
Liu et al. | MUIT: a domain-specific language and its middleware for adaptive mobile web-based user interfaces in WS-BPEL | |
US8806434B2 (en) | Dynamically configuring an integrated development environment | |
Mosser et al. | From sensors to visualization dashboards: need for language composition | |
US20230040137A1 (en) | Group control and management among electronic devices | |
Codd-Downey et al. | Rcon: Dynamic mobile interfaces for command and control of ros-enabled robots | |
US20120072467A1 (en) | General Map Web Interface | |
KR101773102B1 (ko) | 컴포넌트 기반 로봇 응용 소프트웨어 개발에서의 가상 컴포넌트를 이용한 컴포넌트 조합 장치 및 방법과 이에 관련된 프로그램의 기록매체 | |
Liu et al. | MUIT: a middleware for adaptive mobile web-based user interfaces in WS-BPEL | |
KR102379101B1 (ko) | 작업 환경에서 도구를 작동시키는 방법 및 그 방법을 응용하는 기계 | |
Brovkin | Porting Android ObSAS LINK implementation to iOS platform | |
Blaha et al. | Rosbridge web interface | |
Elvezio | XR Development with the Relay and Responder Pattern | |
CN106663006A (zh) | 控管电子装置的方法以及应用该方法的控制系统 | |
Klawon | The Open Standard for Unattended Sensors (OSUS) as a Platform for the Internet of Things (IOT) | |
CN117032778A (zh) | 活动配置方法、装置、可读介质及电子设备 | |
CN115543262A (zh) | 基于引擎能力的实体功能实现方法、装置及电子设备 | |
Wieczorek | The application of augmented reality to enhance the communicativnes of a user interface: Case: The vehicle terminal | |
Kahl et al. | Event Broadcasting Service An Event-Based Communication Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |