KR102588266B1 - 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법 - Google Patents

로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법 Download PDF

Info

Publication number
KR102588266B1
KR102588266B1 KR1020210079868A KR20210079868A KR102588266B1 KR 102588266 B1 KR102588266 B1 KR 102588266B1 KR 1020210079868 A KR1020210079868 A KR 1020210079868A KR 20210079868 A KR20210079868 A KR 20210079868A KR 102588266 B1 KR102588266 B1 KR 102588266B1
Authority
KR
South Korea
Prior art keywords
robot
artificial intelligence
service
container
bridge
Prior art date
Application number
KR1020210079868A
Other languages
English (en)
Other versions
KR20220169603A (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 KR1020210079868A priority Critical patent/KR102588266B1/ko
Priority to US17/484,672 priority patent/US11969894B2/en
Publication of KR20220169603A publication Critical patent/KR20220169603A/ko
Application granted granted Critical
Publication of KR102588266B1 publication Critical patent/KR102588266B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법이 개시된다. 본 발명의 일실시예에 따른 자동화 통신 방법은 로봇과 인공지능 서비스 간의 자동화 통신 장치가, 로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성하는 단계; 상기 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동하는 단계; 상기 브리지 컨테이너를 통해 상기 브리지 코드를 실행하는 단계; 및 상기 브리지 코드를 기반으로 상기 로봇과 상기 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공하는 단계를 포함한다.

Description

로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법 {APPARATUS FOR AUTOMATIC COMMUNICATION BETWEEN ROBOT AND AI-SERVICE AND METHOD USING THE SAME}
본 발명은 로봇과 인공지능 서비스 간의 자동화 통신 기술에 관한 것으로, 특히 다양한 인공지능을 융합하여 서비스를 제공하는 로봇에서 웹 서비스 형태로 제공되는 인공지능 서비스를 활용하기 위해서 로봇 전용 프레임워크 기반의 로봇 응용 소프트웨어 모듈과 인공지능 서비스 사이의 통신 구성을 자동화하는 기술에 관한 것이다.
로봇은 내장된 장치나 센서로부터 수집 또는 생성되는 다양한 센서 정보를 기반으로 다양한 인공지능 기능을 융합하여 서비스를 제공한다. 예를 들어, 음성 인식, 자연어 처리, 사물 인식, 사용자 인식, 행동 인식, 외형특징 인식, 위치 인식, 이동 경로 생성, 관절 궤적 생성, 조작 정보 생성 등의 인공지능 기반 기능들을 융합하여 제공할 수 있다.
최신의 인공지능 모듈들은 인공 신경망(Artificial Neural Network) 기반 기계학습의 발달을 통해 성능이 크게 향상되고 있으며, 점점 더 많은 신경망 기반의 인공지능 모듈들이 출시되고 있다.
최근 신경망 기반의 인공지능 모듈들은 인공지능 알고리즘을 개발하기 위해 TensorFlow, pyTorch, Keras 등 다양한 인공지능 프레임워크와 인공지능 알고리즘에 필요한 다양한 외부 패키지들을 활용하여 구성되는 경우가 많다. 또한, 인공지능의 성능이 높아질수록 더 많은 자원을 필요로 하는 경우도 많다. 따라서, 상대적으로 작은 컴퓨팅 파워를 가지는 로봇에 인공지능 알고리즘을 내장하여 서비스를 제공하는 것보다는 높은 성능을 제공할 수 있는 클라우드 컴퓨팅 환경에서 REST 기반의 웹 서비스 형태로 인공지능 서비스를 제공하는 경우가 많아지고 있다.
이 때, 로봇에서 웹 서비스 형태로 제공되는 인공지능 서비스를 활용하기 위해서, 전용 프로토콜 형태로 전달되는 장치 정보 메시지로부터 데이터를 추출하여 웹 기반 지능 서비스를 호출하고 그 결과를 이벤트 메시지로 전송하는 별도의 응용 프로그램 모듈을 필요로 하는데, 이러한 응용 프로그램 모듈은 개발자가 직접 하드 코딩하여 구동해야 하는 불편함이 존재하였다.
즉, 전용 로봇 프로토콜에서 사용하는 메시지나 사용할 인공지능 서비스의 URL 정보, 파라미터 등에 따라 매번 개발자가 하드 코딩을 수행하여 소프트웨어 모듈을 제작해야 한다는 문제점이 있다.
한국 공개 특허 제10-2021-0012400호, 2021년 2월 3일 공개(명칭: 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법)
본 발명의 목적은 로봇의 장치 정보 메시지와 웹 서비스 파라미터 간의 간단한 매핑 규칙을 설정하는 것만으로 로봇 AI 개발자 또는 로봇 응용 소프트웨어 개발자에 의한 별도의 코드 개발 없이 웹 서비스 형태로 제공되는 인공지능 서비스와 전용 프로토콜을 사용하는 로봇 응용 소프트웨어 간 통신 구성을 자동화하는 것이다.
또한, 본 발명의 목적은 로봇의 구동 환경 또는 개발 환경에 변화가 발생하는 경우에도 낮은 비용으로 로봇과 인공지능 서비스 간의 통신을 구성하는 방안을 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법은, 로봇과 인공지능 서비스 간의 자동화 통신 장치가, 로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성하는 단계; 상기 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동하는 단계; 상기 브리지 컨테이너를 통해 상기 브리지 코드를 실행하는 단계; 및 상기 브리지 코드를 기반으로 상기 로봇과 상기 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공하는 단계를 포함한다.
이 때, 브리지 코드는 로봇 장치 메시지에 의해 요청된 서비스에 상응하게 상기 인공지능 서비스로 전송할 서비스 요청 메시지를 생성하고, 상기 인공지능 서비스로부터 수신된 서비스 결과 메시지를 기반으로 상기 로봇으로 전송할 로봇 이벤트 메시지를 생성할 수 있다.
이 때, 매핑 규칙은 ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작될 수 있다.
이 때, 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함하고, 상기 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함할 수 있다.
이 때, 매핑 규칙은 매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함할 수 있다.
이 때, 생성하는 단계는 상기 매핑 규칙을 파싱하여 상기 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득하는 단계; 상기 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성하는 단계; 및 상기 브리지 코드 패키지 프로파일을 기반으로 상기 브리지 코드에 상응하는 브리지 코드 블록을 생성하는 단계를 포함할 수 있다.
이 때, 브리지 코드 블록은 토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 상기 로봇과 상기 인공지능 서비스 간 메시지 교환을 수행할 수 있다.
이 때, 구동하는 단계는 컨테이너 생성 도구를 기반으로 도커(DOCKER)에 상기 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)하는 단계; 및 빌드된 컨테이너 이미지를 실행하여 상기 브리지 컨테이너의 구동을 요청하는 단계를 포함할 수 있다.
이 때, 컨테이너 정의파일은 상기 컨테이너 생성 도구로 상기 매핑 규칙을 입력하여 생성되고, 상기 브리지 코드와 함께 상기 브리지 코드의 컴파일 및 구동 환경을 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 장치는, 로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성하고, 상기 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동하고, 상기 브리지 컨테이너를 통해 상기 브리지 코드를 실행하고, 상기 브리지 코드를 기반으로 상기 로봇과 상기 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공하는 프로세서; 및 상기 매핑 규칙을 저장하는 메모리를 포함한다.
이 때, 브리지 코드는 로봇 장치 메시지에 의해 요청된 서비스에 상응하게 상기 인공지능 서비스로 전송할 서비스 요청 메시지를 생성하고, 상기 인공지능 서비스로부터 수신된 서비스 결과 메시지를 기반으로 상기 로봇으로 전송할 로봇 이벤트 메시지를 생성할 수 있다.
이 때, 매핑 규칙은 ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작될 수 있다.
이 때, 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함하고, 상기 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함할 수 있다.
이 때, 매핑 규칙은 매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함할 수 있다.
이 때, 프로세서는 상기 매핑 규칙을 파싱하여 상기 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득하고, 상기 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성하고, 상기 브리지 코드 패키지 프로파일을 기반으로 상기 브리지 코드에 상응하는 브리지 코드 블록을 생성할 수 있다.
이 때, 브리지 코드 블록은 토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 상기 로봇과 상기 인공지능 서비스 간 메시지 교환을 수행할 수 있다.
이 때, 프로세서는 컨테이너 생성 도구를 기반으로 도커(DOCKER)에 상기 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)하고, 빌드된 컨테이너 이미지를 실행하여 상기 브리지 컨테이너의 구동을 요청할 수 있다.
이 때, 컨테이너 정의파일은 상기 컨테이너 생성 도구로 상기 매핑 규칙을 입력하여 생성되고, 상기 브리지 코드와 함께 상기 브리지 코드의 컴파일 및 구동 환경을 포함할 수 있다.
본 발명에 따르면, 로봇의 장치 정보 메시지와 웹 서비스 파라미터 간의 간단한 매핑 규칙을 설정하는 것만으로 로봇 AI 개발자 또는 로봇 응용 소프트웨어 개발자에 의한 별도의 코드 개발 없이 웹 서비스 형태로 제공되는 인공지능 서비스와 전용 프로토콜을 사용하는 로봇 응용 소프트웨어 간 통신 구성을 자동화할 수 있다.
또한, 본 발명은 로봇의 구동 환경 또는 개발 환경에 변화가 발생하는 경우에도 낮은 비용으로 로봇과 인공지능 서비스 간의 통신을 구성하는 방안을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 로봇과 인공지능 서비스 간의 자동화 통신 과정을 상세하게 나타낸 도면이다.
도 4는 본 발명에 따른 매핑 규칙의 일 예를 나타낸 도면이다.
도 5는 본 발명에 따른 웹 기반의 인공지능 서비스 정보의 일 예를 나타낸 도면이다.
도 6 내지 도 7은 본 발명에 따른 로봇 응용 소프트웨어 메시지 정보의 일 예를 나타낸 도면이다.
도 8 내지 도 10은 본 발명에 따른 데이터 타입 패키지 빌드 스크립트 및 데이터 타입 패키지 프로파일의 일 예를 나타낸 도면이다.
도 11 내지 도 12는 본 발명에 따른 브리지 코드 패키지 빌드 스크립트 및 브리지 코드 패키지 프로파일의 일 예를 나타낸 도면이다.
도 13은 본 발명에 따른 브리지 코드 블록의 일 예를 나타낸 도면이다.
도 14는 본 발명에 따른 컨테이너 정의 파일의 일 예를 나타낸 도면이다.
도 15는 본 발명에 따라 최종 생성된 임시 저장 디렉토리의 일 예를 나타낸 도면이다.
도 16은 본 발명의 일실시예에 따른 자동화 통신 방법 중 브리지 컨테이너를 실행하는 과정을 상세하게 나타낸 동작 흐름도이다.
도 17은 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 장치를 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 시스템을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 시스템은 자동화 통신 장치(100), 전용 프로토콜을 사용하는 로봇(110) 및 웹 기반의 인공지능 서비스(120)를 포함한다.
이 때, 로봇(110)은 로봇 소프트웨어 모듈을 의미할 수 있다.
자동화 통신 장치(100)는 로봇(110)과 인공지능 서비스(120) 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성한다.
이 때, 매핑 규칙은 ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작될 수 있다.
이 때, 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함하고, 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함할 수 있다.
이 때, 매핑 규칙은 매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함할 수 있다.
이 때, 매핑 규칙을 파싱하여 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득하고, 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성하고, 브리지 코드 패키지 프로파일을 기반으로 브리지 코드에 상응하는 브리지 코드 블록을 생성할 수 있다.
또한, 자동화 통신 장치(100)는 컨테이너 정의 파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동한다.
이 때, 컨테이너 생성 도구를 기반으로 도커(DOCKER)에 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)하고, 빌드된 컨테이너 이미지를 실행하여 브리지 컨테이너의 구동을 요청할 수 있다.
이 때, 컨테이너 정의파일은 컨테이너 생성 도구로 매핑 규칙을 입력하여 생성되고, 브리지 코드와 함께 브리지 코드의 컴파일 및 구동 환경을 포함할 수 있다.
또한, 자동화 통신 장치(100)는 브리지 컨테이너를 통해 브리지 코드를 실행한다.
또한, 자동화 통신 장치(100)는 브리지 코드를 기반으로 로봇(110)과 인공지능 서비스(120) 간에 메시지를 교환하여 자동화된 통신 환경을 제공한다.
이 때, 브리지 코드는 로봇 장치 메시지에 의해 요청된 서비스에 상응하게 인공지능 서비스(120)로 전송할 서비스 요청 메시지를 생성하고, 인공지능 서비스(120)로부터 수신된 서비스 결과 메시지를 기반으로 로봇(110)으로 전송할 로봇 이벤트 메시지를 생성할 수 있다.
이 때, 브리지 코드 블록은 토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 로봇(110)과 인공지능 서비스(120) 간 메시지 교환을 수행할 수 있다.
도 2는 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법을 나타낸 동작 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법은, 로봇과 인공지능 서비스 간의 자동화 통신 장치가, 로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성한다(S210).
이 때, 매핑 규칙은 ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작될 수 있다.
예를 들어, 도 3에 도시된 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 시스템을 참조하면, 매핑 규칙 파일(MAPPING FILE)(301)은 인공지능 서비스(320)를 제공하는 제공자로부터 획득한 인공지능 서비스 정보와 로봇(310)에 대한 로봇 응용 소프트웨어 메시지 정보를 고려하여 저작될 수 있다.
이 때, 매핑 규칙은 매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함할 수 있다.
예를 들어, 도 4를 참조하면, 본 발명의 일실시예에 따른 매핑 규칙(400)은 통상적으로 "이름(key):값(value)"형태로 표현할 수 있으며, 작성 형식은 yaml, xml, json 등 구조 표현이 가능한 파일 형식을 사용하여 작성될 수 있다.
매핑 유형 설정 영역(410)은 해당 매핑 규칙에 적용되는 유형 값을 설정하기 위한 것으로, ROS, MQTT, REST, DDS, gRPC 등의 값을 결합하여 사용할 수 있다.
예를 들어, 도 4에 도시된 매핑 유형 설정 영역(410)을 참조하면, 매핑 유형 설정 필드의 이름(key)인 "bind_type"에 ROS와 REST간 매핑 규칙을 의미하는 값(value)으로"ros2rest"를 설정할 수 있다.
활용 대상 토픽 설정 영역(420)은 해당 매핑 규칙에서 활용하는 로봇 장치 메시지 및 로봇 이벤트 메시지에 관한 정보를 포함할 수 있다.
예를 들어, 도 4를 참조하면, 활용 대상 토픽 설정 영역(420)에 해당하는 필드의 이름(key)인 "topics"에 각각의 메시지 주제(토픽)를 나타내는 값을 "name" 필드에 설정할 수 있다. 또한, 각각의 메시지가 사용하는 데이터 타입은 "type"필드에 설정할 수 있고, 데이터 타입에 대한 정의 파일의 위치는 "path"에 설정할 수 있다.
서비스 매핑 규칙 영역(430)에서는 매핑 규칙이 적용될 각각의 대상 인공지능 서비스에 대해서, 인공지능 서비스 접근 경로(440), 서비스 요청 메시지의 구성 요소 별 매핑 규칙(441), 인공지능 서비스 요청 결과를 로봇에게 전달하기 위한 로봇 이벤트 메시지 구성 요소 별 매핑 규칙(442)을 설정할 수 있다.
인공지능 서비스 접근 경로(440)는 REST 형태로 제공되는 인공지능 서비스에 대해 해당 서비스를 제공하는 호스트의 주소를 시스템 운용 시 결정하기 위해 "${변수값}"형태의 시스템 변수를 활용하여 나타낼 수 있다.
서비스 요청 메시지의 구성 요소 별 매핑 규칙(441)은 서비스 요청 메시지의 헤더 구성 요소에 대한 매핑 규칙(450), 요청 경로에 대한 매핑 규칙(451) 및 메시지 데이터에 대한 매핑 규칙(452)으로 구성될 수 있다.
로봇 이벤트 메시지 구성 요소 별 매핑 규칙(442)은 인공지능 서비스 요청 결과로부터 구성할 각각의 로봇 이벤트 메시지에 대해 타겟 토픽(460)과 해당 토픽 데이터의 각 구성 요소에 대한 타겟 토픽 매핑 규칙(461)으로 구성될 수 있다.
이 때, 서비스 요청 메시지의 구성 요소 별 매핑 규칙(441) 및 로봇 이벤트 메시지 구성 요소 별 매핑 규칙(442)에 포함되는 각각의 매핑 규칙에는 문자열을 활용한 상수, 변수, 정규 표현식 등이 활용될 수 있다.
도 4를 참조하여 서비스 요청 메시지의 구성 요소 별 매핑 규칙(441)을 설명하면, 서비스 요청 메시지의 헤더 구성 요소에 대한 매핑 규칙(450)은 서비스 요청 메시지의 HTTP 헤더에 들어갈 타겟 변수의 이름을 설정하기 위한 name필드에"API-KEY"로 설정할 수 있고, 해당 값을 시스템 운용 시 결정하기 위해 시스템 변수값(예: $ServiceClientSecret)으로 설정할 수 있다.
이 때, 요청 경로에 대한 매핑 규칙(451)의 "name"에 해당하는 필드 값을 표현하기 위해 "${변수값}"인 문자열이 포함된 URL 형태의 문자열로 설정할 수 있다. 이 때, 요청 경로에 대한 매핑 규칙(451)에서 변수명 "name"에 사용된 문자열은 인공지능 서비스 접근 경로(440)에 사용되는 변수에 대응될 수 있다. 도 4에서는 인공지능 서비스 접근 경로(440)의 변수 "${param_id}"에 해당되는 "name"을 "param_id"로 설정하고 해당 값을 "30"으로 설정하였다.
이 때, 메시지 데이터에 대한 매핑 규칙(452)에서는 도 5에 도시된 것과 같이 서비스 요청 메시지의 메시지 바디(530)를 구성하는 각각의 파라미터를 "name"에 설정할 수 있고, 해당 값을 가져오기 위한 규칙을 "from"에 설정할 수 있다. 도 4 내지 도 5를 참조하면, 메시지 바디(530)의 "first" 파라미터의 값을 로봇 장치 메시지의 구성 요소 "b"로 설정하였고, 메시지 바디(530)의 "second" 파라미터의 값을 로봇 장치 메시지의 구성 요소 "C"로 설정한 것을 알 수 있다.
또한, 도 4를 참조하여 로봇 이벤트 메시지 구성 요소 별 매핑 규칙(442)을 설명하면, 인공지능 서비스 요청 결과로부터 로봇에 전달할 로봇 이벤트 메시지의 타겟 토픽(460)을 설정할 수 있고, 해당 토픽의 각 구성 요소를 구성하기 위한 타겟 토픽 매핑 규칙(461)을 "returns"에 설정할 수 있다. 도 4, 도 5 및 도 7을 참조하면, 타겟 토픽(460)을 "my_response_topic"으로 설정하였고, 해당 토픽의 구성 요소(711)중 "num"은 인공지능 서비스의 응답 결과(540)의 값 중에 "result" 파라미터 값으로 설정하고, "time"은 응답 결과(540)의 값 중에 "datetime" 파라미터 값으로 설정하였다.
이 때, 컨테이너 정의파일은 컨테이너 생성 도구로 매핑 규칙을 입력하여 생성되고, 브리지 코드와 함께 브리지 코드의 컴파일 및 구동 환경을 포함할 수 있다.
예를 들어, 도 3을 참조하면, 본 발명의 일실시예에 따른 자동화 통신 장치에 해당하는 AUTOMATED ROBOT-AI COMMUNICATION COMPOSITION TOOL(300)로 매핑 규칙 파일(301)을 입력하여 매핑 규칙에 해당하는 브리지 코드(GENERATED ROS-REST BRIDGE CODE)(302)와 브리지 코드의 컴파일 및 구동 환경이 포함된 컨테이너 정의파일(GENERATED DOCKERFILES)(303)을 생성할 수 있다.
또한, 도 14 내지 도 15를 참조하면, 컨테이너 정의파일(1400)은 브리지 코드와 데이터 타입 패키지 구성 코드가 포함된 임시 저장 디렉토리의 구조(1510)를 컨테이너 이미지에 추가하는 명령(1410)과 데이터 패키지 구성 코드와 브리지 코드에 대한 컴파일 명령(1420) 및 브리지 컨테이너 실행 시 자동으로 브리지 코드를 실행하는 명령(1430)을 포함할 수 있다.
이 때, 매핑 규칙을 파싱하여 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득할 수 있다.
예를 들어, 도 3에 도시된 AUTOMATED ROBOT-AI COMMUNICATION COMPOSITION TOOL(300)은 매핑 규칙 파일(301)의 파일 형식에 따라 YAML 로더, XML 로더 등을 이용하여 매핑 규칙을 파싱할 수 있고, 매핑 규칙에 따라 생성될 브리지 코드(302), 타입 데이터, 컨테이너 코드를 저장할 임시 저장 디렉토리를 설정할 수 있다.
이 때, 매핑 규칙 파일(301)의 파싱을 통해 활용 대상 토픽 설정 영역에 설정된 각각의 토픽들에 대한 설정 값을 획득할 수 있다.
이 후, 획득한 설정 값에서 데이터 타입의 패키지 이름과 데이터 타입 정의 파일 위치를 획득하여 데이터 타입 패키지 디렉토리 구조에 상응하게 데이터 타입 정의 파일을 복사하여 저장할 수 있다.
예를 들어, 도 8을 참조하면, 임시 저장 디렉토리(예: temp)의 타입 데이터 설정 경로(예: temp/build/types)에 데이터 타입 패키지 디렉토리 구조(800)에 맞게 데이터 타입 정의 파일(820)을 복사하여 저장할 수 있다. 이 때, 데이터 타입 패키지의 컴파일을 위한 데이터 타입 패키지 빌드 스크립트(810, 910)와 데이터 타입 패키지 프로파일(830, 1010)을 생성하여 저장할 수 있다.
이 후, 임시 저장 디렉토리(예:temp)에 브리지 코드가 저장될 디렉토리(예:/temp/build/src)를 도 11에 도시된 것과 같은 브리지 코드 디렉토리 구조(1100)에 맞게 설정하고, 브리지 코드를 실행하는데 필요한 코드 언어별 부속 파일들(python 의 경우 setup.cfg, setup.py, __init__.py)을 생성할 수 있다.
이 때, 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성할 수 있다.
예를 들어, 도 12를 참조하면, 활용 대상 토픽 설정 영역에 포함된 각각의 토픽들에 대한 데이터 타입 패키지를 실행 의존 패키지 정보(1211)로 설정한 브리지 코드 패키지 프로파일(1110, 1210)을 생성할 수 있다.
이 때, 브리지 코드 패키지 프로파일을 기반으로 브리지 코드에 상응하는 브리지 코드 블록을 생성할 수 있다.
브리지 코드 블록은 추후 도 13을 통해 상세하게 설명하도록 한다.
이 때, 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함할 수 있다.
이 때, 도 5에 도시된 것과 같은, 공개되거나 알려진 인공지능 서비스들에 대한 서비스 경로 정보(510), 요청 헤더 파라미터 정보(520), 요청 바디 파라미터 정보(530) 및 응답 정보(540)를 사전에 해당 인공지능 서비스 제공자들로부터 제공받아 알고 있는 것으로 가정할 수 있다.
이 때, 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함할 수 있다.
이 때, 도 6에 도시된 것과 같은, 로봇의 센서, 액추에이터 등으로부터 수신되는 로봇 장치 메시지의 구성 정보(610)와 로봇 장치 메시지의 데이터 구조 정의 파일(611)을 사전에 알고 있는 것으로 가정할 수 있다. 또한, 도 7에 도시된 것과 같은, 인공지능 서비스 요청의 결과로 로봇의 행동 결정에 활용하는 로봇 이벤트 메시지의 구성 정보(710)와 로봇 이벤트 메시지의 데이터 구조 정의 파일(711)을 사전에 알고 있는 것으로 가정할 수 있다.
또한, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법은, 로봇과 인공지능 서비스 간의 자동화 통신 장치가, 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동한다(S220).
이 때, 컨테이너 생성 도구를 기반으로 도커(DOCKER)에 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)할 수 있다.
이 때, 빌드된 컨테이너 이미지를 실행하여 브리지 컨테이너의 구동을 요청할 수 있다.
예를 들어, 도 3을 참조하면, AUTOMATED ROBOT-AI COMMUNICATION COMPOSITION TOOL(300)은 도커(DOCKER)의 BUILD 명령을 실행하여 컨테이너 정의파일(303)로부터 컨테이너 이미지를 생성할 수 있다.
이 후, 도커의 RUN 명령을 실행하여 브리지 코드(302)가 포함된 브리지 컨테이너를 구동할 수 있다.
예를 들어, 컨테이너 이미지 빌드에 오류가 발생하였는지 여부를 확인하고, 오류가 없는 경우에 컨테이너 이미지 빌드에서 사용했던 이미지 이름을 입력으로 브리지 컨테이너의 실행을 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법은, 로봇과 인공지능 서비스 간의 자동화 통신 장치가, 브리지 컨테이너를 통해 브리지 코드를 실행한다(S230).
또한, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 방법은, 로봇과 인공지능 서비스 간의 자동화 통신 장치가, 브리지 코드를 기반으로 로봇과 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공한다(S240).
이 때, 브리지 코드는 로봇 장치 메시지에 의해 요청된 서비스에 상응하게 인공지능 서비스로 전송할 서비스 요청 메시지를 생성하고, 인공지능 서비스로부터 수신된 서비스 결과 메시지를 기반으로 로봇으로 전송할 로봇 이벤트 메시지를 생성할 수 있다.
예를 들어, 도 3을 참조하면, 독립된 컨테이너 형태로 실행된 브리지 컨테이너는 로봇(310)에서 로봇의 전용 프로토콜(ROS) 형태로 전달되는 로봇 장치 메시지(311)를 수신하고, 로봇 장치 메시지(311)를 인공지능 서비스로 전송할 서비스 요청 메시지(321)로 변환하여 인공지능 서비스(320)를 호출할 수 있다. 이 후, 인공지능 서비스(320)로부터 서비스 결과 메시지(322)가 수신되면, 수신된 서비스 결과 메시지(322)의 내용을 매핑 규칙에 따라 로봇 이벤트 메시지(312)로 구성하여 로봇(310)으로 전달할 수 있다.
이 때, 브리지 코드 블록은 토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 로봇과 인공지능 서비스 간 메시지 교환을 수행할 수 있다.
예를 들어, 본 발명의 일실시예에 따르면 인공지능 서비스에 대한 접근 경로 각각에 대해 도 13에 도시된 것과 같은 브리지 코드 블록을 생성할 수 있다.
도 13을 참조하면, 브리지 코드 블록(1300)은 토픽 수신 모듈 설정 코드 블록(1310), 토픽 송신 모듈 설정 코드 블록(1320), 메시지 처리 콜백 함수 코드 블록(1330), 로봇 이벤트 메시지 구성 코드 블록(1340)으로 구성될 수 있다.
토픽 수신 모듈 설정 코드 블록(1310)은 도 4에 도시된 서비스 요청 메시지의 구성 요소 별 매핑 규칙(441)에서 사용하는 토픽들 각각에 상응하게 활용 대상 토픽 설정 영역(420)에서 가져온 수신할 메시지의 데이터 타입, 수신할 메시지의 토픽 이름과 메시지 처리 콜백 함수명을 이용하여 생성될 수 있다. 이 때, 메시지 처리 콜백 함수명은 코드 내에서 유일한 이름을 가지도록 설정될 수 있다.
토픽 송신 모듈 설정 코드 블록(1320)은 도 4에 도시된 로봇 이벤트 메시지 구성 요소 별 매핑 규칙(442)에 설정된 타겟 토픽(460) 각각에 상응하게 활용 대상 토픽 설정 영역(420)에서 가져온 송신할 메시지의 데이터 타입, 송신할 메시지의 토픽이름을 이용하여 생성될 수 있다.
메시지 처리 콜백 함수 코드 블록(1330)은 토픽 수신 모듈 설정 코드 블록(1310)에서 설정한 메시지 처리 콜백 함수명에 대해 각각 생성될 수 있다.
이 때, 메시지 처리 콜백 함수 코드 블록(1330)은 경로 파라미터 설정 코드 블록(1331), 데이터 파라미터 설정 코드 블록(1332), 서비스 요청 메시지 생성 코드 블록(1333) 및 서비스 요청 메시지 헤더 코드 블록(1334)으로 구성될 수 있다.
경로 파라미터 설정 코드 블록(1331)은 도 4에 도시된 인공지능 서비스 접근 경로(440)의 설정 값에서 발견된 각각의 변수 중 경로 구성 요소 매핑 규칙(451)에 설정된 값이 있는 변수의 경우에는 해당 값을 이용하도록 생성될 수 있다. 또한, 인공지능 서비스 접근 경로(440)의 설정 값에서 발견된 각각의 변수 중 경로 구성 요소 매핑 규칙(451)에 설정된 값이 없는 변수의 경우에는 시스템 설정값을 가져오도록 생성될 수도 있다.
데이터 파라미터 설정 코드 블록(1332)은 도 4에 도시된 메시지 데이터 매핑 규칙(452)에 설정된 정보 중 "from"에 설정된 변수(ex: {Value}), 상수(ex: "12") 또는 로봇 장치 메시지의 구성 요소(ex: my_request_topic.b)로부터 서비스 요청 메시지의 메시지 바디의 각 구성 요소를 설정하도록 생성될 수 있다.
서비스 요청 메시지 생성 코드 블록(1333)은 도 4에 도시된 인공지능 서비스 접근 경로(440)의 값으로 "url" 값을 설정하고, 앞서 설정된 경로 파라미터 설정값과 데이터 파라미터 설정값을 활용하여, 경로에 상응하는 값과 메시지 바디가 포함된 메시지 모듈을 만들도록 생성될 수 있다.
서비스 요청 메시지 헤더 코드 블록(1334)은 메시지 모듈에 메시지 전송 프로토콜 별로 활용되는 헤더 값을 설정하고, 도 4에 도시된 헤더 구성 요소 매핑 규칙(450)에서 "name"으로 설정된 헤더 변수들에 대해 "from"에 설정된 변수(ex: {Value}), 상수(ex: "12") 또는 로봇 장치 메시지의 구성 요소(ex: my_request_topic.b)로부터 서비스 요청 메시지의 메시지 헤더의 각 구성요소를 설정하도록 생성될 수 있다.
로봇 이벤트 메시지 구성 코드 블록(1340)은 도 4에 도시된 로봇 이벤트 메시지의 타겟 토픽(460)으로 설정된 토픽에 대해 활용 대상 토픽 설정 영역(220)에서 가져온 수신할 메시지의 데이터 타입에 해당하는 데이터 모듈(ex: outData)을 생성할 수 있다. 또한, 타겟 토픽 매핑 규칙(461)에 따라 데이터 모듈의 각 구성 요소에 대해 서비스 결과 메시지의 각 구성요소를 매핑하고, 완성된 로봇 이벤트 메시지를 로봇으로 전송하도록 생성될 수 있다.
이와 같은 자동화 통신 방법을 통해 로봇의 장치 정보 메시지와 웹 서비스 파라미터 간의 간단한 매핑 규칙을 설정하는 것만으로 로봇 AI 개발자 또는 로봇 응용 소프트웨어 개발자에 의한 별도의 코드 개발 없이 웹 서비스 형태로 제공되는 인공지능 서비스와 전용 프로토콜을 사용하는 로봇 응용 소프트웨어 간 통신 구성을 자동화할 수 있다.
또한, 로봇의 구동 환경 또는 개발 환경에 변화가 발생하는 경우에도 낮은 비용으로 로봇과 인공지능 서비스 간의 통신을 구성할 수 있다.
도 16은 본 발명의 일실시예에 따른 자동화 통신 방법 중 브리지 컨테이너를 실행하는 과정을 상세하게 나타낸 동작 흐름도이다.
도 16을 참조하면, 본 발명의 일실시예에 따른 자동화 통신 방법 중 브리지 컨테이너를 실행하는 과정은 먼저 매핑 규칙 파일을 파싱할 수 있다(S1610).
예를 들어, 매핑 규칙 파일의 파일 형식에 따라 YAML 로더, JSON 로더, XML로더 등을 이용하여 매핑 규칙을 파싱하고, 파싱된 매핑 규칙에 따라 생성되는 브리지 코드, 타입 데이터, 컨테이너 코드를 저장할 임시 저장 디렉토리를 설정할 수 있다.
이 후, 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하게 데이터 타입 패키지 구성 코드를 생성할 수 있다(S1620).
예를 들어, 파싱을 통해 활용 대상 토픽 설정 영역에 설정된 각각의 토픽들에 대한 설정 값을 획득할 수 있다. 이 후, 획득한 설정 값에서 데이터 타입의 패키지 이름과 데이터 타입 정의 파일 위치를 획득하여 데이터 타입 패키지 디렉토리 구조에 상응하게 데이터 타입 정의 파일을 복사하여 저장할 수 있다.
이 후, 브리지 코드 생성 준비를 수행할 수 있다(S1630).
예를 들어, 임시 저장 디렉토리(예:temp)에 브리지 코드가 저장될 디렉토리(예:/temp/build/src)를 브리지 코드 디렉토리 구조에 맞게 설정하고, 브리지 코드를 실행하는데 필요한 코드 언어별 부속 파일들(python 의 경우 setup.cfg, setup.py, __init__.py)을 생성할 수 있다. 이 후, 활용 대상 토픽 설정 영역에 포함된 각각의 토픽들에 대한 데이터 타입 패키지를 실행 의존 패키지 정보로 설정한 브리지 코드 패키지 프로파일을 생성할 수 있다.
이 후, 인공지능 서비스에 대한 접근 경로 각각에 대해 브리지 코드 블록을 생성할 수 있다(S1640).
이 때, 브리지 코드 블록은 토픽 수신 모듈 설정 코드 블록, 토픽 송신 모듈 설정 코드 블록, 메시지 처리 콜백 함수 코드 블록 및 로봇 이벤트 메시지 구성 코드 블록을 포함할 수 있다.
이 후, 컨테이너 정의파일을 생성할 수 있다(S1650).
이 때, 컨테이너 정의파일은 브리지 코드와 데이터 타입 패키지 구성 코드가 포함된 임시 저장 디렉토리의 구조를 컨테이너 이미지에 추가하는 명령과 데이터 패키지 구성 코드와 브리지 코드에 대한 컴파일 명령과 브리지 컨테이너 실행 시 자동으로 브리지 코드를 실행하는 명령을 포함할 수 있다.
이 후, 컨테이너 이미지를 생성할 수 있다(S1660).
예를 들어, 컨테이너 생성 도구로 컨테이너 정의파일을 입력하여 컨테이너 이미지의 빌드를 요청할 수 있다.
이 후, 컨테이너 이미지를 실행하여 브리지 컨테이너를 실행할 수 있다(S1670).
이 때, 컨테이너 이미지 빌드에 오류가 없는 경우에 컨테이너 이미지 빌드에 사용했던 이미지 이름을 입력으로 브리지 컨테이너의 실행을 요청할 수 있다.
도 17은 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 장치를 나타낸 도면이다.
도 17을 참조하면, 본 발명의 일실시예에 따른 로봇과 인공지능 서비스 간의 자동화 통신 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1700)에 상응하게 구현될 수 있다. 도 17에 도시된 바와 같이, 컴퓨터 시스템(1700)은 버스(1720)를 통하여 서로 통신하는 하나 이상의 프로세서(1710), 메모리(1730), 사용자 입력 장치(1740), 사용자 출력 장치(1750) 및 스토리지(1760)를 포함할 수 있다. 또한, 컴퓨터 시스템(1700)은 네트워크(1780)에 연결되는 네트워크 인터페이스(1770)를 더 포함할 수 있다. 프로세서(1710)는 중앙 처리 장치 또는 메모리(1730)나 스토리지(1760)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1730) 및 스토리지(1760)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1731)이나 RAM(1732)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 측면에 따른 방법을 수행할 수 있다.
프로세서(1710)는 로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성한다.
이 때, 매핑 규칙은 ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작될 수 있다.
이 때, 매핑 규칙은 매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함할 수 있다.
이 때, 매핑 규칙을 파싱하여 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득할 수 있다.
이 때, 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성할 수 있다.
이 때, 브리지 코드 패키지 프로파일을 기반으로 브리지 코드에 상응하는 브리지 코드 블록을 생성할 수 있다.
이 때, 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함하고, 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함할 수 있다.
이 때, 컨테이너 정의파일은 컨테이너 생성 도구로 매핑 규칙을 입력하여 생성되고, 브리지 코드와 함께 브리지 코드의 컴파일 및 구동 환경을 포함할 수 있다.
또한, 프로세서(1710)는 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동한다.
이 때, 컨테이너 생성 도구를 기반으로 도커(DOCKER)에 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)하고, 빌드된 컨테이너 이미지를 실행하여 브리지 컨테이너의 구동을 요청할 수 있다.
또한, 프로세서(1710)는브리지 컨테이너를 통해 브리지 코드를 실행한다.
이 때, 브리지 코드는 로봇 장치 메시지에 의해 요청된 서비스에 상응하게 인공지능 서비스로 전송할 서비스 요청 메시지를 생성하고, 인공지능 서비스로부터 수신된 서비스 결과 메시지를 기반으로 로봇으로 전송할 로봇 이벤트 메시지를 생성할 수 있다.
이 때, 브리지 코드 블록은 토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 로봇과 상기 인공지능 서비스 간 메시지 교환을 수행할 수 있다.
또한, 프로세서(1710)는 브리지 코드를 기반으로 로봇과 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공한다.
메모리(1730)는 매핑 규칙을 저장한다.
또한, 메모리(1730)는 상술한 바와 같이 본 발명의 일실시예에 따른 자동화 통신 장치에서 발생하는 다양한 정보를 저장한다.
실시예에 따라, 메모리(1730)는 자동화 통신 장치와 독립적으로 구성되어 로봇과 인공지능 서비스 간의 자동화 통신을 위한 기능을 지원할 수 있다. 이 때, 메모리(1730)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수도 있다.
한편, 로봇과 인공지능 서비스 간의 자동화 통신 장치는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
이와 같은 자동화 통신 장치를 이용함으로써 로봇의 장치 정보 메시지와 웹 서비스 파라미터 간의 간단한 매핑 규칙을 설정하는 것만으로 로봇 AI 개발자 또는 로봇 응용 소프트웨어 개발자에 의한 별도의 코드 개발 없이 웹 서비스 형태로 제공되는 인공지능 서비스와 전용 프로토콜을 사용하는 로봇 응용 소프트웨어 간 통신 구성을 자동화할 수 있다.
또한, 로봇의 구동 환경 또는 개발 환경에 변화가 발생하는 경우에도 낮은 비용으로 로봇과 인공지능 서비스 간의 통신을 구성할 수 있다.
이상에서와 같이 본 발명에 따른 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 자동화 통신 장치 110: 로봇
120: 인공지능 서비스 1700: 컴퓨터 시스템
1710: 프로세서 1720: 버스
1730: 메모리 1731: 롬
1732: 램 1740: 사용자 입력 장치
1750: 사용자 출력 장치 1760: 스토리지
1770: 네트워크 인터페이스 1780: 네트워크

Claims (18)

  1. 로봇과 인공지능 서비스 간의 자동화 통신 장치가,
    로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성하는 단계;
    상기 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동하는 단계;
    상기 브리지 컨테이너를 통해 상기 브리지 코드를 실행하는 단계; 및
    상기 브리지 코드를 기반으로 상기 로봇과 상기 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공하는 단계
    를 포함하고,
    상기 매핑 규칙은
    ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작되되,
    상기 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함하고,
    상기 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  2. 청구항 1에 있어서,
    상기 브리지 코드는
    로봇 장치 메시지에 의해 요청된 서비스에 상응하게 상기 인공지능 서비스로 전송할 서비스 요청 메시지를 생성하고, 상기 인공지능 서비스로부터 수신된 서비스 결과 메시지를 기반으로 상기 로봇으로 전송할 로봇 이벤트 메시지를 생성하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  3. 삭제
  4. 삭제
  5. 청구항 1에 있어서,
    상기 매핑 규칙은
    매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  6. 청구항 5에 있어서,
    상기 생성하는 단계는
    상기 매핑 규칙을 파싱하여 상기 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득하는 단계;
    상기 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성하는 단계; 및
    상기 브리지 코드 패키지 프로파일을 기반으로 상기 브리지 코드에 상응하는 브리지 코드 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  7. 청구항 6에 있어서,
    상기 브리지 코드 블록은
    토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 상기 로봇과 상기 인공지능 서비스 간 메시지 교환을 수행하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  8. 청구항 1에 있어서,
    상기 구동하는 단계는
    컨테이너 생성 도구를 기반으로 도커(DOCKER)에 상기 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)하는 단계; 및
    빌드된 컨테이너 이미지를 실행하여 상기 브리지 컨테이너의 구동을 요청하는 단계를 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  9. 청구항 8에 있어서,
    상기 컨테이너 정의파일은
    상기 컨테이너 생성 도구로 상기 매핑 규칙을 입력하여 생성되고, 상기 브리지 코드와 함께 상기 브리지 코드의 컴파일 및 구동 환경을 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 방법.
  10. 로봇과 인공지능 서비스 사이에 정의된 매핑 규칙을 기반으로 브리지 코드(BRIDGE CODE) 및 컨테이너 정의파일을 생성하고, 상기 컨테이너 정의파일을 기반으로 독립된 형태의 브리지 컨테이너를 구동하고, 상기 브리지 컨테이너를 통해 상기 브리지 코드를 실행하고, 상기 브리지 코드를 기반으로 상기 로봇과 상기 인공지능 서비스 간에 메시지를 교환하여 자동화된 통신 환경을 제공하는 프로세서; 및
    상기 매핑 규칙을 저장하는 메모리
    를 포함하고,
    상기 매핑 규칙은
    ROS(ROBOT OPERATING SYSTEM) 기반의 로봇 응용 소프트웨어 메시지 정보 및 웹 기반의 인공지능 서비스 정보를 고려하여 저작되되,
    상기 로봇 응용 소프트웨어 메시지 정보는 메시지 구성 정보 및 데이터 구조 정의 파일을 포함하고,
    상기 인공지능 서비스 정보는 서비스 경로 정보, 요청 헤더 파라미터(REQUEST HEADER PARAMETER) 정보, 요청 바디 파라미터(REQUEST BODY PARAMETER) 정보 및 응답(RESPONSE) 정보를 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
  11. 청구항 10에 있어서,
    상기 브리지 코드는
    로봇 장치 메시지에 의해 요청된 서비스에 상응하게 상기 인공지능 서비스로 전송할 서비스 요청 메시지를 생성하고, 상기 인공지능 서비스로부터 수신된 서비스 결과 메시지를 기반으로 상기 로봇으로 전송할 로봇 이벤트 메시지를 생성하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
  12. 삭제
  13. 삭제
  14. 청구항 10에 있어서,
    상기 매핑 규칙은
    매핑 유형 설정 영역, 활용 대상 토픽 설정 영역 및 서비스 매핑 규칙 영역을 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
  15. 청구항 14에 있어서,
    상기 프로세서는
    상기 매핑 규칙을 파싱하여 상기 활용 대상 토픽 설정 영역에 포함된 토픽에 상응하는 데이터 타입 패키지를 획득하고, 상기 데이터 타입 패키지를 실행 의존 패키지 정보로 설정하여 브리지 코드 패키지 프로파일을 생성하고, 상기 브리지 코드 패키지 프로파일을 기반으로 상기 브리지 코드에 상응하는 브리지 코드 블록을 생성하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
  16. 청구항 15에 있어서,
    상기 브리지 코드 블록은
    토픽 수신 모듈 설정 기능, 토픽 송신 모듈 설정 기능, 메시지 처리 콜백 기능 및 로봇 이벤트 메시지 구성 기능을 기반으로 상기 로봇과 상기 인공지능 서비스 간 메시지 교환을 수행하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
  17. 청구항 10에 있어서,
    상기 프로세서는
    컨테이너 생성 도구를 기반으로 도커(DOCKER)에 상기 컨테이너 정의파일을 입력하여 컨테이너 이미지를 빌드(BUILD)하고, 빌드된 컨테이너 이미지를 실행하여 상기 브리지 컨테이너의 구동을 요청하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
  18. 청구항 17에 있어서,
    상기 컨테이너 정의파일은
    상기 컨테이너 생성 도구로 상기 매핑 규칙을 입력하여 생성되고, 상기 브리지 코드와 함께 상기 브리지 코드의 컴파일 및 구동 환경을 포함하는 것을 특징으로 하는 로봇과 인공지능 서비스 간의 자동화 통신 장치.
KR1020210079868A 2021-06-21 2021-06-21 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법 KR102588266B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210079868A KR102588266B1 (ko) 2021-06-21 2021-06-21 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법
US17/484,672 US11969894B2 (en) 2021-06-21 2021-09-24 Apparatus for automated communication between robot and artificial intelligence service and method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210079868A KR102588266B1 (ko) 2021-06-21 2021-06-21 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법

Publications (2)

Publication Number Publication Date
KR20220169603A KR20220169603A (ko) 2022-12-28
KR102588266B1 true KR102588266B1 (ko) 2023-10-13

Family

ID=84489926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210079868A KR102588266B1 (ko) 2021-06-21 2021-06-21 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법

Country Status (2)

Country Link
US (1) US11969894B2 (ko)
KR (1) KR102588266B1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100842249B1 (ko) 2005-12-08 2008-06-30 한국전자통신연구원 Owl-s와 웹 서비스를 이용한 bpel4ws 생성시스템 및 그 방법
KR101021836B1 (ko) * 2008-10-09 2011-03-17 한국전자통신연구원 동적 행위 바인딩을 통한 다수 로봇의 협업 구현 시스템 및그 구현 방법
JP5202603B2 (ja) 2009-12-18 2013-06-05 韓國電子通信研究院 知能型サービスロボット環境におけるロボットサービスロード方法およびそのためのサービスロード装置
US9886272B1 (en) * 2016-12-05 2018-02-06 Sap Se Transformation of a web application into a hybrid mobile application
CN106933635B (zh) 2017-03-15 2020-06-30 北京搜狐新媒体信息技术有限公司 Docker镜像生成方法及Docker容器
KR102310515B1 (ko) 2017-11-22 2021-10-08 한국전자기술연구원 지능형 컴포넌트를 위한 컨테이너 기반 관리 방법
EP3854105A4 (en) * 2018-09-20 2022-06-22 Nokia Technologies Oy ARTIFICIAL INTELLIGENCE APPARATUS AND METHOD
KR102421397B1 (ko) 2019-07-25 2022-07-18 주식회사 디에스랩글로벌 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
OPRoS-ROS간 데이터 교환 및 서비스 호출을 위한 브리지(2016.02.28.) 1부.*
ROS를 이용하여 상황인지 기반의 로봇 서비스를 실행시키기 위한 중계 시스템(2017.05.31.) 1부*
중국공개특허 제106933635호(2017.07.07.) 1부.*

Also Published As

Publication number Publication date
US20220402124A1 (en) 2022-12-22
KR20220169603A (ko) 2022-12-28
US11969894B2 (en) 2024-04-30

Similar Documents

Publication Publication Date Title
JP6092249B2 (ja) 埋込まれたプロセス通信のための仮想チャネル
US10997062B1 (en) System and method for implementing an automated regression testing module
WO2019072110A1 (zh) 应用程序的生成方法、装置、系统、设备和介质
US10574724B2 (en) Automatic discovery of management nodes and generation of CLI using HA module
EP3364631A1 (en) Dynamic orchestration of microservices
US8386608B1 (en) Service scripting framework
CN108959864B (zh) 功能调用鉴权、调用功能的方法和装置及权限信息建立方法
JP2018530070A (ja) クラウドベースのコンピューティング環境上の基盤を構築、最適化及び実施するシステム及び方法
US9602329B1 (en) Dynamic remote procedure call
CN110187986B (zh) 一种命令管理方法、系统、装置及计算机可读存储介质
CN112235357B (zh) 跨平台应用开发系统
JP2018500688A (ja) 動的サービス展開のためのコンピュータ可読格納媒体およびそれを利用するための方法およびシステム
CN108804100B (zh) 创建界面元素的方法、装置、存储介质及移动终端
CN111026439A (zh) 应用程序的兼容方法、装置、设备及计算机存储介质
KR102588266B1 (ko) 로봇과 인공지능 서비스 간의 자동화 통신 장치 및 이를 이용한 방법
US10606569B2 (en) Declarative configuration elements
US10289462B1 (en) Systems and methods for integration of websphere optimized local adapters with the spring framework
KR102119931B1 (ko) 데이터 통신 방법 및 장치
CN113986255A (zh) 部署服务的方法及装置、计算机可存储介质
Springborg et al. Towards a secure API client generator for IoT devices
JP7314935B2 (ja) システム、サーバ、検証方法及びプログラム
EP4155844A1 (en) Remote function customization method and apparatus, device, and storage medium
US20170031660A1 (en) Methods for utilizing powershell modules in .net applications and devices thereof
KR101888792B1 (ko) 데이터 통신 방법 및 이를 포함하는 시스템
CN114115817A (zh) 一种业务开发方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right