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

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

目录

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

2. 实用案例

3. 农田作业机器人

如何获取地图

如何规划出全覆盖的路径

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



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

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

2. 实用案例

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

3. 农田作业机器人

如何获取地图

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

如何规划出全覆盖的路径

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

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

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

移动机器人农田机器人全覆盖路径规划_第1张图片

图1

移动机器人农田机器人全覆盖路径规划_第2张图片

图2

移动机器人农田机器人全覆盖路径规划_第3张图片

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

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

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

 图4   

 移动机器人农田机器人全覆盖路径规划_第5张图片

 图5

        

待更!!!

REFERENCE       

Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments

你可能感兴趣的:(自动驾驶,机器人,算法)