前回まではルンバでSLAMを行い環境地図を作成し、その環境地図からGazebo Worldを作成しました。
今回は作成したGazebo Worldの上でシミュレーションしてみます。
ルンバのROSパッケージは以下のものを使用しています。
作成したworldモデルでgmapping-SLAMを行う
1.map2worldで生成されたWorldモデルをgazebo環境にコピーする。
cp -p ~/catkin_ws/src/map2gazebo/worlds/map.sdf ~/catkin_ws/src/create_autonomy/ca_gazebo/worlds/map.world cp -rp ~/catkin_ws/src/map2gazebo/models/map ~/catkin_ws/src/create_gazebo_models/models/
2.launchファイルを作成する。
cd ~/catkin_ws/src/create_autonomy/ca_gazebo/launch vi create_otafab1.launch <launch> <include file="$(find ca_gazebo)/launch/create_empty_world.launch"> <arg name="env" value="map"/> <arg name="pose1_x" value="2"/> <arg name="pose1_y" value="2"/> <arg name="pose1_Y" value="0"/> <arg name="pose2_x" value="1"/> <arg name="pose2_y" value="1"/> <arg name="pose2_Y" value="0"/> </include> </launch>
3.SLAMモードでgazeboを起動する。
export LOCALIZATION=slam export RVIZ=true export NUM_ROBOTS=1 export LASER=rplidar roslaunch ca_gazebo create_otafab1.launch
これで取り込んだWorldモデルでSLAMができる状態になります。
SLAM実行中のrqt_graphです。
作成したworldモデルでNavigation(自律走行)を行う
1. Navigationを行う場合は以下のディレクトリにmap.pgm、map.yamlをコピーします。
~/catkin_ws/src/create_autonomy/navigaton/ca_move_base/maps/
2. Navigationモードでgazeboを起動します。
export LOCALIZATION=amcl export RVIZ=true export LASER=rplidar roslaunch ca_gazebo create_otafab1.launch
Navigationの様子
Navigationを行っている様子をYouTubeにアップしておきました。
Navigation実行中のrqt_graphです。
次はルンバ実機で試してみます。