Skip to content

Code supporting the WAFR paper "A Performance Analysis of Differential Dynamic Programming on a GPU," and the ICRA workshop follow on work deploying the algorithm onto robot hardware.

Notifications You must be signed in to change notification settings

plancherb1/parallel-DDP

Repository files navigation

Parallel DDP for GPU/CPU

This repository holds the code supporting "A Performance Analysis of Differential Dynamic Programming on a GPU." It is also where experimental work is being done to extend this work.

Stucture of this Repository

  • WAFR_MPC_examples.cu and WAFR_MPC_examples.cu are the main files which run the experiments from the paper (see the comment at the top of each file for the compilation instructions)
  • config.h defines all of the settings (parallel level, plant, etc.) for an experiment
  • DDPHelpers.cuh imports all of the various helper functions and files from the following folders as needed
  • /DDPHelpers/* holds most of the functions as inlined templated CUDA header files
  • /plants/* holds custom rigid body dynamics and/or analytical dynamics and cost functions for currently supported plants
  • /utils/* holds a variety of support code for matrix multiplication, discrete time integrators, thread/CUDA support, etc.
  • /lcmtypes/* holds experimental LCM types for multi-computer / hardware communication

Dependencies

  • CUDA needs to be installed as code needs to be compiled with the NVCC comiler
  • For experimental multi-computer / hardware MPC code there is an additional communicaiton dependency: LCM.

Known Bugs / Ongoing Development

  • Finite-Diff Derivatives are currently only partially implemented (and broken)
  • Small float rounding differences need to be investigated further (probably benign)
  • GPU RBDYN for Kuka only works in Euler mode -- need to introduce loops and reduce shared memory for Midpoint and RK3 (or use a brand new GPU which has double the shared memory)
  • LCM infrastructure for multi-computer / hardware MPC only partially developed (and currenlty commented out)
  • Need to catch up the CPU MPC to GPU MPC implementation

About

Code supporting the WAFR paper "A Performance Analysis of Differential Dynamic Programming on a GPU," and the ICRA workshop follow on work deploying the algorithm onto robot hardware.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published