KR102007491B1 - Method for providing coding training using virtual robot - Google Patents

Method for providing coding training using virtual robot Download PDF

Info

Publication number
KR102007491B1
KR102007491B1 KR1020190014005A KR20190014005A KR102007491B1 KR 102007491 B1 KR102007491 B1 KR 102007491B1 KR 1020190014005 A KR1020190014005 A KR 1020190014005A KR 20190014005 A KR20190014005 A KR 20190014005A KR 102007491 B1 KR102007491 B1 KR 102007491B1
Authority
KR
South Korea
Prior art keywords
virtual robot
contact point
mission
determining
point
Prior art date
Application number
KR1020190014005A
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 KR1020190014005A priority Critical patent/KR102007491B1/en
Application granted granted Critical
Publication of KR102007491B1 publication Critical patent/KR102007491B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • G06Q50/2057Career enhancement or continuing education service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)

Abstract

A purpose of the present invention is to provide a coding education method using augmented reality. More specifically, the present invention relates to a coding education providing method using a virtual robot as a method performed by a computing device including a camera. The coding education providing method using a virtual robot includes: a first step of obtaining coding education content; a second step of selecting one or more points included in the coding education content; a third step of obtaining an image photographed by a camera; a fourth step of recognizing the photographed image and matching one or more objects included in the photographed image with the one or more points; a fifth step of displaying the photographed image and the matched points; a sixth step of displaying a virtual robot on the photographed image; a seventh step of displaying one or more instruction blocks individually including one or more instructions to control the motion of the virtual robot; an eighth step of assigning the one or more instruction blocks to the one or more points based on a user input for the displayed instruction blocks; a ninth step of controlling the virtual robot depending on an order in which the one or more instruction blocks are arranged wherein the virtual robot moves according to the one or more points and performs an instruction corresponding to an instruction block assigned to each point; and a tenth step of displaying the motion of the virtual robot depending on the control result.

Description

가상의 로봇을 이용한 코딩 교육 제공 방법{Method for providing coding training using virtual robot}Method for providing coding training using virtual robot}

본 발명은 가상의 로봇을 이용한 코딩 교육 제공 방법에 관한 것이다. The present invention relates to a method of providing coding education using a virtual robot.

코딩교육에 대한 관심이 높아지면서, 초보자 또는 아동, 청소년을 대상으로 프로그래밍 언어를 직접 다루는 것이 아닌 블록 형태의 명령어 모음을 제공하고, 이를 배치함으로써 코딩학습이 가능하도록 하는 애플리케이션 및 서비스가 제공되고 있다. 또한, 코딩 결과를 시각적으로 보여주고, 흥미를 유도할 수 있도록 코딩에 따라 동작하는 로봇을 이용한 학습서비스가 제공되고 있다.As interest in coding education increases, applications and services are provided for beginners, children, and teenagers to provide coding learning by providing a block-type set of instructions rather than directly dealing with a programming language. In addition, a learning service using a robot operating according to coding is provided to visually show a coding result and to induce interest.

증강현실(Augmented Reality)은 현실세계에 가상 물체를 겹쳐 보여주는 기술이다. 현실세계에 실시간으로 부가정보를 갖는 가상세계를 합쳐 하나의 영상으로 보여주므로 혼합현실(Mixed Reality, MR)이라고도 한다.Augmented Reality is a technology that overlays virtual objects in the real world. It is also called Mixed Reality (MR) because it combines the virtual world with additional information in real time into one image.

공개특허공보 제10-2018-0013487호, 2018.02.07 공개Patent Publication No. 10-2018-0013487, filed Feb. 7, 2018

본 발명이 해결하고자 하는 과제는 증강현실을 이용한 코딩교육 방법을 제공하는 것이다.The problem to be solved by the present invention is to provide a coding education method using augmented reality.

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

상술한 과제를 해결하기 위한 본 발명의 일 면에 따라 카메라를 포함하는 컴퓨팅 장치에 의하여 수행되는 방법은, 코딩교육 콘텐츠를 획득하는 제1단계, 상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계, 상기 카메라로부터 촬영된 영상을 획득하는 제3단계, 상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭하는 제4단계, 상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계, 상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계, 상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계, 상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계, 상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계 및 상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계를 포함한다.According to an aspect of the present invention for solving the above problems, a method performed by a computing device including a camera, the first step of obtaining coding education content, selecting one or more points included in the coding education content A second step, a third step of acquiring a captured image from the camera, a fourth step of recognizing the captured image, and matching one or more objects and the one or more points included in the captured image, the captured image One or more instructions each including a fifth step of displaying an image and the matched one or more points, a sixth step of displaying a virtual robot on the photographed image, and one or more instructions for controlling the movement of the virtual robot A seventh step of displaying a block, the one or more based on user input for the displayed one or more instruction blocks An eighth step of placing the instruction block at the one or more points, controlling the virtual robot according to the order in which the one or more instruction blocks are arranged, wherein the virtual robot moves along the one or more points, and each point And a tenth step of performing a command corresponding to the instruction block disposed in the step, and displaying a movement of the virtual robot according to the control result.

또한, 상기 제1단계는, 상기 코딩교육 콘텐츠에 포함된 미션을 획득하는 제11단계 및 상기 미션을 표시하는 제12단계를 포함하고, 상기 제9단계는, 상기 제어 결과에 따른 상기 미션의 달성여부를 판단하는 제13단계 및 상기 미션의 달성여부에 따른 피드백을 표시하는 제14단계를 포함할 수 있다.In addition, the first step may include an eleventh step of obtaining a mission included in the coding education content and a twelfth step of displaying the mission, and the ninth step may include: achieving the mission according to the control result A thirteenth step of determining whether or not, and a fourteenth step of displaying feedback according to whether the mission is achieved.

또한, 상기 제13단계는, 상기 하나 이상의 객체와 상기 가상의 로봇 간의 인터렉션을 판단하는 제15단계 및 상기 인터렉션에 기초하여 상기 하나 이상의 포인트 각각에서의 미션 달성여부를 판단하는 제16단계를 포함하고, 상기 제14단계는, 상기 하나 이상의 포인트 각각에서의 미션 달성여부에 따른 피드백을 표시하는, 제17단계를 포함할 수 있다.The thirteenth step may include a fifteenth step of determining an interaction between the one or more objects and the virtual robot, and a sixteenth step of determining whether the mission is achieved at each of the one or more points based on the interaction. The fourteenth step may include a seventeenth step of displaying feedback based on whether the mission is achieved at each of the one or more points.

또한, 상기 제15단계는, 상기 하나 이상의 객체와 상기 가상의 로봇 간의 하나 이상의 접점을 판단하는 제18단계, 상기 하나 이상의 접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제19단계 및 상기 하나 이상의 접점의 위치, 움직임 및 상기 하나 이상의 접점 각각에 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제20단계를 포함할 수 있다.In addition, the fifteenth step may include an eighteenth step of determining one or more contacts between the one or more objects and the virtual robot, and determining the one or more objects corresponding to each of the one or more contacts and the site of the virtual robot. A nineteenth step and a twentieth step of determining the interaction based on the position, the movement of the one or more contacts and the portion corresponding to each of the one or more contacts.

또한, 상기 제20단계는, 상기 하나 이상의 접점에 포함된 제1접점을 제2접점 및 제3접점으로 분할하는 제21단계, 상기 제2접점 및 상기 제3접점의 움직임을 추적하는 제22단계, 상기 제2접점 및 상기 제3접점 간의 거리가 소정의 기준값 이상으로 멀어지는 경우, 상기 제2접점 및 상기 제3접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제23단계 및 상기 제2접점 및 상기 제3접점의 위치, 움직임 및 상기 제2접점 및 상기 제3접점에 각각 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제24단계를 포함할 수 있다.The twenty-second step may include: twenty-first step of dividing a first contact included in the one or more contacts into a second contact point and a third contact point; and twenty-second step of tracking movement of the second contact point and the third contact point; When the distance between the second contact point and the third contact point is greater than or equal to a predetermined reference value, determining a portion of the at least one object and the virtual robot corresponding to each of the second contact point and the third contact point; And a twenty-fourth step of determining the interaction based on the position, the movement of the second contact point and the third contact point, and a portion corresponding to the second contact point and the third contact point, respectively.

또한, 상기 제11단계는, 상기 하나 이상의 객체의 종류를 판단하는 제25단계, 상기 촬영된 영상에 포함된 상기 하나 이상의 객체의 위치 및 종류에 기초하여 상기 가상의 로봇의 이동경로를 생성하는 제26단계, 상기 가상의 로봇이 상기 이동경로를 따라 이동하도록 하는 제1미션을 획득하는 제27단계 및 상기 가상의 로봇이 상기 하나 이상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제2미션을 획득하는 제28단계를 포함할 수 있다.The eleventh step may include: twenty-five step of determining a type of the one or more objects; and generating a movement path of the virtual robot based on the position and type of the one or more objects included in the captured image. In step 26, obtaining a first mission for allowing the virtual robot to move along the movement path; and performing a second mission for allowing the virtual robot to perform a predetermined interaction with at least one of the one or more objects. It may include the 28 th step of obtaining.

또한, 상기 제11단계는, 상기 이동경로 상에 하나 이상의 가상의 객체를 생성 및 표시하는 제29단계, 상기 하나 이상의 가상의 객체의 종류를 결정하는 제30단계, 상기 하나 이상의 가상의 객체의 위치 및 종류에 기초하여 상기 이동경로를 업데이트하는 제31단계, 상기 가상의 로봇이 상기 업데이트된 이동경로를 따라 이동하도록 하는 제3미션을 획득하는 제32단계 및 상기 가상의 로봇이 상기 하나 이상의 가상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제4미션을 획득하는 제33단계를 포함할 수 있다.In addition, the eleventh step may include: twenty-ninth step of generating and displaying one or more virtual objects on the movement path; thirty thirty step of determining a type of the one or more virtual objects; and location of the one or more virtual objects. And a thirty-one step of updating the movement route based on a type, a thirty-second stage of acquiring a third mission for causing the virtual robot to move along the updated movement route, and the virtual robot is configured to perform the at least one virtual operation. The method may include a thirty-third step of obtaining a fourth mission for performing a predetermined interaction with at least one of the objects.

또한, 상기 제8단계는, 상기 하나 이상의 명령어 블록 중 적어도 일부를 상기 가상의 로봇에 배치하는 제34단계를 더 포함하고, 상기 제9단계는, 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령을 수행하는 제35단계, 상기 하나 이상의 포인트에 도착하는 경우, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는 제36단계 및 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령과, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령이 충돌하는 경우, 동작을 정지하고 피드백을 표시하는 제37단계를 더 포함할 수 있다.The eighth step may further include a thirty-fourth step of disposing at least a portion of the one or more instruction blocks on the virtual robot, and the ninth step may correspond to the instruction block disposed on the virtual robot. A step 35 of performing a command; a step 36 of performing a command corresponding to the command block disposed at the one or more points; and a command corresponding to the command block disposed of the virtual robot; The method may further include a thirty-seventh step of stopping the operation and displaying the feedback when a command corresponding to the instruction block disposed at the arrived point collides.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

개시된 실시 예에 따르면, 증강현실을 이용하여 실제 로봇 없이도 가상의 로봇을 이용한 코딩교육을 제공할 수 있는 효과가 있다.According to the disclosed embodiment, there is an effect of providing coding education using a virtual robot without an actual robot using augmented reality.

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

도 1은 일 실시 예에 따른 증강현실을 이용한 코딩교육 방법을 도시한 흐름도이다.
도 2는 일 실시 예에 따른 코딩교육 콘텐츠 획득방법 및 이에 대응하는 가상의 로봇 제어방법을 구체적으로 설명하기 위한 도면이다.
도 3은 일 실시 예에 따라 미션의 달성여부를 판단하는 방법을 구체적으로 도시한 흐름도이다.
도 4는 일 실시 예에 따라 인터렉션을 판단하는 방법을 설명하는 흐름도이다.
도 5는 일 실시 예에 따라 접점 및 인터렉션을 판단하는 방법을 구체적으로 설명하는 흐름도이다.
도 6은 미션을 획득하는 일 예를 도시한 흐름도이다.
도 7은 가상의 객체에 기반하여 미션을 획득하는 일 예를 설명하는 흐름도이다.
도 8은 일 실시 예에 따라 명령어 블록을 배치하는 방법을 설명하는 흐름도이다.
도 9는 일 실시 예에 따른 컴퓨팅 장치의 구성도이다.
1 is a flowchart illustrating a coding education method using augmented reality according to an exemplary embodiment.
2 is a diagram illustrating a method of obtaining coding education content and a virtual robot control method corresponding thereto according to an embodiment.
3 is a flowchart illustrating a method of determining whether a mission is accomplished according to an exemplary embodiment.
4 is a flowchart illustrating a method of determining an interaction according to an exemplary embodiment.
5 is a flowchart illustrating a method of determining a contact point and an interaction according to an exemplary embodiment.
6 is a flowchart illustrating an example of obtaining a mission.
7 is a flowchart illustrating an example of obtaining a mission based on a virtual object.
8 is a flowchart illustrating a method of arranging an instruction block according to an exemplary embodiment.
9 is a block diagram of a computing device according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be embodied in various different forms, and the present embodiments only make the disclosure of the present invention complete, and those of ordinary skill in the art to which the present invention belongs. It is provided to fully inform the skilled worker of the scope of the invention, which is defined only by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. As used herein, "comprises" and / or "comprising" does not exclude the presence or addition of one or more other components in addition to the mentioned components. Like reference numerals refer to like elements throughout, and "and / or" includes each and all combinations of one or more of the mentioned components. Although "first", "second", etc. are used to describe various components, these components are of course not limited by these terms. These terms are only used to distinguish one component from another. Therefore, of course, the first component mentioned below may be a second component within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms used in the present specification (including technical and scientific terms) may be used in a sense that can be commonly understood by those skilled in the art. In addition, terms that are defined in a commonly used dictionary are not ideally or excessively interpreted unless they are specifically defined clearly.

명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.As used herein, the term "part" or "module" refers to a hardware component such as software, FPGA, or ASIC, and the "part" or "module" plays certain roles. However, "part" or "module" is not meant to be limited to software or hardware. The “unit” or “module” may be configured to be in an addressable storage medium or may be configured to play one or more processors. Thus, as an example, a "part" or "module" may include components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, Procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. Functions provided within components and "parts" or "modules" may be combined into smaller numbers of components and "parts" or "modules" or into additional components and "parts" or "modules". Can be further separated.

공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.The spatially relative terms " below ", " beneath ", " lower ", " above ", " upper " It can be used to easily describe a component's correlation with other components. Spatially relative terms are to be understood as including terms in different directions of components in use or operation in addition to the directions shown in the figures. For example, when flipping a component shown in the drawing, a component described as "below" or "beneath" of another component may be placed "above" the other component. Can be. Thus, the exemplary term "below" can encompass both an orientation of above and below. Components may be oriented in other directions as well, so spatially relative terms may be interpreted according to orientation.

본 명세서에서 설명되는 각 단계들과 함께 기재된 번호들(예: 제1단계, 제2단계 등)은 각 단계들을 구분하기 위한 것이고, 각 단계의 실행순서나 선후관계를 특정하기 위한 것은 아니다. The numbers (e.g., first step, second step, etc.) described together with each step described in the present specification are for distinguishing each step, and not for specifying the execution order or prosecutorial relationship of each step.

본 명세서에서 "로봇" 또는 "가상의 로봇"은 제어에 따른 명령을 수행하는 하드웨어 장치 또는 소프트웨어적으로 구성된 가상의 장치를 의미하는 것이고, 특정 종류를 한정하기 위한 것은 아니다.As used herein, the term “robot” or “virtual robot” refers to a hardware device or a virtual device configured in software for performing a command according to a control, and is not intended to limit a specific kind.

본 명세서에서, 컴퓨팅 장치는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨팅 장치는 스마트폰, 태블릿 PC, 컴퓨터 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.In the present specification, the computing device refers to any kind of hardware device including at least one processor, and may be understood as a meaning encompassing a software configuration that operates on the hardware device according to an embodiment. For example, a computing device may be understood as including, but not limited to, a smartphone, a tablet PC, a computer, and a user client and an application running on each device.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1 내지 도 8과 관련하여 설명되는 각 단계들은 컴퓨팅 장치에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.Each step described in connection with FIGS. 1 to 8 is described as being performed by a computing device, but the subject of each step is not limited thereto, and at least some of the steps may be performed in different devices according to embodiments. It may be.

이하에서 개시되는 실시 예에서, 컴퓨팅 장치는 카메라를 포함하며, 카메라를 이용하여 주변 영상을 촬영하고, 촬영된 영상에 가상의 로봇을 결합한 증강현실 영상을 표시한다.In an embodiment disclosed below, the computing device includes a camera, photographs a surrounding image using the camera, and displays an augmented reality image in which a virtual robot is coupled to the photographed image.

컴퓨팅 장치는 사용자 입력에 따라 가상의 로봇을 제어하기 위한 명령어를 획득하고, 획득된 명령어에 따라 가상의 로봇을 제어하며, 제어 결과를 표시한다. The computing device obtains a command for controlling the virtual robot according to the user input, controls the virtual robot according to the obtained command, and displays the control result.

가상의 로봇은 제어에 따라 촬영된 영상에 포함된 객체들 및 증강현실 영상에 포함된 가상의 객체들과 인터렉션하며 동작하고, 컴퓨팅 장치는 인터렉션 결과에 따른 피드백을 제공한다. The virtual robot interacts with the objects included in the captured image and the virtual objects included in the augmented reality image under control, and the computing device provides feedback based on the result of the interaction.

도 1은 일 실시 예에 따른 증강현실을 이용한 코딩교육 방법을 도시한 흐름도이다. 1 is a flowchart illustrating a coding education method using augmented reality according to an exemplary embodiment.

단계 S101에서, 컴퓨팅 장치는 코딩교육 콘텐츠를 획득하는 제1 단계를 수행한다. In step S101, the computing device performs a first step of acquiring coding education content.

일 실시 예에서, 컴퓨팅 장치는 네트워크를 통하여 서버로부터 코딩교육 콘텐츠를 획득한다. 다른 실시 예에서, 컴퓨팅 장치는 메모리에 저장된 코딩교육 콘텐츠를 획득할 수 있으며, 또한 소정의 규칙에 의거하여 코딩교육 콘텐츠를 생성할 수도 있다.In one embodiment, the computing device obtains coding education content from a server via a network. In another embodiment, the computing device may obtain the coding training content stored in the memory and may also generate the coding training content based on a predetermined rule.

단계 S102에서, 컴퓨팅 장치는 상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계를 수행한다.In step S102, the computing device performs a second step of selecting one or more points included in the coding education content.

일 실시 예에서, 코딩교육 콘텐츠는 가상의 로봇으로 하여금 하나 이상의 실제 또는 가상의 객체와 인터렉션하며 이동하도록 하는 명령어를 작성하기 위한 것일 수 있다.In one embodiment, the coding education content may be for writing instructions that cause a virtual robot to interact with and move one or more real or virtual objects.

예를 들어, 코딩교육 콘텐츠는 가상의 로봇으로 하여금 하나 이상의 장애물을 피해 특정 경로로 이동하도록 하는 명령어를 작성하기 위한 것일 수 있다. 또한, 코딩교육 콘텐츠는 가상의 로봇으로 하여금 이동경로 상에서 특정 객체를 잡고 운반하도록 하는 명령어를 작성하기 위한 것일 수 있다.For example, the coding education content may be for writing a command for the virtual robot to move to a specific path avoiding one or more obstacles. In addition, the coding education content may be for writing a command for the virtual robot to grab and transport a specific object on the movement path.

따라서, 코딩교육 콘텐츠에 포함된 하나 이상의 포인트는, 가상의 로봇과 인터렉션할 대상이 되는 하나 이상의 객체를 의미한다. 예를 들어, 하나 이상의 객체는 가상의 로봇이 피해야 할 장애물이거나, 가상의 로봇이 운반해야 할 물건 등을 포함할 수 있다.Therefore, one or more points included in the coding education content means one or more objects to be interacted with the virtual robot. For example, the one or more objects may include obstacles to be avoided by the virtual robot, objects to be transported by the virtual robot, and the like.

단계 S103에서, 컴퓨팅 장치는 상기 카메라로부터 촬영된 영상을 획득하는 제3단계를 수행한다. In operation S103, the computing device performs a third operation of acquiring an image captured by the camera.

단계 S104에서, 컴퓨팅 장치는 상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭한다.In operation S104, the computing device recognizes the photographed image, and matches one or more objects and one or more points included in the photographed image.

예를 들어, 하나 이상의 객체는 촬영된 영상에 포함된 특정 물건을 의미할 수도 있고, 실시 예에 따라 벽이나 바닥의 특정 위치가 컴퓨팅 장치의 선택에 따라 객체로서 인식될 수도 있다.For example, one or more objects may mean a specific object included in the captured image, and according to an embodiment, a specific position of a wall or a floor may be recognized as an object according to the selection of a computing device.

컴퓨팅 장치는 촬영된 영상에 포함된 하나 이상의 객체에 대하여, 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 각각 매칭시킨다. 예를 들어, 촬영된 영상에 포함된 특정 물건이, 코딩교육 콘텐츠에 포함된 장애물로서 매칭되고, 가상의 로봇이 해당 물건을 피해가도록 명령어를 작성하게 될 수 있다.The computing device matches one or more points included in the coding education content with respect to one or more objects included in the captured image. For example, a specific object included in the photographed image may be matched as an obstacle included in coding education content, and a command may be written so that the virtual robot avoids the object.

마찬가지로, 촬영된 영상에 포함된 특정 물건에 대해서, 가상의 로봇이 해당 물건을 들어 이동하도록 명령어를 작성하게 될 수 있다. 이 경우, 가상의 로봇이 실제의 물건을 들고 이동할 수는 없으므로, 컴퓨팅 장치는 가상의 로봇의 움직임 및 가상의 로봇과 실제의 물건(구체적으로는, 컴퓨팅 장치의 화면에 표시되는, 촬영된 실제의 물건)과의 위치관계에 근거하여 실제의 물건을 가상의 로봇이 잡은 것으로 판단하고, 가상의 로봇이 움직임에 따라 해당 물건이 가상의 로봇과 함께 이동하는 것으로 판단할 수 있다. 실시 예에 따라서, 컴퓨팅 장치는 가상의 로봇에 의하여 이동되는 실제의 물건을 화면에서 제거하고, 실제의 물건 또는 실제의 물건과 매칭된 포인트에 대응하는 가상의 물건이 가상의 로봇에 의하여 이동되는 영상을 표시할 수 있으나, 이에 제한되는 것은 아니다.Similarly, for a particular object included in the captured image, a virtual robot may write a command to move the object. In this case, the virtual robot cannot move around with the real object, so that the computing device can move the virtual robot and the virtual robot and the real object (specifically, the photographed real that is displayed on the screen of the computing device). Based on the positional relationship with the object), it may be determined that the virtual object is caught by the virtual robot, and that the object moves with the virtual robot as the virtual robot moves. According to an embodiment, the computing device removes the actual object moved by the virtual robot from the screen, and the image of the virtual object corresponding to the actual object or the point matched with the actual object is moved by the virtual robot. May be displayed, but is not limited thereto.

컴퓨팅 장치가 가상의 로봇과 실제의 물건 간의 위치관계를 판단하는 방법에 대해서는 구체적으로 후술한다.A method of determining the positional relationship between the virtual robot and the actual object by the computing device will be described later in detail.

단계 S105에서, 컴퓨팅 장치는 상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계를 수행한다.In operation S105, the computing device performs a fifth operation of displaying the captured image and the matched one or more points.

예를 들어, 컴퓨팅 장치는 촬영된 영상을 표시하되, 촬영된 영상에서 인식된 하나 이상의 객체가 촬영된 위치에 코딩교육 콘텐츠에 포함된 포인트(또는 포인트에 대응하는 가상의 객체)를 표시한다. 각각의 객체와 매칭된 포인트는 실제 객체의 위치에서 객체를 대체하여 표시될 수도 있고, 객체와 오버랩되어 표시될 수도 있다.For example, the computing device displays a photographed image, and displays a point (or a virtual object corresponding to the point) included in the coding education content at a location where at least one object recognized in the photographed image is photographed. The point matched with each object may be displayed by replacing the object at the position of the actual object, or may be displayed overlapping with the object.

단계 S106에서, 컴퓨팅 장치는 상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계를 수행한다. 가상의 로봇의 크기 및 형태는 제한되지 않는다. 실시 예에 따라서, 가상의 로봇은 가상의 객체와 인터렉션하기 위한 도구(예를 들어, 가상의 객체를 잡고 이동하기 위한 집게 등)를 포함할 수 있다.In operation S106, the computing device performs a sixth operation of displaying a virtual robot on the captured image. The size and shape of the virtual robot is not limited. According to an embodiment, the virtual robot may include a tool for interacting with the virtual object (eg, tongs for holding and moving the virtual object).

단계 S107에서, 컴퓨팅 장치는 상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계를 수행할 수 있다.In operation S107, the computing device may perform a seventh operation of displaying one or more instruction blocks each including one or more instructions for controlling the movement of the virtual robot.

예를 들어, 각각의 명령어 블록은 가상의 로봇을 특정 방향으로 이동하도록 하는 명령어(예를 들어, 전진, 후진, 좌회전, 우회전 등)를 포함할 수 있다. For example, each instruction block may include instructions (eg, forward, backward, left turn, right turn, etc.) to move the virtual robot in a specific direction.

또한, 각각의 명령어 블록은 가상의 로봇과 객체를 인터렉션하도록 하는 명령어(예를 들어, 객체를 잡는 동작, 객체와 충돌하거나 객체를 피하는 동작, 객체를 미는 동작 등)를 포함할 수 있다.In addition, each instruction block may include instructions (eg, grabbing an object, colliding with or avoiding an object, pushing an object, and the like) for interacting with an object and a virtual robot.

또한, 각각의 명령어 블록은 특정 조건에 기초하여 수행되는 명령어(예를 들어, 객체가 인식되면 정지하거나, 회피하거나, 객체를 잡도록 하는 등)를 포함할 수 있다.In addition, each instruction block may include instructions that are performed based on a particular condition (eg, to stop, evade, or grab an object when the object is recognized).

단계 S108에서, 컴퓨팅 장치는 상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계를 수행한다.In step S108, the computing device performs an eighth step of placing the one or more instruction blocks at the one or more points based on user input for the displayed one or more instruction blocks.

예를 들어, 컴퓨팅 장치는 터치 스크린 장치를 통해 사용자로부터 표시된 하나 이상의 명령어 블록 각각을 선택 및 드래그 앤 드롭하는 터치 입력을 수신하고, 수신된 사용자 입력에 대응하는 위치로 각각의 명령어 블록을 이동시켜 표시할 수 있다. 각각의 명령어 블록은 사용자의 선택에 따라 각각의 포인트로 이동하여 배치될 수 있으며, 각각의 포인트는 상술한 바와 같이 코딩교육 콘텐츠에 포함된 것으로, 가상의 로봇이 이동하는 중에 방향전환이나 특정 명령의 수행이 필요한 포인트들을 포함하는 의미로서 이해될 수 있다.For example, the computing device receives a touch input for selecting and dragging and dropping each of one or more command blocks displayed from a user through a touch screen device, and moving each command block to a position corresponding to the received user input to display the touch input. can do. Each instruction block can be moved to each point according to the user's choice and arranged. Each point is included in the coding training content as described above. It can be understood as meaning including points that need to be performed.

예를 들어, 각각의 포인트는 가상의 로봇이 피해야 할 장애물이나 지나가야 할 통로, 열고 통과해야 할 문, 방향을 전환해야 할 벽 등을 의미할 수 있으며, 각각의 포인트는 카메라로 촬영된 영상에 포함된 하나 이상의 객체에 매칭된다. 예를 들어, 각각의 포인트는 카메라로 촬영된 영상에 포함된 실제의 벽, 바닥의 특정 위치, 바닥에 위치하는 물건 등에 대응하여 매칭될 수 있으며, 사용자의 입력에 따라 명령어 블록이 각각의 포인트에 배치될 수 있다. 하나의 포인트에 복수의 명령어 블록이 배치되는 경우, 배치된 순서에 따라 배치될 수 있고, 순서는 사용자 입력에 따라 변경될 수 있다.For example, each point could mean an obstacle to be avoided by a virtual robot, a passage to pass through, a door to open and pass through, a wall to change direction, etc. Matches one or more objects included. For example, each point may be matched to correspond to an actual wall, a specific position of the floor, an object located on the floor, etc. included in the image captured by the camera, and the command block may be matched to each point according to a user input. Can be deployed. When a plurality of instruction blocks are arranged at one point, they may be arranged according to the order in which they are arranged, and the order may be changed according to a user input.

단계 S109에서, 컴퓨팅 장치는 상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계를 수행한다.In step S109, the computing device controls the virtual robot according to the order in which the one or more instruction blocks are arranged, wherein the virtual robot moves along the one or more points and corresponds to the instruction blocks disposed at each point. Perform a ninth step.

예를 들어, 가상의 로봇은 코딩교육 콘텐츠에 포함된 포인트를 따라 이동하고, 각각의 포인트에 도착하는 경우 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행한다. For example, the virtual robot moves along a point included in the coding education content, and when arriving at each point, performs a command corresponding to the instruction block disposed at each point.

예를 들어, 가상의 로봇은 장애물이 배치된 포인트에 도착하고, 해당 포인트에 우회전하여 직진하라는 명령과, 좌회전하여 직진하라는 명령을 포함하는 명령어 블록이 순서대로 배치되어 있는 경우, 우회전하여 직진한 후 좌회전하여 직진함으로써 장애물을 피해 전진할 수 있다.For example, if a virtual robot arrives at a point where an obstacle is placed, and a command block including a command to turn right and go straight to the point and a command to turn left to go straight is arranged in order, then turn right and go straight. Turn left and go straight ahead to avoid obstacles.

다른 예로, 가상의 로봇은 특정 포인트에서 포인트에 배치된 객체를 잡으라는 명령과, 직진하라는 명령을 포함하는 명령어 블록이 순서대로 배치되어 있는 경우, 포인트에 배치된 객체를 잡은 후 직진할 수 있다.As another example, the virtual robot may move straight after grabbing an object disposed at a point when a command block including an instruction to grab an object disposed at a point at a specific point and an instruction block including a command to go straight are arranged in order.

또 다른 예로, 가상의 로봇은 직진할 수 있는 통로에 대응하는 포인트에서, 해당 통로에 진입하지 말고 우회전하여 직진하라는 명령어 블록이 배치되어 있는 경우, 해당 통로로 진입하지 않고 우회전하여 직진할 수 있다.As another example, the virtual robot may turn right without going into the passage when the instruction block is arranged to turn right and go straight without entering the passage at a point corresponding to the passage that may go straight.

단계 S110에서, 컴퓨팅 장치는 상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계를 수행한다. 즉, 컴퓨팅 장치는 상술한 제어에 따른 가상의 로봇의 움직임과 인터렉션을 표시한다.In operation S110, the computing device performs a tenth operation of displaying the movement of the virtual robot according to the control result. That is, the computing device displays the movement and interaction of the virtual robot according to the above control.

도 2는 일 실시 예에 따른 코딩교육 콘텐츠 획득방법 및 이에 대응하는 가상의 로봇 제어방법을 구체적으로 설명하기 위한 도면이다.2 is a diagram illustrating a method of obtaining coding education content and a virtual robot control method corresponding thereto according to an embodiment.

상술한 단계 S101에서, 컴퓨팅 장치는 상기 코딩교육 콘텐츠에 포함된 미션을 획득하는 제11단계(S111)를 수행한다. In operation S101, the computing device performs an eleventh operation S111 of obtaining a mission included in the coding education content.

예를 들어, 코딩교육 콘텐츠에 포함된 미션은 가상의 로봇을 특정 위치에서 다른 위치로 이동하도록 하는 미션, 특정 경로를 따라 가상의 로봇을 이동하도록 하는 미션, 가상의 로봇이 특정 객체를 옮기도록 하는 미션 등을 포함할 수 있으나, 이에 제한되지 않는다. For example, a mission included in coding education content may include a mission to move a virtual robot from one location to another, a mission to move a virtual robot along a specific path, and a virtual robot to move a specific object. It may include a mission, but is not limited thereto.

또한, 컴퓨팅 장치는 상기 미션을 표시하는 제12단계(S112)를 수행한다.In addition, the computing device performs a twelfth step S112 of displaying the mission.

상술한 단계 S109에서, 컴퓨팅 장치는 상기 제어 결과에 따른 상기 미션의 달성여부를 판단하는 제13단계(S113)를 수행한다.In step S109 described above, the computing device performs a thirteenth step S113 of determining whether the mission is achieved according to the control result.

일 실시 예에서, 각각의 미션은 미션 내용에 따른 하나 이상의 포인트를 포함하고, 컴퓨팅 장치는 각각의 포인트를 촬영된 영상과 매칭시킨 후, 가상의 로봇이 촬영된 영상 내에서 증강현실을 통해 움직이는 동안, 가상의 로봇과 각각의 포인트(즉, 각 포인트와 매칭된 촬영된 영상의 부분들) 간의 인터렉션을 판단, 미션의 달성여부를 판단할 수 있다.In one embodiment, each mission includes one or more points according to the mission content, and the computing device matches each point with the captured image while the virtual robot moves through augmented reality within the captured image. In addition, the interaction between the virtual robot and each point (that is, parts of the captured image matched with each point) may be determined to determine whether the mission is achieved.

또한, 컴퓨팅 장치는 상기 미션의 달성여부에 따른 피드백을 표시하는 제14단계(S114)를 수행한다.In addition, the computing device performs a fourteenth step S114 of displaying feedback based on whether or not the mission is achieved.

예를 들어, 컴퓨팅 장치는 가상의 로봇의 동작이 완료된 후 미션의 달성여부를 판단하고, 이에 기초하여 미션의 달성여부 또는 미션이 실패한 경우 어디에서 실패하였고, 무엇이 문제인가를 포함하는 피드백을 생성 및 제공할 수 있다.For example, the computing device determines whether the mission has been achieved after the operation of the virtual robot is completed, and generates feedback based on where the mission has been achieved or where it failed and what is the problem. Can provide.

또한, 컴퓨팅 장치는 가상의 로봇의 움직임을 실시간으로 판단하고, 각각의 동작에 대하여 미션에 따르고 있는지, 또는 미션으로부터 벗어난 것인지를 판단하여 피드백을 제공할 수 있다.In addition, the computing device may determine the movement of the virtual robot in real time, and provide feedback by determining whether each operation is in accordance with the mission or out of the mission.

일 실시 예에서, 컴퓨팅 장치는 각각의 포인트에 배치된 명령어 블록들의 배치에 기초하여 미션의 성공여부를 미리 판단할 수도 있으며, 이 경우 명령어 블록들의 배치를 변경할 것을 요청하는 피드백을 제공할 수 있다.According to an embodiment, the computing device may determine in advance whether the mission is successful based on the arrangement of the instruction blocks disposed at each point, and in this case, provide the feedback requesting to change the arrangement of the instruction blocks.

도 3은 일 실시 예에 따라 미션의 달성여부를 판단하는 방법을 구체적으로 도시한 흐름도이다. 3 is a flowchart illustrating a method of determining whether a mission is accomplished according to an exemplary embodiment.

상술한 단계 S113에서, 컴퓨팅 장치는 상기 하나 이상의 객체와 상기 가상의 로봇 간의 인터렉션을 판단하는 제15단계(S115)를 수행한다.In operation S113, the computing device performs a fifteenth operation S115 of determining an interaction between the one or more objects and the virtual robot.

예를 들어, 컴퓨팅 장치는 촬영된 영상에 포함된 객체 또는 이에 매칭된 포인트에 대응하는 가상의 이미지와 가상의 로봇 간의 위치관계에 기초하여 인터렉션을 판단할 수 있다. For example, the computing device may determine the interaction based on the positional relationship between the virtual robot and the virtual image corresponding to the object included in the captured image or the point matched thereto.

일 실시 예에서, 가상의 로봇에는 초음파 센서가 포함될 수 있다. 또한, 가상의 로봇에는 초음파 센서에서 감지되는 거리에 따른 명령어가 배치될 수 있다. 이 경우, 컴퓨팅 장치는 객체와 가상의 로봇 간의 거리 및 각도를 판단하고, 이로부터 초음파 센서의 가상의 출력을 산출한다. 컴퓨팅 장치는 산출된 가상의 출력에 근거하여 가상의 로봇을 제어할 수 있다. 또한, 컴퓨팅 장치는 하나 이상의 객체와 가상의 로봇 간의 접점에 근거하여 인터렉션을 판단할 수 있으며, 구체적인 방법에 대해서는 후술한다.In one embodiment, the virtual robot may include an ultrasonic sensor. In addition, a command according to the distance detected by the ultrasonic sensor may be arranged in the virtual robot. In this case, the computing device determines the distance and angle between the object and the virtual robot, and calculates the virtual output of the ultrasonic sensor therefrom. The computing device may control the virtual robot based on the calculated virtual output. In addition, the computing device may determine the interaction based on the contact point between the one or more objects and the virtual robot, which will be described later.

또한, 컴퓨팅 장치는 상기 인터렉션에 기초하여 상기 하나 이상의 포인트 각각에서의 미션 달성여부를 판단하는 제16단계(S116)를 수행한다.In addition, the computing device performs a sixteenth step S116 of determining whether the mission is achieved at each of the one or more points based on the interaction.

예를 들어, 코딩교육 콘텐츠에 따르면 특정 포인트에 대하여 가상의 로봇으로 하여금 해당 포인트와 충돌하지 않고 피해가도록 하는 미션이 할당되어 있을 수 있고, 이에 대응하여 컴퓨팅 장치는 해당 포인트에 도달하기 전에 가상의 로봇의 방향을 전환하여 이를 피해가도록 하는 명령어 블록들을 배치하였을 수 있다. 이 경우 가상의 로봇은 컴퓨팅 장치의 제어에 의하여 해당 포인트와 충돌하지 않고 피해가게 될 것이고, 컴퓨팅 장치는 해당 포인트의 미션이 달성된 것으로 판단할 수 있다.For example, according to the coding education content, a mission may be assigned to a virtual point so that the virtual robot may avoid the collision without colliding with the point, and correspondingly, the computing device may not be able to reach the point. You might have placed instruction blocks that change the direction of to avoid them. In this case, the virtual robot will be avoided without colliding with the point under the control of the computing device, and the computing device may determine that the mission of the point has been achieved.

또한, 상술한 단계 S114에서, 컴퓨팅 장치는 상기 하나 이상의 포인트 각각에서의 미션 달성여부에 따른 피드백을 표시하는, 제17단계(S117)를 수행한다.In addition, in step S114 described above, the computing device performs a seventeenth step S117 of displaying feedback based on whether or not the mission is achieved at each of the one or more points.

예를 들어, 컴퓨팅 장치는 각각의 포인트에서의 미션이 달성된 경우, 해당 포인트의 색 등을 달리 표현함으로써 미션의 달성여부에 대한 피드백을 제공할 수 있으나, 이에 제한되는 것은 아니다.For example, when the mission at each point is achieved, the computing device may provide feedback about whether the mission is achieved by differently expressing the color of the point, but is not limited thereto.

도 4는 일 실시 예에 따라 인터렉션을 판단하는 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a method of determining an interaction according to an exemplary embodiment.

상술한 단계 S115에서, 컴퓨팅 장치는 상기 하나 이상의 객체와 상기 가상의 로봇 간의 하나 이상의 접점을 판단하는 제18단계(S118)를 수행한다. In operation S115 described above, the computing device performs an eighteenth operation S118 of determining one or more contact points between the one or more objects and the virtual robot.

예를 들어, 컴퓨팅 장치는 증강현실 영상을 분석하여 하나 이상의 객체와 가상의 로봇 간의 접점을 판단한다. 예를 들어, 접점은 증강현실 영상에서 객체와 가상의 로봇이 맞닿거나 중첩된 부분을 의미할 수 있다.For example, the computing device analyzes an augmented reality image to determine a contact point between one or more objects and a virtual robot. For example, the contact point may mean a portion in which an object and a virtual robot contact or overlap each other in the augmented reality image.

또한, 컴퓨팅 장치는 상기 하나 이상의 접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제19단계(S119)를 수행한다.In addition, the computing device performs a nineteenth step S119 of determining the one or more objects corresponding to each of the one or more contacts and the part of the virtual robot.

예를 들어, 컴퓨팅 장치는 하나 이상의 접점 각각에 대하여, 해당 접점이 객체와 가상의 로봇의 어떤 부위에 해당하는가를 판단할 수 있다. 예를 들어, 객체가 가상의 로봇에 의하여 운반되어야 하는 박스인 경우, 접점은 박스의 일 부분과, 가상의 로봇에서 박스를 운반하는 데 이용되는 집게의 일부에 대응할 수 있다. For example, the computing device may determine, for each of the one or more contacts, which part of the object and the virtual robot the contact corresponds to. For example, if the object is a box to be carried by a virtual robot, the contacts may correspond to a portion of the box and a portion of the tongs used to transport the box in the virtual robot.

또한, 컴퓨팅 장치는 상기 하나 이상의 접점의 위치, 움직임 및 상기 하나 이상의 접점 각각에 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제20단계(S120)를 수행한다. In addition, the computing device performs a twentieth step (S120) of determining the interaction based on the position, the movement of the one or more contacts, and a portion corresponding to each of the one or more contacts.

예를 들어, 제1접점과 제2접점이 판단된 경우, 제1접점이 운반대상 박스의 일 지점에, 제2접점이 다른 일 지점에 대응할 수 있다. 마찬가지로, 제1접점이 가상의 로봇에 포함된 집게의 한쪽 부분에, 제2접점이 집게의 다른 부분에 대응할 수 있다. 이 경우, 컴퓨팅 장치는 가상의 로봇이 집게를 이용하여 운반대상 박스를 잡았다는 것을 판단할 수 있다. 또한, 이 상태에서 제1접점과 제2접점의 위치가 이동하는 경우, 컴퓨팅 장치는 접점의 이동방향에 따라 가상의 로봇이 운반대상 박스를 들어올리거나, 들고 이동한다고 판단할 수 있다.For example, when the first contact point and the second contact point are determined, the first contact point may correspond to one point of the carrying object box and the second contact point may correspond to another point. Similarly, the first contact may correspond to one part of the forceps included in the virtual robot, and the second contact may correspond to the other part of the forceps. In this case, the computing device may determine that the virtual robot grabbed the carrying object box using forceps. In addition, in this state, when the positions of the first contact point and the second contact point move, the computing device may determine that the virtual robot lifts or moves the carrying object box according to the moving direction of the contact point.

도 5는 일 실시 예에 따라 접점 및 인터렉션을 판단하는 방법을 구체적으로 설명하는 흐름도이다.5 is a flowchart illustrating a method of determining a contact point and an interaction according to an exemplary embodiment.

상술한 단계 S120에서, 컴퓨팅 장치는 상기 하나 이상의 접점에 포함된 제1접점을 제2접점 및 제3접점으로 분할하는 제21단계(S121)를 수행한다.In operation S120, the computing device performs a twenty-first operation S121 of dividing a first contact included in the one or more contacts into a second contact and a third contact.

예를 들어, 하나의 접점이 판단된 경우에도, 컴퓨팅 장치는 해당 접점을 예비적으로 2개 혹은 그 이상의 복수의 접점으로 분할하되, 각각의 접점이 같은 위치에 있는 것으로 판단할 수 있다.For example, even when one contact is determined, the computing device may preliminarily divide the contact into two or more contacts, and determine that each contact is in the same position.

또한, 컴퓨팅 장치는 상기 제2접점 및 상기 제3접점의 움직임을 추적하는 제22단계(S122)를 수행한다.In addition, the computing device performs a twenty-second step S122 of tracking the movements of the second contact point and the third contact point.

또한, 컴퓨팅 장치는 상기 제2접점 및 상기 제3접점 간의 거리가 소정의 기준값 이상으로 멀어지는 경우, 상기 제2접점 및 상기 제3접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제23단계(S123)를 수행한다.Also, when the distance between the second contact point and the third contact point is greater than or equal to a predetermined reference value, the computing device may determine a portion of the one or more objects and the virtual robot corresponding to each of the second contact point and the third contact point. The twenty third step S123 of determining is performed.

일 실시 예에서, 접점에 대응하는 객체 또는 가상의 로봇의 부위가 분리되어 서로 멀어질 수 있다. 예를 들어, 객체가 2 이상으로 분리될 수 있다. 객체가 분리될 수 있는 블록을 쌓은 형태였거나, 가상의 로봇과의 인터렉션에 의하여 절단되는 등의 실시 예가 있을 수 있다. 또한, 가상의 로봇의 집게가 닫힌 상태에서 벌어진 상태로 전환될 수 있다. 이 때 집게의 첨단이 접점에 대응하였던 경우, 집게가 벌어짐에 따라 접점이 2 이상으로 분리될 수 있다.In an embodiment, the parts of the object or the virtual robot corresponding to the contact point may be separated and separated from each other. For example, an object can be separated into two or more. There may be an embodiment in which the objects are stacked in blocks in which they can be separated, or are cut by interaction with a virtual robot. In addition, the forceps of the virtual robot can be switched to the open state in the closed state. In this case, when the tip of the forceps corresponds to the contact point, the contact point may be separated into two or more as the forceps are opened.

또한, 컴퓨팅 장치는 상기 제2접점 및 상기 제3접점의 위치, 움직임 및 상기 제2접점 및 상기 제3접점에 각각 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제24단계(S124)를 수행한다. In addition, the computing device performs a twenty-fourth step S124 of determining the interaction based on the position, the movement of the second contact point and the third contact point, and a portion corresponding to the second contact point and the third contact point, respectively. .

컴퓨팅 장치는 접점이 2 이상으로 분리되는 경우, 분리된 각각의 접점에 대응하는 객체와 가상의 로봇의 부위를 다시 판단하여, 객체와 가상의 로봇 간의 인터렉션을 판단할 수 있다.When the contact point is separated into two or more contacts, the computing device may determine an interaction between the object and the virtual robot by re-determining an area of the object and the virtual robot corresponding to each of the separated contact points.

일 실시 예에서, 객체와 가상의 로봇이 접촉하였다가 멀어질 수 있다. 이 경우 객체 측 접점과 가상의 로봇 측 접점으로 기존 접점이 분리될 수 있으며, 컴퓨팅 장치는 각각의 접점에 대응하는 대상체 및 부위를 다시 판단하여, 객체와 가상의 로봇 간의 인터렉션을 판단할 수 있다.In one embodiment, the object and the virtual robot may come into contact and move away. In this case, the existing contact may be separated into the object-side contact point and the virtual robot-side contact point, and the computing device may determine the interaction between the object and the virtual robot by re-determining an object and a portion corresponding to each contact point.

즉, 컴퓨팅 장치는 접점의 생성을 판단하되, 이후 접점이 사라지거나, 2 이상으로 분리되는 동작을 모두 추적함으로써, 가상의 로봇과 객체 간의 인터렉션을 판단할 수 있다.That is, the computing device may determine the generation of the contact point, and then track the movements in which the contact point disappears or separated into two or more, thereby determining the interaction between the virtual robot and the object.

도 6은 미션을 획득하는 일 예를 도시한 흐름도이다.6 is a flowchart illustrating an example of obtaining a mission.

상술한 단계 S111에서, 컴퓨팅 장치는 상기 하나 이상의 객체의 종류를 판단하는 제25단계(S125)를 수행한다.In the above-described step S111, the computing device performs a twenty-fifth step S125 of determining the type of the one or more objects.

예를 들어, 컴퓨팅 장치는 각각의 객체가 가상의 로봇에 의하여 운반되어야 하는 객체인지, 가상의 로봇이 피해야 하는 객체인지, 가상의 로봇이 지나갈 수 있는 객체인지 등을 판단할 수 있다.For example, the computing device may determine whether each object is an object to be carried by a virtual robot, an object to be avoided by the virtual robot, an object through which the virtual robot can pass, and the like.

또한, 컴퓨팅 장치는 상기 촬영된 영상에 포함된 상기 하나 이상의 객체의 위치 및 종류에 기초하여 상기 가상의 로봇의 이동경로를 생성하는 제26단계(S126)를 수행한다.In addition, the computing device performs a 26 th step (S126) of generating a movement path of the virtual robot based on the position and type of the one or more objects included in the captured image.

예를 들어, 컴퓨팅 장치는 각각의 객체의 종류를 판단한 결과에 기초하여 가상의 로봇이 이동하여야 하는 경로를 생성할 수 있으며, 해당 경로는 가상의 로봇이 이동할 수 있는 최적경로 또는 경로의 범위 등을 포함할 수 있으나, 이에 제한되는 것은 아니다.For example, the computing device may generate a path to which the virtual robot should move based on a result of determining the type of each object, and the path may determine an optimal path or a range of a path to which the virtual robot can move. It may include, but is not limited thereto.

또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 이동경로를 따라 이동하도록 하는 제1미션을 획득하는 제27단계(S127)를 수행한다.In addition, the computing device performs a twenty-seventh step (S127) of acquiring a first mission for causing the virtual robot to move along the movement path.

이동경로의 범위는 난이도에 따라 서로 다르게 설정될 수 있으며, 가상의 로봇이 소정 범위 내로 이동하도록 하는 미션이 획득될 수도 있으며, 가상의 로봇의 이동경로를 위상적으로 해석하여 동일범위의 이동경로로 판단되는 경우 미션을 달성한 것으로 판단하는 미션이 획득될 수도 있다.The range of the movement path may be set differently according to the difficulty level, and a mission for allowing the virtual robot to move within a predetermined range may be obtained, and the movement path of the same range may be analyzed by topological analysis of the movement path of the virtual robot. If it is determined that the mission is determined to have achieved the mission may be obtained.

또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 하나 이상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제2미션을 획득하는 제28단계(S128)를 수행한다. In addition, the computing device performs a twenty-eighth step (S128) of acquiring a second mission for allowing the virtual robot to perform a predetermined interaction with at least one of the one or more objects.

예를 들어, 미션은 가상의 로봇으로 하여금 특정 객체를 피해가거나, 충돌하거나, 운반하도록 하는 미션을 포함할 수 있으나, 이에 제한되는 것은 아니다.For example, the mission may include, but is not limited to, a mission that causes the virtual robot to avoid, collide, or transport a specific object.

도 7은 가상의 객체에 기반하여 미션을 획득하는 일 예를 설명하는 흐름도이다. 7 is a flowchart illustrating an example of obtaining a mission based on a virtual object.

상술한 단계 S111에서, 컴퓨팅 장치는 상기 이동경로 상에 하나 이상의 가상의 객체를 생성 및 표시하는 제29단계(S129)를 수행한다. In operation S111, the computing device performs operation 29 (S129) of generating and displaying one or more virtual objects on the movement path.

예를 들어, 가상의 객체는 촬영된 영상에 포함되지 않은 객체로서, 촬영된 영상의 일 지점에 증강현실을 이용하여 표시될 수 있다.For example, the virtual object is an object not included in the captured image and may be displayed using augmented reality at a point of the captured image.

또한, 컴퓨팅 장치는 상기 하나 이상의 가상의 객체의 종류를 결정하는 제30단계(S130)를 수행한다.In addition, the computing device performs a thirtieth step S130 of determining the type of the one or more virtual objects.

예를 들어, 가상의 객체의 종류는 가상의 로봇에 의하여 운반되어야 하는 객체, 가상의 로봇이 피해야 하는 객체, 가상의 로봇이 지나갈 수 있는 객체 등을 포함할 수 있으며, 이에 제한되는 것은 아니다.For example, the type of virtual object may include, but is not limited to, an object to be carried by a virtual robot, an object to be avoided by the virtual robot, an object through which the virtual robot can pass, and the like.

또한, 컴퓨팅 장치는 상기 하나 이상의 가상의 객체의 위치 및 종류에 기초하여 상기 이동경로를 업데이트하는 제31단계(S131)를 수행한다.In addition, the computing device performs a thirty-first step S131 of updating the movement path based on the location and type of the one or more virtual objects.

예를 들어, 추가된 가상의 객체가 가상의 로봇이 피해야 할 장애물인 경우, 이를 피해서 이동할 수 있도록 이동경로가 업데이트될 수 있다.For example, if the added virtual object is an obstacle to be avoided by the virtual robot, the movement path may be updated to move to avoid it.

또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 업데이트된 이동경로를 따라 이동하도록 하는 제3미션을 획득하는 제32단계(S132)를 수행한다.In addition, the computing device performs a thirty-second step (S132) of acquiring a third mission for causing the virtual robot to move along the updated movement path.

또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 하나 이상의 가상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제4미션을 획득하는 제33단계(S133)를 수행한다.In addition, the computing device performs a thirty-third step (S133) of acquiring a fourth mission for allowing the virtual robot to perform a predetermined interaction with at least one of the one or more virtual objects.

예를 들어, 제4미션은 가상의 로봇이 가상의 객체를 운반하거나, 복수의 가상의 객체를 이용하여 특정 모양을 만들거나, 블록과 같이 복수의 가상의 객체를 쌓아올리도록 하는 미션 등을 포함할 수 있다.For example, the fourth mission may include a mission for a virtual robot to carry a virtual object, make a specific shape using a plurality of virtual objects, or stack a plurality of virtual objects such as blocks. can do.

도 8은 일 실시 예에 따라 명령어 블록을 배치하는 방법을 설명하는 흐름도이다.8 is a flowchart illustrating a method of arranging an instruction block according to an exemplary embodiment.

상술한 단계 S108에서, 컴퓨팅 장치는 상기 하나 이상의 명령어 블록 중 적어도 일부를 상기 가상의 로봇에 배치하는 제34단계(S134)를 수행한다.In operation S108, the computing device performs a thirty-fourth operation S134 of disposing at least some of the one or more instruction blocks on the virtual robot.

일 실시 예에서, 컴퓨팅 장치는 사용자 입력에 기초하여 명령어 블록 중 적어도 일부를 코딩교육 콘텐츠로부터 획득된 포인트에 배치할 뿐 아니라, 가상의 로봇에도 배치할 수 있다. 즉, 사용자로부터 명령어 블록에 대한 드래그 앤 드롭 입력을 수신하고, 그에 따라 가상의 로봇이 배치된 위치에 명령어 블록을 배치하고, 가상의 로봇에 복수의 명령어 블록이 배치되는 경우, 배치된 순서에 따라 명령어 블록을 정렬할 수 있다. 명령어 블록이 배치되는 순서는 사용자 입력에 따라 변경될 수 있다.In one embodiment, the computing device may not only place at least some of the instruction blocks on the points obtained from the coding education content based on the user input, but also on the virtual robot. That is, when a drag and drop input for a command block is received from a user, the command block is disposed at a position where a virtual robot is disposed, and a plurality of command blocks are disposed on the virtual robot, according to the arrangement order. You can sort the block of instructions. The order in which the command blocks are arranged may be changed according to user input.

예를 들어, 가상의 로봇에 배치되는 명령어 블록은 포인트와 무관하게 가상의 로봇이 수행하는 동작일 수 있고, 가상의 로봇이 각각의 객체 또는 포인트를 인식하여 동작하도록 하는 가상의 센서장비를 이용하는 동작들을 포함할 수 있다.For example, the command block disposed in the virtual robot may be an operation performed by the virtual robot irrespective of the point, and the operation using the virtual sensor equipment for the virtual robot to recognize and operate each object or point. Can include them.

예를 들어, 가상의 로봇에 배치되는 명령어 블록은 가상의 로봇을 직진하도록 하는 명령어와, 장애물이 인식되는 경우 일단 정지하도록 하는 명령어를 포함할 수 있다.For example, the command block disposed in the virtual robot may include a command to advance the virtual robot and a command to stop once the obstacle is recognized.

상술한 단계 S109에서, 컴퓨팅 장치는 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령을 수행하는 제35단계(S135)를 수행한다.In the above-described step S109, the computing device performs a thirty-fifth step S135 of performing a command corresponding to the instruction block disposed in the virtual robot.

또한, 컴퓨팅 장치는 상기 하나 이상의 포인트에 도착하는 경우, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는 제36단계(S136)를 수행한다.In addition, when the computing device arrives at the one or more points, the computing device performs a 36 th step S136 of performing a command corresponding to the instruction block disposed at the arrived point.

예를 들어, 가상의 로봇은 가상의 로봇에 배치된 명령어 블록에 따라 기본적으로 직진을 수행하다가, 장애물이 인식되는 경우 일단 정지할 수 있다.For example, the virtual robot may basically go straight according to the command block disposed in the virtual robot, and may stop once the obstacle is recognized.

이후, 해당 장애물에 대응하는 포인트에 배치된 명령어 블록에 따라, 해당 장애물을 들어올리거나, 회피하는 동작을 수행할 수 있다.Thereafter, according to the instruction block disposed at the point corresponding to the obstacle, an operation of lifting or avoiding the obstacle may be performed.

또한, 컴퓨팅 장치는 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령과, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령이 충돌하는 경우, 동작을 정지하고 피드백을 표시하는 제37단계(S137)를 수행한다.In addition, when the command corresponding to the instruction block arranged in the virtual robot collides with the instruction corresponding to the instruction block arranged in the arrived point, the computing device stops the operation and displays the feedback (S137). ).

예를 들어, 가상의 로봇에 배치된 명령어 블록이, 장애물을 만나는 경우 장애물에 충돌하도록 하는 명령을 포함하고, 해당 장애물에 대응하는 포인트에 배치된 명령어 블록이, 장애물을 회피하도록 하는 명령이 포함되는 경우, 충돌이 발생한다. 이 경우, 오류를 방지하기 위해 컴퓨팅 장치는 가상의 로봇의 동작을 정지시키고, 피드백을 표시할 수 있다.For example, the instruction block disposed in the virtual robot includes an instruction to collide with an obstacle when it encounters an obstacle, and the instruction block arranged at a point corresponding to the obstacle includes an instruction to avoid the obstacle. If so, a crash occurs. In this case, in order to prevent an error, the computing device may stop the operation of the virtual robot and display the feedback.

또한, 실시 예에 따라 명령어 블록의 우선순위가 설정될 수 있다. 예를 들어, 가상의 로봇에 배치된 명령어 블록에 따른 명령과 각 포인트에 배치된 명령어 블록에 따른 명령이 충돌하는 경우, 가상의 로봇에 배치된 명령어 블록에 따른 명령이 우선하도록, 또는 그 반대가 되도록 설정될 수 있다.In addition, the priority of the instruction block may be set according to an embodiment. For example, if a command according to an instruction block arranged in a virtual robot collides with a command according to an instruction block arranged in each point, the instruction according to the instruction block arranged in the virtual robot takes precedence or vice versa. It can be set to.

또한, 명령의 종류에 따라 우선순위가 상이하게 설정될 수도 있으며(예를 들어, 장애물에 충돌하는 명령보다 회피하는 명령이 우선될 수 있음), 각 명령어 블록마다 우선순위가 설정되어 있을 수도 있다. 예를 들어, 각 명령어 블록에는 순차적으로 번호가 부여되어 있고, 서로 다른 명령어 블록이 충돌하게 되는 경우 더 높은 번호가 부여된 명령어 블록의 명령을 따르도록 할 수 있다.In addition, the priority may be set differently according to the type of the instruction (for example, the avoiding instruction may be given priority over the instruction colliding with the obstacle), and the priority may be set for each instruction block. For example, each instruction block may be sequentially numbered, and if different instruction blocks collide with each other, the instructions of the higher numbered instruction block may be followed.

일 실시 예에서, 단계 S137에 따라 가상의 로봇의 동작이 정지되고 피드백이 표시되는 경우, 사용자의 선택에 따라 충돌하는 명령어 블록들 중 하나가 선택되고, 선택된 명령어 블록에 따라 가상의 로봇이 제어될 수도 있다.In one embodiment, when the operation of the virtual robot is stopped and the feedback is displayed according to step S137, one of the conflicting command blocks is selected according to the user's selection, and the virtual robot is controlled according to the selected command block. It may be.

또한, 사용자는 가상의 로봇의 동작이 정지된 경우 디버깅을 수행하고, 명령어 블록의 배치를 변경할 수도 있다.In addition, the user may perform debugging when the operation of the virtual robot is stopped and change the arrangement of the command block.

도 9는 일 실시 예에 따른 컴퓨팅 장치의 구성도이다.9 is a block diagram of a computing device according to an embodiment.

프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.The processor 102 may include a connection passage (eg, a bus, etc.) that transmits and receives signals with one or more cores (not shown) and graphics processor (not shown) and / or other components. .

일 실시예에 따른 프로세서(102)는 메모리(104)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 8과 관련하여 설명된 방법을 수행한다.The processor 102 according to one embodiment executes one or more instructions stored in the memory 104 to perform the method described in connection with FIGS. 1-8.

예를 들어, 프로세서(102)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 코딩교육 콘텐츠를 획득하는 제1단계, 상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계, 상기 카메라로부터 촬영된 영상을 획득하는 제3단계, 상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭하는 제4단계, 상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계, 상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계, 상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계, 상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계, 상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계 및 상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계를 수행한다.For example, the processor 102 executes one or more instructions stored in a memory to acquire a coding education content; a second step of selecting one or more points included in the coding education content; A third step of acquiring an image, a fourth step of recognizing the photographed image and matching one or more objects and the one or more points included in the photographed image, the photographed image and the matched one or more points A fifth step of displaying, a sixth step of displaying a virtual robot on the photographed image, a seventh step of displaying one or more command blocks each including one or more commands for controlling the movement of the virtual robot, and Based on the user input for the displayed one or more instruction blocks, the one or more instruction blocks may be deleted. In an eighth step of disposing at points on the control panel, the virtual robot is controlled according to the order in which the one or more command blocks are arranged, wherein the virtual robot moves along the one or more points, and the command block is disposed at each point. A ninth step of performing a command corresponding to the second step and a tenth step of displaying the movement of the virtual robot according to the control result.

한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. Meanwhile, the processor 102 may include random access memory (RAM) and read-only memory (ROM) for temporarily and / or permanently storing a signal (or data) processed in the processor 102. , Not shown) may be further included. In addition, the processor 102 may be implemented in the form of a system on chip (SoC) including at least one of a graphic processor, a RAM, and a ROM.

메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 104 may store programs (one or more instructions) for processing and controlling the processor 102. Programs stored in the memory 104 may be divided into a plurality of modules according to functions.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, in a software module executed by hardware, or by a combination thereof. Software modules may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art.

본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.The components of the present invention may be implemented in a program (or an application) and stored in a medium to be executed in combination with a computer which is hardware. The components of the present invention may be implemented as software programming or software elements, and likewise, embodiments may include various algorithms implemented in combinations of data structures, processes, routines or other programming constructs, such as C, C ++. It may be implemented in a programming or scripting language such as Java, an assembler, or the like. The functional aspects may be implemented with an algorithm running on one or more processors.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. In the above, embodiments of the present invention have been described with reference to the accompanying drawings, but those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features. I can understand that. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.

100 : 컴퓨팅 장치
102 : 프로세서
104 : 메모리
100: computing device
102: processor
104: memory

Claims (1)

카메라를 포함하는 컴퓨팅 장치에 의하여 수행되는 방법으로서,
코딩교육 콘텐츠를 획득하는 제1단계;
상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계;
상기 카메라로부터 촬영된 영상을 획득하는 제3단계;
상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭하는 제4단계;
상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계;
상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계;
상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계;
상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계;
상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계; 및
상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계; 를 포함하고,
상기 제1단계는,
상기 코딩교육 콘텐츠에 포함된 미션을 획득하는 제11단계; 및
상기 미션을 표시하는 제12단계; 를 포함하고,
상기 제9단계는,
상기 제어 결과에 따른 상기 미션의 달성여부를 판단하는 제13단계; 및
상기 미션의 달성여부에 따른 피드백을 표시하는 제14단계; 를 포함하고,
상기 제13단계는,
상기 하나 이상의 객체와 상기 가상의 로봇 간의 인터렉션을 판단하는 제15단계; 및
상기 인터렉션에 기초하여 상기 하나 이상의 포인트 각각에서의 미션 달성여부를 판단하는 제16단계; 를 포함하고,
상기 제14단계는,
상기 하나 이상의 포인트 각각에서의 미션 달성여부에 따른 피드백을 표시하는, 제17단계; 를 포함하고,
상기 제15단계는,
상기 하나 이상의 객체와 상기 가상의 로봇 간의 하나 이상의 접점을 판단하는 제18단계;
상기 하나 이상의 접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제19단계; 및
상기 하나 이상의 접점의 위치, 움직임 및 상기 하나 이상의 접점 각각에 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제20단계; 를 포함하고,
상기 제20단계는,
상기 하나 이상의 접점에 포함된 제1접점을 제2접점 및 제3접점으로 분할하는 제21단계;
상기 제2접점 및 상기 제3접점의 움직임을 추적하는 제22단계;
상기 제2접점 및 상기 제3접점 간의 거리가 소정의 기준값 이상으로 멀어지는 경우, 상기 제2접점 및 상기 제3접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제23단계; 및
상기 제2접점 및 상기 제3접점의 위치, 움직임 및 상기 제2접점 및 상기 제3접점에 각각 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제24단계; 를 포함하고,
상기 제24단계는,
상기 제2접점 및 상기 제3접점 각각에 대응하는 상기 가상의 로봇의 부위와, 상기 제2 접점 및 상기 제3 접점의 위치 및 움직임에 기초하여 상기 가상의 로봇의 동작 및 변형을 판단하는 단계; 및
상기 제2접점 및 상기 제3접점 각각에 대응하는 상기 하나 이상의 객체의 부위와, 상기 제2 접점 및 상기 제3 접점의 위치 및 움직임에 기초하여 상기 하나 이상의 객체의 움직임 및 변형을 판단하는 단계; 를 포함하고,
상기 제11단계는,
상기 하나 이상의 객체의 종류를 판단하는 제25단계;
상기 촬영된 영상에 포함된 상기 하나 이상의 객체의 위치 및 종류에 기초하여 상기 가상의 로봇의 이동경로를 생성하는 제26단계;
상기 가상의 로봇이 상기 이동경로를 따라 이동하도록 하는 제1미션을 획득하는 제27단계; 및
상기 가상의 로봇이 상기 하나 이상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제2미션을 획득하는 제28단계; 를 포함하는, 가상의 로봇을 이용한 코딩 교육 제공 방법.
A method performed by a computing device comprising a camera,
Obtaining a coding education content;
Selecting at least one point included in the coding education content;
A third step of acquiring an image captured by the camera;
Recognizing the captured image and matching the at least one point with at least one object included in the captured image;
A fifth step of displaying the captured image and the matched one or more points;
Displaying a virtual robot on the captured image;
Displaying at least one instruction block each including at least one instruction for controlling movement of the virtual robot;
Placing the at least one instruction block at the at least one point based on user input to the displayed at least one instruction block;
Controlling the virtual robot according to the order in which the one or more instruction blocks are arranged, wherein the virtual robot moves along the one or more points and performs a command corresponding to the instruction block disposed at each point; Step 9; And
A tenth step of displaying a movement of the virtual robot according to the control result; Including,
The first step,
An eleventh step of obtaining a mission included in the coding education content; And
A twelfth step of displaying the mission; Including,
The ninth step,
Determining whether the mission is achieved according to the control result; And
Displaying a feedback according to whether the mission is accomplished; Including,
The thirteenth step,
Determining an interaction between the one or more objects and the virtual robot; And
Determining whether the mission is achieved at each of the one or more points based on the interaction; Including,
The fourteenth step,
Displaying a feedback according to whether the mission is achieved at each of the one or more points; Including,
The fifteenth step,
An eighteenth step of determining one or more contact points between the one or more objects and the virtual robot;
Determining a location of the at least one object and the virtual robot corresponding to each of the at least one contact point; And
Determining the interaction based on the position, the movement of the one or more contacts, and a portion corresponding to each of the one or more contacts; Including,
The 20th step,
Dividing a first contact included in the at least one contact into a second contact and a third contact;
A twenty-second step of tracking movement of the second contact point and the third contact point;
If the distance between the second contact point and the third contact point is greater than a predetermined reference value, determining a portion of the at least one object and the virtual robot corresponding to each of the second contact point and the third contact point; ; And
Determining an interaction based on a position, a movement of the second contact point and the third contact point, and a portion corresponding to the second contact point and the third contact point, respectively; Including,
The 24th step,
Determining an operation and deformation of the virtual robot based on a part of the virtual robot corresponding to each of the second contact point and the third contact point, and the position and movement of the second contact point and the third contact point; And
Determining movements and deformations of the one or more objects based on portions of the one or more objects corresponding to each of the second and third contacts, and positions and movements of the second and third contacts; Including,
The eleventh step,
Determining a type of the at least one object;
Generating a movement path of the virtual robot based on the position and type of the one or more objects included in the captured image;
Obtaining a first mission for allowing the virtual robot to move along the movement path; And
Obtaining a second mission for causing the virtual robot to perform a predetermined interaction with at least one of the one or more objects; Including, coding education providing method using a virtual robot.
KR1020190014005A 2019-02-01 2019-02-01 Method for providing coding training using virtual robot KR102007491B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190014005A KR102007491B1 (en) 2019-02-01 2019-02-01 Method for providing coding training using virtual robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190014005A KR102007491B1 (en) 2019-02-01 2019-02-01 Method for providing coding training using virtual robot

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071051A Division KR101947160B1 (en) 2018-06-20 2018-06-20 Coding education method using augmented reality

Publications (1)

Publication Number Publication Date
KR102007491B1 true KR102007491B1 (en) 2019-08-05

Family

ID=67615898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190014005A KR102007491B1 (en) 2019-02-01 2019-02-01 Method for providing coding training using virtual robot

Country Status (1)

Country Link
KR (1) KR102007491B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120130420A (en) * 2011-05-23 2012-12-03 전윤주 Programming block assembly, robot system operated by program using the same, and programming method thereof
KR20140010616A (en) * 2012-07-16 2014-01-27 한국전자통신연구원 Apparatus and method for processing manipulation of 3d virtual object
KR20180007199A (en) * 2016-07-12 2018-01-22 (주)새로운교육 Coding education system, application system and providing meyhod thereof
KR20180013487A (en) 2016-07-29 2018-02-07 이광재 ROBOT SYSTEM for SOFTWARE EDUCATION
KR20180037631A (en) * 2016-10-04 2018-04-13 (주)모션블루 Apparatus and mehtod for providng coding education using block

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120130420A (en) * 2011-05-23 2012-12-03 전윤주 Programming block assembly, robot system operated by program using the same, and programming method thereof
KR20140010616A (en) * 2012-07-16 2014-01-27 한국전자통신연구원 Apparatus and method for processing manipulation of 3d virtual object
KR20180007199A (en) * 2016-07-12 2018-01-22 (주)새로운교육 Coding education system, application system and providing meyhod thereof
KR20180013487A (en) 2016-07-29 2018-02-07 이광재 ROBOT SYSTEM for SOFTWARE EDUCATION
KR20180037631A (en) * 2016-10-04 2018-04-13 (주)모션블루 Apparatus and mehtod for providng coding education using block

Similar Documents

Publication Publication Date Title
Ong et al. Augmented reality-assisted robot programming system for industrial applications
US9744672B2 (en) Systems and methods for communicating robot intentions to human beings
Leutert et al. A spatial augmented reality system for intuitive display of robotic data
JP6940204B2 (en) Coding education method using augmented reality
CN113710432A (en) Method for determining a trajectory of a robot
US11969893B2 (en) Automated personalized feedback for interactive learning applications
CA2647435A1 (en) Intelligent interface device for grasping of an object by a manipulating robot and method of implementing this device
Westerberg et al. Virtual environment-based teleoperation of forestry machines: Designing future interaction methods
US20170075348A1 (en) System and method for mobile robot teleoperation
CN110147091A (en) Motion planning and robot control method, apparatus and robot
CN114728413A (en) Method and system for controlling graphical user interface of remote robot
KR102625014B1 (en) Aiding maneuvering of obscured objects
US20240001553A1 (en) Robotic arm control method, robot and it’s controller
KR20170024769A (en) Robot control apparatus
Mišeikis et al. Multi 3D camera mapping for predictive and reflexive robot manipulator trajectory estimation
KR102007491B1 (en) Method for providing coding training using virtual robot
KR102007493B1 (en) Method of providing learning content for coding
KR102007495B1 (en) Method for implementing educational contents using virtual robot
US11478932B2 (en) Handling assembly comprising a handling device for carrying out at least one work step, method, and computer program
CN112017488B (en) AR-based education robot system and learning method
Horiguchi et al. Naturalistic human-robot collaboration based upon mixed-initiative interactions in teleoperating environment
Kulakov et al. Information Technology for Interactive Robot Task Training Through Demonstration of Movement 1
KR20230122690A (en) Method for coding education using robot and coding block in virtual reality
KR20240011998A (en) System providing educational programming language content using augmented reality
KR20230138487A (en) Object-based robot control

Legal Events

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