/motion_planning

Algorithm and model experiments for robot motion planning. Implemented in Julia.

Primary LanguageJuliaMIT LicenseMIT

motion_planning

This repository contains algorithm and model experiments for robot motion planning. The code is very much prototype caliber and is intended for rapid sharing with collaborators. Feel free to contact me if you are interested in any of the examples or have difficulty installing or running the scripts.

installation

From the Julia REPL, type ] to enter the Pkg REPL mode and run:

pkg> add https://github.com/thowell/motion_planning

Additionally, once the package is activated and instantiated, set the environment and module to motion_planning in order to run scripts.

contact-implicit trajectory optimization examples

drawing

  • simple manipulation
  • cyberdrift
  • cyberjump
  • box on corner
  • hopper (2D) vertical gait
  • hopper (2D) flip
  • simple walker (2D) (add model)
  • hopper (3D)
  • hopper (3D) wall scaling
  • miniature golf (fix RBD dep.)
  • ball-in-cup robot arm (move over from old script)
  • ball-in-cup quadrotor (move over from old script)
  • biped (2D)
  • quadruped (2D) (modify model)
  • quadruped (2D) over box
  • quadruped (2D) backflip
  • quadruped (3D)
  • ant (3D)
  • snake (3D)
  • atlas

direct policy optimization examples

drawing

We provide the examples from Direct Policy Optimization using Deterministic Sampling and Collocation. Optimizing the policies requires SNOPT and resources for its installation are available here. The trajectories and policies from these examples have been saved and can be loaded in order to run the policy simulations and visualizations.

LQR

  • double integrator
  • planar quadrotor

motion planning

  • pendulum
  • autonomous car
  • cart-pole
  • rocket
  • quadrotor
  • biped

contact-implicit model-predictive control examples

drawing

We generate reference trajectories for the examples in Contact-Implicit Model-Predictive Control.

optimization-based dynamics examples

drawing

Examples from Trajectory Optimization with Optimization-Based Dynamics.

  • acrobot
  • cartpole
  • rocket
  • planar push
  • hopper
  • centroidal quadruped

classic examples

drawing

  • double integrator
  • acrobot
  • robotic arm
  • quadrotor

model-predictive control

drawing

  • double integrator
  • acrobot
  • hopper push recovery

differential dynamic programming

iterative LQR is currently implemented

  • double integrator
  • pendulum
  • cartpole
  • acrobot

simulation

drawing

we simulate objects / robots that experience contact (i.e., impact and Couloumb friction) using time-stepping techniques, discrete mechanics, nonlinear complementarity, (and collocation)

linearized friction cone

  • particle
  • box drop

second-order friction cone

  • particle

TODO

  • optimization-based dynamics examples
    • clean up
    • centroidal quadruped
  • direct policy optimization implementation
    • update paper visualizations
    • save TO and DPO trajectories
    • solve DPO to tighter tolerances
  • check for SNOPT installation
  • parallelize objective + constraint evaluations
  • tests
  • visualization dependencies
    • select default background
    • set default views
  • nonlinear objective (stage wise)
  • constraints (stage wise)
  • discrete dynamics parameterization
  • embed animations in README
  • dispatch over model type for free final time
  • analytical velocity objective gradient
  • large-scale augmented Lagrangian solver
  • contact simulator