menu

无人车系统设计-使用Architecture Analysis & Design Language为你的ROS程序建模

1. 背景

前几天看到了一个bosch的人做的关于ROS的分享.
ROSCon 2017: Determinism in ROS.

里面很有意思的用了图形去描述pipeline.

这给我了一点想法:

  • 如果可以把软件程序逻辑Modeling出来, 对做确定性/延时分析会很有帮助.

因此搜索了一些相关的Model Based Engineering资料, 找到了Architecture Analysis & Design Language这个工具.

2. Architecture Analysis & Design Language

安全关键系统(Safety Critical System)的模型驱动开发过程中,怎样提高模型对实时嵌入式系统非功能需求的表达能力,怎样在早期设计过程中对系统进行分析与验证,怎样正确的生成代码一直是研究热点。

体系结构分析与设计语言AADL是在这种背景下产生的,能够描述ERTS的非功能属性,支持静态、动态结构的协同建模,支持软件、硬件的协同建模,并且可以针对特定领域进行扩展。

AADL可以用于建模和分析正在使用中的系统,可以设计和集成系统。AADL可以用于部分定义模块的分析,也可以用于从源码中提取出来的完整系统的分析。

AADL支持对性能关键系统质量(例如性能、可调度性和稳定性)的早期预测和分析。例如线程构件的属性中有周期性、非周期性、背景和分散事件的选项进行预声明,以此能够进行分析。

科普:

2.1. 教程

链接是关于AADL教程, 有兴趣了解的话可以点击.
具体这里就不再复制粘贴, 本文主要关注如何使用.

2.2. 工具

看了一圈, 我选择的是下面两种工具

2.3. 相关文章

3. Case

下图是我使用 针对百度apollo画的AADL

4. 分析

5. 后续

上面的分析是基于一些已有工具来做的, 能得到的信息太少. 有空希望能做一些具体结合Architecture Analysis & Design LanguageROS的工具, 比如说之前 « 链路延迟计算 » 里面提到的那种链路延迟, 辅助实时优化.

当然, 只是出于研究学习的目的, 对待Safety Critical System还是要有敬畏之心, 不要随便用ROS. ; )