# CppRobotics
![Language](https://img.shields.io/badge/language-c++-brightgreen) ![Static Badge](https://img.shields.io/badge/eigen-3.3.7-blue)
Cpp implementation of robotics algorithms including localization, path planning, path tracking and control, inspired by [PythonRobotics](https://github.com/AtsushiSakai/PythonRobotics) and [MotionPlanning](https://github.com/zhm-real/MotionPlanning).
## 📌Requirement
- CMake
- Eigen3
- [fmt](https://github.com/fmtlib/fmt)
- for MPC convex optimization (*alternative*)
- CppAD & IPOPT
- osqp & osqp-eigen
Because this project uses [matplotlib-cpp](https://github.com/lava/matplotlib-cpp) for visualization, you also need to ensure that you have Python3.x, and contain the following packages:
- matplotlib
- numpy
You can find [install-tips](./assets/install-tips.md) for some third-party libraries here.
## 🛠Build
```shell
git clone git@github.com:PuYuuu/CppRobotics.git
cd CppRobotics
mkdir build && cd build
cmake ..
make -j6
```
Find all the executable files in **$workspace/bin**. By the way, all code development and debugging of this project are completed under WSL2. Currently, WSL2 natively supports GUI on Win10/Win11 without any configuration. For details, refer to [gui-apps](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps) .
## 🎈Animations
### Perception
### PathPlanning
#### GlobalPlanner
##### Search_based Planning
##### Sampling_based Planning
#### LocalPlanner
#### CurvesGenerator
### PathTracking
### Control
## 🧾Licence
MIT