sick_generic_caller
役割
sick_generic_caller は SICK picoScan などの LiDAR driver を起動します。rogi_nav 側では scan 生成を実装せず、sick_scan_xd を設定ファイルから呼び出します。
Interface
種別 |
名前 |
型 / 内容 |
|---|---|---|
publish |
|
|
publish |
|
driver 設定に依存 |
publish |
|
driver 設定に依存 |
config |
|
hostname、UDP port、frame、topic |
座標条件
各 LiDAR scan 点 \(p_i^{L}\) は、後段で TF により基準 frame へ変換されます。
ここで \(L\) は LiDAR frame、\(B\) は base_link などの統合先 frame です。publish_frame_id が TF tree に無い場合、後段の scan_merger はその scan を統合できません。
角度範囲は driver 設定の、
で制限されます。LiDAR 台数を変えた場合は、driver 側の topic と scan_merger.scan_topics を同時に揃えます。
設定ファイル
sample では example/sample/config/sensing/config.yaml の sick_picoscan を使います。
key |
例 |
用途 |
|---|---|---|
|
|
picoscan 設定全体の有効化 |
|
|
ROS node 名、default frame 名 |
|
|
LiDAR 本体 IP |
|
|
PC 側受信 IP |
|
|
scan の frame |
|
|
後段へ渡す full scan topic |
|
|
segment scan topic |
|
|
IMU topic |
|
|
true なら driver 引数に 180 deg roll を追加 |
|
|
driver 側の角度 filter |
|
|
UDP port |
sensing.launch.py は各 LiDAR 設定を sick_generic_caller の launch arguments に変換します。angle_range_deg は次の driver 引数へ展開されます。
all_segments_min_deg
all_segments_max_deg
host_set_LFPangleRangeFilter
host_LFPangleRangeFilter
profile 側では launch.components.sensing.picoscan.enabled が最終的な起動可否です。localization.method != ransac の場合、現在の sensing.launch.py は sensing 系 action を返しません。