智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 2585341750
打印 上一主题 下一主题

圆弧形前瞻——一种“动态”前瞻的实现方法

  [复制链接]

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
跳转到指定楼层
1#
发表于 2018-2-17 12:46:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
动态前瞻是一个我们做车时常常被提起的话题,但是在与车友交流的过程中,动态前瞻实现的方法与原理,很少被深入的讨论。前瞻作为小车转向最有效的一个参数(我觉得没有之一),他的作用没有充分地被发挥出来,是非常可惜的一件事。圆弧形前瞻是我自己在实际调车过程中使用的算法,经验证具有良好的效果,下面对其原理和方法简单介绍。
此方法适用于摄像组,但是其中的原理可能对电磁组也有可以借鉴的地方。

一、        前瞻的作用
关于前瞻的作用,灰原大佬的帖子《你的车,真的会走线吗?》已经讲述的非常生动与详细了:http://www.znczz.com/thread-226785-1-1.html
这里再简单罗列一下:
1、        将赛道信息提前,给小车的转向控制更多的响应时间,小车拐弯更早,因此转向的能力大大加强
2、        优化路径,低通滤波,对于大弯会更加切内,对于s弯会滤除高频信号走的更直。

前瞻的作用是如此好,为什么我们不一昧的加大前瞻呢?主要原因是因为优化路径的性能有一个极限,当前瞻太远,过度优化的时候,优化路径偏离中线太多,小车就跑出了赛道外。最常见的情况是在十字后面的q弯处挂在内侧的路肩上。


二、        改进的原理
前瞻大到一定程度就会优化路径出问题,然而这并不代表着在前瞻这个坑里没有更多的潜力可以挖掘。
我在实际调车的过程中发现:当前瞻过长时,最先出现问题的时候是那些大弯过分的切内。
这一点其实很容易理解,前瞻对路径的优化中,对大弯的优化程度是最厉害的,会偏离中线很多。如果是允许直冲的小s,即使将路径优化成一条直线也没有问题(当然光靠前瞻做不到这一点)。如果是幅度比较大的“中s”,当前瞻很长的时候也会出问题,但是依然比大弯好很多,并且这种赛道已经很久没有在正式比赛中出现了。

因此,我不怎么严谨地得出以下结论:
对于曲率大的弯道,最合适的前瞻比较小,曲率小的弯道,最合适的前瞻比较大。

对于这个结论我们可以用一个简单的方法验证一下,做一个脑补实验:
有两条赛道,是简单的两个圆,半径一大一小(这样就排除了赛道的频率的影响),小车以相同的速度运行,调节前瞻直到小车稳定时恰好切内为止。我们可以发现,圆的半径越小,最优的前瞻越小。极端情况下,把直道看成半径无穷的圆,即使前瞻再长也不会切内。


这里就可以得出前瞻还可以挖掘潜力的地方了!我们平时使用的固定前瞻,仅仅是适应于“大曲率”的最优前瞻,而对于“小曲率”的赛道,其实可以使用更长的前瞻。
在实际使用的过程中,可以发现动态的前瞻不仅仅是更优的路径,最关键的是在入弯时前瞻较大,响应比较早,大大加强了转弯的能力。

三、改进的方法
现在已经知道了曲率小的时候应该使用较小的前瞻,那么怎么才能知道赛道的曲率?需要计算中线的曲率吗?

我认为计算中线的曲率是完全可行的一种方法!计算出曲率,制定曲率对应的前瞻的映射关系,是完全可以的!关于如何计算曲率的方法网上有很多,不在此阐述了。

我使用的是另外一种方法——圆弧形前瞻,至于和曲率相比哪个方法实际效果更好,由于我没有试验过曲率的动态前瞻不得而知。

从图中可以看出平时的直线型前瞻和圆弧形前瞻的对比,在大弯时,中线与圆弧的交点到图像底部的距离较小,从而实现了动态前瞻。

由于圆弧的长度 = 角度*半径,因此误差只需要计算角度就可以

具体写程序而言:
遍历整条中线上的点,当这点到圆形的距离的平方达到半径的长度的平方时,计算角度


如果嫌弃这种方法太慢,可以在开机的时候把每个点的距离和误差都算好。到时候直接查表。

把中线附近几个点的误差加权一下可以消除一些的噪声,不需要很多,5个左右就完全足够了,只能对付计算的噪声,给赛道滤波的话这样加权是很低效的做法。


进一步的优化:用椭圆代替圆,d^2 = k*x^2+y^2,k成为了又一个可以调节的参数,类似于改变曲率和前瞻的映射关系。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
2#
 楼主| 发表于 2018-2-17 19:43:49 | 显示全部楼层
神车名为GTR 发表于 2018-2-17 16:22
指个错误 —— “圆的半径越小,最优的前瞻越小” & “曲率小的时候应该使用较小的前瞻”

今年有不可导的点吗?没有吧,去年的圆环才不可导啊。为啥觉得不可导就不能用呢?去年圆环我用着没问题
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
3#
 楼主| 发表于 2018-2-17 19:44:37 | 显示全部楼层
八级大狂风 发表于 2018-2-17 19:00
学长已经无法自拔了

没有没有,不碰车了,以前的存货
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
4#
 楼主| 发表于 2018-2-17 21:16:44 | 显示全部楼层
本帖最后由 2585341750 于 2018-2-17 21:22 编辑
神车名为GTR 发表于 2018-2-17 20:46
  你看错了吧……

  谈一下我的看法吧——

呃……你前面的那句话我确实看错了,但是是否可导并不是问题,这种方法都适用


可能你没有仔细看我的文章,我的方法是弱化了在大弯处的优化程度,防止路径过度切内,同时加大小弯的前瞻,使响应更快


另外,加权平均哪里称得上动态了?实际描一下线就知道了,加权平均真的是很差的滤波器……

回复 支持 1 反对 0

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
5#
 楼主| 发表于 2018-2-18 10:33:10 | 显示全部楼层
eagle丶 发表于 2018-2-17 23:30
对楼主 “曲率小的时候应该使用较小的前瞻”  这个并不是理解的很好。  个人理解,在可信范围内,取适当大 ...

呃……我这里的前瞻是指实际取偏差的远近,不是指摄像头看到的最远距离
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
6#
 楼主| 发表于 2018-2-25 18:51:11 | 显示全部楼层
Billy98 发表于 2018-2-24 12:44
楼主能简单说一下图像的畸变校正吗,感觉你的图像特别好

https://wenku.baidu.com/view/51137d0aed630b1c58eeb525.html
我是参考这篇文章写的

附代码,当时写的很随便,后来为了方便学弟加了一些简单的说明


https://pan.baidu.com/s/1htC6GHA
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
7#
 楼主| 发表于 2018-2-25 18:53:36 | 显示全部楼层
Billy98 发表于 2018-2-24 12:44
楼主能简单说一下图像的畸变校正吗,感觉你的图像特别好

https://wenku.baidu.com/view/51137d0aed630b1c58eeb525.html
我是参考这篇文章写的

当时随手写的很随便,代码比较凌乱,后来为了方便学弟写了简单的说明

https://pan.baidu.com/s/1htC6GHA
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
8#
 楼主| 发表于 2018-3-4 18:51:18 | 显示全部楼层
来一杯烈酒 发表于 2018-3-4 16:30
曲率越小,前瞻越远是不是这样呢?楼主?

我认为是这样的
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
9#
 楼主| 发表于 2018-3-4 22:39:44 | 显示全部楼层
来一杯烈酒 发表于 2018-3-4 20:23
这样的话连续的大S弯曲率要小一点,那么前瞻远的话是不是更要压内侧了呢?

大弯曲率大啊!曲率不是曲率半径
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-9 09:43 , Processed in 0.095610 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表