AtsushiSakai/PythonRobotics

Python sample codes and textbook for robotics algorithms.

What it solves

PythonRobotics provides a comprehensive, easy-to-read collection of robotics algorithms implemented in Python. It serves as both a code library and a textbook to help users understand and implement fundamental robotics concepts such as localization, mapping, SLAM, path planning, and path tracking.

How it works

The project is organized as a set of sample codes and accompanying documentation. It implements a wide array of robotics algorithms across several key domains:

  • Localization: Uses filters like Extended Kalman Filter (EKF), Particle Filter, and Histogram Filter to estimate a robot's position.
  • Mapping: Implements Gaussian grid maps, ray casting, and k-means clustering for environment representation.
  • SLAM: Provides examples of Iterative Closest Point (ICP) matching and FastSLAM 1.0 for simultaneous localization and mapping.
  • Path Planning: Includes grid-based searches (Dijkstra, A*, D*, D* Lite), sampling-based planners (PRM, RRT, RRT*), and trajectory generation (Quintic polynomials, Frenet Frame).
  • Path Tracking: Implements controllers like Stanley control, Rear wheel feedback, and LQR/MPC for steering and speed control.
  • Specialized Navigation: Covers arm navigation, aerial navigation (drones/rockets), and bipedal planning.

Who it’s for

It is designed for students, researchers, and developers who want to learn robotics algorithms through practical, minimal-dependency Python implementations.

Highlights

  • Educational Focus: Combined with an online textbook for mathematical background.
  • Broad Scope: Covers everything from basic grid search to advanced nonlinear model predictive control.
  • Minimal Dependencies: Relies primarily on NumPy, SciPy, and Matplotlib.
  • Practical Examples: Includes animations and simulations to visualize algorithm behavior.

Related

  • Project
  • Project
  • Project
  • Project
  • Project