スキャンマッチングSLAMのLaunchファイルの実装例をまとめました。
スキャンマッチングSLAM実装のシリーズ
【ROS】スキャンマッチングSLAMの実装(Launchファイル実装編)
スキャンマッチングの実装例を紹介するシリーズのうち、この記事は第四弾の「Launchファイル実装編」です。第二、三弾でご紹介したプログラムをまとめて動かすためのLaunchファイルの実装例をご紹介します。
目次
ファイル名の確認
scan_matching/
┣ launch/
┃ ┗ ndt_scan_matching.launch
┣ src/
┃ ┣ scan_matching_ekf.cpp
┃ ┗ scan_matching_ndt.cpp
┣ CMakeLists.txt
┗ package.xml
ndt_scan_matching.launch
この記事で紹介するLaunchファイルです。実装の詳細は「ソースコード」にあります。
scan_matching_ekf.cpp
第二弾の記事で紹介したEKFのプログラムです。
▶【ROS】スキャンマッチングSLAMの実装(EKF実装編)
scan_matching_ndt.cpp
第三弾の記事で紹介したNDTのプログラムです。
▶【ROS】スキャンマッチングSLAMの実装(NDT実装編)
ソースコード(rosbagデータで検証する場合)
<launch> <!-- global rosparam --> <param name="use_sim_time" value="true"/> <!-- rosbag --> <node pkg="rosbag" type="play" name="player" args="--clock example.bag"/> <!-- rviz --> <node pkg="rviz" type="rviz" name="rviz"/> <!-- main --> <node pkg="scan_matching" name="scan_matching_ekf" type="scan_matching_ekf"> <param name="sigma_imu" type="double" value="1e-5"/> <param name="sigma_odom" type="double" value="1e-5"/> <param name="sigma_ndt" type="double" value="1e+1"/> </node> <node pkg="scan_matching" name="scan_matching_ndt" type="scan_matching_ndt"> <param name="pc_range" type="double" value="20.0"/> <param name="leafsize_source" type="double" value="0.15"/> <param name="leafsize_target" type="double" value="0.2"/> <param name="trans_epsilon" type="double" value="1e-3"/> <param name="stepsize" type="double" value="0.1"/> <param name="resolution" type="double" value="0.5"/> <param name="max_iterations" type="int" value="30"/> </node> </launch>
実装の解説
- 上記はrosbagデータを使う場合の実装例です
- EKFやNDTのパラメータをLaunchファイル内で与えられるようになっています
さいごに
スキャンマッチングSLAMのLaunchファイル実装編を紹介してみました。参考になれば幸いです。
以上です。
スキャンマッチングSLAM実装のシリーズ
Ad.
コメント