Turtlebot2 + RplidarA2(四)AMCL导航及避障

Turtlebot2 + RplidarA2(四)AMCL导航及避障

  • AMCL导航及避障
  • 参考文献

注:前文链接:Turtlebot2 + RplidarA2(一)Gmapping手动建图;Turtlebot2 + RplidarA2(二)Cartographer手动建图;
Turtlebot2 + RplidarA2(三)Gmapping + explore自主探索建图;
本篇实验内容基于(一)中所配置的环境,在工作空间catkin_ws中进行。

AMCL导航及避障

在(一)中,我们安装的功能包集turbot其中的功能包turbot_slam其实已经包含了amcl导航的部分,因此如果已经完成(一)中的操作,即可直接依次打开终端执行如下命令:

1.启动机器人底盘:

$ roslaunch turbot_bringup minimal.launch

2.启动AMCL、启动雷达,并指定地图:

$ roslaunch turbot_slam laser_amcl_demo.launch map_file:=${HOME}/map/rplidar_a2_gmapping.yaml(此前保存的地图文件名称)

3.启动rviz,可视化实时建图情况:

$ roslaunch turbot_rviz nav.launch

打开rviz后,按下窗口上方的“2D Pose Estimate”按钮即可用光标标注机器人在地图上的位置和角度;按下窗口上方的“2D Nav Goal”按钮即可用光标点击某位置作为导航目标位置、拖动箭头作为目标角度。此后,机器人会根据全局地图和实时局部地图规划出一条可行路线,并在行进的过程中及时避障。

4.通过脚本文件驱动机器人到达指定位置:

在功能包turbot_code中包含了一个Python脚本,其调用API进行编程,以导航目标点在Rviz地图中的二维坐标为输入参数,可以代替手动在Rviz界面点击的方式来设置导航目标。
打开第4个新终端,执行:

#下面命令的x y需要替换为目标点的坐标,可以将光标放到Rviz界面查看左下角得知
$ rosrun turbot_code goToSpecificPointOnMap.py x y

注:后续实验将根据机器人避障的情况,对几个配置文件中的参数进行调优,从而优化机器人避障效果。

参考文献

Turtlebot + Rplidar A2使用Gmapping建图与导航
Turbot与python编程-实现带避障的定点导航

你可能感兴趣的:(slam)