diff --git a/docs/modules/path_planning/bezier_path_planning/Figure_1.png b/docs/modules/path_planning/bezier_path/Figure_1.png similarity index 100% rename from docs/modules/path_planning/bezier_path_planning/Figure_1.png rename to docs/modules/path_planning/bezier_path/Figure_1.png diff --git a/docs/modules/path_planning/bezier_path_planning/Figure_2.png b/docs/modules/path_planning/bezier_path/Figure_2.png similarity index 100% rename from docs/modules/path_planning/bezier_path_planning/Figure_2.png rename to docs/modules/path_planning/bezier_path/Figure_2.png diff --git a/docs/modules/path_planning/bezier_path/bezier_path.rst b/docs/modules/path_planning/bezier_path/bezier_path.rst new file mode 100644 index 00000000..c630d543 --- /dev/null +++ b/docs/modules/path_planning/bezier_path/bezier_path.rst @@ -0,0 +1,20 @@ +Bezier path planning +-------------------- + +A sample code of Bezier path planning. + +It is based on 4 control points Beizer path. + +.. image:: Bezier_path/Figure_1.png + +If you change the offset distance from start and end point, + +You can get different Beizer course: + +.. image:: Bezier_path/Figure_2.png + +Ref: + +- `Continuous Curvature Path Generation Based on Bezier Curves for + Autonomous + Vehicles `__ diff --git a/docs/modules/path_planning/bspline_path/bspline_path.rst b/docs/modules/path_planning/bspline_path/bspline_path.rst new file mode 100644 index 00000000..a8043122 --- /dev/null +++ b/docs/modules/path_planning/bspline_path/bspline_path.rst @@ -0,0 +1,14 @@ +B-Spline planning +----------------- + +.. image:: bspline_path/Figure_1.png + +This is a path planning with B-Spline curse. + +If you input waypoints, it generates a smooth path with B-Spline curve. + +The final course should be on the first and last waypoints. + +Ref: + +- `B-spline - Wikipedia `__ diff --git a/docs/modules/path_planning/bugplanner/bugplanner.rst b/docs/modules/path_planning/bugplanner/bugplanner.rst new file mode 100644 index 00000000..72cc4670 --- /dev/null +++ b/docs/modules/path_planning/bugplanner/bugplanner.rst @@ -0,0 +1,8 @@ +Bug planner +----------- + +This is a 2D planning with Bug algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/BugPlanner/animation.gif + +- `ECE452 Bug Algorithms `_ diff --git a/docs/modules/path_planning/coverage_path/coverage_path.rst b/docs/modules/path_planning/coverage_path/coverage_path.rst new file mode 100644 index 00000000..828342a2 --- /dev/null +++ b/docs/modules/path_planning/coverage_path/coverage_path.rst @@ -0,0 +1,34 @@ +Coverage path planner +--------------------- + +Grid based sweep +~~~~~~~~~~~~~~~~ + +This is a 2D grid based sweep coverage path planner simulation: + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/GridBasedSweepCPP/animation.gif + +Spiral Spanning Tree +~~~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based spiral spanning tree coverage path planner simulation: + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/SpiralSpanningTreeCPP/animation1.gif +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/SpiralSpanningTreeCPP/animation2.gif +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/SpiralSpanningTreeCPP/animation3.gif + +- `Spiral-STC: An On-Line Coverage Algorithm of Grid Environments by a Mobile Robot `_ + + +Wavefront path +~~~~~~~~~~~~~~ + +This is a 2D grid based wavefront coverage path planner simulation: + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/WavefrontCPP/animation1.gif +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/WavefrontCPP/animation2.gif +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/WavefrontCPP/animation3.gif + +- `Planning paths of complete coverage of an unstructured environment by a mobile robot `_ + + diff --git a/docs/modules/path_planning/cubic_spline/cubic_spline.rst b/docs/modules/path_planning/cubic_spline/cubic_spline.rst new file mode 100644 index 00000000..b1973856 --- /dev/null +++ b/docs/modules/path_planning/cubic_spline/cubic_spline.rst @@ -0,0 +1,13 @@ +Cubic spline planning +--------------------- + +A sample code for cubic path planning. + +This code generates a curvature continuous path based on x-y waypoints +with cubic spline. + +Heading angle of each point can be also calculated analytically. + +.. image:: cubic_spline/Figure_1.png +.. image:: cubic_spline/Figure_2.png +.. image:: cubic_spline/Figure_3.png diff --git a/docs/modules/path_planning/dubins_path/dubins_path.rst b/docs/modules/path_planning/dubins_path/dubins_path.rst new file mode 100644 index 00000000..5e14820f --- /dev/null +++ b/docs/modules/path_planning/dubins_path/dubins_path.rst @@ -0,0 +1,11 @@ +Dubins path planning +-------------------- + +A sample code for Dubins path planning. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DubinsPath/animation.gif?raw=True + +Ref: + +- `Dubins path - + Wikipedia `__ diff --git a/docs/modules/path_planning/dynamic_window_approach/dynamic_window_approach.rst b/docs/modules/path_planning/dynamic_window_approach/dynamic_window_approach.rst new file mode 100644 index 00000000..0ece6e00 --- /dev/null +++ b/docs/modules/path_planning/dynamic_window_approach/dynamic_window_approach.rst @@ -0,0 +1,9 @@ +Dynamic Window Approach +----------------------- + +This is a 2D navigation sample code with Dynamic Window Approach. + +- `The Dynamic Window Approach to Collision + Avoidance `__ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DynamicWindowApproach/animation.gif diff --git a/docs/modules/path_planning/eta3_spline/eta3_spline.rst b/docs/modules/path_planning/eta3_spline/eta3_spline.rst new file mode 100644 index 00000000..ffc3cc64 --- /dev/null +++ b/docs/modules/path_planning/eta3_spline/eta3_spline.rst @@ -0,0 +1,13 @@ +.. _eta^3-spline-path-planning: + +Eta^3 Spline path planning +-------------------------- + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/Eta3SplinePath/animation.gif + +This is a path planning with Eta^3 spline. + +Ref: + +- `\\eta^3-Splines for the Smooth Path Generation of Wheeled Mobile + Robots `__ diff --git a/docs/modules/path_planning/frenet_frame_path/frenet_frame_path.rst b/docs/modules/path_planning/frenet_frame_path/frenet_frame_path.rst new file mode 100644 index 00000000..e9d9041e --- /dev/null +++ b/docs/modules/path_planning/frenet_frame_path/frenet_frame_path.rst @@ -0,0 +1,20 @@ +Optimal Trajectory in a Frenet Frame +------------------------------------ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/FrenetOptimalTrajectory/animation.gif + +This is optimal trajectory generation in a Frenet Frame. + +The cyan line is the target course and black crosses are obstacles. + +The red line is predicted path. + +Ref: + +- `Optimal Trajectory Generation for Dynamic Street Scenarios in a + Frenet + Frame `__ + +- `Optimal trajectory generation for dynamic street scenarios in a + Frenet Frame `__ + diff --git a/docs/modules/path_planning/grid_base_search/grid_base_search.rst b/docs/modules/path_planning/grid_base_search/grid_base_search.rst new file mode 100644 index 00000000..ac4ea2f6 --- /dev/null +++ b/docs/modules/path_planning/grid_base_search/grid_base_search.rst @@ -0,0 +1,93 @@ +Grid based search +----------------- + +Breadth First Search +~~~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based path planning with Breadth first search algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/BreadthFirstSearch/animation.gif + +In the animation, cyan points are searched nodes. + +Depth First Search +~~~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based path planning with Depth first search algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DepthFirstSearch/animation.gif + +In the animation, cyan points are searched nodes. + +Dijkstra algorithm +~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based shortest path planning with Dijkstra's algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/Dijkstra/animation.gif + +In the animation, cyan points are searched nodes. + +.. _a*-algorithm: + +A\* algorithm +~~~~~~~~~~~~~ + +This is a 2D grid based shortest path planning with A star algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/AStar/animation.gif + +In the animation, cyan points are searched nodes. + +Its heuristic is 2D Euclid distance. + +Bidirectional A\* algorithm +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based shortest path planning with bidirectional A star algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/BidirectionalAStar/animation.gif + +In the animation, cyan points are searched nodes. + +.. _D*-algorithm: + +D\* algorithm +~~~~~~~~~~~~~ + +This is a 2D grid based shortest path planning with D star algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DStar/animation.gif + +The animation shows a robot finding its path avoiding an obstacle using the D* search algorithm. + +Ref: + +- `D* search Wikipedia `__ + +D\* lite algorithm +~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based path planning and replanning with D star lite algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DStarLite/animation.gif + +Ref: + +- `Improved Fast Replanning for Robot Navigation in Unknown Terrain `_ + + +Potential Field algorithm +~~~~~~~~~~~~~~~~~~~~~~~~~ + +This is a 2D grid based path planning with Potential Field algorithm. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/PotentialFieldPlanning/animation.gif + +In the animation, the blue heat map shows potential value on each grid. + +Ref: + +- `Robotic Motion Planning:Potential + Functions `__ + diff --git a/docs/modules/path_planning/hybridastar/hybridastar.rst b/docs/modules/path_planning/hybridastar/hybridastar.rst new file mode 100644 index 00000000..a9876fa3 --- /dev/null +++ b/docs/modules/path_planning/hybridastar/hybridastar.rst @@ -0,0 +1,6 @@ +Hybrid a star +--------------------- + +This is a simple vehicle model based hybrid A\* path planner. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/HybridAStar/animation.gif diff --git a/docs/modules/path_planning/lqr_path/lqr_path.rst b/docs/modules/path_planning/lqr_path/lqr_path.rst new file mode 100644 index 00000000..788442ff --- /dev/null +++ b/docs/modules/path_planning/lqr_path/lqr_path.rst @@ -0,0 +1,6 @@ +LQR based path planning +----------------------- + +A sample code using LQR based path planning for double integrator model. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/LQRPlanner/animation.gif?raw=true diff --git a/docs/modules/path_planning/model_predictive_trajectry_generator/lookuptable.png b/docs/modules/path_planning/model_predictive_trajectory_generator/lookup_table.png similarity index 100% rename from docs/modules/path_planning/model_predictive_trajectry_generator/lookuptable.png rename to docs/modules/path_planning/model_predictive_trajectory_generator/lookup_table.png diff --git a/docs/modules/path_planning/model_predictive_trajectory_generator/model_predictive_trajectory_generator.rst b/docs/modules/path_planning/model_predictive_trajectory_generator/model_predictive_trajectory_generator.rst new file mode 100644 index 00000000..07a7ee9b --- /dev/null +++ b/docs/modules/path_planning/model_predictive_trajectory_generator/model_predictive_trajectory_generator.rst @@ -0,0 +1,22 @@ +Model Predictive Trajectory Generator +------------------------------------- + +This is a path optimization sample on model predictive trajectory +generator. + +This algorithm is used for state lattice planner. + +Path optimization sample +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ModelPredictiveTrajectoryGenerator/kn05animation.gif + +Lookup table generation sample +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: model_predictive_trajectory_generator/lookup_table.png + +Ref: + +- `Optimal rough terrain trajectory generation for wheeled mobile + robots `__ diff --git a/docs/modules/path_planning/path_planning_main.rst b/docs/modules/path_planning/path_planning_main.rst index 8033e1a8..61f8ea21 100644 --- a/docs/modules/path_planning/path_planning_main.rst +++ b/docs/modules/path_planning/path_planning_main.rst @@ -3,410 +3,22 @@ Path Planning ============= -Dynamic Window Approach ------------------------ - -This is a 2D navigation sample code with Dynamic Window Approach. - -- `The Dynamic Window Approach to Collision - Avoidance `__ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DynamicWindowApproach/animation.gif - -Grid based search ------------------ - -Dijkstra algorithm -~~~~~~~~~~~~~~~~~~ - -This is a 2D grid based shortest path planning with Dijkstra's -algorithm. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/Dijkstra/animation.gif - -In the animation, cyan points are searched nodes. - -.. _a*-algorithm: - -A\* algorithm -~~~~~~~~~~~~~ - -This is a 2D grid based shortest path planning with A star algorithm. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/AStar/animation.gif - -In the animation, cyan points are searched nodes. - -Its heuristic is 2D Euclid distance. - -.. _D*-algorithm: - -D\* algorithm -~~~~~~~~~~~~~ - -This is a 2D grid based shortest path planning with D star algorithm. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DStar/animation.gif - -The animation shows a robot finding its path avoiding an obstacle using the D* search algorithm. - -Ref: - -- `D* search Wikipedia `__ - -Potential Field algorithm -~~~~~~~~~~~~~~~~~~~~~~~~~ - -This is a 2D grid based path planning with Potential Field algorithm. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/PotentialFieldPlanning/animation.gif - -In the animation, the blue heat map shows potential value on each grid. - -Ref: - -- `Robotic Motion Planning:Potential - Functions `__ - -Model Predictive Trajectory Generator -------------------------------------- - -This is a path optimization sample on model predictive trajectory -generator. - -This algorithm is used for state lattice planner. - -Path optimization sample -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ModelPredictiveTrajectoryGenerator/kn05animation.gif - -Lookup table generation sample -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: model_predictive_trajectry_generator/lookuptable.png - -Ref: - -- `Optimal rough terrain trajectory generation for wheeled mobile - robots `__ - - -State Lattice Planning ----------------------- - -This script is a path planning code with state lattice planning. - -This code uses the model predictive trajectory generator to solve -boundary problem. - -Ref: - -- `Optimal rough terrain trajectory generation for wheeled mobile - robots `__ - -- `State Space Sampling of Feasible Motions for High-Performance Mobile - Robot Navigation in Complex - Environments `__ - -Uniform polar sampling -~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/UniformPolarSampling.gif - -Biased polar sampling -~~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/BiasedPolarSampling.gif - -Lane sampling -~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/LaneSampling.gif - -.. _probabilistic-road-map-(prm)-planning: - -Probabilistic Road-Map (PRM) planning -------------------------------------- - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ProbabilisticRoadMap/animation.gif - -This PRM planner uses Dijkstra method for graph search. - -In the animation, blue points are sampled points, - -Cyan crosses means searched points with Dijkstra method, - -The red line is the final path of PRM. - -Ref: - -- `Probabilistic roadmap - - Wikipedia `__ - -   - -Voronoi Road-Map planning -------------------------- - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/VoronoiRoadMap/animation.gif - -This Voronoi road-map planner uses Dijkstra method for graph search. - -In the animation, blue points are Voronoi points, - -Cyan crosses mean searched points with Dijkstra method, - -The red line is the final path of Vornoi Road-Map. - -Ref: - -- `Robotic Motion - Planning `__ - -.. _rapidly-exploring-random-trees-(rrt): - -Rapidly-Exploring Random Trees (RRT) ------------------------------------- - -Basic RRT -~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRT/animation.gif - -This is a simple path planning code with Rapidly-Exploring Random Trees -(RRT) - -Black circles are obstacles, green line is a searched tree, red crosses -are start and goal positions. - -.. include:: rrt_star.rst - - -RRT with dubins path -~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTDubins/animation.gif - -Path planning for a car robot with RRT and dubins path planner. - -.. _rrt*-with-dubins-path: - -RRT\* with dubins path -~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTStarDubins/animation.gif - -Path planning for a car robot with RRT\* and dubins path planner. - -.. _rrt*-with-reeds-sheep-path: - -RRT\* with reeds-sheep path -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTStarReedsShepp/animation.gif - -Path planning for a car robot with RRT\* and reeds sheep path planner. - -.. _informed-rrt*: - -Informed RRT\* -~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/InformedRRTStar/animation.gif - -This is a path planning code with Informed RRT*. - -The cyan ellipse is the heuristic sampling domain of Informed RRT*. - -Ref: - -- `Informed RRT\*: Optimal Sampling-based Path Planning Focused via - Direct Sampling of an Admissible Ellipsoidal - Heuristic `__ - -.. _batch-informed-rrt*: - -Batch Informed RRT\* -~~~~~~~~~~~~~~~~~~~~ - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/BatchInformedRRTStar/animation.gif - -This is a path planning code with Batch Informed RRT*. - -Ref: - -- `Batch Informed Trees (BIT*): Sampling-based Optimal Planning via the - Heuristically Guided Search of Implicit Random Geometric - Graphs `__ - -.. _closed-loop-rrt*: - -Closed Loop RRT\* -~~~~~~~~~~~~~~~~~ - -A vehicle model based path planning with closed loop RRT*. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ClosedLoopRRTStar/animation.gif - -In this code, pure-pursuit algorithm is used for steering control, - -PID is used for speed control. - -Ref: - -- `Motion Planning in Complex Environments using Closed-loop - Prediction `__ - -- `Real-time Motion Planning with Applications to Autonomous Urban - Driving `__ - -- `[1601.06326] Sampling-based Algorithms for Optimal Motion Planning - Using Closed-loop Prediction `__ - -.. _lqr-rrt*: - -LQR-RRT\* -~~~~~~~~~ - -This is a path planning simulation with LQR-RRT*. - -A double integrator motion model is used for LQR local planner. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/LQRRRTStar/animation.gif - -Ref: - -- `LQR-RRT\*: Optimal Sampling-Based Motion Planning with Automatically - Derived Extension - Heuristics `__ - -- `MahanFathi/LQR-RRTstar: LQR-RRT\* method is used for random motion - planning of a simple pendulum in its phase - plot `__ - -Cubic spline planning ---------------------- - -A sample code for cubic path planning. - -This code generates a curvature continuous path based on x-y waypoints -with cubic spline. - -Heading angle of each point can be also calculated analytically. - -.. image:: cubic_spline/Figure_1.png -.. image:: cubic_spline/Figure_2.png -.. image:: cubic_spline/Figure_3.png - -B-Spline planning ------------------ - -.. image:: bspline_path/Figure_1.png - -This is a path planning with B-Spline curse. - -If you input waypoints, it generates a smooth path with B-Spline curve. - -The final course should be on the first and last waypoints. - -Ref: - -- `B-spline - Wikipedia `__ - -.. _eta^3-spline-path-planning: - -Eta^3 Spline path planning --------------------------- - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/Eta3SplinePath/animation.gif - -This is a path planning with Eta^3 spline. - -Ref: - -- `\\eta^3-Splines for the Smooth Path Generation of Wheeled Mobile - Robots `__ - -Bezier path planning --------------------- - -A sample code of Bezier path planning. - -It is based on 4 control points Beier path. - -.. image:: https://github.com/AtsushiSakai/PythonRobotics/raw/master/docs/modules/path_planning/Bezier_path_planning/Figure_1.png?raw=True - -If you change the offset distance from start and end point, - -You can get different Beizer course: - -.. image:: https://github.com/AtsushiSakai/PythonRobotics/raw/master/docs/modules/path_planning/Bezier_path_planning/Figure_2.png?raw=True - -Ref: - -- `Continuous Curvature Path Generation Based on Bezier Curves for - Autonomous - Vehicles `__ - - -.. include:: quintic_polynomials_planner.rst - - -Dubins path planning --------------------- - -A sample code for Dubins path planning. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DubinsPath/animation.gif?raw=True - -Ref: - -- `Dubins path - - Wikipedia `__ - -Reeds Shepp planning --------------------- - -A sample code with Reeds Shepp path planning. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ReedsSheppPath/animation.gif?raw=true - -Ref: - -- `15.3.2 Reeds-Shepp - Curves `__ - -- `optimal paths for a car that goes both forwards and - backwards `__ - -- `ghliu/pyReedsShepp: Implementation of Reeds Shepp - curve. `__ - -LQR based path planning ------------------------ - -A sample code using LQR based path planning for double integrator model. - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/LQRPlanner/animation.gif?raw=true - -Optimal Trajectory in a Frenet Frame ------------------------------------- - -.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/FrenetOptimalTrajectory/animation.gif - -This is optimal trajectory generation in a Frenet Frame. - -The cyan line is the target course and black crosses are obstacles. - -The red line is predicted path. - -Ref: - -- `Optimal Trajectory Generation for Dynamic Street Scenarios in a - Frenet - Frame `__ - -- `Optimal trajectory generation for dynamic street scenarios in a - Frenet Frame `__ - +.. include:: dynamic_window_approach/dynamic_window_approach.rst +.. include:: bugplanner/bugplanner.rst +.. include:: grid_base_search/grid_base_search.rst +.. include:: model_predictive_trajectory_generator/model_predictive_trajectory_generator.rst +.. include:: state_lattice_planner/state_lattice_planner.rst +.. include:: prm_planner/prm_planner.rst +.. include:: vrm_planner/vrm_planner.rst +.. include:: rrt/rrt.rst +.. include:: cubic_spline/cubic_spline.rst +.. include:: bspline_path/bspline_path.rst +.. include:: eta3_spline/eta3_spline.rst +.. include:: bezier_path/bezier_path.rst +.. include:: quintic_polynomials_planner/quintic_polynomials_planner.rst +.. include:: dubins_path/dubins_path.rst +.. include:: reeds_shepp_path/reeds_shepp_path.rst +.. include:: lqr_path/lqr_path.rst +.. include:: hybridastar/hybridastar.rst +.. include:: frenet_frame_path/frenet_frame_path.rst +.. include:: coverage_path/coverage_path.rst diff --git a/docs/modules/path_planning/prm_planner/prm_planner.rst b/docs/modules/path_planning/prm_planner/prm_planner.rst new file mode 100644 index 00000000..06287191 --- /dev/null +++ b/docs/modules/path_planning/prm_planner/prm_planner.rst @@ -0,0 +1,19 @@ +.. _probabilistic-road-map-(prm)-planning: + +Probabilistic Road-Map (PRM) planning +------------------------------------- + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ProbabilisticRoadMap/animation.gif + +This PRM planner uses Dijkstra method for graph search. + +In the animation, blue points are sampled points, + +Cyan crosses means searched points with Dijkstra method, + +The red line is the final path of PRM. + +Ref: + +- `Probabilistic roadmap - + Wikipedia `__ diff --git a/docs/modules/path_planning/quintic_polynomials_planner.rst b/docs/modules/path_planning/quintic_polynomials_planner/quintic_polynomials_planner.rst similarity index 100% rename from docs/modules/path_planning/quintic_polynomials_planner.rst rename to docs/modules/path_planning/quintic_polynomials_planner/quintic_polynomials_planner.rst diff --git a/docs/modules/path_planning/reeds_shepp_path/reeds_shepp_path.rst b/docs/modules/path_planning/reeds_shepp_path/reeds_shepp_path.rst new file mode 100644 index 00000000..81e56588 --- /dev/null +++ b/docs/modules/path_planning/reeds_shepp_path/reeds_shepp_path.rst @@ -0,0 +1,17 @@ +Reeds Shepp planning +-------------------- + +A sample code with Reeds Shepp path planning. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ReedsSheppPath/animation.gif?raw=true + +Ref: + +- `15.3.2 Reeds-Shepp + Curves `__ + +- `optimal paths for a car that goes both forwards and + backwards `__ + +- `ghliu/pyReedsShepp: Implementation of Reeds Shepp + curve. `__ diff --git a/docs/modules/path_planning/rrt/rrt.rst b/docs/modules/path_planning/rrt/rrt.rst new file mode 100644 index 00000000..1afa17b1 --- /dev/null +++ b/docs/modules/path_planning/rrt/rrt.rst @@ -0,0 +1,118 @@ +.. _rapidly-exploring-random-trees-(rrt): + +Rapidly-Exploring Random Trees (RRT) +------------------------------------ + +Basic RRT +~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRT/animation.gif + +This is a simple path planning code with Rapidly-Exploring Random Trees +(RRT) + +Black circles are obstacles, green line is a searched tree, red crosses +are start and goal positions. + +.. include:: rrt/rrt_star.rst + + +RRT with dubins path +~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTDubins/animation.gif + +Path planning for a car robot with RRT and dubins path planner. + +.. _rrt*-with-dubins-path: + +RRT\* with dubins path +~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTStarDubins/animation.gif + +Path planning for a car robot with RRT\* and dubins path planner. + +.. _rrt*-with-reeds-sheep-path: + +RRT\* with reeds-sheep path +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTStarReedsShepp/animation.gif + +Path planning for a car robot with RRT\* and reeds sheep path planner. + +.. _informed-rrt*: + +Informed RRT\* +~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/InformedRRTStar/animation.gif + +This is a path planning code with Informed RRT*. + +The cyan ellipse is the heuristic sampling domain of Informed RRT*. + +Ref: + +- `Informed RRT\*: Optimal Sampling-based Path Planning Focused via + Direct Sampling of an Admissible Ellipsoidal + Heuristic `__ + +.. _batch-informed-rrt*: + +Batch Informed RRT\* +~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/BatchInformedRRTStar/animation.gif + +This is a path planning code with Batch Informed RRT*. + +Ref: + +- `Batch Informed Trees (BIT*): Sampling-based Optimal Planning via the + Heuristically Guided Search of Implicit Random Geometric + Graphs `__ + +.. _closed-loop-rrt*: + +Closed Loop RRT\* +~~~~~~~~~~~~~~~~~ + +A vehicle model based path planning with closed loop RRT*. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/ClosedLoopRRTStar/animation.gif + +In this code, pure-pursuit algorithm is used for steering control, + +PID is used for speed control. + +Ref: + +- `Motion Planning in Complex Environments using Closed-loop + Prediction `__ + +- `Real-time Motion Planning with Applications to Autonomous Urban + Driving `__ + +- `[1601.06326] Sampling-based Algorithms for Optimal Motion Planning + Using Closed-loop Prediction `__ + +.. _lqr-rrt*: + +LQR-RRT\* +~~~~~~~~~ + +This is a path planning simulation with LQR-RRT*. + +A double integrator motion model is used for LQR local planner. + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/LQRRRTStar/animation.gif + +Ref: + +- `LQR-RRT\*: Optimal Sampling-Based Motion Planning with Automatically + Derived Extension + Heuristics `__ + +- `MahanFathi/LQR-RRTstar: LQR-RRT\* method is used for random motion planning of a simple pendulum in its phase plot `__ \ No newline at end of file diff --git a/docs/modules/path_planning/rrt_star.rst b/docs/modules/path_planning/rrt/rrt_star.rst similarity index 90% rename from docs/modules/path_planning/rrt_star.rst rename to docs/modules/path_planning/rrt/rrt_star.rst index cf136d52..546e9bf6 100644 --- a/docs/modules/path_planning/rrt_star.rst +++ b/docs/modules/path_planning/rrt/rrt_star.rst @@ -2,7 +2,6 @@ RRT\* ~~~~~ .. figure:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/RRTstar/animation.gif - :alt: gif This is a path planning code with RRT\* @@ -11,7 +10,7 @@ Black circles are obstacles, green line is a searched tree, red crosses are star Simulation ^^^^^^^^^^ -.. image:: rrt_star_files/rrt_star_1_0.png +.. image:: rrt/rrt_star/rrt_star_1_0.png :width: 600px diff --git a/docs/modules/path_planning/rrt_star_files/rrt_star_1_0.png b/docs/modules/path_planning/rrt/rrt_star/rrt_star_1_0.png similarity index 100% rename from docs/modules/path_planning/rrt_star_files/rrt_star_1_0.png rename to docs/modules/path_planning/rrt/rrt_star/rrt_star_1_0.png diff --git a/docs/modules/path_planning/rrt_star_reeds_shepp/figure_1.png b/docs/modules/path_planning/rrt/rrt_star_reeds_shepp/figure_1.png similarity index 100% rename from docs/modules/path_planning/rrt_star_reeds_shepp/figure_1.png rename to docs/modules/path_planning/rrt/rrt_star_reeds_shepp/figure_1.png diff --git a/docs/modules/path_planning/state_lattice_pathplanner/Figure_1.png b/docs/modules/path_planning/state_lattice_planner/Figure_1.png similarity index 100% rename from docs/modules/path_planning/state_lattice_pathplanner/Figure_1.png rename to docs/modules/path_planning/state_lattice_planner/Figure_1.png diff --git a/docs/modules/path_planning/state_lattice_pathplanner/Figure_2.png b/docs/modules/path_planning/state_lattice_planner/Figure_2.png similarity index 100% rename from docs/modules/path_planning/state_lattice_pathplanner/Figure_2.png rename to docs/modules/path_planning/state_lattice_planner/Figure_2.png diff --git a/docs/modules/path_planning/state_lattice_pathplanner/Figure_3.png b/docs/modules/path_planning/state_lattice_planner/Figure_3.png similarity index 100% rename from docs/modules/path_planning/state_lattice_pathplanner/Figure_3.png rename to docs/modules/path_planning/state_lattice_planner/Figure_3.png diff --git a/docs/modules/path_planning/state_lattice_pathplanner/Figure_4.png b/docs/modules/path_planning/state_lattice_planner/Figure_4.png similarity index 100% rename from docs/modules/path_planning/state_lattice_pathplanner/Figure_4.png rename to docs/modules/path_planning/state_lattice_planner/Figure_4.png diff --git a/docs/modules/path_planning/state_lattice_pathplanner/Figure_5.png b/docs/modules/path_planning/state_lattice_planner/Figure_5.png similarity index 100% rename from docs/modules/path_planning/state_lattice_pathplanner/Figure_5.png rename to docs/modules/path_planning/state_lattice_planner/Figure_5.png diff --git a/docs/modules/path_planning/state_lattice_pathplanner/Figure_6.png b/docs/modules/path_planning/state_lattice_planner/Figure_6.png similarity index 100% rename from docs/modules/path_planning/state_lattice_pathplanner/Figure_6.png rename to docs/modules/path_planning/state_lattice_planner/Figure_6.png diff --git a/docs/modules/path_planning/state_lattice_planner/state_lattice_planner.rst b/docs/modules/path_planning/state_lattice_planner/state_lattice_planner.rst new file mode 100644 index 00000000..3ef0c7ec --- /dev/null +++ b/docs/modules/path_planning/state_lattice_planner/state_lattice_planner.rst @@ -0,0 +1,33 @@ +State Lattice Planning +---------------------- + +This script is a path planning code with state lattice planning. + +This code uses the model predictive trajectory generator to solve +boundary problem. + + +Uniform polar sampling +~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/UniformPolarSampling.gif + +Biased polar sampling +~~~~~~~~~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/BiasedPolarSampling.gif + +Lane sampling +~~~~~~~~~~~~~ + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/LaneSampling.gif + +Ref: + +- `Optimal rough terrain trajectory generation for wheeled mobile + robots `__ + +- `State Space Sampling of Feasible Motions for High-Performance Mobile + Robot Navigation in Complex + Environments `__ + diff --git a/docs/modules/path_planning/vrm_planner/vrm_planner.rst b/docs/modules/path_planning/vrm_planner/vrm_planner.rst new file mode 100644 index 00000000..92e729ab --- /dev/null +++ b/docs/modules/path_planning/vrm_planner/vrm_planner.rst @@ -0,0 +1,17 @@ +Voronoi Road-Map planning +------------------------- + +.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/VoronoiRoadMap/animation.gif + +This Voronoi road-map planner uses Dijkstra method for graph search. + +In the animation, blue points are Voronoi points, + +Cyan crosses mean searched points with Dijkstra method, + +The red line is the final path of Vornoi Road-Map. + +Ref: + +- `Robotic Motion Planning `__ +