项目任务
为实现拖拉机在田间往复的耕作,需要设计合适的全覆盖路径规划算法以及配套的路径跟踪算法。有时候,拖拉机的转向能力有限,在控制算法设计时,需要考虑拖拉机的倒车控制。
全覆盖路径规划
全覆盖路径规划是拖拉机实现无人耕地的基础,然而在田间换道处,拖拉机常常因为转向能力不足而需要设计相应的倒车算法。Reeds-Shepp曲线是一个好的方法
倒车控制思路
市面上,农业自动驾驶的控制解决方案多使用纯追踪方法,这种方法在低速条件下精度高且鲁棒性好。然而纯追踪方法的核心思路是向前找前瞻点,车辆不知道什么时候该前进,什么时候该后退。于是我们需要对路径进行特殊处理,以告知车辆何时前进,何时后退。
将一条路径划分为多个跟踪段,定义路径朝向与车辆航向一致的段为前进段,路径朝向与车辆航向相反的段为后退段。
关于前进或推后的纯追踪算法经过推倒后是殊途同归的
介绍纯追踪方法的博客很多,这里就不再赘述
状态机设计
通过分析,拖拉机在田里耕地主要涉及初始化、直线保持、避障、掉头以及任务完成这几个状态,参考开源代码Fast planner的代码结构可以设计出以下状态机
效果展示
项目要做的拖拉机还没有改装好,目前不能倒车,只能直行。于是先用实验室的试验车模拟拖拉机在田里往返耕地的效果
模拟无人拖拉机全覆盖路径规划控制