WO2022215776A1 - 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법 - Google Patents

클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법 Download PDF

Info

Publication number
WO2022215776A1
WO2022215776A1 PCT/KR2021/004401 KR2021004401W WO2022215776A1 WO 2022215776 A1 WO2022215776 A1 WO 2022215776A1 KR 2021004401 W KR2021004401 W KR 2021004401W WO 2022215776 A1 WO2022215776 A1 WO 2022215776A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
information
software
cloud server
software image
Prior art date
Application number
PCT/KR2021/004401
Other languages
English (en)
French (fr)
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 US18/553,963 priority Critical patent/US20240111548A1/en
Publication of WO2022215776A1 publication Critical patent/WO2022215776A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Definitions

  • the present invention relates to a cloud server and a method for converting a software image of a robot in a cloud server.
  • the present invention relates to a cloud server that transmits a software image to a robot based on a signal received from a robot in the cloud server, and a method for converting a software image of the robot in the cloud server.
  • robots have different robot characteristics, such as whether they have arms or a robot with legs or wheels and no monitor, and the operating system used by each robot and hardware features of each robot are different from each other.
  • the cloud robot industry does not have a common interface or communication standard between robots and uses various operating systems.
  • the robot can operate various operating systems such as Linux, Windows, real-time operating system, embedded Linux, and middleware such as ROS, OPRoS, OpenRTM, OROCOS on the processor board by selectively using various input/output boards, using one or more processor boards. have.
  • operating systems such as Linux, Windows, real-time operating system, embedded Linux, and middleware such as ROS, OPRoS, OpenRTM, OROCOS on the processor board by selectively using various input/output boards, using one or more processor boards. have.
  • the present invention aims to solve the above and other problems.
  • An object of the present invention is to provide a specific software image optimized for individual robots in consideration of a robot operating system, hardware, and software in a cloud server, and to update and manage information.
  • an object of the present invention is to provide a robot system and a control method capable of integrally managing robots regardless of whether different operating systems and hardware are installed in individual robots.
  • a cloud server connected to at least one robot, comprising: a communication unit for transmitting and receiving data to and from the at least one robot and an external device; and a control unit, wherein the control unit transmits a first signal including operating system (OS) information of a first robot, hardware information of the first robot, and software information of the first robot to a first robot among the at least one robot.
  • OS operating system
  • a memory for storing information corresponding to the at least one robot, and if a software image corresponding to the first signal exists in the memory, the stored software image is stored in the first It is characterized in that it is transmitted to a robot.
  • control unit selects a Docker file from a Docker file template based on the extracted operating system information of the first robot, the extracted hardware information of the first robot, and the extracted software information of the first robot. and generating a software image based on the generated Docker file, and transmitting the generated software image to the first robot.
  • control unit includes a robot profile registration unit and a robot software converter
  • the robot software converter requests the profile of the first robot from the robot profile registration unit
  • the robot profile registration unit receives the profile It is characterized in that it is transmitted to the robot software converter.
  • the robot software converter generates the software image based on the received profile, and transmits the generated software image to the first robot.
  • the control unit when the software image corresponding to the first signal exists in the memory but does not satisfy the specification condition, the control unit converts the software image to suit the specification, and the converted software image is characterized in that it is transmitted to the first robot.
  • the operating system information of the second robot, hardware information of the second robot, and the second robot from the communication unit Receive software information, convert the operation information of the second robot based on the received operating system information of the second robot, the received second hardware information, and the received software information of the second robot, and the converted It is characterized in that the job information is transmitted to the second robot.
  • control unit is characterized in that the conversion of the work information so that the priority is assigned to the robot located in a specific path.
  • the control unit when the control unit is connected to a third robot having different properties from the first robot, the operating system information of the third robot, hardware information of the third robot, and the third robot from the communication unit
  • the operating system information of the third robot when receiving software information and updating the first function of the first robot, based on the operating system information of the third robot, the hardware information of the third robot, and the software information of the third robot
  • the first function is updated to be the same as that of the first robot, and a second signal including information corresponding to the first function is transmitted to the third robot through the communication unit.
  • a method for converting a software image of a robot in a cloud server connected to at least one robot operating system information of a first robot, hardware information of the first robot, and software information of the first robot receiving a first signal including a first signal from a first robot among the at least one robot; if there is a software image corresponding to the first signal, transmitting the software image to the first robot; if there is no software image corresponding to the first signal, extracting operating system information of the first robot, hardware information of the first robot, and software information of the first robot from the first signal; generating a software image based on the extracted operating system information of the first robot, the extracted hardware information of the first robot, and the extracted software information of the first robot; and transmitting the generated software image to the first robot.
  • the cloud server can update and manage the software of the robot according to the characteristics of the individual robot by determining the operating system (OS), hardware, and software of the robot.
  • OS operating system
  • the cloud server can convert the software image when the software image does not meet the conditions by determining the OS, hardware and software of the robot.
  • the cloud server can convert the robot's work information based on the robot's OS, hardware, and software.
  • FIG. 1 is a view for explaining an embodiment in which a cloud server communicates with a robot according to an embodiment of the present invention.
  • FIG. 2 is a view for explaining an embodiment in which a robot software converter of a cloud server generates a software image according to an embodiment of the present invention.
  • FIG 3 is a view for explaining another embodiment in which a cloud server communicates with a robot according to an embodiment of the present invention.
  • FIG. 4 is a view for explaining another embodiment in which a robot software converter of a cloud server generates a software image according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an embodiment of generating a Docker file using a profile template of a robot used in a cloud server according to an embodiment of the present invention.
  • FIG. 6 is a view for explaining an embodiment of managing job information of a robot in a cloud server according to an embodiment of the present invention.
  • FIG. 7 is a view for explaining an embodiment of updating a function of a robot in a cloud server according to an embodiment of the present invention.
  • FIG. 1 is a view for explaining an embodiment in which a cloud server communicates with a robot according to an embodiment of the present invention.
  • the cloud server 200 may be connected to at least one robot including the first robot 100 .
  • the connection with the first robot 100 will be described as an example.
  • the cloud server 200 may be simultaneously connected to a plurality of robots.
  • the cloud server 200 may include a communication unit and a control unit.
  • the communication unit may connect the cloud server 200 and at least one robot, and transmit data transmitted/received from the robot to the cloud server 200 .
  • the communication unit may receive a first signal including operating system (OS) information, hardware information, and software information of the connected first robot 100 .
  • OS operating system
  • the communication unit may transmit the software image to the first robot 100 when there is a software image corresponding to the first signal.
  • the control unit may determine whether a software image corresponding to the first signal exists.
  • the controller may transmit the software image to the first robot 100 .
  • the control unit when the software image corresponding to the first signal does not exist, the control unit includes operating system information of the first robot 100, hardware information of the first robot 100 and Software information of the first robot 100 may be extracted.
  • the controller may generate a software image based on the extracted operating system information of the first robot, the extracted hardware information of the first robot, and software information of the first robot. Thereafter, the control unit may transmit the generated software image to the first robot 100 through the communication unit.
  • the control unit may further include a robot profile registration unit 210 and a robot software (SW) converter 220 to perform the above-described embodiment.
  • SW robot software
  • the robot software converter 220 may request the robot profile of the first robot 100 from the robot profile registration unit 210 . That is, the above-described first signal may include a robot profile request signal.
  • the robot profile may correspond to a format defining specifications of hardware and software of the robot.
  • the hardware may include hardware products such as CPU/GPU, RAM, sensor, camera, motor, microphone, and speaker.
  • the software may include an operating system (OS), a middleware platform, a driver, a function, and the like.
  • OS operating system
  • the format can be written in json, yaml, etc., and json and yaml can be converted to each other.
  • At least one robot may communicate with a server (RAP server, cloud server of the present invention) that stores the robot profile.
  • RAP server cloud server of the present invention
  • the robot profile registration unit 210 may store the robot profile of the first robot 100 in advance.
  • the robot profile registration unit 210 may receive a server address (RAProfile.site) in which the profile of the first robot is stored from the first robot 100 .
  • the robot profile registration unit 210 may be configured as a separate UAProfile server. This will be described in detail with reference to FIG. 3 .
  • the robot profile registration unit 210 may transmit the robot profile of the first robot 100 to the robot software converter 220 .
  • the robot profile of the first robot 100 may include operating system information, hardware information, and software information of the first robot 100 .
  • the robot software converter 220 may select or generate a software image based on the received robot profile.
  • the hardware configuration of the robot software converter 220 may assume a general Linux server.
  • the software image may be selected.
  • a software image can be generated based on the received robot profile of the first robot 100.
  • the robot software converter 220 may search for a function required by the robot and select, convert, or generate.
  • the robot software converter 220 may transmit the selected or generated software image to the first robot 100 .
  • the cloud server may remotely deploy the first robot 100 , and the first robot 100 may reboot to use a corresponding function.
  • FIG. 2 is a view for explaining an embodiment in which a robot software converter of a cloud server generates a software image according to an embodiment of the present invention.
  • the robot software converter may receive a first signal including robot operating system information, hardware information, and software information from the robot.
  • the first signal may include a robot profile.
  • the cloud server may store a server address (RAProfile.site) in which the robot profile is stored from the robot, and may receive a robot profile (RAProfile.xml) including operating system information, hardware information, and software information of the robot from the server. .
  • RAProfile.site server address
  • RAProfile.xml robot profile
  • the robot software converter may determine whether the first information corresponding to the first signal exists.
  • the first information may correspond to a software image of the robot.
  • the robot software converter may extract operating system information, hardware information, and software information of the robot from the first signal. That is, the robot software converter may extract operating system information, hardware information, and software information of the robot from the robot profile.
  • the robot software converter may generate first information based on the extracted operating system information, hardware information, and software information of the robot.
  • the first information may correspond to a software image for the robot. That is, the robot software converter may generate a software image for the robot based on the extracted operating system information, hardware information, and software information of the robot.
  • the robot software converter may generate a software image for the robot based on the capability of the robot that currently wants to be connected.
  • the robot software converter may transmit the generated software image to the robot according to step S250.
  • the robot software converter may transmit the first information to the robot.
  • the generated first information can be transmitted to the robot.
  • the cloud server may be connected to a terminal including a display such as a touch screen, and the results of the embodiments performed in the cloud server may be output to the terminal through the display of the terminal.
  • a control signal can be transmitted. Accordingly, the user using the terminal can check the results of the embodiments performed in the cloud server through the display of the terminal and control the results.
  • FIG 3 is a view for explaining another embodiment in which a cloud server communicates with a robot according to an embodiment of the present invention.
  • FIG. 3 will be described including specific files transmitted/received by the cloud server, the user, and the robot as compared with FIG. 1 .
  • step S310 when the robot is released, the user may register the robot's capabilities on the website. For example, when a robot is released, a user who is a manufacturer of the robot may register characteristics of the robot, or a user who is a purchaser of the robot may register characteristics of the robot.
  • a user may register a robot profile including operating system information, hardware information, and software information about the robot on the website.
  • the registered robot profile may have the format of an xml file, a yaml file, or a json file.
  • step S320 the user may register the robot profile of the robot in the cloud server.
  • the user may register the robot profile of the robot described above in the robot profile registration unit of the cloud server.
  • the registered robot profile may be in the form of an xml file, a yaml file, or a json file as well.
  • the user may register a server address in which the robot profile is stored in the cloud server. That is, the robot may inform the cloud server of the RAP server address that stores the robot profile (RAProfile). Accordingly, the cloud server may access the RAP server and acquire hardware information and software information of the robot through the robot profile of the corresponding robot.
  • specific product information of the robot provided by the manufacturer of the robot may be previously stored in the cloud server or the external server.
  • the robot product information may include all of the robot operating system information, hardware information, and software information.
  • the cloud server may grasp the hardware information of the robot by referring to the internal memory or the external server.
  • the cloud server and the robot may perform communication in a connected state.
  • the cloud server and the robot may correspond to a state in which basic communication such as a message of 160 bytes or less is always possible.
  • the robot may request a software update from the cloud server.
  • the cloud server may forward the robot's software update request to the robot software converter.
  • the robot software converter may request a robot profile from the robot profile registration unit.
  • the robot software converter may request a profile for the characteristics of the robot.
  • the robot profile registration unit may transmit the registered robot profile to the robot software converter based on the profile request for the robot characteristics.
  • the robot profile registration unit may transmit a profile for the registered robot characteristics to the robot software converter.
  • the robot software converter may select an appropriate software image based on the received robot profile.
  • the robot software converter may generate an appropriate software image based on the robot's profile if an appropriate software image does not exist.
  • the robot software converter may convert the software image to conform to the specification when the appropriate software image exists in the cloud server but does not satisfy the specification condition.
  • the robot software converter may be based on the received profile for the characteristics of the robot when selecting, generating, converting the software image.
  • the robot software converter may generate a Docker file using a Docker file template based on operating system information, hardware information, and software information of the robot from the received robot profile.
  • the robot software converter can generate a software image based on the generated docker file.
  • the robot software converter can send the selected or created software image to the robot.
  • the software image may be a software image for an agent, an engine, and data.
  • the robot software converter may distribute the software image in the form of a docker file.
  • a Docker file may be generated based on operating system information, software information, and hardware information of the robot, and a software image may be generated based on the Docker file.
  • the robot software converter may select the same robot operating system based on the robot operating system information, and generate a Docker file corresponding to the hardware information and the software information from the Docker file template with a build command used in the selected robot operating system. That is, it is characterized in that a software image specialized for the robot is generated based on the robot operating system information, hardware information, and software information. This will be described in detail with reference to FIGS. 5 to 9 .
  • FIG. 4 is a view for explaining another embodiment in which a robot software converter of a cloud server generates a software image according to an embodiment of the present invention.
  • the robot software converter may receive a profile for characteristics of the robot.
  • the profile for the characteristics of the robot may correspond to the yaml file format.
  • the robot software converter may determine whether there is an appropriate software image in the cloud server based on the profile for the characteristics of the robot. In an embodiment of the present invention, the robot software converter may check whether there is a currently searched software image through the command “$ docker image Is”.
  • the robot software converter may extract essential information, ie, operating system information, hardware information, and software information of the robot from the received profile.
  • the robot's main board may have different operating systems.
  • the main board of a robot may have a different version of the operating system, such as Linux 18.03 (Bionic), 20.04 (Foxy).
  • uiBoard and controlBoard may have different operating systems as well.
  • hardware information of the robot may include CPU information, motor information, battery specification information, connectivity information, and the like.
  • the hardware information of the robot can be used when actually making a software image by selectively compiling an application.
  • the robot software converter may generate a Docker file corresponding to the robot using the information extracted from the profile and the Docker file template.
  • the robot software converter may generate a Docker file corresponding to the current robot through the command “$ docker build -t -mainboard-version-new-2.0 -f ./dockerfile”.
  • step S450 the robot software converter may build the generated Docker file into a Docker-container image.
  • the robot software converter may transmit the built Docker container image to the robot according to step S460 .
  • the robot software converter may transmit (distribute) the software image to the robot.
  • the generated software image can be transmitted to the robot even if the software image does not exist.
  • the cloud server may receive a “success” message from the robot through the communication unit.
  • FIG. 5 is a flowchart illustrating an embodiment of generating a Docker file using a profile template of a robot used in a cloud server according to an embodiment of the present invention.
  • the cloud server may analyze the robot's profile template used to generate the robot's Docker file.
  • the profile template of the robot may have examples such as [Table 1] and [Table 2] below.
  • Table 1 describes the profile template of the robot used in the cloud server according to an embodiment of the present invention.
  • the cloud server may use a profile template to create a Docker file, and since the profile template of the robot may have various templates, an example in [Table 1] is provided. In addition, it goes without saying that the cloud server can use other profile templates other than the profile templates of [Table 1].
  • the robot profile template may include a robot category, a robot site, a robot ID, and robot hardware information.
  • the robot category may indicate a type of robot. For example, it may indicate whether the robot is a delivery robot or a food and beverage production robot.
  • the robot site may indicate where the robot is used. For example, it may indicate whether a place where the robot is used is a restaurant or the like.
  • the robot ID may indicate a unique identification number of the robot. For example, it may be expressed as “lgeDeliveryFnB/ID000001”.
  • robot hardware information includes robot vendor information, motor information, battery information, control board information, main board information, ui board information, etc. may include
  • the motor information may include manufacturer information, rpm information, method information, and specification information of the motor, and the specification information may further include wheel number and diameter information.
  • battery information may all include manufacturer information and specification information.
  • control board information may all include manufacturer information and specification information.
  • main board information may all include manufacturer information and specification information.
  • ui board information may all include manufacturer information and specification information.
  • Table 2 describes another embodiment of a template of a Docker file used in a cloud server according to an embodiment of the present invention.
  • FIG. 2 an example of a Docker file template used in the cloud server will be described.
  • the Docker file template of [Table 2] will be described using a Docker file template applied to a robot operating system (ROS2) as an example, but it can be applied to other operating systems as well.
  • ROS2 robot operating system
  • the Docker file template may include information on time zone setup, package installation, platform installation, manufacturer's package update, new package creation, and setup.
  • the container time of Docker may be set through the RUN echo command.
  • the package may be managed through the RUN apt-get update/install command.
  • the ROS platform may be installed through the RUN apt-get install ros command.
  • the old version of the package may be deleted and a new version may be installed through the RUN rm -rf/install command.
  • bashrc the most widely used shell in Linux
  • an entrypoint may be set.
  • the cloud server may use a profile according to the robot characteristics. That is, the cloud server uses a robot profile according to robot characteristics to generate a Docker file. For example, a profile for a Docker file of [Table 3] below may be used.
  • Table 3 describes a profile for a Docker file generated by a cloud server according to an embodiment of the present invention.
  • [Table 3] shows the robot profile including the robot hardware information. That is, [Table 3] may correspond to the robot profile received for the Docker file generated by the cloud server.
  • the robot profile may include robot hardware information.
  • the hardware information of the robot may include the overall size of the robot, imu hardware information, and lidar hardware information. That is, as in the above example, the robot profile according to an embodiment of the present invention may include hardware information on sensors included in the robot.
  • the cloud server may generate a Docker file using the robot profile template and the robot profile.
  • the following [Table 4] and [Table 5] are examples of the generated Docker file, and the cloud server may generate the Docker file using the above-described robot profile template and robot profile. Thereafter, the cloud server may update the robot's operating system or software by distributing the software image using the generated Docker file.
  • [Table 4] and [Table 5] describe Docker files generated by the cloud server according to an embodiment of the present invention.
  • [Table 4] and [Table 5] describe an embodiment of building a Docker file based on the robot's operating system information, platform information, and sensor information by using a Docker file template created as a default by acquiring a profile based on robot characteristics.
  • the present invention builds a Docker file with a build command used in Linux basically as follows.
  • the robot software converter may bring the same operating system based on the received operating system information of the robot profile. For example, if the operating system of the received robot profile is ubuntu:18.04, the robot software converter may build a Docker file based on ubuntu:18.04.
  • the robot software converter may bring related platform information and software information for installing related sensors based on the received platform information and sensor information of the robot profile. .
  • the robot software converter may record the relevant platform storage based on the platform information of the received robot profile. For example, if the platform of the received robot profile is ROS2:dashing, the robot software converter can write the docker file to the platform repository to import ROS2:dashing.
  • the robot software converter may record the software information to install the sensor based on the sensor information of the received robot profile. For example, when the received robot profile includes lidar sensor information, inertial measurement device sensor information, and camera sensor information, software information (eg, url address) for installing them may be recorded.
  • software information eg, url address
  • FIG. 6 is to explain an embodiment of job and schedule management of a robot having a heterogeneous operating system
  • FIG. 7 is a second robot having a different operating system when updating a first function of a first robot among robots having a heterogeneous operating system
  • An embodiment in which the first function is updated to be the same as that of the first robot will be described.
  • FIG. 6 is a view for explaining an embodiment of managing job information of a robot in a cloud server according to an embodiment of the present invention.
  • the cloud server when the cloud server is connected to the second robot 620 having different capabilities from the first robot 610, the operating system information, hardware information, and software information of the second robot 620 are Receive and convert the work information of the second robot 620 based on them. Also, the cloud server may transmit the converted job information to the second robot 620 .
  • the cloud server may convert job information so that a priority is assigned to a robot located on a specific path. For example, a plurality of robots may prioritize robots on a specific path, such as an intersection, during movement.
  • the cloud server may manage the operating system and hardware of the robot to be optimized for individual robots based on tasks and schedules of a plurality of other robots.
  • the first robot 610 may use Linux as an operating system, and the manufacturer may correspond to Company A.
  • the cloud server converts the work and schedule information to be suitable for the operating system of the first robot 610, Linux, and the manufacturer's A robot, and the first robot ( 610).
  • the cloud server provides the job and schedule information, respectively. It can be converted and transmitted based on the robot's operating system information, hardware information, and software information.
  • the cloud server converts the job and schedule information according to each operating system information, hardware information, and software information even if the operating systems, hardware, and software of the first robot 610 to the third robot 630 are all different to transform the robot. can be individually controlled.
  • the cloud server grasps the characteristics of each robot through the robot profile received from the robot, it can know which tasks and schedules to manage. For example, if the category on the robot profile is classified as “food delivery”, the cloud server may know whether the corresponding robot is a food delivery robot. Through this, the cloud server may command the latest related work item and schedule according to the operating system and format of the robot.
  • FIG. 7 is a view for explaining an embodiment of updating a function of a robot in a cloud server according to an embodiment of the present invention.
  • the operating system information and hardware information of the third robot 730 from the RAP server (or memory) and software information.
  • the cloud server updates the first function of the first robot 710 , based on the operating system information, hardware information, and software information of the third robot 730 through the above-described method
  • the first function may be updated in the same way as that of the first robot 710 .
  • the cloud server converts the first function of the third robot 730 through the robot software converter based on the operating system, hardware and software of the third robot 730, and then a signal including information corresponding to the first function. may be transmitted to the third robot 730 .
  • the first functions of the other robots 720 and 730 in which heterogeneous operating systems, hardware and software are installed are identical to those of the first robot 710 . can be updated.
  • the cloud server may remotely install the first function of the third robot 730 by searching, converting, and generating the first function based on the robot's profile (RAProfile).
  • the cloud server may search the inside of the cloud server for the first function of the third robot 730 .
  • the first function may be installed in the third robot 730 .
  • the cloud server may create a software image for the first function based on the robot profile for the third robot 730 and remotely install it.
  • the cloud server may create a software image for the first function having an updated version based on the robot profile for the third robot 730 and remotely install it.
  • the first function for the third robot 730 may not exist in the cloud server.
  • the cloud server may create a software image for the first function based on the robot profile for the third robot 730 and remotely install it.
  • the present invention described above can be implemented as computer-readable code on a medium in which a program is recorded.
  • the computer-readable medium includes all kinds of recording devices in which data readable 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. There is also a carrier wave (eg, transmission over the Internet) that includes implementation in the form of.
  • the computer may include the control unit 180 of the terminal. Accordingly, the above detailed description should not be construed as restrictive in all respects but as exemplary. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention.
  • the present invention can be repeatedly implemented for converting the software image of the robot in the cloud server and the cloud server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Mathematical Physics (AREA)
  • Manipulator (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법에 관한 것으로서, 보다 상세하게는, 적어도 하나의 로봇과 연결된 클라우드 서버에 있어서, 상기 적어도 하나의 로봇 및 외부 디바이스와 데이터를 송수신하는 통신부; 및 제어부를 포함하고, 상기 제어부는 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 포함하는 제 1 신호를 상기 적어도 하나의 로봇 중 제 1 로봇으로부터 수신하고, 상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면, 상기 소프트웨어 이미지를 상기 제 1 로봇으로 전송하고, 상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하지 않으면, 상기 제 1 신호로부터 상기 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 추출하고, 상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 소프트웨어 이미지를 생성하고, 상기 생성된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는, 클라우드 서버를 제공한다.

Description

클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법
본 발명은 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법에 관한 것이다.
보다 상세하게는, 본 발명은 클라우드 서버에서 로봇으로부터 수신한 신호에 기초하여 소프트웨어 이미지를 로봇에게 전송하는 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법에 관한 것이다.
종래의 로봇 산업은 주로 산업용 로봇을 위주로 하였으나, 최근 로봇 기술의 발전, 로봇 이용에 대한 대중의 관심 등을 통해 다양한 기능을 수행하는 로봇들이 늘어나고 있다. 하지만, 로봇들은 팔이 있는 로봇이냐, 다리 또는 바퀴가 있고 모니터가 없는 로봇이냐 등과 같은 로봇 특성이 서로 다르고, 각 로봇에서 사용하는 운영체제 및 각 로봇에 구비된 하드웨어의 특징들이 서로 다르다.
그럼에도 불구하고 클라우드 로봇 산업은 다른 컴퓨팅 산업과 달리 공통적인 인터페이스나 로봇 간의 통신 표준을 갖고 있지 않고 다양한 운영체제를 사용하고 있다.
특히, 로봇은 다양한 입출력 보드들의 선택적 사용, 1개 이상의 프로세서 보드의 사용, 프로세서 보드에 리눅스, 윈도우, 실시간 운영체제, 임베디드 리눅스 등의 다양한 운영체제 및 ROS, OPRoS, OpenRTM, OROCOS와 같은 미들웨어가 작동될 수 있다.
따라서, 로봇마다 필요로 하거나, 구동 가능한 어플리케이션 및 로봇 컨텐츠들은 같은 기능을 하더라도 프로세서 보드, 운영체제, 미들웨어 또는 로봇 특성 등에 따라 서로 달라질 수 밖에 없다.
이에 따라, 클라우드 로봇 시스템에서는 서로 다른 운영체제(OS), 하드웨어 및 소프트웨어를 사용하는 로봇들을 호환 가능하도록 소프트웨어를 변환할 필요가 있다.
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다.
본 발명은 클라우드 서버에서 로봇 운영체제, 하드웨어, 소프트웨어를 고려하여 개별 로봇에 최적화된 특정 소프트웨어 이미지를 제공하고, 정보를 업데이트하고 관리하는 것을 목적으로 한다.
보다 상세하게는, 본 발명은 개별 로봇에 서로 다른 운영체제, 하드웨어가 설치되어 있어도 이에 관계없이 로봇들을 통합적으로 관리할 수 있는 로봇 시스템 및 제어 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 측면에 따르면, 적어도 하나의 로봇과 연결된 클라우드 서버에 있어서, 상기 적어도 하나의 로봇 및 외부 디바이스와 데이터를 송수신하는 통신부; 및 제어부를 포함하고, 상기 제어부는 제 1 로봇의 운영체제(OS) 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 포함하는 제 1 신호를 상기 적어도 하나의 로봇 중 제 1 로봇으로부터 수신하고, 상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면, 상기 소프트웨어 이미지를 상기 제 1 로봇으로 전송하고, 상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하지 않으면, 상기 제 1 신호로부터 상기 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 추출하고, 상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 소프트웨어 이미지를 생성하고, 상기 생성된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는, 클라우드 서버를 제공한다.
본 발명의 일 측면에 따르면, 상기 적어도 하나의 로봇에 대응하는 정보를 저장하는 메모리를 더 포함하고, 상기 제 1 신호에 대응하는 소프트웨어 이미지가 상기 메모리에 존재하면, 상기 저장된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 제어부는 상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 도커 파일 템플릿으로부터 도커 파일을 생성하고, 상기 생성된 도커 파일을 기초로 소프트웨어 이미지를 생성하고, 상기 생성된 소프트웨어 이미지를 제 1 로봇으로 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 제어부는 로봇 프로파일 등록부와 로봇 소프트웨어 컨버터를 포함하고, 상기 로봇 소프트웨어 컨버터는 상기 로봇 프로파일 등록부에 상기 제 1 로봇의 프로파일을 요청하고, 상기 로봇 프로파일 등록부는 상기 프로파일을 상기 로봇 소프트웨어 컨버터에 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 로봇 소프트웨어 컨버터는 상기 수신한 프로파일에 기초하여 상기 소프트웨어 이미지를 생성하고, 상기 생성된 소프트웨어 이미지를 상기 제 1 로봇에게 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 제어부는 상기 제 1 신호에 대응하는 소프트웨어 이미지가 상기 메모리에 존재하나 사양 조건을 만족하지 않는 경우, 상기 소프트웨어 이미지를 사양에 적합하게 변환하고, 상기 변환된 소프트웨어 이미지를 상기 제 1 로봇에게 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 제어부는 상기 제 1 로봇과 속성이 상이한 제 2 로봇과 연결된 경우, 상기 통신부로부터 상기 제 2 로봇의 운영체제 정보, 상기 제 2 로봇의 하드웨어 정보 및 상기 제 2 로봇의 소프트웨어 정보를 수신하고, 상기 수신된 제 2 로봇의 운영체제 정보, 상기 수신된 제 2 하드웨어 정보 및 상기 수신된 제 2 로봇의 소프트웨어 정보를 기초로 상기 제 2 로봇의 작업 정보를 변환하고, 상기 변환된 작업 정보를 상기 제 2 로봇으로 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 제어부는 특정 경로에 위치한 로봇에게 우선 순위가 배정되도록 상기 작업 정보를 변환하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 상기 제어부는 상기 제 1 로봇과 속성이 상이한 제 3 로봇과 연결된 경우, 상기 통신부로부터 상기 제 3 로봇의 운영체제 정보, 상기 제 3 로봇의 하드웨어 정보 및 상기 제 3 로봇의 소프트웨어 정보를 수신하고, 상기 제 1 로봇의 제 1 기능을 업데이트하는 경우, 상기 제 3 로봇의 운영체제 정보, 상기 제 3 로봇의 하드웨어 정보 및 상기 제 3 로봇의 소프트웨어 정보를 기초로 상기 제 3 로봇의 제 1 기능을 상기 제 1 로봇과 동일하게 업데이트하고, 상기 제 1 기능에 대응하는 정보가 포함된 제 2 신호를 상기 제 3 로봇으로 상기 통신부를 통하여 전송하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 적어도 하나의 로봇과 연결된 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법에 있어서, 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 포함하는 제 1 신호를 상기 적어도 하나의 로봇 중 제 1 로봇으로부터 수신하는 단계; 상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면, 상기 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는 단계; 상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하지 않으면, 상기 제 1 신호로부터 상기 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 추출하는 단계; 상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 소프트웨어 이미지를 생성하는 단계; 및 상기 생성된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는 단계를 포함하는, 방법을 제공한다.
본 발명에 따른 이동 단말기 및 그 제어 방법의 효과에 대해 설명하면 다음과 같다.
본 발명의 실시 예들 중 적어도 하나에 의하면, 클라우드 서버가 로봇의 운영체제(OS), 하드웨어 및 소프트웨어를 판단하여 개별 로봇의 특성에 맞게 로봇의 소프트웨어를 업데이트하고 관리할 수 있다는 장점이 있다.
또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 클라우드 서버가 로봇의 OS, 하드웨어 및 소프트웨어를 판단하여 소프트웨어 이미지가 조건에 맞지 않는 경우 소프트웨어 이미지를 변환할 수 있다는 장점이 있다.
또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 클라우드 서버가 로봇의 작업 정보를 로봇의 OS, 하드웨어 및 소프트웨어를 기초로 변환할 수 있다는 장점이 있다.
또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 클라우드 서버가 하나의 로봇의 기능을 업데이트하는 경우, 다른 로봇의 기능을 동일하게 업데이트할 수 있다는 장점이 있다.
또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 운영체제 및 하드웨어가 다른 로봇의 사양을 표준화된 포맷으로 관리가 가능하다는 장점이 있다.
본 발명의 적용 가능성의 추가적인 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나 본 발명의 사상 및 범위 내에서 다양한 변경 및 수정은 당업자에게 명확하게 이해될 수 있으므로, 상세한 설명 및 본 발명의 바람직한 실시 예와 같은 특정 실시 예는 단지 예시로 주어진 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 클라우드 서버가 로봇과 통신하는 실시예를 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 클라우드 서버의 로봇 소프트웨어 컨버터가 소프트웨어 이미지를 생성하는 실시예를 설명하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 클라우드 서버가 로봇과 통신하는 다른 실시예를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 클라우드 서버의 로봇 소프트웨어 컨버터가 소프트웨어 이미지를 생성하는 다른 실시예를 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라우드 서버에서 이용하는 로봇의 프로파일 템플릿을 이용하여 도커 파일을 생성하는 실시예를 설명하는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 클라우드 서버에서 로봇의 작업 정보를 관리하는 실시예를 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 클라우드 서버에서 로봇의 기능을 업데이트하는 실시예를 설명하는 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 클라우드 서버가 로봇과 통신하는 실시예를 설명하는 도면이다.
도 1을 참조하면, 클라우드 서버(200)는 제 1 로봇(100)을 포함하는 적어도 하나의 로봇과 연결될 수 있다. 이하에서는, 제 1 로봇(100)과 연결된 것을 예로 들어 설명하도록 한다. 다만, 클라우드 서버(200)는 복수의 로봇과 동시에 연결될 수 있음은 물론이다.
클라우드 서버(200)는 통신부 및 제어부를 포함할 수 있다.
통신부는 클라우드 서버(200)와 적어도 하나의 로봇을 연결하며, 로봇으로부터 송수신하는 데이터를 클라우드 서버(200)로 전달할 수 있다.
본 발명의 일 실시예에서, 통신부는 연결된 제 1 로봇(100)의 운영체제(OS, operating system) 정보, 하드웨어 정보 및 소프트웨어 정보를 포함하는 제 1 신호를 수신할 수 있다.
또한, 본 발명의 일 실시예에서, 통신부는 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면 소프트웨어 이미지를 제 1 로봇(100)으로 전송할 수 있다.
제어부는 통신부를 통하여 제 1 신호를 수신함에 따라, 제 1 신호에 대응하는 소프트웨어 이미지가 존재하는지 여부를 판단할 수 있다.
본 발명의 일 실시예에서, 제어부는 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면, 소프트웨어 이미지를 제 1 로봇(100)으로 전송할 수 있다.
또한, 본 발명의 다른 일 실시예에서, 제어부는 제 1 신호에 대응하는 소프트웨어 이미지가 존재하지 않으면, 제 1 신호로부터 제 1 로봇(100)의 운영체제 정보, 제 1 로봇(100)의 하드웨어 정보 및 제 1 로봇(100)의 소프트웨어 정보를 추출할 수 있다.
또한, 제어부는 추출된 제 1 로봇의 운영체제 정보, 추출된 제 1 로봇의 하드웨어 정보 및 제 1 로봇의 소프트웨어 정보를 기초로 소프트웨어 이미지를 생성할 수 있다. 이후, 제어부는 생성된 소프트웨어 이미지를 통신부를 통하여 제 1 로봇(100)으로 전송할 수 있다.
제어부는 상술한 실시예를 수행하기 위하여 로봇 프로파일 등록부(210) 및 로봇 소프트웨어(SW) 컨버터(220)를 더 포함할 수 있다.
제 1 로봇(100)이 클라우드 서버(200)와 연결된 이후, 로봇 소프트웨어 컨버터(220)는 로봇 프로파일 등록부(210)에게 제 1 로봇(100)의 로봇 프로파일을 요청할 수 있다. 즉, 상술한 제 1 신호는 로봇 프로파일 요청 신호를 포함할 수 있다.
여기에서, 로봇 프로파일은 로봇의 하드웨어 및 소프트웨어의 사양을 정의하는 포맷에 대응할 수 있다. 여기에서, 하드웨어는 CPU/GPU, RAM, sensor, camera, 모터, 마이크 및 스피커 등과 같은 하드웨어 제품을 포함할 수 있다. 또한, 소프트웨어는 운영체제(OS), 미들웨어 플랫폼, 드라이버, 기능 등을 포함할 수 있다. 또한, 포맷은 json, yaml 등으로 작성 가능하며 json과 yaml은 서로 변환이 가능할 수 있다.
또한, 본 발명의 일 실시예에서, 적어도 하나의 로봇은 로봇 프로파일을 저장하는 서버(RAP 서버, 본 발명의 클라우드 서버)와 통신할 수 있다. 이에 대하여는 이하에서 자세히 설명하도록 한다.
본 발명의 일 실시예에서, 로봇 프로파일 등록부(210)는 제 1 로봇(100)의 로봇 프로파일을 미리 저장할 수 있다. 이때, 로봇 프로파일 등록부(210)는 제 1 로봇(100)으로부터 제 1 로봇의 프로파일이 저장된 서버 주소(RAProfile.site)를 수신할 수 있다. 또한, 로봇 프로파일 등록부(210)는 별도의 UAProfile 서버로 구성될 수 있다. 이에 대하여는 도 3에서 자세히 설명하도록 한다.
이에 따라, 로봇 프로파일 등록부(210)는 제 1 로봇(100)의 로봇 프로파일을 로봇 소프트웨어 컨버터(220)에게 전송할 수 있다. 여기에서, 제 1 로봇(100)의 로봇 프로파일은 제 1 로봇(100)의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 포함할 수 있다.
로봇 소프트웨어 컨버터(220)는 수신한 로봇 프로파일을 기초로 소프트웨어 이미지를 선택하거나 생성할 수 있다. 여기에서, 로봇 소프트웨어 컨버터(220)의 하드웨어적 구성은 일반적인 리눅스 서버를 가정할 수 있다. 또한, 로봇 소프트웨어 컨버터(220)는 모든 로봇에 적용이 가능한 것으로 가정한다.
보다 상세하게는, 수신한 제 1 로봇(100)의 로봇 프로파일에 대응하는 제 1 로봇(100)의 소프트웨어 이미지가 존재하면 소프트웨어 이미지를 선택할 수 있다.
반면, 수신한 제 1 로봇(100)의 로봇 프로파일에 대응하는 제 1 로봇(100)의 소프트웨어 이미지가 존재하지 않으면, 수신한 제 1 로봇(100)의 로봇 프로파일에 기초하여 소프트웨어 이미지를 생성할 수 있다.
즉, 본 발명의 일 실시예에서, 로봇 소프트웨어 컨버터(220)는 로봇이 요구하는 기능을 검색하여 선택, 변환 또는 생성할 수 있다.
이후, 로봇 소프트웨어 컨버터(220)는 선택되거나 생성한 소프트웨어 이미지를 제 1 로봇(100)에게 전송할 수 있다.
이후, 도면에 도시되지는 않았으나 클라우드 서버는 제 1 로봇(100)을 원격 배치할 수 있고, 제 1 로봇(100)은 해당 기능을 사용하기 위해 재부팅(reboot)할 수 있다.
도 2는 본 발명의 일 실시예에 따른 클라우드 서버의 로봇 소프트웨어 컨버터가 소프트웨어 이미지를 생성하는 실시예를 설명하는 도면이다.
도 2를 참조하면, 단계(S210)에서, 로봇 소프트웨어 컨버터는 로봇으로부터 로봇 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 포함하는 제 1 신호를 수신할 수 있다. 여기에서, 제 1 신호는 로봇 프로파일을 포함할 수 있다.
이때, 클라우드 서버는 로봇으로부터 로봇 프로파일이 저장된 서버 주소(RAProfile.site)를 저장할 수 있고, 서버로부터 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 포함하는 로봇 프로파일(RAProfile.xml)을 수신할 수 있다.
단계(S220)에서, 로봇 소프트웨어 컨버터는 제 1 신호에 대응하는 제 1 정보가 존재하는지 여부를 판단할 수 있다. 여기에서, 제 1 정보는 로봇의 소프트웨어 이미지에 대응할 수 있다.
제 1 정보가 존재하지 않으면, 단계(S230)에서, 로봇 소프트웨어 컨버터는 제 1 신호로부터 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 추출할 수 있다. 즉, 로봇 소프트웨어 컨버터는 로봇 프로파일로부터 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 추출할 수 있다.
단계(S240)에서, 로봇 소프트웨어 컨버터는 추출된 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 기초로 제 1 정보를 생성할 수 있다. 여기에서, 제 1 정보는 로봇에 대한 소프트웨어 이미지에 대응할 수 있다. 즉, 로봇 소프트웨어 컨버터는 추출된 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 기초로 로봇에 대한 소프트웨어 이미지를 생성할 수 있다.
이때, 본 발명의 일 실시예에서, 로봇 소프트웨어 컨버터는 현재 연결을 원하는 로봇의 특성(capability)에 기초하여 로봇에 대한 소프트웨어 이미지를 생성할 수 있다.
이후, 로봇 소프트웨어 컨버터는 생성된 소프트웨어 이미지를 단계(S250)에 따라 로봇에게 전송할 수 있다.
제 1 정보가 존재하면, 단계(S250)에서, 로봇 소프트웨어 컨버터는 제 1 정보를 로봇에게 전송할 수 있다. 상술한 실시예에 따라, 제 1 정보가 존재하지 않더라도 생성된 제 1 정보를 로봇에게 전송할 수 있음은 물론이다.
또한, 도면에 도시되지는 않았으나, 클라우드 서버는 터치스크린과 같은 디스플레이를 포함하는 단말기(terminal)와 연결될 수 있고, 클라우드 서버에서 수행되는 실시예들에 대한 결과를 단말기의 디스플레이를 통하여 출력하도록 단말기에 제어 신호를 전송할 수 있다. 이에 따라, 단말기를 사용하는 사용자는 단말기의 디스플레이를 통하여 클라우드 서버에서 수행되는 실시예들에 대한 결과를 확인하고 이를 제어할 수 있다.
도 3은 본 발명의 일 실시예에 따른 클라우드 서버가 로봇과 통신하는 다른 실시예를 설명하는 도면이다.
도 3은 도 1과 비교하여 클라우드 서버, 유저 및 로봇이 송수신하는 구체적인 파일을 포함하여 설명하도록 한다.
도 3을 참조하면, 단계(S310)에서, 유저는 로봇이 출시되면 로봇의 특성(capability)을 웹 사이트에 등록할 수 있다. 예를 들어, 로봇이 출시되면 로봇의 제작사인 유저가 로봇의 특성을 등록하거나 로봇의 구매자인 유저가 로봇의 특성을 등록할 수 있다.
본 발명의 일 실시예에서, 유저는 로봇에 대한 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 포함하는 로봇 프로파일을 웹 사이트에 등록할 수 있다. 이때, 등록되는 로봇 프로파일은 xml 파일, yaml 파일 또는 json파일의 형식을 가질 수 있다.
또한, 단계(S320)에서, 유저는 로봇의 로봇 프로파일을 클라우드 서버에 등록할 수 있다.
보다 상세하게는, 유저는 상술한 로봇의 로봇 프로파일을 클라우드 서버의 로봇 프로파일 등록부에 등록할 수 있다. 이때, 등록되는 로봇 프로파일은 마찬가지로 xml 파일, yaml 파일 또는 json파일의 형식으 가질 수 있다. 또한, 본 발명의 일 실시예에서, 유저는 로봇의 프로파일이 저장된 서버 주소를 클라우드 서버에 등록할 수 있다. 즉, 로봇이 클라우드 서버에게 로봇 프로파일(RAProfile)을 저장하는 RAP 서버 주소를 알려줄 수 있다. 이에 따라, 클라우드 서버는 RAP 서버에 접속해서 해당 로봇의 로봇 프로파일을 통해 로봇의 하드웨어 정보 및 소프트웨어 정보를 획득할 수 있다.
즉, 클라우드 서버 또는 외부 서버에는 로봇의 제작사가 제공하는 로봇의 구체적인 제품 정보가 미리 저장되어 있을 수 있다. 여기서, 로봇의 제품 정보는 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 모두 포함할 수 있다. 또한, 클라우드 서버는 내부 메모리 또는 외부 서버를 참조하여 로봇의 하드웨어 정보를 파악할 수 있다.
단계(S330)에서, 클라우드 서버와 로봇은 연결된 상태에서 통신을 수행할 수 있다. 특히, 본 발명의 일 실시예에서, 클라우드 서버와 로봇은 160 바이트(byte) 이하의 메시지와 같은 기본적인 통신은 상시적으로 가능한 상태에 대응할 수 있다.
또한, 본 발명의 일 실시예에서, 로봇은 클라우드 서버에 소프트웨어의 업데이트를 요청할 수 있다. 클라우드 서버는 로봇의 소프트웨어 업데이트 요청을 로봇 소프트웨어 컨버터로 전달할 수 있다.
이에 따라, 단계(S340)에서, 로봇 소프트웨어 컨버터는 로봇 프로파일 등록부에 로봇의 프로파일을 요청할 수 있다. 이때, 로봇 소프트웨어 컨버터는 로봇의 특성에 대한 프로파일을 요청할 수 있다.
단계(S350)에서, 로봇 프로파일 등록부는 로봇 특성에 대한 프로파일 요청에 기초하여 등록된 로봇의 프로파일을 로봇 소프트웨어 컨버터에 전송할 수 있다. 이때, 로봇 프로파일 등록부는 등록된 로봇의 특성에 대한 프로파일을 로봇 소프트웨어 컨버터에 전송할 수 있다.
단계(S360)에서, 로봇 소프트웨어 컨버터는 수신한 로봇의 프로파일에 기초하여 적절한 소프트웨어 이미지를 선택할 수 있다.
이때, 로봇 소프트웨어 컨버터는 로봇의 프로파일에 기초하여 적절한 소프트웨어 이미지가 존재하지 않으면, 적절한 소프트웨어 이미지를 생성할 수 있다.
또한, 로봇 소프트웨어 컨버터는 적절한 소프트웨어 이미지가 클라우드 서버에 존재하나 사양 조건을 만족하지 않는 경우, 소프트웨어 이미지를 사양에 적합하게 변환할 수 있다.
본 발명의 일 실시예에서, 로봇 소프트웨어 컨버터는 소프트웨어 이미지를 선택, 생성, 변환할 때 수신한 로봇의 특성에 대한 프로파일에 기초할 수 있다.
보다 상세하게는, 로봇 소프트웨어 컨버터는 수신한 로봇의 프로파일로부터 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 기초로 도커 파일 템플릿을 이용하여 도커 파일을 생성할 수 있다. 또한, 로봇 소프트웨어 컨버터는 생성된 도커 파일을 기초로 소프트웨어 이미지를 생성할 수 있다. 도커 파일에 대하여는 이하의 도면에서 자세히 설명하도록 한다.
로봇 소프트웨어 컨버터는 선택하거나 생성한 소프트웨어 이미지를 로봇에게 전송할 수 있다. 이때, 소프트웨어 이미지는 에이전트(agent), 엔진(engine), 데이터(data)에 대한 소프트웨어 이미지일 수 있다.
또한, 단계(S370)에서, 로봇 소프트웨어 컨버터는 소프트웨어 이미지를 도커 파일(docker file)의 형태로 배포할 수 있다.
본 발명의 일 실시예에 따라, 로봇의 운영체제 정보, 소프트웨어 정보 및 하드웨어 정보를 기초로 도커 파일을 생성하고, 도커 파일을 기초로 소프트웨어 이미지를 생성할 수 있다. 구체적으로, 로봇 소프트웨어 컨버터는 로봇 운영체제 정보를 기초로 동일한 로봇 운영체제를 선택하고, 선택된 로봇 운영체제에서 사용하는 빌드 명령어로 하드웨어 정보 및 소프트웨어 정보에 대응하는 도커 파일을 도커 파일 템플릿으로부터 생성할 수 있다. 즉, 로봇 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 기초로 로봇에 특화된 소프트웨어 이미지를 생성하는 점에 특징이 있다. 이에 대하여는 도 5 내지 도 9를 통하여 자세히 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 클라우드 서버의 로봇 소프트웨어 컨버터가 소프트웨어 이미지를 생성하는 다른 실시예를 설명하는 도면이다.
도 4는 도 2와 비교하여 클라우드 서버의 로봇 소프트웨어 컨버터가 소프트웨어 이미지를 생성하는 구체적인 파일을 포함하여 설명하도록 한다.
도 4를 참조하면, 단계(S410)에서, 로봇 소프트웨어 컨버터는 로봇의 특성에 대한 프로파일을 수신할 수 있다. 여기에서, 로봇의 특성에 대한 프로파일은 yaml 파일 형식에 대응할 수 있다.
단계(S420)에서, 로봇 소프트웨어 컨버터는 로봇의 특성에 대한 프로파일에 기초하여 클라우드 서버 내에 적절한 소프트웨어 이미지가 있는지 여부를 판단할 수 있다. 본 발명의 일 실시예에서, 로봇 소프트웨어 컨버터는 “$ docker image Is”라는 명령어를 통하여 현재 찾는 소프트웨어 이미지가 있는지 확인할 수 있다.
적절한 소프트웨어 이미지가 존재하지 않으면, 단계(S430)에서, 로봇 소프트웨어 컨버터는 수신한 프로파일로부터 필수 정보 즉, 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보 등을 추출할 수 있다.
여기에서, 로봇의 메인 보드(main board)의 경우 각기 다른 운영체제를 가지고 있을 수 있다. 예를 들어, 로봇의 메인 보드는 Linux 18.03(Bionic), 20.04(Foxy) 등 다른 버전의 운영체제를 가질 수 있다. 또한, 로봇의 메인 보드 이외에도 uiBoard, controlBoard도 마찬가지로 각각 다른 운영체제를 가질 수 있다.
또한, 로봇의 하드웨어 정보의 경우 CPU 정보, 모터 정보, 배터리 스펙 정보, 연결(connectivity) 정보 등을 포함할 수 있다. 이때, 로봇의 하드웨어 정보는 실제로 애플리케이션(application)을 선택적으로 컴파일(compile)해서 소프트웨어 이미지를 만들 때 사용될 수 있다.
단계(S440)에서, 로봇 소프트웨어 컨버터는 상술한 프로파일로부터 추출한 정보와 도커 파일 템플릿을 이용하여 로봇에 대응하는 도커 파일을 생성할 수 있다. 이때, 로봇 소프트웨어 컨버터는 “$ docker build -t -mainboard-version-new-2.0 -f ./dockerfile”라는 명령어를 통하여 현재 로봇에 대응하는 도커 파일을 생성할 수 있다.
단계(S450)에서, 로봇 소프트웨어 컨버터는 생성된 도커 파일을 도커 컨테이너 이미지(docker-container image)에 빌드(build)할 수 있다.
이후, 로봇 소프트웨어 컨버터는 빌드된 도커 컨테이너 이미지를 단계(S460)에 따라 로봇에게 전송할 수 있다.
소프트웨어 이미지가 존재하면, 단계(S460)에서, 로봇 소프트웨어 컨버터는 소프트웨어 이미지를 로봇에게 전송(배포)할 수 있다. 상술한 실시예에 따라, 소프트웨어 이미지가 존재하지 않더라도 생성된 소프트웨어 이미지를 로봇에게 전송할 수 있음은 물론이다.
단계(S470)에서, 클라우드 서버는 통신부를 통하여 로봇으로부터 “성공” 메시지를 수신할 수 있다.
도 5는 본 발명의 일 실시예에 따른 클라우드 서버에서 이용하는 로봇의 프로파일 템플릿을 이용하여 도커 파일을 생성하는 실시예를 설명하는 순서도이다.
단계(S510)에서, 클라우드 서버는 로봇의 도커 파일 생성을 위하여 이용하는 로봇의 프로파일 템플릿을 분석할 수 있다. 예를 들어 로봇의 프로파일 템플릿은 하기 [표 1] 및 [표 2]와 같은 예시를 가질 수 있다.
[표 1]
Figure PCTKR2021004401-appb-img-000001
[표 1]은 본 발명의 일 실시예에 따른 클라우드 서버에서 이용하는 로봇의 프로파일 템플릿을 설명한다.
본 발명의 일 실시예에서, 클라우드 서버는 도커파일을 생성하기 위하여 프로파일 템플릿을 이용할 수 있고, 로봇의 프로파일 템플릿은 다양한 템플릿을 가질 수 있기 때문에 [표1]의 예시를 제공하도록 한다. 또한, 클라우드 서버는 [표1]의 프로파일 템플릿 이외의 다른 프로파일 템플릿을 이용할 수 있음은 물론이다.
[표1]을 참조하면, 로봇 프로파일 템플릿은 로봇 카테고리(robot category), 로봇 사이트(robot site), 로봇 ID(robot ID), 로봇 하드웨어 정보(robot hardware information)를 포함할 수 있다.
보다 상세하게는, 로봇 카테고리는 로봇의 종류를 나타낼 수 있다. 예를 들어, 로봇의 종류가 배송 로봇인지 음식 및 음료 제작 로봇인지 등을 나타낼 수 있다.
또한, 로봇 사이트는 로봇이 이용되는 장소가 어디인지 나타낼 수 있다. 예를 들어, 로봇이 이용되는 장소가 레스토랑인지 등을 나타낼 수 있다.
또한, 로봇 아이디는 로봇의 고유 식별 번호를 나타낼 수 있다. 예를 들어, “lgeDeliveryFnB/ID000001”로 나타내질 수 있다.
또한, 로봇 하드웨어 정보는 로봇의 제작사(vendor) 정보, 모터(motor) 정보, 배터리(battery) 정보, 컨트롤 보드(control board) 정보, 메인 보드(main board) 정보, ui 보드(ui board) 정보 등을 포함할 수 있다.
또한, 모터 정보는 모터의 제작사 정보, rpm 정보, method 정보, 스펙 정보를 포함할 수 있으며, 스펙 정보는 휠 넘버(wheel number) 및 직경(diameter) 정보를 더 포함할 수 있다.
이와 마찬가지로, 배터리 정보, 컨트롤 보드 정보, 메인 보드 정보 및 ui 보드 정보는 모두 각각의 제작사 정보 및 스펙 정보를 포함할 수 있다.
[표 2]
Figure PCTKR2021004401-appb-img-000002
[표 2]는 본 발명의 일 실시예에 따른 클라우드 서버에서 이용하는 도커 파일의 템플릿의 다른 실시예를 설명한다.
[표 2]를 참조하면, 클라우드 서버에서 이용하는 도커 파일 템플릿의 하나의 예시를 설명한다. 이때, [표 2]의 도커 파일 템플릿은 로봇 운영체제(robot operating system, ROS2)에 적용되는 도커 파일 템플릿을 예로 들어 설명하나 다른 운영체제에도 적용될 수 있음은 물론이다.
본 발명의 일 실시예에서, 도커 파일 템플릿은 타임존 셋업, 패키지 설치, 플랫폼 설치, 제작사 패키치 업데이트, 새로운 패키지 생성, 셋업에 대한 정보를 포함할 수 있다.
보다 상세하게는, 도커 파일 템플릿을 통하여 본 발명의 일 실시예에서, ARG 명령어를 통하여 이미지가 “Linux:bionic”으로 빌드되는 것을 정의할 수 있다. 또한, 본 발명의 일 실시예에서, RUN echo 명령어를 통하여 도커의 컨테이너 시간을 설정할 수 있다. 또한, 본 발명의 일 실시예에서, RUN apt-get update/install 명령어를 통하여 패키지를 관리할 수 있다. 또한, 본 발명의 일 실시예에서, RUN apt-get install ros 명령어를 통하여 ROS 플랫폼을 설치할 수 있다. 또한, 본 발명의 일 실시예에서, RUN rm -rf/install 명령어를 통하여 패키지의 예전 버전을 삭제하고 새로운 버전을 설치할 수 있다. 또한, 본 발명의 일 실시예에서, RUN colcon 명령어를 통하여 colcon을 사용하여 로봇 애플리케이션을 빌드할 수 있다. 또한, 본 발명의 일 실시예에서, bashrc(리눅스에서 가장 널리 사용되는 쉘)를 실행하고, entrypoint를 설정할 수 있다.
또한, 본 발명의 일 실시예에서, 상술한 도커 파일 템플릿의 명령어가 모두 포함되지 않고 일부만 사용될 수 있음은 물론이다.
단계(S520)에서, 클라우드 서버는 로봇 특성에 따른 프로파일을 이용할 수 있다. 즉, 클라우드 서버는 도커 파일의 생성을 위하여 로봇 특성에 따른 로봇 프로파일을 이용하는 것으로 예를 들어, 하기 [표 3]의 도커 파일을 위한 프로파일이 이용될 수 있다.
[표 3]
Figure PCTKR2021004401-appb-img-000003
[표 3] 은 본 발명의 일 실시예에 따른 클라우드 서버에서 생성하는 도커 파일을 위한 프로파일을 설명한다.
[표 3]은 로봇의 하드웨어 정보를 포함하는 로봇 프로파일을 나타낸다. 즉, [표 3]은 클라우드 서버에서 생성하는 도커 파일을 위하여 수신하는 로봇 프로파일에 대응할 수 있다.
[표 3]을 참고하면, 로봇 프로파일은 로봇의 하드웨어 정보를 포함할 수 있다. 이때, 로봇의 하드웨어 정보는 로봇의 전체 사이즈, imu 하드웨어 정보 및 라이다 하드웨어 정보를 포함할 수 있다. 즉, 상술한 예와 같이 본 발명의 일 실시예에 따른 로봇 프로파일은 로봇에 포함된 센서에 대한 하드웨어 정보를 포함할 수 있다.
단계(S530)에서, 클라우드 서버는 로봇 프로파일 템플릿 및 로봇 프로파일을 이용하여 도커 파일을 생성할 수 있다. 하기 [표 4] 및 [표 5]는 생성된 도커 파일에 대한 예시로 클라우드 서버는 상술한 로봇 프로파일 템플릿 및 로봇 프로파일을 이용하여 도커 파일을 생성할 수 있다. 이후, 클라우드 서버는 생성된 도커 파일을 이용하여 소프트웨어 이미지를 배포하여 로봇의 운영체제 또는 소프트웨어를 업데이트할 수 있다.
[표 4]
Figure PCTKR2021004401-appb-img-000004
[표 5]
Figure PCTKR2021004401-appb-img-000005
[표 4] 및 [표 5]는 본 발명의 일 실시예에 따른 클라우드 서버에서 생성하는 도커 파일을 설명한다.
[표 4] 및 [표 5]는 로봇 특성에 기초한 프로파일을 취득하여 기본으로 만들어진 도커 파일 템플릿을 활용하여 로봇의 운영체제 정보, 플랫폼 정보 및 센서 정보를 토대로 도커 파일을 빌드하는 실시예를 설명한다. 또한, 본 발명은 아래와 같이 기본적으로 리눅스에서 사용하는 빌드 명령어로 도커 파일을 빌드하게 된다.
보다 상세하게는, [표 4]를 참조하면, 본 발명의 일 실시예에서 로봇 소프트웨어 컨버터는 수신한 로봇 프로파일의 운영체제 정보를 토대로 동일한 운영체제를 가져올 수 있다. 예를 들어, 수신한 로봇 프로파일의 운영체제가 ubuntu:18.04인 경우, 로봇 소프트웨어 컨버터는 도커 파일을 ubuntu:18.04를 기초로 빌드할 수 있다.
이와 동일하게, [표 1]의 로봇 특성 프로파일, [표 2]의 도커 파일 템플릿, [표 3]의 도커 파일을 위한 프로파일을 참고하여 타임존을 설정하고, 패키지를 설치하고, 키, 소스, 환경을 설정할 수 있다.
또한, [표 5]를 참조하면, 본 발명의 일 실시예에서, 로봇 소프트웨어 컨버터는 수신한 로봇 프로파일의 플랫폼 정보 및 센서 정보를 토대로 관련 플랫폼 정보 및 관련 센서를 설치할 수 있는 소프트웨어 정보를 가져올 수 있다.
보다 상세하게는, 로봇 소프트웨어 컨버터는 수신한 로봇 프로파일의 플랫폼 정보를 토대로 관련 플랫폼 저장소를 기록할 수 있다. 예를 들어, 수신한 로봇 프로파일의 플랫폼이 ROS2:dashing인 경우, 로봇 소프트웨어 컨버터는 도커 파일을 ROS2:dashing을 가져오기 위한 플랫폼 저장소를 기록할 수 있다.
마찬가지로, 로봇 소프트웨어 컨버터는 수신한 로봇 프로파일의 센서 정보를 토대로 센서를 설치할 수 있는 소프트웨어 정보를 기록할 수 있다. 예를 들어, 수신한 로봇 프로파일이 라이다 센서 정보, 관성 측정 장치 센서 정보 및 카메라 센서 정보를 포함하는 경우, 이들을 설치할 수 있는 소프트웨어 정보(예를 들어, url 주소)를 기록할 수 있다.
상술한 실시예를 통하여 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 기초로 클라우드 서버에 없는 정보를 생성하여 다른 로봇에게 특정 기능을 제공할 수 있다. 즉, 클라우드 서버에 없는 정보를 생성하여 이종 운영체제가 설치된 다른 로봇에게 변환된 데이터 및 제어 명령을 제공할 수 있다.
이하에서는 다른 로봇에게 특정 기능을 제공하는 실시예를 설명하도록 한다. 도 6은 이종 운영체제를 갖는 로봇의 작업 및 스케줄 관리 실시예를 설명하도록 하고, 도 7은 이종 운영체제를 갖는 로봇 중 제 1 로봇의 제 1 기능을 업데이트하는 경우, 다른 운영체제를 갖는 제 2 로봇의 제 1 기능을 제 1 로봇과 동일하게 업데이트하는 실시예에 대하여 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 클라우드 서버에서 로봇의 작업 정보를 관리하는 실시예를 설명하는 도면이다.
본 발명의 일 실시예에서, 클라우드 서버는 제 1 로봇(610)과 속성(capability)이 상이한 제 2 로봇(620)과 연결된 경우, 제 2 로봇(620)의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 수신하고, 이들을 기초로 제 2 로봇(620)의 작업 정보를 변환할 수 있다. 또한, 클라우드 서버는 변환된 작업 정보를 제 2 로봇(620)에 전송할 수 있다. 여기에서, 클라우드 서버는 특정 경로에 위치한 로봇에게 우선 순위가 배정되도록 작업 정보를 변환할 수 있다. 예를 들어, 복수의 로봇이 이동 중에 교차로와 같은 특정 경로에서 로봇의 우선 순위를 배정할 수 있다.
도 6을 참고하면, 클라우드 서버는 로봇의 운영체제 및 하드웨어를 다른 복수의 로봇의 작업 및 스케줄에 기초하여 개별 로봇에 최적화되도록 관리할 수 있다.
예를 들어, 제 1 로봇(610)은 운영체제로 리눅스를 사용하고, 제작사가 A사에 해당할 수 있다. 이 경우, 제 1 로봇(610)의 작업 및 스케줄을 관리하기 위하여 클라우드 서버는 작업 및 스케줄 정보를 제 1 로봇(610)의 운영체제인 리눅스, 제작사인 A사 로봇에 적합하게 변환하여 제 1 로봇(610)에게 전송할 수 있다.
마찬가지로, 제 2 로봇(610)의 운영체제로 안드로이드를 사용하고, 제작사가 B사이거나 제 3 로봇(630)의 운영체제가 ROS를 사용하고 제작사가 C사인 경우에서도, 클라우드 서버는 작업 및 스케줄 정보를 각각의 로봇의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보에 기초하여 변환하여 전송할 수 있다.
이에 따라, 클라우드 서버는 제 1 로봇(610) 내지 제 3 로봇(630)의 운영체제, 하드웨어 및 소프트웨어가 모두 다르더라도 작업 및 스케줄 정보를 각각의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보에 맞춰 변환하여 로봇을 개별적으로 제어할 수 있다.
또한, 클라우드 서버는 로봇으로부터 수신한 로봇 프로파일을 통하여 개별 로봇의 특성을 파악했기 때문에 어떤 작업 및 스케줄을 관리할지 알 수 있다. 예를 들어, 로봇 프로파일 상 카테고리가 “food delivery”로 구분되어 있는 경우, 클라우드 서버는 해당 로봇이 음식을 배달하는 로봇인지 알 수 있다. 이를 통하여, 클라우드 서버는 해당 로봇의 운영체제 및 포맷에 맞춰 관련된 최신의 작업 아이템(work item) 및 스케줄을 명령할 수 있다.
도 7은 본 발명의 일 실시예에 따른 클라우드 서버에서 로봇의 기능을 업데이트하는 실시예를 설명하는 도면이다.
본 발명의 일 실시예에서, 제 1 로봇(710)과 속성이 상이한 제 3 로봇(730)과 연결된 경우, 클라우드 서버는 RAP 서버(또는 메모리)로부터 제 3 로봇(730)의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 수신할 수 있다.
또한, 클라우드 서버는 제 1 로봇(710)의 제 1 기능을 업데이트하는 경우, 상술한 방법을 통하여 제 3 로봇(730)의 운영체제 정보, 하드웨어 정보 및 소프트웨어 정보를 기초로 제 3 로봇(730)의 제 1 기능을 제 1 로봇(710)과 동일하게 업데이트할 수 있다. 이때, 클라우드 서버는 로봇 소프트웨어 컨버터를 통하여 제 3 로봇(730)의 제 1 기능을 제 3 로봇(730)의 운영체제, 하드웨어 및 소프트웨어에 기초하여 변환한 뒤 제 1 기능에 대응하는 정보가 포함된 신호를 제 3 로봇(730)으로 전송할 수 있다.
즉, 복수의 로봇 중 제 1 로봇(710)의 제 1 기능을 업데이트하는 경우, 이종 운영체제, 하드웨어 및 소프트웨어가 설치된 다른 로봇(720, 730)의 제 1 기능을 제 1 로봇(710)과 동일하게 업데이트할 수 있다.
본 발명의 일 실시예에서, 제 1 로봇(710)이 제 1 기능을 업데이트하는 경우, 클라우드 서버에서 제 3 로봇(730)의 제 1 기능을 동일하게 업데이트하는 과정을 설명한다. 본 발명의 일 실시예에서, 클라우드 서버는 제 3 로봇(730)의 제 1 기능을 해당 로봇의 프로파일(RAProfile)을 기반으로 검색, 변환, 생성하여 원격 설치할 수 있다.
보다 상세하게는, 클라우드 서버는 제 3 로봇(730)의 제 1 기능을 클라우드 서버 내부를 검색할 수 있다. 이때, 클라우드 서버 내에 제 3 로봇(730)에 대한 제 1 기능이 존재하는 경우 제 3 로봇(730)에 제 1 기능을 설치할 수 있다.
또한, 클라우드 서버 내에 제 3 로봇(730)에 대한 제 1 기능이 존재하나 사양이 맞지 않아 변환해야 하는 경우가 있을 수 있다. 예를 들어, 제 3 로봇(730)에 대한 제 1 기능이 존재하나 센서 정보가 불일치하거나 컨텐츠 정보가 불일치하여 변환이 필요할 수 있다. 이 경우, 클라우드 서버는 제 3 로봇(730)에 대한 로봇 프로파일에 기초하여 제 1 기능에 대한 소프트웨어 이미지를 생성하여 원격 설치할 수 있다.
마찬가지로, 클라우드 서버 내에 제 3 로봇(730)에 대한 제 1 기능이 존재하나 버전 불일치 등으로 새롭게 이미지를 생성해야 하는 경우가 있을 수 있다. 이 경우, 클라우드 서버는 제 3 로봇(730)에 대한 로봇 프로파일에 기초하여 업데이트된 버전을 갖는 제 1 기능에 대한 소프트웨어 이미지를 생성하여 원격 설치할 수 있다.
마지막으로, 클라우드 서번 내에 제 3 로봇(730)에 대한 제 1 기능이 존재하지 않을 수 있다. 이 경우, 클라우드 서버는 제 3 로봇(730)에 대한 로봇 프로파일에 기초하여 제 1 기능에 대한 소프트웨어 이미지를 생성하여 원격 설치할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 단말기의 제어부(180)를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는데 반복적으로 실시 가능하다.

Claims (10)

  1. 적어도 하나의 로봇과 연결된 클라우드 서버에 있어서,
    상기 적어도 하나의 로봇 및 외부 디바이스와 데이터를 송수신하는 통신부; 및
    제어부를 포함하고,
    상기 제어부는
    제 1 로봇의 운영체제(OS) 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 포함하는 제 1 신호를 상기 적어도 하나의 로봇 중 제 1 로봇으로부터 수신하고,
    상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면, 상기 소프트웨어 이미지를 상기 제 1 로봇으로 전송하고,
    상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하지 않으면, 상기 제 1 신호로부터 상기 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 추출하고,
    상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 소프트웨어 이미지를 생성하고,
    상기 생성된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는, 클라우드 서버.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 로봇에 대응하는 정보를 저장하는 메모리를 더 포함하고,
    상기 제 1 신호에 대응하는 소프트웨어 이미지가 상기 메모리에 존재하면, 상기 저장된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는, 클라우드 서버.
  3. 제 1 항에 있어서,
    상기 제어부는
    상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 도커 파일 템플릿으로부터 도커 파일을 생성하고,
    상기 생성된 도커 파일을 기초로 소프트웨어 이미지를 생성하고,
    상기 생성된 소프트웨어 이미지를 제 1 로봇으로 전송하는, 클라우드 서버.
  4. 제 1 항에 있어서,
    상기 제어부는 로봇 프로파일 등록부와 로봇 소프트웨어 컨버터를 포함하고,
    상기 로봇 소프트웨어 컨버터는 상기 로봇 프로파일 등록부에 상기 제 1 로봇의 프로파일을 요청하고,
    상기 로봇 프로파일 등록부는 상기 프로파일을 상기 로봇 소프트웨어 컨버터에 전송하는, 클라우드 서버.
  5. 제 4 항에 있어서,
    상기 로봇 소프트웨어 컨버터는 상기 수신한 프로파일에 기초하여 상기 소프트웨어 이미지를 생성하고,
    상기 생성된 소프트웨어 이미지를 상기 제 1 로봇에게 전송하는, 클라우드 서버.
  6. 제 2 항에 있어서,
    상기 제어부는
    상기 제 1 신호에 대응하는 소프트웨어 이미지가 상기 메모리에 존재하나 사양 조건을 만족하지 않는 경우, 상기 소프트웨어 이미지를 사양에 적합하게 변환하고,
    상기 변환된 소프트웨어 이미지를 상기 제 1 로봇에게 전송하는, 클라우드 서버.
  7. 제 1 항에 있어서,
    상기 제어부는
    상기 제 1 로봇과 속성이 상이한 제 2 로봇과 연결된 경우, 상기 통신부로부터 상기 제 2 로봇의 운영체제 정보, 상기 제 2 로봇의 하드웨어 정보 및 상기 제 2 로봇의 소프트웨어 정보를 수신하고,
    상기 수신된 제 2 로봇의 운영체제 정보, 상기 수신된 제 2 하드웨어 정보 및 상기 수신된 제 2 로봇의 소프트웨어 정보를 기초로 상기 제 2 로봇의 작업 정보를 변환하고,
    상기 변환된 작업 정보를 상기 제 2 로봇으로 전송하는, 클라우드 서버.
  8. 제 7 항에 있어서,
    상기 제어부는
    특정 경로에 위치한 로봇에게 우선 순위가 배정되도록 상기 작업 정보를 변환하는, 클라우드 서버.
  9. 제 1 항에 있어서,
    상기 제어부는
    상기 제 1 로봇과 속성이 상이한 제 3 로봇과 연결된 경우, 상기 통신부로부터 상기 제 3 로봇의 운영체제 정보, 상기 제 3 로봇의 하드웨어 정보 및 상기 제 3 로봇의 소프트웨어 정보를 수신하고,
    상기 제 1 로봇의 제 1 기능을 업데이트하는 경우, 상기 제 3 로봇의 운영체제 정보, 상기 제 3 로봇의 하드웨어 정보 및 상기 제 3 로봇의 소프트웨어 정보를 기초로 상기 제 3 로봇의 제 1 기능을 상기 제 1 로봇과 동일하게 업데이트하고,
    상기 제 1 기능에 대응하는 정보가 포함된 제 2 신호를 상기 제 3 로봇으로 상기 통신부를 통하여 전송하는, 클라우드 서버.
  10. 적어도 하나의 로봇과 연결된 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법에 있어서,
    제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 포함하는 제 1 신호를 상기 적어도 하나의 로봇 중 제 1 로봇으로부터 수신하는 단계;
    상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하면, 상기 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는 단계;
    상기 제 1 신호에 대응하는 소프트웨어 이미지가 존재하지 않으면, 상기 제 1 신호로부터 상기 제 1 로봇의 운영체제 정보, 상기 제 1 로봇의 하드웨어 정보 및 상기 제 1 로봇의 소프트웨어 정보를 추출하는 단계;
    상기 추출된 제 1 로봇의 운영체제 정보, 상기 추출된 제 1 로봇의 하드웨어 정보 및 상기 추출된 제 1 로봇의 소프트웨어 정보를 기초로 소프트웨어 이미지를 생성하는 단계; 및
    상기 생성된 소프트웨어 이미지를 상기 제 1 로봇으로 전송하는 단계를 포함하는, 방법.
PCT/KR2021/004401 2021-04-07 2021-04-08 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법 WO2022215776A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/553,963 US20240111548A1 (en) 2021-04-07 2021-04-08 Cloud server and method for converting software image of robot in cloud server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0045241 2021-04-07
KR1020210045241A KR20220139076A (ko) 2021-04-07 2021-04-07 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법

Publications (1)

Publication Number Publication Date
WO2022215776A1 true WO2022215776A1 (ko) 2022-10-13

Family

ID=83545393

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/004401 WO2022215776A1 (ko) 2021-04-07 2021-04-08 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법

Country Status (3)

Country Link
US (1) US20240111548A1 (ko)
KR (1) KR20220139076A (ko)
WO (1) WO2022215776A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080332A (ko) * 2008-12-29 2010-07-08 한국전자통신연구원 다기종 로봇 진단 관리 서버
KR20120077680A (ko) * 2010-12-31 2012-07-10 강원대학교산학협력단 내부 환경을 동적으로 재구성하는 로봇 장치 및 재구성 방법
KR20130060429A (ko) * 2011-11-30 2013-06-10 한국과학기술연구원 사용자 중심의 로봇 제어 장치 및 방법
KR20150074375A (ko) * 2013-12-24 2015-07-02 주식회사 케이티 로봇 플랫폼 환경에서 다양한 기종의 로봇을 제어하는 스마트 기기 및 로봇 제어 방법
KR20170027918A (ko) * 2015-09-02 2017-03-13 (주)이산솔루션 스마트 단말을 이용한 스마트 로봇의 제어 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080332A (ko) * 2008-12-29 2010-07-08 한국전자통신연구원 다기종 로봇 진단 관리 서버
KR20120077680A (ko) * 2010-12-31 2012-07-10 강원대학교산학협력단 내부 환경을 동적으로 재구성하는 로봇 장치 및 재구성 방법
KR20130060429A (ko) * 2011-11-30 2013-06-10 한국과학기술연구원 사용자 중심의 로봇 제어 장치 및 방법
KR20150074375A (ko) * 2013-12-24 2015-07-02 주식회사 케이티 로봇 플랫폼 환경에서 다양한 기종의 로봇을 제어하는 스마트 기기 및 로봇 제어 방법
KR20170027918A (ko) * 2015-09-02 2017-03-13 (주)이산솔루션 스마트 단말을 이용한 스마트 로봇의 제어 시스템 및 그 방법

Also Published As

Publication number Publication date
US20240111548A1 (en) 2024-04-04
KR20220139076A (ko) 2022-10-14

Similar Documents

Publication Publication Date Title
WO2016060480A1 (en) Electronic device and method for spoken interaction thereof
WO2010062063A2 (ko) 브라우저 기반 어뷰징 방지 방법 및 시스템
WO2010147362A2 (en) Widget activation and communication method
WO2020022780A1 (en) Method and apparatus for establishing device connection
WO2019103280A1 (ko) 클라우드 서비스를 제공하는 적어도 하나의 클라우드 서버의 컴퓨팅 자원들을 관리하는 전자 장치 및 방법
WO2019059596A1 (ko) 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법
WO2020262958A1 (en) Electronic apparatus and control method thereof
EP3808097A1 (en) Method and apparatus for establishing device connection
WO2020149520A1 (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
WO2017126740A1 (ko) 단말 장치, 원격 제어 시스템 및 제어 방법
EP3906553A1 (en) Electronic device for providing graphic data based on voice and operating method thereof
WO2020080767A1 (en) Method for controlling execution of heterogeneous operating systems and electronic device and storage medium therefor
WO2014077458A1 (ko) 통신망의 종류를 구분하는 방법 및 이를 이용한 콘텐츠 제공 방법
WO2020184827A1 (ko) 전자 장치 및 이의 제어 방법
WO2016035979A1 (en) Method and system for controlling operation of image forming apparatus by using wearable device
WO2020106019A1 (en) Electronic device and method for providing in-vehicle infotainment service
WO2022215776A1 (ko) 클라우드 서버 및 클라우드 서버에서 로봇의 소프트웨어 이미지를 변환하는 방법
WO2021002724A1 (en) Electronic apparatus and control method thereof
WO2020180008A1 (en) Method for processing plans having multiple end points and electronic device applying the same method
WO2021107255A1 (ko) 이종 iot 플랫폼 식별체계 상호연동을 위한 관리체계 방법 및 장치
WO2018012653A1 (ko) 무선랜 핑거프린트에 대한 가맹점 라벨링 방법, 가맹점 라벨링 장치 및 가맹점 라벨링 시스템
WO2019103450A1 (en) Electronic device and method for managing data input into input field
WO2015105263A1 (ko) 웹 페이지 접속 방법과 웹 서버 접속 방법
WO2018105965A1 (en) Vehicle operating method and vehicle operating apparatus
EP3878164A1 (en) Method and apparatus for pairing iot devices and iot service in heterogeneous iot ecosystem

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21936121

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18553963

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21936121

Country of ref document: EP

Kind code of ref document: A1