SIL下的自动驾驶PNC测试是否具有真实性

文章讨论了自动驾驶仿真平台在测试中的问题,包括地图匹配、Opendriver版本标准化、主观评估的有效性、动力学模型缺失以及测试的批量化。作者提出了SIL到VIL不同级别的仿真系统复杂性,并强调了数据处理和仿真流程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自动驾驶仿真自动化测试

吧 首先大家思考一个实际的自动驾驶仿真平台案例。

方案背景

某自动驾驶解决方案的自动驾驶仿真平台方案、该公司目前在为JL、BYD进行供应。

在实车测试的过程中、对APA测试、在上海万达停车场、将停车场的车辆刮了。

自动驾驶仿真平台框架

使用Aopllo算法模型+Docker+Rviz 搭建的自动驾驶仿真测试平台 进行对量产级的PNC功能进行测试。

疑问点:

(1)地图是否匹配?

使用的是轻量化的高精度地图 同样是Opendiver 。Aopllo对Opendiver的制作有属于自己的一套工具,但我个人对一些小公司,自己采集,使用Aopllo仿真开源平台,其地图格式是否可以完全匹配?

(2)Opendiver的版本是否标准?

Open driver有很多版本:如果在这样的一套系统下使用不知道什么版本的地图,其意义是什么?

(3)通过主观去对测试进行评估是否有可效性?

Rviz使用二维场景的可视化界面,对车辆的Pnc进行碰撞的实验。通过工程师的肉眼去观察记录问题。

(4)没有自己动力学模型与物理模型。

在没有自己的车辆动力学模型与物理传感器模型,使用参数配置。进行仿真测试。

测试场景中没有道路参考线。

(5)不能批量进行测试。

不能进行批量的场景功能测试,只能对某一场景进行几次简单的测试。

综合以上:在这样仿真下,测试的PNC的结果是否有参考价值?

这样的自动驾驶车辆、能不能上路?

1、测试执行的问题

1.1:SIL、Hil、Dil、VIL自动驾驶仿真系统相对复杂。一次的测试需要在场景仿真器(目前carla使用untiy、大部分都是untiy)动力学模型、控制模型(PNC)、被测控制器(ECU VCU)。

1.2:测试执行后的数据量庞大,分析与评估难度大。

自动驾驶仿真的系列流程通信:(prscan可以基于真值数据生成

  1. 启动Carsim
  2. 启动Prscan
  3. 从Prscan中启动simulink
  4. 在Carsim中设置主车参数
  5. 在Carsim中Send to Simulink
  6. 修改Prscan场景参数
  7. Build模型
  8. 在simulink中regenerate Prscan模型
  9. 启动仿真、记录仿真数据、停止仿真

  1. 启动Carsim

4、在Carsim中设置主车参数

5、在Carsim中Send to Simulink

2、启动Prscan

3、从Prscan中启动simulink

6、修改Prscan场景参数

7、Build模型

8、在simulink中regenerate Prscan模型

9、启动仿真、记录仿真数据、停止仿真

### PNC测试方法与工具 #### 自动驾驶PNC测试真实性验证 在自动驾驶领域,PNC(Path Navigation and Control)的功能测试可以通过基于SIL(Software-in-the-Loop)的方式实现。通过Apollo算法模型结合Docker容器化技术和Rviz可视化工具搭建的仿真测试平台,可以有效地模拟真实场景并评估量产级别的PNC功能性能[^1]。 #### 基于CANoe的网络管理报文测试 为了进一步验证PNC模块在网络通信层面的表现,可利用Vector CANoe工具发送WUP唤醒信号以及仿真的`vote=1`有效网络管理报文。通过对ECU发出的网络管理报文中`Vote`字段的监控,能够统计其发送次数并与预期的PNC行为进行对比分析,从而判断系统的可靠性和一致性[^2]。 #### Carla-Ros-Bridge-PNC开源项目的应用 对于更复杂的自动驾驶开发需求,`carla_ros_bridge_pnc`提供了一种高效的解决方案。该开源项目集成了CARLA仿真环境与ROS框架,允许开发者灵活配置路径规划和控制器参数。特别是在控制层方面,支持多种经典算法如LQR、Pure Pursuit及Stanley等,并辅以PID用于纵向速度调控;而在规划层,则实现了全局地图加载、局部避障等功能[^3]。 以下是使用Python脚本调用Carla ROS Bridge的一个简单示例: ```python import rospy from geometry_msgs.msg import PoseStamped def publish_goal(): rospy.init_node('goal_publisher', anonymous=True) pub = rospy.Publisher('/move_base_simple/goal', PoseStamped, queue_size=10) goal_pose = PoseStamped() goal_pose.header.frame_id = "map" goal_pose.pose.position.x = 5.0 goal_pose.pose.position.y = 5.0 goal_pose.pose.orientation.w = 1.0 rate = rospy.Rate(1) while not rospy.is_shutdown(): pub.publish(goal_pose) rate.sleep() if __name__ == '__main__': try: publish_goal() except rospy.ROSInterruptException: pass ``` 此代码片段展示了如何向导航堆栈发布目标位置消息,适用于测试PNC的整体闭环表现。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值