Sampling- and gradient-based optimization algorithms in JAX for MPC trajectory planning.
- Cross Entropy Method (CEM)
- Basic Random Search (BRS)
- Augmented Random Search (ARS)
- Stochastic Trajectory Optimization for Motion Planning (STOMP)
- Model Predictive Path Integral (MPPI)
- Vanilla Gradient Descent
- Nesterov Accelerated Gradient
- Gauss–Newton Method
- Newton’s Method
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.
-
(optional) Set up a catkin workspace
cd mkdir -p catkin_ws/src cd catkin_ws catkin init -
Clone this repository in the workspace
cd catkin_ws/src git clone https://github.com/Arcane-01/ . -
Build the workspace
cd ../ catkin build source devel/setup.bash
-
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 fromplanner/worlds. Default isenv4. -
optimizer- Optimization algorithm to use in the planner. Options include:cem- Cross Entropy Methodrandom_search- Basic Random Searchgauss_newton- Gauss-Newtongradient_descent- Gradient-based methods
-
type- Subtype of optimizer (used for gradient-based optimizers). Options include:vanilla- Vanilla Gradient Descentnesterov- Nesterov Accelerated Gradientnewton- Newton’s Method
- Once the planner is running, you can begin navigation by setting a 2D Nav Goal in RViZ.





