上一节介绍了控制型驾驶员模型,本节主要介绍智能型驾驶员模型。智能型驾驶员模型(xDriver)支持xCar和CarSim两类动力学模型,包含感知、定位、决策、规划和控制模块,具备自适应巡航、避让行人、换道、识别交通信号灯和通过路口等功能。使用智能型驾驶员模型,需首先在"Agent"中加入xDriver。添加方法为:
1、左键点击"Agent"按钮;
2、在右侧"Agent DataSet"中找到xDriver;
3、将xDriver拖动到图5.35所示的"3"区域。
智能型驾驶员模型具备协作开发能力,用户可以将"决策规划"、“横向控制"和"纵向控制"中的任意模块切换为用户的算法,而不会影响其他模块的运行。如果用户要将xDriver的部分模块切换成用户算法,首先需要关闭对应模块。如图5.36所示,xDriver包括"LongControl Switch”、“LatControl Switch"和"Planner Switch"三个参数,分别代表"纵向控制模块”、“横向控制模块"和"决策规划模块”。将相关参数设置为"On"时,xDriver中对应模块正常运行;当设置为"Off"时,xDriver中对应模块停止运行,将切换为用户算法。
用户算法与xDriver交互方式支持Python、C++和Simulink三种形式的用户算法。例如决策规划模块的输入是感知信息,它是从数据总线获取的真值数据,包括交通参与物的位置、运动状态和类型,以及交通信号灯的状态,模块输出期望速度和期望轨迹。当打开决策规划模块时,xDriver将规划出的期望速度和期望轨迹传输到数据总线供用户访问。当关闭决策规划模块时,用户算法需要按照固定格式输出期望速度和期望轨迹到数据总线。