移动机器人农田机器人全覆盖路径规划

鉴于目前网上对于全覆盖路径规划方面的资料比较少,本次博客内容主要分享下拖拉机在农田里面作业的路径规划,以及轨迹优化。(提供有偿开发)

目录

1. 什么是全覆盖路径规划

2. 实用案例

3. 农田作业机器人

如何获取地图

如何规划出全覆盖的路径

如何确保规划出来的路径是符合车辆动力学要求的



1. 什么是全覆盖路径规划

  1. 遍历工作区域内的所有面积
  2. 移动过程中要避开障碍物
  3. 保证覆盖率,避免重复路径

2. 实用案例

  1. 扫地机器人,割草机器人,排雷机器人,农田作业等。

3. 农田作业机器人

如何获取地图

        农田作业机器人和室内作业机器人的区别是,农田作业的面积是很大的,并且周边没有围墙,树木之类的,因此无法像扫地机器人那样通过SLAM建立农田的地图,农田的优势就是,环境比较单一,障碍物比较少或者无障碍物,这对于规划来说也是比较友善的,因此为了获取农田的地块,一般是采用GPS打点的形式,也就是拿着RTK模块,去农田边上走一圈,就可以获取得到农田在地球表面的坐标了。

如何规划出全覆盖的路径

        规划全覆盖路径,和一般的路径规划是不一样的,全覆盖规划不是点到点的规划,所以一般的图搜索算法例如A star, RRT等,都是用不上的。 

        在探讨如何规划全覆盖的作业路径之前,首先了解下,农业机器人在农田内是如何工作的,以及其工作的内容有哪些。举个例子,比如,深松,靶地,起垄,旋耕等,这些都是农机比较常见的作业,他们都有一些共同的特点,主要的路径都是直线+掉头+直线+掉头的形式。所以对于这种形式的全覆盖规划,使用高中学的几何知识就可以完成了,首先选择一个方向,然后找一条与该方向平行的直线,从地图的一边尽头往另一边平移,直线与边界的交点就是直线路线的两个端点,专业一点的话,这种直线段被称为垄,如下图1所示,直线段都称为垄, 掉头的地方,直接将直线段的端点相连接即可。这是简单的的全覆盖规划方法了,还有一些比较复杂的地图,比如图2,图3。

        从一下图中可以看到,掉头区域出现很多尖角,对于阿克曼形式的移动机器人来说,这是比较致命的,农业拖拉机多数也是阿克曼形式的底盘,转弯是有最大转弯角度约束的,这种尖角形式的轨迹是不适合拖拉机正常跟随的,因此还需要对下面的path作进一步的轨迹优化,是的path每一个点的曲率都满足车辆动力学要求。

图1

图2

图3(地图内有三个障碍物,分别是圆形和矩形障碍物)

如何确保规划出来的路径是符合车辆动力学要求的

对于使用差速轮作为底盘的移动机器人,规划出直线段轨迹后,还需要进一步平滑,平滑轨迹的方式可以采用b样条曲线,因为这种差速轮形式的机器人,在跟踪轨迹的时候是不会受到曲线的曲率影响的,因为当线速度无穷小的时候,差速轮的转弯能力无穷大,也就是原地转弯,但是如果采用B样条进行拟合直线的话,有可能会出现平滑后的轨迹是穿过障碍物的情况,这种情况的话,可能就要使用一些优化算法了,比如参考高飞老师的开源项目,ego planner,简介可以看下下面的知乎大佬写的内容。大体上可以知道是干嘛的。这个算法没有加入曲率的约束,所以对于车辆来说是不行的,应该车辆有方向盘打角约束。对于车辆的轨迹优化,我参考的是混合A*的算法,掉头区域可以用混合A*搜索出一条轨迹,最后再加一个平滑, 结果图4, 图5,后续有人感兴趣的话,在更新实现部分内容。https://zhuanlan.zhihu.com/p/513312955icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/513312955 

 图4   

 

 图5


鸽了好久没更新了

前面说到如何获取地图,一般商用阶段都是手持RTK模块,或者无人机啥的绕着田边打点,但是这是有硬件加持的情况,对于普通人来说如何获取真实的地块信息呢,可以去google earth, 在google earth不仅可以看到你的家, 还可以把你家门前的地块经纬度给获取到(不准就是了,不过不影响算法测试), 打开google earth,new project, new features, features可以选择 draw line, 这个时候就可以把农田边界以及障碍物给勾勒出来,如下图6, 勾勒之后,保存并输出成kml文件即可, 地块的经纬度海拔信息就存放在kml文件中,读取这个kml文件可以用python来读方便简单。 具体的步骤如下

  1. 在google earth选中一块地
  2. 输出地图经纬度信息
  3. 用python解析kml文件并把经纬度转换成局部笛卡尔坐标系
  4. 规划算法读取解析的地图位置并开始规划
  5. 把规划算法的结果转换成经纬度坐标系
  6. 按照kml的文件格式把规划数据写进.kml文件
  7. 在google earth上加载规划的数据

图6   

 

 

待更!!!

REFERENCE       

Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments

  • 15
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
### 回答1: 消毒机器人使用覆盖路径规划算法的意义在于能够确保机器人在清洁过程中不会遗漏任何一个区域,从而提高清洁效率和效果。覆盖路径规划算法可以帮助机器人规划最优路径,使得机器人能够在最短时间内完成清洁任务,并且能够避免重复清洁同一区域。 此外,覆盖路径规划算法还可以自适应地调整清洁路径,以应对不同环境和障碍物的变化。这些特性使得消毒机器人能够更加智能化和高效化地完成清洁任务,提高工作效率和质量,从而满足不同场景的需求。 ### 回答2: 消毒机器人使用覆盖路径规划算法的意义是为了提高消毒效率和效果。覆盖路径规划算法可以帮助机器人确定最优的路径,确保所有区域都得到充分的消毒,减少漏扫和重复扫描的情况。 首先,使用覆盖路径规划算法可以确保机器人覆盖到目标区域的每个角落。该算法会根据地图和目标区域的大小、形状等信息,计算出机器人应该如何移动才能覆盖到每个点。相比于随机移动或者固定路径的方式,覆盖路径规划算法能够更加高效地利用机器人的资源,减少漏扫的概率。 其次,覆盖路径规划算法可以帮助机器人避免重复扫描同一区域。在规划路径时,算法会记录已经扫描过的区域,避免机器人进行重复扫描。这样可以节约时间和能量,提高机器人的工作效率。 此外,由于覆盖路径规划算法可以优化机器人的路径选择,因此还可以减少机器人的运动距离和时间。通过选择最短路径,机器人可以更快地完成消毒任务,并能够在有限时间内完成更多的区域扫描。 综上所述,消毒机器人使用覆盖路径规划算法的意义在于提高消毒效率和效果。这种算法可以确保机器人覆盖到每个角落,避免漏扫和重复扫描的问题,同时还能够优化路径选择,减少机器人的运动距离和时间。这将为消毒工作带来更大的便利和效益。 ### 回答3: 消毒机器人使用覆盖路径规划算法具有以下意义: 首先,覆盖路径规划算法能够帮助消毒机器人高效、面地完成消毒任务。传统的路径规划算法可能存在遗漏或重复的区域,无法完覆盖待消毒区域。而覆盖路径规划算法能够确保消毒机器人在不遗漏任何区域的前提下,使用最短的路径完成消毒工作,提高了消毒效率。 其次,覆盖路径规划算法可以节省时间和能源消耗。对于大面积的消毒任务,使用覆盖路径规划算法能够避免重复来回的路径,减少了机器人的往返距离,从而节省了时间和能源的消耗,提高了工作效率。 此外,覆盖路径规划算法可以提高消毒的准确性和可靠性。在使用传统的路径规划算法时,可能会由于区域遗漏或路径冗余导致某些区域没有得到充分的消毒,从而可能造成交叉感染或再次传播病原体的风险。而覆盖路径规划算法可以确保每个区域都得到了充分的消毒,降低了病原体滞留的风险,提高了消毒的准确性和可靠性。 最后,覆盖路径规划算法还可以避免人工干预和操作的需要。传统的路径规划需要人工干预设定起点、终点和路径规划参数,而覆盖路径规划算法可以根据待消毒区域的实时情况,动态生成适应性的路径规划,减少了人工操作的需求,提高了自动化程度和工作效率。 综上所述,消毒机器人使用覆盖路径规划算法的意义在于提高消毒效率、节省时间和能源消耗、提高准确性和可靠性,以及减少人工干预和操作的需求。这对于实现面高效的消毒工作具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值