本发明涉及自动驾驶仿真测试方法,尤其涉及一种基于多平台联合的全流程自动驾驶方法。
背景技术:
1、在过去几十年中,随着汽车工业和人工智能的快速发展,自动驾驶技术的研究和实践取得了巨大的进展。一个现代的全流程自动驾驶系统,通常以模块化方式分为感知模块、定位模块、规划模块和控制模块,每个模块单独设计以提供特定的功能,并保证可以方便地替换和迁移。在全流程自动驾驶系统实际使用前,需要对每个模块以及整个系统进行完整、充分的评估测试,保证自动驾驶系统的安全性和可靠性。
2、采用现实道路测试算法不仅面临高昂的成本和冗长的耗时,同时也无法安全地再现极端交通条件和危险场景的复杂问题。利用自动驾驶仿真系统,可以在可控的环境中能够模拟各类复杂的驾驶场景,进而更全面地评估自动驾驶系统的性能,显著提升自动驾驶算法的测试效率。因此,仿真系统在当前自动驾驶算法开发中至关重要。
3、目前,大多数开源的自动驾驶仿真平台各有所长,但单一的自动驾驶平台往往难以满足全流程自动驾驶仿真的要求。以apollo、autoware为代表的自动驾驶仿真平台提供了全流程的算法模块,包含感知、定位、规划、控制等模块,但仿真环境基于虚拟场景,与现实世界差异较大。
4、目前的自动驾驶仿真通常联合多个平台从而结合不同平台的优势。现有的一些多平台联合算法种类各异,根据仿真需求的不同,包含联合carsim、simulink和prescan的车辆动力学仿真、联合carla、ros和scenariorunner的场景化仿真、联合carsim和vtd的车辆交通流仿真等。而且目前算法通常是针对自动驾驶算法中特定模块仿真,在仿真中难以实现全流程自动驾驶各个模块的测试和评估,不能充分发挥多平台联合仿真的优势。以联合carsim、simulink和prescan的车辆动力学仿真为例,carsim用于提供车辆动力学模型,prescan用于提供传感器模型与仿真场景,simulink用于提供仿真控制系统,该多平台联合算法可以较好地验证自动驾驶车辆的决策规划模块,但由于缺少较为真实的感知数据,难以测试自动驾驶车辆的感知模块。
5、此外,由于现实环境的复杂性,自动驾驶仿真系统需要达到“虚实相映”的要求,能够从仿真环境快速部署到现实环境,并根据现实环境方便地在仿真中进行修改验证。现有的多平台联合系统往往因为与现实差异较大导致部署困难;或因为对仿真场景修改较为繁琐,难以完成不同场景的快速验证。因此,亟需一种既能够实现对全流程自动驾驶各个模块的测试和评估,又能满足“虚实相映”要求的自动驾驶仿真方法。
技术实现思路
1、针对上述问题,本发明提出了一种基于多平台联合的全流程自动驾驶方法,基于carla、ros2和sumo多个平台搭建“虚实相映”的自动驾驶仿真场景,模块化集成全流程自动驾驶算法,提供丰富的全流程自动驾驶算法测试和评估功能,能够实现对全流程自动驾驶各个模块的测试和评估,解决现有基于多平台联合的自动驾驶仿真方法难以仿真全流程、部署修改困难的问题。本发明提供的一种基于多平台联合的全流程自动驾驶仿真方法,其特征在于,包括以下步骤:
2、步骤s1:在自动驾驶模拟器carla仿真平台中导入包括虚拟车辆和地图模型;
3、步骤s2:在carla-ros-bridge中配置虚拟车辆对应的传感器套件,生成待使用自动驾驶算法的自动驾驶车辆,发布自动驾驶车辆信息和传感器数据至ros2话题;
4、步骤s3:基于sumo搭建交通流案例,所述交通流案例包括车辆流、行人流,每个障碍车辆和行人能够单独决策和行动,在carla中自动生成障碍车辆和行人;优选的,障碍车辆和行人位置实时更新,利用sumo-ros-bridge生成交通流感知真值数据,便于后面感知模块的测试和评估;
5、步骤s4:基于ros2仿真平台编写模块化的全流程自动驾驶算法,创建ros2评估节点,编写评估节点的评价指标,开启ros2的可视化界面rviz2进行数据的可视化与指令交互;
6、步骤s5:在rviz2上设置目标点,启动所述全流程自动驾驶算法,订阅所述自动驾驶车辆信息和传感器数据,规划自动驾驶车辆轨迹,并进行轨迹跟踪,在carla中更新自动驾驶车辆的位姿和传感器数据,直至满足预设停止条件;计算评价指标,基于所述评价指标评价所述全流程自动驾驶算法中模块的表现。
7、作为优选的,所述全流程自动驾驶算法的模块包括感知模块、定位模块、规划模块、控制模块;
8、所述感知模块用于订阅自动驾驶车辆的传感器数据,进行目标追踪,生成所述规划模块所需要的感知数据;
9、所述定位模块订阅自动驾驶车辆信息,包括自动驾驶车辆位置信息和车辆位姿;
10、所述规划模块基于目标点、所述感知数据和自动驾驶车辆信息规划自动驾驶车辆轨迹;
11、所述控制模块进行轨迹跟踪。
12、作为优选的,所述全流程自动驾驶算法的感知模块具有可选择性开启功能;
13、所述感知模块选择开启时,所述规划模块所需要的感知数据由所述感知模块生成;
14、所述感知模块选择关闭时,使用sumo-ros-bridge转发交通流感知真值数据作为所述规划模块所需要的感知数据。
15、作为优选的,所述步骤s3中包括以下步骤:
16、步骤s3.1:搭建sumo交通流案例,对sumo中每个交通参与者编写单独的决策和行动;
17、步骤s3.2:运行sumo交通流实例,通过carla客户端的pythonapi与carla同步并在carla中生成sumo交通流对应的车辆和行人,实现sumo交通流的实时更新;
18、步骤s3.3:将sumo交通流信息实时转化为所述规划模块所需要的感知数据;转化方法由是否启用所述感知模块确定,在所述感知模块启用时,通过目标追踪算法获取感知数据;在感知模块关闭时,使用sumo-ros-bridge转发交通流的感知真值数据作为所述规划模块所需要的感知数据。
19、作为优选的,所述步骤s5包括以下内容:
20、步骤s5.1:在rviz2上设置目标点,所述规划模块根据当前的自动驾驶车辆信息和感知数据规划全局路径和局部轨迹;
21、步骤s5.2:控制模块进行轨迹跟踪,生成控制信号并转发至carla-ros-bridge,在carla中更新自动驾驶车辆的车辆位姿和传感器数据,使自动驾驶车辆朝目标点行驶;
22、步骤s5.3:在自动驾驶车辆到达目标点后,检查自动驾驶车辆是否满足预设停止条件,在满足条件的情况下视为到达目标点,该场景测试结束。
23、作为优选的,所述评价指标包括:
24、用于评价所述感知模块的感知精度指标;
25、用于评价定位模块的定位误差指标;
26、用于评价规划模块的轨迹平滑度指标、轨迹碰撞指标;
27、用于评价控制模块的控制误差指标;
28、用于评价各模块运行效率的运行效率指标。
29、作为优选的,可以配置的传感器种类包括rgb相机、深度相机、语义相机激光雷达、语义雷达、imu惯性测量单元、gnss卫星导航系统。
30、作为优选的,所述目标点为多个,设置目标点的顺序,最后一个点作为最终目标点,其余点作为顺序途经点。
31、作为优选的,自动驾驶车辆的测试场景具有多场景自主循环切换功能,“co-simulation”模式开启时,编写所需切换场景,自动生成待使用自动驾驶算法的自动驾驶车辆,车辆自动定位并自动设置目标点,sumo交通流自动生成,当自动驾驶车辆满足停止条件后,该场景视为完成,自动切换至下一个场景进行测试;循环模式开启时,自动循环指定场景的测试。
32、作为优选的,所述虚拟车辆和地图模型根据真实物理车辆和真实地图建模;
33、所述传感器套件根据真实部署在物理车辆上的传感器配置;
34、所述交通流案例为真实交通流;
35、所述自动驾驶算法为真实部署在物理车辆上的自动驾驶算法;
36、所述自动驾驶算法根据真实情况进行修改与验证。
37、本发明的一种基于多平台联合的全流程自动驾驶仿真方法,具有以下有益效果:
38、基于carla、ros2和sumo多个平台搭建“虚实相映”的自动驾驶仿真场景,模块化集成全流程自动驾驶算法,解决现有基于多平台联合的自动驾驶仿真方法难以仿真全流程、部署修改困难的问题。
39、基于carla仿真平台和carla-ros-bridge实现carla和ros2之间的双向通讯,提供快速修改仿真环境的方法,实现仿真和现实的“虚实相映”。
40、基于ros2仿真平台编写、改进模块化的全流程自动驾驶算法,提供丰富的全流程自动驾驶算法测试和评估功能,为自动驾驶车辆的全流程仿真测试提供便利;基于ros2的模块化节点编写流程有效解决了部署修改困难的问题。
41、基于sumo仿真平台进行微观层面的交通流仿真,提出一套sumo交通流编写模板,改进carla-sumo之间的联合仿真方式,对复杂场景实现细致仿真;提出sumo-ros-bridge用于转发sumo交通流真值,便于感知模块的测试和评估。
42、基于多平台联合实现测试场景自主循环切换,便于复杂场景的可重复验证,充分发挥多平台联合仿真的优势,极大提升自动驾驶算法的测试和评估效率。