参考:https://www.ncnynl.com/archives/201609/815.html
上篇博客 移动机器人gazebo仿真(3) 已经建立好地图,因此可以进行轨迹规划的仿真
仿真主要有三步
1、启动建立好的gazebo地图
roslaunch robot_hokuyo_kinect my_world_hk.launch
2、导入地图数据
roslaunch robot_hokuyo_kinect amcl_demo.launch
3、用rviz观察导航情况并发送目标
roslaunch turtlebot_rviz_launchers view_navigation.launch
其中第二部使用amcl_demo.launch需要进行一定的修改,因此我选择在工作空间中再新建一个文件:
(修改了map_file的地址;还需要新建文件$(arg 3d_sensor)_amcl.launch.xml,该文件名称根据环境变量决定,文件内容可以与该路径下另一个文件 amcl.launch.xml相同
)
<launch> <!-- Map server --> <arg name="map_file" default="/home/jk/ros_sim/src/map/2018.3.15/.yaml"/> <arg name="3d_sensor" default="$(env TURTLEBOT_3D_SENSOR)"/> <!-- r200, kinect, asus_xtion_pro --> <node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" /> <!-- Localization --> <arg name="initial_pose_x" default="0.0"/> <arg name="initial_pose_y" default="0.0"/> <arg name="initial_pose_a" default="0.0"/> <!--修改--> <!--arg name="custom_amcl_launch_file" default="$(find turtlebot_navigation)/launch/includes/amcl/$(arg 3d_sensor)_amcl.launch.xml"/--> <arg name="custom_amcl_launch_file" default="/home/jk/ros_sim/src/robot_hokuyo_kinect/launch/include/amcl/$(arg 3d_sensor)_amcl.launch.xml"/> <include file="$(arg custom_amcl_launch_file)"> <arg name="initial_pose_x" value="$(arg initial_pose_x)"/> <arg name="initial_pose_y" value="$(arg initial_pose_y)"/> <arg name="initial_pose_a" value="$(arg initial_pose_a)"/> </include> <!-- Move base --> <include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/> </launch>
下面是仿真时的截图: