Skip to content

A collection of motion planning projects in Python 3 and YAML

Notifications You must be signed in to change notification settings

nicholasRenninger/Motion-Planning-Projects

Repository files navigation

Motion Planning Projects

A repo containing all of my motion planning algorithm projects.

Tool Class Hierarchy

This diagram shows the notional, evolving class design for the underlying project framework:

This repo contains implementations of Bug Algorithms and a Forwards / Inverse Kinematics solver for a 3-link manipulator.

Results of the implentation include:

  • plots of the path performance of the different bug planning algorithms on multiple environments
  • plots of the results of running forwards / inverse kinematics on a user specified 2-link manipulator
Bug 1 Algorithm Bug 2 Algorithm 3-Link Manipulator

Implementation of a 2-D 2DoF manipulator configuration space visualizer, as well as implementations of a gradient descent and wavefront planner for this manipulator.

Results of the implentation include:

  • C-Space visualizer for a translating, rotating robot and obstacle of the same polygonal shape
  • Gradient descent planner path visualization for a point robot in multiple enviroments, including those from the bugAlgorithms_and_kinematics repo.
  • Wavefront planner path visualization for a point robot in multiple enviroments, including those from the bugAlgorithms_and_kinematics repo.
  • C-Space visualizer for a 2-link manipulator with arbitrary polygonal obstacles
  • Wavefront planner workspace path for the 2-link manipulator
2-Link Manipulator Plan Viz. 2-Link Manipulator C-Space Potential Gradient Planner

Implementation of the A* and Dijkstra optimal graph search algorithms, a Fast Probabilistic Roadmap (PRM) Planner with path smoothing, and a benchmarking suite for doing parametric performance evaluation of the planners modules.

Built with a networkx Graph backbone and library implementations of:

  • Set-Priority Queue (based on heapq)
  • KDTree (based on cKDTree)
  • Union-Find (based on newtorkx.util)

ADTs for speed.

Results of the imlementation include:

  • Visualization and implementation of the A and Dijkstra Optimal Search Algorithms*
  • Smoothing PRM Planner path visualization for a point robot in multiple enviroments, including those from the cSpaceViz_Gradient_Wavefront_planners repo.
  • Benchmarking and statistical analysis / visualization of the Smoothing PRM Planner in multiple enviroments, with the ability to do parametric studies of planner parameters.
PRM Planner Path Length Benchmarking Computation Time Benchmarking