在ROS中开始自主机器人仿真 – 4 让自己的机器人自主导航

311
0
2021年2月16日 09时13分

在建立好自己的机器人模型后, 我们可以利用turtlebot的ROS库,实现自己机器人的自主导航.

 

Part 4 让自己的机器人自主导航

 


我们依然采用gmapping进行地图构建,gmapping是一个ros自带的地图构建工具包,采用激光和里程计的数据生成二维地图.

 


而利用amcl进行已知机器人的定位,amcl全称adaptive Monte Carlo localization,是一个机器人二维环境的概率定位系统, 在已知地图的环境中, 利用粒子滤波跟踪机器人的位姿. ROS中的amcl节点订阅激光数据sensor_msgs/LaserScan和地图数据nav_msgs/OccupancyGrid, 得到机器人的估计位姿.

 


以下工程的源码下载地址请见:
在ROS中开始自主机器人仿真 – 5 让自己的机器人自主导航
代码演示过程如下:

 

1 创建地图

 

加载Gazebo仿真环境

 

roslaunch neurobot_gazebo neurobot_world.launch

 

开始构建地图

 

 roslaunch neurobot_navigation gmapping_demo.launch 

 

rviz可视化

 

roslaunch neurobot_description neurobot_rviz_gmapping.launch 

 

键盘遥控

 

roslaunch neurobot_navigation neurobot_teleop.launch 

 

2 保存地图

 


保存地图到本地文件夹

 

rosrun map_server map_saver -f ~/catkin_ws/src/neurobot_navigation/maps/test_map

 

3 加载地图

 


关闭之前的节点, 重新打开gezebo仿真环境, 加载地图, 进行导航.

 

加载Gazebo仿真环境

 

roslaunch neurobot_gazebo neurobot_world.launch

 

加载地图

 

roslaunch neurobot_navigation amcl_demo.launch

 

rviz可视化

 

roslaunch neurobot_description neurobot_rviz_amcl.launch 

 

在rviz中可以通过界面设置导航的目标.

 

发表评论

后才能评论