智能车制作

标题: 线性CCD中线提取顺序 [打印本页]

作者: 小车车    时间: 2014-5-9 17:15
标题: 线性CCD中线提取顺序
我的线性CCD是从中间向两边寻找黑线的,原来是从坐标为64的点向两边寻找,后来发现这样似乎不太好,一是考虑到有可能拐弯的时候64这个点突然扫到黑线。可能直接冲出去,还有就是感觉扫描速度似乎有点慢,后来采用从上次中线的位置向两边扫描,这样是不是可以就避免了把左线当成右线的情况和把右线当成左线的情况,但是为什么走圆圈的时候有的时候还是舵机突然向外打角。做光电的分享下自己的思路吧。

作者: 1224091496    时间: 2014-5-9 17:21
丢线了吗
作者: 浅醉    时间: 2014-5-9 20:28
从左向右寻跳变
作者: 狂野的庄稼汉    时间: 2014-5-9 21:33
那是你考虑的补全,没有把该有的情况用算法矫正过来
作者: zhou1994    时间: 2014-5-9 21:58
这样基本上可以避免左右误判,你的问题应该是没有双丢线处理
作者: 小车车    时间: 2014-5-9 22:28
1224091496 发表于 2014-5-9 17:21
丢线了吗

后来发现走比较小的圈走不了,总是跑着跑着就出去,顺时针还好,逆时针根本不行。

作者: 吖_锐    时间: 2014-5-9 22:39
小车车 发表于 2014-5-9 22:28
后来发现走比较小的圈走不了,总是跑着跑着就出去,顺时针还好,逆时针根本不行。

算下你的舵机打角两边PWM是不是比较平均的,有可能是不对称的,这样会导致一边打角不够

作者: 麦田里的守望者    时间: 2014-5-9 22:54

作者: 竹音清影    时间: 2014-5-9 23:08
发数据看
作者: 1224091496    时间: 2014-5-10 11:31
小车车 发表于 2014-5-9 22:28
后来发现走比较小的圈走不了,总是跑着跑着就出去,顺时针还好,逆时针根本不行。

可能是全丢线在找回线没处理好

作者: 小车车    时间: 2014-5-10 12:34
1224091496 发表于 2014-5-10 11:31
可能是全丢线在找回线没处理好

也许是吧,我的赛道的背景色是蓝色的,当右线出现在左边视野偏左的地方,或者左线出现在右方视野偏右的地方变化非常不明显。这也是个硬伤。
作者: 1224091496    时间: 2014-5-11 14:47
小车车 发表于 2014-5-10 12:34
也许是吧,我的赛道的背景色是蓝色的,当右线出现在左边视野偏左的地方,或者左线出现在右方视野偏右的地 ...

有可能是镜头畸变呢

作者: 小车车    时间: 2014-5-11 15:33
1224091496 发表于 2014-5-11 14:47
有可能是镜头畸变呢

能解释下不,不太理解镜头畸变什么意思,什么会导致这种情况呀。

作者: 我们一起走过    时间: 2014-5-11 16:03
中间往两边找
作者: 值得    时间: 2014-5-16 21:50
/ 中线提取 NO2: 动态取中线
// 函数: void PickMidLine(unsigned char *ImageData)
// 功能:中线提取
//说明:中线提取

void PickMidLine(unsigned char *ImageData)
{
unsigned char r,l;
unsigned char Right_point,Left_point;
static unsigned char Mid_line=64;
////////////////////// 以 64 为中心 ->向右找边界 //////////////////// /
for(r=0;r<128;r++)
{
if(ImageData[Mid_line+r]==0&&ImageData[Mid_line+r+1]==0&&
ImageData[Mid_line+r-1]==100&&ImageData[Mid_line+r-2]==100)   
{                                                                   //  
Right_point=Mid_line+r;
break;   
}
else      
Right_point=Mid_line+75;         
}
//----///////////////////(64-l)以64为中心<-向左找边界///////////////////
for(l=0;l<=128;l++)
{
if(ImageData[Mid_line-l]==0&&ImageData[Mid_line-l-1]==0&&
ImageData[Mid_line-l+1]==100&&ImageData[Mid_line-l+2]==100)                        
{         

Left_point=Mid_line-l;
break;                                          
}
else     
Left_point=Mid_line-75;
Mid_Error=(Right_point+Left_point)/2-64;
Mid_line=(Right_point+Left_point)/2;}
}
帮忙看看是不是有错误
作者: 1224091496    时间: 2014-5-17 19:03
小车车 发表于 2014-5-11 15:33
能解释下不,不太理解镜头畸变什么意思,什么会导致这种情况呀。

ccd不好 你测试一下 边缘的图像和中间一样吗
作者: stxhb    时间: 2014-5-17 20:17
如果赛道背景是蓝色的话,还好吧,毕竟左边就是上升沿,右边就是下降沿,,,如果背景是白色就情况比较复杂了,但我看官网回复背景不会和赛道颜色一样。先能识别赛道,能跑就行了,没必要纠结在这上面,当然,如果过了校赛,速度超过3m,,那就需要考虑各种赛道的适应能力了。
作者: zy199    时间: 2014-5-17 23:28
你们有没有遇到过这种情况,将车子放在跑道上,然后用手轻微抬起车后面,然后左右晃动车子,这时如果你晃的比较慢,图像算出来的中点无误,但是,如果你猛烈的左右晃,你会发现算出来的中点错了。。如果没遇到的可以去试一试,晃动速度一个要快,就像你快速出拳的那个速度。
作者: 小车车    时间: 2014-5-18 11:54
zy199 发表于 2014-5-17 23:28
你们有没有遇到过这种情况,将车子放在跑道上,然后用手轻微抬起车后面,然后左右晃动车子,这时如果你晃的 ...

好像有过。你的意思是即使上次中点开始扫描因为速度快,没有扫到本次左右线。

作者: 小车车    时间: 2014-5-18 11:57
1224091496 发表于 2014-5-17 19:03
ccd不好 你测试一下 边缘的图像和中间一样吗

我用的是蓝宙的无畸变镜头,但是移动到边沿的时候就不如中间明显,左线出现在右方视野或者右线出现在左方视野就不是太明显了,感觉很平滑,你用的是什么镜头啊。是不是那个广角81度镜头啊。

作者: zy199    时间: 2014-5-18 13:10
小车车 发表于 2014-5-18 11:54
好像有过。你的意思是即使上次中点开始扫描因为速度快,没有扫到本次左右线。

扫是扫描出来的,只是找到的中点是错误的。

作者: abacrya、军    时间: 2014-5-18 13:20
我之前也有这样的问题。。。原因是数据溢出。。   还有就是要考虑左右线都丢失的情况          。。我也是从中间开始扫描的,,,,我一次采集四组数据。。。第一组中点用  64     第二组用第一组求来的中点。。。依次类推    。。。。。但是还是要做好丢线处理         我是我的方法  希望可以帮助到你  
作者: 刘健    时间: 2014-5-18 21:45
表示 有同感!!!
作者: 小车车    时间: 2014-5-19 20:56
zy199 发表于 2014-5-18 13:10
扫是扫描出来的,只是找到的中点是错误的。

有没有什么办法解决,为什么我感觉CCD放的也是正的,车放在赛道中间,走走就偏离中线了。有点偏右走。

作者: 小车车    时间: 2014-5-19 20:57
abacrya、军 发表于 2014-5-18 13:20
我之前也有这样的问题。。。原因是数据溢出。。   还有就是要考虑左右线都丢失的情况          。。我也是从 ...

谢谢,我会尝试使用的。

作者: 我快乐    时间: 2014-5-20 09:55
小车车 发表于 2014-5-19 20:56
有没有什么办法解决,为什么我感觉CCD放的也是正的,车放在赛道中间,走走就偏离中线了。有点偏右走。

我们的也是这样啊,你们找到原因了嘛?我们车如果速度大了在走完大S进直到后舵机来回晃的特别厉害

作者: 钢琴曲    时间: 2014-6-28 13:42
把左线当成右线就会按照右线的打角了这样车子一定会冲出赛道

作者: 516731729    时间: 2014-6-28 16:53
楼主我跟你情况一样.把固定64改成上次效果是会好点。但是速度一快的话还是会出去。我感觉是补线没不好,另一队的车过十字贴着外弯跑,速度也不出弯。所以考虑算法问题
作者: 东成西就    时间: 2014-6-28 17:24
是你丢线没处理好,我之前也是,前瞻加不上去,后来改了算法,吧丢线处理好,就可以了,感觉还是算法比较重要
作者: 后天发货    时间: 2016-5-17 19:32
东成西就 发表于 2014-6-28 17:24
是你丢线没处理好,我之前也是,前瞻加不上去,后来改了算法,吧丢线处理好,就可以了,感觉还是算法比较重 ...

问下,可以说一下丢线怎么处理?我是新手,这个问题就是解决不好,谢谢啦

作者: ambition0123    时间: 2016-7-3 11:13
后天发货 发表于 2016-5-17 19:32
问下,可以说一下丢线怎么处理?我是新手,这个问题就是解决不好,谢谢啦

解决了吗?同为新手

作者: ambition0123    时间: 2016-7-3 11:14
厉害,还不太懂啊
作者: 廖仔    时间: 2016-7-4 11:45
我快乐 发表于 2014-5-20 09:55
我们的也是这样啊,你们找到原因了嘛?我们车如果速度大了在走完大S进直到后舵机来回晃的特别厉害

怎么判断左线还是有线


作者: 廖仔    时间: 2016-7-4 11:48
左线还是右线怎么判断






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