导航系统软件设计

时间:2017-01-19 22:25:05 来源:论文投稿

1高速插秧机自动导航系统总体介绍

高速插秧机自动导航硬件系统包括中央处理器、激光三点定位系统、惯性传感器数据采集系统、插秧机控制系统、工况参数采集系统和无线数传系统等6部分。该导航系统的下位机通过无线数传模块打包给上位机,提供高速插秧机当前的位置坐标、前轮转角、航向角、车速、转弯角速度、角加速度以及其工作时的相关工况参数信息等。上位机导航软件系统根据采集到的参数,利用控制算法来控制插秧机的运动,达到导航目的。整个系统工作流程如图1所示。首先利用无线监控软件来遥控插秧机,让其绕着田块边缘行走一圈,建立一个田块的边界信息。根据田块的边界轮廓形状选择与之接近的标准田块形状,按照标准田块形状的规划方案规划出工作路径;然后,根据规划的路径、插秧机当前的运动状态和位置状态来制定相应的策略控制插秧机的运动,实现自动导航;期间还要进行工况参数的采集工作。

2自动导航监控软件系统设计

该监控软件采用VisualBasic6.0开发环境进行开发,是一种可视化的、面向对象的程序设计语言,而且VisualBasic6.0使用起来比较方便,能够为开发者提供工业级标准的通讯控件。本监控软件的设计是通过开发软件VisualBasic6.0中的MSComm控件与PC机相连的433MHz无线通信模块连接,从而完成串口数据的交换;接着,通过上位机PC机端口上的无线模块与插秧机上的无线模块进行无线通信;最终,完成上位机导航软件与下位机之间的数据通信。整个系统结构如图2所示。2.1插秧机遥控该系统对插秧机的遥控动作包括控制发动机的点火和熄火、运行挡位、运动方向,以及对车子驾驶模式的切换和制动等等。在该套插秧机的激光导航系统软件设计中,对于插秧机运动方向的控制主要是借助笔记本电脑的4个方向键;同时,通过设置快捷键的方式对插秧机的点火/熄火、制动以及驾驶方式进行快速切换。为提高对插秧机控制的可靠性,本系统采用了HOOK(钩子)技术对键盘的按键动作进行监视。HOOK(钩子)技术是Windows系统中一个具有强大威力的特性,运用该HOOK(钩子)技术主要是因为它能够对发向指定窗口的信息或事件通过应用程序进行截获和处理;同时,它不仅仅可以对某一个线程的事件进行先行拦截,还可以对整个Windows系统的事件进行先行拦截。HOOK(钩子)能够中途截获命令消息并获取控制权,即使系统应用程序没在桌面的最前面时,也能够响应上位机的按键动作,并能及时完成对插秧机的控制动作。系统软件研发中最常用的HOOK(钩子)包括H_CALLWNDPROC,WH_CALLWNDPRORET,WH_GET-MESSAGE,WH_KEYBOARD,WH_MOUSE,WH_HARDWARE,WH_JOURNALRECORD,WH_JOUR-NALPLAYBACK,WH_CBT。本系统中采用的是WH_KEYBOARD类型,通过该类型的HOOK(钩子)完成对键盘按键动作的监视工作,主要包括3个键盘监视事件,分别是KEY_PRESS、KEY_UP及KEY_DOWN。按下不同的方向按键,则能对插秧机的运动完成不同的控制。HOOK主要包括挂上、事件监视和卸除3个使用步骤,使用时还必须声明相应的API函数。HOOK(钩子)的挂上是通过调用SetWindowsHookEx函数来实现,但同时必须指定一个HOOK类型以及应用程序的切入点,其相关代码如下:DeclareFunctionSetWindowsHookExLib"user32"Alias"SetWindowsHookExA"(intidHook,HOOKPROChkprc,HINSTANCEhmod,DWORDdwTHreadID)其中:idHook用来表示要挂上那一种HOOK(钩子),当该值为2时则是对系统键盘进行监视;hkprc指Function对HOOK(钩子)消息进行处理时的地址;hmod若为LOCALHOOK,则可以是Null,若是RE-MOTEHOOK,则将该参数通过GetModuleHandle(".dll名称")的方式传入。dwThreadID是所希望挂上该HOOK的线程ID,当该参数设置为0时,则拦截系统中所有程序消息。当程序中应用的SetWindowsHookEx函数创建成功后,接下来需要按照严格的参数格式要求,同时运用Function对HOOK消息进行处理。该调用过程的代码如下:PrivateFunctionHookFunction(intnCode,WPARAMwParam,LPARAMlParam);其中:nCode是表示HOOK在什么情况下产生,同时代表动作的形态;wParam和lParam主要是用来判断系统消息,前提是当其随HOOK的种类和nCode的值变化而变化时。通常情况下,所需要的过程参数是通过Hook-Function以AddressOfHookFunction的方式传入的。当该应用程序执行完之后,则通过UnHOOKWindowsHookEx函数将HOOK卸除,但同样需要声明一个API函数。该函数格式如下:PrivateDeclareFunctionUn-HOOKWindowsHookExLib"user32"(ByValidHookAsInteger)AsInteger上述idHook是SetWindowsHookEx()的返回值。本套系统中运用无级变速器将插秧机前进、后退挡分成20个挡位,通过采用分比例遥控操作的方法对插秧机的运动方向进行控制。当按下电脑上的向上或向下按键(分别表示插秧机的前进和后退按键)不松开时,所设计的系统软件将每隔0.2s向下位机部分发一次前进或是后退的命令;下位机每接收到一条前进或后退指令,就会提高一个速度挡位,重复执行直到达到最大车体运动速度;松开则能自动维持车体当前速度状态。同样,完成车体左右方向的控制则是通过电脑上的左右按键,此处通过左右旋转到最大角度后将其平均分成20个挡位,按下方向键不松开,上位机会每隔0.1s向下位机发送转向命令;下位机接收命令则转向,按键松开则发出归中命令到下位机。为有效做到控制插秧机运动过程的安全性,系统设置不同的优先级,通过快捷键实现不同的功能。系统运行时,制动快捷键的优先级最高,且为一个按键,不管什么时候按下都会优先响应,熄火组合快捷键次之,接着是点火组合快捷键,其只有在熄火状态下才有效。同时,只有按了点火组合快捷键之后,系统才会响应方向控制按键,同时当遥控驾驶完成路径规划后才能有效切换驾驶模式。2.2插秧机行走路径规划试验时,该系统监控软件所得到的采集的田块轮廓曲线是一些离散的数据点,故需要对离散的数据点进行曲线拟合来得到准确的田块轮廓。插秧机在田间作业时的行走轨迹主要是直线行驶和转弯行驶。由于插秧机在实际作业过程中,受多种因素的影响,直线行走作业并非作得很标准的直线,故首先需要对插秧机直线行走的轨迹进行拟合。设系统监控软件对作业时插秧机采集到的坐标为一系列离散数据序列(xi,yi),i=1,2,...,m;为使这一系列点尽量落在一条直线g(x)上,故设该直线g(x)的拟合方程为g(x)=b0+b1x。通过以上拟合方法计算,可以确定直线段方程g(x)=b0+b1x,从而可以在插秧机作业行走的过程中根据采集的当前坐标点实时进行数据的拟合,最终得到一条完整的直线。插秧机作业时的另外一种常见曲线轨迹即是掉头转弯。本系统为精确地描述插秧机在掉头转向时的曲线轨迹特征,采用的是最小二乘法的3次多项式对坐标点进行拟合,设三次多项式方程为f(x)=a0+a1x+a2x2+a3x3(3)同时,设该监控系统软件采集到n+1个坐标值(xi,yi),i=0,1,2,...,n。如此通过上述方程组可以唯一地解出a0,a1,a2,a3,从而可以得出三次多项式曲线方程。通过上述一系列计算,当插秧机沿田块走完一圈后就能够得到田块的轮廓曲线。与此同时,系统为实现路径规划,制定了两种标准的矩形和梯形田块的路径规划方案,而且根据实际标准田块的边长尺寸设计了相应的作业规划路径,如图3~图5所示。其中,图4和图5中L为插秧机的幅宽。在获得田块轨迹后,可以通过软件系统的田块选择功能选择合适的田块形状,导航系统软件会根据采集到的田块尺寸并参照图4和图5的几种规划方案规划出合适的路径,并且在软件的电子地图上显示出规划路径。2.3自动导航高速插秧机在作业行驶过程中,为了使作业路线沿着规划的路径行驶,除必须知道其当前的位置、航向及速度外,还需要对插秧机进行精确的导航控制。为实现插秧机的自动导航,该系统设计了一个控制插秧机车速和方向盘转角的控制器。由于插秧机工作时运行速度基本不变,故运用基于路径规划的路径弧度的动态预瞄方法对插秧机做出横向偏差和航向偏差的决策。对插秧机的导航采取模糊控制方法,同时对插秧机的转向利用模糊免疫PID控制算法进行控制。整个导航系统的控制原理如图6所示。当插秧机进行自动导航时,系统将实时计算规划路径中下一目标点的弧度值,并根据当前的位置y计算出当前航向角偏差θs和横向跟踪偏差值HXE;方向盘转角模糊控制器结合航向角偏差、横向跟踪偏差以及当前作业速度计算出插秧机期望转角αm;然后,系统再根据期望转角和当前转角之差Δα,利用模糊免疫PID控制器计算出驱动转向步进电机的脉冲数f。这样,系统根据脉冲数来产生相应的脉冲,从而驱动步进电机控制器使其控制步进电机的转动,也就控制了插秧机转向。在插秧机行驶速度一定的情况下,转向控制模糊免疫PID控制器的结构如图7所示。2.4导航试验分析试验在水泥平地上进行。首先,用导航系统的遥控功能遥控插秧机行走成一条曲线,采样周期为200ms,采集的曲线轨迹如图8中双点画线所示;然后再将插秧机放置于遥控起点附近调整好插秧机的航向角后进入自动导航状态。从图8可以看出:在导航开始的阶段,效果并不十分理想。根据坐标算出两次起始点有2.9m的距离,距离较远,所以导致在导航的开始阶段两条曲线偏离较远,之后效果较理想。根据最小二乘法拟合两条曲线后,求得导航平均偏差为0.087m。

3结论

利用VisualBasic6.0开发环境开发了基于激光导航的高速插秧机无线监控软件系统。试验中,软件能正常完成插秧机的遥控驾驶、田块匹配、路径规划、自动导航以及工况数据的采集,为开发低成本的农业机械自动导航系统提供了参考。为了试验的方便性,本软件在标准田块形状的选择上只选择了两种比较规则的形状;然而在我国南方丘陵地区,田块的形状非常复杂。因此,以后的研究一方面主要是针对田块形状的匹配和路径规划算法,提高适应性;另一方面,是更好地优化自动导航控制算法,进一步提高导航精度。

作者:熊中刚 贺娟 罗素莲 单位:遵义师范学院 物理与机电工程学院


更多社科历史论文详细信息: 导航系统软件设计 论文代写
http://m.400qikan.com/lw-92993 论文代发

相关专题:在线股票成本计算器 股票成本计算

相关论文
相关学术期刊
《气象》 《排灌机械工程学报》 《哈尔滨理工大学学报》 《云南大学学报》 《新重庆》 《山东交通科技》 《文史知识》 《河北林果研究》 《中国动脉硬化杂志》 《比较法研究》

< 返回首页