A C++ based ROS2 software stack for rapid testing of motion planning, obstacle avoidance, and filtering techniques.
- A modularized package supporting various vehicle dynamics/kinematics models.
- The vehicle class is implemented as a shared/static library and leverages CppAD for automatic differentiation, enabling seamless integration with existing planning algorithms.
.
├── eigen3_cmake_module
│ ├── CHANGELOG.rst
│ ├── cmake
│ │ └── Modules
│ │ └── FindEigen3.cmake
│ ├── CMakeLists.txt
│ ├── CONTRIBUTING.md
│ ├── eigen3_cmake_module-extras.cmake
│ ├── LICENSE
│ ├── package.xml
│ └── README.md
├── package_configs
│ ├── CMakeLists.txt
│ ├── config
│ │ └── vehicle_params.yaml
│ ├── include
│ │ └── package_configs
│ │ ├── integrator_class.hpp
│ │ └── vehicle_class.hpp
│ ├── package.xml
│ └── src
│ ├── integrator_class.cpp
│ └── vehicle_class.cpp
├── README_tree.md
├── test_jax.py
└── vehicle_interface
├── CMakeLists.txt
├── include
│ └── vehicle_interface
│ └── vehicle_interface_node.hpp
├── package.xml
└── src
├── mpc_node.cpp
└── vehicle_interface_node.cpp
12 directories, 22 files
This repository contains the various motion planning algorthims , including obstacle avoidance strategies in ros2 jazzy
List of Vehicles
- Single Track Ackerman Steering Kinematics Model
List of Motion Planning Algorithms
- Quadratic Programming (QP) Based Model Predictive Control
- QP based Model Predictive Contouring Control
- Model Predictive Path Integral Contol (MPPI) based Path Tracking Algorithm
- Frenet Frame Based Non-Linear MPC
List of Obstacle Avoidance Algorithm
- Corridor Based Obstacle Avoidance ( can be used with 1,2,3 motion planning ) 2 . Control Barrier Function (CBF) , only be used with non-linear MPC
- Change the root directory name in
scripts/deploy/base.sh
- From root of the directory run
./scripts/build/build.sh
After above two steps the Docker Image with the name of mp_ros2 would have been created
- From root of the directory run
./scripts/deploy/devel.sh
MIT
I initiated this project to independently study algorithms and software development for autonomous vehicle systems. This repository is also available for your personal use in studying, education, research, or development.
If this project supports your work or contributes to your tasks, please feel free to inform me by starring the repository.
Any contribution by creating an issue or sending a pull request is welcome!!