自动驾驶决策规划控制c++代码实现
理论知识参考博客.
python代码实现参考github仓库 .
推荐结合博客内容来看代码实现。
项目依赖
本项目在Ubuntu 20.04下运行,windows下尚未尝试过,因此推荐使用Ubuntu系统。
- python3
- matplotlib
- cmake
- Eigen
-
cmake的安装直接终端运行
sudo apt install cmake
如果在项目编译时报cmake版本低的错误,可参考该 博客 升级cmake。
对cmake操作不不够熟悉的同学可以先参考文档 学习。
-
Eigen在Linux下的安装直接使用命令
sudo apt-get install libeigen3-dev
Eigen库采用模板编程技术,仅由一些头文件组成,运行速度快。用cmake管理项目的时候,只需要在CMakeLists.txt里面添加头文件的路径即可:
find_package(Eigen3 REQUIRED) include_directories(${EIGEN3_INCLUDE_DIR})
-
画图代码采用了c++ 调用python的matplotlib的方式,所以需要使用
pip
的方式安装matplotlib,具体使用方式参考说明文档 。 这边直接移植了该功能。 -
另外,MPC代码使用了CPPAD/Ipopt优化库,如果要进行MPC的测试,需要安装CPPAD/ipopt。安装方式可参考博客 。
项目编译
本项目使用Cmake编译,所使用IDE为Clion(推荐使用)。
若不使用Clion,则在项目主目录下,编译:
mkdir build
cd build
cmake ../
make
路径规划
- 全局路径规划算法——Dijkstra算法
- 全局路径规划算法——蚁群算法
- 全局路径规划算法——动态规划算法
- 全局路径规划算法——A*算法
- 局部路径规划算法——曲线插值法
- 局部路径规划算法——人工势场法
- 局部路径规划算法——贝塞尔曲线法
- 局部路径规划算法——B样条曲线法
- 局部路径规划算法——DWA算法
- 基于采样的路径规划算法——PRM
- 基于采样的路径规划算法——RRT
- 基于采样的路径规划算法——RRT-Connect
- 基于采样的路径规划算法——RRT*
- 路径规划—— Dubins 曲线推导(基于向量的方法)
- 路径规划—— Dubins 曲线公式总结(基于几何的方法)
- 路径规划——ReedsShepp 曲线总结
- 汽车速度规划介绍