分布式系统界面说明
分布式系统界面说明¶
本页说明分布式系统的 UI 界面区域功能;分布式系统的配置流程请参考 分布式系统配置。
| ID | 项目 | 描述 |
|---|---|---|
| 1 | 全局设置模块切换 | 包括通用设置、可视化工具、系统设置、系统信息、系统配置和 Agent 列表,点击 Agent 列表可对 Agent 列表信息进行管理 |
| 2 | Agent 名称及在线情况显示 | 添加的 Agent 名称及是否在线情况 |
| 3 | Agent 信息详情展示 | 展示 Agent 的详细信息,包括 Agent uuid、Agent ip、Agent port、System、CPU 和 Memory |
| 4 | 添加 Agent 按钮 | 点击添加 Agent 按钮,弹出增加 Agent 弹框 |
| 5 | Agent 名称 | 在弹框中输入 Agent 名称,并点击创建按钮,即可新增一个 Agent |
| 6 | 新增节点按钮 | 点击此按钮,弹出新增节点弹框,包括输入节点名称、和选择节点类型 |
| 7 | 输入节点名称 | 输入节点名称 |
| 8 | 节点类型选择 | 下拉选框包括以下几项: 动力学节点、动态仿真节点、API 服务节点、SimOneDriver 控制器节点、目标级传感器节点、物理级传感器节点(GPU)、Web 可视化节点、可视化节点(GPU)、判定节点、阿波罗控制接入节点、车联网功能节点、VR 节点、模拟控制器节点、用户自定义接入节点。 |
| 9 | 删除节点 | 点击此按钮弹出删除节点弹框 |
| 10 | 删除 Agent 弹框 | 点击确定按钮,即可删除选中的 Agent |
| 11 | 节点信息列表 | 包括节点 ID、节点名称 |
| 12 | 更多操作选项 | 点击此按钮,弹出两个按钮包括编辑和删除两个按钮 |
| 13 | 编辑按钮 | 点击编辑按钮,弹出编辑按钮弹框 |
| 14 | 节点名称 | 可在此修改节点名称 |
| 15 | 节点类型选择 | 点击此可弹出下拉选框,修改节点类型 |
| 16 | 启动命令行 | 可视化 GPU 节点和物理级传感器节点启动 UE 时的命令行参数(设置窗口位置、分辨率、显卡等),详见 传感器分布式节点 — 编辑节点可视化窗口启动参数。 |
| 17 | 删除节点按钮 | 点击删除节点按钮弹出删除节点弹框 |
| 18 | 删除节点确定 | 点击删除节点弹框中的确定按钮即可删除节点 |
Agent Launcher¶
| ID | 项目 | 描述 |
|---|---|---|
| 1 | Agent 授权状态 | 包括已授权和未授权 |
| 2 | Agent ID | 此 Agent 的授权码 |
| 3 | Public IP | Agent 绑定的网卡 ip |
| 4 | WebIP 地址和端口号 | 分布式集群中 Master 主机的 IP 地址 |
| 5 | 服务器地址 | 系统部署的服务器对外的访问地址 |
| 6 | 服务运行状态 | 绿色代表服务运行正常,红色代表服务运行异常 |
| 7 | 服务日志 | 点击此按钮跳转到 Foundation 的 Log 日志文件夹 |
| 8 | 停止按钮 | 点击此按钮,将切换 Agent 的在线和离线状态 |
| 9 | 启动按钮 | 当重新点击此按钮时,可将离线的 Agent 切换至在线状态 |
| 10 | 启动状态展示 | 包括两种状态展示 success to start 和 failed to start |
分布式系统¶
1. 架构图¶
2. 名词解释¶
| 模块名称 | 含义 |
|---|---|
| Master | 核心 Master 节点,负责管理各个 Agent,负责 Agent 的增删改查 |
| Agent | 分布式节点的代理节点 |
| Work | 内部抽象的仿真工作节点,比如 Nodetimer、BridgeIO、VehicleDynamic 等 |
3. 架构介绍¶
分布式架构采用主从模式,Master 作为核心节点,管理各个 Agent,每台机器(或者每个 docker)只能有一个 Agent,所以每增加一个 Agent 相当于增加一台机器的资源;
-
Agent 负责 Work 节点的增删改查、启动停止,每个 Agent 可以管理若干个不同的 Work 节点,可以由用户选择在这个 Agent 下使用哪些 Work 节点,非常灵活;
-
Work 节点是具体的工作节点,负责具体的业务,比如 Nodetimer 是时间服务节点,BridgeIO 是 API 数据收发节点,VehicleDynamic 是动力学节点等;
4. 配置节点和代理的原因¶
(1)资源扩展:一台机器的资源是有限的,采用分布式架构,可横向扩充资源;
(2)用户可配置:可以根据用户自己的需求,选择添加几个 Agent,在每个 Agent 下使用哪些 Work 节点都可以由用户自主选择,灵活性强;
(3)跨平台:无论是 Windows 还是 Linux 系统,都可以轻松的接入分布式架构,一个 docker 也可以作为一个 Agent 接入,兼容不同的平台;
5. 具体用途¶
(1)多车互动:每个 Agent 配置一台主车,每台主车之间就可以进行交互;
(2)高精度渲染:一台机器的 GPU 性能有限,无法支持多个摄像头、UE 的高精度渲染,可将 UE、摄像头分布到各个 Agent 下,充分利用每一台机器的 GPU 性能,实现多摄像头、多 UE 的高精渲染;
6. 节点或代理如何选择¶
在 Agent 列表管理下,可以对不同的 Agent(代理)进行增删改查,每台机器(或者 docker)是一个 Agent,每个 Agent 有唯一的 Agent uuid,若 Agent 连接成功,会显示 Agent 的 ip 地址;
在每个 Agent 下,可以选择的节点有以上几种类型,一般而言,选择什么类型的节点取决于这个 Agent 的用途。
示例
比如这个 Agent 要进行高精度渲染,那么需要在这个 Agent 下添加可视化节点(GPU)和物理级传感器节点(GPU),一种类型可以根据需要添加一个或者多个,另外在这个 Agent 下不需要用到的节点可以删除;
常见的节点类型选择参考如下:
| 使用场景 | 建议添加的节点类型 |
|---|---|
| 算法接入(C++/Python API) | API 服务节点 |
| Apollo 算法对接 | 阿波罗控制接入节点 |
| 自研算法对接 | 用户自定义接入节点 |
| 物理级传感器(高精渲染,如摄像头、激光雷达点云数据) | 物理级传感器节点(GPU)、可视化节点(GPU) |
| 目标级传感器(真值数据) | 目标级传感器节点 |
| 动力学仿真 | 动力学节点 |
| 场景评价判定 | 判定节点 |
| V2X 车联网 | 车联网功能节点 |
7. 节点配置不成功的报错及解决方案¶
No work node¶
一般缺失某个节点的原因是实际用到了某个节点,但并没有添加;
比如用到了物理级传感器,但是在节点配置里并没有添加,就会出现这个错误;
解决方案是在该 Agent 的节点配置里添加物理级传感器节点(GPU),并重启 SimOne 服务(点击 SimOneLauncher 系统托盘中的 停止 再 启动);





