이하에서는 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
본 발명에 따른 가상 공간과 현실 공간을 연계한 로봇 게임 시스템은, 도 1 및 도 2에 도시된 바와 같이, 로봇(11,12), 로봇 제어 단말기(20), 카메라(30), 움직임 추적 모듈(60), 로봇 게임 모듈(50)을 포함한다.
로봇(11,12)은 실제 공간인 스테이지(10) 상에서 움직인다. 여기서, 본 발명에 따른 로봇(11,12)은, 도 3에 도시된 바와 같이, 로봇 구동부(11a), 로봇 통신부(11b) 및 로봇 제어부(11c)를 포함할 수 있다.
로봇 구동부(11a)는 로봇(11,12)이 스테이지(10) 상에서 움직이도록 로봇(11,12)의 실제 움직임을 수행한다. 여기서, 로봇 구동부(11a)는 다수의 모터와, 로터의 구동에 따라 동작하는 바퀴나 관절 등을 포함할 수 있으며, 로봇(11,12)의 실제 움직임을 수행하기 위한 다양한 형태로 마련될 수 있다.
로봇 통신부(11b)는 로봇 제어 단말기(20)와 통신하며, 로봇 제어 단말기(20)로부터 전송되는 로봇(11,12) 제어시호를 수신하여 제어부에 전달한다. 그리고, 로봇 제어부(11c)는 로봇 통신부(11b)를 통해 수신되는 로봇 제어신호에 기초하여 로봇(11,12)의 실제 움직임이 수행되도록 로봇 구동부(11a)를 제어한다.
로봇 제어 단말기(20)는 사용자의 조작에 따라 로봇 제어신호를 로봇(11,12)에 전송한다. 여기서, 로봇 제어 단말기(20)는 무선 통신을 통해 로봇(11,12)으로 로봇 제어신호를 전송할 수 있으며, 이 때 무선 통신으로는 RF 통신, 블루투스(Bluetooth), 적외선 통신과 같은 다양한 무선 통신 방식이 적용될 수 있다.
카메라(30)는 로봇(11,12)이 움직이는 실제 공간인 스테이지(10)를 촬영한다. 여기서, 카메라(30)에 의해 촬영된 영상은 움직임 추적 모듈(60)로 전달된다. 본 발명에 따른 카메라(30)는 스테이지(10)의 촬영이 가능한 다양한 형태, 예를 들어, CCD(Charge Coupled Device) 카메라(30)나 CMOS(Complementary Metal Oxide Semiconductor) 카메라(30) 형태로 마련될 수 있다.
여기서, 본 발명에 따른 가상 공간과 현실 공간을 연계한 로봇 게임 시스템에서, 카메라(30)는 실제 공간인 스테이지(10) 전체를 촬영할 수 있도록 배치된다. 도 4는 실제 공간인 스테이지(10)와 스테이지(10)의 촬영을 위한 카메라(30)의 구성의 일 예를 도시한 도면이다.
도 4를 참조하여 설명하면, 스테이지(10)는 대략 사각 형태로 마련되며, 스테이지(10) 상에서는 로봇(11,12)에 배치된다. 그리고, 스테이지(10)의 양 가장자리로부터 상향 설치된 대략 'ㄷ' 자 형태의 지지 프레임(31)에 중간 부분에 카메라(30)가 설치되어 스테이지(10)와 스테이지(10) 내에서 움직이는 로봇(11,12)을 촬영한다.
여기서, 도 4에 도시된 스테이지(10) 및 카메라(30)의 구성은 본 발명에 따른 가상 공간과 현실 공간을 연계한 로봇 게임 시스템의 일 에에 불과하여, 다양한 배치 및 구성으로 구현 가능함은 물론이다. 또한, 로봇 제어 단말기(20)가 도 1에 도시된 바와 같이, 게임 유저가 휴대할 수 있는 단말기 형태로 마련될 수 있으며, 스테이지(10)의 가장 자리 부분에 빌트인(Built-in) 형태로 마련될 수 있음은 물론이다.
한편, 본 발명에 따른 움직임 추적 모듈(60) 및 로봇 게임 모듈(50)은 도 1 및 도 2에 도시된 바와 같이, 컴퓨터(40)에 기 인스톨되어 저장된 프로그램 형태로 마련되는 것을 일 예로 한다.
도 2를 참조하여 설명하면, 컴퓨터(40)는 중앙처리장치인 CPU(41)(Central Processing Unit), 칩셋(42), 메인 메모리(43), 모니터와 같은 디스플레이부(45), 네트워크부(44), 카메라 인터페이스부(46) 및 운영체계(48)(OS : Operating System)를 포함할 수 있다.
메인 메모리(43)는 비휘발성 메모리인 램(RAM : Random Access Memory) 형태로 마련되며, CPU(41)의 동작에 따른 어플리케이션 프로그램, 예컨대, 프로그램 형태로 마련된 움직임 추적 모듈(60) 및 로봇 게임 모듈(50) 등의 프로그램의 구동 데이터나 기타 데이터를 임시 저장한다. 칩셋(42)은 메인 메모리(43) 및 디스플레이부(45)와 교환되는 데이터를 관리하며, CPU(41), 메인 메모리(43), 네트워크부(44), 카메라 인터페이스부(46) 및 하드디스크 드라이브(47) 간에 이동하는 데이터를 관리한다.
여기서, 디스플레이부(45)는 도 4에 도시된 바와 같이, 스테이지(10)의 일측에 설치될 수 있으며, 이에 따라 스테이지(10) 상에서 움직이는 로봇(11,12)을 보 면서 로봇(11,12)의 실제 움직임을 제어함과 동시에 디스플레이부(45)에 표시되는 로봇 게임, 즉 가상 공간(110, 도 7 참조) 상에서의 게임을 확인할 수 있다.
그리고, 카메라 인터페이스부(46)는 카메라(30)가 접속되어, 카메라(30)에 의해 촬영된 영상을 카메라(30)로부터 수신한다. 여기서, 본 발명에 따른 카메라 인터페이스부(46)는 USB(Universal Serial Bus) 방식이나 IEE 1394 방식과 같이 영상 데이터의 수신이 가능한 다양한 형태로 마련될 수 있다. 그리고, 네트워크부(44)는 인터넷 망을 통해 송수신되는 데이터를 관리한다.
한편, 움직임 추적 모듈(60)은 컴퓨터(40)에 인스톨되어 하드디스크 드라이브(47)에 저장된다. 여기서, 움직임 추적 모듈(60)은 카메라(30)에 의해 촬영되어 카메라 인터페이스부(46)를 통해 수신되는 영상으로부터 스테이지(10) 상에서의 로봇(11,12)의 움직임을 추적한다. 그리고, 움직음 추적 모듈은 영상으로부터 추적된 로봇(11,12)의 움직임에 따라 움직임 추적 정보를 생성하여 로봇 게임 모듈(50)로 전달한다.
본 발명에 따른 움직임 추적 모듈(60)은, 도 5에 도시된 바와 같이, 전처리 모듈(61) 물체 추적 모듈(62)을 포함할 수 있다.
전처리 모듈(61)은 스테이지(10)를 촬영한 영상 중 정지 영상 내에서 스테이지(10)를 제외한 부분 즉 로봇(11,12)에 대한 로봇 영역을 추출한다. 본 발명에서는 전처리 모듈(61)이 백그라운드 서브트랙션 알고리즘(Background subtraction algorism)을 통해 영상으로부터 로봇 영역을 추출하는 것을 예로 한다.
여기서, 백그라운드 서브트랙션 알고리즘(Background subtraction algorism) 은 정지된 카메라(30)로 입력된 영상 안에서 모션(Motion)이 발생하는 물체를 추출하는 방법으로, 본 발명에서와 같이 카메라(30)가 고정된 환경에서의 경우 로봇(11,12)의 추출에 적합하다. 그리고, 백그라운드 서브트랙션 알고리즘(Background subtraction algorism)은 카메라(30)의 촬영에 의한 영상에서 모션(Motion)이 발생하는 경우, 카메라(30) 정보나 Homography와 같은 정보를 이용하여 로봇(11,12)에 대한 로봇 영역의 추출을 위한 연산을 수행한다.
물체 추적 모듈(62)은 전처리 모듈(61)에 의해 추출된 로봇 영역에 기초하여, 기 설정된 물체 추적 알고리즘을 통해 로봇 영역의 움직임을 추적하고, 추적된 로봇 영역의 움직임에 기초하여 로봇(11,12)의 움직임에 대한 움직임 추적 정보를 생성한다. 여기서, 본 발명에서는 물체 추적 모듈(62)이 파티클 필터 알고리즘(Particle filter algorism)을 통해 로봇 영역의 움직임을 추적하는 것을 일 예로 한다.
물체 추적 알고리즘에는 MeanShift 알고리즘, Template Matching 알고리즘 및 파티클 필터 알고리즘(Particle filter algorism) 등이 존재한다.
먼저, MeanShift 알고리즘은 Color Histogram을 기반으로 Back-projection 과정을 통해 입력 영상의 확률분포를 계산하고, 이를 통해 물체가 있을 확률이 가장 높은 곳을 찾아나가는 알고리즘이다. MeanShift 알고리즘은 이러한 과정을 통해 영상 안에서 확률분포의 Mean 값을 찾는데, Occlusion과 같은 문제가 발생할 경우 Local Mean에 갇혀버리는 문제가 발생할 수 있다.
Template Matching 알고리즘은 MeanShift 알고리즘이나 파티클 필터 알고리 즘(Particle filter algorism)과는 달리 확률분포를 계산하지 않고 타겟 모델에 대한 Template를 후보 Template들과 실시간으로 비교하여 가능 매칭률이 가장 높은 모델을 찾는 알고리즘이다. 그리고, Template Matching 알고리즘은 MeanShift 알고리즘과 같이 Occlusion이나, 급격한 모델의 변화에 민감하게 반응하지만, 이러한 문제를 제외하면 가장 명확하게 물체를 추적하는 장점을 갖고 있다. 이와 같은 Template Matching 알고리즘의 장점 때문에 파티클 필터 알고리즘(Particle filter algorism)과 같은 확률 기반의 물체 추적 알고리즘에서 Template 정보를 추가하는 방법이 사용 가능한다.
그리고, 파티클 필터 알고리즘(Particle filter algorism)은 MeanShift 알고리즘과 마찬가지로 입력 영상의 확률분포를 계산하여 확률이 가장 높은 Mean값을 계산하여 타겟 물체를 추적하는 알고리즘이다. MeanShift 알고리즘과 다른 점은 Color Histogram의 Back-projection을 통해 영상의 확률분포를 계산하지 않고, 샘플을 생성함으로써 분포를 추정하는 방법이 적용되는 것이다. 이러한 방법의 단점은 MeanShift 알고리즘보다 계산량이 많다는 것이나, 이러한 문제는 하드웨어의 발달로 인해 실시간성의 보장이 가능할 정도로 해결이 되었으며, MeanShift 알고리즘에서 풀지 못한 Occlusion과 같은 문제를 극복할 수 있다는 장점을 갖고 있다. 도 6은 파티클 필터 알고리즘(Particle filter algorism)을 이용하여 스테이지(10)를 촬영한 영상으로부터 로봇(11,12)을 추적한 결과를 나타낸 도면이다.
다시 도 1 및 도 2를 참조하여 설명하면, 로봇 게임 모듈(50)은 컴퓨터(40)에 인스톨되어 하드디스크 드라이브(47)에 저장된다. 로봇 게임 모듈(50)이 로 봇(11,12)에 대응하는 가상 로봇(111,112, 도 7 참조)과 가상 로봇(111,112)이 활동하는 가상 공간(110)이 마련된 로봇 게임을 제공한다.
로봇 게임 모듈(50)에 의해 로봇 게임이 컴퓨터(40) 상에서 실행되는 경우, 로봇 게임 모듈(50)은, 도 7에 도시된 바와 같은 가상 공간(110)이 마련된 로봇 게임 실행 화면(GW)을 디스플레이부(45)에 표시한다. 그리고, 로봇 게임 모듈(50)은 움직임 추적 모듈(60)에 의해 생성된 움직임 추적 정보에 따라 로봇 게임 실행 화면(GW)에 표시된 가상 공간(110) 상에서의 가상 로봇(111,112)의 움직임을 제어한다. 도 7의 참조번호 MM은 가상 공간(110)에 대한 미니맵(Mimi Map)이다.
상기와 같은 구성을 통해, 실제 공간인 스테이지(10) 상에서 움직이는 로봇(11,12)을 로봇 제어 단말기(20)를 통해 제어하고, 이에 따른 로봇(11,12)의 움직임에 대해 카메라(30)를 통해 촬영된 영상으로부터 움직임 추적 정보를 생성하여 이를 가상 공간(110) 상에서의 가상 로봇(111,112)의 움직임 제어에 적용함으로써, 오프라인 상의 실제 로봇(11,12)의 움직임이 온라인 상에서의 로봇 게임이 제공하는 가상 공간(110) 상에서의 가상 로봇(111,112)의 움직임으로 반영되어 가상 세계와 현실 세계 두 장르의 게임이 연계된 새로운 형태의 게임이 구현 가능하게 된다.
한편, 본 발명에 따른 가상 공간과 현실 공간을 연계한 로봇 게임 시스템의 로봇 게임 모듈(50)은 로봇 게임 상에서 가상 로봇(111,112)에 대해 이벤트가 발생하는 경우, 해당 이벤트에 대한 이벤트 정보를 컴퓨터(40)의 네트워크부(44)를 통해 로봇(11,12)으로 전송한다.
여기서, 가상 게임 상에서 가상 로봇(111,112)에 대해 발생하는 이벤트는 도 7에 도시된 바와 같이, 가상 로봇(111,112)이 가상 공간(110)에 마련된 특정 아이템(Item)을 획득하는 경우, 이에 대한 이벤트 정보가 로봇 게임 모듈(50)로부터 실제 로봇(11,12)으로 전송된다.
이 때, 로봇 제어부(11c)는 로봇 통신부(11b)를 통해 수신되는 이벤트 정보에 따라 로봇(11,12)이 움직이도록 로봇 구동부(11a)의 설정을 변경하여 로봇 구동부(11a)를 제어한다. 예를 들어, 가상 공간(110) 상에서 획득한 아이템(Item)이 로봇(11,12)의 속도를 증가시키는 아이템(Item)인 경우, 로봇 제어부(11c)는 로봇 구동부(11a)의 속도 파라미터(Parameter)를 증가시켜 실제 로봇(11,12)의 속도가 증가되도록 제어할 수 있다.
이와 같이 증가된 로봇(11,12)의 속도는 다시 카메라(30)에 의해 촬영되어 로봇(11,12)의 움직임이 추적됨으로써, 가상 공간(110) 상에서 획득한 아이템(Item)의 영향이 실제 로봇(11,12)을 거쳐 가상 공간(110) 상의 가상 로봇(111,112)에 반영될 수 있다. 이외에도, 가상 로봇(111,112)에 발생하는 이벤트로는 타격 등을 받았을 때 그 속도가 감소하거나, 가상 로봇(111,112)의 특정 부위가 타격으로 인해 손상되었을 경우 실제 로봇(11,12)의 해당 부위에 있는 모터나 관절의 구동이 정지되는 등 다양한 형태로 반영될 수 있다.
이하에서는 상기와 같은 가상 공간과 현실 공간을 연계한 로봇(11,12) 시스템을 이용한 가상 공간과 현실 공간을 연계한 로봇 게임 방법을, 도 8을 참조하여 설명한다.
먼저, 게임 유저가 로봇 게임 모듈(50)을 컴퓨터(40)에서 실행하게 되면 로 봇 게임에 실행되어(S10) 디스플레이부(45)에 도 7에 도시된 바와 같은 가상 공간(110) 및 가상 로봇(111,112)이 표시된다. 그런 다음, 게임 유저는 로봇 제어 단말기(20)를 이용하여 실제 공간인 스테이지(10) 상에서의 로봇(11,12)의 움직임을 제어한다(S11).
이 때, 카메라(30)가 스테이지(10)를 촬영하고(S12), 촬영된 영상은 움직임 추적 모듈(60)로 전송된다. 그리고, 움직임 추적 모듈(60)은, 상술한 바와 같이, 백그라운드 서브트랙션 알고리즘(Background subtraction algorism)을 적용하여 카메라(30)로부터 전송되는 영상으로부터 로봇(11,12) 영상을 추출하고(S13), 파티클 필터 알고리즘(Particle filter algorism)을 적용하여 로봇(11,12)의 움직임을 추적한 후 해당 움직임에 대한 움직임 추적 정보를 생성한다(S14).
그런 다음, 움직임 추적 모듈(60)에 의해 생성된 움직임 추적 정보는 로봇 게임 모듈(50)로 전달되며, 로봇 게임 모듈(50)은 움직임 추적 정보에 기초하여 가상 공간(110) 상에서의 가상 로봇(111,112)의 움직임을 제어한다(S15).
상기와 같은 과정을 통해 로봇 게임이 진행되는 과정에서, 가상 공간(110) 상에서의 가상 로봇(111,112)에 이벤트가 발생하는 경우(S16), 로봇 게임 모듈(50)은 해당 이벤트에 대한 이벤트 정보를 생성하여 실제 공간 상의 로봇(11,12)에 전송하고(S17), 로봇 제어부(11c)는 로봇 게임 모듈(50)로부터 전송된 이벤트 정보에 따라, 상술한 바와 같이 로봇(11,12)의 설정을 변경함으로써(S18), 가상 로봇(111,112)에 발생한 이벤트를 실제 로봇(11,12)에 반영하게 된다.
이하에서는 도 9를 참조하여 본 발명의 다른 실시예에 따른 가상 공간과 현 실 공간을 연계한 로봇 게임 시스템에 대해 설명한다.
도 9에 도시된 가상 공간과 현실 공간을 연계한 로봇 게임 시스템은 상술한 가상 공간과 현실 공간을 연계한 로봇 게임 시스템이 인터넷과 같은 네트워크(70)를 통해 다수의 게임 유저가 참여하는 온라인 게임 형태로 변형된 예이다.
여기서, 본 발명의 다른 실시예에 따른 가상 공간과 현실 공간을 연계한 로봇 게임 시스템은 상기 로봇 게임의 실행을 위한 데이터를 네트워크(70)를 통해 상기 로봇 게임 모듈(50)로 전송하는 온라인 게임 서버(80)가 마련된다. 즉, 온라인 게임 서버(80)는 로봇 게임을 온라인 게임 방식으로 지원하며, 다수의 게임 유저의 컴퓨터(40)와 네트워크(70)를 통해 연결된다. 그리고, 온라인 게임 서버(80)는 가상 공간(110)을 형성하여 복수의 게임 유저가 접속 가능하도록 하며, 접속된 게임 유저들로부터 전달되는 정보에 따라 로봇 게임을 진행한다.
이 때, 특정 게임 유저가 실행하고 있는 로봇 게임 모듈(50)은 가상 공간(110) 상의 가상 로봇(111,112)의 위치에 대한 정보를 포함하는 가상 로봇(111,112) 상태 정보를 네트워크(70)를 통해 온라인 게임 서버(80)로 전송한다. 그리고, 온라인 게임 서버(80)는 해당 로봇 게임 모듈(50)로부터 전달되는 가상 로봇(111,112) 상태 정보를 온라인 로봇 게임에 반영하고, 이에 대한 데이터를 온라인 로봇 게임에 접속한 다른 게임 유저들의 로봇 게임 모듈(50)로 전송한다.
상기와 같은 방법을 통해 본 발명에 따른 가상 공간과 현실 공간을 연계한 로봇 게임 시스템이 온라인 로봇 게임 형태로 확장되어, 다수의 게임 유저가 각자의 실제 로봇(11,12)의 제어를 통해 온라인 게임을 즐길 수 있게 된다.
비록 본 발명의 몇몇 실시예들이 도시되고 설명되었지만, 본 발명이 속하는 기술분야의 통상의 지식을 가진 당업자라면 본 발명의 원칙이나 정신에서 벗어나지 않으면서 본 실시예를 변형할 수 있음을 알 수 있을 것이다. 별명의 범위는 첨부된 청구항과 그 균등물에 의해 정해질 것이다.