智能车摄像头组 障碍处理方法
智能车摄像头组中最重要的就是图像处理了,这里面的图像处理包括很多方面,比如十字如何处理,弯道如何处理,起跑线,障碍等等问题,接下来我要讲的就是障碍处理方法。
首先我们先描述一下障碍的形状,在智能车竞赛中障碍是一个长方形,距离边界有5CM的距离,这样在图像上显示出来时候就是(图1)所显示的样子
在这里面我们可以看到中线有明显的偏移,右边界也有明显的跳变,那么这个跳变我要怎么去提取呢,我第一步用的就是中心线的方差,通过计算方差来判断是否能够进入障碍程序,当中线的方差满足障碍条件后进入障碍处理程序,但是往往一个判断是不够准确的,进入这一个条件后我去判断边界的连续性,就是通过边界的跳变去查找,程序上如何实现呢,最简单的就是这样一句话。
if(cha1>=2&&abs(cha3-cha1)<=2&&abs(cha2-cha3)<=2)
在这里面cha1,cha2,cha3的定义呢就是
cha1=right_line[1][i-3]-right_line[1][i];cha2=right_line[1][i-3]-right_line[1][i+1];cha3=right_line[1][i-3]-right_line[1][i+2];
这里的定义就顾名思义了,就是判断连续点之间的差分,进而可以判断是否有跳变。判断完跳变之后呢还是不能达到100%的准确率。接下来在做的判断就是找到中间这个黑色的障碍,通常这个障碍所占的位置比较大,而且在中线与右边界的中间部分向上搜索一定会有黑色的障碍出现,那么这个时候就可以判断出来这个位置是障碍了,这段程序呢也很简单,就判断黑白就可以了。
当障碍处理完成后要怎么做呢,接下来就是控制的问题,在我这里控制就是将从障碍开始以后所有的中线都移向左边,这样就可以控制小车很轻松的避开障碍了。以上说的是障碍在赛道右侧的时候,如果在赛道左侧则同理就能得出。并且起跑线处理方法也类似。如果出现剐蹭现象只需改变一下舵机P值就可以得到很好地改善效果了。具体程序见评论中的链接,因为纯属自己编写的程序所以不是免费下载的。如果有其他需求大家可以联系我继续写一些图像处理方法。小车的效果可以在本人QQ空间中观看,有视频。 联系方式见评论。
智能车摄像头组 障碍处理方法相关推荐
- 智能车改舵机中值步骤_飞思卡尔智能车摄像头组新手指南(10)--控制算法进阶篇之舵机3...
曲率 彭岸辉 从理论上讲,相对于偏差量,曲率是智能车更好的一个控制变量.但由于路径检测单元的局限性,很难计算出非常精确的曲率. 注意:计算曲率的方法如果要提高精度,最好是能够将采到的畸形图像做一下校正 ...
- 第X届智能车摄像头组代码全解析------(六)摄像头获取图像
作者:Sumjess 本次博客内容: 该函数就是简单的获取图像的函数,如果对这部分不了解,可以去山外的历程了解一下,关于摄像头部分的参数,并没有进行参数更改.下面就把重要的参数部分截图下来. 帧数:1 ...
- 飞思卡尔智能车摄像头上位机…
原文地址:飞思卡尔智能车摄像头上位机采集程序 作者:玲声依旧美 基于飞思卡尔XS128单片机 摄像头采集测试程序 OV7620采集程序说明:摄像头数据口接PA0-PA7:行中断接PT0,场中断 ...
- 智能车电磁组——岔路
智能车电磁组--岔路 一.电感排布 二.岔路判定 三.入岔路 三.岔路内寻迹 四.出岔路 一.电感排布 电感排布方案可参考:学做智能车–电磁探究篇 二.岔路判定 岔路的处理很大程度上影响着电磁车的整体 ...
- 智能车电磁组——基本控制篇
智能车电磁组--基本控制篇 前言 滤波 什么是滤波 常见的软件滤波 1. 限幅滤波(又称程序判断滤波法) 2. 算术平均滤波法 PID控制 什么是PID控制 舵机控制 电机控制 目标速度的设置 前言 ...
- 智能车摄像头动态打角算法
智能车摄像头动态打角算法 核心代码 void xiaocao_function() {byte i, j;for (i = 0; i < final_line; i++){for (j = 0; ...
- 智能车电磁组——环岛处理
智能车电磁组--环岛处理 一.电感排布 二.圆环思路 1.入环 (1)预圆环 (2)入环 2.环岛内 3.出环 (1)预出环 (2)出环 三.代码部分 1.入环 2.圆环内寻迹 3.出环 一.电感排布 ...
- 十六届智能车全向组硬件开源 | 上海海事大学全向行进组
简 介: 卓大,不知道你能不能看到我的消息.今年是我做车的第三年了,也是最后一年了.三年里经历了许多,走了很多弯路,心里的感慨也不少.这两天在整理资料的时候顺手在CSDN上写了一篇全向组的硬件开源贴, ...
- ai电磁组属于什么组_飞思卡尔智能车电磁组分区算法介绍
写在之前的话: 1.目前我是一名在校学生,这也是我第一次写博客,不周之处,请多谅解: 2.此算法并非原创,借鉴自山东德州学院第八届白杨队(PS:个人看法,对于一些人把别人的开源东西改头换面一下就说是自 ...
最新文章
- Git 常用操作(2)- 创建标签
- 使用 LocalReport 对象进行打印
- 抬头看路,埋头干活(一)
- django rest-framework 1.序列化 一
- 针对远程主机认证生成并使用 SSH 密钥
- Java oracle查询语句无法赋值给_java.sql.SQLException: 无法转换为内部表示 -〉java 查询oracle数据库返回错误信息...
- python学习笔记--迭代器
- Suggestion [3,General]: 找不到命令 webpack,但它确实存在于当前位置。默认情况下,Windows PowerShell 不会从当前位置加载命令。如果信任此命令,请改为键
- python 控制语句
- 电大c 语言程序设计程序,中央电大 C语言程序设计A
- 圆柱属于能滚动的物体吗_滚动轴承中摩擦的主要来源,轧机轴承技术(一)
- 数据库习题(填空题二)
- vibe的matlab实现,Matlab調用VIBE算法
- Mac安装Xcode
- CryptoJS简单使用
- php eregi 返回值含义,Deprecated: Function eregi() is deprecated php5.3开始不支持eregi()函数...
- k8s 一套代码部署两个实例
- 3D游戏编程与设计作业六
- 晶振的各种参数代表什么意思?
- 计算机无法屏幕亮度,今天详解win10电脑屏幕亮度无法调节的具体解决手法