説明

ネットワークシステム、コントロール方法、コントローラ、およびコントロールプログラム

【課題】コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムを提供する。
【解決手段】コントローラ100は、模型装置を移動させるための指令を受け付け、指令を模型装置へ送信する。模型装置200は、コントローラからの指令に基づいて模型装置を移動させ、模型装置の前方を撮影し、模型装置の位置を取得し、模型装置の向きを取得し、撮影画像と位置と向きとをコントローラに送信する。コントローラは、模型装置から受信した位置と向きとに基づいて、模型装置用のコースのデータから表示用のバーチャル画像を作成し、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイ130に表示させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ラジオコントロールによって模型装置の動作を制御するための技術に関する。
【背景技術】
【0002】
ラジオコントロールによってスポーツカーやヘリコプターやロボットなどの模型装置を制御する技術が知られている。
【0003】
たとえば、特開2004−42148号公報(特許文献1)には、移動ロボットが開示されている。特開2004−42148号公報(特許文献1)によると、移動ロボットに自己位置方位検出手段、移動手段及び障害物検出手段を搭載する。移動ロボットの外部装置に環境地図記憶手段及び経路計画手段を組み込む。移動ロボットと外部装置間の通信により、環境地図を参照した自己位置から移動目的地までの経路探索、計画経路に沿った移動ロボットの移動、環境地図上に無い未知障害物に対する回避運動、計画経路から逸脱した後の新たな自己位置から移動目的地までの再度の経路探索、再計画経路に沿った移動を行う。
【0004】
また、特開昭61−70617号公報(特許文献2)には、自動走行体のコース誘導制御システムが開示されている。特開昭61−70617号公報(特許文献2)によると、走行速度を操舵角の関数とする速度制御方法を導入し、操舵角の制御と共にそれに対応する走行速度制御を行う。制御対象となる走行体の用途・種類或いは走行面の条件、たとえば、フロアーやオンロードであるとオフロードであるとを問わず全ての走行体の自己誘導制御方法として用いることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−42148号公報
【特許文献2】特開昭61−70617号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムが模索されている。
【0007】
本発明は、かかる問題を解決するためになされたものであり、その目的は、コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムを提供することにある。
【課題を解決するための手段】
【0008】
この発明のある局面に従うと、模型装置とコントローラとを備えるネットワークシステムが提供される。模型装置は、コントローラからの指令に基づいて模型装置を移動させるための移動部と、模型装置の前方を撮影するためのカメラと、模型装置の位置を取得するためのGPS部と、模型装置の向きを取得するためのコンパスと、コントローラから指令を受信し、カメラからの撮影画像と位置と向きとをコントローラに送信するための第1の通信インターフェイスとを含む。コントローラは、ディスプレイと、指令を受け付けるための操作部と、模型装置と通信するための第2の通信インターフェイスと、模型装置用のコースのデータを記憶するメモリと、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成し、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるためのプロセッサとを含む。
【0009】
好ましくは、プロセッサは、模型装置から受信した位置の時系列データに基づいて、位置の軌跡に沿った模型装置用のコースのデータを作成する。
【0010】
好ましくは、メモリは、複数の模型装置用のコースのデータを記憶する。プロセッサは、操作部を介して、複数の模型装置用のコースの選択命令を受け付ける。
【0011】
好ましくは、プロセッサは、第2の通信インターフェイスを介して他のコントローラに、模型装置用のコースのデータを送信する。
【0012】
好ましくは、プロセッサは、第2の通信インターフェイスを介して他のコントローラから、模型装置用のコースのデータを受信する。
【0013】
好ましくは、プロセッサは、第2の通信インターフェイスを介して他のコントローラから、他の模型装置の位置および向きとスタート時点からの経過時間とが対応付けられた時系列データを受信し、時系列データから模型装置のスタート時点からの経過時間に対応する他の模型装置の位置と向きを取得し、模型装置から受信した位置および向きと、他の模型装置の位置および向きと、に基づいて他の模型装置を示す画像を表示用のバーチャル画像に追加する。
【0014】
この発明の別の局面に従うと、模型装置と模型装置用のコースのデータを記憶するコントローラとを備えるネットワークシステムにおけるコントロール方法が提供される。コントロール方法は、コントローラが、模型装置を移動させるための指令を受け付けるステップと、コントローラが、指令を模型装置へ送信するステップと、模型装置が、コントローラからの指令に基づいて模型装置を移動させるステップと、模型装置が、模型装置の前方を撮影するステップと、模型装置が、模型装置の位置を取得するステップと、模型装置が、模型装置の向きを取得するステップと、模型装置が、撮影画像と位置と向きとをコントローラに送信するステップと、コントローラが、模型装置から受信した位置と向きとに基づいて、模型装置用のコースのデータから表示用のバーチャル画像を作成するステップと、コントローラが、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるステップとを備える。
【0015】
この発明の別の局面に従うと、ディスプレイと、模型装置用のコースのデータを記憶するメモリと、模型装置を移動させるための指令を受け付けるための操作部と、指令を模型装置へ送信し、模型装置から撮影画像と模型装置の位置と向きとを受信するための通信インターフェイスと、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成し、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるためのプロセッサとを備える、コントローラが提供される。
【0016】
この発明の別の局面に従うと、模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラにおけるコントロール方法が提供される。コントロール方法は、プロセッサが、模型装置を移動させるための指令を受け付けるステップと、プロセッサが、通信インターフェイスを介して、指令を模型装置へ送信するステップと、プロセッサが、通信インターフェイスを介して、模型装置から撮影画像と模型装置の位置と向きとを受信するステップと、プロセッサが、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成するステップと、プロセッサが、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるステップとを備える。
【0017】
この発明の別の局面に従うと、模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラに模型装置をコントロールさせるためのコントロールプログラムが提供される。コントロールプログラムは、プロセッサに、模型装置を移動させるための指令を受け付けるステップと、通信インターフェイスを介して、指令を模型装置へ送信するステップと、通信インターフェイスを介して、模型装置から撮影画像と模型装置の位置と向きとを受信するステップと、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成するステップと、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるステップとを実行させる。
【発明の効果】
【0018】
以上のように、この発明によれば、コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムが実現される。
【図面の簡単な説明】
【0019】
【図1】本実施の形態に係るネットワークシステム1の全体構成を示すイメージ図である。
【図2】本実施の形態に係るコントローラ100のハードウェア構成を表わすブロック図である。
【図3】本実施の形態に係るユーザがラジコンカー200のためのコースを作成するための命令を入力する状態を示すイメージ図である。
【図4】本実施の形態に係る通常モードとレースモードとにおけるコントローラ100を示すイメージ図である。
【図5】本実施の形態に係るレースのスタート直前におけるコントローラ100を示すイメージ図である。
【図6】本実施の形態に係るラジコンカー200がレースのゴール地点の直前に位置するときにおけるコントローラ100を示すイメージ図である。
【図7】本実施の形態に係るラジコンカー200のハードウェア構成を表わすブロック図である。
【図8】実施の形態1に係るコントローラ100における制御方法を示すシーケンス図である。
【図9】実施の形態2に係るメモリ120に記憶される他のラジコンカーの位置および向きのレース用時系列データのデータベース123を示すイメージ図である。
【図10】実施の形態2に係るコントローラ100における制御方法を示すシーケンス図である。
【発明を実施するための形態】
【0020】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0021】
以下では、ラジコンカーを「模型装置」の代表例として説明を行う。ただし、「模型装置」は、飛行できるヘリコプターや飛行機でもよいし、歩行できるロボットであってもよい。なお、ヘリコプターや飛行機の場合は、模型装置の高度を取得する高度計を含むことが好ましい。また、「コントローラ」は、模型装置の制御専用のものであってもよいし、他の機能を有する携帯型電話機、パーソナルコンピュータ、電子ノート、PDA(Personal Digital Assistant)などのディスプレイと通信インターフェイスを有する機器であってもよい。
【0022】
[実施の形態1]
<ネットワークシステムの動作概要>
まず、本実施の形態に係るネットワークシステム1の動作概要について説明する。図1は、本実施の形態に係るネットワークシステム1の全体構成を示すイメージ図である。
【0023】
図1を参照して、ネットワークシステム1は、コントローラ100X,100Yとラジコンカー200X,200Yとを含む。以下では、説明のために、コントローラ100X,100Yを総称して、コントローラ100という。ラジコンカー200X,200Yを総称して、ラジコンカー200という。
【0024】
各々のユーザは、ラジコンカー200を公園や庭の地面に載置する。ユーザは、コントローラ100を介してラジコンカー200の動作を制御する。
【0025】
ラジコンカー200は、ラジコンカー200の前方を撮影するためのカメラを搭載する。ラジコンカー200は、撮影画像を逐次コントローラ100に送信する。
【0026】
ラジコンカー200は、ラジコンカー200の現在位置を測定するためのGPS(Global Positioning System)を搭載する。ラジコンカー200は、現在の位置を逐次コントローラ100に送信する。
【0027】
ラジコンカー200は、ラジコンカー200の現在の向き(姿勢)を測定するための電子コンパスを搭載する。ラジコンカー200は、現在の向きを逐次コントローラ100に送信する。ラジコンカー200は、撮影画像と現在の位置と現在の向きとを、同時にコントローラ100に送信してもよいし、別々に送信してもよい。
【0028】
コントローラ100は、ラジコンカー200からの撮影画像を表示する。ユーザは、撮影画像を見ながら、コントローラ100にラジコンカー200を移動させるための命令(前進命令、後進命令、方向転換命令、加減速命令、以下これらの命令を移動命令ともいう。)を入力する。コントローラ100は、ラジコンカー200にユーザからの移動命令を送信する。
【0029】
本実施の形態においては、コントローラ100は、ラジコンカー200からの現在位置の時系列データ(コース作成用時系列データ)を蓄積する。コントローラ100は、時系列データに基づいて、ラジコンカー200の軌跡301を取得する。コントローラ100は、ラジコンカー200の軌跡301に基づいて、ラジコンカー200のためのコース(サーキット)302を示すデータを作成する。
【0030】
コースを示すデータ(コースデータとも言う。)は、コースのトラックを示す白線やコースパイロンなどの3Dオブジェクトを含む。コースの位置、形状、向きは、現実の地図データに対応付けられる。あるいは、コースの位置、形状、向きは、緯度・経度に対応付けられる。
【0031】
ただし、コントローラ100は、タッチパネル130などを介して、コースの作成命令を受け付けてもよい。たとえば、コントローラ100は地図を表示している状態で、ユーザから地図上におけるスライド操作を受け付ける。コントローラ100は、スライド操作に基づいて、コースの位置と形状と向きとを決定する。
【0032】
あるいは、コントローラ100は、予め複数のコースデータを記憶していてもよい。すなわち、ラジコンカー200が走らなくとも、予め準備された複数のコースからユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、ユーザによってコースの位置と向きとが指定されてもよい。
【0033】
コースが決定された後、ユーザの命令に基づいて、コントローラ100はレースを開始する。コントローラ100は、コースのデータとラジコンカー200の現在の位置と向きとに基づいて、コースにおけるラジコンカー200の位置と向きとを取得する。コントローラ100は、コースにおけるラジコンカー200の位置と向きとに基づいて、コースのデータからラジコンカー200から見た3Dオブジェクトを示すバーチャル画像を作成する。
【0034】
たとえば、コントローラ100は、サーキットの3Dモデルデータを作成してから、サーキットにおけるラジコンカー200の位置と向きとに基づいて、3Dモデルデータの視点を決定する。コントローラ100は、当該視点からの3Dモデルデータの表示画像(バーチャル画像)を作成する。
【0035】
コントローラ100は、ラジコンカー200の撮影画像にバーチャル画像を重畳させて表示する。
【0036】
本実施の形態においては、第1のラジコンカー200Xを制御するための第1のコントローラ100Xは、第2のラジコンカー200Yを制御するための第2のコントローラ100Yと通信することが可能である。第1のコントローラ100Xは、コースデータを第2のコントローラ100Yへと送信したり、第2のラジコンカー200からコースデータを受信したりする。
【0037】
すなわち、第1のコントローラ100Xと第2のコントローラ100Yとは、共通のコースデータに基づいて、ラジコンカー200X,200Yの走行を制御することができる。たとえば、第1のコントローラ100Xのユーザは、第1のラジコンカー200Xからの撮影画像を見ながら、すなわち、第2のラジコンカー200Yの現実の映像を見ながら、コースに沿ったレースを行うことができる。第2のコントローラ100Yも同様である。
【0038】
このように、本実施の形態に係るネットワークシステム1においては、ユーザは、仮想的なコースを示す画像(バーチャル画像)を見ながら、ラジコンカー200の目線でラジコンカー200の移動を制御することができる。その結果、ユーザは、ラジコンカー200の移動の制御を臨場感あふれるものにすることができる。
【0039】
以下、このような機能を実現するためのネットワークシステム1の具体的な構成について詳述する。
【0040】
<コントローラ100の構成>
コントローラ100の具体的構成の一態様について説明する。図2は、本実施の形態に係るコントローラ100のハードウェア構成を表わすブロック図である。図2を参照して、コントローラ100は、主たる構成要素として、CPU110と、メモリ120と、タッチパネル130と、スピーカ140と、ボタン150と、メモリインターフェイス160と、通信インターフェイス170と、時計180とを含む。
【0041】
メモリ120は、各種のRAM(Random Access Memory)や、ROM(Read-Only Memory)や、ハードディスクなどによって実現される。メモリ120は、CPU110によって実行されるプログラム、地図データ、バーチャルコースを示すための各種のモデルデータなどを記憶する。換言すれば、CPU110は、メモリ120に記憶されているプログラムを実行することによって、コントローラ100の各部を制御する。
【0042】
タッチパネル130は、タブレット132とタブレット132の表面に敷設されるディスプレイ131とを含む。後述するようにラジコンカー200が3Dカメラを有する場合には、ディスプレイ131は、3Dディスプレイであることが好ましい。
【0043】
タッチパネル130は、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式などのいずれのタイプであってもよい。タッチパネル130は、光センサ液晶を含んでもよい。タッチパネル130(タブレット132)は、所定時間毎に外部の物体によるタッチパネル130へのタッチ操作を検知して、タッチ座標(タッチ位置)をCPU110に入力する。換言すれば、CPU110は、タッチパネル130から順次タッチ座標を取得する。
【0044】
スピーカ140は、CPU110からの命令に基づいて、音声を出力する。たとえば、CPU110は、音声データに基づいて、スピーカ140に音声を出力させる。
【0045】
ボタン150は、コントローラ100の表面に配置される。方向キー、決定キー、テンキーなどの複数のボタンがコントローラ100に配置されてもよい。ボタン150は、ユーザからの命令を受け付ける。ボタン150は、ユーザからの命令をCPU110に入力する。
【0046】
メモリインターフェイス160は、外部の記憶媒体161からデータを読み出す。換言すれば、CPU110は、メモリインターフェイス160を介して外部の記憶媒体161に格納されているデータを読み出して、当該データをメモリ120に格納する。逆に、CPU110は、メモリ120からデータを読み出して、メモリインターフェイス160を介して当該データを外部の記憶媒体161に格納する。
【0047】
なお、記憶媒体161としては、CD(Compact Disc)、DVD(Digital Versatile Disk)、BD(Blu-ray Disc)、USB(Universal Serial Bus)メモリ、メモリカード、FD(Flexible Disk)、ハードディスク、磁気テープ、カセットテープ、MO(Magnetic Optical Disc)、MD(Mini Disc)、IC(Integrated Circuit)カード(メモリカードを除く)、光カード、EPROM、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの、不揮発的にプログラムを格納する媒体が挙げられる。
【0048】
通信インターフェイス170は、アンテナやコネクタによって実現される。通信インターフェイス170は、無線通信によってラジコンカー200や他のコントローラ100との間でデータをやり取りする。CPU110は、通信インターフェイス170を介して、他のコンピュータからプログラムや地図データなどを受信する。CPU110は、通信インターフェイス170を介して、他のコントローラ100にコースデータを送信したり、他のコントローラ100からコースデータを受信したりする。CPU110は、通信インターフェイス170を介して、ラジコンカー200に移動命令を送信したり、ラジコンカー200から撮影画像や現在の位置や現在の向きを受信したりする。
【0049】
時計180は、CPU110からの指令に基づいて、時刻あるいは期間を計測する。
CPU110は、メモリ120あるいは記憶媒体161に記憶されているプログラムを実行することによって、コントローラ100の各部を制御する。たとえば、CPU110は、メモリ120あるいは記憶媒体161に記憶されているプログラムを実行することによって、ラジコンカー200のコントロール処理を実行する。
【0050】
具体的には、CPU110は、通信インターフェイス170を介して、ラジコンカー200から撮影画像を受信する。CPU110は、撮影画像をタッチパネル130に表示させる。CPU110は、タッチパネル130またはボタン150を介して、ユーザからラジコンカー200を移動させるための命令(移動命令)を受け付ける。CPU110は、通信インターフェイス170を介して、ラジコンカー200に移動命令を送信する。
【0051】
CPU110は、通信インターフェイス170を介して、ラジコンカー200から現在の位置と向きとを受信する。CPU110は、ラジコンカー200の現在位置の時系列データをメモリ120に格納する。
【0052】
CPU110は、時系列データに基づいて、ラジコンカー200の軌跡301を取得する。CPU110は、ラジコンカー200の軌跡301に基づいて、ラジコンカー200のためのコース302を示すデータを作成する。
【0053】
コースを示すデータ(コースデータとも言う。)は、コースの中心線を示す白線301Xやコースの端線を示す白線302Xやコースパイロン303Xなどの3Dオブジェクト(モデルデータ)を含む。CPU110は、コースの位置、形状、向きを、現実の地図データに対応付ける。あるいは、CPU110は、コースの位置、形状、向きを、緯度・経度に対応付ける。
【0054】
あるいは、CPU110は、ラジコンカー200を走行させることなく、コースデータを作成してもよい。より詳細には、本実施の形態に係るCPU110は、タッチパネル130またはボタン150を介して、ユーザから地図の取得命令を受け付ける。CPU110は、通信インターフェイス170を介して、外部のサーバなどから地図データをダウンロードする。CPU110は、メモリ120や記憶媒体161から地図データを読み出してもよい。
【0055】
CPU110は、タッチパネル130またはボタン150を介して、ユーザから、ラジコンカー200のためのコースを作成するための命令を受け付ける。図3は、本実施の形態に係るユーザがラジコンカー200のためのコースを作成するための命令を入力する状態を示すイメージ図である。
【0056】
図3を参照して、CPU110は、タッチパネル130に地図画像を表示しながら、ユーザによるスライド操作を受け付ける。たとえば、CPU110は、タッチパネル130を介して、指の地図画像に対するタッチ位置を順次取得することによって、地図画像上の指の軌跡301を取得する。
【0057】
あるいは、CPU110は、タッチパネル130に地図画像とポインタとを表示する。CPU110は、ボタン150を介して、ユーザからポインタの移動命令を受け付ける。CPU110は、ポインタの地図画像に対する位置を順次取得することによって、地図画像上のポインタの軌跡301を取得する。たとえば、ユーザは、所定のキーを押しながら、方向キーを操作することによってポインタを移動させる。
【0058】
CPU110は、当該指の軌跡301に基づいて、ラジコンカー200のためのコース302を示すデータを作成する。CPU110は、軌跡301の両側にコースの端部を示すためのコースパイロンやトラックラインなどを作成する。
【0059】
あるいは、コントローラ100は、予め複数のコースデータを記憶していてもよい。すなわち、予め準備された複数のコースから、ユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、コースの位置と向きとが指定されてもよい。
【0060】
本実施の形態においては、CPU110は、コースデータを他のコントローラ100へと送信したり、他のコントローラ100からコースデータを受信したりする。CPU110は、他のコントローラ100から受信したコースデータをメモリ120に格納する。CPU110は、タッチパネル130またはボタン150を介して、ユーザから当該コースデータの選択を受け付ける。
【0061】
たとえば、第1および第2のコントローラ100X,100Yのユーザが、第1および第2のラジコンカー200X,200Yを、同一のコース上で同時に走らせることによって、レースを行うことができる。
【0062】
コースが決定された後、ユーザの命令に基づいて、CPU110は、レースを開始する。CPU110は、コースのデータとラジコンカー200の現在位置と向きとに基づいて、コースにおけるラジコンカー200の位置と向きとを取得する。
【0063】
CPU110は、コースにおけるラジコンカー200の位置と向きとに基づいて、コースのデータからラジコンカー200から見た3Dオブジェクトを示すバーチャル画像を作成する。CPU110は、ラジコンカー200の撮影画像にバーチャル画像を重畳させて表示する。たとえば、撮影画像には、他のコントローラ100のラジコンカー200が写っていることもある。
【0064】
図4は、本実施の形態に係る通常モードとレースモードとにおけるコントローラ100を示すイメージ図である。より詳細には、図4(a)は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー200が走行しているとき、におけるコントローラ100のタッチパネル130を示すイメージ図である。図4(b)は、レース中におけるコントローラ100のタッチパネル130を示すイメージ図である。
【0065】
図4(a)を参照して、CPU110は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー200が走行しているとき、ラジコンカー200からの撮影画像をタッチパネル130に表示させる。図4(b)を参照して、CPU110は、レースがスタートすると、あるいは、レース中においては、ラジコンカー200からの撮影画像に、コースの中心を示す白線301X、コースの端を示す白線302X、コースパイロン303Xなどのバーチャル画像を重畳させる。
【0066】
より詳細には、CPU110は、タッチパネル130に、撮影画像にレースのスタートに適した2Dまたは3Dのバーチャル画像を重畳させてもよい。すなわち、メモリ120は、スタート用のバーチャル画像を記憶する。図5は、本実施の形態に係るレースのスタート直前におけるコントローラ100を示すイメージ図である。
【0067】
図5を参照して、CPU110は、タッチパネル130またはボタン150を介して、コースにおけるスタート地点やゴール地点を受け付ける。CPU110は、コースにおけるラジコンカー200の現在の位置と向きとに基づいて、レースが開始される際に、メモリ120からバーチャル画像を読み出す。CPU110は、タッチパネル130に、撮像画像と白線301X,302Xとコースパイロン303Xとスタートのタイミングを示す文字と信号機の画像などを表示させる。
【0068】
また、CPU110は、タッチパネル130に、撮影画像にレースのゴールに適した2Dまたは3Dのバーチャル画像を表示させてもよい。すなわち、メモリ120は、ゴール用のバーチャル画像を記憶する。図6は、本実施の形態に係るラジコンカー200がレースのゴール地点の直前に位置するときにおけるコントローラ100を示すイメージ図である。
【0069】
CPU110は、タッチパネル130またはボタン150を介して、コースにおけるスタート地点やゴール地点を受け付ける。CPU110は、タッチパネル130またはボタン150を介して、コースを何週するかの指定を受け付ける。
【0070】
図6を参照して、CPU110は、コースにおけるラジコンカー200の現在位置と向きに基づいて、ラジコンカー200がゴール地点に近づくと、メモリ120からバーチャル画像を読み出す。CPU110は、タッチパネル130に、撮像画像と白線301X,302Xとコースパイロン303Xとゴール地点を示す画像などを表示させる。
【0071】
<ラジコンカー200の構成>
次に、ラジコンカー200の具体的構成の一態様について説明する。図7は、本実施の形態に係るラジコンカー200のハードウェア構成を表わすブロック図である。図7を参照して、ラジコンカー200は、主たる構成要素として、CPU210と、メモリ220と、移動機構230と、GPS240と、電子コンパス250と、メモリインターフェイス260と、通信インターフェイス270と、時計280と、カメラ290とを含む。
【0072】
メモリ220は、各種のRAMや、ROMや、ハードディスクなどによって実現される。メモリ220は、CPU210によって実行されるプログラムなどを記憶する。換言すれば、CPU210は、メモリ220に記憶されているプログラムを実行することによって、ラジコンカー200の各部を制御する。
【0073】
移動機構230は、CPU210からの指令に基づいて、ラジコンカー200を移動させる。たとえば、移動機構230は、モータやシャフトやタイヤなどを含む。ただし、移動機構230は、プロペラ、翼、脚部などであってもよい。移動機構230は、コントローラ100からの移動命令に応じて、ラジコンカー200を移動させる。
【0074】
GPS240は、ラジコンカー200の現在位置を取得する。現在位置は、通信インターフェイス270を介して、コントローラ100へと送信される。
【0075】
電子コンパス250は、ラジコンカー200の向きを取得する。向きは、通信インターフェイス270を介して、コントローラ100へと送信される。
【0076】
メモリインターフェイス260は、外部の記憶媒体261からデータを読み出す。換言すれば、CPU210は、メモリインターフェイス260を介して外部の記憶媒体261に格納されているデータを読み出して、当該データをメモリ220に格納する。逆に、CPU210は、メモリ220からデータを読み出して、メモリインターフェイス260を介して当該データを外部の記憶媒体261に格納する。
【0077】
なお、記憶媒体261の実現方法としては、コントローラ100の記憶媒体161と同様であるため、ここでは説明を繰り返さない。
【0078】
通信インターフェイス270は、アンテナやコネクタによって実現される。通信インターフェイス270は、無線通信によってコントローラ100との間でデータをやり取りする。換言すれば、CPU210は、通信インターフェイス270を介して、コントローラ100から移動命令を受信したり、撮影画像や現在の位置や現在の向きを送信したりする。
【0079】
時計280は、CPU210からの指令に基づいて、時刻あるいは期間を計測する。
カメラ290は、ラジコンカー200の前部に配置されている。カメラ290は、ラジコンカー200の前方の景色を撮影する。カメラ290は、右目用画像を撮影するための右カメラと左目用画像を撮影するための左カメラとを含むことが好ましい。すなわち、カメラ290は、3D画像を撮影できることが好ましい。
【0080】
CPU210は、メモリ220あるいは記憶媒体261に記憶されているプログラムを実行することによって、ラジコンカー200の各部を制御する。たとえば、CPU210は、メモリ220あるいは記憶媒体261に記憶されているプログラムを実行する。
【0081】
より詳細には、本実施の形態に係るCPU210は、通信インターフェイス270を介して、逐次、カメラ290が撮影した画像をコントローラ100に送信する。CPU210は、コントローラ100からの要求に応じて、あるいは定期的に、通信インターフェイス270を介して、ラジコンカー200の現在位置と向きとをコントローラ100に送信する。CPU210は、通信インターフェイス270を介して、コントローラ100から移動命令を受け付ける。CPU210は、移動命令に基づいて、移動機構230を駆動させる。
【0082】
たとえば、CPU210は、通信インターフェイス270を介して、移動命令として、前進命令、後進命令、方向転換命令、加減速命令などを受信する。CPU210は、当該命令に基づいて移動機構230を駆動させることによって、ラジコンカー200を前進させたり、後進させたり、方向転換させたり、速度を増加させたりする。
【0083】
<制御方法>
以下では、主に、本実施の形態に係るコントローラ100で実行される処理について説明する。すなわち、本実施の形態に係るコントローラ100におけるラジコンカー200の制御方法について説明する。図8は、実施の形態1に係るコントローラ100における制御方法を示すシーケンス図である。
【0084】
図8を参照して、コントローラ100のCPU110は、タッチパネル130またはボタン150を介して、ユーザからレースの開始命令を受け付けると、ステップS106からの処理を実行する。なお、以下では、CPU110は、通信インターフェイス170を介して、一度は、ラジコンカー200から現在の位置と向きとを受信しているものとする。
【0085】
CPU110は、メモリ120からコースデータを読み出すことによって、コースの3Dバーチャルデータを作成する(ステップS106)。CPU110は、通信インターフェイス170を介して、ラジコンカー200から撮像画像または現在位置および向きを受信したか否かを判断する(ステップS108)。CPU110は、ラジコンカー200から撮像画像または現在位置および向きを受信しなかった場合(ステップS108においてNOである場合)、ステップS108の処理を繰り返す。
【0086】
CPU110は、ラジコンカー200から撮像画像および現在位置および向きを受信した場合(ステップS108においてYESである場合)、最新のラジコンカー200の現在位置および向きに基づいて、コースを示す3Dバーチャルモデルに対する視点を決定する(ステップS112)。より詳細には、CPU110は、コースにおける位置と向きとに基づいて、3Dバーチャルモデルに対する視点を決定する。
【0087】
CPU110は、決定された視点からの、3Dバーチャル画像を作成する(ステップS114)。CPU110は、最新の撮像画像に、作成された最新の3Dバーチャル画像を重畳させる(ステップS116)。CPU110は、タッチパネル130に、最新の撮像画像と最新の3Dバーチャル画像との合成画像を表示させる(ステップS118)。
【0088】
CPU110は、タッチパネル130またはボタン150を介して、ユーザからレースを終了するための命令を受け付けたか否かを判断する(ステップS120)。CPU110は、レースを終了するための命令を受け付けなかった場合(ステップS120においてNOである場合)、ステップS108からの処理を繰り返す。CPU110は、レースを終了するための命令を受け付けた場合(ステップS120においてYESである場合)、ラジコンカー200のコントロール処理を終了する。
【0089】
[実施の形態2]
次に、本発明の実施の形態2について説明する。本実施の形態に係るネットワークシステム1では、第1のコントローラ100Xが、第1のラジコンカー200Xのレース中に、既にコースを走行した第2のラジコンカー200Yを示すバーチャル画像を表示するものである。
【0090】
なお、以下では、実施の形態1に係るネットワークシステム1と同様の構成については、説明を繰り返さない。
【0091】
<ネットワークシステムの動作概要>
まず、本実施の形態に係るネットワークシステム1の動作概要について説明する。
【0092】
図1を参照して、ネットワークシステム1は、コントローラ100X,100Yとラジコンカー200X,200Yとを含む。ただし、本実施の形態においては、第2のラジコンカー200Yの走行が終了してから、第1のラジコンカー200Xが走行するものとする。以下では、説明のために、コントローラ100X,100Yを総称して、コントローラ100という。ラジコンカー200X,200Yを総称して、ラジコンカー200という。
【0093】
ユーザは、ラジコンカー200を公園や庭の地面に載置する。ユーザは、コントローラ100を介してラジコンカー200の動作を制御する。
【0094】
ラジコンカー200は、ラジコンカー200の前方を撮影するためのカメラを搭載する。ラジコンカー200は、撮影画像を逐次コントローラ100に送信する。
【0095】
ラジコンカー200は、ラジコンカー200の現在位置を測定するためのGPSを搭載する。ラジコンカー200は、現在の位置を逐次コントローラ100に送信する。
【0096】
ラジコンカー200は、ラジコンカー200の現在の向き(姿勢)を測定するための電子コンパスを搭載する。ラジコンカー200は、現在の向きを逐次コントローラ100に送信する。
【0097】
コントローラ100は、ラジコンカー200からの撮影画像を表示する。ユーザは、撮影画像を見ながら、コントローラ100にラジコンカー200を移動させるための命令(移動命令)を入力する。コントローラ100は、ラジコンカー200にユーザからの移動命令を送信する。
【0098】
本実施の形態においては、コントローラ100は、ラジコンカー200からの現在位置と向きの時系列データ(コース作成用時系列データ)を蓄積する。コントローラ100は、時系列データに基づいて、ラジコンカー200の軌跡301を取得する。コントローラ100は、ラジコンカー200の軌跡301に基づいて、ラジコンカー200のためのコース302を示すデータを作成する。
【0099】
コースを示すデータは、コースのトラックを示す白線やコースパイロンなどの3Dオブジェクトを含む。コースの位置、形状、向きは、現実の地図データに対応付けられる。あるいは、コースの位置、形状、向きは、緯度・経度に対応付けられる。
【0100】
ただし、コントローラ100は、タッチパネル130などを介して、コースの作成命令を受け付けてもよい。たとえば、コントローラ100は地図を表示している状態で、ユーザから地図上におけるスライド操作を受け付ける。コントローラ100は、スライド操作に基づいて、コースの位置と形状と向きとを決定する。
【0101】
あるいは、コントローラ100は、予め複数のコースデータを記憶していてもよい。すなわち、ラジコンカー200が走らなくとも、予め準備された複数のコースからユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、ユーザによってコースの位置と向きとが指定されてもよい。
【0102】
本実施の形態においては、第1のラジコンカー200Xを制御するための第1のコントローラ100Xは、第2のラジコンカー200Yを制御するための第2のコントローラ100Yと通信することが可能である。第1のコントローラ100Xは、コースの決定後に、コースデータを第2のコントローラ100Yへと送信したり、第2のラジコンカー200Yからコースデータを受信したりする。すなわち、第1のコントローラ100Xと第2のコントローラ100Yとは、共通のコースデータに基づいて、ラジコンカー200X,200Yの走行を制御することができる。
【0103】
たとえば、第2のコントローラ100Yが先にコースを走行した場合、第2のコントローラ100Yは、第2のラジコンカー200Yの位置と向きの時系列データ(レース用時系列データ)を蓄積する。第1のコントローラ100Xは、第1のラジコンカー200Xを走行させる前に、第2のコントローラ100Yによって制御されるラジコンカー200Yの位置と向きの時系列データを取得する。
【0104】
コントローラ100は、時系列データを取得した後、ユーザの命令に基づいて、レースを開始する。コントローラ100は、コースのデータとラジコンカー200の現在位置と向きとに基づいて、コースにおけるラジコンカー200の位置と向きとを取得する。コントローラ100は、他のコントローラ100からの他のラジコンカーの時系列データを参照することによって、レース開始からの時刻に基づいてコースにおける他のラジコンカーの位置と向きを取得する。
【0105】
コントローラ100は、コースにおけるラジコンカー200の位置と向きとに基づいて、コースのデータと他のラジコンカーの位置および向きとからラジコンカー200から見た3Dオブジェクトを示すバーチャル画像を作成する。本実施の形態においては、バーチャル画像は、コースを示す画像だけでなく、他のラジコンカーを示す画像を含む。他のラジコンカーの画像としては、予め登録されているスポーツカーのアニメーションや他のラジコンカーの顔写真などが挙げられる。
【0106】
コントローラ100は、ラジコンカー200の撮影画像にバーチャル画像を重畳させて表示する。
【0107】
第1のラジコンカー200Xがコースを走行している間、第1のコントローラ100Xは、第1のラジコンカー200Xの位置と向きの時系列データ(レース用時系列データ)を蓄積する。第1のコントローラ100Xは、第1のラジコンカー200Xの走行が終了すると、第1のラジコンカー200Xの位置と向きの時系列データを、第2のコントローラ100Yまたは第3のコントローラへと送信する。
【0108】
このように、本実施の形態に係るネットワークシステム1においては、ユーザは、仮想のコースと他のラジコンカーとを示すバーチャル画像を見ながら、自分が制御するラジコンカー200の目線でラジコンカー200の移動を制御することができる。その結果、ユーザは、ラジコンカー200の移動の制御を臨場感あふれるものにすることができる。
【0109】
以下、このような機能を実現するためのネットワークシステム1の具体的な構成について詳述する。
【0110】
<コントローラ100の構成>
なお、コントローラ100のハードウェア構成については、実施の形態1のそれと同様であるため、ここでは説明を繰り返さない。以下では、メモリ120に記憶されるデータとコントローラ100のCPU110の動作について説明する。
【0111】
CPU110は、メモリ120あるいは記憶媒体161に記憶されているプログラムを実行することによって、コントローラ100の各部を制御する。たとえば、CPU110は、メモリ120あるいは記憶媒体161に記憶されているプログラムを実行することによって、ラジコンカー200のコントロール処理を実行する。
【0112】
具体的には、CPU110は、通信インターフェイス170を介して、ラジコンカー200から撮影画像を受信する。CPU110は、撮影画像をタッチパネル130に表示させる。CPU110は、タッチパネル130またはボタン150を介して、ユーザからラジコンカー200を移動させるための命令(移動命令)を受け付ける。CPU110は、通信インターフェイス170を介して、ラジコンカー200に移動命令を送信する。
【0113】
CPU110は、通信インターフェイス170を介して、ラジコンカー200から現在の位置と向きとを受信する。CPU110は、ラジコンカー200の現在位置と向きの時系列データ(コース作成用時系列データ)をメモリ120に格納する。
【0114】
CPU110は、コース作成用時系列データに基づいて、ラジコンカー200の軌跡301を取得する。CPU110は、ラジコンカー200の軌跡301に基づいて、ラジコンカー200のためのコース302を示すデータを作成する。
【0115】
コースを示すデータ(コースデータとも言う。)は、コースのトラックを示す白線やコースパイロンなどの3Dオブジェクト(モデルデータ)を含む。CPU110は、コースの位置、形状、向きを、現実の地図データに対応付ける。あるいは、CPU110は、コースの位置、形状、向きを、緯度・経度に対応付ける。
【0116】
あるいは、CPU110は、ラジコンカー200を走行させることなく、コースデータを作成してもよい。より詳細には、本実施の形態に係るCPU110は、タッチパネル130またはボタン150を介して、ユーザから地図の取得命令を受け付ける。CPU110は、通信インターフェイス170を介して、外部のサーバなどから地図データをダウンロードする。CPU110は、メモリ120や記憶媒体161から地図データを読み出してもよい。
【0117】
CPU110は、タッチパネル130またはボタン150を介して、ユーザから、ラジコンカー200のためのコースを作成するための命令を受け付ける。図3を参照して、CPU110は、タッチパネル130に地図画像を表示しながら、ユーザによるスライド操作を受け付ける。たとえば、CPU110は、タッチパネル130を介して、指の地図画像に対するタッチ位置を順次取得することによって、地図画像上の指の軌跡301を取得する。
【0118】
あるいは、CPU110は、タッチパネル130に地図画像とポインタとを表示する。CPU110は、ボタン150を介して、ユーザからポインタの移動命令を受け付ける。CPU110は、ポインタの地図画像に対する位置を順次取得することによって、地図画像上のポインタの軌跡301を取得する。たとえば、ユーザは、所定のキーを押しながら、方向キーを操作することによってポインタを移動させる。
【0119】
CPU110は、当該指の軌跡301に基づいて、ラジコンカー200のためのコース302を示すデータを作成する。CPU110は、軌跡301の両側にコースの端部を示すためのコースパイロンやトラックラインなどを作成する。
【0120】
あるいは、コントローラ100は、予め複数のコースデータを記憶していてもよい。すなわち、予め準備された複数のコースから、ユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、コースの位置と向きとが指定されてもよい。
【0121】
本実施の形態においては、CPU110は、コースデータを他のコントローラ100へと送信したり、他のコントローラ100からコースデータを受信したりする。CPU110は、他のコントローラ100から受信したコースデータをメモリ120に格納する。CPU110は、タッチパネル130またはボタン150を介して、ユーザから当該コースデータの選択を受け付ける。
【0122】
コースが決定され、他のコントローラ100のユーザが他のラジコンカーをコース上で走らせた後、CPU110は、通信インターフェイス170を介して、他のコントローラ100から、他のラジコンカーの位置と向きの時系列データ(レース用時系列データ)を受信する。CPU110は、他のラジコンカーの位置と向きの時系列データをメモリ120に格納する。
【0123】
図9は、実施の形態2に係るメモリ120に記憶される他のラジコンカーの位置と向きのレース用時系列データのデータベース123を示すイメージ図である。図9を参照して、CPU110は、他のコントローラ100から送信されてくる他のラジコンカーの位置および向きと当該位置および向きが計測されたレース開始からの時間とを対応付けて、レース用時系列データとしてデータベース123に格納する。本実施の形態においては、コントローラ100は、自分のラジコンカー200の位置のレース用時系列データと、他の2つのラジコンカーの位置と向きのレース用時系列データとをデータベース123に格納する。
【0124】
より詳細には、経過時間(HH:MM:SS)に関しては、飛行機のように高速で移動するラジコン機器の場合は、CPU110が1/100秒まで時刻を計測・記録し、当該時刻をHH:MM:SS:NNの形式でデータベース123に記憶する。位置座標に関しては、GPSの分野で標準的に利用されているデータ形式を使用することが望ましい。なお、N:北緯、S:南緯、E:東経、W:西経である。向き(姿勢)に関しては、GPS、電子コンパスなどで標準的に利用されているデータ形式を使用することが望ましい。なお、0:北、90:東、180:南、270:西である。
【0125】
ユーザの命令に基づいて、CPU110は、レースを開始する。CPU110は、コースのデータとラジコンカー200の現在位置と向きとに基づいて、コースにおけるラジコンカー200の位置と向きとを取得する。CPU110は、データベース123の他のラジコンカーの時系列データを参照することによって、レース開始からの時刻に基づいてコースにおける他のラジコンカーの位置と向きを取得する。
【0126】
CPU110は、コースにおけるラジコンカー200の位置と向きとに基づいて、コースのデータと他のラジコンカーの位置および向きとからラジコンカー200から見た3Dオブジェクトを示すバーチャル画像を作成する。CPU110は、ラジコンカー200の撮影画像にバーチャル画像を重畳させて、タッチパネル130に表示する。
【0127】
たとえば、他のラジコンカーが先行する場合には、CPU110は、バーチャル画像に、他のラジコンカーの画像を含ませる。他のラジコンカーの画像としては、予め登録されているスポーツカーのアニメーションや他のラジコンカーの顔写真などが挙げられる。
【0128】
CPU110は、ラジコンカー200がコースを走行している間、ラジコンカー200の位置と向きのレース用時系列データをメモリ120のデータベース123に蓄積する。CPU110は、ラジコンカー200の走行が終了すると、通信インターフェイス170を介して、(自分の)ラジコンカー200の位置と向きのレース用時系列データを、他のコントローラ100へと送信する。
【0129】
すなわち、本実施の形態においても、図4(a)を参照して、CPU110は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー200が走行しているとき、ラジコンカー200からの撮影画像をタッチパネル130に表示させる。図4(b)を参照して、CPU110は、レースがスタートすると、あるいは、レース中においては、ラジコンカー200からの撮影画像に、コースの中心を示す白線301X、コースの端を示す白線302X、コースパイロン303Xなどのバーチャル画像を重畳させる。
【0130】
また、CPU110は、タッチパネル130に、撮影画像にレースのスタートに適した2Dまたは3Dのバーチャル画像を重畳させてもよい。すなわち、メモリ120は、スタート用のバーチャル画像を記憶する。
【0131】
図5を参照して、CPU110は、タッチパネル130またはボタン150を介して、コースにおけるスタート地点やゴール地点を受け付ける。CPU110は、コースにおけるラジコンカー200の現在位置と向きに基づいて、レースが開始される際に、メモリ120からバーチャル画像を読み出す。CPU110は、タッチパネル130に、撮像画像と白線301X,302Xとコースパイロン303Xとスタートのタイミングを示す文字と信号機の画像などを表示させる。
【0132】
また、CPU110は、タッチパネル130に、撮影画像にレースのゴールに適した2Dまたは3Dのバーチャル画像を表示させてもよい。すなわち、メモリ120は、ゴール用のバーチャル画像を記憶する。
【0133】
CPU110は、タッチパネル130またはボタン150を介して、コースにおけるスタート地点やゴール地点を受け付ける。CPU110は、タッチパネル130またはボタン150を介して、コースを何週するかの指定を受け付ける。
【0134】
図6を参照して、CPU110は、コースにおけるラジコンカー200の現在位置と向きに基づいて、ラジコンカー200がゴール地点に近づくと、メモリ120からバーチャル画像を読み出す。CPU110は、タッチパネル130に、撮像画像と白線301X,302Xとコースパイロン303Xとゴール地点を示す画像などを表示させる。
【0135】
<ラジコンカー200の構成>
なお、ラジコンカー200のハードウェア構成については、実施の形態1のそれと同様であるため、ここでは説明を繰り返さない。
【0136】
<制御方法>
以下では、主に、本実施の形態に係るコントローラ100で実行される処理について説明する。すなわち、本実施の形態に係るコントローラ100におけるラジコンカー200の制御方法について説明する。図10は、実施の形態2に係るコントローラ100における制御方法を示すシーケンス図である。
【0137】
図10を参照して、コントローラ100のCPU110は、タッチパネル130またはボタン150を介して、ユーザからレースの開始命令を受け付けると、ステップS202からの処理を実行する。なお、以下では、CPU110は、通信インターフェイス170を介して、一度は、ラジコンカー200から現在の位置と向きとを受信しているものとする。また、CPU110は、通信インターフェイス170を介して、他のコントローラ100に制御される他のラジコンカーの位置および向きのレース用時系列データをデータベース123に格納しているものとする。
【0138】
CPU110は、時計180を利用して、レース開始からの時間を計測し始める(ステップS202)。CPU110は、時計180を参照して、レース開始からの経過時間を取得する(ステップS204)。CPU110は、メモリ120からコースデータを読み出すことによって、コースの3Dバーチャルデータを作成する(ステップS206)。
【0139】
より詳細には、本実施の形態においては、CPU110は、データベース123の他のラジコンカーの時系列データを参照することによって、レース開始からの時刻に基づいてコースにおける他のラジコンカーの位置および向きを取得する。CPU110は、コースのデータと他のラジコンカーの位置および向きとから、コースと他のラジコンカーとを含む3Dバーチャルデータを作成する。
【0140】
CPU110は、通信インターフェイス170を介して、ラジコンカー200から撮像画像または現在位置および向きを受信したか否かを判断する(ステップS208)。CPU110は、ラジコンカー200から撮像画像または現在位置および向きを受信しなかった場合(ステップS208においてNOである場合)、ステップS204からの処理を繰り返す。
【0141】
CPU110は、ラジコンカー200から撮像画像および現在位置および向きを受信した場合(ステップS208においてYESである場合)、現在位置と向きをレース開始からの時間に対応付けて、データベース123に格納する(ステップS210)。CPU110は、最新のラジコンカー200の現在位置および向きに基づいて、コースと他のラジコンカーとを示す3Dバーチャルモデルに対する視点を決定する(ステップS212)。すなわち、CPU110は、コースと他のラジコンカーに対する自分のラジコンカー200の位置と向きとに基づいて、3Dバーチャルモデルに対する視点を決定する。
【0142】
CPU110は、決定された視点からの3Dバーチャル画像を作成する(ステップS214)。CPU110は、最新の撮像画像に、作成された最新の3Dバーチャル画像を重畳させる(ステップS216)。CPU110は、タッチパネル130に、最新の撮像画像と最新の3Dバーチャル画像との合成画像を表示させる(ステップS218)。
【0143】
CPU110は、タッチパネル130またはボタン150を介して、ユーザからレースを終了するための命令を受け付けたか否かを判断する(ステップS220)。CPU110は、レースを終了するための命令を受け付けなかった場合(ステップS220においてNOである場合)、ステップS204からの処理を繰り返す。CPU110は、レースを終了するための命令を受け付けた場合(ステップS220においてYESである場合)、時間の計測を終了する(ステップS222)。CPU110は、ラジコンカー200のコントロール処理を終了する。
【0144】
<その他の応用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した外部の記憶媒体161,261やメモリ120,220を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が外部の記憶媒体161,261やメモリ120,220に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【0145】
この場合、外部の記憶媒体161,261やメモリ120,220から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した外部の記憶媒体161,261やメモリ120,220は本発明を構成することになる。
【0146】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0147】
さらに、外部の記憶媒体161,261やメモリ120,220から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0148】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0149】
1 ネットワークシステム、100 コントローラ、110 CPU、120 メモリ、130 タッチパネル、131 ディスプレイ、132 タブレット、140 スピーカ、150 ボタン、160 メモリインターフェイス、161 記憶媒体、170 通信インターフェイス、180 時計、200 ラジコンカー、210 CPU、220 メモリ、230 移動機構、240 GPS、250 電子コンパス、260 メモリインターフェイス、261 記憶媒体、270 通信インターフェイス、280 時計、290 カメラ、301 軌跡、302 コース、301X コースの中心を示す白線、302X コースの端を示す白線、303X コースパイロン。

【特許請求の範囲】
【請求項1】
模型装置とコントローラとを備えるネットワークシステムであって、
前記模型装置は、
前記コントローラからの指令に基づいて前記模型装置を移動させるための移動部と、
前記模型装置の前方を撮影するためのカメラと、
前記模型装置の位置を取得するためのGPS部と、
前記模型装置の向きを取得するためのコンパスと、
前記コントローラから前記指令を受信し、前記カメラからの撮影画像と前記位置と前記向きとを前記コントローラに送信するための第1の通信インターフェイスとを含み、
前記コントローラは、
ディスプレイと、
前記指令を受け付けるための操作部と、
前記模型装置と通信するための第2の通信インターフェイスと、
前記模型装置用のコースのデータを記憶するメモリと、
前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成し、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるためのプロセッサとを含む、ネットワークシステム。
【請求項2】
前記プロセッサは、
前記模型装置から受信した前記位置の時系列データに基づいて、前記位置の軌跡に沿った前記模型装置用のコースのデータを作成する、請求項1に記載のネットワークシステム。
【請求項3】
前記メモリは、複数の前記模型装置用のコースのデータを記憶し、
前記プロセッサは、前記操作部を介して、前記複数の前記模型装置用のコースの選択命令を受け付ける、請求項1または2に記載のネットワークシステム。
【請求項4】
前記プロセッサは、前記第2の通信インターフェイスを介して他のコントローラに、前記模型装置用のコースのデータを送信する、請求項1から3のいずれか1項に記載のネットワークシステム。
【請求項5】
前記プロセッサは、前記第2の通信インターフェイスを介して他のコントローラから、前記模型装置用のコースのデータを受信する、請求項1から4のいずれか1項に記載のネットワークシステム。
【請求項6】
前記プロセッサは、
前記第2の通信インターフェイスを介して他のコントローラから、他の模型装置の位置とスタート時点からの経過時間とが対応付けられた時系列データを受信し、
前記時系列データから前記模型装置のスタート時点からの経過時間に対応する前記他の模型装置の位置を取得し、
前記模型装置から受信した前記位置および前記向きと、前記他の模型装置の位置と、に基づいて前記他の模型装置を示す画像を前記表示用のバーチャル画像に追加する、請求項1から5のいずれか1項に記載のネットワークシステム。
【請求項7】
模型装置と前記模型装置用のコースのデータを記憶するコントローラとを備えるネットワークシステムにおけるコントロール方法であって、
前記コントローラが、前記模型装置を移動させるための指令を受け付けるステップと、
前記コントローラが、前記指令を前記模型装置へ送信するステップと、
前記模型装置が、前記コントローラからの指令に基づいて前記模型装置を移動させるステップと、
前記模型装置が、前記模型装置の前方を撮影するステップと、
前記模型装置が、前記模型装置の位置を取得するステップと、
前記模型装置が、前記模型装置の向きを取得するステップと、
前記模型装置が、撮影画像と前記位置と前記向きとを前記コントローラに送信するステップと、
前記コントローラが、前記模型装置から受信した前記位置と前記向きとに基づいて、前記模型装置用のコースのデータから表示用のバーチャル画像を作成するステップと、
前記コントローラが、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像をディスプレイに表示させるステップとを備える、コントロール方法。
【請求項8】
ディスプレイと、
模型装置用のコースのデータを記憶するメモリと、
前記模型装置を移動させるための指令を受け付けるための操作部と、
前記指令を前記模型装置へ送信し、前記模型装置から撮影画像と前記模型装置の位置と向きとを受信するための通信インターフェイスと、
前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成し、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるためのプロセッサとを備える、コントローラ。
【請求項9】
模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラにおけるコントロール方法であって、
前記プロセッサが、前記模型装置を移動させるための指令を受け付けるステップと、
前記プロセッサが、前記通信インターフェイスを介して、前記指令を前記模型装置へ送信するステップと、
前記プロセッサが、前記通信インターフェイスを介して、前記模型装置から撮影画像と前記模型装置の位置と向きとを受信するステップと、
前記プロセッサが、前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成するステップと、
前記プロセッサが、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるステップとを備える、コントロール方法。
【請求項10】
模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラに前記模型装置をコントロールさせるためのコントロールプログラムであって、前記プロセッサに、
前記模型装置を移動させるための指令を受け付けるステップと、
前記通信インターフェイスを介して、前記指令を前記模型装置へ送信するステップと、
前記通信インターフェイスを介して、前記模型装置から撮影画像と前記模型装置の位置と向きとを受信するステップと、
前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成するステップと、
前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるステップとを実行させる、コントロールプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−143447(P2012−143447A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−5036(P2011−5036)
【出願日】平成23年1月13日(2011.1.13)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】