无人车系统设计-使用Architecture Analysis & Design Language为你的ROS程序建模
-
date_range infosort
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. 相关文章
- Model Based Robot Development: From AADL To ROS Through Code Generation
- A use case in model-based robot development using AADL and ROS
- Flow Latency Analysis with the Architecture Analysis and Design Language
3. Case
下图是我使用 针对百度apollo画的AADL
4. 分析
5. 后续
上面的分析是基于一些已有工具来做的, 能得到的信息太少. 有空希望能做一些具体结合Architecture Analysis & Design Language
和ROS
的工具, 比如说之前 « 链路延迟计算 » 里面提到的那种链路延迟, 辅助实时优化.
当然, 只是出于研究学习的目的, 对待Safety Critical System
还是要有敬畏之心, 不要随便用ROS
. ; )