CN114047755B - 农药喷洒机器人导航规划方法、计算机装置 - Google Patents
农药喷洒机器人导航规划方法、计算机装置 Download PDFInfo
- Publication number
- CN114047755B CN114047755B CN202111299505.9A CN202111299505A CN114047755B CN 114047755 B CN114047755 B CN 114047755B CN 202111299505 A CN202111299505 A CN 202111299505A CN 114047755 B CN114047755 B CN 114047755B
- Authority
- CN
- China
- Prior art keywords
- point
- robot
- distance
- currentmin
- turn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005507 spraying Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 69
- 239000000575 pesticide Substances 0.000 title claims abstract description 64
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000007613 environmental effect Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 4
- 239000007921 spray Substances 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 3
- 230000001174 ascending effect Effects 0.000 claims description 3
- PMGQWSIVQFOFOQ-YKVZVUFRSA-N clemastine fumarate Chemical compound OC(=O)\C=C\C(O)=O.CN1CCC[C@@H]1CCO[C@@](C)(C=1C=CC(Cl)=CC=1)C1=CC=CC=C1 PMGQWSIVQFOFOQ-YKVZVUFRSA-N 0.000 claims description 3
- 230000002265 prevention Effects 0.000 abstract description 4
- 238000012876 topography Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000474 nursing effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0278—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
Abstract
本发明公开了一种农药喷洒机器人导航规划方法、计算机装置及程序产品,根据机器人定位信息选取与机器人距离最近的车道线,生成引导路径参考点;机器人生成基于高精地图车道线的全局路径,待机器人抵达棚内主路后,自适应切换至任务导航模式,开始农药喷洒任务;通过机载激光雷达采集到的环境信息生成垄间行驶地面参考点以及避碰参考点,地面参考点可以保证机器人在垄间行驶时不会因为垄间地形的原因而发生侧翻,避碰参考点可以保证机器人在垄间主路行驶时避开生长茂盛的农作物以免造成损害,保证了机器人在垄间行驶的过程中在不会发生侧翻的同时,能够避开生长过于茂盛的农作物。
Description
技术领域
本发明涉及一种智能机器人路径规划领域,特别是一种农药喷洒机器人导航规划方法、计算机装置及程序产品。
背景技术
智慧农场内农药喷洒机器人导航规划是智能机器人导航规划领域的重要研究内容之一,结合高精地图车道线导航可以保证机器人在从仓库行驶至棚内的过程中更加顺畅,而结合激光雷达实现垄间实时导航可以极大地保证棚内农作物的安全无损,具有重要的研究价值。实现智慧农场内农药喷洒机器人导航规划首先需要根据机器人定位信息选取距离机器人最近的车道线,再根据机器人定位信息和最近车道线信息生成车道线引导路径参考点,将机器人引导至车道线上,进而生成基于高精地图车道线的全局路径,导航至棚内主路;基于车道线的导航保证了机器人行驶更加稳定顺畅。机器人抵达棚内主路农药喷洒任务点后,自适应切换至任务导航模式,结合激光雷达采集的环境信息进行实时导航,生成垄间行驶地面参考点和垄间行驶避碰参考点,保证了机器人在垄间行驶的过程中在不会发生侧翻的同时能够避开生长过于茂盛的农作物,降低对农作物的损害;同时结合激光雷达采集的航向角以及距离信息实现对垄间直角弯道的判断,实现机器人自主遍历垄间道路,实现对垄间农作物无遗漏作业;同时机器人能够自主判断农药喷洒任务完成度,当农药喷洒任务完成后,机器人会自适应切换回目标导航模式,生成基于高精地图车道线的全局路径回到仓库,等待下一次农药喷洒任务点的发布。然而,在实际场景中,仍有以下问题制约农药喷洒机器人在智慧农场内的应用。
(1)采用高精地图除了可以为机器人提供高精度的静态信息外,还可以结合传感器信息实现障碍物动态更新;考虑到机器人起始位置可能会偏离车道线,如果不将机器人引导至车道线上会影响后面基于高精地图的巡逻导航;发明专利申请《移动机器人混合导航方法、设备及存储装置》(专利申请号:202010592745.7)公开了一种移动机器人混合导航方法、设备及存储装置,该方法需要人为的在现实场景中绘制车道线,而后通过摄像头进行车道线识别,再而进行车道线导航;若未识别到车道线,则切换至利用激光雷达扫描方式先进行建图,再在栅格地图上人为设置相应的导航模式切换点进行切换、导航,该发明可以在上下坡、长走廊及夜间环境进行导航,但难以应用于农场环境中,该方法需要人力进行实际场景的车道线绘制,同时需要人为设置导航模式切换点,在自动化以及智能化程度上有所不足。而本发明所述的车道线导航不需绘制实际场景车道线即可达到同样的效果,通过人工绘制高精地图用于机器读取,可以实现任意的修改,在操作上更加便利、在程序运行资源占用上更少并且运行时间更快。
(2)采用机器人替代人工执行农药喷洒任务是必然趋势,机器人既能替代人工完成日常农作物护理任务,同时能够实现24小时不间断作业,并且能够通过搭载摄像头等传感器帮助用户更好的监视农场情况;但是通常的导航规划算法针对机器人在棚内作业是行不通的,机器人在棚内的GPS精度不足,贸然使用机器人进行垄间作业可能存在风险;通过设计一种结合激光雷达传感器信息实现垄间实时导航算法可以降低该风险甚至避免,用户也无需担心机器人会碰撞到农作物等危险情况;发明专利申请《一种集群机器人协同定位系统及方法》(专利申请号:202011490718.5)公开了一种集群机器人协同定位系统及方法,该方法采用主机器人构建地图,通过主机器人向从机器人共享地图,实现主机器人以及从机器人共同基于主机器人构建的地图进行导航定位,但该方法在棚内实现难度高,由于棚内农作物生长的不规律以及棚内定位精度较差,无法建立一个精度较高的地图。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种农药喷洒机器人导航规划方法、计算机装置及程序产品,不需实际场景车道线即可达到与车道线导航同样的效果。
为解决上述技术问题,本发明所采用的技术方案是:一种农药喷洒机器人导航规划方法,包括以下步骤:
S1、根据机器人定位信息判断离机器人当前位置最近的车道线;
S2、根据机器人定位信息以及最近车道线信息生成车道线引导路径参考点;
S3、机器人跟踪车道线引导路径参考点行驶,当机器人抵达棚内主路时,采集棚内环境信息,生成机器人垄间行驶地面参考点;
S4、根据所述环境信息生成垄间行驶避碰参考点,结合垄间行驶避碰参考点和垄间行驶地面参考点生成最佳行驶参考点;
S5、机器人根据最佳行驶参考点行驶时,根据环境信息获取机器人距离垄间尽头墙面的距离,进行垄间直角弯道的判断,完成农药喷洒任务完成度的判断。
本发明可以采用激光雷达实时探测到的点云数据进行导航,无需建图过程,操作流程上更加简便;同时本发明的导航模式切换点也不需要人为设置,通过机器人自主判断实现模式切换,在自动化以及智能化上程度更高。本发明可以采用激光雷达实时数据进行导航,在避开建图这一大难点的同时实现了导航的功能,在定位精度不高的棚内进行导航作业,可以根据激光雷达扫描得到的点云数据实现垄间遍历导航,在直线行驶的同时可以判断是否需要转向,智能化程度更高,并且不需要多机器人协同定位,成本更低。
步骤S1的具体实现过程包括:
1)读取棚内农药喷洒起始点坐标文件,将棚内农药喷洒起始点Pointspraying,a存入农药喷洒点点集Gspraying={Pointspraying,a|a=1、2、…、Numspraying}中,其中Numspraying表示农药喷洒点总数;记录仓库坐标Gwarehouse;
2)选定某一个农药喷洒点Pointspraying,机器人从仓库出发,导航模式为目标导航模式,记为Mode=1,目标点为农药喷洒点Pointspraying;
3)遍历所有的车道线Lanei,其中i表示车道线编号;判断在第i条车道线Lanei是否存在轨迹点Pointij,其中j表示车道线Lanei的第j个轨迹点,j=1,6,…,(5k+1);k为大于0的正整数;若存在,则转到步骤4);若不存在,则转到步骤5);
4)选取车道线Lanei的轨迹点Pointij,并计算轨迹点Pointij距离机器人当前位置Pointcurrent的距离distanceij,将距离distanceij以及对应的车道线编号i分别存入集合Distanceall={distanceij|j=1、6、…、(5k+1)}和集合Indexall={i|i=1、2、…}中;(xij,yij)和(xc,yc)分别是轨迹点Pointij和机器人当前位置Pointcurrent的坐标;
5)从集合Distanceall中选取来自两条不同车道线的最短距离distancemin1、distancemin2,并在集合Indexall中对应选取该两条不同车道线的编号imin1、imin2;
6)遍历车道线编号为imin1、imin2的两条车道线Lanemin1、Lanemin2上的所有轨迹点Pointmin,bd,并计算轨迹点Pointmin,bd距离机器人当前位置Pointcurrent的距离distancemin,bd,将距离distancemin,bd以及对应的车道线编号imin分别存入集合Distancemin={distancemin,bd|b=1、2,d=1、2、…、numb}和集合Indexmin={b|b=1、2}中,其中numb表示编号为b的车道线轨迹点数量;distancemin,bd的计算公式:(xmin,bd,ymin,bd)和(xc,yc)分别是轨迹点Pointmin,bd和机器人当前位置Pointcurrent的坐标。
考虑到机器人起始位置存在偏离车道线的情况,本发明根据机器人当前位置进行最近车道线的判断以便于后续车道线引导路径的生成,并且可以快速导航至距离最近的车道线,节约时间,提高了导航效率。
步骤S2的具体实现过程包括:
步骤1,定义引导路径参考点数量Numguidepathpoint=0;
步骤2,在集合Distancemin中查找最短距离并记为distancetemporarymin,根据最小距离distancetemporarymin对应查找distancetemporarymin在车道线Lanetemporarymin上的轨迹点,该轨迹点即为距离机器人当前位置最近的轨迹点Pointtemporarycurrentmin,同时查找轨迹点Pointtemporarycurrentmin所在车道线的编号itemporarymin,沿着车道线前进方向计算从轨迹点Pointtemporarycurrentmin至车道线末尾轨迹点Pointtemporarycurrentend的数量Numpointtemporary;
步骤3,判断是否满足Numpointtemporary≤50;若满足,则在集合Indexmin={b|b=1、2}中找到i≠itemporarymin的车道线编号并记为imin,对应的车道线记为Lanemin,转到步骤4;若不满足,则imin=itemporarymin、Pointcurrentmin=Pointtemporarycurrentmin、Lanemin=Lanetemporarymin,转到步骤5;
步骤4,判断是否已找到轨迹点Pointcurrentmin;若已找到,则转到步骤6;若未找到,则遍历车道线Lanemin上所有的轨迹点Pointj,找到距离机器人当前位置最近的轨迹点Pointcurrentmin,转到步骤5;
步骤5,判断是否满足Numguidepathpoint≤10;若满足,则distancetemporary=distancecurrentmin、引导路径参考点数量Numguidepathpoint加1,转到步骤6;若不满足,则计算distancetemporary=distancecurrentmin-0.2×(Numguidepathpoint-10)、引导路径参考点数量Numguidepathpoint加1,判断是否满足distancetemporary≥0;若满足,则转到步骤6;若不满足,则说明机器人已抵达车道线上;
步骤6,在车道线Lanemin上朝着目标点方向选取点Pointcurrentmin的下一个轨迹点Pointcurrentmin+1,获取Pointcurrentmin+1的位置信息(xcurrentmin+1,ycurrentmin+1),并计算从Pointcurrentmin到Pointcurrentmin+1的方向角α,计算机器人当前位置Pointcurrent至轨迹点Pointcurrentmin的方向角β;
步骤7,判断方向角α和方向角β之间的角度差是否满足75°≤|α-β|≤105°;若满足,则转到步骤10,并且记Pointcurrent′=Pointcurrent为距离轨迹点Pointcurrentmin最近的坐标点,记录插值标志位flagexpand=0;若不满足,则转到步骤8,并记flagexpand=1;
步骤8,根据机器人当前位置Pointcurrent以及方向角α计算经过机器人当前位置且平行于车道线Lanemin的一条平行线方程l:y=tan(α)·(x-xcurrent)+ycurrent,其中(xcurrent,ycurrent)是机器人当前位置Pointcurrent的坐标,tan(α)是平行线的斜率;
步骤9,在平行线l上寻找距离轨迹点Pointcurrentmin最近的点Pointlmin,并使得Pointcurrent′=Pointlmin;
步骤10,若插值标志位flagexpand=1,则采用三次样条插值法从机器人当前位置Pointcurrent至点Pointcurrent′进行插值,并将插值点坐标存入参考点集合Referenceguidepath中,并转到步骤11;若flagexpand=0,则Pointcurrent′=Pointcurrent,转到步骤11;
步骤11,计算引导路径参考点Pointreference,并存入车道线引导路径参考点集合Referenceguidepath中,具体计算式如下:
其中,(xcurrentmin+1,ycurrentmin+1)是点Pointcurrentmin+1的坐标,(xreference,yreference)是参考点Pointreference的坐标;distance为轨迹点Pointcurrent′与车道线之间的距离。
本发明通过引导路径参考点迅速将机器人引导至最近的车道线上,进而生成基于高精地图车道线的全局路径,在行驶上更加稳定顺畅,并且在计算机资源上占用更少。
distance的确定过程包括:
计算车道线Lanemin上的两个轨迹点Pointcurrentmin和Pointcurrentmin+1的直线方程:(ycurrentmin+1-ycurrentmin)x-(xcurrentmin+1-xcurrentmin)y+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)=0;其中,(xcurrentmin,ycurrentmin)和(xcurrentmin+1,ycurrentmin+1)分别为点Pointcurrentmin和Pointcurrentmin+1的坐标;将轨迹点Pointcurrent′的坐标带入直线方程中进行判断,若(ycurrentmin+1-ycurrentmin)xcurrent′-(xcurrentmin+1-xcurrentmin)ycurrent′+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)>0,则说明Pointcurrent′在车道线的右侧,distance=distancetemporary;若(ycurrentmin+1-ycurrentmin)xcurrent′-(xcurrentmin+1-xcurrentmin)ycurrent′+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)<0,则说明Pointcurrent′在车道线的左侧,distance=-distancetemporary。
轨迹点Pointcurrent′与车道线之间的距离的确定能够更加方便的生成引导路径参考点,并保证参考点的计算准确。
步骤S3的具体实现过程包括:
A)机器人抵达至车道线上,根据机器人定位信息和农药喷洒目标点坐标生成基于地图车道线的全局路径,机器人根据生成的全局路径抵达农药喷洒目标点,该喷洒点位于棚内主路上,切换至任务导航模式,记为Mode=2,记iterationcloud=0;建立机器人坐标系,该坐标系以机器人的质心在地面上的投影为原点,机器人前进方向为y轴正方向,机器人右侧为x轴正方向,上方为z轴正方向;
B)机器人左转90°,激光雷达采集到的点云数据相对机器人的坐标为(x,y,z);
C)获得一帧点云数据,更新iterationcloud加1,将点云数据按照y≤0和y>0进行分类,分别记作Cloudleft和Cloudright;
D)分别选取集合Cloudleft和Cloudright中满足以下两个条件的点云并存入集合Cloudleftdemand和Cloudrightdemand中:与平面Splaney:y=0.2×iterationcloud的距离distanceplaney≤K1、与平面Splanez:z=K2的距离distanceplanez≤K1;K1、K2为设定的阈值;
E)分别在集合Cloudleftdemand和Cloudrightdemand中找到机器人坐标系横坐标值最接近于0的点云数据,分别记作Pointleftreference和Pointrightreference,Pointleftreference和Pointrightreference坐标分别为(xleftreference,yleftreference,zleftreference)、(xrightreference,yrightreference,zrightreference);
F)计算垄间行驶参考点Pointtemporaryreference(xtemporaryreference,ytemporaryreference,ztemporaryreference),并存入机器人垄间行驶地面参考点集合Referencetemporaryridge,具体计算式如下:
G)清空集合Cloudleftdemand和Cloudrightdemand。
考虑到棚内垄间道路两边呈凹形,如图6,垄间行驶地面参考点的生成可以防止机器人在行驶过程中发生侧翻。
步骤S4的具体实现过程包括:
A)在集合Cloudleft中找到z值最大的点云,记为Pointleftzmax;在集合Cloudright找到z值最大的点云,记为Pointrightzmax;
B)选取平面高度hcrops,其中hcrops=(min{zleftzmax,zrightzmax,zrobot}+h)/2,zrobot为机器人在z轴上的尺寸,h为垄间农作物种植地面与垄间行驶地面高度差;zleftzmax,zrightzmax分别是点Pointleftzmax、Pointrightzmax的z轴坐标值;
C)选取集合Cloudleft和Cloudright中满足以下两个条件的点云,分别对应存入集合Cloudleftcrops和Cloudrightcrops中,并按升序排列:与平面Splaney:y=0.2×iterationcloud的距离distanceplaney≤K1、与平面Splanezcrops:z=hcrops的距离distanceplanezcrops≤K1;
D)分别在集合Cloudleftcrops和Cloudrightcrops中找到x值最接近于0的点云数据,分别记作Pointleftcrops和Pointrightcrops,Pointleftcrops和Pointrightcrops坐标分别为(xcloudleftcrops,ycloudleftcrops,zcloudleftcrops)和(xcloudrightcrops,ycloudrightcrops,zcloudrightcrops);
E)计算避碰参考点Pointavoidancereference(xavoidancereference,yavoidancereference,zavoidancereference),并存入Referenceavoidancecrops中;
F)选取集合Referencetemporaryridge和Referenceavoidancecrops中y值最接近的两个参考点,计算最佳行驶参考点并存入集合Referencebestdrive:
考虑到棚内农作物如果生成茂盛可能会导致机器人在垄间行驶过程中发生触碰,对农作物造成损害,生成的垄间避碰参考点可以避免机器人在行驶过程中触碰到农作物;同时为了保证机器人在行驶过程中不碰到农作物的同时不会因为垄间凹形地面而发生侧翻,因此结合垄间行驶地面参考点和垄间行驶避碰参考点生成最佳行驶参考点。
步骤S5的具体实现过程包括:
1)选取航向角为0、俯仰角为0的距离为机器人距离垄间尽头墙面的距离distanceridgewall;
2)判断是否满足(distanceridgewall≤distanceridgewallthreshold)||(|yavoidancereference,j+1-yavoidancereference,j|≥lengthrobot)或(|ycloudleftcrops,j+1-ycloudleftcrops,j|≥lengthrobot)||(ycloudrightcrops,j+1-ycloudrightcrops,j|≥lengthrobot),其中distanceridgewallthreshold=1.5×lengthrobot,lengthrobot为机器人在机器人坐标系y轴方向上的长度,yavoidancereference,j、ycloudleftcrops,j、ycloudrightcrops,j分别为集合Referenceavoidancecrops、Cloudleftcrops、Cloudrightcrops中第j个避碰参考点的纵坐标;若满足distanceridgewall≤distanceridgewallthreshold,则表示机器人已抵达垄间道路尽头,转到步骤3);若满足|yavoidancereference,j+1-yavoidancereference,j|≥lengthrobot,则说明机器人即将抵达垄间道路尽头,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0yturn=0.5×(yavoidancereference,j+1+yavoidancereference,j),zturn=0,机器人行驶至转向点后,转到步骤3);若满足|ycloudleftcrops,j+1-ycloudleftcrops,j|≥lengthrobot,则说明机器人即将向左转向垄间道路,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0,yturn=0.5×(ycloudleftcrops,j+1+ycloudleftcrops,j),zturn=0,机器人行驶至转向点后,转到步骤3);若满足|ycloudrightcrops,j+1-ycloudrightcrops,j|≥lengthrobot,则说明机器人即将向右转向垄间道路,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0,yturn=0.5×(ycloudrightcrops,j+1+ycloudrightcrops,j),zturn=0,机器人行驶至转向点后,转到步骤3);若不满足,则机器人进行直线行驶;||表示或运算符;
3)若转向标志位Modeturn=0,则机器人右转90°,更新Modeturn=1;
若Modeturn=1,则机器人右转90°,更新Modeturn=2;
若Modeturn=2且直行标志位flagstraight不存在,则机器人左转90°,更新
Modeturn=3;
若Modeturn=2且flagstraight=1,说明此时农药喷洒任务进度为50%,机器人直行,驶入对侧垄间,更新Modeturn=0;
若Modeturn=2且flagstraight=2,说明此时农药喷洒任务进度为100%,则机器人根据最佳行驶参考点行驶至棚内主路,随后切换至目标导航模式,更新Mode=1,转到步骤7)中;
若Modeturn=3,则机器人左转90°,更新Modeturn=0;
若不存在转向标志位Modeturn,则从激光雷达探测到的距离数组中,分别选取航向角为-90°和90°、俯仰角为0的距离为机器人距离侧边墙面的距离distanceridgewallleftside、distanceridgewallrighttside,若distanceridgewallleftside≤3×widthridge,其中widthridge为垄间道路宽度,则机器人右转90°,同时记Modeturn=3;若distanceridgewallrightside≤3×widthridge,则机器人左转90°,同时记Modeturn=1;
4)若Modeturn=1,判断是否满足distanceridgewall≤2×widthridge与是否存在直行标志位flagstraight;若满足distanceridgewall≤2×widthridge且不存在flagstraight,则说明此时为棚内左侧最后一条垄间道路,记flagstraight=1,进行航向角修正;若满足distanceridgewall≤2×widthridge且存在flagstraight=1,则说明此时为棚内右侧最后一条垄间道路,更新flagstraight加1,进行航向角修正;若不满足distanceridgewall≤2×widthridge,则生成转向后垄间行驶地面参考点,记iterationcloud=0,同时生成行驶参考点Pointtemporaryreference并存入集合Referenceridgeturn;
5)若Modeturn=0,则说明此时机器人进入垄间道路,则生成最佳行驶参考点进行垄间直线行驶;
6)若Modeturn=2,则说明此时机器人即将进入垄间道路,同时判断是否满足distanceridgewallleftside≤2×widthridge与是否存在直行标志位flagstraight;若满足distanceridgewallleftside≤2×widthridge且不存在flagstraight,则说明此时为棚内左侧最后一条垄间道路,记flagstraight=1;若满足distanceridgewallleftside≤2×widthridge且存在flagstraight=1,则更新flagstraight加1,生成最佳行驶参考点;若不满足distanceridgewallleftside≤2×widthridge,生成最佳行驶参考点;
7)机器人切换至目标导航模式,选取仓库坐标Gwarehouse作为目标点,生成基于地图车道线的全局路径,返回仓库,农药喷洒任务结束。
1)当机器人抵达垄间道路尽头时,还进行航向角修正,具体过程包括:
若不存在转向标志位Modeturn或Modeturn=0或Modeturn=2,则判断是否满足distanceridgewall≤3×lengthrobot;若满足,则机器人抵达垄间道路尽头后,从机器人的激光雷达探测到的距离数组中,从航向角为-10°至10°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠0,则进行机器人航向角修正,直至Yawstandard=0;若不满足,则规定此时的Yawstandard=0;
若Modeturn=1,则判断是否满足distanceridgewallleftside≤1.5×lengthrobot,其中distanceridgewallleftside为激光雷达探测的航向角为-90°,俯仰角为0的距离;若满足,则从激光雷达探测到的距离数组中,从航向角为-100°至-80°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠-90°,则进行机器人航向角修正,直至Yawstandard=-90°;若不满足,则规定此时的Yawstandard=-90°;若Modeturn=3,则判断是否满足distanceridgewallrightside≤1.5×lengthrobot,其中distanceridgewallleftside为激光雷达探测的航向角为90°,俯仰角为0的距离;若满足,则从激光雷达探测到的距离数组中,从航向角为80°至100°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠90°,则进行机器人航向角修正,直至Yawstandard=90°;若不满足,则规定此时的航向角Yawstandard=90°。
由于垄间道路呈直角S形,通过激光雷达传感器信息实现机器人自主判断是否需要转弯以及是否为棚内左侧或棚内右侧最后一条垄间,实现机器人在棚内完全自主化作业。
本发明还提供了一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序;所述处理器执行所述计算机程序,以实现本发明所述方法的步骤。
本发明还提供了一种计算机程序产品,包括计算机程序/指令;其特征在于,该计算机程序/指令被处理器执行时实现本发明所述方法的步骤。
与现有技术相比,本发明所具有的有益效果为:本发明首先根据机器人定位信息选取与机器人距离最近的车道线,并通过机器人定位信息和最近车道线信息生成引导路径参考点,将机器人引导至最近车道线上;其次,机器人生成基于高精地图车道线的全局路径,待机器人抵达棚内主路后,自适应切换至任务导航模式,开始农药喷洒任务;通过机载激光雷达采集到的环境信息生成垄间行驶地面参考点以及避碰参考点,地面参考点可以保证机器人在垄间行驶时不会因为垄间地形的原因而发生侧翻,而避碰参考点可以保证机器人在垄间主路行驶时避开生长茂盛的农作物以免造成损害,通过对这两个参考点进行加权处理,生成最佳行驶参考点保证了机器人在垄间行驶的过程中在不会发生侧翻的同时,能够避开生长过于茂盛的农作物;同时通过激光雷达采集到的航向角以及距离信息实现对垄间直角弯道判断的功能以及农药喷洒任务完成进度的监控,当机器人判断农药喷洒任务完成后,自适应切换回目标导航模式,生成一条基于高精地图车道线的全局路径回到仓库,等待下一次农药喷洒任务点发布,智能化程度更高。
附图说明
图1为机器人导航规划流程图;
图2为本发明的车道线选取示意图;
图3为本发明的引导路径参考点生成示意图;
图4为本发明的车道线及其引导路径仿真图;
图5为本发明引导路径距离车道线侧向距离差值图;
图6为本发明的智慧农场二维平面图;
图7为本发明的垄间行驶路径示意图;
图8为本发明的垄间道路主视图;
图9为本发明的棚内主路主视图。
具体实施方式
本发明实施例提供的一种面向智慧农场的农药喷洒机器人导航规划方法,如图1所示。包括以下步骤:
步骤一:机器人从智慧农场仓库出发,根据机器人定位信息判断离机器人当前位置最近的车道线:
步骤1,读取棚内农药喷洒起始点坐标文件,将棚内农药喷洒起始点Pointspraying,a存入农药喷洒点点集Gspraying={Pointspraying,a|a=1、2、...、Numspraying}中,其中Numspraying表示农药喷洒点总数;记录仓库坐标Gwarehouse;
步骤2,用户选定某一个农药喷洒点Pointspraying,机器人从仓库出发,导航模式为目标导航模式,记为Mode=1,目标点为农药喷洒点Pointspraying;
步骤3,遍历所有的车道线Lanei,其中i表示车道线编号;判断在第i条车道线Lanei是否存在轨迹点Pointij,其中j表示车道线Lanei的第j个轨迹点,j=1,6,…,(5k+1);k为大于0的正整数;若存在,则转到步骤4;若不存在,则转到步骤5;
步骤4,选取车道线Lanei的轨迹点Pointij,并计算轨迹点Pointij距离机器人当前位置Pointcurrent的距离distanceij,将距离distanceij以及对应的车道线编号i分别存入集合Distanceall={distanceij|j=1、6、…、(5k+1)}和集合Indexall={i|i=1、2、…}中;(xij,yij)和(xc,yc)分别是轨迹点Pointij和机器人当前位置Pointcurrent的坐标;
步骤5,考虑到可能找到的最近轨迹点位于其所在车道线末端,此时再将机器人引导至该车道线则无意义,因此从集合Distanceall中选取来自两条不同车道线的最短距离distancemin1、distancemin2,并在集合Indexall中对应选取该两条不同车道线的编号imin1、imin2;
步骤6,遍历车道线编号为imin1、imin2的两条车道线Lanemin1、Lanemin2上的所有轨迹点Pointmin,bd,并计算轨迹点Pointmin,bd距离机器人当前位置Pointcurrent的距离distancemin,bd,将距离distancemin,bd以及对应的车道线编号imin分别存入集合Distancemin={distancemin,bd|b=1、2,d=1、2、…}和集合Indexmin={b|b=1、2}中;其中distancemin,bd的计算公式:(xmin,bd,ymin,bd)和(xc,yc)分别是轨迹点Pointmin,bd和机器人当前位置Pointcurrent的坐标。
步骤二:根据机器人定位信息以及最近车道线信息生成车道线引导路径参考点:
步骤1,定义引导路径参考点数量Numguidepathpoint=0;
步骤2,在集合Distancemin中查找最短距离并记为distancetemporarymin,根据最小距离distancetemporarymin对应查找distancetemporarymin在车道线Lanetemporarymin上的轨迹点,该轨迹点即为距离机器人当前位置最近的轨迹点Pointtemporarycurrentmin,同时查找轨迹点Pointtemporarycurrentmin所在车道线的编号itemporarymin,该车道线编号对应的车道线即为选取的距离机器人当前位置最近的车道线,如图2所示,找到最短距离distancetemporarymin所对应的车道线,沿着车道线前进方向计算从轨迹点Pointtemporarycurrentmin至车道线末尾轨迹点Pointtemporarycurrentend的数量Numpointtemporary;
步骤3,判断是否满足Numpointtemporary≤50;若满足,则再将机器人引导至该车道线上则无意义,因此这时需要引导至选取的两条车道线中另一条车道线上,在集合Indexmin={b|b=1、2}中找到i≠itemporarymin的车道线编号并记为imin,对应的车道线记为Lanemin,转到步骤4;若不满足,则说明最近轨迹点并不位于其所在车道线末端,imin=itemporarymin、Pointcurrentmin=Pointtemporarycurrentmin、Lanemin=Lanetemporarymin,转到步骤5;
步骤4,判断是否已找到轨迹点Pointcurrentmin;若已找到,则转到步骤5;若未找到,则遍历车道线Lanemin上所有的轨迹点Pointj,找到距离机器人当前位置最近的轨迹点Pointcurrentmin,具体过程如下:
步骤4.1,计算轨迹点Pointj与机器人当前位置Pointcurrent的距离distancelanemin,j并存入集合Distancelanemin中,其中距离distancelanemin,j计算式与距离distanceij一致;
步骤4.2,在集合Distancelanemin中选取最短距离distancecurrentmin,并相应的在车道线Lanemin上找到最短距离distancecurrentmin所对应的轨迹点,该轨迹点即为距离机器人当前位置最近的轨迹点Pointcurrentmin;
步骤5,判断是否满足Numguidepathpoint≤10;若满足,则distancetemporary=distancecurrentmin、Numguidepathpoint=Numguidepathpoint+1,转到步骤6;若不满足,则转到步骤5.1;
步骤5.1,计算distancetemporary=distancecurrentmin-0.2×(Numguidepathpoint-10)、Numguidepathpoint=Numguidepathpoint+1;
步骤5.2,判断是否满足distancetemporary≥0;若满足,则转到步骤6;若不满足,则说明机器人已抵达车道线上,转到步骤三步骤1中;
步骤6,在车道线Lanemin上朝着目标点方向选取点Pointcurrentmin的下一个轨迹点Pointcurrentmin+1,获取其位置信息(xcurrentmin+1,ycurrentmin+1)并计算从Pointcurrentmin到Pointcurrentmin+1的方向角α,计算机器人当前位置Pointcurrent至轨迹点Pointcurrentmin的方向角β;
步骤7,判断方向角α和方向角β之间的角度差是否满足75°≤|α-β|≤105°;若满足,则转到步骤10,并且记Pointcurrent′=Pointcurrent为距离轨迹点Pointcurrentmin最近的坐标点,记录插值标志位flagexpand=0;若不满足,则转到步骤8,记录flagexpand=1;
步骤8,根据机器人当前位置Pointcurrent以及方向角α计算经过机器人当前位置且平行于车道线Lanemin的一条平行线方程l:y=tan(α)·(x-xcurrent)+ycurrent,其中(xcurrent,ycurrent)是机器人当前位置Pointcurrent的坐标,tan(α)是平行线的斜率;
步骤9,在平行线l上寻找距离轨迹点Pointcurrentmin最近的点Pointlmin,并使得Pointcurrent′=Pointlmin;
步骤10,判断坐标点Pointcurrent′是在车道线Lanemin前行方向的左侧还是右侧,具体过程如下:
步骤10.1,计算车道线Lanemin上的两个轨迹点Pointcurrentmin和Pointcurrentmin+1的直线方程:
(ycurrentmin+1-ycurrentmin)x-(xcurrentmin+1-xcurrentmin)y+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)=0
其中,(xcurrentmin,ycurrentmin)和(xcurrentmin+1,ycurrentmin+1)分别为点Pointcurrentmin和Pointcurrentmin+1的坐标;
步骤10.2,将Pointcurrent′的坐标(xcurrent′,ycurrent′)代入步骤10.1的公式中,若(ycurrentmin+1-ycurrentmin)xcurrent′-(xcurrentmin+1-xcurrentmin)ycurrent′+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)>0,则distance=distancetemporary;若(ycurrentmin+1-ycurrentmin)xcurrent′-(xcurrentmin+1-xcurrentmin)ycurrent′+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)<0,则distance=-distancetemporary;
步骤11,若插值标志位flagexpand=1,采用三次样条插值法生成从机器人当前位置Pointcurrent至坐标点Pointcurrent′的参考点,并将参考点坐标存入参考点集合Referenceguidepath中,并转到步骤12;若插值标志位flagexpand=0,则不需要生成从机器人当前位置Pointcurrent至坐标点Pointcurrent′的参考点,直接转到步骤12;
步骤12,计算引导路径参考点Pointreference并存入参考点集合Referenceguidepath中,具体计算式如下:
其中,(xcurrentmin+1,ycurrentmin+1)是点Pointcurrentmin+1的坐标,是常数,(xreference,yreference)是参考点Pointreference的坐标。
如图3所示,其中生成的引导路径参考点为图中的空心圆点,车道线轨迹点为实心圆点;图4为仿真环境中的车道线及其引导路径横纵坐标值,图5为仿真环境中计算得到的引导路径参考点至车道线距离值,可以看出,在刚开始的2米内引导路径参考点至车道线距离值不变,然后距离值开始逐渐减小,当距离值减小为0时说明引导路径参考点在车道线上。
步骤三:机器人抵达棚内主路时,装配有激光雷达的机器人在垄间道路自主行驶时,采集棚内作业过程中激光雷达探测到的环境信息,生成机器人垄间行驶地面参考点:
步骤1,机器人抵达至车道线上,根据机器人定位信息和农药喷洒目标点坐标生成基于高精地图车道线的全局路径,机器人根据生成的全局路径抵达农药喷洒目标点,该喷洒点位于棚内主路上,切换至任务导航模式,记为Mode=2,记获得的点云帧数iterationcloud=0;建立机器人坐标系,该坐标系以机器人的质心在地面上的投影为原点,机器人前进方向为y轴正方向,机器人右侧为x轴正方向,上方为z轴正方向;
步骤2,机器人左转90°,激光雷达采集到的点云数据相对机器人的坐标为(x,y,z);
步骤3,获得一帧点云数据,更新iterationcloud加1,将点云数据按照y≤0和y>0进行分类,分别记作Cloudleft和Cloudright;
步骤4,分别选取集合Cloudleft和Cloudright中满足以下两个条件的点云并存入集合Cloudleftdemand和Cloudrightdemand中:与平面Splaney:y=0.2×iterationcloud的距离distanceplaney≤K1、与平面Splanez:z=K2的距离distanceplanez≤K1;K1、K2为设定的阈值,均为0.05;
步骤5,分别在集合Cloudleftdemand和Cloudrightdemand中找到在机器人坐标系中横坐标值最接近于0的点云数据,分别记作Pointleftreference和Pointrightreference,Pointleftreference和Pointrightreference坐标分别为(xleftreference,yleftreference,zleftreference)、(xrightreference,yrightreference,zrightreference);
步骤6,计算垄间行驶参考点Pointtemporaryreference并存入集合Referencetemporaryridge,具体计算式如下:
步骤7,清空集合Cloudleftdemand和Cloudrightdemand,用于在获取下一帧点云数据后的点云数据存储。
步骤四:根据激光雷达在行驶过程中采集到的环境信息,生成垄间行驶避碰参考点,结合垄间行驶避碰参考点和垄间行驶地面参考点生成最佳行驶参考点:
步骤1,在集合Cloudleft中找到z值最大的点云,记为Pointleftzmax;在集合Cloudright找到z值最大的点云,记为Pointrightzmax;
步骤2,为了保证选取的左右点云高度一致,需要定义一个平面高度hcrops,其中hcrops=(min{zleftzmax,zrightzmax,zrobot}+h)/2,zrobot为机器人在z轴上的尺寸,h为垄间农作物种植地面与垄间行驶地面高度差;zleftzmax,zrightzmax分别是点Pointleftzmax、Pointrightzmax的z轴坐标值;
步骤3,选取集合Cloudleft和Cloudright中满足以下两个条件的点云集,分别对应存入集合Cloudleftcrops和Cloudrightcrops中,并按升序排列:与平面Splaney:y=0.2×iterationcloud的距离distanceplaney≤K1、与平面Splanezcrops:z=hcrops的距离distanceplanezcrops≤K1;K1为设定的阈值0.05;
步骤4,分别在集合Cloudleftcrops和Cloudrightcrops中找到x值最接近于0的点云数据,分别记作Pointleftcrops和Pointrightcrops,Pointleftcrops和Pointrightcrops坐标分别为(xcloudleftcrops,ycloudleftcrops,zcloudleftcrops)和(xcloudrightcrops,ycloudrightcrops,zcloudrightcrops);
步骤5,计算避碰参考点Pointavoidancereference并存入Referenceavoidancecrops中,具体计算式如下:
步骤6,选取集合Referencetemporaryridge和Referenceavoidancecrops中y值最接近的两个参考点,计算最佳行驶参考点并存入集合Referencebestdrive:
步骤五:根据激光雷达在行驶过程中采集到的环境信息获取机器人距离垄间尽头墙面的距离,进行垄间直角弯道的判断,同时进行农药喷洒任务完成度的判断:
步骤1,从激光雷达探测到的距离数组中,选取航向角为0、俯仰角为0的距离为机器人距离垄间尽头墙面的距离distanceridgewall;
步骤2,判断是否满足
(distanceridgewall≤distanceridgewallthreshold)||(|yavoidancereference,j+1-yavoidancereference,j|≥lengthrobot)或(|ycloudleftcrops,j+1-ycloudleftcrops,j|≥lengthrobot)||(ycloudrightcrops,j+1-ycloudrightcrops,j|≥lengthrobot),其中distanceridgewallthreshold=1.5×lengthrobot,lengthrobot为机器人在机器人坐标系y轴方向上的长度,yavoidancereference,j、ycloudleftcrops,j、ycloudrightcrops,j分别为集合Referenceavoidancecrops、Cloudleftcrops、Cloudrightcrops中第j个避碰参考点的纵坐标;若满足distanceridgewall≤distanceridgewallthreshold,则表示机器人已抵达垄间道路尽头,转到步骤3;若满足|yavoidancereference,j+1-yavoidancereference,j|≥lengthrobot,则说明机器人即将抵达垄间道路尽头,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0
yturn=0.5×(yavoidancereference,j+1+yavoidancereference,j),zturn=0,机器人行驶至转向点后,转到步骤3;若满足|ycloudleftcrops,j+1-ycloudleftcrops,j|≥lengthrobot,则说明机器人即将向左转向垄间道路,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0,
yturn=0.5×(ycloudleftcrops,j+1+ycloudleftcrops,j),zturn=0,机器人行驶至转向点后,转到步骤3;若满足|ycloudrightcrops,j+1-ycloudrightcrops,j|≥lengthrobot,则说明机器人即将向右转向垄间道路,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0,
yturn=0.5×(ycloudrightcrops,j+1+ycloudrightcrops,j),zturn=0,机器人行驶至转向点后,转到步骤3;若不满足,则机器人进行直线行驶;||表示或运算符;
步骤3,机器人进行转向,具体过程如下:
若转向标志位Modeturn=0,则机器人右转90°,更新Modeturn=1;
若Modeturn=1,则机器人右转90°,更新Modeturn=2;
若Modeturn=2且直行标志位flagstraight不存在,则机器人左转90°,更新Modeturn=3;
若Modeturn=2且flagstraight=1,说明此时农药喷洒任务进度为50%,机器人直行,驶入对侧垄间,更新Modeturn=0;
若Modeturn=2且flagstraight=2,说明此时农药喷洒任务进度为100%,则机器人根据最佳行驶参考点行驶至棚内主路,随后切换至目标导航模式,更新Mode=1,转到步骤8中;
若Modeturn=3,则机器人左转90°,更新Modeturn=0;
若不存在转向标志位Modeturn,则从激光雷达探测到的距离数组中,分别选取航向角为-90°和90°、俯仰角为0的距离为机器人距离侧边墙面的距离distanceridgewallleftside、distanceridgewallrighttside,若distanceridgewallleftside≤3×widthridge,其中widthridge为垄间道路宽度,则机器人右转90°,同时记Modeturn=3;若distanceridgewallrightside≤3×widthridge,则机器人左转90°,同时记Modeturn=1;
步骤4,若Modeturn=1,判断是否满足distanceridgewall≤2×widthridge与是否存在直行标志位flagstraight;若满足distanceridgewall≤2×widthridge且不存在flagstraight,则说明此时为棚内左侧最后一条垄间道路,记flagstraight=1,进行航向角修正;若满足distanceridgewall≤2×widthridge且存在flagstraight=1,则说明此时为棚内右侧最后一条垄间道路,更新flagstraight加1,进行航向角修正;若不满足distanceridgewall≤2×widthridge,则生成转向后垄间行驶地面参考点,记iterationcloud=0,同时生成行驶参考点Pointtemporaryreference并存入集合Referenceridgeturn;
步骤5,进行航向角修正,具体过程如下:
若不存在转向标志位Modeturn或Modeturn=0或Modeturn=2,则判断是否满足distanceridgewall≤3×lengthrobot;若满足,则机器人抵达垄间道路尽头后,从机器人的激光雷达探测到的距离数组中,从航向角为-10°至10°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠0,则进行机器人航向角修正,直至Yawstandard=0;若不满足,则规定此时的Yawstandard=0;
若Modeturn=1,则判断是否满足distanceridgewallleftside≤1.5×lengthrobot,其中distanceridgewallleftside为激光雷达探测的航向角为-90°,俯仰角为0的距离;若满足,则从激光雷达探测到的距离数组中,从航向角为-100°至-80°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠-90°,则进行机器人航向角修正,直至Yawstandard=-90°;若不满足,则规定此时的Yawstandard=-90°;
若Modeturn=3,则判断是否满足distanceridgewallrightside≤1.5×lengthrobot,其中distanceridgewallleftside为激光雷达探测的航向角为90°,俯仰角为0的距离;若满足,则从激光雷达探测到的距离数组中,从航向角为80°至100°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠90°,则进行机器人航向角修正,直至Yawstandard=90°;若不满足,则规定此时的Yawstandard=90°。
步骤6,若Modeturn=0,则说明此时机器人进入垄间道路,则生成最佳行驶参考点进行垄间直线行驶;
步骤7,若Modeturn=2,则说明此时机器人即将进入垄间道路,同时判断是否满足distanceridgewallleftside≤2×widthridge与是否存在直行标志位flagstraight;若满足distanceridgewallleftside≤2×widthridge且不存在flagstraight,则说明此时为棚内左侧最后一条垄间道路,记flagstraight=1;若满足distanceridgewallleftside≤2×widthridge且存在flagstraight=1,则更新flagstraight加1,生成最佳行驶参考点;若不满足distanceridgewallleftside≤2×widthridge,生成最佳行驶参考点;
机器人行驶示意图如图7中箭头所示,其中机器人从棚外进入棚内主路,探测到第一条垄间道路时左转,进入垄间道路行驶,当行驶至道路尽头后满足设定条件开始右转90°,继续行驶,当在行驶过程中探测到右侧有第二条垄间道路时开始右转90°,进入第二条垄间道路作业;当机器人沿着第二条垄间道路行驶至棚内主路后,左转90°,沿着棚内主路行驶,直至探测到第三条垄间道路,左转进入垄间道路作业,以此类推,直至行驶至棚内左侧最后一条垄间道路后,沿着最后一条垄间道路行驶至棚内主路后不转向,直线行驶至对侧垄间道路中继续作业。
其中垄间道路与两侧农作物间存在一定的高度差,如图8所示,同时棚内主路与两侧垄间道路也存在一定的高度差,如图9所示。
步骤8,机器人切换至目标导航模式,选取仓库坐标Gwarehouse作为目标点,生成基于高精地图车道线的全局路径,返回仓库,农药喷洒任务结束。
本发明提出了一种面向智慧农场的农药喷洒机器人导航规划方法。该方法首先根据机器人定位信息选取与机器人距离最近的车道线,并通过机器人定位信息和最近车道线信息生成引导路径参考点,将机器人引导至最近车道线上;其次,机器人生成基于高精地图车道线的全局路径,待机器人抵达棚内主路后,自适应切换至任务导航模式,开始农作物农药喷洒任务;通过机载激光雷达采集到的环境信息生成最佳行驶参考点,该参考点可以很好的保证机器人在垄间主路行驶不发生侧翻的同时不会碰撞到农作物以免对农作物造成损害;同时通过激光雷达采集到的航向角以及距离信息实现对垄间直角弯道判断的功能以及农药喷洒任务完成进度的监控,当机器人判断农药喷洒任务完成后,自适应切换至目标导航模式,生成一条基于高精地图车道线的全局路径回到仓库,等待下一次农药喷洒任务点的发布。
Claims (4)
1.一种农药喷洒机器人导航规划方法,其特征在于,包括以下步骤:
S1、根据机器人定位信息判断离机器人当前位置最近的车道线;
S2、根据机器人定位信息以及最近车道线信息生成车道线引导路径参考点;
S3、机器人跟踪车道线引导路径参考点行驶,当机器人抵达棚内主路时,采集棚内环境信息,生成机器人垄间行驶地面参考点;
S4、根据所述环境信息生成垄间行驶避碰参考点,结合垄间行驶避碰参考点和垄间行驶地面参考点生成最佳行驶参考点;
S5、机器人根据最佳行驶参考点行驶时,根据环境信息获取机器人距离垄间尽头墙面的距离,进行垄间直角弯道的判断,完成农药喷洒任务完成度的判断;
步骤S1的具体实现过程包括:
1)读取棚内农药喷洒起始点坐标文件,将棚内农药喷洒起始点Pointspraying,a存入农药喷洒点点集Gspraying={Pointspraying,a|a=1、2、…、Numspraying}中,其中Numspraying表示农药喷洒点总数;
2)选定某一个农药喷洒点Pointspraying,机器人从仓库出发,导航模式为目标导航模式,记为Mode=1,目标点为农药喷洒点Pointspraying;
3)遍历所有的车道线Lanei,其中i表示车道线编号;判断在第i条车道线Lanei是否存在轨迹点Pointij,其中j表示车道线Lanei的第j个轨迹点,j=1,6,…,(5k+1);k为大于0的正整数;若存在,则转到步骤4);若不存在,则转到步骤5);
4)选取车道线Lanei的轨迹点Pointij,并计算轨迹点Pointij距离机器人当前位置Pointcurrent的距离distanceij,将距离distanceij以及对应的车道线编号i分别存入集合Distanceall={distanceij|j=1、6、…、(5k+1)}和集合Indexall={i|i=1、2、…}中;(xij,yij)和(xc,yc)分别是轨迹点Pointij和机器人当前位置Pointcurrent的坐标;
5)从集合Distanceall中选取来自两条不同车道线的最短距离distancemin1、distancemin2,并在集合Indexall中对应选取该两条不同车道线的编号imin1、imin2;
6)遍历车道线编号为imin1、imin2的两条车道线Lanemin1、Lanemin2上的所有轨迹点Pointmin,bd,并计算轨迹点Pointmin,bd距离机器人当前位置Pointcurrent的距离distancemin,bd,将距离distancemin,bd以及对应的车道线编号imin分别存入集合Distancemin={distancemin,bd|b=1、2,d=1、2、…、numb}和集合Indexmin={b|b=1、2}中,其中numb表示编号为b的车道线轨迹点数量;distancemin,bd的计算公式:(xmin,bd,ymin,bd)和(xc,yc)分别是轨迹点Pointmin,bd和机器人当前位置Pointcurrent的坐标;
步骤S2的具体实现过程包括:
步骤1,定义引导路径参考点数量Numguidepathpoint=0;
步骤2,在集合Distancemin中查找最短距离并记为distancetemporarymin,根据最小距离distancetemporarymin对应查找distancetemporarymin在车道线Lanetemporarymin上的轨迹点,该轨迹点即为距离机器人当前位置最近的轨迹点Pointtemporarycurrentmin,同时查找轨迹点Pointtemporarycurrentmin所在车道线的编号itemporarymin,沿着车道线前进方向计算从轨迹点Pointtemporarycurrentmin至车道线末尾轨迹点Pointtemporarycurrentend的数量Numpointtemporary;
步骤3,判断是否满足Numpointtemporary≤50;若满足,则在集合Indexmin={b|b=1、2}中找到i≠itemporarymin的车道线编号并记为imin,对应的车道线记为Lanemin,转到步骤4;若不满足,则imin=itemporarymin、Pointcurrentmin=Pointtemporarycurrentmin、Lanemin=Lanetemporarymin,转到步骤5;
步骤4,判断是否已找到轨迹点Pointcurrentmin,若已找到,则转到步骤6;若未找到,则遍历车道线Lanemin上所有的轨迹点Pointj,找到距离机器人当前位置最近的轨迹点Pointcurrentmin,转到步骤5;
步骤5,判断是否满足Numguidepathpoint≤10;若满足,则distancetemporary=distancecurrentmin、引导路径参考点数量Numguidepathpoint加1,转到步骤6;若不满足,则计算distancetemporary=distancecurrentmin-0.2×(Numguidepathpoint-10)、引导路径参考点数量Numguidepathpoint加1,判断是否满足distancetemporary≥0;若满足,则转到步骤6;若不满足,则说明机器人已抵达车道线;
步骤6,在车道线Lanemin上朝着目标点方向选取点Pointcurrentmin的下一个轨迹点Pointcurrentmin+1,获取Pointcurrentmin+1的位置信息(xcurrentmin+1,ycurrentmin+1),并计算从Pointcurrentmin到Pointcurrentmin+1的方向角α,计算机器人当前位置Pointcurrent至轨迹点Pointcurrentmin的方向角β;
步骤7,判断方向角α和方向角β之间的角度差是否满足75°≤|α-β|≤105°;若满足,则转到步骤10,并且记Pointcurrent′=Pointcurrent为距离轨迹点Pointcurrentmin最近的坐标点,记录插值标志位flagexpand=0;若不满足,则转到步骤8,并记flagexpand=1;
步骤8,根据机器人当前位置Pointcurrent以及方向角α计算经过机器人当前位置且平行于车道线Lanemin的一条平行线方程l:y=tan(α)·(x-xcurrent)+ycurrent,其中(xcurrent,ycurrent)是机器人当前位置Pointcurrent的坐标,tan(α)是平行线的斜率;
步骤9,在平行线l上寻找距离轨迹点Pointcurrentmin最近的点Pointlmin,并使得Pointcurrent′=Pointlmin;
步骤10,若插值标志位flagexpand=1,则采用三次样条插值法从机器人当前位置Pointcurrent至点Pointcurrent′进行插值,并将插值点坐标存入参考点集合Referenceguidepath中,转到步骤11;若插值标志位flagexpand=0,则Pointcurrent′=Pointcurrent,转到步骤11;
步骤11,计算引导路径参考点Pointreference,并存入车道线引导路径参考点集合Referenceguidepath中,具体计算式如下:
其中,(xcurrentmin+1,ycurrentmin+1)是点Pointcurrentmin+1的坐标,(xreference,yreference)是参考点Pointreference的坐标;distance为轨迹点Pointcurrent′与车道线之间的距离;
步骤S3的具体实现过程包括:
A)机器人抵达至车道线上,根据机器人定位信息和农药喷洒目标点坐标生成基于地图车道线的全局路径,机器人根据生成的全局路径抵达农药喷洒目标点,该喷洒点位于棚内主路上,切换至任务导航模式,记为Mode=2,记iterationcloud=0;建立机器人坐标系,该坐标系以机器人的质心在地面上的投影为原点,机器人前进方向为y轴正方向,机器人右侧为x轴正方向,上方为z轴正方向;
B)机器人左转90°,激光雷达采集到的点云数据相对机器人的坐标为(x,y,z);
C)获得一帧点云数据,更新iterationcloud加1,将点云数据按照y≤0和y>0进行分类,分别记作Cloudleft和Cloudright;
D)分别选取集合Cloudleft和Cloudright中满足以下两个条件的点云并存入集合Cloudleftdemand和Cloudrightdemand中:与平面Splaney:y=0.2×iterationcloud的距离distanceplaney≤K1、与平面Splanez:z=K2的距离distanceplanez≤K1;K1、K2为设定的阈值;
E)分别在集合Cloudleftdemand和Cloudrightdemand中找到机器人坐标系横坐标值最接近于0的点云数据,分别记作Pointleftreference和Pointrightreference,Pointleftreference和Pointrightreference坐标分别为(xleftreference,yleftreference,zleftreference)、(xrightreference,yrightreference,zrightreference);
F)计算垄间行驶参考点Pointtemporaryreference(xtemporaryreference,ytemporaryreference,ztemporaryreference),并存入机器人垄间行驶地面参考点集合Referencetemporaryridge,具体计算式如下:
G)清空集合Cloudleftdemand和Cloudrightdemand;
步骤S4的具体实现过程包括:
H)在集合Cloudleft中找到z值最大的点云,记为Pointleftzmax;在集合Cloudright找到z值最大的点云,记为Pointrightzmax;
I)选取平面高度hcrops,其中hcrops=(min{zleftzmax,zrightzmax,zrobot}+h)/2,zrobot为机器人在z轴上的尺寸,h为垄间农作物种植地面与垄间行驶地面高度差;zleftzmax,zrightzmax分别是点Pointleftzmax、Pointrightzmax的z轴坐标值;
J)选取集合Cloudleft和Cloudright中满足以下两个条件的点云集,分别对应存入集合Cloudleftcrops和Cloudrightcrops中,并按升序排列:与平面Splaney:y=0.2×iterationcloud的距离distanceplaney≤K1、与平面Splanezcrops:z=hcrops的距离distanceplanezcrops≤K1;
K)分别在集合Cloudleftcrops和Cloudrightcrops中找到x值最接近于0的点云数据,分别记作Pointleftcrops和Pointrightcrops,Pointleftcrops和Pointrightcrops坐标分别为(xcloudleftcrops,ycloudleftcrops,zcloudleftcrops)和(xcloudrightcrops,ycloudrightcrops,zcloudrightcrops);
L)计算避碰参考点Pointavoidancereference(xavoidancereference,yavoidancereference,zavoidancereference),并存入Referenceavoidancecrops中;
M)选取集合Referencetemporaryridge和Referenceavoidancecrops中y值最接近的两个参考点,计算最佳行驶参考点并存入集合Referencebestdrive:
步骤S5的具体实现过程包括:
1)选取航向角为0、俯仰角为0的距离为机器人距离垄间尽头墙面的距离distanceridgewall;
2)判断是否满足(distanceridgewall≤distanceridgewallthreshold)||(|yavoidancereference,j+1-yavoidancereference,j|≥lengthrobot)或(|ycloudleftcrops,j+1-ycloudleftcrops,j|≥lengthrobot)||(ycloudrightcrops,j+1-ycloudrightcrops,j|≥lengthrobot),其中distanceridgewallthreshold=1.5×lengthrobot,lengthrobot为机器人在机器人坐标系y轴方向上的长度,yavoidancereference,j、ycloudleftcrops,j、ycloudrightcrops,j分别为集合Referenceavoidancecrops、Cloudleftcrops、Cloudrightcrops中第j个避碰参考点的纵坐标;若满足distanceridgewall≤distanceridgewallthreshold,则表示机器人已抵达垄间道路尽头,转到步骤3);若满足|yavoidancereference,j+1-yavoidancereference,j|≥lengthrobot,则说明机器人即将抵达垄间道路尽头,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0yturn=0.5×(yavoidancereference,j+1+yavoidancereference,j),zturn=0,机器人行驶至转向点后,转到步骤3);若满足|ycloudleftcrops,j+1-ycloudleftcrops,j|≥lengthrobot,则说明机器人即将向左转向垄间道路,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0,yturn=0.5×(ycloudleftcrops,j+1+ycloudleftcrops,j),zturn=0,机器人行驶至转向点后,转到步骤3);若满足|ycloudrightcrops,j+1-ycloudrightcrops,j|≥lengthrobot,则说明机器人即将向右转向垄间道路,计算垄间转向点Pointturn(xturn,yturn,zturn),其中xturn=0,yturn=0.5×(ycloudrightcrops,j+1+ycloudrightcrops,j),zturn=0,机器人行驶至转向点后,转到步骤3);若不满足,则机器人直线行驶;||表示或运算符;
3)若转向标志位Modeturn=0,则机器人右转90°,更新Modeturn=1;
若Modeturn=1,则机器人右转90°,更新Modeturn=2;
若Modeturn=2且直行标志位flagstraight不存在,则机器人左转90°,更新Modeturn=3;
若Modeturn=2且flagstraight=1,说明此时农药喷洒任务进度为50%,机器人直行,驶入对侧垄间,更新Modeturn=0;
若Modeturn=2且flagstraight=2,说明此时农药喷洒任务进度为100%,则机器人根据最佳行驶参考点行驶至棚内主路,随后切换至目标导航模式,更新Mode=1,转到步骤7)中;
若Modeturn=3,则机器人左转90°,更新Modeturn=0;
若不存在转向标志位Modeturn,则从激光雷达探测到的距离数组中,分别选取航向角为-90°和90°、俯仰角为0的距离为机器人距离侧边墙面的距离distanceridgewallleftside、distanceridgewallrighttside,若distanceridgewallleftside≤3×widthridge,其中widthridge为垄间道路宽度,则机器人右转90°,同时记Modeturn=3;若distanceridgewallrightside≤3×widthridge,则机器人左转90°,同时记Modeturn=1;
4)若Modeturn=1,判断是否满足distanceridgewall≤2×widthridge与是否存在flagstraight;若满足distanceridgewall≤2×widthridge且不存在flagstraight,则说明此时为棚内左侧最后一条垄间道路,记flagstraight=1,进行航向角修正;若满足distanceridgewall≤2×widthridge且存在flagstraight=1,则说明此时为棚内右侧最后一条垄间道路,更新flagstraight加1,进行航向角修正;若不满足distanceridgewall≤2×widthridge,则生成转向后垄间行驶地面参考点,记iterationcloud=0,同时生成行驶参考点Pointtemporaryreference并存入集合Referenceridgeturn;
5)若Modeturn=0,则说明此时机器人进入垄间道路,则生成最佳行驶参考点进行垄间直线行驶;
6)若Modeturn=2,则说明此时机器人即将进入垄间道路,同时判断是否满足distanceridgewallleftside≤2×widthridge与是否存在直行标志位flagstraight;若满足distanceridgewallleftside≤2×widthridge且不存在flagstraight,则说明此时为棚内左侧最后一条垄间道路,记flagstraight=1;若满足distanceridgewallleftside≤2×widthridge且存在flagstraight=1,则更新flagstraight加1,生成最佳行驶参考点;若不满足distanceridgewallleftside≤2×widthridge,生成最佳行驶参考点;
7)机器人切换至目标导航模式,选取仓库坐标Gwarehouse作为目标点,生成基于地图车道线的全局路径,返回仓库,农药喷洒任务结束。
2.根据权利要求1所述的农药喷洒机器人导航规划方法,其特征在于,步骤11中,distance的确定过程包括:
计算车道线Lanemin上的两个轨迹点Pointcurrentmin和Pointcurrentmin+1的直线方程:
(ycurrentmin+1-ycurrentmin)x-(xcurrentmin+1-xcurrentmin)y+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)=0;
其中,(xcurrentmin,ycurrentmin)和(xcurrentmin+1,ycurrentmin+1)分别为点Pointcurrentmin和Pointcurrentmin+1的坐标;
将轨迹点Pointcurrent′的坐标代入直线方程中进行判断,若(ycurrentmin+1-ycurrentmin)xcurrent′-(xcurrentmin+1-xcurrentmin)ycurrent′+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)>0则说明Pointcurrent′在车道线的右侧,distance=distancetemporary;若(ycurrentmin+1-ycurrentmin)xcurrent′-(xcurrentmin+1-xcurrentmin)ycurrent′+(xcurrentmin+1·ycurrentmin-ycurrentmin+1·xcurrentmin)<0则说明Pointcurrent′在车道线的左侧,distance=-distancetemporary。
3.根据权利要求1所述的农药喷洒机器人导航规划方法,其特征在于,当机器人抵达垄间道路尽头时,还进行航向角修正,具体过程包括:
若不存在转向标志位Modeturn或Modeturn=0或Modeturn=2,则判断是否满足distanceridgewall≤3×lengthrobot;若满足,则机器人抵达垄间道路尽头后,从机器人的激光雷达探测到的距离数组中,从航向角为-10°至10°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠0,则进行机器人航向角修正,直至Yawstandard=0;若不满足,则规定此时的Yawstandard=0;
若Modeturn=1,则判断是否满足distanceridgewallleftside≤1.5×lengthrobot,其中distanceridgewallleftside为激光雷达探测的航向角为-90°,俯仰角为0的距离;若满足,则从激光雷达探测到的距离数组中,从航向角为-100°至-80°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠-90°,则进行机器人航向角修正,直至Yawstandard=-90°;若不满足,则规定此时的Yawstandard=-90°;
若Modeturn=3,则判断是否满足distanceridgewallrightside≤1.5×lengthrobot,其中distanceridgewallleftside为激光雷达探测的航向角为90°,俯仰角为0的距离;若满足,则从激光雷达探测到的距离数组中,从航向角为80°至100°、俯仰角为0的探测数据中选取距离值最小的一组激光数据作为标准距离,记为distancestandard,其航向角记为Yawstandard,若Yawstandard≠90°,则进行机器人航向角修正,直至Yawstandard=90°;若不满足,则规定此时的航向角Yawstandard=90°。
4.一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序;其特征在于,所述处理器执行所述计算机程序,以实现权利要求1~3之一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111299505.9A CN114047755B (zh) | 2021-11-04 | 2021-11-04 | 农药喷洒机器人导航规划方法、计算机装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111299505.9A CN114047755B (zh) | 2021-11-04 | 2021-11-04 | 农药喷洒机器人导航规划方法、计算机装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047755A CN114047755A (zh) | 2022-02-15 |
CN114047755B true CN114047755B (zh) | 2023-12-19 |
Family
ID=80207188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111299505.9A Active CN114047755B (zh) | 2021-11-04 | 2021-11-04 | 农药喷洒机器人导航规划方法、计算机装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047755B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914068A (zh) * | 2013-01-07 | 2014-07-09 | 中国人民解放军第二炮兵工程大学 | 一种基于栅格地图的服务机器人自主导航方法 |
CN106383517A (zh) * | 2016-09-30 | 2017-02-08 | 汕头大学 | 一种自主移动机器人平台用控制系统、方法及装置 |
CN107817509A (zh) * | 2017-09-07 | 2018-03-20 | 上海电力学院 | 基于rtk北斗和激光雷达的巡检机器人导航系统及方法 |
CN109115223A (zh) * | 2018-08-30 | 2019-01-01 | 江苏大学 | 一种面向智能农机的全地形全源组合导航系统 |
CN111337030A (zh) * | 2020-05-19 | 2020-06-26 | 北京数字绿土科技有限公司 | 一种基于背负式的激光雷达扫描系统、导航定位方法 |
CN111338340A (zh) * | 2020-02-21 | 2020-06-26 | 天津大学 | 基于模型预测的无人驾驶汽车局部路径规划方法 |
CN111551958A (zh) * | 2020-04-28 | 2020-08-18 | 北京踏歌智行科技有限公司 | 一种面向矿区无人驾驶的高精地图制作方法 |
CN112014857A (zh) * | 2020-08-31 | 2020-12-01 | 上海宇航系统工程研究所 | 用于智能巡检的三维激光雷达定位导航方法及巡检机器人 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10416682B2 (en) * | 2016-07-29 | 2019-09-17 | Faraday & Future Inc. | Semi-automated driving using pre-recorded route |
-
2021
- 2021-11-04 CN CN202111299505.9A patent/CN114047755B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914068A (zh) * | 2013-01-07 | 2014-07-09 | 中国人民解放军第二炮兵工程大学 | 一种基于栅格地图的服务机器人自主导航方法 |
CN106383517A (zh) * | 2016-09-30 | 2017-02-08 | 汕头大学 | 一种自主移动机器人平台用控制系统、方法及装置 |
CN107817509A (zh) * | 2017-09-07 | 2018-03-20 | 上海电力学院 | 基于rtk北斗和激光雷达的巡检机器人导航系统及方法 |
CN109115223A (zh) * | 2018-08-30 | 2019-01-01 | 江苏大学 | 一种面向智能农机的全地形全源组合导航系统 |
CN111338340A (zh) * | 2020-02-21 | 2020-06-26 | 天津大学 | 基于模型预测的无人驾驶汽车局部路径规划方法 |
CN111551958A (zh) * | 2020-04-28 | 2020-08-18 | 北京踏歌智行科技有限公司 | 一种面向矿区无人驾驶的高精地图制作方法 |
CN111337030A (zh) * | 2020-05-19 | 2020-06-26 | 北京数字绿土科技有限公司 | 一种基于背负式的激光雷达扫描系统、导航定位方法 |
CN112014857A (zh) * | 2020-08-31 | 2020-12-01 | 上海宇航系统工程研究所 | 用于智能巡检的三维激光雷达定位导航方法及巡检机器人 |
Non-Patent Citations (5)
Title |
---|
Vision based Guidance Line Extraction for Autonomous Weed Control Robot in Paddy Field;Keun Ha Choi, Sang Kwon Han, Kwang-Ho Park, Kyung-Soo Kim and Soohyun Kim;《Proceedings of the 2015 IEEE Conference on Robotics and Biomimetics》;第831-836页 * |
丘陵山地田间作业路径规划研究与试验;申梦伟;《中国优秀硕士学位论文全文数据库农业科技辑》;第D044-2页 * |
基于MCPDDPG的智能车辆路径规划方法及应用;余伶俐等;《控制与决策》;第835-846页 * |
基于双源激光的田间作业机械导航定位系统研究;蒋蘋;《中国博士学位论文全文数据库 农业科技辑》;第D044-1页 * |
大田环境下智能移动喷药机器人系统研究;刘路;《中国博士学位论文全文数据库 信息科技辑》;第I140-40页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114047755A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113204236B (zh) | 一种智能体路径跟踪控制方法 | |
CN114812581B (zh) | 一种基于多传感器融合的越野环境导航方法 | |
CN111596665B (zh) | 一种适用于腿足机器人规划的稠密高度地图构建方法 | |
CN112965481A (zh) | 基于点云地图的果园作业机器人无人驾驶方法 | |
CN110806585A (zh) | 一种基于树干聚类跟踪的机器人定位方法及系统 | |
CN112539750A (zh) | 一种智能运输车路径规划方法 | |
CN114114367A (zh) | Agv室外定位切换方法、计算机装置及程序产品 | |
CN114063615B (zh) | 棚内垄间农药喷洒智能车的倒车导航控制方法及系统 | |
CN114564008A (zh) | 基于改进A-Star算法的移动机器人路径规划方法 | |
CN114047755B (zh) | 农药喷洒机器人导航规划方法、计算机装置 | |
CN116136417B (zh) | 一种面向越野环境的无人驾驶车辆局部路径规划方法 | |
CN111580530A (zh) | 一种定位方法、装置、自主移动设备及介质 | |
CN113934225A (zh) | 一种基于全覆盖路径的植保无人机航线规划方法 | |
CN116576859A (zh) | 路径导航方法、作业控制方法及相关装置 | |
CN116839570A (zh) | 一种基于传感器融合目标检测的作物行间作业导航方法 | |
Hyla et al. | Automated Guided Vehicles–the Survey | |
US10914840B2 (en) | Self position estimation apparatus | |
CN116520819A (zh) | 一种基于直连搜索的室内路径规划的方法和系统 | |
Avanzini et al. | A control strategy taking advantage of inter-vehicle communication for platooning navigation in urban environment | |
CN114018246B (zh) | 一种定位导航方法和定位导航装置 | |
Szpytko et al. | Automated guided vehicles navigating problem in container terminal | |
US20230413712A1 (en) | Path finding method and system for weeding robot | |
Zhang et al. | Autonomous navigation and adaptive path planning in dynamic greenhouse environments utilizing improved LeGO-LOAM and OpenPlanner algorithms | |
Liu et al. | Collision-free navigation for mobile robots by grouping obstacles | |
CN117705123B (zh) | 一种轨迹规划方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |