KR20160099667A - 정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법 - Google Patents

정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법 Download PDF

Info

Publication number
KR20160099667A
KR20160099667A KR1020167019113A KR20167019113A KR20160099667A KR 20160099667 A KR20160099667 A KR 20160099667A KR 1020167019113 A KR1020167019113 A KR 1020167019113A KR 20167019113 A KR20167019113 A KR 20167019113A KR 20160099667 A KR20160099667 A KR 20160099667A
Authority
KR
South Korea
Prior art keywords
block
communication
information
information processing
blocks
Prior art date
Application number
KR1020167019113A
Other languages
English (en)
Other versions
KR101810415B1 (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 주식회사 소니 인터랙티브 엔터테인먼트
Publication of KR20160099667A publication Critical patent/KR20160099667A/ko
Application granted granted Critical
Publication of KR101810415B1 publication Critical patent/KR101810415B1/ko

Links

Images

Classifications

    • G06F17/50
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • A63F13/245Constructional details thereof, e.g. game controllers with detachable joystick handles specially adapted to a particular type of game, e.g. steering wheels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1087Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera
    • A63F2300/1093Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera using visible light

Abstract

정보 처리 장치(10)의 코어 정보 수신부(20)는 사용자에 의해 조립된 블록 세트(120)의 제 1 블록(142a)으로부터 코어의 상태에 관한 정보를 수신한다. 구조 분석부(22)는 카메라(122)에 의해 촬영된 이미지와 코어의 상태에 관한 정보에 기초하여 블록 세트(120)의 형상, 자세 및 위치를 식별한다. 정보 처리부(30)는 블록 세트(120)의 형상, 자세 및 위치에 따라 미리 정해진 정보 처리 또는 사용자에 의한 입력 장치(14)에 대한 동작을 수행한다. 디스플레이 처리부(32)는 정보 처리의 결과로서 표시될 이미지를 생성하고, 이미지를 디스플레이 장치(16)로 출력한다. 구동 제어부(34)는 블록 세트(120)의 동작을 제어하기 위한 신호를 전송한다.

Description

정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법{INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING SYSTEM, BLOCK SYSTEM, AND INFORMATION PROCESSING METHOD}
본 발명은 실제 공간에서 객체를 이용하는 정보 처리 기술에 관한 것이다.
어떤 수단에 의해 실제 공간에서 인간, 물건 등과 같은 객체에 관한 파라미터를 측정하는 기술은 입력 값으로서 파라미터를 컴퓨터로 캡처하고, 입력 값을 분석하며, 다양한 분야에서 이용되는 이미지로서 입력 값을 표시한다. 컴퓨터 게임의 분야에서, 사용자 자신의 움직임 또는 사용자가 보유한 마커를 획득하고, 이에 따라 표시 스크린 내에 가상 세계의 캐릭터를 움직임으로써 직관적이고 간단한 동작이 실현된다(예를 들어, PTL 1 참조). 따라서 스크린 디스플레이의 실제 공간에서의 객체의 형상의 움직임 또는 변화를 반영하는 기술은 게임뿐만 아니라 장난감, 학습 자료 등에도 적용되는 것으로 예상된다(예를 들어, NPL 1 참조).
상술한 바와 같이, 주요 동작을 수행하는 정보 처리 층보다 다른 객체를 이용하여 진행하기 위해 정보 처리를 행하는 모드로 현장감을 생성하고 직관적인 동작을 가능하도록 하기 위해, 지각된 어포던스(perceived affordance)를 제공하는 것이 중요하다. 예를 들어 차량의 스티어링 휠의 형상, 권총의 형상 등과 같은 실물의 형상에 가까운 형상을 가지고, 유사한 동작을 수행할 수 있는 장치가 제공될 수 있지만, 이용의 관점에서 제한된다. 이용의 범위는 장치의 형상이 가변적일 때 넓어진다. 그러나, 이에 따라 형상 또는 움직임의 변화를 측정하기 위한 장치가 필요하게 된다.
예를 들어, NPL 1에 개시된 기술에서, 적외선 LED와, 적외선 LED의 광을 수신하는 광 센서는 부분의 회전 각도를 측정하고, 부분의 형상을 식별하기 위해 부분의 결합부에 포함된다. 이 경우에, 측정 가능한 회전 각도는 제한되며, 따라서 형상의 가변 범위도 제한된다. 또한, 모든 부분은 소자들을 포함하여 제조 비용이 증가될 수 있다. 따라서, 장치의 형태가 유연할수록 장치의 형태를 측정하기 위한 메커니즘이 더 복잡해진다. 결과적으로, 제조 비용과 처리 비용이 증가되는 경향이 있다.
[PTL 1] WO 2007/050885 A2
[NPL 1] Posey: Instrumenting a Poseable Hub and Strut Construction Toy, Michael Philetus Weller, Ellen Yi-Luen Do, Mark D Gross, Proceedings of the Second International Conference on Tangible and Embedded Interaction, 2008, pp. 39-46
본 발명은 이러한 문제를 고려하여 제조되었다. 본 발명의 목적은 자유롭게 형성될 수 있는 장치를 이용하여 다양한 고급 표현을 실현하기 위한 것이다.
본 발명의 모드는 정보 처리 장치에 관한 것이다. 정보 처리 장치는, 개별적으로 제조된 블록을 서로에 결합함으로써 형성되는 조립된 장치로부터의 통신 블록의 구조에 관련된 정보를 획득하는 구조 정보 수신부로서, 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 통신 블록과 다른 비통신 블록을 포함하는 구조 정보 수신부; 조립된 장치를 촬영하여 획득된 이미지로부터 조립된 장치의 전체 이미지 및 위치를 획득하고, 통신 블록의 구조에 관련된 정보와 조립된 장치의 전체 이미지 및 위치를 통합함으로써 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하는 구조 분석부; 및 상태 정보에 기초하여 정보 처리를 수행하는 정보 처리부를 포함한다.
본 발명의 다른 모드는 정보 처리 시스템에 관한 것이다. 정보 처리 시스템은 서로 결합될 수 있는 복수의 블록을 포함하는 조립 장치; 및 조립된 장치로부터의 입력 신호에 기초하여 정보 처리를 수행하는 정보 처리 장치를 포함하는 정보 처리 시스템이며, 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 통신 블록과 다른 비통신 블록을 포함하며, 정보 처리 장치는, 조립된 장치로부터의 통신 블록의 구조에 관련된 정보를 획득하는 구조 정보 수신부, 조립된 장치를 촬영하여 획득된 이미지로부터 조립된 장치의 전체 이미지 및 위치를 획득하고, 통신 블록의 구조에 관련된 정보와 조립된 장치의 전체 이미지 및 위치를 통합함으로써 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하는 구조 분석부; 및 상태 정보에 기초하여 정보 처리를 수행하는 정보 처리부를 포함한다.
본 발명의 또 다른 모드는 블록 시스템에 관한 것이다. 블록 시스템은 서로 결합될 수 있는 복수의 블록을 포함하는 블록 시스템이며, 복수의 블록은 블록 간의 접속 상태에 관련된 정보를 다른 블록으로 전송하고 다른 블록으로부터 수신할 수 있는 통신 메커니즘을 가진 통신 블록, 및 통신 블록과 다른 비통신 블록을 포함하며, 통신 블록 중 적어도 하나는 통신 블록의 구조에 관련된 정보를 외부 정보 처리 장치로 전송하는 통신 메커니즘을 더 포함하고, 통신 블록의 구조에 관련된 정보는 정보 처리 장치가 블록 시스템의 촬영된 이미지로부터 획득된 정보와 통신 블록의 구조에 관련된 정보를 통합함으로써 블록 시스템의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하기 위해 접속 상태에 관련된 정보를 통합함으로써 형성된다.
본 발명의 또 다른 모드는 정보 처리 방법에 관한 것이다. 정보 처리 방법은, 개별적으로 제조된 블록을 서로에 결합함으로써 형성되는 조립된 장치로부터의 통신 블록의 구조에 관련된 정보를 획득하는 단계로서, 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 통신 블록과 다른 비통신 블록을 포함하는 획득하는 단계; 조립된 장치를 촬영하여 획득된 이미지로부터 조립된 장치의 전체 이미지 및 위치를 획득하고, 통신 블록의 구조에 관련된 정보와 조립된 장치의 전체 이미지 및 위치를 통합함으로써 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하고, 상태 정보를 메모리에 저장하는 단계; 및 메모리로부터 상태 정보를 판독하고, 상태 정보에 기초하여 정보 처리를 수행하는 단계를 포함한다.
방법, 장치, 시스템, 컴퓨터 프로그램, 컴퓨터 프로그램이 기록되는 기록 매체 등 사이에서 본 발명의 표현을 변환함으로써 획득되는 위의 구성 요소 및 모드의 임의의 조합은 또한 본 발명의 모드로서 효과적인 것이 주목되어야 한다.
본 발명에 따르면, 자유롭게 형성될 수 있는 장치를 이용하여 다양한 고급 표현을 실현할 수 있다.
도 1은 본 실시예가 적용될 수 있는 정보 처리 시스템의 구성의 일례를 도시하는 다이어그램이다.
도 2는 본 실시예에서 블록 세트의 외관의 일례를 도시하는 다이어그램이다.
도 3은 도 1에 도시된 블록 세트의 통신 블록의 구조만을 도시한 다이어그램이다.
도 4는 중심 축이 본 실시예에서 도출되는 코어의 중심 축을 개략적으로 도시한 다이어그램이다.
도 5는 본 실시예에서 블록 세트에 포함된 통신 블록의 내부 구성의 일례를 개략적으로 도시하는 다이어그램이다.
도 6은 본 실시예에서 블록 세트 및 정보 처리 장치의 상세 구성으로 도시한 다이어그램이다.
도 7은 본 실시예에서 블록 세트에서의 정보 전송 경로 및 전송된 정보의 일례를 개략적으로 도시한 다이어그램이다.
도 8은 본 실시예에서 통신 블록에 대한 기본 정보의 데이터의 구조의 일례를 도시한 다이어그램이다.
도 9는 본 실시예에서 비통신 블록을 포함하는 블록 세트의 상태를 식별하는 기본 처리를 설명하는데 지원하는 다이어그램이다.
도 10은 본 실시예에서 비통신 블록에 대한 기본 정보의 데이터의 구조의 일례를 도시하는 다이어그램이다.
도 11은 본 실시예에서 시간 진화(time evolving) 방식으로 블록 세트의 형상을 식별하는 처리를 설명하는데 지원하는 다이어그램이다.
도 12는 구조가 본 실시예에서 변화한 블록 세트의 형상을 식별하는 처리를 설명하는데 지원하는 다이어그램이다.
도 13은 본 실시예에서 코어의 조인트(joint) 각도의 변화로 인해 수정되는 블록 세트의 형상을 식별하는 처리를 설명하는데 지원하는 다이어그램이다.
도 14는 본 실시예에서 비통신 블록을 포함하는 블록 세트의 상태를 식별하기 위한 처리 절차를 도시하는 흐름도이다.
도 15는 본 실시예에서 실현될 수 있는 블록 세트와 디스플레이 사이의 관계를 예시한 다이어그램이다.
도 16은 본 실시예에서 외관이 블록 세트에 설정되는 경우에 블록 세트와 디스플레이 사이의 관계를 예시한 다이어그램이다.
도 17은 본 실시예에서 하나의 3D 객체가 조립된 블록 세트와 관련되는 경우에 블록 세트와 디스플레이 사이의 관계를 예시한 다이어그램이다.
도 18은 본 실시예에서 블록 세트 및 3D 객체의 움직임을 서로 관련시키는데 필요한 정보를 예시한 다이어그램이다.
도 19는 본 실시예에서 정보 처리 장치가 블록 세트 및 3D 객체의 움직임을 서로 관련시키는 처리 절차를 도시하는 흐름도이다.
도 20은 도 19의 S46에서 사용자에 의해 모델 선택 입력을 수신하기 위해 디스플레이 장치에 표시된 스크린의 일례를 도시한 다이어그램이다.
도 21은 도 19의 S48에서 블록 세트 및 선택된 모델에 공통인 좌표계를 설정하기 위해 디스플레이 장치에 표시된 스크린의 일례를 도시한 다이어그램이다.
도 22는 본 실시예에서 객체가 등록 시에 두 블록과 디스플레이 스크린의 전환의 일례에 의해 생성될 때 블록 세트를 도시한 다이어그램이다.
도 23은 본 실시예에서 일대일로 서로 관련된 조인트가 동일한 각도로 움직이는 경우를 예시한 다이어그램이다.
도 24는 본 실시예에서 두 그룹화된 조인트가 하나의 조인트와 관련되는 경우에 각각의 조인트의 각도 사이의 대응 관계의 일례를 도시한 다이어그램이다.
도 25는 본 실시예에서 두 조인트가 그룹화되어 하나의 조인트와 관련되는 경우에 각각의 조인트의 각도 사이의 대응 관계의 다른 예를 도시한 다이어그램이다.
도 26은 본 실시예에서 일대일로 서로 관련된 조인트의 각도의 변화가 상이하게 이루어지는 경우를 예시한 다이어그램이다.
도 27은 본 실시예에서 블록 세트의 하나의 조인트가 3D 객체의 복수의 조인트와 관련되는 일례를 도시한 다이어그램이다.
도 28은 도 19의 S52에서 블록 세트와 3D 객체의 움직임 사이의 대응 관계를 설정하기 위해 디스플레이 장치에 표시된 스크린의 일례를 도시한 다이어그램이다.
도 29는 본 실시예에서 블록 세트 및 3D 객체의 대응하는 위치와 각각의 대응하는 위치의 움직임 사이의 대응 관계에 대한 정보의 데이터 구조의 일례를 도시한 다이어그램이다.
도 30은 본 실시예에서 3D 객체와 블록 세트의 움직임 사이의 대응 관계를 설정하기 위한 처리 절차를 도시한 흐름도이다.
도 31은 본 실시예에서 블록 세트의 휠에 관한 설정이 복합 링크로 확장되는 경우를 설명하는데 지원하는 다이어그램이다.
본 실시예에서, 복수의 블록은 조립되거나 수정되고, 블록의 형상, 자세, 위치는 정보 처리를 위한 입력 값으로서 이용된다. 즉, 이러한 블록은 정보 처리 장치에 대한 입력 장치로서 간주될 수 있다. 또한, 조립된 블록의 형상, 자세 및 위치가 정보 처리 장치에 의해 수행되는 처리의 결과를 반영하기 위해 변경되는 경우가 있다. 이 경우에, 블록은 정보 처리 장치에 대한 출력 장치로 간주된다. 이 경우에 정보 처리 장치에 의해 수행되는 처리는 특별히 한정되지 않으며, 이의 바람직한 모드는 나중에 예시될 것이다. 이러한 블록의 단일체 또는 블록의 조립체는 이하 총칭하여 "블록 세트"로 지칭될 것이다. 또한, 나중에 설명되는 바와 같이, 블록 세트는 옷 장식, 점토 작업 등을 모방하는 것과 같이 일반적인 의미에서 블록과 다른 객체를 포함할 수 있고, 객체의 형상 및 재료는 한정되지 않는다. 이들 객체를 포함하는 블록은 이하 "블록"으로 지칭될 것이다.
도 1은 본 실시예가 적용될 수 있는 정보 처리 시스템의 구성의 일례를 도시한다. 정보 처리 시스템(2)은 블록 세트(120), 블록 세트(120)를 이미징하는 카메라(122), 입력 장치 또는 출력 장치로서의 블록 세트(120)로 미리 정해진 정보 처리를 수행하는 정보 처리 장치(10), 정보 처리 장치(10) 상에서 사용자 조작을 수신하는 입력 장치(14), 이미지로서 정보 처리 장치에 의해 출력된 데이터를 표시하는 디스플레이 장치(16)를 포함한다.
정보 처리 장치(10)는 예를 들어 게임 장치 또는 개인용 컴퓨터일 수 있고, 필요한 응용 프로그램을 적재함으로써 정보 처리 기능을 구현할 수 있다. 디스플레이 장치(16)는 액정 디스플레이, 플라즈마 디스플레이, 유기 EL 디스플레이 등과 같은 통상의 디스플레이일 수 있다. 디스플레이 장치(16)는 또한 이러한 디스플레이 및 스피커 중 하나를 포함하는 텔레비전 세트일 수 있다. 입력 장치(14)는 게임 제어기, 키보드, 마우스, 조이스틱, 디스플레이 장치(12)의 스크린 상에 배치된 터치 패드 등, 또는 이들의 임의의 조합과 같은 통상의 입력 장치 중 하나일 수 있다.
카메라(122), 입력 장치(14) 및 디스플레이 장치(16)에 대한 정보 처리 장치(10)의 접속은 유선에 의해서든 무선에 의해서든 이루어질 수 있고, 다양한 네트워크를 통해 이루어질 수 있다. 대안적으로, 카메라(122), 정보 처리 장치(10), 입력 장치(14) 및 디스플레이 장치(16) 중 둘 이상 또는 모두는 조합되어 일체로 제공될 수 있다. 또한, 카메라(122)는 디스플레이 장치(16)에 반드시 장착될 필요는 없다. 정보 처리 장치(10)에 의해 처리되는 내용에 따라 복수의 블록 세트(120)가 있을 수 있다. 블록 세트(120) 및 정보 처리 장치(10)는 블루투스(등록된 상표) 프로토콜, IEEE 802.11 프로토콜 등을 이용하여 무선 접속을 확립한다. 대안적으로, 블록 세트(120)의 하나의 블록 및 정보 처리 장치(10)는 케이블을 통해 서로 접속될 수 있다.
상술한 바와 같이, 본 실시예에 따른 블록 세트(120)는 정보 처리 장치(10)에 대한 입력 장치로서 이용될 수 있거나, 정보 처리 장치(10)에 대한 출력 장치로서 이용될 수 있다. 특히, 전자의 경우에, 정보 처리 장치(10)는 입력 값으로서 블록 세트(120)의 위치, 자세, 또는 형상을 변경하는 사용자의 결과를 이용하여 정보 처리를 수행한다. 후자의 경우에, 정보 처리 장치(10)는 사용자에 의해 입력 장치(14)의 동작에 따라 정보 처리를 수행하고, 정보 처리의 결과로서 블록 세트(120) 자체를 움직인다. 본 실시예는 모드 둘 다를 구현할 수 있도록 구성될 수 있거나, 모드 중 하나만을 구현할 수 있도록 구성될 수 있다.
도 2는 블록 세트를 구성하는 개개의 블록의 외관의 일례를 도시한다. 본 실시예에서, 블록은 대략 2 종류로 분류된다. 하나는 다른 블록 또는 정보 처리 장치(10)와 통신할 수 있도록 구성된 블록이다. 다른 하나는 통신 수단 없는 블록이다. 이하, 전자는 "통신 블록"으로 지칭될 것이고, 후자는 "비통신 블록" 으로 지칭될 것이다. 통신 블록은 다른 블록과 통신하기 위한 메커니즘 이외에 블록의 방향, 각도, 위치 등과 같은 물리량을 측정하는 다양한 종류의 센서를 포함할 수 있다.
도면에 도시된 바와 같이, 블록이 통신 블록이든 비통신 블록이든 무관하게, 블록은 사각 프리즘 블록(102a, 102b ??및 102c), 정육면체 블록(102d), 원통 블록(102f 및 102k), 구형 블록(102e), 판형 블록(102i), 직육면체 블록(102j) 등과 같은 다양한 형상을 가질 수 있다. 각 블록에는 미리 정해진 크기 및 형상을 가진 돌출부(104) 및 오목부(106)가 제공된다. 블록은 돌출부(104)를 오목부(106)에 삽입함으로써 원하는 위치에서 서로 결합될 수 있다. 대안적으로, 직육면체 블록(102j), 원통 블록(102k) 등과 마찬가지로, 블록에는 다른 블록 자체가 맞을 수 있고, 이에 의해 다른 블록을 포함할 수 있는 형상을 가진 오목부(107)가 제공될 수 있다.
블록 세트는 서로 결합된 블록 사이의 간격을 조정하기 위해 상이한 블록의 오목부(106)에 삽입될 수 있는 두 단부를 가진 조인트 블록(102g 및 102h)을 더 포함할 수 있다. 또한, 조인트 블록은 회전 등에 의해 서로 접속된 블록 사이에서 위치 및 자세 관계를 변화시킬 수 있다.
통신 블록의 돌출부(104) 및 오목부(106)는 또한 블록 사이의 신호 전송을 가능하게 하는 단자의 역할을 한다. 이를 위해, 각각의 부분의 단부에는 블록 내에 제공된 버스 등의 표준에 따르는 구조를 갖는 커넥터가 제공된다. 블록 간의 신호 전송 및 물리적 결합은 늘리 이용되는 다양한 종류의 커넥터를 사용하거나 전용 특정 커넥터를 제공함으로써 동시에 달성될 수 있다. 또한, 신호 전송의 경로가 별도로 준비될 수 있고, 결합 위치가 별도로 식별될 수 있는 경우, 블록을 서로 접속하기 위한 수단은 돌출부(104)와 오목부(106) 사이의 결합으로 한정되지 않고, 후크 및 루프 패스너, 자석, 접착 테이프, 접착제 등에 의해 실현될 수 있다. 경로가 별도로 준비되는 신호 전송의 경로는 무선 통신의 메커니즘일 수 있다.
또한, 통신 블록의 어떤 블록(도 2의 경우의 사각 프리즘 블록(102b)은 두 블록, 두 블록이 굽힘 및 신장될 수 있도록 하는 굽힘 및 신장 샤프트(110), 및 블록 사이에 형성된 각도를 검출하는 전위차계를 포함할 수 있다. 또한, 도면에 도시된 바와 같이 하나의 블록을 관통하는 굽힘 및 신장 샤프트(110)의 두 단부가 다른 블록의 돌출부와 결합되는 형태 이외에, 굽힘 및 신장 메커니즘은 2개의 블록이 힌지, 굽힘 및 신장될 수 있는 금속 등에 의해 서로 결합될 수 있는 형태일 수 있거나, 메커니즘이 구체 조인트 인형(ball-jointed doll)의 조인트와 유사한 복수의 자유도를 갖는 메커니즘 등일 수 있으며. 특히 한정되지 않는다. 블록 사이의 각도는 지속적으로 변화할 수도 있거나, 복수의 단계로 변경 가능하다. 또한, 샤프트의 방향은 도면에 도시된 것으로 한정되지 않는다.
구성 요소로서 블록 사이의 각도는 바람직하게는 사용자가 블록을 치운 후에도 유지된다. 또한, 블록 사이의 각도는 전위차계와 다른 각도 센서에 의해 측정될 수 있다. 예를 들어, 블록이 다른 블록에 대한 상대 각도를 측정하는 센서를 포함하는 경우, 블록은 반드시 서로 접속될 필요는 없다. 게다가, 나중에 설명되는 바와 같이, 하나의 블록은 굽힘 및 신장될 수 있거나 회전될 수 있도록 구성될 수 있고, 블록의 굽힘 및 신장 각도 또는 회전 각도는 측정될 수 있다.
이하, 이와 같이 각도를 가변적이게 하기 위한 메커니즘은 "조인트"로 지칭될 수 있고, 상대 각도가 조인트의 움직임에 따라 변화하는 두 블록은 "링크"로 지칭될 수 있다. 또한, 이와 같이 조인트를 가진 통신 블록의 조인트 각도는 정보 처리 장치(10)로부터의 요청에 따라 제어될 수 있다. 이 경우에, 통신 블록에는 서보모터 등과 같이 조인트 각도를 제어하기 위한 액추에이터가 제공된다.
또한, ?v신 블록의 어떤 블록(도 2의 경우의 판형 블록(102i))은 측면으로부터 돌출하는 회전 가능한 샤프트(109)를 가질 수 있다. 복수의 샤프트(109) 상에 장착된 휠은 블록이 차량의 경우에서와 같이 움직일 수 있도록 한다. 움직임이 블록을 누름으로써 사용자에 의해 실현될 수 있거나, 정보 처리 장치(10)로부터의 요청에 따라 실현될 수 있다. 후자의 경우에, 통신 블록에는 샤프트를 회전시키기 위한 모터 등과 같은 액추에이터가 제공된다. 샤프트(109)가 차축인 경우에, 휠의 방향을 변경하기 위한 랙 및 피니언 등과 같은 메커니즘이 제공될 수 있으며, 이러한 메커니즘은 또한 정보 처리 장치(10)로부터의 요청에 따라 액추에이터에 의해 제어할 수 있게 된다.
또한, 통신 블록의 어떤 블록은 복수의 가속도 센서, 자이로 센서, 지자기 센서 등 중 하나 또는 조합, 및 객체 또는 객체의 형상 자체에 부착된 카메라 또는 마커를 이용하여 자세를 추적하는 방법과 같은 움직임 감지 기능 등을 포함한다. 센서뿐만 아니라 포함될 센서의 종류 및 조합을 포함하는 블록은 블록 세트를 이용함으로써 실현될 정보 처리에 따라 결정된다. 대안적으로, 센서뿐만 아니라 포함될 센서의 종류 및 조합을 포함하는 블록은 조립 시에 다양한 변형에서 사용자에 의해 선택된다.
또한, 통신 블록의 어떤 블록(도 2의 경우의 사각 프리즘 블록(102a))에는 마커(108)가 제공된다. 마커(108)는 나중에 설명되는 카메라에 의해 촬영된 이미지로 마커(108)의 위치 및 크기로부터 3차원 공간에서의 위치를?? 식별하는 데 이용된다. 따라서, 마커(108)는 매칭 처리 등에 의해 촬영된 이미지로부터 검출될 수 있는 크기, 형상 및 색상을 갖기 위해 형성된다. 예를 들어, 마커(108)는 광학적으로 투명한 구형 수지 내에서 발광 다이오드, 전구 등과 같은 통상의 발광 몸체를 포함하는 구형 몸체일 수 있거나, 마커(108)는 바코드, 2차원 코드 등일 수 있다. 복수의 블록이 마커(108)를 구비하는 경우, 마커(108)는 하나의 블록에서 다른 블록으로 색상이 변화될 수 있다.
통신 블록 및 비통신 블록의 외부 쉘은 통상적으로 합성 수지로 형성된다. 그러나, 통신 블록 및 비통신 블록의 외부 쉘의 재료는 한정되지 않고, 금속, 유리 등일 수 있다. 비통신 블록이 특히 통신 메커니즘 등을 포함하지 않기 때문에, 비통신 블록의 재료, 형상 및 크기는 자유롭게 결정될 수 있다. 예를 들어, 비통신 블록은 천을 이용하여 만들어진 의복, 고무를 이용하여 만들어진 인형의 머리 등과 같은 다양한 종류의 부분일 수 있거나, 무기, 액세서리 등과 같은 부가적인 것일 수 있다. 비통신 블록은 사용자 자신에 의해 만들어질 수 있다. 비통신 블록은 예를 들어 지우개, 점토 작업, 종이로 만들어진 작업편, 접는 종이에 의해 만들어진 작업편 등을 깎음으로써 형성된 고체일 수 있다. 게다가, 비통신 블록은 예를 들어 통신 블록 또는 이미지를 표시하는 디스플레이 장치로부터 통전됨으로써 미리 정해진 색상의 광을 방출하는 LED를 갖는 블록일 수 있다.
본 실시예에 따른 정보 처리 장치(10)는, 정보가 통신 블록과의 통신에 의해 획득될 수 있는 블록 세트의 골격 형상, 자세 등에 대한 정보, 및 카메라(122)에 의해 촬영된 외부 형상에 대한 정보를 상호 보완적으로 고 정밀도로 블록의 상태를 식별한다. 따라서, 블록 세트의 외관은 비통신 블록을 이용함으로써 자유롭게 표현될 수 있다. 예를 들면, 도 2에서 직육면체 블록(102j) 또는 원통 블록(102k)과 같은 통신 블록을 포함하는 형상을 갖는 블록은 비통신 블록으로서 실현될 수 있다.
도 3은 도 1에 도시된 블록 세트(120)의 통신 블록의 구조만을 도시한다. 특히, 도면의 블록 세트(120)는 도 1의 블록 세트(120)로부터의 비통신 블록으로서 직육면체 블록(102j) 및 원통 블록(102k)을 제외하여 형성되고, 블록 중 도 2에 도시된 사각 프리즘 블록(102a 및 102b), 정육면체 블록(102d), 및 조인트 블록(102h)에 의해 형성되며, 사각 프리즘 블록(102b) 및 정육면체 블록(102d)의 하부 블록은 비통신 블록이고 도 1의 블록 세트(120)에서 각각 직육면체 블록(102j) 및 원통 블록(102k)에 의해 포함된다. 따라서, 사각 프리즘 블록(102b) 및 정육면체 블록(102d)의 하부 블록은 외부에서 볼 수 없다. 이러한 통신 블록으로 구성되는 구조는 또한 블록 세트(120)의 전체의 골격을 구성하는 것으로 간주될 수 있다. 조립된 블록 세트(120)의 통신 블록으로 구성되는 부분은 이하 "코어"로 지칭될 것이다.
본 실시예는 코어를 구성하는 통신 블록에 포함되는 모션 센서 및 전위차계에 의해 필요한 파라미터를 검출함으로써 블록 세트(120)의 자세 및 형상을 효율적으로 계산한다. 예를 들어, 도 3의 블록 세트(120a)의 경우에, 각 블록의 방향 및 차례로 블록 세트(120)의 중심 축의 형상 및 자세는 (1) 각 블록의 위치 및 블록의 종류의 결합 위치, (2) 사각 프리즘 블록(102a 및 102b)의 경사 벡터(ml), (3) 사각 프리즘 블록(102b)을 구성하는 두 블록간의 각도
Figure pct00001
, 및 (4) 각각의 블록의 길이(L1, L2, L3, L4 및 L5)에 기초하여 도출될 수 있다.
상술한 (1) 및 (4)가 블록 사이의 신호 전송에 의해 식별되고, 상술한 (3)가 전위차계에 의해 측정될 수 있다고 가정하면, 그것은 상술한 (2)를 측정하기 위해 사각 프리즘 블록(102a 및 102b)의 모션 센서를 포함하는데 필요하고 충분하다. 대안적으로, 그것은 사각 프리즘 블록(102a 또는 102b)으로서 모션 센서를 포함하는 블록을 선택하는데 충분하다.
더욱이, 현실 세계의 3차원 공간에서의 블록 세트의 위치 좌표는 카메라(122)에 의해 촬영된 이미지를 이용하여 식별된다. 여기서, 카메라(122)가 스테레오 카메라인 경우, 카메라(122)와 카메라의 필드 평면(field plane)에 대하여 깊이 방향으로 형성되는 3차원 공간에서의 블록 세트의 절대 위치를 얻을 수 있다. 서로 상이한 좌측 시점 및 우측 시점으로부터 스테레오 카메라에 의해 촬영된 이미지에서의 시차를 이용하여 삼각 측량의 원리에 따라 3차원 공간에서의 객체의 위치를?? 획득하는 기술은 널리 알려져 있다. 양안 입체시(binocular stereopsis)와 다른 깊이 또는 3차원 정보 획득 수단은 스테레오 카메라 대신에 이용될 수 있다. 예를 들어, 시점 이동 카메라(viewpoint moving camera)가 이용될 수 있거나, 블록 세트의 위치는 적외선 조사 메커니즘 및 반사된 광을 검출하는 적외선 센서를 이용하여 비행 시간(TOF)의 방법에 의해 식별될 수 있다. 터치 패널은 블록 세트(120)가 놓여지는 스탠드의 상부 표면 상에 제공될 수 있고, 블록 세트(120)가 놓여지는 위치는 터치 패널에 의해 검출될 수 있다.
대안적으로, 도면에 도시된 바와 같이, 마커(108)를 구비한 사각 프리즘 블록(102a)이 이용되는 경우에, 정지 영상 또는 단안 카메라(122)에 의해 촬영된 동영상의 프레임 이미지에 기초하여 위치는 식별될 수 있다. 상술한 바와 같이 마커(108)가 알려져 있는 색상?, 휘도 및 크기를 갖는 발광체인 경우, 마커의 이미지는 촬영된 이미지로부터 쉽게 검출될 수 있다. 그 후, 3차원 공간에서의 마커의 위치 좌표(x1, y1, z1)는 촬영된 이미지에서의 마커의 이미지의 위치 및 크기로부터 식별될 수 있다. 다른 마커가 사용되는 경우에, 패턴 매칭, 특징 포인트 추출 등과 같은 통상의 이미지 인식 기술이 적용될 수 있다. 블록 세트(120)가 이동되고, 이동하는 블록 세트(120)가 동영상으로 촬영되는 경우에, 기존의 추적 기술을 적용함으로써 효율적인 검출이 수행될 수 있다.
또한, 마커(108)는 적외선 등과 같은 비가시광을 방출하는 장치일 수 있다. 이 경우에, 비가시광을 검출하는 장치는 마커(108)의 위치를 검출하기 위해 별도로 도입된다. 마찬가지로, 깊이 센서, 초음파 센서, 소리 센서 등이 이용될 수 있다. 최종 위치 좌표는 상술한 절대 위치 검출 방법 중 둘 이상을 조합함으로써 계산될 수 있다. 도 4는 이와 같이 도출된 코어의 중심 축을 개략적으로 도시한다. 도면에 도시된 바와 같이, 3차원 공간에서의 중심 축(124)의 위치, 자세, 형상이 식별된다. 3차원 공간은 카메라(122)의 카메라 좌표계일 수 있거나, 카메라(122)의 카메라 좌표계가 변환되는 원하는 좌표계일 수 있다. 코어 또는 블록 세트의 위치, 자세 및 형상은 이하 총칭하여 "상태"로 지칭될 수 있다.
도 5는 통신 블록의 내부 구성의 일례를 개략적으로 도시한다. 상술한 바와 같이, 블록은 블록의 내부 구성으로서 다양한 변형을 제공함으로써 용도에 따라 적절하게 이용될 수 있다. 게다가, 코어의 상태를 식별할 필요가 있는 것으로 추정되는 센서가 복수의 블록으로 분배되도록 제공되는 경우에, 센서의 과도한 포함이 회피될 수 있으며, 따라서 제조 비용이 감소될 수 있다.
도 5의 예에서, 블록(126a)은 배터리(128a), 통신 메커니즘(130a), 메모리(132a), 위치 센서(134), 및 모션 센서(136a)를 포함한다. 이 경우에, 통신 메커니즘(130a)은 접속 단자를 통해 다른 블록으로부터 신호를 수신하는 유선 통신 메커니즘뿐만 아니라 정보 처리 장치(10)와의 무선 통신을 수행하는 메커니즘을 포함한다. 메모리(132a)는 블록(126a)의 식별 번호를 보유한다. 식별 번호는 정보 처리 장치(10)에서 블록(126a)의 크기, 블록(126a)의 오목부 및 돌출부의 위치 등과 같은 정보와 관련된다. 동일한 식별 번호는 동일한 종류의 블록에 제공될 수 있다. 대안적으로, 식별 번호는 조립된 블록 세트 등 내의 신호 전송의 라우팅을 위해 이용 가능하도록 각 블록에 대해 고유하게 설정될 수 있다.
위치 센서(134)는 블록(126a)의 절대 위치를 획득하기 위한 센서이다. 위치 센서(134)는 또한 이미지 인식을 위한 마커를 포함한다. 그러나, 상술한 바와 같이, 마커의 경우에, 절대 위치는 마커와 외부에 설치된 카메라(122)의 조합에 의해 검출된다. 상술한 바와 같이, 모션 센서(136a)는 가속도 센서, 자이로 센서 및 지자기 센서, 카메라를 이용하는 방법 등 중 둘 이상의 하나 또는 조합이다.
블록(126b)는 배터리(128b), 통신 메커니즘(130b), 메모리(132b), 및 모션 센서(136b)를 포함한다. 메커니즘은 블록(126a)에 대한 상술한 메커니즘과 유사할 수 있다. 그러나, 통신 메커니즘(130b)은 다른 블록으로부터의 신호를 수신하는 유선 통신 메커니즘만에 의해 형성될 수 있다. 이러한 블록은 정보 처리 장치(10)와 통신할 수 있는 블록(126a)과 조합하여 이용된다. 이는 다른 블록의 통신 메커니즘과도 마찬가지다.
블록(126c)은 배터리(128c), 통신 메커니즘(130c), 메모리(132c), 각도 센서(138) 및 액추에이터(139a)를 포함한다. 블록(126c)은 도 2의 사각 프리즘 블록(102b)과 같은 조인트를 갖는 통신 블록이다. 각도 센서(138)는 조인트 각도를 검출하는 전위차계 등과 같은 센서이다. 액추에이터(139a)는 정보 처리 장치(10)로부터의 제어 신호에 따라 조인트 각도를 변화시킨다. 액추에이터의 종류에 대응하는 통상의 기술은 제어 신호에 따라 액추에이터의 구동을 위해 채용될 수 있다.
블록(126d)은 배터리(128d), 통신 메커니즘(130d), 메모리(132d), 로터리 인코더(141) 및 액추에이터(139b)를 포함한다. 블록(126d)은 도 2의 판형 블록(102i)과 같이 외부로 돌출하는 회전 가능한 샤프트를 갖는 통신 블록이다. 블록(126d)에 휠이 설치되면, 블록(126d) 자체는 수동 또는 자동으로 추진될 수 있다. 대안적으로, 샤프트 및 휠은 사전에 일체로 제공될 수 있다.
로터리 인코더(141)는 휠의 회전량을 감지하는 센서이다. 액추에이터(139b)는 정보 처리 장치(10)로부터의 제어 신호에 따라 휠을 회전시키는 모터 등이다. 블록(126e)은 통신 메커니즘(130e) 및 메모리(132e)를 포함한다. 즉, 블록(126e)은 배터리도 포함하지 않고 센서도 포함하지 않는다. 따라서, 블록(126e)은 배터리를 포함하는 다른 블록(126a 또는 126b)과 조합하여 이용된다.
또한, 도 5의 통신 블록은 단순한 예이며, 다양한 종류의 센서 및 다른 메커니즘은 임의의 방식으로 조합될 수 있다. 예를 들어, 조인트 및 차축뿐만 아니라 스티어링 방향을 변경하고 블록의 일부분을 변위시키는 메커니즘은 블록 세트의 이동 부분으로서 제공될 수 있다. 이러한 메커니즘은 정보 처리 장치(10)로부터의 제어 신호에 따라 구동되는 액추에이터에 의해 이동될 수 있다. 게다가, LED 또는 디스플레이 장치가 제공될 수 있다. 접속된 비통신 블록을 통전하는 메커니즘이 제공될 수 있다. 또한, 도면에 도시된 센서 이외에, 실제 사용에서 어떤 센서가 포함될 수 있다.
이러한 다양한 내부 구성을 갖는 통신 블록은 도 2에 도시된 바와 같은 다양한 형태로 제조된다. 동일한 종류의 복수의 블록이 제조될 수 있다. 대안적으로, 모든 블록은 균일한 형상 및 균일한 크기를 가질 수 있거나, 균일한 내부 구성을 가질 수 있다. 형상 및 내부 구성이 변화되고, 다양한 종류의 블록이 개별적으로 구매될 수 있는 경우, 원하는 블록 세트는 각각의 개별 사용자의 용도에 따라 최소 비용으로 유연하게 조립될 수 있다. 조립될 수 있는 블록의 기본 세트가 먼??저 제공될 수 있고, 추가적인 블록은 나중에 구매될 수 있다.
도 6은 블록 세트(120) 및 정보 처리 장치(10)의 구성을 상세히 도시한다. 도 6에서 다양한 처리를 수행하는 기능 블록으로서 설명될 요소는 중앙 처리 장치(CPU), 메모리, 또는 하드웨어의 관점에서의 다른 LSI에 의해 구성될 수 있거나, 소프트웨어의 관점에서 메모리 등에 적재된 프로그램에 의해 구현될 수 있다. 또한, 이미 설명한 바와 같이, 블록 세트(120)의 블록은 통신 메커니즘, 메모리, 다양한 종류의 센서 및 액추에이터를 포함한다. 따라서, 이러한 기능 블록은 다양한 형태로 하드웨어만에 의해 구현되고, 소프트웨어만에 의해 구현되거나, 이의 조합에 의해 구현될 수 있으며, 이는 어느 하나의 형태에 한정되지 않는다는 것을 당업자는 이해할 것이다.
상술한 바와 같이, 블록 세트(120)는 각각의 블록을 선택하고 조립함으로써 사용자에 의해 형성된다. 도 6은 조립된 블록 세트의 코어의 부분의 기능 블록을 도시한다. 코어를 구성하는 통신 블록은 제 1 블록(142a), 제 2 블록(142b), 제 3 블록(142c),... 등으로 설정된다. 블록 세트(120)를 형성하는 통신 블록 중에서 정보의 복잡화를 방지하기 위해, 기본적으로 하나의 블록만이 정보 처리 장치(10)와의 통신을 확립한다. 따라서 제 1 블록(142a)은 허브의 역할로 부여된다. 그 다음, 정보는 제 1 블록(142a)에 먼 접속 관계의 통신 블록으로 전송이 개시되며, 전체 코어에 대한 정보는 제 1 블록(142a)에서 집계된다.
이하, 블록의 접속에서 제 1 블록(142a)에 비교적 가까운 블록은 "상위 레벨" 블록으로 지칭될 것이고, 블록의 접속에서 제 1 블록(142a)으로부터 비교적 떨어진 블록은 "하위 레벨" 블록으로 지칭될 것이다. 제 1 블록(142a)으로 설정될 하나의 블록은 사전에 정해질 수 있다. 대안적으로, 정보 처리 장치(10)와 통신하는 메커니즘을 갖는 블록에는 도면에 도시되지 않은 스위치 등이 제공될 수 있고, 스위치가 사용자에 의해 턴온되는 블록은 제 1 블록(142a)으로서 설정될 수 있다. 대안적으로, 먼저 조립 단계에서 정보 처리 장치(10)와의 통신을 확립하는 블록은 제 1 블록(142a)으로 설정될 수 있다.
사용자가 다른 통신 블록을 이와 같이 정해진 제 1 블록(142a)에 결합할 경우, 블록은 제 2 블록(142b)이 된다. 또 다른 통신 블록이 제 2 블록(142b)에 결합될 경우, 블록은 제 3 블록(142c)이 된다. 또한, 도면이 3개의 통신 블록만을 도시하지만, 코어를 구성하는 통신 블록의 수는 한정되지 않는다. 하나의 통신 블록 또는 4개 이상의 통신 블록의 구성 및 동작은 유사한 방식으로 고려될 수 있다.
제 1 블록(142a), 제 2 블록(142b) 및 제 3 블록(142c)은 각각 제 1 통신부(143a, 143b 및 143c), 요소 정보 획득부(144a, 144b 및 144c) 및 제 2 통신부(146a, 146b 및 146c)를 포함한다. 제 2 블록(142b)은 구동부(148)를 더 포함한다. 그러나, 구동부(148)는 다른 통신 블록 중 어느 하나에 제공될 수 있다. 제 1 통신부(143a, 143b 및 143c)는 제 1 통신부(143a, 143b 및 143c)에 직접 접속된 하위 레벨 블록으로부터 전송된 정보를 수신한다. 이 경우에 수신된 정보는 대응하는 블록보다 하위 레벨로 접속된 블록의 식별 번호, 결합 위치의 식별 번호, 내장 센서에 의한 측정의 결과치를 포함한다. 복수의 블록이 서로 결합될 때, 정보는 최하위 레벨의 블록으로부터의 블록을 통해 각 통로와 중첩된다.
요소 정보 획득부(144a, 144b 및 144c)는 대응하는 블록에 내장된 센서, 및 다른 블록을 접속하기 위한 위치에 제공된 단자를 포함한다. 요소 정보 획득부(144a, 144b 및 144c)는 센서에 의한 측정 결과와 하위 레벨의 블록이 접속되는 위치에 관한 정보를 획득한다. 제 2 통신부(146a, 146b 및 146c)는 대응하는 블록의 요소 정보 획득부(144a, 144b 및 144c)에 의해 획득된 정보를 제 1 통신부(143a, 143b 및 143c)에 의해 수신된 정보에 추가하며, 제 1 통신부(143a, 143b 및 143c)에 의해 수신된 정보는 하위 레벨 블록의 식별 번호, 결합 위치의 식별 번호, 및 내장 센서에 의한 측정의 결과치를 포함한다. 제 2 통신부(146a, 146b 및 146c)는 신호로서 생성된 정보를 직접 접속된 상위 레벨의 블록으로 전송한다. 그러나, 제 1 블록(142a)의 제 2 통신부(146a)는 이러한 정보를 정보 처리 장치(10)로 전송한다. 또한 제 2 통신부(146a)는 예를 들어 처리 개시 및 종료 요청 신호, 통신을 확립하는데 필요한 다양한 종류의 신호, 블록 세트의 액추에이터를 구동하기 위한 제어 신호 등을 정보 처리 장치(10)로부터 수신함으로써 정보 처리 장치(10)와의 인터페이스의 역할을 한다.
액추에이터를 구동하기 위한 제어 신호가 정보 처리 장치(10)로부터 전송 될 때, 신호는 제 1 블록(142a)에서 하위 레벨 블록으로 연속적으로 전달된다. 특히, 각각의 블록의 제 1 통신부(143a, 143b 및 143c)는 신호를 직접 접속된 하위 레벨 블록으로 전송한다. 각각의 블록의 제 2 통신부(146a, 146b 및 146c)는 직접 접속된 상위 레벨 블록으로부터 신호를 수신한다. 제 2 블록(142b)의 구동부(148)는 조인트 각도를 변경하거나 차축을 회전시키는 액추에이터를 포함한다. 제 2 블록(142b)이 상위 레벨 블록으로부터 전송되는 제어 신호로 구동될 객체로서 지정될 경우, 구동부(148)는 제어 신호에 대응하는 양만큼 액추에이터를 이동시킨다.
정보 처리 장치(10)는 블록 세트(120)의 제 1 블록(142a)으로부터 코어의 상태에 관한 정보를 수신하는 코어 정보 수신부(20); 카메라(122)에 의해 촬영된 이미지와 코어의 상태에 관한 정보에 기초하여 블록 세트(120)의 형상, 자세 및 위치를 식별하는 구조 분석부(22); 블록 세트(120)의 형상, 자세 및 위치에 따라 미리 정해진 정보 처리 또는 입력 장치(14)에 대한 사용자 조작을 수행하는 정보 처리부(30); 정보 처리의 결과로서 표시될 이미지를 생성하고, 이미지를 디스플레이 장치(16)로 출력하는 디스플레이 처리부(32); 및 블록 세트(120)의 동작을 제어하기 위한 신호를 전송하는 구동 제어부(34)를 포함한다. 정보 처리 장치(10)는 개개의 블록에 관한 정보를 저장하는 블록 정보 저장부(24); 디스플레이 장치(16) 상에 표시될 3D 객체의 모델 데이터를 저장하는 모델 데이터 저장부(26); 및 블록 세트 및 3D 객체의 부분 및 움직임 사이의 대응 정보를 저장하는 대응 정보 저장부(28)를 더 포함한다.
코어 정보 수신부(20)는 코어를 구성하는 통신 블록의 식별 번호, 통신 블록의 결합 위치, 내장된 센서에 의한 측정의 결과치에 관련된 정보를 포함하는 신호를 수신하며, 이러한 정보는 블록 세트(120)의 제 1 블록(142a)에 의해 집계된다. 구조 분석부(22)는 블록 세트(120)를 촬영함으로써 획득된 동영상 또는 정지 영상의 데이터를 카메라(122)로부터 획득한다. 그 후, 코어 정보 수신부(20)에 의해 수신된 정보와 촬영된 이미지로부터 획득된 정보는 블록 세트(120)의 전체의 위치, 자세 및 형상을 식별하도록 통합된다. 블록 세트(120)로부터의 신호 및 카메라(122)로부터의 이미지 데이터는 즉시 입력된다. 따라서, 시간적 대응은 블록 세트(120)로부터의 신호와 카메라(122)로부터의 이미지 데이터 사이에 설정되는 것으로 추정된다. 그러나, 동기 처리 등은 필요한 시간적 해상도에 따라 수행될 수 있다.
구조 분석부(22)는 코어 정보 수신부(20)로부터의 정보에 기초하여 블록 세트(120)의 코어의 형상 및 자세를 식별한다. 예를 들어, 도 3에서 L1 내지 L5에 대한 정보는 코어를 구성하는 통신 블록의 식별 번호에 기초하여 도출된다. 또한, 블록 사이에 형성된 결합 위치 및 각도는 실제 결합 위치의 식별 번호와 각도 센서의 정보로부터 식별된다. 또한, 도 3에서의 벡터(ml)는 모션 센서의 정보로부터 도출된다. 3차원 공간에서의 블록 세트(120)의 위치와 비통신 블록을 포함하는 블록 세트(120)의 표면의 형상에 관한 정보는 카메라(122)로부터 전송되는 촬영된 이미지, 촬영된 이미지로부터 생성된 깊이 이미지 등에 기초하여 식별된다.
이때에, 예를 들어 도 3의 마커(108) 등과 같이 코어에 포함된 통신 블록의 이미지는 이미지로부터 검출된다. 마커(108)는 기준 부분으로서 설정되고, 마커(108)의 위치는 깊이 이미지 등으로부터 도출된다. 그 후, 코어와 비통신 블록 사이의 위치 관계, 및 차례로 블록 세트의 전체의 위치, 자세 및 형상은 도 4에서의 중심 축과 같이 기준 부분으로부터 접속된 코어의 구조, 및 기준 부분의 이미지에 대한 비통신 블록의 이미지의 위치 관계로부터 식별될 수 있다. 이러한 처리가 미리 정해진 주파수에서 수행되는 경우, 사용자에 의해 조립되는 프로세스에서의 블록 세트의 구조는 실시간으로 인식될 수 있다.
블록 정보 저장부(24)는 블록 세트로서 이용된 블록에 대한 기본 정보를 저장한다. 통신 블록의 경우에, 기본 정보는 다른 블록이 접속될 수 있는 형상, 크기 및 위치에 관한 정보와 사전에 블록에 부여된 식별 번호를 관련시키는 정보이다. 비통신 블록의 경우에, 기본 정보는 색상, 패턴, 재료, 텍스처 등과 같은 외부 특징과 사전에 블록에 부여된 식별 번호를 관련시키는 정보이다. 비통신 블록의 경우에, 이러한 외부 특징이 더욱 상세할수록 블록을 식별하는 정확도는 높아진다. 그러나, 비통신 블록에 대한 정보는 정보 처리 장치(10)에 의해 수행된 정보 처리가 각각의 비통신 블록의 식별을 필요로 하지 않는 경우에는 저장될 필요가 없다.
정보 처리부(30)는 상태가 입력 장치(14)를 통해 구조 분석부(22) 또는 사용자 조작에 의해 식별되는 블록 세트(120)의 상태에 따라 수행될 처리를 수행한다. 예를 들어, 블록 세트(120)가 조립된 후, 블록 세트의 형상을 나타내는 3D 객체 또는 블록 세트와 관련된 모델의 3D 객체는 표시된다. 그 후, 표시된 3D 객체는 블록 세트(120)의 이동에 따라 이동하도록 행해진다. 대안적으로, 컴퓨터 게임이 시작되고, 입력 장치(14)를 통해 사용자 조작에 따라 진행하도록 행해지지며, 블록 세트(120)는 컴퓨터 게임의 진행에 따라 이동된다.
이를 위해, 모델 데이터 저장부(26)는 정보 처리부(30)에 의해 디스플레이 장치(16) 상에 표시된 객체 모델을 렌더링하는데 필요한 데이터를 저장한다. 이러한 객체 모델은 게임 등에 나타나는 캐릭터와 같이 사전에 설계될 수 있거나, 조립된 블록 세트에 따라 사용자에 의해 생성될 수 있다. 정보 처리부(30)는 블록 세트의 부분 및 조인트, 휠 등과 같은 객체를 서로 관련시키고, 블록 세트 및 객체 둘다의 부분의 움직임을 서로 더 관련시키기 위한 처리를 더 수행한다. 이때에, 정보 처리부(30)는 대응 관계(correspondences)의 모두를 설정할 수 있거나, 사용자가 관련성을 확립하고 설정 입력을 수신하도록 하는 설정 스크린을 표시할 수 있다. 대안적으로, 이들은 적절한대로 서로 조합될 수 있다. 대응 정보 저장부(28)는 이와 같이 부분 및 움직임의 설정된 대응 관계에 관한 정보를 저장한다.
따라서, 사용자가 블록 세트를 자유롭게 생성할 시에도, 블록 세트의 위치뿐만 아니라 블록 세트의 형상 및 자세도 스크린상의 객체와 연동될 수 있다. 예를 들어, 게임의 세계는 현실 세계에서 블록 세트에 반영될 수 있거나, 블록 세트의 움직임은 가상 세계에서의 캐릭터에 반영될 수 있다. 이때, 블록 세트 및 객체 둘 다의 움직임은 반드시 서로 완전히 동일할 필요는 없지만, 다양한 변경이 움직임을 연관시켜 설정될 수 있다. 또한, 움직임은 실시간으로 반영될 필요가 없다. 예를 들어, 시간의 경과로 사용자에 의해 이동된 블록 세트의 상태의 변화가 저장되는 경우, 대응하는 객체가 임의의 타이밍에서 움직임을 재생하는 모드가 실현될 수 있다. 결과적으로, 컴퓨터 게임 또는 애니메이션에서의 캐릭터의 움직임은 간단한 조작에 의해 생성될 수 있다.
정보 처리 장치(10)가 블록 세트(120)를 이동하는 모드에서, 구동 제어부(34)는 정보 처리부(30)로부터의 요청에 따라 제어 신호를 블록 세트(120)로 전송한다. 특히, 전송된 신호는 제어 시스템에 따라 변화하며, 일반적으로 로봇의 분야 등에서 이용되는 기술은 적절히 채용될 수 있다. 전송된 제어 신호는 블록 세트(120)의 제 1 블록(142a)의 제 2 통신부(146a)에 의해 수신되고, 블록 세트(120) 내에서 신호 전송에 의해 타겟 블록(도 6의 경우의 제 2 블록(142b))의 구동부(148)의 동작에 반영된다. 대안적으로, 제어 신호는 무선 통신 등에 의해 타겟 블록으로 직접 전송될 수 있다.
디스플레이 처리부(32)는 정보 처리부(30)에 의해 수행되는 처리의 결과로서 이미지 데이터를 생성하고, 디스플레이 장치(16) 상에 이미지 데이터를 표시한다. 블록 세트(120)의 움직임에 따라 이동하는 객체가 표시되는 예에서, 디스플레이 장치(16)의 출력 프레임 속도에서의 블록 세트(120)의 움직임에 대응하기 위해 객체는 렌더링되고, 디스플레이 장치(16) 상에서 비디오 신호로서 출력된다. 통상의 컴퓨터 그래픽 기술은 렌더링 처리 자체에 적용될 수 있다. 디스플레이 처리부(32)는 블록 세트(120) 및 객체의 부분 및 움직임의 관련을 서로 설정하기 위한 스크린을 디스플레이 장치(16) 상에 더 표시한다. 정보 처리부(30)가 모두 관련시키는 경우에, 사용자가 설정된 대응 관계를 체크하거나 보정하기 위한 스크린이 표시될 수 있다. 또한, 디스플레이 처리부(32)는 적절한 경우 게임 스크린 등과 같이 정보 처리부(30)에 의해 수행되는 정보 처리에 대응하는 이미지를 표시한다.
도 7은 블록 세트(120)의 정보 전송 경로 및 전송된 정보의 일례(120)를 개략적으로 도시한다. 번호가 정보 전송 경로(150)에 기록된 원의 각각은 블록을 나타낸다. 원 사이의 직선은 블록이 서로 결합되는 상태를 나타낸다. 또한, 원 내의 번호는 각각의 블록의 식별 번호로서 설정된다. 식별 번호 "1"을 갖는 블록은 도 6의 제 1 블록(142a)에 대응하고, 정보 처리 장치(10)와의 통신을 확립한다. 더욱이, 도 7에서 식별 번호 "2" 및 "3"을 갖는 블록은 식별 번호 1을 갖는 블록과 직렬로 접속되며, 따라서 각각 제 2 블록(142b) 및 제 3 블록(142c)에 대응하는 것으로 간주될 수 있다.
한편, 복수의 블록은 하나의 블록에 결합될 수 있다. 도 7의 예에서, 식별 번호 "2"를 갖는 블록과 식별 번호 "5"를 갖는 블록은 식별 번호 "1"을 갖는 블록에 접속된다. 상술한 바와 같이, 식별 번호 "3"를 갖는 블록과 식별 번호 4를 갖는 블록은 이러한 순서로 식별 번호 "2"를 갖는 블록과 직렬로 접속된다. 식별 번호 "6"를 갖는 블록과 식별 번호 "7"를 갖는 블록은 서로 병렬로 식별 번호 "5"를 갖는 블록에 접속된다. 본 예에서, 식별 번호를 갖지 않은 블록은 식별 번호 "6"를 갖는 블록에 추가로 접속되고, 식별 번호 "8"를 갖는 블록은 식별 번호를 갖지 않은 블록에 접속된다. 이 경우에 식별 번호를 갖지 않은 블록은 비통신 블록에 대응한다.
상술한 바와 같이, 정보는 기본적으로 하위 레벨 블록에서 상위 레벨 블록으로 전송된다. 도 7은 전송 방향을 나타내는 화살표와 함께 전송된 정보의 내용을 도시한다. 식별 번호 "3"을 갖는 블록으로부터 식별 번호 "2"를 갖는 블록으로 전송된 정보는 예를 들어 [3 : J2 (4)]로서 표현된다. 이것은 형식 자신의 식별 번호: 블록에 제공된 접속 위치의 식별 번호(접속 위치에 접속된 블록의 식별 번호)에 형성된 신호이고, 식별 번호 "4"를 갖는 블록이 식별 번호 "3"의 접속 위치 중에서 식별 번호 "J2"를 갖는 위치에 접속되는 것을 나타낸다. 그러나, 도면은 형식도 정보의 내용도 제한하지 않는다.
블록의 상위 레벨에 대응하는 방향은 블록을 서로에 결합하여 형성된 네트워크를 검색하여 허브의 역할을 갖는 블록에 의해 수행되는 순위 등에 의해 결정될 수 있다. 통상의 정보 처리 시스템을 구성하는 장치 트리(device tree)의 네트워킹 기술은 이러한 절차에 적용될 수 있다.
도 7에서 식별 번호 "4"를 갖는 블록은 식별 번호 "4"를 갖는 블록이 속하는 접속 시리즈에서 최저 레벨에 있다. 따라서, 식별 번호 "4"를 갖는 블록은 바로 위 레벨에서 식별 번호 "3"을 갖는 블록으로 정보를 전송한다. 다른 블록이 식별 번호 "4"를 갖는 블록에 접속되지 않고, 식별 번호 "4"를 갖는 블록의 접속 위치가 고유 식별되며, 식별 번호 "4"를 갖는 블록이 임의의 센서를 포함하지 않는다고 가정하면, 전송된 정보는 블록 자체의 식별 번호 "4"일 뿐이고, 따라서 전송된 내용은 "[4: -]"로서 표현되며, "-"는 센서 측정 결과치도 아니고 접속된 블록도 아님을 나타낸다.
식별 번호 "3"을 갖는 블록이 식별 번호 "4"로부터 신호를 수신하면, 식별 번호 "3"을 갖는 블록은, 접속 위치의 식별 번호로서 식별 번호 "4" 등으로부터 신호를 수신한 단자의 수를 식별 번호 "4"와 관련시키고, 블록 자체의 식별 번호 "3"를 식별 번호 "4"와 관련시킴으로써 획득된 신호를 바로 위 레벨에서 식별 번호 "2"를 갖는 블록으로 전송한다. 상술한 바와 같이, 이러한 신호의 전송된 내용은 [3: J2 (4)]이다. 마찬가지로, 식별 번호 "2"를 갖는 블록은 자신의 식별 번호를 접속 위치의 식별 번호(도면의 예에서의 "J5") 및 접속된 블록의 식별 번호 "3"과 관련시킴으로써 획득된 신호를 생성하며, 즉 [2: J5 (3)]이다. 또한, 식별 번호 "2"를 갖는 블록이 센서를 포함한다고 가정하면, 식별 번호 "2"를 갖는 블록은 또한 자신의 식별 번호와 센서의 측정 결과치를 나타내는 신호를 관련시킴으로써 획득된 신호를 생성한다. 도면의 예에서, 측정 결과치는 "결과치(result)"로서 표현된다. 그러나, 실제로 구체적인 수치는 센서의 타입에 따라 대체된다.
식별 번호 "2"를 갖는 블록은 이와 같이 생성된 데이터 및 하위 레벨의 블록으로부터 전송된 데이터, 즉 [3: J2 (4)]를 바로 위 레벨에서의 식별 번호 "1"을 갖는 블록으로 전송한다. 그러나, 이러한 신호는 항상 동시에 전송될 필요가 없다. 신호의 내용이 일단 전송되면 변경될 때, 예를 들어 변경에 대한 정보만이 전송될 수 있다. 한편, 블록이 식별 번호 "5"를 갖는 블록에 접속되는 식별 번호 "6" 및 "7"을 갖는 블록이 센서를 포함하지 않고, 식별 번호 "6" 및 "7"을 갖는 블록의 접속 위치가 고유 식별된다고 가정하면, 신호 [6: -] 및 [7: -]는 이러한 블록으로부터 각각 식별 번호 "4"를 갖는 블록의 경우에서와 같이 식별 번호 "5"를 갖는 블록으로 전송된다. 식별 번호 "6"를 갖는 블록은 또 다른 블록과 접속된다. 그러나, 블록은 비통신 블록이며, 따라서 정보는 비통신 블록으로부터 획득되지 않는다.
식별 번호 "5"를 갖는 블록은 자신의 식별 번호를 접속 위치의 식별 번호 및 접속된 블록의 식별 번호와 관련시킴으로써 획득된 신호를 생성하고, 이러한 신호를 바로 위의 레벨에서 식별 번호 "1"을 갖는 블록으로 전송한다. 도면에 도시된 바와 같이, 복수의 블록이 접속되면, 이러한 블록은 총칭하여 [5: J3 (6), J8 (7)] 등으로 나타낸다. 여기서, "J3" 및 "J8"은 괄호 안의 식별 번호를 갖는 블록이 접속되는 접속 위치의 식별 번호이다.
따라서, 블록 세트의 코어에 대한 정보는 식별 번호 "1"을 갖는 블록에서 집계된다. 다른 블록과 마찬가지로, 식별 번호 "1"을 갖는 블록은 자신의 식별 번호를 접속 위치의 식별 번호 및 접속 위치에 접속된 블록의 식별 번호와 관련시킴으로써 획득된 신호를 생성한다. 식별 번호 "1"을 갖는 블록은 이러한 신호를 하위 레벨 블록으로부터 전송된 신호와 함께 정보 처리 장치(10)로 전송한다. 따라서, 정보 처리 장치(10)는 코어를 구성하는 블록의 식별 번호, 각 블록의 접속 관계, 및 센서를 포함하는 블록의 측정 결과치를 연속하여 획득할 수 있다.
따라서, 하나의 블록이 허브의 역할을 갖는 블록으로서 설정되고, 따라서 정보가 집계되어 정보 처리 장치(10)로 전송되면, 정보의 복잡화 및 불필요한 통신 처리가 방지될 수 있다. 한편, 일부 경우에, 통신은 복수의 블록에서 정보 처리 장치(10)로 수행될 수 있다. 예를 들어, 도 7의 예에서, 식별 번호 "8"을 갖는 블록은 비통신 블록을 통해 식별 번호 "6"을 갖는 블록에 결합된다.
이 경우에, 식별 번호 "8"을 갖는 블록은 자신의 데이터를 정보 처리 장치(10)로 직접 전송할 수 있다. 해당 블록이 예를 들어 위치 센서를 포함하면, 블록의 자신의 식별 번호와 위치 센서에 의한 측정의 결과치는 정보 처리 장치(10)로 직접 전송된다. 따라서, 정보 처리 장치(10)는 식별 번호 "6"을 갖는 블록보다 더 결합된 블록의 존재를 파악하고, 해당 블록의 형상을 더 추정하며, 해당 블록의 접속 상태에 가까워질 수 있다. 식별 번호 "8"을 갖는 블록에 포함된 센서의 수가 많을수록, 정보의 정확도는 높다. 위치 정보의 복수의 부분이 획득될 수 있는 블록이 서로 조합되면, 카메라(122)로부터의 사각 지대(blind spot)에 있는 블록의 구조는 또한 정확하게 식별될 수 있다.
도 8은 통신 블록의 기본 정보의 데이터 구조의 일례를 도시하고, 기본 정보는 정보 처리 장치(10)의 블록 정보 저장부(24)에 저장된다. 통신 블록 정보 테이블(160)은 식별 번호 필드(162), 형상 필드(164), 크기 필드(166) 및 접속 위치 필드(168)를 포함한다. 식별 번호 필드(162)는 블록 세트를 형성하는 통신 블록에 사전에 부여된 식별 번호를 나타낸다. 형상 필드(164)는 각 통신 블록의 형상의 종류, 즉 "사각 프리즘", "정육면체" 등과 같은 도 2에 도시된 블록의 타입을 나타낸다. 크기 필드(166)는 수평 폭, 깊이, 및 각각의 통신 블록의 수직 길이를 나타낸다.
접속 위치 필드(168)는 접속 위치의 식별 번호에 관련하여 각각의 통신 블록에 제공된 접속 위치를 나타낸다. 도 8의 예에서, 접속 위치는 형식 접속 위치의 식별 번호(얼굴(face) 번호, 얼굴의 x 좌표, 얼굴의 y 좌표)"로 나타낸다. 얼굴 번호는 사전에 블록의 각 얼굴에 대해 고유 결정된다. 예를 들어, 식별 번호 "1"을 갖는 통신 블록은 4cm의 수평 폭, 4cm의 깊이, 및 8cm의 수직 길이를 갖는 사각 프리즘 블록이다. 식별 번호 "J1"을 갖는 접속 위치는 제 1 얼굴에서의 좌표(2, 2)의 위치에 놓여진다. 식별 번호 "J2"를 갖는 접속 위치는 제 2 얼굴에서의 좌표(1, 2)의 위치에 놓여진다. 그러나, 표기의 형식은 이러한 정보의 부분이 나타내는 한 특별히 한정되지 않는다.
정보 처리 장치(10)가 이러한 통신 블록 정보 테이블(160)을 유지하는 경우, 도 3에서 표현된 바와 같은 파라미터는 블록 세트(120)로부터 전송된 신호에 기초하여 코어에 대해 식별된다. 구조 분석부(22)는 이와 같이 식별된 코어의 상태와 카메라(122)에 의해 촬영된 이미지에 기초하여 비통신 블록을 포함하는 블록 세트(120)의 전체의 위치, 자세 및 형상을 식별한다. 도 9는 비통신 블록을 포함하는 블록 세트의 상태를 식별하기 위한 기본 처리를 설명하는데 지원하는 다이어그램이다. 도면의 상부 좌측은 코어 정보 수신부(20)에 의해 수신된 정보에 기초하여 상태가 식별되는 코어(170)의 상태를 나타낸다. 이러한 정보로부터 통신 블록의 접속 관계와, 형상이 통신 블록의 접속 관계에 기초하는 코어의 형상이 식별된다. 그러나, 위치 센서가 내부적으로 제공되는 경우, 실제 공간에서의 위치는 또한 식별된다.
한편, 구조 분석부(22)는 카메라(122)에 의해 촬영된 이미지로부터 깊이 이미지(172)를 생성한다. 깊이 이미지는 픽셀 값으로서 카메라로부터의 거리와 카메라(122)의 시야 내의 객체를 보여주는 이미지이다. 상술한 바와 같이, 깊이 이미지는 카메라(122)로서의 스테레오 카메라 등을 이용하여 생성될 수 있다. 도면에서의 깊이 이미지(172)는 거리가 멀수록 휘도가 낮아지는 이미지를 개략적으로 나타낸다. 블록 세트(120)의 전체의 이미지는 통신 블록과 비통신 블록 사이의 구별 없이 깊이 이미지(172)에 보여진다. 깊이 이미지에서 예를 들어 마커 등과 같이 코어에 속하는 블록의 적어도 일부의 이미지가 검출되면, 카메라로부터의 부분의 거리를 포함하는 3차원 공간에서의 부분의 위치 좌표는 식별될 수 있다. 그 후, 코어(170)에 대한 카메라 좌표계는 코어(170)의 이전에 식별된 상태의 이미지에서 검출된 부분이 위치 좌표에 존재하도록 설정된다.
또한, 코어의 이미지가 검출되면, 카메라(122)에 의해 촬영된 색상 이미지가 이용될 수 있다. 그 후, 블록 세트의 코어의 부분을 제외한 비통신 블록의 상태는 카메라(122) 측에서 본 코어(170)와 깊이 이미지(172)의 이미지로서 나타나는 블록 세트 사이의 부피의 차이를 획득함으로써 식별될 수 있다. 도 9의 우측에 도시된 블록 세트(120)의 음영 부분은 이러한 차이로서 획득된 비통신 블록이다. 결과적으로, 도면에 도시된 바와 같이, 코어 및 비통신 블록을 포함하는 블록 세트(120)의 전체의 위치, 자세 및 형상은 식별될 수 있다. 또한, 블록 세트(120)의 이미지가 배경 분리 등에 의해 식별될 수 있고, 이미지 및 코어가 코어 등의 명백한 크기에 기초하여 배치될 수 있는 경우, 통상의 촬영된 이미지만이 깊이 이미지에 의존하지 않고 이용될 수 있다.
또한, 도 9에 도시된 기본적인 처리에서, 비통신 블록에 대해 획득된 정보는 카메라의 필드 평면 내의 2차원 정보만이다. 따라서, 비통신 블록의 기본 정보가 블록 정보 저장부(24)에 저장되고, 필드 평면에서 명백한 형상 및 크기와 일치하는 블록에 대한 검색이 행해지며, 깊이 방향을 포함하는 3차원 형상을 식별하는 정확도는 증가될 수 있다. 도 10은 정보가 정보 처리 장치(10)의 블록 정보 저장부(24)에 저장되는 비통신 블록의 기본 정보의 데이터 구조의 일례를 도시한다.
비통신 블록 정보 테이블(180)은 식별 번호 필드(182), 형상 필드(184), 크기 필드(186) 및 색상 필드(188)를 포함한다. 식별 번호 필드(182)는 블록 세트를 형성하는 비통신 블록에 사전에 부여된 식별 번호를 나타낸다. 형상, 크기 및 색상이 동일한 블록은 동일한 식별 번호를 가질 수 있다. 형상 필드(184)는 각각의 비통신 블록의 형상의 종류, 즉, "직육면체", "원통" 등과 같이 도 2에 도시된 바와 같은 블록의 타입을 나타낸다. 크기 필드(186)는 각각의 비통신 블록의 수평 폭, 깊이(또는 직경) 및 수직 길이를 나타낸다. 색상 필드(188)는 각각의 비통신 블록의 색상을 나타낸다.
형상 필드(184), 크기 필드(186) 및 색상 필드(188)의 정보는 3D 그래픽의 객체 모델에 대한 데이터의 경우에서와 같이 폴리곤(polygon), 텍스처 등에 대한 정보일 수 있다. 게다가, 비통신 블록 정보 테이블(180)에 의해 유지된 정보는 도면에 도시된 것에 한정되지 않는다. 예를 들면, 오목부 등의 형상은 접속 가능한 통신 블록을 제한하고, 접속 가능한 통신 블록의 식별 번호가 유지되는 경우, 이미 식별된 코어에 속하는 통신 블록에 접속될 수 있는 비통신 블록은 통신 블록에 기초하여 좁혀질 수 있다. 구조 분석부(22)는 비통신 블록 정보 테이블(180)을 지칭하고, 도 9에 도시된 깊이 이미지(172)의 코어와 다른 부분의 이미지와 개별적으로 일치하는 비통신 블록을 식별한다.
또한, 다른 블록에 의해 숨겨지고, 따라서 볼 수 없는 블록의 정확한 형상은 블록이 초기 상태에서 존재하지 않는다고 추정한 후 블록 세트의 움직임을 추적함으로써 시간 진화(time evolving) 방식으로 식별된다. 일부가 숨겨지고, 비통신 블록 정보 테이블(180)에 대한 참조가 행해지는 경우에도 일부의 형상이 결정될 수 없는 경우, 어떤 후보(candidate) 형상이 추정되거나, 어떤 얼굴이 숨겨진 부분에 대해서만 추정되며, 형상 인식의 정확도를 높이기 위해 나중에 점진적으로 보정이 이루어진다.
도 11은 시간 진화 방식으로 블록 세트의 형상을 식별하는 처리를 설명하는데 지원하는 다이어그램이다. 도면의 좌표의 축은 시간을 나타낸다. 시간이 시간 "T1"에서 시간 "T2"로 통과한다고 가정한다. 게다가, 일례로서, 도면에서 최상부의 행에 도시된 바와 같이, (윤곽으로 도시된) 마커를 구비한 사각 프리즘 타입의 통신 블록의 하위 절반을 (음영으로 도시된) 원통 타입의 비통신 블록과 맞춤으로써 블록 세트(190)가 형성된다. 먼저, 시간 T1에서, 도면에서와 같이, 카메라(122)는 전면으로부터 수평면 상에 배치된 블록 세트(190)를 촬영한다고 가정한다. 이 경우에, 도면에 도시된 바와 같이, 각 블록의 측면만이 촬영된 이미지(192a)에서의 이미지로서 나타난다.
깊이 이미지가 상술한 바와 같은 이미지로부터 생성되고, 형상이 별도로 식별되는 코어와의 부피 차이가 획득되는 경우, 나머지 부분은 명백히 비통신 블록의 측면의 이미지(깊이 이미지(198a))인 사각형이다. 즉, 비통신 블록의 3차원 형상이 시간 T1에서 식별될 수 없다는 가능성이 있다. 그러나, 깊이 이미지의 해상도에 따라, 원통과 직육면체 간의 차이는 전면의 곡선의 유무에 의해 명확하게 이루어질 수 있다. 또한, 비통신 블록 정보 테이블(180)에 등록된 블록 중에서 크기, 종횡비 등과 일치하는 하나의 비통신 블록만이 있는 경우에, 비통신 블록의 형상이 식별될 수 있다. 또한, 깊이 이미지(198a)는 촬영된 이미지로부터 얻어진 깊이 이미지의 블록 세트의 이미지와 코어 사이의 부피 차이를 획득으로써 생성된 부피 데이터를 나타내며, 반드시 이미지로서 생성되지 않는다. 이는 후속 도면에 대해서도 마찬가지이다.
다른 경우에, 구조 분석부(22)는 비통신 블록 정보 테이블(180)로부터 후보 비통신 블록을 검출하고, 후보 비통신 블록 중 하나가 코어에 결합된다고 추정한다. 대안적으로, 형상이 식별되는 통신 블록의 평면과 동일한 평면은 비통신 블록의 불명확한 얼굴(indefinite face)인 것으로 추정된다. 도면은, 이전의 예로서, 비통신 블록이 직육면체인 것으로 추정되는 경우에 블록 세트의 형상(200)을 도시한다. 또한, 도면에 도시된 블록 세트의 형상(200)은 정보 처리 장치(10)에서의 시간 T1의 시점에서 인식된 형상이고, 반드시 디스플레이를 위해 이용되는 것으로 의도되는 것은 아니다. 도면에 도시되는 추정된 형상은 블록 세트의 상태를 예를 들어 있는 그대로 3D 객체로서 표시하는 애플리케이션의 실행 중에 있는 그대로 렌더링될 수 있다. 대안적으로, 추정된 형상은 임의의 방식으로 표시되지 않을 수 있지만, 형상이 다음 시간 단계에서 보정되는 경우에만 기초로서 이용될 수 있다.
디스플레이 여부와 관계없이 시간 진화 방식으로 비통신 블록의 형상을 식별하거나, 사용자가 실시간으로 효율적으로 조립되는 프로세스에서 블록 세트의 형상의 변화를 인식할 수 있도록 하기 위해, 추정된 형상과 관련된 정보는 적어도 미리 정해진 기간 동안 저장되고, 나중에 처리를 위해 이용된다. 블록 세트의 형상은 (이하, "요소 번호"로서 지칭되는) 구조 식별 번호를 블록 세트를 구성하는 통신 블록 및 비통신 블록에 부여함으로써 관리된다. 도면에서, 블록 세트의 통신 블록에는 요소 번호 "#C1"이 부여되고, 블록 세트의 비통신 블록에는 요소 번호 "#N1"이 부여된다. 본 예에서, 통신 블록 및 비통신 블록은 알파벳의 "C" 및 "N"에 의해 서로 구별된다. 그러나, 이것은 요소 번호의 형식을 제한하지 않는다.
이러한 요소 번호는 사전에 각각의 블록에 부여되고, 도 8 및 도 10에 도시된 식별 번호와 관련되고, 비통신 블록과 통신 블록 사이의 접속 관계(접속된 얼굴, 접속된 위치 및 방향)에 관한 정보와 함께 기록된다. 블록 세트의 전체의 구조에 관한 이러한 정보는 이하 "구조 데이터"로 지칭될 것이다. 따라서, 각각의 블록의 구조를 관리하는 것은 상술한 바와 같이 디스플레이를 가능하게 할 뿐만 아니라, 조립되는 프로세스에서의 블록 세트 또는 수정된 블록 세트의 형상을 식별하는 효율을 개선할 수 있는데, 그 이유는 이미지에서 하나의 몸체로서 나타나는 블록 세트가 사용자에 의해 부착되고 분리될 수 있는 단위로 분할될 수 있기 때문이다. 블록 세트의 형상이 그대로 렌더링되는 경우에, 렌더링하기 위해 이용되는 폴리곤 및 텍스처는 이러한 시점에서 생성될 수 있다. 그 다음, 후속 형상 식별 처리에서, 이러한 3D 모델은 보정될 수 있거나, 블록이 추가되거나 삭제될 수 있다.
블록 세트 등의 형상(200)과 같은 형상이 시간 T1에서 인식된 후, 촬영 및 형상 식별 처리는 계속된다. 이때에, 도면에 도시된 바와 같이, 사용자가 블록 세트(190)의 정점을 카메라(122)의 측면으로 기울일 경우, 통신 블록(194) 및 비통신 블록(196)의 상부면은 약간 시간 T2에서 촬영된 이미지(192b)에 포함된다. 깊이 이미지가 이러한 이미지로부터 생성되고, 이러한 시점에서 상태의 코어로부터의 부피 차이가 획득될 때, 나머지 부분은 비통신 블록의 원통의 상부면(깊이 이미지(198b))을 포함한다. 비통신 블록은 시간 T1에서 추정된 직육면체보다는 원통일 가능성이 높은 것으로 이미지의 형상으로부터 판단될 수 있다. 블록 세트의 형상의 인식의 신뢰성은 블록 세트의 자세가 변경 될 때 이러한 보정을 반복함으로써 증가된다.
비통신 블록이 원통인 것으로 발견되는 시점에서, 구조 분석부(22)는 시간 T1에서 직육면체인 것으로 추정된 비통신 블록의 형상을 원통으로 대체한다. 블록 세트의 정확한 형상(202)은 이에 의해 인식된다. 이러한 처리는 사실상 요소 번호 #N1과 관련된 직육면체 타입의 블록의 식별 번호를 원통 타입의 블록의 식별 번호로 보정하는 처리이다. 대안적으로, 폴리곤 모델은 보정될 수 있다. 도 11의 예는 이해를 용이하게 하기 위해 매우 간단한 구조를 가진 블록 세트를 도시한다. 그러나, 실제로, 예를 들어, 다른 비통신 블록은 비통신 블록의 후면에 접속될 수 있거나, 비통신 블록의 일부만이 비통신 블록으로 보일 수 있고, 다른 블록은 서로에 중첩될 수 있다.
이 경우에, 상술한 바와 같이, 각각의 비통신 블록의 형상을 추정하고, 사용자가 블록 세트를 보유하고, 블록 세트를 기울이거나 블록 세트의 방향을 변경할 때에 식별된 부분만을 점진적으로 식별하는 방법 이외에, 블록 세트가 복수의 방향으로부터 촬영될 수 있도록 카메라(122)에 대하여 블록 세트를 회전 시키기 위해 사용자에게 재촉하도록 디스플레이가 이루어질 수 있다. 게다가, 후보 비통신 블록은 숨겨지지 않은 부분의 형상 및 색상에 기초하여 비통신 블록 정보 테이블(180)로부터 추출될 수 있고, 사용자가 실제 블록을 지정할 수 있도록 리스트로 표시될 수 있다. 게다가, 도면의 형상 또는 마커를 나타내는 2차원 바코드가 각각의 비통신 블록에 부착되는 경우, 형상은 촬영된 이미지로부터 식별될 수 있다.
도 12는 조립 등의 중에 구조를 변경하는 블록 세트의 형상을 식별하는 처리를 설명하는데 지원하는 다이어그램이다. 도면의 표현의 방식은 도 11과 유사하다. 시간 축으로서 세로 좌표의 축에 따라 좌측으로부터 순서로 각각의 시간에서 촬영된 이미지(192b 내지 192d), 코어의 부분을 제외한 이미지의 깊이 이미지(198b 내지 198d), 및 블록 세트의 인식된 형상(202, 210 및 216)이 도시된다. 도면의 최상부 행의 시간 T2는 도 11의 시간 T2에 대응한다. 블록 세트의 촬영된 이미지(192b), 깊이 이미지(198b) 및 인식된 형상(202)은 또한 동일하다. 이러한 상태로부터, 후속 시간 T3에서 사용자는 새로운 비통신 블록(204)(촬영된 이미지(192c))을 접속하는 것으로 가정한다. 이러한 시간에서의 깊이 이미지(198c)와 이전의 시간 T2에서의 깊이 이미지(198b)의 비교는 새로운 비통신 블록의 이미지(206)가 추가되는 것을 나타낸다.
구조 분석부(22)는 이전의 시간 T2에서의 깊이 이미지(198b)를 현재의 시간 T3에서의 깊이 이미지(198c)와 비교함으로써 새로운 비통신 블록(204)의 접속을 인식한다. 여기에서, 또한 이전의 시간에 존재하는 비통신 블록(196)은 카메라에 대하여 방향이 변경될 수 있거나, 비통신 블록(196)은 새로이 접속된 블록과 구별될 수 없다. 따라서, 일단 인식된 비통신 블록의 위치 및 자세를 계속 추적함으로써, 구조 분석부(22)는 블록의 위치 및 자세가 변경될 경우에도 동일한 블록을 인식할 수 있다. 능동 윤곽 모델 등을 이용한 통상의 추적 기술은 위치 및 자세를 추적할 때에 적용될 수 있다. 대안적으로, 코어에 접속되는 상태에서 비통신 블록의 방향의 변화는 위치 및 자세가 코어로부터의 신호에 의해 식별될 수 있는 코어의 위치 및 자세의 변화로부터 도출될 수 있다.
따라서, 새로운 비통신 블록(204)의 접속이 부피 차이 후에 이미지의 비교의 결과로서 검출될 수 있는 후에, 비통신 블록의 형상은 예를 들어 도 11에 관하여 설명된 것과 유사한 방식으로 비통신 블록 정보 테이블(180)을 참조함으로써 식별된다. 그 후, 코어에 대한 접속 관계는 동일한 시간에 코어의 형상 및 자세에 기초하여 식별된다. 결과적으로, 시간 T3에서의 블록 세트의 형상(210)은 도면에 도시된 바와 같이 인식될 수 있다. 이때, 구조 데이터는, 새로운 요소 번호 "#N2"를 추가된 비통신 블록에 부여하고, 새로운 요소 번호 "#N2"를 해당 블록에 사전에 부여된 식별 번호와 관련시키며, 통신 블록에 대한 접속 관계를 기록함으로써 업데이트된다.
또한, 카메라의 시야에 존재하는 비통신 블록이 접속되어 있는지 아직 접속되어 있지 않는지를 판단하기 위해, 코어를 포함하는 블록 세트와 시야에 존재하는 블록 사이의 상대 속도는 모니터링될 수 있다. 이 경우에, 새로운 블록은 상대 속도가 제로일 때 접속되는 것으로 결정된다. 시간 T3 이후의 시간 T4에서, 사용자는 이전에 접속된 비통신 블록(196)을 다른 형상(촬영된 이미지(192d)의 비통신 블록(214)으로 대체한다고 가정한다. 이 시간에서의 깊이 이미지(198b)와 이전의 시간 T3에서의 깊이 이미지(198c)의 비교는 비통신 블록의 이미지(215)의 형상이 변경되는 것을 나타낸다.
이러한 비통신 블록을 다른 형상의 다른 비통신 블록으로 대체하는 것이 부피 차이 후에 이미지를 서로 비교하는 결과로서 검출될 수 있는 경우에, 새로운 비통신 블록의 형상은 지금까지 설명된 것과 유사한 방식으로 비통신 블록 정보 테이블(180)을 참조함으로써 식별된다. 코어에 대한 접속 관계는 이전에 접속된 비통신 블록과 동일하다. 따라서, 이전의 정보는 그대로 이용될 수 있다. 따라서, 시간 T4에서의 블록 세트의 형상(216)은 구조 데이터에서 동일한 요소 번호 "#N1"와 관련된 이전의 접속된 블록의 식별 번호만을 이 시간에 식별된 블록의 식별 번호로 업데이트함으로써 도면에 도시된 바와 같이 인식된다.
비통신 블록이 다른 형상의 비통신 블록이 접속되는 경우와 다르게 수정되는 일례로서, 비통신 블록이 접속된 코어의 조인트 각도가 변화되는 경우가 있을 수 있다. 도 13은 코어의 조인트 각도의 변화로 인해 수정되는 블록 세트의 형상을 식별하는 처리를 설명하는데 지원하는 다이어그램이다. 도면의 표현의 방식은 도 11 및 12와 유사하다. 시간 축으로서 세로 좌표의 축에 따라 좌측으로부터 순서로 각각의 시간에서 촬영된 이미지(192e 내지 192g), 깊이 이미지(198e 내지 198g), 및 블록 세트의 인식된 형상(218, 222 및 224)이 도시된다. 그러나, 블록 세트의 형상은 도 11 및 12에 도시된 것과 상이하고, 비통신 블록(228 및 230)은 각각 마커 및 조인트를 갖는 통신 블록(226)의 상부 링크 및 하부 링크를 포함하기 위해 맞춰진다.
깊이 이미지는 조인트가 구부러지지 않은 시간 t1에서 촬영된 이미지(192e)에 기초하여 생성되는 부피 차이 후에 비통신 블록은 명백히 깊이 이미지(198e)의 한 몸체로서 나타난다. 따라서, 구조 분석부(22)는, 요소 번호 "#C1" 및 "#N1"을 각각 하나의 블록인 것으로 추정되는 하나의 (시리즈) 통신 블록 및 비통신 블록에 부여하고, 요소 번호를 각각의 블록의 식별 번호와 관련시키며, 통신 블록과 비통신 블록 사이의 접속 관계를 구조 데이터로서 기록함으로써 도면에 도시된 바와 같이 블록 세트의 형상(218)을 인식한다.
시간 t2에서, 사용자가 다음에 코어의 조인트(촬영된 이미지(192f))를 구부린다고 가정한다. 이 시간에서의 깊이 이미지(198f)와 이전의 시간 T1에서의 깊이 이미지(198e)의 비교는 비통신 블록의 형상이 변경된다는 것을 나타낸다. 구조 분석부(22)는 정보가 블록 세트로부터 별도로 전송된 코어에 대한 정보로부터 비통신 블록에 의해 포함된 코어의 상태를 획득하였다. 즉, 구조 분석부(22)는 통신 블록의 조인트 각도를 파악한다. 따라서, 내부에 존재하는 통신 블록의 조인트 각도가 비통신 블록의 수정에 대응하는 각도로 변경될 때, 비통신 블록의 수정은 코어의 굽힘에 의해 야기되는 것으로 결정될 수 있다.
따라서, 다른 블록을 재접속하는 것을 결정하는 대신에 실제로 원래 하나의 블록으로서 인식된 복수의 블록이 있다는 것을 결정하는 것이 가능하다. 이 경우에, 구조 데이터는 새로운 요소 번호 "#N2"를 경사(inclination)가 변경한 비통신 블록(도면에서의 상위 블록)에 부여하고, 경사가 변경하지 않은 블록에 대해서는 그대로 요소 번호 "#N1"를 이용하여 보정된다. 요소 번호가 보정될 때 코어에 대한 접속 관계는 적절히 보정된다. 이에 의해 시간 t2에서의 블록 세트의 형상(222)은 도면에 도시된 바와 같이 인식될 수 있다.
도면의 예에서, 상부 블록과 하부 블록의 차이는 경사 각도와 블록의 형상으로부터 명백하다. 그러나, 경사 각도가 작거나 블록이 각도가 변경될 때에도 블록 사이의 갭을 눈에 잘 안 띄게 하는 형상 또는 재료를 갖는다. 블록 사이의 틈(break)은 쉽게 검출될 수 없다. 이 경우에, 조인트가 조인트의 위치에서 구부러지지 않을 경우에 예를 들어 코어의 축에 수직한 분할면(220)을 설정하고, 분할면에 의해 블록을 분할함으로써 원래 하나의 블록으로 간주된 블록은 2개의 블록으로 분할될 수 있다. 이 경우, 분할면(220)의 평면은 하부 블록의 상부면 및 상부 블록의 하부면으로 추정되고, 하부 블록의 상부면 및 상부 블록의 하부면은 원래 서로 접촉해 있고, 후속 형상 식별 처리 시에 보정이 이루어진다.
시간 t2에서의 처리의 결과로서, 비통신 블록은 2개의 블록으로 구성되는 것으로 인식된다. 따라서, 후속 t3에서 블록 세트의 조인트가 시간 t1(촬영된 이미지(192g) 및 깊이 이미지(198g))에서 구부러지지 않는 상태로 복귀가 이루어질 경우에도, 정보 처리 장치(10)는 2개의 비통신 블록이 서로에 링크되는 상태로서 상태를 인식할 수 있다(블록 세트(224)). 코어의 조인트가 후속하여 구부러지고 신장되는 경우에도, 링크를 포함하는 비통신 블록이 개별적으로 관리되기 때문에 형상 등을 다시 식별하는 처리는 필요하지 않다.
따라서, 복수의 블록이 일시적으로 방향 또는 간격을 변경하지 않고 하나의 몸체로 조립되는 경우에, 이러한 블록을 총칭하여 하나의 블록으로서 처리함으로써 데이터 관리는 단순화될 수 있다. 한편, 복수의 블록이 하나의 몸체로서 조립되는 경우에도, 복수의 블록이 색상 또는 텍스처에서 서로 상이하며, 따라서 상이한 블록으로 인식될 수 있는 경우, 블록은 블록의 색상 또는 텍스처에 대한 정보에 기초하여 개별적으로 관리될 수 있다. 사용자가 블록을 부착하고 분리하는 프로세스가 올바르게 인식될 필요가 있는 경우, 특히, 구조 데이터의 보정은 각각의 블록을 개별적으로 관리함으로써 변화가 발생하는 부분으로 제한될 수 있다. 따라서, 이것은 처리 효율의 관점에서 유리하다.
게다가, 블록 세트의 획득된 상태가 디스플레이 장치(16) 상에 객체로서 표시되는 경우, 또는 구조 데이터가 폴리곤 및 텍스처에 대한 정보로서 유지되는 경우, 해상도를 거칠게 하는 낮은 폴리곤 모델링은 식별된 형상을 그대로 반영하는 대신에 처리 부하 또는 메모리 소비량을 감소시키도록 수행될 수 있다. 대안적으로, 각각의 비통신 블록은 비통신 블록 정보 테이블의 다른 객체 모델과 더 관련될 수 있고, 비통신 블록의 부분과 관련된 객체 모델은 디스플레이 시에 비통신 블록의 부분을 대체하기 위해 렌더링될 수 있다. 따라서, 블록은 직육면체 등과 같은 거친 형상을 갖는 경우에도, 블록은 실제 객체로 변환되고, 객체는 디스플레이 시에 표시된다. 따라서, 정보의 상세 사항의 레벨을 실제 블록 세트보다 낮고, 같거나 높게 할지에 관한 설정은 블록 세트의 상태, 정보 처리 장치(10)의 처리 성능, 메모리 용량 등을 이용하여 정보 처리부(30)에 의해 수행되는 처리에 따라 적절히 이루어진다.
또한, 도 11 내지 13에 도시된 바와 같이, 본 실시예는 코어 및 비통신 블록 모두에 대하여 블록 세트의 시간적 변화를 획득한다. 따라서, 미리 정해진 시간에 대한 히스토리로서 시간적 변화를 저장하고, 필요에 따라 히스토리를 판독하고 이용함으로써 다양한 모드가 실현될 수 있다. 예를 들면, 사용자가 몇 단계 전의 상태로 조립되는 프로세스에서 블록 세트를 반환하기를 원하고, 사용자가 입력 장치(14)를 통해 요청을 하는 경우, 대응하는 단계에서의 블록 세트의 상태는 3D 객체로서 표시된다. 사용자는 3D 객체를 보면서 실제 블록 세트를 이전의 상태로 반환할 수 있다. 3D 객체로서 렌더링된 블록 세트에 대한 가상 시점이 입력 장치(14)에 의해 변경되면, 블록 세트의 이전의 상태는 복수의 방향으로부터 검사될 수 있다. 히스토리가 장기간 저장되는 경우, 과거에 생성된 블록 세트는 각각의 행하는(making) 단계에서 객체로서 표시될 수 있고, 실제 블록 세트는 객체에 따른 조립에 의해 재생될 수 있다.
게다가, 도 12에서의 원통 타입의 비통신 블록(196)과 같이 일단 분리되면 블록에 대한 정보는 구조 데이터로부터 즉시 삭제되지 않고 이전의 요소 번호가 제공될 경우에 유지할 수 있고, 블록이 분리되는 것을 나타내는 플래그 등에 의해 관리될 수 있다. 이 경우에, 다른 블록이 동일한 위치에 부착될 때, 동일한 요소 번호가 복수의 비통신 블록에 주어진다. 그러나, 플래그는 과거 정보와 현재 정보를 구별할 수 있다. 그 다음, 사용자가 블록 세트를 이전의 상태로 반환하도록 요청을 하는 경우, 이전의 상태의 블록 세트의 객체는 구조 데이터로부터 이전의 블록을 검출하고 반환함으로써 표시될 수 있다.
다음에는, 블록 세트의 상태의 식별과 관련하여 정보 처리 장치의 동작에 대하여 설명이 이루어질 것이며, 이런 동작은 지금까지 설명된 구성에 의해 실현될 수 있다. 도 14는 비통신 블록을 포함하는 블록 세트의 상태를 식별하기 위한 처리 절차를 도시한 흐름도이다. 이러한 흐름도는 사용자가 블록 세트(120)의 블록 중 배터리를 갖는 블록에 대한 전력을 턴온할 때에 시작되고, 예를 들어 정보 처리 장치(10)에 대한 애플리케이션을 선택함으로써 입력 장치(14)를 통해 처리를 시작하기 위한 명령어를 입력한다.
또한, 처리가 다음에 도시되는 정보 처리 장치(10)의 처리와 병행하여 코어의 상태를 나타내는 신호는 사용자에 의해 조립되거나 들어올려지는 블록 세트로부터 미리 정해진 시간에 전송된다고 가정한다. 게다가, 본 흐름도는 비통신 블록의 변화에 관심을 돌리고, 코어의 상태의 변화는 코어 등의 상태를 나타내는 신호로부터 별도로 획득된다고 가정한다. 먼저, 구조 분석부(22)는 카메라(122)가 블록 세트를 촬영하는 것을 개시하도록 한다(S10). 한편, 미리 정해진 초기 이미지는 정보 처리부(30)와 디스플레이 처리부(32) 사이의 협력에 의해 디스플레이 장치(16)에 표시된다(S12). 이때에 표시된 이미지는 카메라(112)에 의해 촬영된 라이브 비디오, 게임 이미지와 같이 애플리케이션의 일부로서 사전에 생성된 이미지 등일 수 있다.
시간 단계 t= 0(t는 오름차순으로 시간의 경과를 나타내는 정수이다)에서, 코어 정보 수신부(20)가 블록 세트로부터 전송된 정보를 수신할 경우, 구조 분석부(22)는 정보에 기초하여 3차원 공간에서의 코어의 자세 및 형상을 식별한다(S14 및 S16). 코어의 위치가 촬영된 이미지와 다른 수단에 의해 식별 될 때, 코어의 위치는 또한 식별된다. 한편, 구조 분석부(22)는 예를 들어 카메라(122)로부터 촬영된 이미지를 획득하고, 촬영된 이미지에 기초하여 깊이 이미지를 생성함으로써(S18) 블록 세트의 전체 이미지 및 위치를 획득한다. 블록 세트, 배경, 사용자의 손 등과 다른 것은 촬영된 이미지에 나타날 수 있다. 따라서, 이러한 이미지를 제거하는 처리는 어떤 단계에서 수행된다.
전경 추출(foreground extraction), 동시 지역화 및 매핑 (SLAM) 방법, 색상 분할(color segmentation), 사전 기반 객체 인식 등과 같은 통상의 방법은 이러한 처리에 이용될 수 있다. 코어가 이와 같이 추출된 블록 세트의 전체 이미지에 대해 위치되는 방법이 식별된다(S20). 특히, 상술한 바와 같이, 코어 등의 마커와 같이 특성 형상, 색상 또는 패턴 등을 갖는 부분은 블록 세트의 이미지로부터 검출되고, 코어의 위치는 이러한 부분에 관련하여 결정된다. 그 후, 코어가 카메라에서 보여지는 방법은 형상 및 자세가 S16에서 식별되는 코어의 형상 및 자세에 기초하여 식별된다. 이것은 비통신 블록이 없을 때 블록 세트의 이미지이다. 따라서, 비통신 블록의 이미지 및 위치는 비통신 블록이 없을 때의 블록 세트의 이미지와 실제 블록 세트의 전체 이미지 사이의 부피 차이를 취함으로써 획득된다(S22).
비통신 블록의 상태가 이전의 시간 단계(t-1)에서 획득되면, 이전의 시간 단계(t-1)의 비통신 블록의 상태 및 비통신 블록의 현재 이미지는 서로 비교되어(S24), 변경이 있는지의 여부를 검사한다(S26). 이미지의 형상의 변화가 있을 때(S26의 Y), 비통신 블록의 형상을 식별하고, 블록 세트의 구조 데이터를 업데이트하는 처리가 수행된다(S30). 또한, 시간 단계(t=0)에서 상태가 S22에서 획득되는 비통신 블록의 상태 자체는 변화로 간주되고, 구조 데이터는 비통신 블록의 상태에 기초하여 새롭게 생성된다.
S30의 처리에 관해서. 도 11 내지 13에 관하여 설명된 바와 같이, S30의 처리는 비통신 블록의 부가 또는 제거의 경우의 처리, 다른 비통신 블록으로의 대체의 경우의 처리, 및 코어의 조인트의 굽힘으로 인한 비통신 블록의 형상의 변경의 경우의 처리로 분류되고, 각각의 경우에 대해 수행될 처리는 수행된다. 특히, 비통신 블록이 추가되면, 요소 번호가 부여되고, 각각이 형상, 접속 방향 등과 관련되고, 코어에 대한 접속 관계가 기록된다. 비통신 블록이 제거되면, 비통신 블록은 예를 들어 구조 데이터로부터 비통신 블록을 삭제하거나 비통신 블록이 제거되는 것을 나타내는 플래그를 설정함으로써 관리된다. 다른 비통신 블록으로의 대체가 수행되면, 대응하는 요소 번호에 대응하는 블록의 형상, 접속 방향 등이 업데이트된다.
코어의 조인트의 굽힘으로 인한 형상의 변화 시에, 비통신 블록이 블록 사이에 개재된 조인트를 가진 각각의 링크에 대응하는 방식으로 관리되지 않는 경우에, 이러한 블록은 별도의 블록으로서 설정되고, 새로운 요소 번호는 블록 중 하나에 부여되고, 각각의 블록의 형상 및 접속 방향은 업데이트된다. 따라서, 비통신 블록은 개별적으로 관리된다. 게다가, 코어 또는 비통신 블록의 형상이 변화되지 않는 경우에도, 비통신 블록의 이미지는 위치 또는 자세의 변경에 따라 변화된다. 이 경우에, 부분의 형상이 부분 등의 숨기(hiding)로 인해 결정될 수 없기 때문에 추정된 부분의 형상의 적어도 부분이 식별될 수 있는지가 검사된다. 추정된 부분의 형상의 부분이 식별되면, 구조 데이터는 이에 따라 업데이트된다. 따라서, 형상은 시간 진화 방식으로 식별된다. 상술한 바와 같이, 구조 데이터는 3D 그래픽의 모델 데이터로서 표현될 수 있다.
S26에서의 이미지의 형상의 변경이 없는 경우(S26에서의 N), 비통신 블록의 적어도 상태는 변경되지 않으며, 따라서 S30의 처리는 수행되지 않는다. 사용자가 처리를 종료하기 위한 입력을 수행할 때까지, 시간 단계(t)가 증가될 동안(S32 및 S28에서의 N) S16에서 S30까지의 처리는 순차적으로 반복된다. 처리를 종료하기 위한 명령어 입력이 예를 들어 블록 세트에 대한 전력을 턴오프함으로써 수행될 때(S32에서의 Y) 처리는 종료된다. 또한, 코어 전체가 S20의 처리 시에 카메라로부터 볼 때 비통신 블록에 의해 숨겨진 경우, 코어의 위치 결정은 수행될 수 없다. 이 경우에, 코어가 카메라의 시야로 들어오도록 사용자가 블록 세트의 방향을 변경하도록 재촉하는 디스플레이가 이루어질 수 있다. 대안적으로, 코어에 대한 카메라 좌표계는 코어의 전체 이미지가 블록 세트의 전체 이미지로부터 돌출하지 않도록 추정될 수 있고, 후속 시간 단계에서 보정될 수 있다.
또한, 지금까지의 설명에서 비통신 블록의 형상의 변화에 대한 관심이? 주로 지향되었다. 데이터 구조는 비통신 블록의 색상 또는 텍스처가 변경되는 경우에도 유사한 처리에 의해 업데이트될 수 있다. 그러나, 이 경우, 코어의 부분은 먼저 전체 이미지와 깊이 이미지의 코어를 위치시킴으로써 블록 세트의 전체 이미지로부터 제거되고, 그 후에 색상 또는 텍스처의 변화는 나머지 비통신 블록의 이미지의 영역을 촬영된 색상 이미지로 피드백함으로써 식별된다.
도 15는 지금까지 설명된 모드에 의해 실현될 수 있는 블록 세트와 디스플레이 사이의 관계를 도시한다. 도면의 예에서, 통신 블록과 비통신 블록을 포함하는 블록 세트(240)는 정보 처리 장치(10)가 인식하는 3D 객체(242)로서 렌더링되고, 디스플레이 장치(16) 상에 표시된다. 비통신 블록의 형상, 자세, 색상 등이 카메라(122)에 의해 획득되기 때문에, 비통신 블록 정보 테이블에 등록되지 않은 것, 예를 들어, 사용자 자신이 만든 것은 인식될 수 있다. 예를 들어, 사용자가 도면에서 블록 세트(240)로서 조립된 인형의 얼굴을 펠트 펜으로 기록하거나, 인형에 스티커를 붙일 경우에도, 기록된 얼굴과 유사한 얼굴을 가진 인형 또는 스티커가 붙여진 인형은 3D 객체로서 렌더링된다.
본 예에서, 실제 카메라(122)의 시야 내에 존재하는 블록 세트는 미러(mirror) 처리에 의해 수평으로 플립(flip)되고, 객체로서 나타낸다. 블록 세트(240)가 디스플레이 장치(16) 상에서 카메라(122)를 향해 있기 때문에, 디스플레이 상의 3D 객체(242)는 블록 세트(240)가 미러에서 나타나도록 표시된다. 한편, 정보 처리 장치(10)는 상술한 바와 같이 블록 세트(240)의 3차원 형상을 인식하고, 따라서 3D 객체(242)에 대하여 가상 시점을 자유롭게 변경할 수 있다. 따라서, 측면이 이 시점에 카메라(122)로부터의 사각 지대에 있는 인형의 엉덩이(back side)에 대한 이미지는 심지어 블록 세트(240)가 회전되지 않고 표시될 수 있다. 그러나, 지금까지 형상 식별 처리에 따라, 엉덩이에 대한 형상의 상세 사항은 결정될 수 없다.
지금까지 설명은 실제로 조립된 블록 세트의 상태의 인식에 기초한다. 그러나, 실제로 접속되지 않은 것은 가상으로 접속되도록 허용될 수 있다. 도 15에 도시된 스크린은 블록 세트(240)를 반영하는 3D 객체(242)와 함께 제공될 항목의 옵션의 이미지(244 및 246)를 표시한다. 사용자가 하나의 이미지를 선택하고, 스크린 상의 3D 객체(242)가 예를 들어 입력 장치(14)를 통해 블록 세트(240)를 이동시킴으로써 대응하는 항목을 갖게 할 경우, 정보 처리 장치(10)는 대응하는 항목이 이미 인식된 블록 세트의 대응하는 위치에 접속되는 것을 나타내기 위해 구조 데이터를 업데이트할 수 있다.
옵션으로서 항목의 3차원 형상은 정보 처리 장치(10)의 블록 정보 저장부(24) 또는 모델 데이터 저장부(26)에 유지된다. 결과적으로, 후속 처리에서, 스크린 상의 항목이 실제로 블록 세트에 접속되든 가상으로 접속되든 상관없이, 실제 공간에서 블록 세트의 움직임에 따라 가상 세계에서 3D 객체(242)에 의해 유지되는 상태로 이동하기 위해 항목이 나타낼 수 있다. 3차원 형상 정보가 3D 스캐너에 의해 사용자 자신 등에 의해 이루어진 실제의 것을 캡처함으로써 획득되는 경우, 3차원 형상 정보는 상술한 항목에 대한 대체물로서 역할을 한다. 즉, 비통신 블록의 실제의 것이 실제로 접속되지 않을 경우에도, 비통신 블록이 스크린 상에 접속된 것처럼 비통신 블록이 표시될 수 있다.
블록 세트의 외관 자체는 가상 세계에서 유사한 방법에 의해 디스플레이 상에 생성될 수 있다. 도 16은 외관이 블록 세트에 설정되는 경우에 블록 세트와 디스플레이 사이의 관계를 도시한다. 본 예에서, 도 15의 경우와 비교되듯이, 블록 세트(248) 자체는 예를 들어 단지 통신 블록 등과 같이 구성이 간단하다. 이러한 블록 세트(248)의 상태를 인식할 때, 정보 처리 장치(10)는 블록 세트를 수평으로 플립한 후에 인식된 블록 세트의 상태를 그대로 또는 3D 객체(250)로서 디스플레이 장치(16) 상에 표시한다. 그 후, 도 15의 항목의 경우에서와 같이. 후보로서 3D 객체의 옵션의 이미지(252a, 252b 및 252c)는 예를 들어 얼굴 등과 같은 각 부분에 대해 표시된다.
사용자는 블록 세트의 각 블록 또는 복수의 블록에 의해 형성된 각 부분에 대한 이미지(252a, 252b 또는 252c)로부터 입력을 선택하는 것을 수행하며, 이에 의해 3D 객체(250)에 가상으로 접속한다. 따라서, 외관은 완성된다. 결과적으로, 다양한 외관을 가진 3D 객체를 자유롭게 생성하고, 실제 블록 세트(248)의 움직임에 따라 3D 객체를 더 이동시키거나 가상 시점을 변경할 수 있다. 게다가, 가상 3D 객체는 가상 외관이 이와 같이 생성되는 복수의 블록 세트를 접속함으로써 디스플레이상에서 서로 결합될 수 있다.
예를 들어, 블록 세트와 블록 세트에 대응하는 외관이 대물 렌즈(objective)로서 3D 객체의 완성된 형태로 각 부분에 대해 생성되고, 블록 세트가 최종적으로 접속될 때, 심지어 상세한 부분이 설정되는 외관을 가진 완성된 형태가 표시되도록 하는 모드가 실현될 수 있다. 대안적으로, 일단 생성되면 가상 외관을 가진 3D 객체를 저장하고, 동일한 블록 세트를 이용하여 다른 외관을 갖는 3D 객체를 생성하는 절차는 반복될 수 있고, 따라서 생성된 복수의 3D 객체는 가상 세계에서만 서로 결합될 수 있다. 이 경우, 최종으로 블록 세트와 관련된 3D 객체가 블록 세트와 연동될 때 서로 결합된 3D 객체의 모두가 블록 세트에 따라 이동하는 모드가 실현될 수 있다.
도 15 및 16의 예에서. 블록 세트의 움직임은 가상 세계에서 3D 객체에 반영된다. 역으로, 3D 객체의 움직임은 블록 세트의 움직임에 반영될 수 있다. 예를 들어, 사용자에 의해 조립된 블록 세트를 나타내는 3D 객체 또는 블록 세트에 대응하기 위해 사용자에 의해 가상으로 생성된 3D 객체는 정보 처리부(30)에 의해 실행된 게임에서의 문자로서 나타나도록 만들어진다. 사용자가 입력 장치(14)를 이용하여 게임 동작을 수행하고, 3D 객체가 이에 따라 이동하면, 실제 블록 세트는 또한 이동하도록 만들어진다. 이 경우에, 구동 제어부(34)는 3D 객체의 움직임에 대응하는 방식으로 블록 세트의 구동부(148)를 제어하기 위한?? 신호를 전송한다.
도 16의 예에서. 사용자가 하나 또는 복수의 블록의 단위로 3D 객체를 적용하는 모드를 추정한다. 따라서, 실제 블록과 가상 객체 사이의 대응 관계는 비통신 블록의 것과 유사하고, 관리는 또한 유사한 방식으로 수행될 수 있다. 즉, 실제 블록 세트의 조인트 각도가 변화되면, 수정이 변화에 의해 생성되는 위치는 또한 3D 객체에서 분명하며, 따라서 변화는 스크린 디스플레이에 쉽게 반영될 수 있다. 이는 3D 객체의 움직임이 블록 세트에 반영하는 경우와 마찬가지이다. 한편, 하나의 3D 객체가 조립된 블록 세트의 전체와 관련될 때, 블록 세트 및 3D 객체의 대응하는 위치는 블록 세트와 3D 객체를 서로 적절히 연동하기 위해 적절하게 설정될 필요가 있다.
도 17은 하나의 3D 객체가 조립된 블록 세트와 관련되는 경우에 블록 세트와 디스플레이 사이의 관계를 도시한다. 본 예는 사용자가 크레인 트럭을 나타내는 것으로 추정된 블록 세트(260)를 생성하고, 디스플레이 상의 3D 객체로서 크레인 트럭(262)을 선택하는 경우를 추정한다. 블록 세트(260)는 크레인을 나타내는 것으로 추정된 블록에 제공된 복수의 조인트(264a, 264b 및 264c)를 포함하고, 플랫폼의 역할을 하는 블록에 맞춰진 휠(266a, 266b, 266c 및 266d)를 더 포함한다.
사용자가 블록 세트(260)의 조인트를 구부리고 신장하며, 예를 들어 동일한 방식으로 스크린 상에 크레인 트럭(262)을 이동할 경우, 조인트(264a, 264b 및 264c)의 굽힘 및 신장이 반영될 수 있는 어떤 위치에서의 크레인 트럭(262)의 위치는 설정될 필요가 있다. 게다가, 디스플레이 상의 크레인 트럭(262)의 움직임이 블록 세트(260)의 실제 움직임에서 반영될 경우, 각각의 휠의 롤 회전 속도, 스티어링 각도 등은 디스플레이 상의 움직임에 따라 결정될 필요가 있다. 본 실시예에서의 블록 세트(260)는 사용자에 의해 자유롭게 조립된다. 따라서, 크레인의 부분으로 이동되기를 원하는 부분, 크레인 트럭의 전후 관계 등은 주로 사용자의 의도에 따라 다르다. 따라서, 따라서 자유롭게 조립된 것의 움직임과 사전에 준비된 3D 객체의 움직임 사이의 대응 관계를 설정하는 방법에 대한 설명이 이루어진다.
도 18은 블록 세트 및 3D 객체의 움직임을 서로 관련시키는데 필요한 정보를 예시한다. 도면의 좌측은 도 17에서 블록 세트(260)에 대응하는 블록 세트(270)의 개략적인 다이어그램이다. 도면의 우측은 도 17에서 3D 객체의 크레인 트럭(262)에 대응하는 크레인 트럭(272)의 개략적인 다이어그램이다. 도면에 도시된 바와 같이, 정보 처리 장치(10)가 형상을 인식할 경우에 이용되는 좌표계는 블록 세트(270)에 설정되고, 3D 모델에 대한 로컬 좌표계는 크레인 트럭(262)에 설정된다. 두 좌표계는 서로 독립적으로 설정된다. 따라서, 각각의 좌표계에서의 블록 세트(270) 및 크레인 트럭(272)의 방향은 달라진다.
이해를 용이하게 하기 위해, 도 18의 예는 x 축과 y 축으로 형성된 2차원 평면의 형상, 즉, 블록 세트(270) 및 크레인 트럭(272)이 각각의 좌표계의 x 축과 평행한 상태로 정의될 때의 측면 형상을 예시한다. 그러나, 각각의 좌표계에 대한 블록 세트(270) 및 크레인 트럭(272)의 방향은 x 축에 대해 서로 반대이다. 여기서, 블록 세트(270)의 3개의 조인트는 RJ1, RJ2 및 RJ3로 나타내고, 크레인 트럭(272)의 3개의 조인트는 VJ1, VJ2 및 VJ3로 나타낸다. 게다가, 블록 세트(270)의 4개의 휠은 RA1, RA2, RA3 및 RA4로 나타내고, 크레인 트럭의 무한 궤도 트랙은 VA1 및 VA2로 나타낸다. 또한, 휠(RA3 및 RA4)과 무한 궤도 트랙(VA2)은 디스플레이 표면으로부터의 반대 측면에 있고, 보통 숨겨져 있다. 그러나, 도 18에서, 휠(RA3 및 RA4)과 무한 궤도 트랙(VA2)은 점선으로 표시된 바와 같이 시프트되어 나타내며, 참조 사항은 괄호에 나타낸다.
이러한 블록 세트(270) 및 이러한 크레인 트럭(272)을 서로 연동하기 위한 가장 간단한 방법은 각각 블록 세트(270)의 조인트(RJ1, RJ2 및 RJ3)를 크레인 트럭(272)의 조인트(VJ1, VJ2 및 VJ3)와 관련시키고, 휠(RA1 및 RA2)을 도면에 도시되지 않은 무한 궤도 트랙(VA2)과 관련시키며, 휠(RA3 및 RA4)을 무한 궤도 트랙(VA1)과 관련시킬 수 있다. 그러나, 본 예에서, 크레인의 조인트의 위치는 블록 세트(270)와 크레인 트럭(272) 사이에 차이가 있다. 따라서, 블록 세트(270) 및 크레인 트럭(272)의 대응하는 조인트가 예를 들어 동일한 각도로 개별적으로 구부러지는 경우, 사용자가 예상하는 바와 같은 움직임은 일어나지 않을 수 있다.
게다가, 일반적으로, 블록 세트(270)의 조인트 각도는 물리적 이동 가능한 범위를 가지고, 크레인 트럭(272)의 조인트는 또한 모델로서 이동 가능한 범위를 갖는다. 이러한 제약 조건이 고려되지 않는 경우, 3D 모델이 불가능한 각도로 구부러지는 경우, 또는 블록 세트의 조인트 각도가 한계치에 도달하고, 블록 세트가 더 이동하지 않는 경우가 있을 수 있다. 게다가, 좌표계에 대한 방향의 차이로 인해, 디스플레이 상의 크레인 트럭(272)은 블록 세트(270)가 전진될 때 배킹(backing)되는 경우가 있다. 이러한 문제를 방지하기 위해, 가상 세계의 것과 실제 것의 연동은 공동 좌표계를 설정하고, 대응 위치를 설정하며, 대응하는 위치의 구체적인 움직임을 서로 관련시키는 처리를 수행함으로써 조정된다.
도 19는 정보 처리 장치(10)가 블록 세트 및 3D 객체의 움직임을 서로 관련시키는 처리 절차를 도시하는 흐름도이다. 먼저, 사용자가 블록 세트를 원하는 형상으로 조립한 후, 사용자는 입력 장치(14)를 통해 3D 객체와의 관련을 시작하기 위해 명령어 요청을 입력한다. 정보 처리 장치(10)의 정보 처리부(30)가 요청을 수신하면(S40), 정보 처리부(30)는 구조 분석부(22)로부터 조립된 블록 세트의 명령어에 관련된 정보를 획득한다(S42). 그 후, 적합한 모델은 렌더링 데이터가 블록 세트의 형상 등에 기초하여 모델 데이터 저장부(26)에 준비되는 3D 객체 중에서 후보로서 추출된다(S44).
모델 데이터 저장부(26)는 크레인 트럭 등과 같은 다양한 종류의 객체 모델의 렌더링 데이터를 각 모델의 특징을 나타내는 메타데이터와 관련시키고, 서로 관련된 렌더링 데이터와 메타데이터를 저장한다. 메타데이터는 대략 분류될 경우 물건으로서의 특징, 구조적 특징 및 외부 특징을 포함한다. 물건으로서의 특징은 예를 들어 인간, 동물, 차량, 음식 등과 같은 항목, 영화, 애니메이션, 또는 캐릭터가 표시되는 게임의 이름, 캐릭터의 이름 등과 같은 고유 명사, 및 원시 시대, 중세, 현세, 미래, 특정 년 등과 같은 관련 기간을 포함한다. 구조적 특징은 조인트의 수, 이동 가능한 각도 및 각 조인트의 자유도, 링크의 길이 및 두께, 조인트의 접속 관계, 구동력, 타이어 직경 등을 포함한다.
외부 특징은 색상, 표면 형상, 비통신 블록의 수 또는 부피, 블록 세트의 비통신 블록의 커버율(covering ratio), LED 또는 디스플레이 장치가 제공될 때의 LED 또는 디스플레이 장치의 수, 디스플레이 장치의 종류 등을 포함한다. 모델 데이터 저장부(26)에서, 이러한 다양한 특징은 각 모델과 관련된다. 관련된 특징이 많을수록, 적합한 후보의 추출의 정확도는 높다. 그러나, 모든 특징이 관련되는 것으로 의도되지 않는다. S44에서, 정보 처리부(30)는 구조적 특징 및 외부 특징에 기초하여 S42에서 정보가 획득되는 블록 세트의 형상 또는 구조에 관한 정보로부터 실제 블록 세트와의 높은 유사도를 갖는 후보 모델을 추출한다.
예를 들어, NRJ이 블록 세트의 조인트의 수라고 하고, NRA이 블록 세트의 휠의 수라고 하고, NVJ가 3D 객체의 조인트의 수라고 하고, NVA가 3D 객체의 휠의 수라고 하면, 유사도 평가 값은 다음의 식에 의해 계산된다.
유사도 평가 값 = (NRJ - NVJ)
Figure pct00002
wJ + (NRA - NVA)
Figure pct00003
wA
WJ 및 WA는 조인트의 수의 평가 및 휠의 평가를 위한 가중치이고, 조인트의 수의 평가 및 휠의 평가의 중요성에 따라 결정된다. 평가 값이 0에 근접할수록. 유사도가 높다. 게다가, 평가 값이 양수인 경우, 평가 값은 블록 세트가 다수의 조인트 또는 휠을 갖는 경향을 나타낸다. 평가 값이 음수이면, 평가 값은 3D 객체가 다수의 조인트 또는 휠을 갖는 경향을 나타낸다. 평가 값을 0이게 하는 3D 객체가 있는 경우, 3D 객체는 가장 가능성 있는 후보 모델로서 추출된다.
더욱이, 동일한 절대값을 갖지만, 부호가 서로 다른 평가 값이 획득되는 복수의 3D 객체가 있는 경우, 음의 절대 값을 제공하는 3D 객체는 우선적으로 추출된다. 이것은 3D 객체의 조인트 또는 휠의 수가 증가됨에 따라, 더욱 상세한 움직임은 스크린에 표현될 수 있고, 블록 세트의 움직임이 더욱 풍부하게 표현될 수 있기 때문이다. 이러한 유사도를 평가하기 전에, 물건으로서의 특징 중에서 사용자에 의해 선택된 특징에 기초하여 후보가 좁혀질 수 있다. 물건으로서의 특징, 구조적 특징 및 외부 특징은 후보를 추출하기 위해 적절하게 서로 조합될 수 있거나, 사용자는 또한 물건으로서의 특징과 다른 특징을 지정하도록 허용될 수 있다.
정보 처리부(30)는 이와 같이 디스플레이 장치(16) 상에 추출된 복수의 후보 모델을 표시하고, 입력 장치(14) 등을 통해 사용자에 의해 수행되는 선택 입력을 수신한다(S46). 이에 의해 선택된 모델의 일례는 도 18에 도시된 크레인 트럭(272)이다. 그 다음, 이미지에서 블록 세트 및 객체에 공통인 좌표계가 설정된다(S48). 따라서, 자세를 결정하고 블록 세트의 방향으로 이동하는 파라미터는 3D 객체에서도 유사하게 처리될 수 있다. 예를 들어, 도 18에서 블록 세트(270)가 x축의 음의 방향으로 전진되는 경우, 좌표계는 3D 객체의 크레인 트럭(272)이 또한 x축의 음의 방향으로 전진되도록 설정된다. 게다가, 좌표계는 조인트 각도의 일반적인 정의를 할 수 있게 하고, 조인트 각도가 변경될 때 링크가 조인트에 대해 이동되는 것을 적절히 결정할 수 있게 한다.
일반적인 좌표계에서 정의된 다양한 종류의 파라미터는 원래 3D 객체에 설정된 로컬 좌표계에서의 값으로 좌표 변환을 실시하고, 이에 의해 3D 객체의 렌더링 시에 반영된다. 블록 세트 및 3D 객체의 형상이 서로 유사하고, 이의 정면 및 후면 등이 명백할 경우, 정보 처리부(33)는 블록 세트 및 3D 객체 모두가 동일한 방향을 갖도록 공통 좌표계를 설정한다. 대안적으로, 3D 객체의 방향이 블록 세트의 방향과 동일하게 되도록 사용자는 스크린 상에서 3D 객체의 방향을 조정할 수 있고, 정보 처리부(30)는 좌표계를 기준으로서의 방향으로 설정할 수 있다. 따라서, 심지어 전면 및 후면이 불분명한 블록 세트는 사용자가 의도한 방향으로 3D 객체와 연동될 수 있다.
그 다음, 블록 세트 및 3D 객체의 대응하는 위치가 설정된다(S50). 조인트의 수 또는 블록 세트 및 3D?? 객체의 링크의 접속 관계는 서로 일치할 때, 이러한 처리는 전체적으로 정보 처리부(30)에 의해 수행될 수 있다. 특히, 구조가 S42에서 획득되고, 객체 모델의 구조가 S46에서 선택되는 블록 세트의 구조에 기초하여, 정보 처리부(30)는 블록 세트 및 객체 모델의 대응하는 조인트를 기하학적으로 도출하고, 블록 세트 및 객체 모델의 대응하는 조인트를 서로 관련시킨다. 대안적으로, 설정 스크린은 사용자가 설정을 하게 하도록 표시된다. 이 경우에 관련된 위치에는 통상적으로 도 18에서 조인트 또는 휠이 있다. 그러나, 블록 세트의 굽힘 회전, 변위 등과 같은 변화가 반영되기를 원하는 위치에 대해, 사용자는 3D 객체 측에 대응하는 지점을 자유롭게 설정하도록 허용된다. 이것은 연체 동물 등과 같이 임의의 조인트 없이 동물을 이동시킬 수 있게 하거나, 실제로 구부러지지 않는 것을 휘게 할 수 있다.
또한, 관련된 위치는 반드시 일대일 관계에 있을 필요는 없다. 즉, 블록 세트의 복수의 조인트는 3D 객체의 하나의 조인트와 관련될 수 있거나, 3D 객체의 복수의 조인트는 블록 세트의 하나의 조인트와 관련될 수 있다. 이는 휠에 대해서와 마찬가지이다. 블록 세트 및 3D?? 객체가 상이한 수의 조인트를 가질 경우에도 블록 세트 및 3D?? 객체의 전체 구조가 복수의 조인트를 하나의 조인트로 간주함으로써 서로 일치하도록 만들어 질 수 있는 경우에, 정보 처리부(30)는 이러한 방식으로 조인트를 그룹화할 수 있다.
이 경우에, 예를 들어, 블록 세트 및 3D 객체 중 하나의 조인트의 하나의 그룹은 다른 것 중 하나의 조인트와 관련되어 있다. 이때, 후자의 조인트 각도의 변화는 전자의 조인트의 하나의 그룹의 움직임에 할당된다. 구체적인 예는 나중에 설명될 것이다. 조인트가 그룹화되는 여부와 상관없이, 정보 처리부(30)는 블록 세트 및 3D 객체의 전체 구조뿐만 아니라 각각의 조인트의 이동 가능한 각도를 고려하여 대응 관계를 설정한다. 예를 들어, 동일한 이동 가능한 각도를 갖는 조인트는 서로 관련된다. 따라서, 조인트 사이의 유사도는 전체 구조, 이동 가능한 각도 등과 같은 다양한 관점으로부터 평가될 수 있고, 평가 값이 임계 값보다 높은 조인트는 서로 관련될 수 있다. 정보 처리부(30) 또는 사용자에 의해 설정된 대응하는 위치에 대한 정보는 대응 정보 저장부(28)에 저장된다.
그 다음, 움직임 대응 관계는 이와 같이 관련된 위치에 대해 설정된다(S52). 즉, 조인트 각도의 변화를 그대로 반영할 지의 여부에 관한 설정이 이루어지거나, 조인트가 일대일 기초로 관련되지 않을 경우에, 조인트 각도 등의 변화를 할당할 비율이 설정된다. 블록 세트와 3D?? 객체의 구조가 서로 일치하고, 대응하는 조인트의 이동 가능한 각도가 서로 동일한 경우, 조인트 각도는 기본적으로 서로 유사한 것으로 간주될 수 있으며, 따라서 정보 처리부(30)는 이러한 방식으로 설정을 한다. 구조가 조인트 각도를 그룹화함으로써 서로 유사하게 만들어지는 경우, 상술한 바와 같이, 하나의 조인트 각도의 변화는 하나의 대응하는 그룹에 속하는 조인트의 움직임에 할당된다. 이때, 할당 비율은 각각의 조인트의 이동 가능한 각도 사이의 비율에 따라 결정될 수 있다.
따라서, 움직임 대응 관계가 사전에 규칙 세트에 의해 설정될 수 있는 경우, 정보 처리부(30)는 설정을 할 수 있다. 더욱이, 설정 스크린은 사용자가 움직임 대응 관계를 자유롭게 설정하거나, 이미 설정된 대응 관계를 보정할 수 있도록 표시된다. 게다가, 3D 객체의 차량의 움직임이 블록 세트의 차량의 움직임에 반영되는 경우, 디스플레이 상의 3D 객체의 차량의 속도와 블록 세트의 차축의 회전 속도는 서로 관련되어 있다. 이러한 관계는 블록 세트에 접속된 휠의 직경에 따라 변화한다. 따라서, 휠의 직경이 알려지면, 정보 처리부(30)는 동작에 의해 블록 세트의 차축의 회전 속도를 결정할 수 있다. 휠의 직경이 알려지지 않은 경우, 나중에 설명되는 바와 같이, 사용자가 실제로 블록 세트를 이동할 때 필요한 파라미터가 획득된다. S50 및 S52의 처리는 관련되는 모든 위치에 대해 반복된다(S54의 N). 모든 위치가 관련되는 경우, 처리는 종료된다(S54의 Y).
도 20은 도 19의 S46에서 사용자에 의해 모델 선택 입력을 수신하기 위해 디스플레이 장치(16)에 표시된 스크린의 일례를 도시한다. 모델 선택 수신 스크린(280)은 복수의 모델, 즉 "모델 1", "모델 2" 및 "모델 3"의 이미지, 선택 입력을 위해 프롬프트(prompt)하는 문자열(282), 및 입력 장치(14)에 의해 이동 가능한 커서(284)를 포함한다. "모델 1", "모델 2" 및 "모델 3"은 도 19의 S44에서 추출된 후보 모델이고, 상술한 바와 같이, 물건으로서의 특징, 구조적 특징 및 외부 특징 중 적어도 하나에 의해 필터링하는 결과이다. 사용자가 물건으로서의 특징으로 "크레인 트럭"을 지정하면, 예를 들어, 추출된 모델은 모두 크레인 트럭이다. 이 경우에, "크레인 트럭"의 선택을 수신하기 위한 스크린은 또한 모델 선택 수신 스크린(280)을 디스플레이하기 전에 표시된다.
추출된 수는 3개로 한정되지 않는다. 조건에 부합하는 모든 것이 추출될 수 있다. 대안적으로, 모델은 상술한 유사도의 평가 값을 이용함으로써 순위가 정해지고, 높게 순위를 정하는 미리 정해진 수의 모델이 추출될 수 있다. 이 경우에, 모델 선택 수신 스크린(280)은 왼쪽에서 순위가 감소하는 순서로 모델의 이미지를 배열할 수 있다. 도 20에서, "모델 1", "모델 2" 및 "모델 3"은 각각 크레인 트럭이지만, 조인트의 수 등과 같은 모델의 크레인 부분의 형상은 서로 상이하다. 사용자는 커서(284)에 의해 원하는 모델 또는 블록 세트와 유사한 모델을 나타내고, 예를 들어 입력 장치(14)에 의해 결정 입력을 수행함으로써 하나의 모델을 선택한다.
또한, 커서(284)를 통해 선택 입력을 위한 수단과 다른 수단은 모델의 선택을 위해 이용될 수 있다. 예를 들어, 카메라(122)에 의해 사용자를 촬영하고, 사용자의 손가락의 위치와 차례로 깊이 이미지 등으로부터 디스플레이 스크린 상에 나타낸 위치를?? 검출하는 기술이 제안된다. 이러한 기술이 이용되고, 사용자가 선택될 모델을 나타내는 경우, 정보 처리 장치(10)는 선택된 모델을 인식할 수 있다. 도 21 및 22에 도시된 각각의 설정 스크린 상의 사용자에 의한 입력은 유사한 방식으로 실현될 수 있다.
도 21은 도 19의 S48에서 블록 세트 및 선택된 모델에 공통인 좌표계를 설정하기 위해 디스플레이 장치(16)에 표시된 스크린의 일례를 도시한다. 본 예에서, 사용자는 블록 세트의 방향에 따라 스크린 상의 3D 객체의 방향을 조정함으로써 공통의 좌표계를 지정한다. 결과적으로, 상술한 바와 같이, 전체 구조의 전후 방향, 조인트에 대한 각 링크의 위치 관계, 조인트 각도의 정의 등은 균일하게 이루어질 수 있다. 모델 디스플레이 방향 설정 수신 스크린(290)은 크레인 트럭의 전면이 좌측으로 지향되는 이미지(292), 크레인 트럭의 전면이 우측으로 지향되는 이미지(294), 방향의 사양에 대해 프롬프트하는 문자열(296), 및 입력 장치(14)에 의해 이동 가능한 커서(298)를 포함한다.
본 예는 사용자가 도 20에서 모델 선택 수신 스크린(280) 상의 "모델 1"을 선택하는 것으로 추정한다. 동일한 모델의 객체가 2개의 좌우 방향에서 본 이미지가 표시된다. 예를 들어, 사용자는 도면에 도시된 바와 같이 블록 세트(260)를 배치하고, 블록 세트와 유사한 방향을 나타내거나 사용자가 커서(298)에 의해 블록 세트의 방향과 동일한 것으로 간주하는 방향을 나타내는 이미지를 나타내며, 입력 장치(14)에 의해 결정 입력을 수행한다. 도면의 예에서, 좌측 지향된 이미지(292)가 선택된다. 그 후, 방향이 구조 분석부(22)에 의해 획득되는 블록 세트(260)의 방향과 선택된 이미지의 3D 객체의 방향이 동일한 방향으로 정의되도록 정보 처리부(30)는 좌표계를 블록 세트(260) 및 3D 객체에 설정한다. 또한, 본 예에서와 같이, 블록 세트(260) 및 3D 객체의 전면 및 후면이 플랫폼 차량 등에 대하여 크레인의 위치와 같은 구조에 기초하여 추정될 수 있는 경우에, 정보 처리부(30)는 상술한 바와 같이 좌표계를 설정할 수 있다.
도 22는 도 19의 S50에서 블록 세트 및 3D 객체의 대응하는 위치를 설정하기 위해 디스플레이 장치(16) 상에 표시된 스크린의 일례를 도시한다. 대응하는 위치 설정 스크린(300)은 3D 객체의 이미지(302), 명령 리스트부(304), 설정 입력을 위해 프롬프트하는 문자열(306), 및 입력 장치(14)에 의해 이동 가능한 커서(308)를 포함한다. 스크린 상의 3D 객체는 모델 디스플레이 방향 설정 수신 스크린(290)을 통과한 후에 블록 세트와 동일한 방향에 있다. 따라서, 블록 세트와의 대응 관계는 사용자에 의해 쉽게 이해된다. 대응하는 위치 설정 스크린(300)은 블록 세트(260)의 이미지(310)를 더 표시할 수 있다.
이미지(310)는 카메라(122)에 의해 촬영된 이미지, 또는 정보 처리 장치(10)에 의해 상태가 인식되는 블록 세트(260)의 상태를 3D 객체로서 렌더링하는 이미지이다. 전자의 경우에, 사용자 및 카메라(122)가 블록 세트(260)에 대하여 서로 반대측에 있는 경우, 촬영된 이미지는 사용자로부터 볼 때 블록 세트(260)를 재생하도록 수평으로 플립(flip)된다. 후자의 경우에, 비통신 블록이 코어의 구조를 확인하는데 어려움을 갖게 할 때, 코어의 이미지만이 표시될 수 있다.
먼저, 사용자는 예를 들어 조인트를 굽힘 및 신장함으로써 블록 세트(260) 내에 관련되기를 원하는 조인트를 이동한다(예를 들어 화살표 A). 움직임은 구조 분석부(22)에 의해 인식된다. 블록 세트 측에 관련될 조인트(예를 들어 RJ2)를 지정하는 입력은 이에 의해 실현된다. 그 다음, 사용자는 커서(308)에 의해 3D 객체의 이미지(302)에서 3D 객체 측에 관련될 조인트(예를 들어 VJ3)를 나타내고, 입력 장치(14)에 의해 결정 입력을 수행한다. 블록 세트(260)의 조인트(RJ2) 및 3D 객체의 조인트(VJ3)는 이에 의해 서로 관련된다. 정보 처리부(30)는 대응 정보 저장부(28)에 이러한 조인트의 대응 관계를 기록하고 저장한다.
이러한 설정은 사용자가 이동하기를 원하는 블록 세트(260)의 모든 조인트에 대해 이루어진다. 게다가, 비슷한 설정은 휠에 대해 이루어질 수 있다. 사용자는 블록 세트(260)가 이와 같이 설정된 대응 관계에 기초하여 실제로 이동될 경우에 3D 객체의 움직임을 검사하도록 허용될 수 있다. 그 후, 보정은 필요 시에 이루어지도록 허용될 수 있다. 이를 위해, 명령 리스트부(304)는, 대응하는 위치의 바로 이전의 설정을 취소하고 설정을 다시 하기 위한 "이전(prev)" 버튼, 현재 설정을 확인하고 다음 대응하는 위치를 설정하기 위한 "다음(next)" 버튼, 현재 시간에 모든 설정을 저장하고 설정 절차를 종료하기 위한 "중지(stop)" 버튼 등과 같은 GUI를 표시한다. 또한, 메뉴(menu)로서 다양한 종류의 설정 스크린을 표시하는 스크린으로 전환하기 위한 "메뉴" 버튼이 또한 표시된다. 또한, 나중에 설명되는 움직임 대응 관계가 설정된 후에 움직임 확인 처리가 수행될 수 있고, 설정을 취소할 지의 여부는 이에 따라 "이전" 버튼 또는 "다음" 버튼에 의해 확인될 수 있다.
또한, 어떤 조인트가 블록 세트(260)의 지정된 조인트와 관련될 수 있는 3D 객체의 조인트가 조인트의 이동 가능한 각도 또는 구조적 제약 조건으로부터 자동으로 좁혀질 수 있을 경우, 정보 처리부(30)는 사용자에게 후보로서의 조인트를 제시할 수 있다. 즉, 블록 세트 측에 관련될 조인트가 지정되는 시점에서, 대응하는 위치 설정 스크린(300) 상에 표시된 3D 객체의 이미지(302)에 관련을 위한 후보로서의 조인트는 색상 등으로 변화되며, 사용자는 조인트 중 하나를 선택하도록 허용된다. 따라서, 사용자에 의한 자유로운 대응 관계 설정이 허용되는 경우에, 불가능한 관련이 회피될 수 있다.
게다가, 상술한 바와 같이, 블록 세트의 복수의 조인트는 3D 객체의 하나의 조인트와 관련되도록 허용되거나, 블록 세트의 하나의 조인트는 3D 객체의 복수의 조인트와 관련되도록 허용된다. 도 22의 예에서. 블록 세트의 2개의 조인트가 3D 모델의 조인트(VJ3)와 관련되어 있음을 나타내는 2개의 마크(312)는 3D 모델의 조인트(VJ3)에 제공된다. 이것은 예를 들어 블록 세트(260)의 조인트(RJ1)를 이동시킴으로써 3D 객체의 조인트(VJ3)와 블록 세트(260)의 조인트(RJ1)를 관련시키고, 조인트(RJ2)를 이동시킴으로써 3D 객체의 동일한 조인트(VJ3)와 조인트(RJ2)를 더 관련시키는 동작에 의해 실현된다.
한편, 3D 객체의 조인트(VJ1 및 VJ2)는 하나의 그룹으로 그룹화되고, 3D 객체의 조인트(VJ1 및 VJ2)가 블록 세트의 하나의 조인트와 관련되는 것을 나타내는 타원(314)에 의해 둘러싸인다. 따라서 하나의 그룹으로 3D 객체의 복수의 조인트를 그룹화하기 위해, 명령 리스트부(304)는 또한 그룹을 나타내는 타원(314)을 렌더링하기 위한 "그룹" 버튼의 GUI를 표시한다. 예를 들어, 사용자는 블록 세트(260)의 조인트(RJ3)를 이동시킨다. 그 후, 스크린상의 "그룹" 버튼은 커서(308)에 의해 선택되고, 3D 객체의 조인트(VJ2 및 VJ1)를 둘러싸기 위해 타원(314)이 그려진다. 블록 세트(260)의 조인트(RJ3)는 이에 의해 3D 객체의 조인트(VJ2 및 VJ1)와 관련된다.
정보 처리부(30)는 블록 세트 및 3D 객체의 전체 구조, 이동 가능한 각도 등의 관점으로부터 몇몇 적합한 그룹화 패턴을 결정하고, 대응하는 위치 설정 스크린(300) 상에 후보로서 그룹화 패턴을 표시할 수 있다. 이 경우에, 사용자는 후보로부터 하나의 패턴을 선택함으로써 그룹화를 결정한다. 대안적으로, 그룹화 패턴 후보는 3D 객체의 메타데이터로서 생성되고, 사용자가 선택을 하도록 대응하는 위치 설정 스크린(300) 상에 표시될 수 있다. 또한, 블록 세트의 이미지(310)가 대응하는 위치 설정 스크린(300) 상에 표시되는 경우, 블록 세트의 조인트는 커서(308)에 의해 이미지(310)에 지정될 수 있다. 게다가, 관련된 조인트는 3D 객체의 이미지(302)와 블록 세트의 이미지(310)에서 동일한 색상으로 표시될 수 있거나, 이의 대응 관계는 라인에 의해 관련된 조인트를 서로 접속함으로써 명백하게 나타낼 수 있다.
다음에는, 이와 같이 관련된 조인트의 움직임 대응 관계가 설명될 것이다. 대응 관계는 정보 처리부(30), 사용자, 또는 도 19의 S52에서 정보 처리부(30)와 사용자 모두의 협력에 의해 설정된다. 도 23은 기본 모드로서 블록 세트 및 3D 객체의 조인트가 일대일 기초로 서로 관련되고, 조인트가 동일한 각도로 이동하는 경우를 도시한다. 도 23의 좌측은 블록 세트의 조인트 부분(320a)을 나타내고, 도 23의 우측은 3D 객체의 대응하는 조인트 부분(322a)을 나타낸다. 즉, 블록 세트의 조인트 부분(320a)이 조인트가 구부러지지 않은 상태로부터 각도
Figure pct00004
만큼 구부러지는 경우, 3D 객체의 대응하는 조인트 부분(322a)은 또한 각도
Figure pct00005
만큼 구부러진다. 정보 처리부(30)에 의해 수행되는 처리에 따라, 3D 객체의 조인트 부분(322a)이 각도
Figure pct00006
만큼 구부러지는 경우, 대응하는 조인트(322a)는 구동 제어부(34)를 통해 블록 세트의 구동부(148)인 액추에이터를 구동함으로써 각도
Figure pct00007
만큼 구부러질 수 있다.
이러한 모드에 기초하여, 이동 가능한 각도, 관련될 조인트의 수 등과 같은 제약 조건, 사용자의 의도 등에 따라 다양한 설정이 실현된다. 도 24는 2개의 그룹화된 조인트가 하나의 조인트와 관련되는 경우에서 각각의 조인트의 각도 사이의 대응 관계의 일례를 도시한다. 도 24의 좌측은 블록 세트의 조인트 부분(320b)을 나타내고, 도 24의 우측은 3D 객체의 대응하는 조인트 부분(322b)을 나타낸다. 본 예에서, 블록 세트의 2개의 조인트 부분(320b)은 3D 객체의 하나의 조인트 부분(322b)과 관련된다. 그 후, 블록 세트의 조인트 중 하나가 각도
Figure pct00008
1만큼 구부러지고, 다른 조인트가 각도
Figure pct00009
2만큼 구부러지는 경우, 3D 객체의 대응하는 조인트 부분(322b)은 각도
Figure pct00010
1 및 각도
Figure pct00011
2의 합인 각도 (
Figure pct00012
1 +
Figure pct00013
2)만큼 구부러진다. 즉, 블록 세트의 2개의 조인트에 의한 조인트 각도의 변화는 3D 객체의 하나의 조인트에 의해 실현된다.
이러한 모드는 블록 세트의 각 조인트의 이동 가능한 각도가 3D 객체의 대응하는 조인트에 변화를 필요로 하는 조인트 각도의 변화보다 작을 때에 효과적이다. 블록 세트의 셋 이상의 조인트 각도의 변화는 합산될 수 있다. 각도의 대응 관계는 3D 객체의 복수의 조인트가 그룹화되고, 블록 세트의 하나의 조인트와 관련되는 경우에도 유사하다. 이러한 모드는 블록 세트의 조인트의 수가 3D 객체의 조인트의 수보다 작을 때에 효과적이다.
게다가, 반대로, 3D 객체의 조인트 부분(322b)이 각도 (
Figure pct00014
1 +
Figure pct00015
2)만큼 구부러지는 경우, 블록 세트의 대응하는 조인트 부분(320b)은 각각의 각도
Figure pct00016
1 및
Figure pct00017
2만큼 구부러질 수 있다. 이 경우에, 각각의 조인트의 이동 가능한 각도, 블록 세트가 나타내는 것으로 추정되는 것, 즉, 3D 객체에 의해 표현된 것의 실제 움직임 등과 같은 제약 조건에 따라 정보 처리부(30)는 각도
Figure pct00018
1와
Figure pct00019
2 사이의 비율을 결정할 수 있다. 블록 세트의 2개의 조인트의 이동 가능한 각도가 예를 들어 1:2의 비율인 경우, 각도
Figure pct00020
1 및
Figure pct00021
2는 또한 1:2의 비율에 있다.
이는 블록 세트의 하나의 조인트의 각도의 변화가 3D 객체의 복수의 조인트의 각도에 할당하는 경우에도 마찬가지이다. 도 22에 도시된 크레인 트럭이 추정되면, 예를 들어, 3D 객체의 조인트(VJ1)에 접속된 후크가 항상 수직 하방으로 지향되는 것은 당연하다. 따라서, 정보 처리부(30)는 이러한 상태를 유지하기 위해 각도
Figure pct00022
1 및
Figure pct00023
2를 계산한다. 이러한 할당 규칙은 3D 객체의 데이터와 함께 생성된다. 또한, 블록 세트 및 3D 객체 중 하나의 각도의 변화의 합이 다른 하나의 각도의 변화에?? 반영되는 모드, 및 블록 세트 및 3D 객체 중 하나의 각도의 변화가 다른 하나의 복수의 각도의 변화에 할당되도록 하기 위해? 반영되는 모드가 서로 조합되는 경우, 블록 세트의 복수의 조인트는 또한 3D 객체의 복수의 조인트와 관련될 수 있다.
도 25는 2개의 조인트가 그룹화되고 하나의 조인트와 관련되는 경우에 각각의 조인트의 각도 사이의 대응 관계의 다른 예를 도시한다. 도 25의 좌측은 블록 세트의 조인트 부분(320c)을 나타내고, 도 25의 우측은 3D 객체의 대응하는 조인트 부분(322c)을 나타낸다. 본 예에서, 블록 세트의 2개의 조인트는 서로 상이한 회전 축을 가지고, 2개의 조인트 중 하나가 도면의 평면에 수직한 축에 대한 각도를 변화시키며, 2개의 조인트 중 다른 하나가 링크의 축에 대한 각도를 변화시킨다고 가정한다. 한편, 조인트가 블록 세트의 2개의 조인트와 관련되는 3D 객체의 하나의 조인트는 각도가 블록 세트의 축에 대응하는 2개의 축에 대해 변경될 수 있도록 하는 2개의 자유도를 갖는 조인트라고 가정한다.
그 후, 블록 세트의 조인트 부분(320c)의 하나의 조인트가 각도
Figure pct00024
만큼 변화되고, 다른 조인트가 각도
Figure pct00025
만큼 변화될 경우, 3D 객체의 대응하는 조인트 부분(322c)은 각각의 축에 대해 각도
Figure pct00026
Figure pct00027
만큼 변화된다. 게다가, 반대로, 3D 객체의 조인트 부분(322c)이 각각의 축에 대해 각도
Figure pct00028
Figure pct00029
만큼 변화되는 경우, 블록 세트의 2개의 대응하는 조인트(320c)는 각각
Figure pct00030
Figure pct00031
만큼 변화될 수 있다.
도 26은 일대일로 서로 관련된 조인트의 각도의 변화가 서로 상이하게 이루어지는 경우를 예시한다. 도 26의 좌측은 블록 세트의 조인트 부분(320d)을 나타내고, 도 26의 우측은 3D 객체의 대응하는 조인트 부분(322d)을 나타낸다. 본 예에서, 블록 세트의 조인트가 각도
Figure pct00032
만큼 변화되는 경우, 3D 객체의 대응하는 조인트는 각도
Figure pct00033
의 3배인 각도 3
Figure pct00034
만큼 변화된다. 블록 세트의 조인트의 이동 가능한 각도가 예를 들어 변화가 3D 객체의 대응하는 조인트에 필요한 각도의 변화보다 작은 경우, 블록 세트가 한계치로 이동되는 경우에도 3D 객체는 예상대로 이동할 수 없다. 또한, 3D 객체가 블록 세트를 이동하는 많은 노력 없이 동적으로 이동되도록 원하는 경우가 있다.
이러한 문제는, 도면에 도시된 바와 같이 블록 세트의 조인트의 각도의 변화치에 1보다 큰 미리 정해진 값을 곱함으로써 획득된 각도만큼 3D 객체의 조인트 각도를 변경함으로써 해결될 수 있다. 대안적으로, 3D 객체의 조인트 각도는 블록 세트의 각도의 변화치에 1보다 작은 미리 정해진 값을 곱함으로써 블록 세트의 각도보다 작은 각도만큼 변화될 수 있다. 이러한 모드는 예를 들어 3D 객체가 예를 들어 조작기(manipulator)의 동작에서와 같이 블록 세트를 이동하는 손의 움직임보다 높은 정밀도로 미세하게 이동하기를 원할 경우에 효과적이다. 그것은 3D 객체의 조인트의 각도의 변화가 블록 세트의 각도의 변화에?? 반영되는 경우에도 유사한 설정을 하는데 충분하다. 또한, 조인트 중 하나의 각도의 변화가 다른 하나의 각도의 변화를 얻기 위해 미리 정해진 값으로 곱해지는 모드는 도 24 및 도 25에 도시된 모드와 조합될 수 있다. 이 경우에, 동일한 값이 그룹화된 모든 조인트에 대해 곱해질 수 있거나, 조인트에 따라 상이한 값이 곱해질 수 있다.
도 27은 블록 세트의 하나의 조인트를 3D 객체의 복수의 조인트와 관련시키는 다른 예를 도시한다. 도 27의 좌측은 블록 세트의 조인트 부분(320e)을 나타내고, 도 27의 우측은 3D 객체의 대응하는 조인트 부분(322e)을 나타낸다. 본 예에서, 블록 세트의 하나의 조인트 부분(320e)은 3D 객체의 3개의 조인트 부분(322e)과 관련된다. 그 후, 블록 세트의 조인트가 각도
Figure pct00035
만큼 구부러지는 경우, 3D 객체의 3개의 대응하는 조인트는 각각 동일한 각도
Figure pct00036
만큼 구부러진다.
따라서, 간단한 구성을 갖는 블록 세트의 경우에서도, 블록 세트의 움직임은 3D 객체의 넓은 영역에 반영될 수 있다. 예를 들면, 블록 세트의 하나의 조인트가 3D 객체의 복수의 조인트 부분(322e)을 더 접속함으로써 형성된 형상을 가진 큰 스네이크(snake)의 모든 조인트와 관련되는 경우, 큰 스네이크의 전진 움직임과 같은 움직임은 도 27에서 조인트 부분(320e)만으로 구성된 블록 세트로 표현될 수 있다. 상술한 바와 같이, 큰 스네이크가 다양한 방식으로 이동하도록 이루어지는 움직이는 이미지가 저장되는 경우, 큰 스네이크는 나중의 임의의 타이밍 시에 게임 또는 애니메이션에서 캐릭터로서 이용될 수 있다. 이러한 전진된 이미지 표현은 조인트 부분(320e)을 가질 시에 간단한 블록 세트에 의해 실현될 수 있다. 또한, 이 모드에서 3D 객체에 관련된 조인트는 도면에 도시된 바와 같이 서로에 인접한 관계로 한정되지 않고, 3D 객체의 먼 위치에 존재하는 복수의 조인트일 수 있다.
도 28은 도 19의 S52에서 블록 세트와 3D 객체 사이에 움직임 대응 관계를 설정하기 위해 디스플레이 장치(16)에 표시된 스크린의 일례를 도시한다. 사용자가 스크린 상에 대응하는 위치를 설정할 때마다 움직임 대응 관계 설정 스크린(330)은 도 22에 도시된 대응하는 위치 설정 스크린(300)에 움직임 대응 관계를 입력하기 위한 다이얼로그 박스(332)의 중첩 디스플레이를 생성함으로써 획득된 스크린이다. 본 예는, 블록 세트의 조인트(RJ1 및 RJ2)가 그룹화되고 3D 객체의 조인트(VJ3)와 관련된 후, VJ3의 각도의 변화가 블록 세트의 RJ1 및 RJ2의 각도의 변화에?? 할당될 때의 할당 비율이 선택된다고 추정한다. 이를 위해, 다이얼로그 박스(332)는 이러한 비율을 입력하기 위해 프롬프트하는 문자열(334)과, 이러한 비율의 각각의 수치 값을 입력하기 위한 텍스트 박스(336)를 표시한다.
사용자가 구체적인 수치를 입력 장치(14) 등을 통해 텍스트 박스로 입력하면, 정보 처리부(30)는 블록 세트의 조인트(RJ1 및 RJ2)에 관련한 비율을 3D 객체의 조인트(VJ3)와 더 관련시키고, 대응 관계 정보 저장부(28)에 저장한다. 다이얼로그 박스(332)에 설정된 정보는 이것으로 한정되지 않는다. 도 23 내지 27에서와 같이 관련 중에서 필요한 정보는 조인트가 그룹화되는지의 여부에 따라 순차적으로 설정되도록 허용된다. 그러나, 상술한 바와 같이, 정보 처리부(30)가 사전에 규칙 세트에 의해 움직임을 관련시킬 수 있는 경우, 사용자에 의한 설정은 생략될 수 있다. 대안적으로, 사용자는 유사한 다이얼로그 박스에서 정보 처리부(30)에 의해 수행된 관련을 보정하도록 허용될 수 있다.
도 29는 블록 세트 및 3D 객체의 대응하는 위치와 각각의 대응하는 위치의 움직임 사이의 대응 관계에 대한 정보의 데이터 구조의 일례를 도시하며, 정보는 대응 관계 정보 저장부(28)에 저장된다. 대응 관계 정보 테이블(340)은 블록 세트 측에서 대응하는 위치 및 움직임을 나타내는 블록 세트 정보부(342)와, 3D 객체 측에서 대응하는 위치 및 움직임을 나타내는 3D 객체 정보부(344)를 포함하며, 3D 객체 측 상의 대응하는 위치 및 움직임은 블록 세트의 위치 및 움직임에 대응하고, 블록 세트의 위치 및 움직임은 이러한 저장부 내에 입력된다. 본 예에서, 블록 세트의 조인트는 3D 객체의 조인트와 관련되고, 이러한 조인트의 각도의 변화 사이의 추가의 대응 관계가 설정된다.
대응 관계는 기본적으로 행 단위로 입력된다. 예를 들어, 블록 세트 정보부(342)와 3D 객체 정보부(344)의 각각의 "조인트" 섹션은 블록 세트의 조인트(RJ1 및 RJ2)가 3D 객체의 조인트(VJ3)와 관련되어 있음을 보여준다. 블록 세트의 움직임이 이러한 대응 관계에서 3D 객체에 반영될 때, 조인트(RJ1 및 RJ)의 각도의 변화의 합은 3D 객체의 조인트(VJ3)의 각도의 변화를 나타내는 것으로 정의된다.
블록 세트 정보부(342)와 3D 객체 정보부(344)의 각각의 "각도 변화" 섹션은 3D 객체의 움직임이 반대로 블록 세트에 반영되고, 3D 객체의 조인트(VJ3)의 각도가
Figure pct00037
만큼 변화될 경우, 조인트(RJ1 및 RJ2)의 각도는 각각
Figure pct00038
/2만큼 변화되며, 즉 할당 비율이 1:1임을 보여준다. 블록 세트의 조인트(RJ3)는 3D 객체의 조인트(VJ2 및 VJ1)와 관련되고, 블록 세트의 움직임이 3D 객체에 반영될 때, 각도 변화 할당 비율은 1:2이다. 다음의 섹션에서, 도 22 내지 27을 참조로 설명된 어느 하나의 움직임 사이의 대응 관계는 대응하는 위치와 함께 유사하게 입력된다.
지금까지 설명은 주로 조인트의 움직임 사이의 대응 관계에 관한 구체적인 예로 이루어졌다. 다음에는 설명이 휠의 움직임의 관련으로 이루어질 것이다. 조인트의 경우에, 블록 세트 및 3D 객체 모두가 이동 가능한 각도, 전체 구조 등과 같은 제약 조건을 갖지만, 조인트는 기본적으로 서로 독립적이며, 따라서 블록 세트의 조인트와 3D 객체의 조인트는 동등하게 관련될 수 있다. 다른 한편으로, 휠의 경우에, 블록 세트가 조인트의 경우보다 더 많은 제약 조건을 갖지만, 휠의 움직임이 정확하게 정의되어 있지 않을 경우에도 3D 객체가 실행하는 것처럼 3D 객체는 표현될 수 있다는 점에서 본질적으로 차이가 있다. 즉, 블록 세트 및 3D 객체를 서로 연동되도록 보이게 하기 위해, 그것은 이동 방향과 대략의 속도를 서로 관련시키기에 충분하다. 이러한 대응 관계는 도 19의 S48에서 공통 좌표계를 설정함으로써 획득된다.
사용자가 블록 세트(260)를 이동하고, 움직임이 3D 객체에 반영되면, 3D 객체에서의 블록 세트의 움직임의 반영은 단지 이러한 대응 관계에 기초하여 쉽게 실현될 수 있다. 특히, 그것은 카메라(122) 등의 촬영된 이미지로부터 블록 세트의 움직임의 량 및 이동 방향을 획득하고, 3D 객체가 또한 블록 세트의 움직임의 량 및 이동 방향에 기초하여 유사하게 이동하도록 3D 객체를 표현하기에 충분하다. 다른 한편으로, 3D 객체의 움직임이 블록 세트에 반영될 때, 제약 조건에 따른 설정이 필요하다. 예를 들어, 차량은 휠이 협력 동작을 수행하지 않을 때 실행할 수 없다. 게다가, 원하는 속도를 획득하기 위한 휠의 회전 속도는 휠의 직경에 따라 변화한다. 따라서, 적절한 조정이 이루어지지 않으면, 차량은 너무 높은 속도에 도달하여, 예를 들어, 벽과 충돌할 수 있다.
따라서, 휠의 움직임을 관련시킬 시에, 블록 세트 측에 대한 많은 제약 조건이 있기 때문에 조인트의 경우에서보다 사용자에 의해 자유로운 설정을 위한 여지가 적다. 따라서, 주로 정보 처리부(30)는 움직임을 관련시킨다. 특히, 블록 세트의 전후 및 좌우가 명백하게 되는 시점에서, 구동 휠, 피구동 휠 및 스티어링된 휠은 사전에 설정된 구동 시스템에 따라 결정된다. 더욱이, 좌우 구동 휠과 좌우 스티어링된 휠이 동일한 회전 속도 및 동일한 스티어링 각도를 갖는다는 제약 조건을 만족시키기 위해 그룹화가 수행된다. 게다가, 블록 세트의 휠의 회전 속도 및 스티어링 각도는 블록 세트가 가상 세계에서 표현되는 3D 객체의 방향의 속도 및 변화에 대응하는 방향의 적절한 속도 및 적절한 변화로 실행하도록 3D 객체의 방향의 가상 속도 및 변화와 관련된다.
도 30은 3D 객체의 움직임이 블록 세트에 반영되는 모드에서 3D 객체와 블록 세트의 움직임 사이의 대응 관계를 설정하기 위한 처리 절차를 도시한 흐름도이다. 이러한 처리는 도 19에서 S50 및 S52의 처리에 대응한다. 정보 처리부(30)가 먼저 휠이 구조 분석부(22)로부터의 정보에 기초하여 블록 세트에 맞춰진 것을 탐지하면, 정보 처리부(30)는 구동 휠, 스티어링?? 휠 등과 같은 휠의 역할을 블록 세트의 전후 및 좌우 방향 및 구동 시스템에 따라 프론트 휠(front wheel) 또는 리어 휠(rear wheel)에 할당한다(S58). 더욱이, 서로 평행하게 배치되고, 구동 휠 또는 스티어링된 휠의 역할이 할당되는 적어도 2개의 휠은 하나의 그룹으로 그룹화되고, 이에 의해 협력 동작을 수행하도록 이루어진다(S60).
또한, 서로 평행하게 배치된 2개의 휠이 하나의 차축에 대해 회전할 때, 2개의 휠은 자연스럽게 협력 동작을 수행하며, 따라서 S60의 처리는 생략될 수 있다. 그 다음, 3D 객체의 가상 주행을 반영하는 적절한 이동 속도와 적절한 방향의 변화를 획득하기 위한 제어 파라미터가 획득된다. 이 경우의 제어 파라미터는 구동 휠의 차축을 회전하는 액추에이터의 회전 속도, 스티어링된 휠의 스티어링 각도를 변경하는 액추에이터의 움직임 량 등이다. 또한, S60에서 그룹화된 구동 휠 및 스티어링된 휠을 제어하는 복수의 액추에이터는 정보 처리 장치(10)로부터의 제어 신호에 따라 동일한 동작을 수행하기 위해 제어된다.
제어 파라미터를 획득하기 위해, 먼저, 사용자는 실제로 미리 정해진 방향으로 블록 세트를 이동하도록 한다. 블록 세트의 움직임 량은 측정되고, 움직임 시에 차축의 회전량 및 스티어링 각도는 측정된다(S62, S64 및 S66). 사용자는 별도로 준비된 제어 메커니즘에 의해 블록 세트를 전자적으로 구동할 수 있거나, 예를 들어, 손으로 블록 세트의 본체를 밀어냄으로써 블록 세트를 수동으로 이동시킬 수 있다. 후자의 경우에, 차축 및 스티어링 각도를 변경하기 위한 메커니즘은 액추에이터의 제어로부터 풀려난다. 블록 세트의 움직임 량은 카메라(122)의 촬영된 이미지 또는 카메라(122)의 촬영된 이미지로부터 생성된 깊이 이미지로부터 획득될 수 있다. 회전량은 휠에 제공된 로터리 인코더로부터의 신호로부터 획득될 수 있다. 스티어링 각도는 휠에 제공된 스티어링 각도 센서에 의해 획득될 수 있다. 또한, 예를 들어 로터리 인코더 등과 같은 센서가 제공되지 않는 경우, 회전량 및 스티어링 각도는 휠의 직경, 이동 거리 및 이동 방향에 기초하여 계산될 수 있다.
그 후, 방향의 변경을 포함하는 움직임 량에 대한 실제 회전량 및 실제 스티어링 각도에 기초하여, 움직임 량을 획득하기 위해 모터의 회전량, 액추에이터의 움직임 량 등과 같은 제어의 량은 획득된다(S68). 이러한 대응 관계는 단위 시간당 값 또는 단위 각도당 값으로 변환된다. 이동 속도와 단위 스티어링 각도는 이에 의해 제어 파라미터의 값과 관련된다(S70). 이 경우의 이동 속도는 블록 세트 자체의 적절한 이동 속도이다. 그러나, 블록 세트가 스크린 상에서 3D 객체와 연동되는 경우, 이동 속도는 가상 세계에서 이동 속도에 의해 결정된 값이다. 이는 스티어링 각도에 대해서도 마찬가지이다. 따라서, 3D 객체의 움직임은 S70의 처리에 의해 블록 세트의 움직임과 관련된다.
또한, 블록 세트에 접속된 휠의 직경이 휠의 식별 번호로부터 알려되면, 이동 속도와 제어 파라미터 사이의 대응 관계는 동작에 의해 획득될 수 있다. 따라서, S62 내지 S68의 처리는 생략될 수 있다. 게다가, 지금까지 설명된 예는 크레인 트럭을 나타내도록 추정된 블록 세트와 크레인 트럭의 3D 객체는 서로 관련되는 것으로 추정한다. 따라서, 휠의 움직임의 관련에 대한 설명이 이루어졌다. 그러나, 도 28에 도시된 흐름도는 3D 객체가 휠을 갖지 않는 경우에도 유사하게 적용된다.
즉, 3D 객체가 인간, 동물, 곤충, 자동차와 다른 차량 등인 경우에서도, 가상 세계의 움직임이 블록 세트의 움직임에 반영될 때, 도 28의 처리 절차에 의해 이동 속도 및 스티어링 각도를 제어 파라미터와 관련시킴으로써 블록 세트는 속도 및 방향이 3D 객체의 가상 움직임에 대응하는 속도 및 방향으로 이동될 수 있다. 더욱이, 그것은 3D 객체의 움직임이 반영되는 모드뿐만 아니라, 블록 세트가 정보 처리 장치(10)에 의해 수행되는 처리 결과에 따라 간단히 이동되는 모드에도 적용할 수 있다.
도 31은 블록 세트의 휠에 관련된 상술한 설정이 복합 링크로 확장되는 경우를 설명하는데 지원하는 다이어그램이다. 도면에 도시된 복합 링크(350)에서, 조인트는 서로 완전히 관계 없지 않고, 링크는 서로 연동되어 있다. 즉, 화살표로 나타낸 바와 같이, 복합 링크(350)의 하나의 조인트가 이동될 때, 4개의 조인트는 모두 이동된다(복합 링크(352)). 이러한 경우에, 액추에이터에 의해 하나의 조인트만을 이동하는 것은 불가능하다. 따라서, 휠을 구동하는 경우에서와 같이, 4개의 조인트는 그룹화되고, 협력 동작을 수행하도록 이루어진다. 복합 링크가 블록 세트에 통합되는 경우, 사용자는 대응 관계 설정 스크린 등에 복합 링크의 존재를 명확하게 나타내거나, 정보 처리부(30)는 블록 세트의 실제의 것의 복합 링크가 이동되는 경우에 복합 링크의 존재를 인식한다. 그 후, 3D 객체와의 움직임 대응 관계가 설정되면, 복합 링크에 포함된 모든 조인트는 그룹화된다.
상술한 본 실시예에 따르면, 자유롭게 조립될 수 있는 블록은 정보 처리 장치에서의 처리를 위한 입력 장치 또는 출력 장치로서 이용된다. 조립 후에 블록 등의 골격 및 위치와 같은 상세 사항은 위치 및 자세를 획득하고 통신 기능을 갖는 블록을 통신하기 위한 다양한 종류의 센서를 이용함으로써 획득된다. 더욱이, 조립 후의 블록의 표면 형상은 카메라 등에 의해 촬영된 이미지와 같이 실제 공간에서의 블록의 존재를 검출하기 위한 수단을 이용함으로써 획득된다. 조립 후의 블록의 위치, 자세 및 형상은 통신 기능 없이 비통신 블록이 블록의 부분으로서 이용되는 경우에도 이러한 정보의 부분을 통합함으로써 높은 정밀도로 식별될 수 있다.
결과적으로, 블록의 형상, 재료, 색상 등은 사용자 자신에 의해 만들어진 것이 이용될 수 있고, 사용자의 목적을 서빙하는 외관을 갖는 객체가 자유롭게 생성될 수 있는 것으로 한정되지 않는다. 게다가, 정보 처리 장치는 외관과 상관없이 위치, 자세 및 형상을 고정밀도로 획득할 수 있다. 따라서, 다양한 종류의 정보 처리가 입력 정보로서 사용자에 의해 조립 또는 이동 동작으로 수행될 수 있다. 게다가, 조립된 블록은 정보 처리의 결과로서 이동될 수 있다.
예를 들면, 조립된 블록과 동일한 외관을 갖는 3D 객체가 표시될 수 있거나, 3D 객체가 조립된 블록에 대응하는 보다 현실적인 외관을 갖는 3D 객체가 표시될 수 있다. 후자의 경우에, 사용자는 블록의 각 부분에 대한 3D 객체의 부분을 지정함으로써 3D 객체 자체를 형성할 수 있거나, 블록의 전체는 하나의 3D 객체에 대응하도록 만들어질 수 있다. 이 때에, 연동될 조인트의 위치 등을 관련시킴으로써 위치의 변경뿐만 아니라 자세 또는 형상의 변경을 서로 반영하는 것이 가능하다. 설정 대응 위치 및 움직임 관련 사항은 블록 세트 및 3D 객체의 형상, 조인트의 수, 조인트의 이동 가능한 각도, 휠의 협력 동작 등과 같은 제약 조건에 기초하여 설정될 수 있다. 이러한 관련 사항은 자동적으로 정보 처리 장치에 의해 확립되거나, 사용자가 설정을 행하도록 하는 환경이 제공된다. 이에 의해 사용자의 대한 부하를 줄이면서 현실 세계와 가상 세계 사이의 링크를 자유롭게 형성하는 것이 가능하다.
본 발명은 이의 실시예에 기초하여 상술되었다. 상술한 실시예는 예시적이며, 실시예의 구성 요소 및 처리 프로세스의 조합은 다양한 수정이 가능하며, 이러한 수정은 또한 본 발명의 범위 내에서 이루어진다는 것이 당업자는 이해해야 한다.
예를 들어, 도 22에 관련하여 설명된 대응 위치 설정 스크린(300)은 스크린 상의 3D 객체와 관련될 객체로서 블록 세트를 추정한다. 그러나, 예를 들어, 사용자 자신 등과 같이 블록 세트와 다른 것은 유사하게 관련될 수 있다. 사용자가 관련될 때, 카메라(122)는 사용자를 촬영하고, 깊이 이미지는 예를 들어 촬영된 이미지에 기초하여 생성되며, 골격의 위치는?? 추정된다. 골격의 위치는 골격 추적 등과 같은 종래의 기술을 적용함으로써 추적될 수 있다. 그 후, 사용자가 어깨, 팔꿈치 등과 같이 관련되기를 원하는 조인트에 대한 팔 등과 같은 부분을 이용하는 경우, 정보 처리 장치(10)는 블록 세트의 경우에서와 같이 조인트를 인식한다. 더욱이, 3D 객체의 조인트는 스크린 상에 지정되어, 사용자 및 3D 객체의 조인트가 서로 관련될 수 있다.
이에 의해, 3D 객체가 사용자의 움직임에 따라 이동하는 모드가 실현될 수 있다. 대안적으로, 블록 세트가 인간의 형태로 조립되고, 본 실시예에서와 같이 3D 객체와 관련되는 경우, 사용자의 조인트 및 블록 세트의 조인트는 3D 객체의 조인트를 통해 서로 간접적으로 관련된다. 이러한 상태가 이용되고, 3D 객체의 움직임이 본 실시예에서 블록 세트에 반영되는 모드와 조합될 때, 사용자의 움직임에 따라 블록 세트가 이동되는 모드가 또한 실현될 수 있다.
이러한 모드의 수정으로서, 사용자의 조인트 및 3D 객체의 조인트가 스크린 상에서 서로 관련되도록 사용자 이미지와 골격의 위치를? 나타내는 이미지는 촬영된 이미지로부터 실시간으로 생성될 수 있고, 대응하는 위치 설정 스크린에 표시될 수 있다. 이때, 이미지는 모두 동시에 표시될 수 있거나, 대응 관계가 하나씩 설정되는 조인트의 사양을 수용하도록 교대로 표시될 수 있다. 또한, 이러한 수정은 사용자가 3D 객체의 조인트와 사용자 자신의 조인트를 관련시킨다고 추정한다. 그러나, 3D 객체가 인간, 로봇 등이고, 사용자의 조인트와의 대응 관계가 분명한 경우, 사용자에 의한 설정은 생략될 수 있고, 정보 처리 장치는 모든 설정을 할 수 있다.
게다가, 본 실시예에서, 휠은 차량의 전후가 알려진 상태에서 차축에 맞춰지고, 정보 처리 장치는 이에 따라 구동 휠, 피구동 휠 및 스티어링된 휠의 역할을 결정한다. 그 후, 차량의 동작을 제어하는?? 액추에이터의 움직임은 역할에 따라 변화된다. 이러한 모드는 이에 접속되는 것에 따라 움직임을 변경하는 액추에이터를 포함하는 블록을 실현하도록 확장될 수 있다. 예를 들면, 차축 및 휠로 구성되는 부분이 맞춰질 때, 블록 세트의 차량은 차축을 회전시킴으로써 이동된다. 캠 및 스프링 등으로 구성된 부분이 맞춰질 때, 스프링은 캠의 회전에 의해 풀려지고, 설정 상태 등의 화살표는 쇼트(shot)이다. 상술한 바와 같이 조인트를 포함하는 부분이 맞춰질 때, 부분은 조인트로서 동작하도록 만들어진다.
이 경우에, 정보 처리 장치(10)는 촬영된 이미지로부터 접속된 것의 종류를 인식하고, 접속된 것의 종류에 대응하는 제어 신호를 블록 세트로 전송함으로써 액추에이터의 움직임을 적절히 변경한다. 따라서, 액추에이터를 포함하는 블록의 다양성이 증가되고, 다양한 블록 세트가 상이한 종류의 상이한 블록을 준비하는 것보다 적은 비용으로 실현될 수 있다.
2: 정보 처리 시스템,
10: 정보 처리 장치,
14: 입력 장치,
16: 디스플레이 장치,
20: 코어 정보 수신부,
22: 구조 분석부,
24: 블록 정보 저장부,
26: 모델 데이터 저장부,
28: 대응 관계 정보 저장부,
30: 정보 처리부,
32: 디스플레이 처리부,
34: 구동 제어부,
102a: 사각 프리즘 블록,
122: 카메라,
120: 블록 세트,
126a: 블록,
128a: 배터리,
130a: 통신 메커니즘,
132a: 메모리,
134: 위치 센서,
136a: 모션 센서,
138: 각도 센서,
139a: 액추에이터,
141: 로터리 인코더,
142a: 제 1 블록,
143a: 제 1 통신부,
144a: 요소 정보 획득부,
146a: 제 2 통신부,
148: 구동부.
상술한 바와 같이, 본 발명은 장난감, 게임 장치, 조립된 장치, 학습 자료, 콘텐츠 디스플레이 단말기, 정보 처리 장치, 로봇 등에 적용 가능하다.

Claims (14)

  1. 정보 처리 장치에 있어서,
    개별적으로 제조된 블록을 서로에 결합함으로써 형성되는 조립된 장치로부터 통신 블록의 구조에 관련된 정보를 획득하는 구조 정보 수신부로서, 상기 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 상기 통신 블록과 다른 비통신 블록을 포함하는 상기 구조 정보 수신부;
    상기 조립된 장치를 촬영하여 획득된 이미지로부터 상기 조립된 장치의 전체 이미지 및 위치를 획득하고, 상기 통신 블록의 구조에 관련된 정보와 상기 조립된 장치의 전체 이미지 및 위치를 통합함으로써 상기 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하는 구조 분석부; 및
    상기 상태 정보에 기초하여 정보 처리를 수행하는 정보 처리부를 포함하는 것을 특징으로 하는 정보 처리 장치.
  2. 제 1 항에 있어서,
    상기 구조 분석부는 전체 이미지의 통신?? 블록의 부분을 식별함으로써 상기 비통신 블록의 이미지를 추출하며, 상기 통신 블록의 숨겨진 부분을 포함하는 상기 통신 블록의 부분은 상기 구조에 관련된 정보에 기초하여 상기 비통신 블록과 상기 통신 블록의 형상 사이의 위치 관계를 식별하고, 서로 접속되는 상기 비통신 블록 및 상기 통신 블록은 상기 추출의 결과에 기초하여 상기 상태 정보를 생성하는 것을 특징으로 하는 정보 처리 장치.
  3. 제 2 항에 있어서,
    상기 구조 분석부는 미리 정해진 주파수에서 상기 상태 정보를 생성하고, 미리 정해진 규칙에 의해, 상기 이미지에 접속된 비통신 블록의 부분의 이미지가 포함되지 않는 경우에 상기 접속된 비통신 블록의 부분에 대한 형상을 추정하며, 상기 부분이 후속 시간 단계에서의 이미지에 포함되는 경우에 추정된 형상을 보정하는 것을 특징으로 하는 정보 처리 장치.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 구조 분석부는 미리 정해진 주파수에서 상기 상태 정보를 생성하고, 접속된 비통신 블록의 수가 시간의 경과에 따라 변화될 때, 상기 구조 분석부는 상기 비통신 블록의 부착 또는 분리를 인식하고, 상기 상태 정보를 업데이트하는 것을 특징으로 하는 정보 처리 장치.
  5. 제 2 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 구조 분석부는 각각의 비통신 블록의 특징이 상기 비통신 블록의 추출된 이미지에 기초하여 기록되는 비통신 블록의 기본 정보를 검색함으로써 접속된 비통신 블록의 형태를 식별하는 것을 특징으로 하는 정보 처리 장치.
  6. 제 2 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 구조 분석부는 상기 상태 정보의 접속된 비통신 블록을 개별적으로 관리하고, 상기 통신 블록의 형상이 변화할 시에 상기 통신 블록에 접속된 상기 비통신 블록의 분할에 의해 트리거되며, 상기 구조 분석부는 상기 비통신 블록의 둘 다를 서로 구별하기 위해 상기 비통신 블록의 둘 다를 관리하도록 상기 상태 정보를 업데이트하는 것을 특징으로 하는 정보 처리 장치.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 정보 처리부는 상기 상태 정보에 기초하여 상기 조립된 장치의 외관을 객체로서 렌더링하는 것을 특징으로 하는 정보 처리 장치.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 구조 분석부는 상기 상태 정보에서 이전에 제거된 비통신 블록에 대한 정보를 유지하고,
    상기 정보 처리부는 사용자로부터의 요청에 따라 상기 상태 정보를 참조함으로써 상기 이전에 제거된 비통신 블록이 원래의 위치로 복원될 때 상기 조립된 장치의 외관을 객체로서 렌더링하는 것을 특징으로 하는 정보 처리 장치.
  9. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 정보 처리부는 상기 조립된 장치의 외관을 객체로서 디스플레이 장치에 표시하고, 스크린 상에 다른 객체 모델을 접속하는 입력을 사용자로부터 수신하며, 상태 정보에 입력으로 인한 가상 접속을 반영하는 것을 특징으로 하는 정보 처리 장치.
  10. 정보 처리 시스템에 있어서,
    개별적으로 제조된 블록을 서로 결합함으로써 형성되는 조립된 장치; 및
    상기 조립된 장치로부터의 입력 신호에 기초하여 정보 처리를 수행하는 정보 처리 장치를 포함하며,
    상기 조립된 장치는
    통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 상기 통신 블록과 상기 통신 블록과 다른 비통신 블록 사이로 전송할 수 있도록 구성된 통신 블록을 포함하고,
    상기 정보 처리 장치는
    상기 조립된 장치로부터 상기 통신 블록의 구조에 관련된 정보를 획득하는 구조 정보 수신부,
    상기 조립된 장치를 촬영하여 획득된 이미지로부터 상기 조립된 장치의 전체 이미지 및 위치를 획득하고, 상기 통신 블록의 구조에 관련된 정보와 상기 조립된 장치의 전체 이미지 및 위치를 통합함으로써 상기 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하는 구조 분석부, 및
    상기 상태 정보에 기초하여 정보 처리를 수행하는 정보 처리부를 포함하는 것을 특징으로 하는 정보 처리 시스템.
  11. 블록 시스템에 있어서,
    서로 결합될 수 있는 복수의 블록을 포함하며,
    상기 복수의 블록은 블록 간의 접속 상태에 관련된 정보를 다른 블록으로 전송하고 다른 블록으로부터 수신할 수 있는 통신 메커니즘을 가진 통신 블록, 및 상기 통신 블록과 다른 비통신 블록을 포함하고,
    상기 통신 블록 중 적어도 하나는 상기 통신 블록의 구조에 관련된 정보를 외부 정보 처리 장치로 전송하는 통신 메커니즘을 더 포함하고, 상기 통신 블록의 구조에 관련된 정보는 상기 정보 처리 장치가 상기 블록 시스템의 촬영된 이미지로부터 획득된 정보와 상기 통신 블록의 구조에 관련된 정보를 통합함으로써 상기 블록 시스템의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하기 위해 상기 접속 상태에 관련된 정보를 통합함으로써 형성되는 것을 특징으로 하는 블록 시스템.
  12. 정보 처리 장치의 정보 처리 방법에 있어서,
    개별적으로 제조된 블록을 서로에 결합함으로써 형성되는 조립된 장치로부터 통신 블록의 구조에 관련된 정보를 획득하는 단계로서, 상기 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 상기 통신 블록과 다른 비통신 블록을 포함하는 상기 획득하는 단계;
    상기 조립된 장치를 촬영하여 획득된 이미지로부터 조립된 장치의 전체 이미지 및 위치를 획득하고, 상기 통신 블록의 구조에 관련된 정보와 상기 조립된 장치의 전체 이미지 및 위치를 통합함으로써 상기 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하고, 상태 정보를 메모리에 저장하는 단계; 및
    상기 메모리로부터 상기 상태 정보를 판독하고, 상기 상태 정보에 기초하여 정보 처리를 수행하는 단계를 포함하는 것을 특징으로 하는 정보 처리 방법.
  13. 컴퓨터를 실현하기 위한 컴퓨터 프로그램에 있어서,
    개별적으로 제조된 블록을 서로에 결합함으로써 형성되는 조립된 장치로부터 통신 블록의 구조에 관련된 정보를 획득하는 기능으로서, 상기 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 상기 통신 블록과 다른 비통신 블록을 포함하는 상기 획득하는 기능;
    상기 조립된 장치를 촬영하여 획득된 이미지로부터 조립된 장치의 전체 이미지 및 위치를 획득하고, 상기 통신 블록의 구조에 관련된 정보와 상기 조립된 장치의 전체 이미지 및 위치를 통합함으로써 상기 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하는 기능; 및
    상기 상태 정보에 기초하여 정보 처리를 수행하는 기능을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  14. 컴퓨터를 실현하는 컴퓨터 프로그램이 기록되는 컴퓨터 판독 가능한 기록 매체에 있어서,
    개별적으로 제조된 블록을 서로에 결합함으로써 형성되는 조립된 장치로부터 통신 블록의 구조에 관련된 정보를 획득하는 기능으로서, 상기 조립된 장치는 통신 메커니즘을 갖고, 접속 상태에 관련된 정보를 전송할 수 있도록 구성된 통신 블록과 상기 통신 블록과 다른 비통신 블록을 포함하는 상기 획득하는 기능;
    상기 조립된 장치를 촬영하여 획득된 이미지로부터 조립된 장치의 전체 이미지 및 위치를 획득하고, 상기 통신 블록의 구조에 관련된 정보와 상기 조립된 장치의 전체 이미지 및 위치를 통합함으로써 상기 조립된 장치의 전체의 형상, 위치 및 자세를 포함하는 상태 정보를 생성하는 기능; 및
    상기 상태 정보에 기초하여 정보 처리를 수행하는 기능을 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
KR1020167019113A 2014-01-21 2015-01-14 정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법 KR101810415B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2014-008894 2014-01-21
JP2014008894A JP6027554B2 (ja) 2014-01-21 2014-01-21 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法
PCT/JP2015/050791 WO2015111481A1 (ja) 2014-01-21 2015-01-14 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法

Publications (2)

Publication Number Publication Date
KR20160099667A true KR20160099667A (ko) 2016-08-22
KR101810415B1 KR101810415B1 (ko) 2017-12-19

Family

ID=53681288

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167019113A KR101810415B1 (ko) 2014-01-21 2015-01-14 정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법

Country Status (6)

Country Link
US (1) US10146332B2 (ko)
EP (1) EP3098783B1 (ko)
JP (1) JP6027554B2 (ko)
KR (1) KR101810415B1 (ko)
CN (1) CN105917386B (ko)
WO (1) WO2015111481A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017039348A1 (en) * 2015-09-01 2017-03-09 Samsung Electronics Co., Ltd. Image capturing apparatus and operating method thereof
JP6288060B2 (ja) 2015-12-10 2018-03-07 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6311695B2 (ja) 2015-12-16 2018-04-18 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6323439B2 (ja) * 2015-12-17 2018-05-16 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6187623B1 (ja) 2016-03-14 2017-08-30 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
CN109074641B (zh) * 2016-04-28 2022-02-11 富士通株式会社 骨骼估计装置、骨骼估计方法以及骨骼估计程序
JP6509279B2 (ja) * 2017-05-31 2019-05-08 本田技研工業株式会社 物標認識システム、物標認識方法、およびプログラム
CN107261490A (zh) * 2017-07-06 2017-10-20 腾讯科技(深圳)有限公司 实现智能玩具互动的方法、客户端及智能玩具
US10880365B2 (en) * 2018-03-08 2020-12-29 Ricoh Company, Ltd. Information processing apparatus, terminal apparatus, and method of processing information
CN108919954B (zh) * 2018-06-29 2021-03-23 蓝色智库(北京)科技发展有限公司 一种动态变化场景虚实物体碰撞交互方法
CN111783187B (zh) * 2019-04-03 2023-12-22 京灯(广东)信息科技有限公司 一种亮化共享平台应用系统
JP7331769B2 (ja) * 2020-04-30 2023-08-23 トヨタ自動車株式会社 位置推定システム、及び位置推定方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007050885A2 (en) 2005-10-26 2007-05-03 Sony Computer Entertainment America Inc. System and method for interfacing with a computer program

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3091135B2 (ja) * 1995-05-26 2000-09-25 株式会社バンダイ ゲーム装置
JPH10302085A (ja) 1997-04-30 1998-11-13 Yamaha Corp Cgモデルの動作記録システム
US6290565B1 (en) 1999-07-21 2001-09-18 Nearlife, Inc. Interactive game apparatus with game play controlled by user-modifiable toy
JP2001134362A (ja) * 1999-11-01 2001-05-18 Atr Media Integration & Communications Res Lab 人形型インタフェース仮想空間ウォークスルーシステム
US20020196250A1 (en) 2001-06-20 2002-12-26 Gateway, Inc. Parts assembly for virtual representation and content creation
EP1625488A2 (en) 2003-05-20 2006-02-15 Lego A/S Method and system for manipulating a digital representation of a three-dimensional object
US7596473B2 (en) 2003-05-20 2009-09-29 Interlego Ag Method of constructing a virtual construction model
JP4592276B2 (ja) * 2003-10-24 2010-12-01 ソニー株式会社 ロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラム
JP2008502960A (ja) 2004-06-17 2008-01-31 レゴ エー/エス 組立てブロックモデルのための組立て指示の自動作成
US7874921B2 (en) 2005-05-11 2011-01-25 Roblox Corporation Online building toy
JP2007004732A (ja) 2005-06-27 2007-01-11 Matsushita Electric Ind Co Ltd 画像生成装置及び画像生成方法
JP4660357B2 (ja) 2005-11-18 2011-03-30 任天堂株式会社 画像処理プログラムおよび画像処理装置
FR2897680B1 (fr) 2006-02-17 2008-12-05 Commissariat Energie Atomique Dispositif de capture de mouvement et procede associe
WO2011017393A1 (en) * 2009-08-04 2011-02-10 Eyecue Vision Technologies Ltd. System and method for object extraction
KR101060779B1 (ko) 2006-05-04 2011-08-30 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 시각, 음향, 관성, 및 혼합 데이터 중 하나 이상에 근거하여 기어링 효과들을 입력에 적용하기 위한 방법들 및장치들
US8210945B2 (en) 2007-05-16 2012-07-03 Eyecue Vision Technologies Ltd. System and method for physically interactive board games
WO2009100051A1 (en) 2008-02-04 2009-08-13 Polchin George C Physical data building blocks system for video game interaction
US8690631B2 (en) 2008-09-12 2014-04-08 Texas Instruments Incorporated Toy building block with embedded integrated circuit
ES2528605T3 (es) 2009-10-02 2015-02-10 Lego A/S Optimización de la geometría dependiente de la conectividad para renderización en tiempo real
DK2714223T3 (en) 2011-05-23 2015-09-14 Lego As Production of building instructions for building element models
WO2013122798A1 (en) 2012-02-17 2013-08-22 Technology One, Inc. Baseplate assembly for use with toy pieces
JP5977231B2 (ja) * 2012-07-13 2016-08-24 株式会社ソニー・インタラクティブエンタテインメント 情報処理システム、情報処理装置、および情報処理方法
US9609031B1 (en) * 2013-12-17 2017-03-28 Amazon Technologies, Inc. Propagating state information to network nodes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007050885A2 (en) 2005-10-26 2007-05-03 Sony Computer Entertainment America Inc. System and method for interfacing with a computer program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
[NPL 1]
[PTL 1]
Posey: Instrumenting a Poseable Hub and Strut Construction Toy, Michael Philetus Weller, Ellen Yi-Luen Do, Mark D Gross, Proceedings of the Second International Conference on Tangible and Embedded Interaction, 2008, pp. 39-46

Also Published As

Publication number Publication date
US10146332B2 (en) 2018-12-04
EP3098783B1 (en) 2020-07-22
WO2015111481A1 (ja) 2015-07-30
EP3098783A4 (en) 2017-09-13
EP3098783A1 (en) 2016-11-30
US20160334885A1 (en) 2016-11-17
JP6027554B2 (ja) 2016-11-16
CN105917386B (zh) 2020-08-18
CN105917386A (zh) 2016-08-31
KR101810415B1 (ko) 2017-12-19
JP2015138345A (ja) 2015-07-30

Similar Documents

Publication Publication Date Title
KR101810415B1 (ko) 정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법
JP5977231B2 (ja) 情報処理システム、情報処理装置、および情報処理方法
KR101881620B1 (ko) 게임플레이에서의 3차원 환경 모델 사용
JP6900575B2 (ja) ゲームプレイを介して環境の詳細データセットを生成する方法およびシステム
JP6193135B2 (ja) 情報処理装置、情報処理システム、および情報処理方法
US20110003640A9 (en) Method and system for operating a self-propelled vehicle according to scene images
CN105190703A (zh) 使用光度立体来进行3d环境建模
WO2017020766A1 (zh) 场景提取方法、物体定位方法及其系统
EP3098782B1 (en) Information processing device and information processing method
EP3109833B1 (en) Information processing device and information processing method
JP6177145B2 (ja) 情報処理装置および情報処理方法
JP6177146B2 (ja) 情報処理装置および情報処理方法
JP6177147B2 (ja) 情報処理装置および情報処理方法
Islam 3D Motion Capture Using Wide Baseline Stereo Cameras

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant