PanoSim仿真模型--驾驶员模型

为了方便用户开发,PanoSim 提供了两个驾驶员模型:控制型驾驶员模型和智能型驾 驶员模型。控制型驾驶员模型包含横向控制和纵向控制模块,可以根据用户指定的速度和 路径,实现速度跟随和路径跟踪功能。智能型驾驶员模型包括决策规划和控制模块,具备 避让车辆行人、识别交通信号灯等功能,可以根据用户指定的驾驶任务,安全地从起点行 驶到终点。智能型驾驶员模型还具备协作开发能力,用户可以将“决策规划”、“横向控制” 和“纵向控制”中的任意模块切换为用户的算法,而不会影响其他模块的运行。

5.6.1 控制型驾驶员模型

控制型驾驶员模型支持 Simple、xCar 和 CarSim 三种动力学车辆模型。 在使用控制型驾驶员模型时,按照以下步骤操作:
1. 将主车拖动到地图中之后,双击主车,选择期望路径;
2. 在主车参数栏中,将“InitialSpeed”参数设置为目标速度;
3. 如果 Agent 中包含 xDriver,需要将 xDriver 删除;
4. 鼠标右键单击 Agent,弹出“Edit Agent”菜单,如图 5.31 所示,左键点击“Edit Agent”菜单,弹出驾驶员控制算法对话框;

PanoSim仿真模型--驾驶员模型_第1张图片

图 5.31 控制型驾驶员算法入口菜单

PanoSim仿真模型--驾驶员模型_第2张图片

图 5.32 控制型驾驶员算法


控制型驾驶员算法对话框的左侧列出了车辆侧向和纵向的控制使能的选择框,见图 5.32 的红色方框区域。红色区域上部为方向盘开环控制和路径跟随闭环控制,两者为互斥关系。红色区域下部为对应纵向控制的油门,档位和制动压力,这三者同时使能或者关闭。

使能某控制模块选项后,点击模块的图标,在对话框右侧区域可以编辑控制策略,同时在中部区域显示控制策略的曲线。如图 5.33、图 5.34 所示例分别为方向盘转角阶跃的开环控制和路径跟随定义,纵向控制策略定义方法类同。

PanoSim仿真模型--驾驶员模型_第3张图片

图 5.33 开环控制策略定义

PanoSim仿真模型--驾驶员模型_第4张图片

图 5.34 闭环路径跟随策略定义


5. 运行实验之后,主车将按照用户设定的指令(方向盘转角,油门开度,制动压力,变 速器挡位)行驶或者按照规划的路径行驶。


5.6.2 智能型驾驶员模型

智能型驾驶员模型(xDriver)支持 xCar和 CarSim两类动力学模型,包含感知、定位、 决策、规划和控制模块,具备自适应巡航、避让行人、换道、识别交通信号灯和通过路口 等功能。
使用智能型驾驶员模型,需首先在“Agent”中加入 xDriver。添加方法为:

1. 左键点击“Agent”按钮;
2. 在右侧“Agent DataSet”中找到 xDriver;
3. 将 xDriver 拖动到图 5.35 所示的“3”区域。

PanoSim仿真模型--驾驶员模型_第5张图片

图 5.35 xDriver 模型加载示意图


智能型驾驶员模型具备协作开发能力,用户可以将“决策规划”、“横向控制”和“纵向控 制”中的任意模块切换为用户的算法,而不会影响其他模块的运行。如果用户要将 xDriver 的部分模块切换成用户算法,首先需要关闭对应模块。如图 5.36 所示,xDriver 包括 “LongControl Switch”、“LatControl Switch”和“Planner Switch”三个参数,分别代表“纵向控 制模块”、“横向控制模块”和“决策规划模块”。将相关参数设置为“On”时,xDriver 中对应模 块正常运行;当设置为“Off”时,xDriver 中对应模块停止运行,将切换为用户算法。

PanoSim仿真模型--驾驶员模型_第6张图片

图 5.36 切换 xDriver 内置模块与用户算法示意图


用户算法与 xDriver 交互方式如下图 5.37 所示,支持 Python、C++和 Simulink 三种形式的用户算法。

PanoSim仿真模型--驾驶员模型_第7张图片

图 5.37 xDriver 数据交互示意图


“决策规划模块”的输入是感知信息,它是从数据总线获取的真值数据,包括交通参与 物的位置、运动状态和类型,以及交通信号灯的状态。“决策规划模块”输出期望速度和期望轨迹。当打开“决策规划模块”时,xDriver 将规划出的期望速度和期望轨迹传输到数据总 线供用户访问。当关闭“决策规划模块”时,用户算法需要按照固定格式输出期望速度和期 望轨迹到数据总线。“纵向控制模块”的输入是期望速度,输出是节气门开度和制动主缸压 力。当打开“纵向控制模块”时,xDriver 将输出节气门开度和制动主缸压力到数据总线,达 到控制车辆模型的作用。当关闭“纵向控制模块”时,用户算法需要按照固定格式输出节气 门开度和制动主缸压力到数据总线,达到控制车辆模型的作用。“横向控制模块”的输入是 期望轨迹,输出是方向盘转角。当打开“横向控制模块”时,xDriver 将输出方向盘转角到数 据总线,达到控制车辆模型的作用。当关闭“横向控制模块”时,用户算法需要按照固定格 式输出方向盘转角到数据总线,达到控制车辆模型的作用。“纵向控制模块”和“横向控制模 块”的输入是来自 xDriver 还是用户算法,取决于“决策规划模块”的状态。如果“决策规划模 块”处于开启状态,“纵向控制模块”和“横向控制模块”的输入是来自 xDriver,否则,来自用 户算法。上文中提到的变量在数据总线中的格式如下表 5-42 所示。

表 5-42 xDriver 模型输入/输出参数

英文名称 中文名称 数据类型 单位 备注
Exp_Vx 期望速度 double m/s 自动驾驶车辆期望的目标速度
RefX 期望轨迹 X 坐标 double m 长度是 500 的数组,表示车辆坐标系下未来轨迹的横坐标点集,每两点相隔 0.2m。
RefY 期望轨迹 Y 坐标 double m 长度是 500 的数组,表示车辆坐标系下未来轨迹的纵坐标点集,每两点相隔 0.2m。
C_Throttle 节气门开度 double 1 给车辆模型下发的加速控制命令
C_Pressure 制动主缸压力 double MPa 给车辆模型下发的制动控制命令
C_Steer 方向盘转角 double degree 给车辆模型下发的转向控制命令

你可能感兴趣的:(算法,自动驾驶,虚拟现实)