Motion Planning Templates: A Motion Planning Framework for Robots with Low-power CPUs

Motion Planning Templates (MPT) is a C++ template-based library that uses compile-time polymorphism to generate robot-specific motion planning code and is geared towards eking out as much performance as possible when running on the low-power CPU of a battery-powered small robot. To use MPT, developers of robot software write or leverage code specific to their robot platform and motion planning problem, and then have MPT generate a robot-specific motion planner and its associated data-structures. The resulting motion planner implementation is faster and uses less memory than general motion planning implementations based upon runtime polymorphism. While MPT loses runtime flexibility, it gains advantages associated with compile-time polymorphism— including the ability to change scalar precision, generate tightly-packed data structures, and store robot-specific data in the motion planning graph. MPT also uses compile-time algorithms to resolve the algorithm implementation, and select the best nearest neighbor algorithm to integrate into it. We demonstrate MPT’s performance, lower memory footprint, and ability to adapt to varying robots in motion planning scenarios on a small humanoid robot and on 3D rigid-body motions.

[1]  Lentin Joseph Robot Operating System (ROS) for Absolute Beginners , 2018, Apress.

[2]  Lydia E. Kavraki,et al.  The Open Motion Planning Library , 2012, IEEE Robotics & Automation Magazine.

[3]  Andre Gaschler,et al.  Robotics library: An object-oriented approach to robot applications , 2017, 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[4]  B. Faverjon,et al.  Probabilistic Roadmaps for Path Planning in High-Dimensional Con(cid:12)guration Spaces , 1996 .

[5]  Bjarne Stroustrup,et al.  The C++ Programming Language, 4th Edition , 2013 .

[6]  Emilio Frazzoli,et al.  Sampling-based algorithms for optimal motion planning , 2011, Int. J. Robotics Res..

[7]  James J. Kuffner,et al.  OpenRAVE: A Planning Architecture for Autonomous Robotics , 2008 .

[8]  Toshiaki Yasue,et al.  A study of devirtualization techniques for a Java Just-In-Time compiler , 2000, OOPSLA '00.

[9]  George Konidaris,et al.  Robot Motion Planning on a Chip , 2016, Robotics: Science and Systems.

[10]  Kostas E. Bekris,et al.  Asymptotically Near-Optimal Planning With Probabilistic Roadmap Spanners , 2013, IEEE Transactions on Robotics.

[11]  Nikolaus Correll,et al.  C-FOREST: Parallel Shortest Path Planning With Superlinear Speedup , 2013, IEEE Transactions on Robotics.

[12]  S. LaValle,et al.  Randomized Kinodynamic Planning , 2001 .

[13]  Jon Louis Bentley,et al.  Decomposable Searching Problems I: Static-to-Dynamic Transformation , 1980, J. Algorithms.

[14]  Ron Alterovitz,et al.  Scalable Multicore Motion Planning Using Lock-Free Concurrency , 2014, IEEE Transactions on Robotics.

[15]  Steven M. LaValle,et al.  Improving Motion-Planning Algorithms by Efficient Nearest-Neighbor Searching , 2007, IEEE Transactions on Robotics.

[16]  Sergey Brin,et al.  Near Neighbor Search in Large Metric Spaces , 1995, VLDB.

[17]  John H. Reif,et al.  Complexity of the mover's problem and generalizations , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[18]  Lydia E. Kavraki,et al.  Kinodynamic Motion Planning by Interior-Exterior Cell Exploration , 2008, WAFR.

[19]  Dan Halperin,et al.  Collision detection or nearest-neighbor search? On the computational bottleneck in sampling-based motion planning , 2016, WAFR.

[20]  Nikolaus Correll,et al.  Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study , 2014, ArXiv.

[21]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[22]  Ron Alterovitz,et al.  Concurrent Nearest-Neighbor Searching for Parallel Sampling-Based Motion Planning in SO(3), SE(3), and Euclidean Spaces , 2018, WAFR.

[23]  Anis Koubaa Robot Operating System (ROS): The Complete Reference (Volume 1) , 2016 .

[24]  Todd L. Veldhuizen,et al.  C++ Templates are Turing Complete , 2003 .

[25]  Howie Choset,et al.  Principles of Robot Motion: Theory, Algorithms, and Implementation ERRATA!!!! 1 , 2007 .

[26]  Ron Alterovitz,et al.  Fast Nearest Neighbor Search in SE(3) for Sampling-Based Motion Planning , 2014, WAFR.