在“软件定义汽车”的浪潮下,智能驾驶系统的测试复杂度正呈指数级增长。其中,以 ROS2 为代表的中间件框架,已成为承载高级感知与决策算法的主流平台。由此,一个核心挑战摆在所有测试团队面前:如何高效、可靠、自动化地验证 ROS2 系统中的感知决策与控制算法?传统的测试方法论在面对 ROS2 异步、分布式、数据驱动的特性时显得力不从心。尤其在开环测试领域,如何对 rosbag2 格式的海量实采或仿真数据,进行大规模的回归验证,已成为制约研发效率的关键瓶颈。
ecu.test 原生集成了 ROS2 工具链,提供了一套覆盖测试全流程的解决方案,既能实时连接 ROS2 进行数据记录与回放,也能高效利用已有的 rosbag2 数据进行离线分析与自动化评价。
No.1
直接连接 ROS2 并实现数据记录回放
请参阅以下视频,了解 ecu.test 与 ROS2 的集成全流程——涵盖连接配置、自动化测试执行及数据记录与分析。
No.2 导入 rosbag 进行离线信号分析
与 .asc、.mf4 等常见的总线或模型记录文件类似,ecu.test 同样支持解析 rosbag2 数据文件并对内部信号进行分析评价。
1)rosbag 中包含 messages、yaml 等声明定义文件,因此在用于离线分析前需要先进行“打包”。ecu.test 支持 .db3 与 .mcap 两种格式的 rosbag,两者的打包方式略有不同。
对于 .db3 格式数据需要所有使用到的 messgaes 、ECU-TEST.info 和 metadata.yaml 定义声明文件,并将这四类文件按下图的结构打包在一个 .zip文件中。
需要注意,.db3 的解析依赖 msg 定义,因此必须保证 messages 文件齐全。也可以通过数据库工具(如 DB Browser)在 topics 表中检查是否有缺失的 msg。
由于 .mcap 文件中已包含 message 定义,因此不需要打包 messages 文件夹,只需保留必要的文件即可。
2)将打包好的 rosbag导入euc.test 后,在 device 层级下将需要分析的 topics 拖入 package 的 Signal recordings 空白区域。
若需要批量分析,也可在 Recording group 中添加多组使用相同 message 定义的 rosbag。仅需要将对应 rosbag 中 Recordings 层级下的 #0 拖放到 recording group 中。
3)在 Episodes and trace steps 中配置分析操作。
例如对 speedx 求微分得到加速度,判断速度是否持续大于 19.3,并将结果绘制成图,如下图所示。
编辑完成后点击 package 执行即可自动生成测试报告。
如上图所示,可快速分析速度与加速度曲线,通过红绿区域直观展示评价指标的满足情况。并且可以看到报告包含三部分数据分析,对应步骤三中添加的三组数据源。
希望这篇文章可以帮助您了解 ecu.test 与 ROS2 从实时测试到离线回归的自动化流程,如有在您使用过程中有任何疑问,请随时联系ecu-test@turing.cc。
RECRUIT
关注我们
微信号|ecu.test
邮箱|ecu-test@turing.cc

