KR102354594B1 - Electronic device and method for performing control software verification applied to autonomous thing - Google Patents

Electronic device and method for performing control software verification applied to autonomous thing Download PDF

Info

Publication number
KR102354594B1
KR102354594B1 KR1020200122187A KR20200122187A KR102354594B1 KR 102354594 B1 KR102354594 B1 KR 102354594B1 KR 1020200122187 A KR1020200122187 A KR 1020200122187A KR 20200122187 A KR20200122187 A KR 20200122187A KR 102354594 B1 KR102354594 B1 KR 102354594B1
Authority
KR
South Korea
Prior art keywords
control software
software
prototype
autonomous
artificial intelligence
Prior art date
Application number
KR1020200122187A
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 KR1020200122187A priority Critical patent/KR102354594B1/en
Application granted granted Critical
Publication of KR102354594B1 publication Critical patent/KR102354594B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

An electronic device for verifying control software applied to an autonomous object is provided. An electronic device according to some embodiments of the present invention may include: a digital twin management module that generates a digital twin model for an autonomous object and manages a simulation operation for the digital twin model; a control software generation module that determines a software group including at least one software corresponding to a user requirement, and generates prototype control software that links the software group; and a control software verification module that transmits the prototype control software to the digital twin management module, receives a result of simulation in which the prototype control software is applied to the digital twin model from the digital twin management module, and analyzes the result of simulation to determine final control software to be applied to the autonomous object. The present invention can provide autonomous control software with improved reliability.

Description

자율형 사물에 적용되는 제어 소프트웨어 검증을 수행하는 전자 장치 및 이의 구동 방법{Electronic device and method for performing control software verification applied to autonomous thing}Electronic device and method for performing control software verification applied to autonomous thing and driving method thereof

본 발명은 자율형 사물에 적용되는 제어 소프트웨어 검증을 수행하는 전자 장치 및 이의 구동 방법에 관한 것으로, 더욱 상세하게는 사용자 요구 조건을 만족하는지 여부를 판단하기 위한 시뮬레이션을 자율형 사물에 대한 디지털 트윈에 대해 수행함으로써 신뢰성이 향상된 자율제어 소프트웨어를 제공하는 전자 장치에 관한 것이다.The present invention relates to an electronic device for verifying control software applied to an autonomous thing and a driving method thereof, and more particularly, to a digital twin for an autonomous thing, a simulation for determining whether a user requirement is satisfied. The present invention relates to an electronic device that provides autonomous control software with improved reliability by performing it.

자율형 사물(Autonomous Thing)은 인공지능 기술을 활용하여 수집된 환경 데이터를 바탕으로 스스로 상황을 인지하고, 의사결정을 내린 후 물리 시스템을 제어하여 주어진 동작을 수행하는 자율성(Autonomy)을 갖출 사물을 의미한다. Autonomous Thing uses artificial intelligence technology to recognize situations on its own based on collected environmental data, make decisions, and then control the physical system to create objects with autonomy to perform given actions. it means.

자율형 사물의 핵심 구성요소인 인공지능 기반의 물리 시스템 제어 소프트웨어는 물리 시스템 또는 외부에 대한 정보를 수집하고, 수집된 정보로부터 상황을 인식하고, 판단하고, 물리 시스템에 제어 명령을 내리는 구성을 포함한다.Artificial intelligence-based physical system control software, a core component of autonomous things, includes a configuration that collects information about the physical system or the outside, recognizes the situation from the collected information, makes a judgment, and gives control commands to the physical system do.

현재 자율형 사물에 적용되는 제어 소프트웨어는 이론적인 데이터 및 가상의 테스트만을 수행하여 물리 시스템에 적용되고, 이러한 경우 실제 적용되었을 때 오류가 빈번하게 발생하는 문제점이 존재한다.Currently, control software applied to autonomous objects is applied to a physical system by performing only theoretical data and virtual tests, and in this case, there is a problem in that errors frequently occur when applied in practice.

본 발명이 해결하고자 하는 기술적 과제는 물리 시스템에 대한 디지털 트윈을 생성하고, 디지털 트윈을 이용해 제어 소프트웨어에 대한 검증을 수행함으로써 신뢰성이 향상된 전자 장치 및 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to provide an electronic device and method with improved reliability by creating a digital twin for a physical system and performing verification on control software using the digital twin.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 자율형 사물에 적용되는 제어 소프트웨어 검증을 수행하는 전자 장치는, 자율형 사물에 대한 디지털 트윈 모델을 생성하고, 디지털 트윈 모델에 대한 시뮬레이션 동작을 관리하는 디지털 트윈 관리 모듈, 사용자 요구 조건에 대응하는 적어도 하나의 소프트웨어를 포함하는 소프트웨어 그룹을 결정하고, 소프트웨어 그룹을 연동하는 프로토타입 제어 소프트웨어를 생성하는 제어 소프트웨어 생성 모듈 및 프로토타입 제어 소프트웨어를 디지털 트윈 관리 모듈로 전송하고, 디지털 트윈 모델에 프로토타입 제어 소프트웨어를 적용한 시뮬레이션 결과를 디지털 트윈 관리 모듈로부터 수신하고, 시뮬레이션 결과를 분석하여 자율형 사물에 적용될 최종 제어 소프트웨어를 결정하는 제어 소프트웨어 검증 모듈을 포함할 수 있다.An electronic device that performs control software verification applied to an autonomous thing according to some embodiments of the present invention for achieving the above technical problem generates a digital twin model for the autonomous thing, and performs a simulation operation on the digital twin model A digital twin management module that manages the software, a control software generation module that determines a software group including at least one software corresponding to a user requirement, and creates a prototype control software linking the software group, and a prototype control software Includes a control software validation module that transmits to the twin management module, receives the simulation results of applying the prototype control software to the digital twin model from the digital twin management module, and analyzes the simulation results to determine the final control software to be applied to the autonomous thing can do.

몇몇 실시예에 따라, 제어 소프트웨어 생성 모듈은, 객체를 분석하는 인공지능 모델 및 자율형 사물을 구동시키는 구동 소프트웨어를 포함하는 소프트웨어 그룹을 결정하고, 결정된 인공지능 모델 및 결정된 인공지능 모델에 적용되는 파라미터 값을 획득하고, 결정된 인공지능 모델 및 구동 소프트웨어를 연동하는 상기 프로토타입 제어 소프트웨어를 생성할 수 있다.According to some embodiments, the control software generating module determines a software group including an artificial intelligence model for analyzing an object and driving software for driving an autonomous thing, and a parameter applied to the determined artificial intelligence model and the determined artificial intelligence model. It is possible to obtain a value and generate the prototype control software that links the determined artificial intelligence model and the driving software.

몇몇 실시예에 따라, 인공지능 모델은 CNN(Convolutional Neural Network) 기반의 모델을 포함하되, 제어 소프트웨어 생성 모듈은, 인공지능 모델에 대한 AI 실행 코드를 생성하고, 구동 소프트웨어에 대한 SW 실행 코드를 생성하고, ROS(Robot Operating System)를 이용하여 AI 실행 코드 및 SW 실행 코드를 연동하는 프로토타입 제어 소프트웨어를 생성할 수 있다.According to some embodiments, the artificial intelligence model includes a Convolutional Neural Network (CNN)-based model, wherein the control software generation module generates an AI executable code for the artificial intelligence model, and generates a SW executable code for the driving software And, it is possible to create prototype control software that interlocks AI execution code and SW execution code using ROS (Robot Operating System).

몇몇 실시예에 따라, 제어 소프트웨어 검증 모듈은, 시뮬레이션 결과가 기정의된 기준 조건을 만족하는 경우 프로토타입 제어 소프트웨어를 최종 제어 소프트웨어로 결정하고, 시뮬레이션 결과가 기준 조건을 만족하지 않는 경우 프로토타입 제어 소프트웨어에 적용되는 파라미터 값을 변경하고, 변경된 프로토타입 제어 소프트웨어를 디지털 트윈 관리 모듈로 전송하고, 변경된 프로토타입 제어 소프트웨어를 적용한 시뮬레이션 결과를 분석하여 최종 제어 소프트웨어를 결정할 수 있다.According to some embodiments, the control software verification module determines that the prototype control software is the final control software when the simulation result satisfies a predefined reference condition, and when the simulation result does not satisfy the reference condition, the prototype control software The final control software can be determined by changing the parameter values applied to the , sending the changed prototype control software to the digital twin management module, and analyzing the simulation results applying the changed prototype control software.

몇몇 실시예에 따라, 제어 소프트웨어 생성 모듈은, 시뮬레이션 결과가 기준 조건을 만족하지 못하는 횟수가 기준값에 도달하는 경우, 프로토타입 제어 소프트웨어를 재생성할 수 있다.According to some embodiments, the control software generation module may regenerate the prototype control software when the number of times the simulation result does not satisfy the reference condition reaches the reference value.

또한, 본 발명의 몇몇 실시예에 따른 자율형 사물에 적용되는 제어 소프트웨어를 검증하는 방법은, 사용자 요구 조건을 수신하는 단계, 사용자 요구 조건에 대응하는 적어도 하나의 소프트웨어를 포함하는 소프트웨어 그룹을 결정하는 단계, 소프트웨어 그룹을 연동하는 프로토타입 제어 소프트웨어를 생성하는 단계, 프로토타입 제어 소프트웨어를 자율형 사물에 대응하는 디지털 트윈 모델에 적용하여 시뮬레이션 결과를 생성하는 단계 및 시뮬레이션 결과를 분석하여 자율형 사물에 적용될 최종 제어 소프트웨어를 결정하는 단계를 포함할 수 있다.In addition, a method for verifying control software applied to an autonomous thing according to some embodiments of the present invention includes receiving a user requirement, and determining a software group including at least one software corresponding to the user requirement. Step, creating a prototype control software linking software groups, applying the prototype control software to a digital twin model corresponding to an autonomous object to generate simulation results, and analyzing the simulation results to be applied to autonomous objects determining the final control software.

몇몇 실시예에 따라, 소프트웨어 그룹을 결정하는 단계는, 객체를 분석하는 인공지능 모델 및 자율형 사물을 구동시키는 구동 소프트웨어를 포함하는 소프트웨어 그룹을 결정하는 단계를 포함할 수 있고, 프로토타입 제어 소프트웨어를 생성하는 단계는, 결정된 인공지능 모델 및 결정된 인공지능 모델에 적용되는 파라미터 값을 획득하는 단계 및 결정된 인공지능 모델 및 구동 소프트웨어를 연동하는 프로토타입 제어 소프트웨어를 생성하는 단계를 포함할 수 있다.According to some embodiments, the determining of the software group may include determining the software group including the artificial intelligence model analyzing the object and driving software for driving the autonomous thing, and using the prototype control software. The generating may include obtaining the determined artificial intelligence model and parameter values applied to the determined artificial intelligence model, and generating a prototype control software that interlocks the determined artificial intelligence model and driving software.

몇몇 실시예에 따라, 인공지능 모델은 CNN 기반의 모델을 포함하되, 프로토타입 제어 소프트웨어를 생성하는 단계는, 인공지능 모델에 대한 AI 실행 코드를 생성하는 단계, 구동 소프트웨어에 대한 SW 실행 코드를 생성하는 단계 및 ROS를 이용하여 AI 실행 코드 및 SW 실행 코드를 연동하는 프로토타입 제어 소프트웨어를 생성하는 단계를 포함할 수 있다.According to some embodiments, the artificial intelligence model includes a CNN-based model, wherein the generating of the prototype control software includes: generating an AI executable code for the artificial intelligence model; generating a SW execution code for the driving software and generating prototype control software that interlocks AI executable code and SW executable code using ROS.

몇몇 실시예에 따라, 최종 제어 소프트웨어를 결정하는 단계는, 시뮬레이션 결과가 기정의된 기준 조건을 만족하는 경우 프로토타입 제어 소프트웨어를 최종 제어 소프트웨어로 결정하는 단계, 시뮬레이션 결과가 기준 조건을 만족하지 않는 경우 프로토타입 제어 소프트웨어에 적용되는 파라미터 값을 변경하는 단계, 변경된 프로토타입 제어 소프트웨어를 디지털 트윈 모델에 적용하여 변경된 시뮬레이션 결과를 생성하는 단계 및 변경된 시뮬레이션 결과를 분석하여 최종 제어 소프트웨어를 결정하는 단계를 포함할 수 있다.According to some embodiments, the determining of the final control software may include determining the prototype control software as the final control software when the simulation result satisfies a predefined reference condition, when the simulation result does not satisfy the reference condition changing the parameter values applied to the prototype control software; applying the changed prototype control software to the digital twin model to generate changed simulation results; and analyzing the changed simulation results to determine the final control software. can

몇몇 실시예에 따라, 시뮬레이션 결과 또는 변경된 시뮬레이션 결과가 기준 조건을 만족하지 못하는 횟수를 카운팅하는 단계 및 카운팅된 횟수가 기준값에 도달하는 경우 프로토타입 제어 소프트웨어를 재생성하는 단계를 포함할 수 있다.According to some embodiments, the method may include counting the number of times the simulation result or the changed simulation result does not satisfy a reference condition, and regenerating the prototype control software when the counted number reaches the reference value.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.

도 1은 본 발명의 몇몇 실시예에 따른 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 몇몇 실시예에 따른 프로세서의 구성을 설명하기 위한 도면이다.
도 4 내지 도 8은 본 발명의 몇몇 실시예에 따른 자율형 사물에 적용되는 제어 소프트웨어를 검증하는 방법을 설명하기 위한 순서도이다.
1 is a diagram for explaining a system according to some embodiments of the present invention.
2 is a view for explaining an electronic device according to some embodiments of the present invention.
3 is a diagram for explaining the configuration of a processor according to some embodiments of the present invention.
4 to 8 are flowcharts for explaining a method of verifying control software applied to an autonomous thing according to some embodiments of the present invention.

이하, 본 발명의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings. However, it is not intended to limit the present invention to specific embodiments, and it should be understood that various modifications, equivalents, and/or alternatives of the embodiments of the present invention are included.

이하에서, 도 1 내지 도 8을 참조하여 본 발명의 몇몇 실시예에 따른 자율형 사물에 적용되는 제어 소프트웨어 검증을 수행하는 전자 장치 및 이의 구동 방법을 설명한다.Hereinafter, an electronic device for performing control software verification applied to an autonomous thing according to some embodiments of the present invention and a driving method thereof will be described with reference to FIGS. 1 to 8 .

도 1은 본 발명의 몇몇 실시예에 따른 시스템을 설명하기 위한 도면이다.1 is a diagram for explaining a system according to some embodiments of the present invention.

도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 시스템(100)은 전자 장치(1000), 사용자 단말(2000), AI 모델 데이터베이스(3000) 및 자율형 사물(4000)을 포함할 수 있다.Referring to FIG. 1 , a system 100 according to some embodiments of the present disclosure may include an electronic device 1000 , a user terminal 2000 , an AI model database 3000 , and an autonomous thing 4000 .

전자 장치(1000)는 사용자 단말(2000)로부터 사용자 요구 조건을 수신하고, 사용자 요구 조건을 충족시키는 소프트웨어를 생성하는 장치일 수 있다. 즉, 소프트웨어 개발 프레임워크를 포함하는 장치일 수 있다.The electronic device 1000 may be a device that receives a user requirement from the user terminal 2000 and generates software that satisfies the user requirement. That is, it may be a device including a software development framework.

사용자 단말(2000)은 자율형 사물(4000)에 적용되는 요구 조건을 전자 장치(1000)로 제공하는 단말일 수 있다. 사용자 단말(2000)은 특정 종류의 단말을 의미하지 않고, 전자 장치(1000)와의 통신을 수행할 수 있는 모든 종류의 단말로 구현될 수 있다. 몇몇 실시예에 따라, 사용자 단말(2000)은 개발 또는 적용하고자 하는 기능, 성능 등의 요구사항과 센서 데이터의 유형, 액추에이터 스펙과 같은 자율형 사물(4000)(또는 물리 시스템)의 사양 정보를 사용자 요구 조건으로서 전자 장치(1000)로 전달할 수 있다.The user terminal 2000 may be a terminal that provides a requirement applied to the autonomous thing 4000 to the electronic device 1000 . The user terminal 2000 does not mean a specific type of terminal, but may be implemented as any type of terminal capable of performing communication with the electronic device 1000 . According to some embodiments, the user terminal 2000 transmits specification information of the autonomous thing 4000 (or a physical system) such as requirements such as functions and performance to be developed or applied, types of sensor data, and specifications of actuators to the user. It may be transmitted to the electronic device 1000 as a request condition.

AI 모델 데이터베이스(3000)는 인공지능 모델을 저장하는 저장 장치일 수 있다. 몇몇 실시예에 따라, AI 모델 데이터베이스(3000)는 클라우드의 형태로 구현될 수 있다. AI 모델 데이터베이스(3000)는 전자 장치(1000)로부터 특정 인공지능 모델에 대한 요청을 수신하고, 이에 대응되는 인공지능 모델을 특정하여 전자 장치(1000)로 제공할 수 있다.The AI model database 3000 may be a storage device for storing artificial intelligence models. According to some embodiments, the AI model database 3000 may be implemented in the form of a cloud. The AI model database 3000 may receive a request for a specific AI model from the electronic device 1000 , specify an AI model corresponding thereto, and provide it to the electronic device 1000 .

자율형 사물(4000)은 본 발명의 몇몇 실시예에 따라 생성되는 제어 소프트웨어가 적용되는 물리 시스템일 수 있다. 자율형 사물(4000)은 인공지능을 통해 주변 환경 및 사람들과 자연스럽게 상호작용하는 고차원적인 행동을 수행하는 로봇, 드론, 자율주행차 등일 수 있으나, 이에 한정되지는 않고 다양한 종류의 자율형 사물(4000)에 본 발명이 적용될 수 있음은 물론이다.The autonomous thing 4000 may be a physical system to which control software generated according to some embodiments of the present invention is applied. The autonomous object 4000 may be a robot, a drone, an autonomous vehicle, etc. that perform high-level actions that naturally interact with the surrounding environment and people through artificial intelligence, but is not limited thereto, and various types of autonomous objects 4000 ), of course, the present invention can be applied to.

도 2는 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 도면이다.2 is a view for explaining an electronic device according to some embodiments of the present invention.

도 2를 참조하면, 본 발명의 몇몇 실시예에 따른 전자 장치(1000)는 통신 모듈(1100), 프로세서(1300), 메모리(1500) 및 디지털 트윈 모듈(1700)을 포함할 수 있다.Referring to FIG. 2 , an electronic device 1000 according to some embodiments of the present disclosure may include a communication module 1100 , a processor 1300 , a memory 1500 , and a digital twin module 1700 .

통신 모듈(1100)은 전자 장치(1000)와 다른 전자 장치(예를 들어, 사용자 단말(2000), 자율형 사물(4000), AI 모델 데이터베이스(3000) 등) 또는 서버와의 통신을 연결할 수 있다. 통신 모듈(1100)은 소정의 근거리 통신 프로토콜(예: Wi-Fi(wireless fidelity), BT(Bluetooth), NFC(near field communication), 소정의 네트워크 통신(예: Internet, LAN(local area network), WAN(wire area network), telecommunication network, cellular network, satellite network 또는 POTS(plain old telephone service) 등) 또는 유선 통신 프로토콜(예: USB(universal serial bus), HDMI(high definition multimedia interface) 등)을 지원할 수 있다. The communication module 1100 may connect communication between the electronic device 1000 and another electronic device (eg, the user terminal 2000, the autonomous thing 4000, the AI model database 3000, etc.) or a server. . Communication module 1100 is a predetermined short-range communication protocol (eg, Wi-Fi (wireless fidelity), BT (Bluetooth), NFC (near field communication), predetermined network communication (eg, Internet, local area network (LAN)), to support a wire area network (WAN), telecommunication network, cellular network, satellite network, or plain old telephone service (POTS) or wired communication protocols such as universal serial bus (USB), high definition multimedia interface (HDMI), etc. can

프로세서(1300)는 데이터 버스를 통해 전자 장치(1000)의 다른 구성요소들로부터 명령을 수신하고, 수신된 명령을 해석하고, 해석된 명령에 따른 연산이나 데이터 처리를 수행할 수 있다.The processor 1300 may receive a command from other components of the electronic device 1000 through the data bus, interpret the received command, and perform an operation or data processing according to the interpreted command.

메모리(1500)는 프로세서(1300) 또는 전자 장치(1000)의 다른 구성요소들로부터 수신되거나 프로세서(1300) 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 몇몇 실시예에 따라, 메모리(1500)는 프로그램 메모리 및 데이터 메모리들로 구성될 수 있으며, 프로그램 메모리에는 휴대단말기의 일반적인 동작을 제어하기 위한 프로그램이 저장된다. 몇몇 실시예에 따라, 메모리(1500)는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(Extreme Digital) 및 Memory Stick 등의 외장형 메모리를 더 포함할 수도 있다. 또한, 메모리(1500)는 HDD(Hard Disk Drive) 및 SSD(Solid State Disk) 등과 같은 디스크 저장 장치를 포함할 수도 있다.The memory 1500 may store commands or data received from the processor 1300 or other components of the electronic device 1000 or generated by the processor 1300 or other components. According to some embodiments, the memory 1500 may be composed of a program memory and data memories, and a program for controlling general operations of the portable terminal is stored in the program memory. According to some embodiments, the memory 1500 may include Compact Flash (CF), Secure Digital (SD), Micro Secure Digital (Micro-SD), Mini Secure Digital (Mini-SD), Extreme Digital (xD), and Memory Stick. It may further include an external memory of. Also, the memory 1500 may include a disk storage device such as a hard disk drive (HDD) and a solid state disk (SSD).

디지털 트윈 모듈(1700)은 자율형 사물(4000)에 대한 디지털 트윈 모델을 생성하고, 디지털 트윈 모델에 대한 시뮬레이션 동작을 수행할 수 있다. 본 명세서에서, "디지털 트윈 모듈(1700)"은 "디지털 트윈 관리 모듈(1700)"로도 표현될 수 있다.The digital twin module 1700 may generate a digital twin model for the autonomous thing 4000 and perform a simulation operation on the digital twin model. In this specification, "digital twin module 1700" may also be expressed as "digital twin management module 1700".

도 3은 본 발명의 몇몇 실시예에 따른 프로세서의 구성을 설명하기 위한 도면이다.3 is a diagram for explaining the configuration of a processor according to some embodiments of the present invention.

도 3을 참조하면, 본 발명의 몇몇 실시예에 따른 프로세서(1300)는 자율형 사물(4000)에 적용되는 소프트웨어라는 결과물을 생성하는 프레임워크(Framework)로서의 기능을 수행할 수 있다. 도시된 바와 같이, 프로세서(1300)는 제어 소프트웨어 생성 모듈(1311) 및 제어 소프트웨어 검증 모듈(1313)을 포함할 수 있다.Referring to FIG. 3 , a processor 1300 according to some embodiments of the present invention may function as a framework for generating a result called software applied to an autonomous thing 4000 . As shown, the processor 1300 may include a control software generation module 1311 and a control software verification module 1313 .

제어 소프트웨어 생성 모듈(1311)은 사용자 단말(2000)로부터 수신된 사용자 요구 조건에 대응하는 적어도 하나의 소프트웨어를 포함하는 소프트웨어 그룹을 결정하고, 소프트웨어 그룹을 연동하는 프로토타입 제어 소프트웨어를 생성할 수 있다. 제어 소프트웨어 생성 모듈(1311)은 사용자 요구 조건을 파싱하여 필요한 인공지능 모델 및 하드웨어 제어 로직을 도출하고, AI 모델 데이터베이스(3000)로부터 인공지능 모델을 획득하여 프로토타입 제어 소프트웨어를 생성할 수 있다.The control software generation module 1311 may determine a software group including at least one software corresponding to a user requirement received from the user terminal 2000 , and generate prototype control software linking the software group. The control software generation module 1311 may parse user requirements to derive necessary artificial intelligence models and hardware control logic, and may obtain an artificial intelligence model from the AI model database 3000 to generate prototype control software.

제어 소프트웨어 검증 모듈(1313)은 프로토타입 제어 소프트웨어를 디지털 트윈 관리 모듈(1700)로 전송하고, 디지털 트윈 모델에 프로토타입 제어 소프트웨어를 적용한 시뮬레이션 결과를 획득하고, 이에 기초하여 자율형 사물(4000)에 적용될 최종 제어 소프트웨어를 결정할 수 있다.The control software verification module 1313 transmits the prototype control software to the digital twin management module 1700, obtains a simulation result of applying the prototype control software to the digital twin model, and based on this, the autonomous thing 4000 The final control software to be applied can be determined.

사용자 요구 조건에 부합하는 프로토타입 제어 소프트웨어를 생성하고, 디지털 트윈 모델에 대한 시뮬레이션 결과를 이용하여 최종 제어 소프트웨어를 생성하는 구체적인 설명은 도 4 내지 도 8을 참조하여 상세히 설명한다.A detailed description of generating the prototype control software that meets the user requirements and generating the final control software using the simulation results for the digital twin model will be described in detail with reference to FIGS. 4 to 8 .

도 4 내지 도 8은 본 발명의 몇몇 실시예에 따른 자율형 사물에 적용되는 제어 소프트웨어를 검증하는 방법을 설명하기 위한 순서도이다.4 to 8 are flowcharts for explaining a method of verifying control software applied to an autonomous thing according to some embodiments of the present invention.

도 4를 참조하면, 본 발명의 몇몇 실시예에 따른 방법은, 사용자 단말(2000)로부터 수신된 사용자 요구 조건(REQ_USER)에 부합하는 최종 제어 소프트웨어(SW_Final)를 결정하여 자율형 사물(4000)에 적용시킬 수 있다. 이하에서, 배꽃 수분을 자율적으로 수행하는 드론에 본 발명을 적용하는 경우의 실시예를 설명하나, 본 발명이 이제 제한되지는 않고 다양한 종류의 자율형 사물에 적용되고, 사용자 요구 조건 역시 이에 제한되지는 않고 자율형 사물에 적용될 수 있는 다양한 조건이 적용될 수 있다.Referring to FIG. 4 , the method according to some embodiments of the present invention determines the final control software SW_Final that meets the user requirement condition REQ_USER received from the user terminal 2000 and sends it to the autonomous thing 4000 . can be applied. Hereinafter, an embodiment of applying the present invention to a drone that autonomously pollinates pear flowers will be described, but the present invention is not limited and is applied to various types of autonomous objects, and user requirements are also not limited thereto. Various conditions that can be applied to autonomous things can be applied.

S100 단계에서, 전자 장치(1000)는 사용자 단말(2000)로부터 사용자 요구 조건(REQ_USER)을 수신할 수 있다. 예를 들어, 사용자 요구 조건(REQ_USER)은 꽃봉오리가 전체 크기 대비 70% 이상 개화된 경우 수분의 대상으로 분류하는 조건과, 수분 대상으로 판단되는 경우 꽃과의 거리가 10cm를 유지하여 이동하고, 드론과 배꽃과의 거리가 20cm 이하일 경우 드론을 시속 10km/h 이하의 속도로 이동하도록 한 후 노즐을 통해 수술을 분사하는 조건이 사용자 요구 조건(REQ_USER)으로 요구될 수 있다.In step S100 , the electronic device 1000 may receive a user request condition REQ_USER from the user terminal 2000 . For example, the user requirement (REQ_USER) is a condition to classify a bud as a pollination target when it is in bloom more than 70% of its total size If the distance between the drone and the pear flower is less than 20cm, the condition of spraying surgery through a nozzle after allowing the drone to move at a speed of 10 km/h or less may be required as a user requirement (REQ_USER).

S200 단계에서, 전자 장치(1000)는 사용자 요구 조건(REQ_USER)에 대응하는 적어도 하나의 소프트웨어를 포함하는 소프트웨어 그룹을 결정할 수 있다. 몇몇 실시예에 따라, 소프트웨어 그룹은 객체를 분석하는 인공지능 모델 및 자율형 사물(4000)을 구동시키는 구동 소프트웨어를 포함할 수 있다. 예를 들어, 배꽃의 분류를 수행하는 CNN(Convolutional Neural Network) 기반의 인공지능 모델 및 개화 정도를 분석하기 위한 이미지 처리 인공지능 모델을 소프트웨어 그룹의 인공지능 모델로서 결정하고, 배꽃을 인식하는 소프트웨어, 개화 정도를 분석하는 소프트웨어, 드론의 이동을 제어하는 소프트웨어 및 노즐을 제어하는 소프트웨어를 소프트웨어 그룹의 구동 소프트웨어로서 포함할 수 있다.In operation S200 , the electronic device 1000 may determine a software group including at least one software corresponding to the user requirement REQ_USER. According to some embodiments, the software group may include an artificial intelligence model for analyzing an object and driving software for driving the autonomous thing 4000 . For example, a convolutional neural network (CNN)-based artificial intelligence model that performs classification of pear flowers and an image processing artificial intelligence model for analyzing the degree of flowering are determined as an artificial intelligence model of a software group, software that recognizes pear flowers, Software for analyzing the degree of flowering, software for controlling the movement of the drone, and software for controlling the nozzle may be included as driving software of the software group.

S300 단계에서, 전자 장치는 AI 모델 데이터베이스(3000)로 필요한 인공지능 모델(AI)을 요청하고, S400 단계에서, 필요한 인공지능 모델에 대응되는 인공지능 모델 및 파라미터 값을 AI 모델 데이터베이스(3000)로부터 획득할 수 있다.In step S300, the electronic device requests a necessary artificial intelligence model (AI) to the AI model database 3000, and in step S400, an artificial intelligence model and parameter values corresponding to the required artificial intelligence model from the AI model database 3000 can be obtained

S500 단계에서, 전자 장치(1000)는 획득한 구동 소프트웨어 및 인공지능 모델에 기초하여 프로토타입 제어 소프트웨어(SW_Prototype)를 생성할 수 있다. 예를 들어, 인공지능 기반 소프트웨어 라이브러리를 활용하여 인공지능 실행 코드를 자동 생성하고, 드론 제어 소프트웨어 API를 활용하여 구동 소프트웨어에 대한 실행 코드를 자동 생성한 후, ROS(Robot Operating System)와 같은 제어 통신 미들웨어를 통해 각각의 소프트웨어들 간의 연동하여 프로토타입 제어 소프트웨어(SW_Prototype)를 생성할 수 있다.In operation S500 , the electronic device 1000 may generate the prototype control software SW_Prototype based on the acquired driving software and the artificial intelligence model. For example, after using an artificial intelligence-based software library to automatically generate an artificial intelligence execution code, and automatically generating an execution code for the driving software by using the drone control software API, control communication such as ROS (Robot Operating System) A prototype control software (SW_Prototype) can be created by interworking between respective softwares through the middleware.

S600 단계에서, 전자 장치(1000)는 디지털 트윈 모델에 프로토타입 제어 소프트웨어(SW_Prototype)를 적용하여 시뮬레이션을 수행하고, 이에 기초하여 S700 단계에서, 최종 제어 소프트웨어(SW_Final)를 결정한 후, S800 단계에서, 결정된 최종 제어 소프트웨어(SW_Final)를 자율형 사물(4000)에 적용시킬 수 있다.In step S600, the electronic device 1000 performs a simulation by applying the prototype control software (SW_Prototype) to the digital twin model, and based on this, in step S700, after determining the final control software (SW_Final), in step S800, The determined final control software SW_Final may be applied to the autonomous thing 4000 .

도 5 및 도 6를 참조하면, 전자 장치(1000)의 제어 소프트웨어 생성 모듈(1311), 제어 소프트웨어 검증 모듈(1313) 및 디지털 트윈 관리 모듈(1700)을 통해 최종 제어 소프트웨어(SW_Final)를 결정할 수 있다.5 and 6 , the final control software SW_Final may be determined through the control software generation module 1311 , the control software verification module 1313 , and the digital twin management module 1700 of the electronic device 1000 . .

디지털 트윈 관리 모듈(1700)은 자율형 사물(4000)에 대응되는 디지털 트윈 모델을 생성할 수 있다.The digital twin management module 1700 may generate a digital twin model corresponding to the autonomous thing 4000 .

제어 소프트웨어 생성 모듈(1311)에 의해 생성된 프로토타입 제어 소프트웨어(SW_Prototype)를 제어 소프트웨어 검증 모듈(1313)이 획득하고(S2000, S3000), 프로토타입 제어 소프트웨어(SW_Prototype)를 디지털 트윈 관리 모듈(1700)로 전송할 수 있다(S4000). 구체적으로, 제어 소프트웨어 생성 모듈(1311)은 인공지능 모델 및 구동 소프트웨어를 포함하는 소프트웨어 그룹을 결정하고(S2100), 인공지능 모델 및 파라미터 값을 AI 모델 데이터베이스(3000)로부터 획득하고(S2300), 인공지능 모델 및 구동 소프트웨어를 연동하는 프로토타입 제어 소프트웨어(SW_Prototype)를 생성할 수 있다(S2500).The control software verification module 1313 acquires the prototype control software (SW_Prototype) generated by the control software generation module 1311 (S2000, S3000), and converts the prototype control software (SW_Prototype) to the digital twin management module 1700 can be transmitted to (S4000). Specifically, the control software generation module 1311 determines a software group including an artificial intelligence model and driving software (S2100), obtains an artificial intelligence model and parameter values from the AI model database 3000 (S2300), and It is possible to create a prototype control software (SW_Prototype) that interlocks the intelligent model and the driving software (S2500).

S5000 단계에서, 디지털 트윈 관리 모듈(1700)은 디지털 트윈 모델에 프로토타입 제어 소프트웨어(SW_Prototype)를 적용한 시뮬레이션을 수행하고, S6000 단계에서, 시뮬레이션 결과(DATA_Simulation)를 제어 소프트웨어 검증 모듈(1313)로 전송할 수 있다. 예를 들어, 배꽃 수술 시나리오에서의 드론 자율제어 소프트웨어를 프로토타입 제어 소프트웨어(SW_Prototype)로서 적용한 시뮬레이션 결과일 수 있다. 이 때, 시뮬레이션 결과(DATA_Simulation)는 드론의 위치, 드론의 모터 입력으로 사용되는 PWM 제어값, 모터의 회전 속도, 드론의 이동 속도, 배꽃과의 거리 정보 등에 대한 데이터를 시뮬레이션 결과(DATA_Simulation)로서 제어 소프트웨어 검증 모듈(1313)로 전송할 수 있다.In step S5000, the digital twin management module 1700 performs a simulation by applying the prototype control software (SW_Prototype) to the digital twin model, and in step S6000, the simulation result (DATA_Simulation) can be transmitted to the control software verification module 1313. have. For example, it may be a simulation result of applying the drone autonomous control software in the pear flower surgery scenario as the prototype control software (SW_Prototype). At this time, the simulation result (DATA_Simulation) controls data on the position of the drone, the PWM control value used as the drone's motor input, the rotation speed of the motor, the moving speed of the drone, and distance information from the pear flower as the simulation result (DATA_Simulation) may be transmitted to the software verification module 1313 .

S7000 단계에서, 제어 소프트웨어 검증 모듈(1313)은 획득한 시뮬레이션 결과(DATA_Simulation)에 기초하여 최종 제어 소프트웨어(SW_Final)를 결정할 수 있다. 제어 소프트웨어 검증 모듈(1313)에서 수행되는 동작에 대하여는 도 7 및 도 8을 참조하여 상세히 후술한다.In step S7000 , the control software verification module 1313 may determine the final control software SW_Final based on the obtained simulation result DATA_Simulation. An operation performed by the control software verification module 1313 will be described later in detail with reference to FIGS. 7 and 8 .

도 7을 참조하면, 제어 소프트웨어 검증 모듈(1313)은 시뮬레이션 결과(DATA_Simulation)가 기준 조건(CONDITION_REF)을 만족하는지에 기초하여 최종 제어 소프트웨어(SW_Final)를 결정할 수 있다.Referring to FIG. 7 , the control software verification module 1313 may determine the final control software SW_Final based on whether the simulation result DATA_Simulation satisfies the reference condition CONDITION_REF.

S7100 단계에서, 제어 소프트웨어 검증 모듈(1313)은 시뮬레이션 결과(DATA_Simulation)가 기준 조건(CONDITION_REF)을 만족하는지 여부를 판단할 수 있다. 시뮬레이션 결과(DATA_Simulation)가 기준 조건(CONDITION_REF)을 만족하는 경우 프로토타입 제어 소프트웨어(SW_Prototype)를 최종 제어 소프트웨어로 결정하고(S7200), 이를 자율형 사물에 적용시킬 수 있다.In step S7100 , the control software verification module 1313 may determine whether the simulation result DATA_Simulation satisfies the reference condition CONDITION_REF. When the simulation result DATA_Simulation satisfies the reference condition CONDITION_REF, the prototype control software SW_Prototype may be determined as the final control software (S7200), and this may be applied to the autonomous object.

시뮬레이션 결과(DATA_Simulation) 기준 조건(CONDITION_REF)을 만족하지 못하는 경우, S7300 단계에서, 프로토타입 제어 소프트웨어(SW_Prototype)의 파라미터를 변경한 소프트웨어(SW'_Prototype)를 생성하고, 변경된 소프트웨어(SW'_Prototype)를 디지털 트윈 모델에 적용하여 시뮬레이션 동작을 반복적으로 수행할 수 있다. 예를 들어, 변경되는 파라미터 값은 드론의 이동 제어 소프트웨어의 PWM 제어 수식의 계수 등일 수 있다.If the simulation result (DATA_Simulation) does not satisfy the reference condition (CONDITION_REF), in step S7300, software (SW'_Prototype) in which the parameters of the prototype control software (SW_Prototype) are changed is created, and the changed software (SW'_Prototype) is created By applying it to the digital twin model, the simulation operation can be repeatedly performed. For example, the parameter value to be changed may be a coefficient of a PWM control equation of the drone movement control software.

도 8을 참조하면, 본 발명의 몇몇 실시예에 따른 전자 장치(1000)는 시뮬레이션 결과(DATA_Simulation)가 기준 조건(CONDITION_REF)을 만족하지 못하는 횟수가 기준값(VALUE_REF)에 도달하는 경우, 프로토타입 제어 소프트웨어(SW_Prototype)를 재생성할 수 있다.Referring to FIG. 8 , when the number of times the simulation result DATA_Simulation does not satisfy the reference condition CONDITION_REF reaches the reference value VALUE_REF, the prototype control software (SW_Prototype) can be regenerated.

시뮬레이션 결과(DATA_Simulation)가 기준 조건(CONDITION_REF)을 만족하지 못하는 경우, S7400 단계에서, 시뮬레이션 결과(DATA_Simulation)가 기준 조건(CONDITION_REF)을 만족하지 못한 횟수를 카운팅하고, 횟수가 기준값(VALUE_REF)에 도달하는 경우 프로토타입 제어 소프트웨어(SW_Prototype)의 파라미터를 변경하지 않고 프로토타입 제어 소프트웨어(SW_Prototype)를 재생성할 수 있다. 즉, 시뮬레이션 결과(DATA_Simulation)가 반복적으로 기준 조건(CONDITION_REF)을 만족하지 못하는 경우 프로토타입 제어 소프트웨어(SW_Prototype)가 적절하게 생성되지 않았을 가능성이 높고, 이에 따라 소정의 횟수를 초과하여 기준 조건(CONDITION_REF)을 만족하지 못하는 경우 프로토타입 제어 소프트웨어(SW_Prototype)를 재생산함으로써 효율적인 소프트웨어의 검증이 가능하게 된다.If the simulation result (DATA_Simulation) does not satisfy the reference condition (CONDITION_REF), in step S7400, the number of times the simulation result (DATA_Simulation) does not satisfy the reference condition (CONDITION_REF) is counted, and the number of times reaches the reference value (VALUE_REF) In this case, the prototype control software (SW_Prototype) can be regenerated without changing the parameters of the prototype control software (SW_Prototype). That is, if the simulation result (DATA_Simulation) repeatedly does not satisfy the reference condition (CONDITION_REF), it is highly likely that the prototype control software (SW_Prototype) was not properly generated, and accordingly, the reference condition (CONDITION_REF) exceeds a predetermined number of times. If not satisfied, efficient software verification is possible by reproducing the prototype control software (SW_Prototype).

본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나" 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of the embodiments. In connection with the description of the drawings, like reference numerals may be used for similar or related components. The singular form of the noun corresponding to the item may include one or more of the item, unless the relevant context clearly dictates otherwise. As used herein, "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C" and "A; Each of the phrases such as "at least one of B, or C" may include any one of, or all possible combinations of, items listed together in the corresponding one of the phrases. Terms such as “first” and “second” may simply be used to distinguish a corresponding component from other corresponding components, and do not limit the corresponding components in other aspects (eg, importance or order).

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. As used herein, the term “module” may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, component, or circuit. A module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(1000)) 의해 읽을 수 있는 저장 매체(storage medium에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 기기(예를 들어, 전자 장치(1000))의 프로세서(예: 프로세서(1300))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document may be implemented as software including one or more instructions stored in a storage medium readable by a machine (eg, the electronic device 1000). For example, the device ( For example, the processor (eg, the processor 1300 ) of the electronic device 1000 may call at least one of the one or more instructions stored from the storage medium and execute it. enable operation to perform at least one function according to at least one instruction.The one or more instructions may include a code generated by a compiler or a code executable by an interpreter. The storage medium may be provided in the form of a non-transitory storage medium, where 'non-transitory' is a device in which the storage medium is tangible and includes a signal (eg, electromagnetic wave). It just means not to do it, and this term does not distinguish between a case in which data is stored semi-permanently in a storage medium and a case in which it is temporarily stored.

일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to an embodiment, the method according to various embodiments disclosed in this document may be provided by being included in a computer program product. Computer program products may be traded between sellers and buyers as commodities. The computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store or between two user devices (eg smartphones). It can be distributed directly or online (eg, downloaded or uploaded). In the case of online distribution, at least a part of the computer program product may be temporarily stored or temporarily created in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.

다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (eg, a module or a program) of the above-described components may include a singular or a plurality of entities. According to various embodiments, one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, a module or a program) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.

100: 시스템 1000: 전자 장치
1100: 통신 모듈 1300: 프로세서
1310: 프레임워크 1311: 제어 소프트웨어 생성 모듈
1313: 제어 소프트웨어 검증 모듈 1500: 메모리
1700: 디지털 트윈 모듈 2000: 사용자 단말
3000: AI 모델 데이터베이스 4000: 자율형 사물
100: system 1000: electronic device
1100: communication module 1300: processor
1310: framework 1311: control software generation module
1313: control software verification module 1500: memory
1700: digital twin module 2000: user terminal
3000: AI Model Database 4000: Autonomous Things

Claims (10)

자율형 사물에 적용되는 제어 소프트웨어 검증을 수행하는 전자 장치로서,
상기 자율형 사물에 대한 디지털 트윈 모델을 생성하고, 상기 디지털 트윈 모델에 대한 시뮬레이션 동작을 관리하는 디지털 트윈 관리 모듈;
사용자 요구 조건에 대응하는 적어도 하나의 소프트웨어를 포함하는 소프트웨어 그룹을 결정하고, 상기 소프트웨어 그룹을 연동하는 프로토타입 제어 소프트웨어를 생성하는 제어 소프트웨어 생성 모듈; 및
상기 프로토타입 제어 소프트웨어를 상기 디지털 트윈 관리 모듈로 전송하고, 상기 디지털 트윈 모델에 상기 프로토타입 제어 소프트웨어를 적용한 시뮬레이션 결과를 상기 디지털 트윈 관리 모듈로부터 수신하고, 상기 시뮬레이션 결과를 분석하여 상기 자율형 사물에 적용될 최종 제어 소프트웨어를 결정하는 제어 소프트웨어 검증 모듈을 포함하는, 전자 장치.
An electronic device that performs control software verification applied to autonomous things, the electronic device comprising:
a digital twin management module for generating a digital twin model for the autonomous thing and managing a simulation operation for the digital twin model;
a control software generation module that determines a software group including at least one software corresponding to a user requirement and generates a prototype control software interworking with the software group; and
The prototype control software is transmitted to the digital twin management module, a simulation result obtained by applying the prototype control software to the digital twin model is received from the digital twin management module, and the simulation result is analyzed to be applied to the autonomous thing. An electronic device comprising a control software validation module that determines the final control software to be applied.
청구항 1에 있어서,
상기 제어 소프트웨어 생성 모듈은,
객체를 분석하는 인공지능 모델 및 상기 자율형 사물을 구동시키는 구동 소프트웨어를 포함하는 상기 소프트웨어 그룹을 결정하고,
결정된 인공지능 모델 및 상기 결정된 인공지능 모델에 적용되는 파라미터 값을 획득하고,
상기 결정된 인공지능 모델 및 상기 구동 소프트웨어를 연동하는 상기 프로토타입 제어 소프트웨어를 생성하는, 전자 장치.
The method according to claim 1,
The control software generation module,
Determining the software group including an artificial intelligence model for analyzing an object and driving software for driving the autonomous thing,
Obtaining the determined artificial intelligence model and parameter values applied to the determined artificial intelligence model,
An electronic device that generates the prototype control software that links the determined artificial intelligence model and the driving software.
청구항 2에 있어서,
상기 인공지능 모델은 CNN(Convolutional Neural Network) 기반의 모델을 포함하되,
상기 제어 소프트웨어 생성 모듈은,
상기 인공지능 모델에 대한 AI 실행 코드를 생성하고,
상기 구동 소프트웨어에 대한 SW 실행 코드를 생성하고,
ROS(Robot Operating System)를 이용하여 상기 AI 실행 코드 및 상기 SW 실행 코드를 연동하는 상기 프로토타입 제어 소프트웨어를 생성하는, 전자 장치.
3. The method according to claim 2,
The artificial intelligence model includes a Convolutional Neural Network (CNN)-based model,
The control software generation module,
generate AI executable code for the artificial intelligence model;
generating a SW executable code for the driving software;
An electronic device for generating the prototype control software that interworks the AI execution code and the SW execution code using a Robot Operating System (ROS).
청구항 1에 있어서,
상기 제어 소프트웨어 검증 모듈은,
상기 시뮬레이션 결과가 기정의된 기준 조건을 만족하는 경우, 상기 프로토타입 제어 소프트웨어를 상기 최종 제어 소프트웨어로 결정하고,
상기 시뮬레이션 결과가 상기 기준 조건을 만족하지 않는 경우, 상기 프로토타입 제어 소프트웨어에 적용되는 파라미터 값을 변경하고, 상기 변경된 프로토타입 제어 소프트웨어를 상기 디지털 트윈 관리 모듈로 전송하고, 상기 변경된 프로토타입 제어 소프트웨어를 적용한 시뮬레이션 결과를 분석하여 상기 최종 제어 소프트웨어를 결정하는, 전자 장치.
The method according to claim 1,
The control software verification module,
When the simulation result satisfies a predefined reference condition, determining the prototype control software as the final control software;
When the simulation result does not satisfy the reference condition, the parameter value applied to the prototype control software is changed, the changed prototype control software is transmitted to the digital twin management module, and the changed prototype control software is executed. An electronic device for determining the final control software by analyzing the applied simulation result.
청구항 4에 있어서,
상기 제어 소프트웨어 생성 모듈은,
상기 시뮬레이션 결과가 상기 기준 조건을 만족하지 못하는 횟수가 기준값에 도달하는 경우, 상기 프로토타입 제어 소프트웨어를 재생성하는, 전자 장치.
5. The method according to claim 4,
The control software generation module,
and regenerating the prototype control software when the number of times the simulation result does not satisfy the reference condition reaches a reference value.
자율형 사물에 적용되는 제어 소프트웨어를 검증하는 방법으로,
사용자 요구 조건을 수신하는 단계;
상기 사용자 요구 조건에 대응하는 적어도 하나의 소프트웨어를 포함하는 소프트웨어 그룹을 결정하는 단계;
상기 소프트웨어 그룹을 연동하는 프로토타입 제어 소프트웨어를 생성하는 단계;
상기 프로토타입 제어 소프트웨어를 상기 자율형 사물에 대응하는 디지털 트윈 모델에 적용하여 시뮬레이션 결과를 생성하는 단계; 및
상기 시뮬레이션 결과를 분석하여 상기 자율형 사물에 적용될 최종 제어 소프트웨어를 결정하는 단계를 포함하는, 방법.
As a method of verifying control software applied to autonomous things,
receiving user requirements;
determining a software group including at least one software corresponding to the user requirement;
generating a prototype control software linking the software group;
generating a simulation result by applying the prototype control software to a digital twin model corresponding to the autonomous object; and
and analyzing the simulation result to determine final control software to be applied to the autonomous thing.
청구항 6에 있어서,
상기 소프트웨어 그룹을 결정하는 단계는, 객체를 분석하는 인공지능 모델 및 상기 자율형 사물을 구동시키는 구동 소프트웨어를 포함하는 상기 소프트웨어 그룹을 결정하는 단계를 포함하고,
상기 프로토타입 제어 소프트웨어를 생성하는 단계는,
결정된 인공지능 모델 및 상기 결정된 인공지능 모델에 적용되는 파라미터 값을 획득하는 단계; 및
상기 결정된 인공지능 모델 및 상기 구동 소프트웨어를 연동하는 상기 프로토타입 제어 소프트웨어를 생성하는 단계를 포함하는, 방법.
7. The method of claim 6,
The determining of the software group includes determining the software group including an artificial intelligence model for analyzing an object and driving software for driving the autonomous thing,
The step of generating the prototype control software comprises:
obtaining the determined artificial intelligence model and parameter values applied to the determined artificial intelligence model; and
and generating the prototype control software linking the determined artificial intelligence model and the driving software.
청구항 7에 있어서,
상기 인공지능 모델은 CNN 기반의 모델을 포함하되,
상기 프로토타입 제어 소프트웨어를 생성하는 단계는,
상기 인공지능 모델에 대한 AI 실행 코드를 생성하는 단계;
상기 구동 소프트웨어에 대한 SW 실행 코드를 생성하는 단계; 및
ROS를 이용하여 상기 AI 실행 코드 및 상기 SW 실행 코드를 연동하는 상기 프로토타입 제어 소프트웨어를 생성하는 단계를 포함하는, 방법.
8. The method of claim 7,
The artificial intelligence model includes a CNN-based model,
The step of generating the prototype control software comprises:
generating an AI executable code for the artificial intelligence model;
generating SW executable code for the driving software; and
and generating the prototype control software that interworks the AI executable code and the SW executable code using ROS.
청구항 6에 있어서,
상기 최종 제어 소프트웨어를 결정하는 단계는,
상기 시뮬레이션 결과가 기정의된 기준 조건을 만족하는 경우, 상기 프로토타입 제어 소프트웨어를 상기 최종 제어 소프트웨어로 결정하는 단계;
상기 시뮬레이션 결과가 상기 기준 조건을 만족하지 않는 경우, 상기 프로토타입 제어 소프트웨어에 적용되는 파라미터 값을 변경하는 단계;
상기 변경된 프로토타입 제어 소프트웨어를 상기 디지털 트윈 모델에 적용하여 변경된 시뮬레이션 결과를 생성하는 단계; 및
상기 변경된 시뮬레이션 결과를 분석하여 상기 최종 제어 소프트웨어를 결정하는 단계를 포함하는, 방법.
7. The method of claim 6,
Determining the final control software comprises:
determining the prototype control software as the final control software when the simulation result satisfies a predefined reference condition;
changing a parameter value applied to the prototype control software when the simulation result does not satisfy the reference condition;
generating a modified simulation result by applying the modified prototype control software to the digital twin model; and
analyzing the modified simulation result to determine the final control software.
청구항 9에 있어서,
상기 시뮬레이션 결과 또는 상기 변경된 시뮬레이션 결과가 상기 기준 조건을 만족하지 못하는 횟수를 카운팅하는 단계; 및
상기 카운팅된 횟수가 기준값에 도달하는 경우, 상기 프로토타입 제어 소프트웨어를 재생성하는 단계를 포함하는, 방법.
10. The method of claim 9,
counting the number of times the simulation result or the changed simulation result does not satisfy the reference condition; and
when the counted number reaches a reference value, regenerating the prototype control software.
KR1020200122187A 2020-09-22 2020-09-22 Electronic device and method for performing control software verification applied to autonomous thing KR102354594B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200122187A KR102354594B1 (en) 2020-09-22 2020-09-22 Electronic device and method for performing control software verification applied to autonomous thing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200122187A KR102354594B1 (en) 2020-09-22 2020-09-22 Electronic device and method for performing control software verification applied to autonomous thing

Publications (1)

Publication Number Publication Date
KR102354594B1 true KR102354594B1 (en) 2022-01-21

Family

ID=80050427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200122187A KR102354594B1 (en) 2020-09-22 2020-09-22 Electronic device and method for performing control software verification applied to autonomous thing

Country Status (1)

Country Link
KR (1) KR102354594B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114578712A (en) * 2022-03-08 2022-06-03 北京航空航天大学 Multifunctional underwater autonomous vehicle cluster simulation system
WO2023249185A1 (en) * 2022-06-23 2023-12-28 현대자동차주식회사 Vehicle production management system and method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9671777B1 (en) * 2016-06-21 2017-06-06 TruPhysics GmbH Training robots to execute actions in physics-based virtual environment
KR20200076323A (en) * 2018-12-19 2020-06-29 한국전자통신연구원 Apparatus and method for multi-model parallel execution automation and verification on digital twin
KR20200081066A (en) * 2018-12-27 2020-07-07 부산대학교 산학협력단 Digital-twin system and method for optimizes the driving scenarios of a mechanical equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9671777B1 (en) * 2016-06-21 2017-06-06 TruPhysics GmbH Training robots to execute actions in physics-based virtual environment
KR20200076323A (en) * 2018-12-19 2020-06-29 한국전자통신연구원 Apparatus and method for multi-model parallel execution automation and verification on digital twin
KR20200081066A (en) * 2018-12-27 2020-07-07 부산대학교 산학협력단 Digital-twin system and method for optimizes the driving scenarios of a mechanical equipment

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Data-centric Middleware based Digital Twin Platform for Dependable Cyber-Physical Systems"" seongjin Yun extrinsic 2 people" 2017 Ninth International Conference on Ubiquitous and Future Networks (ICUFN)" 2017.07. 07. *
The waste paper control of the robot and the object recognition using the different kind CNN algorithm"" ** * gloss extrinsic 2 people" controlling robot system learned society treatise twenty fifth Keown ninth call" 2019.09.30. *
논문1(2017.07.07)
논문2(2019.09.30)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114578712A (en) * 2022-03-08 2022-06-03 北京航空航天大学 Multifunctional underwater autonomous vehicle cluster simulation system
CN114578712B (en) * 2022-03-08 2023-09-26 北京航空航天大学 Multifunctional underwater autonomous vehicle cluster simulation system
WO2023249185A1 (en) * 2022-06-23 2023-12-28 현대자동차주식회사 Vehicle production management system and method thereof

Similar Documents

Publication Publication Date Title
KR102354594B1 (en) Electronic device and method for performing control software verification applied to autonomous thing
US20200320344A1 (en) Method for training neural network model and apparatus
US20190146062A1 (en) Laser point cloud positioning method and system
CN108769109B (en) Unified processing method and system for data of Internet of things heterogeneous equipment
CN111108737B (en) Providing software applications on edge devices in an internet of things environment
US20190283255A1 (en) Robot cooperation method and device, robot, robot system, and computer program product
JP6753200B2 (en) Methods, systems and computer programs for cloud-based computing clusters for simulated operator training systems
US20200349473A1 (en) Method for generating universal learned model
EP3886043A1 (en) Point cloud based 3d semantic segmentation
KR20190043419A (en) Method of controlling computing operations based on early-stop in deep neural network
CN109865292B (en) Game resource construction method and device based on game engine
CN112249035B (en) Automatic driving method, device and equipment based on general data flow architecture
CN105252533A (en) Robot interactive system, cloud computing platform, user terminal and robot
KR101653878B1 (en) Block and user terminal for modeling 3d shape and the method for modeling 3d shape using the same
CN110039574A (en) A kind of robot braking circuit, robot, robot braking method and device
US20220413458A1 (en) Edge computing device for controlling electromechanical system or electronic device with local and remote task distribution control
CN115777088A (en) Vehicle operation safety model test system
CN110060658A (en) A kind of vehicle launch guide device
JP6904287B2 (en) Control device, control method, and control program
KR20190094317A (en) An artificial intelligence apparatus for predicting performance of speech recognition model in user environment and method for the same
US11947350B2 (en) Devices, systems, and methods for operating intelligent vehicles using separate devices
JP2023541264A (en) Automated machine learning method and device
Bachuwar et al. Integration of autonomous vehicle frameworks for software-in-the-loop testing
CN113255161B (en) Simulation method, device, medium and equipment for intermodal yard equipment
JPWO2018008391A1 (en) Linear parameter variation model estimation system, method and program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant