智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 17914|回复: 26
打印 上一主题 下一主题

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

  [复制链接]

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
回复

使用道具 举报

10

主题

426

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4369

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1927
贡献
1278
兑换币
1341
注册时间
2017-7-20
在线时间
582 小时
推荐
发表于 2018-3-5 14:35:01 | 只看该作者
来一杯烈酒 发表于 2018-3-5 14:34
还不是很清楚,能加个好友探讨一下吗?

qq1823705416
回复 支持 0 反对 2

使用道具 举报

10

主题

426

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4369

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1927
贡献
1278
兑换币
1341
注册时间
2017-7-20
在线时间
582 小时
推荐
发表于 2018-3-4 20:23:33 | 只看该作者

这样的话连续的大S弯曲率要小一点,那么前瞻远的话是不是更要压内侧了呢?
回复 支持 0 反对 1

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

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

  谈一下我的看法吧——

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


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


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

回复 支持 1 反对 0

使用道具 举报

21

主题

589

帖子

0

精华

版主

论坛终极大(cai)佬(ji)

Rank: 9Rank: 9Rank: 9

积分
5196

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

威望
2304
贡献
1416
兑换币
1584
注册时间
2018-1-10
在线时间
738 小时
2#
发表于 2018-2-17 16:22:27 | 只看该作者
本帖最后由 神车名为GTR 于 2018-2-17 16:39 编辑

指个错误 —— “圆的半径越小,最优的前瞻越小” & “曲率小的时候应该使用较小的前瞻”


  今年的赛道不存在不可导点,个人认为这种方法没有必要。

回复 支持 反对

使用道具 举报

8

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1715
威望
857
贡献
544
兑换币
568
注册时间
2016-11-23
在线时间
157 小时
毕业学校
黑龙江工业学院
3#
发表于 2018-2-17 19:00:06 | 只看该作者
学长已经无法自拔了
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

积分
6729
威望
2857
贡献
1688
兑换币
1892
注册时间
2015-6-13
在线时间
1092 小时
毕业学校
圣马家沟
4#
 楼主| 发表于 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 小时
毕业学校
圣马家沟
5#
 楼主| 发表于 2018-2-17 19:44:37 | 只看该作者
八级大狂风 发表于 2018-2-17 19:00
学长已经无法自拔了

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

使用道具 举报

8

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1715
威望
857
贡献
544
兑换币
568
注册时间
2016-11-23
在线时间
157 小时
毕业学校
黑龙江工业学院
6#
发表于 2018-2-17 20:03:57 | 只看该作者
2585341750 发表于 2018-2-17 19:44
没有没有,不碰车了,以前的存货

曲率我都没用过
回复 支持 反对

使用道具 举报

21

主题

589

帖子

0

精华

版主

论坛终极大(cai)佬(ji)

Rank: 9Rank: 9Rank: 9

积分
5196

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

威望
2304
贡献
1416
兑换币
1584
注册时间
2018-1-10
在线时间
738 小时
7#
发表于 2018-2-17 20:46:07 | 只看该作者
本帖最后由 神车名为GTR 于 2018-2-17 20:48 编辑
2585341750 发表于 2018-2-17 19:43
今年有不可导的点吗?没有吧,去年的圆环才不可导啊。为啥觉得不可导就不能用呢?去年圆环我用着没问题

  你看错了吧……

  谈一下我的看法吧——

  我个人认为,存在不可导点(例如往届的圆环和之前的人字、直角弯)可以用这种方法进行动态前瞻,以免压住不可导的那个角。(当然也可以像北科那样优化边线,效果更好)

  另外,摄像头加大前瞻是为了优化路径,你的这种方法反而把路径优化弱化掉了,何不减小前瞻呢?(此处是本渣渣猜的,具体比较本应经过实验得到……)

  最后,加权平均本就是动态前瞻。

回复 支持 反对

使用道具 举报

18

主题

538

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3571

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
2352
贡献
593
兑换币
1447
注册时间
2016-8-9
在线时间
313 小时
9#
发表于 2018-2-17 23:30:26 | 只看该作者
对楼主 “曲率小的时候应该使用较小的前瞻”  这个并不是理解的很好。  个人理解,在可信范围内,取适当大的前瞻方便得到更多有用的信息,不是更便于路径的规划么
回复 支持 反对

使用道具 举报

21

主题

366

帖子

0

精华

跨届大侠

种下一块板砖

Rank: 10Rank: 10Rank: 10

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 15:15 , Processed in 0.051081 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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