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

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

2.依存ライブラリ
　特になし

3.コンパイル
　cd source/
　make -f Makefile.LRFCapture_SICK

4.実行
　./LRFCapture_SICKComp

5.設定
　コンフィギュレーションセットを設定する
　- distance_resolution_mode
　　距離分解能（cm, mm, dm）．デフォルトは cm
   cmモードでは有効計測範囲が 81.91m
   mmモードでは有効計測範囲が 8.191m
　- str_port
　　SICKと通信するシリアルポートデバイス．デフォルトは /dev/ttyUSB0

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

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

7.その他ドキュメント
　関数リファレンス: html/index.html
　その他，ソース内のコメント等を参照してください．

8.開発環境
　- 保守環境
　-- ubuntu 10.04
　-- OpenRTM 1.0
　-- omniORB 4.1.2-1
　-- G++コンパイラ 4.4.3
　-- GTK+ toolkit 2.20.0
　- 初期開発（雛形生成時）
　-- 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

9.ディレクトリ構成
　pw_model：Pattern Weaverで作成したモデルデータ群
　source：Pattern Weaverで生成したひな形に実処理を実装したソースコード

10.バグ
　SICKのモード設定指令後の待ち時間が長く，SICK起動直後
　（ハードウェアの電源投入直後）の最初の1回は失敗してしまう．
　Ctrl-c で強制終了してから10秒程度待ってから起動させると動作する．
　プログラムを終了しても，SICKの電源を落とさない限り，それ以降このエラーは発生しない．

11.ChangeLog
　- 2010.05/20
　　OpenRTM-aist-1.0対応
　　バージョン 1.0.1 リリース

　- 2009.06.02
　　バージョン1.0.0 リリース

　- 2009.1.5
　　距離分解能のモード（cm, mm, dm） をコンフィギュレーションセットから
　　設定可能に変更．

　- 2008.11.20
　　暫定版完成

12.ライセンス
　本プログラムはGNU General Public License version 2のもとで配布されます．
　ソースコードの一部はCARMEN(Carnegie Mellon Robot Navigation Toolkit)
　のものを改変して利用しております．

13.利用手順例
　接続例をexample1.pngに示す．
　（1）SICKの電源投入直後は，プログラムを実行しActivate後，一度Ctrl-cで終了させる．
　（2）事前にデータポートとサービスポートを接続しておく．
　（3）コンフィギュレーションにより，距離分解能のモード，デバイスポートを設定する．
　（4）SICK用LRFキャプチャコンポーネントをActivateし，LRF情報を取得する．
　（5）LRF情報を利用するRTCをActivateして，距離データを送信する．
