复现开源项目,实现了Carla和ros2环境下Apollo EMplanner的C++版本
控制算法包括:纵向串级PID,横向LQR,横纵向MPC
规划算法包括:参考线平滑,路径DP+QP,速度DP+QP
在此基础上进行了代码检查和改进优化,对动态障碍物及静态障碍物分别进行了测试
本项目使用Windows系统+WSL2(Ubuntu20.04).其中Carla软件装在Windows下,其余代码全部在Ubuntu系统下,运行时通过Carla和ROS2远程通信联合仿真
硬件需要6GB以上显存的独立显卡 + 200GB硬盘空间
PS:使用Windows系统+WSL2是本人迫不得已,最好是Carla也装在Ubuntu20.04系统中,避免双系统通讯问题
Ubuntu20.04
ros2-foxy
Carla-0.9.13
osqp0.6.3
osqp-eigen0.8.0
matplot++
软件版本最好一致,不然编译容易出问题
决策规划相关源代码在my_planning_and_control这个文件夹里,后续也会在这个文件夹里进行修改
运行案列我是借助的carla_ad_demo(这是carla-ros-bridge里自带的案例),在它的场景里运行自己规控算法
colcon build
. install/setup.bash
ros2 launch carla_ad_demo carla_ad_demo.launch.py
(windows + ubuntu 情况下: ros2 launch carla_ad_demo carla_ad_demo.launch.py host:=172.xx.xxx.x)
参见B站视频
感谢B站UP主忠厚老实的老王关于自动驾驶决策规划系列课程
感谢项目原作者的无私开源
感谢本项目用到所有开源系统、框架、求解库的作者