【路径生成--覆盖式路径】覆盖式路径探索

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理

文章目录

前言

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

在项目和平时的学习中,我对机器人/无人驾驶的决策规划模块进行了划分,当然划分的方法有很多,我的划分方式仅供参考
(1)动态障碍物行为预测模块(Behavior prediction)–结合感知和高精度地图信息,估计周围障碍物未来运动状态
(2)执行机构的轨迹规划模块(Trajectory_planning)–执行机构如机器人载体上的机械臂、串行云台等的运动轨迹规划
(3)任务决策模块(Mission_planning)–任务决策模块比较偏业务层了,处理机器人/无人驾驶的各种任务,主要分为三个方面:车底盘航线业务决策(交规、横向换道等等)、执行应用机构业务决策(机械臂、人机交互等等)、不同场景的导航方案切换决策(组合导航、融合导航)
(4)前端路径探索模块(path_finding)–全局路径规划算法难度不算复杂,找到一条可通行的(必须满足)、考虑动力学的(尽可能满足)、可以是稀疏的路径base_waypoints【由于其只考虑了环境几何信息,往往忽略了无人机本身的运动学与动力学模型。因此,其得到的轨迹往往显得比较“突兀”,并不适合直接作为无人机的控制指令】
(5)后端轨迹处理模块(motion_planning)–我主要归纳整理为三个方向:(1)对base_waypoints进行简单处理及生成方向、(2)对base_waypoints轨迹优化方向【一般是二次优化,这里用的较多的事优化方面的知识】、(3)进行对应功能的replan方向(replan之前的预处理、进入replan的条件、停障replan、避障replan、纠偏replan、换道replan、自动泊车replan、穿过狭窄道路replan等等),这部分内容使用的方法比较专
(6)路径跟踪模块(trajectory_following)–这个模块就得针对机器人载体了,如无人驾驶使用得阿克曼模型可以采用几何的pure pursuit纯追踪算法,更好的可以用模型预测控制MPC方法,还有强化学习做的(效果怎样我就没验证过了);当然也可能事麦克纳姆轮车、差速车PID、还有无人机的三维轨迹跟踪等等
(7)碰撞检测模块
(8)集群多机器人规划模块

当然,这种划分方式是我权衡了原理和功能粗略划分的,在实际产品研发过程中,需要理解了各个算法的功能和定位的基础上融汇贯通,不能生搬硬套,如全段通过hybrid A探索出来的路径与A、RRT*探索出来的路径更平滑,后端轨迹优化的任务就不用这么重了;又如,机器人/无人驾驶项目研发的需求业务还没发展到能响应很多功能阶段,任务决策使用简单的状态机(fsm)就可以对现有任务进行状态转移了

本文先对覆盖式路径探索做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章

提示:以下是本篇文章正文内容

一、覆盖式路径探索(CCPP)介绍

覆盖式路径探索(Complete Coverage Path Planning)简称为CCPP。一般用于扫地机器人、农业无人机播种喷洒的全覆盖路径规划等等.
.
.

1.覆盖式路径探索一般的搜索方式

第一种螺旋式搜索
《【路径生成--覆盖式路径】覆盖式路径探索》
第二种弓字型搜索
《【路径生成--覆盖式路径】覆盖式路径探索》

2.覆盖式路径探索的业务场景

适合大型农业、【防盗标记–盒子君hzj】大型园区等大空旷场景的覆盖式路径巡航
适合室内的小型室内机器人,如扫地机器人的覆盖式路径巡航

.
.

3.覆盖式路径探索需解决的关键问题

(1)遍历工作区域内除障碍物以外的全部区域【防盗标记–盒子君hzj】
(2)在遍历过程中有效避开所有障碍物
(3)在遍历过程中要尽量避免路径重复,缩短移动距离
.
.

4.覆盖式路径探索技术指标

(1)区域覆盖率
(2)路径重复率【防盗标记–盒子君hzj】
(3)总行程
.
.

二、覆盖式路径探索(CCPP)方案

1.基于人工几何给定并优化处理的方法

(1)原理
覆盖式路径规划的方法基本大都是基于几何的方法做的,用几何的库实现。给定约束条件,根据覆盖路径算法生成全局航线航线

(2)项目步骤(可供参考)
1、【感知航拍】飞机航拍一个地块的高清HD像素图照片,并上传到手机上(外部三维重建也可以生成点云图)
2、【安卓手机前段app设置参数】通过手机前端app设置地块边界信息,覆盖路径的间隔信息,障碍物信息,机器人运行速度信息等,发送给服务器后端
3、【服务器后端全局静态基于几何的方法进行路径规划】在服务器后端运行离线的路径规划,在地块边界内规划出来覆盖式路径
(1)给定覆盖的区域边界、覆盖路径的间隔、障碍物等信息
(2)用直线把该区域进行一次虚拟覆盖,得到每条路径的边界点
(3)用带方向的直线连接对应的直线,【防盗标记–盒子君hzj】在转弯处用带前进和后退方向的曲线进行拟合(杜宾斯曲线,RS曲线)
(4)得到全覆盖的路径
(特殊情况底考虑覆盖区域的障碍物,避障解决或者区域分割解决)
分割地块(大小分、形状分?,曲边直边多边形)?

4、【控制】覆盖式路径通过坐标转换,转换成无人机的全局离线静态路径坐标,飞机上面还有定位信息,通过飞控控制飞机巡航(这一部还没有障碍物信息)
5、【辅助在线局部规划】在车上搭在传感器,【防盗标记–盒子君hzj】实现动态避障(无人驾驶局部规划避障,还是普通逻辑的规划避障?还在预研)

.
.

2.基于航拍AI航线识别给定的航线的方法

(1)原理
航拍得到高清HD图(像素图),像素图输入给AI,识别出覆盖地块的边界,或者根据场景信息提取出航线。
.
(2)适用场景
更适合大型农业、大型园区等大空旷场景【防盗标记–盒子君hzj】
.
.

3.基于曲线生成拼接给定航线的方法

(1)适用场景
更适合室内的小型室内机器人,如扫地机器人
.

(2)曲线生成拼接的方法
1)基于几何生成轨迹曲线的方法举例
(1)直线设置/插值
(2)圆弧插值器
(3)三角函数多项式
(4)摆线函数

2)基于特殊曲线生成方法
(1)基于贝塞尔、B样条生成轨迹
(2)基于三次/五样条曲线生成轨迹
(3)基于cube 样条曲线生成轨迹
(4)基于RS曲线和dubins曲线生成轨迹
(5)基于Minumum Snap生成轨迹
(6)基于梯度的生成轨迹
上面10种方法的原理我写在其他文章上吧,太多了这里不展开介绍哈
.
.

(3)直线+不同性质的曲线拼接
确定中间点的交汇时间做约束,一般回出现过约束的问题,【防盗标记–盒子君hzj】为了实现速度/加速度连续,一般会把插值问题转变成逼近问题

.
.

4.其他方法

参考资料:
https://zhuanlan.zhihu.com/p/90311874
https://blog.csdn.net/MyArrow/article/details/84560279
https://blog.csdn.net/jiajiading/article/details/102554910

总结

本文仅仅是简单介绍了覆盖式路径探索的的一些方向,【防盗标记–盒子君hzj】具体的后续整理好资料再更吧,通过博客记录下自己的成长过程,认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

经验:
(1)多边形库polyon(多用于几何的方法处理直线段)
(2)Dubins曲线和Reeds-Shepp曲线【多用于泊车、转弯】

    原文作者:盒子君~
    原文地址: https://blog.csdn.net/qq_35635374/article/details/120594927
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞