Skip to content

Arcane-01/optimizers-mpc-jax

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

optimizers-mpc-jax

Sampling- and gradient-based optimization algorithms in JAX for MPC trajectory planning.

Implemented Optimizers

Sampling-Based

  • Cross Entropy Method (CEM)
  • Basic Random Search (BRS)
  • Augmented Random Search (ARS)
  • Stochastic Trajectory Optimization for Motion Planning (STOMP)
  • Model Predictive Path Integral (MPPI)

Gradient-Based / Second-Order

  • Vanilla Gradient Descent
  • Nesterov Accelerated Gradient
  • Gauss–Newton Method
  • Newton’s Method

Results


Cross Entropy Method (CEM)


Basic Random Search (BRS)


Vanilla Gradient Descent


Nesterov Accelerated Gradient


Gauss-Newton Method


Newton’s Method

Installation

Note that this code has only been tested with ROS-Noetic on Ubuntu 20.04. It is assumed that you already have a complete ROS installation. Also, ensure that CVXOPT is installed.

  1. (optional) Set up a catkin workspace

    cd
    mkdir -p catkin_ws/src
    cd catkin_ws
    catkin init
    
  2. Clone this repository in the workspace

    cd catkin_ws/src
    git clone https://github.com/Arcane-01/ .
    
  3. Build the workspace

    cd ../
    catkin build
    source devel/setup.bash
    

Usage

  1. To start the Gazebo simulation with the Jackal and select a specific optimizer, run:

    roslaunch planner jackal_custom.launch world_name:="env4" optimizer:="cem" type:="vanilla"
  • world_name - Gazebo world file from planner/worlds. Default is env4.

  • optimizer - Optimization algorithm to use in the planner. Options include:

    • cem - Cross Entropy Method
    • random_search - Basic Random Search
    • gauss_newton - Gauss-Newton
    • gradient_descent - Gradient-based methods
  • type - Subtype of optimizer (used for gradient-based optimizers). Options include:

    • vanilla - Vanilla Gradient Descent
    • nesterov - Nesterov Accelerated Gradient
    • newton - Newton’s Method
  1. Once the planner is running, you can begin navigation by setting a 2D Nav Goal in RViZ.

About

sampling- and gradient-based optimization algorithms in JAX for MPC trajectory planning

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published