KR20070050285A - Method to communicate camera image in robot common framework - Google Patents

Method to communicate camera image in robot common framework Download PDF

Info

Publication number
KR20070050285A
KR20070050285A KR1020050107671A KR20050107671A KR20070050285A KR 20070050285 A KR20070050285 A KR 20070050285A KR 1020050107671 A KR1020050107671 A KR 1020050107671A KR 20050107671 A KR20050107671 A KR 20050107671A KR 20070050285 A KR20070050285 A KR 20070050285A
Authority
KR
South Korea
Prior art keywords
robot
image data
application program
camera
image
Prior art date
Application number
KR1020050107671A
Other languages
Korean (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 KR1020050107671A priority Critical patent/KR20070050285A/en
Priority to US11/594,929 priority patent/US20070112462A1/en
Priority to PCT/KR2006/004695 priority patent/WO2007055528A1/en
Publication of KR20070050285A publication Critical patent/KR20070050285A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators

Abstract

본 발명은 로봇 공통 프레임워크에서 카메라 영상 송수신 방법에 관한 것으로써, 특히 로봇 공통 프레임워크에 있어서, 로봇 응용 프로그램과 로봇 추상화 계층이 카메라 영상을 송수신하기 위한 방법에 관한 것이다. 본 발명의 로봇 공통 프레임워크상에서 카메라 영상을 송수신하는 방법은 로봇 응용 프로그램이 로봇 추상화 계층에 영상 데이터 전송을 요구하는 단계; 상기 영상 데이터 전송을 요구받은 로봇 추상화 계층이 외부 영상 데이터를 획득하는 단계; 및 상기 외부에서 획득한 영상 데이터를 상기 로봇 응용 프로그램이 상기 외부 영상 데이터 전송 중지 요청을 하기 전까지 상기 로봇 응용 프로그램으로 전송하는 단계를 포함한다. 본 발명에 의하면, 로봇 추상화 계층이 연속적으로 영상 데이터를 전송함으로써, 영상 송수신에 의한 시간 지연을 줄일 수 있고, 로봇의 응답 시간이 줄어드는 효과가 있다.The present invention relates to a method for transmitting and receiving camera images in a robot common framework, and more particularly, to a method for transmitting and receiving camera images by a robot application program and a robot abstraction layer in a robot common framework. A method of transmitting and receiving a camera image on a robot common framework of the present invention may include: requesting, by a robot application program, to transmit image data to a robot abstraction layer; Obtaining external image data by the robot abstraction layer requested to transmit the image data; And transmitting the externally acquired image data to the robot application program until the robot application program requests to stop transmitting the external image data. According to the present invention, since the robot abstraction layer continuously transmits the image data, it is possible to reduce time delay due to image transmission and reception and to reduce the response time of the robot.

로봇, 추상화계층, 표준, 영상, 인터페이스 Abstraction layer, robot, standard, image, interface

Description

로봇 공통 프레임워크에서 카메라 영상 송수신 방법{Method to communicate Camera image in Robot Common Framework}Method to communicate camera image in Robot Common Framework}

도 1은 로봇 하드웨어의 추상화 방법.1 is an abstraction method of robot hardware.

도 2는 로봇 가상 모델 및 클라이언트-서버 환경에서의 가상 모델 접근방법을 나타낸 도면.2 illustrates a robot virtual model and a virtual model approach in a client-server environment.

도 3a는 전역과 지역 좌표 시스템을 나타낸 도면.3A illustrates a global and local coordinate system.

도 3b는 센서 위치를 위한 지역 좌표계.3b is a local coordinate system for sensor location.

도 4a CRIF-Framework의 구조.4A structure of the CRIF-Framework.

도 4b는 CRIF-Framework의 처리흐름.4b is a process flow of CRIF-Framework.

도 5는 본 발명의 일 실시예에 따른 영상 송수신 과정.5 is a video transmission and reception process according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 연속 영상 송수신 과정의 개념도.6 is a conceptual diagram of a continuous video transmission and reception process according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 영상 전송 요구 명령의 데이터 구조.7 is a data structure of an image transmission request command according to an embodiment of the present invention.

도 8은 본 발명의 일 실시예에 따른 영상 전송 중지 명령의 데이터 구조.8 is a data structure of an image transmission stop command according to an embodiment of the present invention.

도 9는 본 발명의 일 실시예에 따른 연속 영상 송수신 과정의 블록도.9 is a block diagram of a continuous video transmission and reception process according to an embodiment of the present invention.

{도면의 주요 부분의 부호에 대한 설명}{Description of Signs of Major Parts of Drawings}

501 : 로봇 응용 프로그램 502 : 로봇 추상화 계층501: Robot Application 502: Robot Abstraction Layer

503 : 카메라503: camera

본 발명은 로봇 공통 프레임워크에서 카메라 영상 송수신 방법에 관한 것으로써, 특히 로봇 공통 프레임워크에 있어서, 로봇 응용 프로그램과 로봇 추상화 계층이 카메라 영상을 송수신하기 위한 방법에 관한 것이다.The present invention relates to a method for transmitting and receiving camera images in a robot common framework, and more particularly, to a method for transmitting and receiving camera images by a robot application program and a robot abstraction layer in a robot common framework.

1980년대부터 시작된 산업용 로봇 시장은 자동차와 전자산업 등 노동집약적 산업의 발달을 배경으로 하여 급속도로 성장하였고, 로봇이 생산현장에 투입되면서 산업용 로봇 시장은 본격적으로 확대된 바 있다. 그러나 1990년대 들어와 산업용 로봇 시장이 성숙기에 들어서면서 시장의 정체가 새로운 분야의 산업 형성과 기술 발전을 모색하게 되는 계기로 작용하였다. 이 새로운 분야의 로봇은, 최근에 들어와서 가사노동이나 기타 생활지원에 대한 사회적 요구가 확대되고 고령화 사회의 진전이 이루어지면서, 기존의 고정된 환경에 단순반복 작업을 위주로 하는 산업용 로봇에서 탈피하여 변화하는 환경에 능동적으로 대처하며 인간과 밀착된 서비스를 제공하는 서비스 로봇의 형태로 발전되어 가고 있다. 특히, 반도체와 컴퓨터 및 통신 기술의 획기적인 발전과 더불어 로봇 분야는 정보통신기술을 기반으로 한 지능 형 서비스 로봇이라는 신규 로봇 시장을 형성해 가고 있다. 예로서 S사의 애완용 로봇 A에서 비롯된 지능형 서비스 로봇의 상업화는 로봇이 단순히 인간 노동을 대체하는 분야에서만 이용된다는 개념에서 탈피하여, 엔터테인먼트 및 사람의 동반자로서의 역할에 대한 인식이 확대되는 계기가 되었다.The industrial robot market, which began in the 1980s, grew rapidly based on the development of labor-intensive industries such as the automobile and electronic industries, and the industrial robot market has expanded in earnest as robots are put into production. However, as the industrial robot market entered into maturity in the 1990s, the stagnation of the market acted as an opportunity to seek industrial formation and technological development in new fields. Robots in this new field are changing from the industrial robots that focus on simple repetitive work in the fixed environment with the recent increase in social demand for domestic labor and other living support and the progress of the aging society. It is being developed in the form of a service robot that actively responds to the environment and provides services closely related to human beings. In particular, with the breakthrough of semiconductor, computer and communication technology, the robot field is forming a new robot market called intelligent service robot based on information and communication technology. For example, the commercialization of intelligent service robots, originated from S's pet robot A, has moved away from the notion that robots are used only in the field of replacing human labor, which has led to an increased awareness of entertainment and role as human companions.

국내 지능형 서비스 로봇산업은 20여 개의 벤처기업을 중심으로 엔터테인먼트 로봇, 홈로봇 등의 초보적인 지능로봇 제품을 출시하고 있으며, 대기업에서는 지능형 가전 기술개발과 맞물려 독자적인 지능로봇 기술개발을 시도하고 있다. S사는 토이 로봇 앤토와 가정용 로봇 아이꼬마, 그 후속 모델인 아이마로를 개발하여 1~2년 내 사업화를 준비중이며, L사는 청소용 로봇인 로봇킹을 출시한 바 있다.The domestic intelligent service robot industry is launching rudimentary intelligent robot products such as entertainment robots and home robots around 20 venture companies, and large companies are trying to develop their own intelligent robot technologies in conjunction with intelligent home appliance technology development. S company is developing toy robot Anto, home robot child kid and its successor model, imaro, and are preparing to commercialize within one to two years. L company has released roboting robot, a cleaning robot.

특히, 대기업들은 상대적으로 다양한 사업 분야에 대한 기술과 풍부한 연구인력 및 자본을 앞세워 기존 소규모 선발 업체들과의 기술 수준 차이를 빠르게 극복하고 이 분야를 선도할 것으로 예상된다.In particular, large corporations are expected to lead the field by quickly overcoming the differences in technology level with existing small start-ups, with their skills in a variety of business areas, abundant research personnel and capital.

국내 산업용 로봇은 생산 규모로 볼 때 세계 4위 수준으로, 반도체, 자동차 등 제조업의 경쟁력 강화에 일조를 하고 있으나 국내 산업용 로봇은, 기술력 및 로봇 핵심 부품의 대외 의존도가 높아 선진국에 비해서 경쟁력이 낮고, 최근의 산업 침체로 인해서 기존 업계는 활력을 상실하고 있는 상황이다. 2000년 이후 많은 중소 벤처 기업이 로봇 산업의 세계적인 추세에 따라 가정용, 오락용, 교육용, 서비스 로봇 등을 상용화 개발하고 있으며, 세계 로봇축구 대회, 국제 지능로봇 전시회 등이 국내에서 개최되어 점차 국내 지능로봇에 대한 산업화 가능성이 높아지고 있다. D 사에서는 저가의 RC서보 모터를 이용하여 16관절의 인간형 로봇 루시 및 다 수의 교육, 연구로봇을 출시하였고, R사에서는 생쥐의 모습을 가진 성장형 토이로봇 디디와 티티 및 전투용 글래디에이터 로봇을 출시한 바 있다. 마이크로로봇은 교육용 로봇 키트와 경기용 로봇을 사업화하고 있으며, 또한 차세대 로봇 기술 개발과제로 모듈형 로봇을 개발 중이다. 우리 기술은 KIST와 공동으로 가정용 안내 및 청소 로봇 아이작을 개발하여 전시하였고, 청소 로봇을 출시하였으며, 공공 전시 로봇을 차세대 과제로 개발중에 있다. Y사는 축구 로봇 빅토를 상용화하였고, 가정용 교육 로봇 페가수스 및 아이로비를 개발하여 상용화를 준비중에 있다. H사는 연구용 로봇, 축구 로봇을 상용화하였고, 국방용 로봇과 청소로봇 오토로를 개발하였으며, 그 외 다수의 기업들이 교육 및 완구 로봇을 중심으로 산업화에 기여하고 있다.Domestic industrial robots rank fourth in the world in terms of production scale, contributing to strengthening the competitiveness of manufacturing industries such as semiconductors and automobiles, but domestic industrial robots are less competitive than developed countries due to their high dependence on technology and core parts of robots. Due to the recent industry downturn, the existing industry is losing vitality. Since 2000, many small and medium venture companies have developed and commercialized home, entertainment, educational, and service robots according to the global trend of the robot industry.In addition, the world's intelligent robot competitions and international intelligent robot exhibitions have been held in Korea. The possibility of industrialization is increasing. D company has launched a 16-joint human robot, Lucy, and a number of educational and research robots using low-cost RC servo motors. R has also grown mouse toy robots like Ditty and Titi and combat Gladiator robots. It was released. Microrobot is commercializing educational robot kits and competition robots, and is developing modular robots as a next-generation robot technology development task. Our technology, in collaboration with KIST, developed and displayed the home guide and cleaning robot Isaac, launched the cleaning robot, and is developing a public exhibition robot as the next task. Y has commercialized soccer robot Victor and is preparing to commercialize home educational robots Pegasus and Irobi. H has commercialized research robots and soccer robots, developed defense robots and cleaning robots Autoro, and many other companies are contributing to the industrialization of educational and toy robots.

IT 신성장동력 기획보고서에 따르면 지능형 서비스 로봇을 유비쿼터스 로보틱 컴패니온(Ubiquitous Robotic Companion, 이하 'URC')으로 명명하고 비즈니스 모델에 입각한 산업 활성화와 기술개발을 추진하도록 되어 있다. 여기서, URC란 “언제 어디서나 나와 함께하며 나에게 필요한 서비스를 제공하는 로봇”으로 정의되는바, 기존의 로봇 개념에 네트워크를 부가한 URC 개념을 도입함으로써 다양한 고도의 기능이나 서비스 제공이 가능하고 전이와 휴먼 인터페이스가 획기적으로 향상되어, 사용자 측면에서는 보다 저렴한 가격으로 다양한 서비스와 즐거움을 제공받을 수 있는 가능성이 크게 확대될 것으로 기대된다. URC의 범위에는, 네트워크 인프라에 연결되어 있고 지능을 갖추고 있어야 하되 이동성 측면에서 기구적 이동(Hardware mobility)뿐 아니라 소프트웨어 전이(Software mobility)까지도 포함하 는 것을 고려하고 있다.According to the IT New Growth Engine Planning Report, intelligent service robots will be named Ubiquitous Robotic Companion (URC) and will promote industry activation and technology development based on business models. Here, URC is defined as “a robot that is with me anywhere and at any time and provides the services I need.” By introducing the URC concept that adds a network to the existing robot concept, various advanced functions or services can be provided. The human interface is greatly improved, and the possibility of providing various services and enjoyment at a lower price on the user side is expected to be greatly expanded. The scope of the URC considers that it must be connected to the network infrastructure and have intelligence, but also include software mobility as well as hardware mobility in terms of mobility.

로봇과 네트워크가 결합된 URC는 각각이 지니는 제약성을 극복, 로봇 산업의 성장을 도모할 수 있는 새로운 가능성을 제시하고 있다. 기존에는 필요한 모든 기능 및 기술적 부담을 로봇 자체에서 해결토록 함으로써 기술적 제약성 및 비용상의 문제를 안고 있었으나, 네트워크를 통해 기능을 외부에서 분담함으로써 비용을 절감하고 유용성을 증대시킬 수 있게 된다. 즉, IT기술의 발전이 가져온 기능적 가능성에 로봇이 합쳐짐으로써 더욱 자유로운 형태와 광범위한 이동성을 갖추고, 인간친화적인 휴먼 인터페이스를 확보함으로써 인간중심 기술을 바탕으로 한 로봇산업으로 발전 가능하게 됐다.URC, which combines robots and networks, presents new possibilities for the growth of the robot industry by overcoming the limitations of each. Previously, all the necessary functions and technical burdens were solved by the robots themselves, which resulted in technical limitations and cost problems. However, by sharing functions externally through the network, it is possible to reduce costs and increase usability. In other words, by combining robots with the functional possibilities brought by the development of IT technology, it became possible to develop into a robot industry based on human-centered technology by having a more free form, wider mobility, and a human-friendly human interface.

현재와 같이 표준화 된 로봇이 존재하지 않는 상황에서는, 로봇의 기능은 물론 그 구조나 제어방법, 제어를 위한 프로토콜 등 로봇의 구현과 관련된 거의 모든 측면이 제작자나 설계자의 의도에 따라 매우 다양해 질 수 밖에 없다. 특정한 로봇 플랫폼을 대상으로 개발된 응용 프로그램은 다른 플랫폼에서는 동작하지 않을 가능성이 높다. 더구나, 하드웨어 의존적인 부분이 프로그램 곳곳에 산재되어 있기 때문에 이식작업 또한 매우 곤란한 것이 현실이다. 이는 결과적으로 로봇기능 및 응용프로그램 등의 중복개발을 초래할 수 밖에 없어 로봇기술의 발전을 저해하는 중요한 요인 중 하나로 여겨진다.In a situation where there is no standardized robot as in the present, almost all aspects related to the implementation of the robot, such as its function, its structure, control method, and control protocol, can vary greatly depending on the intention of the manufacturer or designer. none. Applications developed for specific robotic platforms are unlikely to work on other platforms. In addition, porting is also very difficult because hardware-dependent parts are scattered throughout the program. As a result, the development of robot functions and applications is inevitable, which is considered to be one of the important factors that hinders the development of robot technology.

이와 같은 문제의 해결방법으로 가장 대표적인 것은 로봇 플랫폼에 따라 달라지는 하드웨어 의존적인 부분을 추상화하는 것이다. 즉, 도 1에서 보이는 바와 같이 응용 프로그램은 추상화된 하드웨어 계층을 통하여 제공되는 로봇의 하드웨어 적인 기능 및 서비스 만을 이용함으로써 특정 로봇의 하드웨어에 대한 의존성을 감소할 수 있다.The most typical solution to this problem is to abstract the hardware-dependent part of the robot platform. That is, as shown in FIG. 1, the application program may reduce the dependency on the hardware of a specific robot by using only the hardware functions and services of the robot provided through the abstracted hardware layer.

한편 로봇 장치를 구성하는 각종 센서, 액츄에이터, 그리고 제어보드 등의 성능이 향상되고 모듈화되어 감에 따라, 최근의 로봇들에는 다수의 제어보드들이 탑재되고 이 보드들간에 통신을 통하여 전체적으로 로봇을 제어하는 형태의 플랫폼이 확산되어 가고 있는 추세이다. 로봇 내부의 모듈화, 분산화 경향과 더불어, 심지어는 네트워크를 통하여 원격지에서 로봇을 제어하고 서비스를 제공하는 형태의 분산화도 진척되고 있다.Meanwhile, as the performance of various sensors, actuators, and control boards constituting the robot device is improved and modularized, a number of control boards are mounted in recent robots and the robots are generally controlled through communication between the boards. The platform of the form is spreading. In addition to the trend of modularization and decentralization inside the robot, decentralization in the form of controlling and providing services to the robot remotely through a network is also progressing.

본 발명의 목적은 URC용 로봇 장치에 대한 공통의 인터페이스 및 클라이언트-서버 구조상의 인터페이스를 이용가능하게 하는 프레임워크상에서 로봇에서 획득한 카메라 영상의 송수신 방법을 제공하는 데 있다.An object of the present invention is to provide a method for transmitting and receiving camera images obtained from a robot on a framework that enables a common interface to a robot device for URC and an interface on a client-server structure.

본 발명의 다른 목적은 상기 영상 송수신 방법을 단순화하여 카메라 영상 송수신 과정을 간단하게 함으로써 로봇의 동작을 빠르게 하는 카메라 영상의 송수신 방법을 제공하는 데 있다.Another object of the present invention is to provide a method for transmitting and receiving a camera image that simplifies the process of transmitting and receiving a camera image by simplifying the image transmission and reception method.

상기와 같은 목적을 달성하기 위하여 본 발명의 로봇 공통 프레임워크상에서 카메라 영상을 송수신하는 방법은 로봇 응용 프로그램이 로봇 추상화 계층에 영상 데이터 전송을 요구하는 단계; 상기 영상 데이터 전송을 요구받은 로봇 추상화 계층이 외부 영상 데이터를 획득하는 단계; 및 상기 외부에서 획득한 영상 데이터를 상기 로봇 응용 프로그램이 상기 외부 영상 데이터 전송 중지 요청을 하기 전까지 상기 로봇 응용 프로그램으로 전송하는 단계를 포함한다.In order to achieve the above object, a method of transmitting and receiving a camera image on a robot common framework according to the present invention includes: requesting, by a robot application program, to transmit image data to a robot abstraction layer; Obtaining external image data by the robot abstraction layer requested to transmit the image data; And transmitting the externally acquired image data to the robot application program until the robot application program requests to stop transmitting the external image data.

본 발명에서 상기 로봇 추상화 계층은 적어도 하나 이상의 카메라를 이용하여 영상 데이터를 획득하는 것이 바람직하다.In the present invention, the robot abstraction layer preferably obtains image data using at least one camera.

본 발명에서 상기 로봇 추상화 계층이 상기 로봇 응용 프로그램으로 상기 외부에서 획득한 영상 데이터를 전송할 때에는 압축된 데이터 형식으로 전송하는 것이 바람직하다.In the present invention, when the robot abstraction layer transmits the externally acquired image data to the robot application program, the robot abstraction layer preferably transmits the image data in a compressed data format.

본 발명에서 상기 로봇 응용 프로그램이 상기 로봇 추상화 계층에 영상 데이터 전송을 요구하기 위해 전송하는 명령은 영상 전송 요구 명령 프레임, 카메라 ID 프레임, 전송주기 프레임 및 콜백 함수 ID 또는 포트 번호 프레임을 포함하는 것이 바람직하다.In the present invention, the command transmitted by the robot application program to request image data transmission to the robot abstraction layer preferably includes an image transmission request command frame, a camera ID frame, a transmission period frame, and a callback function ID or port number frame. Do.

본 발명에서 상기 로봇 응용 프로그램이 상기 로봇 추상화 계층에 영상 데이터 전송 중지 요청을 하기 위해 전송하는 명령 데이터는 영상 전송 중지 명령 프레임 및 카메라 ID 프레임을 포함하는 것이 바람직하다.In the present invention, the command data transmitted by the robot application program to request to stop transmitting image data to the robot abstraction layer preferably includes an image transmission stop command frame and a camera ID frame.

본 발명에서 상기 영상 데이터 전송을 요구받은 로봇 추상화 계층이 외부 영상 데이터를 획득하고 이를 상기 로봇 응용 프로그램으로 전송하는 과정은 상기 로봇 응용 프로그램이 외부 영상 데이터 전송 중지 요청하기 전까지 계속해서 반복하는 것이 바람직하다.In the present invention, the process of acquiring the external image data by the robot abstraction layer requested to transmit the image data and transmitting the external image data to the robot application program may be repeated continuously until the robot application program requests to stop transmitting the external image data. .

본 발명에서 상기 외부에서 획득한 영상 데이터는 일정한 주기를 가지고 상기 로봇 응용 프로그램으로 전송되는 것이 바람직하다.In the present invention, the externally obtained image data is preferably transmitted to the robot application program at a certain period.

본 발명에서 상기 로봇 추상화 계층에서 전송받은 외부에서 획득한 영상 데이터는 영상버퍼에 일시적으로 저장되는 것이 바람직하다.In the present invention, it is preferable that the image data acquired from the outside transmitted from the robot abstraction layer is temporarily stored in the image buffer.

이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다. 하기의 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하며, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. In adding reference numerals to components of the following drawings, it is determined that the same components have the same reference numerals as much as possible even if displayed on different drawings, and it is determined that they may unnecessarily obscure the subject matter of the present invention. Detailed descriptions of well-known functions and configurations will be omitted.

본 발명에서는 공통 로봇 인터페이스 프레임워크(Common Robot Interface Framework, CRIF)를 정의한다. CRIF는 응용 프로그램의 하드웨어 플랫폼 의존성을 줄이고, 이식성을 향상시키기 위하여 하드웨어 추상화를 목적으로 하는 일종의 가상로봇을 이용한 공통적인 인터페이스(CRIF Interface)와 이를 클라이언트-서버 환경에서 지원하기 위한 프레임워크(CRIF-Framework)에 대한 규격이다.In the present invention, a common robot interface framework (CRIF) is defined. CRIF is a common interface (CRIF Interface) using a kind of virtual robot for the purpose of hardware abstraction to reduce the hardware platform dependency of an application and improve portability, and a framework for supporting it in a client-server environment (CRIF-Framework). ) Is the standard for.

도 2는 로봇 가상 모델 및 클라이언트-서버 환경에서의 가상 모델 접근방법을 보여준다. 로봇 응용 프로그램은 본 발명이 정의하는 규격에 따르는 공통 인터페이스를 이용하여 로봇의 하드웨어 자원에 접근하거나 로봇을 제어한다.2 shows a robot virtual model and a virtual model approach in a client-server environment. The robot application program accesses the hardware resources of the robot or controls the robot using a common interface according to the standard defined by the present invention.

본 발명에서는 도 2에서 보이듯이 일종의 가상 로봇에 대한 모델을 정립하고 이에 대한 공통 인터페이스를 제공한다. 이 가상 로봇은 디퍼런셜 타입의 바퀴 구동장치와, 카메라가 부착된 팬-틸트가 가능한 헤드, 로봇외부 객체와의 거리를 측정할 수 있는 거리센서 장치, 충돌감지용 범퍼 센서, 소리를 입력받는 마이크 장치, 소리를 출력하는 스피커 장치, 로봇 외부의 이미지를 획득하기 위한 영상 장치, 그리고 배터리 전압 감지 장치를 가지는 로봇으로 정의되는 것이 바람직하다.In the present invention, as shown in FIG. 2, a model for a kind of virtual robot is established and a common interface thereof is provided. The virtual robot is equipped with a differential wheel drive, a pan-tilt head with a camera, a distance sensor device that can measure the distance from an external object of the robot, a bumper sensor for collision detection, and a microphone device that receives sound. It is preferably defined as a robot having a speaker device for outputting sound, an imaging device for acquiring an external image of the robot, and a battery voltage sensing device.

본 발명에서 정의하는 공통인터페이스는 도 2에서 보이는 바와 같이 로봇의 부속장치에 접근하기 위한 인터페이스를 제공하며, 그 외의 장치에 접근하기 위한 인터페이스는 정의하지 않는다. 본 발명에서 정의하는 인터페이스 프레임워크는 본 표준에서 정의하는 공통 인터페이스를 클라이언트-서버 환경에서 이용 가능하게 확장하는 구조이다. 이때, 로봇 응용 프로그램과 로봇 장치가 클라이언트-서버 구조를 이룬다는 것은 주로 로봇 응용 프로그램이 로봇 내부에 존재하기는 하나 로봇 부속 장치와는 서로 다른 컴퓨팅 노드에서 동작하는 환경을 의미한다. 그러나 로봇 응용 프로그램이 로봇 장치 외부의 프로세서에서 동작하는 원격 환경에도 적용 가능하다.The common interface defined in the present invention provides an interface for accessing the accessory of the robot as shown in FIG. 2, and does not define an interface for accessing other devices. The interface framework defined in the present invention is a structure that extends the common interface defined in this standard to be available in a client-server environment. In this case, the robot application program and the robot device forming a client-server structure mainly mean an environment in which the robot application program exists inside the robot but operates in a different computing node from the robot accessory device. However, the robot application can be applied to a remote environment in which a robot runs on a processor outside the robot device.

본 발명에서 정의하는 공통 인터페이스는 로봇 부속 장치 중 하나 또는 그 이상의 장치를 지닌 로봇에 적용 가능하다. 또한, 본 표준에서 정의하는 공통 인터페이스 프레임워크는 로봇과 로봇 장치와의 통신에 있어서 원격 함수 호출 방법을 지원하는 경우에 적용 가능하다.The common interface defined in the present invention is applicable to a robot having one or more of the robot accessories. In addition, the common interface framework defined in this standard is applicable to the case of supporting a remote function call method in communication between the robot and the robot device.

본 발명의 공통 인터페이스 규격으로 인하여 직접적인 영향을 받는 대상은 크게 로봇 응용 프로그램 개발자와 로봇 개발자이다. 로봇 응용 프로그램 개발자는 본 표준에서 규정하는 공통 인터페이스 규격에 따라서 로봇 응용 프로그램을 개발하게 되며, 로봇 개발자는 본 표준에서 규정하는 공통 인터페이스 규격을 지원할 수 있도록 실제 로봇 하드웨어 의존적인 구현을 담당하게 된다.The objects directly affected by the common interface specification of the present invention are robot application program developers and robot developers. The robot application program developer develops the robot application program according to the common interface standard defined in this standard, and the robot developer takes charge of the actual robot hardware-dependent implementation to support the common interface standard defined in this standard.

본 발명의 인터페이스 프레임워크 규격으로 인하여 직접적인 영향을 받는 대상은 프레임워크개발자이다. 프레임워크 개발자는 본 발명에서 정의한 규격대로 프레임워크를 개발하여야 한다. 로봇 응용 프로그램 개발자나 로봇 개발자는 본 표준의 프레임워크에 대하여 영향을 받지 아니한다.The object directly affected by the interface framework specification of the present invention is a framework developer. The framework developer should develop the framework according to the standard defined in the present invention. Robot application developers or robot developers are not affected by the framework of this standard.

로봇 응용 프로그램과 로봇 간의 클라이언트-서버 통신은 프레임워크가 담당하기 때문에 로봇 응용 프로그램 개발자나 로봇 개발자는 공통된 인터페이스만 준수하면 된다.Since the framework is responsible for client-server communication between robot applications and robots, robot application developers or robot developers only need to observe common interfaces.

로봇을 구성하는 장치 하드웨어는 플랫폼별 또는 장치별로 그 특성 및 종류가 다양하기 때문에, 로봇 장치에 접근하는 인터페이스의 표준화를 위해서는 우선 로봇 플랫폼에 대한 일종의 모델을 세우고 이를 기반으로 공통된 인터페이스를 정의하는 것이 바람직하다. 본 발명에서는 특정한 로봇 장치에 대한 의존성을 줄이기 위하여 추상적인 로봇 모델을 제시하고 로봇의 기능 및 서비스에 접근하기 위한 표준화 된 인터페이스인 API를 정의한다.Since the device hardware constituting the robot varies depending on the platform or device, its characteristics and types vary, so in order to standardize the interface for accessing the robot device, it is desirable to first establish a kind of model for the robot platform and define a common interface based thereon. Do. In the present invention, in order to reduce dependency on a specific robot device, an abstract robot model is presented and an API, which is a standardized interface for accessing the functions and services of the robot, is defined.

로봇은 본 발명에서 정의하는 공통 인터페이스 규격을 지원하는 개체로서 공통 인터페이스의 구현은 로봇이 지닌 장치 특성에 맞게 공통 인터페이스 규격을 구현한다. 본 발명에서는 로봇 응용 프로그램에 공통된 인터페이스를 제공하기 위하여, 일종의 가상 로봇에 대한 모델을 정립하고 이에 대한 공통 인터페이스를 제공 한다.The robot is an entity supporting the common interface standard defined in the present invention, and the implementation of the common interface implements the common interface standard according to the device characteristics of the robot. In the present invention, in order to provide a common interface to the robot application program, a model for a kind of virtual robot is established and a common interface thereof is provided.

CRIF-Interface에서 모든 응용 프로그램은 일종의 가상 로봇을 대상으로 동작을 명령한다. 이러한 가상 로봇 모델을 통하여 특정 로봇을 제어할 경우 응용 프로그램은 특정 로봇의 하드웨어에 대한 의존성을 해소할 수 있다는 장점이 있다.In CRIF-Interface, every application commands an action on a virtual robot. When controlling a specific robot through such a virtual robot model, the application program has an advantage of resolving the dependency on the hardware of the specific robot.

하지만, 특정한 로봇 플랫폼이 가상 로봇 모델에 정의되어 있지 않은 특수한 기능 혹은 기구가 있다면 CRIF-Interface를 통하여는 그 특수기능 혹은 기구에 대한 사용을 불가하므로, 가능한 한 다양한 로봇이 가진 기능을 최대한 포함하는 유연한 인터페이스 집합을 정의할 필요가 있다.However, if a specific robot platform has a special function or mechanism that is not defined in the virtual robot model, it is impossible to use the special function or instrument through the CRIF-Interface, so it is flexible to include as many functions as possible. We need to define a set of interfaces.

그러나 반면에 실질적으로 거의 사용되지 않는 기능까지를 포함하는 경우, CRIF-Interface는 필요 이상으로 복잡해지게 되며, 당연히 하드웨어 세부 사양에 따른 구현도 복잡해진다.However, on the other hand, if it includes functionality that is rarely used, the CRIF-Interface becomes more complex than necessary, and of course, the implementation according to the hardware specification is complicated.

따라서, 본 발명에서 정의하는 가상 로봇 모델은 상술한 바와 같이 디퍼런셜 타입의 바퀴 구동장치와, 카메라가 부착된 팬-틸트가 가능한 헤드, 로봇외부 객체와의 거리를 측정할 수 있는 거리센서 장치, 충돌감지용 범퍼 센서, 소리를 입력받는 마이크 장치, 소리를 출력하는 스피커 장치, 로봇 외부의 이미지를 획득하기 위한 영상 장치, 그리고 배터리 전압 감지 장치로 구성된다.Therefore, the virtual robot model defined in the present invention is a wheel drive device of the differential type, a pan-tilt capable of attaching a camera, a distance sensor device capable of measuring a distance between an external object of the robot, and a collision as described above. It consists of a bumper sensor for sensing, a microphone device for receiving sound, a speaker device for outputting sound, an imaging device for acquiring an image from outside the robot, and a battery voltage sensing device.

표 1은 본 발명에서 정의하는 로봇이 구비하는 장치를 나타낸 것이다.Table 1 shows the apparatus provided by the robot defined in the present invention.

분류Classification 규격standard 이동장치Mover 2개의 주 구동모터를 가지는 디퍼런셜 드라이브 방식의 휠Differential drive wheel with two main drive motors 헤드부Head 1개의 팬-틸트 가능한 머리 제어부1 pan-tiltable head control 거리센서 장치Distance sensor device N개의 소나 또는 적외선 거리센서 배열N sonar or infrared distance sensor arrays 범퍼센서Bumper sensor N개의 범퍼 센서 배열N bumper sensor array 소리 입력 장치Sound input device N개의 마이크N microphones 소리 출력 장치Sound output device 1개의 스피커1 speaker 영상 입력 장치Video input device N개의 카메라N cameras 배터리 모니터Battery monitor 1개의 배터리 전압 감지장치1 battery voltage sensor

로봇의 이동을 위한 인터페이스를 위한 파라미터별 단위는 표 2와 같다.The parameter unit for the interface for the movement of the robot is shown in Table 2.

파라미터parameter 단위unit 거리Street MM 시간time wife 각도Angle 라디안Radian 선속도Linear velocity m/sm / s 각속도Angular velocity Rad/sRad / s 선가속도Line acceleration m/s2 m / s 2 각가속도Angular acceleration Rad/s2 Rad / s 2

좌표계는 도 3a에 도시된 바와 같이 x, y, z로 구성되는 3차원 직각 좌표계를 사용하며, 지역 좌표 시스템에서는 로봇의 전방이 x, 왼쪽 측면이 y, 위쪽으로 수직 방향이 z 축을 이룬다. θ는 x축과 y축이 이루는 각도인데, 로봇의 전방이 0도, 로봇의 왼쪽 측면이 90도가 된다. γ는 xy평면과 z축이 이루는 각도이다(도 3b참조).The coordinate system uses a three-dimensional rectangular coordinate system composed of x, y, and z, as shown in FIG. 3a. In the local coordinate system, the front of the robot is x, the left side is y, and the vertical direction is the z axis. θ is an angle formed by the x-axis and the y-axis, and the front side of the robot is 0 degrees and the left side of the robot is 90 degrees. γ is an angle formed by the xy plane and the z axis (see FIG. 3B).

이하 로봇 구동을 위한 인터페이스에 대해서 정의하면 다음과 같다.Hereinafter, the interface for driving the robot is defined as follows.

로봇 매니저는 로봇 전체의 초기화 및 종료 그리고 로봇 플랫폼의 장치 정보를 제공한다.The robot manager provides the initialization and termination of the entire robot and the device information of the robot platform.

이동 인터페이스는 로봇에 장착된 휠의 구동, 정지 등의 명령을 수행하며, 로봇의 최대속도, 가속도 등을 설정하며, 현재 속도와 위치 등의 상태를 알 수 있다. 내부적으로 엔코더 정보를 이용하여, 속도 및 위치제어를 수행한다.The movement interface performs commands such as driving and stopping the wheels mounted on the robot, sets the maximum speed and acceleration of the robot, and knows the current speed and position. Internally, encoder and encoder are used to perform speed and position control.

속도제어 명령에는 양 바퀴의 속도를 직접 제어하는 SetWheelVel()함수와, 로봇의 선속도와 각속도를 설정하는 SetVel() 함수가 있으며, 위치제어 명령에는 전방 또는 후방으로 이동하는 Move()함수와, 정해진 상대각도만큼 회전하는 Turn()함수 그리고 주어진 상대 각도와 회전반경을 가지고 회전하는 Rotate()함수가 있다.The speed control command includes the SetWheelVel () function that directly controls the speed of both wheels, the SetVel () function that sets the linear and angular velocity of the robot. The position control command includes the Move () function that moves forward or backward, There is a Turn () function that rotates by a given relative angle and a Rotate () function that rotates with a given relative angle and radius.

그 외에 현재 속도와 위치를 얻어올 수 있는 함수와, 선가속도와 각가속도, 최대 선속도와 최대 각속도를 설정할 수 있는 함수들이 있으며, 마지막으로 로봇을 정지시키는 Stop(), 비상상황에서 빠르게 정지할 수 있는 EmergencyStop()이 있다.In addition, there are functions to get the current speed and position, and functions to set the line acceleration, angular acceleration, maximum linear speed and maximum angular velocity. Finally, Stop () to stop the robot, and stop quickly in an emergency situation. There is an EmergencyStop ().

휠 구현(Wheel Implementation)에서의 위치제어는 로봇의 현재 위치를 기준으로 한 로봇 로컬 좌표계만을 사용한다. 즉, Move()나 Turn()함수가 호출이 되면 그 시점의 로봇 위치를 기준으로 일정 거리를 이동하거나 일정 각도만큼 회전하게 된다.Position control in Wheel Implementation uses only the robot local coordinate system based on the robot's current position. That is, when Move () or Turn () function is called, it moves a certain distance or rotates by a certain angle based on the robot position at that time.

머리부 제어는 로봇 헤드부에 관한 정보, 머리부의 현재 각도, 로봇 헤드 팬과 틸트의 포화속도를 설정 및 지정된 회전속도로 정해진 각도로 머리를 회전하라는 명령에 대한 정보를 포함한다.Head control includes information about the robot head, the current angle of the head, the command to set the saturation speed of the robot head pan and tilt and to command the head to rotate at a predetermined angle at a specified rotation speed.

카메라 제어는 카메라 해상도 정보, 카메라에 장착된 줌 구동부의 정보, 지정된 카메라의 지원가능한 해상도의 리스트, 카메라 아이디, 지정된 카메라의 현재 해상도, 지정된 카메라의 해상도 설정, 지정된 카메라의 현재 프레임 레이트, 지정된 카메라의 프레임 레이트를 설정, 지정된 영상정보 획득 및 중지, 획득한 영상을 버퍼에 저장하거나 반환, 지정된 카메라의 줌에 관한 정보 및 줌팩터, 줌 동작 수행에 관한 정보를 포함한다.Camera controls include camera resolution information, information about the zoom driver attached to the camera, a list of supported resolutions of the specified camera, camera ID, the current resolution of the specified camera, the resolution setting of the specified camera, the current frame rate of the specified camera, Set the frame rate, acquire and stop the specified image information, store or return the acquired image in the buffer, information about the zoom of the specified camera and the zoom factor, and information about performing the zoom operation.

근접(proximity)센서 인터페이스는 로봇에 장착된 소나 센서나 적외선 거리센서 등 장애물과의 거리를 알아올 수 있는 센서배열에 대한 인터페이스이다. 특성이 같은 센서들의 집합을 센서배열이라고 한다. 특성이 동일한 소나센서가 여러 개 배치된 경우 이들이 하나의 센서배열을 이룬다. 이와 같은 센서배열이 여러 개 존재할 수 있으며 각각 아이디로 구분된다.Proximity sensor interface is an interface to the sensor array that can find out the distance to obstacles such as sonar sensor or infrared distance sensor mounted on the robot. A set of sensors with the same characteristics is called a sensor array. When multiple sonar sensors with the same characteristics are arranged, they form one sensor array. There can be several such sensor arrays, each identified by an ID.

범퍼 센서 인터페이스는 로봇이 외부 장애물과 충돌했을 경우 이를 알려줄 수 있는 범퍼 센서들에 대한 인터페이스로써, 로봇에 장착된 범퍼나, 매우 짧은 거리를 인지하는 적외선 센서들의 배열이 이에 해당한다. 장애물과의 충돌 유무를 알려준다. 특성이 같은 센서들의 집합을 센서배열이라고 한다. 특성이 동일한 소나 센서가 여러 개 배치된 경우 이들이 하나의 센서배열을 이룬다. 이와 같은 센서배열이 여러 개 존재할 수 있으며 각각 아이디로 구분된다.The bumper sensor interface is an interface to bumper sensors that can notify the robot when it collides with an external obstacle, such as a bumper mounted on the robot or an array of infrared sensors that recognize a very short distance. Indicate if there is a collision with an obstacle. A set of sensors with the same characteristics is called a sensor array. If multiple sonar sensors with the same characteristics are arranged, they form one sensor array. There can be several such sensor arrays, each identified by an ID.

배터리 모니터는 주전원에 대한 배터리 전압을 체크한다.The battery monitor checks the battery voltage for the mains.

스피커는 음성데이터를 스피커를 통해 출력하고, 마이크 컨트롤은 오픈된 마이크 채널로부터 음성 데이터를 획득한다.The speaker outputs the voice data through the speaker, and the microphone control obtains the voice data from the open microphone channel.

이하 상기와 같은 인터페이스를 통하여 통신하기 위한 CRIF-Framework를 정의하면 다음과 같다.Hereinafter, a CRIF-Framework for communicating through the above interface is defined.

도 4는 본 발명에서 정의하는 CRIF-Framework의 구조이다.4 is a structure of a CRIF-Framework defined in the present invention.

CRIF-Framework는 CRIF-Interface를 클라이언트-서버환경으로 확장하기 위한 프레임워크를 규정한다. CRIF-Framework를 구성하는 요소는 클라이언트 측의 응용 프로그램 개발자들이 로봇구동을 위하여 이용하는 CRIF-Interface가 존재하는 계층, 서버 측의 로봇 플랫폼 개발자들이 CRIF-Interface에 정의된 API를 실제 로봇 구동을 위하여 구현하는 계층, 그리고 이 두 계층을 통신을 담당하는 계층이 존재한다.CRIF-Framework defines a framework for extending CRIF-Interface into a client-server environment. The elements that make up the CRIF-Framework are the layer where the CRIF-Interface exists that the client-side application developers use to drive the robot, and the server-side robot platform developers implement the API defined in the CRIF-Interface for the actual robot operation. There is a layer, and a layer responsible for communicating these two layers.

CRIF-Framework는 언급한 바와 같이 응용 프로그램 개발자 혹은 로봇 하드웨어 개발자들이 각각의 시스템을 개발하는 데 이용하는 공통의 프레임워크를 제공한다. 클라이언트 측의 응용 프로그램 개발자는 CRIF-Framework에서 제공하는 인터페이스를 이용하여 로봇 하드웨어에 대한 제어 및 접근을 할 수 있으며, 서버 측의 로봇 하드웨어 플랫폼 개발자는 CRIF-Framework에서 정의하는 API의 정의에 맞게 로봇이 구동할 수 있도록 API의 내용을 각 플랫폼에 맞게 구현하여 클라이언트 측에서 요구한 실제 하드웨어의 제어 및 접근을 실행할 수 있도록 한다.CRIF-Framework, as mentioned, provides a common framework that application developers or robotic hardware developers can use to develop their respective systems. Application developers on the client side can control and access the robot hardware using the interface provided by CRIF-Framework. Robot hardware platform developers on the server side can control the robot according to the API definition defined in CRIF-Framework. In order to run the API, the contents of the API are implemented for each platform so that the client can control and access the actual hardware required.

그림 4에 나타낸 바와 같이 CRIF-Framework는 클라이언트 측과 서버 측에 동시에 위치하고 있으며, Robot API Layer(RAL), API Sync Layer(ASL), Robot API Presentation Layer(RAPL)로 구성되어 있다. 또한, 클라이언트 측에는 RAL과 ASL의 일부가 위치하고 있으며, 서버 측에는 ASL의 일부와 RAPL이 위치하고 있다. 즉, 클라이언트 측의 개발자는 RAL에 접근하여 CRIF-Framework이 지원하는 인터페이스를 이용하며, 서버 측에서는 RAPL에 접근하여 CRIF-Framework에서 지원하는 인터페이스를 이용할 수 있다.As shown in Figure 4, the CRIF-Framework is located on the client side and server side at the same time, and consists of Robot API Layer (RAL), API Sync Layer (ASL), and Robot API Presentation Layer (RAPL). In addition, a part of RAL and ASL are located on the client side, and a part of ASL and RAPL are located on the server side. That is, the developer on the client side can access the RAL and use the interface supported by the CRIF-Framework. On the server side, the developer can access the RAPL and use the interface supported by the CRIF-Framework.

Robot API Layer(RAL)은 응용 프로그램 개발자들이 이용할 수 있는 인터페이스를 제공한다. 로봇의 각 장치에 대한 접근은 오직 RAL에서 제공되는 인터페이스만을 이용함으로써 가능하며, 그 외의 다른 방법에 의한 접근은 불가능하다. 즉, RAL에서는 추상화된 로봇 모델에 대한 접근 및 동작을 위한 접근지점을 제공하는 것으로, 실제 CRIF-Interface에서 정의하고 있는 API의 구현은 RAL에서 이루어지지 않는다. RAL은 응용 프로그램에서 호출된 CRIF-Interface 함수를 ASL로 전달하는 역할만을 담당하며, 실제 CRIF-Interface의 구현은 서버 측의 H/W Dependent API Implementation(HDAI)에서 이루어진다.Robot API Layer (RAL) provides an interface that application developers can use. Access to each device of the robot is possible only by using the interface provided by the RAL. Access by other means is not possible. In other words, the RAL provides an access point for accessing and operating the abstracted robot model. The API defined in the CRIF-Interface is not implemented in the RAL. RAL is only responsible for passing CRIF-Interface function called from application to ASL. Actual implementation of CRIF-Interface is done by H / W Dependent API Implementation (HDAI) at server side.

API Sync Layer (ASL)에서 제공되는 인터페이스는 ASL을 통하여 서버 측에 실제 기능 구현을 위해 마련된 Robot API Presentation Layer에 전달된다. 즉, ASL은 RAL과 RAPL을 연결해 주는 역할을 담당한다. ASL은 2개의 부 계층으로 이루어져 있으며, 각각 클라이언트 측의 RAL과 연결된 계층과 서버 측의 RAPL과 연결된 계층으로 구성된다. 각 부 계층의 역할은 동일하나 그 세부적 기능은 차이가 있다.The interface provided in API Sync Layer (ASL) is delivered to Robot API Presentation Layer prepared for real function on server side through ASL. In other words, ASL is responsible for connecting RAL and RAPL. The ASL consists of two sublayers, each consisting of a layer connected to the RAL on the client side and a layer connected to the RAPL on the server side. The roles of each sub-layer are the same, but the details are different.

클라이언트 측의 RAL에서 호출된 API 함수를 API Encoder를 통하여 서버 측의 API Decoder에 전송하며, 전송된 API 함수에 의해 하드웨어가 동작하고 난 뒤의 반환 값 혹은 로봇 하드웨어의 상태를 나타내는 데이터 값은 서버 측의 Data Encoder에 의해 클라이언트 측의 Data Decoder로 전송된다. 결국, ASL의 기능은 응용 프로그램에서 호출되는 API 함수의 Encode/Decode 기능과 로봇 하드웨어에서 전송되는 데이터의 Encode/Decode 기능을 수행한다.API function called from client RAL is transmitted to API Decoder of server side through API Encoder, and return value after hardware operation by transmitted API function or data value indicating the state of robot hardware It is sent to Data Decoder of client by Data Encoder of. Eventually, the function of ASL performs Encode / Decode function of API function called in application program and Encode / Decode function of data transmitted from robot hardware.

Robot API Presentation Layer(RAPL)은 RAL에서 정의된 API의 실제 구현을 위하여 서버 측의 하드웨어 개발자들이 작성할 하드웨어 Dependent API Implementation(HDAI)과의 연결을 담당한다. 실제적으로는 RAL의 counterpart로의 역할을 하게 되어 구성은 RAL과 동일하다. 차이점은 RAL의 경우 응용 프로그램에서 RAL의 API를 호출하게 되나, RAPL에서는 HDAI에서 구현할 API를 지정해 주는 reference point의 역할을 하게 되어, 실제 API 동작을 위한 코딩 작업은 HDAI에서 이루어진다. 즉, RAPL은 HDAI의 access point로서 역할을 담당하게 된다. 결국, 응용 프로그램 개발측면에서는 RAL을 통하여 CRIF-Interface에 접근할 수 있으며, 하드웨어 개발측면에서는 RAPL을 통하여 CRIF-Interface에 접근할 수 있다. ASL은 RAL과 RAPL를 연결해 주는 역할을 담당하며, 응용 프로그램/Hardware 개발측면에서는 직접 접근이 불가능하다.Robot API Presentation Layer (RAPL) is in charge of the connection with hardware Dependent API Implementation (HDAI) which hardware developers write on server side for actual implementation of API defined in RAL. In practice, it acts as a counterpart of RAL, and the configuration is the same as that of RAL. The difference is that in case of RAL, the application calls RAL's API, but RAPL acts as a reference point that specifies the API to be implemented in HDAI. Coding for actual API operation is done in HDAI. That is, RAPL plays a role as an access point of HDAI. As a result, the CRIF-Interface can be accessed through RAL from the application development side, and the CRIF-Interface can be accessed through the RAPL from the hardware development side. ASL is the link between RAL and RAPL and is not directly accessible from the application / hardware development side.

CRIF-Framework에서 클라이언트와 서버의 연결은 ASL을 통하여 이루어진다. ASL은 API Encoder/Data Decoder로 이루어진 ASL Client와 API Decoder/Data Encoder로 우리어진 ASL Server의 2개의 부 계층으로 구성된다. 클라이언트와 서버의 연결은 API Encoder ↔ API Decoder, Data Encoder ↔ Data Decoder와같이 서로 상응하는 요소에 의하여 이루어진다. 클라이언트 측에서 특정 API를 호출하면 이는 곧 API Encoder를 통하여 서버 측의 API Decoder로 전송되며, 그 API 동작 결과에 따른 반환 값은 서버 측의 Data Encoder를 통하여 클라이언트 측의 Data Decoder로 전송되어 응용 프로그램에 전달된다.In the CRIF-Framework, client and server connections are made through ASL. ASL is composed of two sub-layers of ASL Client consisting of API Encoder / Data Decoder and ASL Server composed of API Decoder / Data Encoder. The connection between client and server is made by corresponding elements such as API Encoder ↔ API Decoder, Data Encoder ↔ Data Decoder. When a specific API is called on the client side, it is sent to API Decoder on the server side through API Encoder, and the return value according to the result of the API operation is sent to the data decoder on the client side through Data Encoder on server side to the application. Delivered.

실제적인 구현에 있어, 2개의 부 계층의 연결은 여러 방식으로 이루어질 수 있다. 각 Encoder/Decoder의 연결은 Socket, COM, CORBA와 같은 방식을 이용할 수 있으며, 클라이언트 또는 서버 측의 운영체제에 따라 표 3의 예와 같이 연결 방식 선정이 이루어질 수 있다. 표 3의 예에서 알 수 있듯이 클라이언트 또는 서버 측의 운영체제에 따라 선택할 수 있는 연결 방식이 결정되며, 운영체제에 의존적인 가능한 연결 방법을 모두 지원해야 한다.In practical implementations, the connection of the two sublayers can be accomplished in several ways. Connection of each Encoder / Decoder can use the same method as Socket, COM, CORBA, and the connection method can be selected as shown in the example of Table 3 according to the operating system of the client or server side. As you can see from the example in Table 3, the choice of connection method depends on the operating system on the client or server side, and it must support all possible connection methods that depend on the operating system.

운영체제operating system 연결방식Connection method 클라이언트Client 서버server 소켓socket COMCOM COBRACOBRA MS WindowsMS Windows MS WindowsMS Windows OO OO OO MS WindowsMS Windows LinuxLinux OO XX OO LinuxLinux MS WindowsMS Windows OO XX OO LinuxLinux LinuxLinux OO XX OO

도 4b를 참조하여, CRIF를 이용한 클라이언트/서버 구조상의 응용프로그램과 로봇간의 처리순서를 살펴보면 다음과 같다.Referring to Figure 4b, look at the processing sequence between the robot and the application program on the client / server structure using the CRIF as follows.

우선, 응용 프로그램에서 로봇을 동작시키기 위하여 RAL에 정의된 API를 호출한다(1). 호출된 API에 대한 정보(함수명, 파라미터 등)를 API Encoder에 전달한다(2). 전달된 API의 정보를 ASL의 연결상태에 따른 규약에 따라 API Decoder로 전달한다. TCP/IP로 연결되었을 경우는 미리 정의된 패킷의 형태로 전달되며, DCOM 혹은 CORBA의 경우 인터페이스의 접근에 따라 이루어진다(3). API Decoder에 전달된 API의 정보에 따라(1)에서 호출된 API와 동일한 API를 RAPL상에서 호출한다(4). RAPL상의 API가 실제 구현되어 있는 HDAI의 API를 호출한다(5). 호출된 HDAI API는 내부적으로 로봇 장치가 이해할 수 있는 명령으로 전환하여 로봇 장치에 전달한다(6). 실행된 결과를 호출된 API의 반환 값으로 연속적으로 전달한다. 이는 (1)에서 호출된 API가 실제로 하드웨어를 동작한 후의 그 결과값을 전달하는 과정에 지나지 않는다. 예로서, 초음파 센서의 값을 읽어오는 API가 호출되어 실제 동작을 한 후, 각 센서로부터 얻어진 거리 값이 이 과정에 의해 응용 프로그램에 전달된다(7).First, in order to operate the robot in the application program, the API defined in the RAL is called (1). Pass information (function name, parameter, etc.) about the called API to API Encoder (2). The delivered API information is delivered to API Decoder according to the protocol according to the connection status of ASL. In case of TCP / IP connection, it is delivered in the form of predefined packet. In case of DCOM or CORBA, it is made according to the interface access (3). According to the information of the API passed to the API Decoder, the same API as the API called in (1) is called in RAPL (4). The API on the RAPL calls the API of the HDAI, which is actually implemented (5). The called HDAI API internally converts the robot device into a command that the robot device can understand and delivers it to the robot device (6). Pass the result as the return value of the called API. This is just a process of passing the result after the API called in (1) actually runs the hardware. As an example, after the API for reading the value of the ultrasonic sensor is called and actually operated, the distance value obtained from each sensor is transmitted to the application program by this process (7).

상기와 같이 정의된 본 발명의 CRIF-Interface 및 CRIF-Framework는 상술한 바와 같이 카메라를 제어하여 영상을 획득하게 되는데, 이를 제어하기 위한 자료구조 및 명령어를 구체적으로 정의하면 다음과 같다.The CRIF-Interface and the CRIF-Framework of the present invention defined as described above obtain an image by controlling a camera as described above. The data structure and command for controlling the same are specifically defined as follows.

● 자료 구조● data structure

struct CameraResolution {struct CameraResolution {

int Hor; 수평해상도를 나타낸다.int Hor; Shows horizontal resolution.

int Ver; 수직해상도를 나타낸다.int Ver; Vertical resolution.

} 카메라 해상도 정보} About Camera Resolution

struct CameraResolutionArray{struct CameraResolutionArray {

int NumberOfMembers; 지원 가능 해상도 개수를 나타낸다.int NumberOfMembers; Indicates the number of resolutions that can be supported.

CameraResolution *Members; 각각의 해상도를 나타낸다.CameraResolution * Members; Each resolution is shown.

} 카메라 해상도 배열리스트} Camera Resolution Array List

struct ZOOM_INFO {struct ZOOM_INFO {

bool is_zoom;bool is_zoom;

int minZoom;int minZoom;

int maxZoom;int maxZoom;

} 카메라에 장착된 줌 구동부의 정보} Information on the zoom drive attached to the camera

● CameraResolutionArray* GetSupprotedResolutions(int nID)● CameraResolutionArray * GetSupprotedResolutions (int nID)

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디를 지정한다.-[in] nID Specifies the camera ID.

(2) 반환값(2) return value

지정된 카메라의 지원가능한 해상도의 리스트를 반환한다. 함수의 동작이 실패하면 null을 반환한다.Returns a list of supported resolutions for the specified camera. If the function fails, it returns null.

● int GetMaxFrameRate(int nID)Int GetMaxFrameRate (int nID)

(1) 매개변수(1) parameter

- nID [in] 카메라 아이디를 지정한다.nID [in] Specifies the camera ID.

(2) 반환값(2) return value

지정된 카메라의 최대 프레임레이트를 반환한다(frame/sec).Returns the maximum frame rate of the specified camera (frame / sec).

● CameraResolution* GetResolution(int nID)● CameraResolution * GetResolution (int nID)

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디를 지정한다.-[in] nID Specifies the camera ID.

(2) 반환값(2) return value

지정된 카메라의 현재 해상도를 반환한다. 함수의 동작이 실패하면 null을 반환한다.Returns the current resolution of the specified camera. If the function fails, it returns null.

● bool SetResolution(int nID, CameraResolution Resolution)Bool SetResolution (int nID, CameraResolution Resolution)

지정된 카메라의 해상도를 설정한다.Sets the resolution of the specified camera.

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디-[in] nID Camera ID

- [in] Resolution 카메라 해상도[in] Resolution Camera resolution

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

● int GetFrameRate(int nID)Int GetFrameRate (int nID)

지정된 카메라의 현재 프레임레이트를 반환한다(frame/sec).Returns the current frame rate of the specified camera (frame / sec).

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디-[in] nID Camera ID

(2) 반환값(2) return value

지정된 카메라의 현재 프레임레이트 (frame/sec).The current frame rate of the specified camera, in frames / sec.

● bool SetFrameRate(int nID, int nRate)Bool SetFrameRate (int nID, int nRate)

지정된 카메라의 프레임레이트를 설정한다(frame/sec).Sets the frame rate of the specified camera (frame / sec).

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디-[in] nID Camera ID

- [in] nRate 프레임 레이트[in] nRate frame rate

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

● Bool StartCapture(int nID)● Bool StartCapture (int nID)

지정된 영상정보 획득을 시작한다.Starts acquisition of the specified video information.

(1) 매개변수 : 없음(1) Parameters: none

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

● Bool StopCapture(int nID)● Bool StopCapture (int nID)

지정된 영상정보 획득을 중지한다.Stop acquiring the specified video information.

(1) 매개변수 : 없음(1) Parameters: none

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

● bool GetRawImage(int nID, char *buffer)Bool GetRawImage (int nID, char * buffer)

지정된 카메라가 획득한 영상을 buffer에 저장하여 반환한다. 영상 정보는 24bit RGB 데이터로 저장된다.Stores the image acquired by the specified camera in the buffer and returns it. Image information is stored as 24bit RGB data.

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디-[in] nID Camera ID

- [out] buffer 영상데이터가 저장될 버퍼-[out] buffer Buffer to save image data

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

● bool GetConpressedImage(int nID, char *buffer)Bool GetConpressedImage (int nID, char * buffer)

지정된 카메라가 획득한 영상을 buffer에 저장하여 반환한다. 영상 정보는 JPEG 형태로 저장된다.Stores the image acquired by the specified camera in the buffer and returns it. Image information is stored in JPEG format.

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디-[in] nID Camera ID

- [out] buffer 영상데이터가 저장될 버퍼-[out] buffer Buffer to save image data

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

● ZOOM_INFO GetCameraZoomInfo(int nID)● ZOOM_INFO GetCameraZoomInfo (int nID)

지정된 카메라의 줌에 관한 정보를 반환한다.Returns information about the zoom of the specified camera.

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디-[in] nID Camera ID

(2) 반환값 : ZOOM_INFO(2) Return Value: ZOOM_INFO

지정된 카메라의 줌 정보Zoom information for the specified camera

● int GetCameraZoom(int nID)Int GetCameraZoom (int nID)

지정된 카메라의 현재 줌 팩터를 얻어온다.Retrieves the current zoom factor for the specified camera.

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디를 지정한다.-[in] nID Specifies the camera ID.

(2) 반환값(2) return value

지정된 카메라의 현재 줌 팩터를 반환한다.Returns the current zoom factor of the specified camera.

● bool ZoomTo(int nID, int nFactor)Bool ZoomTo (int nID, int nFactor)

지정된 카메라를 Zoom하는 동작을 수행한다.Zoom in on the specified camera.

(1) 매개변수(1) parameter

- [in] nID 카메라 아이디를 지정한다.-[in] nID Specifies the camera ID.

- [in] nFactor Zooming할 Factor값을 지정한다.-[in] nFactor Specifies Factor value to zoom.

(2) 반환값(2) return value

함수가 성공적으로 동작하면 true, 실패하면 false를 반환한다.Returns true if the function succeeds, false if it fails.

상기와 같이 정의되는 카메라 제어 인터페이스는 해당로봇에서 영상을 획득하기 위해서 다음과 같은 프로세스를 진행하게 된다.The camera control interface defined as described above proceeds as follows to acquire an image from the robot.

도 5는 본 발명의 일 실시예에 따른 영상 송수신 과정을 나타낸 블록도이다.5 is a block diagram illustrating an image transmission and reception process according to an embodiment of the present invention.

도 5를 참조하면, 본 발명에서 정의된 로봇 공통 프레임워크는 로봇 응용 프로그램(501)과 로봇 추상화 계층(502)으로 구성되는데, 이들은 로봇 공통 인터페이스를 통하여 서로 정보를 주고 받는다. 로봇 응용 프로그램(501)은 영상 기반의 각종 응용 연산을 수행하는데, 로봇 추상화 계층(502)에게 영상 전송을 요구한다(1). 로봇 추상화 계층(502)은 로봇에 탑재된 카메라(503)를 사용하여 영상을 획득하고(2), 획득된 영상을 로봇 공통 프레임워크에 정의한 형태로 변환하여(3), 로봇 응용 프로그램(501)으로 송신하다(4). 로봇 추상화 계층(502)이 전송한 영상을 수신한 로봇 응용 프로그램(501)은 사람 탐지와 같은 응용 연산을 수행한다. 이러한 로봇 응용 프로그램(501)과 로봇 추상화 계층의 영상 송수신(502)은 로봇 공통 인터페이스를 통하여 표준화된 형태로 전송되어, 로봇 응용 프로그램(501)이 하드웨어에 독립적으로 구현될 수 있도록 한다. 이때 로봇 공통 인터페이스는 지역적인 호출에 의하여 수행될 수도 있고, 네트워크를 통한 원격 호출에 의해 수행될 수도 있다.Referring to FIG. 5, the robot common framework defined in the present invention includes a robot application program 501 and a robot abstraction layer 502, which exchange information with each other through a robot common interface. The robot application program 501 performs various image-based application operations, and requests the robot abstraction layer 502 to transmit an image (1). The robot abstraction layer 502 acquires an image using the camera 503 mounted on the robot (2), converts the obtained image into a form defined in the robot common framework (3), and the robot application program 501. (4). The robot application program 501 receiving the image transmitted by the robot abstraction layer 502 performs an application operation such as a person detection. The robot application program 501 and the image transmission / reception 502 of the robot abstraction layer are transmitted in a standardized form through a robot common interface, so that the robot application program 501 can be independently implemented in hardware. In this case, the robot common interface may be performed by a local call or by a remote call through a network.

도 6은 본 발명의 다른 실시예에 따른 로봇에서 연속으로 영상을 획득하는 방법을 나타낸 순서도이다.6 is a flowchart illustrating a method of continuously acquiring an image in a robot according to another exemplary embodiment of the present invention.

도 6을 참조하면, 로봇 응용 프로그램(501)은 영상 데이터를 수신하기 위해서 로봇 추상화 계층(502)에 영상 데이터 전송 요구를 명령한다(2). 상기 영상 데이터 전송 요구 명령을 받은 로봇 추상화 계층(502)은 소정의 카메라(503)에서 현재 영상 데이터를 획득하고 이를 압축한다(3, 4). 상기 압축된 영상 데이터는 상기 로봇 응용 프로그램(501)으로 전송된다(5). 상기 압축된 영상 데이터는 일정한 주기를 가지고 연속적으로 상기 로봇 응용 프로그램(501)으로 전송되는데, 상기 로봇 응용 프로그램(501)은 더 이상의 영상 데이터 수신을 원하지 않을 경우 영상 데이터 전송 중지 명령을 한다(7). 상기 영상 데이터 전송 중지 명령을 수신받은 로봇 추상화 계층(502)은 더 이상의 영상 데이터를 전송하지 않는다.Referring to FIG. 6, the robot application program 501 instructs the robot abstraction layer 502 to transmit an image data request in order to receive the image data (2). The robot abstraction layer 502 receiving the image data transmission request command obtains current image data from a predetermined camera 503 and compresses the current image data (3, 4). The compressed image data is transmitted to the robot application 501 (5). The compressed image data is continuously transmitted to the robot application program 501 at a predetermined period. When the robot application program 501 does not want to receive more image data, the robot image application command stops image data transmission. . The robot abstraction layer 502 having received the image data transmission stop command does not transmit any more image data.

도 7 및 도 8은 본 발명의 일 실시예에 따른 영상 전송 요구 명령 및 영상 전송 중지 명령에 데이터 프레임을 나타낸 것이다7 and 8 illustrate data frames in an image transmission request command and an image transmission stop command according to an embodiment of the present invention.

도 7을 참조하면, 영상 전송 요구 명령은 영상 전송 요구 명령 정보(701), 카메라 ID정보(702), 전송주기(703) 및 콜백 함수 ID 또는 포트번호 정보(704)를 포함한다. 상기 각각의 정보를 포함하기 위한 프레임의 길이는 적어도 4 바이트 이상인 것이 바람직하다. 다만, 상기 영상 요구 전송 명령 정보(701)를 나타내는 프레임의 길이는 가변가능한 것이 바람직하다. 상기 영상 전송 요구 명령 정보(701)는 현재 명령이 영상 전송 요구 명령 정보임을 나타내는 것이다. 상기 카메라 ID(702)는 해당 로봇에 적어도 하나 이상이 구비된 카메라 중 어떠한 카메라에서 영상 데이터를 수신받을지를 결정하는 것이며, 상기 전송주기(703)는 외부에서 획득한 영상 데이터를 어느 정도 시간 간격으로 로봇 응용 프로그램에 전송할지를 결정한다. 상기 영상 전송 요구 명령이 로봇 응용 프로그램에서 전송된 경우 상기 명령을 전송하기 이전에 수행되는 명령을 계속적으로 행하기 위해서 호출함수의 ID를 포함하며, 상기 포트번호는 네트워크를 통하여 해당 로봇이 제어되는 경우 네트워크 주소를 결정하기 위한 정보를 담고 있다.Referring to FIG. 7, the image transmission request command includes image transmission request command information 701, camera ID information 702, a transmission period 703, and a callback function ID or port number information 704. The length of the frame for containing each piece of information is preferably at least 4 bytes. However, it is preferable that the length of the frame indicating the video request transmission command information 701 is variable. The image transmission request command information 701 indicates that the current command is image transmission request command information. The camera ID 702 is to determine which camera among the cameras provided with at least one of the robots to receive the image data, and the transmission period 703 is a time interval for the externally acquired image data. Determines whether to send to the robot application. When the image transmission request command is transmitted from the robot application program includes an ID of a call function to continuously execute a command performed before transmitting the command, and the port number is when the robot is controlled through a network. Contains information for determining the network address.

도 8은 본 발명의 일 실시예에 따른 영상 중지 전송 명령의 데이터 구조이다. 도 8을 참조하면, 상기 영상 중지 전송 명령은 영상 전송 중지 명령임을 나타내는 프레임(801) 및 카메라 ID를 나타내는 프레임(802)을 포함한다. 상기 카메라 ID는(802) 영상 전송을 중지하기 위한 카메라의 ID정보를 포함한다.8 is a data structure of an image stop transmission command according to an embodiment of the present invention. Referring to FIG. 8, the image stop transmission command includes a frame 801 indicating a video transmission stop command and a frame 802 indicating a camera ID. The camera ID 802 includes ID information of a camera for stopping image transmission.

도 9는 본 발명의 일 실시예에 따른 연속 영상 데이터를 송/수신하는 과정을 나타낸 순서도이다.9 is a flowchart illustrating a process of transmitting / receiving continuous image data according to an embodiment of the present invention.

도 9를 참조하면, 로봇 응용 프로그램(501)이 영상 데이터를 연속적으로 얻기 위하여, 로봇 응용 프로그램(501)내에는 비전 처리부(504)와 영상 버퍼(505)와 콜백 함수(Callback Function)(505)가 있다. 비전 처리부(504)는 영상 버퍼(505)내에 영상 데이터가 있으면, 영상 데이터를 읽어와서 얼굴 검출과 같은 비전 처리를 수행하고, 영상 데이터를 지운다. 영상 버퍼(505)는 로봇 추상화 계층(502)이 콜백 함수(506)를 사용하여 전송한 영상 데이터를 저장하여 비전처리부(504)가 영상 처리를 할 수 있도록 영상을 임시적으로 처리하는 역할을 한다. 콜백 함수(506)는 로봇 응용 프로그램 내에 존재하지만, 로봇 추상화 계층(502)에 의해서 실행된다. 콜백 함수(506)는 로봇 추상화 계층(502)이 획득된 영상을 영상 버퍼(505)로 전송하기 위해서 사용된다. Referring to FIG. 9, in order for the robot application program 501 to continuously obtain image data, the robot application program 501 may include a vision processor 504, an image buffer 505, and a callback function 505. There is. If there is image data in the image buffer 505, the vision processor 504 reads the image data, performs vision processing such as face detection, and erases the image data. The image buffer 505 stores the image data transmitted by the robot abstraction layer 502 using the callback function 506 to temporarily process the image so that the vision processor 504 may process the image. The callback function 506 resides in the robotic application but is executed by the robot abstraction layer 502. The callback function 506 is used to send the image obtained by the robot abstraction layer 502 to the image buffer 505.

먼저, 로봇 응용 프로그램(501)이 영상 전송 요구 명령을 로봇 추상화 계층에 전송한다(S901). 이 영상 전송 요구 명령은 카메라 ID와 전송 주기와 콜백함수의 포인터를 포함하고 있다. 카메라 ID는 획득할 카메라의 번호를 가리킨다. 전송 주기는 초당 전송 프레임수를 가리키고, 로봇 추상화 계층이 초당 몇 프레임의 영상을 로봇 응용 프로그램(501)에 전송할지를 영상 전송 요구 명령을 준비한다. 콜백 함수의 포인터는 로봇 추상화 계층이 로봇 응용 프로그램의 콜백 함수를 호출하기 위해서 사용되는 포인터이다.First, the robot application program 501 transmits an image transmission request command to the robot abstraction layer (S901). This video transmission request command includes a camera ID, a transmission period, and a pointer to a callback function. The camera ID indicates the number of the camera to acquire. The transmission period indicates the number of transmission frames per second, and the robot abstraction layer prepares an image transmission request command for how many frames per second the image should be transmitted to the robot application program 501. The pointer of the callback function is the pointer used by the robot abstraction layer to call the callback function of the robot application.

로봇 추상화 계층이 영상 전송 요구 명령을 수신하면(S902), 카메라(503)로부터 영상을 획득(S903)하고 압축(S904)한 후, 콜백 함수를 호출하여 영상을 로봇 응용 프로그램(501)으로 전송하고(S905), 영상 전송 주기를 맞추기 위하여 일정 시간 동안 대기 동작을 수행한다(S906). 이때, 로봇 추상화 계층(502)은 영상 전송 중지 명령을 수신할 때까지, 위의 영상 획득, 압축, 전송의 과정을 반복하여, 로봇 응용 프로그램이 지속적으로 영상을 수신할 수 있도록 한다.When the robot abstraction layer receives an image transmission request command (S902), the image is acquired from the camera 503 (S903), compressed (S904), and then a callback function is called to transmit the image to the robot application 501. In operation S905, the standby operation is performed for a predetermined time in order to match the image transmission period (S906). At this time, the robot abstraction layer 502 repeats the process of acquiring, compressing, and transmitting the above image until the image transmission stop command is received, so that the robot application program can continuously receive the image.

로봇 응용 프로그램(501)이 어떠한 이유로 비전 처리를 종료하고자 하는 경우, 영상 전송 중지 명령을 로봇 추상화 계층(502)에 전송한다(S907). 로봇 추상화 계층(502)이 영상 전송 중지 명령을 수신하면(S907), 위의 영상 획득, 압축, 전송의 과정을 중지하여, 영상 전송 과정을 종료한다.When the robot application program 501 wishes to terminate the vision processing for some reason, the robot application program transmits an image transmission stop command to the robot abstraction layer 502 (S907). When the robot abstraction layer 502 receives the image transmission stop command (S907), the process of acquiring, compressing, and transmitting the above image is stopped to terminate the image transmission process.

상기와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야의 숙련된 당업자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, it has been described with reference to the preferred embodiment of the present invention, but those skilled in the art various modifications and changes of the present invention without departing from the spirit and scope of the present invention described in the claims below I can understand that you can.

상술한 바와 같이 본 발명에 의하면, 로봇 추상화 계층이 연속적으로 영상 데이터를 전송함으로써, 영상 송수신에 의한 시간 지연을 줄일 수 있고, 로봇의 응답 시간이 줄어드는 효과가 있다.As described above, according to the present invention, since the robot abstraction layer continuously transmits image data, it is possible to reduce time delay due to image transmission and reception and to reduce the response time of the robot.

Claims (8)

로봇 공통 프레임워크상에서 카메라 영상을 송수신하는 방법에 있어서,In the method for transmitting and receiving the camera image on the robot common framework, 로봇 응용 프로그램이 로봇 추상화 계층에 영상 데이터 전송을 요구하는 단계;Requesting the image data transmission from the robot application layer to the robot abstraction layer; 상기 영상 데이터 전송을 요구받은 로봇 추상화 계층이 외부 영상 데이터를 획득하는 단계; 및Obtaining external image data by the robot abstraction layer requested to transmit the image data; And 상기 외부에서 획득한 영상 데이터를 상기 로봇 응용 프로그램이 상기 외부 영상 데이터 전송 중지 요청을 하기 전까지 상기 로봇 응용 프로그램으로 전송하는 단계를 포함하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.And transmitting the image data acquired from the outside to the robot application program until the robot application program requests to stop transmitting the external image data. 제 1항에 있어서, 상기 로봇 추상화 계층은 적어도 하나 이상의 카메라를 이용하여 영상 데이터를 획득하는 것을 특징으로 하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.The method of claim 1, wherein the robot abstraction layer acquires image data using at least one or more cameras. 제 1항에 있어서, 상기 로봇 추상화 계층이 상기 로봇 응용 프로그램으로 상기 외부에서 획득한 영상 데이터를 전송할 때에는 압축된 데이터 형식으로 전송하는 것을 특징으로 하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.The method of claim 1, wherein the robot abstraction layer transmits the image data acquired from the outside to the robot application program in a compressed data format. 제 1항에 있어서, 상기 로봇 응용 프로그램이 상기 로봇 추상화 계층에 영상 데이터 전송을 요구하기 위해 전송하는 명령은 영상 전송 요구 명령 프레임, 카메라 ID 프레임, 전송주기 프레임 및 콜백 함수 ID 또는 포트 번호 프레임을 포함하는 것을 특징으로 하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.The method of claim 1, wherein the command transmitted by the robot application program to request image data transmission to the robot abstraction layer includes an image transmission request command frame, a camera ID frame, a transmission period frame, and a callback function ID or port number frame. Camera image transmission and reception method in a robot common framework, characterized in that. 제 1항에 있어서, 상기 로봇 응용 프로그램이 상기 로봇 추상화 계층에 영상 데이터 전송 중지 요청을 하기 위해 전송하는 명령 데이터는 영상 전송 중지 명령 프레임 및 카메라 ID 프레임을 포함하는 것을 특징으로 하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.The robot common framework of claim 1, wherein the command data transmitted by the robot application program to request to stop transmitting image data to the robot abstraction layer includes an image transmission stop command frame and a camera ID frame. How to send and receive camera video. 제 1항에 있어서, 상기 영상 데이터 전송을 요구받은 로봇 추상화 계층이 외부 영상 데이터를 획득하고 이를 상기 로봇 응용 프로그램으로 전송하는 과정은 상기 로봇 응용 프로그램이 외부 영상 데이터 전송 중지 요청하기 전까지 계속해서 반복하는 것을 특징으로 하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.The method of claim 1, wherein the process of acquiring the external image data and transmitting the external image data to the robot application program is repeatedly performed until the robot application program requests to stop transmitting the external image data. Camera image transmission and reception method in the robot common framework, characterized in that. 제 6항에 있어서, 상기 외부에서 획득한 영상 데이터는 일정한 주기를 가지고 상기 로봇 응용 프로그램으로 전송되는 것을 특징으로 하는 로봇 공통 프레임워크에서 카메라 영상 송수신 방법.The method of claim 6, wherein the externally acquired image data is transmitted to the robot application program at a predetermined period. 제 1항에 있어서, 상기 로봇 추상화 계층에서 전송받은 외부에서 획득한 영상 데이터는 영상버퍼에 일시적으로 저장되는 것을 특징으로 하는 로봇 공통 프레 임워크에서 카메라 영상 송수신 방법.The method of claim 1, wherein the externally acquired image data transmitted from the robot abstraction layer is temporarily stored in an image buffer.
KR1020050107671A 2005-11-10 2005-11-10 Method to communicate camera image in robot common framework KR20070050285A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050107671A KR20070050285A (en) 2005-11-10 2005-11-10 Method to communicate camera image in robot common framework
US11/594,929 US20070112462A1 (en) 2005-11-10 2006-11-09 Method for detecting if command implementation was completed on robot common framework, method for transmitting and receiving signals and device thereof
PCT/KR2006/004695 WO2007055528A1 (en) 2005-11-10 2006-11-10 Method for detecting if command implementation was completed on robot common framework, method for transmitting and receiving signals and device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050107671A KR20070050285A (en) 2005-11-10 2005-11-10 Method to communicate camera image in robot common framework

Publications (1)

Publication Number Publication Date
KR20070050285A true KR20070050285A (en) 2007-05-15

Family

ID=38273932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050107671A KR20070050285A (en) 2005-11-10 2005-11-10 Method to communicate camera image in robot common framework

Country Status (1)

Country Link
KR (1) KR20070050285A (en)

Similar Documents

Publication Publication Date Title
US20070112462A1 (en) Method for detecting if command implementation was completed on robot common framework, method for transmitting and receiving signals and device thereof
Paulos et al. Delivering real reality to the world wide web via telerobotics
CN107671857B (en) Three-dimensional simulation platform for operation demonstration and algorithm verification of service robot
Johnson et al. Mobile emulab: A robotic wireless and sensor network testbed
Codd-Downey et al. From ROS to unity: Leveraging robot and virtual environment middleware for immersive teleoperation
TWI540534B (en) Control system and method for virtual navigation
JP2005515903A (en) Abstraction and aggregation within the hardware abstraction layer of robot sensors and actuators
US20050027794A1 (en) Remote control of a wireless device using a web browser
Yu et al. A portable, 3D-printing enabled multi-vehicle platform for robotics research and education
CN108789421A (en) Cloud robot interactive method and cloud robot based on cloud platform and cloud platform
Dumbre et al. Robotic vehicle control using internet via webpage and keyboard
CN112672133A (en) Three-dimensional imaging method and device based on unmanned aerial vehicle and computer readable storage medium
Oyekoya et al. Supporting interoperability and presence awareness in collaborative mixed reality environments
KR20070050287A (en) Method to check excuting command in robot common framework
KR20070050285A (en) Method to communicate camera image in robot common framework
KR20070050281A (en) Method to communicate camera image in robot common framework
Maeyama et al. Remote viewing on the Web using multiple mobile robotic avatars
KR20070050286A (en) Method to process wave data in robot common framework
Miyake et al. Proposal for the Implementation of Spatial Common Ground and Spatial AI using the SSCP (Spatial Simulation-based Cyber-Physical) Model
Dugan Virtual Reality System Telecommunication
Oliveira et al. Modular scalable architecture for the navigation of the atlas autonomous robots
JP2021005347A (en) Spatial reproduction method and spatial reproduction system
Adetoyi et al. Secure Dual-mode Robotic Intrusion Detection System for Remote Surveillance
Bose et al. A two way emergency medical monitoring system with a computing device fitted on a rotating holder
Zanaty et al. 3D visualization for Intelligent Space: Time-delay compensation in a remote controlled environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application