(57)【要約】【課題】コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムを提供する。【解決手段】コントローラ１００は、模型装置を移動させるための指令を受け付け、指令を模型装置へ送信する。模型装置２００は、コントローラからの指令に基づいて模型装置を移動させ、模型装置の前方を撮影し、模型装置の位置を取得し、模型装置の向きを取得し、撮影画像と位置と向きとをコントローラに送信する。コントローラは、模型装置から受信した位置と向きとに基づいて、模型装置用のコースのデータから表示用のバーチャル画像を作成し、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイ１３０に表示させる。【選択図】図１
2012143447.tif 000002
【特許請求の範囲】
【請求項１】
模型装置とコントローラとを備えるネットワークシステムであって、
前記模型装置は、
前記コントローラからの指令に基づいて前記模型装置を移動させるための移動部と、
前記模型装置の前方を撮影するためのカメラと、
前記模型装置の位置を取得するためのＧＰＳ部と、
前記模型装置の向きを取得するためのコンパスと、
前記コントローラから前記指令を受信し、前記カメラからの撮影画像と前記位置と前記向きとを前記コントローラに送信するための第１の通信インターフェイスとを含み、
前記コントローラは、
ディスプレイと、
前記指令を受け付けるための操作部と、
前記模型装置と通信するための第２の通信インターフェイスと、
前記模型装置用のコースのデータを記憶するメモリと、
前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成し、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるためのプロセッサとを含む、ネットワークシステム。
【請求項２】
前記プロセッサは、
前記模型装置から受信した前記位置の時系列データに基づいて、前記位置の軌跡に沿った前記模型装置用のコースのデータを作成する、請求項１に記載のネットワークシステム。
【請求項３】
前記メモリは、複数の前記模型装置用のコースのデータを記憶し、
前記プロセッサは、前記操作部を介して、前記複数の前記模型装置用のコースの選択命令を受け付ける、請求項１または２に記載のネットワークシステム。
【請求項４】
前記プロセッサは、前記第２の通信インターフェイスを介して他のコントローラに、前記模型装置用のコースのデータを送信する、請求項１から３のいずれか１項に記載のネットワークシステム。
【請求項５】
前記プロセッサは、前記第２の通信インターフェイスを介して他のコントローラから、前記模型装置用のコースのデータを受信する、請求項１から４のいずれか１項に記載のネットワークシステム。
【請求項６】
前記プロセッサは、
前記第２の通信インターフェイスを介して他のコントローラから、他の模型装置の位置とスタート時点からの経過時間とが対応付けられた時系列データを受信し、
前記時系列データから前記模型装置のスタート時点からの経過時間に対応する前記他の模型装置の位置を取得し、
前記模型装置から受信した前記位置および前記向きと、前記他の模型装置の位置と、に基づいて前記他の模型装置を示す画像を前記表示用のバーチャル画像に追加する、請求項１から５のいずれか１項に記載のネットワークシステム。
【請求項７】
模型装置と前記模型装置用のコースのデータを記憶するコントローラとを備えるネットワークシステムにおけるコントロール方法であって、
前記コントローラが、前記模型装置を移動させるための指令を受け付けるステップと、
前記コントローラが、前記指令を前記模型装置へ送信するステップと、
前記模型装置が、前記コントローラからの指令に基づいて前記模型装置を移動させるステップと、
前記模型装置が、前記模型装置の前方を撮影するステップと、
前記模型装置が、前記模型装置の位置を取得するステップと、
前記模型装置が、前記模型装置の向きを取得するステップと、
前記模型装置が、撮影画像と前記位置と前記向きとを前記コントローラに送信するステップと、
前記コントローラが、前記模型装置から受信した前記位置と前記向きとに基づいて、前記模型装置用のコースのデータから表示用のバーチャル画像を作成するステップと、
前記コントローラが、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像をディスプレイに表示させるステップとを備える、コントロール方法。
【請求項８】
ディスプレイと、
模型装置用のコースのデータを記憶するメモリと、
前記模型装置を移動させるための指令を受け付けるための操作部と、
前記指令を前記模型装置へ送信し、前記模型装置から撮影画像と前記模型装置の位置と向きとを受信するための通信インターフェイスと、
前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成し、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるためのプロセッサとを備える、コントローラ。
【請求項９】
模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラにおけるコントロール方法であって、
前記プロセッサが、前記模型装置を移動させるための指令を受け付けるステップと、
前記プロセッサが、前記通信インターフェイスを介して、前記指令を前記模型装置へ送信するステップと、
前記プロセッサが、前記通信インターフェイスを介して、前記模型装置から撮影画像と前記模型装置の位置と向きとを受信するステップと、
前記プロセッサが、前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成するステップと、
前記プロセッサが、前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるステップとを備える、コントロール方法。
【請求項１０】
模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラに前記模型装置をコントロールさせるためのコントロールプログラムであって、前記プロセッサに、
前記模型装置を移動させるための指令を受け付けるステップと、
前記通信インターフェイスを介して、前記指令を前記模型装置へ送信するステップと、
前記通信インターフェイスを介して、前記模型装置から撮影画像と前記模型装置の位置と向きとを受信するステップと、
前記模型装置から受信した前記位置と前記向きとに基づいて、前記コースのデータから表示用のバーチャル画像を作成するステップと、
前記模型装置から受信した前記撮影画像と前記バーチャル画像とを合成した画像を前記ディスプレイに表示させるステップとを実行させる、コントロールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラジオコントロールによって模型装置の動作を制御するための技術に関する。
【背景技術】
【０００２】
ラジオコントロールによってスポーツカーやヘリコプターやロボットなどの模型装置を制御する技術が知られている。
【０００３】
たとえば、特開２００４−４２１４８号公報（特許文献１）には、移動ロボットが開示されている。特開２００４−４２１４８号公報（特許文献１）によると、移動ロボットに自己位置方位検出手段、移動手段及び障害物検出手段を搭載する。移動ロボットの外部装置に環境地図記憶手段及び経路計画手段を組み込む。移動ロボットと外部装置間の通信により、環境地図を参照した自己位置から移動目的地までの経路探索、計画経路に沿った移動ロボットの移動、環境地図上に無い未知障害物に対する回避運動、計画経路から逸脱した後の新たな自己位置から移動目的地までの再度の経路探索、再計画経路に沿った移動を行う。
【０００４】
また、特開昭６１−７０６１７号公報（特許文献２）には、自動走行体のコース誘導制御システムが開示されている。特開昭６１−７０６１７号公報（特許文献２）によると、走行速度を操舵角の関数とする速度制御方法を導入し、操舵角の制御と共にそれに対応する走行速度制御を行う。制御対象となる走行体の用途・種類或いは走行面の条件、たとえば、フロアーやオンロードであるとオフロードであるとを問わず全ての走行体の自己誘導制御方法として用いることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−４２１４８号公報
【特許文献２】特開昭６１−７０６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムが模索されている。
【０００７】
本発明は、かかる問題を解決するためになされたものであり、その目的は、コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムを提供することにある。
【課題を解決するための手段】
【０００８】
この発明のある局面に従うと、模型装置とコントローラとを備えるネットワークシステムが提供される。模型装置は、コントローラからの指令に基づいて模型装置を移動させるための移動部と、模型装置の前方を撮影するためのカメラと、模型装置の位置を取得するためのＧＰＳ部と、模型装置の向きを取得するためのコンパスと、コントローラから指令を受信し、カメラからの撮影画像と位置と向きとをコントローラに送信するための第１の通信インターフェイスとを含む。コントローラは、ディスプレイと、指令を受け付けるための操作部と、模型装置と通信するための第２の通信インターフェイスと、模型装置用のコースのデータを記憶するメモリと、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成し、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるためのプロセッサとを含む。
【０００９】
好ましくは、プロセッサは、模型装置から受信した位置の時系列データに基づいて、位置の軌跡に沿った模型装置用のコースのデータを作成する。
【００１０】
好ましくは、メモリは、複数の模型装置用のコースのデータを記憶する。プロセッサは、操作部を介して、複数の模型装置用のコースの選択命令を受け付ける。
【００１１】
好ましくは、プロセッサは、第２の通信インターフェイスを介して他のコントローラに、模型装置用のコースのデータを送信する。
【００１２】
好ましくは、プロセッサは、第２の通信インターフェイスを介して他のコントローラから、模型装置用のコースのデータを受信する。
【００１３】
好ましくは、プロセッサは、第２の通信インターフェイスを介して他のコントローラから、他の模型装置の位置および向きとスタート時点からの経過時間とが対応付けられた時系列データを受信し、時系列データから模型装置のスタート時点からの経過時間に対応する他の模型装置の位置と向きを取得し、模型装置から受信した位置および向きと、他の模型装置の位置および向きと、に基づいて他の模型装置を示す画像を表示用のバーチャル画像に追加する。
【００１４】
この発明の別の局面に従うと、模型装置と模型装置用のコースのデータを記憶するコントローラとを備えるネットワークシステムにおけるコントロール方法が提供される。コントロール方法は、コントローラが、模型装置を移動させるための指令を受け付けるステップと、コントローラが、指令を模型装置へ送信するステップと、模型装置が、コントローラからの指令に基づいて模型装置を移動させるステップと、模型装置が、模型装置の前方を撮影するステップと、模型装置が、模型装置の位置を取得するステップと、模型装置が、模型装置の向きを取得するステップと、模型装置が、撮影画像と位置と向きとをコントローラに送信するステップと、コントローラが、模型装置から受信した位置と向きとに基づいて、模型装置用のコースのデータから表示用のバーチャル画像を作成するステップと、コントローラが、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるステップとを備える。
【００１５】
この発明の別の局面に従うと、ディスプレイと、模型装置用のコースのデータを記憶するメモリと、模型装置を移動させるための指令を受け付けるための操作部と、指令を模型装置へ送信し、模型装置から撮影画像と模型装置の位置と向きとを受信するための通信インターフェイスと、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成し、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるためのプロセッサとを備える、コントローラが提供される。
【００１６】
この発明の別の局面に従うと、模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラにおけるコントロール方法が提供される。コントロール方法は、プロセッサが、模型装置を移動させるための指令を受け付けるステップと、プロセッサが、通信インターフェイスを介して、指令を模型装置へ送信するステップと、プロセッサが、通信インターフェイスを介して、模型装置から撮影画像と模型装置の位置と向きとを受信するステップと、プロセッサが、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成するステップと、プロセッサが、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるステップとを備える。
【００１７】
この発明の別の局面に従うと、模型装置用のコースのデータを記憶するメモリとディスプレイと通信インターフェイスとプロセッサとを含むコントローラに模型装置をコントロールさせるためのコントロールプログラムが提供される。コントロールプログラムは、プロセッサに、模型装置を移動させるための指令を受け付けるステップと、通信インターフェイスを介して、指令を模型装置へ送信するステップと、通信インターフェイスを介して、模型装置から撮影画像と模型装置の位置と向きとを受信するステップと、模型装置から受信した位置と向きとに基づいて、コースのデータから表示用のバーチャル画像を作成するステップと、模型装置から受信した撮影画像とバーチャル画像とを合成した画像をディスプレイに表示させるステップとを実行させる。
【発明の効果】
【００１８】
以上のように、この発明によれば、コントローラからの指令に基づいて移動する模型装置を利用した新たなネットワークシステムが実現される。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係るネットワークシステム１の全体構成を示すイメージ図である。
【図２】本実施の形態に係るコントローラ１００のハードウェア構成を表わすブロック図である。
【図３】本実施の形態に係るユーザがラジコンカー２００のためのコースを作成するための命令を入力する状態を示すイメージ図である。
【図４】本実施の形態に係る通常モードとレースモードとにおけるコントローラ１００を示すイメージ図である。
【図５】本実施の形態に係るレースのスタート直前におけるコントローラ１００を示すイメージ図である。
【図６】本実施の形態に係るラジコンカー２００がレースのゴール地点の直前に位置するときにおけるコントローラ１００を示すイメージ図である。
【図７】本実施の形態に係るラジコンカー２００のハードウェア構成を表わすブロック図である。
【図８】実施の形態１に係るコントローラ１００における制御方法を示すシーケンス図である。
【図９】実施の形態２に係るメモリ１２０に記憶される他のラジコンカーの位置および向きのレース用時系列データのデータベース１２３を示すイメージ図である。
【図１０】実施の形態２に係るコントローラ１００における制御方法を示すシーケンス図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２１】
以下では、ラジコンカーを「模型装置」の代表例として説明を行う。ただし、「模型装置」は、飛行できるヘリコプターや飛行機でもよいし、歩行できるロボットであってもよい。なお、ヘリコプターや飛行機の場合は、模型装置の高度を取得する高度計を含むことが好ましい。また、「コントローラ」は、模型装置の制御専用のものであってもよいし、他の機能を有する携帯型電話機、パーソナルコンピュータ、電子ノート、ＰＤＡ（Personal  Digital  Assistant）などのディスプレイと通信インターフェイスを有する機器であってもよい。
【００２２】
［実施の形態１］
＜ネットワークシステムの動作概要＞
まず、本実施の形態に係るネットワークシステム１の動作概要について説明する。図１は、本実施の形態に係るネットワークシステム１の全体構成を示すイメージ図である。
【００２３】
図１を参照して、ネットワークシステム１は、コントローラ１００Ｘ，１００Ｙとラジコンカー２００Ｘ，２００Ｙとを含む。以下では、説明のために、コントローラ１００Ｘ，１００Ｙを総称して、コントローラ１００という。ラジコンカー２００Ｘ，２００Ｙを総称して、ラジコンカー２００という。
【００２４】
各々のユーザは、ラジコンカー２００を公園や庭の地面に載置する。ユーザは、コントローラ１００を介してラジコンカー２００の動作を制御する。
【００２５】
ラジコンカー２００は、ラジコンカー２００の前方を撮影するためのカメラを搭載する。ラジコンカー２００は、撮影画像を逐次コントローラ１００に送信する。
【００２６】
ラジコンカー２００は、ラジコンカー２００の現在位置を測定するためのＧＰＳ（Global Positioning System）を搭載する。ラジコンカー２００は、現在の位置を逐次コントローラ１００に送信する。
【００２７】
ラジコンカー２００は、ラジコンカー２００の現在の向き（姿勢）を測定するための電子コンパスを搭載する。ラジコンカー２００は、現在の向きを逐次コントローラ１００に送信する。ラジコンカー２００は、撮影画像と現在の位置と現在の向きとを、同時にコントローラ１００に送信してもよいし、別々に送信してもよい。
【００２８】
コントローラ１００は、ラジコンカー２００からの撮影画像を表示する。ユーザは、撮影画像を見ながら、コントローラ１００にラジコンカー２００を移動させるための命令（前進命令、後進命令、方向転換命令、加減速命令、以下これらの命令を移動命令ともいう。）を入力する。コントローラ１００は、ラジコンカー２００にユーザからの移動命令を送信する。
【００２９】
本実施の形態においては、コントローラ１００は、ラジコンカー２００からの現在位置の時系列データ（コース作成用時系列データ）を蓄積する。コントローラ１００は、時系列データに基づいて、ラジコンカー２００の軌跡３０１を取得する。コントローラ１００は、ラジコンカー２００の軌跡３０１に基づいて、ラジコンカー２００のためのコース（サーキット）３０２を示すデータを作成する。
【００３０】
コースを示すデータ（コースデータとも言う。）は、コースのトラックを示す白線やコースパイロンなどの３Ｄオブジェクトを含む。コースの位置、形状、向きは、現実の地図データに対応付けられる。あるいは、コースの位置、形状、向きは、緯度・経度に対応付けられる。
【００３１】
ただし、コントローラ１００は、タッチパネル１３０などを介して、コースの作成命令を受け付けてもよい。たとえば、コントローラ１００は地図を表示している状態で、ユーザから地図上におけるスライド操作を受け付ける。コントローラ１００は、スライド操作に基づいて、コースの位置と形状と向きとを決定する。
【００３２】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、ラジコンカー２００が走らなくとも、予め準備された複数のコースからユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、ユーザによってコースの位置と向きとが指定されてもよい。
【００３３】
コースが決定された後、ユーザの命令に基づいて、コントローラ１００はレースを開始する。コントローラ１００は、コースのデータとラジコンカー２００の現在の位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。コントローラ１００は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。
【００３４】
たとえば、コントローラ１００は、サーキットの３Ｄモデルデータを作成してから、サーキットにおけるラジコンカー２００の位置と向きとに基づいて、３Ｄモデルデータの視点を決定する。コントローラ１００は、当該視点からの３Ｄモデルデータの表示画像（バーチャル画像）を作成する。
【００３５】
コントローラ１００は、ラジコンカー２００の撮影画像にバーチャル画像を重畳させて表示する。
【００３６】
本実施の形態においては、第１のラジコンカー２００Ｘを制御するための第１のコントローラ１００Ｘは、第２のラジコンカー２００Ｙを制御するための第２のコントローラ１００Ｙと通信することが可能である。第１のコントローラ１００Ｘは、コースデータを第２のコントローラ１００Ｙへと送信したり、第２のラジコンカー２００からコースデータを受信したりする。
【００３７】
すなわち、第１のコントローラ１００Ｘと第２のコントローラ１００Ｙとは、共通のコースデータに基づいて、ラジコンカー２００Ｘ，２００Ｙの走行を制御することができる。たとえば、第１のコントローラ１００Ｘのユーザは、第１のラジコンカー２００Ｘからの撮影画像を見ながら、すなわち、第２のラジコンカー２００Ｙの現実の映像を見ながら、コースに沿ったレースを行うことができる。第２のコントローラ１００Ｙも同様である。
【００３８】
このように、本実施の形態に係るネットワークシステム１においては、ユーザは、仮想的なコースを示す画像（バーチャル画像）を見ながら、ラジコンカー２００の目線でラジコンカー２００の移動を制御することができる。その結果、ユーザは、ラジコンカー２００の移動の制御を臨場感あふれるものにすることができる。
【００３９】
以下、このような機能を実現するためのネットワークシステム１の具体的な構成について詳述する。
【００４０】
＜コントローラ１００の構成＞
コントローラ１００の具体的構成の一態様について説明する。図２は、本実施の形態に係るコントローラ１００のハードウェア構成を表わすブロック図である。図２を参照して、コントローラ１００は、主たる構成要素として、ＣＰＵ１１０と、メモリ１２０と、タッチパネル１３０と、スピーカ１４０と、ボタン１５０と、メモリインターフェイス１６０と、通信インターフェイス１７０と、時計１８０とを含む。
【００４１】
メモリ１２０は、各種のＲＡＭ（Random  Access  Memory）や、ＲＯＭ（Read-Only  Memory）や、ハードディスクなどによって実現される。メモリ１２０は、ＣＰＵ１１０によって実行されるプログラム、地図データ、バーチャルコースを示すための各種のモデルデータなどを記憶する。換言すれば、ＣＰＵ１１０は、メモリ１２０に記憶されているプログラムを実行することによって、コントローラ１００の各部を制御する。
【００４２】
タッチパネル１３０は、タブレット１３２とタブレット１３２の表面に敷設されるディスプレイ１３１とを含む。後述するようにラジコンカー２００が３Ｄカメラを有する場合には、ディスプレイ１３１は、３Ｄディスプレイであることが好ましい。
【００４３】
タッチパネル１３０は、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式などのいずれのタイプであってもよい。タッチパネル１３０は、光センサ液晶を含んでもよい。タッチパネル１３０（タブレット１３２）は、所定時間毎に外部の物体によるタッチパネル１３０へのタッチ操作を検知して、タッチ座標（タッチ位置）をＣＰＵ１１０に入力する。換言すれば、ＣＰＵ１１０は、タッチパネル１３０から順次タッチ座標を取得する。
【００４４】
スピーカ１４０は、ＣＰＵ１１０からの命令に基づいて、音声を出力する。たとえば、ＣＰＵ１１０は、音声データに基づいて、スピーカ１４０に音声を出力させる。
【００４５】
ボタン１５０は、コントローラ１００の表面に配置される。方向キー、決定キー、テンキーなどの複数のボタンがコントローラ１００に配置されてもよい。ボタン１５０は、ユーザからの命令を受け付ける。ボタン１５０は、ユーザからの命令をＣＰＵ１１０に入力する。
【００４６】
メモリインターフェイス１６０は、外部の記憶媒体１６１からデータを読み出す。換言すれば、ＣＰＵ１１０は、メモリインターフェイス１６０を介して外部の記憶媒体１６１に格納されているデータを読み出して、当該データをメモリ１２０に格納する。逆に、ＣＰＵ１１０は、メモリ１２０からデータを読み出して、メモリインターフェイス１６０を介して当該データを外部の記憶媒体１６１に格納する。
【００４７】
なお、記憶媒体１６１としては、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disk）、ＢＤ（Blu-ray  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体が挙げられる。
【００４８】
通信インターフェイス１７０は、アンテナやコネクタによって実現される。通信インターフェイス１７０は、無線通信によってラジコンカー２００や他のコントローラ１００との間でデータをやり取りする。ＣＰＵ１１０は、通信インターフェイス１７０を介して、他のコンピュータからプログラムや地図データなどを受信する。ＣＰＵ１１０は、通信インターフェイス１７０を介して、他のコントローラ１００にコースデータを送信したり、他のコントローラ１００からコースデータを受信したりする。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００に移動命令を送信したり、ラジコンカー２００から撮影画像や現在の位置や現在の向きを受信したりする。
【００４９】
時計１８０は、ＣＰＵ１１０からの指令に基づいて、時刻あるいは期間を計測する。
ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、コントローラ１００の各部を制御する。たとえば、ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、ラジコンカー２００のコントロール処理を実行する。
【００５０】
具体的には、ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から撮影画像を受信する。ＣＰＵ１１０は、撮影画像をタッチパネル１３０に表示させる。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからラジコンカー２００を移動させるための命令（移動命令）を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００に移動命令を送信する。
【００５１】
ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から現在の位置と向きとを受信する。ＣＰＵ１１０は、ラジコンカー２００の現在位置の時系列データをメモリ１２０に格納する。
【００５２】
ＣＰＵ１１０は、時系列データに基づいて、ラジコンカー２００の軌跡３０１を取得する。ＣＰＵ１１０は、ラジコンカー２００の軌跡３０１に基づいて、ラジコンカー２００のためのコース３０２を示すデータを作成する。
【００５３】
コースを示すデータ（コースデータとも言う。）は、コースの中心線を示す白線３０１Ｘやコースの端線を示す白線３０２Ｘやコースパイロン３０３Ｘなどの３Ｄオブジェクト（モデルデータ）を含む。ＣＰＵ１１０は、コースの位置、形状、向きを、現実の地図データに対応付ける。あるいは、ＣＰＵ１１０は、コースの位置、形状、向きを、緯度・経度に対応付ける。
【００５４】
あるいは、ＣＰＵ１１０は、ラジコンカー２００を走行させることなく、コースデータを作成してもよい。より詳細には、本実施の形態に係るＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから地図の取得命令を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、外部のサーバなどから地図データをダウンロードする。ＣＰＵ１１０は、メモリ１２０や記憶媒体１６１から地図データを読み出してもよい。
【００５５】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから、ラジコンカー２００のためのコースを作成するための命令を受け付ける。図３は、本実施の形態に係るユーザがラジコンカー２００のためのコースを作成するための命令を入力する状態を示すイメージ図である。
【００５６】
図３を参照して、ＣＰＵ１１０は、タッチパネル１３０に地図画像を表示しながら、ユーザによるスライド操作を受け付ける。たとえば、ＣＰＵ１１０は、タッチパネル１３０を介して、指の地図画像に対するタッチ位置を順次取得することによって、地図画像上の指の軌跡３０１を取得する。
【００５７】
あるいは、ＣＰＵ１１０は、タッチパネル１３０に地図画像とポインタとを表示する。ＣＰＵ１１０は、ボタン１５０を介して、ユーザからポインタの移動命令を受け付ける。ＣＰＵ１１０は、ポインタの地図画像に対する位置を順次取得することによって、地図画像上のポインタの軌跡３０１を取得する。たとえば、ユーザは、所定のキーを押しながら、方向キーを操作することによってポインタを移動させる。
【００５８】
ＣＰＵ１１０は、当該指の軌跡３０１に基づいて、ラジコンカー２００のためのコース３０２を示すデータを作成する。ＣＰＵ１１０は、軌跡３０１の両側にコースの端部を示すためのコースパイロンやトラックラインなどを作成する。
【００５９】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、予め準備された複数のコースから、ユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、コースの位置と向きとが指定されてもよい。
【００６０】
本実施の形態においては、ＣＰＵ１１０は、コースデータを他のコントローラ１００へと送信したり、他のコントローラ１００からコースデータを受信したりする。ＣＰＵ１１０は、他のコントローラ１００から受信したコースデータをメモリ１２０に格納する。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから当該コースデータの選択を受け付ける。
【００６１】
たとえば、第１および第２のコントローラ１００Ｘ，１００Ｙのユーザが、第１および第２のラジコンカー２００Ｘ，２００Ｙを、同一のコース上で同時に走らせることによって、レースを行うことができる。
【００６２】
コースが決定された後、ユーザの命令に基づいて、ＣＰＵ１１０は、レースを開始する。ＣＰＵ１１０は、コースのデータとラジコンカー２００の現在位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。
【００６３】
ＣＰＵ１１０は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。ＣＰＵ１１０は、ラジコンカー２００の撮影画像にバーチャル画像を重畳させて表示する。たとえば、撮影画像には、他のコントローラ１００のラジコンカー２００が写っていることもある。
【００６４】
図４は、本実施の形態に係る通常モードとレースモードとにおけるコントローラ１００を示すイメージ図である。より詳細には、図４（ａ）は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー２００が走行しているとき、におけるコントローラ１００のタッチパネル１３０を示すイメージ図である。図４（ｂ）は、レース中におけるコントローラ１００のタッチパネル１３０を示すイメージ図である。
【００６５】
図４（ａ）を参照して、ＣＰＵ１１０は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー２００が走行しているとき、ラジコンカー２００からの撮影画像をタッチパネル１３０に表示させる。図４（ｂ）を参照して、ＣＰＵ１１０は、レースがスタートすると、あるいは、レース中においては、ラジコンカー２００からの撮影画像に、コースの中心を示す白線３０１Ｘ、コースの端を示す白線３０２Ｘ、コースパイロン３０３Ｘなどのバーチャル画像を重畳させる。
【００６６】
より詳細には、ＣＰＵ１１０は、タッチパネル１３０に、撮影画像にレースのスタートに適した２Ｄまたは３Ｄのバーチャル画像を重畳させてもよい。すなわち、メモリ１２０は、スタート用のバーチャル画像を記憶する。図５は、本実施の形態に係るレースのスタート直前におけるコントローラ１００を示すイメージ図である。
【００６７】
図５を参照して、ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在の位置と向きとに基づいて、レースが開始される際に、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、撮像画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとスタートのタイミングを示す文字と信号機の画像などを表示させる。
【００６８】
また、ＣＰＵ１１０は、タッチパネル１３０に、撮影画像にレースのゴールに適した２Ｄまたは３Ｄのバーチャル画像を表示させてもよい。すなわち、メモリ１２０は、ゴール用のバーチャル画像を記憶する。図６は、本実施の形態に係るラジコンカー２００がレースのゴール地点の直前に位置するときにおけるコントローラ１００を示すイメージ図である。
【００６９】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースを何週するかの指定を受け付ける。
【００７０】
図６を参照して、ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在位置と向きに基づいて、ラジコンカー２００がゴール地点に近づくと、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、撮像画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとゴール地点を示す画像などを表示させる。
【００７１】
＜ラジコンカー２００の構成＞
次に、ラジコンカー２００の具体的構成の一態様について説明する。図７は、本実施の形態に係るラジコンカー２００のハードウェア構成を表わすブロック図である。図７を参照して、ラジコンカー２００は、主たる構成要素として、ＣＰＵ２１０と、メモリ２２０と、移動機構２３０と、ＧＰＳ２４０と、電子コンパス２５０と、メモリインターフェイス２６０と、通信インターフェイス２７０と、時計２８０と、カメラ２９０とを含む。
【００７２】
メモリ２２０は、各種のＲＡＭや、ＲＯＭや、ハードディスクなどによって実現される。メモリ２２０は、ＣＰＵ２１０によって実行されるプログラムなどを記憶する。換言すれば、ＣＰＵ２１０は、メモリ２２０に記憶されているプログラムを実行することによって、ラジコンカー２００の各部を制御する。
【００７３】
移動機構２３０は、ＣＰＵ２１０からの指令に基づいて、ラジコンカー２００を移動させる。たとえば、移動機構２３０は、モータやシャフトやタイヤなどを含む。ただし、移動機構２３０は、プロペラ、翼、脚部などであってもよい。移動機構２３０は、コントローラ１００からの移動命令に応じて、ラジコンカー２００を移動させる。
【００７４】
ＧＰＳ２４０は、ラジコンカー２００の現在位置を取得する。現在位置は、通信インターフェイス２７０を介して、コントローラ１００へと送信される。
【００７５】
電子コンパス２５０は、ラジコンカー２００の向きを取得する。向きは、通信インターフェイス２７０を介して、コントローラ１００へと送信される。
【００７６】
メモリインターフェイス２６０は、外部の記憶媒体２６１からデータを読み出す。換言すれば、ＣＰＵ２１０は、メモリインターフェイス２６０を介して外部の記憶媒体２６１に格納されているデータを読み出して、当該データをメモリ２２０に格納する。逆に、ＣＰＵ２１０は、メモリ２２０からデータを読み出して、メモリインターフェイス２６０を介して当該データを外部の記憶媒体２６１に格納する。
【００７７】
なお、記憶媒体２６１の実現方法としては、コントローラ１００の記憶媒体１６１と同様であるため、ここでは説明を繰り返さない。
【００７８】
通信インターフェイス２７０は、アンテナやコネクタによって実現される。通信インターフェイス２７０は、無線通信によってコントローラ１００との間でデータをやり取りする。換言すれば、ＣＰＵ２１０は、通信インターフェイス２７０を介して、コントローラ１００から移動命令を受信したり、撮影画像や現在の位置や現在の向きを送信したりする。
【００７９】
時計２８０は、ＣＰＵ２１０からの指令に基づいて、時刻あるいは期間を計測する。
カメラ２９０は、ラジコンカー２００の前部に配置されている。カメラ２９０は、ラジコンカー２００の前方の景色を撮影する。カメラ２９０は、右目用画像を撮影するための右カメラと左目用画像を撮影するための左カメラとを含むことが好ましい。すなわち、カメラ２９０は、３Ｄ画像を撮影できることが好ましい。
【００８０】
ＣＰＵ２１０は、メモリ２２０あるいは記憶媒体２６１に記憶されているプログラムを実行することによって、ラジコンカー２００の各部を制御する。たとえば、ＣＰＵ２１０は、メモリ２２０あるいは記憶媒体２６１に記憶されているプログラムを実行する。
【００８１】
より詳細には、本実施の形態に係るＣＰＵ２１０は、通信インターフェイス２７０を介して、逐次、カメラ２９０が撮影した画像をコントローラ１００に送信する。ＣＰＵ２１０は、コントローラ１００からの要求に応じて、あるいは定期的に、通信インターフェイス２７０を介して、ラジコンカー２００の現在位置と向きとをコントローラ１００に送信する。ＣＰＵ２１０は、通信インターフェイス２７０を介して、コントローラ１００から移動命令を受け付ける。ＣＰＵ２１０は、移動命令に基づいて、移動機構２３０を駆動させる。
【００８２】
たとえば、ＣＰＵ２１０は、通信インターフェイス２７０を介して、移動命令として、前進命令、後進命令、方向転換命令、加減速命令などを受信する。ＣＰＵ２１０は、当該命令に基づいて移動機構２３０を駆動させることによって、ラジコンカー２００を前進させたり、後進させたり、方向転換させたり、速度を増加させたりする。
【００８３】
＜制御方法＞
以下では、主に、本実施の形態に係るコントローラ１００で実行される処理について説明する。すなわち、本実施の形態に係るコントローラ１００におけるラジコンカー２００の制御方法について説明する。図８は、実施の形態１に係るコントローラ１００における制御方法を示すシーケンス図である。
【００８４】
図８を参照して、コントローラ１００のＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースの開始命令を受け付けると、ステップＳ１０６からの処理を実行する。なお、以下では、ＣＰＵ１１０は、通信インターフェイス１７０を介して、一度は、ラジコンカー２００から現在の位置と向きとを受信しているものとする。
【００８５】
ＣＰＵ１１０は、メモリ１２０からコースデータを読み出すことによって、コースの３Ｄバーチャルデータを作成する（ステップＳ１０６）。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から撮像画像または現在位置および向きを受信したか否かを判断する（ステップＳ１０８）。ＣＰＵ１１０は、ラジコンカー２００から撮像画像または現在位置および向きを受信しなかった場合（ステップＳ１０８においてＮＯである場合）、ステップＳ１０８の処理を繰り返す。
【００８６】
ＣＰＵ１１０は、ラジコンカー２００から撮像画像および現在位置および向きを受信した場合（ステップＳ１０８においてＹＥＳである場合）、最新のラジコンカー２００の現在位置および向きに基づいて、コースを示す３Ｄバーチャルモデルに対する視点を決定する（ステップＳ１１２）。より詳細には、ＣＰＵ１１０は、コースにおける位置と向きとに基づいて、３Ｄバーチャルモデルに対する視点を決定する。
【００８７】
ＣＰＵ１１０は、決定された視点からの、３Ｄバーチャル画像を作成する（ステップＳ１１４）。ＣＰＵ１１０は、最新の撮像画像に、作成された最新の３Ｄバーチャル画像を重畳させる（ステップＳ１１６）。ＣＰＵ１１０は、タッチパネル１３０に、最新の撮像画像と最新の３Ｄバーチャル画像との合成画像を表示させる（ステップＳ１１８）。
【００８８】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースを終了するための命令を受け付けたか否かを判断する（ステップＳ１２０）。ＣＰＵ１１０は、レースを終了するための命令を受け付けなかった場合（ステップＳ１２０においてＮＯである場合）、ステップＳ１０８からの処理を繰り返す。ＣＰＵ１１０は、レースを終了するための命令を受け付けた場合（ステップＳ１２０においてＹＥＳである場合）、ラジコンカー２００のコントロール処理を終了する。
【００８９】
［実施の形態２］
次に、本発明の実施の形態２について説明する。本実施の形態に係るネットワークシステム１では、第１のコントローラ１００Ｘが、第１のラジコンカー２００Ｘのレース中に、既にコースを走行した第２のラジコンカー２００Ｙを示すバーチャル画像を表示するものである。
【００９０】
なお、以下では、実施の形態１に係るネットワークシステム１と同様の構成については、説明を繰り返さない。
【００９１】
＜ネットワークシステムの動作概要＞
まず、本実施の形態に係るネットワークシステム１の動作概要について説明する。
【００９２】
図１を参照して、ネットワークシステム１は、コントローラ１００Ｘ，１００Ｙとラジコンカー２００Ｘ，２００Ｙとを含む。ただし、本実施の形態においては、第２のラジコンカー２００Ｙの走行が終了してから、第１のラジコンカー２００Ｘが走行するものとする。以下では、説明のために、コントローラ１００Ｘ，１００Ｙを総称して、コントローラ１００という。ラジコンカー２００Ｘ，２００Ｙを総称して、ラジコンカー２００という。
【００９３】
ユーザは、ラジコンカー２００を公園や庭の地面に載置する。ユーザは、コントローラ１００を介してラジコンカー２００の動作を制御する。
【００９４】
ラジコンカー２００は、ラジコンカー２００の前方を撮影するためのカメラを搭載する。ラジコンカー２００は、撮影画像を逐次コントローラ１００に送信する。
【００９５】
ラジコンカー２００は、ラジコンカー２００の現在位置を測定するためのＧＰＳを搭載する。ラジコンカー２００は、現在の位置を逐次コントローラ１００に送信する。
【００９６】
ラジコンカー２００は、ラジコンカー２００の現在の向き（姿勢）を測定するための電子コンパスを搭載する。ラジコンカー２００は、現在の向きを逐次コントローラ１００に送信する。
【００９７】
コントローラ１００は、ラジコンカー２００からの撮影画像を表示する。ユーザは、撮影画像を見ながら、コントローラ１００にラジコンカー２００を移動させるための命令（移動命令）を入力する。コントローラ１００は、ラジコンカー２００にユーザからの移動命令を送信する。
【００９８】
本実施の形態においては、コントローラ１００は、ラジコンカー２００からの現在位置と向きの時系列データ（コース作成用時系列データ）を蓄積する。コントローラ１００は、時系列データに基づいて、ラジコンカー２００の軌跡３０１を取得する。コントローラ１００は、ラジコンカー２００の軌跡３０１に基づいて、ラジコンカー２００のためのコース３０２を示すデータを作成する。
【００９９】
コースを示すデータは、コースのトラックを示す白線やコースパイロンなどの３Ｄオブジェクトを含む。コースの位置、形状、向きは、現実の地図データに対応付けられる。あるいは、コースの位置、形状、向きは、緯度・経度に対応付けられる。
【０１００】
ただし、コントローラ１００は、タッチパネル１３０などを介して、コースの作成命令を受け付けてもよい。たとえば、コントローラ１００は地図を表示している状態で、ユーザから地図上におけるスライド操作を受け付ける。コントローラ１００は、スライド操作に基づいて、コースの位置と形状と向きとを決定する。
【０１０１】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、ラジコンカー２００が走らなくとも、予め準備された複数のコースからユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、ユーザによってコースの位置と向きとが指定されてもよい。
【０１０２】
本実施の形態においては、第１のラジコンカー２００Ｘを制御するための第１のコントローラ１００Ｘは、第２のラジコンカー２００Ｙを制御するための第２のコントローラ１００Ｙと通信することが可能である。第１のコントローラ１００Ｘは、コースの決定後に、コースデータを第２のコントローラ１００Ｙへと送信したり、第２のラジコンカー２００Ｙからコースデータを受信したりする。すなわち、第１のコントローラ１００Ｘと第２のコントローラ１００Ｙとは、共通のコースデータに基づいて、ラジコンカー２００Ｘ，２００Ｙの走行を制御することができる。
【０１０３】
たとえば、第２のコントローラ１００Ｙが先にコースを走行した場合、第２のコントローラ１００Ｙは、第２のラジコンカー２００Ｙの位置と向きの時系列データ（レース用時系列データ）を蓄積する。第１のコントローラ１００Ｘは、第１のラジコンカー２００Ｘを走行させる前に、第２のコントローラ１００Ｙによって制御されるラジコンカー２００Ｙの位置と向きの時系列データを取得する。
【０１０４】
コントローラ１００は、時系列データを取得した後、ユーザの命令に基づいて、レースを開始する。コントローラ１００は、コースのデータとラジコンカー２００の現在位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。コントローラ１００は、他のコントローラ１００からの他のラジコンカーの時系列データを参照することによって、レース開始からの時刻に基づいてコースにおける他のラジコンカーの位置と向きを取得する。
【０１０５】
コントローラ１００は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータと他のラジコンカーの位置および向きとからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。本実施の形態においては、バーチャル画像は、コースを示す画像だけでなく、他のラジコンカーを示す画像を含む。他のラジコンカーの画像としては、予め登録されているスポーツカーのアニメーションや他のラジコンカーの顔写真などが挙げられる。
【０１０６】
コントローラ１００は、ラジコンカー２００の撮影画像にバーチャル画像を重畳させて表示する。
【０１０７】
第１のラジコンカー２００Ｘがコースを走行している間、第１のコントローラ１００Ｘは、第１のラジコンカー２００Ｘの位置と向きの時系列データ（レース用時系列データ）を蓄積する。第１のコントローラ１００Ｘは、第１のラジコンカー２００Ｘの走行が終了すると、第１のラジコンカー２００Ｘの位置と向きの時系列データを、第２のコントローラ１００Ｙまたは第３のコントローラへと送信する。
【０１０８】
このように、本実施の形態に係るネットワークシステム１においては、ユーザは、仮想のコースと他のラジコンカーとを示すバーチャル画像を見ながら、自分が制御するラジコンカー２００の目線でラジコンカー２００の移動を制御することができる。その結果、ユーザは、ラジコンカー２００の移動の制御を臨場感あふれるものにすることができる。
【０１０９】
以下、このような機能を実現するためのネットワークシステム１の具体的な構成について詳述する。
【０１１０】
＜コントローラ１００の構成＞
なお、コントローラ１００のハードウェア構成については、実施の形態１のそれと同様であるため、ここでは説明を繰り返さない。以下では、メモリ１２０に記憶されるデータとコントローラ１００のＣＰＵ１１０の動作について説明する。
【０１１１】
ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、コントローラ１００の各部を制御する。たとえば、ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、ラジコンカー２００のコントロール処理を実行する。
【０１１２】
具体的には、ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から撮影画像を受信する。ＣＰＵ１１０は、撮影画像をタッチパネル１３０に表示させる。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからラジコンカー２００を移動させるための命令（移動命令）を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００に移動命令を送信する。
【０１１３】
ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から現在の位置と向きとを受信する。ＣＰＵ１１０は、ラジコンカー２００の現在位置と向きの時系列データ（コース作成用時系列データ）をメモリ１２０に格納する。
【０１１４】
ＣＰＵ１１０は、コース作成用時系列データに基づいて、ラジコンカー２００の軌跡３０１を取得する。ＣＰＵ１１０は、ラジコンカー２００の軌跡３０１に基づいて、ラジコンカー２００のためのコース３０２を示すデータを作成する。
【０１１５】
コースを示すデータ（コースデータとも言う。）は、コースのトラックを示す白線やコースパイロンなどの３Ｄオブジェクト（モデルデータ）を含む。ＣＰＵ１１０は、コースの位置、形状、向きを、現実の地図データに対応付ける。あるいは、ＣＰＵ１１０は、コースの位置、形状、向きを、緯度・経度に対応付ける。
【０１１６】
あるいは、ＣＰＵ１１０は、ラジコンカー２００を走行させることなく、コースデータを作成してもよい。より詳細には、本実施の形態に係るＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから地図の取得命令を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、外部のサーバなどから地図データをダウンロードする。ＣＰＵ１１０は、メモリ１２０や記憶媒体１６１から地図データを読み出してもよい。
【０１１７】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから、ラジコンカー２００のためのコースを作成するための命令を受け付ける。図３を参照して、ＣＰＵ１１０は、タッチパネル１３０に地図画像を表示しながら、ユーザによるスライド操作を受け付ける。たとえば、ＣＰＵ１１０は、タッチパネル１３０を介して、指の地図画像に対するタッチ位置を順次取得することによって、地図画像上の指の軌跡３０１を取得する。
【０１１８】
あるいは、ＣＰＵ１１０は、タッチパネル１３０に地図画像とポインタとを表示する。ＣＰＵ１１０は、ボタン１５０を介して、ユーザからポインタの移動命令を受け付ける。ＣＰＵ１１０は、ポインタの地図画像に対する位置を順次取得することによって、地図画像上のポインタの軌跡３０１を取得する。たとえば、ユーザは、所定のキーを押しながら、方向キーを操作することによってポインタを移動させる。
【０１１９】
ＣＰＵ１１０は、当該指の軌跡３０１に基づいて、ラジコンカー２００のためのコース３０２を示すデータを作成する。ＣＰＵ１１０は、軌跡３０１の両側にコースの端部を示すためのコースパイロンやトラックラインなどを作成する。
【０１２０】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、予め準備された複数のコースから、ユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、コースの位置と向きとが指定されてもよい。
【０１２１】
本実施の形態においては、ＣＰＵ１１０は、コースデータを他のコントローラ１００へと送信したり、他のコントローラ１００からコースデータを受信したりする。ＣＰＵ１１０は、他のコントローラ１００から受信したコースデータをメモリ１２０に格納する。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから当該コースデータの選択を受け付ける。
【０１２２】
コースが決定され、他のコントローラ１００のユーザが他のラジコンカーをコース上で走らせた後、ＣＰＵ１１０は、通信インターフェイス１７０を介して、他のコントローラ１００から、他のラジコンカーの位置と向きの時系列データ（レース用時系列データ）を受信する。ＣＰＵ１１０は、他のラジコンカーの位置と向きの時系列データをメモリ１２０に格納する。
【０１２３】
図９は、実施の形態２に係るメモリ１２０に記憶される他のラジコンカーの位置と向きのレース用時系列データのデータベース１２３を示すイメージ図である。図９を参照して、ＣＰＵ１１０は、他のコントローラ１００から送信されてくる他のラジコンカーの位置および向きと当該位置および向きが計測されたレース開始からの時間とを対応付けて、レース用時系列データとしてデータベース１２３に格納する。本実施の形態においては、コントローラ１００は、自分のラジコンカー２００の位置のレース用時系列データと、他の２つのラジコンカーの位置と向きのレース用時系列データとをデータベース１２３に格納する。
【０１２４】
より詳細には、経過時間（HH:MM:SS）に関しては、飛行機のように高速で移動するラジコン機器の場合は、ＣＰＵ１１０が１／１００秒まで時刻を計測・記録し、当該時刻をHH:MM:SS:NNの形式でデータベース１２３に記憶する。位置座標に関しては、ＧＰＳの分野で標準的に利用されているデータ形式を使用することが望ましい。なお、Ｎ：北緯、Ｓ：南緯、Ｅ：東経、Ｗ：西経である。向き（姿勢）に関しては、ＧＰＳ、電子コンパスなどで標準的に利用されているデータ形式を使用することが望ましい。なお、０：北、９０：東、１８０：南、２７０：西である。
【０１２５】
ユーザの命令に基づいて、ＣＰＵ１１０は、レースを開始する。ＣＰＵ１１０は、コースのデータとラジコンカー２００の現在位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。ＣＰＵ１１０は、データベース１２３の他のラジコンカーの時系列データを参照することによって、レース開始からの時刻に基づいてコースにおける他のラジコンカーの位置と向きを取得する。
【０１２６】
ＣＰＵ１１０は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータと他のラジコンカーの位置および向きとからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。ＣＰＵ１１０は、ラジコンカー２００の撮影画像にバーチャル画像を重畳させて、タッチパネル１３０に表示する。
【０１２７】
たとえば、他のラジコンカーが先行する場合には、ＣＰＵ１１０は、バーチャル画像に、他のラジコンカーの画像を含ませる。他のラジコンカーの画像としては、予め登録されているスポーツカーのアニメーションや他のラジコンカーの顔写真などが挙げられる。
【０１２８】
ＣＰＵ１１０は、ラジコンカー２００がコースを走行している間、ラジコンカー２００の位置と向きのレース用時系列データをメモリ１２０のデータベース１２３に蓄積する。ＣＰＵ１１０は、ラジコンカー２００の走行が終了すると、通信インターフェイス１７０を介して、（自分の）ラジコンカー２００の位置と向きのレース用時系列データを、他のコントローラ１００へと送信する。
【０１２９】
すなわち、本実施の形態においても、図４（ａ）を参照して、ＣＰＵ１１０は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー２００が走行しているとき、ラジコンカー２００からの撮影画像をタッチパネル１３０に表示させる。図４（ｂ）を参照して、ＣＰＵ１１０は、レースがスタートすると、あるいは、レース中においては、ラジコンカー２００からの撮影画像に、コースの中心を示す白線３０１Ｘ、コースの端を示す白線３０２Ｘ、コースパイロン３０３Ｘなどのバーチャル画像を重畳させる。
【０１３０】
また、ＣＰＵ１１０は、タッチパネル１３０に、撮影画像にレースのスタートに適した２Ｄまたは３Ｄのバーチャル画像を重畳させてもよい。すなわち、メモリ１２０は、スタート用のバーチャル画像を記憶する。
【０１３１】
図５を参照して、ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在位置と向きに基づいて、レースが開始される際に、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、撮像画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとスタートのタイミングを示す文字と信号機の画像などを表示させる。
【０１３２】
また、ＣＰＵ１１０は、タッチパネル１３０に、撮影画像にレースのゴールに適した２Ｄまたは３Ｄのバーチャル画像を表示させてもよい。すなわち、メモリ１２０は、ゴール用のバーチャル画像を記憶する。
【０１３３】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースを何週するかの指定を受け付ける。
【０１３４】
図６を参照して、ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在位置と向きに基づいて、ラジコンカー２００がゴール地点に近づくと、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、撮像画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとゴール地点を示す画像などを表示させる。
【０１３５】
＜ラジコンカー２００の構成＞
なお、ラジコンカー２００のハードウェア構成については、実施の形態１のそれと同様であるため、ここでは説明を繰り返さない。
【０１３６】
＜制御方法＞
以下では、主に、本実施の形態に係るコントローラ１００で実行される処理について説明する。すなわち、本実施の形態に係るコントローラ１００におけるラジコンカー２００の制御方法について説明する。図１０は、実施の形態２に係るコントローラ１００における制御方法を示すシーケンス図である。
【０１３７】
図１０を参照して、コントローラ１００のＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースの開始命令を受け付けると、ステップＳ２０２からの処理を実行する。なお、以下では、ＣＰＵ１１０は、通信インターフェイス１７０を介して、一度は、ラジコンカー２００から現在の位置と向きとを受信しているものとする。また、ＣＰＵ１１０は、通信インターフェイス１７０を介して、他のコントローラ１００に制御される他のラジコンカーの位置および向きのレース用時系列データをデータベース１２３に格納しているものとする。
【０１３８】
ＣＰＵ１１０は、時計１８０を利用して、レース開始からの時間を計測し始める（ステップＳ２０２）。ＣＰＵ１１０は、時計１８０を参照して、レース開始からの経過時間を取得する（ステップＳ２０４）。ＣＰＵ１１０は、メモリ１２０からコースデータを読み出すことによって、コースの３Ｄバーチャルデータを作成する（ステップＳ２０６）。
【０１３９】
より詳細には、本実施の形態においては、ＣＰＵ１１０は、データベース１２３の他のラジコンカーの時系列データを参照することによって、レース開始からの時刻に基づいてコースにおける他のラジコンカーの位置および向きを取得する。ＣＰＵ１１０は、コースのデータと他のラジコンカーの位置および向きとから、コースと他のラジコンカーとを含む３Ｄバーチャルデータを作成する。
【０１４０】
ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から撮像画像または現在位置および向きを受信したか否かを判断する（ステップＳ２０８）。ＣＰＵ１１０は、ラジコンカー２００から撮像画像または現在位置および向きを受信しなかった場合（ステップＳ２０８においてＮＯである場合）、ステップＳ２０４からの処理を繰り返す。
【０１４１】
ＣＰＵ１１０は、ラジコンカー２００から撮像画像および現在位置および向きを受信した場合（ステップＳ２０８においてＹＥＳである場合）、現在位置と向きをレース開始からの時間に対応付けて、データベース１２３に格納する（ステップＳ２１０）。ＣＰＵ１１０は、最新のラジコンカー２００の現在位置および向きに基づいて、コースと他のラジコンカーとを示す３Ｄバーチャルモデルに対する視点を決定する（ステップＳ２１２）。すなわち、ＣＰＵ１１０は、コースと他のラジコンカーに対する自分のラジコンカー２００の位置と向きとに基づいて、３Ｄバーチャルモデルに対する視点を決定する。
【０１４２】
ＣＰＵ１１０は、決定された視点からの３Ｄバーチャル画像を作成する（ステップＳ２１４）。ＣＰＵ１１０は、最新の撮像画像に、作成された最新の３Ｄバーチャル画像を重畳させる（ステップＳ２１６）。ＣＰＵ１１０は、タッチパネル１３０に、最新の撮像画像と最新の３Ｄバーチャル画像との合成画像を表示させる（ステップＳ２１８）。
【０１４３】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースを終了するための命令を受け付けたか否かを判断する（ステップＳ２２０）。ＣＰＵ１１０は、レースを終了するための命令を受け付けなかった場合（ステップＳ２２０においてＮＯである場合）、ステップＳ２０４からの処理を繰り返す。ＣＰＵ１１０は、レースを終了するための命令を受け付けた場合（ステップＳ２２０においてＹＥＳである場合）、時間の計測を終了する（ステップＳ２２２）。ＣＰＵ１１０は、ラジコンカー２００のコントロール処理を終了する。
【０１４４】
＜その他の応用例＞
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した外部の記憶媒体１６１，２６１やメモリ１２０，２２０を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が外部の記憶媒体１６１，２６１やメモリ１２０，２２０に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０１４５】
この場合、外部の記憶媒体１６１，２６１やメモリ１２０，２２０から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した外部の記憶媒体１６１，２６１やメモリ１２０，２２０は本発明を構成することになる。
【０１４６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１４７】
さらに、外部の記憶媒体１６１，２６１やメモリ１２０，２２０から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４９】
１  ネットワークシステム、１００  コントローラ、１１０  ＣＰＵ、１２０  メモリ、１３０  タッチパネル、１３１  ディスプレイ、１３２  タブレット、１４０  スピーカ、１５０  ボタン、１６０  メモリインターフェイス、１６１  記憶媒体、１７０  通信インターフェイス、１８０  時計、２００  ラジコンカー、２１０  ＣＰＵ、２２０  メモリ、２３０  移動機構、２４０  ＧＰＳ、２５０  電子コンパス、２６０  メモリインターフェイス、２６１  記憶媒体、２７０  通信インターフェイス、２８０  時計、２９０  カメラ、３０１  軌跡、３０２  コース、３０１Ｘ  コースの中心を示す白線、３０２Ｘ  コースの端を示す白線、３０３Ｘ  コースパイロン。
【図１】
2012143447.tif 000003
【図２】
2012143447.tif 000004
【図３】
2012143447.tif 000005
【図４】
2012143447.tif 000006
【図５】
2012143447.tif 000007
【図６】
2012143447.tif 000008
【図７】
2012143447.tif 000009
【図８】
2012143447.tif 000010
【図９】
2012143447.tif 000011
【図１０】
2012143447.tif 000012