We present an algorithm for non-holonomic motion planning (or 'parking a car') that is as computationally efficient as a simple approach to solving the famous Piano-mover's problem, where the non-holonomic constraints are ignored. The core of the approach is a graph-discretization of the problem. The graph-discretization is provably accurate in modeling the non-holonomic constraints, and yet is nearly as small as the straightforward regular grid discretization of the Piano-mover's problem into a 3D volume of 2D position plus angular orientation. Where the Piano mover's graph has one vertex and edges to six neighbors each, we have three vertices with a total of ten edges, increasing the graph size by less than a factor of two, and this factor does not depend on spatial or angular resolution. The local edge connections are organized so that they represent globally consistent turn and straight segments. The graph can be used with Dijkstra's algorithm, A*, value iteration or any other graph algorithm. Furthermore, the graph has a structure that lends itself to processing with deterministic massive parallelism. The turn and straight curves divide the configuration space into many parallel groups. We use this to develop a customized 'kernel-style' graph processing method. It results in an N-turn planner that requires no heuristics or load balancing and is as efficient as a simple solution to the Piano mover's problem even in sequential form. In parallel form it is many times faster than the sequential processing of the graph, and can run many times a second on a consumer grade GPU while exploring a configuration space pose grid with very high spatial and angular resolution. We prove approximation quality and computational complexity and demonstrate that it is a flexible, practical, reliable, and efficient component for a production solution.
翻译:我们提出一种非完整运动规划(即“泊车”)算法,其计算效率与忽略非完整约束的经典钢琴搬运问题简单解法相当。该方法核心是对问题实施图离散化:该图离散化既能以可证精度刻画非完整约束,其规模又近乎等同于将钢琴搬运问题直接离散为二维位置加角度方向的常规三维网格。其中,钢琴搬运问题的图包含一个顶点及连接六个邻居的边,而我们的图包含三个顶点及十条边,使得图规模增幅不足两倍,且该比例不依赖空间或角度分辨率。局部边连接的设计使其能表征全局一致的转弯与直线段。该图可配合Dijkstra算法、A*算法、值迭代或任何图算法使用。此外,其结构天然适配确定性大规模并行处理:转弯与直线段将构型空间分割为多个并行组。我们据此开发了定制化“核风格”图处理方法,实现无需启发式或负载均衡的N-转弯规划器,其串行效率即等同于钢琴搬运问题的简单解法;并行处理速度远超串行图处理,可在消费级GPU上以每秒多次的频率探索极高空间与角度分辨率的构型空间姿态网格。我们证明了逼近质量与计算复杂度,并展示其作为生产级解决方案中灵活、实用、可靠且高效的组件特性。