写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~
文章目录
- 引言
- 一、误差计算概述
- 1、连续轨迹的横向误差
- 2、连续曲线的投影问题
- 3、离散轨迹点的误差
- 二、离散轨迹规划误差计算步骤
- 1、匹配点
- 2、投影点
- 3、横向误差
- 4、纵向误差
- 5、投影点的航向角
- 6、四个式子
- 三、总结
引言
本篇博客是 自动驾驶控制算法 系列的第七节。内容整理自 B站知名up主 忠厚老实的老王 的视频,作为博主的学习笔记,分享给大家共同学习。
本节博客讲解离散轨迹的误差计算,是理论部分中的最后一节,如果看完了前七节,可以自己尝试搭建横向控制模型,因为横向控制所需要的知识和理论,以及存在的障碍,都讲明白了,大家可以自己尝试搭建相关理论模型,编写代码。
一、误差计算概述
在前面六节讲到了最优的横向控制:
其中, 为 或 的解。
关于这些量的计算:
还剩误差
1、连续轨迹的横向误差
在第四节讲过相关误差的计算,先把图画一下:
:
其中,
计算误差需要 、
- 为投影点的速度
- 为投影点的速度
而剩下的这几个自变量:
都可以通过上游的定位模块以及传感器的信号采集到,视为已知。
( 为投影点在自然坐标系下的坐标)
如果知道这些信息,就可以把误差计算出来。
注意:如果规划曲线为连续曲线,那么可能导致投影点不唯一。
2、连续曲线的投影问题
举几个例子:
的投影定义:如果 与 的连线与 的切线垂直,则称 是
- 直线
直线的投影是最简单的, 在直线的投影就是 - 简单曲线
简单曲线的投影比较简单,只要 和 的连线和 的切线方向 垂直,则 - 圆
对于封闭的圆, 正好在圆心处,按照定义, - 椭圆
在椭圆半长轴上,
如果曲线连续,不仅求投影比较麻烦,而且要处理多值问题,即投影可能不止一个,这是非常麻烦的事情。
在这里并不是说连续曲线的规划就不能用,各有各种用法,要用连续曲线做规划,在规划层面上就必须要考虑到投影的多值性问题。
3、离散轨迹点的误差
如果轨迹规划是离散的,怎么求投影相对比较容易处理?
本篇博客讲解离散轨迹点的误差计算,应用比较广泛,且相对较简单。第四节讲过的是连续轨迹曲线的误差计算公式。
比如,轨迹规划出一系列离散点:
要用离散的轨迹规划做相应的控制,就要进行相应的误差计算,离散轨迹点的每一点都包含四个信息:
这仅仅是做横向控制,如果要做纵向控制的话,还需要包含离散点的在自然坐标系下的 。不过本节只讲横向控制,只需要这
二、离散轨迹规划误差计算步骤
。
1、匹配点
2、投影点
第二步,计算投影点。
匹配点和投影点是什么关系呢?
比如,在直线里有三个规划点:
图中蓝色点为匹配点,红色点为真正的投影点。投影点是不在规划轨迹点中的理想点。因此,匹配点并不等于投影点。
匹配点能否近似代替投影点?
用最短距离的匹配点近似代替投影点,理论上可以,但有个前提,规划点要特别密集,这样匹配点和投影点的位置比较接近,越密就越接近,近似程度就越高。但是理论归理论,现实生活中这种方法依然不可行:
- 规划点不可能特别密集
- 规划点取得非常密集会增加计算负担
在自动驾驶中控制的实时性要求最高,要尽可能不惜代价提升控制代码的运行速度,所以用匹配点近似投影点在实际运用中不可行。
可以通过匹配点近似计算出投影点。
假设有一条连续曲线,上面有三个离散规划点:
,真实点也有信息 ,通过真实点和匹配点的信息,把投影点信息近似计算出来。
假设从匹配点到投影点曲线的曲率不变,即近似认为匹配点的曲率等于投影点的曲率。
黑色曲线是规划轨迹,这是真实的连续轨迹,根据连续轨迹得到离散的规划点。
,已知图中红色向量:
由匹配点的航向角 可知切向向量 和法向向量,即:
3、横向误差
近似等于红色向量 在 方向上的投影:
注意:
,这种近似完全没有任何误差,,这是非常好的性质,有了此性质后:
- 在曲线段,横向误差
- 在直线段,横向误差
意味着在直线段用非常少的轨迹规划点就可以完整地进行轨迹跟踪。
所以只需在曲线曲率比较大的位置,规划的离散轨迹密一点;在直线段或者曲率特别小的位置完全可以用几个点一笔带过,节省计算资源。
4、纵向误差
等于红色向量在 上的投影:
注意:弧长有正负。
比如,有一条曲线:
和 夹角小于
如果是这种情况:
和 夹角大于
5、投影点的航向角
:
比如,有一段圆弧:
和 ,根据几何关系,绿色角是 ,那么
又因为 近似认为是匹配点与投影点间的弧长,所以
6、四个式子
第六步,得到四个转换关系式子:
由
可计算出。
三、总结
最终,横向控制
其中, 或 的解。
关于这些量的计算:
- 误差
至此,横向控制理论部分结束。
在下一节会详细演示怎么把程序代码编写出来,将理论变成实际。第八节是横向控制的核心,将用到前七节所有知识。
本篇博客到此结束,欢迎关注!
后记:
🌟 感谢您耐心阅读这篇关于 离散规划轨迹的误差计算 的技术博客。 📚
🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢
🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀
🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡
🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀