算法随笔记 -A* -Jump Point Search -Hybrid A*
仅供参考。 建议看时有一定A*基础 主要示例 根据坐标推一次A*算法常见层级核心思想优点缺点适合场景A*全局规划Dijkstra 启发函数快、常用、路径可靠栅格路径可能不平滑室内 AMR 全局路径核心公式f(n) g(n) h(n)g(n)从起点走到当前点 n已经花费的真实代价h(n)从当前点 n 到终点的预估代价f(n)总代价评分越小越优先探索g已经走了多远h估计还要走多远f这条路线看起来总共要多远如果h 0A* 就退化成 Dijkstra。曼哈顿距离h |当前x - 目标x| |当前y - 目标y|h |3 - 3| |2 - 7| 5open、closed、parentopenopen是待探索的候选点集合。可以理解为所有已经发现、但还没正式展开的边界点。A* 每一轮都会从open里选f最小的点作为当前点。closedclosed是已经探索过的点集合。一个点进入closed后表示它已经被展开过通常不再重复处理。parentparent用来记录路径。算法流程1. 把起点 S 加入 open2. 从 open 中选出 f 最小的点作为 current3. 如果 current 是终点 G结束搜索4. 把 current 从 open 移到 closed5. 检查 current 的上下左右邻居6. 如果邻居是障碍物跳过7. 如果邻居已经在 closed 中通常跳过8. 计算邻居的新 g、h、f9. 如果邻居不在 open 中加入 open并记录 parent10. 如果邻居已经在 open 中但这次路线更短更新 g、f、parent11. 重复第 2 步12. 找到终点后根据 parent 反向追踪路径open {S} closed {} g[S] 0 parent[S] none while open 不为空: current open 中 f 最小的点 if current G: return 根据 parent 反向追踪出的路径 从 open 移除 current 把 current 加入 closed for neighbor in current 的邻居: if neighbor 是障碍物: continue if neighbor 在 closed 中: continue new_g g[current] 移动代价 if neighbor 不在 open 中: parent[neighbor] current g[neighbor] new_g h[neighbor] 曼哈顿距离(neighbor, G) f[neighbor] g[neighbor] h[neighbor] 把 neighbor 加入 open else if new_g g[neighbor]: parent[neighbor] current g[neighbor] new_g f[neighbor] g[neighbor] h[neighbor]推导示例地图y0 . . . S . . . .y1 . . . . . . . .y2 . . # . . # . .y3 . . # . . # . .y4 . . # . . # . .y5 . . # # # # . .y6 . . . . . . . .y7 . . . G . . . .其中S是起点 G是终点 #是障碍物每一轮都从 open 里选 f (代价)最小的点(3,0) - (3,1) - (3,2) - (3,3) - (3,4) 不会回头 从open里找最小的点Jump Point Search对一次jump来说确实可以理解为给定起始点 跳跃方向然后沿这个方向一直检测直到遇到终点、障碍/边界、强制邻居。从 open 里取 f 最小的点根据来时方向剪枝邻居方向对保留下来的方向分别 jumpjump 找到跳点后加入 open跳点跳点可以理解为必须停下来做决策的关键格子。常见跳点来源1. 当前点是终点 2. 当前点有强制邻居 3. 斜向跳跃时横向或纵向子方向能找到跳点或终点(空旷环境下没有障碍物 咳咳)如果沿某个方向遇到障碍或边界通常表示这个方向失败返回nulljump(当前点, 方向): 沿方向走一步 如果越界或遇到障碍: 这里注意啦 方向上有障碍物的不算喔 return null 如果当前点是终点: return 当前点 如果当前点有强制邻居: return 当前点 如果当前方向是斜向: 如果横向 jump 能找到跳点: return 当前点 如果纵向 jump 能找到跳点: return 当前点 继续沿同方向 jumpHybrid AHybrid A A搜索框架 车辆运动学模型 姿态离散化 碰撞检测 启发函数加速。**普通 A* 的状态通常是二维位置它假设机器人可以从一个格子直接走到相邻格子比如上、下、左、右、斜向。但汽车不行。汽车有几个限制不能横向平移不能原地旋转有最小转弯半径车头朝向会影响下一步能去哪所以对于汽车来说只知道(x, y)不够还必须知道朝向Hybrid A* 的“混合”主要体现在连续运动 离散搜索普通 A* 扩展邻居上、下、左、右、左上、右上...Hybrid A* 扩展的是车辆可执行动作例如前进左转前进直行前进右转后退左转后退直行后退右转Hybrid A* 的核心是f g hHybrid A* 的g往往不只是路径长度。它通常会惩罚一些“不舒服”或者“不合理”的驾驶行为倒车惩罚频繁换挡惩罚大转角惩罚方向盘快速变化惩罚靠近障碍物惩罚障碍物检测普通 A* 通常检查某个格子是不是障碍物。Hybrid A* 不能只检查车辆中心点因为车有长宽。它要检查整个车辆矩形在当前姿态下是否和障碍物重叠。也就是说每个状态 (x, y, theta)都对应一个旋转后的车辆轮廓。路径上一小段运动也要检查中间过程是否碰撞。所以 Hybrid A* 的碰撞检测通常比搜索本身还耗时。流程1. 从起点姿态开始2. 根据车辆模型生成若干可行动作3. 对每个动作形成一个新姿态4. 检查新姿态和中间轨迹是否碰撞5. 计算 g、h、f6. 选择 f 最小的节点继续扩展7. 接近目标时尝试 Reeds-Shepp 直接连接8. 找到路径后回溯节点得到轨迹9. 再进行平滑优化所以 Hybrid A* 特别适合自动泊车无人车低速规划仓储 AMR 带拖挂或类车体约束狭窄空间掉头非完整约束机器人路径规划但它不适合追求全局大范围高速规划。

相关新闻

90%的iPhone用户都踩过的坑:弹窗、发烫、掉电池,根源全在这

90%的iPhone用户都踩过的坑:弹窗、发烫、掉电池,根源全在这

用iPhone的人,大概率都遇见过这种绝望瞬间:深夜急着充电,插上数据线,屏幕突然弹出一行刺眼的字:“不支持此配件”。明明昨天还能用,今天就彻底失灵;换一根新的廉价线,用一周就开裂、…

2026/7/2 3:53:43阅读更多 →
鸿蒙ArkTS自适应字体_fp单位深度解析

鸿蒙ArkTS自适应字体_fp单位深度解析

鸿蒙原生 ArkTS 布局之道:深入浅出 fp 单位与自适应字体设计HarmonyOS NEXT API 24 ArkTS 自适应布局一、引言 在移动端应用开发中,字体适配始终是一个绕不开的核心话题。不同用户的视力状况不同,不同设备的屏幕尺寸各异,在不同…

2026/7/2 3:53:43阅读更多 →
记录使用某免费大模型入坑收费。

记录使用某免费大模型入坑收费。

我是昨晚(2026.6.30)开始使用Qwen3.6-35B-A3B的,然后今天(2026.7.1)收费了。。。没有任何通知, 入坑第一点和Hy-MT2-7B一样,上面写着限时免费,但是没有明确什么时间节点结束免费。第二点:就是必须同意相关协议才能使用…

2026/7/2 3:53:43阅读更多 →
【电赛/毕设天花板】别再调包 SimpleFOC 了!STM32 纯手写 FOC 矢量控制:空间变换、SVPWM 与相电流采样硬核指南

【电赛/毕设天花板】别再调包 SimpleFOC 了!STM32 纯手写 FOC 矢量控制:空间变换、SVPWM 与相电流采样硬核指南

前言 无论是能后空翻的机械狗(如宇树科技)、极度丝滑的大疆云台,还是特斯拉的驱动电机,它们底层的核心技术全都是同一个词——FOC(Field Oriented Control,磁场定向控制)。 在电赛和毕设中&…

2026/7/2 5:13:51阅读更多 →
Pytest.ini配置文件详解:从命令行参数到标准化测试管理

Pytest.ini配置文件详解:从命令行参数到标准化测试管理

1. 项目概述:从“-vs”到“掌控全局”的测试配置思维如果你还在用pytest -vs来运行所有测试,那你可能只发挥了 Pytest 框架 20% 的能力。这个命令确实方便,-v显示详细信息,-s打印输出,但它本质上是一种“临时”的、手动…

2026/7/2 5:13:51阅读更多 →
AI Agent驱动浏览器自动化测试:基于Playwright与MCP协议的实践指南

AI Agent驱动浏览器自动化测试:基于Playwright与MCP协议的实践指南

1. 项目概述:当AI智能体“学会”了操作浏览器最近在搞自动化测试的朋友,估计都听过一个词儿:AI Agent。这玩意儿不再是科幻电影里的概念,而是实实在在地开始接管一些重复性工作了。我干了十多年测试,从最早的QTP、Sele…

2026/7/2 5:13:51阅读更多 →
失踪人员信息发布与管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

失踪人员信息发布与管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

💡实话实说:有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。博主介绍:在校期间积极参与实验室项目研发,现为CSDN特邀作者、掘金优质创作者。专注于Java开发、Spring Boot框架、前后端分离技…

2026/7/2 5:13:51阅读更多 →
吊打Bash/Zsh!Fish Shell 保姆级教程|语法、脚本、配置全覆盖

吊打Bash/Zsh!Fish Shell 保姆级教程|语法、脚本、配置全覆盖

一、命令简介fish(Friendly Interactive SHell)是一款轻量化、高交互性的现代化命令行 Shell,专为 Linux、macOS 交互式终端场景设计,主打零配置、高智能、易上手的核心特性。相较于传统 Bash、Zsh,Fish 摒弃了复杂的语…

2026/7/2 5:13:51阅读更多 →
KLayout完整指南:如何免费打造专业级版图设计流程

KLayout完整指南:如何免费打造专业级版图设计流程

KLayout完整指南:如何免费打造专业级版图设计流程 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 你是否正在寻找一款功能强大且完全免费的版图设计工具?KLayout正是你需要的开源解决方案&…

2026/7/2 5:08:50阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 想在《塞尔达传说:旷野之息…

2026/7/2 0:03:01阅读更多 →
告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

在本地开发环境使用云厂商 CLI 时,传统的 AccessKey(AK)方式需要手动创建、下载和保管密钥,不仅繁琐,还存在泄漏风险。其实,主流云平台都已提供基于 OAuth 2.0 的免密认证方案,让开发者可以通过浏览器登录一次性完成授权,CLI 自动管理临时凭证的刷新,兼顾了便利与安全…

2026/7/2 0:03:01阅读更多 →
基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

1. 项目背景与核心价值在嵌入式系统开发领域,高精度定位与导航一直是极具挑战性的技术方向。传统方案往往面临成本、精度和实时性难以兼顾的困境。这个项目通过13DOF(13自由度)传感器组合与PIC32MZ2048EFH100高性能MCU的协同工作,…

2026/7/2 0:03:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/2 0:33:58阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/2 1:32:11阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/2 1:50:13阅读更多 →