０．はじめに
	本ドキュメントは、天井ナビゲーションソースコード群に関する説明を記述しています。
	ソースコードも含めて、文字コードはShift-JISになっています。

１．動作環境に関して
	動作OS：Windows XP / Ubuntu10.04
		少々手を加えまして、Windows / Linux 両方でコンパイル出来るようにしてあります(ソースコード互換)。
		また、こちらで使用している開発環境はVC2008(Linuxでは g++ gcc 共に 4.2.4)となっています、VCを使用する場合はVC2008を推奨します。
	RTM：Windows  0.4.2 /  Linux 1.0 
	OmniORB：Windows版は4.1.2、Linuxは4.1.4
	
	注意事項：「RTCCameraEye」と「Undistortion」に関しましては、VC用のプロジェクトは存在してませんし、動作確認もしてません。

２．フォルダー(ディレクトリ)構造
	CeilingNavigation		-> 天井ナビゲーションRTC構成ソースファイルが格納されています。
		+ CeilingMap		-> トラッキング用アプリケーション (頂いたファイルに手を加えてWindowsで動作可能にしました)
		+ CeilingNavigationComp	-> VCが勝手に作ったフォルダ
		+ Common		-> 「CeilingMap」「show_map」「CeilingNavigation」が共通で使用しているファイルが格納されています。
		+ offline_image		-> 頂いたオフライン画像ファイル群が格納されています
		+ show_map		-> トラッキング結果表示アプリケーション (頂いたファイルに手を加えてWindowsで動作可能にしました)
		+ Undistortion		-> キャリブレーションパラメタ導出ツール
	RTCCameraEye			-> IEEE1394カメラ画像取得RTC構成ソースファイルが格納されています

３．各アプリケーションについて
  3.1. CeilingNavigationComp (Linuxの場合はCeilingNavigationLinux)
	天井ナビゲーションを行うRTコンポーネントです。
	本コンポーネントには、後述するCameraEyeCompコンポーネントが必要になります。
	コンポーネントには、コンポーネント起動後に変更可能なパラメタ(コンフィグレーション)が設定されています。
	コンフィグレーション詳細：
		NavigationMap		-> 天井画像ファイル名
		OfflineImage		-> オフラインイメージファイル群格納フォルダ
		X_POS			-> 初期座標
		Y_POS			-> 初期座標
		THETA			-> 初期向き
		BlockResolution		-> 元々は5度固定で定義されていましたが、RTC化する際に可変としてみました。
		BlockSize		-> 元々は64×64固定で定義されていましたが、RTC化する際に可変としてみました。
		BlockCoefficient	-> 元々は0.3固定で定義されていましたが、RTC化する際に可変としてみました。
		SearchScope		-> 未使用
		BlackWhiteValue		-> 2値化閾値 (元々は240)
		Center_X		-> 画像中心座標
		Center_Y		-> 画像中心座標
	使用方法：
		唯一存在している入力ポートに、CameraEyeの唯一の出力を接続して、CameraEyeをアクティブ化後に本コンポーネントをアクティブ化します。
		※コンフィグレーションはアクティブ化する前に設定してください。
  3.2. map
  3.3. show_map
	以下のファイルを用いてシミュレーションを行います。
	------
	マッチング用天井地図：ceiling-map-2009-01-19_b.pgm
	表示用天井地図：ceiling-map-2009-01-19_c.pgm
	天井画像列用のディレクトリ：capture_data(要：歪み補正)
	結果セーブ用のディレクトリ：map_tracking

	実行方法

	#make
	２つの実行ファイルが生成される

	*pgm.hでエラーがある場合は、libnetpbm10-devをインストールしてください


	実行プログラム
	結果表示用プログラム：showmap
	トラッキング用プログラム：map

	#./showmap/show_map
	#./map

	このプログラムはオフラインで天井画像を用いた自己位置推定をシミュレーショ
	ンするためのソフトウェアです。歪み補正を画像を読み込み自己位置自己位置
	推定を行います。

	プログラムはshow_mapから起動し、続いてmapを実行します。mapで自己位置を
	計算した結果等を共有メモリでshow_mapが受け、結果を表示している。mapは引
	数で自己位置を設定することも可能です。マウスの右クリックで初期位置姿勢
	の設定を行います。プレスで初期値の指定を行い、リリースポイントで向きを
	指定します。実行すると添付したビデオ(video.ogg)のように動作します。


  3.4. calib
	歪み補正用プログラム

	実行方法(例)
	#make
	#sudo ./calib -w 11 -h 8  -s 3 -n 10 -o camera.yml -op -oe

	1.キャリブレーションパターンを見せてパターンを発見したら数秒間停止
	2.その間に次の姿勢にパターンを変更
	3.パターンを画像中できる限り広範囲で表示させ、画像を取得させる
	4.10回パターンを見せると自動的に歪み補正した画像が表示される

  3.5. CameraEyeComp
	IEEE1394カメラから画像を取得するためのコンポーネントです。
	オプト（株）超広角小型魚眼カメラ NM33シリーズ NM33-N-UVCとのUSB接続でも実績があります（Linuxのみ）。
	http://www.optnagano.co.jp/products/nm33.html

	また、使用する際にはroot権限(あるいはそれに匹敵する権限)が必要になるかもしれません。
	※こちらでは、rootもしくはsudoでのみ使用可能でした。

４．その他
	天井ナビゲーションRTコンポーネントのメイクファイル(Makefile.CeilingNavigation)またはVCのプロジェクト設定にて、コンパイル時のオプションとして「-D_OFFLINE_IMAGE」を設定することにより、オフラインイメージを使用しての動作になります。
