使用 Carla 和 ROS2 部署规划控制常用算法,并在 carla_ad_demo 场景中运行
- Ubuntu 20.04
- ROS2 Foxy
- Carla 0.9.13
- osqp 0.6.3
- osqp-eigen 0.8.0
- matplot++ 最新版本
- 控制算法:Pure Pursuit,Stanley,纵向串级 PID,横向 LQ,横纵向 MPC
- 规划算法:A*,Hybrid A*,RRT*,参考线 OSQP 平滑,EM Planner(路径 DP+QP、速度 DP+QP),Lattice Planner
my_planning_and_control
├── controller_modules
│ ├── CMakeLists.txt
│ ├── include
│ │ ├── lateral_lqr_controller.h
│ │ ├── lon_cascade_pid_controller.h
│ │ ├── mpc_controller.h
│ │ └── pid_controller.h
│ ├── package.xml
│ └── src
│ ├── lateral_lqr_controller.cpp
│ ├── lon_cascade_pid_controller.cpp
│ ├── mpc_controller.cpp
│ └── pid_controller.cpp
├── general_modules
│ ├── CMakeLists.txt
│ ├── include
│ │ ├── common.h
│ │ ├── polynomial_curve.h
│ │ └── tool.hpp
│ ├── package.xml
│ └── src
│ ├── common.cpp
│ ├── polynomial_curve.cpp
│ └── tool.cpp
├── main_function
│ ├── CMakeLists.txt
│ ├── include
│ │ ├── control_agent.h
│ │ └── planning_agent.h
│ ├── launch
│ │ └── my_pnc_launch.py
│ ├── package.xml
│ └── src
│ ├── control_agent.cpp
│ └── planning_agent.cpp
└── planner_modules
├── CMakeLists.txt
├── include
│ ├── emplanner.h
│ └── reference_line.h
├── package.xml
└── src
├── emplanner.cpp
├── emplanner_node.cpp
├── emplanner_path_planning.cpp
├── emplanner_speed_planning.cpp
└── reference_line.cpp
运行案例:carla_ad_demo
运行命令:
colcon build
. install/setup.bash
ros2 launch carla_ad_demo carla_ad_demo.launch.py
- v1.0.0: 实现纵向串级PID,横向LQR,横纵向MPC,参考线OSQP平滑,路径DP+QP,速度DP+QP