4.5.c A*代码解析
category
type
status
slug
date
summary
tags
password
icon
生活就像一盒巧克力,你永远不知道你会得到什么。
—《阿甘正传》
🏰代码及环境配置:请参考 环境配置和代码运行!
本节提供了A*算法的代码测试:
4.5.c.1 构图的代码实现
基于图搜的运动规划中最重要的一步是构图,构建的图比较简单,主要包含map border和obstacles,读者也可根据需求修改构图方式。
4.5.c.2 A*的代码实现
在A*算法中,首先我们定义了节点
Node
,这是图的基础元素。其中(x, y)
表示节点的位置,cost
表示从源节点到当前节点的cost,parent
表示当前节点的父节点。在A*中,启发式函数使用的是欧式距离,如下:
下面是A*的核心算法,基于环境信息,起始点位置,目标点位置搜到最优路径,其中:
sx
:起始点的x坐标的值sy
:起始点的y坐标的值gx
:目标点的x坐标的值gy
:目标点的y坐标的值最终返回一条路径:
rx, ry
4.5.c.3 A*的代码测试
在
main
函数中设置起始点,目标点,grid的分辨率和机器人的半径,在创建grid map之后,并运行A*算法,即可找到最优路径。如下图所示,红色路径即为最终A*搜出来的最优路径。上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...