走机器的路,让你看一下。
在机器人研究领域,给定某一特定任务之后,如何规划机器人的运动方式至关重要。
最近,GitHub 上开源了一个存储库,该库实现了机器人技术中常用的一些路径规划算法,大部分代码是用 Python 实现的。值得一提的是,开发者用 plotting 为每种算法演示了动画运行过程,直观清晰。
![机器人是如何规划路径的?动画演示一下吧](https://s2.51cto.com/oss/202011/12/2135d2fc0f2487a18ae53469a3cc870b.jpg)
项目地址:
https://github.com/zhm-real/PathPlanning
该开源库中实现的路径规划算法包括基于搜索和基于采样的规划算法,具体目录如下图所示:
![机器人是如何规划路径的?动画演示一下吧](https://s2.51cto.com/oss/202011/12/48058724795158222f40e6d4612fe90a.jpg)
基于搜索的路径规划算法
基于搜索的路径规划算法已经较为成熟且得到了广泛应用,常常被用于游戏中人物和移动机器人的路径规划。
最佳路径优先搜索算法
![机器人是如何规划路径的?动画演示一下吧](https://s6.51cto.com/oss/202011/12/5a067273d35e985a60818d69f42f49ec.jpg)
Dijkstra 算法
![机器人是如何规划路径的?动画演示一下吧](https://s6.51cto.com/oss/202011/12/b7e5cebf2ace6e32333776b81890beb6.jpg)
A * 搜索算法
![机器人是如何规划路径的?动画演示一下吧](https://s2.51cto.com/oss/202011/12/bd053bbb006be736a17ee0ebc4b5f407.jpg)
双向 A * 搜索算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/1e91b5a17463cf588344c3f07b43647c.jpg)
重复 A * 搜索算法
![机器人是如何规划路径的?动画演示一下吧](https://s6.51cto.com/oss/202011/12/d5a3016d63e139354a42b4bb5baa10a6.jpg)
Anytime Repairing A* (ARA*) 搜索算法
![机器人是如何规划路径的?动画演示一下吧](https://s3.51cto.com/oss/202011/12/16750b562dc787b5408f42d951e792e2.jpg)
实时学习 A * 搜索(LRTA*)算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/0d416096c7c25d4bb806a885b92b9ad4.jpg)
实时适应性 A * 搜索(RTAA*)算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/38b0808fa2aefe0c31b90b293d511f2c.jpg)
动态 A * 搜索(D*)算法
![机器人是如何规划路径的?动画演示一下吧](https://s3.51cto.com/oss/202011/12/ec5c257560907a1e52b7f0c455d96687.jpg)
终身规划 A * 搜索算法
![机器人是如何规划路径的?动画演示一下吧](https://s3.51cto.com/oss/202011/12/92b3e73a28ccaab2c5c125fdb542b223.jpg)
Anytime D * 搜索算法:变动较小
![机器人是如何规划路径的?动画演示一下吧](https://s5.51cto.com/oss/202011/12/adf5179a19cdd3df0a611f9df0541d6c.jpg)
Anytime D * 搜索算法:变动较大
![机器人是如何规划路径的?动画演示一下吧](https://s5.51cto.com/oss/202011/12/0fdc813bec85bdfcba082f4b8a8f4f54.jpg)
基于采样的路径规划算法
与基于搜索不同,基于采样的路径规划算法不需要显式构建整个配置空间和边界,并且在高维度的规划问题中得到广泛应用。
快速随机搜索树(RRT)算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/0743cb43938f20ac901196a123bf5983.jpg)
目标偏好 RRT 算法
![机器人是如何规划路径的?动画演示一下吧](https://s5.51cto.com/oss/202011/12/b301f676c463627866d95f3823713a16.jpg)
双向快速扩展随机树(RRT_CONNECT)算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/cc081af990eae0a78a3405c3cd53c7a6.jpg)
Extended_RRT 算法
![机器人是如何规划路径的?动画演示一下吧](https://s6.51cto.com/oss/202011/12/6433811c367d68f6dc76ef704d0ad908.jpg)
动态 RRT 算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/3bf24f95b57de8eced1094050478429b.jpg)
N = 10000 时,rrt * 算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/ec0719f76b56ef37c5bd1ddce35f953a.jpg)
N = 1000 时,rrt*-Smart 算法
![机器人是如何规划路径的?动画演示一下吧](https://s2.51cto.com/oss/202011/12/370d67e914cfcda33d8b06614b396c37.jpg)
快速行进树(FMT*)算法
![机器人是如何规划路径的?动画演示一下吧](https://s4.51cto.com/oss/202011/12/aacd33c0ea6bc40a385bc666612f7348.jpg)
N =1000 时,Informed rrt * 算法
![机器人是如何规划路径的?动画演示一下吧](https://s5.51cto.com/oss/202011/12/19387bba534438c28179d3bc935bb369.jpg)
Batch Informed 树(BIT*)算法
![机器人是如何规划路径的?动画演示一下吧](https://s6.51cto.com/oss/202011/12/9df0d643ec2d91784b9efb59b0e72d6e.jpg)