첨부된 도면들을 참조하여 본 발명을 일 실시예에 따라 상세히 설명한다.The present invention will be described in detail with reference to the accompanying drawings in accordance with one embodiment.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited to the embodiments.
본 발명의 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 해당 분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라 질 수 있다. 또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가지는 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다.The terminology used in the specification of the present invention is a general term that is widely used as possible while considering the functions of the present invention, but may vary according to the intention or custom of the person skilled in the art or the emergence of new technology. . In addition, in certain cases, there is a term arbitrarily selected by the applicant, and in this case, the meaning of the term will be described in the corresponding description of the invention. Therefore, it is to be understood that the terminology used herein is to be interpreted based on the actual meaning of the term and the contents throughout the specification, rather than simply on the name of the term. For example, certain shapes, structures, and characteristics described herein may be embodied in other embodiments without departing from the spirit and scope of the invention with respect to one embodiment.
나아가, 도면들 중 참조번호 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.Furthermore, it should be noted that reference numerals and like elements among the drawings are denoted by the same reference numerals and symbols as much as possible even though they are displayed on different drawings. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
따라서 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서 동일한 부호는 동일한 구성 요소를 나타낸다.The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled. Like reference numerals in the drawings refer to the same or similar functions throughout the several aspects. Like reference numerals in the drawings denote like elements.
이하에서는, 첨부된 도면을 참조하여 이동 로봇을 원격으로 제어하는 원격 제어 장치, 원격 통신 시스템 및 원격 통신 방법을 후술하는 실시예들에 따라 구체적으로 설명하도록 한다. 예컨대, 이동 로봇은 사용자의 명령에 따라 자체적으로 움직이며 동작하고, 청소 및 주행에 관련된 동작을 수행하는 청소 로봇으로 구현되는 로봇일 수 있다. 또한, 제어 장치는 원격 서비스 시스템을 통해 원격 청소 또는 원격 주행 등과 관련된 사용자 명령을 받는 사용자 단말기로서 사용자가 사용할 수 있는 단말장치이고, 무선 통신 모듈을 포함하는 휴대폰, 스마트폰, 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 넷북, 태블릿 등을 포함하여, 다양한 형태로 마련될 수 마련될 수 있고, 본 실시예에서는"사용자 단말"과 혼용된다.Hereinafter, a remote control apparatus, a remote communication system, and a remote communication method for remotely controlling a mobile robot will be described in detail with reference to the accompanying drawings. For example, the mobile robot may be a robot implemented as a cleaning robot that moves and operates itself according to a user's command, and performs an operation related to cleaning and driving. In addition, the control device is a terminal device that can be used by a user as a user terminal receiving user commands related to remote cleaning or remote driving through a remote service system, and includes a mobile communication module, a mobile phone, a smartphone, and a laptop computer. , Digital broadcasting terminal, PDA (Personal Digital Assistants), PMP (Portable Multimedia Player), navigation, netbooks, tablets, etc., can be provided in various forms, in the present embodiment mixed with "user terminal" do.
이동로봇(2)는 예를 들어, 청소로봇, 병원 서비스 로봇, 물류 서비스 로봇, 군사용 로봇, 산업용 로봇으로 예시될 수 있으며 로봇의 종류에 제한은 없다. 다만, 아래의 실시예에서는 대표적인 이동 로봇인 청소 로봇을 위주로 설명한다.The mobile robot 2 may be exemplified as, for example, a cleaning robot, a hospital service robot, a logistics service robot, a military robot, or an industrial robot, and there is no limitation on the type of robot. However, in the following embodiments, the cleaning robot, which is a representative mobile robot, will be described.
이동로봇(2)는 주변 상황을 감지하는 센서부와 이동을 위한 구동부와 임베디드 프로세서(embedded processor)를 갖추어 이동로봇(2)의 주변의 상황을 파악하고 이에 맞는 적절한 동작을 결정하여 자율적으로 수행한다. 즉, 사용자의 음성이나 기타 명령을 인식하여 사용자의 요구를 판단하고, 이에 대응하는 적절한 동작을 수행할 수 있다.The mobile robot 2 is equipped with a sensor unit for detecting a surrounding situation, a driving unit for moving, and an embedded processor to grasp the surrounding situation of the mobile robot 2 and determine an appropriate operation according to the autonomous operation. . That is, the user's voice or other command may be recognized to determine the user's request, and the corresponding operation may be performed.
또한, 이동로봇(2)은 네트워크를 통해 제어장치(1)와 연결되며, 제어장치(1)로부터의 원격제어를 받아 특정 동작을 수행할 수 있다. 이때, 이동로봇(2)은 센서부를 통해 감지되는 상황정보를 제어장치(1)로 전달하고, 제어장치(1)가 모니터링한 상황 정보에 기초하여, 결정한 동작에 대한 원격제어 명령 신호를 수신하여 이를 수행할 수 있다.In addition, the mobile robot 2 is connected to the control device 1 via a network, and may receive a remote control from the control device 1 to perform a specific operation. At this time, the mobile robot 2 transmits the situation information detected through the sensor unit to the control device 1 and receives a remote control command signal for the determined operation based on the situation information monitored by the control device 1. This can be done.
즉, 이동로봇(2)은 사용자의 요구에 따라 자체 프로세서를 이용한 자율모드(automatic control mode)에서 원격제어가 가능한 네트워크 모드(networked control mode)로 제어 모드를 전환할 수 있다.That is, the mobile robot 2 may switch the control mode from the automatic control mode using its own processor to the networked control mode that can be remotely controlled according to the user's request.
이동로봇(2)은 인터넷을 비롯한 유/무선 네트워크를 통해 제어장치(1)와 상호 연결되며, 게이트웨이나 고속의 인터넷 액세스를 제공하는 액세스 포인트를 이용하여 집이나 사무실과 같은 공간에 대한 보안 또는 인증을 제공할 수 있다.The mobile robot 2 is interconnected with the control device 1 through wired / wireless networks including the Internet, and secures or authenticates a space such as a home or office by using a gateway or an access point providing high-speed Internet access. Can be provided.
여기서, 본 발명에 일 실시예에 따라 제어 장치(1)와 이동로봇(2)이 상호 연결을 하기 위해, 공유기 및 외부 서버를 이용할 수 있다.Here, according to an embodiment of the present invention, in order for the control device 1 and the mobile robot 2 to interconnect with each other, a router and an external server may be used.
공유기는 집으로 들어오는 인터넷 라인에 연결하여, 무선 신호로 송출하면서, 복수개의 소프트웨어 장치가 하나의 인터넷 라인을 공유해, 동시에 인터넷 접근이 가능하게 하는 네트워크 기기이다. 공유기는 AP(Access Point)로서, 일정 거리의 무선 통신 가능 영역에서 무선 통신을 수행하여, 서비스 로봇(2)을 네트워크에 연결하게 한다.The router is a network device that connects to an Internet line coming into the house and transmits it as a wireless signal, thereby allowing a plurality of software devices to share one Internet line and to simultaneously access the Internet. The router is an access point (AP), and performs wireless communication in a wireless communication enabled area of a certain distance, thereby connecting the service robot 2 to the network.
본 발명의 일 실시예에 따르는 서버는 정보를 제공하는 제어 장치(1)와 이동 로봇(2)이 사이에 위치하여 사용자가 요구한 정보를 대신하여 가져와 이를 사용자에게 전달하고, 또, 사용자가 제공하는 정보를 이동 로봇(2)에게 전달하며, 해당 정보를 일시적으로 보관하여, 사용자가 정보를 재차 요구할 때, 다시 접속하지 않고도 해당 정보를 사용자에게 신속하게 전달해 주는 중계서버 또는 프록시서버(Proxy Server)로 마련될 수 있다.The server according to an embodiment of the present invention is located between the control device 1 for providing the information and the mobile robot 2 is located in place of the information requested by the user and delivers it to the user, and also provided by the user A relay server or proxy server that delivers the information to the mobile robot 2 and temporarily stores the information so that when the user requests the information again, the information is quickly delivered to the user without re-connection. It can be prepared as.
또 다른 일 실시예에 따른 서버는 이동 로봇(2)을 제공하는 회사에서 운영하는 것으로써, 네트워크를 통해 복수개의 이동 로봇(2)과 연결되어 있으며, 이동 로봇(2)은 복수개의 이동 로봇(2)의 IP 주소와 시리얼 번호, 아이디 및 비밀번호를 저장할 수 있다. 따라서, 사용자가 제어 장치(1)를 통해 아이디와 비밀번호를 입력하면, 이동 로봇(2)은 그 아이디와 비밀번호에 해당하는 이동로봇(2)의 IP 주소를 찾고, 그 주소를 갖는 로봇과 접속할 수 있다. In another embodiment, the server is operated by a company providing a mobile robot 2, and is connected to a plurality of mobile robots 2 through a network, and the mobile robot 2 includes a plurality of mobile robots ( 2) You can save IP address, serial number, ID and password. Therefore, when the user inputs the ID and password through the control device 1, the mobile robot 2 can find the IP address of the mobile robot 2 corresponding to the ID and password, and can connect with the robot having the address. have.
또한, 이동로봇(2)을 원격 제어하기 위한 프로그램은 이동로봇과 원격제어장치 각각에 설치될 수 있다. 제어 장치(1)는 설치된 프로그램에 의하여 정의된 동작에 따라 네트워크를 통해 이동로봇(2)에 접속하고, 이동로봇(2)을 제어할 수 있는 화면을 제어 장치(1)의 사용자 인터페이스부(100)에 출력한 후, 사용자 지시를 입력 받아, 사용자 지시를 이동 로봇에 전송하는 방식으로 이동 로봇을 제어할 수 있다.In addition, a program for remotely controlling the mobile robot 2 may be installed in each of the mobile robot and the remote control device. The control device 1 connects to the mobile robot 2 via a network in accordance with an operation defined by an installed program, and displays a screen for controlling the mobile robot 2 in the user interface unit 100 of the control device 1. After outputting), the mobile robot can be controlled by receiving a user's instruction and transmitting the user's instruction to the mobile robot.
일 예로, 이동 로봇(2)과 제어 장치(1)가 처음에는 서버에 연결되어, 상대의 식별 정보 및 상대의 네트워크 상의 위치 정보를 얻은 후, 서버와는 별개로 상호 연결을 이룰 수 있다.For example, the mobile robot 2 and the control device 1 may be initially connected to a server to obtain identification information of the other party and location information on the other party's network, and then form a mutual connection separately from the server.
보다 상세하게는, 이동 로봇(2)이 제어 장치(1)와 네트워크 상에서 연결되기 위해서는 네트워크 상에서 고정된 네트워크 주소를 가지고 있는 중계 서버가 필요하다. 제어 장치(1)는 중계 서버 장치에 연결하여, 스스로에 대한 필요한 정보를 획득한다. 이동 로봇(2)과 제어 장치(1)는 실시간 영상, 음성 정보와 같은 대용량의 정보를 교환한다. 만일 이동 로봇(2)과 제어 장치(1)가 다수일 경우, 모든 정보가 중계 서버 장치를 통해 교환된다면 고성능의 서버 장치 및 대용량의 네트워크 대역폭이 필요하며, 이는 곧 비용의 증가로 이어진다.More specifically, in order for the mobile robot 2 to be connected to the control device 1 on the network, a relay server having a fixed network address on the network is required. The control device 1 connects to the relay server device to obtain necessary information about itself. The mobile robot 2 and the control device 1 exchange a large amount of information such as real time video and audio information. If the mobile robot 2 and the control device 1 are plural, high performance server devices and large network bandwidths are required if all the information is exchanged through the relay server device, which leads to an increase in cost.
따라서, 이동 로봇(2)과 제어 장치(1)는 처음에는 중계 서버 장치에 연결하여, 상대의 식별 정보 및 상대의 네트워크 상의 정보를 얻은 후, 중계 서버 장치와는 별개로 상호 연결을 이루는 동등 계층간 연결(peer to peer connection)을 하여, 중계 서버 장치와는 별도로 스스로의 네트워크 상의 위치 정보를 얻기 위한 STUN(Session Traversal Utilities for NAT) 서버와 신호 처리 장치(1)와 서비스 로봇(2) 두 장치간의 네트워크 연결 경로를 찾기 위해 ICE(Interactive Connectivity Establishment) 프로토콜(protocol)을 통해 통신 및 조정을 수행하는 ICE 프레임 네트워크를 이용할 수 있다.Therefore, the mobile robot 2 and the control device 1 are initially connected to the relay server device to obtain the partner's identification information and the information on the partner's network, and then form an interconnection layer separately from the relay server device. Two devices, a Session Traversal Utilities for NAT (STUN) server, a signal processing device (1) and a service robot (2), for peer to peer connection to obtain location information on its own network separately from the relay server device. An ICE frame network that performs communication and coordination through an ICE (Interactive Connectivity Establishment) protocol can be used to find a network connection path.
도1은 본 발명의 일 실시예에 따른 이동 로봇을 원격으로 제어 하기 위한 원격 통신 시스템을 도시한 도면이다.1 is a diagram illustrating a remote communication system for remotely controlling a mobile robot according to an embodiment of the present invention.
도1을 참고하면, 원격 통신 시스템은 이동 로봇(이하, "청소 로봇")을 원격으로 제어하는 제어 장치(1) 및 청소 로봇(2)을 포함한다. 보다 상세하게 설명하면, 본 발명에 따른 제어 장치(1)는 사용자 인터페이스부(100), 프로세서(200), 저장부(미도시), 송수신부(400), 출력부(500) 및 연결 관리자(600)를 포함한다.Referring to FIG. 1, a telecommunications system includes a control device 1 and a cleaning robot 2 for remotely controlling a mobile robot (hereinafter referred to as a “cleaning robot”). In more detail, the control device 1 according to the present invention includes a user interface unit 100, a processor 200, a storage unit (not shown), a transceiver unit 400, an output unit 500, and a connection manager ( 600).
사용자 인터페이스부(100)는 사용자 메시지를 입력받는다. 일 예로, 사용자 인터페이스부(100)는 청소로봇(2)의 주행영역과 관련된 맵(map)을 표시하고, 청소로봇(2)의 동작과 관련된 사용자 메시지를 입력 받음으로써, 입력부(110) 및 디스플레이부(120)를 더 포함하며, 청소 로봇(2)의 제어를 위한 사용자 명령을 위한 메시지를 입력 받고, 청소 로봇(2)의 각종 정보를 표시할 수 있다.The user interface unit 100 receives a user message. For example, the user interface unit 100 displays a map related to the driving area of the cleaning robot 2 and receives a user message related to the operation of the cleaning robot 2, thereby receiving the input unit 110 and the display. The apparatus may further include a unit 120, and receive a message for a user command for controlling the cleaning robot 2, and display various information of the cleaning robot 2.
입력부(110)는 터치와 같은 사용자의 명령을 입력 받기 위한 것으로서, 예를 들어 같이 터치 입력을 위한 GUI(Graphical User interface), 내지는 터치 입력을 위한 소프트웨어를 포함하는 터치 패널로 예시될 수 있다. 터치 패널은 디스플레이부(120)와 상호 레이어 구조를 이루는 형태로 구현될 수 있다. 입력부(110)는 이러한 터치 패널 형태뿐만 아니라 사용자의 입력을 위해 각종 버튼이나 스위치, 페달(pedal), 키보드, 마우스, 트랙볼(track-ball), 각종 레버(lever), 핸들(handle)이나 스틱(stick) 등과 같은 하드웨어적인 장치의 형태로 구현될 수 있다.The input unit 110 is for receiving a command of a user such as a touch, and may be illustrated as, for example, a graphical user interface (GUI) for touch input, or a touch panel including software for touch input. The touch panel may be implemented in a form of a layer structure with the display unit 120. The input unit 110 may not only form a touch panel but also various buttons, switches, pedals, keyboards, mice, track-balls, various levers, handles, or sticks for user input. It can be implemented in the form of a hardware device such as a stick).
디스플레이부(120)는 청소로봇(2)으로부터 전달 받은 맵을 시각적인 화면을 통해 사용자에게 제공한다. 또한, 디스플레이부(120)는 청각적인 형태의 정보를 스피커를 통해 사용자에게 제공할 수도 있다. 특히, 디스플레이부(120)는 일반적으로 액정 터치 패널과, 상기 터치 패널을 구동하기 위한 구동부를 포함할 수 있으나, 이에 제한되지는 않는다. 디스플레이부(120)는 프로세서(200)로부터의 신호에 따른 맵 내지는 정보를 화면에 표시할 수 있다. The display unit 120 provides the map received from the cleaning robot 2 to the user through a visual screen. In addition, the display 120 may provide the user with the information in an auditory form through the speaker. In particular, the display unit 120 may generally include a liquid crystal touch panel and a driving unit for driving the touch panel, but is not limited thereto. The display 120 may display a map or information according to a signal from the processor 200 on the screen.
저장부(미도시)는 청소 로봇(2)의 동작과 관련된 사용자 명령인 사용자 메시지 및 사용자 메시지에 따른 청소 로봇(2)으로부터 응답된 응답메시지를 포함하는 데이터를 저장한다. 본 발명의 일 실시예에 따른 저장부(미도시)는 캐시(cache)이며, 상기 저장부는 제1 캐시(310) 및 제2 캐시(320)를 더 포함한다.The storage unit (not shown) stores data including a user message, which is a user command related to the operation of the cleaning robot 2, and a response message responded by the cleaning robot 2 according to the user message. A storage unit (not shown) according to an embodiment of the present invention is a cache, and the storage unit further includes a first cache 310 and a second cache 320.
제1 캐시(310)는 사용자 메시지를 정렬하여 저장하는 저장부이고, 제2 캐시(320)는 사용자 메시지에 따라 청소 로봇(2)이 응답한 응답 메시지를 저장하는 저장부이다. 보다 상세하게는, 제1 캐시(310) 및 제2 캐시(320)는 메시지 별로 각각 저장되는 공간이 마련되어 있다. 예를 들어, 제1 캐시(310) 및 제2 캐시(320)에는 로봇 상태 정보, 청소 일정 정보, 맵 정보, 청소 집중 영역 정보, 청소 회피 영역 정보 및 위치 정보 등으로 구분된 공간이 마련된다.The first cache 310 is a storage unit for sorting and storing user messages, and the second cache 320 is a storage unit for storing a response message responded by the cleaning robot 2 according to the user message. More specifically, the first cache 310 and the second cache 320 is provided with a space for storing each message. For example, the first cache 310 and the second cache 320 are provided with spaces divided into robot status information, cleaning schedule information, map information, cleaning concentration area information, cleaning avoidance area information, location information, and the like.
일 예로, 메시지는 메시지 형식의 변경 이력을 알 수 있는 버전, 메시지의 크기 값, 메시지가 생성된 시각을 담는 타임스탬프, 사용자의 명령 타입을 구분하기 위한 제1 식별자, 메시지의 생성 순서인 시퀀스(sequence) 번호, 요청과 응답 메시지를 구분하기 위한 제2 식별자를 포함하고, 제1 식별자 및 제2 식별자에 따른 파라미터들을 포함하는 구조를 포함할 수 있다.For example, a message may include a version indicating a change history of a message format, a size value of a message, a timestamp containing a time when a message is generated, a first identifier for distinguishing a user's command type, and a sequence of generating a message. sequence), a second identifier for distinguishing a request and a response message, and a structure including parameters according to the first identifier and the second identifier.
제1 캐시(310)는 네트워크 연결 상태가 실시간으로 통신이 가능하지 않은 경우에 사용자 메시지가 입력되면, 입력된 사용자 메시지를 상술한 바와 같은 구조들 중 적어도 하나에 따라 구분하여 정렬된 형태로 저장한다.When the user message is input when the network connection status is not possible in real time, the first cache 310 stores the input user message in a sorted form according to at least one of the structures described above. .
제2 캐시(320)는 네트워크 연결 상태가 실시간으로 통신이 가능하지 않은 경우에 프로세서(200)가 불러올 수 있는 데이터를 저장하는 저장부로서, 실시간으로 통신이 가능한 경우에 응답 메시지를 저장하는 공간이다.The second cache 320 is a storage unit that stores data that can be retrieved by the processor 200 when the network connection state is not possible in real time, and stores a response message when communication is possible in real time. .
프로세서(200)는 청소 로봇(2)과 통신하기 위해 이용하는 네트워크 연결 상태에 따라 미리 저장되어 사용자의 요청에 응답하는 제1 데이터를 제공하기 위한 제1 제어 신호와 청소 로봇(2)으로부터 수신되어 사용자 요청에 응답하는 제2 데이터를 제공하기 위한 제2 제어 신호를 생성한다. 여기서, 제1 데이터는 현재의 네트워크 상태가 실시간으로 통신 가능한 제2 통신모드일 때, 청소 로봇(2)으로부터 수신 받아 미리 저장한 응답메시지이고, 제2 데이터는 제1 통신 모드일 때, 청소 로봇(2)으로부터 실시간으로 수신된 응답메시지이다. 또한, 제1 제어 신호는 실시간으로 통신이 가능하지 않은 경우인 제2 통신 모드에 생성하는 신호이고, 제2 제어 신호는 실시간으로 통신이 가능한 경우인 제1 통신 모드에 생성하는 신호이다. 예컨대, 여기서 제2 데이터는 청소 일정 목록, 청소 로봇(2)으로부터 생성된 지도 정보 및 청소 로봇(2)이 동작을 완료한 영역 정보 등을 포함할 수 있다.The processor 200 is received from the cleaning robot 2 and a first control signal for providing first data that is stored in advance according to a network connection state used for communicating with the cleaning robot 2 and responds to a user's request. Generate a second control signal for providing second data in response to the request. Here, the first data is a response message received from the cleaning robot 2 and stored in advance when the current network state is the second communication mode capable of communicating in real time, and the second data is the cleaning robot when the first data is in the first communication mode. This is a response message received in real time from (2). The first control signal is a signal generated in the second communication mode when communication is not possible in real time, and the second control signal is a signal generated in the first communication mode when communication is possible in real time. For example, the second data may include a cleaning schedule list, map information generated from the cleaning robot 2, and area information on which the cleaning robot 2 has completed its operation.
또한, 프로세서(200)는 상기 데이터를 저장부(미도시)에 저장할 때, 상술한 바와 같이 메시지가 포함하고 있는 구조에 따라 분류하여 정렬하여 저장한다.In addition, when storing the data in the storage unit (not shown), the processor 200 sorts and stores the data according to the structure included in the message as described above.
연결 관리자(600)는 사용자 메시지를 송신하거나 응답 메시지를 수신하는 시간을 기준으로 현재의 네트워크 연결 상태가 실시간으로 통신이 가능한 상태인지 여부에 따라, 상기 현재의 네트워크 연결 상태가 실시간으로 통신 가능한 제1 통신 모드인지, 아니면 실시간으로 통신이 가능하지 않은 제2 통신 모드인지 여부를 판단한다. The connection manager 600 determines whether the current network connection state can communicate in real time according to whether the current network connection state can communicate in real time based on a time for transmitting a user message or receiving a response message. It is determined whether the communication mode or the second communication mode in which communication is not possible in real time.
연결 관리자(600)는 현재의 네트워크 연결 상태가 실시간으로 통신이 가능하면 제1 통신 모드로 판단하고, 현재의 네트워크 연결 상태가 실시간으로 통신이 가능하지 않다면 제2 통신 모드로 판단한다.The connection manager 600 determines the first communication mode if the current network connection state is possible in real time, and determines the second communication mode if the current network connection state is not possible in real time.
일 예로, 연결 관리자(600)는 청소 로봇(20)의 네트워크 통신을 위한 소켓(socket)이 네트워크에 접속이 안되는 경우, 소켓(socket)으로부터 끊김 이벤트를 수신하는 경우 및 프로세서(200)로부터 생성된 제어 신호를 기 설정된 횟수 이상 청소 로봇(2)과 송수신하지 못하는 경우 중 적어도 하나인 경우 현재의 네트워크 연결상태가 실시간으로 통신이 가능하지 않은 제2 통신 모드로 판단한다. 상기 기 설정된 횟수는 사용자에 의해 미리 설정된 정해진 횟수 이상 메시지를 송수신하지 못하는 경우를 의미한다. For example, the connection manager 600 is generated when the socket for network communication of the cleaning robot 20 is not connected to the network, when receiving a disconnect event from the socket, and from the processor 200. In the case where at least one of the control signals cannot be transmitted to or received from the cleaning robot 2 more than a predetermined number of times, it is determined that the current network connection state is a second communication mode in which communication is not possible in real time. The predetermined number of times refers to a case in which a message cannot be transmitted or received more than a predetermined number set by a user.
송수신부(400)는 연결 관리자(600)로부터 네트워크 연결 상태가 제1 통신모드로 판단되면, 프로세서(200)로부터 생성된 사용자 메시지를 포함하는 제어 신호를 네트워크를 통해 청소로봇(2)으로 송신하고, 청소로봇(2)으로부터 응답된 응답메시지를 포함하는 신호를 수신한다.When the network connection state is determined as the first communication mode from the connection manager 600, the transceiver 400 transmits a control signal including a user message generated from the processor 200 to the cleaning robot 2 through the network. , Receives a signal including a response message from the cleaning robot (2).
이를 위해, 송수신부(400)는 무선 인터넷 모듈, 근거리 통신 모듈, 이동통신 모듈 등 다양한 통신 모듈을 포함할 수 있다.To this end, the transceiver 400 may include various communication modules, such as a wireless Internet module, a short-range communication module, a mobile communication module.
무선 인터넷 모듈은 무선 랜(Wireless LAN; WLAN), 와이파이(Wi-Fi), Wibro(Wireless broadband), Wimax (World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 등과 같은 통신 프로토콜에 따라 외부 네트워트에 연결되어 통신을 수행하는 모듈을 의미한다.The wireless Internet module can be connected externally according to communication protocols such as Wireless LAN (WLAN), Wi-Fi, Wireless broadband, Wimax (World Interoperability for Microwave Access), and High Speed Downlink Packet Access (HSDPA). The module is connected to the network and performs communication.
근거리 통신 모듈은 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, Infrared Data Association), UWB(Ultra Wideband), 지그비(ZigBee) 등과 같은 근걸 통신 방식에 따라, 근거리에 위치한 외부 기기와 통신을 수행하기 위한 모듈을 의미한다.The short-range communication module is connected to external devices located in close proximity according to near field communication schemes such as Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. It means a module for performing communication.
이동 통신 모듈은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신 망에 접속하여 통신을 수행하는 모듈을 의미한다.The mobile communication module refers to a module that performs communication by accessing a mobile communication network according to various mobile communication standards such as 3rd generation (3G), 3rd generation partnership project (3GPP), long term evolution (LTE), and the like.
다만, 이에 한정되는 것은 아니며, 청소로봇(2)와 통신을 수행할 수 있다면, 송수신부(400)는 상술한 바 외에 다른 형태의 통신 모듈을 채용할 수도 있다.However, the present invention is not limited thereto. If communication with the cleaning robot 2 is possible, the transceiver 400 may employ a communication module of another type in addition to the above.
출력부(500)는 송수신부(400)로부터 수신된 청소로봇(2)이 응답한 응답메시지를 사용자 인터페이스부(100)로 출력한다. The output unit 500 outputs the response message that the cleaning robot 2 received from the transceiver 400 to the user interface unit 100.
본 발명의 일 실시예에 따른 청소 로봇(2)은 네트워크 연결 상태가 실시간으로 통신이 가능한 제1 통신 모드인 경우, 제어 장치(1)로부터 생성된 제어신호를 전달받아, 제어신호에 따라 청소 및 주행을 수행하고, 사용자 메시지에 따라 청소 및 주행에 관련되어 응답하는 응답 메시지를 포함하는 응답신호를 생성하여 제어장치(1)로 전송한다. 또 다른 일 예로서, 청소로봇(2)는 제어 장치(1)로부터의 원격 제어 신호에 응답하고, 이에 따른 동작을 수행하며, 주행중인 공간에 대한 맵을 생성하여 외부의 공유기를 통해, 상기 제어 장치(1)로 전송한다. 보다 상세하게는, 청소로봇(2)은 유선 또는 무선 공유기에 연결하기 위한 네트워크 어뎁터(adapter)를 포함할 수 있다. 일반적으로 네트워크 어뎁터는 기존의 무선 공유기에 연결하는 클라이언트 모드로 작동하나, 필요에 따라서 무선 공유기의 역할인 Soft AP 또는 infrastructure mode를 할 수 있다. 따라서 청소 로봇(2)에서 특정 버튼을 누르면 청소 로봇(2)은 공유기의 역할을 수행하고, 제어 장치(1)는 청소로봇(2)의 공유기에 연결하여 통신을 수행한다. 이 때, 제어 장치(1)는 청소로봇(2)이 연결되어야 할 기존의 공유기 정보 즉, SSID, 보안 프로토콜, 보안 알고리즘 및 키 정보를 청소로봇(2)에 전달하고, 청소로봇(2)은 정보를 전달받은 후, 공유기의 역할을 중지하고 전달받은 정보를 바탕으로 기존의 공유기에 연결할 수 있다.The cleaning robot 2 according to an embodiment of the present invention receives a control signal generated from the control device 1 when the network connection state is a first communication mode capable of communicating in real time, and cleans according to the control signal. The vehicle generates a response signal including a response message responsive to cleaning and driving according to a user message, and transmits the response signal to the controller 1. As another example, the cleaning robot 2 responds to a remote control signal from the control device 1, performs an operation according to the above, and generates a map for the space in which the robot is running, through an external router, to control the control. To the device 1. More specifically, the cleaning robot 2 may include a network adapter for connecting to a wired or wireless router. In general, the network adapter operates in a client mode that connects to an existing wireless router. However, the network adapter may have a soft AP or an infrastructure mode, which is a role of the wireless router. Therefore, when a specific button is pressed on the cleaning robot 2, the cleaning robot 2 performs a role of a router, and the control device 1 connects to a router of the cleaning robot 2 to perform communication. At this time, the control device 1 transmits the existing router information to which the cleaning robot 2 should be connected, that is, SSID, security protocol, security algorithm, and key information to the cleaning robot 2, and the cleaning robot 2 After receiving the information, you can stop the role of the router and connect to the existing router based on the received information.
도2는 본 발명의 일 실시예에 따른 제1 통신 모드인 경우를 도시한 도면이다.2 is a diagram illustrating a case of a first communication mode according to an embodiment of the present invention.
사용자 인터페이스부(100)로부터 사용자 메시지가 입력되면, 입력부(110)는 사용자 메시지를 프로세서(200)로 전달한다. 이와 동시에, 연결 관리자(600)는 현재의 네트워크 연결 상태가 실시간으로 통신이 가능한 상태인지 통신이 가능하지 않은 상태인지 판단된 결과를 프로세서(200)에 전달한다.When a user message is input from the user interface unit 100, the input unit 110 transmits the user message to the processor 200. At the same time, the connection manager 600 transmits a result of determining whether the current network connection state is in a state capable of real time communication or a state in which communication is not possible to the processor 200.
프로세서(200)는 연결 관리자(600)로부터 전달받은 결과가 통신 가능한 제1 통신 모드이면, 사용자 메시지 및 응답 메시지를 포함하는 데이터를 청소로봇(2)과 실시간으로 송수신한다. 이 때, 프로세서(200)는 제1 통신 모드 시, 청소 로봇(2)으로부터 응답 메시지가 수신되었을 때, 수신된 응답 메시지를 제2 캐시(320)에 저장한다. 보다 상세하게는, 제2 캐시(320)는 응답 메시지에 포함된 제2 식별자를 구분하여, 제2 캐시(320) 내부에 응답 메시지에 해당하는 정보 공간으로 해당 메시지에 포함된 적어도 하나의 파라미터를 고려하여 저장한다.The processor 200 transmits / receives data including a user message and a response message to the cleaning robot 2 in real time when the result received from the connection manager 600 is a first communication mode in which communication is possible. At this time, when the response message is received from the cleaning robot 2 in the first communication mode, the processor 200 stores the received response message in the second cache 320. More specifically, the second cache 320 classifies the second identifier included in the response message, and stores at least one parameter included in the message in an information space corresponding to the response message in the second cache 320. Save it in consideration.
송수신부(400)로부터 응답 메시지를 전달 받고, 제2 캐시(320)로 저장을 완료한 프로세서(200)는 출력부(500)로 응답 메시지를 전달한다. 출력부(500)는 전달받은 응답 메시지를 디스플레이부(120)로 출력하여, 사용자는 디스플레이부(120)의 화면을 통해 청소로봇(2)으로부터 응답된 정보를 확인한다.The processor 200 receiving the response message from the transceiver 400 and completing the storage in the second cache 320 transmits the response message to the output unit 500. The output unit 500 outputs the received response message to the display unit 120, so that the user checks the response information from the cleaning robot 2 through the screen of the display unit 120.
도3은 본 발명의 일 실시예에 따른 제2 통신 모드인 경우를 도시한 도면이다.3 is a diagram illustrating a case of a second communication mode according to an embodiment of the present invention.
사용자 인터페이스부(100)로부터 사용자 메시지가 입력되면, 입력부(110)는 사용자 메시지를 프로세서(200)로 전달한다. 이와 동시에, 연결 관리자(600)는 현재의 네트워크 연결 상태가 실시간으로 통신이 가능한 상태인지 통신이 가능하지 않은 상태인지 판단된 결과를 프로세서(200)에 전달한다.When a user message is input from the user interface unit 100, the input unit 110 transmits the user message to the processor 200. At the same time, the connection manager 600 transmits a result of determining whether the current network connection state is in a state capable of real time communication or a state in which communication is not possible to the processor 200.
프로세서(200)는 연결 관리자(600)로부터 전달받은 결과가 통신 가능하지않은 제2 통신 모드이면, 사용자 메시지를 제1 캐시(310)에 정렬하여 저장하고, 현재 시점으로부터 이전 시점에 발생했던 제1 통신 모드일 때, 제2 캐시(320)에 미리 저장된 응답 메시지를 불러온다. 보다 구체적으로 설명하면, 프로세서(200)는 제1 캐시(310)에 저장하는 사용자 메시지에 따른 응답 메시지를 불러올 때, 사용자 메시지와 상응하는 제1 식별자와 제2 식별자를 포함하고 있는 응답 메시지를 불러온다. 불러온 응답 메시지는 출력부(500)를 통해, 디스플레이부(120)로 출력하여, 사용자가 획득하고자 하는 데이터를 확인할 수 있다.When the result received from the connection manager 600 is a second communication mode in which communication is not possible, the processor 200 aligns and stores the user message in the first cache 310 and stores the first message that occurred earlier from the present time. When in the communication mode, the response message prestored in the second cache 320 is called. In more detail, when the processor 200 calls a response message according to a user message stored in the first cache 310, the processor 200 calls a response message including a first identifier and a second identifier corresponding to the user message. come. The retrieved response message may be output to the display unit 120 through the output unit 500 to confirm data to be acquired by the user.
또한, 일 실시예로서, 프로세서(200)는 사용자의 요청에 따른 사용자 메시지 중 실시간적 처리를 요구하는 행위에 대한 사용자 메시지는 제1 캐시에 저장하지 않을 수 있다. 예를 들어, 사용자의 수동 조종에 의한 청소 로봇(2)의 전진, 후진, 회전동작에 관련된 메시지는 제외시켜 제1 캐시에 저장될 수 있다.In addition, as an embodiment, the processor 200 may not store a user message regarding an action of requesting real-time processing among user messages according to a user's request in the first cache. For example, the message related to the forward, backward, and rotational motions of the cleaning robot 2 may be stored in the first cache by excluding a user's manual manipulation.
도4는 본 발명의 일 실시예에 따른 제2 통신 모드 이후에 제1 통신 모드로 변환된 경우를 도시한 도면이다.4 is a diagram illustrating a case where a mode is converted to a first communication mode after a second communication mode according to an embodiment of the present invention.
연결 관리자(600)가 현재의 네트워크 연결 상태가 실시간으로 통신이 불가능한 경우인 제2 통신 모드에서 다시 양호한 네트워크 연결 상태로 인해 실시간으로 통신이 가능한 경우인 제1 통신 모드로 확인되면, 제1 캐시(310)에 저장된 사용자 메시지를 송수신부(400)를 통해, 청소로봇(2)으로 송신한다. 송수신부(400)는 청소로봇(2)으로부터 사용자 메시지에 따른 응답 메시지를 회신받아, 회신된 응답 메시지를 다시 제2 캐시(320)의 내부에 해당하는 정보 공간으로 상기 회신된 응답 메시지에 포함된 적어도 하나의 파라미터를 고려하여 저장함으로써, 제2 캐시(320)에 미리 저장되어 있던 데이터를 갱신한다. 또한, 프로세서(200)는 회신된 응답 메시지를 사용자 인터페이스부(100)로 출력하기 위해, 출력부(500)로 전달한다.When the connection manager 600 determines that the current network connection state is in a first communication mode in which communication is possible in real time due to a good network connection state again in the second communication mode in which communication is impossible in real time, the first cache ( The user message stored in the 310 is transmitted to the cleaning robot 2 through the transceiver 400. The transceiver 400 receives the response message according to the user message from the cleaning robot 2 and returns the reply message to the information space corresponding to the inside of the second cache 320 in the reply message. By considering and storing at least one parameter, data previously stored in the second cache 320 is updated. In addition, the processor 200 transmits the returned response message to the user interface unit 100 to the output unit 500.
예를 들어, 제2 캐시(320)에는 상기 데이터를 구성하고 있는 구성 요소들 중 명령 타입을 구분하기 위한 제1 식별자에 따른 별개의 정보 공간들이 마련되어 있다. 이 때, 사용자가 "청소 일정 목록"을 요청하는 사용자 메시지를 입력부(110)를 통해 입력하면, 입력된 사용자 메시지는 사용자 인터페이스부(100)로부터 프로세서(200)로 전달이 된다. 프로세서(200)는 제1 통신 모드일 경우, 사용자 메시지를 송수신부(400)에 전달하고, 송수신부(400)는 사용자 메시지를 네트워크를 통해 청소 로봇(2)으로 송신한다. 청소 로봇(2)은 사용자 메시지에 따라서 응답 메시지를 생성하여 다시 제어 장치(1)로 전송하고, 제어 장치(1)의 프로세서(200)는 송수신부(400)를 통해 응답 메시지를 수령하면, 제2 캐시(320)에서 "청소 일정 목록"이라는 제2 식별자를 검색하여, 해당하는 공간으로 응답 메시지에 포함되어 있는 "청소 일정 목록"을 저장한다. 또한, 제2 통신 모드인 경우, 사용자가 "청소 일정 목록"을 요청하는 사용자 메시지를 제어 장치(1)에 입력하면, 그에 따라 프로세서(200)는 입력된 사용자 메시지를 제1 캐시(310)에 "청소 일정 목록"의 사용자 메시지를 저장하고, 제2 캐시(320)에서 "청소 일정 목록"이라는 제2 식별자를 검색하여, 청소 로봇(2)이 위치하고 있는 해당 위치로부터 '청소 일정 목록'을 읽어서, "청소 일정 목록" 요청에 상응하는 응답 메시지를 생성하여 다시 출력부(500)로 전달하고, 출력부(500)는 상기 응답 메시지를 사용자 인터페이스부(100)로 출력한다. 즉, 제2 통신 모드에서 제1 통신 모드로 전환 시, 프로세서(200)는 제2 통신 모드일 때, 제1 캐시(310)에 미리 저장했던 사용자 메시지들을 읽어서, 송수신부(400)는 상기 사용자 메시지들을 청소로봇(2)으로 요청한다. 그리고, 프로세서(200)는 요청된 사용자 메시지들에 대한 응답 메시지를 청소로봇(2)으로부터 전달받으면, 제1 캐시에 저장되어있던 사용자 메시지는 삭제한다.For example, the second cache 320 is provided with separate information spaces according to a first identifier for distinguishing an instruction type among the components constituting the data. At this time, when the user inputs a user message requesting a "cleaning schedule list" through the input unit 110, the input user message is transferred from the user interface unit 100 to the processor 200. When the processor 200 is in the first communication mode, the processor 200 transmits a user message to the transceiver 400, and the transceiver 400 transmits the user message to the cleaning robot 2 through a network. The cleaning robot 2 generates a response message according to the user message and transmits the response message to the control device 1 again, and when the processor 200 of the control device 1 receives the response message through the transceiver 400, 2 The cache 320 retrieves a second identifier called "Cleaning Schedule List" and stores the "Cleaning Schedule List" included in the response message in the corresponding space. In addition, in the second communication mode, when a user inputs a user message requesting a "cleaning schedule list" to the control device 1, the processor 200 accordingly inputs the input user message to the first cache 310. Save the user message of the "Cleaning Schedule List", retrieve the second identifier "Cleaning Schedule List" from the second cache 320, and read the "Cleaning Schedule List" from the corresponding location where the cleaning robot 2 is located. , And generates a response message corresponding to the "Cleaning Schedule List" request to the output unit 500 again, and the output unit 500 outputs the response message to the user interface unit 100. That is, when switching from the second communication mode to the first communication mode, when the processor 200 is in the second communication mode, the processor 200 reads user messages previously stored in the first cache 310, and the transmission / reception unit 400 determines the user. Request messages to the cleaning robot (2). When the processor 200 receives a response message for the requested user messages from the cleaning robot 2, the processor 200 deletes the user message stored in the first cache.
프로세서(200)는 입력된 사용자 메시지를 제1 캐시(310)에 저장하고, 제2 캐시(320)에서 상기 사용자 메시지와 상응하는 데이터를 검색하고, 해당하는 응답 메시지를 디스플레이부(120)를 통해 화면으로 표시하여, 사용자는 표시된 응답 메시지를 확인한다.The processor 200 stores the input user message in the first cache 310, retrieves data corresponding to the user message from the second cache 320, and outputs a corresponding response message through the display 120. Displayed on the screen, the user confirms the displayed response message.
도5는 본 발명의 일 실시예에 따른 네트워크 연결 상태에 따른 원격 통신 방법을 나타내는 흐름도이다. 후술하는 원격 통신 방법은, 청소로봇(2)을 원격으로 제어하기 위한 시스템으로부터 제어하는 방법을 상세하게 설명한다.5 is a flowchart illustrating a remote communication method according to a network connection state according to an embodiment of the present invention. The remote communication method described later describes in detail a method of controlling from a system for remotely controlling the cleaning robot 2.
먼저, 사용자는 획득하고자 하는 청소로봇(2)의 주행 및 청소 동작과 관련된 데이터를 요청하기 위해, 사용자 메시지를 사용자 인터페이스부(100)로 입력한다(S100).First, the user inputs a user message to the user interface unit 100 to request data related to driving and cleaning operations of the cleaning robot 2 to be acquired (S100).
사용자 메시지가 입력되면, 연결 관리자(600)는 사용자 메시지 또는 응답 메시지를 수신하거나 송신하는 현재의 시간을 기준으로 현재의 네트워크 연결 상태가 실시간으로 통신이 가능한 상태인지 여부에 따라, 상기 현재의 네트워크 연결 상태가 실시간으로 통신 가능한 제1 통신 모드인지, 아니면 실시간으로 통신이 가능하지 않은 제2 통신 모드인지 여부를 판단한다(S200). 이 때, 연결 관리자(600)는 현재의 네트워크 연결 상태가 실시간으로 통신이 가능하면 제1 통신 모드로 판단하고, 청소 로봇(20)의 네트워크 통신을 위한 소켓(socket)이 네트워크에 접속이 안되는 경우, 소켓(socket)으로부터 끊김 이벤트를 수신하는 경우 및 프로세서(200)로부터 생성된 제어 신호를 기 설정된 횟수 이상 청소 로봇(2)과 송수신하지 못하는 경우 중 적어도 하나인 경우 현재의 네트워크 연결상태가 실시간으로 통신이 가능하지 않은 제2 통신 모드로 판단한다. 상기 기 설정된 횟수는 사용자에 의해 미리 설정된 정해진 횟수 이상 메시지를 송수신하지 못하는 경우를 의미한다.When a user message is input, the connection manager 600 determines whether or not the current network connection state is available for communication in real time based on a current time of receiving or transmitting a user message or response message. It is determined whether the state is a first communication mode capable of communicating in real time or a second communication mode in which communication is not possible in real time (S200). At this time, the connection manager 600 determines that the current network connection state is the first communication mode if communication is possible in real time, and the socket for network communication of the cleaning robot 20 is not connected to the network. , At least one of receiving a disconnect event from the socket and failing to transmit / receive a control signal generated from the processor 200 with the cleaning robot 2 more than a predetermined number of times. It determines with the 2nd communication mode which communication is not possible. The predetermined number of times refers to a case in which a message cannot be transmitted or received more than a predetermined number set by a user.
송수신부(400)는 연결 관리자(600)로부터 네트워크 연결 상태가 제2 통신 모드가 아닌, 제1 통신모드로 판단되면, 프로세서(200)로부터 생성된 사용자 메시지를 포함하는 제어 신호를 네트워크를 통해 청소로봇(2)으로 송신한다(S201). 송수신부(4000)는 청소 로봇(2)으로부터 응답된 응답메시지를 포함하는 신호를 수신한다(S202).When the network connection state is determined by the connection manager 600 to be the first communication mode instead of the second communication mode, the transceiver 400 cleans a control signal including a user message generated from the processor 200 through the network. It transmits to the robot 2 (S201). The transmission / reception unit 4000 receives a signal including a response message from the cleaning robot 2 (S202).
다음으로, 프로세서(200)는 수신된 응답메시지를 제2 캐시에 저장한다(S203). 보다 상세하게는, 제2 캐시(320)는 응답 메시지에 포함된 제2 식별자를 구분하여, 제2 캐시(320) 내부에 응답 메시지에 해당하는 정보 공간으로 해당 메시지에 포함된 적어도 하나의 파라미터를 고려하여 저장한다.Next, the processor 200 stores the received response message in the second cache (S203). More specifically, the second cache 320 classifies the second identifier included in the response message, and stores at least one parameter included in the message in an information space corresponding to the response message in the second cache 320. Save it in consideration.
송수신부(400)로부터 응답 메시지를 전달 받고, 제2 캐시(320)로 저장을 완료한 프로세서(200)는 출력부(500)로 응답 메시지를 전달한다. The processor 200 receiving the response message from the transceiver 400 and completing the storage in the second cache 320 transmits the response message to the output unit 500.
출력부(500)는 전달받은 응답 메시지를 디스플레이부(120)로 출력하여, 사용자는 디스플레이부(120)의 화면를 통해 청소로봇(2)으로부터 응답된 정보를 확인한다(S300).The output unit 500 outputs the received response message to the display unit 120, and the user checks the information responded from the cleaning robot 2 through the screen of the display unit 120 (S300).
또한, 연결 관리자(600)로부터 현재 네트워크 상태를 판단한 결과가 통신 가능한 제2 통신 모드이면, 사용자 메시지를 제1 캐시(310)에 정렬하여 저장하고(S210), 현재 시점으로부터 이전 시점에 발생했던 제1 통신 모드일 때, 제2 캐시(320)에 미리 저장된 응답 메시지를 불러온다. 보다 구체적으로 설명하면, 프로세서(200)는 제1 캐시(310)에 저장하는 사용자 메시지에 따른 응답 메시지를 불러올 때, 사용자 메시지와 상응하는 제1 식별자와 제2 식별자를 포함하고 있는 응답 메시지를 검색하여 불러온다(S220)In addition, if the result of determining the current network state from the connection manager 600 is a second communication mode in which communication is possible, the user message may be aligned and stored in the first cache 310 (S210), and the second message may be generated at a previous time from the current time. In the first communication mode, a response message prestored in the second cache 320 is called. In more detail, when the processor 200 calls a response message according to a user message stored in the first cache 310, the processor 200 searches for a response message including a first identifier and a second identifier corresponding to the user message. To be called (S220)
불러온 응답 메시지는 출력부(500)를 통해, 디스플레이부(120)로 출력하여, 사용자가 상기 응답 메시지를 확인한다.The imported response message is output to the display unit 120 through the output unit 500, and the user confirms the response message.
이 때, 제1 캐시(310)에 저장된 사용자 메시지는 제1 통신 모드로 전환 되면, 프로세서(200)는 송수신부(400)를 통해 청소로봇(2)으로 송신하여 응답 메시지를 요청한다. 그리고, 요청된 사용자 메시지들에 대한 응답 메시지를 청소로봇(2)으로부터 전달받으면, 프로세서(200)는 제1 캐시에 저장되어있던 사용자 메시지는 삭제한다. 또한, 프로세서(200)는 상기 응답 메시지를 다시 제2 캐시(320)의 내부에 해당하는 정보 공간으로 상기 회신된 응답 메시지에 포함된 적어도 하나의 파라미터를 고려하여 저장함으로써, 제2 캐시(320)에 미리 저장되어 있던 데이터를 갱신한다.At this time, when the user message stored in the first cache 310 is switched to the first communication mode, the processor 200 transmits to the cleaning robot 2 through the transceiver 400 to request a response message. In addition, when the response message for the requested user messages is received from the cleaning robot 2, the processor 200 deletes the user message stored in the first cache. In addition, the processor 200 stores the response message in an information space corresponding to the inside of the second cache 320 in consideration of at least one parameter included in the returned response message, thereby allowing the second cache 320 to be stored. Update the data previously stored in.
본 실시예에서 원격 제어 장치의 화면에 표시되는 맵은, 청소로봇이 생성한 맵 데이터에 근거하는 맵이 바람직하다. 청소 로봇은 이미 저장된 해당 영역에 대한 맵 데이터를 저장하고 있거나, 또는 저장된 맵 데이터와는 무관하게 이동 로봇이 주행을 시작하면서 이동된 경로에 따라 인식하여 생성되는 맵 데이터를 실시간으로 생성할 수 있다. 이 때, 제1 캐시(310)에 저장되어있던 사용자 지정영역 청소에 관련된 사용자 메시지가 제2 통신모드에서 제1 통신모드로 변환되면서, 이동로봇(2)에 전송됨에 따라 이동로봇(2)으로부터 수신되는 응답 메시지를 프로세서(200)는 분석할 수 있다. 예컨대, 프로세서(200)는 이동로봇(2)이 사용자 명령에 따라 수행한 청소영역이 사용자가 선택한 지정영역이 맞는지 분석할 수 있다. 보다 상세하게 설명하면, 사용자가 제어 장치를 통해 선택한 지정영역과 이동로봇(2)이 수행한 청소영역을 비교하고, 비교 결과 유사한 것으로 판단되는 경우, 이동로봇(2)으로부터 수신된 응답메시지를 사용자 화면에 표시하도록 디스플레이부를 제어할 수 있다. 여기에서, 프로세서(200)는 상기 지정영역과 상기 청소영역을 나타내는 각 맵에서 인식되는 외곽선 라인 내지는 외곽선을 이루는 특징점들 간의 위치 관계를 이용하여 유사 여부를 판단할 수 있다.In the present embodiment, the map displayed on the screen of the remote control device is preferably a map based on map data generated by the cleaning robot. The cleaning robot may store map data for the corresponding area, which is already stored, or may generate map data generated in real time by recognizing the moving path while the mobile robot starts driving regardless of the stored map data. At this time, the user message related to cleaning the user-designated area stored in the first cache 310 is converted from the second communication mode to the first communication mode, and transmitted from the mobile robot 2 as it is transmitted to the mobile robot 2. The processor 200 may analyze the received response message. For example, the processor 200 may analyze whether the cleaning area performed by the mobile robot 2 according to the user command is correct for the designated area selected by the user. In more detail, when the user compares the designated area selected by the control device with the cleaning area performed by the mobile robot 2, and if it is determined that the comparison is similar, the response message received from the mobile robot 2 is determined by the user. The display unit may be controlled to display on the screen. Here, the processor 200 may determine the similarity by using a positional relationship between the outline line or the feature points forming the outline recognized in each map representing the designated area and the cleaning area.
더욱 자세하게는, 프로세서(200)는 각각의 맵에서 추출된 특징점들 중 적어도 일부를 매칭하고, 매칭된 특징점들 중 일부를 스케일 조절을 통해 맵의 사이즈를 동일하게 한 후, 대응되는 특징점들간의 유사도 거리를 이용하여, 맵들간의 유사 여부를 판단할 수 있다. 예를 들어, 유사도 거리는 유클리드 거리(Euclidean distance), 코사인 거리(Cosine distance), 마하라노비스 거리(Mahalanobis's distance), 맨하탄 거리(Manhattan distance)와 같은 방법을 이용하여, 프로세서(20)는 맵들 간의 유사도를 판단할 수 있다. 맵들 간의 유사도가 일정 수준 이하로 낮게 계산될 경우에는, 이동로봇(2)이 청소한 청소영역과 함께, 사용자가 지정영역을 다시 지정할 수 있도록 알림메시지를 디스플레이부에 표시할 수 있다.More specifically, the processor 200 matches at least some of the feature points extracted from each map, adjusts some of the matched feature points to the same size by adjusting the scale, and then compares similarities between the corresponding feature points. The distance may be used to determine similarity between maps. For example, the similarity distance may be obtained by using a method such as Euclidean distance, Cosine distance, Mahalanobis's distance, Manhattan distance, and the like. Can be determined. When the similarity between the maps is calculated to be lower than a predetermined level, the notification message may be displayed on the display unit so that the user can designate the designated area together with the cleaning area cleaned by the mobile robot 2.
이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.Although all components constituting the embodiments of the present invention described above are described as being combined or operating in combination, the present invention is not necessarily limited to these embodiments. In other words, within the scope of the present invention, all of the components may be selectively operated in combination with one or more. In addition, although all of the components may be implemented in one independent hardware, each or some of the components of the components are selectively combined to perform some or all of the functions combined in one or a plurality of hardware It may be implemented as a computer program having a. In addition, such a computer program is stored in a computer readable medium such as a USB memory, a CD disk, a flash memory, and the like, and is read and executed by a computer, thereby implementing embodiments of the present invention. The recording medium of the computer program may include a magnetic recording medium, an optical recording medium, a carrier wave medium, and the like.
또한, 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 상세한 설명에서 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, all terms including technical or scientific terms have the same meaning as commonly understood by a person of ordinary skill in the art unless otherwise defined in the detailed description. Terms used generally, such as terms defined in a dictionary, should be interpreted to coincide with the contextual meaning of the related art, and shall not be interpreted in an ideal or excessively formal sense unless explicitly defined in the present invention.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and various modifications, changes, and substitutions may be made by those skilled in the art without departing from the essential characteristics of the present invention. will be. Accordingly, the embodiments disclosed in the present invention and the accompanying drawings are not intended to limit the technical spirit of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by the embodiments and the accompanying drawings. . The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.