Skip to content

An optimization algorithm for the design of concentric tube robots based on a flexible path planner.

Notifications You must be signed in to change notification settings

ConorMesser/ctr-design-and-path-plan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CTR DaPP

Concentric Tube Robot Design and Path Planning is an optimization algorithm for the design of concentric tube robots based on a flexible path planner.

The CTR DaPP library was developed to allow for non-constant strain initial curvatures of concentric tube robots. The library is made up of multiple packages, each allowing for easy extension:

  • MODEL: The mechanics of the robot, primarily offering the SE(3) g-curves for a robot given insertion and rotation values
    • Initial models follow Dr. Renda's strain-based static and kinematic models
  • COLLISION: Provides collision queries between the model output and the environment (obstacles and goal)
    • The collision detection package utilizes the Fast Collision Library (python-fcl)
  • SOLVER: The path planner, used to explore the environment and find a path to the goal
    • Initial path planners utilize the RRT (randomly-exploring rapid tree) sampling-based framework
  • HEURISTIC: Defines the cost of a configuration (and path) of a robot
    • Initial heuristics use distance to goal, distance from obstacles, follow the leader path behavior
  • OPTIMIZE: The algorithm used to optimize the design parameters (q curvature values) for a given environment
    • Initial optimizer uses nelder-mead, requiring only an initial simplex and no derivative information

Configuration files allow for specifying the environment and which package types to use (RRT vs. RRT*, static vs. kinematic, etc.). A few pre-written scripts also allow for easy interaction with the API.

Usage

from ctrdapp.scripts.full_optimize import full_optimize

full_optimize()  # runs full optimization algorithm
Enter name of configuration file (with .yaml extension):
> config.yaml
Enter initial guess for the q; should be 5 numbers long, each separated by a comma. (Tubes have these degrees of freedom: [2, 3]).
> 0.02, 0.001, 0.05, 0.0001, 0.002

Runs the algorithm with the specified configuration. Outputs include the optimization process (q's and costs), the optimization summary, and the best design path planner results (full tree, solution path, and path movie). The outputs are saved in the directory specified in the configuration file.

Installation

Install the library from source. Python dependencies are defined in the Pipfile, except for the pympnn package which can be installed here.

License

MIT

About

An optimization algorithm for the design of concentric tube robots based on a flexible path planner.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages