高速插秧机自动导航系统软件设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高速插秧机自动导航系统软件设计
熊中刚;贺娟;罗素莲
【摘要】为研究水田作业机械的无人驾驶系统,在基于高速插秧机激光导航硬件
系统的基础上,利用 Visual Basic 6.0开发环境开发了高速插秧机的自动导航控制系统软件。

软件利用MSComm 控件与PC 机上的无线数传设备进行数据交换,实现对插秧机的监控。

软件系统首先通过遥控插秧机采集田块的轮廓形状;然后,根据获取的田块形状,选择田块的路径规划方案并规划出行走路径;最后,插秧机在监控软件系统自动导航模块的控制下实现无人驾驶。

%To study paddy field unmanned systems operating machinery , a automatic navigation monitoring system soft-ware using Visual Basic 6 .0 development environment was designed on the basis of high -speed rice transplanter laser navigation monitoring hardware system .Software using the MSComm control on the PC with wireless data transmission equipment for data exchange , to achieve the rice transplanter monitoring .Software system first collected by remote trans-planter plots contour
shape .According to the obtained plots shape , then to select path plots planning program and plan out the walking path .Finally , the rice transplanter achieves unmanned system under the monitoring software of automatic navigation module .
【期刊名称】《农机化研究》
【年(卷),期】2014(000)008
【总页数】5页(P82-86)
【关键词】高速插秧机;导航;无人驾驶;Visual Basic 6.0
【作者】熊中刚;贺娟;罗素莲
【作者单位】遵义师范学院物理与机电工程学院,贵州遵义 563002;遵义师范学院物理与机电工程学院,贵州遵义 563002;遵义师范学院物理与机电工程学院,贵州遵义 563002
【正文语种】中文
【中图分类】S223.91+2
0 引言
当前,随着自动导航技术的不断发展,将其应用在农业机械上进而实现农用机械的无人驾驶,是当前国内外农业机械研究的一个重要方向。

国外很早就开展了对农业机械自动导航技术的研究,主要在GPS导航方面研究比较多,很多大型农机公司都开发了配有GPS导航系统的智能农业作业机械。

在国内,农业机械自动导航技术研究还处于初期,目前主要研究基于GPS、机器视觉技术以及多传感器融合技术的导航系统。

例如,华南农业大学成功研究了基于RTK-GPS 和电子罗盘的久保田SPU-68 型插秧机自动导航驾驶系统。

然而,对于在我国南方小田块应用自动导航技术来说,基于RTK-GPS的导航系统价格昂贵。

根据南方水田的具体情况,为了降低导航系统的价格,研究了高速插秧机的一种基于激光三点定位技术与多传感器融合技术的自动导航系统。

为此,通过对高速插秧机的研究,在自主开发设计的激光自动导航硬件系统以及对插秧机的底层驱动程序开发基础上,运用Visual Basic 6.0开发环境开发了插秧机无线监控软件系统。

1 高速插秧机自动导航系统总体介绍
高速插秧机自动导航硬件系统包括中央处理器、激光三点定位系统、惯性传感器数据采集系统、插秧机控制系统、工况参数采集系统和无线数传系统等6部分。

该导航系统的下位机通过无线数传模块打包给上位机,提供高速插秧机当前的位置坐标、前轮转角、航向角、车速、转弯角速度、角加速度以及其工作时的相关工况参数信息等。

上位机导航软件系统根据采集到的参数,利用控制算法来控制插秧机的运动,达到导航目的。

整个系统工作流程如图1所示。

首先利用无线监控软件来遥控插秧机,让其绕着
田块边缘行走一圈,建立一个田块的边界信息。

根据田块的边界轮廓形状选择与之接近的标准田块形状,按照标准田块形状的规划方案规划出工作路径;然后,根据规划的路径、插秧机当前的运动状态和位置状态来制定相应的策略控制插秧机的运动,实现自动导航;期间还要进行工况参数的采集工作。

图1 监控软件系统工作流程
2 自动导航监控软件系统设计
该监控软件采用Visual Basic6.0开发环境进行开发,是一种可视化的、面向对象
的程序设计语言,而且Visual Basic 6.0使用起来比较方便,能够为开发者提供工业级标准的通讯控件。

本监控软件的设计是通过开发软件Visual Basic 6.0中的MSComm控件与PC机相连的433MHz无线通信模块连接,从而完成串口数据
的交换;接着,通过上位机PC机端口上的无线模块与插秧机上的无线模块进行无线通信;最终,完成上位机导航软件与下位机之间的数据通信。

整个系统结构如图2所示。

图2 软件功能结构
2.1 插秧机遥控
该系统对插秧机的遥控动作包括控制发动机的点火和熄火、运行挡位、运动方向,以及对车子驾驶模式的切换和制动等等。

在该套插秧机的激光导航系统软件设计中,
对于插秧机运动方向的控制主要是借助笔记本电脑的4个方向键;同时,通过设置快捷键的方式对插秧机的点火/熄火、制动以及驾驶方式进行快速切换。

为提高对插秧机控制的可靠性,本系统采用了HOOK(钩子)技术对键盘的按键动作进行监视。

HOOK(钩子)技术是Windows系统中一个具有强大威力的特性, 运用该HOOK(钩子)技术主要是因为它能够对发向指定窗口的信息或事件通过应用程序进行截获和处理;同时,它不仅仅可以对某一个线程的事件进行先行拦截, 还可以对整个Windows系统的事件进行先行拦截。

HOOK(钩子)能够中途截获命令消息并获取控制权,即使系统应用程序没在桌面的最前面时,也能够响应上位机的按键动作,并能及时完成对插秧机的控制动作。

系统软件研发中最常用的HOOK(钩子)包括
H_CALLWNDPROC,WH_CALLWNDPRORET,WH_GETMESSAGE,WH_KEYBOA RD,WH_MOUSE,WH_HARDWARE,WH_JOURNALRECORD,WH_JOURNALPL AYBACK,WH_CBT。

本系统中采用的是WH_KEYBOARD 类型,通过该类型的HOOK(钩子)完成对键盘按键动作的监视工作,主要包括3个键盘监视事件,分别是KEY_PRESS、KEY_UP及KEY_DOWN。

按下不同的方向按键,则能对插秧机的运动完成不同的控制。

HOOK主要包括挂上、事件监视和卸除3个使用步骤,使用时还必须声明相应的API函数。

HOOK(钩子)的挂上是通过调用SetWindowsHookEx函数来实现,但同时必须指定一个HOOK类型以及应用程序的切入点,其相关代码如下:
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"
(int idHook, HOOKPROC hkprc, HINSTANCE hmod, DWORD dwTHreadID) 其中: idHook用来表示要挂上那一种HOOK(钩子),当该值为2时则是对系统键盘进行监视;hkprc 指Function对HOOK(钩子)消息进行处理时的地址;hmod 若
为LOCAL HOOK,则可以是Null,若是REMOTE HOOK,则将该参数通过GetModuleHandle(".dll名称")的方式传入。

dwThreadID是所希望挂上该HOOK的线程ID, 当该参数设置为0时,则拦截系统中所有程序消息。

当程序中应用的SetWindowsHookEx函数创建成功后,接下来需要按照严格的参数格式要求,同时运用Function对HOOK消息进行处理。

该调用过程的代码如下:
Private Function HookFunction( int nCode,WPARAM wParam,LPARAM lParam);
其中: nCode是表示HOOK在什么情况下产生,同时代表动作的形态;wParam 和lParam主要是用来判断系统消息,前提是当其随HOOK的种类和nCode的值变化而变化时。

通常情况下,所需要的过程参数是通过HookFunction以Address Of HookFunction的方式传入的。

当该应用程序执行完之后,则通过UnHOOKWindows
HookEx函数将HOOK卸除,但同样需要声明一个API函数。

该函数格式如下:Private Declare Function UnHOOKWindowsHookEx Lib "user32" (ByVal idHook As Integer) As Integer
上述idHook是SetWindowsHookEx()的返回值。

本套系统中运用无级变速器将插秧机前进、后退挡分成20个挡位,通过采用分比例遥控操作的方法对插秧机的运动方向进行控制。

当按下电脑上的向上或向下按键(分别表示插秧机的前进和后退按键)不松开时,所设计的系统软件将每隔0.2s向下位机部分发一次前进或是后退的命令;下位机每接收到一条前进或后退指令,就会提高一个速度挡位,重复执行直到达到最大车体运动速度;松开则能自动维持车
体当前速度状态。

同样,完成车体左右方向的控制则是通过电脑上的左右按键,此处通过左右旋转到最大角度后将其平均分成20个挡位,按下方向键不松开,上位机会每隔0.1s向
下位机发送转向命令;下位机接收命令则转向,按键松开则发出归中命令到下位机。

为有效做到控制插秧机运动过程的安全性,系统设置不同的优先级,通过快捷键实现不同的功能。

系统运行时,制动快捷键的优先级最高,且为一个按键,不管什么时候按下都会优先响应,熄火组合快捷键次之,接着是点火组合快捷键,其只有在熄火状态下才有效。

同时,只有按了点火组合快捷键之后,系统才会响应方向控制按键,同时当遥控驾驶完成路径规划后才能有效切换驾驶模式。

2.2 插秧机行走路径规划
试验时,该系统监控软件所得到的采集的田块轮廓曲线是一些离散的数据点,故需要对离散的数据点进行曲线拟合来得到准确的田块轮廓。

插秧机在田间作业时的行走轨迹主要是直线行驶和转弯行驶。

由于插秧机在实际作业过程中,受多种因素的影响,直线行走作业并非作得很标准的直线,故首先需要对插秧机直线行走的轨迹进行拟合。

设系统监控软件对作业时插秧机采集到的坐标为一系列离散数据序列(xi,yi),i=1,2,...,m;为使这一系列点尽
量落在一条直线g(x)上,故设该直线g(x)的拟合方程为g(x)=b0+b1x。

根据数值分析中直线拟合方法和Cramer定理可解得
(1)
(2)
通过以上拟合方法计算,可以确定直线段方程g(x)=b0+b1x,从而可以在插秧机
作业行走的过程中根据采集的当前坐标点实时进行数据的拟合,最终得到一条完整
的直线。

插秧机作业时的另外一种常见曲线轨迹即是掉头转弯。

本系统为精确地描述插秧机在掉头转向时的曲线轨迹特征,采用的是最小二乘法的3次多项式对坐标点进行拟合,设三次多项式方程为
f(x)=a0+a1x+a2x2+a3x3
(3)
同时,设该监控系统软件采集到n+1个坐标值(xi,yi),i=0,1,2,...,n。

(4)
为使Q最小,可通过对方程(4)求导,则
(5)
可以得到
=0 (j=0,1,2,3)
(6)
即3次多项式f(x)满足如下方程组
如此通过上述方程组可以唯一地解出a0,a1,a2,a3,从而可以得出三次多项式曲线方程。

通过上述一系列计算,当插秧机沿田块走完一圈后就能够得到田块的轮廓曲线。

与此同时,系统为实现路径规划,制定了两种标准的矩形和梯形田块的路径规划方案,而且根据实际标准田块的边长尺寸设计了相应的作业规划路径,如图3~图5
所示。

其中,图4和图5中L为插秧机的幅宽。

图3 田块形状
图4 矩形田块路径方案
图5 梯形田块路径方案
在获得田块轨迹后,可以通过软件系统的田块选择功能选择合适的田块形状,导航系统软件会根据采集到的田块尺寸并参照图4和图5的几种规划方案规划出合适的路径,并且在软件的电子地图上显示出规划路径。

2.3 自动导航
高速插秧机在作业行驶过程中,为了使作业路线沿着规划的路径行驶,除必须知道其当前的位置、航向及速度外,还需要对插秧机进行精确的导航控制。

为实现插秧机的自动导航,该系统设计了一个控制插秧机车速和方向盘转角的控制器。

由于插秧机工作时运行速度基本不变,故运用基于路径规划的路径弧度的动态预瞄方法对插秧机做出横向偏差和航向偏差的决策。

对插秧机的导航采取模糊控制方法,同时对插秧机的转向利用模糊免疫PID控制算法进行控制。

整个导航系统的控制原理如图6所示。

图6 插秧机自动导航控制原理图
当插秧机进行自动导航时,系统将实时计算规划路径中下一目标点的弧度值,并根据当前的位置y计算出当前航向角偏差θs和横向跟踪偏差值HXE;方向盘转角模糊控制器结合航向角偏差、横向跟踪偏差以及当前作业速度计算出插秧机期望转角αm;然后,系统再根据期望转角和当前转角之差Δα,利用模糊免疫PID控制器计算出驱动转向步进电机的脉冲数f。

这样,系统根据脉冲数来产生相应的脉冲,从而驱动步进电机控制器使其控制步进电机的转动,也就控制了插秧机转向。

在插秧机行驶速度一定的情况下,转向控制模糊免疫PID控制器的结构如图7所示。

图7 转向控制模糊免疫PID控制器结构
2.4 导航试验分析
试验在水泥平地上进行。

首先,用导航系统的遥控功能遥控插秧机行走成一条曲线,采样周期为200ms, 采集的曲线轨迹如图8中双点画线所示;然后再将插秧机放
置于遥控起点附近调整好插秧机的航向角后进入自动导航状态。

图8 导航试验轨迹
从图8可以看出:在导航开始的阶段,效果并不十分理想。

根据坐标算出两次起
始点有2.9m的距离,距离较远,所以导致在导航的开始阶段两条曲线偏离较远,之后效果较理想。

根据最小二乘法拟合两条曲线后,求得导航平均偏差为0.087m。

3 结论
利用Visual Basic 6.0开发环境开发了基于激光导航的高速插秧机无线监控软件系统。

试验中,软件能正常完成插秧机的遥控驾驶、田块匹配、路径规划、自动导航以及工况数据的采集,为开发低成本的农业机械自动导航系统提供了参考。

为了试验的方便性,本软件在标准田块形状的选择上只选择了两种比较规则的形状;然而在我国南方丘陵地区,田块的形状非常复杂。

因此,以后的研究一方面主要是针对田块形状的匹配和路径规划算法,提高适应性;另一方面,是更好地优化自动导航控制算法,进一步提高导航精度。

【相关文献】
[1] 徐士良.数值分析与算法[M].北京:机械工业出版社,2007:269.
[2] 胡炼,罗锡文,张智刚,等.基于CAN总线的分布式插秧机导航控制系统设计[J].农业工程学报,2009,25(12):88-92.
[3] 常建刚.基于电子地图的农用车辆自动导航系统研究[J].安徽农业科学,2009,37(18):8693-8695.
[4] 吴延霞,赵博,毛恩荣.农业车辆自动导航系统综述[J].农机化研究,2009,31(3):242-252.
[5] 刘兆祥,刘刚,籍颖,等.基于自适应模糊控制的拖拉机自动导航控制系统[J].农业机械学报,
2010,41(11):148-152,162.
[6] 吕安涛,毛恩荣,宋正河,等.一种拖拉机自动驾驶复合模糊控制方法[J].农业机械学报,2006,37( 4):17-20.
[7] 陈军,朱忠祥,鸟巢谅,等.拖拉机沿曲线路径的跟踪控制[J].农业工程学报,2006,22(11):108-111.
[8] 黄友锐,曲立国.PID控制器参数整定与实现[M].北京:科学出版社,2010.
[9] 李士勇.模糊控制、神经控制和智能控制论[M].哈尔滨:哈尔滨工业大学出版社,1998.
[10] 邱建雄.Hook技术及其在软件研发中的应用[J].国防科技大学学报,2002,24(1):77-80.。

相关文档
最新文档