Git Product home page Git Product logo

pythonrobotics-cn's Introduction

标题图片

Python机器人

GitHub_Action_Linux_CI GitHub_Action_MacOS_CI GitHub_Action_Windows_CI 构建状态 代码科夫

机器人算法的 Python 代码。

目录

这是什么?

这是机器人算法的 Python 代码集合。

特征:

  1. 易于阅读,有助于理解每个算法的基本**。

  2. 选择广泛使用且实用的算法。

  3. 最小的依赖性。

请参阅本文了解更多详细信息:

要求

运行每个示例代码:

对于开发:

文档

本自述文件仅显示了该项目的一些示例。

如果您对每种算法的其他示例或数学背景感兴趣,

您可以在线查看完整的文档:欢迎使用 PythonRobotics 的文档!— PythonRobotics 文档

所有动画 gif 都存储在这里:AtsushiSakai/PythonRoboticsGifs:PythonRobotics 的动画 gif

如何使用

  1. 克隆这个仓库。

    git clone https://github.com/AtsushiSakai/PythonRobotics.git
    
  2. 安装所需的库。

  • 使用康达:

    conda env create -f requirements/environment.yml
    
  • 使用点:

    pip install -r requirements/requirements.txt
    
  1. 在每个目录中执行python脚本。

  2. 如果您喜欢,请为该存储库添加星星 😃。

本土化

扩展卡尔曼滤波器本地化

EKF图片

参考:

粒子过滤器定位

2

这是使用粒子滤波器(PF)的传感器融合定位。

蓝线是真实轨迹,黑线是航位推测轨迹,

红线是带有 PF 的估计轨迹。

假设机器人可以测量距地标的距离 (RFID)。

这些测量用于 PF 定位。

参考:

直方图滤波器定位

3

这是使用直方图滤波器的 2D 定位示例。

红十字是真实位置,黑点是RFID位置。

蓝色网格显示直方图滤波器的位置概率。

在此模拟中,x,y 未知,偏航已知。

该滤波器集成了来自 RFID 的速度输入和范围观测以进行定位。

不需要初始位置。

参考:

测绘

高斯网格图

这是一个二维高斯网格映射示例。

2

射线投射网格图

这是一个 2D 射线投射网格映射示例。

2

激光雷达转网格地图

此示例演示如何将 2D 范围测量转换为网格地图。

2

k-均值对象聚类

这是一个使用 k-means 算法的 2D 对象聚类。

2

矩形拟合

这是一个用于车辆检测的二维矩形。

2

SLAM

同步定位与建图 (SLAM) 示例

迭代最近点 (ICP) 匹配

这是一个具有奇异值分解的 2D ICP 匹配示例。

它可以计算旋转矩阵,以及点与点之间的平移向量。

3

参考:

快速SLAM 1.0

这是一个使用 FastSLAM 1.0 的基于特征的 SLAM 示例。

蓝线是地面实况,黑线是航位推算,红线是使用 FastSLAM 估计的轨迹。

红点是FastSLAM的粒子。

黑点是地标,蓝色十字是FastSLAM估计的地标位置。

3

参考:

路径规划

动态窗口方法

这是使用动态窗口方法的 2D 导航示例代码。

2

基于网格的搜索

迪杰斯特拉算法

这是基于 Dijkstra 算法的最短路径规划的二维网格。

PythonRobotics/figure_1.png 大师 · AtsushiSakai/PythonRobotics

在动画中,青色点是搜索到的节点。

A*算法

这是一个基于二维网格的A星算法最短路径规划。

PythonRobotics/figure_1.png 大师 · AtsushiSakai/PythonRobotics

在动画中,青色点是搜索到的节点。

它的启发式是二维欧几里得距离。

D*算法

这是一个基于二维网格的D星算法最短路径规划。

大师人物·nirnayroy/intelligentrobotics

该动画显示机器人使用 D* 搜索算法找到避开障碍物的路径。

参考:

D* Lite 算法

该算法在发现障碍物时重新路由时找到两点之间的最短路径。它已在此处针对 2D 网格实现。

D* 精简版

该动画展示了机器人在使用 D* Lite 搜索算法发现障碍物时寻找其路径并重新规划路线以避开障碍物。

参考文献:

势场算法

这是使用势场算法的基于二维网格的路径规划。

势场

在动画中,蓝色热图显示了每个网格的潜在价值。

参考:

基于网格的覆盖路径规划

这是基于二维网格的覆盖路径规划模拟。

势场

状态格子规划

该脚本是带有状态格规划的路径规划代码。

该代码使用模型预测轨迹生成器来解决边界问题。

参考:

有偏极性采样

PythonRobotics/figure_1.png 大师 · AtsushiSakai/PythonRobotics

车道采样

PythonRobotics/figure_1.png 大师 · AtsushiSakai/PythonRobotics

概率路线图 (PRM) 规划

PRM

该 PRM 规划器使用 Dijkstra 方法进行图搜索。

动画中,蓝色点是采样点,

青色十字表示用 Dijkstra 方法搜索的点,

红线是PRM的最终路径。

参考:

  

快速探索随机树(RRT)

恢复时间*

PythonRobotics/figure_1.png 大师 · AtsushiSakai/PythonRobotics

这是带有 RRT* 的路径规划代码

黑色圆圈是障碍物,绿线是搜索到的树,红色十字是起点和目标位置。

参考:

带 reeds-shepp 路径的 RRT*

机器人/animation.gif at master · AtsushiSakai/PythonRobotics

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)</font></font></p>

使用 RRT* 和 Reeds Shepp 路径规划器对汽车机器人进行路径规划。

LQR-RRT*

这是使用 LQR-RRT* 的路径规划模拟。

双积分器运动模型用于 LQR 局部规划器。

LQR_RRT

参考:

五次多项式规划

使用五次多项式进行运动规划。

2

它可以根据五次多项式计算 2D 路径、速度和加速度曲线。

参考:

里德·谢普规划

Reeds Shepp 路径规划的示例代码。

RSP规划

参考:

基于LQR的路径规划

使用基于 LQR 的双积分器模型路径规划的示例代码。

RSP规划

Frenet 框架中的最优轨迹

3

这是 Frenet 框架中的最佳轨迹生成。

青色线是目标路线,黑色十字是障碍物。

红线是预测的路径。

参考:

路径追踪

移动到姿势控制

这是移动到姿势控制的模拟

2

参考:

斯坦利控制

采用 Stanley 转向控制和 PID 速度控制的路径跟踪模拟。

2

参考:

后轮反馈控制

具有后轮反馈转向控制和 PID 速度控制的路径跟踪模拟。

PythonRobotics/figure_1.png 大师 · AtsushiSakai/PythonRobotics

参考:

线性二次调节器 (LQR) 速度和转向控制

使用 LQR 速度和转向控制进行路径跟踪仿真。

3

参考:

模型预测速度和转向控制

具有迭代线性模型预测速度和转向控制的路径跟踪仿真。

MPC图片

参考:

使用 C-GMRES 进行非线性模型预测控制

使用 C-GMRES 的 NMPC 进行运动规划和路径跟踪仿真

3

参考:

手臂导航

N关节臂对点控制

N关节臂进行点控制模拟。

这是一个交互式模拟。

您可以通过左键单击绘图区域来设置末端执行器的目标位置。

3

不过,在此模拟中,N = 10,您可以更改它。

带避障功能的手臂导航

具有避障模拟功能的手臂导航。

3

空中导航

无人机3D轨迹跟踪

这是四旋翼飞行器的 3D 轨迹跟踪模拟。

3

火箭动力着陆

这是火箭动力着陆的 3D 轨迹生成模拟。

3

参考:

双足

带倒立摆的双足规划器

这是一个用于修改倒立摆脚步的双足规划器。

您可以设置足迹,规划器将自动修改这些足迹。

3

执照

麻省理工学院

用例

如果这个项目对您的机器人项目有帮助,请通过创建问题告诉我。

非常欢迎您使用 PythonRobotics 的机器人视频!

这是用户评论和参考的列表:users_comments

贡献

欢迎任何贡献!

请查看此文档:如何贡献 — PythonRobotics 文档

引用

如果您在学术工作中使用该项目的代码,我们鼓励您引用我们的论文

如果您在工业中使用该项目的代码,我们也很乐意听取您的意见;请随时直接与开发人员联系。

支持这个项目

如果您或您的公司愿意支持该项目,请考虑:

如果您想以其他方式支持我们,请联系创建问题。

赞助商

他们为该 OSS 开发提供免费的 IDE 许可证。

他们正在为此 OSS 项目提供 1Password 团队许可证的免费许可证。

作者

pythonrobotics-cn's People

Contributors

atsushisakai avatar dependabot[bot] avatar gjacquenot avatar guilyx avatar goktug97 avatar takayuki5168 avatar daniel-s-ingram avatar karanchawla avatar drewtu2 avatar kitsunow avatar chachay avatar araffin avatar jwdinius avatar horverno avatar kyberszittya avatar ksvbka avatar yuanzhongqiao avatar y011d4 avatar yilunc2020 avatar kartikmadhira1 avatar franciscomoretti avatar abinashbunty avatar adelizer avatar m-dobler avatar muhammad-yazdian avatar sarimmehdi avatar jefflirion avatar afrodisco avatar noblebumblebee avatar reso1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.