目录
目录
Autoware(Architecture Proposal)
Autoware(Architecture Proposal)
由Tier IV创建的新Autoware架构可行性研究方案的分支。
架构概览
介绍
目前由于Autoware.AI缺乏具体的架构设计和大量技术不完善,每个模块之间的紧密耦合以及每个模块的职责不明确,很难再继续深入研究,之前是用过Autoware.AI,版本迭代更新,仓库里面老代码沉积在那里,有的其实已经被舍弃,去修改的时候看代码非常吃力,有很多的功能甚至改着出现了bug需要花很多精力去踩坑,每个模块之间感觉是各写各的,比如同一个的ros的话题发布,到了另一个包接收的时候订阅名字却不一样。该Architecture Proposal的目的是定义一个分层架构,为阐明每个模块的作用并简化接口。通过这样做:
- Autoware 的内部处理变得更加透明
- 由于模块之间的相互依赖减少,协作开发变得更容易
- 用户可以通过简单地包装他们的软件以适应 Autoware 的界面,轻松地用他们自己的软件组件替换现有模块(例如本地化)
请注意,此架构设计的最初重点仅是驱动能力,因此以下功能留作未来工作:
- 故障安全
- 人机界面
- 实时处理
- 冗余系统
- 状态监测系统
用例
在设计架构时,选择了最后一英里旅行的用例。例如:
描述:往返于同一城市的杂货店
参与者:用户,安装了 Autoware 的车辆(因此称为“Autoware”)
假设:
- 环境是小于1km^2的市区或郊区。
- 天气状况良好
- 提供准确的环境高清地图
基本流程:
- 用户:在手机上启动浏览器并访问 Autoware Web 应用程序。按“召唤”,应用程序将用户的 GPS 位置发送到 Autoware
- Autoware:规划到用户所在位置的路线,并显示在用户的手机上
- 用户:确认路线并按下“Engage”
- Autoware:开始自动驾驶到请求的位置,并在到达时靠边停车
- 用户:进入车辆并按“回家”
- Autoware:规划到用户所在位置的路线
- 用户:确认路线并按下“Engage”
- Autoware:自动驾驶到用户家中
要求
为了实现这个最后一英里的用例,Autoware 设置了以下功能要求:
- Autoware 可以在上述环境类型中规划一条到达指定目标的路线。
- Autoware 可以在不违反任何交通规则的情况下沿着计划的路线行驶。
- (很高兴拥有)Autoware 提供舒适的乘坐体验,加速平稳且冲击有限。
由于 Autoware 是开源的并且旨在供世界各地的人们使用/开发,因此我们还为架构设置了一些非功能性要求:
- 架构可以扩展以使用新算法,而无需更改接口
- 架构可以扩展以遵循不同国家的交通规则
- 必须明确定义模块的角色和接口
高层架构设计
效果如下: