文章目录
- 前言
- 一、SCP与VTD的通讯方式
-
-
- 1、GUI界面发送SCP命令
- 2、Scenario发送SCP命令
- 3、外部TCP发送SCP命令
-
- 二、SCP命令格式
-
-
- 1、VTD SCP DOC
- 2、SCP DOC解析
- 3、SCP命令XML格式
-
- 三、常用SCP分类
-
-
- 1、ImageGenerator
- 2、TaskControl
- 3、Traffic
- 4、ModuleManager
- 5、Information
- 6、Other
-
- 四、常用SCP命令
前言
VTD的SCP(Simulation Control Protocol )用于非周期性,即事件性信息交互。通过发送SCP命令给到TaskControl,TaskControl根据命令的内容分发到过程中,从而实现对VTD所以SCP是VTD自动化的基础。
一、SCP与VTD的通讯方式
1、GUI界面发送SCP命令
1、VTD在软件主页的底部SCP发送和接收的命令栏将显示所有发送和接收的命令栏SCP命令。
2、Scenario发送SCP命令
我们可以在那里Scenario界面添加车辆,通过双击车辆进入properties界面,然后在Actions界面中的SCP中添加SCP命令;
3、外部TCP发送SCP命令
1)创建48179的端口号TCP连接 2)根据SCP组包的格式如下图所示
<Player><Driver name="Ego" sendPedals="true" /></Player>
AC9C 0100 7365 6E64 6572 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7265 6365 6976 6572 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0039 0000 003C 506C 6179 6572 206E 616D 653D 2245 676F 223E 3C44 7269 7665 7220 2073 656E 6450 6564 616C 733D 2274 7275 6522 202F 3E3C 2F50 6C61 7965 723E
二、SCP命令格式
1、VTD SCP DOC
2、SCP DOC解析
标签分析
3、SCP命令XML格式
///当标签数量有三个时,写法 形式一: <主标签> <一级标签 一级标签成员 = "常量/枚举值"> <二级标签 二级标签成员 = "常量/枚举值"> </二级标签> </一级标签> </主标签>
形式二:
<主标签>
<一级标签 一级标签成员 = "常量/枚举值">
<二级标签 二级标签成员 = "常量/枚举值" />
</一级标签>
</主标签>
//标签数量有二个的时候的写法
形式一:
<主标签>
<一级标签 一级标签成员="常量/枚举值" >
</一级标签>
</主标签>
形式二:
<主标签>
<一级标签 一级标签成员="常量/枚举值" />
</主标签>
注意:
//标签数量有三个的时候的写法
形式一:
<Set>
<Trigger owner="Ego">
<ExternalTrigger id="1">
</ExternalTrigger>
</Trigger>
</Set>
形式二:
<Set>
<Trigger owner="Ego">
<ExternalTrigger id="1" />
</Trigger>
</Set>
//标签数量有二个的时候的写法
形式一:
<Traffic>
<ActionSpeedChange actor="Ego" force="true" rate="1" target="0.003" >
</ActionSpeedChange>
</Traffic>
形式二:
<Traffic>
<ActionSpeedChange actor="Ego" force="true" rate="1" target="0.003" />
</Traffic>
三、常用SCP分类
介绍一些常用的标签,在SCP DOC里面可以找到。
1、ImageGenerator
自然环境设置:太阳 GUI
相机设置:内参数 FOV 等 display.xml
符号设置:2D/3D 问题或图形 SymbolStd.xml
显示设置 GUI
2D 仪表盘
IG 设置:控制 switch,后处理的变量和材质
光源设置:车辆大灯 LightSrcStd.xml
鸟瞰设置
2、TaskControl
录制视频
录制数据
仿真控制:启动,停止,初始化,配置等
回放数据
TC 设置:显示仿真时间和车速,vtdParamServerAutoLoad.stp.xml
3、Traffic
交通设置:理解逻辑之后进行设置,详细看 Traffic 部分
交通等设置:直接设置 state phase
车来/行人设置:车辆指示灯
本车命令:即 SE 中可以给出的行为
路径设置
对一个实体进行设置(包括 object):位置
4、ModuleManager
传感器插件动力学插件 ,下述分类主要讲述ModuleManager对应子标签的作用 管理 Plugin
传感器设置 moduleManager.xml
动力学设置 moduleManager.xml
5、Information
询问一个实体的信息:交通参与者、物体、相机、窗口
回复一个实体的信息,对应 Query
通用仿真接口设置
RDB 设置
SCP 设置
用于自定义参数
信息
构造触点
6、Other
和 veDYNA 联合使用
声音
车在环设置
多驾驶模拟器联合
轨道交通
四、常用SCP命令
<Traffic><ActionSpeedChange actor="Ego" force="true" rate="1" target="8" /></Traffic>
<Traffic><ActionLaneChange actor="Ego" direction="1" force="true" time="3" /></Traffic>
<Traffic><ActionLaneChange actor="Ego" direction="-1" force="true" time="3" /></Traffic>
<Query entity="player" name="Ego"><PosInertial /></Query>
<Set entity="player" name="Ego"><PosInertial x="1850" y="733" hDeg="110.0"/></Set>
<SimCtrl><Stop /></SimCtrl>
<SimCtrl><Start mode="opration" /></SimCtrl>
<SimCtrl><Step size="1"/></SimCtrl>
<Symbol name="bbox" ><BoundingBox player="Ego" /></Symbol>
<TrafficLight id="221"><Mask value="0x01000000"/></TrafficLight>
//Traffic light for the vehicles: 0x10000000 = red, 0x01000000 = yellow, 0x00100000 = green. Traffic light for the pedestrians: 0x10000000 = red, 0x01000000 = green.
<Player name="Ego">
<Light type="indicator right" state="on"/>
<Light type="indicator left" state="off"/>
</Player>
<Path name="pathshape" type="polyline">
<Waypoint><PosInertial player="Ego" x="6043.431" y="-2741.197" z="0"/></Waypoint>
<Waypoint><PosInertial player="Ego" x="6046.624" y="-2697.614" z="0"/></Waypoint>
<Waypoint><PosInertial player="Ego" x="6039.388" y="-2666.049" z="0"/></Waypoint>
</Path>
<Traffic>
<ActionNominalTrajectory waypointSequence="ascending" startS="0" radius="25" force="true" targetS="100" delayTime="0.0" command="add" />
</Traffic>
1. Configure the video output:
<Video> <Output path="/tmp/" name="myVideo" /> </Video>
2. Start the live recording
<Video> <Start live="true"/> </Video>
3. Stop the live recording
<Video> <Stop/> </Video>