文章目录
前言
实验指导书指定参考资料
[1] costmap 参考资料
[2] move_base 参考资料
A*算法参考资料:
[3] 算法原理
[4] 代码实现
ROS 接口编写自定义全局规划算法参考资料:
[5] 中文网址
[6] 英文网址
利用 action 机制实现机器人多点巡检式导航参考资料:
[7] actionlib 官方教程
[8] .actionlib 简介
[9] 多点导航实例
2020.12.31
1. costmap
2021.1.1
参考博客:在ROS中实现A*路径规划
该博客提供的代码:Astar_Path_Planner
1. 实验报告中步骤命令(PDF复制麻烦,仅用作复制方便)
1 启动Turtlebot
roslaunch turtlebot_bringup minimal.launch
2 启动键盘控制程序
roslaunch turtlebot_teleop keyboard_teleop.launch
3 使用gmapping构建地图
roslaunch turtlebot_navigation gmapping_demo.launch
4 打开 rviz 界面
roslaunch turtlebot_rviz_launchers view_navigation.launch
5 保存地图
rosrun map_server map_saver -f /filepath
14 运行仿真程序
roslaunch turtlebot_stage turtlebot_in_stage.launch
15 启动键盘控制程序
roslaunch turtlebot_teleop keyboard_teleop.launch
2. 代码编写
2.1 AstarPlanner::initialize
if (cost == 0)
OGM[iy * width + ix] = true;
else
OGM[iy * width + ix] = false;
2.2 AstarPlanner::makePlan
Path = AstarPlanner(startCell, goalCell);
代码参考网址:https://github.com/EESC-LabRoM/tcc_scanavini_lucas/blob/master/Astar_ros.cpp
3. 膨胀层半径大小
机器人在拐角处总是撞上障碍物,可以通过对障碍物进行膨胀来解决。
参考博客:一些关于ROS中move_base的理解,心得。
该篇博客中提到“local_costmap_params.yaml”文件中可设置膨胀层半径。
在local_costmap_params.yaml文件中写下了膨胀层半径,但这好像只是设置了inflation_radius的值,代码中还是需要在编写A*算法时考虑膨胀层半径。
根据这篇博客:https://www.corvin.cn/829.html在下面两个文件中修改了膨胀半径
4.
参考博客:ros机器人路径远离障碍物的方法