KR20220150715A - 로봇시스템 및 그에 대한 스마트 코딩방법 - Google Patents

로봇시스템 및 그에 대한 스마트 코딩방법 Download PDF

Info

Publication number
KR20220150715A
KR20220150715A KR1020210058031A KR20210058031A KR20220150715A KR 20220150715 A KR20220150715 A KR 20220150715A KR 1020210058031 A KR1020210058031 A KR 1020210058031A KR 20210058031 A KR20210058031 A KR 20210058031A KR 20220150715 A KR20220150715 A KR 20220150715A
Authority
KR
South Korea
Prior art keywords
robot
code
program
code blocks
program codes
Prior art date
Application number
KR1020210058031A
Other languages
English (en)
Other versions
KR102525276B1 (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 KR1020210058031A priority Critical patent/KR102525276B1/ko
Publication of KR20220150715A publication Critical patent/KR20220150715A/ko
Application granted granted Critical
Publication of KR102525276B1 publication Critical patent/KR102525276B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/02Manipulators mounted on wheels or on carriages travelling along a guideway
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Toys (AREA)

Abstract

일 실시예는, 디스플레이패널을 포함하고, 상기 디스플레이패널에 복수의 코드블럭들을 표시하며, 각각의 코드블럭에 프로그램코드를 매칭시키고, 상기 디스플레이패널에 대한 사용자조작을 인식하여 상기 코드블럭들의 표시 위치를 이동시키는 디스플레이장치; 가시성이 낮은 미세패턴과 가시성이 높은 코드표식이 인쇄되는 복수의 코드카드들; 및 하측으로 바퀴들이 배치되고, 바닥면을 지향하도록 카메라가 배치되며, 상기 카메라를 통해 인식되는 복수의 미세패턴들을 프로그램코드들로 매칭시키고 상기 프로그램코드들을 조합하여 프로그램을 생성하거나 상기 디스플레이장치에서의 상기 코드블럭들의 배치에 따라 상기 프로그램코드들을 조합하여 상기 프로그램을 생성하고, 상기 프로그램의 실행에 따라 상기 바퀴들을 조작하여 몸체를 이동시키는 로봇을 포함하는 로봇시스템을 제공한다.

Description

로봇시스템 및 그에 대한 스마트 코딩방법{ROBOT SYSTEM AND SMART CODING METHOD THEREFOR}
본 실시예는 로봇시스템에 관한 것이다.
로봇은 명령에 의해 기계적인 동작을 수행할 수 있다. 그 명령이 로봇의 자체적인 계산결과에 의해 창출되는 것을 인공지능 로봇이라고 부르기도 한다. 대부분의 로봇은 인공지능 로봇의 수준에 도달하지 못했으며, 그 명령이 인간에 의해 직접적으로 혹은 간접적으로 전달되어야한다.
로봇에게 명령을 전달하는 방법은 다양한데, 로봇이 음성을 이해할 수 있는 경우, 인간은 음성을 통해 로봇에게 명령을 전달할 수 있다. 로봇이 음성을 이해하지 못하는 경우, 명령은 단말장치와 로봇의 통신을 통해 전달되는데, 예를 들어, 인간은 컴퓨터를 통해 명령을 입력하고, 컴퓨터와 로봇의 통신을 통해 그 명령을 로봇으로 전달할 수 있다.
인간은 단말장치로 명령을 입력시키기 위해 여러가지 사용자조작수단을 사용한다. 터치패널이 대표적인 사용자조작수단이다. 단말장치에 터치패널이 포함되어 있는 경우, 인간은 터치패널에 사용자조작을 가할 수 있다. 그리고, 단말장치는 이러한 사용자조작을 인식하고 그에 대응되는 명령을 생성할 수 있다. 사용자조작수단의 다른 예는, 키보드이다. 인간은 키보드에 사용자조작을 가할 수 있고, 단말장치는 키보드에 대한 사용자조작을 인식하고 그에 대응되는 명령을 생성할 수 있다.
한편, 로봇이 단일 동작이 아닌 연속적인 복합 동작을 수행하게 하기 위해 인간은 복수의 명령을 조합하여 프로그램을 만들고 이러한 프로그램을 실행시켜 로봇을 제어할 수 있다. 여기서, 명령은 프로그램코드에 대응될 수 있는데, 인간은 단말장치를 통해 복수의 프로그램코드들을 입력시키고 단말장치는 이러한 프로그램코드들을 조합하여 프로그램을 생성할 수 있다. 그리고, 이러한 프로그램의 실행에 따라 로봇이 연속적인 복합 동작을 수행할 수 있다.
프로그램코드도 전술한 것과 같은 단말장치의 사용자조작수단에 의해 입력될 수 있는데, 이러한 사용자조작수단은 직관성이 높지 않고 고도의 숙련된 지식을 요하기 때문에 저숙련자-예를 들어, 어린이-에게는 적합하지 않았다. 예를 들어, 어린이가 키보드에 대한 조작을 통해 C, 파이썬(Python)과 같은 프로그램언어를 다루는 것은 현실적으로 어려움이 있었다.
이러한 배경에서, 본 실시예의 목적은, 일 측면에서, 저숙련자가 프로그램을 생성할 수 있는 간단한 방법을 제시하는 것이다. 다른 측면에서, 본 실시예의 목적은, 저숙련자가 프로그래밍에 대한 개념을 익히고 흥미를 가질 수 있도록 하는 학습수단을 제시하는 것이다. 또 다른 측면에서, 본 실시예의 목적은, 저숙련자에게 친화적인 로봇 제어 인터페이스를 제공하는 것이다. 또 다른 측면에서, 본 실시예의 목적은, 로봇을 활용하여 다양하고 흥미로운 활동을 수행할 수 있는 방법을 제시하는 것이다.
전술한 목적을 달성하기 위하여, 일 실시예는, 디스플레이패널을 포함하고, 상기 디스플레이패널에 복수의 코드블럭들을 표시하며, 각각의 코드블럭에 프로그램코드를 매칭시키고, 상기 디스플레이패널에 대한 사용자조작을 인식하여 상기 코드블럭들의 표시 위치를 이동시키는 디스플레이장치; 가시성이 낮은 미세패턴과 가시성이 높은 코드표식이 인쇄되는 복수의 코드카드들; 및 하측으로 바퀴들이 배치되고, 바닥면을 지향하도록 카메라가 배치되며, 상기 카메라를 통해 인식되는 복수의 미세패턴들을 프로그램코드들로 매칭시키고 상기 프로그램코드들을 조합하여 프로그램을 생성하거나 상기 디스플레이장치에서의 상기 코드블럭들의 배치에 따라 상기 프로그램코드들을 조합하여 상기 프로그램을 생성하고, 상기 프로그램의 실행에 따라 상기 바퀴들을 조작하여 몸체를 이동시키는 로봇을 포함하는 로봇시스템을 제공한다.
상기 로봇은, 상기 카메라를 통해, 책에 인쇄되어 있는 상기 미세패턴을 인식하고, 상기 책에 인쇄되어 있는 상기 미세패턴에 대응되는 콘텐츠를 스피커를 통해 독출시킬 수 있다.
상기 로봇의 상기 몸체는 자동차형상으로 형성되고, 상기 몸체의 후면에 적어도 하나의 버튼이 배치되며, 상기 로봇은 상기 적어도 하나의 버튼에 대한 조작을 인식하여 상기 로봇의 기능 중 일부를 제어할 수 있다.
상기 적어도 하나의 버튼은 각각 조명장치를 내장하고, 상기 로봇은, 상기 프로그램코드들 중 일 프로그램코드에 따라 상기 조명장치의 온오프를 제어할 수 있다.
상기 로봇의 상기 몸체의 전면에 전조등이 배치되고, 상기 로봇은, 상기 프로그램코드들 중 다른 일 프로그램코드에 따라 상기 전조등의 온오프를 제어할 수 있다.
상기 디스플레이장치는, 상기 로봇과의 통신을 통해 상기 프로그램코드들 혹은 상기 프로그램에 대응되는 프로그램정보를 수신하고, 상기 프로그램정보에 따라 상기 프로그램코드들에 대응되는 상기 코드블럭들을 상기 디스플레이패널에 표시할 수 있다.
상기 디스플레이패널에 표시되는 화면의 제1윈도우에 다수의 예시코드블럭들이 표시되고, 드래그조작에 따라 상기 예시코드블럭들 중 일부가 상기 화면의 제2윈도우에 이동되면서 코드블럭으로 지정되고, 상기 제2윈도우에 표시되는 상기 코드블럭들로 상기 프로그램코드들이 생성될 수 있다.
상기 코드블럭들의 배치 위치에 따라 각 코드블럭에 대응되는 프로그램코드의 실행 순서가 결정될 수 있다.
인식되는 상기 복수의 미세패턴들의 순서에 따라 각 미세패턴에 대응되는 프로그램코드의 실행 순서가 결정될 수 있다.
다른 실시예는, 디스플레이패널의 화면의 제1윈도우에 다수의 예시코드블럭들을 표시하는 단계; 드래그조작을 인식하여 상기 다수의 예시코드블럭들 중 일부 예시코드블럭들을 상기 화면의 제2윈도우로 이동시켜 표시하는 단계; 상기 제2윈도우로 이동되는 상기 일부 예시코드블럭들을 코드블럭들로 인식하고, 상기 코드블럭들에 프로그램코드들을 매칭시키는 단계; 상기 코드블럭들의 배치에 따라 상기 프로그램코드들의 실행순서를 결정하면서 상기 프로그램코드들을 조합하여 프로그램을 생성하는 단계; 및 상기 프로그램을 실행시키면서 로봇을 조작하는 단계를 포함하는 코딩방법을 제공한다.
상기 로봇의 몸체 하측으로 바퀴들이 배치되고, 바닥면을 지향하도록 상기 몸체의 일측으로 카메라가 배치될 수 있다.
상기 코딩방법은 복수의 코드카드들이 상기 카메라에 의해 촬영되고, 상기 코드카드들에 인쇄된 미세패턴들이 상기 프로그램코드들로 매칭되고, 상기 프로그램코드들을 조합하여 상기 프로그램을 생성하는 단계를 더 포함할 수 있다.
상기 로봇의 상기 몸체는 자동차형상으로 형성되고, 상기 몸체의 후면에 적어도 하나의 버튼이 배치되며, 상기 코딩방법은 상기 적어도 하나의 버튼에 대한 조작을 인식하여 상기 로봇의 기능 중 일부를 제어하는 단계를 더 포함할 수 있다.
상기 적어도 하나의 버튼은 각각 조명장치를 내장하고, 상기 코딩방법은 상기 프로그램코드들 중 일 프로그램코드에 따라 상기 조명장치의 온오프를 제어하는 단계를 더 포함할 수 있다.
상기 코딩방법은 상기 로봇으로부터 다른 프로그램코드들 혹은 다른 프로그램을 수신하는 단계; 및 상기 다른 프로그램코드들 혹은 상기 다른 프로그램에 포함되는 상기 다른 프로그램코드들을 상기 제2윈도우에 표시하는 단계를 더 포함할 수 있다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 어린이와 같은 저숙련자도 프로그램을 간단한 방법으로 생성할 수 있게 된다. 그리고, 본 실시예에 의하면, 어린이와 같은 저숙련자가 프로그래밍에 대한 개념을 익히고 흥미를 가질 수 있도록 하는 학습수단을 제공할 수 있고, 저숙련자에게 친화적인 로봇 제어 인터페이스를 통해 저숙련자가 재미를 가지고 손쉽게 로봇을 제어할 수 있게 된다. 그리고, 본 실시예에 의하면, 모든 사람들이 로봇을 활용하여 다양하고 흥미로운 활동을 수행할 수 있게 된다.
도 1은 일 실시예에 따른 로봇시스템의 구성도이다.
도 2는 일 실시예에 따른 로봇의 좌측면도이다.
도 3은 일 실시예에 따른 로봇의 하측면도이다.
도 4는 일 실시예에 따른 로봇의 후면도이다.
도 5는 일 실시예에 따른 로봇의 전면도이다.
도 6은 일 실시예에 따른 로봇의 구성도이다.
도 7은 일 실시예에 따른 코드카드의 예시들이다.
도 8은 일 실시예에 따른 디스플레이장치의 화면 구성도이다.
도 9는 일 실시예에 따른 주행판의 제1예시 도면이다.
도 10은 일 실시예에 따른 주행판의 제2예시 도면이다.
도 11은 카드코딩을 수행하는 로봇시스템의 일 예시 구성도이다.
도 12는 코드카드에 의한 로봇시스템의 코딩 및 동작방법의 흐름도이다.
도 13은 스마트코딩을 수행하는 로봇시스템의 일 예시 구성도이다.
도 14는 스마트코딩을 수행하는 디스플레이장치의 화면 예시도이다.
도 15는 일 실시예에 따른 스마트 코딩방법의 흐름도이다.
도 16은 RC카모드를 수행하는 로봇시스템의 일 예시 구성도이다.
도 17은 일 실시예에 따른 RC카모드 운행제어방법의 흐름도이다.
도 18은 라인트래킹모드를 수행하는 로봇시스템의 일 예시 구성도이다.
도 19는 영상보기모드를 수행하는 로봇시스템의 일 예시 구성도이다.
도 20은 일 실시예에 따른 라인트래킹 제어방법의 흐름도이다.
도 21은 이모션북마크모드를 수행하는 로봇시스템의 제어방법의 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 일 실시예에 따른 로봇시스템의 구성도이다.
도 1을 참조하면, 로봇시스템(100)은 로봇(110), 코드카드(120), 디스플레이장치(130) 및 주행판(140) 등을 포함할 수 있다.
로봇(110)은 프로그램코드에 의한 명령에 따라 제어될 수 있다. 로봇(110)은 다양한 동작장치를 포함할 수 있는데, 예를 들어, 바퀴들을 포함할 수 있고, 내장스피커를 포함할 수 있고, 조명장치를 포함할 수 있고, 통신장치를 포함할 수 있다. 프로그램코드에 의한 명령에 따라 로봇(110)은 이러한 동작장치들을 제어할 수 있다. 이외에도 로봇(110)은 메모리, 프로세서 등의 전자장치를 포함하고 있으면서 프로그램코드에 의한 명령에 따라 전자장치들을 제어할 수 있다.
로봇(110)은 다양한 형상을 가질 수 있고, 예를 들어, 로봇(110)은 외관이 자동차형상을 가질 수 있다. 로봇(110)에는 사용자조작을 인식할 수 있는 여러가지 입력수단이 부착될 수 있는데, 이러한 입력수단은 자동차의 외관 부품과 같은 형상을 가질 수 있다. 예를 들어, 로봇(110)의 외측면에는 버튼들이 배치될 수 있는데, 이러한 버튼들 중 일부는 자동차의 후미등의 위치에 배치될 수 있고, 자동차의 문손잡이 위치에 배치될 수 있다. 후미등의 위치에 배치되는 버튼에는 조명장치가 내장되어 있어서 외관적으로는 후미등과 같은 형태를 가지고 또한 후미등처럼 방향/정지 등을 나타내도록 동작할 수 있다.
로봇(110)에는 이동장치가 배치될 수 있다. 이동장치는 예를 들어, 바퀴들일 수 있다. 로봇(110)은 이러한 바퀴들을 제어하여 몸체를 이동시킬 수 있다. 바퀴들은 4개가 배치될 수 있고, 2개만 배치될 수도 있다.
한편, 로봇(110)은 카메라를 포함할 수 있다. 여기서, 카메라는 비가시성의 미세패턴을 촬영하는 장치일 수 있다. 로봇(110)은 카메라를 이용하여 미세패턴을 촬영하고 미세패턴에 대응되는 코드에 따라 특정 기능을 수행할 수 있다.
미세패턴은 도트의 형태를 가질 수 있다. 예를 들어, 사람의 눈으로 구분할 수 없는 크기의 영역에 도트가 일정한 패턴에 따라 배치될 수 있는데, 이러한 패턴을 미세패턴이라고 부를 수 있다. 미세패턴은 예를 들어, 도트의 배치에 따라 다양한 형태를 가질 수 있는데, 로봇(110)은 각각의 미세패턴 형태를 코드에 대응시켜 이해할 수 있다. 예를 들어, 로봇(110)은 제1형태를 가지는 제1미세패턴을 제1코드에 대응시키고, 제2형태를 가지는 제2미세패턴을 제2코드에 대응시킬 수 있다. 이러한 방법으로 로봇(110)은 16비트에 해당되는 65536개의 서로 다른 미세패턴들을 65536개의 코드에 대응시킬 수 있다.
인쇄매체에 이러한 미세패턴이 인쇄되어 있는 경우, 로봇(110)은 카메라를 이용하여 인쇄매체를 촬영하고 미세패턴을 인식할 수 있다. 그리고, 로봇(110)은 미세패턴에 대응되는 코드를 확인하고, 해당 코드에 따라 특정 기능을 수행할 수 있다. 예를 들어, 인쇄매체가 책이라고 해 보자. 책에는 문자들이 가시성을 가지는 크기로 인쇄되어 있고, 가시성이 낮은 미세패턴이 함께 인쇄되어 있을 수 있다. 로봇(110)은 카메라를 이용하여 책에 인쇄되어 있는 비가시성의 미세패턴을 인식하고 미세패턴에 대응되는 코드를 확인할 수 있다. 이때, 로봇(110)에는 코드에 대응되는 콘텐츠파일이 저장되어 있을 수 있는데, 로봇(110)이 코드를 확인하면 해당 코드에 대응되는 콘텐츠파일을 읽어들여 출력시킬 수 있다. 콘텐츠파일이 해당 책에 가시성을 가지도록 인쇄된 문자들을 독음한 파일이라면, 사용자는 로봇(110)을 이용하여 책에 인쇄된 문자들의 독음파일을 손쉽게 재생시킬 수 있다.
로봇(110)이 미세패턴을 인식할 수 있는 카메라를 이용하여 인쇄매체에 인쇄되어 있는 내용들을 재생시키는 이러한 기능을 로봇(110)의 제1기능이라고 해 보자. 이하에서는 이러한 제1기능 이외의 다른 기능들이 어떻게 제1기능으로부터 도출되어 혹은 제1기능과 결합되어 수행되는지 설명한다.
로봇(110)은 바퀴들과 같은 이동장치를 포함하고 있기 때문에, 명령을 통해 몸체의 이동이 제어될 수 있다. 몸체의 이동을 포함하는 명령은 다양한 형태로 로봇(110)에게 전달될 수 있는데, 그 중 하나의 방법이 로봇(110)의 제1기능을 위해 부착되어 있는 카메라를 이용하는 방법이다.
로봇(110)은 카메라를 이용하여 미세패턴을 촬영하고 미세패턴에 대응되는 코드에 따라 명령을 확인하고 몸체의 이동 혹은 다른 동작을 수행할 수 있다. 이하에서는 설명의 편의를 위해 로봇(110)의 동작을 제어하기 위한 이러한 코드를 프로그램코드라고 호칭한다. 여기서, 동작은 몸체의 이동만을 나타내는 것은 아니며, 로봇(110)의 내부 계산, 로봇(110)의 통신 등 로봇(110)이 수행할 수 있는 모든 기능을 포함할 수 있다.
코드카드(120)에 프로그램코드에 대응되는 미세패턴이 인쇄될 수 있다.
로봇시스템(100)은 다수의 코드카드들(120)을 포함할 수 있다. 그리고, 각각의 코드카드(120)에는 미세패턴이 인쇄될 수 있다. 코드카드(120)의 한쪽면에는 하나의 미세패턴이 인쇄될 수 있다. 그리고, 다른쪽면에는 다른 하나의 미세패턴이 인쇄될 수 있다. 실시예에 따라서는 코드카드(120)의 한쪽면을 영역을 나누고 복수의 서로 다른 미세패턴을 인쇄할 수 있다.
코드카드(120)의 면에는 가시적으로 프로그램코드가 나타내는 로봇(110)의 동작이 표시될 수 있다. 예를 들어, 코드카드(120)에 인쇄된 미세패턴이 로봇(110)의 우회전을 지시하는 프로그램코드에 대응되는 경우, 해당 코드카드(120)의 면에는 우회전을 나타내는 표식이 인쇄될 수 있다. 이러한 표식을 코드표식이라고 부를 수 있다. 코드표식은 해당 프로그램코드에 의한 로봇(110)의 동작을 나타내는 표식일 수 있다.
코드카드(120)는 사각판상의 카드형상을 가질 수 있다. 이러한 형상에 따라 코드카드(120)에는 일정한 넓이를 가지는 면이 양쪽으로 형성될 수 있고, 두께는 상대적으로 얇을 수 있다.
코드카드(120)는 로봇(110)의 카메라에 의해 촬영되면서 그 프로그램코드가 로봇(110)에 의해 읽혀질 수 있는데, 이때, 사용자는 로봇(110)을 들고 코드카드(120)에 접근하여 프로그램코드를 읽을 수도 있으나 바닥면 상에 배치된 로봇(110)의 하측으로 코드카드(120)를 밀어 넣어 프로그램코드를 읽을 수도 있다.
로봇(110)에서 카메라는 바닥면을 지향하도록 배치될 수 있는데, 이때, 카메라의 외관과 바닥면 사이에는 일정한 간극이 존재할 수 있다. 코드카드(120)는 이러한 간극 사이에 삽입될 수 있고, 로봇(110)은 간극으로 삽입된 코드카드(120)를 촬영하여 프로그램코드를 읽어들일 수 있다.
로봇(110)은 하나의 코드카드(120)를 통해 하나의 프로그램코드를 입력받고 입력받은 프로그램코드에 따라 내부 기능을 동작시킬 수 있고, 또한, 복수의 코드카드(120)를 통해 복수의 프로그램코드들을 입력받고 복수의 프로그래코드들을 순차적으로 실행시킬 수 있다.
복수의 프로그램코드들로 형성되는 것을 프로그램이라고 부를 수 있다. 로봇(110)은 복수의 프로그램코드들을 조합하여 프로그램을 생성하고 프로그램의 실행에 따라 내부 기능을 동작시킬 수 있다. 복수의 프로그램코드들을 이용하여 하나의 프로그램을 생성하는 과정은 일종의 프로그램 코딩이라고 볼 수 있는데, 어린이와 같은 저숙련자는 이러한 과정을 통해 프로그램 코딩을 손쉽게 배울 수 있게 된다.
코드카드(120)를 이용한 이러한 프로그램 코딩을 로봇(110)의 제2기능이라고 부르고, 별칭으로는 카드코딩이라고 부를 수 있다.
로봇시스템(100)은 디스플레이장치(130)를 더 포함할 수 있는데, 디스플레이장치(130)는 사용자에게 추가적인 입력수단과 출력수단을 제공할 수 있다.
디스플레이장치(130)는 다른 기능이 더 결합된 장치일 수 있는데, 예를 들어, 전화통화가 가능한 통신단말-예를 들어, 스마트폰-일 수 있고, 태블릿컴퓨터일 수 있다.
디스플레이장치(130)는 디스플레이패널을 포함하고 있고, 통신장치를 포함할 수 있다. 디스플레이장치(130)는 디스플레이패널을 통해 사용자에게 인터페이스를 제공해 줄 수 있고, 통신장치를 통해 로봇(110)과 정보를 송수신할 수 있다.
사용자는 디스플레이장치(130)에 대한 조작을 통해 프로그램코드들을 조합하여 프로그램을 생성할 수 있다. 그리고, 디스플레이장치(130)는 프로그램에 대응되는 프로그램정보를 로봇(110)으로 송신해서 로봇(110)이 프로그램에 따라 동작을 수행하게 할 수 있다. 로봇(110)이 디스플레이장치(130)와 통신하여 프로그램정보를 송수신하고 프로그램정보에 따라 내부 기능을 수행하는 것을 제3기능이라고 부르고, 별칭으로는 스마트 코딩이라고 부를 수 있다.
디스플레이장치(130)는 프로그램을 위한 수단이 될 수도 있고, 그 자체로 하나의 사용자조작수단이 될 수 있다.
디스플레이장치(130)는 디스플레이패널을 포함할 수 있고, 디스플레이패널에는 터치패널이 결합되어 있을 수 있다. 그리고, 디스플레이장치(130)는 터치패널에 대한 사용자조작을 인식할 수 있는데, 이때, 디스플레이장치(130)가 디스플레이패널에 조작기를 표시하고, 조작기에 대한 사용자조작을 인식하여 로봇(110)의 기능을 조작할 수 있다.
예를 들어, 디스플레이장치(130)는 디스플레이패널의 화면에 조이스틱이나 조그셔틀과 같은 조작기를 표시할 수 있다. 그리고, 디스플레이장치(130)는 조작기에 대한 사용자조작-드래그 등-을 인식하고, 사용자조작에 대응되는 명령을 로봇(110)으로 송신하여 로봇(110)을 바로 조작할 수 있다.
로봇(110)이 디스플레이장치(130)로부터 사용자조작에 대응되는 명령을 수신하고 이에 따라 내부 기능을 동작시키는 것을 제4기능이라고 부르고, 별칭으로는 RC카 모드라고 부를 수 있다.
한편, 로봇(110)은 주행판(140) 상에서 주행할 수 있다. 로봇(110)은 특정한 정보가 없는 일반 바닥면에서 주행할 수 있으나, 특정한 정보가 더 있는 주행판(140) 상에서 주행하면서 추가적인 기능을 더 수행할 수 있다.
주행판(140)은 상측으로 주행면을 가질 수 있으며, 주행면에는 특정한 정보가 특정한 방식으로 부여되어 있을 수 있다. 그리고, 로봇(110)은 주행면에 부여되어 있는 특정한 정보를 인식하고 특정한 정보에 따라 특정 기능을 수행할 수 있다.
주행판(140)의 주행면에는 라인이 표시되어 있을 수 있다. 라인은 일정한 두께를 가지고 일정한 색상을 가질 수 있다. 라인은 양단이 열린 형태를 가질 수도 있고, 폐쇄형을 가질 수도 있다. 폐쇄형에서 라인은 격자의 형태를 가질 수 있다.
로봇(110)은 라인을 인식하기 위한 라인센서를 더 포함할 수 있다. 그리고, 로봇(110)은 라인센서를 이용하여 주행면에 표시되어 있는 라인을 트래킹할 수 있다. 라인센서는 색상을 더 인식할 수 있다.
라인 주변에는 비가시성의 미세패턴들이 배치될 수 있다. 로봇(110)은 라인을 트래킹하면서 카메라를 이용하여 미세패턴들을 촬영하고 각각의 미세패턴에 대응되는 프로그램코드를 실행시킬 수 있다. 이러한 동작을 제5기능이라고 부르고, 별칭으로 라인트래킹 모드라고 부를 수 있다.
로봇의 실시예
도 2는 일 실시예에 따른 로봇의 좌측면도이고, 도 3은 일 실시예에 따른 로봇의 하측면도이고, 도 4는 일 실시예에 따른 로봇의 후면도이고, 도 5는 일 실시예에 따른 로봇의 전면도이다.
도 2 내지 도 5를 참조하면, 로봇(110)은 몸체(210)가 자동차형상을 가질 수 있다. 자동차형상에 따라 개방부(230)가 바퀴의 형상을 가질 수 있고, 전조등(280)이 전면에 배치될 수 있다. 또한, 버튼들(261~266)은 후면에 배치되면서 후미등과 같은 형상을 가질 수 있다.
로봇(110)은 카메라케이스(220)와 카메라(222)를 포함할 수 있다.
카메라케이스(220)는 몸체(210)의 일측 외곽에 결합되어 배치될 수 있다. 카메라케이스(220)는 필기구와 같은 형상을 가질 수 있고, 바닥면과의 사이에 일정한 간극이 형성될 수 있다. 간극의 크기는 코드카드의 두께보다 클 수 있다.
카메라(222)는 카메라케이스(220)의 내측에 배치되고, 카메라케이스(220)에 형성되는 홀을 통해 외부를 촬영할 수 있게 형성될 수 있다. 카메라(222)는 바닥면을 지향하도록 배치될 수 있다.
로봇(110)의 하측으로는 바퀴들(242, 244)이 배치될 수 있다. 제1바퀴(242)는 몸체(210)의 좌측에 배치되고, 제2바퀴(244)는 몸체(210)의 우측에 배치될 수 있다. 로봇(110)의 하측에는 바퀴들(242, 244) 이외에 볼(246)이 더 배치될 수 있다. 볼(246)은 구동되지 않지만, 몸체(210)의 이동에 따라 회전될 수 있다. 반면에, 바퀴들(242, 244)은 내장된 구동수단-예를 들어, 모터-에 의해 구동될 수 있다. 제1바퀴(242)와 제2바퀴(244)는 별도의 구동수단에 의해 각각 제어될 수 있다. 제1바퀴(242), 제2바퀴(244) 및 볼(246)은 삼발을 형성할 수 있다. 이러한 삼발구조에 의해 몸체(210)가 바닥면에서 자세를 안정적으로 유지할 수 있다.
로봇(110)의 하측으로는 라인센서(250)가 배치될 수 있다. 라인센서(250)는 몸체(210)의 하측으로 노출되도록 부착될 수 있고, 라인을 인식하고 라인에 대한 정보를 로봇(110)으로 제공할 수 있다.
로봇(110)의 후면에는 복수의 버튼들(261~266)이 배치될 수 있다. 로봇(110)은 버튼들(261~266)에 대한 사용자조작을 인식하고 그 사용자조작에 따라 내부의 기능을 제어할 수 있다.
로봇(110)은 제1버튼(261)의 사용자조작을 인식하여 모드를 변경할 수 있다. 로봇(110)은 복수의 모드를 설정해 놓을 수 있다. 복수의 모드는 예를 들어, 펜모드, 코딩모드, 영상모드, MP3(MPEG Audio Layer-3)모드, 스토리모드, 녹음모드 등일 수 있다. 로봇(110)은 제1버튼(261)의 사용자조작을 인식하여 모드를 전환할 수 있다. 예를 들어, 로봇(110)은 제1버튼(261)이 눌려지면, 펜모드에서 코딩모드로 전환하거나 코딩모드에서 펜모드로 전환할 수 있다. 로봇(110)은 제1버튼(261)이 눌려지는 시간도 인식할 수 있는데, 로봇(110)은 제1버튼(261)이 미리 정해진 시간 내에서 눌려지면(이하, '짧게 눌려지면'이라 함) 모드를 전환하고, 제1버튼(261)이 미리 정해진 시간 이상으로 눌려지면(이하, '길게 눌려지면'이라 함) 영상모드를 온하거나 오프할 수 있다.
로봇(110)은 특정 모드로 바로 전환할 수 있는데, 예를 들어, 제3버튼(263)이 눌려지면, MP3모드로 바로 전환하고, 제4버튼(264)이 눌려지면, 스토리모드로 바로 전환할 수 있다.
로봇(110)은 제2버튼(262)이 눌려지면, 현재 인식한 단어 혹은 문장의 번역문을 스피커를 통해 출력할 수 있다. 로봇(110)은 제2버튼(262)이 짧게 눌려지면 번역문을 출력하고, 길게 눌려지면 배터리잔량을 안내할 수 있다.
로봇(110)은 제5버튼(265)이 눌려지면, 출력되는 음량을 감소시키고, 제6버튼(266)이 눌려지면, 출력되는 음량을 증가시킬 수 있다.
로봇(110)의 후면에는 슬롯들(272, 274)이 형성될 수 있는데, 제1슬롯(272)에는 충전커넥터가 결합되고, 제2슬롯(274)에는 메모리카드가 삽입될 수 있다.
복수의 버튼들(261~266) 중 일부 버튼에는 조명장치가 내장될 수 있는데, 예를 들어, 제1버튼(261)과 제4버튼(264)에는 조명장치가 내장될 수 있다. 로봇(110)은 이러한 조명장치를 온오프제어하여 제1버튼(261)과 제4버튼(264)을 후미등처럼 조작할 수 있다.
도 6은 일 실시예에 따른 로봇의 구성도이다.
도 6을 참조하면, 로봇(110)은 카메라부(610), 제어부(620), 메모리(630), 바퀴부(640), 버튼부(650) 및 조명부(660) 등을 포함할 수 있다.
카메라부(610)는 전술한 카메라를 포함하고, 카메라를 통해 미세패턴을 촬영할 수 있다.
카메라부(610)는 미세패턴을 코드로 변환하는 프로세서를 포함할 수 있다. 카메라가 인쇄매체에 인쇄되어 있는 미세패턴을 촬영하고 촬영이미지를 생성하면 프로세서는 촬영이미지를 분석하여 미세패턴을 식별하고 그에 맞는 코드를 매칭할 수 있다.
제어부(620)는 로봇(110)의 전체적인 기능을 제어할 수 있다.
제어부(620)는 카메라부(610)로부터 코드를 전달받고, 코드에 대응되는 기능을 동작시킬 수 있다.
코드는 콘텐츠코드, 동작코드, 기능코드 등일 수 있다.
콘텐츠코드는 재생이나 표시가 가능한 콘텐츠에 대응되는 코드로서, 예를 들어, 음성콘텐츠에 대응되는 코드, 영상콘텐츠에 대응되는 코드, 이미지콘텐츠에 대응되는 코드 등이 콘텐츠코드일 수 있다. 제어부(620)는 카메라부(610)로부터 콘텐츠코드를 전달받고 콘텐츠코드에 대응되는 콘텐츠를 확인한 후에 콘텐츠를 출력할 수 있다. 콘텐츠는 내부 스피커를 통해 출력될 수 있고, 블루투스와 같은 근거리 통신으로 연결된 외부 장치를 통해 출력될 수도 있다.
동작코드는 로봇(110)의 이동을 제어하는 코드로서, 전진을 지시하는 코드, 후진을 지시하는 코드, 우회전을 지시하는 코드, 좌회전을 지시하는 코드, 멈춤을 지시하는 코드 등이 이에 해당될 수 있다.
기능코드는 콘텐츠코드 및 동작코드 이외에 로봇(110)의 기능을 지시하는 코드이다.
메모리(630)는 콘텐츠파일, 프로그램 등의 데이터를 저장할 수 있다. 제어부(620)는 코드에 따라 메모리(630)에 저장된 데이터를 읽어들일 수 있다.
바퀴부(640)는 모터와 같은 구동수단과 전술한 바퀴들을 포함하고, 구동수단을 이용하여 바퀴들을 제어할 수 있다.
버튼부(650)는 복수의 버튼들을 포함하고, 버튼들에 대한 사용자조작을 인식하고, 사용자조작에 대한 정보를 제어부(620)로 전달할 수 있다. 그리고, 제어부(620)는 사용자조작에 따라 내부의 기능을 동작시킬 수 있다.
조명부(660)는 조명장치, 전조등 등을 포함할 수 있다. 조명장치는 버튼들에 내장될 수 있고, 전조등은 로봇의 전면에 배치될 수 있다. 조명부(660)는 제어부(620)의 지시에 따라 조명장치 혹은 전조등의 온오프를 제어할 수 있다.
코드카드의 실시예
도 7은 일 실시예에 따른 코드카드의 예시들이다.
도 7을 참조하면, 코드카드들(702~724)의 일면에는 가시성이 높은 코드표식이 인쇄될 수 있다.
예를 들어, 제1코드카드(702)에는 "코딩시작"이라는 문자와 시작을 상징하는 삼각형이 코드표식으로 인쇄될 수 있고, 제9코드카드(718)에는 "직진"이라는 문자와 직진을 상징하는 화살표가 코드표식으로 인쇄될 수 있다.
사용자는 코드표식을 보고 해당 코드카드에 어떤 프로그램코드가 심어져 있는지 확인할 수 있다.
코드카드들(702~724)에는 가시성이 낮은 미세패턴이 인쇄될 수 있다. 미세패턴은 사람의 눈으로 잘 보이지 않을 수 있으나, 카메라에 의해서는 그 패턴이 구분될 수 있다.
로봇은 코드카드들(702~724)에 인쇄된 미세패턴을 코드로 변환할 수 있는데, 변환되는 코드에는 프로그램코드가 포함될 수 있다.
프로그램코드는 로봇에게 특정 기능을 수행시키는 명령에 대응되는 코드이거나, 프로그램의 일 구성이 되는 코드일 수 있다. 도 7에서 제3코드카드(706) 내지 제10코드카드(720)에 대응되는 코드가 프로그램코드일 수 있다.
프로그램코드는 예를 들어, 제3코드카드(706)에 대응되는 것과 같은 로봇을 한 칸 전진 이동시키는 코드-한 칸의 길이는 미리 정의될 수 있음-, 제4코드카드(708)에 대응되는 것과 같은 로봇을 우회전시키는 코드, 제5코드카드(710)에 대응되는 것과 같은 로봇을 후진시키는 코드, 제6코드카드(712)에 대응되는 것과 같은 로봇을 한 칸 후진 이동시키는 코드, 제7코드카드(714)에 대응되는 것과 같은 로봇을 좌회전시키는 코드, 제8코드카드(716)에 대응되는 것과 같은 로봇의 이동을 정지시키는 코드, 제9코드카드(718)에 대응되는 것과 같은 로봇을 전진시키는 코드, 제10코드카드(720)에 대응되는 것과 같은 로봇을 10초 동안 대기시키는 코드 등일 수 있다.
이외에도 프로그램코드는 반복 구간 시작, 반복 구간 종료, 반복 횟수, 조건 명령 코딩 시작(IF), 조건 명령 코딩 종료(End IF), 대기 명령 코딩 시작(WHILE), 대기 명령 코딩 종료(End WHILE), 외부 소리 반응-예를 들어, 박수 소리에 반응하는 것-, 10초 대기, 10분 대기, 속도 빠르게, 속도 느리게, 콘텐츠재생, 전조등 온, 전조등 오프, 후방 좌측 후미등 온, 후방 우측 후미등 온, 후방 우측 후미등 깜박, 후방 우측 후미등 깜박, 녹음 시작, 녹음 종료, 게임 시작, 게임 종료, 소리 줄임, 소리 키움 등의 코드를 포함할 수 있다.
코드카드들(702~724)에는 프로그램코딩과 관련된 코드도 인쇄될 수 있는데, 예를 들어, 제1코드카드(702)와 같은 코딩시작을 나타내는 코드, 제2코드카드(704)와 같은 코딩끝을 나타내는 코드, 제11코드카드(722)와 같은 전체 프로그램코드를 삭제하는 코드, 제12코드카드(724)와 같은 하나의 프로그램코드를 삭제하는 코드가 인쇄될 수 있다.
디스플레이장치의 실시예
도 8은 일 실시예에 따른 디스플레이장치의 화면 구성도이다.
도 8을 참조하면, 디스플레이장치는 디스플레이패널의 화면(800)에 조작수단(820)을 표시할 수 있다. 조작수단(820)은 원형판(822)과 조작기(824)로 구분될 수 있는데, 이러한 모양은 조그셔틀 혹은 조이스틱의 모양일 수 있다.
조작기(824)는 원형판(822) 내에서 움직이도록 표시가 제어될 수 있다. 사용자의 드래그조작에 따라 조작기(824)가 상하좌우 전방향으로 움직일 수 있는데, 이때, 움직임의 한도는 원형판(822)의 외곽선으로 제한될 수 있다.
디스플레이장치는 사용자조작에 따른 조작기(824)의 위치를 인식할 수 있다. 이러한 위치는 좌표의 형태로 인식될 수 있는데, 디스플레이장치는 원형판(822)의 원점좌표와 조작기(824)의 위치의 차이에 따라 로봇을 제어하는 명령을 생성하고, 이러한 명령에 대응되는 조작정보를 로봇으로 송신할 수 있다.
명령은 코드카드들에 대한 실시예에서 설명한 프로그램코드들 중 하나일 수 있다. 예를 들어, 명령은 로봇을 전진시키는 프로그램코드에 대응되거나 로봇을 후진시키는 프로그램코드에 대응되거나 로봇을 좌회전시키는 프로그램코드에 대응되거나 로봇을 우회전시키는 프로그램코드에 대응될 수 있다.
좌회전 및 우회전은 더 세분되어 10도 좌회전, 20도 좌회전, -10도 우회전, -20도 우회전 등과 같이 세분된 각도의 프로그램코드를 가질 수 있는데, 디스플레이장치는 원점좌표에 대한 조작기(824)의 상대적인 위치에 따라 세분된 각도의 프로그램코드를 선택하고, 해당 프로그램코드에 대응되는 조작정보를 로봇으로 송신할 수 있다.
명령은 복수의 프로그램코드로 구성될 수 있다. 예를 들어, 명령은 로봇의 주행방향을 지시하는 프로그램코드와 주행속도의 증감을 지시하는 프로그램코드로 구성될 수 있다. 디스플레이장치는 원점좌표와 조작기(824)의 상대적인 위치에 따라 주행방향을 지시하는 프로그램코드를 선택하고, 원점좌표와 조작기(824)의 거리에 따라 주행속도의 증감을 지시하는 프로그램코드를 선택할 수 있다.
화면(800)은 운전자 시각에서의 차량 전면 형상으로 구성될 수 있다. 예를 들어, 화면(800)에는 속도계기판(816) 및 주행계기판(818)이 표시될 수 있다. 디스플레이장치는 로봇으로부터 몸체의 주행속도를 수신하고 주행속도에 따라 속도계기판(816)의 표시를 변경할 수 있다.
운전자 시각에서의 차량 전면 형상을 구현하기 위해 화면(800)에는 차량 전면 유리 영역(812)이 표시되고, 차량 전면 유리 영역(812)에 로봇 혹은 차량의 후면(814)이 더 표시될 수 있다.
화면(800)에는 조작버튼들(802~810)이 더 표시될 수 있다.
디스플레이장치가 제1조작버튼(802)에 대한 사용자조작정보를 로봇으로 송신하면 로봇은 전조등이나 후미등의 동작을 제어할 수 있다. 디스플레이장치가 제2조작버튼(804)에 대한 사용자조작정보를 로봇으로 송신하면 로봇은 효과음을 스피커를 통해 출력할 수 있다. 디스플레이장치가 제3조작버튼(806)에 대한 사용자조작정보를 송신하면 로봇은 녹음을 시작할 수 있다-로봇에는 마이크가 더 포함될 수 있음-. 디스플레이장치가 제4조작버튼(808)에 대한 사용자조작정보를 송신하면 로봇은 메모리에 저장된 MP3파일을 스피커로 출력할 수 있다. 디스플레이장치가 제5조작버튼(810)에 대한 사용자조작정보를 송신하면 스토리파일에 의한 음향을 스피커를 통해 출력할 수 있다.
하드웨어적으로, 디스플레이장치는 터치패널을 포함하는 디스플레이패널, 통신장치, 제어기, 메모리 등을 포함할 수 있다.
주행판의 실시예
도 9는 일 실시예에 따른 주행판의 제1예시 도면이다.
도 9를 참조하면, 주행판(900)은 주행면(910)을 형성할 수 있는데, 주행면(910)에는 라인(920)이 표시될 수 있다.
라인(920)은 일정한 색상-예를 들어, 검은색-과 일정한 두께를 가질 수 있으며, 로봇의 라인센서에 의해 인식될 수 있다.
라인(920)의 색상을 제1색이라고 할 때, 라인(920)의 일 위치에는 제1색과 다른 제2색-예를 들어, 파란색-이 표시될 수 있는데, 로봇은 라인을 따라 주행하다가 제2색을 인식하게 되면, 유턴해서 반대방향으로 주행할 수 있다.
라인(920)에는 제1색 및 제2색과 다른 제3색-예를 들어, 빨간색-이 표시될 수 있는데, 로봇은 라인을 따라 주행하다가 제3색을 인식하게 되면, 더 이상 주행하지 않고 멈출 수 있다.
제2색은 제1색상스티커(924)를 통해 주행면(910)에 표시될 수 있다. 사용자는 로봇을 유턴시키고 싶은 위치에 제1색상스티커(924)를 부착하여 제2색을 표시할 수 있다.
제3색은 제2색상스티커(922)를 통해 주행면(910)에 표시될 수 있다. 사용자는 로봇의 주행을 정지시키고 싶은 위치에 제2색상스티커(922)를 부착하여 제3색을 표시할 수 있다.
라인(920)으로부터 일정 거리범위로 이격된 위치에 비가시성의 미세패턴들이 배치될 수 있다. 미세패턴들은 주행면(910)에 직접 인쇄되는 형태로 배치될 수 있고, 패턴스티커(930, 932)에 인쇄되고 패턴스티커(930, 932)가 주행면(910)에 부착되면서 배치될 수 있다.
로봇에서 미세패턴을 인식하는 카메라는 몸체의 일측으로 결합될 수 있다. 예를 들어, 카메라는 로봇의 입장에서 우측에 결합될 수 있다. 이때, 로봇의 주행방향을 기준으로 라인(920)의 일측에 배치되는 제1패턴스티커(932)만 인식할 수 있다. 한편, 로봇은 제2색을 인식하면 유턴을 할 수 있는데, 이러한 유턴에 따라 주행방향이 반대로 되면서 라인(920)의 타측에 배치되는 제2패턴스티커(930)도 인식할 수 있게 된다.
도 10은 일 실시예에 따른 주행판의 제2예시 도면이다.
도 10을 참조하면, 주행판(1000)은 주행면(1010)을 형성할 수 있는데, 주행면(1010)에는 라인들(1020~1029)이 매트릭스를 형성하면서 가로세로 방향으로 배치될 수 있다.
라인들(1020~1029)은 가로방향으로 길게 늘어서는 가로라인들(1020~1024)과 세로방향으로 길게 늘어서는 세로라인들(1025~1029)을 포함할 수 있다. 가로라인들(1020~1024)은 서로 평행하게 늘어설 수 있고, 세로라인들(1025~1029)은 서로 평행하게 늘어설 수 있다.
라인들(1020~1029)은 일정한 색상-예를 들어, 검은색-과 일정한 두께를 가질 수 있으며, 로봇의 라인센서에 의해 인식될 수 있다.
인접한 두 개의 가로라인과 인접한 두 개의 세로라인이 형성하는 사각영역(1030)에는 미세패턴이 배치될 수 있다. 로봇은 라인들(1020~1029)을 따라 이동하면서, 라인들(1020~1029)의 옆에 배치되는 미세패턴을 촬영하고, 미세패턴에 대응되는 프로그램코드에 따라 동작을 수행할 수 있다.
사각영역들(1030)에는 퀴즈요소들에 대응되는 미세패턴들이 인쇄될 수 있다. 퀴즈요소들은 하나의 퀴즈를 형성하는 요소들로서, 예를 들어, 덧셈에 관한 수학퀴즈에서 숫자요소들과 사칙연산요소들이 이에 해당될 수 있다.
로봇은 미세패턴들을 통해 복수의 퀴즈요소들을 인식하고, 인식된 퀴즈요소들이 하나의 퀴즈를 형성하는 경우, 이에 대한 반응신호를 스피커 등을 통해 출력할 수 있다. 예를 들어, 로봇이 '10', '+', '7', '=', '17'에 대응되는 미세패턴을 연속으로 인식하면 "정답입니다"라는 음성메세지를 스피터를 통해 출력할 수 있다.
로봇은 라인들(1020~1029)에서 격자단위로 이동할 수 있다. 예를 들어, 로봇은 가로라인(1020~1024)과 세로라인(1025~1029)의 교점에서 방향을 전환할 수 있고, 인접한 두 세로라인 사이의 길이 단위로 혹은 인접한 두 가로라인 사이의 길이 단위로 이동할 수 있다.
이상에서 로봇시스템을 구성하는 장치들을 중심으로 실시예를 설명하였는데, 아래에서는 로봇시스템의 기능을 중심으로 실시예를 설명한다.
카드코딩의 실시예 : 제2기능
도 11은 카드코딩을 수행하는 로봇시스템의 일 예시 구성도이다.
도 11을 참조하면, 로봇시스템(1100)은 로봇(110), 코드카드들(120) 및 주행판(1000)을 포함할 수 있다.
로봇(110)은 미세패턴을 인식할 수 있는 카메라를 포함하고 있고, 코드카드들(120)에는 프로그램코드에 대응되는 미세패턴이 비가시적으로 인쇄되어 있을 수 있다.
주행판(1000)의 주행면(1010)에는 라인들(1020~1029)이 인쇄되어 있을 수 있는데, 라인들(1020~1029)은 예시적으로 가로라인들(1020~1024)와 세로라인들(1025~1029)이 서로 교차하면서 배치되는 형태를 가질 수 있다.
도 12는 코드카드에 의한 로봇시스템의 코딩 및 동작방법의 흐름도이다.
도 12를 참조하면, 로봇은 프로그램의 시작을 나타내는 시작 프로그램코드를 인식할 수 있다(S1200). 일 코드카드에 시작 프로그램코드에 대응되는 미세패턴이 인쇄되고, 로봇은 일 코드카드를 카메라로 촬영하고 일 코드카드에 인쇄된 미세패턴에 대응되는 시작 프로그램코드를 인식할 수 있다.
시작 프로그램코드가 인식되면, 로봇은 프로그램을 생성하기 위한 상태로 전환될 수 있다.
이러한 상태에서, 로봇은 추가적으로 프로그램코드들을 인식할 수 있다(S1202). 이러한 프로그램코드들을 명령 프로그램코드들이라고 할 때, 로봇은 명령 프로그램코드들을 조합하여 하나의 프로그램을 생성할 수 있다.
로봇은 프로그램의 종료를 나타내는 종료 프로그램코드를 인식할 수 있다(S1204). 종료 프로그램코드가 인식되면, 로봇은 명령 프로그램코드에 대한 인식을 종료할 수 있다.
일정 조건이 만족되면, 로봇은 프로그램을 실행시킬 수 있다. 로봇이 종료 프로그램코드를 인식하고 일정 시간이 경과하면, 일정 조건이 만족될 수 있고, 로봇의 외측면에 배치되어 있는 버튼들에 대한 사용자조작이 인식되면 일정 조건이 만족될 수 있다. 혹은 로보이 라인센서 등을 통해 라인을 인식하면 일정 조건이 만족될 수 있다.
이렇게 일정 조건이 만족되면, 로봇은 프로그램에 포함되어 있는 명령 프로그램코드들을 하나씩 실행시킬 수 있다. 예를 들어, 일 명령 프로그램코드가 바퀴에 대한 조작을 통해 일 단위 거리를 이동하라는 명령에 대응되는 경우, 로봇은 이에 따라 바퀴를 조작하여 몸체를 일 단위 거리만큼 이동시킬 수 있다.
주행판에는 라인들이 인쇄될 수 있는데, 이러한 라인들은 다양한 경로를 형성할 수 있다. 그리고, 로봇은 프로그램을 구성하는 명령 프로그램코드들에 의해 다양한 경로 중 하나의 경로를 따라 주행할 수 있다.
주행판의 경로 주변에는 미세패턴들이 배치될 수 있는데, 로봇은 이러한 미세패턴들을 인식하고, 각 미세패턴에 대응되는 내부 기능을 수행할 수 있다. 예를 들어, 미세패턴이 콘텐츠파일에 대응되는 경우, 로봇은 콘텐츠파일을 읽어들여 출력할 수 있다. 출력은 내부 스피커를 통해 이루어질 수도 있고, 로봇과 통신으로 연결되어 있는 외부 장치를 통해 이루어질 수 있다. 콘텐츠파일이 영상인 경우, 디스플레이패널을 포함하는 외부 장치를 통해 콘텐츠파일에 대한 재생영상이 출력될 수 있다.
스마트코딩의 실시예 : 제3기능
도 13은 스마트코딩을 수행하는 로봇시스템의 일 예시 구성도이다.
도 13을 참조하면, 로봇시스템(1300)은 로봇(110), 코드카드들(120), 디스플레이장치(130) 및 주행판(1000)을 포함할 수 있다.
로봇(110)은 미세패턴을 인식할 수 있는 카메라를 포함하고 있고, 코드카드들(120)에는 프로그램코드에 대응되는 미세패턴이 비가시적으로 인쇄되어 있을 수 있다.
주행판(1000)의 주행면(1010)에는 라인들(1020~1029)이 인쇄되어 있을 수 있는데, 라인들(1020~1029)은 예시적으로 가로라인들(1020~1024)과 세로라인들(1025~1029)이 서로 교차하면서 배치되는 형태를 가질 수 있다.
디스플레이장치(130)는 디스플레이패널을 포함하고, 디스플레이패널에 복수의 코드블럭들을 표시하며, 각각의 코드블럭에 프로그램코드를 매칭시키고, 디스플레이패널에 대한 사용자조작을 인식하여 코드블럭들의 표시 위치를 이동시킬 수 있다.
그리고, 로봇(110)은 디스플레이장치(130)에서의 코드블럭들의 배치에 따라 프로그램코드들을 조합하여 프로그램을 생성하고, 프로그램에 따라 내부 기능을 실행시킬 수 있다.
로봇(110)의 하측으로 바퀴들이 배치될 수 있는데, 프로그램코드는 이러한 바퀴들을 조작하는 명령일 수 있다. 그리고, 로봇(110)은 일측에 배치되는 카메라를 포함할 수 있는데, 로봇(110)은 라인들(1020~1029)의 일측에 인쇄되어 있는 미세패턴을 카메라를 통해 인식하고, 미세패턴에 매칭되는 코드에 따라 내부 기능을 실행할 수 있다.
로봇(110)의 몸체는 자동차형상으로 형성되고, 몸체의 후면에 적어도 하나의 버튼이 배치될 수 있다. 외관적으로, 이러한 버튼은 후미등과 같이 내부에 조명장치를 내장하고 있으면서, 프로그램코드에 따라 조명장치를 온오프할 수 있다. 기능적으로, 이러한 버튼은 사용자의 조작-예를 들어, 누름조작-을 인식하고 이에 대응되는 전기신호를 생성할 수 있는데, 로봇(110)은 이러한 전기신호에 따라 내부 기능 중 하나를 실행할 수 있다.
로봇(110)은 생성되는 프로그램에 따라 주행면(1010) 상에서 주행할 수 있는데, 주행면(1010)에는 라인들(1020~1029)과 더불어 미세패턴들이 더 인쇄되어 있고 로봇(110)은 이러한 미세패턴들을 인식하여 프로그램에서 지시한 내용 이외의 추가적인 기능을 더 실행할 수 있다.
로봇(110)에는 프로그램코드들에 의해 생성되는 프로그램 이외에 내장된 프로그램이 더 실행될 수 있는데, 전자를 코딩프로그램이라 하고, 후자를 내장프로그램이라 해 보자. 코딩프로그램은 로봇(110)의 주행을 제어하는 프로그램일 수 있고, 내장프로그램은 게임형태의 프로그램일 수 있다. 내장프로그램은 예를 들어, 제1이동에 의해 인식되는 제1숫자, 제2이동에 의해 인식되는 사칙연산, 제3이동에 의해 인식되는 제2숫자, 제4이동에 의해 인식되는 등호, 및 제5이동에 의해 인식되는 제3숫자가 하나의 정확한 수식이 되면, "정답입니다"라는 음성이 출력되도록 하는 게임프로그램일 수 있다. 예를 들어, 로봇(110)의 이동에 의해 3 x 5 = 15라는 수식이 인식되면, 로봇(110)은 내장프로그램에 따라 "정답입니다"라는 음성을 출력할 수 있다. 이때, 로봇(110)의 이동은 코딩프로그램에 의해 이루어질 수 있다. 이와 같이, 로봇(110)은 내장프로그램을 활용하여, 코딩프로그램에서의 코딩의 정확도를 평가하고, 그 활용 가치를 증가시킬 수 있다.
한편, 로봇(110)은 기본적으로 전자펜의 기능을 수행할 수 있다. 로봇(110)은 카메라를 통해 책에 인쇄되어 있는 미세패턴을 인식하고, 책에 인쇄되어 있는 미세패턴에 대응되는 콘텐츠를 내부 혹은 외부의 스피커를 통해 독출시킬 수 있다. 로봇(110)은 이러한 전자펜의 기능을 수행하기 위한 카메라를 프로그램코딩에 사용할 수 있다. 로봇(110)은 카메라를 통해 코드카드들(120)에 인쇄되어 있는 미세패턴들을 인식하고 이러한 미세패턴들에 대응되는 프로그램코드들을 조합하여 프로그램을 생성할 수 있다.
로봇(110)에 프로그램을 생성하는 다른 방법으로, 일 실시예는 스마트코딩방법을 제공할 수 있다. 로봇(110)은 디스플레이장치(130)와의 통신을 통해 프로그램정보를 수신할 수 있고, 프로그램정보에 포함되어 있는 프로그램 혹은 프로그램코드들을 이용하여 프로그램을 생성하고 실행시킬 수 있다.
도 14는 스마트코딩을 수행하는 디스플레이장치의 화면 예시도이다.
도 14를 참조하면, 디스플레이패널에 표시되는 화면은 제1윈도우(1410)와 제2윈도우(1420)를 포함할 수 있다.
제1윈도우(1410)에는 다수의 예시코드블럭들(1412)이 표시될 수 있다. 각각의 예시코드블럭들(1412)은 서로 다른 프로그램코드들에 대응될 수 있다.
디스플레이패널은 터치패널을 포함할 수 있는데, 사용자는 드래그조작을 통해 예시코드블럭들(1412) 중 일부를 제2윈도우(1420)로 이동시킬 수 있다. 제1윈도우(1410)에 위치하는 일 예시코드블럭(1412)은 두 번 이상 제2윈도우(1420)로 이동될 수 있고, 서로 다른 위치에 배치될 수 있다.
제2윈도우(1420)로 이동된 예시코드블럭은 코드블럭(1422)으로 지정되면서 일정한 배치형태를 이룰 수 있다.
디스플레이장치는 제2윈도우(1420)에 표시되는 코드블럭들(1422)을 프로그램코드들에 매칭시키고, 프로그램코드들 혹은 이러한 프로그램코드들로 생성되는 프로그램에 대한 정보를 로봇으로 송신할 수 있다. 그리고, 로봇은 정보에 포함된 프로그램코드들 혹은 프로그램을 이용하여 내부 기능을 제어할 수 있다.
로봇에서의 프로그램코드들의 실행 순서는 코드블럭들의 배치 위치에 따라 결정될 수 있다. 예를 들어, 제2윈도우(1420)에서 좌측에 배치되는 코드블럭들이 우측에 배치되는 코드블럭들보다 먼저 실행될 수 있고, 상측에 배치되는 코드블럭들이 하측에 배치되는 코드블럭들보다 먼저 실행될 수 있다. 참고로, 코드카드를 이용하여 프로그래밍을 진행할 때는 인식되는 미세패턴들의 순서에 따라 프로그램코드들의 실행 순서가 결정될 수 있다.
도 15는 일 실시예에 따른 스마트 코딩방법의 흐름도이다.
도 15를 참조하면, 디스플레이장치는 디스플레이패널의 화면의 제1윈도우에 다수의 예시코드블럭들을 표시할 수 있다(S1500).
그리고, 디스플레이장치는 드래그조작을 인식하여 다수의 예시코드블럭들 중 일부 예시코드블럭들을 화면의 제2윈도우로 이동시켜 표시할 수 있다(S1502).
제2윈도우로 이동되는 일부 예시코드블럭들은 코드블럭들로 인식되고, 디스플레이장치는 이러한 코드블럭들에 프로그램코드들을 매칭시킬 수 있다(S1504).
그리고, 디스플레이장치는 코드블럭들의 배치에 따라 프로그램코드들의 실행순서를 결정하면서 프로그램코드들을 조합하여 프로그램을 생성할 수 있다(S1506).
프로그램은 로봇으로 송신되고, 로봇은 프로그램을 실행시키면서 내부 기능을 조작할 수 있다(S1508).
한편, 로봇은 카메라와 코드카드들을 이용하여 프로그래밍을 할 수 있는데, 이렇게 생성되는 프로그램은 디스플레이장치로 송신될 수 있다. 그리고, 디스플레이장치는 이러한 프로그램에 포함되어 있는 프로그램코드들을 코드블럭을 이용하여 제2윈도우에 표시할 수 있다. 사용자는 드래그조작 등을 통해 표시된 코드블럭들의 위치를 재배치하고 프로그램을 새로 생성할 수 있다. 그리고, 새로 생성된 프로그램은 다시 로봇으로 송신되어 실행될 수 있다.
RC카모드의 실시예 : 제4기능
도 16은 RC카모드를 수행하는 로봇시스템의 일 예시 구성도이다.
도 16을 참조하면, 로봇시스템(1600)은 로봇(110) 및 디스플레이장치(130) 등을 포함할 수 있다.
로봇(110)은 자동차형상의 몸체를 포함하고, 몸체의 하측으로 바퀴들이 배치될 수 있다. 몸체의 후면에는 조명장치를 내장하는 적어도 하나의 버튼이 배치되고, 몸체의 전면에 전조등이 배치될 수 있다. 로봇(110)의 일측으로 바닥면을 지향하도록 카메라가 배치될 수 있고, 로봇(110)은 내장스피커를 포함할 수 있다.
로봇(110)은 카메라를 통해 인식되는 비가시성의 미세패턴들을 프로그램코드들로 매칭시킬 수 있고, 이러한 프로그램코드들을 조합하여 프로그램을 생성할 수 있다. 그리고, 로봇(110)은 프로그램의 실행에 따라 몸체를 이동시키거나 다른 내부 기능을 수행할 수 있다.
디스플레이장치(130)는 디스플레이패널을 포함할 수 있다. 디스플레이장치(130)는 디스플레이패널에 원형판 및 원형판 내에서 이동가능한 조작기를 표시하고, 사용자조작에 따른 조작기의 위치를 인식하고, 이러한 위치에 따라 몸체를 이동시키는 적어도 하나의 프로그램코드를 생성할 수 있다. 그리고, 디스플레이장치는 적어도 하나의 프로그램코드에 대응되는 조작정보를 로봇(110)으로 송신할 수 있다.
그리고, 로봇(110)은 이러한 조작정보에 따라 몸체를 이동시키거나 다른 내부 기능을 수행할 수 있다.
디스플레이장치(130)에서의 조작기에 대해 좀더 살펴보기 위해, 도 8을 다시 참조한다.
도 8을 참조하면, 화면(800)에 조작수단(820)이 표시될 수 있다. 조작수단(820)은 게임기나 RC카의 리모컨과 같이 조그셔틀 혹은 조이스틱의 모양을 가질 수 있다.
조작수단(820)은 원형판(822)과 조작기(824)로 구성될 수 있는데, 원형판(822)은 조작기(824)가 움직이는 공간의 범위를 나타낼 수 있다. 그리고, 조작기(824)는 원형판(822)이 표시된 범위 내에서 움직일 수 있다.
조작기(824)는 사용자의 드래그조작에 따라 상하좌우 전방향으로 움직일 수 있고, 디스플레이장치는 조작기(824)의 위치를 인식할 수 있다.
디스플레이장치는 원형판(822)의 중심에 해당되는 원점좌표를 알 수 있는데, 조작기(824)와 원점좌표와의 위치 관계에 따라 방향제어에 대응되는 프로그램코드를 생성하거나 속도제어에 대응되는 프로그램코드를 생성할 수 있다. 예를 들어, 디스플레이장치는 조작기(824)가 원점좌표로부터 멀어진 거리에 따라 주행속도의 증감량을 결정할 수 있다. 그리고, 디스플레이장치는 원점좌표를 지나는 일 선분-예를 들어, 원점좌표에서 오른쪽으로 연장되는 일 선분-과 조작기(824)가 이루는 각도에 따라 주행방향을 결정할 수 있다. 그리고, 디스플레이장치는 결정된 값에 따라 프로그램코드를 생성할 수 있다.
화면(800)은 운전자 시각에서의 차량 전면 형상으로 구성될 수 있다. 예를 들어, 화면(800)에는 속도계기판(816) 및 주행계기판(818)이 표시될 수 있다. 디스플레이장치는 로봇으로부터 몸체의 주행속도를 수신하고 주행속도에 따라 속도계기판(816)의 표시를 변경할 수 있다.
운전자 시각에서의 차량 전면 형상을 구현하기 위해 화면(800)에는 차량 전면 유리 영역(812)이 표시되고, 차량 전면 유리 영역(812)에 로봇 혹은 차량의 후면(814)이 더 표시될 수 있다.
화면(800)에는 조작버튼들(802~810)이 더 표시될 수 있다.
디스플레이장치가 제1조작버튼(802)에 대한 사용자조작정보를 로봇으로 송신하면 로봇은 전조등이나 후미등의 동작을 제어할 수 있다. 디스플레이장치가 제2조작버튼(804)에 대한 사용자조작정보를 로봇으로 송신하면 로봇은 효과음을 스피커를 통해 출력할 수 있다. 디스플레이장치가 제3조작버튼(806)에 대한 사용자조작정보를 송신하면 로봇은 녹음을 시작할 수 있다-로봇에는 마이크가 더 포함될 수 있음-. 디스플레이장치가 제4조작버튼(808)에 대한 사용자조작정보를 송신하면 로봇은 메모리에 저장된 MP3파일을 스피커로 출력할 수 있다. 디스플레이장치가 제5조작버튼(810)에 대한 사용자조작정보를 송신하면 스토리파일에 의한 음향을 스피커를 통해 출력할 수 있다.
도 17은 일 실시예에 따른 RC카모드 운행제어방법의 흐름도이다.
도 17을 참조하면, 디스플레이장치의 디스플레이패널에 원형판 및 원형판 내에서 이동가능한 조작기가 표시될 수 있다(S1700).
디스플레이장치는 디스플레이패널, 메모리, 프로세서, 통신회로 등을 포함할 수 있고, 디스플레이패널은 터치패널을 포함할 수 있다. 디스플레이장치는 프로세서의 동작에 따라 디스플레이패널에 원형판 및 조작기를 표시할 수 있다.
그리고, 디스플레이장치는 터치패널에 대한 사용자조작에 따른 조작기의 위치를 인식할 수 있다(S1702).
그리고, 디스플레이장치는 조작기의 위치에 따라 적어도 하나의 프로그램코드를 생성하고(S1704), 이러한 적어도 하나의 프로그램코드에 대응되는 조작정보를 로봇으로 송신할 수 있다(S1706). 그리고, 로봇은 조작정보에 따라 몸체의 이동을 제어할 수 있다(S1708).
조작정보에는 제1프로그램코드 및 제2프로그램코드가 포함될 수 있다. 여기서, 제1프로그램코드는 로봇의 방향제어에 대응되는 프로그램코드이고, 제2프로그램코드는 로봇의 속도제어에 대응되는 프로그램코드일 수 있다.
디스플레이장치는 조명장치 혹은 전조등에 대한 조작버튼을 디스플레이패널에 더 표시할 수 있다. 그리고, 이러한 조작버튼에 대한 클릭을 인식하고, 클릭에 따라 조명장치 혹은 전조등의 온오프에 대한 제3프로그램코드를 생성하고, 제3프로그램코드를 로봇으로 송신할 수 있다.
로봇은 음악파일이나 음향파일을 저장하는 메모리를 더 포함할 수 있는데, 로봇은 몸체의 주행에 맞추어 음악파일 혹은 음향파일에 의한 음향을 내장스피커를 통해 출력할 수 있다.
디스플레이장치는 경적소리와 같은 효과음에 대한 조작버튼을 더 표시하고, 로봇은 효과음에 대한 조작버튼의 사용자조작에 따라 효과음을 내장스피커를 통해 출력할 수 있다.
로봇은 책의 내용에 대한 스토리파일-책의 내용을 읽어놓은 음향파일-을 메모리에 저장할 수 있는데, 로봇은 몸체의 주행에 맞추어 이러한 스토리파일에 의한 음향을 내장스피커를 통해 출력할 수 있다.
디스플레이장치는 로봇과의 통신을 통해 로봇의 상태를 수신하고 화면에 출력할 수 있는데, 예를 들어, 디스플레이장치는 로봇의 주행속도를 수신하고 주행속도에 따라 주행계기판의 표시를 변경할 수 있다.
그리고, 디스플레이장치는 디스플레이패널의 화면을 운전자 시각에서의 차량 전면 형상으로 구성하면서, 화면에 속도계기판 및 주행계기판을 표시하고, 원형판을 핸들 위치에 배치하고, 몸체의 주행에 따라 속도계기판 및 주행계기판의 표시를 변경할 수 있다.
라인트래킹모드의 실시예 : 제5기능
도 18은 라인트래킹모드를 수행하는 로봇시스템의 일 예시 구성도이다.
도 18을 참조하면, 로봇시스템(1800)은 로봇(110) 및 주행판(900) 등을 포함할 수 있다.
주행판(900)에는 라인이 배치되고, 비가시성의 미세패턴들이 라인으로부터 일정 거리범위로 이격되어 배치될 수 있다.
그리고, 로봇(110)의 몸체 하측으로 바퀴들이 배치되고, 라인을 인식하는 라인센서가 로봇(110)의 몸체 외측으로 노출되도록 부착되고, 바닥면을 지향하는 카메라가 로봇(110)의 몸체에 부착될 수 있다.
주행판(900)에 대해 좀더 살펴보기 위해, 도 9를 다시 참조한다.
도 9를 참조하면, 주행판(900)에는 주행면(910)이 형성되고, 주행면(910)에는 라인(920)이 표시될 수 있다.
라인(920)은 제1색을 가지고 일정한 두께를 가질 수 있으며, 로봇의 라인센서에 의해 인식될 수 있다.
라인(920)은 일단이 타단과 연결되지 않는 개방형일 수도 있고, 일단이 타단과 연결되는 폐쇄형일 수도 있다. 개방형인 경우, 로봇은 라인센서를 이용하여 라인(920)의 일단에서 출발하여 타단까지 이동할 수 있다. 폐쇄형인 경우, 로봇은 라인센서를 이용하여 라인(920)의 일 위치에서 다른 위치로 이동하거나 라인(920)을 따라 계속 순환할 수 있다.
로봇의 몸체에는 버튼들이 배치될 수 있는데, 로봇은 일 버튼에 대한 조작을 인식하여 주행을 시작할 수 있고, 일 버튼 혹은 다른 버튼에 대한 조작을 인식하여 주행을 멈출 수 있다.
로봇은 라인(920)을 따라 주행하다가 라인센서를 이용하여 제1색이 아닌 제2색을 센싱하고, 제2색이 센싱될 때, 주행방향을 반대로 하는 유턴(U턴)동작을 수행할 수 있다. 예를 들어, 로봇은 라인(920)을 따라 주행하다가 제2색을 가지는 제1색상스티커(924)를 센싱하면 유턴하여 반대방향으로 주행할 수 있다.
로봇은 라인(920)을 따라 주행하다가 라인센서를 이용하여 제1색이 아닌 제3색을 센싱하고, 제3색이 센싱될 때, 주행을 멈출 수 있다. 예를 들어, 로봇은 제1색상스티커(924)가 있는 위치에서 유턴한 후에 다시 라인(920)을 따라 주행하다가 제3색을 가지는 제2색상스티커(922)를 센싱하면 주행을 멈출 수 있다.
제2색 혹은 제3색은 제1색상스티커(924)나 제2색상스티커(922)와 같이 탈부착이 용이한 스티커에 인쇄될 수 있는데, 사용자는 이러한 스티커를 이용하여 라인(920)의 임의의 위치에 제2색 혹은 제3색을 표시할 수 있다.
로봇에서 미세패턴을 인식하는 카메라는 몸체의 일측으로 결합될 수 있다. 예를 들어, 카메라는 로봇의 입장에서 우측에 결합될 수 있다. 이때, 로봇의 주행방향을 기준으로 라인(920)의 일측에 배치되는 제1패턴스티커(932)만 인식할 수 있다. 한편, 로봇은 제2색을 인식하면 유턴을 할 수 있는데, 이러한 유턴에 따라 주행방향이 반대로 되면서 라인(920)의 타측에 배치되는 제2패턴스티커(930)도 인식할 수 있게 된다.
로봇은 미세패턴을 인식한 후에 일정한 내부 기능을 수행할 수 있다. 예를 들어, 미세패턴이 콘텐츠파일에 대응되는 경우, 로봇은 미세패턴을 인식하고 해당 콘텐츠파일을 재생할 수 있다. 혹은 미세패턴이 타이머에 대응되는 경우, 로봇은 미세패턴을 인식하고 해당 타이머의 시간만큼 멈춰 있다가 다시 주행할 수 있다.
콘텐츠파일은 동영상파일일 수 있는데, 이때, 로봇은 통신을 통해 다른 장치-예를 들어, 디스플레이장치-에서 동영상파일이 재생될 수 있도록 제어를 수행할 수 있다. 이때, 동영상파일은 다른 장치에 저장되어 있고, 로봇은 동영상파일을 지시하는 코드를 다른 장치로 송신할 수 있다.
도 19는 영상보기모드를 수행하는 로봇시스템의 일 예시 구성도이다.
도 19를 참조하면, 로봇(110)은 라인(920)을 따라 주행하면서, 라인(920)의 일측에 배치되는 미세패턴들(1921~1924)을 인식할 수 있다.
그리고, 로봇(110)은 각 미세패턴들(1921~1924)에 대응되는 코드를 디스플레이장치(1910)로 송신할 수 있다.
그리고, 디스플레이장치(1910)는 각 코드에 대응되는 영상콘텐츠를 화면으로 표시할 수 있다.
이러한 방식에 의하면, 사용자는 시청하기를 원하는 영상콘텐츠들에 대응되는 미세패턴이 인쇄된 스터커들을 라인(920)의 일측에 배치함으로써 영상콘텐츠들의 재생리스트를 구성할 수 있고, 재생순서를 결정할 수 있다. 반복적인 재생을 원하는 경우, 사용자는 라인(920)이 폐쇄형으로 구성되도록 만들 수 있고, 필요에 따라서는 유턴동작을 유도하는 색상스티커를 배치하여 반복을 만들 수 있다.
미세패턴은 로봇의 내부 동작에 대응되는 코드가 매칭될 수도 있는데, 이때, 반복횟수에 대응되는 코드가 매칭되어 일정 횟수 동안만 영상콘텐츠가 재생되도록 할 수 있다.
로봇(110)은 디스플레이장치(1910)와 직접 통신하지 않고, 인공지능스피커와 같은 중간장치와 통신할 수 있다. 이때, 로봇(110)은 미세패턴에 대응되는 코드를 인공지능스피커로 송신하고, 인공지능스피커는 인공지능서버로부터 영상콘텐츠를 다운로드받아 디스플레이장치(1910)를 통해 재생시킬 수 있다. 이때, 디스플레이장치(1910)는 IPTV(인터넷TV)이고, 인공지능스피커는 IPTV 단말기를 겸하는 인공지능스피커일 수 있다.
도 20은 일 실시예에 따른 라인트래킹 제어방법의 흐름도이다.
도 20을 참조하면, 먼저, 주행판에 라인이 그려지고, 비가시성의 미세패턴들이 라인으로부터 일정 거리범위로 이격되어 배치될 수 있다(S2000).
그리고, 로봇이 라인센서를 통해 라인을 인식하면서 트래킹을 수행할 수 있다(S2002). 로봇은 라인을 인식하기 시작한 시점부터 트래킹을 시작할 수도 있고, 버튼에 대한 사용자조작을 인식하여 트래킹을 시작할 수도 있다. 또는 특정 색상이 인식되면 라인을 트래킹하기 시작할 수 있다.
로봇은 라인을 트래킹하면서 카메라를 통해 미세패턴들 중 제1미세패턴을 촬영하고 제1미세패턴에 대응되는 제1코드에 따라 제1기능을 수행할 수 있다(S2004). 제1코드가 음성콘텐츠에 대응되는 경우, 로봇은 스피커를 통해 음성콘텐츠를 출력할 수 있다. 로봇은 스피커를 내장하고 있을 수 있는데, 로봇의 몸체는 자동차의 형상이고, 몸체에서 바퀴형상부분에 음향의 출력이 가능한 개방부가 형성되고, 개방부의 내측에 스피커가 배치될 수 있다.
그리고, 로봇은 추가적으로 라인을 트래킹하면서 제2미세패턴을 촬영하고 제2미세패턴에 대응되는 제2코드에 따라 제2기능을 수행할 수 있다(S2006). 제2코드가 특정 동작에 대응되는 코드인 경우, 로봇은 제2코드에 따라 특정 동작을 수행할 수 있는데, 예를 들어, 로봇은 제2코드에 따라 전조등의 온오프를 제어하거나 조명장치의 온오프를 제어하거나 일정 시간 주행을 멈출 수 있다.
이모션북마크모드의 실시예 : 제6기능
코드카드에 의한 프로그램, 스마트코드에 의한 프로그램 등의 프로그램은 특정 미세패턴에 매칭되어 저장될 수 있다. 예를 들어, 코드카드 혹은 스마트코드에 의해 하나의 프로그램이 생성되면, 해당 프로그램은 로봇에 의해 하나의 데이터로 인식될 수 있다. 로봇은 하나의 데이터를 하나의 코드와 매칭시켜 저장할 수 있는데, 이러한 코드를 북마크코드라고 부를 수 있다.
로봇은 프로그램이 생성되면, 이러한 프로그램을 북마크코드에 매칭시켜 저장할 수 있다. 북마크코드는 또한, 특정 미세패턴에 매칭되어 있을 수 있는데, 로봇은 특정 미세패턴을 인식하면 해당 미세패턴에 대응되는 북마크코드를 확인할 수 있고, 이러한 북마크코드에 프로그램을 매칭시켜 저장할 수 있다.
로봇이 카메라를 통해 북마크코드에 대응되는 미세패턴을 인식하게 되면, 이후, 로봇은 북마크코드에 대응되어 저장되어 있는 프로그램을 실행시킬 수 있다.
도 21은 이모션북마크모드를 수행하는 로봇시스템의 제어방법의 흐름도이다.
도 21을 참조하면, 로봇시스템은 코드카드, 스마트코딩 등을 이용하여 프로그램을 생성할 수 있다(S2100).
그리고, 로봇은 북마크모드로 진입한 이후에 북마크코드에 대응되는 미세패턴을 인식할 수 있다(S2102).
그리고, 로봇은 프로그램을 북마크코드에 매칭시켜 저장할 수 있다(S2104).
그리고, 로봇은 실행모드로 진입한 이후에 북마크코드에 대응되는 미세패턴을 인식할 수 있다(S2106).
그리고, 로봇은 북마크코드에 매칭되어 있는 프로그램을 실행시킬 수 있다(S2108).
프로그램에 대한 정교한 코딩에 따라 로봇은 춤과 같이 감정을 표현할 수 있고 이때, 로봇의 움직임과 함께 음악도 재생될 수 있어서 사용자는 일종의 이벤트를 관찰하는 느낌을 받을 수 있다.
동일한 프로그램은 여러 로봇에 저장될 수 있다. 예를 들어, 스마트코딩에 의해 생성되는 프로그램은 여러 개의 로봇으로 송신될 수 있다. 그리고, 각각의 로봇은 북마크코드에 프로그램을 저장해 놓았다가 거의 비슷한 시간에 프로그램을 실행시킬 수 있다. 이러한 방법에 의하면, 로봇에 의한 군무도 가능하게 된다.
로봇이 이벤트 동작을 수행하고 감정을 표현하는 것 같다고 하여, 이러한 모드를 이모션북마크코드라고 부르기도 한다.
이상에서 몇 가지 실시예들에 대해 설명하였는데, 이러한 본 실시예에 의하면, 어린이와 같은 저숙련자도 프로그램을 간단한 방법으로 생성할 수 있게 된다. 그리고, 본 실시예에 의하면, 어린이와 같은 저숙련자가 프로그래밍에 대한 개념을 익히고 흥미를 가질 수 있도록 하는 학습수단을 제공할 수 있고, 저숙련자에게 친화적인 로봇 제어 인터페이스를 통해 저숙련자가 재미를 가지고 손쉽게 로봇을 제어할 수 있게 된다. 그리고, 본 실시예에 의하면, 모든 사람들이 로봇을 활용하여 다양하고 흥미로운 활동을 수행할 수 있게 된다.
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (5)

  1. 디스플레이패널을 포함하고, 상기 디스플레이패널에 복수의 코드블럭들을 표시하며, 각각의 코드블럭에 프로그램코드를 매칭시키고, 상기 디스플레이패널에 대한 사용자조작을 인식하여 상기 코드블럭들의 표시 위치를 이동시키는 디스플레이장치;
    가시성이 낮은 미세패턴과 가시성이 높은 코드표식이 인쇄되는 복수의 코드카드들; 및
    하측으로 바퀴들이 배치되고, 바닥면을 지향하도록 카메라가 배치되며, 상기 카메라를 통해 인식되는 복수의 미세패턴들을 프로그램코드들로 매칭시키고 상기 프로그램코드들을 조합하여 프로그램을 생성하거나 상기 디스플레이장치에서의 상기 코드블럭들의 배치에 따라 상기 프로그램코드들을 조합하여 상기 프로그램을 생성하고, 상기 프로그램의 실행에 따라 상기 바퀴들을 조작하여 몸체를 이동시키는 로봇
    을 포함하는 로봇시스템.
  2. 제1항에 있어서,
    상기 로봇의 상기 몸체는 자동차형상으로 형성되고, 상기 몸체의 후면에 적어도 하나의 버튼이 배치되며,
    상기 로봇은 상기 적어도 하나의 버튼에 대한 조작을 인식하여 상기 로봇의 기능 중 일부를 제어하는 로봇시스템.
  3. 제1항에 있어서,
    상기 디스플레이패널에 표시되는 화면의 제1윈도우에 다수의 예시코드블럭들이 표시되고, 드래그조작에 따라 상기 예시코드블럭들 중 일부가 상기 화면의 제2윈도우에 이동되면서 코드블럭으로 지정되고, 상기 제2윈도우에 표시되는 상기 코드블럭들로 상기 프로그램코드들이 생성되는 로봇시스템.
  4. 디스플레이패널의 화면의 제1윈도우에 다수의 예시코드블럭들을 표시하는 단계;
    드래그조작을 인식하여 상기 다수의 예시코드블럭들 중 일부 예시코드블럭들을 상기 화면의 제2윈도우로 이동시켜 표시하는 단계;
    상기 제2윈도우로 이동되는 상기 일부 예시코드블럭들을 코드블럭들로 인식하고, 상기 코드블럭들에 프로그램코드들을 매칭시키는 단계;
    상기 코드블럭들의 배치에 따라 상기 프로그램코드들의 실행순서를 결정하면서 상기 프로그램코드들을 조합하여 프로그램을 생성하는 단계; 및
    상기 프로그램을 실행시키면서 로봇을 조작하는 단계
    를 포함하는 코딩방법.
  5. 제4항에 있어서,
    상기 로봇의 몸체 하측으로 바퀴들이 배치되고, 바닥면을 지향하도록 상기 몸체의 일측으로 카메라가 배치되는 코딩방법.
KR1020210058031A 2021-05-04 2021-05-04 로봇시스템 및 그에 대한 스마트 코딩방법 KR102525276B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210058031A KR102525276B1 (ko) 2021-05-04 2021-05-04 로봇시스템 및 그에 대한 스마트 코딩방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210058031A KR102525276B1 (ko) 2021-05-04 2021-05-04 로봇시스템 및 그에 대한 스마트 코딩방법

Publications (2)

Publication Number Publication Date
KR20220150715A true KR20220150715A (ko) 2022-11-11
KR102525276B1 KR102525276B1 (ko) 2023-04-24

Family

ID=84042927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210058031A KR102525276B1 (ko) 2021-05-04 2021-05-04 로봇시스템 및 그에 대한 스마트 코딩방법

Country Status (1)

Country Link
KR (1) KR102525276B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140134188A (ko) * 2013-05-13 2014-11-21 (주) 아인전자 코드 이미지가 인쇄된 인쇄물을 이용하는 전자펜의 악기 연주 음향재생 제어방법 및 이를 수행하는 전자펜
KR20180007199A (ko) * 2016-07-12 2018-01-22 (주)새로운교육 코딩교육 시스템, 애플리케이션 시스템 및 그 제공방법
KR20190107450A (ko) * 2018-03-12 2019-09-20 주식회사 아이알브레인 로봇 주행제어 알고리즘 학습 시스템
KR20210007346A (ko) * 2019-07-11 2021-01-20 김철회 코딩 학습용 장치 및 이를 포함한 코딩 학습 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140134188A (ko) * 2013-05-13 2014-11-21 (주) 아인전자 코드 이미지가 인쇄된 인쇄물을 이용하는 전자펜의 악기 연주 음향재생 제어방법 및 이를 수행하는 전자펜
KR20180007199A (ko) * 2016-07-12 2018-01-22 (주)새로운교육 코딩교육 시스템, 애플리케이션 시스템 및 그 제공방법
KR20190107450A (ko) * 2018-03-12 2019-09-20 주식회사 아이알브레인 로봇 주행제어 알고리즘 학습 시스템
KR20210007346A (ko) * 2019-07-11 2021-01-20 김철회 코딩 학습용 장치 및 이를 포함한 코딩 학습 시스템

Also Published As

Publication number Publication date
KR102525276B1 (ko) 2023-04-24

Similar Documents

Publication Publication Date Title
Frei et al. Curlybot: designing a new class of computational toys
Nacher et al. Interactive technologies for preschool game-based instruction: Experiences and future challenges
US9594502B2 (en) Method and system for remote control, and remote-controlled user interface
US20070173974A1 (en) Device and method for interacting with autonomous robot
US11688299B2 (en) Programming device and recording medium, and programming method
Sapounidis et al. Educational robots driven by tangible programming languages: A review on the field
WO2008157061A1 (en) Spatially aware mobile projection
JP2010233958A (ja) プログラム、情報記憶媒体及びゲーム装置
JP2008264575A (ja) 情報再生装置及び情報入力装置
US11430195B2 (en) Information processing apparatus, information processing method, and program for improving user-friendliness of an animated tutorial depicting assembling parts for creating a robot
KR101026738B1 (ko) 전자판서 기능을 갖는 멀티미디어 터치 제어 시스템
KR102525276B1 (ko) 로봇시스템 및 그에 대한 스마트 코딩방법
KR101966914B1 (ko) 코딩 교육을 위한 완구용 로봇 제어 시스템
KR102654973B1 (ko) 로봇시스템 및 그에 대한 rc카모드 운행제어방법
CN109445568A (zh) 投影对象控制方法、装置及主机
KR20220150716A (ko) 로봇시스템 및 그에 대한 라인트래킹 제어방법
Tran et al. Easy-to-use virtual brick manipulation techniques using hand gestures
CN203480705U (zh) 可用姿势或动作控制的学习机装置
KR101428597B1 (ko) 오디오와 비디오의 동시 재생 기능을 갖는 학습용 펜
CN216138923U (zh) 一种按键编程交互机器人系统
KR102477614B1 (ko) 코딩 학습교구에서 수행되는 컬러감지 미션수행방법
TWM564234U (zh) 即時編輯程式語言之機器人系統
KR200495681Y1 (ko) 음악 연주 코딩을 이용한 코딩 교육장치
Mi et al. RoboStory: A tabletop mixed reality framework for children’s role play storytelling
CN214253007U (zh) 一种基于全彩线条的巡线系统

Legal Events

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