Path planning is a fundamental aspect of robotics that involves determining a suitable trajectory for a robot to navigate from its current position to a desired goal while avoiding obstacles. It is crucial for autonomous robots to operate efficiently and safely in various environments.
Dijkstra's Algorithm - A graph-based algorithm that finds the shortest path between nodes in a weighted graph, applicable for scenarios where exact distances are known.
A* Algorithm - Combines elements of Dijkstra's algorithm and greedy best-first search, incorporating a heuristic to guide the search process efficiently.
Rapidly-Exploring Random Trees (RRTs) - Constructs a tree of possible paths in the configuration space by iteratively exploring the space randomly and connecting the nodes.
Probabilistic Roadmaps (PRMs) - Creates a roadmap of the configuration space by sampling random robot configurations and connecting feasible paths between them.
Visibility Graphs - Identifies visible edges between obstacles, transforming the environment into a graph where paths can be efficiently planned.
Potential Fields - Represents the robot and obstacles as charged or repelling points, allowing the robot to navigate by following the gradient of an artificial potential field.
Dynamic Window Approach - Considers the robot's kinematics and dynamics to generate a dynamic feasible window, guiding the robot towards the goal while avoiding collisions.
Model Predictive Control (MPC) - Utilizes a predictive model of the robot's dynamics to optimize a sequence of control inputs over a finite time horizon.
D* Lite Algorithm - A variant of Dijkstra's algorithm that updates the optimal path efficiently in dynamic environments by considering changes incrementally.
Sampling-Based Techniques (e.g., PRM, RRT) - Advanced versions of PRMs and RRTs that incorporate additional optimizations to improve path planning efficiency.
Voronoi Diagrams - Divides the configuration space into regions based on distance to obstacles, aiding in identifying paths through open spaces.
Lattice-Based Planning - Discretizes the configuration space into a lattice of possible states, facilitating systematic exploration and path planning.
Optimal Control Techniques (e.g., LQR, LQG) - Applies control theory to find optimal trajectories while considering the dynamics of the robot and potential constraints.
Hierarchical Planning - Divides the path planning problem into subproblems, addressing high-level goal-setting and low-level trajectory generation separately.
Machine Learning for Path Prediction - Utilizes machine learning models to predict likely paths based on historical data, adapting to dynamic environments.