# global_planner-kaiyuan **Repository Path**: yongwangzhiqiankai/global_planner-kaiyuan ## Basic Information - **Project Name**: global_planner-kaiyuan - **Description**: 项目: 起始点与终点之间没有障碍物就通过直线插值的方式规划路径,如果中间有障碍物就通过A*规划路径。 作者: 苏凯 微信号:yongwangzhiqiankai 微信昵称:一往无前 邮箱: 422168787@qq.com qq交流群号: 742679602,也欢迎企业hr入群招聘 项目仅供学习交流,企业使用需联系作者 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 5 - **Created**: 2025-02-08 - **Last Updated**: 2025-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 项目: 起始点与终点之间没有障碍物就通过直线插值的方式规划路径,如果中间有障碍物就通过A*规划路径。 作者: 苏凯 微信号:yongwangzhiqiankai 微信昵称:一往无前 邮箱: 422168787@qq.com qq交流群号: 742679602,也欢迎企业hr入群招聘 项目仅供学习交流,企业使用需联系作者 b站演示: https://www.bilibili.com/video/BV1GJ4m1j7VP/?spm_id_from=333.1387.upload.video_card.click global_planner_params.yaml #是否开启直线插值规划路径 isBezierLine: true ========================================================================= navigation/global_planner/src/astar.cpp 改A*中的启发函数,把曼哈顿计算代价改成欧式距离+x/2的数据。 92,93 //曼哈顿 //float distance = abs(end_x - x) + abs(end_y - y); //苏凯 欧式距离 float distance =sqrt( pow(end_x - x,2) + pow(end_y - y,2) )+(abs(end_y - y)/2); =================================================================================== 这里选择global_planner做为全局规划器,对于global_planner的具体参数,这里创建一个global_planner_params.yaml文件,用于管理相关参数,完整参数介绍可参见:http://wiki.ros.org/global_planner 下面来依次解释下各参数意义: allow_unknown(default: true): 是否允许规划器规划穿过未知区域的路径,只设计该参数为true还不行,还要在costmap_commons_params.yaml中设置track_unknown_space参数也为false才行。 default_tolerance(default: 0.0): 当设置的目的地被障碍物占据时,需要以该参数为半径寻找到最近的点作为新目的地点. visualize_potential(default: false): 是否显示从PointCloud2计算得到的势区域. use_dijkstra(default: true): 如果设置为true,将使用dijkstra算法,否则使用A*算法. use_quadratic(default: true): 如果设置为true,将使用二次函数近似函数,否则使用更加简单的计算方式,这样节省硬件计算资源. use_grid_path(default: false): 如果如果设置为true,则会规划一条沿着网格边界的路径,偏向于直线穿越网格,否则将使用梯度下降算法,路径更为光滑点. old_navfn_behavior(default: false): 若在某些情况下,想让global_planner完全复制navfn的功能,那就设置为true,但是需要注意navfn是非常旧的ROS系统中使用的,现在已经都用global_planner代替navfn了,所以不建议设置为true. lethal_cost(default: 253): 致命代价值 neutral_cost(default: 50): 中等代价值 cost_factor(default: 3.0): 代价地图与每个代价值相乘的因子 publish_potential(default: true): 是否发布costmap的势函数 orientation_mode(default: 0): 如何设置每个点的方向(None = 0,Forward = 1,Interpolate = 2,ForwardThenInterpolate = 3,Backward = 4,Leftward = 5,Rightward = 6) orientation_window_size(default: 1): 根据orientation_mode指定的位置积分来得到使用窗口的方向。