菜单

无人车自主规划避障模块

下载

本篇内容:如何运行Astar以及控制无人车进行规划避障

关于Astar

Astar算法是启发式搜索算法,启发式搜索是在状态空间中对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。

建图

相关文件与函数说明

map_generator.h:建图头文件

init:地图初始化函数
updateMapFromLaserScan:处理二维雷达数据并发布地图数据
updateMapFromMid360Scan:处理三维雷达数据并发布地图数据
odomCallback:通过里程计数据更新机器人的实时位姿(位置+姿态),并管理地图的初始化状态
ugvStateCallback:为系统提供机器人的位姿信息,同时触发地图状态转换
PublishOctomap:发布地图数据

相关参数说明

laser_topic:雷达话题参数,用于订阅雷达数据
input_type:雷达类型参数,用于更换的雷达类型
map_resolution:定义地图的精度,决定二维栅格地图中每个单元格代表的物理尺寸
inflate_size:障碍物膨胀的安全距离,确保路径规划时小车不会靠近障碍物

规划

相关文件与函数说明

Astar.h:规划头文件

SimpleGraph:表示一个简单的图结构
GridLocation:表示网格中的二维坐标
SquareGrid:表示一个方形网格地图,支持障碍物
GridWithWeights:继承自 SquareGrid,支持带权重的移动
a_star_search():搜索算法
reconstruct_path():路径重构

相关参数说明

width、height:定义网格尺寸
current:a_star_search()算法处理的当前节点
new_cost:路径代价计算中间值

控制

相关文件与函数说明

ugv_control.h:控制头文件

回调函数
mocap_pos_cb:获取小车姿态(动捕)
mocap_vel_cb:获取小车速度(动捕)
odom_cb:将标准里程计数据转换为控制友好的格式
viobot_cb:将标准viobot数据转换为控制友好的格式
ugv_cmd_cb:发送指令
goal_point_cb:设置目标点,用于Astar算法
battery_cb:获取电池数据

相关参数说明

location_source:位置来源(1:代表动捕、2代表gazebo odom) - 通过参数配置
topic_prefixugv_name:名称
topic_prefix:话题前缀
vel_topic:速度话题
odom_topic:odom话题
flag_printf:是否打印 - 通过参数配置
goal_set:是否有规划目标点
enable_rviz:是否启用rviz
enable_astar:是否启用路径规划避障
simulation_mode:是否为仿真环境
resolution:地图分辨率
inflate:障碍物膨胀系数

运行自主避障模块(仿真)

在scripts_sim中打开终端并输入./sunray_ugv_sim.sh

scripts_sim 复制代码
# 利用脚本一键启动
./sunray_ugv_Astar_test.sh

点开rviz,点击上方2D Nav Goal,任意点一个点,在rviz上会显示出规划的路径

/
上一个
无人车仿真模块
下一个
航点任务功能(Waypoint Mission)
最近修改: 2025-06-16