本发明涉及小车直线运行控制领域,尤其涉及一种小车直线行驶控制方法及系统。
背景技术:
1、为了完成自主作业的需求,自主移动的无人小车在行进过程中都有严格的行进要求,在具备栅格线的室内环境和斜坡场景下,无人小车易受环境因素干扰而出现偏航的问题。
2、在工作过程中,为了能够严格控制小车直线前进,传统的技术手段是采用编码器的直线控制、采用高精度的rtk进行直线控制或者slam技术的直线控制;使用编码器来测量小车的车轮转速,并通过控制器将转速反馈信号与期望转速进行比较,通过控制小车车轮转速趋于期望转速,从而使小车沿着直线前进;使用高精度rtk接收机,接收来自多个基站的卫星信号,然后接收机通过差分定位技术消除卫星信号的误差,得到高精度的位置信息,使小车沿着预定的路线行驶;使用slam技术获取周围环境的信息;然后算法将传感器数据进行处理,提取出环境特征;其次算法根据环境特征估计小车的当前位置和姿态;最后算法将小车的位置和姿态信息与环境特征结合起来,构建周围环境地图以此来控制小车直线前进。但是,采用编码器的直线控制的方法编码器测得的转速与实际转速存在偏差,会导致控制系统发出错误指令,使小车偏离直线,另一方面难以应对复杂路况:在不平整或斜坡的路面上,编码器难以准确测量车轮转速,导致控制精度下降;采用rtk接收机和基站的成本较高,增加了无人小车的整体成本,且容易受环境影响:在强干扰环境下,rtk信号容易受到干扰,导致定位精度下降;采用slam算法涉及大量计算,对算力要求较高,难以应用于低成本的无人小车,并且对环境依赖性:在光照不足或遮挡物较多等环境下,slam技术的定位精度和鲁棒性会受到影响;因此,传统的技术手段难以克服在复杂作业场景下易出现偏航的问题。
技术实现思路
1、为了解决上述问题,本发明提出了一种小车直线行驶控制方法及系统,实现在复杂环境下实时纠正小车位移偏差,以使小车保持直线运行,减少偏航的现象。
2、为实现上述目的,本发明实施例提供了一种小车直线行驶控制方法,包括:
3、获取小车前进方向左右两端的感知图像;
4、基于小车前进方向左右两端感知图像,获取左直线端点坐标和右直线端点坐标;
5、基于所述左直线端点坐标和右直线端点坐标,计算偏差像素值;
6、当所述位移偏差值不满足预设偏差要求时,通过预设像素控制算法对偏差像素值进行纠正,得到偏差纠正数据;
7、基于所述偏差纠正数据,对小车行驶姿态进行实时控制。
8、本发明实施例提出一种小车直线行驶控制方法,通过获取小车前进方向左右两端的感知图像,即可获取小车左右两端的环境信息,不依赖外部设备,减少了数据处理的错误率,进而提高后续偏差纠正的准确度,再通过获取小车前进方向左右两端直线坐标进行后续的偏差计算,减少了额外传感或定位设备的介入,防止多个外部设备采集到多种数据而存在数据计算出现误差的隐患,从而提高最终控制小车直线行驶的数据的准确度减少偏航现象;同时通过左右直线坐标进行位移偏差的计算,能够完全依靠自身获取环境信息进行计算,无需依赖外部定位信息,进一步减少数据冗余以及数据堵塞造成数据处理不准确,出现影响导航精度的问题;通过获取像素偏差进行偏差纠正以及小车姿态控制,定位精度达到像素级,进一步提高导航纠正精确度,减少偏航的发生;因此,通过左右双边视觉处理图像进行导航的方法,完全由自身获取环境信息,并通过像素级的偏差处理大大提高导航准确度,减少偏航的情况发生。
9、进一步的,所述基于小车前进方向左右两端感知图像,获取左直线端点坐标和右直线端点坐标,具体为:
10、基于小车前进方向左右两端感知图像,获取满足预设要求的左直线和右直线;
11、基于所述满足预设要求的左直线和右直线,获取初始左直线端点坐标和初始右直线端点坐标;
12、基于初始左直线端点坐标和初始右直线端点坐标,通过实时更新小车前进方向左右两端感知图像,实时获取左直线端点坐标和右直线端点坐标。
13、本发明实施例提出的一种小车直线行驶控制方法,通过获取小车前进方向左右两端的环境信息,获取满足预设要求的左直线和右直线,进而得到小车前进方向的左右两端端点,仅通过自身即可实现端点的获取,不依赖外部设备,减少了数据处理的错误率,进而提高后续偏差纠正的准确度。
14、进一步的,所述基于小车前进方向左右两端感知图像,获取满足预设要求的左直线和右直线,具体为:
15、通过对小车前进方向左右两端感知图像进行感兴趣区域提取,得到第一图像;
16、通过对所述第一图像依次进行灰度化和直方图均衡化,得到第二图像;
17、基于预设颜色范围阈值,通过对所述第二图像进行颜色提取,得到第三图像;其中提取的颜色为白色、银色和灰色;
18、通过对第三图像进行边缘检测和二值化处理,得到第四图像;
19、通过对第四图像进行形态学膨胀操作、形态学腐蚀操作和形态学闭操作,得到第五图像;
20、基于预设距离分辨率、预设角度分辨率、预设累加器阈值、预设直线最小长度和预设直线斜率,通过渐进概率式霍夫变换对所述第五图像进行计算,得到满足预设要求的左直线和右直线。
21、本发明实施例提出的一种小车直线行驶控制方法,通过对图像的多重处理,进一步保障获取得到的环境信息更接近真实值,准确度更高,以使偏航纠正的效果更理想,同时,采用较于现有技术更为简单的算法,减少整体运算的复杂度,减少错误率,以使坐标获取、偏差计算以及偏差纠正的准确度得到提高。
22、进一步的,基于所述左直线端点坐标和右直线端点坐标,计算偏差像素值,具体为:
23、通过左直线端点坐标的第一端点坐标与右直线端点坐标的第四端点坐标做差,得到左位移偏差;
24、通过左直线端点坐标的第二端点坐标与右直线端点坐标的第三端点坐标做差,得到右位移偏差;
25、基于所述左位移偏差和所述右位移偏差,得到偏差像素值。
26、本发明实施例提出的一种小车直线行驶控制方法,通过获取直线段点计算偏差值,对算力要求不高,计算复杂度低,使得本方法的应用范围能够拓展到更复杂的环境进行运行控制,能够保证较好的运算效果以及具备较好的适应性。
27、进一步的,基于所述左位移偏差和所述右位移偏差,得到偏差像素值,具体为:
28、通过左位移偏差的绝对值与右位移偏差的绝对值作和,得到偏差和;
29、通过获取偏差和的半值,得到偏差像素值。
30、进一步的,当所述位移偏差值不满足预设偏差要求时,通过预设像素控制算法对偏差像素值进行纠正,得到偏差纠正数据,具体为:
31、当所述位移偏差值不满足预设偏差要求时,获取当前小车的偏移状态;
32、基于当前小车的偏移状态,通过像素位置环pid控制算法计算小车期望推力和舵量,得到偏差纠正数据。
33、本发明实施例提出的一种小车直线行驶控制方法,以偏差像素值作为输入通过像素位置环pid控制算法进行计算,实现了基于像素的位置闭环pid控制,精度可达像素级,有效减少规避复杂环境的干扰降低偏航事件的出现概率。
34、进一步的,基于所述偏差纠正数据,对偏差像素值进行纠正直至所述偏差像素值满足预设偏差要求,得到纠正偏差像素值;
35、基于所述纠正偏差像素值,控制小车进行直线行驶。
36、本发明实施例还提供一种小车直线行驶控制系统,包括:坐标获取模块、位移偏差计算模块、偏差像素获取模块、位移偏差纠正模块和小车控制模块;
37、所述坐标获取模块用于基于小车左右两端感知图像,获取左直线端点坐标和右直线端点坐标;
38、所述位移偏差计算模块用于基于所述左直线端点坐标和右直线端点坐标,实时计算更新位移偏差,得到位移偏差值;
39、所述偏差像素获取模块用于当所述位移偏差值不满足预设偏差要求时,将偏差像素值更新为所述位移偏差值;
40、所述位移偏差纠正模块用于基于所述偏差像素值,通过预设像素控制算法对偏差像素值进行纠正,得到偏差纠正数据;
41、所述小车控制模块用于基于所述偏差纠正数据,对小车行驶姿态进行实时控制。
42、本发明实施例提出一种小车直线行驶控制系统,采用坐标获取模块通过小车两端的感知图像获取左右两端直线坐标进行后续的偏差计算,减少了额外传感或定位设备的介入,防止多个外部设备采集到多种数据而存在数据计算出现误差的隐患,从而提高最终控制小车直线行驶的数据的准确度减少偏航现象;同时采用位移偏差计算模块通过左右直线坐标进行位移偏差的计算,能够完全依靠自身获取环境信息进行计算,无需依赖外部定位信息,进一步减少数据冗余以及数据堵塞造成数据处理不准确,出现影响导航精度的问题;最后采用偏差像素获取模块、位移偏差纠正模块和小车控制模块通过获取像素偏差进行偏差纠正以及小车姿态控制,定位精度达到像素级,进一步提高导航纠正精确度,减少偏航的发生;因此,通过左右双边视觉处理图像进行导航的方法,完全由自身获取环境信息,并通过像素级的偏差处理大大提高导航准确度,减少偏航的情况发生。
43、进一步的,所述坐标获取模块用于基于小车前进方向左右两端感知图像,获取左直线端点坐标和右直线端点坐标,还包括:
44、直线获取单元、端点坐标获取单元和坐标实时更新单元;
45、所述直线获取单元用于基于小车前进方向左右两端感知图像,获取满足预设要求的左直线和右直线;
46、所述端点坐标获取单元用于基于所述满足预设要求的左直线和右直线,获取初始左直线端点坐标和初始右直线端点坐标;
47、所述坐标实时更新单元用于基于初始左直线端点坐标和初始右直线端点坐标,通过实时更新小车前进方向左右两端感知图像,实时获取左直线端点坐标和右直线端点坐标。
48、进一步的,所述偏差像素计算模块用于基于所述左直线端点坐标和右直线端点坐标,计算偏差像素值,还包括:
49、左位移偏差计算单元、右位移偏差计算单元和偏差像素获取单元;
50、所述左位移偏差计算单元用于通过左直线端点坐标的第一端点坐标与右直线端点坐标的第四端点坐标做差,得到左位移偏差;
51、所述右位移偏差计算单元用于通过左直线端点坐标的第二端点坐标与右直线端点坐标的第三端点坐标做差,得到右位移偏差;
52、所述偏差像素获取单元用于基于所述左位移偏差和所述右位移偏差,得到偏差像素值。
1.一种小车直线行驶控制方法,其特征在于,包括:
2.如权利要求1所述的一种小车直线行驶控制方法,其特征在于,所述基于小车前进方向左右两端感知图像,获取左直线端点坐标和右直线端点坐标,具体为:
3.如权利要求2所述的一种小车直线行驶控制方法,其特征在于,所述基于小车前进方向左右两端感知图像,获取满足预设要求的左直线和右直线,具体为:
4.如权利要求1所述的一种小车直线行驶控制方法,其特征在于,基于所述左直线端点坐标和右直线端点坐标,计算偏差像素值,具体为:
5.如权利要求4所述的一种小车直线行驶控制方法,其特征在于,基于所述左位移偏差和所述右位移偏差,得到偏差像素值,具体为:
6.如权利要求1所述的一种小车直线行驶控制方法,其特征在于,当所述位移偏差值不满足预设偏差要求时,通过预设像素控制算法对偏差像素值进行纠正,得到偏差纠正数据,具体为:
7.如权利要求1、2、4或6所述的一种小车直线行驶控制方法,其特征在于,基于所述偏差纠正数据,对小车行驶姿态进行实时控制,具体为:
8.一种小车直线行驶控制系统,其特征在于,包括:
9.如权利要求8所述的一种小车直线行驶控制系统,其特征在于,所述坐标获取模块用于基于小车前进方向左右两端感知图像,获取左直线端点坐标和右直线端点坐标,还包括:
10.如权利要求8所述的一种小车直线行驶控制系统,其特征在于,所述偏差像素计算模块用于基于所述左直线端点坐标和右直线端点坐标,计算偏差像素值,还包括: