ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:61KB ,
资源ID:6545722      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6545722.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能车控制算法.doc)为本站会员(fmgc7290)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

智能车控制算法.doc

1、智能车转角与速度控制算法1.检测黑线中点 Center:设黑、白点两个计数数组 black、white,从第一个白点开始,检测到一个白点,白点计数器就加 1,检测到第一个黑点,黑点计数器就加 1,并且白点计数器停止,以此类推扫描每一行;黑线中点=白点个数+ (黑点的个数/2 )2.判断弯直道:找出黑线的平均位置 avg (以每 10 行或者 20作为参照,行数待定 )avg=( =0 ) /算出相对位移之和(每一行黑线中点与黑线平均位置距离的绝对值之和)=0|avg|然后用 Curve 的大小来确定是否弯直道(Curve 的阀值待定) 。3.控制速度:根据弯度的大小控制速度大小。/*弯度检测函

2、数*/Curvecontrol ()int blackN; /黑点计数器 int whiteN; /白点计数器int centerN; /黑线中点位置int avg; /黑线中点平均位置int curve; /N 行的相对位移之和if(白点) +whiteN; /判断黑白点的个数else +blackN;centerN=whiteN+blackN/2; /每一行的黑线中点avg=(center1+center2+.+centerN)/N; /求出黑线中点的平均位置curve=(|avg-center1|+|avg-center2|+.+|avg-centerN|)/N /求出 N 行的相对位移

3、之和return curve; /返回弯度大小/*舵舱转角控制函数*/*黑线轨迹会指引小车的行驶方向,所以向左还是向右是由黑线决定的。*/*设 0 为小车正向行驶,-10 为向左的最大转角,+10 为向右的最大转角。*/*设小车实际行驶路线中心 A 相对于黑线中线 B 偏移量为 gap;gap 有正负之分,/gap 为正时,小车在黑线中线的右侧,应该左转;gap 为负时,小车在黑线中线左侧,应/该右转。转角的大小由刚刚得到的弯度 Curve 确定。*/Viewpointcontrol()Int gap, A, B;Int y; /*y 为舵舱的转角角度gap=A-B;If(gap0) 左转el

4、se if (gap0) 右转else 不变y=与 Curve 和 gap 有关的公式 ; /*y 有正负之分return y; /*返回转角角度/*速度控制函数*/*根据弯度的大小来改变速度大小*/Speedcontrol()Return speed;5.3.1 偏航距离的计算 由于已经获得了赛道中心线的位置,所以计算偏航距离的问题是选取何处的中心线的距离为当前的偏航距离。控制算法的执行周期为 40ms,如果赛车的速度为 2m/s,则在两次控制算法的执行中间,赛车要前进 8cm,赛车所处的环境将发生比较大的改变,所以赛车的控制只能算是半实时控制,这是所有使用摄像头作为主要寻线传感器的参赛队都

5、避免不了的问题。因为算法的滞后性,赛车需要将“当前位置”进行适当前移。前移量应该跟赛车当前速度成正比,但实际中我们发现,适当 增加一些前移距离是有好处的,因为可以在入弯处提前转弯,使得赛车沿弯道内侧行驶,缩短了过弯距离。5.3.2 偏航角度的计算计算偏航角度的实质是直线拟合问题,因为赛道中心线所在的直线确定了,而直线的斜率与偏航角度一一对应。直线拟合最有效的方法是最小二乘法7,但是直接应用存在一个问题,即如何确定进行直线拟合的区间?在整个成功识别出赛道的区间内进行直线拟合显然是欠缺考虑的,因为在弯道的情况下,这种方法拟合出的是一条弦线,而不是当前该弯道处的切线。摄像头视野越大,弯道曲率越大,弦

6、线偏离切线的程度也就越大。为了能够在直道和弯道上都能正确的拟合出正确的直线,我们采用了直线检测的方法,即首先根据残差的大小确定直线的范围,然后在这一范围内进行直线拟合。5.3.3 曲率的计算如果说斜率的计算需要某种技巧的话,计算曲率则更是一种技巧的应用。首届时很多参赛队针对各自的实际需要,提出了自己的方法。其中最普遍的是根据斜率的导数来计算曲率8。但是斜率的计算本身就很不准确,特别是某个点的斜率,对斜率求导就更不准确,所以使用这种方法只能得出一个大致的结果。本文作者提出了另外一种方法,首先对获得的路径进行滤波,使得路径尽可能平滑,然后取其两个端点和中间点,计算这 3 个点组成的三角形的外接圆的

7、半径,半径的倒数就是这段路径的曲率。经过多次实验,这种方法的误差一般不大于 20%,对智能车的控制来说已经足够了。让赛车从起跑线开始,在赛道上行驶一圈,记录下每个时刻的曲率,如图 5.9。 图 5.9 计算出的赛道曲率从图 5.9 可以看出,计算出的曲率能较为正确的反映实际赛道的弯曲情况。但是这种方法得出的曲率不是摄像头所看到的当前位置的曲率,而是摄像头所看到的路径的整体曲率,因为这种算法仅仅与路径中三个点的位置有关。然而实验中却发现,这种特点反而给赛车带来了一个好处:即摄像头在小 S 型弯道时舵机几乎不跟随路径的摆动而摆动,而是直线冲过。这是因为较小的 S 型路径其弯曲部分能完整的显现在摄像头的视野中,而算法中对路径进行了滤波,滤除了中间部分的弯曲,使得路径变直了,赛车因此就直线走过。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报