智能车制作

标题: 连续S弯道求解(中线半径75CM) [打印本页]

作者: abacrya、军    时间: 2014-5-23 10:05
标题: 连续S弯道求解(中线半径75CM)
我现在有一个问题,,,我把程序优化 后,执行一次大约8MS,执行一次控制一次舵机,    也做了丢线处理:如果左右线都没有找到,则将上次计算中值赋给本次。。。。。。。。。在连续s大弯时,会出现转过一定角度(大约100度,我的前瞻大约45CM)之后切出去的情况。。。。我将数据传送到上位机,  发现 偏移量突然从40跳变到-40   或者从-40跳变到40    ,,,,然后     我在程序里面也写了限定,当两次的偏移量的差值的绝对值大于40时,则将上次的偏移量赋给本次           但是还是过不去。。。求解!   
谢谢 了

作者: Jyoun    时间: 2014-5-23 10:14
多看看,你没有看对。
作者: abacrya、军    时间: 2014-5-23 13:17
Jyoun 发表于 2014-5-23 10:14
多看看,你没有看对。

主要还是观察 偏移量么?    我用一个数组记录了三次的中线值,不断跟新,,然后在和当前的一起求加权平均数,,,, 但是问题还是存在
作者: Jyoun    时间: 2014-5-23 13:43
abacrya、军 发表于 2014-5-23 13:17
主要还是观察 偏移量么?    我用一个数组记录了三次的中线值,不断跟新,,然后在和当前的一起求加权平均 ...

不找到原因,你记录n次都没有用。

作者: abacrya、军    时间: 2014-5-23 14:40
Jyoun 发表于 2014-5-23 13:43
不找到原因,你记录n次都没有用。

我用ccd上位机看了一下。假如小车现在右转180度。。转过90度后看到的黑线就在正中间,,,线往左偏一点就判断为左线了,就自动把右线补出来。处理后继续右转,这个情况是我想要的,     但是稍微右偏一点。。。就把左线补出来。。结果处理的舵机开始左偏。。切出跑道、、、不知道怎么解决。。。
作者: Jyoun    时间: 2014-5-23 15:05
abacrya、军 发表于 2014-5-23 14:40
我用ccd上位机看了一下。假如小车现在右转180度。。转过90度后看到的黑线就在正中间,,,线往左偏一点就 ...

想办法不要识别错左右线。

作者: 我们一起走过    时间: 2014-5-23 18:59
连续的s我现在只能减速跑
作者: abacrya、军    时间: 2014-5-23 19:30
我们一起走过 发表于 2014-5-23 18:59
连续的s我现在只能减速跑

嗯  我的减速也可以过。。但是我想把速度提上来、、、

作者: abacrya、军    时间: 2014-5-23 19:33
Jyoun 发表于 2014-5-23 15:05
想办法不要识别错左右线。

能给我 个思路么?  谢谢了
作者: ※失舵    时间: 2014-5-24 02:04
感觉是数据类型在作怪
作者: MicroJIA    时间: 2014-5-24 07:37
换个超大广角CCD镜头
作者: abacrya、军    时间: 2014-5-24 10:20
※失舵 发表于 2014-5-24 02:04
感觉是数据类型在作怪

[attach]60157[/attach]我调试过。。发现没有数据溢出的情况    中值的最小值也是在20。。

作者: abacrya、军    时间: 2014-5-24 10:22
MicroJIA 发表于 2014-5-24 07:37
换个超大广角CCD镜头

   这个有点不好弄。。。。   我用岱默的CCD     只可以调焦距。。。这个行么?

作者: ※失舵    时间: 2014-5-24 23:18
abacrya、军 发表于 2014-5-24 10:20
我调试过。。发现没有数据溢出的情况    中值的最小值也是在20。。

看不出来,不好意思,你注意下你的处理程序,应该是数据类型和处理程序造成的,我们以前也出现过,你单步调试,慢慢看吧

作者: 灬爱    时间: 2014-5-25 00:03

作者: abacrya、军    时间: 2014-5-25 00:14
※失舵 发表于 2014-5-24 23:18
看不出来,不好意思,你注意下你的处理程序,应该是数据类型和处理程序造成的,我们以前也出现过,你单步 ...

嗯嗯  好的  谢谢啦

作者: 狂野的庄稼汉    时间: 2014-5-25 02:30
我的当时也是大s那有问题,线判断错误,稍微处理下就行了,根据上次和本次的值可以判断出是左线还是右线
作者: abacrya、军    时间: 2014-5-25 09:42
狂野的庄稼汉 发表于 2014-5-25 02:30
我的当时也是大s那有问题,线判断错误,稍微处理下就行了,根据上次和本次的值可以判断出是左线还是右线

那个值是    是采集的值还是处理的中线值,,我把我的处理再优化下            我把我的程序优化了一下,,,运行一次也只要5MS   ,  但是突然发现。。那个模拟示波器发送一次数据居然要8MS  ,,,,,,   我现在是把上次的中点记录下来,,,,下次处理数据就从上次的中点向两边找线,,,,这样左线就不再只在0-64内,,右线也不再只在64-128了,,,
作者: 狂野的庄稼汉    时间: 2014-5-26 10:38
abacrya、军 发表于 2014-5-25 09:42
那个值是    是采集的值还是处理的中线值,,我把我的处理再优化下            我把我的程序优化了一下, ...

不至于虚拟示波器发送需要那么多时间吧,你测的准确吗?

作者: abacrya、军    时间: 2014-5-26 11:30
狂野的庄稼汉 发表于 2014-5-26 10:38
不至于虚拟示波器发送需要那么多时间吧,你测的准确吗?

我 波特率设定定的是9600      ,测量周期是  在while(1)里面加一个IO口的翻转指令,,,然后用示波器测那个引脚。所得的周期除以二就是   while循环一次的时间了,,,,,    然后就是屏蔽发送,和发送分别测了,,,,

作者: 狂野的庄稼汉    时间: 2014-5-26 19:29
abacrya、军 发表于 2014-5-26 11:30
我 波特率设定定的是9600      ,测量周期是  在while(1)里面加一个IO口的翻转指令,,,然后用示波器测 ...

库里带了PIT测试的函数,不要用示波器

作者: abacrya、军    时间: 2014-5-28 20:47
狂野的庄稼汉 发表于 2014-5-26 19:29
库里带了PIT测试的函数,不要用示波器

嗯  现在大S可以过了,,,   在攻小S。。速度快了晃动也厉害。。正在想办法消除

作者: 狂野的庄稼汉    时间: 2014-5-28 20:57
abacrya、军 发表于 2014-5-28 20:47
嗯  现在大S可以过了,,,   在攻小S。。速度快了晃动也厉害。。正在想办法消除

小s换的厉害,那是参数不好
作者: 蛋炒面    时间: 2014-5-31 06:08
感觉是算的中线值不对。
作者: abacrya、军    时间: 2014-5-31 09:05
狂野的庄稼汉 发表于 2014-5-28 20:57
小s换的厉害,那是参数不好

擦赛道,擦轮胎,,,跑两圈,擦一次轮胎。。。不然第三圈就跑不完了,,,
作者: abacrya、军    时间: 2014-5-31 09:05
蛋炒面 发表于 2014-5-31 06:08
感觉是算的中线值不对。

现在可以完美过去(摩擦力够大。。。)

作者: 竹音清影    时间: 2014-5-31 09:06
:lol
作者: 狂野的庄稼汉    时间: 2014-5-31 10:13
abacrya、军 发表于 2014-5-31 09:05
擦赛道,擦轮胎,,,跑两圈,擦一次轮胎。。。不然第三圈就跑不完了,,,

对,擦赛道必不可少,哈哈,擦烂赛道,小车必成

作者: 1013956044    时间: 2016-3-9 13:17
abacrya、军 发表于 2014-5-31 09:05
现在可以完美过去(摩擦力够大。。。)

大s可以给点思路么  稍微一快舵机完全打不过来 就跑出去了





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2