PythonRobotics-自主机器人导航

2022-08-05 11:50:10 浏览数 (1)

这个系列的文章是之前Python实现所有算法的兄弟篇,眼看着夏令营完事,我也要又开始学习日子了:

若干篇,大家可以看以前的文章

我思来想去,决定深耕机器人领域,又大又深。虽然现在的算法大部分都可以找到,但是没有一个集成的项目来做,这个PR的项目首先是保证了可视化的操作,我想没人不爱可视化吧。其次就是算法的齐全:

常见的定位算法

地图绘制

点云配准

路径规划

路径追踪

机械臂等等

对于代码库,作者还编制了一个doc

安装库以后,这里把依赖的库安装一下:

代码语言:javascript复制
pip install -r requirements/requirements.txt

会把使用的全安装

测试一下这个怎么样,注意是使用Python的终端

运行的很OK

除此之外,还搞了一篇论文,原文在最后:

看不懂英文的意思?我给你翻译一下,近年来自主的导航技术在很多的领域都大受关注,这个系统是指,在不受操作者控制的情况下,能够长时间的向目标移动的系统,首先是需要知道自己在哪里,那些地方是安全的,去这个安全的地方该如何去,以及如何控制自己的运动。如果缺少任意一个,都是不可以的。可能太大白话了,定位,映射,路径规划,路径跟随。但是熟悉这些东西需要大量的不同的技能集合,线性代数,统计学,概率论,优化理论,控制理论等等。而且学习这些还得良好的教育资源,那么这个项目就是为了为这个美好的愿望来添砖加瓦,他有很多的模拟动画,有助于读者来了解之后的基本思想。

还是继续说,虽然可以找到很多的资料,但是对于一个初学者还是不能很好的来了解算法的思路。

项目按照可读性,就是代码易于阅读,实用性,算法必须具有实用性,就是在学术界和工业界得到广泛的应用,最后就是最小的依赖关系,很少的外部依赖可以让我们轻松的运行代码的demo。这就是库的三个重要特征。

在文章的后面我想写一下这个库的组织方式:

按照大的技术类别分为:定位,映射,SLAM,路径规划和路径跟踪。然后我会简单的介绍一下这几个的作用,定位是通过各种传感器来确定自己的位置和方向的能力。映射也可以称为测绘的能力,机器人需要了解环境,可以设别障碍物的位置和形状,才能避开障碍物。SLAM是一种更加好的办法,可以同时估计机器人的姿态和环境地图的能力,但是它难以求解,因为定位需要地图,映射需要定位,这样看就好像是先有鸡还是先有蛋的问题。路径规划是机器人寻找可行高效的路径到达目标的能力,路径必须要根据机器人的运动模型和障碍物位置满足一些约束条件,并优化目标的时间和到障碍物的距离等一些目标函数。

现在就安装这些库就好,最后一个是一个优化的库。

CVXPY 是一种用于凸优化问题的开源 Python 嵌入式建模语言。它可以让您以一种遵循数学的自然方式表达您的问题,而不是求解器所需的限制性标准形式。

因为要不停的看各种API,划词翻译这个浏览器插件也值得拥有~

概率机器人,这个书你看过吗?如果看过的话,这个库是练习的解决方案

代码语言:javascript复制
https://github.com/pptacher/probabilistic_robotics
代码语言:javascript复制
https://fanyi.youdao.com/
代码语言:javascript复制
https://arxiv.org/ftp/arxiv/papers/1808/1808.10703.pdf
代码语言:javascript复制
https://github.com/AtsushiSakai/PythonRobotics
代码语言:javascript复制
https://www.cvxpy.org/

0 人点赞