分布式系统说明

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)、Web可视化节点、可视化节点(GPU)、判定节点、阿波罗控制接入节点、车联网功能节点、VR节点、模拟控制器节点、用户自定义接入节点 |
9 |
删除节点 |
点击此按钮弹出删除节点弹框 |
10 |
删除Agent弹框 |
点击确定按钮,即可删除选中的Agent |
11 |
节点信息列表 |
包括节点ID、节点名称 |
12 |
更多操作选项 |
点击此按钮,弹出两个按钮包括编辑和删除两个按钮 |
13 |
编辑按钮 |
点击编辑按钮,弹出编辑按钮弹框 |
14 |
节点名称 |
可在此修改节点名称 |
15 |
节点类型选择 |
点击此可弹出下拉选框,修改节点类型 |
16 |
启动命令行 |
可视化GPU节点,物理级传感器节点会用,启动UE的时候可以设置位置,窗口分辨率,所用显卡等等可输入的样式包括:-windowed -resX=640 -resY=480 WinX=1280 WinY=540 -GraphicsAdapter=0-windowed : 这里还有一种选项是 -fullscreen , 决定是窗口化显示还是在当前屏幕全屏;-resX=%d -resY=%d : 填该节点的可视化窗口占用的屏幕像素大小(注意对于摄像头传感器来说,这个分辨率并非仿真摄像头实际渲染输出的分辨率,只是可视化时的显示分辨率)WinX=%d WinY=%d :填该节点的可视化窗口的起始位置,即窗口左上角的屏幕像素坐标;-GraphicsAdapter=%d :将该节点绑定到对应显卡,填0,1,2……分别意为将当前节点绑定至第1,2,3……张显卡来渲染,多显卡同时仿真多路传感器时该参数很重要 |
17 |
删除节点按钮 |
点击删除节点按钮弹出删除节点弹框 |
18 |
删除节点确定 |
点击删除节点弹框中的确定按钮即可删除节点 |
备注
以下内容讲述如何配置可视化 GPU 节点的参数
在启动命令行时输入对应的参数,启动UE的时候可以设置位置,窗口分辨率,所用显卡等等。
可输入的样式包括:-windowed -resX=640 -resY=480 WinX=1280 WinY=540 -GraphicsAdapter=0;
-
-windowed : 这里还有一种选项是 -fullscreen , 决定是窗口化显示还是在当前屏幕全屏;
-
-resX=%d -resY=%d : 填该节点的可视化窗口占用的屏幕像素大小(注意对于摄像头传感器来说,这个分辨率并非仿真摄像头实际渲染输出的分辨率,只是可视化时的显示分辨率)
-
WinX=%d WinY=%d :填该节点的可视化窗口的起始位置,即窗口左上角的屏幕像素坐标;
-
-GraphicsAdapter=%d :将该节点绑定到对应显卡,填0,1,2……分别意为将当前节点绑定至第1,2,3……张显卡来渲染,多显卡同时仿真多路传感器时该参数很重要
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. 配置节点和代理的原因
-
资源扩展:一台机器的资源是有限的,采用分布式架构,可横向扩充资源;
-
用户可配置:可以根据用户自己的需求,选择添加几个 Agent,在每个 Agent 下使用哪些 Work 节点都可以由用户自主选择,灵活性强;
-
跨平台:无论是 Windows 还是 Linux 系统,都可以轻松的接入分布式架构,一个 docker 也可以作为一个 Agent 接入,兼容不同的平台;
5. 具体用途
-
多车互动:每个 Agent 配置一台主车,每台主车之间就可以进行交互;
-
高精度渲染:一台机器的 GPU 性能有限,无法支持多个摄像头、UE 的高精度渲染,可将 UE、摄像头分布到各个 Agent 下,充分利用每一台机器的 GPU 性能,实现多摄像头、多 UE 的高精渲染;
6. 节点或代理如何选择
在 Agent 列表管理下,可以对不同的 Agent(代理)进行增删改查,每台机器(或者 docker)是一个 Agent,每个 Agent 有唯一的 Agent uuid,若 Agent 连接成功,会显示 Agent 的 ip 地址;

在每个 Agent 下,可以选择的节点有以上几种类型,一般而言,选择什么类型的节点取决于这个 Agent 的用途。
比如这个 Agent 要进行高精度渲染,那么需要在这个 Agent 下添加可视化节点(GPU)和物理级传感器节点(GPU),一种类型可以根据需要添加一个或者多个,另外在这个 Agent 下不需要用到的节点可以删除;

7. 分布式系统配置
分布式系统配置分为主控配置和从机配置,主控和从机都可以是 Windows 或者是 Linux 系统,在整个分布式架构中,只能有一台主控,从机不限;
7.1 Windows 主控配置
-
在系统设置里将 IP 地址改为本机实际 IP 地址,点击保存;

-
右下角托盘,打开 Agent 配置,将 Web 地址改为本机实际 IP 地址,然后点击停止、启动;

-
主控 Agent ip 变成本机实际 IP 地址,修改成功;

-
点击添加 Agent,添加从机,此时会显示已添加的 Agent1 和 Agent2(名称自定义),每个 Agent 会有专属的 Agent uuid,记住这个 id;

7.2 Windows 从机配置
-
安装时,选择分布式-Agent,点击下一步;

-
将 AgentID 改成上面记住的 Agent uuid,WebIP 改成主控的 IP 地址,点击立即安装;

-
安装完成,如果在安装的时候忘记修改 AgentID 和 WebIP 或者修改错误,也可以在右下角托盘的 Agent 配置里再次修改 AgentID 和 Web 地址,然后点击停止、启动;

-
打开主控的 Agent 列表管理,可以看到 uuid 为 20001 的 Agent1 连接成功(显示绿色),并显示此从机的 Agent ip 和操作系统 Windows;

7.3 Linux 主控配置
如果要将 Linux 作为主控的话,基本步骤与 Windows 主控配置差不多,因为 Linux 没有托盘,所以在第二步上有所不同。
-
进入 simone docker;
-
在 /Simone/Common/Foundation 目录下,编辑 Agent.cfg 文件;

-
将 webip 改成主控的 IP 地址,即本机 Linux 实际的 IP 地址,保存退出,然后重启 simone;

-
其它步骤与 Windows 主控配置基本一致;
7.4 Linux 从机配置
Linux 系统下,simone 是在 docker 里,所以要进入到 docker 里进行修改(linux 安装 simone 不再赘述);
-
进入 simone docker 命令:sudo docker exec -it simone bash
-
在 /Simone/Common/Foundation 目录下,编辑 Agent.cfg 文件;

-
将 authcode 改成主控 Agent 列表新建的 Agent uuid,将 webip 改成主控的实际 IP 地址,保存退出;

-
在 /home/unreal/.simone 目录下,将 SimOneOS.conf 文件里的内容清空,然后退出 docker,并重启 simone;

-
打开主控的 Agent 列表管理,可以看到 uuid 为 20002 的 Agent2 连接成功(显示绿色),并显示此从机的 Agent ip 和操作系统 Linux;

8. 节点配置不成功的报错及解决方案
No work node

一般缺失某个节点的原因是实际用到了某个节点,但并没有添加;
比如用到了物理级传感器,但是在节点配置里并没有添加,就会出现这个错误;
解决方案是在某个 Agent 的节点配置里添加 GPU,并重启 simone;