Autoware架构模型(UML/Sys ML+EA建模) |
作者:
俎涛
(火龙果软件工程) |
Autoware架构模型(UML/Sys ML+EA建模) |
作者: 俎涛
(火龙果软件工程) |
|
1.前言
最近看了一个文档《 Autoware 架构提议》,写的是根据问题和需要对自动驾驶开源框架 Autoware 的架构进行重新设计。文章中 首先分析了 Autoware 要支持的场景,然后设计了架构的逻辑模块,最后对逻辑模块设计了软件实现。感觉 Autoware 的设计思路很清晰,但是描述比较随意。为了让 Autoware 的架构描述更加清晰完整,我采用了 UML 和 Sys ML 、基于建模工具 EA 对 AUTOWARE 的架构进行了建模,并发布到 ModelCenter ,内容如下:
|
|
欢迎访问:Autoware架构模型,下面对其中的内容进行简要介绍。 |
|
2. 用例模型
《 Autoware 架构提议》原文描述了 Autoware 支持的用例场景,以文字列表的方式列出了列出了自动驾驶相关的用例,但是缺乏用于描述用例概览的用例图, 这造成了用户难以对 Autosare 的功能有全面的理解。应该从系统之外的用户的视角采用用例图进行建模用户功能需求,所以我采用 UML/SysML 的用例图建模 Autoware 支持的自动驾驶的场景,并建模了用例之间的关系。用例图可以提高用户视角的需求描述的可读性和完整性。如下是采用 Sys ML/UML 的用例图建模的 Autoware 的用例模型: |
 |
图 . Autoware 的用例模型( Sys ML/UML 用例图) |
|
3.逻辑架构
《 Autoware 架构提议》原文对 Autoware 的逻辑架构用多页进行了详细描述,包括模块以及它们之间的数据流。但是 缺乏一个逻辑架构的整体视图,所以我采用 SysML 的模块定义图和内部模块图对 Autoware 的整体逻辑架构进行建模,如下图所示: |
 |
图 . Autoware 的逻辑架构模型( Sys ML 模块定义图和内部模块图) ) |
|
对于逻辑模块的细节可以采用分层逐步细化的方式描述,如下是取自《 Autoware 架构提议》原文的相应章节:
4.Autoware 的一级逻辑模块划分
如下是 Autoware 的一级逻辑模块划分:

可以对 一级逻辑模块 的模块进一步划分,以便进行更加详细的逻辑设计。如下是 Perception 和 Planning 的内部逻辑模块划分示例:

下面分别对各个一级模块的内部模块进行说明。
Sensing 子系统的内部模块和关系
用途 : 将传感数据转换为 ROS 消息

Map 子系统的内部模块和关系
用途 : 负责为系统提供自动驾驶车辆行驶中的静态环境信息

Localization 子系统的内部模块和关系
用途 : 整合每个传感器数据, 通过其他传感器的感知信息综合来计算当前车辆所处的位置。

Perception 子系统的内部模块和关系
用途 : 识别动态物体和交通信号灯。

Planning 子系统的内部模块和关系
作用:计算到目标位置的路径,然后生成驾驶轨迹。

Control 子系统的内部模块和关系
作用:输出控制信号以驱动车辆沿轨迹行驶。

4.软件层次框架模型
《 Autoware 架构提议》原文描述了 Autoware 的软件层次框架,如下图所示:

这样的软件层次描述因为没有和典型的软件层次架构建立概念映射,所以到底分为哪些层并没有表现出来。 根据其中的软件模块可知, Autoware 的软件分为 4 层:应用层、中间层、基础服务层、驱动层。为了让软件层次结构更容易理解,如下是使用了 UML 的包图建模 Autoware 的软件层次框架。 |
 |
图 . Autoware 的软件层次框架示意图( UML 包图和类图) |
|
5.逻辑模块的软件实现
《 Autoware 架构提议》原文对 Autoware 的各个逻辑模块的软件实现进行了逐一描述,建模了逻辑模块和软件组件的实现关系,包括软件组件以及它们之间的数据流。但是 缺乏一个软件架构的整体视图,所以我采用 UML 复合结构图和组件图对 Autoware 架构的所有的逻辑模块和对应的软件组件实现建立了一个大图,如下图所示: |
 |
图 . Autoware 的整体软件组件模型( UML 复合结构图和组件图) |
|
如下是取自《 Autoware 架构提议》原文的对应章节,从中可以了解 Autoware 的每个模块的软件组件实现。
Sensing 子系统中的模块和软件组件

Localization 子系统中的模块和软件组件

Perception 子系统中的模块和软件组件

Planning 子系统中的模块和软件组件

Control 子系统中的模块和软件组件

Vehicle Interface 子系统中的模块和软件组件

6.软件组件模型
Autoware 的软件组件比较多,应该采用组件图对系统中所有的软件组件的关系建模,如下是采用 UML 组件图建模的 Autoware 的全局软件组件模型。 |
 |
图 . Autoware 的整体软件组件模型( UML 组件图) |
|
|
|
如果希望了解Autoware 架构模型详细信息,请浏览 《 模型库:Autoware架构模型 》
|
|

|
如果您希望了解更多信息:
|
|
2975 次浏览 15 次
|