KR101947160B1 - 증강현실을 이용한 코딩교육 방법 - Google Patents

증강현실을 이용한 코딩교육 방법 Download PDF

Info

Publication number
KR101947160B1
KR101947160B1 KR1020180071051A KR20180071051A KR101947160B1 KR 101947160 B1 KR101947160 B1 KR 101947160B1 KR 1020180071051 A KR1020180071051 A KR 1020180071051A KR 20180071051 A KR20180071051 A KR 20180071051A KR 101947160 B1 KR101947160 B1 KR 101947160B1
Authority
KR
South Korea
Prior art keywords
virtual robot
contact
mission
virtual
displaying
Prior art date
Application number
KR1020180071051A
Other languages
English (en)
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 KR1020180071051A priority Critical patent/KR101947160B1/ko
Application granted granted Critical
Publication of KR101947160B1 publication Critical patent/KR101947160B1/ko
Priority to PCT/KR2019/005793 priority patent/WO2019245166A1/ko
Priority to US16/616,448 priority patent/US11334325B2/en
Priority to JP2020508468A priority patent/JP6940204B2/ja
Priority to EP19752909.2A priority patent/EP3617986A4/en

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Manipulator (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

카메라를 포함하는 컴퓨팅 장치에 의하여 수행되는 방법으로서, 코딩교육 콘텐츠를 획득하는 제1단계, 상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계, 상기 카메라로부터 촬영된 영상을 획득하는 제3단계, 상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭하는 제4단계, 상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계, 상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계, 상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계, 상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계, 상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계 및 상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계를 포함하는, 증강현실을 이용한 코딩교육 방법이 개시된다.

Description

증강현실을 이용한 코딩교육 방법 {CODING EDUCATION METHOD USING AUGMENTED REALITY}
본 발명은 증강현실을 이용한 코딩교육 방법에 관한 것이다.
코딩교육에 대한 관심이 높아지면서, 초보자 또는 아동, 청소년을 대상으로 프로그래밍 언어를 직접 다루는 것이 아닌 블록 형태의 명령어 모음을 제공하고, 이를 배치함으로써 코딩학습이 가능하도록 하는 애플리케이션 및 서비스가 제공되고 있다. 또한, 코딩 결과를 시각적으로 보여주고, 흥미를 유도할 수 있도록 코딩에 따라 동작하는 로봇을 이용한 학습서비스가 제공되고 있다.
증강현실(Augmented Reality)은 현실세계에 가상 물체를 겹쳐 보여주는 기술이다. 현실세계에 실시간으로 부가정보를 갖는 가상세계를 합쳐 하나의 영상으로 보여주므로 혼합현실(Mixed Reality, MR)이라고도 한다.
공개특허공보 제10-2018-0013487호, 2018.02.07 공개
본 발명이 해결하고자 하는 과제는 증강현실을 이용한 코딩교육 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따라 카메라를 포함하는 컴퓨팅 장치에 의하여 수행되는 방법은, 코딩교육 콘텐츠를 획득하는 제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단계를 포함할 수 있다.
또한, 상기 제11단계는, 상기 하나 이상의 객체의 종류를 판단하는 제25단계, 상기 촬영된 영상에 포함된 상기 하나 이상의 객체의 위치 및 종류에 기초하여 상기 가상의 로봇의 이동경로를 생성하는 제26단계, 상기 가상의 로봇이 상기 이동경로를 따라 이동하도록 하는 제1미션을 획득하는 제27단계 및 상기 가상의 로봇이 상기 하나 이상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제2미션을 획득하는 제28단계를 포함할 수 있다.
또한, 상기 제11단계는, 상기 이동경로 상에 하나 이상의 가상의 객체를 생성 및 표시하는 제29단계, 상기 하나 이상의 가상의 객체의 종류를 결정하는 제30단계, 상기 하나 이상의 가상의 객체의 위치 및 종류에 기초하여 상기 이동경로를 업데이트하는 제31단계, 상기 가상의 로봇이 상기 업데이트된 이동경로를 따라 이동하도록 하는 제3미션을 획득하는 제32단계 및 상기 가상의 로봇이 상기 하나 이상의 가상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제4미션을 획득하는 제33단계를 포함할 수 있다.
또한, 상기 제8단계는, 상기 하나 이상의 명령어 블록 중 적어도 일부를 상기 가상의 로봇에 배치하는 제34단계를 더 포함하고, 상기 제9단계는, 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령을 수행하는 제35단계, 상기 하나 이상의 포인트에 도착하는 경우, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는 제36단계 및 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령과, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령이 충돌하는 경우, 동작을 정지하고 피드백을 표시하는 제37단계를 더 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
개시된 실시 예에 따르면, 증강현실을 이용하여 실제 로봇 없이도 가상의 로봇을 이용한 코딩교육을 제공할 수 있는 효과가 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시 예에 따른 증강현실을 이용한 코딩교육 방법을 도시한 흐름도이다.
도 2는 일 실시 예에 따른 코딩교육 콘텐츠 획득방법 및 이에 대응하는 가상의 로봇 제어방법을 구체적으로 설명하기 위한 도면이다.
도 3은 일 실시 예에 따라 미션의 달성여부를 판단하는 방법을 구체적으로 도시한 흐름도이다.
도 4는 일 실시 예에 따라 인터렉션을 판단하는 방법을 설명하는 흐름도이다.
도 5는 일 실시 예에 따라 접점 및 인터렉션을 판단하는 방법을 구체적으로 설명하는 흐름도이다.
도 6은 미션을 획득하는 일 예를 도시한 흐름도이다.
도 7은 가상의 객체에 기반하여 미션을 획득하는 일 예를 설명하는 흐름도이다.
도 8은 일 실시 예에 따라 명령어 블록을 배치하는 방법을 설명하는 흐름도이다.
도 9는 일 실시 예에 따른 컴퓨팅 장치의 구성도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서 설명되는 각 단계들과 함께 기재된 번호들(예: 제1단계, 제2단계 등)은 각 단계들을 구분하기 위한 것이고, 각 단계의 실행순서나 선후관계를 특정하기 위한 것은 아니다.
본 명세서에서 "로봇" 또는 "가상의 로봇"은 제어에 따른 명령을 수행하는 하드웨어 장치 또는 소프트웨어적으로 구성된 가상의 장치를 의미하는 것이고, 특정 종류를 한정하기 위한 것은 아니다.
본 명세서에서, 컴퓨팅 장치는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨팅 장치는 스마트폰, 태블릿 PC, 컴퓨터 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1 내지 도 8과 관련하여 설명되는 각 단계들은 컴퓨팅 장치에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
이하에서 개시되는 실시 예에서, 컴퓨팅 장치는 카메라를 포함하며, 카메라를 이용하여 주변 영상을 촬영하고, 촬영된 영상에 가상의 로봇을 결합한 증강현실 영상을 표시한다.
컴퓨팅 장치는 사용자 입력에 따라 가상의 로봇을 제어하기 위한 명령어를 획득하고, 획득된 명령어에 따라 가상의 로봇을 제어하며, 제어 결과를 표시한다.
가상의 로봇은 제어에 따라 촬영된 영상에 포함된 객체들 및 증강현실 영상에 포함된 가상의 객체들과 인터렉션하며 동작하고, 컴퓨팅 장치는 인터렉션 결과에 따른 피드백을 제공한다.
도 1은 일 실시 예에 따른 증강현실을 이용한 코딩교육 방법을 도시한 흐름도이다.
단계 S101에서, 컴퓨팅 장치는 코딩교육 콘텐츠를 획득하는 제1 단계를 수행한다.
일 실시 예에서, 컴퓨팅 장치는 네트워크를 통하여 서버로부터 코딩교육 콘텐츠를 획득한다. 다른 실시 예에서, 컴퓨팅 장치는 메모리에 저장된 코딩교육 콘텐츠를 획득할 수 있으며, 또한 소정의 규칙에 의거하여 코딩교육 콘텐츠를 생성할 수도 있다.
단계 S102에서, 컴퓨팅 장치는 상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계를 수행한다.
일 실시 예에서, 코딩교육 콘텐츠는 가상의 로봇으로 하여금 하나 이상의 실제 또는 가상의 객체와 인터렉션하며 이동하도록 하는 명령어를 작성하기 위한 것일 수 있다.
예를 들어, 코딩교육 콘텐츠는 가상의 로봇으로 하여금 하나 이상의 장애물을 피해 특정 경로로 이동하도록 하는 명령어를 작성하기 위한 것일 수 있다. 또한, 코딩교육 콘텐츠는 가상의 로봇으로 하여금 이동경로 상에서 특정 객체를 잡고 운반하도록 하는 명령어를 작성하기 위한 것일 수 있다.
따라서, 코딩교육 콘텐츠에 포함된 하나 이상의 포인트는, 가상의 로봇과 인터렉션할 대상이 되는 하나 이상의 객체를 의미한다. 예를 들어, 하나 이상의 객체는 가상의 로봇이 피해야 할 장애물이거나, 가상의 로봇이 운반해야 할 물건 등을 포함할 수 있다.
단계 S103에서, 컴퓨팅 장치는 상기 카메라로부터 촬영된 영상을 획득하는 제3단계를 수행한다.
단계 S104에서, 컴퓨팅 장치는 상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭한다.
예를 들어, 하나 이상의 객체는 촬영된 영상에 포함된 특정 물건을 의미할 수도 있고, 실시 예에 따라 벽이나 바닥의 특정 위치가 컴퓨팅 장치의 선택에 따라 객체로서 인식될 수도 있다.
컴퓨팅 장치는 촬영된 영상에 포함된 하나 이상의 객체에 대하여, 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 각각 매칭시킨다. 예를 들어, 촬영된 영상에 포함된 특정 물건이, 코딩교육 콘텐츠에 포함된 장애물로서 매칭되고, 가상의 로봇이 해당 물건을 피해가도록 명령어를 작성하게 될 수 있다.
마찬가지로, 촬영된 영상에 포함된 특정 물건에 대해서, 가상의 로봇이 해당 물건을 들어 이동하도록 명령어를 작성하게 될 수 있다. 이 경우, 가상의 로봇이 실제의 물건을 들고 이동할 수는 없으므로, 컴퓨팅 장치는 가상의 로봇의 움직임 및 가상의 로봇과 실제의 물건(구체적으로는, 컴퓨팅 장치의 화면에 표시되는, 촬영된 실제의 물건)과의 위치관계에 근거하여 실제의 물건을 가상의 로봇이 잡은 것으로 판단하고, 가상의 로봇이 움직임에 따라 해당 물건이 가상의 로봇과 함께 이동하는 것으로 판단할 수 있다. 실시 예에 따라서, 컴퓨팅 장치는 가상의 로봇에 의하여 이동되는 실제의 물건을 화면에서 제거하고, 실제의 물건 또는 실제의 물건과 매칭된 포인트에 대응하는 가상의 물건이 가상의 로봇에 의하여 이동되는 영상을 표시할 수 있으나, 이에 제한되는 것은 아니다.
컴퓨팅 장치가 가상의 로봇과 실제의 물건 간의 위치관계를 판단하는 방법에 대해서는 구체적으로 후술한다.
단계 S105에서, 컴퓨팅 장치는 상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계를 수행한다.
예를 들어, 컴퓨팅 장치는 촬영된 영상을 표시하되, 촬영된 영상에서 인식된 하나 이상의 객체가 촬영된 위치에 코딩교육 콘텐츠에 포함된 포인트(또는 포인트에 대응하는 가상의 객체)를 표시한다. 각각의 객체와 매칭된 포인트는 실제 객체의 위치에서 객체를 대체하여 표시될 수도 있고, 객체와 오버랩되어 표시될 수도 있다.
단계 S106에서, 컴퓨팅 장치는 상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계를 수행한다. 가상의 로봇의 크기 및 형태는 제한되지 않는다. 실시 예에 따라서, 가상의 로봇은 가상의 객체와 인터렉션하기 위한 도구(예를 들어, 가상의 객체를 잡고 이동하기 위한 집게 등)를 포함할 수 있다.
단계 S107에서, 컴퓨팅 장치는 상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계를 수행할 수 있다.
예를 들어, 각각의 명령어 블록은 가상의 로봇을 특정 방향으로 이동하도록 하는 명령어(예를 들어, 전진, 후진, 좌회전, 우회전 등)를 포함할 수 있다.
또한, 각각의 명령어 블록은 가상의 로봇과 객체를 인터렉션하도록 하는 명령어(예를 들어, 객체를 잡는 동작, 객체와 충돌하거나 객체를 피하는 동작, 객체를 미는 동작 등)를 포함할 수 있다.
또한, 각각의 명령어 블록은 특정 조건에 기초하여 수행되는 명령어(예를 들어, 객체가 인식되면 정지하거나, 회피하거나, 객체를 잡도록 하는 등)를 포함할 수 있다.
단계 S108에서, 컴퓨팅 장치는 상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계를 수행한다.
예를 들어, 컴퓨팅 장치는 터치 스크린 장치를 통해 사용자로부터 표시된 하나 이상의 명령어 블록 각각을 선택 및 드래그 앤 드롭하는 터치 입력을 수신하고, 수신된 사용자 입력에 대응하는 위치로 각각의 명령어 블록을 이동시켜 표시할 수 있다. 각각의 명령어 블록은 사용자의 선택에 따라 각각의 포인트로 이동하여 배치될 수 있으며, 각각의 포인트는 상술한 바와 같이 코딩교육 콘텐츠에 포함된 것으로, 가상의 로봇이 이동하는 중에 방향전환이나 특정 명령의 수행이 필요한 포인트들을 포함하는 의미로서 이해될 수 있다.
예를 들어, 각각의 포인트는 가상의 로봇이 피해야 할 장애물이나 지나가야 할 통로, 열고 통과해야 할 문, 방향을 전환해야 할 벽 등을 의미할 수 있으며, 각각의 포인트는 카메라로 촬영된 영상에 포함된 하나 이상의 객체에 매칭된다. 예를 들어, 각각의 포인트는 카메라로 촬영된 영상에 포함된 실제의 벽, 바닥의 특정 위치, 바닥에 위치하는 물건 등에 대응하여 매칭될 수 있으며, 사용자의 입력에 따라 명령어 블록이 각각의 포인트에 배치될 수 있다. 하나의 포인트에 복수의 명령어 블록이 배치되는 경우, 배치된 순서에 따라 배치될 수 있고, 순서는 사용자 입력에 따라 변경될 수 있다.
단계 S109에서, 컴퓨팅 장치는 상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계를 수행한다.
예를 들어, 가상의 로봇은 코딩교육 콘텐츠에 포함된 포인트를 따라 이동하고, 각각의 포인트에 도착하는 경우 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행한다.
예를 들어, 가상의 로봇은 장애물이 배치된 포인트에 도착하고, 해당 포인트에 우회전하여 직진하라는 명령과, 좌회전하여 직진하라는 명령을 포함하는 명령어 블록이 순서대로 배치되어 있는 경우, 우회전하여 직진한 후 좌회전하여 직진함으로써 장애물을 피해 전진할 수 있다.
다른 예로, 가상의 로봇은 특정 포인트에서 포인트에 배치된 객체를 잡으라는 명령과, 직진하라는 명령을 포함하는 명령어 블록이 순서대로 배치되어 있는 경우, 포인트에 배치된 객체를 잡은 후 직진할 수 있다.
또 다른 예로, 가상의 로봇은 직진할 수 있는 통로에 대응하는 포인트에서, 해당 통로에 진입하지 말고 우회전하여 직진하라는 명령어 블록이 배치되어 있는 경우, 해당 통로로 진입하지 않고 우회전하여 직진할 수 있다.
단계 S110에서, 컴퓨팅 장치는 상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계를 수행한다. 즉, 컴퓨팅 장치는 상술한 제어에 따른 가상의 로봇의 움직임과 인터렉션을 표시한다.
도 2는 일 실시 예에 따른 코딩교육 콘텐츠 획득방법 및 이에 대응하는 가상의 로봇 제어방법을 구체적으로 설명하기 위한 도면이다.
상술한 단계 S101에서, 컴퓨팅 장치는 상기 코딩교육 콘텐츠에 포함된 미션을 획득하는 제11단계(S111)를 수행한다.
예를 들어, 코딩교육 콘텐츠에 포함된 미션은 가상의 로봇을 특정 위치에서 다른 위치로 이동하도록 하는 미션, 특정 경로를 따라 가상의 로봇을 이동하도록 하는 미션, 가상의 로봇이 특정 객체를 옮기도록 하는 미션 등을 포함할 수 있으나, 이에 제한되지 않는다.
또한, 컴퓨팅 장치는 상기 미션을 표시하는 제12단계(S112)를 수행한다.
상술한 단계 S109에서, 컴퓨팅 장치는 상기 제어 결과에 따른 상기 미션의 달성여부를 판단하는 제13단계(S113)를 수행한다.
일 실시 예에서, 각각의 미션은 미션 내용에 따른 하나 이상의 포인트를 포함하고, 컴퓨팅 장치는 각각의 포인트를 촬영된 영상과 매칭시킨 후, 가상의 로봇이 촬영된 영상 내에서 증강현실을 통해 움직이는 동안, 가상의 로봇과 각각의 포인트(즉, 각 포인트와 매칭된 촬영된 영상의 부분들) 간의 인터렉션을 판단, 미션의 달성여부를 판단할 수 있다.
또한, 컴퓨팅 장치는 상기 미션의 달성여부에 따른 피드백을 표시하는 제14단계(S114)를 수행한다.
예를 들어, 컴퓨팅 장치는 가상의 로봇의 동작이 완료된 후 미션의 달성여부를 판단하고, 이에 기초하여 미션의 달성여부 또는 미션이 실패한 경우 어디에서 실패하였고, 무엇이 문제인가를 포함하는 피드백을 생성 및 제공할 수 있다.
또한, 컴퓨팅 장치는 가상의 로봇의 움직임을 실시간으로 판단하고, 각각의 동작에 대하여 미션에 따르고 있는지, 또는 미션으로부터 벗어난 것인지를 판단하여 피드백을 제공할 수 있다.
일 실시 예에서, 컴퓨팅 장치는 각각의 포인트에 배치된 명령어 블록들의 배치에 기초하여 미션의 성공여부를 미리 판단할 수도 있으며, 이 경우 명령어 블록들의 배치를 변경할 것을 요청하는 피드백을 제공할 수 있다.
도 3은 일 실시 예에 따라 미션의 달성여부를 판단하는 방법을 구체적으로 도시한 흐름도이다.
상술한 단계 S113에서, 컴퓨팅 장치는 상기 하나 이상의 객체와 상기 가상의 로봇 간의 인터렉션을 판단하는 제15단계(S115)를 수행한다.
예를 들어, 컴퓨팅 장치는 촬영된 영상에 포함된 객체 또는 이에 매칭된 포인트에 대응하는 가상의 이미지와 가상의 로봇 간의 위치관계에 기초하여 인터렉션을 판단할 수 있다.
일 실시 예에서, 가상의 로봇에는 초음파 센서가 포함될 수 있다. 또한, 가상의 로봇에는 초음파 센서에서 감지되는 거리에 따른 명령어가 배치될 수 있다. 이 경우, 컴퓨팅 장치는 객체와 가상의 로봇 간의 거리 및 각도를 판단하고, 이로부터 초음파 센서의 가상의 출력을 산출한다. 컴퓨팅 장치는 산출된 가상의 출력에 근거하여 가상의 로봇을 제어할 수 있다. 또한, 컴퓨팅 장치는 하나 이상의 객체와 가상의 로봇 간의 접점에 근거하여 인터렉션을 판단할 수 있으며, 구체적인 방법에 대해서는 후술한다.
또한, 컴퓨팅 장치는 상기 인터렉션에 기초하여 상기 하나 이상의 포인트 각각에서의 미션 달성여부를 판단하는 제16단계(S116)를 수행한다.
예를 들어, 코딩교육 콘텐츠에 따르면 특정 포인트에 대하여 가상의 로봇으로 하여금 해당 포인트와 충돌하지 않고 피해가도록 하는 미션이 할당되어 있을 수 있고, 이에 대응하여 컴퓨팅 장치는 해당 포인트에 도달하기 전에 가상의 로봇의 방향을 전환하여 이를 피해가도록 하는 명령어 블록들을 배치하였을 수 있다. 이 경우 가상의 로봇은 컴퓨팅 장치의 제어에 의하여 해당 포인트와 충돌하지 않고 피해가게 될 것이고, 컴퓨팅 장치는 해당 포인트의 미션이 달성된 것으로 판단할 수 있다.
또한, 상술한 단계 S114에서, 컴퓨팅 장치는 상기 하나 이상의 포인트 각각에서의 미션 달성여부에 따른 피드백을 표시하는, 제17단계(S117)를 수행한다.
예를 들어, 컴퓨팅 장치는 각각의 포인트에서의 미션이 달성된 경우, 해당 포인트의 색 등을 달리 표현함으로써 미션의 달성여부에 대한 피드백을 제공할 수 있으나, 이에 제한되는 것은 아니다.
도 4는 일 실시 예에 따라 인터렉션을 판단하는 방법을 설명하는 흐름도이다.
상술한 단계 S115에서, 컴퓨팅 장치는 상기 하나 이상의 객체와 상기 가상의 로봇 간의 하나 이상의 접점을 판단하는 제18단계(S118)를 수행한다.
예를 들어, 컴퓨팅 장치는 증강현실 영상을 분석하여 하나 이상의 객체와 가상의 로봇 간의 접점을 판단한다. 예를 들어, 접점은 증강현실 영상에서 객체와 가상의 로봇이 맞닿거나 중첩된 부분을 의미할 수 있다.
또한, 컴퓨팅 장치는 상기 하나 이상의 접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제19단계(S119)를 수행한다.
예를 들어, 컴퓨팅 장치는 하나 이상의 접점 각각에 대하여, 해당 접점이 객체와 가상의 로봇의 어떤 부위에 해당하는가를 판단할 수 있다. 예를 들어, 객체가 가상의 로봇에 의하여 운반되어야 하는 박스인 경우, 접점은 박스의 일 부분과, 가상의 로봇에서 박스를 운반하는 데 이용되는 집게의 일부에 대응할 수 있다.
또한, 컴퓨팅 장치는 상기 하나 이상의 접점의 위치, 움직임 및 상기 하나 이상의 접점 각각에 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제20단계(S120)를 수행한다.
예를 들어, 제1접점과 제2접점이 판단된 경우, 제1접점이 운반대상 박스의 일 지점에, 제2접점이 다른 일 지점에 대응할 수 있다. 마찬가지로, 제1접점이 가상의 로봇에 포함된 집게의 한쪽 부분에, 제2접점이 집게의 다른 부분에 대응할 수 있다. 이 경우, 컴퓨팅 장치는 가상의 로봇이 집게를 이용하여 운반대상 박스를 잡았다는 것을 판단할 수 있다. 또한, 이 상태에서 제1접점과 제2접점의 위치가 이동하는 경우, 컴퓨팅 장치는 접점의 이동방향에 따라 가상의 로봇이 운반대상 박스를 들어올리거나, 들고 이동한다고 판단할 수 있다.
도 5는 일 실시 예에 따라 접점 및 인터렉션을 판단하는 방법을 구체적으로 설명하는 흐름도이다.
상술한 단계 S120에서, 컴퓨팅 장치는 상기 하나 이상의 접점에 포함된 제1접점을 제2접점 및 제3접점으로 분할하는 제21단계(S121)를 수행한다.
예를 들어, 하나의 접점이 판단된 경우에도, 컴퓨팅 장치는 해당 접점을 예비적으로 2개 혹은 그 이상의 복수의 접점으로 분할하되, 각각의 접점이 같은 위치에 있는 것으로 판단할 수 있다.
또한, 컴퓨팅 장치는 상기 제2접점 및 상기 제3접점의 움직임을 추적하는 제22단계(S122)를 수행한다.
또한, 컴퓨팅 장치는 상기 제2접점 및 상기 제3접점 간의 거리가 소정의 기준값 이상으로 멀어지는 경우, 상기 제2접점 및 상기 제3접점 각각에 대응하는 상기 하나 이상의 객체 및 상기 가상의 로봇의 부위를 판단하는 제23단계(S123)를 수행한다.
일 실시 예에서, 접점에 대응하는 객체 또는 가상의 로봇의 부위가 분리되어 서로 멀어질 수 있다. 예를 들어, 객체가 2 이상으로 분리될 수 있다. 객체가 분리될 수 있는 블록을 쌓은 형태였거나, 가상의 로봇과의 인터렉션에 의하여 절단되는 등의 실시 예가 있을 수 있다. 또한, 가상의 로봇의 집게가 닫힌 상태에서 벌어진 상태로 전환될 수 있다. 이 때 집게의 첨단이 접점에 대응하였던 경우, 집게가 벌어짐에 따라 접점이 2 이상으로 분리될 수 있다.
또한, 컴퓨팅 장치는 상기 제2접점 및 상기 제3접점의 위치, 움직임 및 상기 제2접점 및 상기 제3접점에 각각 대응하는 부위에 기초하여 상기 인터렉션을 판단하는 제24단계(S124)를 수행한다.
컴퓨팅 장치는 접점이 2 이상으로 분리되는 경우, 분리된 각각의 접점에 대응하는 객체와 가상의 로봇의 부위를 다시 판단하여, 객체와 가상의 로봇 간의 인터렉션을 판단할 수 있다.
일 실시 예에서, 객체와 가상의 로봇이 접촉하였다가 멀어질 수 있다. 이 경우 객체 측 접점과 가상의 로봇 측 접점으로 기존 접점이 분리될 수 있으며, 컴퓨팅 장치는 각각의 접점에 대응하는 대상체 및 부위를 다시 판단하여, 객체와 가상의 로봇 간의 인터렉션을 판단할 수 있다.
즉, 컴퓨팅 장치는 접점의 생성을 판단하되, 이후 접점이 사라지거나, 2 이상으로 분리되는 동작을 모두 추적함으로써, 가상의 로봇과 객체 간의 인터렉션을 판단할 수 있다.
도 6은 미션을 획득하는 일 예를 도시한 흐름도이다.
상술한 단계 S111에서, 컴퓨팅 장치는 상기 하나 이상의 객체의 종류를 판단하는 제25단계(S125)를 수행한다.
예를 들어, 컴퓨팅 장치는 각각의 객체가 가상의 로봇에 의하여 운반되어야 하는 객체인지, 가상의 로봇이 피해야 하는 객체인지, 가상의 로봇이 지나갈 수 있는 객체인지 등을 판단할 수 있다.
또한, 컴퓨팅 장치는 상기 촬영된 영상에 포함된 상기 하나 이상의 객체의 위치 및 종류에 기초하여 상기 가상의 로봇의 이동경로를 생성하는 제26단계(S126)를 수행한다.
예를 들어, 컴퓨팅 장치는 각각의 객체의 종류를 판단한 결과에 기초하여 가상의 로봇이 이동하여야 하는 경로를 생성할 수 있으며, 해당 경로는 가상의 로봇이 이동할 수 있는 최적경로 또는 경로의 범위 등을 포함할 수 있으나, 이에 제한되는 것은 아니다.
또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 이동경로를 따라 이동하도록 하는 제1미션을 획득하는 제27단계(S127)를 수행한다.
이동경로의 범위는 난이도에 따라 서로 다르게 설정될 수 있으며, 가상의 로봇이 소정 범위 내로 이동하도록 하는 미션이 획득될 수도 있으며, 가상의 로봇의 이동경로를 위상적으로 해석하여 동일범위의 이동경로로 판단되는 경우 미션을 달성한 것으로 판단하는 미션이 획득될 수도 있다.
또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 하나 이상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제2미션을 획득하는 제28단계(S128)를 수행한다.
예를 들어, 미션은 가상의 로봇으로 하여금 특정 객체를 피해가거나, 충돌하거나, 운반하도록 하는 미션을 포함할 수 있으나, 이에 제한되는 것은 아니다.
도 7은 가상의 객체에 기반하여 미션을 획득하는 일 예를 설명하는 흐름도이다.
상술한 단계 S111에서, 컴퓨팅 장치는 상기 이동경로 상에 하나 이상의 가상의 객체를 생성 및 표시하는 제29단계(S129)를 수행한다.
예를 들어, 가상의 객체는 촬영된 영상에 포함되지 않은 객체로서, 촬영된 영상의 일 지점에 증강현실을 이용하여 표시될 수 있다.
또한, 컴퓨팅 장치는 상기 하나 이상의 가상의 객체의 종류를 결정하는 제30단계(S130)를 수행한다.
예를 들어, 가상의 객체의 종류는 가상의 로봇에 의하여 운반되어야 하는 객체, 가상의 로봇이 피해야 하는 객체, 가상의 로봇이 지나갈 수 있는 객체 등을 포함할 수 있으며, 이에 제한되는 것은 아니다.
또한, 컴퓨팅 장치는 상기 하나 이상의 가상의 객체의 위치 및 종류에 기초하여 상기 이동경로를 업데이트하는 제31단계(S131)를 수행한다.
예를 들어, 추가된 가상의 객체가 가상의 로봇이 피해야 할 장애물인 경우, 이를 피해서 이동할 수 있도록 이동경로가 업데이트될 수 있다.
또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 업데이트된 이동경로를 따라 이동하도록 하는 제3미션을 획득하는 제32단계(S132)를 수행한다.
또한, 컴퓨팅 장치는 상기 가상의 로봇이 상기 하나 이상의 가상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제4미션을 획득하는 제33단계(S133)를 수행한다.
예를 들어, 제4미션은 가상의 로봇이 가상의 객체를 운반하거나, 복수의 가상의 객체를 이용하여 특정 모양을 만들거나, 블록과 같이 복수의 가상의 객체를 쌓아올리도록 하는 미션 등을 포함할 수 있다.
도 8은 일 실시 예에 따라 명령어 블록을 배치하는 방법을 설명하는 흐름도이다.
상술한 단계 S108에서, 컴퓨팅 장치는 상기 하나 이상의 명령어 블록 중 적어도 일부를 상기 가상의 로봇에 배치하는 제34단계(S134)를 수행한다.
일 실시 예에서, 컴퓨팅 장치는 사용자 입력에 기초하여 명령어 블록 중 적어도 일부를 코딩교육 콘텐츠로부터 획득된 포인트에 배치할 뿐 아니라, 가상의 로봇에도 배치할 수 있다. 즉, 사용자로부터 명령어 블록에 대한 드래그 앤 드롭 입력을 수신하고, 그에 따라 가상의 로봇이 배치된 위치에 명령어 블록을 배치하고, 가상의 로봇에 복수의 명령어 블록이 배치되는 경우, 배치된 순서에 따라 명령어 블록을 정렬할 수 있다. 명령어 블록이 배치되는 순서는 사용자 입력에 따라 변경될 수 있다.
예를 들어, 가상의 로봇에 배치되는 명령어 블록은 포인트와 무관하게 가상의 로봇이 수행하는 동작일 수 있고, 가상의 로봇이 각각의 객체 또는 포인트를 인식하여 동작하도록 하는 가상의 센서장비를 이용하는 동작들을 포함할 수 있다.
예를 들어, 가상의 로봇에 배치되는 명령어 블록은 가상의 로봇을 직진하도록 하는 명령어와, 장애물이 인식되는 경우 일단 정지하도록 하는 명령어를 포함할 수 있다.
상술한 단계 S109에서, 컴퓨팅 장치는 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령을 수행하는 제35단계(S135)를 수행한다.
또한, 컴퓨팅 장치는 상기 하나 이상의 포인트에 도착하는 경우, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는 제36단계(S136)를 수행한다.
예를 들어, 가상의 로봇은 가상의 로봇에 배치된 명령어 블록에 따라 기본적으로 직진을 수행하다가, 장애물이 인식되는 경우 일단 정지할 수 있다.
이후, 해당 장애물에 대응하는 포인트에 배치된 명령어 블록에 따라, 해당 장애물을 들어올리거나, 회피하는 동작을 수행할 수 있다.
또한, 컴퓨팅 장치는 상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령과, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령이 충돌하는 경우, 동작을 정지하고 피드백을 표시하는 제37단계(S137)를 수행한다.
예를 들어, 가상의 로봇에 배치된 명령어 블록이, 장애물을 만나는 경우 장애물에 충돌하도록 하는 명령을 포함하고, 해당 장애물에 대응하는 포인트에 배치된 명령어 블록이, 장애물을 회피하도록 하는 명령이 포함되는 경우, 충돌이 발생한다. 이 경우, 오류를 방지하기 위해 컴퓨팅 장치는 가상의 로봇의 동작을 정지시키고, 피드백을 표시할 수 있다.
또한, 실시 예에 따라 명령어 블록의 우선순위가 설정될 수 있다. 예를 들어, 가상의 로봇에 배치된 명령어 블록에 따른 명령과 각 포인트에 배치된 명령어 블록에 따른 명령이 충돌하는 경우, 가상의 로봇에 배치된 명령어 블록에 따른 명령이 우선하도록, 또는 그 반대가 되도록 설정될 수 있다.
또한, 명령의 종류에 따라 우선순위가 상이하게 설정될 수도 있으며(예를 들어, 장애물에 충돌하는 명령보다 회피하는 명령이 우선될 수 있음), 각 명령어 블록마다 우선순위가 설정되어 있을 수도 있다. 예를 들어, 각 명령어 블록에는 순차적으로 번호가 부여되어 있고, 서로 다른 명령어 블록이 충돌하게 되는 경우 더 높은 번호가 부여된 명령어 블록의 명령을 따르도록 할 수 있다.
일 실시 예에서, 단계 S137에 따라 가상의 로봇의 동작이 정지되고 피드백이 표시되는 경우, 사용자의 선택에 따라 충돌하는 명령어 블록들 중 하나가 선택되고, 선택된 명령어 블록에 따라 가상의 로봇이 제어될 수도 있다.
또한, 사용자는 가상의 로봇의 동작이 정지된 경우 디버깅을 수행하고, 명령어 블록의 배치를 변경할 수도 있다.
도 9는 일 실시 예에 따른 컴퓨팅 장치의 구성도이다.
프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.
일 실시예에 따른 프로세서(102)는 메모리(104)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 8과 관련하여 설명된 방법을 수행한다.
예를 들어, 프로세서(102)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 코딩교육 콘텐츠를 획득하는 제1단계, 상기 코딩교육 콘텐츠에 포함된 하나 이상의 포인트를 선택하는 제2단계, 상기 카메라로부터 촬영된 영상을 획득하는 제3단계, 상기 촬영된 영상을 인식하고, 상기 촬영된 영상에 포함된 하나 이상의 객체와 상기 하나 이상의 포인트를 매칭하는 제4단계, 상기 촬영된 영상 및 상기 매칭된 하나 이상의 포인트를 표시하는 제5단계, 상기 촬영된 영상에 가상의 로봇을 표시하는 제6단계, 상기 가상의 로봇의 움직임을 제어하기 위한 하나 이상의 명령어를 각각 포함하는 하나 이상의 명령어 블록을 표시하는 제7단계, 상기 표시된 하나 이상의 명령어 블록에 대한 사용자 입력에 기초하여 상기 하나 이상의 명령어 블록을 상기 하나 이상의 포인트에 배치하는 제8단계, 상기 하나 이상의 명령어 블록이 배치된 순서에 따라 상기 가상의 로봇을 제어하되, 상기 가상의 로봇은 상기 하나 이상의 포인트를 따라 이동하고, 각각의 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는, 제9단계 및 상기 제어 결과에 따른 상기 가상의 로봇의 움직임을 표시하는 제10단계를 수행한다.
한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 컴퓨팅 장치
102 : 프로세서
104 : 메모리

Claims (8)

  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 접점의 위치 및 움직임에 기초하여 상기 하나 이상의 객체의 움직임 및 변형을 판단하는 단계; 를 포함하는,
    증강현실을 이용한 코딩교육 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제11단계는,
    상기 하나 이상의 객체의 종류를 판단하는 제25단계;
    상기 촬영된 영상에 포함된 상기 하나 이상의 객체의 위치 및 종류에 기초하여 상기 가상의 로봇의 이동경로를 생성하는 제26단계;
    상기 가상의 로봇이 상기 이동경로를 따라 이동하도록 하는 제1미션을 획득하는 제27단계; 및
    상기 가상의 로봇이 상기 하나 이상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제2미션을 획득하는 제28단계; 를 포함하는,
    증강현실을 이용한 코딩교육 방법.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 제11단계는,
    상기 이동경로 상에 하나 이상의 가상의 객체를 생성 및 표시하는 제29단계;
    상기 하나 이상의 가상의 객체의 종류를 결정하는 제30단계;
    상기 하나 이상의 가상의 객체의 위치 및 종류에 기초하여 상기 이동경로를 업데이트하는 제31단계;
    상기 가상의 로봇이 상기 업데이트된 이동경로를 따라 이동하도록 하는 제3미션을 획득하는 제32단계; 및
    상기 가상의 로봇이 상기 하나 이상의 가상의 객체 중 적어도 하나와 소정의 인터렉션을 수행하도록 하는 제4미션을 획득하는 제33단계; 를 포함하는,
    증강현실을 이용한 코딩교육 방법.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제8단계는,
    상기 하나 이상의 명령어 블록 중 적어도 일부를 상기 가상의 로봇에 배치하는 제34단계; 를 더 포함하고,
    상기 제9단계는,
    상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령을 수행하는 제35단계;
    상기 하나 이상의 포인트에 도착하는 경우, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령을 수행하는 제36단계; 및
    상기 가상의 로봇에 배치된 명령어 블록에 대응하는 명령과, 상기 도착한 포인트에 배치된 명령어 블록에 대응하는 명령이 충돌하는 경우, 동작을 정지하고 피드백을 표시하는 제37단계; 를 더 포함하는,
    증강현실을 이용한 코딩교육 방법.
KR1020180071051A 2018-06-20 2018-06-20 증강현실을 이용한 코딩교육 방법 KR101947160B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180071051A KR101947160B1 (ko) 2018-06-20 2018-06-20 증강현실을 이용한 코딩교육 방법
PCT/KR2019/005793 WO2019245166A1 (ko) 2018-06-20 2019-05-14 증강현실을 이용한 코딩교육 방법
US16/616,448 US11334325B2 (en) 2018-06-20 2019-05-14 Coding training method using augmented reality
JP2020508468A JP6940204B2 (ja) 2018-06-20 2019-05-14 拡張現実を利用したコーディング教育方法
EP19752909.2A EP3617986A4 (en) 2018-06-20 2019-05-14 CODING TEACHING PROCESS USING AUGMENTED REALITY

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180071051A KR101947160B1 (ko) 2018-06-20 2018-06-20 증강현실을 이용한 코딩교육 방법

Related Child Applications (3)

Application Number Title Priority Date Filing Date
KR1020190013124A Division KR102007495B1 (ko) 2019-01-31 2019-01-31 가상 로봇을 활용한 교육 콘텐츠 실행 방법
KR1020190013123A Division KR102007493B1 (ko) 2019-01-31 2019-01-31 코딩용 학습 콘텐츠 제공 방법
KR1020190014005A Division KR102007491B1 (ko) 2019-02-01 2019-02-01 가상의 로봇을 이용한 코딩 교육 제공 방법

Publications (1)

Publication Number Publication Date
KR101947160B1 true KR101947160B1 (ko) 2019-02-12

Family

ID=65369199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071051A KR101947160B1 (ko) 2018-06-20 2018-06-20 증강현실을 이용한 코딩교육 방법

Country Status (5)

Country Link
US (1) US11334325B2 (ko)
EP (1) EP3617986A4 (ko)
JP (1) JP6940204B2 (ko)
KR (1) KR101947160B1 (ko)
WO (1) WO2019245166A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102170978B1 (ko) * 2020-02-26 2020-10-28 류경희 음성 명령 및 증강 현실을 이용한 코딩 교육 장치
KR102392584B1 (ko) * 2021-09-10 2022-04-29 (주)코딩앤플레이 역사 기반 코딩 교육 시스템의 제어 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115205416B (zh) * 2022-08-12 2023-06-09 广州鼎甲计算机科技有限公司 图像生成方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120130420A (ko) * 2011-05-23 2012-12-03 전윤주 프로그래밍 블록 조립체, 이를 이용한 프로그램에 의해 구동되는 로봇 시스템 및 그 프로그래밍 방법
KR20140010616A (ko) * 2012-07-16 2014-01-27 한국전자통신연구원 3d 가상 객체에 대한 조작 처리 장치 및 방법
KR20180007199A (ko) * 2016-07-12 2018-01-22 (주)새로운교육 코딩교육 시스템, 애플리케이션 시스템 및 그 제공방법
KR20180013487A (ko) 2016-07-29 2018-02-07 이광재 소프트웨어 교육 로봇 시스템
KR20180037631A (ko) * 2016-10-04 2018-04-13 (주)모션블루 블록을 이용한 코딩 교육 서비스 제공 장치 및 방법
KR20180055207A (ko) * 2016-11-16 2018-05-25 전석주 프로그래밍 교육을 위한 전자블록 시스템

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330539A (ja) * 2002-05-13 2003-11-21 Sanyo Electric Co Ltd 自律移動ロボットおよびその自律移動方法
KR20090066253A (ko) * 2007-12-18 2009-06-23 (주)시뮬레이션연구소 파이썬 코드 자동생성을 통한 로봇 시뮬레이션 시스템
US9842192B2 (en) * 2008-07-11 2017-12-12 Intouch Technologies, Inc. Tele-presence robot system with multi-cast features
JP5373703B2 (ja) * 2010-06-14 2013-12-18 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、及びプログラム
US9024844B2 (en) * 2012-01-25 2015-05-05 Microsoft Technology Licensing, Llc Recognition of image on external display
KR20140033297A (ko) * 2012-09-12 2014-03-18 주식회사 호유컴즈 스마트 로봇 교육 서비스 플랫폼 시스템
KR20140095414A (ko) * 2013-01-24 2014-08-01 (주) 애니펜 애니메이션의 모션 시퀀스를 생성하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN106471441A (zh) * 2014-08-25 2017-03-01 X开发有限责任公司 用于显示机器人设备动作的虚拟表示的增强现实的方法和系统
JP6723738B2 (ja) * 2015-04-03 2020-07-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10114618B2 (en) * 2015-06-08 2018-10-30 Cisco Technology, Inc. Autonomous mobile sensor movement path simulation with an integrated developer environment
HK1204748A2 (en) * 2015-08-20 2015-11-27 Smart Kiddo Education Ltd An education system using connected toys
HK1216278A (zh) * 2016-04-27 2016-10-28 Kam Ming Lau 種使用虛擬機器人的教育系統
JP6801333B2 (ja) * 2016-09-27 2020-12-16 株式会社デンソーウェーブ ロボット用の表示システム
JP7138314B2 (ja) * 2017-03-15 2022-09-16 株式会社Icon 学習用玩具
US11257268B2 (en) * 2018-05-01 2022-02-22 Magic Leap, Inc. Avatar animation using Markov decision process policies

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120130420A (ko) * 2011-05-23 2012-12-03 전윤주 프로그래밍 블록 조립체, 이를 이용한 프로그램에 의해 구동되는 로봇 시스템 및 그 프로그래밍 방법
KR20140010616A (ko) * 2012-07-16 2014-01-27 한국전자통신연구원 3d 가상 객체에 대한 조작 처리 장치 및 방법
KR20180007199A (ko) * 2016-07-12 2018-01-22 (주)새로운교육 코딩교육 시스템, 애플리케이션 시스템 및 그 제공방법
KR20180013487A (ko) 2016-07-29 2018-02-07 이광재 소프트웨어 교육 로봇 시스템
KR20180037631A (ko) * 2016-10-04 2018-04-13 (주)모션블루 블록을 이용한 코딩 교육 서비스 제공 장치 및 방법
KR20180055207A (ko) * 2016-11-16 2018-05-25 전석주 프로그래밍 교육을 위한 전자블록 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102170978B1 (ko) * 2020-02-26 2020-10-28 류경희 음성 명령 및 증강 현실을 이용한 코딩 교육 장치
KR102392584B1 (ko) * 2021-09-10 2022-04-29 (주)코딩앤플레이 역사 기반 코딩 교육 시스템의 제어 방법
KR102481956B1 (ko) * 2021-09-10 2022-12-28 (주)코딩앤플레이 유물 위치에 따른 역사 교육 연계형 코딩 시스템의 제어 방법
WO2023038173A1 (ko) * 2021-09-10 2023-03-16 (주)코딩앤플레이 역사 기반 코딩 교육 시스템의 제어 방법

Also Published As

Publication number Publication date
EP3617986A4 (en) 2021-01-20
US11334325B2 (en) 2022-05-17
WO2019245166A1 (ko) 2019-12-26
EP3617986A1 (en) 2020-03-04
JP2020531964A (ja) 2020-11-05
US20210334077A1 (en) 2021-10-28
JP6940204B2 (ja) 2021-09-22

Similar Documents

Publication Publication Date Title
KR101947160B1 (ko) 증강현실을 이용한 코딩교육 방법
CN110640730B (zh) 生成用于机器人场景的三维模型的方法和系统
EP3392002A1 (en) Information processing apparatus, measuring apparatus, system, interference determination method, and article manufacturing method
US20210046644A1 (en) Automated personalized feedback for interactive learning applications
CN114080583B (zh) 视觉教导和重复移动操纵系统
JP2021526464A (ja) オンデマンド遠隔操作を備えた自律ロボット
CN109773776B (zh) 把持方法、把持系统以及存储介质
JP2008000884A (ja) ロボットの相互作用のためのビジュアル・プロト−オブジェクトの評価
US11447195B2 (en) Leg swing trajectories
US11478932B2 (en) Handling assembly comprising a handling device for carrying out at least one work step, method, and computer program
Tipary et al. Planning and optimization of robotic pick-and-place operations in highly constrained industrial environments
KR102007491B1 (ko) 가상의 로봇을 이용한 코딩 교육 제공 방법
KR102007493B1 (ko) 코딩용 학습 콘텐츠 제공 방법
KR102007495B1 (ko) 가상 로봇을 활용한 교육 콘텐츠 실행 방법
KR20230122690A (ko) 가상 현실에서 로봇 및 코딩 블럭을 이용한 코딩 교육 방법
KR20240011998A (ko) 증강현실을 이용한 에듀케이션 프로그래밍 랭귀지(epl) 콘텐츠를 제공하는 시스템
Pedrosa et al. A skill-based architecture for pick and place manipulation tasks
Mortimer et al. Searching Baxter's URDF robot joint and link tree for active serial chains
Zamani et al. Learning spatial representation for safe human-robot collaboration in joint manual tasks
Deguchi et al. Enhanced Robot Navigation with Human Geometric Instruction
US12001216B2 (en) Carpet detection method, movement control method, and mobile machine using the same
US20230234230A1 (en) Robot with smart trajectory recording
JP2024031218A (ja) ロボット制御システム、ロボット制御方法、およびロボット制御プログラム
JP2022187584A (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
Halodová¹ et al. Check for updates Adaptive Image Processing Methods for Outdoor Autonomous Vehicles

Legal Events

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