hybrid Astar的实现、优化和应用
hybrid Astar实现技术要点
惩罚项和启发值设计,kd树和flann最近邻搜索;
dubins和reedshep改进;
碰撞检测实现(基于几何图形和基于轮廓采样);
气泡带限制搜索空间;
可变参数搜索,分段搜索;
多个分辨率地图同时使用;
描述及实现效果
对于方形机身轮廓footprint、驱动轮后置差速mobile robot,使用astar等方法无法直接规划出光滑路径或者通过极窄通道的无碰撞路径;
使用hybridAstar方法结合碰撞检测和合理的启发函数设计,可以规划出光滑无碰撞且长度较优的路径(不考虑在终点时机器朝向);
上图中:
品红色粗线为astar经过梯度优化之后的光滑路径,跑机过程中由于位姿跳动(融合位姿跳动的误差椭圆主轴通常沿速度方向)和传感器数据的不准确(tof测距,近距离雷达点距离抖动较大),跟随该路径会导致机器碰撞到窄通道边缘;
红色细线为hybridAstar规划出的路径(不考虑路径终点机器朝向),可见,规划出的从左往右通过窄通道的路径,在到达窄通道前,机器轮廓会先对准地图上这一缺口,保证机器垂直进入窄通道,为机器避免碰撞和动态调整路径提供了便捷;
上述规划中路径对直缺口的操作可通过加大碰撞检测时使用轮廓的长度实现,即:在缺口附近进行节点扩展时,加大碰撞检测使用的机器轮廓的长度,也就是把车头加长;
上图中:
当机器处于某些特定位姿起点时,由于搜索算法中角度细分率、最大转弯角度、采样长度、状态空间分辨率等参数的限制,路径在缺口前会出现转弯对齐缺口的情形;
跑机实测
考虑到了机器真实轮廓,能够生成光滑无碰撞路径
改进的dubins为圆弧加直线的方式,圆弧转角限定为90度以内,避免大段转弯;
搜索时使用改进的dubins命中目标点;
一般的dubins为圆弧加直线加圆弧的方式,如左边生成的曲线;
不考虑到达目标点时的机器phi角朝向,就不需要最后一段圆弧,直接使用直线到达目标点;保证路径光滑,同时避免终点附近不必要的原地转弯对齐操作;
对dubins曲线的生成就行修改,修改成圆弧加上直线的方法,只考虑起点方向,目标点只考虑位置不考虑方向;