ROS2で動作する2D-URG用ノード urg_node2について説明します。
インタフェースや一部の処理は、ROS1でよく利用されているurg_nodeパッケージを参考にしています。
LiDARとの通信にはurg_library ver.1.2.5のC言語APIを使用します。
ROS2の機能であるライフサイクル制御に対応しています。
ライフサイクルの各状態での動作は以下のようになります。
- Unconfigured
起動状態
- Inactive
LiDAR接続状態(スキャンデータと診断情報は配信されません)
- Active
LiDARデータ配信状態(スキャンデータと診断情報が配信されます)
- Finalized
終了状態
$ cd <ROS2_workspace>/src
$ git clone --recursive https://github.com/UrgNetworks/urg_node2.git
$ rosdep update
$ rosdep install -i --from-paths urg_node2
$ cd <ROS2_workspace>
$ colcon build --symlink-install
launch/urg_node2.launch.py
のパラメータファイルの指定部分をparams_serial.yamlに変更してください。$ ros2 launch urg_node2 urg_node2.launch.py
自動でActive状態へ遷移させたくない場合は以下のコマンドを実行してください。(起動後、Unconfigured状態になります)
$ ros2 launch urg_node2 urg_node2.launch.py auto_start:=false