FASTER
FASTER: Fast and Safe Trajectory Planner for Flights in Unknown Environments
related work
planning
- optimization problem: use an integrator model, minimize the squared norm of a derivative of the position to find a dynamically feasible smooth trajectory
- use stitched polynomial trajectories that pass through several waypoints obtained running RRT-based methods
- use closed-form solutions or motion-primitive libraries
- include obstacles in the optimization problem
- penalize the distance to the obstacles in the cost function(导致计算量增大,或者优化问题非凸)
- encode the shape of the obstacles in the constraints using successive convexification or a convex decomposition使用连续凸化或者凸分解对障碍物进行分解
convex decomposition通常将free space分成连续的p个互相重叠的多面体 将整个轨迹约束到多面体中,通常使用贝塞尔曲线,该问题中interval如何选取是非常重要的。保守的方法将点放在重叠区域内,还有的方法允许自由选择特定的间隔,但是计算量增大;除了interval还有时间分配,有的方法是使用特定速度配置文分配固定的时间,这种方法非常保守,还有就是把优化问题看做双层优化问题,使用线搜索或者梯度下降来迭代地获取时间。
plan space
关于local planner的plan space也是需要考虑的
- use only the most recent perception data 仅仅使用最近的感知数据,这样的话要求轨迹保持在传感器的探测范围内;
- create and plan trajectories in a map of the environment built using a history of perception data 使用历史的感知数据来构建地图;在这种方法中很多都是在free space下优化轨迹,能保证安全但是限制了轨迹速度;如果为了速度在free and unknown space下优化的话,会无法保证安全可到达
mapping
- memory-less : rely only on instantaneous sensing data, using only the last measurement 仅仅依赖瞬时传感器数据,或者最后的测量,不能使用过去观测到的障碍物,并且当传感器的fov比较小时 很受限
- fused-based, in the form of an occupancy grid or distance field 常会融合到占据栅格地图,常见的问题是估计误差有影响,融合时间
intergration between the planner and the mapper
- reactive planner: use a memory-less map and closed form primitives are usually chosen for planning fail in complex scenarios
- map-based planner usually use occupancy grids or distance fields to represent the environment
when unknown space is considered, an optimistic global planner is used combined with a conservative local planner
FASTER
mapping
uav-centered sliding map 使用的是占据栅格地图 occupancy grid map
滚动地图的好处是可以减少位置估计误差漂移的影响
使用的是the 3D Bresenham’s line algorithm方法把深度图融合到占据栅格地图中
并且obstacle和unknown都以uav的半径来膨胀
global planner
使用的是JPS算法
可以找到最短的分段路径,比A*的速度有数量级的提升,并且可以保证完备性和最优性
Convex Decomposition
围绕JPS得到的分段路径进行分解,首先对线段进行膨胀,膨胀为椭圆,然后计算与障碍物接触的椭圆点的切线平面
local planner
- whole trajectory: A to E has a final stop condition
- safe trajectory: R to F, F is any poitn inside the polyhedra, has a final stop condition to guarantee safety
- committed trajectory: A to R + safe trajectory 如果下个重规划步骤找不到路径则用这个
局部规划是通过优化实现的:
uav的状态量有三个: 位置x 速度v 和加速度a
控制输入是a的导数j
路径是一个三阶的多项式,可以用贝塞尔曲线表示,分为n段,每段有四个控制点,有p个多面体
贝塞尔有凸包的性质,包裹在由控制点定义的convex hull中,我们可以通过限制每一段的控制点在同一个polyhedron中来保证轨迹在convex corridor中
binary variables Bnp
(这里的约束没有看懂)
这样的话就可以优化的时候优化time interval,优化用的是Gurobi