##############################################
# URG用LRFキャプチャコンポーネントの使い方   #
#                                            #
# Tsuyoshi Suenaga, NAIST                    #
# tsuyo-s@is.naist.jp                        #
#                                            #
# 2010/07/13                                 #
##############################################

1.概要
　本プログラムは北陽電機製URGシリーズ用の距離データ取得コンポーネントです．

2.依存ライブラリ
　- HOKUYO製 URGサンプルライブラリ 0.8.12 （URG製品資料を参照）
　-- libディレクトリ以下に添付
　-- C++ Library required boost(>=1.35) and SDL(>=1.2.10) library.


3.コンパイル
　(1)依存ライブラリのインストール
　　$ sudo aptitude update
　　$ sudo aptitude install libsdl1.2-dev libsdl-net1.2-dev
　　$ unzip urg-0.8.12.zip
　　$ cd urg-0.8.12
　　$ ./configure
　　$ make
　　$ sudo make install
　(2)PATHの設定
　　Makefile内のURG_FLGS, URG_LIBSをURGライブラリの
　　インストールPATHに合わせて修正してください．
　(3)コンパイル
　　cd src/
　　make -f Makefile.LRFCapture_URG

4.実行
　(1)LD_LIBRARY_PATHの追加
　　LD_LIBRARY_PATHにURGライブラリのPATHを追加．
　　例）sh,bash系の場合
　　　　　export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/urg/
　　　　csh系の場合
　　　　　setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib/urg/
　(2)実行
　　./LRFCapture_URGComp

5.設定
　コンフィギュレーションセットを設定する
　- device_port
　　URGと通信するシリアルポートデバイス．デフォルトは auto．
　　autoにすると自動で接続ポートを検索する．
　　直接指定する場合は，/dev/ttyACM0などを入力する．
　- start_deg
　　計測範囲の始点位置． デフォルトは-90． [deg]
　　3時方向を0[deg]する反時計回り．
　　設定できない値が指定された場合，計測可能範囲に自動で調節する．
　　実際に設定された値はサービスポートの関数 getOffsetFOV() より取得できる．
　- end_deg
　　計測範囲の終点位置．デフォルトは270． [deg]
　　3時方向を0[deg]する反時計回り．
　　設定できない値が指定された場合，計測可能範囲に自動で調節する．
　　実際に設定された値はサービスポートの関数より計算できる．（offset + total_points * resolution）

6.入出力仕様
　6.1 出力ポート
　　- RangeData (TimedOctetSeq): 距離データ列 [mm]

　6.2 サービスポート(Provider)
　　- サービス名:LRF, インタフェース名:LRFInfo (LRFInfo.idl)
　　-- getTotalScanPoints(): 計測される総点数 [pionts]
　　-- getResolution()     : 計測解像度 [rad/scan]
　　-- getOffsetFOV()      : 計測範囲のオフセット [rad] 3時方向を0radとする反時計回り．

7.開発環境
　- 保守環境
　-- ubuntu 10.04
　-- OpenRTM 1.0
　-- omniORB 4.1.2-1
　-- G++コンパイラ 4.4.3
　-- GTK+ toolkit 2.20.0
　-- HOKUYO URGライブラリ 0.8.12
　- 初期開発（雛形生成時）
　-- ubuntu 8.04
　-- OpenRTM 0.4.2-1
　-- ACE 5.4.7-13
　-- omniORB 4.1.1-2
　-- PatternWeaver 2.3
　-- G++コンパイラ 4.2.4

8.ディレクトリ構成
　pw_model：Pattern Weaverで作成したモデルデータ群
　src：Pattern Weaverで生成したひな形に実処理を実装したソースコード
　lib：依存ライブラリ群

9.ChangeLog
　- 2010.7.13
　　HOKUYO製 URGサンプルライブラリ 0.8.12 を添付．
　　バージョン1.1.0-4 リリース

　- 2010.5.20
　　OpenRTM-aist-1.0対応
　　バージョン1.1.0 リリース

　- 2010.5.13
　　URGサンプルライブラリを0.7.7から0.8.12に変更．

　- 2009.11.08
　　コンフィギュレーションセットの設定ファイルを追加．
　　バージョン1.0.3 リリース

　- 2009.11.04
　　複数出力を行うため出力ポートをNullBufferに変更．
　　バージョン1.0.2 リリース

　- 2009.09.28
　　コンフィギュレーションセットから計測範囲を設定できるよう変更．
　　細かなバグフィックス．
　　安定版（バージョン1.0.0）完成

　- 2009.07.02
　　暫定版（バージョン0.2.0）完成

10.利用手順例
　接続例をexample1.pngに示す．
　（1）事前にデータポートとサービスポートを接続しておく．
　（2）コンフィギュレーションにより，デバイスポート，計測範囲を設定する．
　（3）URG用LRFキャプチャコンポーネントをActivateし，LRF情報を取得する．
　（4）LRF情報を利用するRTCをActivateして，距離データを送信する．
　
