当前位置:网站首页>【路径规划】RRT增加动力模型进行轨迹规划
【路径规划】RRT增加动力模型进行轨迹规划
2022-07-04 23:47:00 【龙猫略略略】
在上篇增加了一个运动对象之后,就可以考虑给这个运动对象增加动力模型,之后按照动力模型来进行轨迹规划。
思路
这个动力模型我的思路是参照开源飞控中使用向量法指定速度方向,使用S曲线来规划速度轨迹的方式,最终做出来的效果看起来还是可以的。
S曲线
这里可以补习一下开源飞控中的速度S曲线规划的知识,总体思想为:保证加速度,速度连续,以固定加加速度来改变速度。总体的效果就是:先以恒加加速度将加速度a加到最大加速度a_max,时间为T1,之后以恒加速度运行T2时间,之后以恒加加速度将加速度从a_max减到0。这里PIX4的源码中也给出了一个注释图:

网上有人画了一个更清晰的图,我借用一下:

按照PIX4的思想,是将整个速度跟踪的过程分为三个时间阶段T1,T2,T3。T1阶段以设定的加加速度进行加速度的提升,T2阶段为恒定加速度,T3阶段以负的恒定加加速度进行加速度下降直到0。我们可以每个周期判断此时是处于哪个阶段,就可以进行控制了。最终这个算法需要达到的目标是在最后的加速度为0的时候,刚好速度达到目标。
这个各个阶段的时间以及末端速度都是高中知识,比较好推导,而且也有源码以及网上的解析可以参考,感觉没必要再浪费篇幅,可以自行推导一下
大致的程序步骤为:
1)计算当加速度为0时的轨迹速度
2)根据加速度为0时的末端速度的大小与目标速度的偏差判断加速方向
3)计算T1,T2,T3各个时间长度
4)根据控制周期的时间间隔判断当前处于哪个时间段,进而生成加速度与速度
按照S曲线的方式,我编写了一个函数,传入最大加加速度,最大加速度,当前加速度,当前速度,目标速度,控制周期T,就可以生成下个周期的加速度与速度控制量:

测试一下,它大概生成的速度S曲线的效果是这样的:

其实效果还不错。之后就可以利用这个速度S曲线函数来牵引模型在轨迹上运动。
牵引轨迹
在前面的文章中,我们已经使用了RRT搜索关键路径点,之后使用五阶贝塞尔平滑了曲线,可以得到平滑曲线的各个轨迹点,那么我们可以设置一个到达区域,比如以10为半径的圆,到达目标轨迹点的半径10以内就算到达该轨迹点,之后就切换到下一个轨迹点进行牵引。牵引的方式可以使用向量的方式,这个也是我比较顺手的方式吧:

由于目标轨迹点我们是知道的,因此可以按照目标轨迹点计算剩余路程,之后我们可以用利用计算出的剩余路程,还没有到一定的剩余路程就以最大速度为目标,接近终点时,就做一些减速的规划,这个就是一个决策的问题了,不属于本章的讨论内容:

当然,这个属于简单的一些速度决策,不影响后续的结果。
之后生成了目标加速度与速度之后,我们就可以分解成xy轴方向的分加速度与分速度进行xy轴的加速度,速度,位置的控制。
最终的效果,我录了一个简易的视频:
RRT+贝塞尔+运动模型轨迹
这样整体效果就好玩多啦。
边栏推荐
- S32 design studio for arm 2.2 quick start
- Is the account opening link of Huatai Securities with low commission safe?
- 跨域请求
- The initial trial is the cross device model upgrade version of Ruijie switch (taking rg-s2952g-e as an example)
- [JS] - [dynamic planning] - Notes
- Qualcomm WLAN framework learning (30) -- components supporting dual sta
- Paddleocr tutorial
- ICML 2022 | 3dlinker: e (3) equal variation self encoder for molecular link design
- 壁仞科技研究院前沿技术文章精选
- 如何用快解析自制IoT云平台
猜你喜欢

Compare two vis in LabVIEW

Galera cluster of MariaDB - dual active and dual active installation settings

Actual combat simulation │ JWT login authentication

Etcd database source code analysis - brief process of processing entry records

Observable time series data downsampling practice in Prometheus

45 year old professor, she threw two super unicorns

法国学者:最优传输理论下对抗攻击可解释性探讨

圖解網絡:什麼是網關負載均衡協議GLBP?

The caching feature of docker image and dockerfile

Mit-6.824-lab4b-2022 (10000 word idea explanation - code construction)
随机推荐
[JS] - [dynamic planning] - Notes
如果炒股开华泰证券的户,在网上开户安全吗?
Instructions for go defer
"Xiaodeng" domain password policy enhancer in operation and maintenance
Question brushing guide public
Basic use and upgrade of Android native database
[monitoring] ZABBIX
Using fast parsing intranet penetration to realize zero cost self built website
Solution record of jamming when using CAD to move bricks in high configuration notebook
PMP certificate renewal process
如何避免电弧产生?—— AAFD故障电弧探测器为您解决
Go pit - no required module provides Package: go. Mod file not found in current directory or any parent
人脸识别5- insight-face-paddle-代码实战笔记
The initial arrangement of particles in SPH (solved by two pictures)
OSEK standard ISO_ 17356 summary introduction
如何用快解析自制IoT云平台
CTF competition problem solution STM32 reverse introduction
如何在外地外网电脑远程公司项目?
Application of multi loop instrument in base station "switching to direct"
香港珠宝大亨,22亿“抄底”佐丹奴