KR20130047195A - 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법 - Google Patents

로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법 Download PDF

Info

Publication number
KR20130047195A
KR20130047195A KR1020110112069A KR20110112069A KR20130047195A KR 20130047195 A KR20130047195 A KR 20130047195A KR 1020110112069 A KR1020110112069 A KR 1020110112069A KR 20110112069 A KR20110112069 A KR 20110112069A KR 20130047195 A KR20130047195 A KR 20130047195A
Authority
KR
South Korea
Prior art keywords
data
encoding
user
encoder
meta
Prior art date
Application number
KR1020110112069A
Other languages
English (en)
Other versions
KR101857123B1 (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 KR1020110112069A priority Critical patent/KR101857123B1/ko
Priority to US13/611,468 priority patent/US8681025B2/en
Publication of KR20130047195A publication Critical patent/KR20130047195A/ko
Application granted granted Critical
Publication of KR101857123B1 publication Critical patent/KR101857123B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/707Structured documents, e.g. XML
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 로봇 소프트웨어간 통신에서 운영체제(OS : Operation System) 및 프로그래밍 언어에 의존하지 않고 다양한 형식과 사용자가 정의한 임의의 형식에 대해서 인코딩 및 디코딩을 수행할 수 있는 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법을 제공하는데 있다.
이를 위하여 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치는 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 메타 구조체 변환기가 등록되며, 인코딩용 사용자 데이터의 타입이 구조체 또는 구조체 배열인 경우 등록된 메타 구조체 변환기에서 사용자 데이터의 구조체를 메타 구조체로 변환하기 위한 메타 구조체 변환기를 선택하는 메타 구조체 변환기 팩토리와,데이터 타입별 인코더가 등록되며, 인코딩용 사용자 데이터를 인코딩하기 위해 등록된 인코더에서 어느 하나의 인코더를 선택하는 인코더 팩토리와,선택된 메타 구조체 변환기에 의해 생성된 메타 구조체와 어느 하나의 인코더를 이용하여 인코딩용 사용자 데이터를 인코딩하는인코더부를 포함할 수 있다.

Description

로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법{DATA DECODING AND ENCODING APPARATUS AND METHOD FOR ROBOT SOFTWARE COMMUNICATION}
본 발명은 로봇 소프트웨어간 통신을 데이터 인코딩 및 디코딩에 관한 것으로, 더욱 상세하게는 로봇 소프트웨어간 통신에서 운영체제(OS : Operation System) 및 프로그래밍 언어에 의존하지 않고 다양한 형식과 사용자가 정의한 임의의 형식에 대해서 인코딩 및 디코딩을 수행할 수 있는 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법에 관한 것이다.
현재 로봇 소프트웨어에서 통신을 통해 데이터를 전송하고자 할 때 소프트웨어 내부에서 사용되고 있는 데이터를 통신을 위한 형태로 인코딩하는 방법으로 사용되는 XML 방식이나 ASN.1 등은 사전에 정해진 데이터 구조에 따라 인코더나 디코더가 구성되는 것으로, 새로운 타입을 추가할 때에는 인코더/디코더를 재구성해야 하며 다중 배열을 전송하거나 복잡한 구조의 클래스를 전송한다고 할 때에는 인코더/디코더 구성이 어려운 점이 있다.
최근에 이러한 문제점에 대한 해결책으로 "boost.org"에서 제시한 시리얼리제이션(serialization) 라이브러리의 경우 임의의 구조에 대해서도 유연한 형태이나 운영체제, 예컨대 윈도우, 리눅스간 통신 등에서 오류를 내어 사용하기 어려운 문제점이 있다.
또한, 시리얼리제이션(serialization)에 의해 생성된 인코딩 방식이 공개되어 있지 않아 프로그래밍 언어, 예컨대 C나 Python과 같은 다른 언어에서 해당 인코딩 방법을 사용하는 것에 난해한 점이 있다.
대한민국 공개특허공보정보 객체의 인코딩을 위한 방법 및 이를 이용한 인코더(공개번호 10-2011-0066084)에는 통신망에 적합하도록 정보 객체를 변조하여 인코딩하는 기술이 개시되어 있다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, 로봇 소프트웨어간 통신에서 운영체제(OS : Operation System) 및 프로그래밍 언어에 의존하지 않고 다양한 형식과 사용자가 정의한 임의의 형식에 대해서 인코딩 및 디코딩을 수행할 수 있는 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법을 제공하는데 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진자에게 명확하게 이래될 수 있을 것이다.
본 발명의 일관점에 의하면, 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치는 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 메타 구조체 변환기가 등록되며, 인코딩용 사용자 데이터의 타입이 구조체 또는 구조체 배열인 경우 상기 등록된 메타 구조체 변환기에서 사용자 데이터의 구조체를 메타 구조체로 변환하기 위한 메타 구조체 변환기를 선택하는 메타 구조체 변환기 팩토리와,데이터 타입별 인코더가 등록되며, 상기 인코딩용 사용자 데이터를 인코딩하기 위해 상기 등록된 인코더에서 어느 하나의 인코더를 선택하는 인코더 팩토리와,상기 선택된 메타 구조체 변환기에 의해 생성된 메타 구조체와 상기 어느 하나의 인코더를 이용하여 상기 인코딩용 사용자 데이터를 인코딩하는 인코더부를 포함할 수 있다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치는 상기 정보 파일을 기반으로 메타 구조체 변환기를 생성하는 메타 구조체 코드 생성기와,상기 메타 구조체 코드 생성기에 의해 생성된 메타 구조체 변환기를 상기 메타 구조체 변환기 팩토리에 등록하는 메타 구조체 코드 등록부를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치의 상기 인코더 팩토리에는. 배열 형태의 데이터를 인코딩하기 위한 배열 형식 인코더 및 구조체 형태의 데이터를 인코딩하기 위한 구조체 인코더가 등록되어 있는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치는 상기 인코딩용 사용자 데이터를 인코딩할 때 이용될 인코딩 규칙 정보가 저장되어 있는 인코딩 규칙 저장소를 더 포함하며, 상기 인코더 팩토리는, 상기 인코딩용 사용자 데이터의 타입과 상기 인코딩 규칙 저장소로부터 제공받은 인코딩 규칙 정보에 의거하여 상기 어느 하나의 인코더를 선택하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치에서 상기 인코더부는, 상기 인코딩 규칙 저장소로부터 제공받은 인코딩 규칙 정보를 상기 인코딩된 사용자 데이터에 추가하여 임의의 장치로 송신하는 것을 특징으로 한다.
본 발명의 다른 관점에 따르면, 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법은 데이터 구조에 대한 정보 파일을 기반으로 메타 구조체 변환기를 생성하여 메타 구조체 변환기 팩토리에 등록하는 단계와, 인코딩할 사용자 데이터가 구조체 또는 구조체 배열인 경우 상기 메타 구조체 변환기 팩토리에 등록된 메타 구조체 변환기 중 어느 하나를 이용하여 상기 인코딩할 사용자 데이터의 구조체를 메타 구조체로 변환하는 단계와,기 등록된 적어도 하나 이상의 인코더에서 구조체 인코더를 선택하는 단계와,상기 구조체 인코더와 상기 변환된 메타 구조체를 이용하여 상기 인코딩할 사용자 데이터를 인코딩하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법은 상기 인코딩할 사용자 데이터가 구조체 또는 구조체의 배열이 아닌 경우 기본 형식 인코더 또는 배열 형식 인코더를 이용하여 상기 인코딩할 사용자 데이터를 인코딩하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법은 상기 인코딩할 사용자 데이터를 인코딩할 때 이용될 인코딩 규칙 정보가 저장되어 있는 인코딩 규칙 저장소로부터 제공받으며, 상기 제공받은 인코딩 규칙 정보와 상기 인코딩할 사용자 데이터 타입에 의거하여 상기 기 등록된 인코더들 중 어느 하나를 선택하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법은 상기 인코딩된 데이터에 상기 인코딩 규칙 저장소로부터 제공받은 인코딩 규칙 정보를 포함시켜 임의의 장치에 전송하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 관점에 따르면, 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치는 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 사용자 구조체 변환기가 등록되며, 인코딩된 데이터의 타입이 구조체 또는 구조체 배열인 경우 상기 등록된 사용자 구조체 변환기에서 인코딩된 데이터의 메타 구조체를 사용자 구조체로 변환하기 위한 사용자 구조체 변환기를 선택하는 사용자 구조체 변환기 팩토리와, 데이터 타입별 디코더가 등록되며, 상기 인코딩된 데이터를 디코딩하기 위해 상기 등록된 인코더에서 어느 하나의 디코더를 선택하는 디코더 팩토리와, 상기 선택된 사용자 구조체 변환기에 의해 생성된 사용자 구조체와 상기 어느 하나의 디코더를 이용하여 상기 인코딩된 데이터를 디코딩하는 디코더부를 포함할 수 있다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치는 상기 정보 파일을 기반으로 사용자 구조체 변환기를 생성하는 사용자 구조체 코드 생성기와, 상기 사용자 구조체 코드 생성기에 의해 생성된 사용자 구조체 변환기를 상기 사용자 구조체 변환기 팩토리에 등록하는 사용자 구조체 코드 등록부를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치의 상기 디코더 팩토리에는, 배열 형태의 데이터를 디코딩하기 위한 배열 형태 디코더 및 구조체 형태의 데이터를 디코딩하기 위한 구조체 디코더가 등록되어 있는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치는 상기 인코딩된 데이터에 포함된 인코딩 규칙 정보를 추출하는 인코딩 룰 파서부를 더 포함하며, 상기 디코더 팩토리는, 상기 인코딩된 데이터의 타입과 상기 인코딩 룰 파서부로부터 제공받은 인코딩 규칙 정보에 의거하여 상기 어느 하나의 디코더를 선택하는 것을 특징으로 한다.
본 발명의 또 다른 관점에 따르면, 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 방법은 데이터 구조에 대한 정보 파일을 기반으로 사용자 구조체 변환기를 생성하여 사용자 구조체 변환기 팩토리에 등록하는 단계와,인코딩된 데이터가 구조체 또는 구조체 배열인 경우 상기 사용자 구조체 변환기 팩토리에 등록된 사용자 구조체 변환기 중 어느 하나를 이용하여 상기 인코딩된 데이터의 메타 구조체를 사용자 구조체로 변환하는 단계와,기 등록된 적어도 하나 이상의 디코더에서 구조체 디코더를 선택하는 단계와,상기 구조체 디코더와 상기 변환된 사용자 구조체를 이용하여 상기 인코딩된 데이터를 디코딩하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 방법은 상기 인코딩된 데이터가 구조체 또는 구조체의 배열이 아닌 경우 기본 형식 디코더 또는 배열 형식 디코더를 이용하여 상기 인코딩된 데이터를 디코딩하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 디코딩 방법은 상기 인코딩된 데이터에서 인코딩 규칙 정보를 추출하는 단계와,상기 추출한 인코딩 규칙 정보와 상기 인코딩된 데이터 타입에 의거하여 상기 기 등록된 중 디코더들 중 어느 하나를 선택하는 단계를 더 포함하는 것을 특징으로 한다.
본발명의 실시 예에 의하면, 로봇 소프트웨어간 통신을 구성할 때 바이너리, XML, 텍스트 등 다양한 형태의 인코딩 규칙을 적용하여 임의의 사용자 구조체에 대해서도 용이하게 인코딩 및 디코딩할 수 있는 장치 및 방법을 제공함으로써, 로봇 소프트웨어간 통신에서 운영체제(OS : Operation System) 및 프로그래밍 언어에 의존하지 않고 다양한 형식과 사용자가 정의한 임의의 형식에 대해서 인코딩 및 디코딩을 수행할 수 있는 효과가 있다..
도 1은 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치를 도시한 블록도,
도 2는 본 발명의 실시 예에 따라 사용자 구조체를 메타 구조체로 변환하는 과정을 설명하기 위한 도면,
도 3은 본 발명의 실시 예에 따라 메타 구조체 변환기의 내부 구조를 설명하기 위한 도면,
도 4는 본 발명의 실시 예에 따라 데이터를 인코딩하는 과정을 도시한 흐름도,
도 5는 본 발명의 실시 예에 따른 디코딩 장치의 내부 구성을 도시한 블록도,
도 6은 본 발명의 실시 예에 따라 사용자 구조체 변환기의 내부 구조를 설명하기 위한 도면,
도 7은 본 발명의 실시 예에 따라 인코딩된 데이터를 디코딩하는 과정을 도시한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 서로 다른 로봇 소프트웨어 컴포넌트 또는 응용 소프트웨어가 통신을 통해 데이터를 송신할 때 데이터를 인코딩 또는 디코딩하는 장치 및 방법에 대해 설명한다.
도 1은 본 발명의 실시 예에 따른 로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치를 도시한 블록도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 데이터 인코딩 장치는 메타 구조체 변환기 팩토리(100), 메타 구조체 코드 생성기(110), 등록부(112,) 인코더 저장소(120),인코딩 규칙 저장소(140), 인코더 팩토리(160), 인코더부(180) 등을 포함할 수 있다.
메타 구조체 변환기 팩터리(100)에는 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 메타 구조체 변환기가 등록되어 있으며, 인코딩하고자 하는 사용자 데이터의 타입 정보가 구조체 또는 구조체 배열인 경우 등록된 메타 구조체 변환기 중 어느 하나를 선택한 후 이를 인코더부(140)에 제공할 수 있다. 여기에서, 메타 구조체 변환기는 사용자의 데이터 구조체를 메타 구조체로 변경하기 위한 것으로서, 이에 대해 도 2을 참조하여 설명한다.
도 2는 본 발명의 실시 예에 따른 사용자 구조체와 메타 구조체간의 변환 과정을 설명하기 위한 도면이다.
도 2에 도시된 바와 같이, 사용자 구조체 인스턴스(200)의 내부에는 정수(integer) 타입의 멤버 데이터(211), 플로트(float) 타입의 멤버 데이터(212) 및 구조체 타입의 멤버 데이터(213) 등을 포함할 수 있다.
메타 구조체 변환기 팩토리(100)에 의해 생성된 메타 구조체 변환기는 이러한 사용자 구조체 인스턴스(200)를 이용하여 메타 구조체 인스턴스(220)를 생성할 수 있다. 여기에서, 메타 구조체 인스턴스(220)는 사용자 구조체 인스턴스(200) 내부의 각 멤버 데이터에 대한 데이터를 별도로 관리하기 위한 메타 구조체 아이템 리스트(230)를 포함하며, 메타 구조체 아이템 리스트(230)에는 정수 타입의 사용자 구조체의 멤버 데이터(211)로부터 생성된 메타 구조체 아이템(231), 플로트 타입의 사용자 구조체 멤버 데이터(212)로부터 생성된 메타 구조체 아이템(232) 및 구조체 형태의 사용자 구조체 멤버 데이터로부터 생성된 메타 구조체 아이템(233) 등을 포함할 수 있다.
한편, 메타 구조체 변환기 팩토리(100)에 등록된 메타 구조체 변환기는 메타 구조체 코드 생성기(110) 및 메타 구조체 코드 등록부(112)에 의해 생성 및 등록될 수 있다.
메타 구조체 코드 생성기(110)는 사용자가 정의한 데이터 구조에 대한 정보 파일이 입력됨에 따라 정보 파일로부터 메타 구조체 변환기를 생성할 수 있으며, 생성된 메타 구조체 변환기는 메타 구조체 코드 등록부(112)에 의해 메타 구조체 변환기 팩토리(100)에 등록될 수 있다.
메타 구조체 코드 생성기(110)에 의해 생성된 메타 구조체 변환기는, 도 3에 도시된 바와 같이, 코드 형태로 구현될 수 있는데, 즉 사용자 데이터의 구조체를 메타 구조체로 변경하기 위한 변환기 함수 코드(300)와 변환기 함수 코드(300)를 등록하기 위한 등록 코드(310)로 구성될 수 있다.
인코딩 규칙 저장소(120)에는 사용자 데이터를 인코딩할 때 적용될 인코딩 규칙 정보, 예컨대 문자열 방식, 바이너리 방식, XML 방식 등과 같은 인코딩 규칙 정보가 저장되어 있다.
본 발명의 실시 예에서 인코더 저장소(140)에는 기본 형식 인코더(Primitive type encoder, 141), 배열 형식 인코더(Array encoder, 142), 구조체 인코더(Struct encoder, 143) 등이 저장되어 있다.
인코더팩토리(160)는 인코딩 규칙 저장소(120)에서 사용자의 데이터를 인코딩할 때 사용할 인코딩 규칙 정보를 제공받으며, 인코딩 규칙 정보와 사용자 데이터의 타입 정보를 인자로 하여 사용할 인코더를 인코더 저장소(140)에서 검색하여 선택한 후 이를 인코더부(180)에 제공할 수 있다. 즉, 인코딩할 사용자의 데이터 타입이 기본 타입인 경우에는 기본 형식 인코더(141)를 선택하여 생성하며, 사용자의 데이터 타입이 배열 형식인 경우에는 배열 형식 인코더(142)를 선택하여 생성하며, 사용자의 데이터 타입이 구조체와 같은 복합 형태일 경우에는 구조체 인코더(143)를 선택하여 인코더부(180)에 제공할 수 있다.
인코더부(180)는 인코더 팩토리(160)로부터 제공받은 인코더를 이용하여 사용자 데이터를 인코딩할 수 있는데, 즉 인코딩할 사용자 데이터의 타입이 기본 타입이거나 배열 타입인 경우 사용자가 데이터를 인자로 하여 인코딩을 수행하고, 사용자 데이터의 타입이 구조체와 같은 복합 형식인 경우 메타 구조체 변환기에 의해 생성된 메타 구조체를 이용하여 인코딩을 수행하여 인코딩된 데이터(190)를 출력할 수 있다.
이러한 인코더부(180)는 인코딩된 데이터(190)에 인코딩 규칙 정보(192)를 추가하여 출력할 수 있다.
상기와 같은 구성을 갖는 로봇 응용 소프트웨어간의 통신을 위한 데이터 인코딩 장치가 동작하는 과정에 대해 도 4를 참조하여 설명한다.
도 4는 본 발명의 실시 예에 따라 데이터를 인코딩하는 과정을 도시한 흐름도이다.
도 4에 도시된 바와 같이, 먼저 사용자는 인코딩 장치에서 제공되는 사용자 인터페이스를 이용하여 인코딩에 사용할 데이터 구조를 정의(S400)하며, 이에 따라 메타 구조체 코드 생성기(110)는 사용자 인터페이스를 통해 정의된 데이터 구조에 대한 정보 파일을 참조하여 메타 구조체 변환기에 대한 코드를 생성한다.
이후, 인코딩을 시작하기 전에 인코딩 장치는 메타 구조체 코드 등록부(112)를 호출하여 각각의 데이터 타입에 대한 메타 구조체 변환기를 메타 구조체 변환기 팩토리(110)에 등록한다(S402).
다음으로, 실행 시점에서 데이터 인코딩이 이루어지는데, 먼저 인코딩 장치는 인코딩할 데이터의 타입이 구조체인지를 판단한다(S404).
S404의 판단 결과, 인코딩할 데이터의 타입이 구조체인 경우 인코딩할 데이터의 구조체에 대한 정보는 메타 구조체 변환기 팩토리(100)에 제공되며, 메타 구조체 변환기 팩토리(100)는 인코딩할 데이터 타입을 메타 구조체로 변환하는 기능을 수행하는 메타 구조체 변환기를 선택하여 생성한다(S406). 생성된 메타 구조체 변환기는 인코딩할 데이터 타입을 메타 구조체로 변환한 후 이를 인코더부(180)에 제공한다. 다시 말해서, 메타 구조체 변환기가 인코딩할 데이터 구조체 인스턴스의 각 멤버 데이터에 대해 각각 메타 구조체 아이템을 생성한 후 이를 메타 구조체 인스턴스의 메타 구조체 아이템 리스트에 추가하는 방식으로 인코딩할 데이터 타입을 메타 구조체로 변환한다.
그리고 나서, 인코더 팩토리(160)는 인코딩할 데이터의 타입 정보와 인코딩 규칙 저장소(120)에서 제공받은 인코딩 규칙을 인자로 하여 인코더 저장소(140)에 저장된 인코더를 선택하여 인코더 인스턴스를 생성한다(S408). 즉, 인코더 팩토리(160)는 인코딩할 데이터 타입이 구조체이기 때문에 구조체 인코더(143)를 선택하여 인코더 인스턴스를 생성한다. 인코더 팩토리(160)에 의해 생성된 인코더 인스턴스는 인코더부(180)에 제공된다.
다음은 인코딩하는 과정으로서, 인코더부(180)는 구조체 인코더와 메타 구조체 변환기를 통해 생성된 메타 구조체를 이용하여 인코딩을 수행함으로써, 인코딩된 데이터를 생성(S410)한 후 이를 수신 장치(디코딩 장치)에 전송할 수 있다. 여기에서, 인코딩된 데이터에는 인코딩 규칙에 대한 정보가 추가될 수 있다.
본 발명의 실시 예에서는 인코딩할 데이터에 인코딩 규칙에 대한 정보가 포함되는 것으로 예를 들어 설명하였지만, 인코딩 규칙에 대한 정보가 인코딩된 데이터에 포함되지 않고 인코딩된 데이터와 별도로 수신 장치에 전송될 수 있다.
한편, S404의 판단 결과, 인코딩될 데이터 타입의 기본 형식이거나 배열 타입인 경우 인코더 팩토리(160)는 인코더 저장소(140)에서 기본 형식 인코더(141)를 선택하거나 배열 형식 인코더(142)를 선택하여 인코더 인스턴스를 생성(S412)한 후 이를 인코더부(180)에 제공한다.
그런 다음, 인코더부(180)는 인코딩할 데이터를 직접 인자로 하여 인코딩을 수행함으로써, 인코딩된 데이터를 생성한 후 이를 수신 장치에 전송할 수 있다.
상술한 바와 같은 인코딩 장치에 의해 생성된 인코딩된 데이터는 수신 장치, 즉 디코딩 장치에 전송되어 디코딩될 수 있다.
본 발명의 실시 예에 따른 디코딩 장치와 그 동작 과정에 대해 도 5 내지 도 7을 참조하여 설명한다.
도 5는 본 발명의 실시 예에 따른 디코딩 장치의 내부 구성을 도시한 블록도이다.
도 5를 참조하면, 본 발명의 실시 예에 따른 데이터 디코딩 장치는 인코딩된 데이터를 해석하여 인코딩 규칙을 추출하는 인코딩 룰 파서부(500), 다수의 디코더가 저장되어 있는 디코더 저장소(510), 사용자 데이터 타입 정보를 기반으로 디코더 저장소(510)에서 디코더를 선택하는 디코더 팩토리(520), 디코딩할 데이터가 구조체 또는 구조체의 배열인 경우 메타 구조체를 사용자 구조체 데이터로 변환하기 위한 사용자 구조체 변환기를 생성하는 사용자 구조체 변환기 팩토리(530) 및 인코딩된 데이터를 디코딩하여 사용자 데이터를 생성하는 디코더부(540) 등을 포함할 수 있다.
사용자 구조체 변환기 팩토리(530)에는 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 사용자 구조체 변환기가 등록되어 있으며, 디코딩하고자 하는 사용자 데이터의 타입 정보가 구조체 또는 구조체 배열인 경우 등록된 메타 구조체 변환기 중 어느 하나를 선택한 후 이를 디코더부(540)에 제공할 수 있다. 여기에서, 사용자 구조체 변환기는 메타 구조체를 사용자 데이터 구조체로 변경하기 위한 것으로, 즉 도 2에 도시된 바와 같은 메타 구조체를 사용자 구조체로 변환할 수 있다.
한편, 사용자 구조체 변환기 팩토리(530)에 등록된 사용자 구조체 변환기는 사용자 구조체 코드 생성기(550) 및 사용자 구조체 코드 등록부(552)에 의해 생성 및 등록될 수 있다.
사용자 구조체 코드 생성기(550)는 사용자가 정의한 데이터 구조에 대한 정보 파일이 입력됨에 따라 정보 파일로부터 사용자 구조체 변환기를 생성할 수 있으며, 생성된 사용자 구조체 변환기는 사용자 구조체 코드 등록부(552)에 의해 사용자 구조체 변환기 팩토리(530)에 등록될 수 있다.
사용자 구조체 코드 생성기(550)에 의해 생성된 사용자 구조체 변환기는, 도 6에 도시된 바와 같이, 코드 형태로 구현될 수 있는데, 즉 메타 구조체를 사용자 데이터 구조체로 변경하기 위한 변환기 함수 코드(600)와 변환기 함수 코드(600)를 등록하기 위한 등록 코드(610)로 구성될 수 있다.
본 발명의 실시 예에서 디코더 저장소(510)에는 기본 형식 디코더(Primitive type decoder, 511), 배열 형식 디코더(Array decoder, 512), 구조체 인코더(Struct decoder, 513) 등이 저장되어 있다.
디코더 팩토리(520)는 인코딩 룰 파서부(500)으로부터 제공받은 인코딩 규칙 정보와 사용자 데이터의 타입 정보를 인자로 하여 사용할 디코더를 디코더 저장소(510)에서 검색하여 선택한 후 이를 디코더부(540)에 제공할 수 있다. 즉, 인코딩된 사용자의 데이터 타입이 기본 타입인 경우에는 기본 형식 디코더(511)를 선택하여 생성하며, 사용자의 데이터 타입이 배열 형식인 경우에는 배열 형식 디코더(512)를 선택하여 생성하며, 사용자의 데이터 타입이 구조체와 같은 복합 형태일 경우에는 구조체 디코더(513)를 선택하여 디코더부(540)에 제공할 수 있다.
디코더부(540)는 디코더 팩토리(520)로부터 제공받은 디코더를 이용하여 인코딩된 데이터를 디코딩할 수 있는데, 즉 인코딩된 사용자 데이터의 타입이 기본 타입이거나 배열 타입인 경우 사용자가 데이터를 인자로 하여 디코딩을 수행하고, 사용자 데이터의 타입이 구조체와 같은 복합 형식인 경우 사용자 구조체 변환기에 의해 생성된 사용자 구조체를 이용하여 디코딩을 수행하여 사용자 데이터를 생성할 수 있다.
상술한 바와 같은 구조를 갖는 디코딩 장치가 인코딩된 데이터를 수신하여 디코딩하는 과정에 대해 도 7을 참조하여 설명한다.
도 7은 본 발명의 실시 예에 따라 인코딩된 데이터를 디코딩하는 과정을 도시한 흐름도이다.
도 7에 도시된 바와 같이, 먼저 사용자는 디코딩 장치에서 제공되는 사용자 인터페이스를 이용하여 디코딩에 사용할 데이터 구조를 정의(S700)하며, 이에 따라 사용자 구조체 코드 생성기(550)는 사용자 인터페이스를 통해 정의된 데이터 구조에 대한 정보 파일을 참조하여 사용자 구조체 변환기에 대한 코드를 생성한다.
이후, 디코딩을 시작하기 전에 인코딩 장치는 사용자 구조체 코드 등록부(552)를 호출하여 각각의 데이터 타입에 대한 사용자 구조체 변환기를 사용자 구조체 변환기 팩토리(530)에 등록한다(S702).
다음으로, 디코딩 장치는 소켓, 파일 등과 같은 다양한 통신 채널을 통해 인코딩된 데이터를 수신한다(S704). 이때, 디코딩 장치는 헤더나 기타 정보들을 추출하여 수신되는 데이터가 디코딩이 가능한 형태인지에 대한 사전 검사를 수행한 후 디코딩이 가능한 데이터에 대해서만 다음 단계를 실행한다.
인코딩 룰 파서부(500)는 인코딩된 데이터를 해석하여 인코딩 규칙을 추출(S706)한 후 이를 디코더팩토리(520)에 제공한다.
그런 다음, 디코딩 장치는 인코딩된 데이터의 타입이 구조체인지를 판단한다(S708).
S708 판단 결과, 인코딩된 데이터의 타입이 구조체인 경우 인코딩된데이터의 구조체에 대한 정보는 사용자 구조체 변환기 팩토리(520)에 제공되며, 사용자 구조체 변환기 팩토리(520)는 인코딩된 데이터 타입, 즉 메타 구조체를 사용자 구조체로 변환하는 기능을 수행하는 사용자 구조체 변환기를 선택하여 생성한다(S710). 생성된 사용자 구조체 변환기는 인코딩된 데이터 타입을 사용자 구조체로 변환한 후 이를 디코더부(540)에 제공한다. 다시 말해서, 사용자 구조체 변환기가 인코딩된 데이터 구조체 인스턴스(메타 구조체 인스턴스)의 메타 구조체 아이템 리스트의 각 메타 구조체 아이템 상의 데이터 값을 사용자 구조체 인스턴스의 각 멤버 데이터에 반영하는 방식으로 인코딩된 데이터 타입을 사용자 구조체로 변환한다.
그리고 나서, 디코더 팩토리(520)는 인코딩된 데이터의 타입 정보와 인코딩 룰 파서부(500)에서 제공받은 인코딩 규칙을 인자로 하여 디코더 저장소(510)에 저장된 디코더를 선택하여 디코더 인스턴스를 생성한다(S712). 즉, 디코더 팩토리(520)는 인코딩된 데이터 타입이 구조체이기 때문에 구조체 디코더(513)를 선택하여 디코더 인스턴스를 생성한다. 디코더 팩토리(520)에 의해 생성된 디코더 인스턴스는 디코더부(540)에 제공된다.
다음은 디코딩하는 과정으로서, 디코더부(540)는 구조체 디코더와 사용자 구조체 변환기를 통해 생성된 사용자 구조체를 이용하여 디코딩을 수행함으로써, 디코딩된 데이터를 생성(S714)한다.
한편, S708의 판단 결과, 인코딩된 데이터 타입의 기본 형식이거나 배열 타입인 경우 디코더 팩토리(520)는 디코더 저장소(510)에서 기본 형식 인코더(511)를 선택하거나 배열 형식 인코더(512)를 선택하여 디코더 인스턴스를 생성(S716)한 후 이를 디코더부(540)에 제공한다.
그런 다음, 디코더부(540)는 인코딩된 데이터를 직접 인자로 하여 디코딩을 수행함으로써, 다코딩된 데이터를 생성한다.
본 발명의 실시 예에 따르면, 로봇 소프트웨어간 통신을 구성할 때 바이너리, XML, 텍스트 등 다양한 형태의 인코딩 규칙을 적용하여 임의의 사용자 구조체에 대해서도 용이하게 인코딩 및 디코딩할 수 있는 장치 및 방법을 제공함으로써, 로봇 소프트웨어간 통신에서 운영체제(OS : Operation System) 및 프로그래밍 언어에 의존하지 않고 다양한 형식과 사용자가 정의한 임의의 형식에 대해서 인코딩 및 디코딩을 수행할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성요소를 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
100 : 메타 구조체 변환기 팩토리
110 : 메타 구조체 코드 생성기
112 : 메타 구조체 코드 등록기
120 : 인코딩 규칙 저장소
140 : 인코더 저장소
160 : 인코더 팩토리
180 : 인코더부
500 : 인코딩 룰 파서부
510 : 디코더 저장소
520 : 디코더 팩토리
530 : 사용자 구조체 변환기 팩토리
540 : 디코더부
550 : 사용자 구조체 코드 생성기
552 : 사용자 구조체 코드 등록부

Claims (16)

  1. 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 메타 구조체 변환기가 등록되며, 인코딩용 사용자 데이터의 타입이 구조체 또는 구조체 배열인 경우 상기 등록된 메타 구조체 변환기에서 사용자 데이터의 구조체를 메타 구조체로 변환하기 위한 메타 구조체 변환기를 선택하는 메타 구조체 변환기 팩토리와,
    데이터 타입별 인코더가 등록되며,상기 인코딩용 사용자 데이터를 인코딩하기 위해상기 등록된 인코더에서 어느 하나의 인코더를 선택하는 인코더 팩토리와,
    상기 선택된 메타 구조체 변환기에 의해 생성된 메타 구조체와 상기 어느 하나의 인코더를 이용하여 상기 인코딩용 사용자 데이터를 인코딩하는 인코더부를 포함하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치.
  2. 제 1 항에 있어서,
    상기 인코딩 장치는,
    상기 정보 파일을 기반으로 메타 구조체 변환기를 생성하는 메타 구조체 코드 생성기와,
    상기 메타 구조체 코드 생성기에 의해 생성된 메타 구조체 변환기를 상기 메타 구조체 변환기 팩토리에 등록하는 메타 구조체 코드등록부를 포함하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치.
  3. 제 1 항에 있어서,
    상기 인코더 팩토리에는. 배열 형태의 데이터를 인코딩하기 위한 배열 형식 인코더 및 구조체 형태의 데이터를 인코딩하기 위한 구조체 인코더가 등록되어 있는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치.
  4. 제 1 항에 있어서,
    상기 인코딩 장치는,
    상기 인코딩용 사용자 데이터를 인코딩할 때 이용될 인코딩 규칙 정보가 저장되어 있는 인코딩 규칙 저장소를 더 포함하며,
    상기 인코더팩토리는, 상기 인코딩용 사용자 데이터의 타입과 상기 인코딩 규칙 저장소로부터 제공받은 인코딩 규칙 정보에 의거하여 상기 어느 하나의 인코더를 선택하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치.
  5. 제 4 항에 있어서,
    상기 인코더부는, 상기 인코딩 규칙 저장소로부터 제공받은 인코딩 규칙 정보를 상기 인코딩된 사용자 데이터에 추가하여 임의의 장치로 송신하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 장치.
  6. 데이터 구조에 대한 정보 파일을 기반으로 메타 구조체 변환기를 생성하여 메타 구조체 변환기 팩토리에 등록하는 단계와,
    인코딩할 사용자 데이터가 구조체 또는 구조체 배열인 경우 상기 메타 구조체 변환기 팩토리에 등록된 메타 구조체 변환기 중 어느 하나를 이용하여 상기 인코딩할 사용자 데이터의 구조체를 메타 구조체로 변환하는 단계와,
    기 등록된 적어도 하나 이상의 인코더에서 구조체 인코더를 선택하는 단계와,
    상기 구조체 인코더와 상기 변환된 메타 구조체를 이용하여 상기 인코딩할 사용자 데이터를 인코딩하는 단계를 포함하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법.
    .
  7. 제 6항에 있어서,
    상기 인코딩 방법은,
    상기 인코딩할 사용자 데이터가 구조체 또는 구조체의 배열이 아닌 경우 기본 형식 인코더 또는 배열 형식 인코더를 이용하여 상기 인코딩할 사용자 데이터를 인코딩하는 단계를 더 포함하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법.
  8. 제 6 항에 있어서,
    상기 인코딩 방법은
    상기 인코딩할 사용자 데이터를 인코딩할 때 이용될 인코딩 규칙 정보가 저장되어 있는 인코딩 규칙 저장소로부터 제공받으며, 상기 제공받은 인코딩 규칙 정보와 상기 인코딩할 사용자 데이터 타입에 의거하여 상기 기 등록된 인코더들 중 어느 하나를 선택하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법.
  9. 제 8 항에 있어서,
    상기 인코딩 방법은,
    상기 인코딩된 데이터에 상기 인코딩 규칙 저장소로부터 제공받은 인코딩 규칙 정보를 포함시켜 임의의 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 인코딩 방법.
  10. 데이터 구조에 대한 정보 파일을 기반으로 생성된 적어도 하나 이상의 사용자 구조체 변환기가 등록되며, 인코딩된 데이터의 타입이 구조체 또는 구조체 배열인 경우 상기 등록된 사용자 구조체 변환기에서 인코딩된 데이터의 메타 구조체를 사용자 구조체로 변환하기 위한 사용자 구조체 변환기를 선택하는 사용자 구조체 변환기 팩토리와,
    데이터 타입별 디코더가 등록되며, 상기 인코딩된 데이터를 디코딩하기 위해 상기 등록된 인코더에서 어느 하나의 디코더를 선택하는 디코더 팩토리와,
    상기 선택된 사용자 구조체 변환기에 의해 생성된 사용자 구조체와 상기 어느 하나의 디코더를 이용하여 상기 인코딩된 데이터를 디코딩하는 디코더부를 포함하는
    로봇 소프트웨어간 통신을 위한 디코딩 장치.
  11. 제 10 항에 있어서,
    상기 디코딩 장치는,
    상기 정보 파일을 기반으로 사용자 구조체 변환기를 생성하는 사용자 구조체 코드 생성기와,
    상기 사용자 구조체 코드 생성기에 의해 생성된 사용자 구조체 변환기를 상기 사용자 구조체 변환기 팩토리에 등록하는 사용자 구조체 코드 등록부를 포함하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치.
  12. 제 10 항에 있어서,
    상기 디코더팩토리에는. 배열 형태의 데이터를 디코딩하기 위한 배열 형태 디코더 및 구조체 형태의 데이터를 디코딩하기 위한 구조체 디코더가 등록되어 있는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치.
  13. 제 10 항에 있어서,
    상기 디코딩 장치는,
    상기 인코딩된 데이터에 포함된 인코딩 규칙 정보를 추출하는 인코딩 룰 파서부를 더 포함하며,
    상기 디코더팩토리는, 상기 인코딩된 데이터의 타입과 상기 인코딩 룰 파서부로부터 제공받은 인코딩 규칙 정보에 의거하여 상기 어느 하나의 디코더를 선택하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 디코딩 장치.
  14. 데이터 구조에 대한 정보 파일을 기반으로 사용자 구조체 변환기를 생성하여 사용자 구조체 변환기 팩토리에 등록하는 단계와,
    인코딩된 데이터가 구조체 또는 구조체 배열인 경우 상기 사용자 구조체 변환기 팩토리에 등록된 사용자 구조체 변환기 중 어느 하나를 이용하여 상기 인코딩된 데이터의 메타 구조체를 사용자 구조체로 변환하는 단계와,
    기 등록된 적어도 하나 이상의 디코더에서 구조체 디코더를 선택하는 단계와,
    상기 구조체 디코더와 상기 변환된 사용자 구조체를 이용하여 상기 인코딩된 데이터를 디코딩하는 단계를 포함하는
    로봇 소프트웨어간 통신을 위한 데이터 디코딩방법.
  15. 제 14항에 있어서,
    상기 디코딩 방법은,
    상기 인코딩된 데이터가 구조체 또는 구조체의 배열이 아닌 경우 기본 형식 디코더 또는 배열 형식 디코더를 이용하여 상기 인코딩된 데이터를 디코딩하는 단계를 더 포함하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 디코딩 방법.
  16. 제 14 항에 있어서,
    상기 디코딩 방법은,
    상기 인코딩된 데이터에서 인코딩 규칙 정보를 추출하는 단계와,
    상기 추출한 인코딩 규칙 정보와 상기 인코딩된 데이터 타입에 의거하여 상기 기 등록된 디코더들 중 어느 하나를 선택하는 단계를 더 포함하는 것을 특징으로 하는
    로봇 소프트웨어간 통신을 위한 데이터 디코딩 방법.
KR1020110112069A 2011-10-31 2011-10-31 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법 KR101857123B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110112069A KR101857123B1 (ko) 2011-10-31 2011-10-31 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법
US13/611,468 US8681025B2 (en) 2011-10-31 2012-09-12 Data encoding and decoding apparatus and method for communicating between robot softwares

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110112069A KR101857123B1 (ko) 2011-10-31 2011-10-31 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법

Publications (2)

Publication Number Publication Date
KR20130047195A true KR20130047195A (ko) 2013-05-08
KR101857123B1 KR101857123B1 (ko) 2018-05-14

Family

ID=48171842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110112069A KR101857123B1 (ko) 2011-10-31 2011-10-31 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법

Country Status (2)

Country Link
US (1) US8681025B2 (ko)
KR (1) KR101857123B1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6989773B2 (en) * 2004-02-13 2006-01-24 Hewlett-Packard Development Company, L.P. Media data encoding device
ES2941677T3 (es) 2008-07-11 2023-05-24 Fraunhofer Ges Forschung Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor
KR101200491B1 (ko) 2008-12-22 2012-11-16 한국전자통신연구원 사람 검출 장치 및 방법
KR101783271B1 (ko) 2009-12-10 2017-10-23 삼성전자주식회사 정보 객체의 인코딩을 위한 방법 및 이를 이용한 인코더

Also Published As

Publication number Publication date
US8681025B2 (en) 2014-03-25
KR101857123B1 (ko) 2018-05-14
US20130106625A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
TWI566235B (zh) 針對音源聲道及音源物件之音源編碼及解碼之編碼器、解碼器及方法
TWI453734B (zh) 用以將符號編碼之方法、用以將符號解碼之方法、用以將符號從發送器發送至接收器之方法、編碼器、解碼器、及用以將符號從發送器發送至接收器之系統
CN103474068A (zh) 实现语音命令控制的方法、设备及系统
CN110060158B (zh) 基于变长编码的智能合约执行方法和装置
US9888093B2 (en) Method and apparatus for providing a service implementation
TW201722089A (zh) 用於音訊/視訊樣本向量之錐型向量量化檢索/解檢索之方法及裝置
US20110145308A1 (en) System to improve numereical conversions and associated methods
WO2017072514A1 (en) Communicating between applications, running on different nodes, having logic in differing languages
JP2015502100A5 (ko)
CN101807205A (zh) 用于处理xml数据的处理模块、设备和方法
JP2022535483A (ja) 点群属性コーディング用のチャネル間予測と変換のための技術および装置
FI3827335T3 (fi) Binäärisiä väliesityksiä käyttävä prosessointimenetelmä
CN112188211A (zh) 一种转码实现方法和装置
US10282400B2 (en) Grammar generation for simple datatypes
US20200110584A1 (en) Automated code generation for functional testing of software applications
CN102111160A (zh) 用于反应式系统测试的编解码系统及其编解码器
CN109379083A (zh) 基于教育系统的base64编码转换方法及电子设备
KR20130047195A (ko) 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법
CN112579312A (zh) 参数映射方法及装置、存储介质、接口调用平台、服务系统
TR201815835T4 (tr) Video kod çözümü için nicemleme parametresi kodunun çözülmesi için kod çözme yöntemi ve kod çözücü.
CN111010366A (zh) 一种基于反向隔离技术的数据传输方法及系统
CN108897677B (zh) 日志构建方法和系统
JP2004234405A (ja) プロトコル符号化/復号化装置
KR100968083B1 (ko) 구조화된 문서들, 특히 xml 문서들을인코딩/디코딩하기 위한 방법 및 장치
US7447787B2 (en) Protocol executing system and protocol PDU common data structure converting method for processing protocol PDUS

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