农业机器人导航系统故障检测模块的设计
2015-10-21郝昕玉姬长英
郝昕玉 姬长英
摘要 介绍了一种基于时间序列理论建立的故障检测模块。该检测模块可用于自主移动农业机器人导航系统的故障诊断。检测模块的设计思想就是通过对导航系统中定位传感器GPS正常和故障情况下输出的随机漂移信号进行分析,得到一种判断GPS性能故障的规律,即建立AR模型进行时间序列分析。利用K-L信息测度函数作为判别函数来检测系统故障。
关键词 导航系统;故障检测模块;时间序列
中图分类号 S24 文献标识码 A 文章编号 0517-6611(2015)34-334-03
自主移动农业机器人是电池驱动,有4只轮子,能自由行走在农田里的一种移动平台。并且能够自动完成相关指令,动作或者任务的一类轮式农业机器人。这类农业机器人用途很广,发展前景很好。比如在农田水果采摘中,利用视觉系统、全球定位系統等完成自主导航,通过机械手设备摘取果实,从而完成农田采摘的作用。
在研究自主移动农业机器人的领域当中,很多研究的前提都是假设农业机器人系统能工作在理想状态中。但实际上自主移动农业机器人在田地的真实环境中工作,由于工作环境复杂,难以预料的情况较多,很容易出现故障, 尤其是其机械部件和控制系统极易出现故障。故障的类型很多,以故障产生的部位来分,可以分为零部件故障、执行器故障和传感器故障。以分析自主移动农业机器人本身的特点,传感器故障最为常见,比如强光反射、多种多样的光照条件、阴影、杂物和路面不平整等因素在不同程度上会影响视觉传感器的精度,导致其出现不可预测的故障;多路径、大树、天气变化、高层建筑物以及其本身的故障等引起的测量误差,都将影响GPS提供的信息丧失正确性。 这些原因引起的故障,人没有办法直接进行干预或者是直接干预的代价太高。如果这些故障没有得到及时处理或者是没有被检测出来,那么自主移动农业机器人将会以一种危险的方式或者不可预测的方式运行。这不仅会使自主移动农业机器人的使用寿命缩短,甚至会使自主移动农业机器人不能正常工作,最终很可能产生非常严重的事故。所以必须安装机器人导航系统故障检测模块,以提高其作业的安全性。为此介绍了一种适用于自主移动农业机器人导航系统的故障检测模块。
1 工作原理
在没有研制出检测模块之前,自主移动农业机器人导航系统采用传统的故障检测模式,通过实际值与设定的阈值进行比较,若超出允许范围,则认为输出值出现异常或故障;反之,认为工作正常。显而易见,这种故障检测和诊断方式不但准确性和可控性较差,而且对于某些故障仍无法检测。另外,定位传感器GPS正常工作时的输出信号并不是在某一状态下维持一个固定值不变,且由于受到常值漂移及外界干扰等因素的影响,其信号特征比较复杂,因此传统的故障检测方式准确率不高。为达到对其进行性能检测和故障诊断的目的,设计并研制了定位导航系统的专用检测模块。
故障检测模块的工作流程如图1所示。导航系统进入将要检测的状态时,定位导航系统的专用检测模块通过RS-232串行口向自主移动农业机器人的导航系统发送各种检测指令,定位导航系统随机进入相应的检测状态,同时把监测到的数据传到导航系统的专用检测模块,由检测模块完成数据的分析、处理、判断。检测过程中,工控机通过中断控制方式接收命令、采集数据、对数据处理及判断;检测过程由工控机自动完成,无需人工干预。
2 硬件配置
工业控制计算机作为整个自主移动农业机器人系统的控制中心,主要任务是负责各种数据的传输和相关处理,比如处理各种图像数据、采集编码器等传感器的信息、传送控制命令等,因此对于硬件的配置有很高的要求。自主移动农业机器人系统选用了台湾研华公司生产的工业控制计算机IPC510,主要配置:
CPU类型 Intel 奔腾4 2.4 GHz;
硬盘的容量80 GB;
内存的容量 512 MB;
显存128 MB;
其硬件组成如图2所示。
实现田间自主导航的关键问题是系统的供电问题,自主移动农业机器人的电源是由3个蓄电池组成,如图3所示。采用一块独立的12 V、60 AH铅酸蓄电池给工控机和下位机电动机控制器等微电子部分供电,避免驱动系统对控制系统的电磁干扰,自主移动农业机器人工作时通过逆变器将蓄电池的直流电转换为交流电后供给工业控制计算机;将其他两个12 V、100 AH铅酸蓄电池进行串联,输出电压为24 V,给功率消耗大的8个电动机供电。
图3 电源模块
3 软件设计
自主移动农业机器人导航系统故障检测模块的软件设计是基于Windows平台的Visual C++6.0和MATLAB7.0设计完成的。1984年,Math Works 公司推出的图像处理及数值计算软件即MATLAB软件。MATLAB软件可以实现图像处理、信号处理、自动控制、偏微分方程数值解、统计、优化、数值分析、等若干领域的图形显示和计算功能。其中集成的控制系统工具箱提供了有效的方法和途径可以进行分析和设计各种复杂的控制系统。在开始编译程序之前,必须正确设置VC的编译环境。
(1)设置 Visual C++6.0 的编译环境:点击菜单Tools/Options,打开Visual C++6.0设置属性页,进入Directories页面,在Show directories for下拉菜单中选择Include Files。添加路径为C:Program Files\Matlab704\extern\include(在Matlab的安装路径下),再选择下拉列表中的Library Files。添加路径为C:Program Files\Matlab704\extern\lib\win32\microsoft\msvc60(在Matlab的安装路径下)。编译环境设置好之后,以后使用中无需重新设置。
(2)库文件的添加:点击菜单Project/settings,进入Link页面,在Object/Library/Modules框中,添加库文件名,即libmx.lib、libmat.lib、libeng.lib。对于每个新的工程文件都要单独添加库文件。
(3)程序在使用engine函数的头文件,必须包含2个文件,即# include “engine.h”和# include “stdafx.h”。
(4)在应用程序中,添加调用Matlab引擎的程序代码:
void matlab_engine∷OnButton1()
{
// TODO:Add your control notification handler code here
Engine *ep;
{ If(!(ep=engOpen(NULL))) //打开MATLAB引擎
∷MessageBox(NULL,"Can start the MATLAB engine","VC调用matlab engine",MB_OK);
……
engEvalString(ep,"t=1:1:300;t=t;");
engEvalString(ep,"y=y;");
engEvalString(ep,"D=dataprocess(t,y);");
……
∷MessageBox((HWND)NULL,(LPSTR)buffer,(LPSTR)"MATLAB-whos",MB_OK);
D=engGetVariable(ep,"D");
engClose(ep);
}
Dreal=mxGetPr(D);
sprintf(buffer,"D=%f",Dreal[1]);
∷MessageBox((HWND)NULL,(LPSTR)buffer,(LPSTR)"Engwindemo.c",MB_OK);
mxDestroyArray(y);
}
(5)程序运行的界面与功能:这里只是采用无故障样本数据对程序进行演示。点击“载入路径”,软件将自动输入事先保存在记事本中的样本数据。该记事本与软件在同一目录下。程序的界面如图4所示。点击自主模式,在运行过程中,将调用MATLAB程序,对数据进行故障诊断,诊断结果如图5所示。
图4 程序运行界面
图5 程序运行结果
这里D表示参考残差序列{ωt}R和残差序列{ωt}RT之间的信息距离。这里D=0,表示待检测的时间序列所描述的工作状况是正常的。和之前所选择的无故障样本数据对程序进行演示是一致的。
4 结语
故障检测模块的设计成功,解决了自主移动农业机器人
导航系统故障诊断的难题。故障检测模块既可以获取自主
移动农业机器人导航系统的状态信息数据又可以完成系统
的性能分析和故障诊断,还可以保证导航系统的正常工作并
且性能指标不受影响。检测模块的工作原理为已有设备的性能检测和故障诊断提供了一种新思路。
由于自主移动农业机器人没有外部测试设备的检测接口,目前的故障检测模块只能通过串口获得系统内部的信息,一旦系统内部的计算机出现故障,将很难实施故障的诊断。由此得到一个提醒,在设计某个产品或系统时应充分考虑到它的检测性,预留检测接口,尽可能为以后的故障诊断提供必要的条件。
参考文献
[1] 林昌龙,刘开周.基于贝叶斯估计的水下机器人罗盘故障检测[J].控制工程,2015,22(3):559-563.
[2] 张亮,王继阳.MATLAB与C/C++混合编程[M].北京:人民邮电出版社,2008.
[3] 丁魏,戈振杨,卢衷正.GPS组合模糊控制的农田机器人导航系统设计[J].农机化研究,2015(9):109-112.
[4] 詹姆斯D·汉密尔顿.时间序列分析[M].斩云汇,等译.北京:中国社会科学出版社,1999.
[5] CARLSON J,MURPHY R R.Reliability analysis of mobile robots[C]//Proceedings of the IEEE International Conference on Robotics and Automation.USA:IEEE,2003:274-281.
[6] 赵琳,班镜超.组合导航联邦滤波故障检测技术研究[J].遥测遥控,2014,35(2):9-13.
[7] 慕军营,戚树,陈军,等.自动导航系统在农业中的应用及果园适用性分析[J].农机化研究,2014(7):6-12.
[8] 蒋美云,郭雷.机器人导航系统的设计与开发[J].计算机与数字工程,2014(10):1901-1904.
[9] 郝昕玉.自主移動农业机器人导航系统的故障诊断技术研究[D].南京:南京农业大学,2009.
[10] 安丘.农业机器人视觉导航系统及其光照问题的研究[D].南京:南京农业大学,2008.