手把手教你学simulink(22.1)--使用 Simulink 开发自动驾驶汽车的路径规划和跟随系统(Path Planning and Following System, PPF)
目录
项目背景
项目目标
使用工具和技术
项目流程
1. 需求分析
2. 系统建模
2.1 车辆动力学模型
2.2 路径规划模块
2.3 路径跟随模块
2.4 避障模块
3. 仿真测试
3.1 构建不同交通场景
3.2 测试系统性能
3.3 分析结果
4. 优化与迭代
5. 硬件在环测试(HIL)
关键技术点
结论
使用Simulink实现自动驾驶汽车的路径规划与跟踪控制系统(Path Planning and Following System, PPF)。该系统旨在让车辆能在指定路线运行的同时避开障碍物。
项目背景
路径规划技术与跟随控制系统是实现自动驾驶汽车的重要技术基础。该系统需要具备计算并生成可行路线的能力,并被车辆用于沿着计算出的路线自动跟踪。此外,在遇到障碍物时该控制系统还应具备障碍物避让能力以确保车辆的安全运行。
项目目标
- 构建一种可靠的有效路径规划算法。
- 开发和实现路径跟踪控制系统的核心模块。
- 在动态变化的道路条件下分别验证系统的全局最优路径寻优能力和快速收敛速度。
- 通过动态权重调节提升算法处理能力达到理论极限,并且运行效率显著提高。
使用工具和技术
- MATLAB 和 Simulink 被用于算法的设计、模型构建以及仿真验证的过程。
- Robotics System Toolbox 被应用于路径规划及障碍物规避算法的实现。
- Vehicle Dynamics Blockset 被应用于汽车动力学的模拟分析中。
- Sensor Fusion and Tracking Toolbox 被用来融合雷达与摄像头数据以实现目标追踪。
- Simulink Real-Time 应用于模型在真实硬件环境中的测试与验证过程。
项目流程
1. 需求分析
明确系统的功能要求,包括但不限于:
规划一条可执行的道路通道。
引导车辆沿设定的道路路线行驶。
实现对障碍物的规避与躲避机制。
针对不同交通密度等级和运行速度波动的情况,系统的鲁棒性表现如何
2. 系统建模
2.1 车辆动力学模型
采用 Vehicle Dynamics Blockset 搭建车辆动力学模型,并涵盖其动力学特性及其运动学特性。
Matlab
深色版本
% 创建车辆动力学模型
add_block('vehicleDynamics/3DOF Vehicle Body', 'PPF_Model/Vehicle_Dynamics', [100 100]);
2.2 路径规划模块
使用 Robotics System Toolbox 实现路径规划算法,生成一条可行的路径。
Matlab
深色版本
% 加载地图数据
load('map_data.mat'); % 假设 map_data.mat 包含地图数据
% 创建路径规划模块
add_block('robotics/Path Planner', 'PPF_Model/Path_Planner', [100 100]);
set_param('PPF_Model/Path_Planner', 'Algorithm', 'RRT*', 'MapData', 'map_data');
% 连接模块
add_line('PPF_Model', 'Start_Point/1', 'Path_Planner/1');
add_line('PPF_Model', 'Goal_Point/1', 'Path_Planner/2');
2.3 路径跟随模块
设计路径跟随控制逻辑,使车辆能够沿着生成的路径行驶。
Matlab
深色版本
% 创建路径跟随控制器
add_block('simulink/Continuous/PID Controller', 'PPF_Model/PID_Controller', [100 100]);
set_param('PPF_Model/PID_Controller', 'P', '1.0', 'I', '0.1', 'D', '0.01');
% 创建路径跟随模块
add_block('robotics/Path Follower', 'PPF_Model/Path_Follower', [100 100]);
set_param('PPF_Model/Path_Follower', 'PathData', 'path_data');
% 连接模块
add_line('PPF_Model', 'Path_Planner/1', 'Path_Follower/1');
add_line('PPF_Model', 'Vehicle_Position/1', 'Path_Follower/2');
add_line('PPF_Model', 'Path_Follower/1', 'PID_Controller/1');
add_line('PPF_Model', 'PID_Controller/1', 'Vehicle_Dynamics/1');
2.4 避障模块
通过集成 Sensor Fusion and Tracking Toolbox 实现雷达与摄像头数据的实时整合,并对环境中的潜在危险物体进行实时检测与精准避障。
Matlab
深色版本
% 加载雷达数据
load('radar_data.mat'); % 假设 radar_data.mat 包含雷达数据
% 加载摄像头数据
load('camera_data.mat'); % 假设 camera_data.mat 包含摄像头数据
% 创建雷达数据处理模块
add_block('sensorFusionAndTracking/Radar Sensor', 'PPF_Model/Radar_Sensor', [100 100]);
set_param('PPF_Model/Radar_Sensor', 'FieldOfView', '60', 'UpdateRate', '10');
% 创建摄像头数据处理模块
add_block('vision/Object Detector', 'PPF_Model/Camera_Sensor', [100 100]);
set_param('PPF_Model/Camera_Sensor', 'DetectorType', 'YOLO v3');
% 创建避障模块
add_block('robotics/Obstacle Avoidance', 'PPF_Model/Obstacle_Avoidance', [100 100]);
set_param('PPF_Model/Obstacle_Avoidance', 'SensorData', 'sensor_data');
% 连接模块
add_line('PPF_Model', 'Radar_Sensor/1', 'Obstacle_Avoidance/1');
add_line('PPF_Model', 'Camera_Sensor/1', 'Obstacle_Avoidance/2');
add_line('PPF_Model', 'Obstacle_Avoidance/1', 'Path_Follower/3');
3. 仿真测试
3.1 构建不同交通场景
使用 Simulink 的 Scenario Reader 模块导入多种交通场景类型,并举例说明包括:1. 直线行驶路线;2. 曲线行驶路线;3. 含有障碍物的行驶路线等
Matlab
深色版本
% 加载交通场景
load('traffic_scenarios.mat'); % 假设 traffic_scenarios.mat 包含不同的交通场景
% 创建 Scenario Reader 模块
add_block('drivingScenario/Scenario Reader', 'PPF_Model/Scenario_Reader', [100 100]);
set_param('PPF_Model/Scenario_Reader', 'ScenarioFile', 'traffic_scenarios.mat');
% 连接模块
add_line('PPF_Model', 'Scenario_Reader/1', 'Radar_Sensor/1');
add_line('PPF_Model', 'Scenario_Reader/2', 'Camera_Sensor/1');
3.2 测试系统性能
运行仿真,评估系统在不同场景下的表现。
Matlab
深色版本
% 设置仿真时间
set_param('PPF_Model', 'SimulationMode', 'normal', 'StopTime', '30');
% 运行仿真
sim('PPF_Model');
3.3 分析结果
使用 Scope 模块和 To Workspace 模块记录和分析仿真结果。
Matlab
深色版本
% 查看输出数据
disp(output_data);
4. 优化与迭代
根据测试结果调整算法参数,优化系统性能。
- 路径规划精确度 :通过优化路径规划算法参数组合,显著提升路径生成的精确度与可行性。
- 轨迹跟踪平滑性 :微调PID控制器参数设置,在保证车辆平稳运行的同时实现对预定轨迹的有效跟踪。
- 障碍物探测敏感度 :精微调节障碍物探测机制参数设置,在复杂环境里持续增强系统对障碍物的感知能力。
5. 硬件在环测试(HIL)
将模型导入ECU等硬件平台,在真实道路上进行测试以确保系统能够在真实环境中达到良好的稳定性和安全性要求
关键技术点
- 路径规划模块:主要采用基于 RRT* 算法家族进行迭代优化计算,在线计算出一条可通行的道路通道。
- 道路跟踪控制系统设计模块(PID自动导航系统):通过 PID 控制器的设计实现了道路跟踪控制目标。
- 障碍物感知与规避策略模块(融合雷达与摄像头):通过融合雷达与摄像头实时数据源,在线感知障碍物信息,并据此采取规避规避操作。
- 车辆动力学模型构建模块(运动行为特征研究):通过构建车辆动力学模型研究其运动行为特征。
- 动态响应能力保证模块(快速决策执行):系统动态响应能力模块重点保证了在复杂动态环境下的快速决策与执行能力。
结论
借助Simulink及其相关工具包的能力,在自动驾驶汽车的路径规划与跟随控制系统(PPF)开发与验证过程中发挥着重要作用
