智能车制作

标题: 大家来一个思路大碰撞 [打印本页]

作者: make1573    时间: 2015-2-6 21:13
标题: 大家来一个思路大碰撞
看着大家在寒假还在实验室大秀操作,回家党真的不能忍了,已经不能继续再坐等过年,必须要冒个泡
好久都没有看见技术分享交流贴了,知道寒假里面每天水论坛的人也很多,我来跟大家分享分享做摄像头的一些看法,顺便跟好多新手扫扫盲,我不是大神,有意见或者错误的地方赶快喷我
我用的ov7620摄像头,模拟摄像头第一个麻烦问题就是像素分辨率,我看见论坛好多新手都说减少像素点怎么视野偏左了,这是你们的第一个错误认识,改变DMA采集像素点数并没有改变分辨率,仅仅就只是采集了一整幅图左边的部分,所以想改变分辨率要么软件配置sccb要么硬件分频。(当然还有好多人用for循环隔几行或者隔几列赋值压缩像素矩阵,测试过不是太稳定)
软件配置sccb不会用,改过0x111214地址寄存器分辨率都没有变化。会的教我一下
硬件分频才是正道,不过我不是搞硬件的,具体怎么弄也不是很清楚。不过貌似大神们都是用的74ls74芯片,据说用D触发器分频会发生锯齿波形,所以用集成芯片。我以我现在摄像头的分辨率为例子,600*240行(我也不知道为什么不是资料上面的640*480),计划对于PCLK六分频(大部分都是四分频,这里我想大胆创新)得到100列像素,对于HREF四分频得到60行,综上所述这样采集回来的像素就是100*60,而且是整个摄像头的视野。
对于HREF的分频方法也可以用软件的方式在中断中用更改,即行中断来时标志位+1,实现隔行进中断采集。
顺便提一下,我用的是岱默科技的摄像头历程,他的历程中对于sampleflag的处理不够完善,所以发送到上位机的图像会发生抖动以及重复等一些情况。
重点来了,黑线提取算法
我用的是跟踪边缘提取,用最简单的相邻像素做差就行,跟踪就是在上行黑线位置附近搜索下行黑线位置。相比于去年做光电组用阈值法感觉鲁棒性好的多,可是由于是在家用matlab做仿真,真的不知道具体效果怎么样,贴上几张图求大神吐槽。由于还没有做逆透视,所以现在只用了斜率还没有用曲率,斗胆问下北科车切内弯切的那么溜就是用的曲率么?
十字弯也是一个问题,只做了正入补线的算法,由于不在实验室就暂时没考虑斜入的情况,但是看到车友发的斜入十字的图,感觉不容乐观啊~~目前觉得其实斜入或者大弯道貌似可以根据左右两边黑线的斜率来判断,如果斜率同向,就需要舵机大幅度转弯了。
[attach]74466[/attach]
                 十字 斜入的情况
还有传说中的直角弯,感觉跟容易判断成十字,然后直冲就悲剧了,看来前面的黑线提醒很有必要作为特征纳入算法。
中心引导线也是,用跟踪算法的话此时左右两边肯定是都丢线的(十字弯道也是两边丢线),可以在两边黑线丢线的时候在上行左右黑线中间的位置重新跟踪搜索,找到找不到黑线就能把十字弯和中心引导线区分开,
时序控制也是难点,现在初步考虑在每幅图像采集完成后进行黑线提取,然后运用pit得到10msflag以及20msflag,在主函数中运用if判断对舵机20ms控制一次,电机10ms控制一次。
哎不在实验室就是不方便,想尝试下算法还有时序行不行的通都不知道,只有每天苦逼的做仿真调模块,最近调sd卡模块也是不容乐观,敢问大神怎么将数组保存成bmp格式
貌似今天说的有点太详细了,做车就是要沉的下气,静的下心尝试新算法慢慢撸程序,别人的程序远远没有自己写的程序好,只是很多思路可以借鉴,程序就是要多写多试,从感性到理性的一个升华,多看看技术报告,做车也是不要怕自己动手能力低,什么东西都要去试试,不要轻易否定自己的一个想法
大家闲着也是闲着,快粗来交流交流


作者: 六步上篮    时间: 2015-2-6 21:43
说得好
7620的话PCLK个人觉得D触发器4分频后正好,接近160个点不多不少,至于三角波还真没测过,但是图像是没问题的。
单线和你想的一样,边上找不到了就去中间找找看。
至于仿真,你还有个matlab仿真,我只带了个摄像头回来
作者: Quixote    时间: 2015-2-6 21:45
想法不错、点个赞
作者: xhx331153066    时间: 2015-2-6 22:22
赞一个
作者: zhang2292650292    时间: 2015-2-6 22:50
:lol:lol
作者: make1573    时间: 2015-2-6 23:28
la9998372 发表于 2015-2-6 21:39
虽然不是摄像头,但是感觉写得很好,赞一个!

:lol你是什么组的

作者: make1573    时间: 2015-2-6 23:30
六步上篮 发表于 2015-2-6 21:43
说得好
7620的话PCLK个人觉得D触发器4分频后正好,接近160个点不多不少,至于三角波还真没测过,但是图像是 ...

我也带了摄像头回来,对着墙壁照了半天也找不到赛道的感觉,只有调调时序看看效果
话说还有什么好想法说出来

作者: make1573    时间: 2015-2-6 23:31
Quixote 发表于 2015-2-6 21:45
想法不错、点个赞

离诸葛大神还差的远,看来我还是太浮躁了

作者: make1573    时间: 2015-2-6 23:32
xhx331153066 发表于 2015-2-6 22:22
赞一个

哥们有什么好思路说出来听听

作者: lions    时间: 2015-2-7 01:12
:lol:lol那个bmp文件的保存,你可以看看野火写的stm32的那本书,其实就是加个文件头而已
作者: 我们的故事很多    时间: 2015-2-7 10:07
mark一个,不错呦
作者: 无酒亦醉    时间: 2015-2-7 11:25
:lol:lol:lol:lol:lol:lol
作者: fbhsy    时间: 2015-2-7 11:48
赞同此观点:可以参考别人的思路,但程序一定要自己慢慢撸,自己动手写才能真正了解和成长。
现在很多新手来就伸手要程序、要电路,实在是惯坏了,有楼主之思想及态度,定能取得好成绩
作者: BARK    时间: 2015-2-8 12:05
思路很好,我现在中心引导线遇到的问题是没办法将中线和赛道丢线区分开来
作者: make1573    时间: 2015-2-8 14:11
BARK 发表于 2015-2-8 12:05
思路很好,我现在中心引导线遇到的问题是没办法将中线和赛道丢线区分开来

能把上位机返回的图像发出来看看吗

作者: 砖家君已歇菜    时间: 2015-2-8 16:30
小白来看看
作者: BARK    时间: 2015-2-9 15:45
make1573 发表于 2015-2-8 14:11
能把上位机返回的图像发出来看看吗

[attach]74533[/attach]
是我跟踪边沿没做好吗

作者: make1573    时间: 2015-2-9 17:25
BARK 发表于 2015-2-9 15:45
是我跟踪边沿没做好吗

       我的想法是由两边引导线变成中心引导线设置一个标志位,标志位置1时就是中心引导线,然后就只搜索就行了,部分左右,中心线丢线时向两边搜索,如果能搜到左右两黑线,就正面退出中心引导线了,标志位置0       我现在还是在做仿真,所以还没有实测过,你是怎么搜索中心引导线的呢?

作者: BARK    时间: 2015-2-10 17:36
make1573 发表于 2015-2-9 17:25
我的想法是由两边引导线变成中心引导线设置一个标志位,标志位置1时就是中心引导线,然后就只搜索 ...

话说我也是按你思路写的,但是不知道是不是摄像头视野的原因,误判率太高...

作者: 43380249    时间: 2015-2-12 03:55
大婶你好,你家的山头要为你而自豪了,芯片烧了,画图去了





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