KR20220080464A - Electronic apparatus and method for controlling thereof - Google Patents

Electronic apparatus and method for controlling thereof Download PDF

Info

Publication number
KR20220080464A
KR20220080464A KR1020200169597A KR20200169597A KR20220080464A KR 20220080464 A KR20220080464 A KR 20220080464A KR 1020200169597 A KR1020200169597 A KR 1020200169597A KR 20200169597 A KR20200169597 A KR 20200169597A KR 20220080464 A KR20220080464 A KR 20220080464A
Authority
KR
South Korea
Prior art keywords
virtual
robot
sensing data
error rate
sensor
Prior art date
Application number
KR1020200169597A
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 KR1020200169597A priority Critical patent/KR20220080464A/en
Priority to PCT/KR2021/000999 priority patent/WO2022124477A1/en
Publication of KR20220080464A publication Critical patent/KR20220080464A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • 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/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • 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
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)

Abstract

전자 장치가 개시된다. 본 개시에 따른 전자 장치는, 통신 인터페이스, 메모리 및 프로세서를 포함하고, 프로세서는, 가상 로봇 및 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성하고, 로봇 제어 장치로부터 가상 로봇을 제어하기 위한 제어 정보를 획득하고, 제어 정보를 바탕으로 가상 로봇에 대한 주행 시뮬레이션을 수행하고, 주행 시뮬레이션을 수행하는 동안, 가상 환경 내에서 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득하고, 센싱 데이터 및 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 가상 센서가 가상 로봇과 상기 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득한다.An electronic device is disclosed. The electronic device according to the present disclosure includes a communication interface, a memory, and a processor, wherein the processor generates a virtual robot and a virtual environment for driving simulation of the virtual robot, and receives control information for controlling the virtual robot from the robot control device acquisition, and performing a driving simulation for the virtual robot based on the control information. During the driving simulation, sensing data corresponding to the distance between the virtual robot and an object in the virtual environment is obtained, and the sensing data and the virtual robot are obtained. Based on the error rate of the virtual sensor included in the , virtual sensing data output when the virtual sensor measures the distance between the virtual robot and the object is acquired.

Description

전자 장치 및 그 제어 방법{ELECTRONIC APPARATUS AND METHOD FOR CONTROLLING THEREOF}ELECTRONIC APPARATUS AND METHOD FOR CONTROLLING THEREOF

본 개시는 전자 장치 및 그 제어 방법으로, 보다 상세하게는, 시뮬레이션 환경에서 획득되는 가상 로봇의 센싱 데이터를 제공하는 전자 장치 및 그 제어 방법에 관한 것이다.The present disclosure relates to an electronic device and a control method thereof, and more particularly, to an electronic device for providing sensing data of a virtual robot obtained in a simulation environment, and a control method thereof.

전자 기술의 발달에 힘입어 다양한 로봇(robot)이 개발되고 있다. 최근에는, 로봇의 제작 비용을 줄이고 안전성을 사전에 체크하기 위해, 가상 환경에서 가상 로봇을 구성하고 시뮬레이션하는 시뮬레이터(simulator)가 활발하게 이용되고 있다.With the development of electronic technology, various robots are being developed. Recently, in order to reduce the manufacturing cost of the robot and check safety in advance, a simulator for configuring and simulating a virtual robot in a virtual environment is actively used.

한편, 시뮬레이션 환경은 가상의 환경이므로 실제 환경에서 발생되는 여러 오차를 반영하지 못할 수 있다. 가령, 실제 센서는 필연적으로 에러율을 갖는 반면 가상 환경의 가상 센서는 에러율을 갖지 않으므로, 가상 환경을 실제 환경과 동일하게 구성하더라도 실제 센서의 측정 데이터는 가상 센서의 센싱 데이터와 상이할 수 있다. 따라서, 가상 센서의 센싱 데이터를 그대로 적용하여 실제 로봇을 제작할 경우, 실제 로봇이 가상 로봇과 다르게 작동하거나 오작동하는 등의 문제가 발생할 수 있다.Meanwhile, since the simulation environment is a virtual environment, various errors occurring in the real environment may not be reflected. For example, since the real sensor inevitably has an error rate while the virtual sensor of the virtual environment does not have an error rate, the measured data of the real sensor may be different from the sensing data of the virtual sensor even if the virtual environment is configured to be the same as the real environment. Therefore, when a real robot is manufactured by applying the sensing data of the virtual sensor as it is, a problem such as the real robot operating differently from the virtual robot or malfunctioning may occur.

이러한 문제를 방지하기 위해서는, 가상 환경에서 획득된 센싱 데이터에 센서의 에러율을 반영하여 제공하는 기술이 필요하다.In order to prevent this problem, it is necessary to provide a technology that reflects the error rate of the sensor in the sensing data acquired in the virtual environment.

본 발명이 해결하고자 하는 일 기술적 과제는, 센서의 에러율이 반영된 시뮬레이션 데이터를 제공하는 것이다.One technical problem to be solved by the present invention is to provide simulation data in which an error rate of a sensor is reflected.

본 발명이 해결하고자 하는 다른 일 기술적 과제는, 시뮬레이션 데이터를 바탕으로 로봇과 관련된 파라미터를 제공하는 것이다.Another technical problem to be solved by the present invention is to provide parameters related to the robot based on simulation data.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.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 following description.

상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 전자 장치에 있어서, 통신 인터페이스; 적어도 하나의 인스트럭션을 저장하는 메모리; 및 프로세서;를 포함하고, 상기 프로세서는, 가상 로봇 및 상기 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성하고, 로봇 제어 장치로부터 상기 가상 로봇을 제어하기 위한 제어 정보를 획득하고, 상기 제어 정보를 바탕으로 상기 가상 로봇에 대한 주행 시뮬레이션을 수행하고, 상기 주행 시뮬레이션을 수행하는 동안, 상기 가상 환경 내에서 상기 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득하고, 상기 센싱 데이터 및 상기 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 상기 가상 센서가 상기 가상 로봇과 상기 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득하고, 상기 가상 센싱 데이터를 상기 로봇 제어 장치로 출력하는 전자 장치가 제공될 수 있다.According to an exemplary embodiment of the present disclosure for solving the above-described technical problem, an electronic device includes: a communication interface; a memory storing at least one instruction; and a processor, wherein the processor generates a virtual robot and a virtual environment for driving simulation of the virtual robot, obtains control information for controlling the virtual robot from a robot control device, and based on the control information performing a driving simulation on the virtual robot, and while performing the driving simulation, sensing data corresponding to a distance between the virtual robot and an object in the virtual environment is obtained, and the sensing data and the virtual robot are An electronic device that obtains virtual sensing data output when the virtual sensor measures the distance between the virtual robot and the object based on the error rate of the included virtual sensor, and outputs the virtual sensing data to the robot control device can be provided.

상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 다른 일 실시 예에 따르면, 전자 장치의 제어 방법에 있어서, 가상 로봇 및 상기 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성하는 단계; 로봇 제어 장치로부터 상기 가상 로봇을 제어하기 위한 제어 정보를 획득하는 단계; 상기 제어 정보를 바탕으로 상기 가상 로봇에 대한 주행 시뮬레이션을 수행하는 단계; 상기 주행 시뮬레이션을 수행하는 동안, 상기 가상 환경 내에서 상기 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득하는 단계; 상기 센싱 데이터 및 상기 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 상기 가상 센서가 상기 가상 로봇과 상기 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득하는 단계; 및 상기 가상 센싱 데이터를 상기 로봇 제어 장치로 출력하는 단계;를 포함하는 제어 방법이 제공될 수 있다.According to another exemplary embodiment of the present disclosure for solving the above-described technical problem, there is provided a method of controlling an electronic device, the method comprising: generating a virtual robot and a virtual environment for simulating driving of the virtual robot; obtaining control information for controlling the virtual robot from a robot control device; performing a driving simulation on the virtual robot based on the control information; acquiring sensing data corresponding to a distance between the virtual robot and an object in the virtual environment while performing the driving simulation; acquiring virtual sensing data output when the virtual sensor measures a distance between the virtual robot and the object based on the sensing data and an error rate of a virtual sensor included in the virtual robot; and outputting the virtual sensing data to the robot control device. A control method comprising a may be provided.

본 개시의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The solutions of the problems of the present disclosure are not limited to the above-described solutions, and solutions that are not mentioned will be clearly understood by those of ordinary skill in the art to which the present disclosure belongs from the present specification and the accompanying drawings. will be able

이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 센서의 에러율이 반영된 센싱 데이터를 바탕으로 시뮬레이션을 수행하여 실제 환경에 보다 부합되는 파라미터를 제공할 수 있다. 따라서, 로봇 제작을 위한 시행착오가 줄어들어, 사용자의 만족감이 향상되며, 로봇 제작 비용이 감소할 수 있다.According to various embodiments of the present disclosure as described above, the electronic device may perform a simulation based on the sensing data in which the error rate of the sensor is reflected to provide a parameter more suitable for the real environment. Therefore, trial and error for manufacturing the robot is reduced, the user's satisfaction is improved, and the cost of manufacturing the robot can be reduced.

그 외에 본 개시의 실시 예로 인하여 얻을 수 있거나 예측되는 효과에 대해서는 본 개시의 실시 예에 대한 상세한 설명에서 직접적 또는 암시적으로 개시하도록 한다. 예컨대, 본 개시의 실시 예에 따라 예측되는 다양한 효과에 대해서는 후술될 상세한 설명 내에서 개시될 것이다.In addition, the effects obtainable or predicted by the embodiments of the present disclosure are to be disclosed directly or implicitly in the detailed description of the embodiments of the present disclosure. For example, various effects predicted according to embodiments of the present disclosure will be disclosed in the detailed description to be described later.

도 1은 본 개시의 일 실시 예에 따른 시뮬레이션 시스템의 컨셉을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 시뮬레이션 시스템의 구성을 도시한 블록도이다.
도 3a는 본 개시의 일 실시 예에 따른 가상 센싱 데이터를 획득하기 위한 신경망 모델의 학습 방법을 설명하기 위한 도면이다.
도 3b는 본 개시의 일 실시 예에 따른 신경망 모델을 이용하여 가상 센싱 데이터를 획득하는 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 가상 센서의 에러율을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 순서도이다.
도 6은 본 개시의 다른 일 실시 예에 따른 전자 장치의 구성을 도시한 블록도이다.
1 is a view for explaining a concept of a simulation system according to an embodiment of the present disclosure.
2 is a block diagram illustrating a configuration of a simulation system according to an embodiment of the present disclosure.
3A is a diagram for explaining a method of learning a neural network model for acquiring virtual sensing data according to an embodiment of the present disclosure.
3B is a diagram for explaining a method of acquiring virtual sensing data using a neural network model according to an embodiment of the present disclosure.
4 is a diagram for explaining an error rate of a virtual sensor according to an embodiment of the present disclosure.
5 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
6 is a block diagram illustrating a configuration of an electronic device according to another embodiment of the present disclosure.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. Terms used in this specification will be briefly described, and the present disclosure will be described in detail.

본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in the embodiments of the present disclosure are selected as currently widely used general terms as possible while considering the functions in the present disclosure, which may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, etc. . In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding disclosure. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, rather than the simple name of the term.

본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Embodiments of the present disclosure may be subjected to various transformations and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope of the specific embodiments, and it should be understood to include all transformations, equivalents and substitutions included in the spirit and scope of the disclosure. In describing the embodiments, if it is determined that a detailed description of a related known technology may obscure the subject matter, the detailed description thereof will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as "comprises" or "consisting of" are intended to designate that the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification exist, but one or more other It should be understood that this does not preclude the possibility of addition or presence of features or numbers, steps, operations, components, parts, or combinations thereof.

아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. However, the present disclosure may be implemented in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present disclosure in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

도 1은 본 개시의 일 실시 예에 따른 시뮬레이션 시스템의 컨셉을 설명하기 위한 도면이다.1 is a diagram for explaining a concept of a simulation system according to an embodiment of the present disclosure.

전자 장치(100)는 가상 로봇(11)과 가상 로봇(11)의 주행 시뮬레이션을 위한 가상 환경을 생성할 수 있다. 그리고, 전자 장치(100)는 가상 환경에서 가상 로봇(11)의 주행 시뮬레이션을 수행할 수 있다. 가상 로봇(11)은 가상 센서(12)를 가상 환경과 관련된 센싱 데이터를 획득할 수 있다. 예로, 가상 센서(12)가 라이다(LiDAR: Light Detection And Ranging) 센서인 경우, 가상 로봇(11)은 가상 센서(12)를 이용하여 가상 환경에 존재하는 오브젝트(13)에 대한 거리 정보를 획득할 수 있다. 그리고, 가상 로봇(11)은 획득된 센싱 데이터를 바탕으로 주행할 수 있다.The electronic device 100 may generate the virtual robot 11 and a virtual environment for driving simulation of the virtual robot 11 . In addition, the electronic device 100 may perform a driving simulation of the virtual robot 11 in a virtual environment. The virtual robot 11 may acquire sensing data related to the virtual environment from the virtual sensor 12 . For example, when the virtual sensor 12 is a LiDAR (Light Detection And Ranging) sensor, the virtual robot 11 uses the virtual sensor 12 to obtain distance information about the object 13 existing in the virtual environment. can be obtained And, the virtual robot 11 may drive based on the acquired sensing data.

한편, 사용자는 가상 환경에서의 시뮬레이션 결과를 바탕으로 가상 로봇(11)에 대응되는 실제 로봇(14)을 제조할 수 있다. 예로, 사용자는 가상 센서(12)의 파라미터(예로, 측정 범위)에 대응되는 파라미터를 갖는 실제 센서(15)를 실제 로봇(14)에 장착할 수 있다. Meanwhile, the user may manufacture the real robot 14 corresponding to the virtual robot 11 based on the simulation result in the virtual environment. For example, a user may mount a real sensor 15 having a parameter corresponding to a parameter (eg, a measurement range) of the virtual sensor 12 on the real robot 14 .

그러나, 가상 센서(12)는 실제 센서(15)와 달리 측정 오차를 갖지 않으므로, 가상 센서(12)를 통해 획득된 센싱 데이터와 실제 센서(15)를 통해 획득되는 측정 데이터가 상이할 수 있다. 예로, 실제 환경에서의 실제 로봇(14)과 실제 오브젝트(16)의 거리가 가상 환경에서의 가상 로봇(11)과 가상 오브젝트(13)의 거리와 동일하더라도, 가상 센서(12)를 통해 획득되는 제1 거리(d1)와 실제 센서(15)를 통해 획득되는 제2 거리(d2)는 상이할 수 있다. 이에 따라, 실제 로봇(14)은 가상 로봇(11)과 상이하게 동작할 수 있다. 가령, 실제 로봇(14)은 가상 로봇(11)과 상이한 경로로 주행할 수 있다.However, since the virtual sensor 12 does not have a measurement error unlike the real sensor 15 , sensing data obtained through the virtual sensor 12 and measurement data obtained through the real sensor 15 may be different. For example, even if the distance between the real robot 14 and the real object 16 in the real environment is the same as the distance between the virtual robot 11 and the virtual object 13 in the virtual environment, the The first distance d1 and the second distance d2 obtained through the actual sensor 15 may be different. Accordingly, the real robot 14 may operate differently from the virtual robot 11 . For example, the real robot 14 may travel on a different path than the virtual robot 11 .

이처럼, 가상 센서(12)와 실제 센서(15)의 센싱 데이터는 상이할 수 있으므로, 가상 센서(12)의 센싱 결과를 그대로 이용하여 실제 로봇(14)을 구현하면, 실제 로봇(14)이 의도한대로 동작하지 않을 수 있다. 이러한 문제를 방지하기 위해, 전자 장치(100)는 실제 센서(15)와 유사하게 가상 센서(12)의 센싱 데이터에도 센싱 오차율을 반영하고, 오차율이 반영된 센싱 데이터를 획득하여 사용자에게 제공할 수 있다. As such, since the sensed data of the virtual sensor 12 and the real sensor 15 may be different, if the real robot 14 is implemented using the sensing result of the virtual sensor 12 as it is, the real robot 14 is intended It may not work as it is. To prevent this problem, the electronic device 100 may reflect the sensing error rate in the sensing data of the virtual sensor 12 similarly to the real sensor 15 , and obtain the sensing data reflecting the error rate and provide it to the user. .

도 2는 본 개시의 일 실시 예에 따른 시뮬레이션 시스템의 구성을 도시한 블록도이다. 시뮬레이션 시스템(1000)은 전자 장치(100) 및 로봇 제어 장치(200)를 포함할 수 있다. 전자 장치(100)는 가상 환경에서 가상 로봇에 대한 주행 시뮬레이션을 수행하기 위한 구성이다. 예로, 전자 장치(100)는 개인용 컴퓨터(personal computer: PC), 서버 컴퓨터(Server Computer), 노트북(Laptop) 또는 휴대폰(Mobile Phone)일 수 있다. 로봇 제어 장치(200)는 로봇을 제어하기 위한 제어 정보를 생성할 수 있다. 예로, 로봇 제어 장치(200)는 실제 로봇에 탑재되는 마이크로컨트롤러(Microcontroller) 또는 MCU(Micro Controller Unit)일 수 있다. 한편, 로봇 제어 장치(200)는 전자 장치(100)와 분리되어 구현되거나, 전자 장치(100)에 통합되어 구현될 수 있다.2 is a block diagram illustrating a configuration of a simulation system according to an embodiment of the present disclosure. The simulation system 1000 may include the electronic device 100 and the robot control device 200 . The electronic device 100 is a configuration for performing a driving simulation for a virtual robot in a virtual environment. For example, the electronic device 100 may be a personal computer (PC), a server computer, a laptop computer, or a mobile phone. The robot control apparatus 200 may generate control information for controlling the robot. For example, the robot control device 200 may be a microcontroller or microcontroller unit (MCU) mounted on an actual robot. Meanwhile, the robot control device 200 may be implemented separately from the electronic device 100 , or may be implemented by being integrated into the electronic device 100 .

전자 장치(100)는 통신 인터페이스(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다. 이하 전자 장치(100)의 각 구성에 대하여 상세히 설명하도록 한다.The electronic device 100 may include a communication interface 110 , a memory 120 , and a processor 130 . Hereinafter, each configuration of the electronic device 100 will be described in detail.

통신 인터페이스(110)는 적어도 하나의 회로를 포함하며 다양한 유형의 통신 방식에 다라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(110)는 로봇 제어 장치(200)로부터 로봇 제어 장치(200)에 의해 제어될 실제 로봇에 대응되는 가상 로봇을 제어하기 위한 제어 정보를 수신할 수 있다. 여기서, 제어 정보는 가상 로봇을 구동시키기 위한 정보(예로, 가상 로봇의 이동 속도, 가상 로봇의 액추에이터를 구동시키기 위한 파워 등)를 포함한 제어 메시지일 수 있다. 또한, 통신 인터페이스(110)는 전자 장치(100)가 획득한 센싱 데이터를 로봇 제어 장치(200)로 전송할 수 있다.The communication interface 110 includes at least one circuit and may communicate with various types of external devices according to various types of communication methods. For example, the communication interface 110 may receive control information for controlling a virtual robot corresponding to a real robot to be controlled by the robot control apparatus 200 from the robot control apparatus 200 . Here, the control information may be a control message including information for driving the virtual robot (eg, a moving speed of the virtual robot, power for driving an actuator of the virtual robot, etc.). Also, the communication interface 110 may transmit the sensing data acquired by the electronic device 100 to the robot control device 200 .

한편, 통신 인터페이스(110)는 유선 혹은 무선으로 데이터 통신을 수행할 수 있다. 유선 통신 방식으로 외부 기기와 통신을 수행할 경우, 통신 인터페이스(110)는 유선 통신 모듈(예를 들어, LAN 등)로 구현될 수 있다. 무선 통신 방식으로 외부 기기와 통신을 수행할 경우, 통신 인터페이스(110)는 와이파이 통신 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 중 적어도 하나를 포함할 수 있다. Meanwhile, the communication interface 110 may perform data communication by wire or wirelessly. When communicating with an external device through a wired communication method, the communication interface 110 may be implemented as a wired communication module (eg, LAN, etc.). When communicating with an external device in a wireless communication method, the communication interface 110 is a Wi-Fi communication module, a cellular communication module, a 3G (3rd generation) mobile communication module, a 4G (4th generation) mobile communication module, a 4th generation LTE (Long) It may include at least one of a Term Evolution) communication module and a 5G (5th generation) mobile communication module.

메모리(120)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다. 예로, 메모리(120)는 가상 환경 및 가상 로봇에 관한 정보를 저장할 수 있다. 한편, 메모리(120)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리), 휘발성 메모리 등으로 구현될 수 있다.The memory 120 may store an operating system (OS) for controlling overall operations of the components of the electronic device 100 and commands or data related to the components of the electronic device 100 . For example, the memory 120 may store information about a virtual environment and a virtual robot. Meanwhile, the memory 120 may be implemented as a non-volatile memory (eg, a hard disk, a solid state drive (SSD), a flash memory), a volatile memory, or the like.

프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 프로세서(130)는 가상 로봇 생성 모듈(131), 시뮬레이션 환경 구축 모듈(132), 제어 정보 획득 모듈(133), 주행 시뮬레이션 모듈(134), 센싱 데이터 획득 모듈(135) 및 가상 센싱 데이터 획득 모듈(136)을 포함할 수 있다.The processor 130 may control the overall operation of the electronic device 100 . The processor 130 includes a virtual robot generation module 131 , a simulation environment building module 132 , a control information acquisition module 133 , a driving simulation module 134 , a sensing data acquisition module 135 , and a virtual sensing data acquisition module ( 136) may be included.

가상 로봇 생성 모듈(131)은 가상 로봇(또는 가상 로봇 모델)을 생성할 수 있다. 가상 로봇은 가상 환경에 존재하는 로봇으로, 실제 로봇을 구성하는 컴포넌트(component)에 대응되는 가상 컴포넌트를 포함할 수 있다. 예로, 실제 로봇이 라이다 센서를 포함하는 경우, 가상 로봇은 라이다 센서에 대응되는 가상 센서를 포함할 수 있다. 이외에도, 가상 로봇은 사용자 입력에 따라 다양한 가상 컴포넌트들을 포함할 수 있다. The virtual robot generating module 131 may generate a virtual robot (or a virtual robot model). A virtual robot is a robot existing in a virtual environment, and may include virtual components corresponding to components constituting the real robot. For example, when the real robot includes a lidar sensor, the virtual robot may include a virtual sensor corresponding to the lidar sensor. In addition, the virtual robot may include various virtual components according to a user input.

시뮬레이션 환경 구축 모듈(132)은 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성할 수 있다. 시뮬레이션 환경 구축 모듈(132)은 사용자 입력에 기초하여 가상 환경에 관한 정보를 획득하며, 획득된 정보에 기초하여 가상 환경을 생성할 수 있다. 시뮬레이션 환경 구축 모듈(132)은 가상 환경을 생성하기 위한 렌더링(rendering)을 수행할 수 있다. 한편, 가상 환경에 관한 정보는 가상 환경의 크기, 지형 및 가상 환경에 포함되는 오브젝트에 대한 정보를 포함할 수 있다.The simulation environment building module 132 may generate a virtual environment for simulating the driving of the virtual robot. The simulation environment building module 132 may obtain information about the virtual environment based on a user input, and may generate a virtual environment based on the obtained information. The simulation environment building module 132 may perform rendering to create a virtual environment. Meanwhile, the information about the virtual environment may include information about the size of the virtual environment, the topography, and an object included in the virtual environment.

제어 정보 획득 모듈(133)은 통신 인터페이스(110)를 통해 로봇 제어 장치(200)로부터 가상 로봇을 제어하기 위한 제어 정보를 획득할 수 있다. 예를 들어, 제어 정보 획득 모듈(133)은 가상 로봇의 주행 속도에 대한 정보를 획득할 수 있다. 또는, 제어 정보 획득 모듈(133)은 가상 로봇에 포함된 액추에이터(actuator)를 구동시키기 위한 파워에 대한 정보를 획득할 수 있다.The control information acquisition module 133 may acquire control information for controlling the virtual robot from the robot control device 200 through the communication interface 110 . For example, the control information acquisition module 133 may acquire information about the traveling speed of the virtual robot. Alternatively, the control information acquisition module 133 may acquire information on power for driving an actuator included in the virtual robot.

주행 시뮬레이션 모듈(134)은 제어 정보 획득 모듈(133)을 통해 획득된 제어 정보를 바탕으로 가상 로봇에 대한 주행 시뮬레이션을 수행할 수 있다. 주행 시뮬레이션이 수행되는 동안, 센싱 데이터 획득 모듈(135)은 가상 환경에 대한 다양한 정보를 수집할 수 있다. 예를 들어, 센싱 데이터 획득 모듈(135)은 가상 로봇은 가상 환경에 존재하는 오브젝트 사이의 거리에 대응되는 센싱 데이터를 획득할 수 있다. 센싱 데이터 획득 모듈(135)은 가상 센서를 이용하여 가상 환경을 촬상한 이미지를 획득하거나, 가상 환경에 대한 뎁스 정보를 획득할 수 있다.The driving simulation module 134 may perform driving simulation for the virtual robot based on the control information acquired through the control information acquisition module 133 . While the driving simulation is being performed, the sensing data acquisition module 135 may collect various information about the virtual environment. For example, the sensing data acquisition module 135 may acquire the virtual robot sensing data corresponding to a distance between objects existing in the virtual environment. The sensing data acquisition module 135 may acquire an image obtained by capturing a virtual environment using a virtual sensor, or may acquire depth information on the virtual environment.

한편, 센싱 데이터 획득 모듈(135)을 통해 획득되는 센싱 데이터는 실제 환경에서 필연적으로 발생되는 오차를 포함하지 않는 그라운드 트루스(ground truth) 데이터일 수 있다. 예로, 실제 환경에서의 라이다 센서는 오브젝트와의 거리 및 오브젝트의 특성(예로, 재질 또는 투과율)을 비롯한 다양한 요인들에 의해 오차율을 갖는 센싱 데이터를 획득한다. 이에 반해, 가상 로봇은 가상 환경 내에서 센싱 데이터를 획득하므로, 오차율을 갖지 않는 그라운드 트루스 데이터를 획득할 수 있다. 이처럼, 가상 환경에서 획득된 센싱 데이터와 실제 환경에서 획득되는 센싱 데이터는 차이가 있으므로, 가상 환경에서 획득된 센싱 데이터를 그대로 적용하여 실제 로봇을 모델링할 경우, 실제 로봇은 오작동할 수 있다. 예로, 센싱 데이터가 로봇과 오브젝트 사이의 거리에 대응되는 경우, 로봇은 비효율적인 주행 경로로 이동할 수 있으며, 이에 따라 사용자의 만족감 및 편의성이 감소할 수 있다.Meanwhile, the sensing data acquired through the sensing data acquisition module 135 may be ground truth data that does not include an error that is inevitably generated in a real environment. For example, a lidar sensor in a real environment acquires sensing data having an error rate according to various factors including a distance from an object and a characteristic (eg, material or transmittance) of the object. In contrast, since the virtual robot acquires sensing data in a virtual environment, it is possible to acquire ground truth data having no error rate. As such, there is a difference between the sensed data obtained in the virtual environment and the sensed data obtained in the real environment. Therefore, when the real robot is modeled by applying the sensing data obtained in the virtual environment as it is, the real robot may malfunction. For example, when the sensed data corresponds to the distance between the robot and the object, the robot may move to an inefficient driving path, and thus the user's satisfaction and convenience may decrease.

이러한 문제점을 해결하기 위해, 가상 센싱 데이터 획득 모듈(136)은 센싱 데이터를 실제 환경의 오차가 반영된 가상 센싱 데이터로 변환할 수 있다. 예를 들어, 가상 센싱 데이터 획득 모듈(136)은 가상 센서의 에러율을 바탕으로 오차를 산출할 수 있다. 그리고, 가상 센싱 데이터 획득 모듈(136)은 산출된 오차를 센싱 데이터에 더하여 가상 센싱 데이터를 획득할 수 있다.To solve this problem, the virtual sensing data acquisition module 136 may convert the sensing data into virtual sensing data in which an error of the real environment is reflected. For example, the virtual sensing data acquisition module 136 may calculate an error based on an error rate of the virtual sensor. In addition, the virtual sensing data acquisition module 136 may acquire the virtual sensing data by adding the calculated error to the sensing data.

한편, 가상 센서의 에러율은 실제 센서의 에러율을 바탕으로 설정될 수 있다. 예로, 가상 센서의 에러율은, 오브젝트의 거리에 따라 발생하는 제1 에러율 및 오브젝트의 재질에 따라 발생하는 제2 에러율을 포함할 수 있다. 가상 센서가 라이다 센서에 대응되는 경우, 가상 센서의 에러율은 라이다 센서에 구비된 모터의 회전 각도의 오차에 대응되는 제3 에러율을 포함할 수 있다. 또한, 가상 센서의 각 에러율은 특정 값을 가질 수도 있으나, 특정 범위의 값을 가질 수도 있다. 예를 들어, 가상 센서의 에러율은 정규 분포 형태의 값을 가질 수 있다.Meanwhile, the error rate of the virtual sensor may be set based on the error rate of the real sensor. For example, the error rate of the virtual sensor may include a first error rate occurring according to a distance of an object and a second error rate occurring according to a material of the object. When the virtual sensor corresponds to the lidar sensor, the error rate of the virtual sensor may include a third error rate corresponding to the error in the rotation angle of the motor provided in the lidar sensor. In addition, each error rate of the virtual sensor may have a specific value or a value within a specific range. For example, the error rate of the virtual sensor may have a value in the form of a normal distribution.

일 실시 예에 따른 가상 센싱 데이터(Dp)는 아래 [수학식 1]과 같이 모델링될 수 있다.The virtual sensing data Dp according to an embodiment may be modeled as in [Equation 1] below.

[수학식 1][Equation 1]

Dp = Dr + (Dr * Ed) + (Dr * Ema) + (Dr * Emo)Dp = Dr + (Dr * Ed) + (Dr * Ema) + (Dr * Emo)

여기서, Dr은 센싱 데이터 획득 모듈(135)을 통해 획득되는 센싱 데이터, Ed는 제1 에러율, Ema는 제2 에러율, Emo는 제3 에러율이다.Here, Dr is sensing data acquired through the sensing data acquisition module 135 , Ed is a first error rate, Ema is a second error rate, and Emo is a third error rate.

한편, 가상 센싱 데이터 획득 모듈(136)은 학습된 신경망 모델에 센싱 데이터를 입력하여 가상 센싱 데이터를 획득할 수 있다. 신경망 모델은 센싱 데이터가 입력되면 가상 센싱 데이터를 출력하도록 학습될 수 있다. 신경망 모델은 출력된 가상 센싱 데이터와 실제 환경에서 측정된 실측 데이터(또는 라벨 데이터)의 차이가 최소화되도록 학습될 수 있다. 이 때, 학습이 완료된 신경망 모델의 가중치는 가상 센서의 에러율에 대응될 수 있다. 즉, 제1 에러율, 제2 에러율 및 제3 에러율은 각각 학습된 신경망 모델의 가중치에 해당할 수 있다.Meanwhile, the virtual sensing data acquisition module 136 may acquire the virtual sensing data by inputting the sensing data to the learned neural network model. The neural network model may be trained to output virtual sensing data when sensing data is input. The neural network model may be trained such that the difference between the output virtual sensing data and the actual data (or label data) measured in the real environment is minimized. In this case, the weight of the neural network model that has been trained may correspond to the error rate of the virtual sensor. That is, the first error rate, the second error rate, and the third error rate may correspond to weights of the learned neural network model, respectively.

가상 센싱 데이터 획득 모듈(136)은 통신 인터페이스(110)를 통해 가상 센싱 데이터를 로봇 제어 장치(200)로 전송할 수 있다. 로봇 제어 장치(200)는 인식 모듈(210), 판단 모듈(220) 및 구동 모듈(230)을 포함할 수 있다. 인식 모듈(210)은 전자 장치(100)로부터 가상 센싱 데이터를 획득하고, 가상 센싱 데이터를 분석할 수 있다. 예로, 가상 센싱 데이터가 가상 로봇 주변을 촬상한 이미지인 경우, 인식 모듈(210)은 이미지에 포함된 오브젝트를 인식할 수 있다. 이 때, 인식 모듈(210)은 각 오브젝트에 대응되는 위치에 포인트 클라우드(point cloud)를 생성할 수 있다.The virtual sensing data acquisition module 136 may transmit the virtual sensing data to the robot control device 200 through the communication interface 110 . The robot control apparatus 200 may include a recognition module 210 , a determination module 220 , and a driving module 230 . The recognition module 210 may obtain virtual sensing data from the electronic device 100 and analyze the virtual sensing data. For example, when the virtual sensing data is an image captured around the virtual robot, the recognition module 210 may recognize an object included in the image. In this case, the recognition module 210 may generate a point cloud at a location corresponding to each object.

판단 모듈(220)은 가상 센싱 데이터 및 인식 모듈(210)의 분석 결과를 바탕으로 가상 로봇을 어떻게 동작시킬 지 판단할 수 있다. 즉, 판단 모듈(220)은 가상 로봇이 수행할 액션을 결정할 수 있다. 예로, 가상 로봇으로부터 기설정된 거리 이내에 오브젝트가 존재하면, 판단 모듈(220)은 오브젝트를 우회하여 주행하는 액션을 결정할 수 있다. The determination module 220 may determine how to operate the virtual robot based on the virtual sensing data and the analysis result of the recognition module 210 . That is, the determination module 220 may determine an action to be performed by the virtual robot. For example, if an object exists within a preset distance from the virtual robot, the determination module 220 may determine an action to bypass the object and travel.

구동 모듈(230)은 판단 모듈(220)의 판단 결과를 바탕으로 가상 로봇의 구동을 위한 구동 정보(또는 제어 정보)를 획득하기 위한 구성일 수 있다. 예로, 구동 모듈(230)은 오브젝트를 회피하기 위한 가상 로봇의 이동 속도 또는 가상 로봇의 액추에이터의 회전 토크를 획득할 수 있다. 구동 모듈(230)을 통해 획득된 구동 정보는 전자 장치(100)로 전송될 수 있다. 그리고, 전자 장치(100)는 구동 정보를 바탕으로 가상 로봇에 대한 시뮬레이션을 반복적으로 수행할 수 있다.The driving module 230 may be configured to acquire driving information (or control information) for driving the virtual robot based on the determination result of the determination module 220 . For example, the driving module 230 may acquire a movement speed of the virtual robot for avoiding an object or a rotation torque of an actuator of the virtual robot. Driving information acquired through the driving module 230 may be transmitted to the electronic device 100 . Also, the electronic device 100 may repeatedly perform a simulation of the virtual robot based on the driving information.

한편, 도 2에서는 각 모듈(131 내지 136)들을 프로세서(130)의 구성으로 설명하였으나, 이는 일 실시 예에 불과하며, 각 모듈(131 내지 136)들은 메모리(120)에 저장될 수 있다. 이 때, 프로세서(130)는 메모리(120)에 저장된 복수의 모듈(131 내지 136)을 비휘발성 메모리에서 휘발성 메모리로 로딩(loading)하여 복수의 모듈(131 내지 136)의 각 기능들을 실행할 수 있다. 또한, 프로세서(130)의 각 모듈들은 소프트웨어(software)로 구현되거나, 소프트웨어와 하드웨어(hardware)가 결합된 형태로 구현될 수 있다.Meanwhile, in FIG. 2 , each of the modules 131 to 136 has been described as a configuration of the processor 130 , but this is only an exemplary embodiment, and each of the modules 131 to 136 may be stored in the memory 120 . In this case, the processor 130 may load the plurality of modules 131 to 136 stored in the memory 120 from the nonvolatile memory to the volatile memory to execute respective functions of the plurality of modules 131 to 136 . . In addition, each module of the processor 130 may be implemented as software or a combination of software and hardware.

도 3a는 본 개시의 일 실시 예에 따른 가상 센싱 데이터를 획득하기 위한 신경망 모델의 학습 방법을 설명하기 위한 도면이다. 도 3b는 본 개시의 일 실시 예에 따른 신경망 모델을 이용하여 가상 센싱 데이터를 획득하는 방법을 설명하기 위한 도면이다. 3A is a diagram for explaining a method of learning a neural network model for acquiring virtual sensing data according to an embodiment of the present disclosure. 3B is a diagram for explaining a method of acquiring virtual sensing data using a neural network model according to an embodiment of the present disclosure.

도 3a를 참조하면, 전자 장치(100)는 센싱 데이터(31)를 신경망 모델(30)에 입력하여 가상 센싱 데이터(32)를 획득할 수 있다. 그리고, 전자 장치(100)는 가상 센싱 데이터(32)와 실측 데이터(33)를 비교하여 오차를 획득할 수 있다. 여기서, 실측 데이터(33)는 실제 환경에서 실제 센서를 바탕으로 측정된 라벨 데이터(label data)이다. 전자 장치(100)는 획득된 오차를 바탕으로 신경망 모델(30)의 가중치(W1, W2, W3)를 업데이트할 수 있다. 전자 장치(100)는 오차가 기설정된 값보다 작아질 때까지, 상술한 동작을 반복적으로 수행할 수 있다. 학습이 완료되면, 전자 장치(100)는 최종적으로 업데이트된 가중치(또는, 파라미터)를 메모리(120)에 저장할 수 있다.Referring to FIG. 3A , the electronic device 100 may acquire the virtual sensing data 32 by inputting the sensing data 31 into the neural network model 30 . In addition, the electronic device 100 may obtain an error by comparing the virtual sensing data 32 and the actual measurement data 33 . Here, the measured data 33 is label data measured based on an actual sensor in a real environment. The electronic device 100 may update the weights W1 , W2 , and W3 of the neural network model 30 based on the obtained error. The electronic device 100 may repeatedly perform the above-described operation until the error becomes smaller than a preset value. When learning is completed, the electronic device 100 may store the finally updated weight (or parameter) in the memory 120 .

한편, 본 개시에 따른 신경망 모델(30)이 반드시 전자 장치(100)에 의해 학습되는 것은 아니다. 즉, 신경망 모델(30)은 외부 장치(또는 외부 서버)에 의해 학습되며, 전자 장치(100)는 외부 장치에 의해 학습이 완료된 신경망 모델(30)을 수신할 수 있다.Meanwhile, the neural network model 30 according to the present disclosure is not necessarily learned by the electronic device 100 . That is, the neural network model 30 is trained by an external device (or an external server), and the electronic device 100 may receive the neural network model 30 that has been trained by the external device.

도 3b를 참조하면, 전자 장치(100)는 학습이 완료된 신경망 모델(30)에 센싱 데이터(31)를 입력하여 가상 센싱 데이터(32)를 획득할 수 있다. 한편, 신경망 모델(30)의 가중치(W1, W2, W3)는 전술한 가상 센서의 에러율(Ed, Ema, Emo)에 대응될 수 있다. 즉, 전자 장치(100)는 신경망 모델(30)을 학습하는 과정을 통해 가상 센서의 에러율(Ed, Ema, Emo)을 획득할 수 있다.Referring to FIG. 3B , the electronic device 100 may acquire the virtual sensing data 32 by inputting the sensing data 31 into the neural network model 30 on which training has been completed. Meanwhile, the weights W1 , W2 , and W3 of the neural network model 30 may correspond to the error rates Ed, Ema, and Emo of the aforementioned virtual sensor. That is, the electronic device 100 may acquire the error rates Ed, Ema, and Emo of the virtual sensor through the process of learning the neural network model 30 .

한편, 본 개시에 따른 가상 센서의 에러율은 특정 범위 내에 속하는 복수의 값들 중 하나로 선택될 수 있다. 예로, 가상 센서의 에러율은 도 4에 도시된 바와 같은 정규 분포 함수에 대응되는 값들 중 하나로 선택될 수 있다. 제1 함수(41)는 제1 에러율에 대응되며, 제2 함수(42)는 제2 에러율에 대응되며, 제3 함수는(43)는 제3 에러율에 대응될 수 있다.Meanwhile, the error rate of the virtual sensor according to the present disclosure may be selected from among a plurality of values falling within a specific range. For example, the error rate of the virtual sensor may be selected as one of values corresponding to a normal distribution function as shown in FIG. 4 . The first function 41 may correspond to the first error rate, the second function 42 may correspond to the second error rate, and the third function 43 may correspond to the third error rate.

이 때, 가상 센싱 데이터(Dp)는 아래 [수학식 2]와 같이 모델링될 수 있다. In this case, the virtual sensing data Dp may be modeled as in Equation 2 below.

[수학식 2][Equation 2]

Dp = Dr + (Dr *

Figure pat00001
) + (Dr *
Figure pat00002
+ (Dr *
Figure pat00003
Dp = Dr + (Dr *
Figure pat00001
) + (Dr *
Figure pat00002
+ (Dr*
Figure pat00003

여기서,

Figure pat00004
)는 제1 에러율,
Figure pat00005
는 제2 에러율,
Figure pat00006
는 제3 에러율을 의미한다.
Figure pat00007
는 정규 분포의 평균,
Figure pat00008
는 표준 편차를 의미한다. 한편, 정규 분포의 평균 및 표준 편차의 값은 사용자의 설정에 따라 달라질 수 있다.here,
Figure pat00004
) is the first error rate,
Figure pat00005
is the second error rate,
Figure pat00006
is the third error rate.
Figure pat00007
is the mean of the normal distribution,
Figure pat00008
is the standard deviation. Meanwhile, the values of the mean and standard deviation of the normal distribution may vary according to user settings.

한편, 전자 장치(100)는 [수학식 2]에 기초하여 랜덤하게 각 에러율을 획득할 수 있다. 각 에러율이 획득되면, 전자 장치(100)는 획득된 각 에러율을 바탕으로 가상 로봇의 주행 시뮬레이션을 반복적으로 수행할 수 있다. 그리고, 전자 장치(100)는 각 주행 시뮬레이션에 대응되는 시뮬레이션 데이터를 획득하여 메모리(120)에 저장할 수 있다. 여기서, 시뮬레이션 데이터는 특정 목적지까지 도달하기 위한 가상 로봇의 주행 경로, 주행 거리, 주행 시간 및 주행을 위해 소모된 전력 중 적어도 하나를 포함할 수 있다. 뿐만 아니라, 시뮬레이션 데이터는 각 주행 시뮬레이션 시 가상 로봇에 대응되는 실제 로봇을 제조하기 위한 공정의 난이도 및 비용을 포함할 수 있다.Meanwhile, the electronic device 100 may randomly obtain each error rate based on [Equation 2]. When each error rate is obtained, the electronic device 100 may repeatedly perform a driving simulation of the virtual robot based on each obtained error rate. In addition, the electronic device 100 may acquire simulation data corresponding to each driving simulation and store it in the memory 120 . Here, the simulation data may include at least one of a driving route, a driving distance, a driving time, and power consumed for driving of the virtual robot to reach a specific destination. In addition, the simulation data may include difficulty and cost of a process for manufacturing a real robot corresponding to the virtual robot in each driving simulation.

전자 장치(100)는 시뮬레이션 데이터를 바탕으로 적어도 하나의 주행 시뮬레이션을 식별할 수 있다. 예를 들어, 전자 장치(100)는 복수의 주행 시뮬레이션 중 주행 거리가 가장 작은 제1 주행 시뮬레이션을 식별할 수 있다. 또는, 전자 장치(100)는 복수의 주행 시뮬레이션 중 주행 시간이 가장 작은 제2 주행 시뮬레이션을 식별할 수 있다. 뿐만 아니라, 전자 장치(100)는 복수의 주행 시뮬레이션 중 주행을 위해 소모된 전력이 가장 작은 제3 주행 시뮬레이션을 식별할 수 있다. 그리고, 전자 장치(100)는 식별된 주행 시뮬레이션에 대응되는 에러율(또는, 파라미터)를 획득할 수 있다. 전자 장치(100)는 획득된 에러율을 출력하여 사용자에게 제공할 수 있다. 가령, 제1 주행 시뮬레이션이 식별된 경우, 전자 장치(100)는 제1 주행 시뮬레이션에 대응되는 파라미터를 출력하여 사용자에게 제공할 수 있다. 이와 같이, 전자 장치(100)는 특정 파라미터를 사용자에게 추천할 수 있다. 이에 따라, 사용자는 전자 장치(100)가 제공한 파라미터를 바탕으로 실제 센서를 제조할 수 있어, 사용자의 편의성 및 만족감이 향상될 수 있다.The electronic device 100 may identify at least one driving simulation based on the simulation data. For example, the electronic device 100 may identify a first driving simulation having the smallest driving distance among a plurality of driving simulations. Alternatively, the electronic device 100 may identify a second driving simulation having the smallest driving time among a plurality of driving simulations. In addition, the electronic device 100 may identify a third driving simulation in which power consumed for driving is the smallest among the plurality of driving simulations. Then, the electronic device 100 may obtain an error rate (or parameter) corresponding to the identified driving simulation. The electronic device 100 may output the obtained error rate and provide it to the user. For example, when the first driving simulation is identified, the electronic device 100 may output a parameter corresponding to the first driving simulation and provide it to the user. As such, the electronic device 100 may recommend a specific parameter to the user. Accordingly, the user may manufacture an actual sensor based on the parameters provided by the electronic device 100 , and thus the user's convenience and satisfaction may be improved.

한편, 이상에서는 가상 센서의 파라미터로서 가상 센서의 에러율을 중심으로 설명하였으나, 이는 일 실시 예에 불과하며, 전자 장치(100)는 다양한 정보에 대한 파라미터에 기초하여 가상 센싱 데이터를 획득하고, 사용자에게 최적의 파라미터를 제공할 수 있다. 예를 들어, 가상 센서의 파라미터는 가상 센서의 감지 거리, 감지 범위, 스캐닝 주기 및 샘플링 주기와 같은 스펙에 관한 정보를 포함할 수 있다. 또는, 가상 센서의 파라미터는 가상 센서의 설치 위치나 자세와 같은 배치 정보를 포함할 수 있다. 또한, 본 개시에 따른 파라미터는 가상 센서에 관한 정보뿐만 아니라, 가상 환경에 대한 정보(예로, 맵 정보) 또는 시뮬레이션 목적(예로, 최단 거리 경로 주행)에 관한 정보를 포함할 수 있다.Meanwhile, in the above description, the error rate of the virtual sensor as a parameter of the virtual sensor has been mainly described, but this is only an example, and the electronic device 100 obtains virtual sensing data based on parameters for various information, and Optimal parameters can be provided. For example, the parameters of the virtual sensor may include information about specifications such as a detection distance, a detection range, a scanning period, and a sampling period of the virtual sensor. Alternatively, the parameter of the virtual sensor may include arrangement information such as an installation position or posture of the virtual sensor. In addition, the parameter according to the present disclosure may include information about a virtual environment (eg, map information) or a simulation purpose (eg, driving the shortest distance) as well as information about the virtual sensor.

도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.

전자 장치는 가상 로봇 및 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성할 수 있다(S510). 가상 로봇 및 가상 환경이 생성되면, 전자 장치(100)는 생성된 가상 로봇 및 가상 환경을 디스플레이할 수 있다.The electronic device may generate a virtual robot and a virtual environment for driving simulation of the virtual robot ( S510 ). When the virtual robot and the virtual environment are generated, the electronic device 100 may display the generated virtual robot and the virtual environment.

전자 장치는 로봇 제어 장치로부터 가상 로봇을 제어하기 위한 제어 정보를 획득하고(S520), 제어 정보를 바탕으로 가상 로봇에 대한 주행 시뮬레이션을 수행할 수 있다(S530).The electronic device may obtain control information for controlling the virtual robot from the robot control device ( S520 ), and perform a driving simulation on the virtual robot based on the control information ( S530 ).

전자 장치는 주행 시뮬레이션을 수행하는 동안, 가상 환경 내에서 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득할 수 있다(S540). 이 때, 전자 장치(100)는 가상 로봇 및 오브젝트에 대한 위치 정보(또는 좌표 정보)에 기초하여 센싱 데이터를 획득할 수 있다. 가상 로봇 및 오브젝트에 대한 위치 정보는 메모리(120)에 저장되어 있을 수 있다.The electronic device may acquire sensing data corresponding to the distance between the virtual robot and the object in the virtual environment while performing the driving simulation ( S540 ). In this case, the electronic device 100 may acquire sensing data based on location information (or coordinate information) of the virtual robot and the object. Location information about the virtual robot and the object may be stored in the memory 120 .

전자 장치는 센싱 데이터 및 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 가상 센서가 가상 로봇과 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득할 수 있다(S550). 전자 장치(100)는 센싱 데이터 및 가상 센서의 에러율을 바탕으로 에러값을 획득할 수 있다. 그리고, 전자 장치(100)는 센싱 데이터와 에러값을 합산하여 가상 센싱 데이터를 획득할 수 있다. 한편, 가상 센서의 에러율은 가상 센서와 오브젝트의 거리와 관련된 제1 에러율, 오브젝트의 재질과 관련된 제2 에러율 및 가상 센서에 포함된 모터와 관련된 제3 에러율 중 적어도 하나를 포함할 수 있다.The electronic device may obtain virtual sensing data output when the virtual sensor measures the distance between the virtual robot and the object based on the sensing data and the error rate of the virtual sensor included in the virtual robot ( S550 ). The electronic device 100 may obtain an error value based on the sensing data and the error rate of the virtual sensor. In addition, the electronic device 100 may acquire virtual sensing data by summing the sensing data and the error value. Meanwhile, the error rate of the virtual sensor may include at least one of a first error rate related to the distance between the virtual sensor and the object, a second error rate related to the material of the object, and a third error rate related to a motor included in the virtual sensor.

한편, 전자 장치(100)는 학습된 신경망 모델에 입력하여 가상 센싱 데이터를 획득할 수 있다. 여기서, 학습된 신경망 모델은 센싱 데이터 및 가상 센서에 대응되는 실제 센서를 바탕으로 학습될 수 있다. 그리고, 학습된 신경망 모델의 가중치는 가상 센서의 에러율에 대응될 수 있다. 한편, 가상 센서의 에러율은 정규 분포 함수에 대응되는 값을 가질 수 있다. 이 때, 전자 장치(100)는 가상 센서의 에러율을 변경시키면서 주행 시뮬레이션을 반복적으로 수행할 수 있다. 그리고, 전자 장치(100)는 주행 시뮬레이션에 따른 가상 로봇의 주행 경로, 주행 거리 및 주행 시간 중 적어도 하나를 바탕으로 적어도 하나의 주행 시뮬레이션을 식별할 수 있다. 전자 장치(100)는 식별된 주행 시뮬레이션에 대응되는 가상 센서의 에러율을 출력할 수 있다. Meanwhile, the electronic device 100 may obtain virtual sensing data by inputting the learned neural network model. Here, the learned neural network model may be learned based on sensing data and a real sensor corresponding to the virtual sensor. And, the weight of the learned neural network model may correspond to the error rate of the virtual sensor. Meanwhile, the error rate of the virtual sensor may have a value corresponding to a normal distribution function. In this case, the electronic device 100 may repeatedly perform the driving simulation while changing the error rate of the virtual sensor. In addition, the electronic device 100 may identify at least one driving simulation based on at least one of a driving path, a driving distance, and a driving time of the virtual robot according to the driving simulation. The electronic device 100 may output an error rate of the virtual sensor corresponding to the identified driving simulation.

전자 장치는 가상 센싱 데이터를 로봇 제어 장치로 출력할 수 있다(S560). 로봇 제어 장치(200)는 가상 센싱 데이터를 바탕으로 가상 로봇을 제어하기 위한 제어 정보를 생성할 수 있다. 로봇 제어 장치(200)가 제어 정보를 전자 장치(100)로 전송하면, 전자 장치(100)는 다시 제어 정보를 바탕으로 가상 로봇에 대한 주행 시뮬레이션을 수행할 수 있다.The electronic device may output virtual sensing data to the robot control device (S560). The robot control apparatus 200 may generate control information for controlling the virtual robot based on the virtual sensing data. When the robot control device 200 transmits control information to the electronic device 100 , the electronic device 100 may again perform a driving simulation for the virtual robot based on the control information.

도 6은 본 개시의 다른 일 실시 예에 따른 전자 장치의 구성을 도시한 블록도이다. 도 6을 참조하면, 전자 장치(100)는 통신 인터페이스(110), 메모리(120), 프로세서(130), 입력부(140) 및 디스플레이(150)를 포함할 수 있다. 한편, 통신 인터페이스(110), 메모리(120) 및 프로세서(130)는 도 2에서 상세히 설명한 바, 중복 설명은 생략하도록 한다.6 is a block diagram illustrating a configuration of an electronic device according to another embodiment of the present disclosure. Referring to FIG. 6 , the electronic device 100 may include a communication interface 110 , a memory 120 , a processor 130 , an input unit 140 , and a display 150 . Meanwhile, since the communication interface 110 , the memory 120 , and the processor 130 have been described in detail with reference to FIG. 2 , a redundant description will be omitted.

프로세서(130)는 가상 로봇 및 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성할 수 있다. 프로세서(130)는 입력부(140)를 통해 획득되는 사용자 입력에 기초하여 가상 로봇 및 가상 환경을 생성할 수 있다. 여기서, 사용자 입력은 가상 로봇에 대한 정보(예로, 가상 로봇의 크기나 형태) 및 가상 환경에 대한 정보(예로, 가상 환경에 포함되는 오브젝트에 대한 정보)를 포함할 수 있다. 프로세서(130)는 획득된 가상 로봇 및 가상 환경에 대한 정보를 메모리(120)에 저장할 수 있다.The processor 130 may generate a virtual robot and a virtual environment for driving simulation of the virtual robot. The processor 130 may generate a virtual robot and a virtual environment based on a user input obtained through the input unit 140 . Here, the user input may include information on the virtual robot (eg, the size or shape of the virtual robot) and information on the virtual environment (eg, information on an object included in the virtual environment). The processor 130 may store the obtained information on the virtual robot and the virtual environment in the memory 120 .

프로세서(130)는 로봇 제어 장치(200)로부터 가상 로봇을 제어하기 위한 제어 정보를 획득할 수 있다. 프로세서(130)는 제어 정보를 바탕으로 가상 로봇에 대한 주행 시뮬레이션을 수행할 수 있다. 주행 시뮬레이션을 수행하는 동안, 프로세서(130)는 가상 환경 내에서 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득할 수 있다. 예로, 프로세서(130)는 메모리(120)에 기저장된 가상 로봇 및 오브젝트에 대한 위치 정보를 바탕으로 센싱 데이터를 획득할 수 있다.The processor 130 may obtain control information for controlling the virtual robot from the robot control device 200 . The processor 130 may perform a driving simulation for the virtual robot based on the control information. While performing the driving simulation, the processor 130 may acquire sensing data corresponding to the distance between the virtual robot and the object in the virtual environment. For example, the processor 130 may acquire sensing data based on location information about a virtual robot and an object pre-stored in the memory 120 .

프로세서(130)는 센싱 데이터 및 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 가상 센서가 가상 로봇과 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득할 수 있다. 예로, 프로세서(130)는 센싱 데이터 및 가상 센서의 에러율을 바탕으로 에러값을 획득하고, 센싱 데이터와 에러값을 합산하여 가상 센싱 데이터를 획득할 수 있다. 또는, 프로세서(130)는 센싱 데이터를 학습된 신경망 모델에 입력하여 가상 센싱 데이터를 획득할 수 있다.The processor 130 may acquire virtual sensing data output when the virtual sensor measures the distance between the virtual robot and the object based on the sensing data and the error rate of the virtual sensor included in the virtual robot. For example, the processor 130 may obtain an error value based on the sensing data and an error rate of the virtual sensor, and may obtain the virtual sensing data by summing the sensing data and the error value. Alternatively, the processor 130 may obtain virtual sensing data by inputting the sensing data into the learned neural network model.

한편, 가상 센서의 에러율은 정규 분포 함수에 대응되는 값을 가질 수 있다. 이 때, 프로세서(130)는 가상 센서의 에러율을 변경시키면서 주행 시뮬레이션을 반복적으로 수행할 수 있다. 프로세서(130)는 주행 시뮬레이션에 따른 가상 로봇의 주행 경로, 주행 거리 및 주행 시간 중 적어도 하나를 바탕으로 적어도 하나의 주행 시뮬레이션을 식별할 수 있다. 예로, 프로세서(130)는 복수의 주행 시뮬레이션 중 주행 거리가 가장 작은 주행 시뮬레이션을 식별할 수 있다. 프로세서(130)는 식별된 주행 시뮬레이션에 대응되는 가상 센서의 에러율을 출력할 수 있다. 예로, 프로세서(130)는 가상 센서의 에러율을 표시하도록 디스플레이(150)를 제어할 수 있다.Meanwhile, the error rate of the virtual sensor may have a value corresponding to a normal distribution function. In this case, the processor 130 may repeatedly perform the driving simulation while changing the error rate of the virtual sensor. The processor 130 may identify at least one driving simulation based on at least one of a driving path, a driving distance, and a driving time of the virtual robot according to the driving simulation. For example, the processor 130 may identify a driving simulation having the smallest driving distance among a plurality of driving simulations. The processor 130 may output an error rate of the virtual sensor corresponding to the identified driving simulation. For example, the processor 130 may control the display 150 to display an error rate of the virtual sensor.

프로세서(130)는 가상 센싱 데이터를 로봇 제어 장치로 출력할 수 있다. 예로, 프로세서(130)는 가상 센싱 데이터를 로봇 제어 장치(200)로 전송하도록 통신 인터페이스(110)를 제어할 수 있다.The processor 130 may output virtual sensing data to the robot control device. For example, the processor 130 may control the communication interface 110 to transmit virtual sensing data to the robot control device 200 .

본 개시에 따른 인공지능과 관련된 기능은 프로세서(130)와 메모리(120)를 통해 동작된다. 프로세서(130)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리(120)에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. Functions related to artificial intelligence according to the present disclosure are operated through the processor 130 and the memory 120 . The processor 130 may include one or a plurality of processors. In this case, one or more processors may be a general-purpose processor such as a CPU, an AP, a digital signal processor (DSP), or the like, a graphics-only processor such as a GPU, a VPU (Vision Processing Unit), or an artificial intelligence-only processor such as an NPU. One or a plurality of processors control to process input data according to a predefined operation rule or artificial intelligence model stored in the memory 120 . Alternatively, when one or more processors are AI-only processors, the AI-only processor may be designed with a hardware structure specialized for processing a specific AI model.

기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.A predefined action rule or artificial intelligence model is characterized in that it is created through learning. Here, being made through learning means that a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden. Such learning may be performed in the device itself on which artificial intelligence according to the present disclosure is performed, or may be performed through a separate server and/or system. Examples of the learning algorithm include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.

인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다.AI models can be created through learning. Here, being made through learning means that a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden. The artificial intelligence model may be composed of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between the operation result of a previous layer and the plurality of weights. The plurality of weights of the plurality of neural network layers may be optimized by the learning result of the artificial intelligence model. For example, a plurality of weights may be updated so that a loss value or a cost value obtained from the artificial intelligence model during the learning process is reduced or minimized.

본 개시에 따른 전자 장치(100)는 가상 센싱 데이터를 획득하기 위하여 인공지능 모델을 이용할 수 있다. 프로세서(130)는 가상 센서의 센싱 데이터에 대해 전처리 과정을 수행하여 인공지능 모델의 입력으로 사용하는 데에 적합한 형태로 변환할 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.The electronic device 100 according to the present disclosure may use an artificial intelligence model to acquire virtual sensing data. The processor 130 may perform a preprocessing process on the sensing data of the virtual sensor to convert it into a form suitable for use as an input of an artificial intelligence model. AI models can be created through learning. Here, being made through learning means that a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden. The artificial intelligence model may be composed of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between the operation result of a previous layer and the plurality of weights.

추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론(Knowledge based Reasoning), 최적화 예측(Optimization Prediction), 선호 기반 계획(Preference-based Planning), 추천(Recommendation) 등을 포함한다.Inference prediction is a technology for logically reasoning and predicting by judging information. It is a technology that uses knowledge based reasoning, optimization prediction, preference-based planning, and recommendation. include

인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), GAN (Generative Adversarial Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.The artificial neural network may include a deep neural network (DNN), for example, a Convolutional Neural Network (CNN), a Deep Neural Network (DNN), a Recurrent Neural Network (RNN), a Generative Adversarial Network (GAN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), or Deep Q-Networks, but is not limited to the above example.

입력부(140)는 사용자가 전자 장치(100)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예로, 프로세서(130)는 입력부(140)를 통해 가상 로봇에 관한 정보(예로, 가상 로봇의 형상이나 크기) 및 가상 센서에 관한 정보(예로, 가상 센서의 파라미터)를 획득할 수 있다. 한편, 입력부(140)에는 키보드(key board), 마우스(mouse), 키 패드(key pad), 터치 패드 등이 있을 수 있으나 이에 한정되는 것은 아니다. The input unit 140 means a means for a user to input data for controlling the electronic device 100 . For example, the processor 130 may obtain information about the virtual robot (eg, the shape or size of the virtual robot) and information about the virtual sensor (eg, parameters of the virtual sensor) through the input unit 140 . Meanwhile, the input unit 140 may include, but is not limited to, a keyboard, a mouse, a key pad, a touch pad, and the like.

디스플레이(150)는 다양한 화면을 표시할 수 있다. 예를 들어, 디스플레이(150)는 가상 로봇의 주행 시뮬레이션 과정을 표시할 수 있다. 또는, 디스플레이(150)는 특정 주행 시뮬레이션에 대응되는 파라미터(또는 에러율)를 표시할 수 있다. 한편, 디스플레이(150)는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있다.The display 150 may display various screens. For example, the display 150 may display a driving simulation process of the virtual robot. Alternatively, the display 150 may display a parameter (or an error rate) corresponding to a specific driving simulation. Meanwhile, the display 150 may be implemented as a liquid crystal display panel (LCD), organic light emitting diodes (OLED), or the like.

한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.Meanwhile, the various embodiments described above may be implemented in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof. In some cases, the embodiments described herein may be implemented by the processor itself. According to the software implementation, embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 처리 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 처리 동작을 특정 기기가 수행하도록 할 수 있다.Meanwhile, computer instructions for performing the processing operation according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium. When the computer instructions stored in the non-transitory computer-readable medium are executed by the processor, the processing operation according to the above-described various embodiments may be performed by a specific device.

비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.The non-transitory computer-readable medium refers to a medium that stores data semi-permanently, not a medium that stores data for a short moment, such as a register, cache, memory, etc., and can be read by a device. Specific examples of the non-transitory computer-readable medium may include a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

한편, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.Meanwhile, the device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory storage medium' is a tangible device and only means that it does not contain a signal (eg, electromagnetic wave). It does not distinguish the case where it is stored as For example, the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.

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

이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In the above, preferred embodiments of the present disclosure have been illustrated and described, but the present disclosure is not limited to the specific embodiments described above, and it is common in the technical field pertaining to the present disclosure without departing from the gist of the present disclosure as claimed in the claims. Various modifications can be made by those having the knowledge of

1000: 전자 장치 100: 전자 장치
110: 통신 인터페이스 120: 메모리
130: 프로세서 140: 입력 인터페이스
150: 디스플레이 200: 로봇 제어 장치
1000 electronic device 100 electronic device
110: communication interface 120: memory
130: processor 140: input interface
150: display 200: robot control unit

Claims (15)

전자 장치에 있어서,
통신 인터페이스;
적어도 하나의 인스트럭션을 저장하는 메모리; 및
프로세서;를 포함하고,
상기 프로세서는,
가상 로봇 및 상기 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성하고,
로봇 제어 장치로부터 상기 가상 로봇을 제어하기 위한 제어 정보를 획득하고,
상기 제어 정보를 바탕으로 상기 가상 로봇에 대한 주행 시뮬레이션을 수행하고,
상기 주행 시뮬레이션을 수행하는 동안, 상기 가상 환경 내에서 상기 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득하고,
상기 센싱 데이터 및 상기 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 상기 가상 센서가 상기 가상 로봇과 상기 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득하고,
상기 가상 센싱 데이터를 상기 로봇 제어 장치로 출력하는
전자 장치.
In an electronic device,
communication interface;
a memory storing at least one instruction; and
processor; including;
The processor is
Create a virtual robot and a virtual environment for driving simulation of the virtual robot,
Obtaining control information for controlling the virtual robot from the robot control device,
performing a driving simulation for the virtual robot based on the control information,
while performing the driving simulation, acquiring sensing data corresponding to a distance between the virtual robot and an object in the virtual environment;
Obtaining virtual sensing data output when the virtual sensor measures the distance between the virtual robot and the object based on the sensing data and the error rate of the virtual sensor included in the virtual robot,
outputting the virtual sensing data to the robot control device
electronic device.
제1 항에 있어서,
상기 프로세서는,
상기 메모리에 기저장된 상기 가상 로봇 및 상기 오브젝트에 대한 위치 정보를 바탕으로 상기 센싱 데이터를 획득하는
전자 장치.
According to claim 1,
The processor is
Acquiring the sensing data based on the location information about the virtual robot and the object stored in the memory
electronic device.
제1 항에 있어서,
상기 프로세서는,
상기 센싱 데이터 및 상기 가상 센서의 에러율을 바탕으로 에러값을 획득하고,
상기 센싱 데이터와 상기 에러값을 합산하여 상기 가상 센싱 데이터를 획득하는
전자 장치.
According to claim 1,
The processor is
obtaining an error value based on the sensing data and the error rate of the virtual sensor,
acquiring the virtual sensed data by summing the sensed data and the error value
electronic device.
제1 항에 있어서,
상기 가상 센서의 에러율은
상기 가상 센서와 상기 오브젝트의 거리와 관련된 제1 에러율, 상기 오브젝트의 재질과 관련된 제2 에러율 및 상기 가상 센서에 포함된 모터와 관련된 제3 에러율 중 적어도 하나를 포함하는
전자 장치.
According to claim 1,
The error rate of the virtual sensor is
At least one of a first error rate related to the distance between the virtual sensor and the object, a second error rate related to the material of the object, and a third error rate related to a motor included in the virtual sensor
electronic device.
제1 항에 있어서,
상기 프로세서는,
상기 센싱 데이터를 상기 센싱 데이터 및 상기 가상 센서에 대응되는 실제 센서를 바탕으로 획득된 실측 데이터를 바탕으로 학습된 신경망 모델에 입력하여 상기 가상 센싱 데이터를 획득하는
전자 장치.
According to claim 1,
The processor is
To obtain the virtual sensed data by inputting the sensing data into a neural network model learned based on the measured data obtained based on the sensing data and the real sensor corresponding to the virtual sensor
electronic device.
제5 항에 있어서,
상기 가상 센서의 에러율은,
상기 학습된 신경망 모델의 가중치에 대응되는
전자 장치.
6. The method of claim 5,
The error rate of the virtual sensor is
corresponding to the weight of the learned neural network model.
electronic device.
제1 항에 있어서,
상기 가상 센서의 에러율은 정규 분포 함수에 대응되는 값을 가지며,
상기 프로세서는,
상기 가상 센서의 에러율을 변경시키면서 상기 주행 시뮬레이션을 반복적으로 수행하고,
상기 주행 시뮬레이션에 따른 상기 가상 로봇의 주행 경로, 주행 거리 및 주행 시간 중 적어도 하나를 바탕으로 적어도 하나의 주행 시뮬레이션을 식별하고,
상기 식별된 주행 시뮬레이션에 대응되는 상기 가상 센서의 에러율을 출력하는
전자 장치.
According to claim 1,
The error rate of the virtual sensor has a value corresponding to a normal distribution function,
The processor is
repeatedly performing the driving simulation while changing the error rate of the virtual sensor,
identifying at least one driving simulation based on at least one of a driving route, a driving distance, and a driving time of the virtual robot according to the driving simulation;
outputting an error rate of the virtual sensor corresponding to the identified driving simulation
electronic device.
전자 장치의 제어 방법에 있어서,
가상 로봇 및 상기 가상 로봇의 주행 시뮬레이션을 위한 가상 환경을 생성하는 단계;
로봇 제어 장치로부터 상기 가상 로봇을 제어하기 위한 제어 정보를 획득하는 단계;
상기 제어 정보를 바탕으로 상기 가상 로봇에 대한 주행 시뮬레이션을 수행하는 단계;
상기 주행 시뮬레이션을 수행하는 동안, 상기 가상 환경 내에서 상기 가상 로봇과 오브젝트와의 거리에 대응되는 센싱 데이터를 획득하는 단계;
상기 센싱 데이터 및 상기 가상 로봇에 포함된 가상 센서의 에러율을 바탕으로 상기 가상 센서가 상기 가상 로봇과 상기 오브젝트 사이의 거리를 측정할 때 출력되는 가상 센싱 데이터를 획득하는 단계; 및
상기 가상 센싱 데이터를 상기 로봇 제어 장치로 출력하는 단계;를 포함하는
제어 방법.
A method for controlling an electronic device, comprising:
generating a virtual robot and a virtual environment for driving simulation of the virtual robot;
obtaining control information for controlling the virtual robot from a robot control device;
performing a driving simulation on the virtual robot based on the control information;
acquiring sensing data corresponding to a distance between the virtual robot and an object in the virtual environment while performing the driving simulation;
acquiring virtual sensing data output when the virtual sensor measures a distance between the virtual robot and the object based on the sensing data and an error rate of a virtual sensor included in the virtual robot; and
outputting the virtual sensing data to the robot control device; including
control method.
제8 항에 있어서,
상기 센싱 데이터를 획득하는 단계는,
상기 전자 장치에 기저장된 상기 가상 로봇 및 상기 오브젝트에 대한 위치 정보를 바탕으로 상기 센싱 데이터를 획득하는
제어 방법.
9. The method of claim 8,
The step of acquiring the sensing data includes:
acquiring the sensing data based on location information about the virtual robot and the object pre-stored in the electronic device;
control method.
제8 항에 있어서,
상기 가상 센싱 데이터를 획득하는 단계는,
상기 센싱 데이터 및 상기 가상 센서의 에러율을 바탕으로 에러값을 획득하는 단계, 및
상기 센싱 데이터와 상기 에러값을 합산하여 상기 가상 센싱 데이터를 획득하는 단계를 포함하는
제어 방법.
9. The method of claim 8,
The step of obtaining the virtual sensing data includes:
obtaining an error value based on the sensing data and the error rate of the virtual sensor; and
Acquiring the virtual sensed data by summing the sensed data and the error value
control method.
제8 항에 있어서,
상기 가상 센서의 에러율은
상기 가상 센서와 상기 오브젝트의 거리와 관련된 제1 에러율, 상기 오브젝트의 재질과 관련된 제2 에러율 및 상기 가상 센서에 포함된 모터와 관련된 제3 에러율 중 적어도 하나를 포함하는
제어 방법.
9. The method of claim 8,
The error rate of the virtual sensor is
At least one of a first error rate related to the distance between the virtual sensor and the object, a second error rate related to the material of the object, and a third error rate related to a motor included in the virtual sensor
control method.
제8 항에 있어서,
상기 가상 센싱 데이터를 획득하는 단계는,
상기 센싱 데이터를 상기 센싱 데이터 및 상기 가상 센서에 대응되는 실제 센서를 바탕으로 획득된 실측 데이터를 바탕으로 학습된 신경망 모델에 입력하여 상기 가상 센싱 데이터를 획득하는
제어 방법.
9. The method of claim 8,
The step of obtaining the virtual sensing data includes:
To obtain the virtual sensed data by inputting the sensing data into a neural network model learned based on the measured data obtained based on the sensing data and the real sensor corresponding to the virtual sensor
control method.
제12 항에 있어서,
상기 가상 센서의 에러율은,
상기 학습된 신경망 모델의 가중치에 대응되는
제어 방법.
13. The method of claim 12,
The error rate of the virtual sensor is
corresponding to the weight of the learned neural network model.
control method.
제8 항에 있어서,
상기 가상 센서의 에러율은 정규 분포 함수에 대응되는 값을 가지며,
상기 제어 방법은,
상기 가상 센서의 에러율을 변경시키면서 상기 주행 시뮬레이션을 반복적으로 수행하는 단계;
상기 주행 시뮬레이션에 따른 상기 가상 로봇의 주행 경로, 주행 거리 및 주행 시간 중 적어도 하나를 바탕으로 적어도 하나의 주행 시뮬레이션을 식별하는 단계; 및
상기 식별된 주행 시뮬레이션에 대응되는 상기 가상 센서의 에러율을 출력하는 단계;를 더 포함하는
제어 방법.
9. The method of claim 8,
The error rate of the virtual sensor has a value corresponding to a normal distribution function,
The control method is
repeatedly performing the driving simulation while changing the error rate of the virtual sensor;
identifying at least one driving simulation based on at least one of a driving route, a driving distance, and a driving time of the virtual robot according to the driving simulation; and
Outputting an error rate of the virtual sensor corresponding to the identified driving simulation; further comprising
control method.
제8 항 내지 제14 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적인(non-transitory) 기록매체.
A computer-readable non-transitory recording medium in which a program for executing the method of any one of claims 8 to 14 in a computer is recorded.
KR1020200169597A 2020-12-07 2020-12-07 Electronic apparatus and method for controlling thereof KR20220080464A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200169597A KR20220080464A (en) 2020-12-07 2020-12-07 Electronic apparatus and method for controlling thereof
PCT/KR2021/000999 WO2022124477A1 (en) 2020-12-07 2021-01-26 Electronic device and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200169597A KR20220080464A (en) 2020-12-07 2020-12-07 Electronic apparatus and method for controlling thereof

Publications (1)

Publication Number Publication Date
KR20220080464A true KR20220080464A (en) 2022-06-14

Family

ID=81973610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200169597A KR20220080464A (en) 2020-12-07 2020-12-07 Electronic apparatus and method for controlling thereof

Country Status (2)

Country Link
KR (1) KR20220080464A (en)
WO (1) WO2022124477A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5414465B2 (en) * 2009-11-06 2014-02-12 株式会社日立製作所 Simulation system
KR101363092B1 (en) * 2012-09-20 2014-02-14 강원대학교산학협력단 Implementation method of rils(robot-in-the-loop simulation) in robot system
KR101515496B1 (en) * 2013-06-12 2015-05-04 국민대학교산학협력단 Simulation system for autonomous vehicle for applying obstacle information in virtual reality
JP2020086569A (en) * 2018-11-16 2020-06-04 株式会社MinD in a Device Device control system
KR102146012B1 (en) * 2020-04-21 2020-08-19 (주) 한일프로텍 Method for generating data for virtual autonomous driving environment using a plurality of autonomous driving data and apparatus thereof

Also Published As

Publication number Publication date
WO2022124477A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
KR102481487B1 (en) Autonomous driving apparatus and method thereof
US20180330200A1 (en) Task execution system, task execution method, training apparatus, and training method
KR102655865B1 (en) Method and computer program product for representing the degree of risk in a 3d modeling space of a construction site
US10795327B2 (en) System and method for context-driven predictive simulation selection and use
US11303977B2 (en) Server for managing home network and control method therefor
US20200122039A1 (en) Method and system for a behavior generator using deep learning and an auto planner
KR20190105403A (en) An external device capable of being combined with an electronic device, and a display method thereof.
KR102367395B1 (en) Home network managing server and controlling method thereof
US20220366244A1 (en) Modeling Human Behavior in Work Environment Using Neural Networks
US20210015376A1 (en) Electronic device and method for measuring heart rate
CN113962399A (en) Method and system for learning disturbance set in machine learning
US11430137B2 (en) Electronic device and control method therefor
JP6904287B2 (en) Control device, control method, and control program
KR102499379B1 (en) Electronic device and method of obtaining feedback information thereof
KR101953145B1 (en) Method for controlling mobile robot and apparatus thereof
KR20220080464A (en) Electronic apparatus and method for controlling thereof
US11915370B2 (en) Method and system for 3D modeling based on irregular-shaped sketch
KR102636586B1 (en) Apparatus and method for controlling driving test of autonomous driving vehicles
KR20220021581A (en) Robot and control method thereof
KR20220074580A (en) Electronic apparatus and method for controlling thereof
KR102594885B1 (en) 3D space remote control function introduction system
KR20230087294A (en) A method for providing information for safety of mobile robot traveling in real space and an electronic device performing the same
Liong et al. Predicting trajectory of crane-lifted load using LSTM network: A comparative study of simulated and real-world scenarios
KR102655066B1 (en) Apparatus and method for controlling adaptive cruise of autonomous driving vehicles
JP7233606B2 (en) Training data generation device and training data generation method