【论文】读论文

今天读了一篇关于机器人路径规划的论文,在这里记录一下。

原文:改进 A*和动态窗口法的移动机器人路径规划https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CAPJ&dbname=CAPJLAST&filename=JSJJ2020102300M&v=l5%25mmd2FDG1c37fumFRahpllN7JWV7J8kDILJRNZEVRg08wG9PMHUwc7HUH8oEHwUpjio

1、提出问题

文章提出了结合A*算法动态窗口法的融合算法。

首先,,使用 A*算法规划出一条全局路径,再利用一种关键折点提取算法,用于剔除全局路径上的冗余拐点及冗余节点,保证路径的全局最优。

然后,根据关键节点对全局路径进行分段,再结合动态窗口法对每段局部路径进行优化,提高路径的安全性和平滑性。

 

A*算法存在的问题:拐点过多、节点冗余、与障碍物距离近等问题。

动态窗口法:极容易陷入布局最优,寻路成功率低。

2、提出算法

(1)优化A*算法

   (a)获取 A*算法所规划路径的全部节点集U{}\left \{ Pi,1\leq i\leq n\right \}  ,其中  P_{1}表示规划路径的起点, P_{n}表示规划路径的终点。创建初始值只包含路径起点 P_{1} 和终点 P_{n} 的关键节点集 V\left \{ P_{1},P_{n} \right \}用来存放算法优化后的关键转折点。

 

   (b)从 P_{1}  开始作直线依次连接 P_{3},P_{4},\cdots ,P_{m} ,判断直线 P_{1}P_{m} 是否经过障碍物,若直线 P_{1}P_{m} 经过障碍物,则节点 P_{m-1} 为路径的必经节点,且必为关键转折点,将节点  P_{m-1} 添加至集合V ;若直线 P_{1}P_{m} 没有经过障碍物,则判定节点P_{2},\cdots ,P_{m}为冗余节点,从 P_{m} 继续向后连接节点集U 中的节点,直到连接到路径的终点 P_{n} ,将所有的关键节点都添加至集合V 。关键节点选取完成后,集合 V\left \{ P_{1},P_{m-1},\cdots ,P_{m+k},P_{n} \right \}包含了所有关键节点,假设集合V 中包含的路径关键节点数为m。 

 

  (c)依次连接集合V 中所有的节点,完成对路径的全局优化,路径全局优化步骤图如图

(2)优化动态窗口法

由动态窗口法的原理可知,路径的影响因素主要是移动机器人的航向角和角速度,由于角速度通常是固定配置值,所以影响路径平滑程度和路径长度的主要因素是航向角。航向角偏差越大,所需的转弯距离越长,越容易造成路径的冗余。故本文主要针对航向角进行改进和优化,局部优化的具体步骤如下。

 

   (a)从起点 P_{1} 开始,依次将关键节点集 V\left \{ P_{1},P_{m-1},\cdots ,P_{m+k},P_{n} \right \}中除开终点  P_{n} 的所有节点作为局部路径规划的起点 S_{1},S_{2},\cdots ,S_{m-1} ;从第二个节点 P_{m-1} 开始,依次将集合 V\left \{ P_{1},P_{m-1},\cdots ,P_{m+k},P_{n} \right \}中的所有节点作为局部路径规划的终点 D_{1},D_{2},\cdots ,D_{m-1} ,将全局路径分为 S_{1}D_{1},S_{2}D_{2},\cdots ,S_{m-1}D_{m-1} 共 m-1 段路。 

这里没有看懂

(b)计算路径 S_{1}D_{1} 即原线段 P_{1}P_{m-1} 的倾斜角度,计算线段倾斜角度的公式如下。 

(c)将路径的倾斜角度转换为弧度值,作为移动机器人的初始航向角,斜率角度转化弧度值的公式如下。 

      

(d)初始化移动机器人的状态参数集 L{l},其中l{x,y,yaw,v,w} 记录移动机器人路径规划过程中的状态参数,包括位置、航向角、线速度、角速度。 

(e)按照实际环境需要,设定移动机器人的初始线速度V(m/s) 、初始角速度 w(rad/s) ,结合前三步得到起点S_{1}(m)、终点 D_{1}(m)、初始航向角 yaw(rad) ,综合得到 

(f)使用动态窗口法进行局部路径规划,并将机器人的所有状态参数l_{i}更新到到状态参数集L 中,记录路径的所有节点和机器人的位姿信息,每段路径完成后状态参数集变成 表示移动机器人的最新状态参数。 
 

(g)按照式(b)计算下一段路径的倾斜角度  ,同时将机器人上一状态参数l中的 yaw转换为角度值 ,弧度值转化为角度值的公式如下。 

这里为什么要将机器人的航向角设为yaw/2呢???

(h)重复(g),

图片文字均来自该论文,仅供学习,侵权联删。

### 关于 GPD 的论文与学习资源 目前并未发现具体提及名为“GPD”的特定算法、模型或技术的相关引用[^1]。然而,在 IT 领域,“GPD”可能指代多种含义,例如: #### 可能的解释方向 1. **Generative Pre-trained Dialogue (假设)** 如果“GPD”指的是某种对话生成预训练模型,则可以参考类似的研究成果,如 Hugging Face 提供的 Transformer 库中的 DialoGPT 模型。该模型基于 GPT 架构扩展而来,专注于多轮对话生成任务。 2. **Geometric Pose Detection** 若“GPD”涉及几何姿态检测领域,可参考《ES6D: A Computation Efficient and Symmetry-Aware 6D Pose Regression Framework》这篇论文及其开源实现[^3]。尽管其名称并非直接标注为“GPD”,但其方法论和技术细节或许具有一定的借鉴意义。 3. **Generalized Policy Design** 在强化学习领域,“GPD”也可能代表广义策略设计(Generalized Policy Design)。这通常涉及到如何构建高效的学习机制来优化复杂环境下的行为决策过程。此类主题常依赖深度强化学习框架,例如 Proximal Policy Optimization (PPO)[^2] 或 Soft Actor-Critic (SAC)。 #### 推荐学习路径 为了更全面地了解潜在目标——即您所提到的“GPD”,建议采取如下行动方案: - 浏览主流科研平台(Google Scholar, arXiv),输入关键词组合如 “GPD algorithm”, “GPD model” 进行精确查找; - 查阅 GitHub 上热门项目列表,利用搜索功能定位是否存在匹配项; - 结合上下文背景重新确认缩写全称是否已被误解或者遗漏说明部分信息; 以下是针对不同场景下推荐的一些通用性较强的技术文档及教程链接作为辅助参考资料: ```python import requests from bs4 import BeautifulSoup def fetch_arxiv_papers(query): url = f"https://arxiv.org/search/?query={query}&searchtype=all" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') papers_info = [] results = soup.find_all('li', class_='arxiv-result') for result in results[:5]: title = result.find('p', class_='title is-5 mathjax').text.strip() abstract_url = result.find('a')['href'] paper_data = { "Title": title, "Abstract URL": abstract_url } papers_info.append(paper_data) return papers_info papers = fetch_arxiv_papers("GPD") for idx, paper in enumerate(papers, start=1): print(f"{idx}. {paper['Title']}\nLink: https://arxiv.org{paper['Abstract URL']}") ``` 此脚本可以帮助快速检索 ArXiv 数据库内的相关内容摘要并展示前五条记录以便初步筛选判断价值所在。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值