<img src="https://github.com/AtsushiSakai/PythonRobotics/raw/master/icon.png?raw=true" align="right" width="300" alt="header pic"/>
# PythonRobotics
![GitHub_Action_Linux_CI](https://github.com/AtsushiSakai/PythonRobotics/workflows/Linux_CI/badge.svg)
![GitHub_Action_MacOS_CI](https://github.com/AtsushiSakai/PythonRobotics/workflows/MacOS_CI/badge.svg)
[![Build Status](https://travis-ci.org/AtsushiSakai/PythonRobotics.svg?branch=master)](https://travis-ci.org/AtsushiSakai/PythonRobotics)
[![Documentation Status](https://readthedocs.org/projects/pythonrobotics/badge/?version=latest)](https://pythonrobotics.readthedocs.io/en/latest/?badge=latest)
[![Build status](https://ci.appveyor.com/api/projects/status/sb279kxuv1be391g?svg=true)](https://ci.appveyor.com/project/AtsushiSakai/pythonrobotics)
[![codecov](https://codecov.io/gh/AtsushiSakai/PythonRobotics/branch/master/graph/badge.svg)](https://codecov.io/gh/AtsushiSakai/PythonRobotics)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/AtsushiSakai/PythonRobotics.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/AtsushiSakai/PythonRobotics/context:python)
[![CodeFactor](https://www.codefactor.io/repository/github/atsushisakai/pythonrobotics/badge/master)](https://www.codefactor.io/repository/github/atsushisakai/pythonrobotics/overview/master)
[![tokei](https://tokei.rs/b1/github/AtsushiSakai/PythonRobotics)](https://github.com/AtsushiSakai/PythonRobotics)
Python codes for robotics algorithm.
# Table of Contents
* [What is this?](#what-is-this)
* [Requirements](#requirements)
* [Documentation](#documentation)
* [How to use](#how-to-use)
* [Localization](#localization)
* [Extended Kalman Filter localization](#extended-kalman-filter-localization)
* [Particle filter localization](#particle-filter-localization)
* [Histogram filter localization](#histogram-filter-localization)
* [Mapping](#mapping)
* [Gaussian grid map](#gaussian-grid-map)
* [Ray casting grid map](#ray-casting-grid-map)
* [Lidar to grid map](#lidar-to-grid-map)
* [k-means object clustering](#k-means-object-clustering)
* [Rectangle fitting](#rectangle-fitting)
* [SLAM](#slam)
* [Iterative Closest Point (ICP) Matching](#iterative-closest-point-icp-matching)
* [FastSLAM 1.0](#fastslam-10)
* [Path Planning](#path-planning)
* [Dynamic Window Approach](#dynamic-window-approach)
* [Grid based search](#grid-based-search)
* [Dijkstra algorithm](#dijkstra-algorithm)
* [A* algorithm](#a-algorithm)
* [D* algorithm](#d-algorithm)
* [D* Lite algorithm](#d-lite-algorithm)
* [Potential Field algorithm](#potential-field-algorithm)
* [Grid based coverage path planning](#grid-based-coverage-path-planning)
* [State Lattice Planning](#state-lattice-planning)
* [Biased polar sampling](#biased-polar-sampling)
* [Lane sampling](#lane-sampling)
* [Probabilistic Road-Map (PRM) planning](#probabilistic-road-map-prm-planning)
* [Rapidly-Exploring Random Trees (RRT)](#rapidly-exploring-random-trees-rrt)
* [RRT*](#rrt)
* [RRT* with reeds-shepp path](#rrt-with-reeds-shepp-path)
* [LQR-RRT*](#lqr-rrt)
* [Quintic polynomials planning](#quintic-polynomials-planning)
* [Reeds Shepp planning](#reeds-shepp-planning)
* [LQR based path planning](#lqr-based-path-planning)
* [Optimal Trajectory in a Frenet Frame](#optimal-trajectory-in-a-frenet-frame)
* [Path Tracking](#path-tracking)
* [move to a pose control](#move-to-a-pose-control)
* [Stanley control](#stanley-control)
* [Rear wheel feedback control](#rear-wheel-feedback-control)
* [Linear–quadratic regulator (LQR) speed and steering control](#linearquadratic-regulator-lqr-speed-and-steering-control)
* [Model predictive speed and steering control](#model-predictive-speed-and-steering-control)
* [Nonlinear Model predictive control with C-GMRES](#nonlinear-model-predictive-control-with-c-gmres)
* [Arm Navigation](#arm-navigation)
* [N joint arm to point control](#n-joint-arm-to-point-control)
* [Arm navigation with obstacle avoidance](#arm-navigation-with-obstacle-avoidance)
* [Aerial Navigation](#aerial-navigation)
* [drone 3d trajectory following](#drone-3d-trajectory-following)
* [rocket powered landing](#rocket-powered-landing)
* [Bipedal](#bipedal)
* [bipedal planner with inverted pendulum](#bipedal-planner-with-inverted-pendulum)
* [License](#license)
* [Use-case](#use-case)
* [Contribution](#contribution)
* [Citing](#citing)
* [Support](#support)
* [Sponsors](#Sponsors)
* [JetBrains](#JetBrains)
* [Authors](#authors)
# What is this?
This is a Python code collection of robotics algorithms.
Features:
1. Easy to read for understanding each algorithm's basic idea.
2. Widely used and practical algorithms are selected.
3. Minimum dependency.
See this paper for more details:
- [\[1808\.10703\] PythonRobotics: a Python code collection of robotics algorithms](https://arxiv.org/abs/1808.10703) ([BibTeX](https://github.com/AtsushiSakai/PythonRoboticsPaper/blob/master/python_robotics.bib))
# Requirements
For running each sample code:
- Python 3.9.x
- numpy
- scipy
- matplotlib
- pandas
- [cvxpy](https://www.cvxpy.org/index.html)
For development:
- pytest (for unit tests)
- pytest-xdist (for parallel unit tests)
- mypy (for type check)
- Sphinx (for document generation)
- pycodestyle (for code style check)
# Documentation
This README only shows some examples of this project.
If you are interested in other examples or mathematical backgrounds of each algorithm,
You can check the full documentation online: [https://pythonrobotics.readthedocs.io/](https://pythonrobotics.readthedocs.io/)
All animation gifs are stored here: [AtsushiSakai/PythonRoboticsGifs: Animation gifs of PythonRobotics](https://github.com/AtsushiSakai/PythonRoboticsGifs)
# How to use
1. Clone this repo.
> git clone https://github.com/AtsushiSakai/PythonRobotics.git
2. Install the required libraries.
using conda :
> conda env create -f environment.yml
using pip :
> pip install -r requirements.txt
3. Execute python script in each directory.
4. Add star to this repo if you like it :smiley:.
# Localization
## Extended Kalman Filter localization
<img src="https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/Localization/extended_kalman_filter/animation.gif" width="640" alt="EKF pic">
Documentation: [Notebook](https://github.com/AtsushiSakai/PythonRobotics/blob/master/Localization/extended_kalman_filter/extended_kalman_filter_localization.ipynb)
## Particle filter localization
![2](https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/Localization/particle_filter/animation.gif)
This is a sensor fusion localization with Particle Filter(PF).
The blue line is true trajectory, the black line is dead reckoning trajectory,
and the red line is an estimated trajectory with PF.
It is assumed that the robot can measure a distance from landmarks (RFID).
These measurements are used for PF localization.
Ref:
- [PROBABILISTIC ROBOTICS](http://www.probabilistic-robotics.org/)
## Histogram filter localization
![3](https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/Localization/histogram_filter/animation.gif)
This is a 2D localization example with Histogram filter.
The red cross is true position, black points are RFID positions.
The blue grid shows a position probability of histogram filter.
In this simulation, x,y are unknown, yaw is known.
The filter integrates speed input and range observations from RFID for localization.
Initial position is not needed.
Ref:
- [PROBABILISTIC ROBOTICS](http://www.probabilistic-robotics.org/)
# Mapping
## Gaussian grid map
This is a 2D Gaussian grid mapping example.
![2](https://
没有合适的资源?快使用搜索试试~ 我知道了~
用Python实现的机器人相关算法-python
共343个文件
py:208个
png:58个
rst:21个
需积分: 50 27 下载量 100 浏览量
2021-06-18
18:51:49
上传
评论
收藏 8.83MB ZIP 举报
温馨提示
用Python实现的机器人相关算法 PythonRobotics 机器人算法的 Python 代码。 目录 这是什么? 需求文档 如何使用 Localization Extended Kalman Filter localization 粒子滤波器本地化 Histogram filter localization Mapping Gaussian grid map 射线投射网格映射 Lidar 到网格映射 k-means 对象聚类 矩形拟合 SLAM 迭代最近点 (ICP) 匹配 FastSLAM 1.0 路径规划动态窗口方法基于网格的搜索 Dijkstra 算法 A* 算法 势场算法 基于网格的覆盖路径规划 状态网格规划 偏极采样 车道采样 概率路线图 (PRM) 规划 快速探索随机树 (RRT) RRT* RRT* 与 reeds-shepp 路径 LQR -RRT* 五次多项式规划 Reeds Shepp 规划基于 LQR 的路径规划 Frenet 框架中的最佳轨迹 路径跟踪移动到姿势控制 Stanley 控制 后轮反馈控制 线性-二次调节器 (LQR) 速度和转向控制 模型
资源推荐
资源详情
资源评论
收起资源包目录
用Python实现的机器人相关算法-python (343个子文件)
artifact_path 18B
make.bat 818B
graphSLAM.bib 907B
lidar01.csv 4KB
lookuptable.csv 3KB
input_INTEL.g2o 211KB
animation.gif 279KB
Graph_SLAM_optimization.gif 112KB
.gitignore 850B
.gitignore 82B
.gitkeep 0B
mypy.ini 36B
Kalmanfilter_basics_2.ipynb 1.4MB
ekf_slam.ipynb 315KB
graphSLAM_SE2_example.ipynb 310KB
lidar_to_grid_map_tutorial.ipynb 206KB
rrt_star.ipynb 157KB
extended_kalman_filter_localization.ipynb 154KB
cgmres_nmpc.ipynb 147KB
Kalmanfilter_basics.ipynb 147KB
FastSLAM1.ipynb 107KB
Planar_Two_Link_IK.ipynb 92KB
graphSLAM_doc.ipynb 78KB
rocket_powered_landing.ipynb 30KB
Model_predictive_speed_and_steering_control.ipynb 9KB
notebook_template.ipynb 7KB
quintic_polynomials_planner.ipynb 4KB
particle_filter.ipynb 2KB
introduction.ipynb 699B
LICENSE 1KB
Makefile 611B
README.md 22KB
users_comments.md 13KB
CODE_OF_CONDUCT.md 3KB
pull_request_template.md 920B
CONTRIBUTING.md 787B
README.md 554B
bug_report.md 492B
SECURITY.md 309B
graphSLAM_formulation.pdf 270KB
Kalmanfilter_basics_2_5_0.png 1.04MB
bayes_filter.png 1.04MB
figure.png 672KB
icon.png 528KB
grid_map_example.png 372KB
Figure_1.png 259KB
figure_1.png 240KB
rrt_star_1_0.png 117KB
Figure_1.png 117KB
animation.png 111KB
ekf.png 110KB
extended_kalman_filter_localization_1_0.png 110KB
figure_1.png 60KB
Figure_4.png 59KB
Figure_2.png 58KB
Figure_3.png 52KB
FastSLAM1_1_0.png 43KB
animation.png 43KB
lookuptable.png 41KB
Figure_2.png 39KB
Kalmanfilter_basics_22_0.png 38KB
cgmres_nmpc_2_0.png 33KB
Figure_1.png 33KB
Figure_1.png 32KB
Figure_5.png 32KB
Figure_2.png 31KB
Figure_5.png 31KB
cgmres_nmpc_3_0.png 30KB
Figure_2.png 30KB
Figure_4.png 26KB
Figure_3.png 26KB
Figure_1.png 26KB
Figure_6.png 25KB
Figure_2.png 25KB
cgmres_nmpc_4_0.png 25KB
Figure_3.png 25KB
Figure_1.png 22KB
Figure_1.png 21KB
Figure_3.png 21KB
cgmres_nmpc_1_0.png 19KB
Figure_4.png 19KB
Kalmanfilter_basics_19_1.png 18KB
Kalmanfilter_basics_21_1.png 18KB
Planar_Two_Link_IK_9_0.png 16KB
Planar_Two_Link_IK_12_0.png 15KB
FastSLAM1_12_0.png 14KB
Planar_Two_Link_IK_7_0.png 14KB
Planar_Two_Link_IK_5_0.png 13KB
Kalmanfilter_basics_16_0.png 12KB
FastSLAM1_12_1.png 6KB
Kalmanfilter_basics_14_1.png 6KB
Kalmanfilter_basics_28_1.png 4KB
test.png 156B
test.png 156B
test_2.png 150B
test_2.png 150B
test_3.png 132B
test_3.png 132B
rocket_powered_landing.py 24KB
batch_informed_rrtstar.py 23KB
共 343 条
- 1
- 2
- 3
- 4
资源评论
日月龙腾
- 粉丝: 26
- 资源: 4575
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功