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.
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.
- 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
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
We generate reference trajectories for the examples in Contact-Implicit Model-Predictive Control.
- quadruped gait
- spring flamingo gait
- hopper parkour: stairs, flip
Examples from Trajectory Optimization with Optimization-Based Dynamics.
- acrobot
- cartpole
- rocket
- planar push
- hopper
- centroidal quadruped
- double integrator
- acrobot
- robotic arm
- quadrotor
- double integrator
- acrobot
- hopper push recovery
iterative LQR is currently implemented
- double integrator
- pendulum
- cartpole
- acrobot
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
- 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