KR20230039415A - System for remotely controlling robot and method for controlling the same - Google Patents

System for remotely controlling robot and method for controlling the same Download PDF

Info

Publication number
KR20230039415A
KR20230039415A KR1020210122710A KR20210122710A KR20230039415A KR 20230039415 A KR20230039415 A KR 20230039415A KR 1020210122710 A KR1020210122710 A KR 1020210122710A KR 20210122710 A KR20210122710 A KR 20210122710A KR 20230039415 A KR20230039415 A KR 20230039415A
Authority
KR
South Korea
Prior art keywords
robot
message
type
ros
robots
Prior art date
Application number
KR1020210122710A
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 KR1020210122710A priority Critical patent/KR20230039415A/en
Publication of KR20230039415A publication Critical patent/KR20230039415A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0027Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement involving a plurality of vehicles, e.g. fleet or convoy travelling
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/028Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
    • G05D1/0282Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal generated in a local control room
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mechanical Engineering (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

Provided in the present invention are a robot remote control system and a control method thereof, which may efficiently update the inner software of a robot and minimize the computation of the robot. To this end, provided in the present invention is the robot remote control system, which comprises: a plurality of robots; a control server which is spaced apart from the plurality of robots at a remote distance to control the plurality of robots; and an edge server which relays the communication between the plurality of robots and the control server. The edge server is characterized by comprising an integrated management engine provided to convert a first message in a first type received from the plurality of robots into a first message of a second type to transmit the same to the control server, and convert a second message of the second type received from the control server into a second message of the first type to transmit the same to the plurality of robots.

Description

로봇 원격 제어 시스템 및 이를 위한 제어 방법 {SYSTEM FOR REMOTELY CONTROLLING ROBOT AND METHOD FOR CONTROLLING THE SAME}Robot remote control system and control method therefor {SYSTEM FOR REMOTELY CONTROLLING ROBOT AND METHOD FOR CONTROLLING THE SAME}

본 발명은 원거리에 위치하는 복수의 로봇들을 원격으로 제어하기 위한 시스템 및 이를 위한 제어 방법에 관한 것이다.The present invention relates to a system for remotely controlling a plurality of robots located at a long distance and a control method therefor.

로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것도 있다. Robots have been developed for industrial use and have been in charge of a part of factory automation. In recent years, the field of application of robots has been further expanded, and medical robots, space robots, etc. have been developed, and household robots that can be used at home are also being made. Some of these robots can run on their own.

이와 같은 로봇은 주변 활동 환경의 변경, 통신 환경 변경, 관제 서버의 시스템 변경 등의 이유로 주기적 또는 비주기적으로 내부 소프트웨어가 업데이트될 필요가 있다. Internal software of such a robot needs to be updated periodically or non-periodically for reasons such as a change in the surrounding activity environment, a change in the communication environment, and a change in the system of the control server.

또한, 적어도 저전력 소비를 추구하기 위해서라도 로봇 자체에서의 연산량이 최소한으로 되도록 할 필요가 있다. Also, at least in order to pursue low power consumption, it is necessary to minimize the amount of calculation in the robot itself.

최근에는 로봇의 내부 소프트웨어를 효율적으로 업데이트하기 위한 방안과 로봇 자체의 연산량을 최소한으로 되도록 하기 위한 방안에 대해 많은 연구가 진행 중에 있다.Recently, many studies are being conducted on a method for efficiently updating the internal software of the robot and a method for minimizing the amount of operation of the robot itself.

본 발명은, 로봇의 내부 소프트웨어를 효율적으로 업데이트하고, 로봇 자체의 연산량도 최소한으로 줄일 수 있도록 하기 위한 로봇 원격 제어 시스템 및 이를 위한 제어 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a robot remote control system and a control method therefor to efficiently update the internal software of the robot and to minimize the amount of operation of the robot itself.

상기 목적을 달성하기 위해 본 발명은, 복수의 로봇들, 상기 복수의 로봇들로부터 원거리 이격되어 상기 복수의 로봇들을 제어하는 관제 서버, 및 상기 복수의 로봇들 및 상기 관제 서버 간의 통신을 중계하는 에지 서버를 포함하고, 상기 에지 서버는, 상기 복수의 로봇들로부터 수신하는 제 1 타입의 제 1 메시지를 제 2 타입의 제 1 메시지로 변환하여 상기 관제 서버로 전송하고, 상기 관제 서버로부터 수신하는 제 2 타입의 제 2 메시지를 제 1 타입의 제 2 메시지로 변환하여 상기 복수의 로봇들에게 전송하기 위한 통합 매니지먼트 엔진을 포함하는 것을 특징으로 하는 로봇 원격 제어 시스템을 제공한다. In order to achieve the above object, the present invention provides a plurality of robots, a control server remotely separated from the plurality of robots and controlling the plurality of robots, and an edge for relaying communication between the plurality of robots and the control server. and a server, wherein the edge server converts a first message of a first type received from the plurality of robots into a first message of a second type, transmits the message to the control server, and receives the first message from the control server. It provides a robot remote control system comprising an integrated management engine for converting a second message of the second type into a second message of the first type and transmitting the message to the plurality of robots.

제 1 타입은 ROS(Robot Operation System) 통신에 기반한 ROS 타입이고, 제 2 타입은 소켓 통신에 기반한 소켓 타입일 수 있다. The first type may be a ROS type based on ROS (Robot Operation System) communication, and the second type may be a socket type based on socket communication.

상기 통합 매니지먼트 엔진은, 상기 ROS 통신을 관장하는 ROS 통신 모듈, 상기 소켓 통신을 관장하는 소켓 통신 모듈, 상기 복수의 로봇들의 정보를 저장하는 데이터베이스, 및 상기 ROS 타입의 제 1 메시지를 상기 소켓 타입의 제 1 메시지로 변환하고, 상기 소켓 타입의 제 2 메시지를 상기 ROS 타입의 제 2 메시지로 변환하는 코어 모듈을 포함할 수 있다. The integrated management engine includes a ROS communication module managing the ROS communication, a socket communication module managing the socket communication, a database storing information of the plurality of robots, and a first message of the ROS type of the socket type. It may include a core module for converting a first message and converting a second message of the socket type into a second message of the ROS type.

상기 코어 모듈은, 상기 소켓 타입의 제 2 메시지를 상기 ROS 타입의 제 2 메시지로 변환할 때, 제 2 메시지의 수신 대상 로봇의 식별자를 제 2 타입의 제 2 메시지에 포함시킬 수 있다. When converting the second message of the socket type into the second message of the ROS type, the core module may include an identifier of a robot to receive the second message in the second message of the second type.

상기 복수의 로봇들 중에서 특정 로봇과 상기 에지 서버는 서로 다른 네트워크를 통해 접속될 수도 있다. Among the plurality of robots, a specific robot and the edge server may be connected through different networks.

이 경우, 상기 에지 서버는, 상기 ROS 타입의 제 2 메시지를 상기 소켓 타입의 제 2 메시지로 변환하여 상기 특정 로봇으로 전송하기 위한 에지 브리지 엔진을 더욱 포함할 수 있다. In this case, the edge server may further include an edge bridge engine for converting the second message of the ROS type into a second message of the socket type and transmitting the converted message to the specific robot.

또한, 상기 특정 로봇은, 상기 소켓 타입의 제 2 메시지를 상기 ROS 타입의 제 2 메시지로 변환하기 위한 로봇 브리지 엔진을 포함할 수 있다.In addition, the specific robot may include a robot bridge engine for converting the second message of the socket type into the second message of the ROS type.

상기 로봇 브리지 엔진은, 상기 특정 로봇 내에서 생성되는 상기 ROS 타입의 제 1 메시지를 상기 소켓 타입의 제 1 메시지로 변환하여 상기 로봇 브리지 엔진으로 전송할 수 있다.The robot bridge engine may convert the first message of the ROS type generated in the specific robot into the first message of the socket type and transmit it to the robot bridge engine.

상기 에지 브리지 엔진은, 상기 소켓 타입의 제 1 메시지를 상기 ROS 타입의 제 1 메시지로 변환하여 상기 통합 매니지먼트 엔진에 전송할 수 있다. The edge bridge engine may convert the first message of the socket type into the first message of the ROS type and transmit it to the integrated management engine.

또한, 상기 목적을 달성하기 위해 본 발명은, 에지 서버가 복수의 로봇들로부터 제 1 타입의 제 1 메시지를 수신하는 단계, 상기 에지 서버가 제 1 타입의 제 1 메시지를 제 2 타입의 제 1 메시지로 변환하여 관제 서버로 전송하는 단계, 상기 에지 서버가 상기 관제 서버로부터 제 2 타입의 제 2 메시지를 수신하는 단계, 및 상기 에지 서버가 제 1 타입의 제 2 메시지로 변환하여 상기 복수의 로봇들에게 전송하는 단계를 포함하는 것을 특징으로 하는 로봇 원격 제어 방법을 제공한다.In addition, in order to achieve the above object, the present invention provides an edge server receiving a first message of a first type from a plurality of robots, wherein the edge server sends a first message of a first type to a first message of a second type. converting into a message and transmitting it to the control server, the edge server receiving a second message of the second type from the control server, and the edge server converting the second message of the first type into the plurality of robots It provides a robot remote control method comprising the step of transmitting to them.

본 발명에 따른 로봇 원격 제어 시스템 및 이를 구현하기 위한 로봇의 효과에 대해 설명하면 다음과 같다.Referring to the robot remote control system according to the present invention and the effects of the robot for implementing it are as follows.

본 발명의 실시 예들 중 적어도 하나에 의하면, 로봇의 내부 소프트웨어를 효율적으로 업데이트하면서 로봇 자체의 연산량도 최소한으로 줄일 수 있다는 장점이 있다.According to at least one of the embodiments of the present invention, there is an advantage in that the amount of operation of the robot itself can be reduced to a minimum while efficiently updating the internal software of the robot.

도 1은 본 발명의 일 실시예에 의한 로봇을 구성하는 구성요소를 보여주는 블록도이다.
도 2는 본 발명의 일 실시예에 의한 로봇 내의 엔진들에 관한 블록도이다.
도 3은 본 발명의 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 상황을 도시한다.
도 4은 본 발명의 다른 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 상황을 도시한다.
도 5는 본 발명의 일실시예에 따른 통합 매니지먼트 엔진의 내부 블록도이다.
도 6은 본 발명의 또다른 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 상황을 도시한다.
도 7은 본 발명의 일실시예에 따른 브리지 엔진의 동작 순서도이다.
도 8은 도 6의 제 1 로봇 및 에지 서버 간의 통신을 설명하기 위한 블록도이다.
1 is a block diagram showing components constituting a robot according to an embodiment of the present invention.
2 is a block diagram of engines in a robot according to an embodiment of the present invention.
3 illustrates a situation in which a plurality of robots communicate with a control server according to an embodiment of the present invention.
4 illustrates a situation in which a plurality of robots communicate with a control server according to another embodiment of the present invention.
5 is an internal block diagram of an integrated management engine according to an embodiment of the present invention.
6 illustrates a situation in which a plurality of robots communicate with a control server according to another embodiment of the present invention.
7 is an operation flowchart of a bridge engine according to an embodiment of the present invention.
FIG. 8 is a block diagram illustrating communication between the first robot of FIG. 6 and an edge server.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈", "부", "엔진", 및 "노드" 등은 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, the embodiments disclosed in this specification will be described in detail with reference to the accompanying drawings, but the same or similar components are given the same reference numerals regardless of reference numerals, and redundant description thereof will be omitted. The suffixes "module", "unit", "engine", and "node" for components used in the following description are given or used interchangeably in consideration of only the ease of writing the specification, meaning that they are distinguished from each other in themselves. or does not have a role. In addition, in describing the embodiments disclosed in this specification, if it is determined that a detailed description of a related known technology may obscure the gist of the embodiment disclosed in this specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in this specification, the technical idea disclosed in this specification is not limited by the accompanying drawings, and all changes included in the spirit and technical scope of the present invention , it should be understood to include equivalents or substitutes.

본 발명의 하기의 실시예들은 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예들로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.Of course, the following examples of the present invention are only intended to embody the present invention and are not intended to limit or limit the scope of the present invention. What can be easily inferred by an expert in the technical field to which the present invention pertains from the detailed description and embodiments of the present invention is interpreted as belonging to the scope of the present invention.

상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 안되며, 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above detailed description should not be construed as limiting in all respects, but should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

도 1을 참조하여, 본 발명의 일실시예에 따른 로봇을 구성하는 구성요소에 대해 설명하겠다. 도 1은 본 발명의 일 실시예에 의한 로봇을 구성하는 구성요소를 보여주는 블록도이다.Referring to Figure 1, the components constituting the robot according to an embodiment of the present invention will be described. 1 is a block diagram showing components constituting a robot according to an embodiment of the present invention.

로봇(1000)은 외부에 배치되는 이동 객체 혹은 고정 객체를 센싱하는 센싱모듈(100), 다양한 종류의 맵을 저장하는 맵 저장부(200), 로봇의 이동을 제어하는 이동부(300), 로봇의 소정의 기능을 수행하는 기능부(400), 다른 로봇 또는 서버와 맵 또는 이동 객체, 고정 객체, 혹은 외부의 변동되는 상황에 관한 정보를 송수신하는 통신부(500), 그리고 이들 각각의 구성요소들을 제어하는 제어부(900)를 할 수 있다. The robot 1000 includes a sensing module 100 for sensing a moving object or a fixed object placed outside, a map storage unit 200 for storing various types of maps, a moving unit 300 for controlling the movement of the robot, and a robot A functional unit 400 that performs a predetermined function of, a communication unit 500 that transmits and receives information about a map or moving object, a fixed object, or an externally changing situation with another robot or server, and each of these components The control unit 900 may be used to control.

도 1에서는 로봇의 구성을 계층적으로 구성하고 있으나, 이는 로봇의 구성요소들을 논리적으로 나타낸 것이다. 물리적 구성인 경우에는 이와 다를 수 있다. 즉, 하나의 물리적 구성요소에 다수의 논리적 구성요소가 포함되거나, 다수의 물리적 구성요소가 하나의 논리적 구성요소를 구현할 수 있다. Although the configuration of the robot is hierarchically configured in FIG. 1, this logically represents the components of the robot. In the case of physical configuration, this may be different. That is, a plurality of logical elements may be included in one physical element, or a plurality of physical elements may implement one logical element.

센싱모듈(100)는 장애물과 같은 외부의 객체들을 센싱하여 센싱한 정보를 제어부(900)에게 제공한다. 일 실시예로 센싱모듈(100)는 로봇의 현재 위치에서 벽, 유리, 금속성 문 등 외부 객체들의 재질과 거리를 신호의 강도(intensity)와 반사된 시간(속도)로 산출하는 라이다(Lidar) 센싱부(110)를 포함할 수 있다. 또한, 센싱모듈(100)는 로봇(1000)으로부터 일정 거리 내에 배치된 객체들의 온도 정보를 산출하는 온도 센싱부(120)를 포함할 수 있다. 온도 센싱부(120)의 일 실시예는 로봇(1000)으로부터 일정 거리 내에 배치된 사물의 온도, 특히 사람들의 체온을 감지하는 적외선 센서를 포함한다. 적외선 어레이 센서(Infrared Array sensor)로 온도 센싱부(120)를 구성할 경우 접촉 없이도 객체의 온도를 센싱할 수 있다. 적외선 센서 혹은 적외선 어레이 센서가 온도 센싱부(120)를 구성할 경우, 이동 객체가 사람인지 여부를 확인하는 주요한 정보를 제공할 수 있다.The sensing module 100 senses external objects such as obstacles and provides the sensed information to the control unit 900 . In one embodiment, the sensing module 100 is a Lidar that calculates the material and distance of external objects such as walls, glass, and metallic doors from the current position of the robot as the intensity of the signal and the reflected time (velocity). A sensing unit 110 may be included. Also, the sensing module 100 may include a temperature sensing unit 120 that calculates temperature information of objects disposed within a predetermined distance from the robot 1000 . One embodiment of the temperature sensing unit 120 includes an infrared sensor that senses the temperature of an object disposed within a certain distance from the robot 1000, in particular, the body temperature of people. When the temperature sensing unit 120 is configured with an infrared array sensor, the temperature of an object can be sensed without contact. When an infrared sensor or an infrared array sensor configures the temperature sensing unit 120, it can provide important information for determining whether a moving object is a person.

뿐만 아니라, 센싱모듈(100)은 전술한 센싱부들 외에 로봇과 외부 객체와의 뎁스 정보를 산출하는 뎁스 센싱부(130) 및 비전 센싱부(140)를 더 포함할 수 있다.In addition, the sensing module 100 may further include a depth sensing unit 130 and a vision sensing unit 140 that calculate depth information between the robot and an external object, in addition to the above-described sensing units.

뎁스 센싱부(130)는 뎁스 카메라를 포함할 수 있다. 뎁스 센싱부(130)는 로봇과 외부 객체 사이의 거리를 판단할 수 있도록 하는데, 특히 라이다 센싱부(110)와 결합하여 외부 객체와 로봇 사이의 거리의 센싱 정확도를 높일 수 있다.The depth sensing unit 130 may include a depth camera. The depth sensing unit 130 can determine the distance between the robot and an external object. In particular, by combining with the lidar sensing unit 110, the sensing accuracy of the distance between the external object and the robot can be increased.

비전 센싱부(140)는 카메라를 포함할 수 있다. 비전 센싱부(140)는 로봇의 주변의 객체들의 이미지를 촬영할 수 있다. 특히, 로봇은 고정 객체와 같이 변화가 많지 않은 이미지와 이동 객체가 배치된 이미지를 구분하여 외부의 객체가 이동 객체인지를 식별할 수 있다.The vision sensing unit 140 may include a camera. The vision sensing unit 140 may capture images of objects around the robot. In particular, the robot may identify whether an external object is a moving object by distinguishing an image in which there is not much change, such as a fixed object, and an image in which a moving object is disposed.

그 외에도 열감지 센싱부, 초음파 센싱부 등을 일 실시예로 하는 보조 센싱부(145)가 다수 배치될 수 있다. 이들 보조 센싱부들은 맵을 생성하거나 외부 객체를 센싱하는데 필요한 보조적인 센싱 정보를 제공한다. 또한, 이들 보조 센싱부들 역시 로봇이 주행함에 있어 외부에 배치되는 객체를 센싱하여 정보를 제공한다.In addition, a plurality of auxiliary sensing units 145 including a thermal sensing unit and an ultrasonic sensing unit may be disposed. These auxiliary sensing units provide auxiliary sensing information necessary for generating a map or sensing an external object. In addition, these auxiliary sensing units also provide information by sensing an object disposed outside while the robot is driving.

[0032] 센싱 데이터 분석부(150)는 다수의 센싱부들이 센싱한 정보들을 분석하여 이를 제어부(900)에게 전달한다. 예를 들어 다수의 센싱부들에 의해 외부에 배치된 객체가 감지될 경우, 해당 객체의 특성과 거리에 대한 정보를 각각의 센싱부가 제공할 수 있다. 센싱 데이터 분석부(150)는 이들의 값을 조합하여 산출하고 이를 제어부(900)에게 전달할 수 있다.[0032] The sensing data analyzer 150 analyzes information sensed by a plurality of sensing units and transmits it to the control unit 900. For example, when an object disposed outside is sensed by a plurality of sensing units, each sensing unit may provide information about the characteristics and distance of the corresponding object. The sensing data analysis unit 150 may combine and calculate these values and deliver them to the controller 900 .

맵 저장부(200)는 로봇이 이동하는 공간에 배치되는 객체들의 정보를 저장한다. 맵 저장부(200)는 로봇이 이동하는 전체 공간에 배치되는 객체들 중에서 변동이 없거나 혹은 고정되어 배치되는 고정 객체들에 대한 정보를 저장하는 고정맵(210)을 포함할 수 있다. 고정맵(210)은 공간에 따라 필수적으로 하나가 포함될 수 있다. 고정맵(210)은 해당 공간에서 가장 변동이 낮은 객체들만 배치된 것이므로, 로봇이 해당 공간을 이동할 경우 맵(210)에서 지시하는 객체들보다는 더 많은 객체를 센싱할 수 있다.The map storage unit 200 stores information on objects arranged in a space in which the robot moves. The map storage unit 200 may include a fixed map 210 that stores information on fixed objects that do not change or are fixedly disposed among objects disposed in the entire space in which the robot moves. One fixed map 210 may be necessarily included according to space. Since the fixed map 210 is arranged with only objects with the lowest variation in the space, when the robot moves in the space, more objects than the objects indicated by the map 210 can be sensed.

고정맵(210)은 고정 객체들의 위치 정보를 필수적으로 저장하며, 추가적으로 고정 객체들의 특성, 예를 들어 재질 정보, 색상 정보, 혹은 기타 높이 정보 등을 포함할 수 있다. 이러한 추가적인 정보들은 고정 객체들에 변동 사항이 발생한 경우 로봇이 보다 쉽게 확인할 수 있도록 한다.The fixed map 210 essentially stores positional information of fixed objects, and may additionally include characteristics of fixed objects, such as material information, color information, or other height information. These additional information makes it easier for the robot to check when changes occur in fixed objects.

또한 로봇은 이동하는 과정에서 주변을 센싱하여 임시맵(220)을 생성하여 이를 과거 저장했던 전체 공간에 대한 고정맵(210)과 비교할 수 있다. 비교 결과 로봇은 현재의 위치를 확인할 수 있다.In addition, the robot can sense the surroundings in the process of moving to create a temporary map 220 and compare it with the fixed map 210 for the entire space previously stored. As a result of the comparison, the robot can confirm its current location.

이동부(300)는 바퀴와 같이 로봇(1000)을 이동시키는 수단으로, 제어부(900)의 제어에 따라 로봇(1000)을 이동시킨다. 이때, 제어부(900)는 맵 저장부(200)에 저장된 영역에서 로봇(1000)의 현재 위치를 확인하여 이동부(300)에 이동 신호를 제공할 수 있다. 제어부(900)는 맵 저장부(200)에 저장된 다양한 정보들을 이용하여 경로를 실시간으로 생성하거나 혹은 이동 과정에서 경로를 생성할 수 있다.The moving unit 300 is a means for moving the robot 1000 like a wheel, and moves the robot 1000 under the control of the controller 900. At this time, the control unit 900 may check the current location of the robot 1000 in the area stored in the map storage unit 200 and provide a movement signal to the moving unit 300 . The control unit 900 may generate a route in real time or during a movement process using various pieces of information stored in the map storage unit 200 .

이동부(300)는 주행거리 산출부(310)와 주행거리 보정부(320)를 포함할 수 있다. 주행거리 산출부(310)는 이동부(300)가 이동한 거리에 대한 정보를 제공할 수 있다. 일 실시예로 특정 지점에서 출발한 로봇(1000)이 이동한 누적 거리를 제공할 수 있다. 또는 로봇(1000)이 특정한 지점에서 회전한 후 직선으로 이동한 누적 거리를 제공할 수 있다. 또는 로봇(1000)이 특정한 시간부터 이동한 누적 거리를 제공할 수 있다.The moving unit 300 may include a mileage calculation unit 310 and a mileage correction unit 320 . The travel distance calculation unit 310 may provide information on the distance the moving unit 300 has moved. As an embodiment, an accumulated distance traveled by the robot 1000 starting from a specific point may be provided. Alternatively, the cumulative distance traveled in a straight line after the robot 1000 rotates at a specific point may be provided. Alternatively, an accumulated distance that the robot 1000 has moved from a specific time may be provided.

또한, 본 발명의 일 실시예에 의하면 누적 거리뿐만 아니라 일정한 단위 내에 이동 거리에 대한 정보를 주행거리 산출부(310)가 제공할 수 있다. 주행거리 산출부(310)는 이동부(300)의 특성에 따라 다양하게 거리를 산출할 수 있는데, 이동부(300)가 바퀴인 경우 바퀴의 회전 횟수를 카운팅하여 주행 거리를 산출할 수 있다.In addition, according to an embodiment of the present invention, the mileage calculation unit 310 may provide information on a moving distance within a certain unit as well as an accumulated distance. The mileage calculation unit 310 may calculate the distance in various ways according to the characteristics of the moving unit 300. When the moving unit 300 is a wheel, the mileage may be calculated by counting the number of revolutions of the wheel.

주행거리 보정부(320)는 주행거리 산출부(310)가 산출한 거리가 실제 로봇(1000)의 센싱 모듈(100)이 산출한 거리 정보와 상이한 경우 주행 거리 산출부(310)가 산출한 거리 정보를 보정한다. 또한, 주행 거리 산출부(310)에서 오차가 누적하여 발생할 경우 주행거리 산출부(310)의 주행거리 산출 로직을 변경하도록 제어부(900) 또는 이동부(300)에게 통지할 수 있다.The travel distance correction unit 320 is the distance calculated by the travel distance calculator 310 when the distance calculated by the travel distance calculator 310 is different from the distance information calculated by the sensing module 100 of the actual robot 1000. Correct information. In addition, when an error is accumulated and generated in the mileage calculator 310, the control unit 900 or the moving unit 300 may be notified to change the mileage calculation logic of the mileage calculator 310.

기능부(400)는 로봇의 특화된 기능을 제공하는 것을 의미한다. 예를 들어, 청소 로봇인 경우 기능부(400)는 청소에 필요한 구성요소를 포함한다. 안내 로봇인 경우 기능부(400)는 안내에 필요한 구성요소를 포함한다. 보안로봇인 경우 기능부(400)는 보안에 필요한 구성요소를 포함한다. 기능부(400)는 로봇이 제공하는 기능에 따라 다양한 구성요소를 포함할 수 있으며, 본 발명이 이에 한정되는 것은 아니다.The function unit 400 means to provide specialized functions of the robot. For example, in the case of a cleaning robot, the function unit 400 includes components necessary for cleaning. In the case of a guidance robot, the function unit 400 includes components necessary for guidance. In the case of a security robot, the functional unit 400 includes components required for security. The functional unit 400 may include various components according to functions provided by the robot, but the present invention is not limited thereto.

로봇(1000)의 제어부(900)는 맵 저장부(200)의 맵을 생성하거나 업데이트할 수 있다. 또한, 제어부(900)는 주행 과정에서 센싱 모듈(100)이 제공하는 객체의 정보를 식별하여 이동 객체인지 고정 객체인지를 구분하여 로봇(1000)의 주행을 제어할 수 있다.The control unit 900 of the robot 1000 may create or update a map of the map storage unit 200 . In addition, the control unit 900 can control the driving of the robot 1000 by identifying object information provided by the sensing module 100 and classifying whether the object is a moving object or a fixed object during the driving process.

정리하면, 로봇(1000)의 제어부(900)는 센싱 모듈(100)이 외부에 배치된 객체를 센싱하면, 센싱된 객체의 특성 정보에 기반하여 센싱된 객체 중에서 이동 객체를 식별하여, 이동 객체를 제외하고 상기 센싱 모듈이 고정 객체로 센싱한 정보에 기반하여 로봇의 현재 위치를 설정할 수 있다.In summary, when the sensing module 100 senses an object disposed outside, the control unit 900 of the robot 1000 identifies a moving object among the sensed objects based on the characteristic information of the sensed object, and identifies the moving object. Except for this, the current position of the robot may be set based on information sensed by the sensing module as a fixed object.

이하, 도 2를 참조하여, 본 발명의 일실시예에 따른 로봇을 좀더 소프트웨어 관점에서 설명하겠다. 도 2는 본 발명의 일 실시예에 의한 로봇 내의 엔진들에 관한 블록도이다.Hereinafter, with reference to FIG. 2, a robot according to an embodiment of the present invention will be described from a software point of view. 2 is a block diagram of engines in a robot according to an embodiment of the present invention.

상기 로봇(1000)은 디바이스 엔진(device engine)(1110), 내비게이션 엔진(navigation engine)(1120), 매니풀레이션 엔진(manipulation engine)(1130), 시스템 엔진(system engine)(1140), 및 매니지먼트 엔진(management engine)(1150) (이에 한정되지 않음)을 포함하여 구성될 수 있다. The robot 1000 includes a device engine 1110, a navigation engine 1120, a manipulation engine 1130, a system engine 1140, and management It may include, but is not limited to, a management engine 1150.

상기 디바이스 엔진(1110)은 상기 로봇(1000) 내에서 사용되는 상기 센싱모듈(100), 상기 맵 저장부(200), 상기 이동부(300), 상기 기능부(400), 상기 통신부(500) 등과 관련된 하드웨어 상태를 관리할 수 있다. The device engine 1110 includes the sensing module 100, the map storage unit 200, the moving unit 300, the function unit 400, and the communication unit 500 used in the robot 1000. You can manage the hardware state related to the etc.

상기 내비게이션 엔진(1120)은, 상기 맵 저장부(200) 및 상기 이동부(300)와 관련이 있는 것으로서, 상기 로봇(1000)이 이동하는데 필요한 기능을 담당할 수 있다. 즉, 상기 내비게이션 엔진(1120)은 상기 로봇(1000)이 구동하기 위한 지도, 좌표 정보 등을 관리하면서 상기 로봇을 이동하거나/하고 회전하는 역할을 담당할 수 있다. The navigation engine 1120 is related to the map storage unit 200 and the moving unit 300, and may be in charge of functions necessary for the robot 1000 to move. That is, the navigation engine 1120 may play a role of moving and/or rotating the robot 1000 while managing maps and coordinate information for driving the robot 1000 .

상기 매니풀레이션 엔진(1130)은, 상기 로봇(1000)의 팔, 다리 등에 구비된 관절을 관리할 수 있다. The manipulation engine 1130 may manage joints provided in the arms and legs of the robot 1000 .

상기 시스템 엔진(1140)은, 상기 로봇의 전력과 배터리 정보를 관리할 수 있다. The system engine 1140 may manage power and battery information of the robot.

상기 매니지먼트 엔진(1150)은 관제서버와 통신하면서 관제 서버에 메시지를 전달하고, 관제 서버로부터 명령을 수신하는 경우 상기 로봇(1000)이 상기 수신된 명령을 수행할 수 있도록 상기 수신된 명령을 상기 엔진들에 전달하는 역할을 수행할 수 있다. The management engine 1150 transmits a message to the control server while communicating with the control server, and when a command is received from the control server, the management engine 1150 transmits the received command to the engine so that the robot 1000 can execute the received command. It can play a role in transmitting to the field.

상기 로봇(1000)이 자체 디스플레이(미도시)를 구비하거나 외부 디스플레이에 연결될 수 있는 경우에는, 상기 로봇(1000)은 상기 디스플레이에 상기 로봇(1000)의 동작 상황 등을 디스플레이하기 위한 유저인터페이스 앱(User Interface App)(1200)을 구비할 수도 있다. When the robot 1000 has its own display (not shown) or can be connected to an external display, the robot 1000 displays a user interface app for displaying the operation status of the robot 1000 on the display ( User Interface App) 1200 may be provided.

상기 로봇(1000)은 ROS(Robot Operating System)이라는 운영체제에 기반하여 동작할 수 있다. 상기 ROS는 로봇용 공개소스 메타 운영체제로서, 일반 운영체제에서 제공하는 하드웨어 추상화, 저수준 기기제어, 빈번히 사용되는 기능들이 구현되어 있으며, 프로세스 간의 메시지 전달, 패키지 관리 기능들을 제공할 수 있다. 상기 ROS에서는 DDS(Data Distribution Service) 통신으로 메시지가 전송될 수 있다. 상기 DDS 통신는 UDP(User Datagram Protocol)/TCP 기반에서 동작하는데, 피어-투-피어(Peer-to-Peer) 통신 방식으로 별도의 마스터가 없다. 따라서, 상기 ROS에서의 상기 DDS 통신은 동일 네트워크 내에서만 통신 가능하다. 이하, 상기 ROS에 기반한 통신을 "ROS 통신"이라고 하겠으며, 상기 ROS 통신에 따른 메시지를 "ROS 메시지"라고 하겠다. The robot 1000 may operate based on an operating system called ROS (Robot Operating System). The ROS is an open-source meta operating system for robots, and implements hardware abstraction, low-level device control, and frequently used functions provided by general operating systems, and can provide message transmission between processes and package management functions. In the ROS, a message may be transmitted through DDS (Data Distribution Service) communication. The DDS communication operates based on User Datagram Protocol (UDP)/TCP, and it is a peer-to-peer communication method and does not have a separate master. Therefore, the DDS communication in the ROS is possible only within the same network. Hereinafter, communication based on the ROS will be referred to as "ROS communication", and a message according to the ROS communication will be referred to as a "ROS message".

이하, 도 3을 참조하여, 본 발명의 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 것에 대해 설명하겠다. 도 3은 본 발명의 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 상황을 도시한다. Hereinafter, referring to FIG. 3, communication between a plurality of robots and a control server according to an embodiment of the present invention will be described. 3 illustrates a situation in which a plurality of robots communicate with a control server according to an embodiment of the present invention.

도 3에서는 두 개의 로봇들(1000-1, 1000-2)이 관제서버(2000)와 통신하는 것이 예시되어 있다. 물론 이보다 더 많이 로봇들이 있을 수 있음은 물론이다. 두 개의 로봇들(1000-1, 1000-2) 각각은 앞서 설명된 상기 로봇(1000)에 따른 것이다. 본 명세서에서는 상기 두 개의 로봇들(1000-1, 1000-2)을 서로 구분하기 위해 "제 1" 및 "제 2"와 같은 수식어를 사용하여 제 1 로봇(1000-1)과 제 2 로봇(1000-2)으로 호칭하겠다. 그리고, 제 1 로봇(1000-1) 내의 구성요소 및/또는 엔진을 제 2 로봇(1000-2)의 구성요소 및/또는 엔진과 구별할 필요가 있는 경우에는, 각 구성요소에 대해서도 "제 1" 및 "제 2"와 같은 수식어를 사용하여 서로 구별하겠다. 예를 들어, 제 1 매니지먼트 모듈(1150-1)는 제 1 로봇(1000-1) 내의 것이고, 제 2 매니지먼트 모듈(1150-2)는 제 2 로봇(1000-2) 내의 것이다. In FIG. 3, it is illustrated that two robots 1000-1 and 1000-2 communicate with the control server 2000. Of course, there could be more robots than this. Each of the two robots 1000-1 and 1000-2 is according to the robot 1000 described above. In the present specification, modifiers such as "first" and "second" are used to distinguish the two robots 1000-1 and 1000-2 from each other, so that the first robot 1000-1 and the second robot ( 1000-2). And, when it is necessary to distinguish components and/or engines in the first robot 1000-1 from components and/or engines in the second robot 1000-2, "first We will use modifiers such as " and "second" to distinguish them from each other. For example, the first management module 1150-1 is within the first robot 1000-1, and the second management module 1150-2 is within the second robot 1000-2.

도 3에 도시된 바와 같이 제 1 로봇(1000-1)은 제 1 매니지먼트 모듈(1150-1)을 통해 관제서버(2000)와 통신하고, 제 2 로봇(1000-2)은 제 2 매니지먼트 모듈(1150-2)을 통해 관제서버(2000)와 통신할 수 있다. 상기 관제서버(2000)는 제 1 로봇(1000-1)과 제 2 로봇(1000-2)와는 원거리에 이격된 서버이거나, 또는 클라우드 서버일 수 있다. As shown in FIG. 3, the first robot 1000-1 communicates with the control server 2000 through the first management module 1150-1, and the second robot 1000-2 communicates with the second management module ( 1150-2) may communicate with the control server 2000. The control server 2000 may be a server remotely separated from the first robot 1000-1 and the second robot 1000-2, or a cloud server.

여기서의 통신은 소켓을 이용한 통신일 수 있다. "소켓"이라 함은, 패킷 통신 방식의 인터넷 프로토콜인 IP(Internet Protocol)와 전송 조절 프로토콜인 TCP(Transfer Control Protocol)로 이루어진 TCP/IP 통신을 네트워크를 통해 두 프로그램이 수행할 수 있도록 생성되는 링크의 단자를 의미할 수 있다. 즉, 상기 관제서버(2000)는 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)와 TCP/IP 기반의 소켓 통신을 하여 이들의 동작을 관제할 수 있다. Communication here may be communication using a socket. "Socket" refers to a link created so that two programs can perform TCP/IP communication through a network, which consists of IP (Internet Protocol), an Internet protocol of packet communication, and TCP (Transfer Control Protocol), a transmission control protocol. It can mean the terminal of. That is, the control server 2000 can control the operation of the first robot 1000-1 and the second robot 1000-2 through TCP/IP-based socket communication.

예를 들어, 상기 관제서버(2000)은 제 1 로봇(1000-1) 및/또는 제 2 로봇(1000-2)에게 예컨대 이동을 명령하기 위한 메시지를 상기 소켓 통신을 통해 전송할 수 있다. 이하, 상기 소켓 통신을 통해 전송되는 메시지를 "소켓 메시지"라고 칭하겠다. 소켓 메시지의 경우 TCP/IP에 기반하므로 수신자 및 송신자 정보가 포함되어야 함은 물론이다. For example, the control server 2000 may transmit a message for commanding movement to the first robot 1000-1 and/or the second robot 1000-2 through the socket communication. Hereinafter, a message transmitted through the socket communication will be referred to as a “socket message”. In the case of socket messages, since they are based on TCP/IP, receiver and sender information must be included.

해당 로봇(1000)은 상기 매니지먼트 모듈(1150)를 통해 상기 소켓 메시지를 수신하고, 상기 소켓 메시지를 상기 ROS 메시지로 변환하고, 상기 변환된 ROS 메시지를 내부의 관련 엔진들에게 전달함으로써 상기 명령이 상기 해당 로봇에서 수행될 수 있도록 할 수 있다. The corresponding robot 1000 receives the socket message through the management module 1150, converts the socket message into the ROS message, and transmits the converted ROS message to internal related engines so that the command is It can be made to be performed on the robot.

반대로, 상기 해당 로봇(1000)이 상기 관제 서버(2000)로 소정 데이터를 보낼 필요가 있는 경우에는 상기 매니지먼트 모듈(1150)이 상기 데이터에 ROS 메시지를 상기 소켓 메시지로 변환하여 상기 소켓 통신을 통해 상기 관제 서버(2000)로 전송할 수 있다. Conversely, when the corresponding robot 1000 needs to send predetermined data to the control server 2000, the management module 1150 converts the ROS message to the data into the socket message and sends the data through the socket communication. It can be transmitted to the control server (2000).

이와 같이 상기 매니지먼트 모듈(1150)는 상기 관제 서버(2000)와 통신을 주고 받기 때문에 이들은 서로 밀접하게 연관(coupling)되어 있다. 따라서, 상기 관제 서버(2000) 측에서 어떤 기능이 추가되거나 통신 프로토콜이 업데이트되는 등의 이유로 수정사항이 있으면 상기 매니지먼트 모듈(1150) 측에도 이에 맞추어 같이 수정되어야 할 사항이 있는 경우가 있다. 이 경우에는 각 로봇 별로 모든 매니지먼트 모듈(100)이 개별적으로 일일이 수정되어야 할 필요가 있다. As such, since the management module 1150 exchanges communication with the control server 2000, they are closely coupled to each other. Therefore, if there is a modification for reasons such as a function being added or a communication protocol being updated on the control server 2000, there may be a case where the management module 1150 also needs to be modified accordingly. In this case, all management modules 100 for each robot need to be individually modified.

또한, 상기 매니지먼트 모듈(1150)과 상기 관제 서버(2000)는 서로 밀접하게 연관되어 있으므로, 상기 관제 서버(2000)의 프론트-엔드(front-end) (예를 들면, 상기 관제 서버(2000)를 접속하기 위한 웹사이트)를 업데이트하려는 경우에도 조차 상기 매니지먼트 모듈(1150)을 이에 맞추어 같이 수정해야 하는 경우가 있다. 따라서, 상기 프론트-엔드를 업데이트하는데 많이 제약이 있을 수 있다. In addition, since the management module 1150 and the control server 2000 are closely related to each other, the front-end of the control server 2000 (eg, the control server 2000) There are cases in which the management module 1150 needs to be modified accordingly even when updating a website to be accessed). Therefore, there may be many constraints in updating the front-end.

이하에서는, 상기 불편함을 해결하기 위해 또다른 방식으로 상기 복수의 로봇들이 관제 서버와 통신하는 다른 실시예에 대해 도 4를 참조하여 설명하겠다. 도 4은 본 발명의 다른 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 상황을 도시한다.Hereinafter, another embodiment in which the plurality of robots communicate with the control server in another way to solve the inconvenience will be described with reference to FIG. 4 . 4 illustrates a situation in which a plurality of robots communicate with a control server according to another embodiment of the present invention.

도 4에서는 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 에지 서버(edge server)(3000)를 통해 상기 관제 서버(2000)와 통신하는 것이 예시되어 있다. 또한, 도 4에서는 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 에지 서버(edge server)(3000)가 동일한 네트워크 내에서 통신하는 것이 예시되어 있다. 여기서 동일한 네트워크 내에서 통신한다는 것은 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 에지 서버(3000)가 예컨대 동일한 와이파이 라우터 또는 억세스 포인트에 접속하여 서로 통신하는 것을 의미할 수 있다. 4 illustrates that the first robot 1000-1 and the second robot 1000-2 communicate with the control server 2000 through an edge server 3000. In addition, FIG. 4 illustrates that the first robot 1000-1, the second robot 1000-2, and the edge server 3000 communicate within the same network. Here, communicating within the same network may mean that the first robot 1000-1, the second robot 1000-2, and the edge server 3000 communicate with each other by accessing, for example, the same Wi-Fi router or access point. there is.

상기 에지 서버(3000)는 제 1 로봇(1000-1) 및/또는 제 2 로봇(1000-2)과, 상기 관제 서버(2000) 간의 통신을 중계하는 역할을 하기 때문에, 일종의 중계 서버(relay server) 또는 게이트웨이 서버(gateway server)라고 이해될 수 있다. 상기 에지 서버(3000)는 제 1 로봇(1000-1) 및/또는 제 2 로봇(1000-2)들과 같은 에지 디바이스에 물리적으로 가깝게 에지(edge) 측에 위치할 수 있다는 이유로 "에지"라고 명명되었다. Since the edge server 3000 serves to relay communication between the first robot 1000-1 and/or the second robot 1000-2 and the control server 2000, a kind of relay server (relay server) ) or a gateway server. The edge server 3000 is referred to as an “edge” because it can be located on the edge side physically close to edge devices such as the first robot 1000-1 and/or the second robots 1000-2. has been named

제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 관제 서버(2000)에 대해서는 앞서 설명되었으므로, 이하에서는 앞서 설명된 바와 다른 부분에 대해서 중점적으로 설명하겠다. Since the first robot 1000-1, the second robot 1000-2, and the control server 2000 have been described above, hereinafter, the description will focus on parts different from those described above.

제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버 (3000)가 동일한 네트워크 내에서 통신하는 것이 가능할 때 상기 에지 서버(3000)을 통해 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 상기 관제 서버(2000)와 통신하는 경우에는 제 1 로봇(1000-1) 및 제 2 로봇(1000-2) 각각에서 제 1 매니지먼트 엔진(1150-1) 및 제 2 매니지먼트 엔진(1150-2)이 생략될 수 있다. 그 대신에 상기 에지 서버(3000)에 제 1 매니지먼트 엔진(1150-1) 및 제 2 매니지먼트 엔진(1150-2)의 역할을 대신하는 통합 매니지먼트 엔진(unified management engine)(3150)이 구비될 수 있다. 상기 통합 매니지먼트 엔진(3150)은 에지 측에 구비된다는 이유로 EBME(Edge based Management Engine)라고도 명명될 수도 있다. When it is possible for the first robot 1000-1, the second robot 1000-2, and the edge server 3000 to communicate within the same network, the first robot 1000-1 through the edge server 3000 ) and the second robot 1000-2 communicate with the control server 2000, the first management engine 1150-1 in each of the first robot 1000-1 and the second robot 1000-2 and the second management engine 1150-2 may be omitted. Instead, a unified management engine 3150 replacing the roles of the first management engine 1150-1 and the second management engine 1150-2 may be provided in the edge server 3000. . The unified management engine 3150 may also be referred to as an edge based management engine (EBME) because it is provided on the edge side.

한편, 상기 관제 서버(2000)는 사용자가 상기 관제 서버(2000)에 억세스하기 위한 프론트-엔드(2030)를 제공할 수 있다. Meanwhile, the control server 2000 may provide a front-end 2030 for a user to access the control server 2000 .

이하, 도 5를 참조하여 상기 통합 매니지먼트 엔진(3150)에 대해 좀더 자세히 살펴보겠다. 도 5는 본 발명의 일실시예에 따른 통합 매니지먼트 엔진의 내부 블록도이다.Hereinafter, the integrated management engine 3150 will be described in more detail with reference to FIG. 5 . 5 is an internal block diagram of an integrated management engine according to an embodiment of the present invention.

상기 통합 매니지먼트 엔진(3150)은, ROS 통신 모듈(3151), 소켓 통신 모듈(3153), 데이터베이스(3155), 및 코어 모듈(3157)을 포함하여 구성될 수 있다. The integrated management engine 3150 may include a ROS communication module 3151, a socket communication module 3153, a database 3155, and a core module 3157.

상기 ROS 통신 모듈(3151)은, 상기 ROS 통신을 관장하는 모듈로서, 상기 로봇(1000)으로부터 수신하는 ROS 메시지를 상기 코어 모듈(3157)로 전달하는 한편, 상기 코어 모듈(3157)로부터 수신하는 ROS 메시지를 상기 로봇(1000)으로 전송할 수 있다. The ROS communication module 3151, as a module in charge of the ROS communication, transmits the ROS message received from the robot 1000 to the core module 3157, while the ROS received from the core module 3157 A message may be transmitted to the robot 1000.

상기 소켓 통신 모듈(3153)은, 상기 소켓 통신을 관장하는 모듈로서, 상기 관제 서버(2000)로부터 수신하는 소켓 메시지를 상기 코어 모듈(3157)로 전달하는 한편, 상기 코어 모듈(3157)로부터 수신하는 ROS 메시지를 상기 관제 서버(2000)로 전송할 수 있다. The socket communication module 3153, as a module in charge of the socket communication, transmits the socket message received from the control server 2000 to the core module 3157, while receiving from the core module 3157 A ROS message may be transmitted to the control server 2000.

상기 데이터베이스(3155)는 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)의 각종 정보를 저장할 수 있다. The database 3155 may store various types of information on the first robot 1000-1 and the second robot 1000-2.

상기 코어 모듈(3157)는 상기 ROS 통신 모듈(3151)로부터 수신하는 ROS 메시지를 소켓 메시지로 변환하여 상기 소켓 통신 모듈(3153)로 전달할 수 있고, 그 역으로, 상기 관제 서버(2000)로부터 수신하는 소켓 메시지를 ROS 메시지로 변환하여 상기 ROS 통신 모듈(3151)로 전달할 수 있다. 또한, 상기 코어 모듈(3157)은 상기 데이터베이스(3155)에 접근하여 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)의 각종 정보를 참조할 수 있다. The core module 3157 converts the ROS message received from the ROS communication module 3151 into a socket message and transmits it to the socket communication module 3153, and conversely, the ROS message received from the control server 2000 A socket message may be converted into a ROS message and transmitted to the ROS communication module 3151. In addition, the core module 3157 may access the database 3155 and refer to various types of information on the first robot 1000-1 and the second robot 1000-2.

이하 다시 도 4로 돌아가서, 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)가 동일한 네트워크 내에서 통신하는 경우, 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 상기 에지 서버(3000)를 통해 상기 관제 서버(2000)와 통신하는 것에 대해 좀더 구체적으로 살펴보겠다.4 again, when the first robot 1000-1, the second robot 1000-2, and the edge server 3000 communicate within the same network, the first robot 1000-1 and Communication between the second robot 1000-2 and the control server 2000 through the edge server 3000 will be described in more detail.

상기 서버(2000)는 예컨대 제 1 로봇(1000-1) 및 제 2 로봇(1000-2) 중에서 제 1 로봇(1000-1)을 이동시키기 위한 이동 명령을 담은 소켓 메시지를 상기 소켓 통신을 통해 상기 에지 서버(3000)에 전송할 수 있다. The server 2000 transmits, for example, a socket message containing a movement command for moving the first robot 1000-1 among the first robot 1000-1 and the second robot 1000-2 through the socket communication. It can be transmitted to the edge server 3000.

그러면, 상기 에지 서버(3000)는 상기 수신한 소켓 메시지를 상기 ROS 메시지로 변환할 수 있다. 이 때, 상기 에지 서버(3000)는 상기 소켓 메시지는 제 1 로봇에 대한 것임을 고려하여 상기 데이터베이스(3155)를 참조하여 상기 ROS 메시지에 제 1 로봇의 식별자를 포함시킬 수 있다. Then, the edge server 3000 may convert the received socket message into the ROS message. At this time, the edge server 3000 may include the identifier of the first robot in the ROS message by referring to the database 3155 considering that the socket message is for the first robot.

그리고, 상기 에지 서버(3000)는 상기 ROS 메시지를 상기 ROS 통신을 통해 상기 네트워크 내에 전송할 수 있다. And, the edge server 3000 may transmit the ROS message within the network through the ROS communication.

그러면, 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)를 포함한 상기 네트워크 내에 있는 모든 ROS 기반 기기들을 상기 ROS 메시지를 수신할 수 있다. Then, all ROS-based devices in the network including the first robot 1000-1 and the second robot 1000-2 can receive the ROS message.

상기 모든 ROS 기반 기기들 중에서 제 1 로봇(1000-1)은 상기 ROS 메시지 내에 있는 식별자를 확인함으로써 상기 ROS 메시지는 자신을 위한 것임을 인식하고 상기 ROS 메시지 내에 있는 상기 이동 명령을 수행할 수 있다. Among all the ROS-based devices, the first robot 1000-1 can recognize that the ROS message is for itself by checking the identifier in the ROS message and execute the movement command in the ROS message.

한편, 제 1 로봇(1000-1)이 상기 관제 서버(2000)로 소정 데이터를 보낼 필요가 있는 경우에는 제 1 로봇(1000-1)은 상기 소정 데이터를 포함하는 ROS 메시지를 생성할 수 있다. 이 때 제 1 로봇(1000-1)는 상기 ROS 메시지는 상기 관제 서버(2000)에 대한 것임을 고려하여 상기 ROS 메시지에 상기 관제 서버(2000) 또는 상기 에지 서버(3000)의 식별자를 포함시킬 수 있다.On the other hand, when the first robot 1000-1 needs to send predetermined data to the control server 2000, the first robot 1000-1 may generate an ROS message including the predetermined data. At this time, the first robot 1000-1 may include the identifier of the control server 2000 or the edge server 3000 in the ROS message considering that the ROS message is for the control server 2000. .

그리고, 제 1 로봇(1000-1)는 상기 ROS 메시지를 상기 ROS 통신을 통해 상기 네트워크 내에 전송할 수 있다. Also, the first robot 1000-1 may transmit the ROS message within the network through the ROS communication.

그러면, 제 2 로봇(1000-2) 및 상기 에지 서버를 포함한 상기 네트워크 내에 있는 모든 ROS 기반 기기들을 상기 ROS 메시지를 수신할 수 있다.Then, all ROS-based devices in the network including the second robot 1000-2 and the edge server can receive the ROS message.

상기 모든 ROS 기반 기기들 중에서 상기 에지 서버(3000)는 상기 ROS 메시지 내에 있는 식별자를 확인함으로써 상기 ROS 메시지는 자신을 위한 것임을 인식하고 이를 소켓 메시지로 변환할 수 있다. Among all the ROS-based devices, the edge server 3000 can recognize that the ROS message is for itself and convert it into a socket message by checking the identifier in the ROS message.

그 다음, 상기 에지 서버(3000)는 상기 변환된 소켓 메시지를 상기 관제 서버(2000)로 상기 소켓 통신을 통해 전송할 수 있다. Then, the edge server 3000 may transmit the converted socket message to the control server 2000 through the socket communication.

상기 관제 서버(2000)는 필요에 따라 상기 소켓 메시지에 포함된 상기 데이터에 관한 정보를 상기 프론트-엔드(2030)을 통해 사용자에게 제공할 수 있다.The control server 2000 may provide information about the data included in the socket message to the user through the front-end 2030 as needed.

이상에서는 제 1 로봇(1000-1)과 상기 관제 서버(2000)가 상기 에지 서버(3000)를 통해 서로 통신하는 것에 대해 설명하였다. 이는 제 2 로봇(1000-2)과 상기 관제 서버(2000)가 상기 에지 서버(3000)를 통해 서로 통신하는 것에도 그대로 적용될 수 있음은 물론이다. In the above, it has been described that the first robot 1000-1 and the control server 2000 communicate with each other through the edge server 3000. Of course, this can also be applied to the communication between the second robot 1000-2 and the control server 2000 through the edge server 3000 as it is.

도 4에서 설명된 바와 같이 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 상기 에지 서버(3000)를 통해 상기 관제 서버(2000)와 통신하는 경우에는 다음과 같은 장점이 있을 수 있다. As described in FIG. 4, when the first robot 1000-1 and the second robot 1000-2 communicate with the control server 2000 through the edge server 3000, there are the following advantages can

첫 번째, 본 발명에 따른 복수의 로봇들은 각기 매니지먼트 모듈을 구비할 필요가 없다. 따라서, 상기 관제 서버 측에서 어떤 기능이 추가되거나 통신 프로토콜이 업데이트되는 등의 이유로 수정사항이 있더라도 이에 맞추어 상기 복수의 로봇들을 일일이 수정할 필요가 없다. 대신에 상기 에지 서버(3000)의 통합 매니지먼트 모듈만을 이에 맞추어 수정하면 된다. 따라서, 로봇의 유지 및 관리가 더 편리해질 수 있다. First, a plurality of robots according to the present invention need not have a management module, respectively. Therefore, even if there is a modification due to a reason such as a function being added or a communication protocol being updated on the control server side, there is no need to individually modify the plurality of robots accordingly. Instead, only the integrated management module of the edge server 3000 needs to be modified accordingly. Thus, maintenance and management of the robot can be made more convenient.

두 번째, 앞서 살펴본 것처럼 본 발명의 로봇은 상기 매니지먼트 모듈을 개별적으로 구비할 필요가 없으므로, 상기 개별 로봇 입장에서는 기존의 매니지먼트 모듈이 담당하던 만큼의 연산량을 줄일 수 있다. 이는 로봇의 전력 소모 절감에도 도움될 수 있을 뿐 아니라, 상기 로봇의 연산 리소스를 절감하여 다른 연산 프로세싱에 활용할 수 있다는 장점이 있다. Second, as described above, since the robot of the present invention does not need to have the management module individually, the amount of calculations that the existing management module was in charge of can be reduced from the standpoint of the individual robot. This can not only help to reduce the power consumption of the robot, but also has the advantage of saving the robot's computational resources so that they can be used for other computational processing.

세 번째, 상기 에지 서버(3000)는 기존에 상기 관제 서버(2000)가 담당하던 기능을 맡을 수가 있다. 예를 들면, 상기 에지 서버(3000)는 제 1 로봇 및 제 2 로봇에 관한 정보를 포함하는 상기 데이터베이스(3155)를 포함함으로써, 기존에는 상기 관제 서버(2000)가 수행하던 상기 데이터베이스(3155)를 참조하는 기능을 상기 에지 서버(3000)가 수행할 수 있다. 그렇기 때문에, 상기 에지 서버(3000) 내의 상기 통합 매니지먼트 엔진(3150)과 상기 관제 서버(2000) 간의 연관성이 낮아질 수 있고, 그만큼 상기 통합 매니지먼트 엔진(3150)과는 독립적으로 자유롭게 상기 관제 서버(000)의 프론트-엔드(2030)를 수정하거나 업데이트할 수 있다는 장점이 있다. Thirdly, the edge server 3000 can take over functions previously handled by the control server 2000 . For example, the edge server 3000 includes the database 3155 including information about the first robot and the second robot, so that the database 3155 previously performed by the control server 2000 The referenced function may be performed by the edge server 3000. Therefore, the correlation between the integrated management engine 3150 and the control server 2000 in the edge server 3000 can be lowered, and the control server 000 can freely operate independently of the integrated management engine 3150. There is an advantage that the front-end 2030 of can be modified or updated.

네 번째, 상기 동일한 네트워크 내에 있는 ROS 기반 기기들 사이에는 ROS 통신이 가능하므로, 기존의 소켓 통신을 할 때보다 통신 속도가 더 빨라질 수 있다는 장점이 있다. Fourth, since ROS communication is possible between ROS-based devices in the same network, there is an advantage that communication speed can be higher than that of conventional socket communication.

이상에서는 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)가 동일한 네트워크 내에서 통신하는 경우, 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 상기 에지 서버(3000)를 통해 상기 관제 서버(2000)와 통신하는 것에 대해 설명하였다. 그런데, 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000) 중 적어도 하나는 다른 네트워크를 통해 통신하는 경우도 있을 수 있다. 이 경우에 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 상기 에지 서버(3000)를 통해 상기 관제 서버(2000)와 통신하는 것에 대해 도 6을 더욱 참조하여 설명하겠다. 도 6은 본 발명의 또다른 일실시예에 따라 복수의 로봇들이 관제 서버와 통신하는 상황을 도시한다. In the above, when the first robot 1000-1, the second robot 1000-2, and the edge server 3000 communicate within the same network, the first robot 1000-1 and the second robot 1000 -2) has described communication with the control server 2000 through the edge server 3000. However, at least one of the first robot 1000-1, the second robot 1000-2, and the edge server 3000 may communicate through another network. In this case, communication between the first robot 1000-1 and the second robot 1000-2 with the control server 2000 through the edge server 3000 will be further described with reference to FIG. 6 . 6 illustrates a situation in which a plurality of robots communicate with a control server according to another embodiment of the present invention.

도 6에서는 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)가 상기 에지 서버 (3000)를 통해 상기 관제 서버(2000)와 통신하는 것이 예시되어 있다. 제 1 로봇(1000-1), 제 2 로봇(1000-2), 상기 관제 서버(2000), 및 상기 에지 서버(3000)에 대해서는 앞서 설명되었으므로, 이하에서는 앞서 설명된 바와 다른 부분에 대해서 중점적으로 설명하겠다. 6 illustrates that the first robot 1000-1 and the second robot 1000-2 communicate with the control server 2000 through the edge server 3000. Since the first robot 1000-1, the second robot 1000-2, the control server 2000, and the edge server 3000 have been described above, the following will focus on other parts from those described above. Let me explain.

또한, 도 6에서는 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)가 모두 다른 네트워크를 통해 통신하는 것이 예시되어 있다. 여기서 다른 네트워크 내에서 통신한다는 것은 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 에지 서버 (3000)가 예컨대 서로 다른 와이파이 라우터 또는 억세스 포인트에 접속하여 서로 통신하는 것을 의미할 수 있다. 도 6에서는 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)이 서로 다른 제 1 네트워크, 제 2 네트워크, 및 제 3 네트워크에 각각 접속해 있는 것이 예시되어 있다. 6 illustrates that the first robot 1000-1, the second robot 1000-2, and the edge server 3000 all communicate through different networks. Here, communicating within a different network means that the first robot 1000-1, the second robot 1000-2, and the edge server 3000 communicate with each other by accessing, for example, different Wi-Fi routers or access points. can 6 illustrates that the first robot 1000-1, the second robot 1000-2, and the edge server 3000 are connected to different first networks, second networks, and third networks, respectively. has been

이 경우에는 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000) 각각에는 브리지 엔진(bridge engine)(1160-1, 1160-2, 3160)이 필요할 수 있다. 이하에서는 설명의 간편함을 위해 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)에 각각 구비되는 브리지 엔진을, 제 1 브리지 엔진(1160-1), 제 2 브리지 엔진(1160-2), 및 에지 브리지 엔진(3160)이라고 호칭하겠다. In this case, each of the first robot 1000-1, the second robot 1000-2, and the edge server 3000 may require bridge engines 1160-1, 1160-2, and 3160. there is. Hereinafter, for convenience of description, the bridge engines provided in the first robot 1000-1, the second robot 1000-2, and the edge server 3000, respectively, are referred to as the first bridge engine 1160-1, It will be referred to as a second bridge engine 1160-2 and an edge bridge engine 3160.

이하, 도 7을 더욱 참조하여, 상기 브리지 엔진에 대해 좀더 자세히 살펴보겠다. 도 7은 본 발명의 일실시예에 따른 브리지 엔진의 동작 순서도이다. Hereinafter, with further reference to FIG. 7 , the bridge engine will be described in more detail. 7 is an operation flowchart of a bridge engine according to an embodiment of the present invention.

제 1 브리지 엔진(1160-1), 제 2 브리지 엔진(1160-2), 및 상기 에지 브리지 엔진(3160)은 사실상 동일한 동작을 수행한다. 이에 제 1 네트워크에 속해 있는 제 1 브리지 엔진(1160-1)과 제 3 네트워크에 속해 있는 상기 에지 브리지 엔진(3160) 간의 통신을 예로 들어 상기 브리지 엔진의 동작에 설명하겠다. 이는 설명의 간편함을 위한 것으로서, 제 1 브리지 엔진(1160-1) 및 제 2 브리지 엔진(1160-2) 간의 통신, 제 2 브리지 엔진(1160-2) 및 상기 에지 브리지 엔진(3160) 간의 통신에도 그대로 적용될 수 있음은 물론이다. The first bridge engine 1160-1, the second bridge engine 1160-2, and the edge bridge engine 3160 perform substantially the same operation. Accordingly, the operation of the bridge engine will be described taking communication between the first bridge engine 1160-1 belonging to the first network and the edge bridge engine 3160 belonging to the third network as an example. This is for convenience of description, and communication between the first bridge engine 1160-1 and the second bridge engine 1160-2, and also between the second bridge engine 1160-2 and the edge bridge engine 3160. Of course, it can be applied as it is.

먼저 제 1 네트워크에 속해 있는 제 1 브리지 엔진(1160-1)은 제 1 네트워크 내에서 상기 ROS 통신을 통해 게시(publish)된 ROS 메시지를 구독(subscribe)할 수 있다[S71]. First, the first bridge engine 1160-1 belonging to the first network may subscribe to the ROS message published through the ROS communication within the first network [S71].

제 1 브리지 엔진(1160-1)은 상기 ROS 메시지를 소켓 메시지로 변환할 수 있다[S72]. The first bridge engine 1160-1 may convert the ROS message into a socket message [S72].

그 다음, 제 1 브리지 엔진(1160-1)은 상기 소켓 메시지를 소켓 통신을 통해 제 3 네트워크에 속해 있는 상기 에지 브리지 엔진(3160)으로 전송할 수 있다[S73]. Next, the first bridge engine 1160-1 may transmit the socket message to the edge bridge engine 3160 belonging to the third network through socket communication [S73].

상기 에지 브리지 엔진(3160)은 상기 소켓 통신을 통해 상기 소켓 메시지를 수신할 수 있다[S74]. The edge bridge engine 3160 may receive the socket message through the socket communication [S74].

그리고, 상기 에지 브리지 엔진(3160)은 상기 소켓 메시지를 다시 ROS 메시지로 변환할 수 있다[S75]. And, the edge bridge engine 3160 may convert the socket message into a ROS message again [S75].

그 다음, 상기 에지 브리지 엔진(3160)은 상기 ROS 메시지를 상기 ROS 통신을 통해 제 3 네트워크 내에서 게시할 수 있다[S76]. Then, the edge bridge engine 3160 may post the ROS message within the third network through the ROS communication [S76].

이와 같이, 제 1 브리지 엔진(1160-1) 및 상기 에지 브리지 엔진(3160)은 서로 다른 네트워크에 속해 있는 제 1 로봇(1000-1) 및 상기 에지 서버(3000)가 마치 동일한 네트워크에 있는 것처럼 상기 ROS 통신을 하도록 지원하는 역할을 한다.In this way, the first bridge engine 1160-1 and the edge bridge engine 3160 perform the same operation as if the first robot 1000-1 and the edge server 3000 belonging to different networks were in the same network. It plays a role of supporting ROS communication.

따라서, 도 4에 도시된 바와 같이 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)가 동일한 네트워크 내에서 상기 ROS 통신하는 통신 매커니즘은, 도 6에 도시된 바와 같이 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)가 서로 다른 네트워크에 속해 있더라도 제 1 브리지 엔진(1160-1), 제 2 브리지 엔진(1160-2), 및 상기 에지 브리지 엔진(3160)의 덕택에 그대로 적용될 수 있다. Therefore, as shown in FIG. 4, the communication mechanism for the ROS communication between the first robot 1000-1, the second robot 1000-2, and the edge server 3000 within the same network is shown in FIG. As shown, even if the first robot 1000-1, the second robot 1000-2, and the edge server 3000 belong to different networks, the first bridge engine 1160-1 and the second bridge engine (1160-2), and the edge bridge engine 3160, it can be applied as it is.

이하, 도 8을 더욱 참조하여, 제 1 네트워크에 속해 있는 제 1 브리지 엔진(1160-1)과 제 3 네트워크에 속해 있는 상기 에지 브리지 엔진(3160) 간의 통신에 대해 좀더 자세히 살펴 보겠다. 도 8은 도 6의 제 1 로봇 및 에지 서버 간의 통신을 설명하기 위한 블록도이다. Hereinafter, with further reference to FIG. 8 , communication between the first bridge engine 1160-1 belonging to the first network and the edge bridge engine 3160 belonging to the third network will be described in more detail. FIG. 8 is a block diagram illustrating communication between the first robot of FIG. 6 and an edge server.

도 8에서 설명되는 제 1 네트워크에 속해 있는 제 1 브리지 엔진(1160-1)과 제 3 네트워크에 속해 있는 상기 에지 브리지 엔진(3160) 간의 통신은, 제 1 브리지 엔진(1160-1) 및 제 2 브리지 엔진(1160-2) 간의 통신, 제 2 브리지 엔진(1160-2) 및 상기 에지 브리지 엔진(3160) 간의 통신에도 그대로 적용될 수 있음은 물론이다.Communication between the first bridge engine 1160-1 belonging to the first network described in FIG. 8 and the edge bridge engine 3160 belonging to the third network is performed by the first bridge engine 1160-1 and the second Of course, it can also be applied to communication between the bridge engines 1160-2 and communication between the second bridge engine 1160-2 and the edge bridge engine 3160.

먼저, 제 1 로봇(1000-1) 내의 한 엔진이 제 1 네트워크 내에서 상기 ROS 통신을 통해 ROS 메시지를 게시할 수 있다[S81]. First, an engine in the first robot 1000-1 may post a ROS message through the ROS communication within the first network [S81].

이에, 제 1 로봇(1000-1)의 제 1 브리지 엔진(1160-1)은 상기 ROS 통신을 통해 상기 ROS 메시지를 구독할 수 있다[S81]. 그리고, 제 1 로봇(1000-1)의 제 1 브리지 엔진(1160-1)은 상기 ROS 메시지를 소켓 메시지로 변환할 수 있다[S82]. Accordingly, the first bridge engine 1160-1 of the first robot 1000-1 may subscribe to the ROS message through the ROS communication [S81]. And, the first bridge engine 1160-1 of the first robot 1000-1 may convert the ROS message into a socket message [S82].

그 다음, 제 1 로봇(1000-1)의 제 1 브리지 엔진(1160-1)은 상기 소켓 메시지를 상기 소켓 통신을 통해 상기 에지 브리지 엔진(3160)으로 전송할 수 있다[S83]. Then, the first bridge engine 1160-1 of the first robot 1000-1 may transmit the socket message to the edge bridge engine 3160 through the socket communication [S83].

그러면, 상기 에지 브리지 엔진(3160)은 상기 소켓 메시지를 수신하여 ROS 메시지로 변환할 수 있다[S84]. Then, the edge bridge engine 3160 may receive the socket message and convert it into a ROS message [S84].

그 다음, 상기 에지 브리지 엔진(3160)은 상기 ROS 메시지를 제 3 네트워크 내에서 상기 ROS 통신을 통해 게시할 수 있다[S85]. Then, the edge bridge engine 3160 may post the ROS message through the ROS communication within the third network [S85].

이에, 상기 통합 매지니먼트 엔진(EBME)(3150)은 상기 ROS 통신을 통해 상기 ROS 메시지를 구독할 수 있다[S85]. 그리고, 상기 통합 매지니먼트 엔진(EBME)(3150)은 상기 ROS 메시지를 소켓 메시지로 변환할 수 있다[S86]. Accordingly, the integrated management engine (EBME) 3150 may subscribe to the ROS message through the ROS communication [S85]. In addition, the integrated management engine (EBME) 3150 may convert the ROS message into a socket message [S86].

그 다음, 상기 통합 매지니먼트 엔진(EBME)(3150)은 상기 소켓 메시지를 상기 소켓 통신을 통해 상기 관제 서버로 전송할 수 있다[S87].Then, the integrated management engine (EBME) 3150 may transmit the socket message to the control server through the socket communication [S87].

한편, 상기 통합 매지니먼트 엔진(EBME)(3150)은 상기 소켓 통신을 통해 상기 관제 서버로부터 소켓 메시지를 수신할 수도 있다[S91]. 그리고, 상기 통합 매지니먼트 엔진(EBME)(3150)은 상기 소켓 메시지를 ROS 메시지로 변환할 수 있다[S92].Meanwhile, the integrated management engine (EBME) 3150 may receive a socket message from the control server through the socket communication [S91]. And, the integrated management engine (EBME) 3150 may convert the socket message into a ROS message [S92].

그 다음, 상기 통합 매지니먼트 엔진(EBME)(3150)은 상기 ROS 메시지를 제 3 네트워크 내에서 상기 ROS 통신을 통해 게시할 수 있다[S93].Then, the integrated management engine (EBME) 3150 may post the ROS message through the ROS communication within the third network [S93].

그 다음, 상기 에지 브리지 엔진(3160)은 상기 ROS 통신을 통해 상기 ROS 메시지를 구독할 수 있다[S93]. 그리고, 상기 에지 브리지 엔진(3160)은 상기 ROS 메시지를 소켓 메시지로 변환할 수 있다[S94].Then, the edge bridge engine 3160 can subscribe to the ROS message through the ROS communication [S93]. And, the edge bridge engine 3160 may convert the ROS message into a socket message [S94].

그 다음, 상기 에지 브리지 엔진(3160)은 상기 소켓 메시지를 상기 소켓 통신을 통해 제 1 로봇(1000-1)의 제 1 브리지 엔진(1160-1)로 전송할 수 있다[S95]. Then, the edge bridge engine 3160 may transmit the socket message to the first bridge engine 1160-1 of the first robot 1000-1 through the socket communication [S95].

그러면, 제 1 로봇(1000-1)의 제 1 브리지 엔진(1160-1)은 상기 소켓 메시지를 수신하여 ROS 메시지로 변환할 수 있다[S96].Then, the first bridge engine 1160-1 of the first robot 1000-1 may receive the socket message and convert it into a ROS message [S96].

그 다음, 제 1 로봇(1000-1)의 제 1 브리지 엔진(1160-1)은 제 1 네트워크 내에서 상기 ROS 통신을 통해 ROS 메시지를 게시할 수 있다[S97].Then, the first bridge engine 1160-1 of the first robot 1000-1 may post a ROS message through the ROS communication within the first network [S97].

그러면, 제 1 로봇(1000-1) 내의 한 엔진이 제 1 네트워크 내에서 상기 ROS 통신을 통해 상기 ROS 메시지를 구독할 수 있다[S97].Then, one engine in the first robot 1000-1 can subscribe to the ROS message through the ROS communication within the first network [S97].

이상에서는 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)이 서로 다른 제 1 네트워크, 제 2 네트워크, 및 제 3 네트워크에 각각 접속해 있는 경우에 대해 설명하였다. 그런데, 제 1 로봇(1000-1), 제 2 로봇(1000-2), 및 상기 에지 서버(3000)가 이동통신(예를 들면, 5G 통신)에 기반하여 통신하는 경우에는 제 1 네트워크, 제 2 네트워크, 및 제 3 네트워크에 각각 접속해 있는 경우와 마찬가지로 제 1 브리지 엔진(1160-1), 제 2 브리지 엔진(1160-2), 및 상기 에지 브리지 엔진(3160)이 필요하다. 왜냐하면, 이동통신의 경우 소켓 통신에 기반하기 때문이다. In the above, for the case where the first robot 1000-1, the second robot 1000-2, and the edge server 3000 are connected to different first networks, second networks, and third networks, respectively explained. However, when the first robot 1000-1, the second robot 1000-2, and the edge server 3000 communicate based on mobile communication (eg, 5G communication), the first network, the second Similar to the case of connecting to the second network and the third network, the first bridge engine 1160-1, the second bridge engine 1160-2, and the edge bridge engine 3160 are required. This is because mobile communication is based on socket communication.

한편, 제 1 로봇(1000-1)과 제 2 로봇(1000-2)이 제 1 네트워크에 접속하여 있고, 상기 에지 서버(3000)가 제 3 네트워크에 접속되는 경우도 있을 수 있다. 이 경우에는 제 1 로봇(1000-1)과 제 2 로봇(1000-2) 간에는 ROS 통신이 가능하므로 제 1 브리지 엔진(1160-1) 및 제 2 브리지 엔진(1160-2) 중 하나만 구비되어도 충분하다. 즉 네트워크 별로 하나씩의 브리지 엔진만 있으면 본 발명이 구현 가능하다. Meanwhile, there may be cases in which the first robot 1000-1 and the second robot 1000-2 are connected to the first network and the edge server 3000 is connected to the third network. In this case, since ROS communication is possible between the first robot 1000-1 and the second robot 1000-2, only one of the first bridge engine 1160-1 and the second bridge engine 1160-2 is sufficient. do. That is, the present invention can be implemented with only one bridge engine per network.

또한 한편, 이상에서는 제 1 로봇(1000-1)의 제 1 매니지먼트 엔진(1150-1) 및 제 2 로봇(1000-2)의 제 2 매니지먼트 엔진(1150-2)가 상기 에지 서버(3000)의 통합 매니지먼트 엔진(3150)으로 구현되는 것에 대해 설명하였다. 그러나, 본 발명은 이에 한정되지 않는다. 제 1 로봇(1000-1) 및 제 2 로봇(1000-2)의 다른 엔진이 상기 에지 서버(3000)에 통합 엔진으로 구현될 수도 있다. 예를 들면, 제 1 내비게이션 엔진(1120-1) 및 제 2 로봇(1000-2)의 제 2 내비게이션 엔진(1120-2)가 상기 에지 서버(3000)에서 통합 내비게이션 엔진(미도시)로 구현될 수도 있다. On the other hand, in the above, the first management engine 1150-1 of the first robot 1000-1 and the second management engine 1150-2 of the second robot 1000-2 of the edge server 3000 What is implemented as the integrated management engine 3150 has been described. However, the present invention is not limited thereto. Other engines of the first robot 1000-1 and the second robot 1000-2 may be implemented as integrated engines in the edge server 3000. For example, the first navigation engine 1120-1 and the second navigation engine 1120-2 of the second robot 1000-2 may be implemented as an integrated navigation engine (not shown) in the edge server 3000. may be

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above-described present invention can be implemented as computer readable code on a medium on which a program is recorded. The computer-readable medium includes all types of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable media include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. , and also includes those implemented in the form of a carrier wave (eg, transmission over the Internet). Accordingly, the above detailed description should not be construed as limiting in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

1000: 로봇 100: 센싱모듈
200: 맵 저장부 300: 이동부
400: 기능부 500: 통신부
1110: 디바이스 엔진 1120: 내비게이션 엔진
1130: 매니풀레이션 엔진 1140: 시스템 엔진
1150: 매니지먼트 엔진 2000: 관제 서버
3000: 에지 서버 3150: 통합 매니지먼트 엔진
1000: robot 100: sensing module
200: map storage unit 300: moving unit
400: functional unit 500: communication unit
1110: device engine 1120: navigation engine
1130: Manipulation engine 1140: System engine
1150: management engine 2000: control server
3000: Edge Server 3150: Integrated Management Engine

Claims (10)

복수의 로봇들;
상기 복수의 로봇들로부터 원거리 이격되어 상기 복수의 로봇들을 제어하는 관제 서버; 및
상기 복수의 로봇들 및 상기 관제 서버 간의 통신을 중계하는 에지 서버를 포함하고,
상기 에지 서버는,
상기 복수의 로봇들로부터 수신하는 제 1 타입의 제 1 메시지를 제 2 타입의 제 1 메시지로 변환하여 상기 관제 서버로 전송하고, 상기 관제 서버로부터 수신하는 제 2 타입의 제 2 메시지를 제 1 타입의 제 2 메시지로 변환하여 상기 복수의 로봇들에게 전송하기 위한 통합 매니지먼트 엔진을 포함하는 것을 특징으로 하는 로봇 원격 제어 시스템.
a plurality of robots;
a control server remotely spaced from the plurality of robots and controlling the plurality of robots; and
Including an edge server for relaying communication between the plurality of robots and the control server,
The edge server,
The first message of the first type received from the plurality of robots is converted into a first message of the second type and transmitted to the control server, and the second message of the second type received from the control server is converted into a first message of the first type. A robot remote control system characterized in that it comprises an integrated management engine for converting the second message of and transmitting it to the plurality of robots.
제 1 항에 있어서,
제 1 타입은 ROS(Robot Operation System) 통신에 기반한 ROS 타입이고,
제 2 타입은 소켓 통신에 기반한 소켓 타입인 것을 특징으로 하는 로봇 원격 제어 시스템.
According to claim 1,
The first type is a ROS type based on ROS (Robot Operation System) communication,
The second type is a robot remote control system, characterized in that the socket type based on socket communication.
제 2 항에 있어서, 상기 통합 매니지먼트 엔진은,
상기 ROS 통신을 관장하는 ROS 통신 모듈;
상기 소켓 통신을 관장하는 소켓 통신 모듈;
상기 복수의 로봇들의 정보를 저장하는 데이터베이스; 및
상기 ROS 타입의 제 1 메시지를 상기 소켓 타입의 제 1 메시지로 변환하고, 상기 소켓 타입의 제 2 메시지를 상기 ROS 타입의 제 2 메시지로 변환하는 코어 모듈;을 포함하는 것을 특징으로 하는 로봇 원격 제어 시스템.
The method of claim 2, wherein the integrated management engine,
a ROS communication module in charge of the ROS communication;
a socket communication module managing the socket communication;
a database for storing information of the plurality of robots; and
and a core module for converting the first message of the ROS type into the first message of the socket type and converting the second message of the socket type into the second message of the ROS type. system.
제 3 항에 있어서, 상기 코어 모듈은,
상기 소켓 타입의 제 2 메시지를 상기 ROS 타입의 제 2 메시지로 변환할 때, 제 2 메시지의 수신 대상 로봇의 식별자를 제 2 타입의 제 2 메시지에 포함시키는 것을 특징으로 하는 로봇 원격 제어 시스템.
The method of claim 3, wherein the core module,
When converting the second message of the socket type into the second message of the ROS type, the robot remote control system, characterized in that, to include the identifier of the robot to receive the second message in the second message of the second type.
제 4 항에 있어서,
상기 복수의 로봇들 중에서 특정 로봇과 상기 에지 서버는 서로 다른 네트워크를 통해 접속되는 것을 특징으로 하는 로봇 원격 제어 시스템.
According to claim 4,
A robot remote control system, characterized in that a specific robot and the edge server among the plurality of robots are connected through different networks.
제 5 항에 있어서, 상기 에지 서버는,
상기 ROS 타입의 제 2 메시지를 상기 소켓 타입의 제 2 메시지로 변환하여 상기 특정 로봇으로 전송하기 위한 에지 브리지 엔진을 더욱 포함하는 것을 특징으로 하는 로봇 원격 제어 시스템.
The method of claim 5, wherein the edge server,
The robot remote control system further comprising an edge bridge engine for converting the second message of the ROS type into a second message of the socket type and transmitting the second message to the specific robot.
제 6 항에 있어서, 상기 특정 로봇은,
상기 소켓 타입의 제 2 메시지를 상기 ROS 타입의 제 2 메시지로 변환하기 위한 로봇 브리지 엔진을 포함하는 것을 특징으로 하는 로봇 원격 제어 시스템.
The method of claim 6, wherein the specific robot,
and a robot bridge engine for converting the second message of the socket type into the second message of the ROS type.
제 7 항에 있어서, 상기 로봇 브리지 엔진은,
상기 특정 로봇 내에서 생성되는 상기 ROS 타입의 제 1 메시지를 상기 소켓 타입의 제 1 메시지로 변환하여 상기 로봇 브리지 엔진으로 전송하는 것을 특징으로 하는 로봇 원격 제어 시스템.
The method of claim 7, wherein the robot bridge engine,
The robot remote control system, characterized in that for converting the first message of the ROS type generated in the specific robot into the first message of the socket type and transmitting it to the robot bridge engine.
제 8 항에 있어서, 상기 에지 브리지 엔진은,
상기 소켓 타입의 제 1 메시지를 상기 ROS 타입의 제 1 메시지로 변환하여 상기 통합 매니지먼트 엔진에 전송하는 것을 특징으로 하는 로봇 원격 제어 시스템.
The method of claim 8, wherein the edge bridge engine,
The robot remote control system characterized in that the first message of the socket type is converted into the first message of the ROS type and transmitted to the integrated management engine.
에지 서버가 복수의 로봇들로부터 제 1 타입의 제 1 메시지를 수신하는 단계;
상기 에지 서버가 제 1 타입의 제 1 메시지를 제 2 타입의 제 1 메시지로 변환하여 관제 서버로 전송하는 단계;
상기 에지 서버가 상기 관제 서버로부터 제 2 타입의 제 2 메시지를 수신하는 단계; 및
상기 에지 서버가 제 1 타입의 제 2 메시지로 변환하여 상기 복수의 로봇들에게 전송하는 단계;를 포함하는 것을 특징으로 하는 로봇 원격 제어 방법.
Receiving, by an edge server, a first message of a first type from a plurality of robots;
converting, by the edge server, a first message of a first type into a first message of a second type and transmitting the converted message to a control server;
receiving, by the edge server, a second message of a second type from the control server; and
The robot remote control method comprising the; step of converting the second message of the first type into a second message of the edge server and transmitting the message to the plurality of robots.
KR1020210122710A 2021-09-14 2021-09-14 System for remotely controlling robot and method for controlling the same KR20230039415A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210122710A KR20230039415A (en) 2021-09-14 2021-09-14 System for remotely controlling robot and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210122710A KR20230039415A (en) 2021-09-14 2021-09-14 System for remotely controlling robot and method for controlling the same

Publications (1)

Publication Number Publication Date
KR20230039415A true KR20230039415A (en) 2023-03-21

Family

ID=85800858

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210122710A KR20230039415A (en) 2021-09-14 2021-09-14 System for remotely controlling robot and method for controlling the same

Country Status (1)

Country Link
KR (1) KR20230039415A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102638951B1 (en) * 2023-08-09 2024-02-21 (주)모빌리티원 Heterogeneous drone/robot Unified Remote-Control system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102638951B1 (en) * 2023-08-09 2024-02-21 (주)모빌리티원 Heterogeneous drone/robot Unified Remote-Control system and method

Similar Documents

Publication Publication Date Title
US8380349B1 (en) Methods and systems for providing instructions to a robotic device
US20040139110A1 (en) Sensor network control and calibration system
EP2686993B1 (en) Adapter device for coupling an industrial field instrument to an industrial wireless network and related system and method
US20180147721A1 (en) Systems and methods for remote operating and/or monitoring of a robot
CN101970187A (en) Methods for repurposing temporal-spatial information collected by service robots
KR20170131603A (en) Cloud-based analysis of the use of robotic system components
US20210221001A1 (en) Map-based framework for the integration of robots and smart devices
JP2019534516A (en) How to operate an autonomous mobile robot
KR20230039415A (en) System for remotely controlling robot and method for controlling the same
US20210232149A1 (en) Systems and methods for persistent mapping of environmental parameters using a centralized cloud server and a robotic network
US20230004166A1 (en) Systems and methods for route synchronization for robotic devices
CN113642243A (en) Multi-robot deep reinforcement learning system, training method, device and medium
US20210266374A1 (en) Caching sticker profiles within a sticker communication system
CN113642137A (en) 5G network transmission access conversion protocol control system
US11886194B1 (en) Robotic surface cleaning service
US20230054574A1 (en) Building environmental sensor method and system for collecting data from same
US20230053901A1 (en) Method and system for collecting sensor data in buildings
US11825342B2 (en) Systems, apparatuses, and methods for reducing network bandwidth usage by robots
Gionfriddo Design and implementation of internal and external communication systems for a fleet of autonomous robots
KR20230109333A (en) Method and system for multiple robot scheduling
US20240004399A1 (en) Method and system for remotely controlling robots, and building having traveling robots flexibly responding to obstacles
Jiménez et al. Towards an open testbed for the cooperation of robots and wireless sensor networks
Lim Smart sensor networks
WO2020213545A1 (en) Robot, transmission method, and transmission estimation method
Olave Towards Cloud Native Context Aware Autonomous Robotics for IoT Applications