Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thowell/motion_planning
Algorithm and model experiments for robot motion planning. Implemented in Julia.
https://github.com/thowell/motion_planning
control dynamics motion-planning optimal-control optimization robotics simulation
Last synced: 25 days ago
JSON representation
Algorithm and model experiments for robot motion planning. Implemented in Julia.
- Host: GitHub
- URL: https://github.com/thowell/motion_planning
- Owner: thowell
- License: mit
- Created: 2020-10-30T05:10:10.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-23T20:08:31.000Z (about 3 years ago)
- Last Synced: 2024-11-15T18:12:21.016Z (3 months ago)
- Topics: control, dynamics, motion-planning, optimal-control, optimization, robotics, simulation
- Language: Julia
- Homepage:
- Size: 32 MB
- Stars: 78
- Watchers: 7
- Forks: 18
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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:
```julia
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
- [X] simple manipulation
- [X] cyberdrift
- [X] cyberjump
- [X] box on corner
- [X] hopper (2D) vertical gait
- [X] hopper (2D) flip
- [ ] simple walker (2D) (add model)
- [X] 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)
- [X] biped (2D)
- [X] quadruped (2D) (modify model)
- [ ] quadruped (2D) over box
- [X] quadruped (2D) backflip
- [ ] quadruped (3D)
- [ ] ant (3D)
- [ ] snake (3D)
- [ ] atlas## direct policy optimization examples
We provide the [examples](src/examples/direct_policy_optimization) from [Direct Policy Optimization using Deterministic Sampling and Collocation](https://arxiv.org/abs/2010.08506). Optimizing the policies requires [SNOPT](https://en.wikipedia.org/wiki/SNOPT) and resources for its installation are available [here](src/solvers/snopt.jl). The trajectories and policies from these examples have been saved and can be loaded in order to run the policy simulations and visualizations.
LQR
- [X] double integrator
- [X] planar quadrotormotion planning
- [X] pendulum
- [X] autonomous car
- [X] cart-pole
- [X] rocket
- [X] quadrotor
- [x] biped## contact-implicit model-predictive control examples
We generate reference trajectories for the examples in [Contact-Implicit Model-Predictive Control](https://arxiv.org/abs/2107.05616).
- [X] [quadruped gait](examples/contact_implicit/quadruped_gait_1_step.jl)
- [X] [spring flamingo gait](examples/contact_implicit/flamingo_gait_1_step.jl)
- [X] hopper parkour: [stairs](examples/contact_implicit/hopper_stairs.jl), [flip](examples/contact_implicit/hopper_flip.jl)## optimization-based dynamics examples
Examples from [Trajectory Optimization with Optimization-Based Dynamics](https://arxiv.org/abs/2109.04928).
- [X] acrobot
- [X] cartpole
- [X] rocket
- [X] planar push
- [X] hopper
- [ ] centroidal quadruped## classic examples
- [X] double integrator
- [X] acrobot
- [ ] robotic arm
- [ ] quadrotor## model-predictive control
- [X] double integrator
- [X] acrobot
- [X] hopper push recovery## differential dynamic programming
iterative LQR is currently implemented- [X] double integrator
- [X] pendulum
- [X] cartpole
- [X] acrobot## simulation
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
- [X] particle
- [X] box dropsecond-order friction cone
- [X] particle## TODO
- [ ] optimization-based dynamics examples
- [ ] clean up
- [ ] centroidal quadruped
- [X] direct policy optimization implementation
- [ ] update paper visualizations
- [X] save TO and DPO trajectories
- [ ] solve DPO to tighter tolerances
- [ ] check for SNOPT installation
- [ ] parallelize objective + constraint evaluations
- [ ] tests
- [X] visualization dependencies
- [X] select default background
- [X] set default views
- [X] nonlinear objective (stage wise)
- [X] constraints (stage wise)
- [X] discrete dynamics parameterization
- [X] embed animations in README
- [X] dispatch over model type for free final time
- [ ] analytical velocity objective gradient
- [ ] large-scale augmented Lagrangian solver
- [ ] contact simulator