kyo0221 / git_memo

3 stars 0 forks source link

ros2でマップを作成する #6

Closed kyo0221 closed 1 month ago

kyo0221 commented 1 month ago

https://docs.nav2.org/tutorials/docs/navigation2_with_slam.html 上記がslamのチュートリアル

sudo apt install ros-${ROS_DISTRO}-slam-toolbox

humbleブランチをインストール

ros2 launch slam_toolbox online_async_launch.py mapを作成し始める(オンライン) ros2 run nav2_map_server map_saver_cli -f ~/map 作成したmapを保存(前述のtoolboxのlaunchは起動したまま)

mapの状態はrviz2で/mapを見ることで確認できる

orne_boxの場合以下のlaunchを起動

ros2 launch orne_box_bringup orne_box_drive.launch.py ros2 launch orne_box_bringup description.launch.py ros2 launch orne_box_bringup urg_node2.launch.py

kyo0221 commented 1 month ago

地図が作成できた. 同時にyamlファイルも出現した

kyo0221 commented 1 month ago

B3向け

2Dマップを作成する方法(slam-toolboxの場合)

上記の3つのlaunchを起動してください

rosbagを取得すればオフラインで地図を作成することができます. SLAMのパラメータを調整しながらマップを作成することができるので, 急ぎでないならオフラインで作成することをおすすめします.

リアルタイムでマップを作成する場合(オンラインの場合のみ起動)

ros2 launch slam_toolbox online_async_launch.py 

launchを起動し終わったら, teleopでマップを作成したい範囲を歩かせてください.

マップ作成後

ros2 run nav2_map_server map_saver_cli -f ~/map 

で保存

オフラインで地図を作成する場合

rosbagを使用して地図を作成する場合(オフライン)

ros2 launch slam_toolbox offline_launch.py 

を起動した状態でrosbagを再生してください

再生が終わったら

ros2 run nav2_map_server map_saver_cli -f ~/map 

で保存

kyo0221 commented 1 month ago

ros2であればrosbagは

ros2 bag record -a

で取得できます. -aとはすべてのトピックを取得するというオプションです. よくわからなかったら調べてください.

ros2 bag record -a -o filename

-o filenameと付け足すことで指定したfilenameで保存することができます.

再生は

ros2 bag play filename.db3

で行えます. 最後まで再生されたら自動的に終了するので, そうなったらマップの保存をしましょう.