1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 自动驾驶仿真:VTD的SCP命令详解

自动驾驶仿真:VTD的SCP命令详解

时间:2019-10-24 13:54:53

相关推荐

自动驾驶仿真:VTD的SCP命令详解

文章目录

前言一、SCP与VTD的通讯方式1、GUI界面发送SCP命令2、Scenario发送SCP命令3、外部TCP发送SCP命令二、SCP命令格式1、VTD SCP DOC2、SCP DOC解析3、SCP命令XML格式三、常用SCP分类1、ImageGenerator2、TaskControl3、Traffic4、ModuleManager5、Information6、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命令

1、我们可以在Scenario界面添加车辆,通过双击车辆进入properties界面,然后在Actions界面中的SCP中添加SCP命令;

3、外部TCP发送SCP命令

1)创建端口号为48179的TCP连接

2)根据SCP的格式进行组包,如下图所示

假设发送的SCP命令为:

<Player><Driver name="Ego" sendPedals="true" /></Player>

则需要通过TCP发送给VTD的数据如下:

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解析

1、结构解析

2、主标签解析

3、子级标签解析

3、SCP命令XML格式

1、格式解析

//标签数量有三个的时候的写法形式一:<主标签><一级标签 一级标签成员 = "常量/枚举值"><二级标签 二级标签成员 = "常量/枚举值"></二级标签></一级标签></主标签>形式二:<主标签><一级标签 一级标签成员 = "常量/枚举值"><二级标签 二级标签成员 = "常量/枚举值" /></一级标签></主标签>//标签数量有二个的时候的写法形式一:<主标签><一级标签 一级标签成员="常量/枚举值" ></一级标签></主标签>形式二:<主标签><一级标签 一级标签成员="常量/枚举值" /></主标签>

注意:

2、格式举例

//标签数量有三个的时候的写法形式一:<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

IG 相关的部分,需要可视化部分,下述分类主要讲述ImageGenerator对应子标签的作用

Environment

自然环境设置:太阳 GUI

Camera

相机设置:内参数 FOV 等 display.xml

Symbol

符号设置:2D/3D 问题或图形 SymbolStd.xml

Display

显示设置 GUI

Instrument

2D 仪表盘

ImageGenerator

IG 设置:控制 switch,后处理的变量和材质

LightSource

光源设置:车辆大灯 LightSrcStd.xml

Observer

鸟瞰设置

2、TaskControl

整个仿真控制相关的部分,下述分类主要讲述TaskControl对应子标签的作用

Video

录制视频

Record

录制数据

SimCtrl

仿真控制:启动,停止,初始化,配置等

Replay

回放数据

TaskControl

TC 设置:显示仿真时间和车速,vtdParamServerAutoLoad.stp.xml

3、Traffic

交通、驾驶员、交通参与者等信息的设置,下述分类主要讲述Traffic对应子标签的作用

Traffic

交通设置:理解逻辑之后进行设置,详细看 Traffic 部分

TrafficLight

交通等设置:直接设置 state phase

Player

车来/行人设置:车辆指示灯

EgoCtrl

本车命令:即 SE 中可以给出的行为

Path

路径设置

Set

对一个实体进行设置(包括 object):位置

4、ModuleManager

传感器插件动力学插件 ,下述分类主要讲述ModuleManager对应子标签的作用

Plugin

管理 Plugin

Sensor

传感器设置 moduleManager.xml

DynamicsPlugin

动力学设置 moduleManager.xml

5、Information

查寻和配置 ,下述分类主要讲述Information对应子标签的作用

Query

询问一个实体的信息:交通参与者、物体、相机、窗口

Relpy

回复一个实体的信息,对应 Query

GSIConfig

通用仿真接口设置

RDB

RDB 设置

SCP

SCP 设置

Parameter

用于自定义参数

Info

信息

ContactPoint

构造触点

6、Other

Dynamics

和 veDYNA 联合使用

Sound

声音

VIL

车在环设置

Team

多驾驶模拟器联合

Rail

轨道交通

四、常用SCP命令

车速控制:以1m/s²的加速度到8m/s的速度

<Traffic><ActionSpeedChange actor="Ego" force="true" rate="1" target="8" /></Traffic>

变道控制:3s完成左变道控制

<Traffic><ActionLaneChange actor="Ego" direction="1" force="true" time="3" /></Traffic>

变道控制:3s完成右变道控制

<Traffic><ActionLaneChange actor="Ego" direction="-1" force="true" time="3" /></Traffic>

位置查询:查询名称为Ego的车辆位置

<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>

3D显示:BoundingBox显示

<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>

行驶路径创建:pathshape路径创建

<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>

行驶路径配置:pathshape路径配置

<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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。