论文部分内容阅读
摘要:针对目前车辆倒车事故频发的问题,设计了一套可视化的倒车辅助系统,引导驾驶员安全准确地倒车。本设计采用MK60DN512处理器作为主控芯片,结合转向角采集、倒车影像采集以及车载液晶显示等单元构成。利用BP神经网络算法整定PID速度控制参数,控制车辆快速平稳运行。根据车辆的转向角,预测出倒车路径,并显示在车载液晶显示器上,为驾驶员提供引导,降低倒车难度,减少倒车事故的发生。实验结果表明,该系统的有较高的预测准确性。
关键词:倒车路径预测;机器视觉;倒车辅助
中图分类号:TP242.6
0 前言
在普通汽车中,驾驶者主要是靠后视镜以及倒车摄像头判断后方的情况和自身的定位。然而,由于这两者都存在不同程度的失真和畸变,可能使驾驶者判断不准。据调查统计,汽车事故中有15% 是由于后视不良造成的[1]。目前,解决此问题主要有两种思路:一种是寄希望于自动驾驶、自动泊车等技术,但是此类方式并不成熟,而且目前此类系统十分昂贵,少数高档的轿车上才有安装,而且由于现实中的路况较复杂,自动驾驶技术在倒车中的应用遇到了很多棘手的问题。因此,另一种基于倒车雷达、倒车摄像头等传感器设计的倒车辅助系统应运而生,而由于其功能简单,价格便宜,已得到较为广泛的应用[2]。但是目前的可视化倒车辅助系统的功能较为单一,仅能将倒车影像显示在车载显示器上,不能对给予驾驶员适当的引导。
1 硬件系统测试平台设计
可视化倒车辅助系统由主控芯片、转向角采集、倒车影像采集等单元构成。
1.1 主控单元
本系统采用Freescale公司的MK60DN512芯片作为主控芯片,是业内首款ARM Cortex-M4 内核芯片,其工作总线频率可达100MHz,完全能满足本设计中涉及的图像处理、路径测算、轨迹显示等任务。
1.2 倒车影像采集单元
本设计中采用Omni Vision公司生产的OV7620芯片,总有效像素单元为664×492像素,传输速率可以达到30帧每秒,能够清晰的显示出倒车影像,数据量也较小,适合用高速单片机进行采集和处理。同时,能够进行亮度、对比度、饱和度、γ校正等多种调节功能,避免在弱光情况下倒车影像不清楚的问题。
1.3 屏幕显示单元
本设计中的采用的是高性能的7寸液晶显示屏,屏幕分辨率为800*480,16位真彩色显示,能够清晰的显示出倒车影像。自带LCD控制器,拥有8MB的显存,可以提供8页的显存,屏幕还提供镜像翻转、背光控制等功能,使用也十分方便,十分适合本系统中的需求。
2 控制算法的实现
2.1 转向角的控制及获取
在本实验系统中,转向机构由伺服舵机及一些辅助机械结构组成的,主控芯片中产生周期为20毫秒的PWM(Pulse Width Modulation)信号,通过改变PWM信号的占空比来改变伺服舵机的输出角度,进而通过转向机构,带动转向轮转向,由于机械结构较为复杂,用理论计算的方式获取转向角度和PWM占空比关系计算量大,建模复杂,而且由于转向机构的制造误差等造成的累计误差难于考虑到模型中来,因此,我们另辟蹊径,利用最直接的实验方式,标定伺服舵机。首先,从1毫秒的占空比开始,逐渐缓慢增加PWM信号的占空比,调整转向角度到0度(即前轮指向正前方,相应的,左轉向角度为正,右转向角度为负,下同),记录此时的占空比的值。之后以固定的步进量增加占空比的值,同时记录每一个PWM占空比信号作用下的转向角,直到转向机构达到转向极限为止。同理,逐渐从0度时对应的占空比逐渐减小占空比的值,可得到另一侧的标定值。实验中标定伺服舵机的转向角和占空比关系如表1所示。
有了上表中的关系,利用matlab中的曲线拟合工具即可拟合出两者的关系,试验中,我们分别测试了一阶、二阶和三阶多项式拟合的效果,最终选定了计算精度满足要求且计算量小的二阶拟合方程,函数关系如下:
其中Angle为转向角,PWM为占空比,利用此公式,转向角就可以对应的占空比计算出来,当输出一个占空比时,对应的转向角既可通过此公式获取。
2.2 PID参数的整定
本设计中,实验小车采用直流电机控制小车的运动,电机驱动单元采用PWM控制小车的运动。为了能够使小车平稳、快速地运行,采用了数字增量式PID(Proportion Integration Differentiation)算法,控制实验小车的运行速度。
在实际过程中,受控对象的数学模型常由于非线性、参数时变等因素难以精确确定,一般的PID控制算法很难达到理想控制效果。若在传统PID控制的基础上,加入BP神经网络控制,可有效解决PID参数难确定和不确定的环境扰动带来的诸多难点,由于其可以逼近任意的非线性函数,且学习算法和结构都简单明确。因此,通过网络学习可以找到某一最优控制规律下的P、I、D参数。
采用BP神经网络可以建立参数kp、ki、kd的自学习PID控制器。其原理为:神经网络的输入状态对应PID控制器的可调参数kp、ki、kd,通过神经网络自身的学习、调整加权系数,使其稳定状态对应于某种最优控制规律下的PID参数。
经典增量式数字PID控制算法[8]:
中KP为比例系数,TI为积分时间常数,TD为微分时间常数,T为采样周期,ei为此时刻的误差,ei-1为前一时刻的误差,ei-2为前两时刻的误差。
本文采取三层BP神经网络结构,输入层的神经元个数根据被控系统复杂程度选取。设置如下参数,系统输入,系统输出,系统误差,和误差变量;输出层神经元的个数为3个,分别为Kp,Ki和Kd;隐层的神经元函数可选取正负对称的sigmoid函数:
输出层的神经元函数输出值可选取正的sigmoid函数: 系统性能指标取:
本文采用梯度下降法对BP神经网络的参数进行调整:
设输入层的个数为N,输出向量为,隐层个数为H,输入阵为,为H×N维向量,输出层的个数为3,输入阵设为。
1). 选定BP 神经网络NN 的结构,即选定输入层的节点数M 和隐含层的节点数Q,并给出权系数初值,选定学习速率η 及平滑因子α ,k = 1;
2). 采样得r(k) 和y(k) ,计算e(k) = z(k) = r(k) ? y(k) ;
3). 对r(i), y(i),u(i ?1),e(i)作归一化处理,当作NN的输入;
4). 前向计算NN各层神经元的输入和输出,NN输出层的输出,就是PID 控制器的三个参数;
5). 计算PID 控制器输出u(k) ,参与计算和控制;
6). 计算修正后输出层权系数;
7). 计算修正后隐含层权系数;
8). 置k = k +1,返回到2)。
在程序的设计中,按照上述公式编写程序,在速度控制方面,取得了很不错的效果。
2.3 轨迹预测的实现
首先,将转向角控制在0度位置,让小车从起点开始,以此转向角运动一段路程,距离以倒车摄像头能清晰识别为准,然后将小车放回起点,拍摄此时倒车影像,并通过蓝牙无线通讯单元上传到上位机中,即可获得倒车影像中的倒车轨迹,从倒车轨迹中取出一定的采样点,再利用MATLAB中的曲线拟合工具,拟合出采样点对应的轨迹方程,从而获得轨迹方程系数,本设计中使用多项式拟合公式,拟合阶数为3阶(阶数越高,拟合精度越高),因而可以得到A,B,C,D四个参数。之后,以固定的步进量,逐渐增加转向角--即逐渐向左步进转向,在每一个转向角时即按照上述方式,获取不同转向角时对应的拟合曲线。获取的左轨迹的拟合参数如表2所示。
表2 左轨迹拟合参数表
Table.2 Left track fitting parameters
同理可以获得右轨迹的拟合参数。在测完所有轨迹方程后,可以得到轨迹方程中每一个系数随着转向角的变化规律,此规律也可用函数关系来表示,本设计中采用公式3、公式4、公式5和公式6来拟合。
(15)
(16)
(17)
(18)
3 仿真测试结果及改进
经过对伺服舵机的标定,倒车路径标定以及路径方程参数变化规律的提取,即可无级地将每一个转向角对应的倒车路径计算出来,同时输出到显示单元。之后,本文對所预测的轨迹和实际轨迹进行对比。
通过对比看出,本系统所预测的倒车路径和实际倒车路径间的误差较小,因而能够较为准确地预测出车辆倒车时的运行轨迹,正确引导驾驶员倒车。
本设计中,虽然预测的轨迹误差较小,但是如果对精度要求较高的情况下,还可以从以下两个方面提高预测的精度:
1、提高采样点数。采样点数目越多,对标定轨迹的有效信息利用就越多,拟合的轨迹方程的精确度就会越高。
2、提高拟合阶数。本设计中采用的是三阶多项式拟合倒车轨迹所对应的曲线方程,当采用的拟合阶数越高时,拟合的效果会越好,但是过高的阶数会导致运行速度的下降。
4 结语
本文首先分析了当前倒车辅助系统的发展现状,针对目前存在的不足,设计了本仿真实验系统。通过摄像头标定、倒车轨迹拟合、轨迹方程系数规律提取等方法,预测出在连续转向输入的情况下,仿真小车的倒车路径。实验结果表明,本实验系统对倒车轨迹的预测精度较高,并提出了针对如何提高预测精度的改进方法,对于汽车辅助系统、智能汽车等领域的研究也有一定的借鉴意义和参考价值。
参 考 文 献
[1] 陈新成. 汽车电子发展趋势及中国市场分析[J]. 电子测试. 2007,(07):4-7.
[2] 柳洁. 基于模糊控制的汽车倒车辅助决策系统[D]. 广州:广东工业大学,2005.
基金项目:国家自然科学基金资助项目(51105170)
作者简介:陈龙冬(1991—),男,本科生,研究方向为计算机视觉在生物医学、智能机器人等系统中的应用。E-mail:[email protected].
通信作者:刘富(1968—),男,教授,博士生导师。主要研究方向为计算机视觉及模式识别、生物信息识别技术等。E-mail: [email protected].
关键词:倒车路径预测;机器视觉;倒车辅助
中图分类号:TP242.6
0 前言
在普通汽车中,驾驶者主要是靠后视镜以及倒车摄像头判断后方的情况和自身的定位。然而,由于这两者都存在不同程度的失真和畸变,可能使驾驶者判断不准。据调查统计,汽车事故中有15% 是由于后视不良造成的[1]。目前,解决此问题主要有两种思路:一种是寄希望于自动驾驶、自动泊车等技术,但是此类方式并不成熟,而且目前此类系统十分昂贵,少数高档的轿车上才有安装,而且由于现实中的路况较复杂,自动驾驶技术在倒车中的应用遇到了很多棘手的问题。因此,另一种基于倒车雷达、倒车摄像头等传感器设计的倒车辅助系统应运而生,而由于其功能简单,价格便宜,已得到较为广泛的应用[2]。但是目前的可视化倒车辅助系统的功能较为单一,仅能将倒车影像显示在车载显示器上,不能对给予驾驶员适当的引导。
1 硬件系统测试平台设计
可视化倒车辅助系统由主控芯片、转向角采集、倒车影像采集等单元构成。
1.1 主控单元
本系统采用Freescale公司的MK60DN512芯片作为主控芯片,是业内首款ARM Cortex-M4 内核芯片,其工作总线频率可达100MHz,完全能满足本设计中涉及的图像处理、路径测算、轨迹显示等任务。
1.2 倒车影像采集单元
本设计中采用Omni Vision公司生产的OV7620芯片,总有效像素单元为664×492像素,传输速率可以达到30帧每秒,能够清晰的显示出倒车影像,数据量也较小,适合用高速单片机进行采集和处理。同时,能够进行亮度、对比度、饱和度、γ校正等多种调节功能,避免在弱光情况下倒车影像不清楚的问题。
1.3 屏幕显示单元
本设计中的采用的是高性能的7寸液晶显示屏,屏幕分辨率为800*480,16位真彩色显示,能够清晰的显示出倒车影像。自带LCD控制器,拥有8MB的显存,可以提供8页的显存,屏幕还提供镜像翻转、背光控制等功能,使用也十分方便,十分适合本系统中的需求。
2 控制算法的实现
2.1 转向角的控制及获取
在本实验系统中,转向机构由伺服舵机及一些辅助机械结构组成的,主控芯片中产生周期为20毫秒的PWM(Pulse Width Modulation)信号,通过改变PWM信号的占空比来改变伺服舵机的输出角度,进而通过转向机构,带动转向轮转向,由于机械结构较为复杂,用理论计算的方式获取转向角度和PWM占空比关系计算量大,建模复杂,而且由于转向机构的制造误差等造成的累计误差难于考虑到模型中来,因此,我们另辟蹊径,利用最直接的实验方式,标定伺服舵机。首先,从1毫秒的占空比开始,逐渐缓慢增加PWM信号的占空比,调整转向角度到0度(即前轮指向正前方,相应的,左轉向角度为正,右转向角度为负,下同),记录此时的占空比的值。之后以固定的步进量增加占空比的值,同时记录每一个PWM占空比信号作用下的转向角,直到转向机构达到转向极限为止。同理,逐渐从0度时对应的占空比逐渐减小占空比的值,可得到另一侧的标定值。实验中标定伺服舵机的转向角和占空比关系如表1所示。
有了上表中的关系,利用matlab中的曲线拟合工具即可拟合出两者的关系,试验中,我们分别测试了一阶、二阶和三阶多项式拟合的效果,最终选定了计算精度满足要求且计算量小的二阶拟合方程,函数关系如下:
其中Angle为转向角,PWM为占空比,利用此公式,转向角就可以对应的占空比计算出来,当输出一个占空比时,对应的转向角既可通过此公式获取。
2.2 PID参数的整定
本设计中,实验小车采用直流电机控制小车的运动,电机驱动单元采用PWM控制小车的运动。为了能够使小车平稳、快速地运行,采用了数字增量式PID(Proportion Integration Differentiation)算法,控制实验小车的运行速度。
在实际过程中,受控对象的数学模型常由于非线性、参数时变等因素难以精确确定,一般的PID控制算法很难达到理想控制效果。若在传统PID控制的基础上,加入BP神经网络控制,可有效解决PID参数难确定和不确定的环境扰动带来的诸多难点,由于其可以逼近任意的非线性函数,且学习算法和结构都简单明确。因此,通过网络学习可以找到某一最优控制规律下的P、I、D参数。
采用BP神经网络可以建立参数kp、ki、kd的自学习PID控制器。其原理为:神经网络的输入状态对应PID控制器的可调参数kp、ki、kd,通过神经网络自身的学习、调整加权系数,使其稳定状态对应于某种最优控制规律下的PID参数。
经典增量式数字PID控制算法[8]:
中KP为比例系数,TI为积分时间常数,TD为微分时间常数,T为采样周期,ei为此时刻的误差,ei-1为前一时刻的误差,ei-2为前两时刻的误差。
本文采取三层BP神经网络结构,输入层的神经元个数根据被控系统复杂程度选取。设置如下参数,系统输入,系统输出,系统误差,和误差变量;输出层神经元的个数为3个,分别为Kp,Ki和Kd;隐层的神经元函数可选取正负对称的sigmoid函数:
输出层的神经元函数输出值可选取正的sigmoid函数: 系统性能指标取:
本文采用梯度下降法对BP神经网络的参数进行调整:
设输入层的个数为N,输出向量为,隐层个数为H,输入阵为,为H×N维向量,输出层的个数为3,输入阵设为。
1). 选定BP 神经网络NN 的结构,即选定输入层的节点数M 和隐含层的节点数Q,并给出权系数初值,选定学习速率η 及平滑因子α ,k = 1;
2). 采样得r(k) 和y(k) ,计算e(k) = z(k) = r(k) ? y(k) ;
3). 对r(i), y(i),u(i ?1),e(i)作归一化处理,当作NN的输入;
4). 前向计算NN各层神经元的输入和输出,NN输出层的输出,就是PID 控制器的三个参数;
5). 计算PID 控制器输出u(k) ,参与计算和控制;
6). 计算修正后输出层权系数;
7). 计算修正后隐含层权系数;
8). 置k = k +1,返回到2)。
在程序的设计中,按照上述公式编写程序,在速度控制方面,取得了很不错的效果。
2.3 轨迹预测的实现
首先,将转向角控制在0度位置,让小车从起点开始,以此转向角运动一段路程,距离以倒车摄像头能清晰识别为准,然后将小车放回起点,拍摄此时倒车影像,并通过蓝牙无线通讯单元上传到上位机中,即可获得倒车影像中的倒车轨迹,从倒车轨迹中取出一定的采样点,再利用MATLAB中的曲线拟合工具,拟合出采样点对应的轨迹方程,从而获得轨迹方程系数,本设计中使用多项式拟合公式,拟合阶数为3阶(阶数越高,拟合精度越高),因而可以得到A,B,C,D四个参数。之后,以固定的步进量,逐渐增加转向角--即逐渐向左步进转向,在每一个转向角时即按照上述方式,获取不同转向角时对应的拟合曲线。获取的左轨迹的拟合参数如表2所示。
表2 左轨迹拟合参数表
Table.2 Left track fitting parameters
同理可以获得右轨迹的拟合参数。在测完所有轨迹方程后,可以得到轨迹方程中每一个系数随着转向角的变化规律,此规律也可用函数关系来表示,本设计中采用公式3、公式4、公式5和公式6来拟合。
(15)
(16)
(17)
(18)
3 仿真测试结果及改进
经过对伺服舵机的标定,倒车路径标定以及路径方程参数变化规律的提取,即可无级地将每一个转向角对应的倒车路径计算出来,同时输出到显示单元。之后,本文對所预测的轨迹和实际轨迹进行对比。
通过对比看出,本系统所预测的倒车路径和实际倒车路径间的误差较小,因而能够较为准确地预测出车辆倒车时的运行轨迹,正确引导驾驶员倒车。
本设计中,虽然预测的轨迹误差较小,但是如果对精度要求较高的情况下,还可以从以下两个方面提高预测的精度:
1、提高采样点数。采样点数目越多,对标定轨迹的有效信息利用就越多,拟合的轨迹方程的精确度就会越高。
2、提高拟合阶数。本设计中采用的是三阶多项式拟合倒车轨迹所对应的曲线方程,当采用的拟合阶数越高时,拟合的效果会越好,但是过高的阶数会导致运行速度的下降。
4 结语
本文首先分析了当前倒车辅助系统的发展现状,针对目前存在的不足,设计了本仿真实验系统。通过摄像头标定、倒车轨迹拟合、轨迹方程系数规律提取等方法,预测出在连续转向输入的情况下,仿真小车的倒车路径。实验结果表明,本实验系统对倒车轨迹的预测精度较高,并提出了针对如何提高预测精度的改进方法,对于汽车辅助系统、智能汽车等领域的研究也有一定的借鉴意义和参考价值。
参 考 文 献
[1] 陈新成. 汽车电子发展趋势及中国市场分析[J]. 电子测试. 2007,(07):4-7.
[2] 柳洁. 基于模糊控制的汽车倒车辅助决策系统[D]. 广州:广东工业大学,2005.
基金项目:国家自然科学基金资助项目(51105170)
作者简介:陈龙冬(1991—),男,本科生,研究方向为计算机视觉在生物医学、智能机器人等系统中的应用。E-mail:[email protected].
通信作者:刘富(1968—),男,教授,博士生导师。主要研究方向为计算机视觉及模式识别、生物信息识别技术等。E-mail: [email protected].