机器人定位(amcl)与导航
说明
- 在gmapping成功构建地图的基础上进行定位与导航的仿真
- amcl是移动机器人二维环境下的概率定位系统,根据订阅到的地图数据配合激光扫描特征,使用粒子滤波获取最佳定位点
- move_base包可以用来达到一个给定的导航目标点。当选择机器人行走的路径时,move_base包合并base_local_planner基本局部规划器、全局代价地图和局部代价地图的里程数据。
步骤
完整建图
- 参考激光雷达(iplidar)gmapping构建地图
配置
- 增加rplidar_amcl_demo.launch文件
roscd turtlebot_navigation
touch launch/rplidar_amcl_demo.launch
- 具体代码为:
<launch>
<!--启动irobot机器人-->
<include file="$(find turtlebot_bringup)/launch/minimal.launch"/>
<!-- 启动rplidar雷达驱动 -->
<arg name="laser_type" default="rplidar" />
<include file="$(find turtlebot_navigation)/laser/driver/rplidar_laser.launch" />
<!-- Run the map server -->
<node name="map_server" pkg="map_server" type="map_server" args="$(find turtlebot_navigation)/maps/test_map.yaml" />
<!-- AMCL -->
<include file="$(find turtlebot_navigation)/launch/includes/amcl/$(arg laser_type)_amcl.launch.xml"/>
<!-- Move base -->
<arg name="custom_param_file" default="$(find turtlebot_navigation)/param/$(arg laser_type)_costmap_params.yaml"/>
<include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml">
<arg name="custom_param_file" value="$(arg custom_param_file)"/>
</include>
<!-- View in rviz -->
<include file="$(find turtlebot_rviz_launchers)/launch/view_navigation.launch"/>
</launch>
测试
- 新终端,启动roscore
roscore
- 启动rplidar_amcl_demo.launch
roslaunch turtlebot_navigation rplidar_amcl_demo.launch
运行结果
载入地图
指定目标点,进行路径规划