Module pathplanning

Module pathplanning 

Source
Expand description

Path planning algorithms

This module provides various path planning algorithms for finding optimal paths in 2D and 3D space. These algorithms are useful for robotics, game development, logistics, and any application that requires navigating through environments with obstacles.

The available algorithms include:

  • A* search: An efficient, best-first search algorithm that uses a heuristic to guide the search towards the goal. Guarantees the optimal path if the heuristic is admissible.

  • RRT (Rapidly-exploring Random Tree): A sampling-based algorithm that efficiently explores high-dimensional spaces by incrementally building a space-filling tree.

  • Visibility graphs: A graph-based approach that connects visible vertices of obstacles, providing optimal paths in 2D polygonal environments.

  • Probabilistic roadmaps (PRM): A sampling-based method that constructs a roadmap of the free configuration space, then uses graph search to find paths.

  • Potential fields: A reactive approach that uses artificial potential fields to guide the agent towards the goal while avoiding obstacles.

  • Dubins paths: Shortest paths for vehicles with minimum turning radius constraint (forward motion only).

  • Reeds-Shepp paths: Shortest paths for vehicles with minimum turning radius constraint that can move both forward and backward.

  • Trajectory optimization: Smooth trajectory generation with kinematic and dynamic constraints.

Re-exports§

pub use astar::AStarPlanner;
pub use astar::ContinuousAStarPlanner;
pub use astar::GridAStarPlanner;
pub use astar::HashableFloat2D;
pub use astar::Node;
pub use astar::Path;
pub use dubins::DubinsPath;
pub use dubins::DubinsPathType;
pub use dubins::DubinsPlanner;
pub use dubins::DubinsSegment;
pub use dubins::Pose2D;
pub use dubins::SegmentType;
pub use potentialfield::CircularObstacle;
pub use potentialfield::Obstacle;
pub use potentialfield::PolygonObstacle;
pub use potentialfield::PotentialConfig;
pub use potentialfield::PotentialField2DPlanner;
pub use potentialfield::PotentialFieldPlanner;
pub use prm::PRM2DPlanner;
pub use prm::PRMConfig;
pub use prm::PRMPlanner;
pub use reedshepp::Motion;
pub use reedshepp::ReedsSheppPath;
pub use reedshepp::ReedsSheppPathType;
pub use reedshepp::ReedsSheppPlanner;
pub use reedshepp::ReedsSheppSegment;
pub use reedshepp::Turn;
pub use rrt::RRT2DPlanner;
pub use rrt::RRTConfig;
pub use rrt::RRTPlanner;
pub use trajectory::CircularObstacle as TrajectoryObstacle;
pub use trajectory::OptimizationMethod;
pub use trajectory::Trajectory;
pub use trajectory::TrajectoryConstraints;
pub use trajectory::TrajectoryOptimizer;
pub use trajectory::TrajectoryPoint;
pub use visibility::Point2D;
pub use visibility::VisibilityGraphPlanner;

Modules§

astar
A* search algorithm implementation
dubins
Dubins path planning
potentialfield
Potential Field implementation for pathfinding with obstacles
prm
Probabilistic Roadmap (PRM) implementation for pathfinding with obstacles
reedshepp
Reeds-Shepp path planning
rrt
Rapidly-exploring Random Tree (RRT) implementation
trajectory
Trajectory optimization
visibility
Visibility graph implementation for pathfinding with polygon obstacles